Algorisme de TomasuloL'algorisme Tomasulo és un algorisme de maquinari desenvolupat el 1967 per Robert Tomasulo d'IBM. Permet que instruccions seqüencials que normalment es quedarien retingudes per certes dependències s'executin no seqüencialement (execució fora d'ordre). Va ser implementat per primer cop per la unitat de coma flotant del computador IBM System/360 model 91. Aquest algorisme es diferencia de l'algorisme marcador en el fet que fa servir reanomenament de registres. On el marcador resol riscos Write-after-Write (WAW) i Write-after-Read (WAR) retenint, el reanomenament de registres permet continuar el processament d'instruccions. L'algorisme Tomasulo també fa servir un bus de dades comú (CDB), en el que els valors calculats són emesos a totes les estacions reserva que poden necessitar-los. Això també permet executar paral·lelament instruccions que amb marcador podrien ser retingudes. Robert Tomasulo va rebre el Premi Eckert-Mauchly en 1997 pel seu algorisme. Conceptes d'implementacióEls conceptes necessaris per a la implementació de l'algorisme Tomasulo són els següents.
Cicle de vida d'una instruccióLes tres fases llistades a sota són les fases a través de les quals cada instrucció passa del moment en què és llançada al moment en què és acomplerta. Fase 1: LlançamentA la fase de llançament, les instruccions són llançades per a ser executades si tots els operands i les estacions de reserva estan preparades; altrament són retingudes. Els registres són reanomenats en aquest pas, eliminant els riscos WAR i WAW.
Fase 2: ExecucióA la fase d'execució, les operacions de la instrucció són portades a terme. Les instruccions són retardades en aquest pas fins que tots els seus operands són disponibles, eliminant riscos RAW. La correctesa del programa és mantinguda a través del càlcul d'adreces efectives per a prevenir riscos de memòria.
Fase 3: Escriptura del resultatEn la fase d'escriptura del resultat, les operacions aritmètiques escriuen als registres i les operacions de store escriuen a la memòria.
Enllaços externs
|
Portal di Ensiklopedia Dunia