HUT75816A - Method of operation of a system for processing information, as well as the processing system - Google Patents

Method of operation of a system for processing information, as well as the processing system Download PDF

Info

Publication number
HUT75816A
HUT75816A HU9602595A HU9602595A HUT75816A HU T75816 A HUT75816 A HU T75816A HU 9602595 A HU9602595 A HU 9602595A HU 9602595 A HU9602595 A HU 9602595A HU T75816 A HUT75816 A HU T75816A
Authority
HU
Hungary
Prior art keywords
instruction
execution
executing
executed
circuit
Prior art date
Application number
HU9602595A
Other languages
English (en)
Other versions
HU9602595D0 (en
Inventor
Seungyoon Peter Song
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of HU9602595D0 publication Critical patent/HU9602595D0/hu
Publication of HUT75816A publication Critical patent/HUT75816A/hu

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/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/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
    • 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/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)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)

Description

Eljárás jelfeldolgozó rendszer működtetésére, valamint jelfeldolgozó rendszer
A találmány tárgya eljárás jelfeldolgozó rendszer működtetésére, valamint jelfeldolgozó rendszer.
Egy szuperskaláris jelfeldolgozó rendszer többszörözött végrehajtó egységet tartalmaz több utasítás egyidejű végrehajtására. Egyes jelfeldolgozó rendszerekben az egyes utasításokat sorrendjükhöz képest sorrenden kívül lehet végrehajtani az utasítás áramból. Ennek ellenére egy vagy több megválasztott utasítás igényelheti a sorrendi végrehajtást, ahol is a sorrendi utasítás kizárólag az előre programozott szekvenciának megfelelően hajtható végre. Ismert és jellemző korábbi módszerek szerint az ilyen sorrendi utasítás végrehajtása előnytelenül befolyásolhatja más, a programozott szekvenciában később következő utasítás vagy utasítások végrehajtását.
Ily módon felmerült az igény olyan jelfeldolgozó rendszer valamint jelfeldolgozó rendszert működtető eljárást létrehozására, amelyben egy sorrendi utasítás végrehajtása kevésbé előnytelenül befolyásolja a programozott szekvenciában később következő többi utasítás végrehajtását.
A kitűzött feladat megoldása során olyan eljárást vettünk alapul jelfeldolgozó rendszer működtetésére, amelynek során a továbbfejlesztés értelmében egy meghatározott utasítást végrehajtás céljából végrehajtó áramkörhöz eligazítunk és az említett utasítás eligazítását követően még az utasítás végrehajtásának befejezését megelőzően ugyanahhoz a végrehajtó áramkörhöz sorrendben végrehajtandó utasítást igazítunk el.
A találmány szerinti eljárás egy előnyös foganatosítási módja értelmében az eligazított, sorbarendezetten végrehajtandó utasítás végrehajtását legalább az említett meghatározott utasítás végrehajtásának befejezéséig késleltetjük.
A találmány szerinti eljárás egy további előnyös foganatosítási módja értelmében a sorbarendezetten végrehajtandó utasítás eligazítását követően a végrehajtó áramkörhöz a meghatározott utasítás végrehajtásának befejezését megelőzően további utasítást igazítunk el.
Ugyancsak előnyös a találmány értelmében, ha a további utasítás végrehajtását a meghatározott utasítás végrehajtásának befejezését megelőzően kezdeményezzük.
-2Előnyös a találmány értelmében továbbá, ha a sorbarendezetten végrehajtandó utasítás eligazítása során a sorbarendezetten végrehajtandó utasítást a végrehajtó áramkör lefoglalási területére igazítjuk el.
Fentieken túlmenően előnyös a találmány értelmében, ha a sorbarendezetten végrehajtandó utasítás eligazítása során a végrehajtó áramkör felé jelzést bocsátunk ki, az eligazított sorbarendezetten végrehajtandó utasítás végrehajtó áramkör általi végrehajtásának letiltására.
A találmány szerinti eljárás egy további előnyös foganatosítási módja értelmében a végrehajtó áramkör felé járulékos jelzést bocsátunk ki az eligazított sorbarendezetten végrehajtandó utasításnak a meghatározott utasítás végrehajtásának befejezését követő, a végrehajtó áramkör általi végrehajtásának megkezdése céljából.
Ugyancsak előnyös a találmány értelmében, ha a sorbarendezetten végrehajtandó utasítást spekulációmentesen hajtjuk végre.
Előnyös továbbá a találmány értelmében, ha a sorbarendezetten végrehajtandó utasítás eredményét átnevező puffertárban való közbenső eltárolás nélkül közvetlenül egy tárolási helyre írjuk be.
Előnyös a találmány értelmében továbbá, ha a sorbarendezetten végrehajtandó utasítás végrehajtását az összes forrás operandus információjának rendelkezésre állásáig és érvényességéig késleltetjük.
Ugyancsak előnyös a találmány értelmében, ha a sorbarendezetten végrehajtandó utasítással legalább egy továbbítatlan forrás operandust határozunk meg.
A kitűzött feladat megoldása során továbbá olyan jelfeldolgozó rendszert vettünk alapul, amelynek az utasításokat végrehajtó végrehajtó áramköre valamint egy meghatározott utasítást végrehajtás céljából a végrehajtó áramkörhöz eligazító valamint az eligazítást követően egy sorbarendezetten végrehajtandó utasítást a meghatározott utasítás végrehajtásának befejezését megelőzően a végrehajtó áramkörhöz eligazító, a végrehajtó áramkörrel összekapcsolt eligazító áramköre van.
-3A találmány szerinti jelfeldolgozó rendszer egy előnyös kiviteli alakja értelmében az eligazított, sorbarendezetten végrehajtandó utasítás végrehajtását legalább az említett meghatározott utasítás végrehajtásának befejezéséig késleltető áramköre van.
A találmány szerinti jelfeldolgozó rendszer egy további előnyös kiviteli alakja értelmében a sorbarendezetten végrehajtandó utasítás eligazítását követően a végrehajtó áramkörhöz a meghatározott utasítás végrehajtásának befejezését megelőzően további utasítást eligazító áramköre van.
Ugyancsak előnyös a találmány értelmében, ha a további utasítás végrehajtását a meghatározott utasítás végrehajtásának befejezését megelőzően kezdeményező áramköre van.
Előnyös a találmány értelmében továbbá, ha a sorbarendezetten végrehajtandó utasítás eligazítása során a sorbarendezetten végrehajtandó utasítást a végrehajtó áramkör lefoglalás! területére eligazító áramköre van.
Fentieken túlmenően előnyös továbbá, ha sorbarendezetten végrehajtandó utasítás eligazítása során az eligazított sorbarendezetten végrehajtandó utasítás végrehajtó áramkör általi végrehajtásának letiltására a végrehajtó áramkör felé jelzést kibocsátó áramköre van.
Ugyancsak előnyös a találmány értelmében, ha az eligazított sorbarendezetten végrehajtandó utasításnak a meghatározott utasítás végrehajtásának befejezését követő, a végrehajtó áramkör általi végrehajtásának megkezdése céljából a végrehajtó áramkör felé járulékos jelzést kibocsátó áramköre van.
A találmány szerinti jelfeldolgozó rendszer egy további előnyös kiviteli alakja értelmében a sorbarendezetten végrehajtandó utasítást spekulációmentesen végrehajtó áramköre van.
Előnyös továbbá a találmány értelmében, ha a sorbarendezetten végrehajtandó utasítás eredményét átnevező puffertárban való közbenső eltárolás nélkül közvetlenül egy tárolási helyre beíró áramköre van.
Ugyancsak előnyös, ha a sorbarendezetten végrehajtandó utasítás végrehajtását az összes forrás operandus információjának rendelkezésre állásáig és érvényességéig késleltető áramköre van.
• · · • · · • · · · ····
-4Fentieken túlmenően előnyös továbbá, ha a sorbarendezetten végrehajtandó utasítással legalább egy továbbítatlan forrás operandust meghatározó áramköre van.
Előnyös végül a találmány értelmében, ha a végrehajtó fokozatnak a meghatározott utasítást végrehajtó első végrehajtó áramköre, valamint a sorbarendezetten végrehajtandó utasítást végrehajtó második végrehajtó áramköre van.
A találmány szerinti jelfeldolgozó rendszer valamint azt működtető eljárás fő előnyeként azt tekinthetjük, hogy a sorrendi utasítás vagy utasítások végrehajtása kevésbé befolyásolja hátrányosan a többi, a programozott szekvenciában később következő utasítás végrehajtását.
A találmányt az alábbiakban a csatolt rajz segítségével ismertetjük részletesebben, amelyen a jelfeldolgozó rendszer illetve azt működtető utasítás példakénti kiviteli alakját illetőleg foganatosítási módját mutatjuk be. A rajzon az
1. ábra egy a találmány szerinti információ feldolgozást végző processzor felépítése tömbvázlat szinten, a
2. ábrán az 1. ábrán feltüntetett processzor fixpontos végrehajtó egységének tömbvázlata látható, a
3. ábra az 1. ábra szerinti processzor sorbarendező egységének tömbvázlata, a
4. ábrán a 3. ábra szerinti sorbarendező egység újrarendező puffertárjának elvi vázlata látható, az
5a. és 5b. ábrák az 1. ábra szerinti processzorral végrehajtott különböző utasítás fokozatokat mutatnak, a
6. ábrán az 1. ábra szerinti processzor újrarendező puffertárjának elvi vázlata látható, a
7. ábrán a 6. ábra szerinti 4 utasítás különböző fokozatait tüntettük fel, a ···· ····
-5-
8a-8d. ábrák az 1. ábra szerinti processzor átnevező puffertárjának elvi vázlatai, a
9. ábra a bemutatott kiviteli alak lényeges tulajdonságát nélkülöző helyzetben négy utasítás különböző fokozatait mutatja, a
10a-lOd. ábrán a 9. ábra szerinti processzor átnevező puffertárjának elvi vázlata látható, a
11. ábra az 1. ábra szerinti processzor átnevező puffertárjainak kialakítását mutatja tömb vázlat szinten, a
12a-12c. ábrák az 1. ábra szerinti processzor újrarendező puffertáijának elvi vázlata, a
13. ábrán a 12a-12c. ábrák szerinti öt utasítás különböző fokozatai láthatóak, a
14a-14g. ábrák az 1. ábra szerinti processzor átnevező puffertárjainak elvi vázlatai, a
15. ábrán a bemutatott kiviteli alak lényeges tulajdonságát nélkülöző helyzetben a 12a-12c. ábrák szerinti öt utasítás különböző fokozatait tüntettük fel, és a
16a-16h. ábrák az 1. ábra szerinti processzor átnevező puffertárjait mutatják elvi szinten, a 15. ábrán feltüntetett utasítás feldolgozás különböző ciklusai esetén.
Az 1. ábrán a találmány szerinti jelfeldolgozó rendszer 10 processzorának felépítését követhetjük nyomon. A csupán előnyös példaképpen bemutatott kiviteli alakban a 10 proceszszor egyetlen integrált áramkörből álló szuperskaláris mikroprocesszor. Ennek megfelelően az alábbiakban részletezettek szerint a 10 processzor számos egységet, regisztert, puffertárat, memóriát és egyéb szekciót tartalmaz, melyek mindegyike az integrált áramkörrel van megvalósítva. A bemutatott kiviteli alaknál a 10 processzor a szűkített instrukciókészletes technika (restricted instruction set computing, risc.) szerint működik. Mint az 1. ábrán
-6látható, a 10 processzor 12 busz interfész egységéhez 11 rendszerbusz csatlakozik. A 12 busz interfész egység vezérli az információ továbbítást a 10 processzor és a 11 rendszerbusz között.
A 12 busz interfész egység a 10 processzor utasítás cache tárához és 16 adat cache tárához kapcsolódik. Az utasítások a 14 utasítás cache tárból 18 sorbarendező egységbe kerülnek. A 18 sorbarendező egység a 14 utasítás cache tárból belekerülő utasítások közül szelektív módon továbbítja az utasításokat a 10 processzor többi végrehajtó áramköri egységéhez.
A 18 sorbarendező egységen túl a 10 processzor végrehajtó áramköri egységei az előnyös kiviteli alak szerint többszörös végrehajtó egységeket foglalnak magukban, nevezetesen 20 elágazgató egységet, 22A fixpontos egységet, 24B fixpontos egységet, 26 komplex fixpontos egységet, 28 betöltő és tárolóegységet és 30 lebegőpontos egységet. A 22A fixpontos egység, 24B fixpontos egység, 26 komplex fixpontos egység és a 28 betöltő és tároló egység forrás operandus információját 32 univerzális architektúra regiszterekből és 34 fixpontos átnevező puffertárakból nyeri. A 22A fixpontos egység és a 24B fixpontos egység 42 vivőbit regiszterből kap egy-egy vivőbitet. A 22A fixpontos egység, a 24B fixpontos egység, a 26 komplex fixpontos egység és a 28 betöltő és tároló egység műveleteik eredményét, azaz a cél operandus információt a 34 fixpontos átnevező puffertár kiválasztott bejegyzéseibe továbbítja tárolás céljából. Ezen túlmenően a 26 komplex fixpontos egység a forrás operandus információját valamint a cél operandus információját 40 speciális regiszterektől kapja illetve azokhoz továbbítja. A 30 lebegőpontos egység forrás operandus információját 36 lebegőpontos architektúra regiszterektől és 38 lebegőpontos átnevező puffertáraktól nyeri. A 30 lebegőpontos egység elvégzett műveleteinek eredményét, azaz a cél operandus információt a 38 lebegőpontos átnevező puffertárakba tölti vissza, kiválasztott bejegyzésekben történő eltárolás céljából.
Egy betöltés utasítás hatására a 28 betöltő és tárolóegység a 16 adat cache tárból nyert információt a 34 fixpontos átnevező puffertárak és a 38 lebegőpontos átnevező puffertárak közül néhány kiválasztottba átmásol. Ha nincs ilyen információ a 16 adat cache tárban, akkor a 16 adat cache tár a kért információt a 12 busz interfész egységen és a 11 rendszerbuszon keresztül all rendszerbuszra csatlakoztatott 39 rendszer memóriából tölti be. Ezen túlmenően a 16 adat cache tár arra is alkalmas, hogy a 12 busz interfész egységen és a 11 rendszerbuszon keresztül a benne tárolt adatokból információt adjon át a 11 rendszerbuszra
-Ί csatlakoztatott 39 rendszer memóriának. Egy tárolás utasítás hatására pedig a 28 betöltő és tároló egység információt kér be a 32 univerzális architektúra regiszterek és a 36 levegőpontos architektúra regiszterek közül kiválasztott egységből, és ezt az információt a 16 adat cache tárba másolja át.
A 18 sorbarendező egység az információt a 32 univerzális architektúra regiszterekből és 36 lebegőpontos architektúra regiszterekből kapja, és azokhoz is továbbítja vissza. A 20 elágaztató egység a 18 sorbarendező egységtől kapja a 10 processzor pillanatnyi állapotátjelző jeleket és az utasításokat. Ezeknek az utasításoknak és a jeleknek a hatására a 20 elágaztató egység a 18 sorbarendező egység részére a 10 processzor által végrehajtandó utasítás szekvenciát tároló alkalmas memória címeket jelző jelet bocsát ki. A 20 elágaztató egység által kibocsátott jelek hatására a 18 sorbarendező egység megkapja a jelzett utasítás szekvenciát a 14 utasítás cache tárból. Ha egy vagy több utasítás szekvencia nincs a 14 utasítás cache tárban eltárolva, akkor a 14 utasítás cache tár a 12 busz interfész egységen és a 11 rendszer buszon keresztül ezeket az utasításokat all rendszer buszhoz csatlakoztatott 39 rendszer memóriából betölti.
A 14 utasítás cache tárból kapott utasítások hatására a 18 sorbarendező egység szelektív módon közvetíti ki az utasításokat a 20 elágaztató egység, 22A fixpontos egység, 24B fixpontos egység, 26 komplex fixpontos egység, 28 betöltő és tárolóegység és 30 lebegőpontos egység közül kiválasztott egységekhez. Minden egyes végrehajtó egység egy meghatározott utasítás típus egy vagy több utasítását hajtja végre. Például a 22A fixpontos egység és a 24B fixpontos egység első osztályba tartozó fixpontos matematikai műveleteket, például összeadást, kivonást, ÉS műveleteket, VAGY műveleteket és KIZÁRÓLAGOS VAGY műveleteket hajt végre. A 26 komplex fixpontos egység a forrás operandusokon egy második osztályba tartozó fixpontos műveleteket, például fixpontos szorzást és osztást hajt végre. A 30 lebegőpontos egység a forrás operandusokon nevének megfelelően lebegőpontos műveleteket, például lebegőpontos szorzást és osztást hajt végre.
Ha a 34 fixpontos átnevező puffertárak kiválasztott egyikében információt tárolunk, ezt az információt oly módon társítjuk egy adott tárolási hellyel (például valamelyik 32 univerzális architektúra regiszterrel vagy 42 vivőbit regiszterrel) ahogy azt az az utasítás meghatározza, amelynek számára a kiválasztott 34 fixpontos átnevező puffertárat lefoglaltuk. A kiválasztott 34 fixpontos átnevező puffertárban tárolt információt valamelyik vele társított
-832 univerzális architektúra regiszterbe (vagy 42 vivőbit regiszterbe) másoljuk a 18 sorbarendező egységtől érkező jelekre válaszképpen. Mint azt a későbbiekben még részletezzük a 6-10 ábrák kapcsán, a 18 sorbarendező egység a tárolt információ másolását az információt generáló utasítás befejezése függvényében irányítja. Ezt a fajta másolást visszaírásnak (write back) nevezzük.
Ha valamelyik kiválasztott 38 lebegőpontos átnevező puffertárban információt tárolunk, ezt az információt valamelyik 36 lebegőpontos architektúra regiszterrel társítjuk. A kiválasztott 38 lebegőpontos átnevező puffertárban tárolt információt a 18 sorbarendező egységtől érkező jelekre válaszképpen valamelyik vele társított 36 lebegőpontos architektúra regiszterbe másoljuk át. A 18 sorbarendező egység a kiválasztott 38 lebegőpontos átnevező puffertárban tárolt információ átmásolását az információt generáló utasítás befejezésének függvényében irányítja.
A 10 processzorral nagy hatásfokot érünk el azáltal, hogy több utasítást egyidejűleg a 20 elágazgató egység, 22A fixpontos egység, 24B fixpontos egység, 26 komplex fixpontos egység, 28 betöltő és tárolóegység és 30 lebegőpontos egység közül különböző kiválasztott egységekkel hajtunk végre. Ennek megfelelően minden egyes utasítást mint fokozatok szekvenciáját, sorrendjét dolgozzuk fel, ahol minden egyes fokozat szekvencia más utasítás fokozatokkal párhuzamosan hajtható végre. Ezt a fajta technikát angolul pipelining-nak hívjuk. A bemutatott előnyös kiviteli alak egy lényeges szempontja szerint egy utasítást általános esetben hat fokozatban dolgozunk fel, ezek a fokozatok pedig az előkészítés, dekódolás, eligazítás, végrehajtás, befejezés és visszaírás.
Az előkészítés fokozatban a 18 sorbarendező egység (a 14 utasítás cache tárból) szelektív módon egy vagy több utasítást tölt be az alábbiakban részletesebben a 20 elágaztató egységgel és a 18 sorbarendező egységgel kapcsolatban bemutatott utasítás szekvenciát tároló egy több memória címről.
A dekódolás fokozatban a 18 sorbarendező egység legfeljebb négy előkészített utasítás dekódolását végzi el.
Az eligazítás fokozatban a 18 sorbarendező egység szelektív módon legfeljebb négy dekódolt utasítást (a dekódoló fokozatban elvégzett dekódolásra válaszképpen) elküldi a megfelelő kiválasztott egységekhez a 20 elágaztató egység, a 22A fixpontos egység, a 24B
- 9 fixpontos egység, a 26 komplex fixpontos egység, a 28 betöltő és tároló egység és a 30 lebegőpontos egység közül, miután minden egyes elirányított utasítás eredménye számára (azaz a cél operandus információ számára) egy-egy átnevező puffertár bejegyzést foglal le. Az eligazítás fokozatban az operandus információt az elirányított utasításokat végrehajtó kiválasztott végrehajtó egységekhez továbbítjuk. A 10 processzor az utasításokat azok programozott sorrendje szerint igazítja el.
A végrehajtás fokozatban a végrehajtó egységek a hozzájuk irányított utasításokat és műveleteik eredményét (a cél operandus információt) tárolás céljából átadja a már korábbiak szerint részletezett módon a 34 fixpontos átnevező puffertárak és a 38 lebegőpontos átnevező puffertárak közül kiválasztott bejegyzésekbe. Ilyen módon a 10 processzor képes utasításokat azok eredetileg programozott sorrendjétől eltérő módon is végrehajtani.
A befejezés fokozatban a 18 sorbarendező egység azt jelzi, hogy egy utasítás befejeződött a 3. és 4. ábrák kapcsán a későbbiekben leírtak értelmében. A 10 processzor ebben a fokozatban az utasításokat azok programozott sorrendjének megfelelően fejezi be. A visszaírás fokozatban a 18 sorbarendező egység az információ 34 fixpontos átnevező puffertárakból és 38 lebegőpontos átnevező puffertárakból a 32 univerzális architektúra regiszterekbe és a 36 lebegőpontos architektúra regiszterekbe történő átmásolását irányítja. A 18 sorbarendező egység a kiválasztott 34 fixpontos átnevező puffertárban tárolt információ másolását az alábbiakban a 6-10. ábrák kapcsán ismertetett módon irányítja. Hasonló módon egy meghatározott utasítás visszaírási fokozatában a 10 processzor saját architektúra állapotát a meghatározott utasítás függvényében frissíti fel. A 10 processzor az utasítások egyes visszaírás fokozatait azok programozott sorrendjének megfelelően dolgozza fel. Mint azt később a 6-10. ábrák kapcsán ismertetni fogjuk, a 10 processzor meghatározott esetekben egy utasítás befejezés fokozatát és visszaírás fokozatát előnyös módon össze tudja vonni.
A bemutatott kiviteli alak esetében minden egyes utasításnak egy gépi ciklushoz van szüksége arra, hogy az utasítás feldolgozás összes fokozatát befejezze. Ennek ellenére néhány utasítás (például a 26 komplex fixpontos egység által végrehajtott komplex fixpontos utasítások) egynél több ciklust is igényelhetnek. Ennek megfelelően egy változtatható mértékű
-10késés léphet fel egy kiválasztott utasítás végrehajtása és befejezési fokozatai között, a megelőző utasítások befejezéséhez szükséges idő változásától függően.
A 2. ábrán a 10 processzor 22A fixpontos egységének tömbvázlat szintű felépítését tüntettük fel. A 22A fixpontos egységnek az ábrán 50A és 50B hivatkozási jellel beazonosított tároló fokozata van, és ehhez hasonlóan a 20 elágaztató egységnek, a 24B fixpontos egységnek, a 26 komplex fixpontos egységnek, a 28 betöltő és tároló egységnek és a 30 lebegőpontos egységnek is megfelelő tároló fokozatai vannak. Az egyszerűség kedvéért a most ismertetésre kerülő működés kizárólag a 22A fixpontos egységre valamint annak 50A, 50B tároló fokozataira vonatkozik, mint a többi végrehajtó egység és azok tároló fokozatainak működésére utaló példa.
Mindegyik 50A, 50B tároló fokozat információt képes tárolni a 18 sorbarendező egységtől a 22A fixpontos egységhez végrehajtás céljából továbbított meghatározott utasításra vonatkozóan. Mindegyik 50A, 50B tároló fokozatnak van egy-egy vonatkozó DREG cél regiszter mezője, OPERAND A operandus mezője, OPERAND B operandus mezője és OPCODE operációs kód mezője. Ezen túlmenően a bemutatott kiviteli alak egy lényeges jellemzőjeként mindegyik 50A, 50B tároló fokozat egy további EOK végrehajtás engedélyezve mezőt is tartalmaz.
Egy 50A, 50B tároló fokozat DREG cél regiszter mezejében a 18 sorbarendező egység által meghatározott módon legalább egy, az 50A, 50B tároló fokozat utasításához tartozó cél regisztert azonosít. Ehhez hasonló módon megfelelő OPERAND A és OPERAND B operandus mezőiben az 50A, 50B tároló fokozat a rávonatkozó utasításhoz tartozó és a 32 univerzális architektúra regiszterekből, a 34 fixpontos átnevező puffertárakból, a 24B fixpontos egységekből, a 26 komplex fixpontos egységekből vagy 28 betöltő és tároló egységekből érkezett forrás operandus információt tárol. Az 50A, 50B tároló fokozat OPCODE operációs kód mezőjében a 18 sorbarendező egység által meghatározott módon olyan operációs kódot tárol, amely a 22A fixpontos egység által a forrás operandus információn az 50A, 50B tároló fokozat vonatkozó utasítása függvényében végrehajtandó műveletet jelzi.
vezérlő logikai fokozattól érkező jelek függvényében 54 végrehajtó logikai fokozat fogadja valamelyik 50A, 50B tároló fokozat OPERAND A és OPERAND B operandus me- 11 zőjének forrás operandus információját és ezekkel (az 50A, 50B tároló fokozat tárolt operációs kódja által jelölt) műveletet hajt végre. Az 54 végrehajtó logikai fokozat ennek a műveletnek az eredményét a 34 fixpontos átnevező puffertárakba, 24B fixpontos egységbe, 26 komplex fixpontos egységbe és 28 betöltő és tároló egységbe továbbítja. Ezt az információt valamelyik kiválasztott 34 fixpontos átnevező puffertárban tárolja el. Egy az 58 multiplexer fokozat kimenőjelével azonosított cél regiszter függvényében a tárolt információt (a kiválasztott 34 fixpontos átnevező puffertáron belül) valamelyik 32 univerzális architektúra regiszterrel társítja.
A bemutatott kiviteli alak egy további lényeges jellemzője, hogy egy 50A, 50B tároló állomásnak a 18 sorbarendező egység által meghatározott módon végrehajtás engedélyezésére vonatkozó információt tároló EOK végrehajtás engedélyezve mezője van. Előnyös módon ez az EOK információ kiigazít néhány olyan meghatározott helyzetet, amelyben a 10 processzor késik egy sorrendben végrehajtandó utasítás végrehajtásával. A végrehajtás sorbarendezése szokásos technika a többszörös pipeline sorrendet nem tartó végrehajtó processzorok, például a 10 processzor esetében az utasítás végrehajtás késleltetésére. Egy olyan első helyzetben, ahol a 10 processzor késlelteti egy sorrendben végrehajtandó utasítás végrehajtását, az utasítás nem kerül spekulatív módon végrehajtásra. Egy második helyzetben, amikor a 10 processzor késlelteti egy sorbarendezetten végrehajtandó utasítás végrehajtását, az utasítás végrehajtása mindaddig kitolódik, amíg annak összes forrás operandus információja rendelkezésre nem áll és érvényes nem lesz.
Az elsőként megnevezett helyzettel kapcsolatosan (tehát ahol az utasítás nem hajtható végre spekulatív módon), a 10 processzor szokásos módon az utasításokat spekulatívan hajtja végre, tehát az utasítások az utasítás áramon belül előre programozott szekvenciájukhoz képest attól eltérően kerülnek végrehajtásra. Ennek megfelelően az utasítások eredményei (azaz a cél operandus információ) nem szükségszerűen az utasítások programozott szekvenciájának sorrendjében állnak rendelkezésre. A 10 processzor azonban az utasítások eredményeit visszaírja az architektúra regiszterekbe, például a 32 univerzális architektúra regiszterekbe és a 36 lebegőpontos architektúra regiszterekbe, mégpedig az utasítások programozott szekvenciája sorrendjében. Ennek érdekében a 10 processzor a 34 fixpontos átnevező puffertárakat és 38 lebegőpontos átnevező puffertárakat használja fel az utasítások eredményének közbenső tárolására, mindaddig, amíg el nem érkezik a megfelelő pilla• ·
-12nat (például az összes megelőző utasítás kivételes feltételek nélküli végrehajtásának befejezését követően) a közbenső módon tárolt eredmények architektúra regiszterekbe történő visszaírására.
Ezzel együtt, mint a bemutatott kiviteli alak példája is mutatja, néhány utasítás az 1. ábránál említett 40 speciális regisztereket használ, mégpedig úgy, hogy az utasítások eredményei közvetlenül ezekhez a 40 speciális regiszterekhez kerülnek beírásra anélkül, hogy átnevező puffertárakban közbenső tárolásra kerülnének. Egy ilyen utasításra példa a move to utasítás, ahol a 26 komplex fixpontos egység információt visz át valamelyik 40 speciális regiszterbe valamelyik 32 univerzális architektúra regiszterből. Mint az 1. ábrán megfigyelhető, a 26 komplex fixpontos egység közvetlen összeköttetésben áll a 40 speciális regiszterekkel. A move to utasítás végrehajtása esetén közvetlenül felfrissíti valamelyik 40 speciális regiszter tartalmát. Egy másik példa, a store utasítás eredménye pedig közvetlenül, az átnevező puffertárakban történő közbenső tárolás nélkül bekerül a 16 adat cache tár valamelyik memória helyére.
A 10 processzor az ilyen utasításokat (tehát ahol az utasítások eredményei közvetlenül valamely architektúra regiszterbe vagy memória helyre kerülnek anélkül, hogy átnevező puffertárakban közbenső tárolásra kerülnének) nem spekulatív módon hajtja végre, így pontos megszakításokat és pontos kivételeket képes végrehajtani. Ezen túlmenően mivel az utasítások eredményei közvetlenül egy architektúra regiszterbe vagy memória helyre kerülnek, átnevező puffertárakban történő közbenső tárolás nélkül, ezeket az utasításokat egy visszaírás fokozat nélkül dolgozza fel. Ennek megfelelően a sorbarendezett végrehajtás és visszaírás biztosítására a 10 processzor az ilyen utasítások végrehajtását mindaddig késlelteti, amíg az összes megelőző utasítás végrehajtása teljesen befejeződött.
A másodikként említett helyzettel kapcsolatban (tehát ahol egy utasítás végrehajtása mindaddig fel van függesztve, amíg összes forrás operandus információja érvényesen rendelkezésre áll), a 3. ábra vázlata szerint valamelyik 50A, 50B tároló fokozat tárolja átmenetileg az egy olyan utasításra vonatkozó információt, amelynek forrás operandus információja az utasításnak a 18 sorbarendező egység általi elirányítása időpontjában még nem áll rendelkezésre. A valamelyik végrehajtó egységtől beszerezhető forrás operandus információ függvényében az 50A, 50B tárolófokozat fogadja és tárolja ezt a forrás operandus infor- 13 mációt. Egy megfelelő időpillanatban az 50A, 50B tároló fokozat a tárolt forrás operandus információt az 54 végrehajtó logikai fokozathoz továbbítja.
A bemutatott előnyös kiviteli alaknál a legtöbb utasítás forrás operandusként egy vagy több 32 univerzális architektúra regisztert és 36 lebegőpontos architektúra regisztert jelöl meg. Ennek megfelelően a kiviteli alaknál az 50A, 50B tároló fokozatok megfelelő áramköri elemeket, fokozatokat foglalnak magukban az információ továbbítására a végrehajtó egységektől.
Ezzel együtt a bemutatott előnyös kiviteli alaknál az 50A, 50B tároló fokozatok nem tartalmaznak áramköri elemeket információ továbbítására más típusú forrás operandusoktól, például 42 vivőbit regiszterektől vagy 40 speciális regiszterektől. Ennek az oka, hogy az ilyen továbbítás nélküli forrás operandusokat kijelölő utasítások gyakorisága nem ellensúlyozza a járulékos áramköri részek nagyságát és költségét. Ehelyett a bemutatott előnyös kiviteli alak 10 processzora az ilyen továbbítás nélküli forrás operandusokat kijelölő utasítások végrehajtását mindaddig felfüggeszti, amíg legalább az összes azt megelőző utasítás végrehajtása befejeződik. Az összes megelőző utasítás befejezését követően a továbbítatlan forrás operandusokat valamelyik meghatározott, kiválasztott architektúra regiszterből (például a 40 speciális regiszterek valamelyikéből) kiolvassa. Ilyen utasításokra példaként nevezhetjük meg :
1. az a kiterjesztett aritmetikai utasítást, amely a 42 vivőbit regiszter kiolvasására vonatkozik és
2. azt a move ffom utasítást, amely valamelyik 40 speciális regiszterben lévő információt valamelyik 32 univerzális architektúra regiszterbe visz át.
Az eddig leírtakat úgy foglalhatjuk össze, hogy a 10 processzor egy sorbarendezetten végrehajtandó utasítás végrehajtását legalább az összes megelőző utasítás végrehajtásának befejezéséig két esetben késlelteti illetve függeszti fel: az első esetben az utasítás nem hajtandó és nem hajtható végre spekulatív módon, a második esetben pedig az utasítás legalább egy olyan forrás operandust jelöl meg, amelyre vonatkozóan a 10 processzor nem rendelkezik továbbító áramköri résszel. Előnyös módon ezeket a szituációkat a 18
- 14sorbarendező egység eredményesen lekezeli oly módon, hogy valamelyik 50A, 50B tárolófokozatban eltárolandó EOK információt specifikál.
Amennyiben egy utasítás csak sorbarendezett módon hajtható végre, úgy a 18 sorbarendező egység az 50A, 50B tároló fokozat EOK végrehajtás engedélyezve mezőjében tárolt EOK információ egy EOK bitjét logikai nulla értékre állítja be, amikor az adott utasítást a 22A fixpontos egységhez továbbítja. Az EOK bit logikai nulla értéke esetén a 18 sorbarendező egység nem engedi, hogy a 22A fixpontos egység végrehajtsa az utasítást, még abban az esetben sem, ha különben az utasítás végrehajtásra alkalmas állapotban lenne. Ennek megfelelően a 22A fixpontos egység az ilyen sorbarendezetten végrehajtandó utasítást csupán egy, a 18 sorbarendező egység által 60 vonalon az alábbiakban ismertetésre kerülő módon kibocsátandó jel függvényében hajtja végre.
Csupán összehasonlítás céljából emlékezzünk arra, hogy amennyiben egy utasítás nem csak sorbarendezetten hajtható végre, akkor a 18 sorbarendező egység az EOK bitet logikai 1 értékre állítja be, amikor az utasítást továbbítja a 22A fixpontos egységhez. Az EOK bit logikai 1 értéke esetén a 18 sorbarendező egység engedélyezi a 22A fixpontos egység számára, hogy az az utasítást rögtön végrehajtsa, amint az utasítás forrás operandus információja érvényes alakban rendelkezésére áll.
A 3. ábrán a 18 sorbarendező egység felépítésének tömbvázlata látható. Mint korábban már említettük, a 18 sorbarendező egység az előkészítő fokozatban a 15 utasítás cache tárból legfeljebb négy utasítást fogad szelektív módon, és ezeket az utasításokat 70 utasítás tárban tárolja. A dekódolás fokozatban 72 dekódoló logikai fokozat a 70 utasítás tárból fogad és dekódol legfeljebb négy előkészített utasítást. Az eligazító fokozatban 74 eligazító fokozat a 20 elágaztató egység, 22A fixpontos egység, 24B fixpontos egység 26 komplex fixpontos egység, 28 betöltő és tárolóegység és 30 lebegőpontos egység közül valamelyik kiválasztott egységhez szelektív módon juttatja el a legfeljebb négy dekódolt utasítást (a dekódoló fokozatban végzett dekódolás függvényében).
A 4. ábrán a bemutatott kiviteli alak 18 sorbarendező egységének 76 újrarendező puffertárát, pontosabban annak elvi felépítését tüntettük fel. Mint az ábrán látható, a 76 újrarendező puffertámak 0-15 pufferszámként megcímkézett tizenhat bejegyzése van. Minden egyes bejegyzéshez öt primer mező tartozik, nevezetesen egy utasítás típus mező, egy
- 15univerzális architektúra regiszter célállomás szám mező, egy lebegőpontos architektúra regiszter célállomás szám mező, egy befejezve mező és egy kivétel mező. Ezen túlmenően az utasítás típus mezőnek egy további végrehajtó egység almezeje és egy EOK almezeje van.
Visszautalva a 3. ábrára, amint a 74 eligazító logikai fokozat egy utasítást küld valamelyik végrehajtó egységhez, a 18 sorbarendező egység az eligazított utasítást hozzárendeli a 76 újrarendező puffertár egy társított bejegyzéséhez. A 18 sorbarendező egység a 76 újrarendező puffertár bejegyzéseit FIFO (elsőként be, elsőként ki) alapon és rotációs módon rendeli hozzá az eligazított utasításokhoz úgy, hogy előbb a 0 bejegyzést, majd ezt követően növekvő számsorrendben az 1-15 bejegyzéseket veszi sorra, majd újból a 0 bejegyzés következik. Miután az eligazított utasítás a 76 újrarendező puffertár társított bejegyzéséhez kapcsolódott, a 74 eligazító logikai fokozat az eligazított utasításra vonatkozó információt tárolás céljából továbbítja a 76 újrarendező puffertámak a társított bejegyzéssel kapcsolatos különböző mezőihez és almezőihez.
így például a 4. ábra 0 bejegyzésében a 76 újrarendező puffertár jelzi, hogy az utasítás a 22A fixpontos egységtől érkezett. Ezen túlmenően a 0 bejegyzés jelzi azt is, hogy az eligazított utasítás sorrendben végrehajtandó, tehát az EOK mező értéke 0, és ennek megfelelően a 10 processzornak az eligazított utasítás végrehajtását legalább addig fel kell függesztenie, amíg az összes megelőző utasítás végrehajtása befejeződik. Hasonló módon a 76 újrarendező puffertár 1 bejegyzésében a 76 újrarendező puffertár jelzi, hogy a rákövetkező utasítás is sorrendben végrehajtandó, és az EOK mező értéke is nulla.
A bemutatott kiviteli alak egy további jellegzetessége szerint ugyancsak a 76 újrarendező puffertár 0 bejegyzése jelzi azt is, hogy az eligazított utasítás egyetlen 32 univerzális architektúra regiszterhez kapcsolódik (tehát a univerzális architektúra regiszter célállomás szám mező értéke 1), nem kapcsolódik 36 lebegőpontos architektúra regiszterhez (tehát a lebegőpontos architektúra regiszter célállomás szám mező értéke 0), végrehajtása még nem fejeződött be (tehát a befejezve mező értéke 0), és még nem okozott kivételt (tehát a kivétel mező értéke is 0).
Ha egy végrehajtó egység egy eligazított utasítást hajtott végre, akkor a végrehajtó egység az utasítással társított bejegyzést módosítja a 76 újrarendező puffertárban. Ez részleteseb- 16ben azt jelenti, hogy az eligazított utasítás végrehajtásának befejezését követően a végrehajtó egység módosítja az adott bejegyzés befejezve mezőjének értékét (0-ról 1-re). Ha a végrehajtó egység az eligazított utasítás végrehajtása során kivételt tapasztal, úgy az utasításhoz hozzárendelt bejegyzés kivétel mezőjének értékét módosítja (0-ról 1-re).
Ugyancsak a 3. ábrán követhető nyomon, hogy a 76 újrarendező puffertár bejegyzéseit a 18 sorbarendező egység 80 befejezés logikai fokozata és 82 kivétel logikai fokozata fogadja és olvassa. Ezen túlmenően a találmány újszerűsége szempontjából lényeges jellemző, hogy a 76 újrarendező puffertár bejegyzéseit a 18 sorbarendező egység 84 végrehajtás sorbarendező logikai fokozata is olvassa. A 82 kivétel logikai fokozat a 76 újrarendező puffertár kivétel mezője értékének függvényében kezeli le az eligazított utasítások végrehajtása során érzékelt kivételeket.
A 76 újrarendező puffertár befejezve mezőinek és kivétel mezőinek értéke függvényében a 80 befejezés logikai fokozat jeleket továbbít a 74 eligazító logikai fokozathoz, a 84 végrehajtás sorbarendező logikai fokozathoz és a 76 újrarendező puffertárhoz. A 80 befejezés logikai fokozat ezekkel a jelekkel jelzi az utasítások programozott szekvencia szerinti, sorbarendezett végrehajtásának befejezését. A 80 befejezés logikai fokozat egy utasítás végrehajtását akkor tekinti és jelzi befejezettnek, ha teljesülnek az alábbi feltételek:
1. feltétel: A végrehajtó egység (amelyhez a 74 eligazító logikai fokozat az utasítást továbbította), befejezi az utasítás végrehajtását (tehát az utasítás társított bejegyzésének befejezve mező értéke logikai 1 a 76 újrarendező puffertárban).
2. feltétel: Az utasítás feldolgozásának bármely fokozata során egyetlen kivétel jelzés sem érkezett (tehát a 76 újrarendező puffertárnak az utasítással társított bejegyzése kivétel mezejének értéke logikai 0), és
3. feltétel: Minden egyes korábban eligazított utasítás teljesíti az 1. és 2. feltételt.
A 74 eligazító logikai fokozat a 76 újrarendező puffertárban tárolt információ függvényében határozza meg az eligazítandó járulékos utasítások megfelelő számát.
A bemutatott kiviteli alak egyik lényeges jellemzőjeként a 84 végrehajtás sorbarendező logikai fokozat a 80 befejezés logikai fokozattól érkező jelek függvényében szelektív mó- 17don küld jelet a 60 vonalon keresztül a 22A fixpontos egységhez. Ha a 22A fixpontos egységhez továbbított eligazított utasítás vele társított EOK bitjének értéke (az utasítással társított bejegyzés utasítás típus mezejének értéke a 76 újrarendező puffertárban) logikai 0 értékre van beállítva, akkor a 84 végrehajtás sorbarendező logikai fokozat a jelet kibocsátja és továbbítja a 60 vonalon keresztül az eligazított utasítást megelőző összes utasítás befejezettsége esetén. A 22A fixpontos egység ezt a hozzá eligazított utasítást csupán abban az esetben hajtja végre, ha a 84 végrehajtás sorbarendező logikai fokozat az erre vonatkozó jelet kibocsátotta a 60 vonalon; és ebben az esetben, tehát, ha a 84 végrehajtás sorbarendező fokozat megfelelő jelet ad ki a 60 vonalon, az eligazított utasítás (amelynek a vele társított EOK bit értéke logikai nullára állított) lesz a legrégebbi függő utasítás a 22A fixpontos egység 50A, 50B tároló fokozataiban, mivel az utasítások programozott szekvenciájuk sorrendjében kerülnek végrehajtásra illetve fejeződik be végrehajtásuk.
Hasonló módon a 84 végrehajtás sorbarendező logikai fokozat a 20 elágaztató egységhez, a 24B fixpontos egységhez, a 26 komplex fixpontos egységhez, a 28 betöltő és tároló egységhez és a 30 lebegőpontos egységhez 86, 88, 90, 92 és 94 vonalakon keresztül juttatja el a vonatkozó jelet.
Az 5A. és 5B. ábrákon az utasítások egyes fokozatait tüntettük fel. Az 5A. ábrán vázolt esetben az n+l-edik sorbarendezetten végrehajtandó INST utasítás (például egy move to utasítás vagy egy move from utasítás) végrehajtása (6. ciklus) mindaddig függőben marad, amíg az összes azt megelőző utasítás végrehajtása befejeződik (például az azt megelőző n-edik INST utasítás végrehajtása az 5. ciklusban). Ezzel együtt a 10 processzor előnyösen nem késlelteti annak az η+2-edik INST utasításnak az eligazítását (3. ciklus) vagy végrehajtását (4. ciklus), amelyet a sorbarendezetten végrehajtandó n+l-edik INST utasítást megelőz. Ily módon a 10 processzor folyamatosan biztosítja azoknak az utasításoknak, (például az η+2-edik INST utasításnak) az eligazítását, amelyeket egy sorbarendezetten végrehajtandó utasítás (például az n+l-edik INST utasítás) megelőz. Hasonló módon a 10 processzor egy végrehajtási egysége a hozzátartozó 50A, 50B tároló fokozatokból sorrendtől eltérően is ki tud bocsátani utasításokat a végrehajtó logikai fokozata számára, (például a 2. ábrán feltüntetett 54 végrehajtó logikai fokozat számára), még abban az esetben is, ha a végrehajtó egységhez tartozó 50A, 50B tároló fokozatban lévő legrégebbi függő utasítás sorrendben végrehajtandó utasításnak minősül.
- 18 A bemutatott előnyös kiviteli alakban alkalmazott és a leírt módon működtetett 10 proceszszor az ismert alternatíváknál lényegesen hatékonyabb. Mint az 5B. ábrán láthatjuk egy ilyen alternatív megoldás szerint a i+2-edik INST utasítás eligazítása (8. ciklus) a csupán sorbarendezetten végrehajtandó i+l-edik INST utasítás dekódolásának (2. ciklus) függvényében fel van függesztve. Ebben az alternatív eljárásban az i+2-edik INST utasítás eligazítása (8. ciklus) kizárólag az összes azt megelőző eligazított utasítás befejezését követően folytatódik (például a megelőző sorbarendezetten végrehajtandó i+l-edik INST utasítás 7. ciklusban történő befejezését követően). Ennek az ismert alternatív módszernek a hátrányául felróható, hogy a végrehajtás bármely utasítás esetében felfüggesztésre kerül (tehát az i+2-edik INST utasítás esetében is), amelyet egy sorbarendezetten végrehajtandó utasítás (például az i+l-edik INST utasítás) megelőz.
Mint azt korábban kifejtettük a 10 processzor folyamatosan képes azoknak az utasításoknak az eligazításáról gondoskodni, amelyeket egy sorrendben végrehajtandó utasítás előz meg. A példaképpen említett move from utasítás ilyen, sorrendben végrehajtandó utasítás, és ezért élvezi a bemutatott előnyös kiviteli alakban használt sorrendi végrehajtási eljárás előnyeit. Ezen túlmenően a bemutatott kiviteli alak egy további lényeges jellemzőjeként a 10 processzor olyan áramköri elemekkel rendelkezik, amelyekkel egy move from utasítás kimeneti eredményeit (cél operandus információt) egy kiválasztott átnevező puffertárban tárolni tud, mielőtt visszaírná azokat valamelyik 32 univerzális architektúra regiszterbe.
A 10 processzor támogatja ezt a típusú átnevezést függetlenül attól, hogy egy move from utasítás cél regisztere valamelyik 32 univerzális architektúra regiszterrel azonos. Ily módon a 10 processzor 50A, 50B tároló fokozatainak meglévő áramköri részeit használja az átnevező puffertárak keresésére szolgáló áramköri részekkel együtt arra a célra, hogy egy move from utasítás (cél operandus információját a move from utasítás után eligazított utasítás forrás regiszterével helyesen azonosítsa. Ennek megfelelően a move from utasítás által megelőzött egyéb utasítások is bármikor eligazíthatok a move from utasítás eligazítását követően. A move from utasításhoz való áramköri elemek használata nélkül a move from utasítást megelőző többi utasítás a move from utasítás teljes befejezéséig nem lennek eligazítható, mert a többi utasítás forrás operandus információjaként a move from utasítás cél operandus információját igényelheti.
- 19 A bemutatott kiviteli alak egy további lényeges jellemzője szerint a 10 processzor előnyösebbé teszi, áramvonalasítja az utasítások eligazítását azzal, hogy előnyös módon reagál az utasítás előkészítés és dekódolás vonatkozású kivételekre. A 10 processzor egy ilyen utasítás előkészítés vagy dekódolás vonatkozású kivételt még az előkészítő fokozatban vagy dekódoló fokozatban érzékel, ha a kivétel feltétel magából az utasításból és a 10 proceszszor állapotából teljességgel detektálható. Ilyen utasítás előkészítés vagy dekódolás vonatkozású kivételekre jó példa az utasítás hozzáférés laphiba, az utasítás hozzáférés tárolás védelem sértés, a privilegizált utasítás sértés, valamint az illegális utasítások.
A 18 sorbarendező egység egy ilyen utasítás előkészítés vagy dekódolás vonatkozású kivételre válaszképpen előnyös módon egy végrehajtó egység 50A, 50B tároló fokozatához igazítja el a kivételt okozó utasítást, egyidejűleg mint azt korábban a 2-4. ábrák kapcsán említettük, az ahhoz tartozó EOK bit értékét logikai nulla értékre állítja be. Ezen túlmenően a 18 sorbarendező egység jelzi a kivétel helyzetet azzal, hogy a kivétel mező értékét (miközben a befejezve mező értékét logikai nulla szinten tartja) logikai 1 értékre állítja be a kivételt okozó utasítással társított bejegyzésben a 76 újrarendező puffertárban. Egy ilyen jelzés az utasítást mint egy ilyen jellegű kivételt okozó utasítást azonosítja.
Mint azt korábban a 2-4. ábrák kapcsán már bemutattuk, azzal, hogy a 18 sorbarendező egység az EOK bit értékét logikai 0 értékre állítja be, megakadályozza, hogy a végrehajtó egység ezt az eligazított utasítást végrehajtsa még abban az esetben is, ha az utasítás egyébként végrehajtásra alkalmas állapotban lenne. Ennek megfelelően a végrehajtó egység egy ilyen utasítást kizárólag annak a jelnek az eredményeképpen hajt végre, amelyet a 18 sorbarendező egység az őt a többi egységgel összekötő valamelyik 60, 86, 88, 90, 92 vagy 94 vonalon keresztül bocsát ki.
Miután az utasítás előkészítés és dekódolás vonatkozású kivételt okozó utasítást megelőző összes utasítás végrehajtása befejeződött, a 18 sorbarendező egység előbb az előkészítés vagy dekódolás vonatkozású kivételt dolgozza fel a 60, 86, 88, 90, 92 vagy 94 vonalak valamelyikén várt jel kibocsátása helyett. Ennek köszönhetően ez a kivételt okozó utasítás soha nem kerül a végrehajtó egységekhez végrehajtásra. A 18 sorbarendező egység az utasítást kivétel okozó utasításként ismeri fel, hiszen a kivételt okozó utasításhoz hozzá-20rendelt bejegyzés a 76 újrarendező puffertárban a befejezve mezőben logikai 0, a kivétel mezőben pedig logikai 1 értékű.
Ezzel a módszerrel a 10 processzor a 74 eligazító logikai fokozat révén (lásd a 3. ábrát) karcsúsítani tudja és fel tudja gyorsítani az utasítás eligazítást, ahol a 74 eligazító logikai fokozat a sebesség szempontjából egyik legkritikusabb áramköri rész egy szuperskaláris processzorban. Ennek megfelelően a bemutatott kiviteli alak 10 processzora az alternatív megoldásoknál lényegesen hatékonyabban működik. Egy ilyen alternatív eljárás értelmében tudniillik a processzor soha nem foglalkozik az utasítás előkészítés vagy dekódolás vonatkozású kivételek okozta utasítások eligazításával. így az ilyen alternatív technika bonyolult és lassú eligazítást eredményez, mivel minden egyes utasításnál a processzornak vizsgálnia kell az esetlegesen fellépett utasítás előkészítés és dekódolás vonatkozású kivétel feltételt, mielőtt eldönti, hogy az utasítás eligazítható-e vagy sem. így például egy ilyen alternatív eljárás során a processzor annak alapján dönti el, hogy az n-edik utasítást eligazítsa-e, hogy ez az n-edik utasítás vagy bármely azt megelőző n-1... utasítás során fellépett-e előkészítés vagy dekódolás vonatkozású kivétel feltétel.
Ha ezzel a módszerrel összehasonlítjuk a javasolt eljárást illetve az azt megvalósító előnyös kiviteli alakot, láthatjuk, hogy a 3. ábrán bemutatott 74 eligazító logikai fokozat az előkészítés vagy dekódolás vonatkozású kivétel feltételektől függetlenül működik. A 18 sorbarendező egység tudniillik egy utasításnak végrehajtás céljából egy végrehajtó egységhez való esetleges eligazítására vonatkozó döntést követően is meg tudja határozni, hogy az adott utasítás esetében fellépett-e utasítás előkészítés vagy dekódolás vonatkozású kivétel feltétel. Ha a 18 sorbarendező egység az adott utasítás esetében ilyen feltétel jelenlétét állapítja meg, úgy ezt a feltételt jelzi, hogy meggátolja az utasítás végrehajtását a kiválasztott végrehajtó egységnél. Részletesebben, attól függően, hogy a 18 sorbarendező egység az adott utasításra vonatkozóan megállapított-e utasítás előkészítés és dekódolás vonatkozású kivétel feltételt, ezt a megállapítását az aktuális eligazítás során jelzi a többi egység felé, még pedig egyrészt úgy, hogy a kivételt okozó utasítással társított 76 újrarendező puffertár bejegyzés kivétel mezőjének értékét logikai 1 értékre állítja (míg a befejezve mező értékét továbbra is logikai 0 szinten tartja), másrészt a kivételt okozó utasítás 50A, 50B tároló fokozatában az EOK bit értékét logikai 0 értékre állítja vissza.
-21 Ez azért előnyös, mert ha eldöntöttük, hogy egy utasítás eligazítható, úgy általános esetben nem tűnik célszerűnek egy ilyen döntés hatásainak a megváltoztatása és az utasítás eligazításának az elhagyása. Ezen túlmenően az eligazítási ciklusban az utasítás eligazításáról szóló döntést követően járulékos műveleteket kell végrehajtani. Ennek megfelelően a 10 processzornak nem kell megvizsgálnia bármilyen kivétel feltétel meglétét, mielőtt elhatározza az adott utasítás eligazítását. Ez különösen előnyös a 18 sorbarendező egység szempontjából, mivel az így egyetlen 10 processzor ciklus alatt több utasítás eligazításáról is gondoskodhat.
A 6. ábra a 76 újrarendező puffertár tartalmát illetve elvi felépítését mutatja olyan esetben, amikor is ugyanaz alatt a 10 processzor ciklus alatt négy utasítás látható a végrehajtás végső fázisában (azaz a befejezve mező értéke logikai 1). A 7. ábra a 6. ábrán bemutatott négy utasítás egyes fokozatait tünteti fel, míg a 8A-8d ábrák a 10 processzor 34 fixpontos átnevező puffertárainak elvi felépítését mutatják.
A 6-8. ábrákon találmányunk egyik lényeges jellemzője ismerhető meg, nevezetesen, hogy a visszaírás független egy adott utasítás végrehajtásának befejezésétől, így tehát egy a 10 processzor által feldolgozott utasítás visszaírás fokozata elválasztható az utasítás befejezés fokozatától. A visszaírásnak a befejezéstől történő ilyen jellegű elválasztása révén a 10 processzor előnyös módon igen hatékony működésre képes, mivel kevesebb visszaíró portra van szükség a 34 fixpontos átnevező puffertár és 38 lebegőpontos átnevező puffertár, valamint a 32 univerzális architektúra regiszter és 36 lebegőpontos architektúra regiszter között. Például az 1. ábra tömbvázlatára visszatérve a bemutatott kiviteli alakban használt 10 processzornak két visszaíró portja van a 34 fixpontos átnevező puffertárak és a 32 univerzális architektúra regiszterek között valamint két további visszaíró portja van a 38 lebegőpontos átnevező puffertárak és a 36 lebegőpontos architektúra regiszterek között. A kevesebb visszaíró portnak köszönhetően a 34 fixpontos átnevező puffertár, 38 lebegőpontos átnevező puffertár, a 32 univerzális architektúra regiszter és a 36 lebegőpontos architektúra regiszter fizikai méretei is csökkenthetők. Ezen túlmenően a 3. ábra kapcsán említett 80 befejezés logikai fokozat is karcsúsított, így a 10 processzor lényegesen gyorsabban képes meghatározni, vajon egy adott utasítás az éppen futó ciklus alatt befejezhető-e.
• · • · · · ···· • · ·
-22A bemutatott kiviteli alak esetében a 10 processzor egy ciklus alatt legfeljebb négy utasítás befejezésére képes. Ugyancsak ennél a kiviteli alaknál minden egyes utasítás két cím operandust tartalmazhat. Ennek megfelelően, ha a 10 processzor nem támogatja a visszaírás és a befejezés egymástól történő elkülönítését, úgy nyolc visszaíró portra lenne szükség (például a 34 fixpontos átnevező puffertárak és a 32 univerzális architektúra regiszterek között) ahhoz, hogy egy kiválasztott ciklusban négy utasítást fejezzen be, amennyiben mind a négy utasítás két-két cím operandust tartalmaz. Ennek az az oka, hogy egy utasítás befejezése szükségessé tenné, hogy egy-egy visszaíró port álljon rendelkezésre minden egyes, egy 34 fixpontos átnevező puffertárból egy vele társított 32 univerzális architektúra regiszterbe másolandó cél operandus számára.
Ha kevesebb visszaíró port van, úgy a visszaíró port készenlétének ellenőrzése egyre bonyolultabbá válna, amint egyre több utasítás kerülne visszaírásra ugyanaz alatt a ciklus alatt. Ennek az az oka, hogy egy visszaíró port készenléte egy meghatározott utasítás számára egy kiválasztott ciklus alatt függ az ugyanaz alatt a ciklus alatt vagy azt megelőző ciklusok alatt a megelőző utasításokhoz használt visszaíró portok számától.
Amennyiben a visszaírást különválasztjuk a befejezéstől, akkor a 10 processzor 80 befejezés logikai fokozata (lásd a 3. ábrát) erősen karcsúsítható, mivel egy adott utasítás befejezése az alábbi feltételektől függ:
1. feltétel: a végrehajtó egység (amelyhez az utasítást eligazítottuk) befejezi az utasítás végrehajtását.
2. feltétel: az utasítás feldolgozásának bármely fokozata alatt semmilyen kivétel feltételt nem észleltünk és
3. feltétel: bármely korábban eligazított utasítás teljesíti az 1. és 2. feltételt is.
A befejezés és a visszaírás szétválasztása során a 10 processzor a már befejezett utasítás cél operandus információját egy 34 fixpontos átnevező puffertárból vagy 38 lebegőpontos átnevező puffertárból tárolás céljából átmásolja egy 32 univerzális architektúra regiszterbe vagy 36 lebegőpontos architektúra regiszterbe egy olyan meghatározott ciklus alatt, amikor a visszaíró port a ciklus során rendelkezésre áll. Ha a ciklus során a visszaíró port nem áll rendelkezésre, akkor a 10 processzor a befejezett utasítás cél operandus információját a 34
-23 fixpontos átnevező puffertárból vagy 38 lebegőpontos átnevező puffertárból egy későbbi ciklus alatt másolja csak át a 32 univerzális architektúra regiszterbe vagy 36 lebegőpontos architektúra regiszterbe, amikor már a visszaíró port szabad és rendelkezésre áll.
Ha megfigyeljük a 6. ábrát, látható, hogy a 76 újrarendező puffertár a négy utasítást befejező végrehajtásra vonatkozó utasítást a 10 processzornak ugyanaz alatt a ciklusa alatt tárolja el. A 7. ábrán láthatók a négy x, x+1, x+2 és x+3 INST utasítás különböző fokozatai, amelyek megfelelő módon vannak a 6. ábra 76 újrarendező puffertáqának 7, 8, 9 és 10 puffertár számaihoz társítva. Ennek megfelelően a x INST utasításnak egy cél operandusa van (az univerzális architektúra regiszter célállomások száma mező értéke 1). Hasonlóképpen a x+1 INST utasításnak egyetlen cél operandusa van (az univerzális architektúra regiszter célállomás szám mező értéke 1). Ehhez képest a x+2 INST utasítás két cél operandussal rendelkezik (az univerzális architektúra regiszter célállomás szám mező értéke 2). Hasonlóképpen a x+3 IST utasítás két cél operandussal rendelkezik (az univerzális architektúra regiszter célállomás szám mező értéke 2). Mint a 7. ábrán látható, mindegyik x, x+1, x+2 és x+3 INST utasítás a négy ciklus végén fejezi be az adott utasítás végrehajtását.
A 8A-8d. ábrákon a 10 processzor 34 fixpontos átnevező puffertáqának felépítése és elvi működése követhető nyomon. Tényként szögezzük le, hogy az említett ábrák kimondottan a 34 fixpontos átnevező puffertárra vonatkoznak, de ezt megfelelő módosításokkal a 38 lebegőpontos átnevező puffertárra is vonatkoztatni tudjuk. Mint az ábrákon látható, a 34 fixpontos átnevező puffertár tizenkét átnevező puffért tartalmaz, amelyek 1-11 puffertár számként vannak megcímkézve. A 18 sorbarendező egység gondoskodik a 0-11 puffertár számok lefoglalásáról, hogy az utasításokat a már korábban is említett FIFO alapon és rotációs módon eligazítsa, azaz a 18 sorbarendező egység előbb a 0 puffertár számú átnevező puffért foglalja le, majd ezt követően az 1-es számút, majd a 2-11 számút sorban egymást követően, majd utána újból a 0 puffertár számú átnevező puffer kerül sorra.
A 8A-8d ábrákon megfigyelhető, hogy a 2 puffertár számú átnevező puffer a x INST utasításhoz tartozó cél operandus információ tárolása céljából van lefoglalva. A 3 puffertár számú átnevező puffer az x+1 INST utasításhoz tartozó cél operandus információ tárolásához van lefoglalva. Mivel az x+2 INST utasítás két cél operandust tartalmaz, ezért ezek tárolására, két négy és öt puffertár számú átnevező puffer van lefoglalva. Hasonló módon a
-24hat és hét puffertár számú pufferek kimondottan az x+3 INST utasításhoz tartozó cél operandus információ tárolására vannak lefoglalva.
A 8a. ábrán 81 allokációs mutató, 83 visszaírás mutató és 85 befejezés mutató állapota látható a 7. ábra 4. és 5. ciklusainak kezdetén.
A 10 processzor ezeket a mutatókat a 34 fixpontos átnevező puffertárakból történő kiolvasás illetve azokba történő írás vezérlésére használja. A 10 processzor a 81 allokációs mutató segítségével jelzi, hogy egy adott átnevező puffertár le van-e foglalva egy meghatározott utasítás számára. Mint a 8A. ábrán látható, a 81 allokációs mutató a 8 puffertár számra mutat és ezzel jelzi, hogy ez a 8 puffertár számú átnevező puffertár az a következő puffertár, amely egy utasítás allokációjára elérhető.
A bemutatott kiviteli alak további lényeges tulajdonsága értelmében a 10 processzor a 83 visszaírás mutatót használja fel annak jelzésére, hogy a (korábban egy meghatározott utasítás számára már lefoglalt) átnevező puffertár felhasználható-e egy másik utasítás számára való újra lefoglaláshoz. Mint a 8a. ábrán jeleztük, a 83 visszaírás mutató a 2 puffertár számú átnevező puffertárra mutat, jelezve ezzel, hogy a 2 puffertár számú átnevező puffertár lesz a következő, amelyből a 10 processzor a cél operandus információt (ahogy az a 8A. ábra átnevező puffertáijának információ mezőjében van eltárolva) át fogja másolni valamelyik 32 univerzális architektúra regiszterbe (ahogy az a 8a. ábra átnevező puffertáijának regiszterszám mezőjében meg lett határozva).
A 10 processzor ennek megfelelően a 83 visszaírás mutatót előre állítja (egy korábban egy meghatározott információ számára lefoglalt átnevező puffertár mögé), majd a meghatározott utasítás eredményét (azaz cél operandus információját) az átnevező puffertárból tárolás céljából bemásolja egy architektúra regiszterbe. Ily módon a 10 processzor egy lefoglalt átnevező puffertárat tartalékol a meghatározott utasítás eredményének (cél operandus információjának tárolására mindaddig, amíg ugyanő az eredményt egy architektúra regiszterbe másolja.
Hasonlóképpen a 10 processzor a 85 befejezés mutatót használja annak jelzésére (egy meghatározott utasítás számára korábban lefoglalt átnevező puffertárhoz), hogy a szóban forgó meghatározott utasítás kielégíti-e a következő feltételeket:
-25 1. feltétel: a végrehajtó egység (amelyhez az utasítást eligazítottuk) befejezi az utasítás végrehajtását.
2. feltétel: az utasítás feldolgozásának bármely fokozata alatt semmilyen kivétel feltételt nem észleltünk és
3. feltétel: bármely korábban eligazított utasítás teljesíti az 1. és 2. feltételt is.
A 8A. ábrán látható módon a 85 befejezés mutató a 2 puffertár számú átnevező puffertárra mutat, jelezve ezzel, hogy ez a 2 puffertár számú átnevező puffertár lesz az a következő átnevező puffertár, amelyik teljesíteni tudja az 1-3 feltételeket. A bemutatott kiviteli alak egy lényeges tulajdonsága értelmében a 10 processzor a 85 befejezés mutatót attól függetlenül gondozza, hogy az utasítás ereménye az átnevező puffertárból tárolás céljából be lette másolva egy architektúra regiszterbe.
Ennek megfelelően az átnevezés bejegyzéseket úgy is definiálhatjuk, mint azt az átnevező puffertárat, amelyre a 85 befejezés mutató rámutat, valamint annak következő átnevező puffertárait, amelyek a 81 allokációs mutató által mutatott átnevező puffertárat megelőzik.
Ehhez képest a visszaírás bejegyzéseket úgy definiálhatjuk, mint azt az átnevező puffertárat, amelyre a 83 visszaírás mutató rámutat, valamint annak következő átnevező puffertárait, amelyek megelőzik azt az átnevező puffertárat, amelyre a 85 befejezés mutató rámutat. A visszaírás bejegyzések olyan utasítások eredményeit tárolják, amelyek befejezettek, de eredményeik még nem lettek bemásolva az átnevező puffertárakból az architektúra regiszterekbe, például az architektúra regiszterekbe vezető írás portok elérhetetlensége következtében.
A visszaírás bejegyzések konceptuálisán az átnevező bejegyzések és az architektúra regiszterek között helyezkednek el. Adott esetben előnyös, ha egy eredmény az említett visszaírás bejegyzéseket kikerüli, és közvetlenül az architektúra regiszterekbe kerül beírásra, ha a befejezés fokozatban egy visszaírás port éppen rendelkezésre áll. Ezen túlmenően hasonlóan az átnevezés bejegyzésekhez, a 10 processzor arra használja fel a visszaírás bejegyzéseket, hogy információt bocsásson ki valamelyik végrehajtó egység számára olyan helyze···· ·*··
-26tekben, amikor a végrehajtó egység az ilyen információval társított architektúra regisztert specifikáló utasítást hajt végre.
A 8b ábra a 81 allokációs mutató, a 83 visszaírás mutató és a 85 befejezés mutató 7. ábra
6. ciklusának kezdetén fennálló állapotát mutatja be. Látható, hogy a 81 allokációs mutató helyzete változatlan, mert a 10 processzor járulékos utasításokat nem igazított el. Ehhez képest a 85 befejezés mutató a 2 puffertár számú átnevező puffertárról továbblépett a 8 puffertár számú átnevező puffertárra, jelezve ezzel, hogy az 5. ciklus alatt összesen hat cél operandust tartalmazó mind a négy x, x+1, x+2, x+3 INST utasítás végrehajtása befejeződött.
Ezen túlmenően ugyancsak a 8B. ábrán láthatóan a 83 visszaírás mutató a 2 puffertár számú átnevező puffertárról előre lépett a 4 puffertár számú átnevező puffertárra, jelezve ezzel, hogy az 5. ciklus alatt az x és az x+1 INST utasításokra vonatkozó cél operandus információ visszaírása megtörtént. A 7. ábra ezt a tényt úgy mutatja be, hogy az x és x+1 utasításokhoz tartozó, az 5. ciklus során együtt megvalósuló befejezést és visszaírást is feltünteti. Ilyen módon az x és x+1 INST utasítások (a 2 puffertár számú és a 3 puffertár számú ámevező puffertárakban lévő) eredményei megkerülik a visszaírás bejegyzéseket, és közvetlenül a 32 univerzális architektúra regiszterekbe kerülnek beírásra, mivel az 5. ciklus kezdetekor két visszaírás port volt elérhető. A 8b. ábrán a 83 visszaírás mutató nem lépett előre a négy puffertár számú átnevező puffertár mögé, mivel az 5. ciklus alatt mindkét visszaírás port foglalt volt az x és x+1 INST utasítások eredményeinek visszaírása során.
A 8c. ábra a 81 allokációs mutató, a 83 visszaírás mutató és a 85 befejezés mutató állapotát mutatja a 7. ábra 7. ciklusának kezdetén. Mint a 7. és 8. ábrákon látható, a 6. ciklus során mindkét visszaírás portot használjuk az x+2 INST utasítás két eredményének visszaírására. Ennek megfelelően a 83 visszaírás mutató a 4 puffertár számú ámevező puffertárról előre lépett a 6 puffertár számú átnevező puffertárra. A 81 allokációs mutató helyzete változatlan, mert a 10 processzor járulékos utasításokat nem igazított el. Ugyanígy a 85 befejezés mutató helyzete is változatlan, mert a 10 processzor járulékos utasításokat sem fejezett be.
A 8d. ábra a 81 allokációs mutató a 83 visszaírás mutató és a 85 befejezés mutató helyzetét a 7. ábra 8. ciklusának kezdetén mutatja. Mint a 7 és 8c. ábrákon látható, a 7. ciklus során mindkét visszaírás portot használtuk az x+3 INST utasítás két eredményének visszaírásá• · · « ··»· ····
...
·..· · · · · .
-27hoz. Ennek megfelelően a 83 visszaírás mutató a 6 puffertár számú átnevező puffertárról előre lépett a 8 puffertár számú átmeneti puffertárra. A 81 allokációs mutató változatlan helyzetű, mert a 10 processzor járulékos utasítások eligazításával nem foglalkozott.
Ugyanígy a 85 befejezés mutató is változatlan helyzetű, mert a 10 processzor további utasításokat sem fejezett be.
A 9. ábrán négy utasítás különböző fokozatait tüntettük fel egy olyan helyzetben, amelyben nem jelentkeznek a találmány lényeges előnyei az utasítások befejezésének és visszaírásának szétválasztására vonatkozóan. Ennek a helyzetnek a bemutatására a 9. ábrán feltüntettük négy y INST utasítás, y+1 INST utasítás, y+2 INST utasítás és y+3 INST utasítás különböző fokozatait, amelyek a 6. ábrán bemutatott megfelelő 7, 8, 9 és 10 puffertár számú átnevező puffertárakkal vannak társítva.
A 10a-lOd. ábrákon a 9. ábra szerinti 10 processzor átnevező puffertárak elméleti felépítését tüntettük fel. Pontosabban, a 10a. ábra egy 91 allokációs mutató valamint egy 95 befejezés mutató pillanatnyi állapotát, helyzetét mutatja a 9. ábra 4. és 5. ciklusának kezdetén. A 10b. ábrán a 91 allokációs mutató és a 95 befejezés mutató 6. ciklus kezdetén elfoglalt helyzetét mutatja be, míg a 10c. ábrán a 91 allokációs mutató és a 95 befejezés mutató 9. ábra 7. ciklusának kezdetén elfoglalt helyzete, és a lOd. ábrán ugyanennek a 91 allokációs mutatónak és 95 befejezés mutatónak a 9. ábrán 8. ciklusának kezdetekor elfoglalt helyzete figyelhető meg.
Mint a 10a-lOd. ábrákon megfigyelhető, anélkül a lényeges találmány szerinti jellemző nélkül miszerint a 10 processzor az egyes utasítások egyezését különválasztja az utasítások visszaírásától, egy lefoglalt átnevező puffertárú meghatározott utasítás csak azután lenne befejezhető, miután a szóban forgó utasítás eredményét bemásolnánk tárolás céljából a lefoglalt átnevező puffertárból egy architektúra regiszterbe. Csupán összehasonlításként, a bemutatott kiviteli alaknál, amelynek során a találmány lényeges jellemzőjeként a 10 processzor az utasítás befejezését különválasztja a visszaírástól, a 10 processzor a már említett 83 visszaírás mutatót is használja és kezeli annak jelzésére, hogy egy korábban egy meghatározott utasítás céljára lefoglalt átnevező puffertár egy másik utasításhoz való lefoglalás céljára rendelkezésre áll-e. Ezen túlmenően a 10 processzor anélkül fejezi be a szóban forgó utasítás végrehajtását, hogy figyelembe venné a szóban forgó utasítás eredményének a lefoglalt átnevező puffertárból tárolás céljára az architektúra regiszterbe való átmásolá-28sát, pontosabban az átmásolás megtörténtét. Ennek megfelelően a 10 processzor egy meghatározott cikluson belül legfeljebb négy utasítás befejezésére képes még abban az esetben is, ha a négy utasítás mindegyikének két cél operandusa van, továbbá abban az esetben is, ha az adott ciklus alatt még nem lett az összes cél operandus átmásolva valamelyik 32 univerzális architektúra regiszterbe.
All. ábrán a 34 fixpontos átnevező puffertár egy a már ismertetettől eltérő kiviteli alakjának tömbvázlata látható, amelyben a visszaírás bejegyzéseket 110 puffertárban tároljuk, elkülönítve az átnevezés bejegyzésektől. Az átnevezés bejegyzéseket 112 puffertárban tároljuk. A 112 puffertárban lévő átnevezés bejegyzés információját tárolás céljából a 110 puffertár visszaírás bejegyzésébe továbbítjuk egy meghatározott ciklus alatt, annak a meghatározott utasításnak a kiválasztott ciklus alatti befejezése függvényében, amelyhez az átnevező bejegyzést lefoglaltuk. A 110 puffertár visszaírás bejegyzésének információját a meghatározott ciklus alatt továbbítjuk valamelyik 32 univerzális architektúra regiszterben történő eltárolás céljából annak függvényében, hogy a szóban forgó ciklus alatt a két visszaírás port közül melyik áll a 32 univerzális architektúra regiszterek rendelkezésére.
A 112 puffertár all. ábrán feltüntetett nyolc portja közül bármelyiken keresztül képes információt továbbítani a 110 puffertárba, így tehát a 112 puffertár a 10 processzor bármely ciklusa alatt információt tud továbbítani a 110 puffertárba, legfeljebb nyolc átnevezés bejegyzésből. Ennek megfelelően a 10 processzor a szóban forgó ciklus alatt legfeljebb négy utasítás befejezésére alkalmas még abban az esetben is, ha mind a négy utasításnak két-két cél operandusa van és még nem sikerült az összes cél operandust a szóban forgó ciklus alatt a 32 univerzális architektúra regiszterekbe bemásolni. Előnyös módon egy eredménnyel (cél operandus információval) a 110 puffertár visszaírás bejegyzéseit megkerülhetjük és azokat közvetlenül beírhatjuk a 32 univerzális architektúra regiszterekbe, ha a befejezés fokozatban valamelyik visszaírás port rendelkezésre áll. A 10 processzor ezt a megkerülést a célirányosan működtetett 113A és 113B multiplexerek segítségével éri el, amelyek all. ábrán látható módon vannak a 110 és 112 puffertárakhoz és a 32 univerzális architektúra regiszterekhez csatlakoztatva.
A 34 fixpontos átnevező puffertáraknak all. ábrán bemutatott kiviteli alakja fentieken túlmenően olyan előnnyel is jár, hogy a 112 puffertárban tárolt átnevezés bejegyzés egy
-29másik utasítás céljára lefoglalható az átnevezés bejegyzéshez korábban társított utasítás (még visszaírást megelőző) befejezését követően, mivel az átnevezés bejegyzés információját megfelelő módon tárolásra továbbítani tudjuk a 110 puffertár valamelyik visszaírás bejegyzésébe, a korábban társított utasítás befejezése függvényében. All. ábrán bemutatott kiviteli alak egy további szempontja szerint 114 multiplexer a kiválasztott információt megfelelő módon továbbítja a 110 vagy 112 puffertárakból a végrehajtó egységekhez olyan esetekben, amikor a végrehajtó egység az információval társított architektúra regisztert is specifikáló utasítást hajt végre. Jóllehet a bemutatott kiviteli alak 10 processzorának az átnevező puffertárak és az architektúra regiszterek között két visszaírás portja van, a megfelelő visszaírás port egy adott kiviteli alak esetében annak a valószínűségnek a függvénye, hogy mind az átnevezés bejegyzések mind a visszaírás bejegyzések megtelnek és ezért az utasítás eligazítást ki kell tolni.
Mint korábban a 2-5. ábrák kapcsán ismertettük, a 10 processzor egy sorbarendezetten végrehajtandó utasítás végrehajtását két esetben legalább az összes azt megelőző utasítás végrehajtásának befejezéséig felfüggeszti. Az első ilyen esetben az utasítás nem hajtható végre soron kívül, a második esetben pedig az utasítás legalább egy olyan forrás operandust nevez meg, amelyhez a 10 processzor nem rendelkezik továbbító áramköri elemekkel.
Ha megnézzük az első esetet, néhány utasítás az 1. ábrán feltüntetett 40 speciális regiszterrel működik együtt, amelynek során az utasítások eredményei közvetlenül, átnevező puffertárakban való közbenső tárolás nélkül kerülnek beírásba a 40 speciális regiszterekbe. Egy ilyen utasításra példa a move to utasítás, amely valamelyik 32 univerzális architektúra regiszterből mozgatja át az információt valamelyik 40 speciális regiszterbe. Mint az 1. ábrán látható, az ilyen move to utasításokat a 26 komplex fixpontos egység hajtja végre. A move to utasítás közvetlenül a végrehajtása során felfrissíti valamelyik 40 speciális regiszter tartalmát. Hasonló módon egy store utasítás közvetlenül felfrissíti végrehajtása során az
1. ábrán feltüntetett 16 adat cache tárban lévő meghatározott memória helyet. A 10 proceszszór nem képes ezeket az utasításokat soron kívül végrehajtani (tehát ahol az utasítások eredményei közvetlenül beírásra kerülnek valamelyik architektúra regiszterbe vagy memória helyre, anélkül, hogy átnevező puffertárakban közbenső tárolásra kerülnének) így a 10 processzor precíz módon képes megszakításokat és kivételeket végrehajtani. Ennek
-30megfelelően annak biztosítására, hogy az utasításokat sorbarendezetten tudja befejezni és visszaírni, a 10 processzor egy move to utasítás valamint egy store utasítás végrehajtását az összes azt megelőző utasítás végrehajtásának befejezéséig felfüggeszti, késlelteti.
Ha valamelyik végrehajtó egységhez eligazított utasításnak a hozzátartozó EOK bitjének értéke (az utasításnak a 76 újrarendező puffertárban vele társított bejegyzésében lévő utasítás típus mezőben) logikai 0, akkor a 84 végrehajtás sorbarendező logikai fokozat (a végrehajtó egységhez csatlakoztatott valamelyik 60, 86, 88, 90, 92 és 94 vonalon át) jelet bocsát ki az eligazított utasítást megelőző összes instrukció végrehajtásának befejezése függvényében. A végrehajtó egység ezt az eligazított utasítást kizárólag a jelet kibocsátó 84 végrehajtás sorbarendező logikai fokozat jele alapján hajtja végre.
A 12a-12c. ábrák a 76 újrarendező puffertár elvi felépítésére mutatnak be példát. A 13. ábrán a 12a-12c. ábrákon bemutatott öt utasítás különböző fokozatait láthatjuk, míg a 14a14f. ábrák a 10 processzor 34 fixpontos átnevező puffertárának elvi felépítését mutatják be és magyarázzák.
A 12a. ábra a 76 újrarendező puffertár pillanatnyi állapotát mutatja a 13. ábra 4. ciklusának kezdetén. Ennek megfelelően a 12a. ábrán a 76 újrarendező puffertár a 13. ábra 3. ciklusa alatt eligazított négy utasítás számára tárol információt. A 13. ábra ennek a négy a, a+1, a+2 és a+3 INST utasításnak a különböző fokozatait mutatja, amelyek megfelelő módon a 12a. ábra 3, 4, 5, és 6 puffertár számú újrarendező puffertárához vannak társítva.
Mint a 12a. ábrán látható, az a INST utasítást a 22A fixpontos egységhez utasítjuk el, és két cél operandusa (és az univerzális architektúra regiszter célállomások száma = 2) van. Ha ezzel összehasonlítjuk a következő a+1 INST utasítást, az a 24B fixpontos egységhez kerül eligazításra, ám csupán egyetlen cél operandussal rendelkezik (az univerzális architektúra regiszter célállomások száma = 1). A a+2 INST utasítás egy olyan store utasítás, amely az eligazítás során a 28 betöltő és tároló egységbe kerül, és cél operandusainak száma 0 (és az univerzális architektúra regiszter célállomások száma = 0); ezen túlmenően az 5 puffertár számú újrarendező puffertár (amely a a+2 INST utasítással van társítva) EOK bitjének értéke 0, a sorbarendezetten végrehajtandó a+2 ISNT utasítás alapján. A a+3 INST utasítás az eligazítás során a 26 komplex fixpontos egységbe kerül, és egy cél operandusa van (és az univerzális architektúra regiszter célállomások száma = 1).
-31 A bemutatott előnyös kiviteli alak egy lényeges tulajdonsága értelmében a 18 sorbarendező egység határozza meg, hogy vajon egy utasítás végrehajtása eredményezhet-e kivételt. A 18 sorbarendező egység ezt a meghatározást még a szóban forgó utasítás végrehajtása előtt elvégzi. Ha az adott utasításból nem keletkezhet kivétel, akkor a 18 sorbarendező egység az utasítással társított újrarendező puffertár bejegyzés befejezve mezőjének értékét logikai 1 értékre állítja (az utasítás eligazításától függően), függetlenül attól, hogy a 10 procesz szór a kivételt nem eredményezhető utasítás végrehajtását már éppen befejezte-e.
Ezen kívül egy ilyen helyzetben a 10 processzor az utasítást az összes megelőző utasítás befejezése függvényében fejezi be, tekintet nélkül arra, hogy a 10 processzor aktuálisan befejezte-e annak az utasításnak a végrehajtását, amely nem eredményezhet kivételt. Ennek megfelelően a 10 processzor az utasítást annak függvényében fejezi be, hogy a vizsgálat eredményeképpen nem keletkezhet kivétel a szóban forgó utasítás valamint az ezt az utasítást a programozott sorrendben megelőző többi utasítás végrehajtásából, függetlenül attól, hogy a 10 processzor minden olyan utasítást végrehajtott-e, amely esetben kivétel nem lehetséges. Ily módon lehetőség van arra, hogy az utasítás befejezés fokozata megelőzze az utasítás végrehajtás fokozatát, ilyen módon a 10 processzor támogatja az utasítás korai befejezését.
Ha a 10 processzor támogatja a korai befejezést úgy, sokkal gyorsabban képes egy soron következő sorrendben végrehajtandó utasítás (például egy move to utasítás vagy egy store utasítás) végrehajtására, amikor is az utasítás eredményei közvetlenül egy architektúra rendszerbe vagy egy memória helyre kerülnek beírásra anélkül, hogy közbenső tárolásra az átnevező puffertárakba kerülnének. Ez amellett igaz, hogy nem csökkenti a 10 processzor alkalmasságát a pontos megszakítások és kivételek lekezelésére. Ennek az az oka, hogy az összes megelőző utasítás már vagy befejeződött bármilyen kivétel nélkül vagy pedig az utasítás végrehajtása kivételek nélkül fog befejeződni. Ilyen technika mellett a 10 proceszszor továbbra is biztosítja a sorbarendezett befejezést és a sorbarendezett visszaírást.
Például a 12a. ábrán látható esetben az a+1 és a+3 INST utasítások nem okozhatnak kivételt, ily módon a 4 és 6 puffertár számú újrarendező puffertárak befejezve mezőjének értéke 1.
-32A 14a. ábrán a 34 fixpontos átnevező puffertár 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a 13. ábra 4. ciklusának kezdetén elfoglalt helyzetét láthatjuk. Ennek megfelelően a 14a. ábra állapota megfelel a 12a. ábrán bemutatott állapotnak. Mint az ábrán látható, a 83 visszaírás mutató és a 85 befejezés mutató 2 puffertár számú átnevező puffertárra mutat, a 81 allokációs mutató pedig a 6 puffertár számú átnevező puffertárra mutat. A 2 és 3 puffertár számú átnevező puffertárak az a INST utasítás céljára vannak lefoglalva. A 4 puffertár számú átnevező puffertár az a+1 INST utasítás, az 5 puffertár számú átnevező puffertár pedig az a+3 INST utasítás számára van lefoglalva. Jegyezzük meg, hogy az a+2 INST utasításhoz nem tartozik lefoglalt átnevező puffertár, mert az a+2 INST utasításnak nincs cél operandusa. A 2-5 átnevező puffertárak információ érvényes mezőjének értéke 0, jelezve ezzel, hogy az ezekhez az átnevező puffertárakhoz tartozó információ mező nem tárol érvényes adatot. A 13. ábrán látható
4. ciklus kezdetekor az információ érvényes mező értéke azért 0, mert az a, a+1, a+2, a+3 INST utasítások végrehajtása még nem fejeződött be.
A 4 puffertár számú átnevező puffertár hordozó érvényes mezőjének értéke 1, jelezve ezzel, hogy az a+1 IST utasítás a 42 vivőbit regiszter értékét módosítja. Jegyezzük meg, hogy mint korábban az a+1 IST utasítás nem okozhat kivételt, ezért a befejezve mező értéke 1, a 4 puffertár számú átnevező puffertárban (lásd a 12a. ábrát). Ennek megfelelően a 10 processzor támogatja a 42 vivőbit regiszter tartalmát módosító utasítás korai befejezését.
Mint a 14a-14g. ábrákon bemutatjuk, a vivőbit információt közbenső módon a 34 fixpontos átnevező puffertárakban tároljuk. Ezzel együtt a bemutatott előnyös kiviteli alakban alkalmazott 10 processzornak nincsenek alkalmas áramköri egységei az ilyen vivőbit információ továbbítására, amellyel azokat a 34 fixpontos ámevező puffertárakból a végrehajtó egységekhez továbbítaná. Ha egy meghatározott utasítás forrás operandus információja vonatkozik a 42 vivőbit regiszterre is, akkor annak a meghatározott utasításnak a forrás operandus információja egy esetlegesen létező korábbi, a 42 vivőbit regisztert módosító utasításnak az eredményeitől függ.
A 12b. ábrán a 76 újrarendező puffertár állapotát láthatjuk a 13. ábra 5. ciklusának kezdetén. Eszerint a 76 újrarendező puffertár tárolja a 13. ábra 4. ciklusa alatt eligazított a+4 INST utasításra vonatkozó információt. A 13. ábra az a+4 utasítás különböző fokozatait
-33 mutatja, amelyek a 7 puffertár számú újrarendező puffertárral vannak társítva. Mint a 12b. ábrán látható, az a+4 INST utasítás 22A fixpontos egységhez kerül, és egy cél operandussal rendelkezik (az univerzális architektúra regiszter célállomások száma =1); ezen kívül a 7 puffertár számú újrarendező puffertár (amely az a+4 utasítással van társítva) EOK bitjének értéke 0, a sorbarendezetten végrehajtás alatt álló a+4 INST utasítás függvényében.
Ezen túl, mivel az INST utasítás végrehajtása befejeződik a 4. ciklusban, a 12b. ábra 3 puffertár számú újrarendező puffertárjának befejezve mezőjében 1 érték szerepel. Ismét a
13. ábrára hivatkozunk, amelynek kapcsán látható, hogy az a+2 INST utasítás egy store utasítás. A 4. ciklus alatt a 28 betöltő és tároló egység befejezte az a+2 INST utasítást, tehát a store utasítás első végrehajtási EXEC A fokozatát. Ezalatt az EXEC A fokozat alatt a 28 betöltő és tároló egység gondoskodik a store utasítás lefordításáról és ellenőrzi az utasítást tárolási védelemre. Ezek alapján a 12b. ábra 5 puffertár számú újrarendező puffertáijának befejezve mezőjének értéke logikai 1 lesz.
A 14b. ábra a 34 fixpontos átnevező puffertárak 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a 13. ábra 5. ciklusának kezdetén elfoglalt állását tünteti fel. Ennek megfelelően a 14b. ábra megfelel a 12b. ábrának. Mint a 14b. ábrán látható, a 83 visszaírás mutató és a 85 befejezés mutató továbbra is a 2 puffertár számú átnevező puffertárra mutat, míg a 81 allokációs mutató a 6 puffertár számú átnevező puffertárról a 7 puffertár számú átnevező puffertárra mutat. Ennek megfelelően a 6 puffertár számú átnevező puffertár az a+4 INST utasítás számára kerül lefoglalásra.
A 6 puffertár számú átnevező puffertárban az információ érvényes mező értéke logikai 0, jelezve ezzel, hogy ennek az átnevező puffertárnak az információ mezője nem tárol érvényes adatot. A 13. ábra 5. ciklusának kezdetén a 6 puffertár számú átnevező puffertár információ érvényes mezőjének értéke logikai 0, mivel az a+4 INST utasítás végrehajtása még nem fejeződött be. Ha megfigyeljük a 14b. ábrát, a 13. ábra 4. ciklusa során befejezett végrehajtású a és a+1 INST utasítások függvényében a 2 és 3 puffertár számú átnevező puffertárakban lévő információ érvényes mezők logikai 1 értéke jelzi, hogy a 2 és 3 puffertár számú átnevező puffertárak információ mezői érvényes adatot tárolnak (amelyet a 14b. ábrán az információ mezőben ADAT szöveggel jelöltünk.
-34Α 6 puffertár számú átnevező puffertárban a vivőjel érvényes mező értéke logikai 1, jelezve ezzel, hogy az a+4 INST utasítás módosítja a 42 vivőbit regiszter tartalmát. Ezen túlmenően az a+4 INST utasítás forrás operandus információja magában foglalja a 42 vivőbit regiszter értékét is, így tehát az a+4 INST utasítás olyan sorbarendezetten végrehajtandó utasítás, amely az ugyancsak a 42 vivőbit regiszter tartalmát módosító és őt megelőző a+1 INST utasítás eredményétől függő forrás operandus információval rendelkezik. Jóllehet, az a+3 INST utasítás nem módosította a 42 vivőbit regiszter tartalmát, az a+3 INST utasításnak ugyancsak egy, az őt megelőző, a 13. ábrán 100 nyíllal jelölt a+1 INST utasítás végrehajtásának eredményétől függő forrás operandus információja van.
A 12c. ábra mutatja a 76 újrarendező puffertár állapotát a 13. ábra 6. ciklusának kezdetén. A 14c. ábra a 34 fixpontos átnevező puffertár 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a helyzetét mutatja a 13. ábra 6. ciklusának kezdetén, tehát a 14c. ábra lényegében megfelel a 12c. ábrának.
Mint ezen a 12c. ábrán látható, a 3, 4, 5 és 6 puffertár számú újrarendező puffertárakban lévő információ a 13. ábra 5. ciklusa során befejezett a, a+1, a+2, a+3 INST utasítások függvényében ki lett törölve. Jegyezzük meg azonban, hogy az a+1 INST utasítás az 5. ciklus során korán befejeződött, még mielőtt ugyanennek az utasításnak a végrehajtása befejeződött volna az 5. ciklus során, mint azt a 13. ábrán ECOM/^ÉXEC felirattal jelöltük; az a+1 INST utasítás így tehát egy olyan utasítás csoport tagja, amelyek végrehajtására több mint egy 10 processzor ciklusra van szükség.
Ha megnézzük a 14c. ábrát, a 10 processzor a 85 befejezés mutatót egy meghatározott utasítás (például az a+3 INST utasítás) részére korábban lefoglalt átnevező puffertár mögé (például a 6. ciklus kezdetét megelőzően az 5 puffertár számú átnevező puffertár mögé) állítja át, miután a 10 processzor az összes megelőző utasítást (például az a, a+1, a+2 INST utasításokat) befejezte, függetlenül attól, hogy a 10 processzor a meghatározott utasítás (a 6-8 ciklusok alatt folyamatosan végrehajtásra kerülő a+3 INST utasítás) végrehajtását aktuálisan befejezte-e.
Hasonló módon az 5. ciklus alatt a 3. ábra 84 végrehajtás sorbarendező logikai fokozata a 28 betöltő és tároló egységhez csatlakozó 92 vonalon keresztül jelet bocsát ki a a és a+1 INST utasítások befejezését követően, ez abból fakad, hogy az a+2 INST utasítás (amelyet
-35a 3. ciklus alatt igazítottunk el a 28 betöltő és tároló egységhez) az 5 puffertár számú újrarendező puffertárban lévő társított EOK bitjét logikai 0 értékre állítja be.
Az 5. ciklus alatt az a+2 INST utasítás, amelyik egy store utasítás, a 4. ciklus EXEC A végrehajtó fokozatának kivételek nélküli befejezését követően és a megelőző a és a+1 INST utasításoknak az 5. ciklusban történő befejezését követően kerül befejezésre. Egy második EXEC B végrehajtó fokozat során a 28 betöltő és tároló egység a 16 adat cache tár egy memória helyére ír be aktuális információt. A 28 betöltő és tároló egység az a+2 INST utasítás, azaz store utasítás EXEC B végrehajtó fokozatát csupán azután hajtja végre, miután a 84 végrehajtás sorbarendező logikai fokozat a 92 vonalon keresztül kibocsátotta a már említett jelet.
Mint a 14c. ábrán látható, a 81 allokációs mutató továbbra is a 7 puffertár számú átnevező puffertárra mutat, és a 85 befejezés mutató a 2 puffertár számú átnevező puffertárról továbblépett a 6 puffertár számú átnevező puffertárra, a megelőző a, a+1, a+3 INST utasításoknak az 5. ciklus során végbemenő befejezését követően. Amint a 13. ábrán megfigyelhető, az 5. ciklus során az INST utasítás mindkét eredményét átmásoljuk a 2 és 3 puffertár számú átnevező puffertárakból az 1. ábra 32 univerzális architektúra regisztereibe. Ennek megfelelően a 14c. ábrán bemutatott módon a 83 visszaírás mutató is előrelép és a 2 puffertár számú átnevező puffertárról a 4 puffertár számú átnevező puffertárra mutat, továbbá a 2 és 3 puffertár számú átnevező puffertárakban tárolt információt is töröljük, miután az INST utasítás két eredményét az 5. ciklus során a 2 és 3 puffertár számú átnevező puffertárakból átmásoltuk a 32 univerzális architektúra regiszterekbe.
A 14c. ábrán látható, hogy a 4 puffertár számú átnevező puffertárba lévő információ érvényes mező logikai 1 értéke az a+1 INST utasítást követően azt eredményezi, hogy az utasítás végrehajtása a 13. ábra szerinti 5. ciklus során befejeződik. Ez jelzi, hogy a 4 puffertár számú átnevező puffertár információ mezője érvényes adatot tárol (amelyet a 14c. ábrán az információ mezőben ADAT felirattal jelöltünk), és a 4 puffertár számú átnevező puffertár vivőbit mezője is érvényes adatot tartalmaz (amit a 14c. ábrán a vivőbit mezőben CA szöveggel jelöltünk). Mivel az a+4 INST utasítás olyan sorbarendezetten végrehajtandó utasítás, amelynek forrás operandus információja a 42 vivőbit regiszter tartalmát módosító a+1 INST utasítás eredményétől függ, és mivel a 34 fixpontos átnevező puffertár vivőbit mezőjének tartalma nem került továbbításra, a 10 processzor az a+4 • · ···· ····
-36INST utasítás végrehajtását mindaddig kitolja, amíg az a+1 INST utasítás vivőbit eredménye a 6. ciklusban az a+1 INST utasítás visszaíró fokozata alatt át nem másolódik a 4 puffertár számú átnevező puffertárból az 1. ábra szerinti 32 univerzális architektúra regiszterekbe.
Ehhez képest az a+3 INST utasítás forrás operandus információja ugyancsak az a+1 INST utasítás ADAT eredményeitől függ, de a 34 fixpontos átnevező puffertárak információ mezőinek tartalma továbbításra kerül. Ennek megfelelően, ha a 4 puffertár számú átnevező puffertár információ érvényes mezőjének értéke logikai 1, (ami azt jelzi, hogy az a+1 INST utasítás végrehajtása még az 5. ciklus alatt befejeződött), a 10 processzor az a+3 INST utasítás végrehajtását a 6. ciklusban még az a+1 INST utasítás végrehajtás fokozatának befejezését megelőzően megkezdi.
A 14d. ábrán a 34 fixpontos átnevező puffertárak 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a 13. ábra 7. ciklusának kezdetén elfoglalt helyzete látható. Ezek szerint a 81 allokációs mutató továbbra is a 7 puffertár számú átnevező puffertárra mutat, a 85 befejezés mutató pedig a 6 puffertár számú átnevező puffertárra mutat. A 13. ábrából látható módon az a+1 INST utasítás eredménye a 4 puffertár számú átnevező puffertárból még a 6. ciklus során átkerült a 32 univerzális architektúra regiszterekbe. Ennek megfelelően a 14d. ábrán láthatóan a 83 visszaírás mutató a 4 puffertár számú átnevező puffertárról továbblépett az 5 puffertár számú átnevező puffertárra, ezen túlmenően a 4 puffertár számú átnevező puffertárban tárolt információt az abból az 1. ábra szerinti 32 univerzális architektúra regiszterekbe a 6. ciklus során átmásolt a+1 INST utasítás eredményétől függően ki is töröltük.
A bemutatott előnyös kiviteli alaknál egy olyan sorbarendezetten végrehajtandó utasításhoz (például az a+4 INST utasításhoz), amelynek forrás operandus információja egy még nem továbbított operandus (például a 42 vivőbit regiszternek szánt vivőbit információ) függvénye, a 10 processzor a sorbarendezetten végrehajtandó utasítást (például az a+4 INST utasítást) a 34 fixpontos átnevező puffertárak alábbi állapotának függvényében hajtja végre:
1. az összes azt megelőző utasítás befejezett, és • ··
-372. ha bármely megelőző befejezett utasítás visszaírás fokozata még nem fejeződött be, akkor ezek a megelőző utasítások semmiképpen nem módosítják a még nem továbbított operandust.
Ennek megfelelően a 14d. ábrán a 85 befejezés mutató a 6 puffertár számú átnevező puffertárra mutat, jelezve ezzel az a+4 INST utasítást számára, hogy az összes megelőző utasítás befejezett. Ezen túlmenően a 83 visszaírás mutató az 5 puffertár számú átnevező puffertárra mutat, jelezve ezzel, hogy jóllehet a megelőző és már befejezett a+3 INST utasítás visszaírás fokozata még nem fejeződött be, maga az a+3 INST utasítás a 42 vivőbit regiszternek szánt, még nem továbbított információt nem fogja módosítani (mivel az 5 puffertár számú átnevező puffertár vivőbit érvényes mezejének értéke logikai 0). Ily módon a 10 processzor az a+4 INST utasítást a 7. ciklus alatt hajtja végre.
Egy alternatív kiviteli alak esetében egy olyan sorbarendezetten végrehajtandó utasításhoz (például az a+4 INST utasításhoz), amelynek forrás operandus információja egy még nem továbbított operandus (például a 42 vivőbit regiszternek szánt vivőbit információ) függvénye, a 10 processzor ezt a sorbarendezetten végrehajtandó utasítást (például az a+4 INST utasítást) a 34 fixpontos átnevező puffertárak alábbi tartalma függvényében hajtja végre:
1. az összes megelőző utasítás befejezett, és
2. az összes megelőző és már befejezett utasítás visszaírás fokozatai is befejezettek úgy, hogy a 83 visszaírás mutató és a 85 befejezés mutató is ugyanarra a számú ámevező puffertárra mutat.
A 14e. ábrán a 34 fixpontos átnevező puffertárak 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a 13. ábra 8. ciklusának kezdetén elfoglalt helyzete látható. Ezek szerint a 81 allokációs mutató továbbra is a 7 puffertár számú átnevező puffertárra, a 83 visszaírás mutató pedig az 5 puffertár számú átnevező puffertárra mutat. Az a+4 INST utasítás végrehajtása a 7. ciklusban még az a+3 INST utasítás végrehajtásának befejezése előtt befejeződik, ami a 13. ábrán EXEC/COMP felirattal jelöltünk. Ennek megfelelően, újból a 14e. ábrán láthatóan, a 85 befejezés mutató elmozdul és a 6 puffertár számú átnevező puffertárról továbblép a 7 puffertár számú átnevező puffertárra.
-38A találmány értelmében előnyös módon a 10 processzor a 85 befejezés mutatót egy korábban egy meghatározott utasítás (például az a+4 INST utasítás) számára lefoglalt átnevező puffertár (például a 8. ciklus kezdetét megelőző utolsó 6 puffertár számú átnevező puffertár) mögé mozgatja, és ennek alapján a 10 processzor az összes megelőző utasítást (például az a, a+1, a+2 és a+3 INST utasításokat) végrehajtja és befejezi, függetlenül attól, hogy az összes megelőző utasítás végrehajtását (például a 8. ciklus alatt is folyamatosan végrehajtásra kerülő a+3 INST utasítást) éppen befejezte-e.
A 14e. ábrán látható, hogy a 6 puffertár számú átnevező puffertár információ érvényes mezőjének értéke logikai 1, mivel az a+4 INST utasítás végrehajtása a 13. ábra 7. ciklusa során befejeződött. Ez az érték jelzi, hogy a 6 puffertár számú átnevező puffertár információ mezője érvényes adatot tárol (amelyet a 14e. ábrán az információ mezőben ADAT felirattal jelöltünk), és hogy a 6 puffertár számú átnevező puffertár vivőbit mezője is érvényes adatot tárol, amit a 14e. ábrán a vivőbit mezőben CA felirattal jelöltünk.
A 14f. ábra a 34 fixpontos átnevező puffertárak 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a 13. ábra 9. ciklusának kezdetén elfoglalt helyzetét tüntettük fel. Az ábrán látható, hogy a 81 allokációs mutató és a 85 befejezés mutató továbbra is a 7 puffertár számú átnevező puffertárra mutat, míg a 83 visszaírás mutató továbbra is az 5 puffertár számú átnevező puffertárra irányul. A 14f. ábrán az 5 puffertár számú átnevező puffertár információ érvényes mezőjének értéke logikai 1, a 8. ciklus során végrehajtott és befejezett a+3 INST utasítás hatására. Ez azt jelzi, hogy az 5 puffertár számú átnevező puffertár információ mezője érvényes adatot tárol, (amit a 14f. ábrán a szóban forgó információ mezőben ADAT felirattal jelöltünk.
A 14g. ábrán a 34 fixpontos átnevező puffertárak 81 allokációs mutatójának, 83 visszaírás mutatójának és 85 befejezés mutatójának a 13. ábra 10. ciklusa kezdetén elfoglalt helyzete figyelhető meg. Ezek szerint a 81 allokációs mutató és a 85 befejezés mutató továbbra is a 7 puffertár számú átnevező puffertárra mutat. A 13. ábrán megfigyelhető, hogy az a+3 és a+4 INST utasítások eredményeit az 5 illetve 6 puffertár számú átnevező puffertárakból még a 9. ciklus során átmásoljuk a 32 univerzális architektúra regiszterekbe. Ennek megfelelően a 14g. ábrán láthatóan a 83 visszaírás mutató az 5 puffertár számú átnevező puffertárról továbblépett és most már a 7 puffertár számú átnevező puffertárra mutat, ezen
-39túlmenően az 5 illetve 6 puffertár számú átnevező puffertárakból az információt ki is töröltük, miután az a+3 és az a+4 INST utasítások eredményeit az 5 illetve 6 puffertár számú átnevező puffertárakból átmásoltuk az 1. ábra 32 univerzális architektúra regisztereibe a 9. ciklus alatt.
A 15. ábrán a 12a-12c. ábrák öt utasításának különböző fokozatait mutattuk be egy olyan alternatív kiviteli alak kapcsán, amely nem rendelkezik a találmány szerinti korai befejezés tulajdonságával. A 16a-16h. ábrák pedig a 10 processzor 34 fixpontos átnevező puffertárainak elvi felépítését illetve tartalmát tüntetik fel az eddigiekhez hasonlóan, a 15. ábrán bemutatott utasítás feldolgozás különböző ciklusaiban. Mint a 15. ábrán látható, a találmány szerinti javasolt kiviteli alak korai befejezés tulajdonsága illetve jellemzője nélkül az a+4 INST utasítás végrehajtása egészen a 10. ciklusig kitolódik, és az a+4 INST utasítás eredményeinek befejezése illetve visszaírása all. ciklusig tolódik ki. Ez abból a tényből fakad, hogy az a+4 INST utasítás sorbarendezetten végrehajtandó utasítás, amelynek végrehajtása az őt megelőző összes utasítás végrehajtásának befejezéséig kitolódik. Az előnyös kiviteli alak korai befejezés jellemzője nélkül az a+3 INST utasítás nem fejeződik be a 9. ciklusig, és ezért az a+4 INST utasítás végrehajtását a 10 ciklusig kitolja.
A 13. ábrát megtekintve és összehasonlítva megfigyelhetjük, hogy az a+3 INST utasítás az
5. ciklus alatt korán befejeződik, az a+4 INST utasítás pedig a 7. ciklus alatt kerül végrehajtásra. Mivel az a+4 INST utasítás olyan sorbarendezetten végrehajtandó utasítás, amelynek forrás operandus információja annak az őt megelőző a+1 INST utasításnak az eredményétől függ, amely a 42 vivőbit regiszter számára szóló még nem továbbított vivőbit információt módosítja. Ennek ellenére a 13. ábra szerint az a+4 INST utasítás végrehajtása a 7. ciklus alatt zajlik le, az a+4 INST utasítás eredményeinek befejezése illetve visszaírása pedig a 9. ciklus alatt zajlik le. Ennek megfelelően a 13. ábra esetében, ahol a javasolt kiviteli alak rendelkezik a találmány szerinti korai befejezés jellemzőjével, az a+4 INST utasítás végrehajtási, befejezési és visszaírási fokozatai korábban zajlanak le, mint a 15. ábra esetében, a korai befejezés jellemző nélküli kiviteli alaknál.
A 10 processzor legalább az összes megelőző utasítás végrehajtásának befejezéséig késlelteti a még nem továbbított forrás operandust (például 40 speciális regiszterek és 42 vivőbit regiszter) meghatározó utasítás végrehajtását. Ennek az az oka, hogy ha a szóban forgó utasítás még nem továbbított forrás operandusokat specifikál, az utasítás végrehajtása az
-40architektúra regiszterekben rendelkezésre álló és érvényes forrás operandus információtól függ. Ilyen utasításokra példa az (1) a 42 vivőbit regisztert kiolvasó kiterjesztett aritmetikai utasítás, és (2) az a move from utasítás, amely valamelyik 40 speciális regiszterből az információt valamelyik 32 univerzális architektúra regiszterbe viszi át.
Még olyan esetben is lehetőség van egy megelőző utasítás korai befejezésére, ha egyébként az összes megelőző utasítás már befejeződött, így tehát a szóban forgó utasítás befejezés fokozata megelőzi annak végrehajtás fokozatát. Mint azt az 1-5. ábrák kapcsán korábban ismertettük, a 10 processzornak a 32 univerzális architektúra regiszterektől, a 36 lebegőpontos architektúra regisztertől, a 34 fixpontos átnevező puffertáraktól és a 38 lebegőpontos átnevező puffertáraktól és vezérlő regiszterektől az információt a végrehajtó egységekhez továbbító áramköri részei vannak. Ha egy meghatározott utasításnak olyan forrás operandus információi vannak, amelyek egy megelőző, korábban befejezett utasítás eredményeitől függenek, és ha a forrás operandus információt a 10 processzor ilyen továbbító áramköri része támogatja, akkor a 10 processzor a szóban forgó utasítás végrehajtását mindaddig kitolja, amíg befejezi a korán befejezett utasítás végrehajtási fokozatát (amely időpontban a korán befejezett utasítás eredménye valamelyik átnevező puffertárban rendelkezésre áll és érvényes).
Amennyiben a forrás operandus információt a 10 processzornak ilyen áramköri része nem támogatja, akkor a 10 processzor a szóban forgó utasítás végrehajtását mindaddig felfüggeszti, amíg befejezi a korán befejezett utasítás visszaírás fokozatát (tehát addig az időpontig, amikor a korán befejezett utasítás eredményei valamelyik architektúra regiszterben rendelkezésre állnak és érvényesek. Ha egy korán befejezett utasítás végrehajtása még nem fejeződött be, akkor az utasítás eredménye, azaz cél operandus információja) nem áll rendelkezésre. Ilyen helyzetben a 10 processzor megfelelő módon késlelteti a korán befejezett utasítás visszaírás fokozatát mindaddig, amíg az utasítás végrehajtása befejeződik.
Amennyiben egy utasítás alkalmas korai befejezésre, akkor a 18 sorbarendező egység még az utasításnak az utasításhoz társított végrehajtó egységhez történő eligazítása alatt ezt jelző jelet bocsát ki. Ennek a jelnek a hatására az utasítással társított végrehajtó egység meg sem kísérli az utasításhoz társított 76 újrarendező puffertár bejegyzését módosítani. Ennek az az oka, hogy egy újrarendező puffertár bejegyzéséhez társított utasítás befejezését köve-41 tőén az újrarendező puffertár egy újabb utasításhoz történő hozzárendelése válik alkalmassá úgy, hogy az újrarendező puffertár bejegyzéshez tartozó utasítás elveszíti érvényességét.
Ennek megfelelően olyan esetekben, amikor egy utasítás korán végrehajtható jellegű, az utasításhoz hozzárendelt újrarendező puffertár bejegyzés még azelőtt érvénytelenné válhat, mielőtt az utasítás végrehajtó egysége befejezi az utasítás végrehajtását. A bemutatott előnyös kiviteli alak esetében a 10 processzor egyetlen ciklusa alatt a 18 sorbarendező egység felügyeli az érvényes információval rendelkező négy legrégibb újrarendező puffertár bejegyzést úgy, hogy az említett négy instrukció egyetlen ciklus alatt egyidejű befejezés tárgya lehet.
A bemutatott kiviteli alak esetében egy move from utasítás valamelyik 40 speciális regiszterben lévő információt vesz át, és egy ilyen 40 speciális regisztert kizárólag egy move to utasítás módosíthat. Előnyös módon a 10 processzor a move from utasítást az összes megelőző utasítás befejezését követően hajtja végre, még abban az esetben is, ha a megelőző utasítások közül egy vagy több korán befejezett utasítás volt. Ennek az az oka, hogy a 10 processzor nem képes egy olyan utasítást (például egy move to utasítást vagy egy store utasítást) korán befejezni, amely nem spekulatív módon végrehajtható. Ha az összes megelőző utasítás befejezett, akkor a 10 processzor éppenséggel az összes megelőző move to utasítás végrehajtását befejezte. Ennek megfelelően a 10 processzor a move from utasítást az összes megelőző utasítás befejezését követően hajtja végre, mert ebben a helyzetben már az összes megelőző move to utasítás végrehajtását befejezte.
A bemutatott előnyös kiviteli alak egy további lényeges jellemzője szerint a 10 processzor támogatja az ún. pontatlan helyrehozhatatlan lebegőpontos kivétel üzemmódot. Ebben az üzemmódban a 10 processzor anélkül jelzi egy lebegőpontos kivétel feltétel meglétét, hogy pontosan vagy informatív módon megadná, mely lebegőpontos utasítás okozta a kivétel feltételt. Amikor a 10 processzor ezt a kivételt lekezeli, olyan állapotban kell lennie, amikor a kivétel feltételt okozó lebegőpontos utasítás alatti, változó számú utasítás feldolgozását már befejezte. Ebben az üzemmódban működve a 10 processzor lényegesen gyorsabban képes azokat az utasításokat feldolgozni, amelyek nem érzékenyek egy kivétel feltételt okozó lebegőpontos utasításnál pontosan leálló program végrehajtásra.
* · ···· ····
-42Lebegőpontos kivétel üzemmódban működve a 10 processzor nem képes korán befejezni egy lebegőpontos utasítást annak végrehajtásának végezte előtt, még abban az esetben sem, ha az összes megelőző utasítás végrehajtása már befejeződött.
Ha figyelembe vesszük, hogy a pontatlan helyrehozhatatlan lebegőpontos kivétel üzemmódban dolgozó 10 processzor egy lebegőpontos utasítást az összes azt megelőző utasítás végrehajtásának befejezését követően még a szóban forgó lebegőpontos utasítás tényleges végrehajtását megelőzően képes korán befejezni. A pontatlan helyrehozhatatlan lebegőpontos kivétel üzemmódban a korán befejezett lebegőpontos utasítások eltérnek a korán befejezett utasítások egyéb típusaitól, mert a 10 processzor akkor is korán befejezi a lebegőpontos utasítást, ha a szóban forgó lebegőpontos utasítás azt követő végrehajtása adott esetben egy lebegőpontos kivétel feltételt eredményezne. Minden egyes újrarendező puffertár bejegyzés jelzi, hogy a vele társított utasítás lebegőpontos utasítás-e.
Egy lebegőpontos utasítás végrehajtás és befejezési fokozatainak befejezését követően az utasítással kapcsolatos eredmények közvetlenül tárolásra kerülnek a 38 lebegőpontos átnevező puffertárakban. Az eredményeket mindaddig eltároljuk a 38 átnevező puffertárakban, amíg az összes korábbi lebegőpontos utasítás eredményei be nem kerülnek a 36 lebegőpontos architektúra regiszterekbe. Ezen a módon a 10 processzor a lebegőpontos utasítások egyes vonatkozó visszaírás fokozatait azok programozott sorrendjében dolgozzák fel.
A lebegőpontos utasítások eredményeit későbbi, a 36 lebegőpontos architektúra regiszterekbe történő átmásolás céljára a 38 lebegőpontos átnevező puffertárak közbenső módon tárolják. Ezen kívül a 38 lebegőpontos átnevező puffertárak állapot információt is tárolnak az ábrákon nem látható architektúra lebegőpontos állapot és vezérlő regiszter módosításához. Ha a 10 processzor a 38 lebegőpontos átnevező puffertárakból az utasítások eredményeinek a 36 lebegőpontos architektúra regiszterekbe történő átmásolása alatt lebegőpontos kivételt észlel (amelyet az architektúra lebegőpontos állapot és vezérlő regiszter beállított FEX bitje jelöl), akkor a 10 processzor kivételt jelez.
Ha a 10 processzor a pontatlan helyrehozhatatlan lebegőpontos kivétel üzemmódban működik, akkor anélkül képes egy lebegőpontos kivétel feltételt jelezni, hogy ismerné, hogy pontosan vagy informatív szinten mely lebegőpontos utasítás okozta a nevezett kivétel ···· ····
-43 feltételt. Előnyösen egy ilyen helyzetben a bemutatott kiviteli alakban alkalmazott 10 processzor az alábbi módon jelzi a kivétel feltételt:
Először is a 10 processzor leáll az utasítás befejezésével abban a ciklusban, amelyben a lebegőpontos kivételt észlelte. Hogy a 10 processzor pontosan mely utasításnál állította le a befejezést, az nem lényeges mindaddig, amíg a 10 processzor pillanatnyi állapota pontosan jelzi a befejezés leállítását okozó utasítást megelőző összes utasítás hatásait.
Másodszor, a 10 processzor befejezi az összes azt megelőző korán befejezett utasítás végrehajtását. Ezen túlmenően a 10 processzor ezeknek az utasításoknak az eredményeit bemásolja az architektúra regiszterekbe úgy, hogy a 34 fixpontos átnevező puffertárak és 38 lebegőpontos átnevező puffertárak összes visszaírás bejegyzései kiürülnek.
Harmadszor, a 10 processzor jelenti a lebegőpontos kivételt. Az említett pontatlan, helyrehozhatatlan lebegőpontos kivétel üzemmódban a korán befejezett lebegőpontos utasítások eltérnek a többi típusú korán befejezett utasítástól, mert a 10 processzor egy lebegőpontos utasítást abban az esetben is korán befejez, ha a lebegőpontos utasítás azt követő végrehajtása adott esetben egy lebegőpontos kivétel feltétel bekövetkeztéhez vezetne. Ennek megfelelően a többi utasítás, amely korán befejezett, vagy aktuálisan befejezett, nem hoz létre további kivételt.
Egy nem lebegőpontos utasításból eredő kivétel detektálásának hatására a 10 processzor mindaddig késlelteti a nem lebegőpontos kivétel jelentését, amíg befejezi az összes azt megelőző korán befejezett lebegőpontos utasítás végrehajtajtását, bármely lebegőpontos kivétel észlelése nélkül. Ebben a helyzetben előnyös módon a 10 processzor a következőképpen jelzi a kivételt:
Először is a 10 processzor leállítja az utasítás befejezését abban a ciklusban, amelyben észleli a ne lebegőpontos kivételt. A 10 processzor annál az utasításnál állítja le az utasítás befejezést, amely a nem lebegőpontos kivételt okozta, úgy hogy a szóban forgó utasítás már nem kerül befejezésre.
Másodszor a 10 processzor befejezi az összes azt megelőző korán befejezett utasítás végrehajtását. Ez határozza meg, hogy a 10 processzor képes lesz-e az összes megelőző korán befejezett lebegőpontos utasítás végrehajtásának befejezésére bármilyen lebegőpontos ki-44vétel nélkül. Ezen kívül a 10 processzor ezeknek az utasításoknak az eredményét bemásolja az architektúra regiszterekbe úgy, hogy a 34 fixpontos átnevező puffertár és 38 lebegőpontos átnevező puffertár kiürül. Ezen a módon a 10 processzor akkor van nyugvó állapotban, ha kivételt jelez. Ezen kívül mindaddig vár, amíg a többi visszaírás puffertár kiürül, hogy a kivétel észlelése esetén ilyen nyugvó állapotot legyen képes felmutatni.
Harmadszor, ha a 10 processzor nem észlelt lebegőpontos kivételt, akkor pontos nem lebegőpontos kivételt jelez. Megjegyezzük, hogy ha a 10 processzor lebegőpontos kivételt észlel, akkor pontatlan helyrehozhatatlan lebegőpontos kivételt fog jelezni.
Jóllehet a találmány bemutatott példakénti kiviteli alakjai és azok előnyei csupán példaképpen kerültek ismertetésre, az ismertetés nem szolgálhat találmányunk bármilyen korlátozására. A bemutatott példakénti kiviteli alaknál számos változás, helyettesítés és módosítás hajtható végre a találmány céljának, lényegének és szellemének jelzett körén belül. Találmányunk lényegét és igényelt oltalmi körét nem az ismertetett kiviteli alak, hanem a mellékelt szabadalmi igénypontok határozzák meg.

Claims (22)

  1. Szabadalmi igénypontok
    1. Eljárás jelfeldolgozó rendszer működtetésére, azzal jellemezve, hogy egy meghatározott utasítást végrehajtás céljából végrehajtó áramkörhöz eligazítunk és az említett utasítás eligazítását követően még az utasítás végrehajtásának befejezését megelőzően ugyanahhoz a végrehajtó áramkörhöz sorrendben végrehajtandó utasítást igazítunk el.
  2. 2. Az 1. igénypont szerinti eljárás azzal jellemezve, hogy az eligazított, sorbarendezetten végrehajtandó utasítás végrehajtását legalább az említett meghatározott utasítás végrehajtásának befejezéséig késleltetjük.
  3. 3. A 2. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eligazítását követően a végrehajtó áramkörhöz a meghatározott utasítás végrehajtásának befejezését megelőzően további utasítást igazítunk el.
  4. 4. A 3. igénypont szerinti eljárás azzal jellemezve, hogy a további utasítás végrehajtását a meghatározott utasítás végrehajtásának befejezését megelőzően kezdeményezzük.
  5. 5. Az 1. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eligazítása során a sorbarendezetten végrehajtandó utasítást a végrehajtó áramkör lefoglalási területére igazítjuk el.
  6. 6. Az 1. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eligazítása során a végrehajtó áramkör felé jelzést bocsátunk ki, az eligazított sorbarendezetten végrehajtandó utasítás végrehajtó áramkör általi végrehajtásának letiltására.
  7. 7. A 6. igénypont szerinti eljárás azzal jellemezve, hogy a végrehajtó áramkör felé járulékosjelzést bocsátunk ki az eligazított sorbarendezetten végrehajtandó utasításnak a meghatározott utasítás végrehajtásának befejezését követő, a végrehajtó áramkör általi végrehajtásának megkezdése céljából.
  8. 8. Az 1. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítást spekulációmentesen hajtjuk végre.
    -469. A 8. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eredményét átnevező puffertárban való közbenső eltárolás nélkül közvetlenül egy tárolási helyre írjuk be.
  9. 10. Az 1. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás végrehajtását az összes forrás operandus információjának rendelkezésre állásáig és érvényességéig késleltetjük.
  10. 11. A 10. igénypont szerinti eljárás azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítással legalább egy továbbítatlan fonás operandust határozunk meg.
  11. 12. Jelfeldolgozó rendszer azzal jellemezve, hogy utasításokat végrehajtó végrehajtó áramköre valamint egy meghatározott utasítást végrehajtás céljából a végrehajtó áramkörhöz eligazító valamint az eligazítást követően egy sorbarendezetten végrehajtandó utasítást a meghatározott utasítás végrehajtásának befejezését megelőzően a végrehajtó áramkörhöz eligazító, a végrehajtó áramkörrel összekapcsolt eligazító áramköre van.
  12. 13. A 12. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy az eligazított, sorbarendezetten végrehajtandó utasítás végrehajtását legalább az említett meghatározott utasítás végrehajtásának befejezéséig késleltető áramköre van.
  13. 14. A 13. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eligazítását követően a végrehajtó áramkörhöz a meghatározott utasítás végrehajtásának befejezését megelőzően további utasítást eligazító áramköre van.
  14. 15. A 14. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a további utasítás végrehajtását a meghatározott utasítás végrehajtásának befejezését megelőzően kezdeményező áramköre van.
  15. 16. A 12. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eligazítása során a sorbarendezetten végrehajtandó utasítást a végrehajtó áramkör lefoglalási területére eligazító áramköre van.
  16. 17. A 12. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy sorbarendezetten végrehajtandó utasítás eligazítása során az eligazított sorbarendezetten végrehajtan-47dó utasítás végrehajtó áramkör általi végrehajtásának letiltására a végrehajtó áramkör felé jelzést kibocsátó áramköre van.
  17. 18. A 17. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy az eligazított sorbarendezetten végrehajtandó utasításnak a meghatározott utasítás végrehajtásának befejezését követő, a végrehajtó áramkör általi végrehajtásának megkezdése céljából a végrehajtó áramkör felé járulékos jelzést kibocsátó áramköre van.
  18. 19. A 12. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítást spekulációmentesen végrehajtó áramköre van.
  19. 20. A 19. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás eredményét átnevező puffertárban való közbenső eltárolás nélkül közvetlenül egy tárolási helyre beíró áramköre van.
  20. 21. A 12. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítás végrehajtását az összes forrás operandus információjának rendelkezésre állásáig és érvényességéig késleltető áramköre van.
  21. 22. A 21. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a sorbarendezetten végrehajtandó utasítással legalább egy továbbítatlan forrás operandust meghatározó áramköre van.
  22. 23. A 22. igénypont szerinti jelfeldolgozó rendszer azzal jellemezve, hogy a végrehajtó fokozatnak a meghatározott utasítást végrehajtó első végrehajtó áramköre, valamint a sorbarendezetten végrehajtandó utasítást végrehajtó második végrehajtó áramköre van.
HU9602595A 1994-03-31 1994-12-27 Method of operation of a system for processing information, as well as the processing system HUT75816A (en)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
HU9602595D0 HU9602595D0 (en) 1996-11-28
HUT75816A true HUT75816A (en) 1997-05-28

Family

ID=22825892

Family Applications (1)

Application Number Title Priority Date Filing Date
HU9602595A HUT75816A (en) 1994-03-31 1994-12-27 Method of operation of a system for processing information, as well as the processing system

Country Status (13)

Country Link
US (1) US6041167A (hu)
EP (1) EP0753173B1 (hu)
JP (1) JP2742392B2 (hu)
KR (1) KR0145035B1 (hu)
CN (1) CN1099082C (hu)
AT (1) ATE177546T1 (hu)
CA (1) CA2137046C (hu)
DE (1) DE69417071T2 (hu)
HU (1) HUT75816A (hu)
PL (1) PL177392B1 (hu)
RU (1) RU2150738C1 (hu)
TW (1) TW353732B (hu)
WO (1) WO1995027246A1 (hu)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999008184A1 (en) * 1997-08-06 1999-02-18 Advanced Micro Devices, Inc. An apparatus and method for accessing special registers without serialization
JP5093237B2 (ja) * 2007-06-20 2012-12-12 富士通株式会社 命令処理装置
EP2169539A4 (en) * 2007-06-20 2010-12-29 Fujitsu Ltd INSTRUCTION MANAGEMENT DEVICE AND METHOD
US7913067B2 (en) * 2008-02-20 2011-03-22 International Business Machines Corporation Method and system for overlapping execution of instructions through non-uniform execution pipelines in an in-order processor
CN106030518B (zh) * 2014-03-27 2019-03-26 英特尔公司 用于整理和退出存储的处理器、方法、系统和装置
CN108255743A (zh) * 2017-12-06 2018-07-06 中国航空工业集团公司西安航空计算技术研究所 一种用于在染色内核中写回仲裁电路
KR102692866B1 (ko) * 2021-04-26 2024-08-08 한국전자통신연구원 컴퓨팅 자원 분할 운용 방법 및 장치

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
JPH069028B2 (ja) * 1986-02-18 1994-02-02 日本電気株式会社 演算装置
US5051940A (en) * 1990-04-04 1991-09-24 International Business Machines Corporation Data dependency collapsing hardware apparatus
JPH06103494B2 (ja) * 1986-11-18 1994-12-14 株式会社日立製作所 ベクトル処理装置の制御方式
JPH02103656A (ja) * 1988-10-12 1990-04-16 Fujitsu Ltd 主記憶参照の遂次化制御方式
US5075840A (en) * 1989-01-13 1991-12-24 International Business Machines Corporation Tightly coupled multiprocessor instruction synchronization
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム
JP2519798B2 (ja) * 1989-05-30 1996-07-31 富士通株式会社 多重プロセッサシステムにおけるシリアライズ機能の検証方式
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
US5075846A (en) * 1989-09-29 1991-12-24 Motorola, Inc. Memory access serialization as an MMU page attribute
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5185871A (en) * 1989-12-26 1993-02-09 International Business Machines Corporation Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions
JPH07101410B2 (ja) * 1990-01-17 1995-11-01 インターナショナル、ビジネス、マシーンズ、コーポレーション データ処理ネットワークにおいて逐次化手段の試験のため命令流の実行を同期させる方法
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
JP2532300B2 (ja) * 1990-10-17 1996-09-11 三菱電機株式会社 並列処理装置における命令供給装置
JP2535252B2 (ja) * 1990-10-17 1996-09-18 三菱電機株式会社 並列処理装置
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
US5257354A (en) * 1991-01-16 1993-10-26 International Business Machines Corporation System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
EP1526446A3 (en) * 1991-07-08 2007-04-04 Seiko Epson Corporation Extensible RISC microprocessor architecture
EP0529303A3 (en) * 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
US5269017A (en) * 1991-08-29 1993-12-07 International Business Machines Corporation Type 1, 2 and 3 retry and checkpointing
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
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency
EP0649085B1 (en) * 1993-10-18 1998-03-04 Cyrix Corporation Microprocessor pipe control and register translation
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices, Inc. Superskalarmikroprozessoren
JP3311462B2 (ja) * 1994-02-23 2002-08-05 富士通株式会社 コンパイル処理装置

Also Published As

Publication number Publication date
EP0753173B1 (en) 1999-03-10
JP2742392B2 (ja) 1998-04-22
KR0145035B1 (ko) 1998-08-17
EP0753173A1 (en) 1997-01-15
TW353732B (en) 1999-03-01
KR950027573A (ko) 1995-10-18
PL177392B1 (pl) 1999-11-30
CA2137046C (en) 2000-01-18
HU9602595D0 (en) 1996-11-28
DE69417071D1 (de) 1999-04-15
CN1099082C (zh) 2003-01-15
WO1995027246A1 (en) 1995-10-12
US6041167A (en) 2000-03-21
DE69417071T2 (de) 1999-10-14
JPH07271582A (ja) 1995-10-20
RU2150738C1 (ru) 2000-06-10
CN1121210A (zh) 1996-04-24
PL316566A1 (en) 1997-01-20
ATE177546T1 (de) 1999-03-15
CA2137046A1 (en) 1995-10-01

Similar Documents

Publication Publication Date Title
EP0636256B1 (en) Superscalar risc processor instruction scheduling
US5627981A (en) Software mechanism for accurately handling exceptions generated by instructions scheduled speculatively due to branch elimination
KR100323374B1 (ko) 부동소숫점유니트에서의다이나믹레지스터관리장치및그방법
KR0122529B1 (ko) 슈퍼스칼라 프로세서 시스템에서 복수의 명령어를 단일 사이클 동안 디스패치하기 위한 방법 및 장치
US6412064B1 (en) System and method for retiring approximately simultaneously a group of instructions in a superscalar microprocessor
US5867684A (en) Method and processor that permit concurrent execution of a store multiple instruction and a dependent instruction
US6349382B1 (en) System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order
HUT75823A (en) Method of operation of a system for processing information, as well as the processing system
US6393550B1 (en) Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
KR100188502B1 (ko) 처리 시스템 및 그의 동작 방법
US5778248A (en) Fast microprocessor stage bypass logic enable
JPH06242954A (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
JP3155519B2 (ja) スーパスカラ・プロセッサでストア命令を処理する方法及び装置
WO2002057908A2 (en) A superscalar processor having content addressable memory structures for determining dependencies
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US7302553B2 (en) Apparatus, system and method for quickly determining an oldest instruction in a non-moving instruction queue
HUT75816A (en) Method of operation of a system for processing information, as well as the processing system
US5765017A (en) Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers
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

Legal Events

Date Code Title Description
DFC4 Cancellation of temporary protection due to refusal