Кіріспе

Компьютерлік архитектураның аппараттық алгоритмі, Томасуло алгоритмі – нұсқауларды динамикалық түрде жоспарлауға арналған компьютерлік архитектураның аппараттық алгоритмі. Ол нұсқауларды реттіліксіз орындауға мүмкіндік береді және бірнеше орындау бірліктерін тиімді пайдалануға жағдай жасайды. Алгоритмді 1967 жылы Роберт Томасуло IBM компаниясында әзірлеген, ал алғаш рет IBM System/360 Model 91 жүйесінің қозғалатын нүктелі блогында қолданылған.

Ортақ деректер шинасы

Ортақ деректер шинасы (CDB) брондау станцияларын тікелей функционалдық бірліктерге қосып тұрады. Томаслу айтуынша, ол "басымдық ретін сақтай отырып, бір мезгілде орындалуға мүмкіндік береді". Бұл екі маңызды салдарға әкеледі:
Функционалдық бірліктер қозғалатын нүктелік тіркелгіні пайдаланбастан кез келген операцияның нәтижесіне қол жеткізе алады, соның салдарынан нәтиже күтіп тұрған бірнеше бірлік тіркелгілік файлды оқу порттарына қол жеткізу үшін күресті шешуді күтпестен жұмысын жалғастыра береді. Қауіпті анықтау және басқару орталықтандырылмаған. Нұсқауды орындауға болатын уақытты резервтік станциялар бақылайды, емес, арнайы қауіпті анықтау блогы.

Нұсқаулық

Нұсқаулар тізбесімен беріледі, осылайша нұсқаулар тізбегінің әсерлері, мысалы, осы нұсқаулар тудырған қателер, реттік процессорда орындалғандай бірдей ретпен орындалады, олар реттік емес (яғни, тізбексіз) орындалса да.

Тіркеменің қайта аталуы

Томасуло алгоритмі тізімдерді қайта атау арқылы реттіліксіз орындалуды дұрыс жүзеге асыруды қамтамасыз етеді. Барлық жалпы мақсаттағы және резервациялық станция тізімдері нақты мән немесе уақытша мән сақтайды. Егер нақты мән шығару кезеңінде мақсатты тізімге қолжетімді болмаса, бастапқыда уақытша мән қолданылады. Уақытша мән – нақты мәнді қай резервациялық станция шығаратынын көрсететін белгі. Блок жұмысын аяқтап, CDB арқылы нәтижені тарату кезінде, уақытша мән нақты мәнмен алмастырылады. Әрбір функционалдық блокта бір резервациялық станция бар. Резервациялық станциялар операция мен операндарды қоса алғанда, бір ғана команданы орындау үшін қажетті ақпаратты сақтайды. Функционалдық блок бос болғанда және команда үшін қажетті барлық бастапқы операндар нақты болғанда өңдеуді бастайды.

Ерекшеліктер

Іс жүзінде, ерекшелік туралы жеткілікті мәлімет болмайтын жағдайлар болуы мүмкін, онда процессор арнайы ерекшелік – «нақты емес ерекшелік» деп аталатын ерекшелікті тудыруы мүмкін. Реттік орындалуда нақты емес ерекшеліктер пайда болмайды, себебі процессор күйі тек бағдарлама ретімен өзгертіледі (қараңыз). Нақты ерекшеліктерге тап болған бағдарламалар, егер ерекшелікті тудырған нақты команданы анықтау мүмкін болса, ерекшелік болған жерден қайта бастауға немесе қайта орындауға болады. Дегенмен, нақты емес ерекшеліктерге тап болған бағдарламаларды әдетте қайта іске қосуға немесе қайта орындауға болмайды, өйткені жүйе ерекшелікті тудырған нақты команданы анықтай алмайды.

Нұсқаудың өмірлік циклі

Төменде тізілген үш кезең – әрбір команда берілген кезден бастап орындалуы аяқталғанға дейін өтетін кезеңдер.