CZ9602771A3 - Způsob operace systému zpracování - Google Patents

Způsob operace systému zpracování Download PDF

Info

Publication number
CZ9602771A3
CZ9602771A3 CZ19962771A CZ277196A CZ9602771A3 CZ 9602771 A3 CZ9602771 A3 CZ 9602771A3 CZ 19962771 A CZ19962771 A CZ 19962771A CZ 277196 A CZ277196 A CZ 277196A CZ 9602771 A3 CZ9602771 A3 CZ 9602771A3
Authority
CZ
Czechia
Prior art keywords
instruction
calculation
exception
instructions
processor
Prior art date
Application number
CZ19962771A
Other languages
English (en)
Inventor
Peter Song
Original Assignee
International Business Machines Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corporation filed Critical International Business Machines Corporation
Publication of CZ9602771A3 publication Critical patent/CZ9602771A3/cs

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Communication Control (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)

Description

Oblast techniky
Vynález se týká celkově systémů pro zpracování informace a zejména způsobu operace systému zpracování.
Superskalární systém zpracování obsahuje vícenásobné výpočtové jednotky pro současné výpočty vícenásobných instrukcí. V některých systémech zpracování, jsou instrukce proveditelné uvnitř instrukčního toku nefunkčně vzhledem k jejich programovaným posloupnostem. Nicméně, jednu nebo více vybraných instrukcí lze podrobit sérializovanému výpočtu, kde výpočet sérializované instrukce je proveditelný jen v její řádně programované posloupnosti. Některé z těchto systémů zpracování jsou také navrženy pro psaní výsledků instrukcí na paměťová místa (například architekční registry) za účelem programované posloupnosti podle předpisu. Podle typického předchozího stavu techniky takovéto zpětné psaní podle příkazu nepříznivě ovlivňuje dobu instrukcí, které jsou kompletovány systémem zpracování. Kromě toho takové zpětné psaní podle příkazu nepříznivě ovlivní dobu pro výpočet sérializované instrukce, kterou má vykonat systém zpracování.
V důsledku shora uvedených nedostatků bylo třeba vytvořit systém zpracování a způsob operace, při němž by zpětné psaní podle příkazu méně nepříznivě ovlivňovalo dobu pro instrukce, jež jsou kompletovány systémem zpracování a pro výpočet sérializované instrukce, kterou má vykonat systém zpracování.
Podstata vynálezu
Předmětem vynálezu je způsob zpracování a postup operace, j ehož podstatou je,že v posloupnosti pro výpočet soustavy obvodů se přidělují vícenásobné instrukce k vykonání, přičemž pro každou instrukci se před vykonáním provede rozhodnutí zda je možná výjimka podle výsledku výpočtu instrukce, načež instrukce se kompletuje v závislosti na určení, zda-li neexistuje výjimka podle výpočtu instrukce a každé instrukce předcházející instrukci v posloupnosti, nezávisle na tom zda soustava obvodů skončila výpočet každé instrukce, pro kterou není možná výjimka.
Technická výhoda předloženého vynálezu spočívá v tom, že zpětné psaní podle příkazu méně nepříznivě ovlivní dobu pro instrukce, · které má systém zpracování kompletovat a pro výpočet sérializované instrukce, kterou má vykonat systém zpracování.
Přehled obrázků na výkresech
Příklad provedení podle vynálezu a jeho výhody jsou dále vysvětleny v popisu a se zřetelem k připojeným výkresům, kde znázorňuje :
Obr.l blokové schéma procesoru pro zpracování informace podle preferovaného provedení;
Obr.2 blokové schéma výpočetní jednotky s pohyblivou řádovou čárkou procesoru v Obr. 1;
Obr.3 blokové schéma jednotky řadiče procesoru v Obr. 1;
Obr.4 koncepční ilustraci přeřazovací vyrovnávací paměti řadící jednotky v Obr.3;
Obr.5a-b zobrazení různých stupňů instrukcí zpracovaných procesorem v Obr. 1;
Obr.6 koncepční zobrazení přeřazovací vyrovnávací paměti procesoru v Obr. 1;
Obr.7 zobrazení různých stupňů čtyř instrukcí v Obr.
Obr.8a-d koncepční zobrazení přejmenovaných vyrovnávacích pamětí procesoru v Obr. 1;
Obr.9 koncepční zobrazení různých stupňů čtyř instrukcí v situaci bez významné charakteristiky preferovaného provedení;
Obr. 10 koncepční zobrazení přejmenovaných vyrovnávacích a-d pamětí procesoru v Obr.9;
Obr. 11 blokové schéma alternativního provedení přejmenovaných vyrovnávacích pamětí procesoru v Obr. 1;
Obr. 12 koncepční zobrazení přeřazovací vyrovnávací paměti a-c procesoru v Obr. 1;
Obr. 13 zobrazení různých stupňů pěti instrukcí v Obr. 12-c;
Obr. 14 koncepční zobrazení přejmenovaných vyrovnávacích a-f pamětí procesoru v Obr. 1;
Obr. 15 zobrazení různých stupňů pěti instrukcí v Obr. 12a-c v situaci bez důležité charakteristiky preferovaného provedení;
Obr. 16 koncepční zobrazení přejmenovaných vyrovnávacích a-h pamětí procesoru v Obr. 1 při různých cyklech zpracování instrukce
Příklad provedení vynálezu
Příklad provedení podle vynálezu a jeho výhody jsou dále podrobněji vysvětleny se zřetelem k Obr. 1-16h na výkresech, přičemž jsou použity tytéž vztahové značky pro odpovídající části.
Obr.l je blokové schéma procesoru 10 pro zpracování informace podle preferovaného provedení. V preferovaném provedení je procesor 10 jednoduchým integrovaným integrovaným obvodem superskalárního mikroprocesoru. Jak bude dále popsáno, procesor 10 proto obsahuje různé jednotky, registry, vyrovnávací paměti, paměti a další sekce, jež jsou všechny vytvořeny soustavou obvodů. V preferovaném provedení, pracuje tedy procesor 10 podle operační techniky RISC s redukovanou instrukční sadou. Jak znázorněno vObr. 1, systémová sběrnice 11 se připojí ke sběrnici l’BIU modulu 12 procesoru 10. Modul 12 řídí převod informace mezi procesorem 10 a systémovou sběrnicí li.
Modul 12 se spojí s rychlou vyrovnávací pamětí 14 a s datovou vyrovnávací pamětí 16 procesoru 10 . Rychlá vyrovnávací paměť 14 postupuje instrukce do sekvenční jednotky 18 . V důsledku těchto instrukcí z rychlé vyrovnávací paměti 14, sekvenční jednotka 18 selektivně postoupí instrukce dalším výpočtovým obvodovým souborům procesoru 10.
Sekvenční jednotka 18 kromě toho, v preferovaném provedení výpočtových obvodových souborů procesoru 10 obsahuje vícenásobné výpočtové jednotky, zejména jednotku větvení 20 jednotku A FXUA 22 s pohyblivou řádovou čárkou, druhou jednotku B FXUB 24 s pevnou řádovou čárkou, komplexní jednotku CFXU 26 s pevnou řádovou čárkou, zaváděcí/paměťovou jednotku LSU 28 a třetí jednotku FPU 30 s pohyblivou řádovou čárkou. Jednotky FXUA 22, FXUB 24, CFXU 26 a LSU 28 zavedou informaci o své zdrojové operandě z universálních architekčních registrů GPRs 32 a přejmenovávacích vyrovnávacích pamětí 34 s pevnou řádovou čárkou.
FUXA 22 a FXUB 24, kromě toho zavedou bit přenosu z registru CA 42 bitového přenosu. FUXA 22, FUXB 24, CFXU 2ň a LSU 28 zavedou výsledky (informaci cílové operandy) svých operací pro paměť na vybrané vstupy přejmenovacích pamětí 34 s pevnou řádovou čárkou . Také, CFXU 26 vloží a zavede informaci prvotní operandy a informaci cílové operandy do a ze specielních účelových registrů SPRs 40..
Do jednotky FPU 30 vstupuje její informace prvotní operandy z architekčních registrů FPRs 36 s pohyblivou řádovou čárkou a přejmenovacích vyrovnávacích pamětí 38 s pohyblivou řádovou čárkou . Z jednotky FPU 30 vystupují výsledky (informace cílové operandy) její operace pro paměť na vybrané vstupy přejmenovacích vyrovnávacích pamětí 38 s pohyblivou řádovou čárkou.
Podle instrukce zavádění, vstupuje informace do jednotky LSU 28 z datové vyrovnávací paměti 16 a kopíruje zmíněnou informaci do některých z přejmenovacích pamětí 34 a 38 . Není-li uvedená informace uložena do datové vyrovnávací paměti 16 , potom do ní vstupuje přes BIU 12 a systémovou sběrnici 11 ze systémové paměti 39 připojené k systémové sběmiciii . Mimo to, datová vyrovnávací paměť 16 je způsobilá, aby informace z ní vystoupila přes BIU 12 a systémovou sběrnici 11 do systémové paměti 39 spojené se systémovou sběrnicí 11 . Podle paměťové instrukce vstupuje informace do LSU 28 z jednoho vybraného registru z GPRs 22 a FPRs 36 a kopíruje tuto informaci do datové vyrovnávací paměti 16 .
Do sekvenční jednotky 18 vstupuje a vystupuje informace do a z registrů GPRs 32 a FPRs 36 . Ze sekvenční jednotky 18. vstupují do jednotky větvení 20 instrukce a signály indikující současný stav procesoru 10 . Podle těchto instrukcí a signálů, jednotka větvení 20 předává sekvenční jednotce 18 signály indikující vhodné paměťové adresy uložené jako posloupnost instrukcí pro výpočet procesoru 10 .
V závislosti na těchto signálech z jednotky větvení 20 vstupuje označená posloupnost instrukcí do sekvenční jednotky 18. z rychlé vyrovnávací paměti 14 . Není-li jedna nebo více instrukcí sledu uložena v rychlé vyrovnávací paměti 14, potom uvedené instrukce vstoupí do rychlé vyrovnávací paměti 14 přes BIU 12 a systémovou sběrnici 11 ze systémové paměti připojené k systémové sběrnici 11.
Podle vstupu instrukcí z rychlé vyrovnávací paměti 14, přidělí sekvenční jednotka 18 instrukce některým vybraným z výpočtových jednotek 20, 22, 24, 26, 28 a 3£). Každá prováděcí jednotka vypočte jednu nebo více instrukcí speciální třídy instrukcí. Například, FXUA 22 a FXUB 24 vypočtou první třídu matematických operací s pevnou řádovou čárkou k prvotním operandám, jako sčítání odčítání, uzlové součiny, uzlové součty a uzlový výsledek. CFXU 26 vypočte druhou třídu matematických operací s pevnou řádovou čárkou k prvotním operandám, jako násobení a dělení. FPU 30 vypočte operace s pohyblivou řádovou čárkou k prvotním operandám, jako násobení a dělení.
Jakmile se informace uloží do jedné vybrané z přejmenovacích vyrovnávacích pamětí 34, přidruží se k paměťovému místu, například jednomu z registrů GPRs 32 nebo CA 42, jak specifikováno instrukcí, pro kterou je přidělena zvolená přejmenovací paměť. Informace uložená do jedné zvolené z přejmenovacích vyrovnávacích pamětí 34 se okopíruje do jednoho z jejích přidružených registrů GPRs 32 nebo CA 42 podle signálů ze sekvenční jednotky 18 . Jak dále bude popsáno se zřetelem k Obr. 6-10, řídí sekvenční jednotka 18 toto kopírování informace uložené do jedné zvolené z přejmenovacích pamětí 34 podle doplňování instrukce, jež generovala tato informace. Takové kopírování se nazývá zapsat zpět .
Jakmile se informace uloží do jedné vybrané z přejmenovacích vyrovnávacích pamětí 38 , přidruží se k jednomu z registrů FPRs 36. Informace uložená do jedné zvolené z přejmenovacích vyrovnávacích pamětí 38 se okopíruje do jejího jednoho přidruženého registru FPRs 36 podle signálů ze sekvenční jednotky 18. Sekvenční jednotka 18 řídí kopírování informace uložené do jedné zvolené z přejmenovacích pamětí
18. podle doplňování instrukce, jež generovala tato informace.
Procesor 10 dosahuje vysokého výkonu současným zpracováním vícenásobných instrukcí na různých výpočtových jednotkách 20, 22, 24, 26, 28 a 30 . Každá instrukce se podle toho zpracuje jako sled etap, přičemž lze každou vykonat paralelně s etapami ostatních istrukcí. Technika toho druhu se jmenuje zřetězené zpracování. Důležité hledisko preferovaného provedení je, že se instrukce zpracuje v šesti etapách, totiž vyvolání, dekódování, přidělení, výpočet, doplnění a zapsání zpět.
V etapě vyvolání vstupuje selektivně do sekvenční jednotky 18 (z instrukční vyrovnávací paměti 14 ) jedna nebo více paměťových adres sledu instrukcí ukládaných do paměti jak shora uvedeno ve spojení s jednotkou větvení 20 a sekvenční jednotkou 18.
V etapě dekódování dekóduje sekvenční jednotka 18 až čtyři vyvolané instrukce.
V přidělovací etapě sekvenční jednotka 18 selektivně přidělí až čtyři dekódované instrukce zvoleným jednotkám, podle dekódování v dekódovací etapě, z výpočtových jednotek 20, 22, 24, 26, 28 a 30 po reservaci vstupu přejmenovací vyrovnávací paměti pro každou podle výsledku přidělení instrukce (informace cílového operandu). V přidělovací etapě, informace operandu se dodá zvoleným výpočtovým jednotkám pro přidělené instrukce. Procesor 10 přiděluje instrukce v pořadí jejich naprogramovaného sledu.
Ve výpočetním etapě provedou výpočetní jednotky své přidělovací instrukce a výstupní výsledky (informace cílového operandu) svých operací pro uložení na zvolených vstupech v přejmenovacích vyrovnávacích pamětí 34 a 38 jak shora uvedeno. Procesor 10 je tímto způsobem schopen vykonávat poruchové instrukce vůči jejich naprogramovanému sledu.
V doplňovací etapě indikuje sekvenční jednotka 18 , že instrukce je úplná, jak bude dále popsáno se zřetelem k Obr. 3-4. Procesor JLQ doplnuje instrukce v pořadí jejich naplánovaného sledu.
V etapě zápisu zpět řídí sekvenční jednotka 18 kopírování informace z přej měno vacích vyrovnávacích pamětí 34 a 38 do příslušných registrů GPRs 22 a FPRs 2ή. Sekvenční jednotka 1& řídí kopírování informace uložené ve zvolené přejmenovací vyrovnávací paměti jak dále popsáno se zřetelem k Obr. 6-11. Podobně, v etapě zápisu zpět partikulární instrukce, aktualizuje procesor 10 své architektonické stavy podle partikulární instrukce. Procesor 10 provádí příslušné etapy zpětného zápisu instrukcí v pořadí jejich naprogramovaného sledu. Jak dále popsáno se zřetelem k Obr. 6-10, procesor IR výhodně setřídí doplňovací etapu instrukce a etapu zpětného zápisu ve specifických situacích.
V preferovaném provedení vyžaduje každá instrukce jeden strojní cyklus, aby byl úplný každý ze stupňů instrukčního zpracování. Nicméně, některé instrukce, například instrukce s komplexní pevnou řádovou čárkou prováděné jednotkou CFXU 26, mohou vyžadovat více než jeden cyklus. Následkem toho může vzniknout proměnné zpoždění mezi výpočtem partikulárních instrukcí a kompletovanými stupni v závislosti na změně doby požadované pro dokončení předchozích instrukcí.
Obr. 2 je blokové schéma FXUA 22 procesoru 10. FXUA 22 obsahuje reservační pole označená zpravidla 50a a 50b. Podobně každá jednotka větvení 20 , FXUB 24, CFXU 26 , LSU 28 a FPU 30 se opatří příslušnými rervačními poli. Za účelem lepšího porozumnění je dále popsána operace pouze jednotky FXUA 22 a jejích reservační ch polí jako příklad operace ostatních výpočetních jednotek a jejich příslušných reservačních polí.
Každé z reservačních polí 50a-b je způsobilé k uložení informace pro příslušnou instrukci přidělenou sekvenční jednotkou 18 pro výpočet FXUA 22. Každé reservační pole obsahuje příslušné pole určovacího registru, pole operandu A, pole operandu B a pole operačního kódu. Nad to, podle důležitého hlediska preferovaného provedení, každé reservační pole dále obsahuje příslušné toleranční výpočetní pole EOK.
V poli svého určovací určovacího registru identifikuje reservační pole nejméně jeden určovací registr (jak specifikováno sekvenční jednotkou 18 ) pro reservační staniční vlastní instrukci. Podobně, v polích svého vlastního operandu A a operandu B, uloží reservační stanice informaci o prvotním operandu (z GPRs 32, přej měno vacích vyrovnávacích pamětí 24, FUXB 24, CFXU 2ň nebo LSU 28) pro reservaci staniční vlastní instrukce. V poli svého operačního kódu uloží reservační stanice operační kód (jak specifikováno sekvenční jednotkou 18) indikující, že operaci vykoná FXUA 22 na informaci prvotního operandu podle reservace staniční vlastní instrukce . ’
Podle signálů z řídící logiky 56, vloží se do vykonávací logiky 54 informace prvotního operandu z reservace polí staničního operandu A a operandu B, načež se vykoná operace (indikovaná reservací staničního uloženého operačního kódu).Výsledná informace z této operace vystupuje z vykonávací logiky 54 do přejmenovacích vyrovnávacích pamětí 24, FXUB 24, CFXU 2ή, a LSU 28. Uvedená informace je uložena do vybrané jedné z přejmenovacích vyrovnávacích pamětí 24. Na popud určovacího registru identifikovaného výstupem multiplexeru 58, uložená informace je sdružena (uvnitř zvolené přejmenovací vyrovnávací paměti) s jednou z GPRs 32.
Podle důležitého hlediska preferovaného provedení, reservační stanice dále uloží informaci EOK (jak spefikováno sekvenční jednotkou 18) do svého pole EOK. Informace EOK tohoto druhu výhodně přizpůsobuje určité situace kde procesor 10 zpožďuje provedení výpočtu sérializované instrukce. Výpočet sérializace je technikou pro zpoždění výpočtu instrukce ve vícenásobném zřetězení, poruchových výpočetních procesorů, například pročesoru 10.
V první situaci kde procesor 10 zpozdí provedení výpočtu sérializované instrukce, není třeba tuto instrukci provést spekulativně. V druhé situaci kde procesor zpozdí provedení výpočtu sérializované instrukce, je instrukce zpožděna při provádění dokud jsou k disposici všechny její informace prvotního operandu a jsou platné.
Se zřetelem k první situaci (kde instrukci není třeba provádět spekulativně), procesor 10 normálně vykonává instrukce spekulativně tak, že instrukce jsou vykonávány poruchově ve vztahu k jejich programovanému sledu uvnitř instrukčního toku. Podle toho, imstrukční výsledky (informace určujícího operandu) nejsou nezbytně potřebné v řádně instrukčně programovaném sledu. Nicméně procesor 10 píše zpět instrukční výsledky do architekturových registrů (například GPRs 32 a FPRs 36 ) v řádně instrukčně programovaném sledu. Z toho důvodu obsahuje procesor 10 přejmenovací vyrovnávací paměti 34 a 38 pro přechodné uložení instrukčních výsledků až do vhodného okamžiku (to znamená dokončení výpočtu všech předcházejících instrukcí bez podmínek vyjímky) pro zapsání zpět přechodně uložených výsledků do architekturových registrů.
Nicméně, jako příklad preferovaného provedení, některé instrukce se zpracují v režimu SPRs 40 (Obr.l), kde instrukční výsledky se zapisují přímo do SPRs 40 bez přechodného uložení v přejmenovacích pamětích. Příkladem takové instrukce je přesouvací instrukce, ve které CFXU 26 přesouvá informaci do jednoho z SPRs 40 do jednoho z GPRs 32 . Jak znázorněno v Obr.l, CFXU 26 je připojena k SPRs 40. Přesouvací instrukce ihned po výpočtu aktualizuje jeden z SPRs 40 . V jiném příkladu výsledek paměťové instrukce se zapíše přímo na paměťové místo v datové vyrovnávací paměti 16 bez dočasného uložení do přejmenovacích vyrovnávacích pamětí.
Procesor 10 neprovádí spekulativně tyto instrukce (kde instrukční výsledky jsou zapsány přímo v architekčním registru nebo paměťovém místu bez mezilehlého uložení v přejmenovací vyrovnávací paměti), takže procesor 10 může dosáhnout přesných přerušení a výjimek. Jelikož instrukční výsledky jsou mimo to přímo zapsány do architekčního registru nebo paměťového místa bez dočasného uložení v přej měno vací vyrovnávací paměti, jsou instrukce prováděny bez zpětného zápisu. Proto, aby byla zajištěna řádná kompletace a zpětný zápis, zpožďuje procesor 10 takovou instrukci dokud nejsou kompletovány všechny předchozí instrukce.
S ohledem na druhou situaci ( kde je zpožděno provedení instrukce dokud není přístupná a platná informace o jejím prvotím operandu), viz Obr. 3, reservační stanice dočasně uloží informaci pro příslušnou instrukci, jejíž informace o prvotním operandu není dostupná v době kdy instrukce se přiděluje ze sekvenční jednotky 18 . Jakmile je k disposici z výpočetní jednotky informace o prvotním operandu, reservační stanice ji přejme a uloží. Ve vhodném okamžiku předá reservační stanice informaci o prvním operandu k provedení do logiky 54.
V preferovaném V preferovaném provedení specifikuje většina instrukcí jeden nebo více z GPRs 32 a FPRs 36 jako prvotní operand. Z toho důvodu v preferovaném provedení, reservační stanice obsahují soustavu obvodů pro urychlené odesílání informace z výpočetních jednotek.
V preferovaném provedení nicméně reservační stanice neobsahuje soustavu obvodů pro urychlené odesílání informace jiných typů prvotních operand než je registr CA 42 nebo SPRs 40. Je tomu tak proto, že velikost a náklady na takovou soustavu obvodů není zdůvodněna frekvencí instrukcí, jež specifikují nedopředné prvotní operandy. Místo toho, procesor 10 preferovaného provedení zpozdí výpočet instrukce specifikující tyto nedopředné prvotní operandy nejméně tak dlouho pokud nejsou dokončeny všechny předchozí instrukce. V závislosti na dokončení předchozích instrukcí, nedopředné prvotní operandy jsou přečteny z jednoho ze specifických achtitektumích regisrtrů, například SPRs 40 . Příklady takových instrukcí jsou (1) prodloužená aritmetická instrukce, kterou čte registr CA 42 a (2) odsouvací instrukce, která přesunuje informaci jednoho z SPRs 40 do jednoho z GPRs 22.
Procesor 10 celkem zpozdí provedení výpočtu sérializované instrukce nejméně pokud nejsou dokončeny všechny předchozí instrukce ve dvou situacích. V první situaci není třeba provádět instrukci spekulativně. V druhé situaci tato instrukce specifikuje nejméně jeden prvotní operand, pro který procesor 10 neobsahuje dopřednou soustavu obvodů. Tyto situace jsou výhodně kompensovány sekvenční jednotkou 18 specifikující informaci EOK, aby byla uložena vreservační stanici.
Je-li instrukce podřízena výpočtové sérializaci, potom sekvenční jednotka 18 uvolní bit EOK (uvnitř informace EOK uložené v poli reservační stanice EOK) pro logickou 0, když je instrukce přidělena do FXUA 22. Uvolněním bitu EOK pro logickou 0, zabrání sekvenční jednotka 18 FUXA 22 provedení instrukce, i když je instrukce jinak připravena pro výpočet. V důsledku toho vykoná FUXA 22 výpočet sérializované instrukce jenom podle odezvy sekvenční jednotky 18, která vyšle signál po vedení 60 jak dále popsáno.
Po srovnání, zda-li není instrukce podřízena výpočtové sérializaci, nastaví sekvenční jednotka 18 bit EOK na logickou 1, když je instrukce přidělena k FXUA 22 . Nastavením bitu EOK na logickou 1, sekvenční jednotka 18 dovolí FXUA 22, aby provedla instrukci jakmile je k disposici a platná informace instrukčního prvotního operandu.
Na Obr.l je blokové schéma, sekvenční jednotky 18, Jak shora blíže uvedeno, v etapě vyvolání, sekvenční jednotka 18. selektivně vyzvedne až čtyři instrukce z rychlé vyrovnávací paměti instrukcí a uloží je do instrukční vyrovnávací paměti 70 . V dekódovací etapě, dekódovací logika 22 přijme a dekóduje až čtyři vyvolané instrukce z instrukční vyrovnávací paměti 70. V etapě přidělování, přidělovací logika 21 selektivně přidělí až čtyři dekódované istrukce vybraným (podle dekódování v dekódovací etapě) některým z výpočtových jednotek 20, 22, 24,26, 28 a 3Π.
Obr.4 je koncepční zobrazení přeřazovací vyrovnávací paměti 76 sekvenční jednotky 18 v preferovaném provedení . Jak znázorněno v Obr.4 přeřazovací vyrovnávací paměť 76 se opatří šestnácti vstupy s příslušně označenými čísly 0-15 vyrovnávací paměti. Každý vstup sestává z pěti primárních polí, totiž pole typu instrukce, pole určení čísla GPR pole určení čísla FPR pole skončeno a pole výjimka. Pole typu instrukce mimo to obsahuje dílčí pole výpočtové jednotky a dílčí pole EOK.
S odvoláním také na Obr,3 , jestliže přidělovací logika 74 přidělí instrukci k výpočetní jednotce, sekvenční jednotka 18 přiřadí přidělenou instrukci přidruženému vstupu v přeřazovací vyrovnávací paměti 76 . Sekvenční jednotka 15. přiřadí vstupy v přeřazovací vyrovnávací paměti 76 k přiděleným instrukcím na první vstup první výstup báze a rotujícím postupem tak, že sekvenční jednotka 18 přiřadí vstup 0, následovaný po sobě následnými vstupy 1-15, a potom znovu vstup 0. Je-li přidělovací instrukci přiřazen přidružený vstup v přeřazovací vyrovnávací paměti 76, přidělovací logika 74 vydá informaci týkající se přidělovací instrukce pro uložení do různých polí a dílčích polí sdruženého vstupu v přeřazovací vyrovnávací paměti 76.
Například, na vstupu 0 v Obr.4, přeřazovací vyrovnávací paměti 76 označuje, že instrukce je přidělena k FXUA 22. Kromě toho, vstup 0 naznačuje, že přidělená instrukce je provedena sérializované tak, že EOK = 0 a procesor IQ má zpozdit provedení přidělené instrukce nejméně po dobu než jsou skončeny všechny předchozí instrukce. Také, na vstupu 1, přeřazovací vyrovnávací paměť 76 označí, že následující instrukce je provedena sérializované tak, že EOK =0.
Podle jiného hlediska preferovaného provedení, vstup 0 dále indikuje, že přidělená instrukce má jeden určovací registr GPR (takže číslo určení GPR =1), nulové FPR určovací registry takže číslo z určení FPR = 0), není ještě skončena (takže skončeno = 0), a nezpůsobila výjimku (takže výjimka=0). Jelikož výpočetní jednotka provede a rozdělí instrukci, výpočetní jednotka modifikuje instrukční sdružený vstup v přeřazovací vyrovnávací paměti 76 . Mnohem přesněji, podle skončeného provedení přidělené instrukce, výpočetní jednotka modifikuje vstupní skončené pole ( takže skončení - 1) . Zaznamená-li výpočetní jednotka výjimku při provádění přidělené instrukce, modifikuje výpočetní jednotka vstupní pole výjimky (takže výjimka = 1 ).
S odvoláním znovu na Obr.3, vstupy přeřazovací paměti Tú jsou přečteny dokončovací logikou 80 a logikou 82 výjimky sekvenční jednotky J_£, Důležitým aspektem preferovaného provedení mimo to je, že vstupy přeřazovací paměti 76 jsou přečteny výpočetní sérializovanou logikou £4 sekvenční jednotky 18. Podle polí výjimky přeřazovací paměti 76 zpracuje logika 82 výjimky zaznamenané při výpočtu přidělených instrukcí.
V závislosti na dokončených polí a polích výjimky přeřazovací paměti 76 , vyšle dokončovací logika 80 signály do přidělovací logiky 74, výpočetní sérializované logiky £4 a do přeřazovací paměti 76 . Pomocí těchto signálů, dokončovací logika 80 označí dokočení instrukcí v pořadí jejích programovaného sledu. Dokončovací logika £0 označí dokočení” instrukce , splňuje-li následující podmínky:
Podmínka 1- Výpočetní jednotka (do níž je instrukce přidělena) skončí výpočet instrukce (takže skončení = 1 v instrukčním sdruženém vstupu přeřazovací paměti 26);
Podmínka 2 - nebyly zaznamenány žádné výjimky v jakékoliv etapě zpracování instrukce (takže výjimka = 0 v instrukčním sdruženém vstupu přeřazovací paměti 76 ; a
Podmínka 3 - Žádná předchozí přidělená instrukce nesplňuje podmínku 1 a podmínku 2.
Podle informace v přeřazovací paměti 76, přidělovací logika 74 určí vhodné číslo dodatečných instrukcí, aby bylo přiděleno. Důležitým hlediskem preferovaného provedení je, že podle signálů z dokončovací logiky 80 , výpočetní sérializační logika 84 selektivně vyšle signál po vedení 60 do FXUA 22 . Jestliže přidělená instrukce do FXUA 22 vymazala svůj sdružený EOK bit ( v poli instrukčního typu instrukčního sdruženého vstupu v přeřazovací vyrovnávací paměti 76 ) k logické 0, potom výpočetní sérializační logika 84 vyšle signál po vedení 60 podle dokončení všech instrukcí předcházejících přidělovací instrukci. FUXA 22 provede tuto přidělenou instrukci pouze v souladu s výpočetní sérializační logikou 84 vysílající signál po vedení 60; když výpočetní sérializační logika 84 vyšle signál po vedení 60 , přidělená instrukce (s vymazaným svým sdruženým EOK bitem k logické 0) bude nej starší nevyříeu instrukcí v reservačních stanicích 50a-b z FUXA 22 protože instrukce jsou doplňovány v poořadí jejich programovaného sledu.
Podobně, výpočetní sérializační logika 84 selektivně vyšle signály k výpočetním jednotkám 20, 24, 26, 28 a 30 po k nim náležejících vedeních 86, 88, 90, 92 a 94
Obr. 5a-b znázorňují různé stupně instrukcí. Podle Obr. 5a, provedení (cyklu 6) výpočtu sérializované instrukce INST n+1 (například přísuvné instrukce nebo odsuvné instrukce) se zpozdí než jsou všechny předchozí instrukce dokončeny (například po cylu 5 předchozí instrukce INST n). Nicméně, procesor 10 s výhodou nezpozdí přidělení (cyklu 3) nebo výpočet (cyklu 4) instrukce INST n+2, kterou předchází výpočet sérializované instrukce INST n+1. Tímto způsobem dosahuje procesor 10 plynulého přidělení instrukcí (jako je INST n+2), kterou předchází výpočet sérializované instrukce (jako je INST n+1). Také, výpočetní jednotka procesoru IQ je způsobilá, aby vydávala instrukce mimo pořadí z výpočtových stanic reservační jednotky do její výpočetní logiky (například výpočetní logiky 54 v Obr.2), i když nejstarší nevyřízená instrukce ve výpočetní jednotce reservační stanice je předmětem výpočtu sérializace.
Procesor 10 preferovaného provedení dosahuje vyšší výkonnosti než alternativních provedení. Jak znázorněno v Obr.5b, podle jednoho z alternativních postupů, přidělení (cyklus 8) instrukce INST i+2 je zpožděno v důsledku dekódování (cyklus 2) instrukce INST i+1 pro výpočet sérializace. V uvedeném alternativním postupu, instrukční přidělení (cyklus 8) instrukce INST i+2 je znovu obnoveno jen po dokončení všech předchozích přidělených instrukcí (například po cyklu 7 předchozího výpočtu sérializované instrukce INST i+1). Nedostatkem zmíněného alternativního postupu je, že výpočet je zpožděn pro každou instrukci (tak jako INST i+2), jež předchází výpočtu sérializované instrukce (tak jako INST i+1).
Jak bylo předem uvedeno, procesor 10 dosahuje plynulého přidělování instrukcí, jež předcházejí výpočtu sérializované instrukce. Odsuvná instrukce je výpočet sérializované instrukce a proto má užitek z výpočtu sérializovaného 'výpočtu preferovaného provedení. Kromě toho, podle jiného významného aspektu preferovaného provedení, obsahuje procesor 10 dále soustavu obvodů pro vydání výsledků (informace operandu určení) z odsuvné instrukce pro uložení do vybrané přejmenovací vyrovnávací paměti před zapsámím zpět informace operandu určení do jednoho z GPRs 32 .
Procesor 10 zabezpečí toto přejmenování, bez ohledu na to, zda určovací registr je jedním z GPRs 32 . K tomu účelu, procesor 10 použije své stávající dopředně soustavy obvodů svých reservačních stanic, současně se soustavou obvodů pro vyhledávání přejmenovacích vyrovnávacíc pamětí k řádnému upravení informace operandu určení (odsuvné instrukce) výchozímu registru přidělované instrukce po odsuvné instrukci. Bez použití této soustavy obvodů pro odsuvnou instrukci , nebylo by možno přidělit ostatní instrukce předcházející odsuvnou instrukci pokud by se nedokončila odsuvná instrukce, protože ostatní instrukce by mohly vyžadovat (jako svou informaci prvotního operandu) informaci operandu určení odsuvné instrukce.
Podle jiného důležitého aspektu preferovaného provedení, zkracuje procesor 10 přidělování instrukce výhodným postupem podle výjimek (IFDRE) týkajících se vyvolání a dekódování instrukce. Procesor 10 detekuje vyvolání nebo dekódování instrukce týkající se výjimky při vyvolávacím nebo dekódovacím stupni, když podmínkou výjimky je možnost úplné detekce z instrukce a stavu procesoru 10 . Příklady takového vyvolání nebo dekódování instrukce týkajícího se výjimek je instrukční výběr výpadku stránky, instrukční výběr uložení ochrany narušení, privilegovaného narušení instrukce a nepřípustné instrukce.
Podle detekce takového vyvolání nebo dekódování instrukce týkající se výjimky, sekvenční jednotka 18 s výhodou přidělí instrukci způsobující IFDRE resrvační stanici výpočetní jednotce, ale s EOK bitem uvolněným pro logickou‘ 0 jak shora uvedeno ve spojení s Obr. 2-4. Kromě toho, sekvenční jednotka 18 uloží indikací podmínky IFDRE nastavením výjimka” = 1 (zatímco se udržuje dok.onČeho = 0) ve vstupu přidruženém instrukci způsobující IFDRE v přeřazovat vyrovnávací paměti 76. Taková indikace identifikuje instrukci jako IFDRE-způsobující instrukci.
Jak shora podrobněji uvedeno v souvislosti s Obr. 2-4, uvolněním EOK bitu pro logickou 0, sekvenční jednotka 18. zabrání výpočetní jednotce provést přidělovací instrukci, i když jinak je tato instrukce připravena pro výpočet. Výpočetní jednotka podle toho provede takovou instrukci jen podle sekvenční jednotky 18 vysílající signál po jednom z připojených odpovídajících vedení, 6R, 86, RS., 2R, 22 nebo 24, jak shora uvedeno v souvislosti s Obr. 2-4.
Podle dokončení všech instrukcí předcházejících IFDREzpůsobující instrukci, sekvenční jednotka 18 zpracuje výjimku týkající se vyvolání nebo dekódování spíš dříve než vyšle signál k výpočetní jednotce po jednom z připojených odpovídajících vedení, 60, 86, 88, 20, 22 nebo 24. Tak, IFDRE- způsobující instrukce není nikdy výpočetní jednotkou provedena. Sekvenční jednotka 18 rozpozná instrukci jako
IFDRE-způsobující instrukci podle výjimka = 1 a skončeno = 0 v sdruženém vstupu IFDRE-způsobující instrukce v přeřazovací vyrovnávací paměti 76.
Tímto postupem, procesorlQ dává do proudu a urychluje přidělování instrukce přidělovací logikou 74 (Obr. 3), což je kritická rychlost soustavy obvodů v superskalámím procesoru. Následkem toho, procesorlQ preferovaného provedení dosahuje vyšší výkonnosti než alternativní uspořádání. Podle jednoho alternativního postupu procesor nikdy nepřiděluje IDRE způsobující instrukci. Takový alternativní postup má za následek komplikované a pomalé přidělování, protože pro každou instrukci, procesor potřebuje zjistit podmínku výjimky týkající se vyvolání a detekce instrukce dříve než se určí, zda instrukci přidělovat. Při tomto alternativním postupu, například procesor určuje zdaje třeba přidělit n-tou instrukci v závislosti od rozhodnutí, je-li n-tá instrukce nebo kterákoliv z předchozích instrukcí opatřena podmínkou výjimky tykající se vyvolání nebo detekce.
Za účelem porovnání, v preferovaném provedení, přidělovací logika 74 v Obr. 3 nezávisle zpracuje vyvolání nebo dekódování v souladu s podmínkami výjimky. Dokonce i po určení k případnému přidělení instrukce k výpočetní jednotce pro vykonání,sekvenční jednotka 18 rozhodne zda existuje pro instrukci IFDRE podmínka . Jestliže sekvenční jednotka 18 zjistí, že IFDRE podmínka pro instrukci existuje, potom vyšle sekvenční jednotka 18 indikaci IFDRE podmínky, aby se blokovalo provedení instrukce výpočetní jednotkou. Mnohem přesněji, podle toho jak sekvenční jednotka 18 určí existenci IFDRE podmínky pro instrukci, vyšle sekvenční jednotka 18 takovou indikaci při současném přidělení nastavením (1) výjimka = 1 (zatímco udržování skončeno = 0) v IFDREzpůsobujícím instrukčním sdruženém vstupu v přeřazovací vyrovnávací paměti 76 a (2) nastavením EOK bitu v IFDREzpůsobující instrukční reservační stanici na logickou 0.
Je to výhodné z toho důvodu, že po rozhodnutí přidělit instrukci, je normálně nerozumné zvrátit účinnost takového rozhodnutí a eventuelně nepřidělovat instrukci. Kromě toho, v průběhu přidělovacího cyklu jsou prováděny další operace následující po rozhodutí k přidělení instrukce. Podle toho, procesor 10 nepotřebuje zjišťovat jakoukoliv podmínku výjimky před určováním zda přidělovat každou instrukci. To je zejména výhodné pro sekvenční jednotku 18 přidělující vícenásobné instrukce v průběhu jednotlivého cyklu procesoru IQ.
Obr. 6 je koncepční znázornění přeřazovací vyrovnávací paměti 76 , ve které jsou zobrazeny čtyři instrukce jak dokončují výpočet (skončeno = 1) v průběhu stejného cyklu procesoru 10 . Obr. 7 je znázorněním různých stupňů čtyř instrukcí v Obr. 6. Obr. 8a-d jsou kocepční znázornění přej měno vacích vyrovnávacích pamětí 34 procesoru 10 .
Se zřetelem k Obr. 6 - 8, je významným hlediskem preferovaného provedení, že zapsat zpět je nezávislé na dokončení instrukce tak, jako stupeň zapsat zpět prováděné instrukce procesorem 10 je srovnatelný se stupněm instrukčního dokončení. Oddělené psaní zpět pro dokončení tímto způsobem je výhodné, neboť procesor 10 dosahuje efektivního zpracování za použití menšího počtu portů psaní zpět mezi přejmenovacími vyrovnávacími paměťmi a srchitekturovými registry. Například, jak patrno z Obr. 1, procesor 10 preferovaného provedení obsahuje dva porty psaní zpět mezi přejmenovacími vyrovnávacími paměťmi 34 a GPRs 32, a dva porty psaní zpět mezi přejmenovacími vyrovnávacími paměťmi 38 a FPRs 36. Při menším počtu portů psaní zpět, se sníží fysické velikosti přej měno vacích vyrovnávacích pamětí 34 a 38 jakož i architekturo vé registry 32 a 36. Kromě toho, dokončovací logika 80 (Obr. 3) se zařadí spíše do toku tak, že procesor 10 mnohem rychleji určí zda může být partikulární instrukce dokočena v průběhu současného cyklu.
Podle preferovaného provedení je schopen procesor 10 dokončit až čtyři instrukce v jednom cyklu. V preferovaném provedení také každá instrukce může vlastnit až dva určovací operandy. V důsledku toho, nezabezpečí-li procesor 10 oddělené psaní zpět od dokončení, bude procesor 10 potřebovat osm portů psaní zpět (například mezi přej měno vacími vyrovnávacími paměťmi 34 a GPRs 32) k dokončení čtyř instrukcí v partikulárním cyklu, jestliže každá ze čtyř instrukcí vlastní dva určovací operandy. Je tomu tak proto, že dokončení instrukce bude vyžadovat, aby port psaní zpět byl k disposici pro každý z instrukčních určovacích operand pro kopírování z přejmenovací vyrovnávací paměti do sdruženého architekčního registru.
Při menším počtu portů psaní zpět, stává se schopnost ověření portu zpětného psaní mnohem komplikovanější, jelikož připadá více instrukcí pro zpětné psaní v průběhu téhož cyklu.
• Důvod spočívá v tom, že dostupnost portu zpětného psaní pro partikulární instrukci v době partikulárního cyklu závisí na počtu portů zpětného psaní využitých pro předchozí instrukce po dobu téhož cyklu nebo předchozích cyklů.
Oddělením zpětného psaní od dokončení je výhodné tím,že dokočovací logika 80 (Obr. 3) procesoru 10 spíš se dostává do proudu. Je tomu tak proto, že dokončení instrukce je závislé na následujících podmínkách:
Podmínka 1 Výpočetní jednotka (ke které se instrukce přidělí) dokončí vykonání instrukce;
v
Podmínka 2 Zádně výjimky se nevyskytly ve spojení s jakýmkoliv stupněm zpracování instrukce; a
Podmínka 3 Žádná předchozí přidělená instrukce nesplňuje podmínku 1 a podmínku 2.
Oddělením dokončení od psaní zpět, procesor 10 kopíruje informaci určovacího operandu dokončené instrukce z přejmenovací vyrovnávací paměti pro uložení do architekčního registru po dobu partikulárního cyklu, je-li k disposici v průběhu cyklu. Není-li k disposici port zpětného psaní během tohoto cyklu, kopíruje procesor 10 informaci určovacího operandu z dokončené instrukce z přejmenovací paměti do architekčního registru v průběhu pozdějšího cyklu, když je port k disposici.
Přeřazovací vyrovnávací paměť v Obr. 6 uloží informaci pro čtyři instrukce při současném dokončení výpočtu v průběhu téhož cyklu procesoru 10 . Obr. 7 znázorňuje různé stupně čtyř instrukcí INST x, INST x+1, INST x+2, a INST x+3, které jsou příslušně sdruženy s čísly 2, 8, 2, a 10 přeřazovací vyrovnávací paměti v Obr. 6. Proto instrukce INST x vlastní jeden určovací operand (číslo -z- GPR určení = 1). Také instrukce INST x+1 vlastní jeden určovací operand (číslo -z GPR určení = 1). Za účelem srovnání, instrukce INST x+2 vlastní dva určovací operandy (číslo -z- GPR určení = 2). Podobně instrukce INST x+3 vlastní dva určovací operandy (číslo -z-GPR určení = 2). Jak patrno z Obr. 7, každá z instrukcí INST x, INST x+1, INST x+2, a INST x+3 dokončí výpočet na konci cyklu 4.
Obr. 8a-d jsou koncepční znázornění přej měno vacích vyrovnávacích pamětí 34 procesoru 10. Za účelem podrobnějšího objasnění jsou v dalším popise probrány pouze přejmenovací vyrovnávací paměti 34 jako příklady zpracování přej měno vacích vyrovnávacích pamětí 38 s pohyblivou řádovou čárkou. Jak patrno z Obr. 8a-d, přejmenovací vyrovnávací paměti 34 obsahují dvanáct přejmenovacích vyrovnávacích pamětí označených příslušnými štítky jejich čísel Q. -11. Sekvenční jednotka 18 přidělí čísla přejmenovacích vyrovnávacích pamětí 0-11 přiděleným instrukcím na první vstup první výstup bázové adresy a rotujícím postupem dále, až sekvenční jednotka 18 přidělí číslo d přejmenovací vyrovnávací paměti, následované postupně čísly 1-11 přejmenovací vyrovnávací paměti, potom znovu číslem d přejmenovací paměti.
Jak patrno z Obr. 8a-d, přejmenovací vyrovnávací paměť 2 se přiřadí k uložení informace paměťového určovacího operandu pro instrukci INST x. Přejmenovací vyrovnávací paměť 3 se přiřadí k uložení informace paměťového určovacího operandu pro instrukci INST x+1. Jelikož instrukce INST x+2 vlastní dva určovací operandy, obě přejmenovací vyrovnávací paměti 4 a 5 se přiřadí k uložení informace paměťového určovacího operandu pro instrukci INST x+2. Podobně, obě přejmenovací vyrovnávací paměti 6 a 7 se přiřadí k uložení informace paměťového určovacího operandu pro instrukci INST x+3.
Obr. 8 znázorňuje postavení přidělovacího indikátoru 80, indikátoru zpětného psaní 82 a dokončovacího indikátoru £4 na startu cyklů 4 a 5 Obr. 7.
Procesor 10 udržuje tyto indikátory pro řízení čtení a zapisování do přej měno vacích vyrovnávacích pamětí 34. Procesor 10 udržuje přidělovací indikátor 80 pro indikaci zda přejmenovací vyrovnávací paměť je přidělena k partikulární instrukci. Jak patrno z Obr. 8a, přidělovací indikátor 80 ukazuje na přejmenovací vyrovnávací paměť £, čímž indikuje, že tato paměť je nejbližší existující pamětí pro přidělení k nějaké instrukci.
Významným aspektem preferovaného provedení je, že procesor 10 udržuje indikátor 82 psaní zpět k indikaci zda přejmenovací vyrovnávací paměť (dříve přidělená partikulární instrukci) je k disposici pro opětovné přidělení jiné instrukci. Jak znázorněno v Obr. 8a, indikátor 82 psaní zpět ukazuje na přejmenovací vyrovnávací paměť 2, čímž současně indikuje, že přejmenovací vyrovnávací paměť 2 je nejbližší, ze které procesor 10 může kopírovat informaci určovacího operandu (uloženou v poli informace v Obr. 8a v přejmenovací vyrovnávací paměti ) pro jeden z registrů GPRs 32 (jak specifikováno v poli čísla registru přejmenovací vyrovnávací paměti na Obr. 8a).
Procesor 10 v důsledku toho, posune indikátor £2 psaní zpět (mine přejmenovací vyrovnávací paměť předtím přidělenou partikulární instrukci) podle procesoru IQ současně kopírujícího výsledek (informace určovacího operandu) partikulární instrukce z přejmenovací vyrovnávací paměti pro uložení v architekturovém registru. Tímto způsobem procesor 10 reservuje přejmenovací vyrovnávací paměť k uložení výsledku (informace určovacího operandu) partikulární instrukce pokud kopíruje procesor 10 výsledek do architekturového registru.
Procesor 10 také udržuje indikátor 84 dokončení k indikaci (pro přejmenovací vyrovnávací paměť předtím přidělené partikulární instrukci) zda partikulární instrukce splňuje následující podmínky :
Podmínka 1 Výpočetní jednotka (k níž instrukce je přidělena) dokončuje provedení instrukce;
Podmínka 2 Žádné výjimky nebyly zaznamenány ve spojení s kerýmkoliv stupněm zpracování instrukce; a
Podmínka 3 Jakákoliv dříve přidělená .instrukce splňuje podmínku 1 a podmínku 2.
Jak znázorněno v Obr. 8a, indikátor 84 dokončení označí přejmenovací vyrovnávací paměť 2, čímž současně označuje, že přejmenovací vyrovnávací paměť 2 je nejbližší přejmenovací vyrovnávací pamětí schopnou splnit podmínky 1, 2 a 3. Důležité hledisko preferovaného provedení spočívá v tom, že procesor 10 udrží indikátor 84 dokončení nezávislý na tom zda instrukční výsledek se kopíruje z přejmenovací vyrovnávací paměti pro uložení do architekturového registru.
Z toho vyplývá, že přejmenovací vstupy lze definovat jako přejmenovací vyrovnávací paměť směřující k označení indikátorem 84 dokončení a jeho následným přejmenovacím vyrovnávacím pamětem, jež předcházejí přejmenovací vyrovnávací paměť označenou přidělovacím indikátorem 80. Vstupy zpětného psaní lze definovat jako přejmenovací vyrovnávací paměť směřující k označení indikátorem 82 zpětného psaní a jeho následnými přejmenovacími vyrovnávacími paměťmi, které předcházejí přejmenovací vyrovnávací paměť označenou přidělovacím indikátorem 84 .
Vstupy zpětného psaní uloží výsledky instrukcí, které jsou dokončené, ale jejichž výsledky nemusí být kopírovány z vyrovnávacích pamětí do architekturo vých registrů, jako například v důsledku neexistence portů psaní do architekčních registrů.
Vstupy zpětného psaní jsou koncepčně umístěny mezi přejmenovací vstupy a architekční registry. Výsledek s výhodou může obejít vstupy zpětného psaní a být zapsán přímo do architekčních registrů, když existuje na dokončovacím stupni port zpětného psaní. Podobně jako přejmenovací vstupy, kromě toho procesor 10 zpracuje vstupy zpětného psaní na výstupní informaci pro výpočetní jednotku v situacích, kde výpočetní jednotka provádí instrukci specifikování architekčního registru přidruženého této informaci.
Obr. 8 znázorňuje například stav přidělovacího indikátoru 80, indikátoru 82 psaní zpět a druhého přidělovacího indikátoru 84 na startu cyklu 6 v Obr. 7. Jak patrno z Obr. 8b, přidělovací indikátor 80, zůstane nezměněn, protože procesor 10 nevlastní přidělovací dodatečné instrukce. Ze srovnání vyplývá, že přidělovací indikátor 84 se posunul z čísla 2 přejmenovacího registru do čísla 8, čímž současně indikuje dokončení při cyklu 5 čtyř instrukcí INST x, INST x+1, INST x+2, a INST x+3 s celkem šesti určovacími operandy.
Korně toho, indikátor 82 psaní zpět se posunul z čísla 2 přejmenovacího registru do čísla 4 přejmenovacího registru, čímž indikuje při cyklu 5 zpětného psaní informace přidělovací operace pro instrukce INST x a INST x+1. Obr. 7 znázorňuje tuto skutečnost současným ukázáním dokončení a psaní zpět (COMP/WBACK), se objeví společně při cyklu 5 pro instrukce INST x a INST x+1. Při tomto postupu, výsledky (v čísle 2 přejmenovacího registru a čísle 3 přejmenovacího registru) instrukcí INST x a INST x+1 vynechají vstupy psaní zpět a zapíší se přímo do GPRs 32 , protože na začátku cyklu 5 byly k disposici dva porty psaní zpět. V Obr. 8b se neposune indikátor 82 psaní zpět přes číslo 4 přejmenovacího registru, poněvadž oba porty psaní zpět se použijí při cyklu 5 ke psaní zpět výsledků instrukcí INST x a INST x+1.
Obr.8c ukazuje stav přidělovacího indikátoru 80, indikátoru 82 psaní zpět a dokončovacího indikátoru 84 na startu cyklu 7 v Obr.7. Jak znázorněno v Obr. 7 a 8c, oba porty zpětného psaní se použijí při cyklu 6 k zpětnému psaní dvou výsledků instrukce INST x+2. Indikátor 82 psaní zpět podle toho se posune z čísla 4 přej měno vacího registru na číslo 6 tohoto registru. Přidělovací indikátor 80 se nemění, poněvadž procesor 10 nepřidělil dodatečné instrukce.
Obr. 9 znázorňuje různé stupně čtyř instrukcí v situaci bez důležitého znaku preferovaného provedení, v němž oddělí procesor 10 dokončení od psaní zpět. Za účelem znázornění takové situace, ukazuje Obr. 9 různé stupně čtyř instrukcí INST y, INST y+1, INST y+2, a INST y+3, které jsou příslušně sdruženy s čísly 7, 8, 9 a 1.0 přejmenovací vyrovnávací paměti v Obr. 6.
Obr. lOa-d jsou koncepční zobrazení přejmenovacích vyrovnávací paměti podle Obr. 9. Mnohem přesněji, Obr. 10a ukazuje stav přidělovacího indikátoru 90 a dokončovacího indikátoru 94 na startu cyklů 4 a 5 v Obr. 9. Obr. 10b ukazuje stav přidělovacího indikátoru 90 a dokončovacího indikátoru 94 na startu cyklu 6 v Obr. 9. Obr. 10c ukazuje stav přidělovacího indikátoru 90 a dokončovacího indikátoru 24 na startu cyklu cyklu 9. Obr. lOd ukazuje stav přidělovacího indikátoru 90 a dokončovacího indikátoru 24 na startu cyklu 8 v Obr. 9.
Jak znázorněno v Obr. lOa-d, bez důležitého znaku preferovaného provedení, ve kterém odděluje procesor _TQ dokončení od psaní zpět, mohla by partikulární instrukce (opatřená přidělovací přejmenovací vyrovnávací pamětí) být dokončena jenom když je partikulární instrukční výsledek skutečně kopírován z přidělovací přejmenovací vyrovnávací paměti pro uložení do architekčního registru. Za účelem porovnání s důležitým význakem preferovaného provedení, ve kterém procesor 10 dále udržuje indikátor 82 psaní zpět, aby i
• ·· » • ·· ** ·· * · · · • · · ·· « · ···· · • · · · *·· ·· «· označil zda přejmenovací vyrovnávací paměť (předtím přidělená partikulární instrukci) je k disposici pro opětovné přidělení další instrukci. Kromě toho, procesor 10 dokončí partikulární instrukci bez ohledu na to zda partikulární instrukční výsledek je skutečně kopírován z procesor 10 paměti pro uložení do architekčního registru. Z toho důvodu, procesor lf) je způsobilý k dokončení až čtyř instrukcí v partikulárním cyklu, i kdyby každá ze čtyř instrukcí vlastnila dvě určovací operandy, a též v případě, že méně než všechny určovací operandy jsou kopírovány do GPRs 32 v průběhu partikulárního cyklu.
Obr. 11 je blokové schéma alternativního provedení přejmenovacích vyrovnávacích pamětí 34, v nichž jsou vstupy psaní zpět uloženy do vyrovnávací paměti 110 odděleně od přejmenovacích vstupů. Tyto přejmenovací vstupy jsou uloženy do vyrovnávací paměti 112 . Informace z přejmenovacího vstupu vyrovnávací paměti 112 se postoupí k uložení do vstupu psaní zpět vyrovnávací paměti 110 při partikulárním cyklu v odezvě na dokončení v průběhu partikulárního cyklu partikulární instrukce, pro kterou je přidělen přejmenovací vstup. Informace z přejmenovacího vstupu vyrovnávací paměti 110 je vyslána pro uložení do jednoho z GPRs 32 při partikulárním cyklu v odezvě na existenci připartikulámím cyklu jednoho ze dvou portů psaní zpět do GPRs 32 .
Vyrovnávací paměť 112 předá informaci do vyrovnávací paměti 110 přes jakýkoliv z osmi portů jak patrno z Obr. 11 tak, že vyrovnávací paměť 112 je způsobilá k vyslání informace do vyrovnávací paměti 110 z až do osmi přejenovacích vstupů v průběhu jakéhokoliv cyklu procesoru 10 . Následkem toho procesor IQ je schopen dokončit až čtyři instrukce v partikulárním cyklu, i když každá ze čtyř instrukcí vlastní dva určovací operandy, a též vpřípadě, že méně než všechny určovací operandy jsou kopírovány do GPRs 32 při partikulárním cyklu. S výhodou, výsledek (informace určovacího operandu) může obejít psaní zpět vyrovnávací paměti 110 a být přímo zapsán do GPRs 32, jestliže port psaní zpět je k disposici na dokončovacím stupni.
Obejití dosáhne procesor 10 vhodným zpracováním multiplexerů 113a a 113b, které jsou spojeny s vyrovnávací pamětí 110 a 112 a s GPRs 32 jak patrno z Obr. 11.
Výhoda alternativního provedení přejmenovacích vyrovnávacích pamětí 34 v Obr. 11 spočívá v tom, že přejmenovací vstup ve vyrovnávací paměti 112 je znovu přidělitelný další istrukci po dokončení (ještě před psaním zpět) přejmenovací vstupní předchozí sdružené instrukce (pro kterou přejmenovací vstup byl předtím přidělen), protože přejmenovací vstupní informace je s výhodou postoupena pro uložení na vstup psaní zpět vyrovnávací paměti 110 podle dokončení předchozí sdružené instrukce. Podle ještě jiného hlediska, multiplexer 114 v Obr. 11 předá zvolenou informaci do výpočetních jednotek z vyrovnávací paměti 110 nebo z vyrovnávací paměti 112 v situacích kde výpočetní jednotka provádí instrukci specifikující architekční registr sdružený s touto informací. Ačkoli procesor 10 preferovaného provedení vlastní dva porty psaní zpět mezi přejmenovacími vyrovnávacími paměťmi a architekčními registry, je vhodné číslo portů psaní zpět pro partikulární provedení funkcí celkem přijatelnou, že vstupy přejmenovací a psaní zpět se stanou zcela kompletními a proto zpozdí přidělení instrukce.
Jak shora blíže uvedeno s přihlédnutím k Obr. 2-5, zpozdí procesor 10 provedení výpočetní sérializované instrukce nejméně než se dokončí všechny předchozí instrukce ve dvou situacích. V první situaci není instrukce provedena spekulativně. V druhé situaci instrukce specifikuje nejméně jeden prvotní operand, pro který procesor 10 neobsahuje posuvnou soustavu obvodů.
Pokud se týká první situace pracují některé instrukce na na specielních účelových architekčních registrecg (SPRs) 40 (Obr. 1), kde instrukční výsledky jsou zapsány přímo do SPRs 40 bez mezilehlého uložení v přejmenovacích vyrovnávacích pamětích. Příkladem takové instrukce je posuvná instrukce, která posune informaci k jednomu SRPs 40 z jednoho GPRs 32. Jak patrno z Obr. 1, jsou posuvné instrukce prováděny CFXU2Ú.
Následně po provedení instrukce ihned aktualizuje jeden SPRs 4Q. Podobně, uložení ihned aktualizuje paměťové místo v datové rychlé vyrovnávací paměti 16 v Obr. 1 po provedení. Procesor IQ neprovede spekulativně takové istrukce (kde instrukční výsledky jsou psány přímo do architekčního registru nebo paměťové místo bez mezilehlého uložení do přejmenovacích vyrovnávacích pamětí), takže procesor 10 je schopen docílit přesná přerušení a přesné výjimky. Podle toho, aby se zajistilo řádné dokončení a psaní zpět, zpozdí procesor IQ posuvnou instrukci a paměťovou instrukci než se dokončí všechny předchozí instrukce.
Když instrukce přidělená výpočetní jednoce vlastní svůj přidružený EOK bit (v poli typu instrukce instrukčního přidruženého vstupu v přejmenovací vyrovnávací paměti 76 ) uvolněný pro logickou 0, potom výpočetní sérializovaná logika 84 vyšle signál (po jednom z příslušných vedení 60, 80, 88, 90, 92 a 94 spojených s výpočetní jednotkou) podle dokončení všech předešlých instrukcí přidělné instrukce. Výpočetní jednotka provede přidělení instrukce jenom v závislosti na výpočetní sérializované logice 84 vysílající signál.
Obr. 12a-c jsou koncepční znázornění přejmenovací paměti 76. Obr. 13 je ilustrací různých stupňů pěti instrukcí v Obr.l2a-c. Obr. 14a-f jsou koncepční ilustrace přejmenovacích vyrovnávacích pamětí 34 procesoru IQ.
Obr. 12a znázorňuje stav přejmenovací vyrovnávací paměti 26 na startu cyklu 4 v Obr. 13. V důsledku toho přejmenovací vyrovnávací paměť 76 v Obr. 12a uloží informaci pro čtyři instrukce přidělené v průběhu cyklu 3 v Obr. 13. Obr. 13 ukazuje různé stupně čtyř instrukcí INST a, INST a+1, INST a+2, a INST a+3, které jsou příslušně sdruženy s čísly 3, 4, 5 a 6 přejmenovací vyrovnávací paměti 76 v Obr. 12a.
Jak patrno z Obr. 12a, instrukce INST a je přidělena FXUA 22 a vlastní dva určovací operandy (určení čísla GPR = 2). Za účelem porovnání, instrukce IST a+1 je přidělena FXUB 24), ale vlastní jeden určovací operand (určení čísla GPR = 1) .
Instrukce INST a+2 je paměťová instrukce přidělená k LSU 28 a vlastní nulový určovací operand (určovací číslo GPR = 0); kromě toho, číslo přejmenovací vyrovnávací paměti 5 (sdružené s instrukcí INST a+2) vlastní EOK bit = 0 podle instrukce INST a+2 současně prováděné sérializované. Instrukce INST a+3 je přidělena k CFXU 26 a vlastní jeden určovací operand (určovací číslo GPR = 1).
Podle důležitého hlediska preferovaného provedení určí sekvenční jednotka 18 zda je možná výjimka podle výsledku výpočtu instrukce. Sekvenční jednotka 18 vykoná toto určení před instrukčním výpočtem. Není-li výjimka možná pro instrukci, sekvenční jednotka 18 nastaví (podle přidělené instrukce) skončeno = 1 na vstupu instrukční sdružené přejmenovací vyrovnávací paměti, nezávisle na tom zda skutečně procesor 10 ukončil výpočet instrukce, pro kterou není možná výjimka.
V této situaci kromě toho, procesor 10 dokončí instrukci vzhledem k tomu, že procesor 10 současně dokončuje všechny předchozí instrukce, bez ohledu na to, zda-li procesor IQ skutečně dokončil výpočet instrukce, pro níž není možná výjimka. Procesor 10 tedy dokončí instrukci v odezvě na to, zda-li není stanovena výjimka podle výpočtu instrukce jakož i každé instrukce předcházející tuto instrukci v programovém sledu, nezávisle od toho zda procesorlQ dokončil výpočet každé instrukce, pro níž není možná výjimka. Tak je tedy možné, aby instrukční stupeň dokončení předcházel instrukční stupeň výpočtu; tímto způsobem procesor 10 napomáhá brzkému dokončení instrukce.
Pomocí brzkého dokončení, procesor 10 s výhodou je schopen provést následný výpočet sérializované instrukce (tak jako posuvné instrukce nebo paměťové instrukce) kde výsledky jsou psány přímo do architekčního registru nebo paměťového místa bez mezilehlého uložení v přejmenovací vyrovnávací paměti. Je to hodnověrné aniž by se snížila schopnost procesoru 10 dosáhnout přesná přerušení a přesné výimky. Je tomu tak proto, že všechny předešlé instrukce buď (1) skončily výpočet bez výjimek nebo (2) budou končit výpočet bez výjimek. Tímto způsobem pokračuje procesor 10. v zajištění řádného dokončení a řádného psaní zpět.
Například, v Obr. 12a, instrukce INST a+1 a INST a+3 nejsou schopny způsobit výjimku tak, že dokončeno = 1 v číslech 4 a 6 přejmenovací vyrovnávací paměti.
Obr. 14a znázorňuje stav přidělovacího indikátoru AL 80., indikátoru psaní zpět WB 82, a přidělovacího indikátoru CO 84 přejmenovacích vyrovnávacích pamětí 34 na startu cyklu 4 v Obr. 13. Obr. 14a tudíž odpovídá Obr. 12a. Jak patrno z Obr. 14a, WB 82 a CO 84 indikují přejmenovací vyrovnávací paměť 2, zatímco AL 80 indikuje přejmenovací vyrovnávací paměť 6. Přejmenovací vyrovnávací paměti 2 a 3 jsou přiděleny instrukci INST a. Přejmenovací vyrovnávací paměť 4 je přidělena instrukci INST a+1, a přejmenovací vyrovnávací paměť 5 je přidělena 'instrukci INST a+3. Obzvláště, instrukce INST a+2 nevlastní přidělenou přejmenovací vyrovnávací paměť, protože instrukce INST a+2 má nulové určovací operandy. V přejmenovacích vyrovnávacích pamětích 2 a 5, informace platná = 0, současně naznačuje, že pole informace těchto přejmenovacích vyrovnávacích pamětích nemá paměťová platná data. Na startu cyklu 4 (Obr. 13), informace platná 0, poněvadž instrukce INST a, INST a+1, INST a+2 a INST a+3 nemají ještě dokončený výpočet.
V přejmenovací vyrovnávací paměti 4, přenos platný = 1, označuje, že INST a+1 modifikuje CA registr 42. Zejména, jak předtím uvedeno, instrukce INST a+1 není schopna způsobit výjimku, takže skončeno = 1 v přejmenovací vyrovnávací paměti 4 (Obr. 12a). Procesor 10 tedy podpoří brzké dokončení instrukcí, které modifikují CA registr 42.
Jak znázorňují Obr. 14a-g, informace CA bitu je přechodně uložena v přejmenovacích vyrovnávacích pamětích 34. Nicméně, procesor IQ preferovaného provedení neobsahuje soustavu obvodů pro předsunutí informace CA bitu do výpočetních jednotek z přejmenovacích vyrovnávacích pamětí 34. Jestliže informace partikulárního instrukčního prvotního operandu obsahuje CA registr 42, potom partikulární instrukce je opatřena závislostí informace prvotního operandu na výsledcích předchozí instrukce (když existuje), která modifikuje CA registr 42.
Obr. 12b znázorňuje stav . 12b, přejmenovací vyrovnávací paměti 76 na startu cyklu 5 v Obr. 13. Jak patrno z Obr. 12b přejmenovací vyrovnávací paměť 76 uloží informaci pro instrukci INST a+4 přidělenou v průběhu cyklu 4 Obr. 13. Obr. 13 znázorňuje různé stupně instrukce INST a+4, která je sdružena s číslem 7 přejmenovací vyrovnávací paměti. Jak znázorněno v Obr. 12b, instrukce INST a+4 je přidělena k FXUA 22 a je opatřena jedním určovacím operandem (GPR určovací číslo = 1); kromě toho, číslo 7 přejmenovací vyrovnávací paměti (sdružené s instrukcí INST a+4) vlastní EOK = 0 podle instrukce INST a+4 současně vykonané sérializovaně.
Mimo to, instrukce INST a potom dokončila výpočet při cyklu 4 , skončeno = 1 v Čísle 3 přejmenovací vyrovnávací paměti v Obr. 12b. Se zřetelem k Obr. 13, instrukce INST a+2 je paměťová instrukce. V průběhu cyklu 4, LSU 28 dokončila první výpočetní stupeň EXEC A paměťové instrukce INST a+2. Při EXEC A, LSU 28 přeloží paměťovou instrukci a zkouší ji pro paměťovou ochranu. Z toho důvodu, skončeno = 1 v čísle 5 přejmenovací vyrovnávací paměti v Obr. 12b. S odvoláním na Obr. 13, instrukce INST a+2 je paměťová instrukce. Při cyklu 4, LSU 28 dokončí první výpočetní stupeň EXEC A paměťové instrukce INST a+2. Při EXEC A, LSU 28. přeloží paměťovou instrukci a zkouší ji uložit do paměťové ochrany. Následkem toho, skončeno = 1 v čísle 5 přejmenovací vyrovnávací paměti v Obr. 12b.
Obr. 14b znázorňuje stav přidělovacího indikátoru AL 80, indikátoru WB 82, psaní zpět a dokončovacího indikátoru CO 84 přejmenovacích vyrovnávacích pamětí 34 na startu cyklu 5 v Obr. 13. Obr. 14b odpovídá tudíž Obr. 12b.
Jak znázorňuje Ob. 14b, pokračují WB 82 a CO £4 v indikování přejmenovací vyrovnávací paměti 2, a AL 80 se posune vpřed z přejmenovací vyrovnávací paměti 6 a indikuje přejmenovací vyrovnávací paměť 7. V důsledku toho, přejmenovací vyrovnávací paměť 6 je přidělena instrukci INST a+4.
V přejmenovací vyrovnávací paměti 6, informace platná - 0, současně indikuje, že pole informace této přejmenovací vyrovnávací paměti neukládá platná data. Na startu cyklu 5 (Obr. 13), informace platná = 0 v přejmenovací vyrovnávací paměti 6, protože instrukce INST a+4 neskončila ještě výpočet. Podle Obr. 14b, informace platná = 1 v přej měno vacích vyrovnávacích pamětích 2 a 3 se zřetelem na instrukce INST a jakož i INST a+1 právě končí výpočet při cyklu 4 jak patrno z Obr. 13, indikuje, že pole informace přejmenovacích vyrovnávacích pamětích 2 a 3 ukládá platná data (uvedená v Obr. 14b jako DATA v polích informace).
V přejmenovací vyrovnávací paměti 6, platná informace = 1, indikuje , že INST a+4 modifikuje CA registr 42. Kromě toho, infromace prvotního operandu instrukce INST a+4 obsahuje CA registr 42, takže INST a+4 je výpočetní sérializovaná instrukce se závislostí informace prvotního operandu na výsledcích předchozí instrukce INST a+1, která modifikuje CA registr 42_. Ačkoliv instrukce INST a+3 nemodifikuje CA registr 42, INST a+3 také obsahuje závislost informace prvotního operandu na výsledcích předešlé instrukce INST a+1 jak naznačeno v Obr. 13 šipkou 100.
Obr. 12c znázorňuje stav přejmenovací vyrovnávací paměti 76 na startu cyklu 6 v Obr. 13. Obr. 14c znázorňuje stav přidělovacího indikátoru AL 80, indikátoru psaní zpět WB 82, a indikátoru dokončení CO 84 přejmenovacích vyrovnávacích pamětích 34 na startu cyklu 6 v Obr. 13. Obr. 14c tedy odpovídá Obr. 12c.
Jak znázorňuje Obr. 12c, informace v číslech 3, 4, 5, a 6 přejmenovacích vyrovnávacích pamětích byla vypuštěna podle instrukcí INST a, INST a+1, INST a+2 a INST a+3 dokončení při cyklu 5 jak znázorněno v Obr. 13. Zejména instrukce INST a+1 dříve dokončená při cyklu 5 před instrukcí INST a+1 dokončující výpočet při cylůu 5, jak naznačeno v Obr. 13 pomocí ECOMP/EXEC; instrukce INST a+1 je začleněna v třídě instrukcí, které vyžadují více než jeden cyklus, aby procesor 10 provedl výpočet.
S odvoláním na Obr. 14c, procesor 10 posune CO 84 mimo přejmenovací vyrovnávací paměť (například mimo přejmenovací vyrovnávací paměť 5 před startem cyklu 6) předtím přiřazenou partikulární instrukci (například INST a+3), aby dokončil všechny předchozí instrukce (například INST a, INST a+1, a INST a+2), bez ohledu na to zda procesorlQ. skutečně dokončil výpočet partikulární istrukce (například INST a+3, jež pokračuje ve výpočtu při cyklech 68)·
Rovněž, při cyklu 5, výpočetňí sérializovaná logika 84 (Obr. 3) vyšle signál po vedení 92 připojeném k LSU 28, aby se dokončily instrukce INST a jakož i INST a+1; což je způsobeno tím, že instrukce INST a+2 (která byla přidělena k LSU 28 při cyklu 3) postoupila svůj přiřazený EOK bit v přejmenovací vyrovnávací paměť 5 do logiky 0.
V průběhu cyklu 5, paměťová instrukce a+2 je dokončena, jako odezva na skončení (cyklus 4) výpočetního stupně EXEC A bez výjimek a na kompletaci (cyklus 5) přechozích instrukcí INST a jakož i INST a+1. V průběhu druhého výpočetního stupně EXEC B, LSU 28 skutečně zapíše informaci na paměťové místo rychlé vyrovnávací paměti 16, LSU 28 vykoná stupeň EXEC B paměťové instrukce INST a+2 jen v odezvě na výpočet sérializované logiky 84 vysílající signál po vedení 22.
Jak znázorněno v Obr. 14c, AL 80 pokračuje indikací přejmenovací vyrovnávací paměti 7, a CO 84 se posunula z přejmenovací vyrovnávací paměti 2 a směřuje k přejmenovací vyrovnávací paměti 6, v odezvě na předešlé instrukce INST a, INST a+1 a INST a+3 kompletující při cyklu 5.
Kromě toho, jak znázorněno v Obr. 13, byly okopírovány dva výsledky instrukce INST a z přejmenovací vyrovnávací paměti 2 a 3 do GPRs 32 (Obr. 1) při cyklu 5. Jak znázorněno v Obr. 14c, WB 82 se tím přesunula z přejmenovací vyrovnávací paměti 2 a směřuje k přejmenovací vyrovnávací paměti 4; kromě toho, informace v přejmenovacích vyrovnávacích pamětích 2 a 3. byla zrušena v důsledku dvou výsledků instrukce INST a, jež byla okopírována z přejmenovacích vyrovnávacích pamětí 2 a 3. do GPRs 32 (Obr.l) při cyklu 5. Jak znázorněno v Obr. 14c, posunula se tedy WB 82 z přejmenovací vyrovnávací paměti 2 a směřuje do přejmenovací vyrovnávací paměti 4; kromě toho, informace v přejmenovacích vyrovnávacích pamětích 2 a 3. se zrušila na základě dvou výsledků instrukce INST a , které se kopírují z přejmenovacích vyrovnávacích pamětí 2 a 3 do GPRs 32 (Obr. 1) při cyklu 5.
V Obr. 14c, platná informace — 1 v přejmenovací vyrovnávací paměti 4 podle instrukce INST a+1 dokončuje výpočet při cyklu 5 jak patrno z Obr. 13. Tím se indikuje, že pole informace přejmenovací vyrovnávací paměti 4 uloží platná data (označená v Obr. 14c jako DATA v poli informace) a , že pole přenos přejmenovací vyrovnávací paměti 4 uloží platná data (označená v Obr. 14c značkou CA v poli přenos). Jelikož INST a+4 je výpočetní sérializovaná instrukce se závislostí informace prvotního operandu na výsledcích instrukce INST a+1, která modifikuje CA registr 42, a jelikož pole Přenos přejmenovacích vyrovnávacích pamětí 34 se neposune vpřed, procesor 10 zpozdí výpočet instrukce INST a+4 do té doby, než se výsledek přenos instrukce INST a+1 okopíruje z přejmenovací vyrovnávací paměti 4 do GPRs 32 (Obr. 1) při stupni psaní zpět (WBACK) instrukce INST a+1 v cyklu 6.
Při srovnání, instrukce INST a+3 se také opatří závislostí informace prvotního operandu na výsledcích DATA instrukce INST a+1, ale pole informace přejmenovacích vyrovnávacích pamětí 34 se posune vpřed. Proto, podle informace platná = 1 v přejmenovací vyrovnávací paměti 4 (naznačuje, že instrukce INST a+1 skončila výpočet při cyklu 5), procesor 10 inicijuje výpočet instrukce INST a+3 při cyklu 6 před dokončením stupně psaní zpět instrukce INST a+1.
Obr. 14d znázorňuje stav přidělovacího indikátoru AL 80, indikátoru psaní zpět WB 82, a dokončovacího indikátoru CO 84 přejmenovacích vyrovnávacích pamětí 34 na startu cyklu 7 v Obr. 13. Jak znázorněno v Obr. 14d, pokračuje AL 80 indikovat přejmenovací vyrovnávací paměť 7, a CO 84 pokračuje indikovat přejmenovací vyrovnávací paměť 6. Jak patrno z Obr. 13, výsledek instrukce INST a+1 se okpíroval z přejmenovací vyrovnávací paměti 4 do GPRs 32 (Obr. 1) při cylu 6. Proto, jak znázorněno v Obr. 14d, se posunula WB 82 z přejmenovací vyrovnávací paměti 4 a indikuje přejmenovací vyrovnávací paměť 5; kromě toho, informace v přejmenovací vyrovnávací paměti 4 se zrušila na základě výsledku instrukce INST a+1 okopírované z přejmenovací vyrovnávací paměti 4 do GPRs 32 (Obr. 1) při cykřu 6.
V preferovaném provedení, pro výpočet sérializované instrukce (například INST a+4) se závislostí informace prvotního operandu na nedopředném operandu (například informace CA bitu určeného pro CA registr 42), procesor IQ provede výpočet sérializované instrukce (například INST a+4) v závislosti na přejmenovacích vyrovnávacích pamětích 24 indikujících:
(1) všechny předchozí instrukce jsou úplné; a (2) jestliže stupeň psaní zpět kterékoli předchozí doplněné instrukce není ještě skončen, žádná taková předchozí instrukce nemodifikuje nedopředný operand.
Proto, v Obr. 14d, CO 84 směřuje k přejmenovací vyrovnávací paměti 6, čímž indikuje pro instrukci INST a+4, že všechny předchozí instrukce jsou úplné. V Obr. 14d kromě toho, WB 82 směřuje k přejmenovací vyrovnávací paměti 5, přičemž indikuje, že ačkoliv stupeň psaní zpět předchozí úplné instrukce INST a+3 není ještě skončen, instrukce INST a+3 nemodifikuje ještě žádnou nedopřednou informaci určenou pro CA registr 42 (protože platný přenos = 0 v přejmenovací vyrovnávací paměti 5). Procesor 10 tedy provede instrukci INST a+4 při cyklu 7.
V alternativním provedení, pro výpočet sérializované instrukce (například INST a+4) se závislostí informace prvotního operandu na nedopředném operandu (například informace CA bitu určeného pro CA registr 42), provede procesor 10 výpočet sérializované instrukce (například INST a+4) v závislosti na přejmenovacích vyrovnávacích pamětích 34 indikujících:
(1) všechny předchozí instrukce jsou úplné; a (2) stupně psaní zpět všech předchozích úplné instrukce jsou skončeny tak, že WB 82 a CÓ 84 směřují k stejné přejmenovací vyrovnávací paměti.
Obr. 14e znázorňuje stav přidělovacího idikátoru AL 80, indikátoru psaní zpět WB 82, a přidělovacího indikátoru CO 84 přejmenovacích vyrovnávacích pamětích 34 na startu cyklu 8 Obr. 13. Jak patrno z Obr. 14e, pokračuje AL 80 směřovat ke stejné přejmenovací vyrovnávací paměti 7, a WB 82 pokračuje směřovat k stejné přejmenovací vyrovnávací paměti 5. Instrukce INST a+4 skončí výpočet a kompletuje při cyklu 7 předtím než instrukce INST a+4 skončí výpočet při cyklu 7, jak indikováno v Obr. 13 pomocí EXEC/COMP. Následkem toho, jak znázorněno v Obr. 14e, CO 84 se posune vpřed z přejmenovací vyrovnávací paměti 6 a směřuje k přejmenovací vyrovnávací paměti 7.
Procesor 10 s výhodou posune vpřed CO 84 mimo přejmenovací vyrovnávací paměť (například mimo přejmenovací vyrovnávací 6 pře startem cyklu 8) předtím přiřazené k partikulární instrukci ( například INST a+4) podle procesoru 10 kompletujícího všechny předešlé instrukce (například INST a, INST a+1, INST a+2 a INST a+3), bez ohledu zda procesor 10 skutečně skončil výpočet všech předchozích instrukcí.
V Obr. 14e , platná informace = 1 v přejmenovací vyrovnávací paměti 6 podle instrukce INST a+4 končící výpočet při cyklu 7 jak patrno z Obr. 13. Tím se naznačuje, že pole informace přejmenovací vyrovnávací paměti 6 uloží platná data (v Obr. 14e označená jako DATA v poli informace) a pole přenos přejmenovací vyrovnávací paměti 6 tudíž uloží platná data (v Obr.l4e označená jako CA v poli přenosu).
Obr. 14f znázorňuje stav přidělovacího indikátoru AL 80, indikátoru psaní zpět WB 82, a kompletovacího indikátoru CO 84 přejmenovacích vyrovnávacích pamětích 34 na startu cyklu 9 v Obr. 13. Jak znázorněno v Obr. 14f, AL £Q a CO £4 pokračují směřovat k přejmenovací vyrovnávací paměti 7, a WB 82 pokračuje směřovat k přejmenovací vyrovnávací paměti 5. V Obr. 14f, platná informace = 1 v přejmenovací vyrovnávací paměti 5 v odezvě na instrukci INST a+3 právě končí výpočet při cyklu * 8. Tím se indikuje, že pole informace přejmenovací vyrovnávací paměti 5 ukládá platná data (což znázorňuje v Obr. 14e v poli informace znak DATA).
Obr. 14g znázorňuje stav přidělovacího indikátoru AL 80, indikátoru psaní zpět WB 82, a kompletovacího indikátoru CO 84 přejmenovacích vyrovnávacích pamětí 34 na startu cyklu 10 v Obr. 13. Jak znázorněno v Obr. 14g, AL 80 a CO 84 směřují i dále k přejmenovací vyrovnávací paměti 7. Jak znázorněno v Obr. 13, výsledky instrukcí INST a+3 a INST a+4, byly překopírovány z přejmenovacích vyrovnávacích pamětí 3 a 6 do GPRs .32 (Obr. 1) při cyklu 9. Podle toho, jak patrno z Obr. 14g, posunulo se WB 82 vpřed z přejmenovací vyrovnávací paměti 5 a směřuje k přejmenovací vyrovnávací paměti 7; kromě toho, informace v přejmenovacích vyrovnávacích pamětích 5 a 6 byla zrušena na základě výsledků instrukcí INST a+3 a INST a+4 překopírovaných z přejmenovacích vyrovnávacích pamětích 5 a 6 do GPRs 32 (Obr. 1) při cyklu 9.
Obr. 15 je ilustrací různých stupňů pěti instrukcí v Obr. 12a-c v alternativním provedení bez znaku předčasné dpkončení preferovaného provedení. Obr. 16a-h jsou koncepční ilustrace přejmenovacích vyrovnávacích pamětí 34 procesoru 10 při různých cyklech zpracování instrukce ilustrované v Obr. 15. Jak znázorněno v Obr. 15, bez znaku preferovaného provedení předčasné dokončení, zpozdí se výpočet instrukce INST a+4 až do cyklu 10, a výsledky dokončení/zápisu zpět instrukce INST a+4 se zpozdí až do cyklu 11. Je to způsobeno tím, že instrukce INST a+4 je prováděcí sérializovanou instrukcí, jejíž výpočet je zpožděn než jsou dokončeny všechny předchozí instrukce. Bez znaku preferovaného provedení předčasné dokončení, instrukce INST a+3 se nedokončí až do cyklu 2, čímž se zpozdí výpočet instrukce INST a+4 až do cyklu IQ.
Při srovnání, v Obr. 13, instrukce INST a+3 se předčasně dokončí při cyklu 5., a instrukce INST a+4 se provede při cyklu 2. Instrukce INST a+4 je prováděcí sérializovanou instrukcí opatřená závislostí informace prvotního operandu na výsledcích předchozí instrukce INST a+1, která modifikuje informaci nedopředného CA bitu určeného pro registr CA 42. Nicméně, v Obr. 13, výpočet instrukce INST a+4 se provede při cyklu 2, a dokončení/zapsat zpět výsledků instrukce INST a+4 se provede při cyklu 2. Proto, v Obr. 13 se znakem předčasné dokončení preferovaného provedení, výpočet, dokončení, a stupně psaní zpět instrukce INST a+4 se provedou dříve než v Obr. 15 bez znaku předčasné dokončení.
Procesor 10 zpozdí výpočet instrukce specifikující nedopředné prvotní operandy (například SPRs 40 a registr CA 42) nejméně tak dlouho než se dokončí všechny předchozí instrukce. Je to z toho důvodu že, výpočet instrukce je podřízen informaci prvotního operandu, který je k disposici a platný v architekturo vých registrech. Příklady takových instrukcí jsou (1) prodloužená aritmetická instrukce, kterou čte registr CA 42 a odsuvná instrukce, která posunuje informaci jednoho z registrů SPRs 40 do jednoho z registrů (jPRs32.
I když všechny předchozí instrukce jsou úplné, je možné, že přechozí instrukce, jež má být předčasně dokončena, svým prováděcím stupněm předchází svůj stupeň dokončení. Jak shora uvedeno se zřetelem k Obr. 1-5, procesor 10 obsahuje soustavu obvodů pro posunutí informace vpřed k prováděcím jednotkám od registrů GPRs 32, FPRs 36, přejmenovacích vyrovnávacích pamětí 34 a 38, a řídících registrů. Když partikulární instrukce je opatřena závislostí informace prvotního operandu na výsledcích předchozí instrukce předčasného dokončení, a když informace prvotního operandu je podpořena takovou dopřednou soustavou obvodů procesoru 10, potom procesor 10 zpozdí provedení partikulární instrukce než procesor 10 skončí předčasné dokončení instrukčního výpočetního stupně (kdy instrukční výsledky předčasného dokončení jsou k disiposici a platné v přejmenovací vyrovnávací paměti).
Jestliže informace prvotního operandu není podpořena takovou dopřednou soustavou obvodů procesoru 10, potom procesor 10 zpozdí provedení partikulární instrukce než procesor 10 skončí předčasné dokončení instrukčního výpočetního stupně (kdy instrukční výsledky předčasného dokončení jsou k disiposici a platné v architekturovém registru). Jestliže instrukce předčasného dokončení neskončila provedení, potom instrukční výsledek (informace operandu určení) není k disposici. V takové situaci, proto procesor 10 zpozdí předčasné dokončení stupně instrukčního psaní zpět až provedení instrukce skončí
Je-li instrukce závislá na předčasném dokončení, potom vysílá sekvenční jednotka 18 indikační signál, přičemž instrukci přidělí instrukčně sdružené prováděcí jednotce. Podle indikačního signálu se nepokusí sdružená prováděcí jednotka modifikovat instrukčně sdružený vstup v přeřazovací vyrovnávací paměti 76. Je to z toho důvodu, že po dokončení instrukce přiřazené vstupu přeřazovací vyrovnávací paměti, vstup přeřazovací vyrovnávací paměti závisí na novém přiřazení k jiné instrukci tak, že není již platná informace na vstupu přeřazovací vyrovnávací paměti.
Podle toho, zda-li instrukce závisí na předčasném dokončení, potom vstup instrukčně sdružený přeřazovací vyrovnávací paměti může být neplatný předtím než instrukční prováděcí jednotka ukončí výpočet instrukce. V preferovaném provedení, při samostatném cyklu procesoru 10, sekvenční jednotka 18 zkouší čtyři nejstarší vstupy přeřazovací vyrovnávací paměti s platnou informací tak, že čtyři instrukce se stanou kandidáty pro dokončení současně při samostatném cyklu.
V preferovaném provedení, přesuvná instrukce vyšle informaci z registru SPR, který se modifikuje jen přísuvnou instrukcí. Procesor 10 s výhodou provede přesuvnou instrukci v závislosti na dokončení všech předchozích instrukcí, i když jedna nebo více předchozích instrukcí je předčasně dokončena. Je to možné z toho důvodu, že procesor IR neprovede předčasné dokončení instrukce (například přísuvné instrukce nebo paměťové instrukce), která nemá být provedena spekulativně. Jsou-li všechny předchozí instrukce úplné, potom skutečně procesor 10 skončil provedení všech předchozích přísuvných instrukcí. Procesor 10 tudíž provede přesuvnou instrukci se zřetelem na dokončení všech předchozích instrukcí, protože v této situaci skutečně procesor 10 skončil provedení všech předchozích přísuvných instrukcí.
Podle jiného důležitého hlediska preferovaného provedení, zachovává procesorlR nepřesný znovu neobnovitelný režim výjimky s pohyblivou řádovou čárkou. Při zpracování v tomto režimu, procesorlR podá zprávu o podmínce výjimky s pohyblivou řádovou čárkou, aniž by byla přesná nebo informativní příčina udána, která instrukce s pohyblivou řádovou čárkou podmínku výjimky způsobila. Když se procesorlR zabývá výjimkou, vyskytuje se ve stavu kdy musí dokončit rozličný počet instrukcí mimo instrukci s pohyblivou řádovou čárkou, která způsobila vájimku. Při operaci v tomto režimu dosahuje procesorlR zvýšené výkonnosti pro sledy instrukcí, které nejsou citlivé, aby provedení programu bylo přesně nastaveno na instrukci s pohyblivou řádovou čárkou způsobující podmínku výjimky.
Při operaci v tomto režimu výjimky s pohyblivou řádovou čárkou, procesorlQ nevykoná předčasné dokončení instrukce s pohyblivou řádovou čárkou předtím, než dokončí výpočet instrukce s pohyblivou řádovou čárkou,i když musí být dokončeny všechny předešlé instrukce.
Za účelem porovnání, když se operuje v režimu výjimky s nepřesnou znovu neobnovitelnou pohyblivou řádovou čárkou, procesorlQ předčasně dokončí instrukci s pohyblivou řádovou čárkou před dokončením výpočtu instrukce s pohyblivou řádovou čárkou, se zřetelem na dokončení všech předchozích instrukcí. V režimu výjimky s nepřesnou znovu neobnovitelnou pohyblivou řádovou čárkou, jsou předčasně dokončené instrukce s pohyblivou řádovou čárkou odlišné od jiných typů předčasně dokončených instrukcí, protože procesorlQ předčasně dokončí instrukci s pohyblivou řádovou čárkou ačkoliv by měl se uskutečnit výsledek v podmínce výjimky s pohyblivou řádovou čárkou. Každý vstup přeřazovací vyrovnávací paměti indikuje zda jeho sdružená instrukce je instrukcí s pohyblivou řádovou čárkou .
Podle skončení výpočtu a dokončení stupňů instrukce s pohyblivou řádovou čárkou, jsou jejich výsledky mezitím uloženy do přejmenovacích vyrovnávacích pamětí 38 s pohyblivou řádovou čárkou. Výsledky jsou mezitím uloženy do přejmenovacích vyrovnávacích pamětí 38 dříve než výsledky všech dřívějších istrukcí s pohyblivou řádovou čárkou se okopírují do FPRs 36. Tímto způsobem zpracuje procesor 10 příslušné stupně psaní zpět instrukcí s pohyblivou řádovou čárkou na základě jejich programovaného sledu.
Přejmenovací vyrovnávací paměť 38 mezilehle uloží výsledky instrukcí s pohyblivou řádovou čárkou pro pozdější kopírování do FPRs 36. Přejmenovací vyrovnávací paměti 18 kromě toho dále uloží stav informace pro vhodné modifikování architekturového stavu s pohyblivou řádovou čárkou a řídícího registru (FPSCR) (neznázorněno).
Podle detekce výjimky s pohyblivou řádovou čárkou (indikované FEX bitem registru FPSCR existující sady), zatímco se kopírují výsledky z přej měno vacích vyrovnávacích pamětí 38 do FPRs 36 a FPSCR, zaznamená procesor 10 výjimku.
Když se operuje v režimu výjimky s nepřesnou znovu neobnovitelnou pohyblivou řádovou čárkou, procesor 10 zaznamená podmínku výjimky s pohyblivou řádovou čárkou, aniž se přesně nebo informativně určí, která instrukce s pohyblivou řádovou čárkou způsobila podmínku výjimky. Za této situace procesor 10 preferovaného provedení s výhodou zaznamená výjimku náledujícím postupem.
Nejprve zastaví procesor 10 dokončení instrukce při cyklu, v němž detekuje výjimku s pohyblivou řádovou čárkou. Přesná instrukce, při které zastaví procesor 10 dokončení není důležitá, pokud stav procesoru FQ přesně reaguje na úpravy všech dokončovaných instrukcí předházej ících přesnou instrukci, při které procesor 10 zastavuje dokončení.
Zadruhé procesor 10 skončí provedení všech předchozích předčasně dokončených instrukcí. Kromě toho, procesor 10 kopíruje výsledky těchto instrukcí do architekčních registrů tak, že všechny vstupy psaní zpět v přejmenovacích vyrovnávacích pamětí 34 a 38 zůstanou prázdné.
Zatřetí procesor 10 zaznamená výjimku s pohyblivou řádovou čárkou. Následkem toho, není generována žádná jiná výjimka ostatními instrukcemi, které jsou předčasně dokončeny nebo skutečně dokončeny.
Podle detekce výsledné výjimky z instrukce s nepohyblivou řádovou čárkou, procesor 10 zpozdí záznam výjimky s nepohyblivou řádovou čárkou, než procesor 10 skončí provedení všech předchozích předčasně dokončených instrukcí s pohyblivou řádovou čárkou, aniž se setká s jakoukoliv výjimkou s pohyblivou řádovou čárkou. Za této situace procesor 10 preferovaného provedení s výhodou zaznamená výjimku náledujícím postupem.
Nejprve zastaví procesor 10 dokončení instrukce při cyklu, v němž detekuje výjimku s nepohyblivou řádovou čárkou. Procesor 10 zastaví dokončení instrukce při instrukci způsobující výjimku s nepohyblivou řádovou čárkou tak, že instrukce se nedokončí.
Zadruhé procesor 10 skončí provedení všech předchozích předčasně dokončených instrukcí. Tím se určí zda procesor 10 je způsobilý skončit provedení všech předchozích instrukcí předčasně dokončenýchs pohyblivou řádovou čárkou, bez záznamu jakékoliv výjimky s pohyblivou řádovou čárkou. Kromě toho procesor 10 ,kopíruje výsledky těchto instrukcí do architekčních registrů tak, že všechny vstupy psaní zpět v přejmenovacích vyrovnávacích pamětí 34 a 38 zůstanou prázdné. Tímto způsobem existuje stav , procesoru 10 v souladu s tím, když zaznamenává výjimku. Nad to, čeká než ostatní paměti psaní zpět jsou prázdné, čímž se nastaví shodný procesorový stav, když: se rozpozná výjimka.
Zatřetí jestliže procesor 10 nedetekoval výjimku s pohyblivou řádovou čárkou, potom zaznamená přesně výjimku s nepohyblivou řádovou čárkou. Za účelem porovnání, jestliže detekoval výjimku s pohyblivou řádovou čárkou, potom procesor 10 zaznamená výjimku s nepřesnou znovu neopakovatelnou pohyblivou řádovou čárkou.
Ačkoliv bylo shora podrobně popsáno provedení příkladu předloženého vynálezu a jeho výhody, byly tyto popsány jako příklad a nějako omezení. V příkladném provedení mohou být provedeny různé změny, substituce a alternativy aniž se odbočí ze šíře, oblasti a podstaty předloženého vynálezu. Síře oblast a podstata vynálezu by neměla být omezena provedením příkladu, ale je definována podle připojených nároků a jejich ekvivalentů.

Claims (26)

  1. PATENTOVÉ NÁROKY
    Ty - wy
    1. Způsob operace systému zpracování vyznačující se tím, že obsahuje kroky rozdělování většího počtu instrukcí v posloupnosti k provedení soustavy obvodů pro výpočet; určování předběžného výpočtu pro každou instrukci zda je možná výjimka podle výsledku výpočtu uvedené instrukce; a doplnění instrukce v závislosti od určení zda neexistuje výjimka podle výsledku výpočtu uvedené instrukce a každé předchozí instrukce řečené instrukce v uvedené posloupnosti, nezávisle od toho zda výpočet soustavy obvodů ukončil výpočet každé instrukce, pro níž není možná výjimka.
  2. 2. Způsob podle nároku 1, vyznačující se tím, že uvedené instrukce obsahují výpočet seriálizované instrukce, kterou předchází partikulární instrukce v uvedené posloupnosti.
  3. 3. Způsob podle nároku 2, vyznačující se tím, že určující krok obsahuje krok stanovení zda není možná výjimka podle výpočtu uvedené partikulární instrukce.
  4. 4. Způsob podle nároku 3, vyznačující se tím, že dále obsahuje krok provedení výpočtu serializované instrukce v závislosti na doplnění partikulární instrukcí před dokončením výpočtu uvedené partikulární instrukce.
  5. 5. Způsob podle nároku 4, vyznačující se tím, že výpočtu serializované instrukce předchází odlišná instrukce v řečené posloupnosti, přičemž výpočet serializované instrukce závisí na informaci podle výsledku odlišné instrukce.
  6. 6. Způsob podle nároku 5, vyznačující se tím, že prováděcí krok obsahuje krok provedení výpočtu sérializované instrukce dále v závislosti na dokončení výpočtu odlišné instrukce.
  7. 7. Způsob podle nároku 4, vyznačující se tím, že dále obsahuje krok provedení prvního stupně řečeného výpočtu sérializované instrukce před kompletaci partikulární instrukce.
  8. 8. Způsob podle nároku 7, vyznačující .se tím, že prováděcí krok obsahuje krok vykonání druhého stupně výpočtu sérializované instrukce v závislosti na kompletaci partikulární instrukce před dokončením výpočtu této partikulární instrukce.
    *
  9. 9. Způsob podle nároku 8, vyznačující .se tím, že provedení sérializované instrukce je paměťová instrukce.
  10. 10. Způsob podle nároku 1, vyznačující .se tím, že dále obsahuje krok ukládání indikace do paměti v přeřazovací vyrovnávací paměti v závislosti na výjimce, jež není možná pro partikulární instrukci.
  11. 11. Způsob podle nároku 10, vyznačující .se tím, že paměťový krok obsahuje krok uložení indikace do paměti dále v závislosti na partikulární instrukci typu, který je třeba vykonat spekulativně.
  12. 12. Způsob podle nároku 10, vyznačující .se tím, že dále obsahuje krok zrušení indikace v přeřazovací vyrovnávací paměti v závislosti na kompletaci uvedené partikulární instrukce.
  13. 13. Způsob podle nároku 1, vyznačující se tím, že dále obsahuje krok uložení indikace do paměti v přeřazovací vyrovnávací paměti v závislosti na partikulární instrukci, jež je instrukcí s pohyblivou řádovou čárkou pro vykonání v nepřesném nevratném režimu výjimky s pohyblivou řádovou čárkou, i když je možná výjimka podle výsledku z výpočtu instrukce s pohyblivou řádovou čárkou.
  14. 14. Systém zpracování, vyznačující se tím, že obsahuje provedení soustavy obvodů pro výpočet instrukcí; přidělování soustavy obvodů připojených k vypočtené soustavě obvodů pro: přidělování více instrukcí do posloupnosti k vypočtené soustavě obvodů pro vykonání; a pro každou instrukci, předběžné určení výpočtu zda je možná výjimka podle výsledku výpočtu řečené instrukce; a dokončení soustavy obvodů připojených k zmíněné přidělené soustavě obvodů pro doplnění instrukce v závislosti na určení zda neexistuje výjimka podle výpočtu • uvedené instrukce a každé instrukce předcházející uvedenou instrukci v uvedené posloupnosti, nezávisle od toho zda provedení soustavy obvodů skončilo výpočet každé instrukce, pro kterou je možná výjimka.
  15. 15. Systém podle nároku 14, vyznačující se tím, že instrukce obsahují vykonání sérializované instrukce před partikulární instrukcí v uvedené posloupnosti..
  16. 16. Systém podle nároku 15, vyznačující se tím, že přidělená soustava obvodů stanoví, neexistuje-li možná výjimka podle výsledku z výpočtu partikulární instrukce.
  17. 17. Systém podle nároku 16, vyznačující se tím, že provedená soustava obvodů vykoná výpočet sérializované instrukce v závislosti na dokončené partikulární instrukci před skončením výpočtu partikulární instrukce.
  18. 18. Systém podle nároku 17, vyznačující se tím, že provedení sérializované instrukce předchází v uvedené posloupnosti odlišná instrukce, přičemž výpočet sérializované instrukce závisí na informaci o výsledku odlišné instrukce.
  19. 19. Systém podle nároku 18, vyznačující se tím, že vypočtená soustava obvodů provede výpočet sérializované instrukce dále v závislosti na dokončeném výpočtu odlišné instrukce.
  20. 20. Systém podle nároku 19, vyznačující se tím, že vypočtená soustava obvodů provede první stupeň uvedeného výpočtu sérializované instrukce před dokončením partikulární instrukce.
  21. 21. Systém podle nároku 20, vyznačující se tím, že vypočtená soustava obvodů provede druhý stupeň uvedeného výpočtu sérializované instrukce v závislosti na kompletaci partikulární instrukce před skončením výpočtu partikulární instrukce.
  22. 22. Systém podle nároku 21, vyznačující se tím, že výpočtová sérializovaná instrukce je paměťová instrukce.
  23. 23. Systém podle nároku 14, vyznačující se tím, že dále obsahuje řídící soustavu obvodů připojenou k uvedené přidělené soustavě obvodů pro uložení indikace do paměti v přeřazovací vyrovnávací paměti v závislosti na výjimce, která není možná pro partikulární instrukci.
  24. 24. Systém podle nároku 23, vyznačující se tím, že řídící soustava obvodů uloží do paměti výjimku dále v závislosti na partikulární instrukci, jejíž typ je třeba provádět spekulativně.
  25. 25. Systém podle nároku 23, vyznačující se tím, že řídící soustava obvodů zruší indikaci v uvedené přeřazovací vyrovnávací paměti v závislosti na kompletaci partikulární instrukce.
  26. 26. Systém podle nároku 14, vyznačující se tím, že dále obsahuje řídící soustavu obvodů připojenou k přidělovací soustavě obvodů pro uložení indikace do přeřazovací vyrovnávací paměti v závislosti na partikulární instrukci, která je instrukcí s pohyblivou řádovou čárkou pro výpočet v režimu výjimky s nepřesnou neobnovitelnou pohyblivou řádovou čárkou, i když je možná výjimka podle výsledku výpočtu instrukce s pohyblivou řádovou čárkou.
CZ19962771A 1994-03-31 1994-12-27 Způsob operace systému zpracování CZ9602771A3 (cs)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US22132994A 1994-03-31 1994-03-31

Publications (1)

Publication Number Publication Date
CZ9602771A3 true CZ9602771A3 (cs) 2002-06-12

Family

ID=22827362

Family Applications (1)

Application Number Title Priority Date Filing Date
CZ19962771A CZ9602771A3 (cs) 1994-03-31 1994-12-27 Způsob operace systému zpracování

Country Status (15)

Country Link
US (1) US5548738A (cs)
EP (1) EP0753172B1 (cs)
JP (1) JP2682812B2 (cs)
KR (1) KR100209831B1 (cs)
CN (1) CN1099632C (cs)
AT (1) ATE181161T1 (cs)
CA (1) CA2137053A1 (cs)
CZ (1) CZ9602771A3 (cs)
DE (1) DE69419036T2 (cs)
HU (1) HUT75823A (cs)
MY (1) MY131679A (cs)
PL (1) PL177404B1 (cs)
RU (1) RU2142157C1 (cs)
TW (1) TW260765B (cs)
WO (1) WO1995027245A1 (cs)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5625835A (en) * 1995-05-10 1997-04-29 International Business Machines Corporation Method and apparatus for reordering memory operations in a superscalar or very long instruction word processor
US5708837A (en) * 1995-06-30 1998-01-13 International Business Machines Corporation Method and apparatus for register renaming in a computer system using a separate arithmetic available queue
US5881306A (en) * 1996-12-17 1999-03-09 International Business Machines Corporation Instruction fetch bandwidth analysis
US5870582A (en) * 1997-03-31 1999-02-09 International Business Machines Corporation Method and apparatus for completion of non-interruptible instructions before the instruction is dispatched
US6098167A (en) * 1997-03-31 2000-08-01 International Business Machines Corporation Apparatus and method for fast unified interrupt recovery and branch recovery in processors supporting out-of-order execution
US5805849A (en) * 1997-03-31 1998-09-08 International Business Machines Corporation Data processing system and method for using an unique identifier to maintain an age relationship between executing instructions
US5887161A (en) * 1997-03-31 1999-03-23 International Business Machines Corporation Issuing instructions in a processor supporting out-of-order execution
US5913048A (en) * 1997-03-31 1999-06-15 International Business Machines Corporation Dispatching instructions in a processor supporting out-of-order execution
US5875326A (en) * 1997-04-25 1999-02-23 International Business Machines Corporation Data processing system and method for completing out-of-order instructions
US7089404B1 (en) 1999-06-14 2006-08-08 Transmeta Corporation Method and apparatus for enhancing scheduling in an advanced microprocessor
JP3808013B2 (ja) * 2002-07-05 2006-08-09 富士通株式会社 命令実行装置
EP2169538A4 (en) * 2007-06-20 2010-12-01 Fujitsu Ltd INSTRUCTION PROCESSOR
CN101689109A (zh) * 2007-06-20 2010-03-31 富士通株式会社 指令控制装置以及指令控制方法
TWI383364B (zh) * 2008-01-31 2013-01-21 Chimei Innolux Corp 液晶顯示裝置及其驅動模組
GB2514618B (en) * 2013-05-31 2020-11-11 Advanced Risc Mach Ltd Data processing systems
US9710272B2 (en) 2014-04-25 2017-07-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Computer processor with generation renaming
US10209992B2 (en) * 2014-04-25 2019-02-19 Avago Technologies International Sales Pte. Limited System and method for branch prediction using two branch history tables and presetting a global branch history register
JP7043985B2 (ja) * 2018-06-13 2022-03-30 富士通株式会社 演算処理装置および演算処理装置の制御方法
CN112506570B (zh) * 2020-12-03 2023-09-08 长沙树根互联技术有限公司 设备指令下发方法、系统和服务器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
US5341482A (en) * 1987-03-20 1994-08-23 Digital Equipment Corporation Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US4879676A (en) * 1988-02-29 1989-11-07 Mips Computer Systems, Inc. Method and apparatus for precise floating point exceptions
EP0365322A3 (en) * 1988-10-19 1991-11-27 Hewlett-Packard Company Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
US5077692A (en) * 1990-03-05 1991-12-31 Advanced Micro Devices, Inc. Information storage device with batch select capability
US5261066A (en) * 1990-03-27 1993-11-09 Digital Equipment Corporation Data processing system and method with small fully-associative cache and prefetch buffers
IL94115A (en) * 1990-04-18 1996-06-18 Ibm Israel Dynamic process for creating pseudo-random test templates for pompous hardware design violence
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
US5197135A (en) * 1990-06-26 1993-03-23 International Business Machines Corporation Memory management for scalable compound instruction set machines with in-memory compounding
US5193167A (en) * 1990-06-29 1993-03-09 Digital Equipment Corporation Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
JPH04172533A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 電子計算機
US5222244A (en) * 1990-12-20 1993-06-22 Intel Corporation Method of modifying a microinstruction with operands specified by an instruction held in an alias register
EP0529303A3 (en) * 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US5274818A (en) * 1992-02-03 1993-12-28 Thinking Machines Corporation System and method for compiling a fine-grained array based source program onto a course-grained hardware
US5257216A (en) * 1992-06-10 1993-10-26 Intel Corporation Floating point safe instruction recognition apparatus
US5257214A (en) * 1992-06-16 1993-10-26 Hewlett-Packard Company Qualification of register file write enables using self-timed floating point exception flags
US5268855A (en) * 1992-09-14 1993-12-07 Hewlett-Packard Company Common format for encoding both single and double precision floating point numbers
US5450560A (en) * 1992-12-21 1995-09-12 Motorola, Inc. Pointer for use with a buffer and method of operation

Also Published As

Publication number Publication date
PL316532A1 (en) 1997-01-20
HU9602594D0 (en) 1996-11-28
DE69419036T2 (de) 2000-01-27
ATE181161T1 (de) 1999-06-15
DE69419036D1 (de) 1999-07-15
TW260765B (cs) 1995-10-21
HUT75823A (en) 1997-05-28
PL177404B1 (pl) 1999-11-30
WO1995027245A1 (en) 1995-10-12
US5548738A (en) 1996-08-20
KR950027565A (ko) 1995-10-18
CA2137053A1 (en) 1995-10-01
JP2682812B2 (ja) 1997-11-26
KR100209831B1 (ko) 1999-07-15
CN1099632C (zh) 2003-01-22
EP0753172A1 (en) 1997-01-15
RU2142157C1 (ru) 1999-11-27
MY131679A (en) 2007-08-30
CN1114763A (zh) 1996-01-10
JPH07271584A (ja) 1995-10-20
EP0753172B1 (en) 1999-06-09

Similar Documents

Publication Publication Date Title
US5694565A (en) Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
EP0849665B1 (en) System and method for register renaming
US5546597A (en) Ready selection of data dependent instructions using multi-cycle cams in a processor performing out-of-order instruction execution
CZ9602771A3 (cs) Způsob operace systému zpracování
US7603497B2 (en) Method and apparatus to launch write queue read data in a microprocessor recovery unit
EP0679988B1 (en) Range finding circuits
EP0677807B1 (en) Processing system and method of operation
US5546599A (en) Processing system and method of operation for processing dispatched instructions with detected exceptions
US5559976A (en) System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions
JPH06236273A (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US5524224A (en) System for speculatively executing instructions wherein mispredicted instruction is executed prior to completion of branch processing
US6035394A (en) System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel
US6708267B1 (en) System and method in a pipelined processor for generating a single cycle pipeline stall
JPH09152973A (ja) カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置
US5765017A (en) Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers
JPH06242952A (ja) スーパースカラ・プロセッサにおける命令処理の選択的逐次化の方法およびシステム
US5805916A (en) Method and apparatus for dynamic allocation of registers for intermediate floating-point results
US6041167A (en) Method and system for reordering instructions after dispatch in a processing system
US5850563A (en) Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5758117A (en) Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor
US6266761B1 (en) Method and system in an information processing system for efficient maintenance of copies of values stored within registers