Pregunta de entrevista de Arm

General questions about OOE.

Respuesta de la entrevista

Anónimo

10 jun 2020

Out of Order Execution is implemented in modern computing using Tomasulo's algorithm. Prior to Tomasulo, the CDC 6600(1964) used scoreboarding which involved keeping track of the stages of the instructions, the availability of the functional units and the readiness of the registers. It allowed for OOE but it was susceptible to false data hazards(WAW and WAR). Tomasulo solved this false data hazard issue by introducing register renaming using reservation stations which essentially allowed for instruction results to be held in the reservation stations and to be forwarded directly to other instructions through a common data bus. Therefore in the case of a WAR hazard, a younger instruction could just write to a register instead of waiting for an older instruction to read from it because the value needed by the younger instruction would be in the reservation station.

1