Scoreboarding
# Scoreboarding

Lo Scoreboarding è una tecnica di gestione dinamica delle istruzioni da far eseguire alla pipeline di un microprocessore. Lo scoreboarding analizza le istruzioni da eseguire, segna le dipendenza tra le varie istruzioni e nel caso vi siano istruzioni senza conflitti e unità libere lo scoreboarding assegna l'istruzione all'unità libera. Lo scoreboarding in un processore dotato di più unità di calcolo parallele permette di eseguire più istruzioni in contemporanea mantenendo la correttezza del programma in esecuzione. Nel caso le istruzioni siano soggette a delle dipendenze l'algoritmo tiene bloccate le istruzioni e monitorizza il flusso del programma liberando le istruzioni solamente quando tutte le dipendenze sono risolte. Lo scoreboarding fu utilizzato per la prima volta nel CDC 6600. I processori moderni per gestire lo smistamento delle istruzioni in più unità funzionali utilizzano l'algoritmo di Tomasulo dato che questo fornisce prestazioni migliori a prezzo di una complessità implementativa superiore.

