Scoreboarding је централизовани метод који се користи у рачунару CDC 6600 за динамичко планирање проточне обраде тако да се инструкције могу извршавати ван реда када нема конфилкта и када је хардвер доступан.[1] У scoreboard-у зависност података сваке инструкције се записује. Инструкције се пуштају тек када scoreboard одреди да нема конфликта између претходне и тренутне инструкције. Ако је инструкција стопирана због тога што није безбедно наставити, scoreboard надгледа проток извршавања инструкције док све зависности не буду сређене, пре спровођења стопирања.
Инструкције се декодирају редом и иду кроз следеће четири фазе:
За контролу извршења упутства, scoreboard одржава три статусне табеле:
Детаљан алгоритам за scoreboard је ниже:
function issue(op, dst, src1, src2)
wait until (!Busy[FU] AND !Result[dst]); // FU can be any functional unit that can execute operation op
Busy[FU] ← Yes;
Op[FU] ← op;
Fi[FU] ← dst;
Fj[FU] ← src1;
Fk[FU] ← src2;
Qj[FU] ← Result[src1];
Qk[FU] ← Result[src2];
Rj[FU] ← not Qj;
Rk[FU] ← not Qk;
Result[dst] ← FU;
function read_operands(FU)
wait until (Rj[FU] AND Rk[FU]);
Rj[FU] ← No;
Rk[FU] ← No;
function execute(FU)
// Execute whatever FU must do
function write_back(FU)
wait until (f {(Fj[f]≠Fi[FU] OR Rj[f]=No) AND (Fk[f]≠Fi[FU] OR Rk[f]=No)})
foreach f do
if Qj[f]=FU then Rj[f] ← Yes;
if Qk[f]=FU then Rk[f] ← Yes;
Result[Fi[FU]] ← 0;
Busy[FU] ← No;
Метод scoreboarding мора зауставити фазу када функционална јединица није на располагању. У овом случају, будуће инструкције које се потенцијално могу извршити ће сачекати док се не реши структурна опасност. Неке друге технике као што Томасуло алгоритам може да избегне структурну опасност и реши зависности са преименовањем регистра.