* Posts by RaidersOfTheLostArchitect

1 publicly visible post • joined 4 Feb 2014

Cupertino copied processor pipelining claims Wisconsin U

RaidersOfTheLostArchitect

Hey-- computer architect here (who also studied at UW Madison).

As many of the comments have erroneously stated, this has nothing to do with branch prediction. It has to do with a circuit that makes better guesses on whether or not to perform data speculation down the instruction stream based on prior successful/unsuccessful speculations. Modern pipelines in processors allow the execution of multiple otherwise sequential instructions to execute at the same time. However, you have to account for the fact that many times, instruction C relies on the output of instruction A-- so if you execute them in parallel you have to guess, or "speculate", on the data used. If done correctly this can get you huge gains, but when you are wrong, it really shoots you in the foot. What is novel about the '752 patent is the mechanism that is described and used to prevent being wrong as much as possible by using prior speculation history to accurately guess whether or not the current instruction is a good candidate for speculation. Prior approaches either used speculation on everything (meaning you were right a lot, but wrong quite a bit too-- which a lot of times actually hurt overall performance) or not at all. This approach really improved the overall performance of speculation in general by attempting to remove the 'wrong' guesses and thus the massive performance hits. (Note the difference here between data speculation versus branch prediction.)