Browse Source
The algorithm is as follows: - An instruction-side Bloom filter knows which PPNs might be in the I$ - A store-side Bloom filter knows which PPNs might get store TLB hits - When refilling the store TLB, search the I-Bloom filter; on a hit, remove the ITLB entry, rebuild the I-Bloom filter, and flush the I$ - When refilling the ITLB, search the store-Bloom filter; on a hit, remove the store TLB entry and rebuild the store-Bloom filter The effect is that any word that can be stored-to cannot be in any I$. The old scheme (periodically flush I$) was hacky and didn't correctly respect the in-order fetch rule (i.e. fetches are in-order wrt. each other, and so they see ordered stores in order).pull/2117/head
2 changed files with 54 additions and 0 deletions
Loading…
Reference in new issue