|
|
|
|
|
by londons_explore
3091 days ago
|
|
The "speculation time" can be hundreds of cycles if you have a branch or memory read that takes a long time to resolve. This problem is already solved with speculative writes to main memory - a speculative store buffer keeps a sequence of memory operations which need to be done when the operation retires. These buffers are very power hungry, because every future speculative read must check every entry in the speculative store buffer to see if it is re-reading a previously written address. That many to many mapping leads to an exponential amount of checking logic. The same could be done for cache reads/writes, but I have a feeling it would quickly get very complex, large, and power hungry. |
|