Scoreboarding

Scoreboarding је централизовани метод који се користи у рачунару CDC 6600 за динамичко планирање проточне обраде тако да се инструкције могу извршавати ван реда када нема конфилкта и када је хардвер доступан.[1] У scoreboard-у зависност података сваке инструкције се записује. Инструкције се пуштају тек када scoreboard одреди да нема конфликта између претходне и тренутне инструкције. Ако је инструкција стопирана због тога што није безбедно наставити, scoreboard надгледа проток извршавања инструкције док све зависности не буду сређене, пре спровођења стопирања.

Фазе

Инструкције се декодирају редом и иду кроз следеће четири фазе:

  1. Издавање: Систем проверава који регистри ће бити читани и на које ће бити писано овом инструкцијом. Ова информација се памти јер ће бити потребна у следећим фазама. Како би избегли излазне зависности, инструкција се зауставља док се не заврше инструкције које желе да пишу у исти регистар. Инструкција се такође зауставља ако су захтеване инструкционе јединице заузете.
  2. Операнди читања: Након што су инструкције издате и правилно распоређене хардверским модулима, инструкција чека док сви операнди не постану доступни. Ова процедура решава зависности при читању јер регистри на које друга инструкција жели да пише се не сматрају доступним док по њима није писано.
  3. Извршавање: Када су учитани сви операнди, функционална јединица почиње његово извршење. Након резултат је спреман, scoreboard је обавештен.
  4. Писање резултата : У овој фази резултат треба да буде написан на оређени регистар. Међутим, ова операција је одложена док ранија инструкција (која намерава да прочита овај регистар) не заврши читање операнада. На овај начин, тзв. зависности података се могу решити.

Структура података

За контролу извршења упутства, scoreboard одржава три статусне табеле:

  • Статус инструкције: показује у којој је инструкција фази.
  • Статус функционалне јединице:
    • Заузето: показује да ли се јединица користи.
    • Оп: Операција која се користи у јединици.
    • Фи: Регистар дестинације.
    • Фј, Фк: Source-register бројеви.
    • Qj,Qk: Функционалне јединице које ће производити изворне регистре Фј, Фк.
    • Рј, Рк: Заставе које показују када су Фј, Фк спремни.
  • 'Статус регистра: Показује која функцијска јединица ће писати резултат у исти.

Алгоритми

Детаљан алгоритам за 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 мора зауставити фазу када функционална јединица није на располагању. У овом случају, будуће инструкције које се потенцијално могу извршити ће сачекати док се не реши структурна опасност. Неке друге технике као што Томасуло алгоритам може да избегне структурну опасност и реши зависности са преименовањем регистра.

Референце

  1. ^ Thornton, James E. (1965). „Parallel operation in the control data 6600”. Proceedings of the October 27–29, 1964, fall joint computer conference, part II: very high speed computer systems. AFIPS '64. San Francisco, California: ACM. стр. 33—40. doi:10.1145/1464039.1464045. 

Референце

  • Glenford Myers, "Register scoreboarding on a microprocessor chip", United States Patent 4891753

Спољашње везе

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.