4 ms·
I think your premise is correct, if our data all on one page we only need to fetch one page. If we write anything back, only one page needs to be updated. In ca
by TrainedMonkey 12y ago
I think your premise is correct, if our data all on one page we only need to fetch one page. If we write anything back, only one page needs to be updated. In case of two pages, read/write work doubles.
- MichaelGG 12y agoAnd the prefetcher cannot fetch across page boundaries since that might fault.
- TheLoneWolfling 12y agoThis seems like a hardware flaw to me. We can do OoO execution, why can't we do OoO prefetching w.r.t. page faults? (I.e. try to fetch into a cache, if there would be a page fault don't. If there's something that would cause that fetch to page fault between it being prefetched and it logically being fetched, invalidate the cace.)
- thesz 12y agoThis was actually done in some early DEC Alphas, I believe. OoO engine were able to issue address calculation from loads (if address register is ready) ahead and thusly when real load instruction execute the data is already in cache or closer to cache. It is really easy to do, actually. It can even simplify page fault handling in CPU.