Sample report 3 Both papers try to use PC and address as index to learn patterns from previous access streams. SMS: SMS tries to handle the scenario that memory accesses often exhibit repetitive patterns that span in memory regions. And it might repeat in some other memory regions for the same PC. Two strengths: 1. Instead of directly using PC+address as index, SMS uses PC+offset as index. In this way they can sometimes avoid compulsory misses, because large data set may have similar data structure and the same PC tends to have same access pattern over the data structure. 2. The concept of spatial region generation interval. As the author said, how the precise interval is defined can significantly impact the accuracy and coverage. SMS chooses the interval from trigger access until any accessed block is evicted or invalidated. This is a reasonable definition, but I think it's kind of too long. Two points that I would like to challenge SMS is that: 1. It records all L1 accesses. This is the first paper I've read that uses all L1 accesses and it should be much more than L2 accesses. L1 can filter out short-term accesses patterns. Is it necessary to use all L1 accesses? 2. The interval of spatial region ends when any accessed block is evicted or invalidated. This should be too long because usually it takes long time for cache to evict a cache line. If the access pattern is short, SMS would record a lot of useless information. ISB: Basically this paper tries to solve two problems on GHB: 1. Access streams in GHB are not stored consecutively. It uses linked list and traversing the linked list is irregular. Reducing the irregularity can improve latency and memory traffic. 2. For a TLB miss, GHB can't evict the entries on the missing page. And when the page is reused, GHB can't reuse the access pattern that have been previously learned. The ISB uses two tables to store the correlation of physical address and structural address. The structural address indicates the temporal relations of access streams. ISB records the last address of the same PC, making consecutive accesses of the same PC assigned adjacent structural address. Then temporal-consecutive accesses is stored in spatial-consecutive places in the table. Several questions: 1. GHB paper claims that the table-based approach is limited to a limited length of stream because of the size one table entry, and will store some stale data. The limited length is solved in ISB which it can dynamically allocate chunks. But how does it handle the stale data? Or is it not a big issue? 2. What if two PC access the same address? To my understanding of ISB, if PC0 accesses "AB", PC1 accesses "AC" and is later than PC0, then the stream "AC" can never be recorded. 3. What if there are repeated accesses in the stream? Say "ABAC", the first A has structural address 0x1100, I think at the second A it will be replaced by 0x1102 so that C is 0x1103. This means that the structural address is always the latest. The problems is, when ISB loads PS-AMC from memory because the page is activated, it only loads the PS-AMC which only records the latest structural address. It can't reproduce the original stream then. 4. Compared to GHB, ISB loses some information about adjacent accesses. Say in GHB the access stream is ...XY...XY..., where X are accesses with the same index, they are on the same linked list while Y is on another linked list. The ISB loses the information that XY are accessed consecutively. It loses the "width". 5. The paper claims that ISB is the first prefetcher to combine the use of PC localization and the address correlation. Isn't GHB or SMS doing the same thing?