FI80532C - Centralenhet foer databehandlingssystem. - Google Patents

Centralenhet foer databehandlingssystem. Download PDF

Info

Publication number
FI80532C
FI80532C FI833637A FI833637A FI80532C FI 80532 C FI80532 C FI 80532C FI 833637 A FI833637 A FI 833637A FI 833637 A FI833637 A FI 833637A FI 80532 C FI80532 C FI 80532C
Authority
FI
Finland
Prior art keywords
instruction
unit
cache
instructions
execution
Prior art date
Application number
FI833637A
Other languages
English (en)
Swedish (sv)
Other versions
FI833637A0 (fi
FI80532B (fi
FI833637A (fi
Inventor
Leonard G Trubisky
William A Shelly
Original Assignee
Honeywell Inf Systems
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 Honeywell Inf Systems filed Critical Honeywell Inf Systems
Publication of FI833637A0 publication Critical patent/FI833637A0/fi
Publication of FI833637A publication Critical patent/FI833637A/fi
Publication of FI80532B publication Critical patent/FI80532B/fi
Application granted granted Critical
Publication of FI80532C publication Critical patent/FI80532C/fi

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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • 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/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Description

1 80532
Tietojenkäsittelyjärjestelmän keskusyksikkö. - Centralenhet för databehandlingssystem.
Tämän keksinnön kohteena on patenttivaatimuksen 1 johdanto-osan mukainen keskusprosessori, keksinnön ollessa yleisesti yleiskäyttöisten digitaalisten tietojenkäsittelyjärjestelmien alueella, joissa on keskusprosessori, joka on optimoitu saavuttamaan maksimisuoritusteho.
Tyypillisesti suurimittakaavaisissa yleiskäyttöisissä digitaalisissa tietojenkäsittelyjärjestelmissä tällaisen järjestelmän keskusprosessori sisältää piirit käskyjen osoitteiden tuottamiseksi järjestelmän muistiin, operandien osoitteiden valmistelemiseksi, tiedon lataamiseksi osoitettuihin rekistereihin, käskyjen suorittamiseksi ja, kun tuloksia tuotetaan, tuloksien kirjoittamiseksi muistiin tai ohjelmalle näkyviin rekistereihin.
Prosessorien ja kokonaisten järjestelmien suorituskyvyn, so. tietojenkäsittelyjärjestelmien suoritustehon lisäämiseksi on keskusyksiköihin tehty useita muunnoksia. Operandien ja käskyjen saamiseen vaaditun ajan vähentämiseksi on järjestetty prosessoriin sijoitettuja suurinopeuksisia kätkömuisteja. Järjestelmien nopeuttamiseksi järjestelmät ovat synkronisoituja, so. kello tuottaa kellopulsseja, jotka ohjaavat jokaista keskusyksikön toiminnan askelta. Liukuhihnoitetuissa prosessoreissa käskyjen ja operandien valmistelun ja haun askeleet on limitetty suorituskyvyn lisäämiseksi.
Kuitenkin aina on olemassa tarve enempään tai suurempaan suoritustehoon ja mieluiten muuttamatta tällaisten järjestelmien prosessorien käskyvalikoimaa tai sisäistä sommitelmaa niin, että tällaiset suuren suorituskyvyn omaavat prosessorit pystyvät suorittamaan olemassa olevat ohjelmat tarvitsematta 2 80532 muuttaa tai muokata näitä ohjelmia, tai sellaiset prosessorit ovat yhteensopivia aiemmille järjestelmille kirjoitettujen ohjelmien kanssa.
Sen mukaisesti esillä oleva keksintö tarjoaa patenttivaatimuksen 1 johdanto-osan mukaisen keskusprosessorin yleiskäyttöistä digitaalista tietojenkäsittelyjärjestelmää varten, joka on tunnettu siitä, että keskusyksikköön kuuluu lisäksi: - useita tulostuspinoja kunkin ollessa liitettynä yksinomaan vastaavaan suoritusyksikköön kyseisen suoritusyksikön prosessoimien operandien vastaanottamiseksi; - keräily-yksikkö liitettynä mainittuihin suoritusyksiköihin mainitussa tulostuspinoissa pidettävien prosessoitujen operandien noutamiseksi ohjelmajärjestyksessä, mainitun keräily-yksikön ollessa kytkettynä mainittuun kätkömuistielimeen, prosessoitujen operandien kirjoittamiseksi seuraavaksi kätkömuistielimeen, kirjoitettavaksi seuraavaksi mainituista kätkömuis-tielimistä päämuistiin.
Keksinnön toteuttava keskusyksikkö tullaan nyt kuvaamaan esimerkinomaisesti viitaten kuvioihin, joista:
Kuvio 1 on keskusyksikön lohkokaavio; ja
Kuvio 2 on käskysanan muoto.
Esillä oleva keksintö tarjoaa suurisuoritustehoisen synkronisen keskusprosessorin suurimittakaavaista yleiskäyttöistä digitaalista tietojenkäsittelyjärjestelmää varten. Prosessori on varustettu kätkömuistiyksiköllä, jolla on operandiosa, tai ope-randikätkömuisti, jossa varastoidaan pääasiassa operandeja ja käskyosa, tai käskykätkömuisti, jossa varastoidaan pääasiassa käskyjä. Prosessorilla on annettu käskyvalikoima ja monta suoritusyksikköä. Kullakin suoritusyksiköistä on kyky suorittaa
II
3 80532 käskyvälikoiman eri käskyjoukko. Käskyjen noutooiiri noutaa käskyt pääasiassa käskykätkömuistis ta ja varastoi ne käskypi-noon. Keskeinen liukuhihnayksikkö, viisitasoinen tai -vaiheinen liukuhihna, saa käskyt käskypinosta ohjelmajärjestyksessä. Ensimmäisessä vaiheessa tai ensimmäisellä keskeisen liukuhihnan askeleella käsky identifioidaan ja operandin osoitteen valmistelun alustus käyttäen käskyn osoiteinformaatio-osaa aloitetaan; toisessa vaiheessa operandin osoite saatetaan valmiiksi; kolmannessa vaiheessa osoite muutetaan virtuaalisesta muistin osoiteavaruusesityksestä todelliseksi fyysiseksi osoiteavaruus-esitykseksi ja joukko ehdokasoperandeja päästetään operandikät-kömuistista sen fyysisen sivunumeron ohella, joka identifioi järjestelmän muistipaikan, josta kukin operandiehdokkaista päästettiin; neljännessä vaiheessa fyysisen osoitteen operandin sivunumero-osaa verrataan kuhunkin kätkömuistista päästettyyn operandiehdokkaaseen liittyvään sivunumeroon; ja olettaen, että sattuu yhteensopivuus, viidennessä vaiheessa valittu operandi ia suorituksen komentokoodi välitetään suoritusyksikköön, joka ainoana kykenee suorittamaan käskyn. Samalla käskykoodi välite-: tään keräilijälle. Kun käskyt lähetetään suoritusyksiköihin, ne suoritetaan tai pidetään tulopinossa odottamassa vuoroaan tul-' Iäkseen suoritetuksi siinä yksikössä. Käskyt suoritetaan vas- taanottojärjestyksessä kullakin suoritusyksiköllä. Kukin suori-tusyksiköistä suorittaa operaationsa riippumattomasti ja rinnan toistensa kanssa. Sen vuoksi eri suoritusyksiköihin lähetetyt käskyt eivät ehkä tule loppuun saatetuiksi samassa aikajärjestyksessä, kuin ne oli alunperin noudettu kätkömuistista. Kukin käsky-yksiköistä on varustettu tulospinolla, johon sijoitetaan tuon yksikön käskyjen suorituksen tulokset. Keräilijä noutaa nämä tulokset asianomaisesta suoritusyksiköstä ohjelmajärjes- tyksessä ja sijoittaa ne keräilijän kantatalletusmuistiin tai sen muistipinoon. Kantatalletusmuisti pitää yllä keskusyksikön kaikkien ohjelmalle näkyvien rekisterien voimassaolevaa kopio-ta. Muistiin kirjoitettava tieto sijoitetaan muistipinoon ennen kuin se kirjoitetaan operandikätkömuistiin, johon se jää käyt- 4 80532 töä tai edelleenmuuntamista varten kunnes se siirretään pois tai muut järjestelmän, josta prosessori on osa, yksiköt tarvitsevat sitä. Muunnettu tieto sitten pois siirrettäessä tai järjestelmän vaatiessa kirjoitetaan järjestelmän, josta CPU on osa, hakumuistiin.
Kuvio 1 näyttää keskusyksikön 10 tärkeimmät osajärjestelmät. Keskeinen liukuhihnayksikkörakennelma 12 ohjaa keskusyksikön 10 kaikkea toimintaa. Käskyjen noutovksikkö 14 antaa käskysanojen osoitteen käskykätkörr.uistiin 16. Vastauksena sille, että käsky-kätkömuisti 16 saa käskyosoitteen käskyjen noutovksiköltä 14, käskykaksoissana välitetään kätkömuistista 16 käskyjen nouto-yksikköön 14, joka varastoi sarjan käskyjä käskypinoon, joka on osa käskyjen noutoyksikköä 14. Keskeinen liukuhihnayksikkö 12 saa käskyt ohjelmajärjestyksessä käskyjen noutoyksikön (IFU) 14 käskypinosta mieluiten yhden keskusyksikön 10 järjestelmäkellon kellojaksoa kohti. Keskeinen liukuhihnayksikkörakenne 12 on 5-vaiheinen liukuhihna, jossa ensimmäisessä vaiheessa operaatio-koodi dekoodataan ja operandin osoitteen muodostus aloitetaan käyttäen 18 Y bittiä ja 6:tta käskyn lipukebittiä. Toisessa vaiheessa osoitteenmuodostus saatetaan loppuun. Kolmannessa ja neljännessä vaiheessa operandikätkömuistin 20 hakemistosta haetaan operandia sen määräämiseksi sijaitseeko operandi kätkö-muistissa ja operandi päästetään tai saadaan kätkömuistin tietovarastosta. Jos kuitenkaan operandia ei ole varastoitu kätkö-muistiin, silloin operandin sisältävä kahdeksan sanan lohko noudetaan päämuistista 22 ja varastoidaan operandikätkömuistiin sen jälkeen, kun haluttu operandi on lähetetty jakelijaan. Viidennessä vaiheessa jakelija 22 jakaa kunkin käskyn ja sen operandin asiaankuuluviin suoritusyksiköihin; keskeinen suoritus-yksikkö CEU 26, virtuaalisen muistin ja turvallisuuden hallinta VMSM 28, binääriaritmetiikan suoritusyksikkö BINAU 30 tai desi-maalimerkkiyksikkö DECCU 32. Lisäksi käskyt ja muu relevantti informaatio, kuten jäljempänä kuvataan, välitetään ohjelmajär-jestyksessä keräilijän 36 käskyjen suoritusjonoon 34.
11 5 80532
Kukin suoritusyksikoista 26, 28, 30, 32 kykenee ottamaan vastaan käskyjä ja operandeja ja käsittelemään niitä riippumatta muista suoritusyksiköistä. Kukin suoritusyksiköistä sisältää loogiset piirit, jotka on optimoitu suorittamaan sille osoitettu käskyjoukko. Keskeinen suoritusyksikkö 26 suorittaa tietokoneen perusoperaatiot kuten yksinkertaiset lataukset, summaukset, vähennykset jne. ja tietyt sekalaiset käskyt. Keskeinen suoritusyksikkö 26 on neljän suoritusyksikön joukossa ainutlaatuinen siinä, että se suorittaa kunkin käskyn sellaisena kuin se on vastaanotettu tavallisesti yhden kellojakson aikana. Keskeinen suoritusyksikkö 26 ei sen vuoksi ole varustettu tulospi-nolla, kuten on laita muilla kuviossa 1 kuvatuilla suoritusyk-siköillä. Virtuaalisen muistin ja turvallisuuden hallintayksik-kö 28 suorittaa virtuaaliseen muistiin liittyvät käskyt, turvallisuus- ja erikoiskäskyt, jotka ovat turvalliselle käyttöjärjestelmälle ominaisia. BINAU suoritusyksikkö 30 suorittaa binääriaritmetiikkakäskyt, kuten kertominen, jakaminen ja liukuvan pilkun käskyt. Desimaali/merkki-suoritusyksikkö 32 suorittaa alfanumeeriset, desimaaliaritmetiikan ja bittijonojen käskyt. Suoritusyksiköillä 28, 30 ja 32 on vastaavat tulopinot 38, 40 ja 42, joiden tehtävänä on varastoida suoritusta kuhunkin tulopinoon liittyvällä suoritusyksiköllä odottavan käskyn operaatiokoodi ja operandit.
Kukin tulopinoista 38, 40 ja 42 on tavanomainen FIFO-pino (ensimmäinen sisään, ensimmäinen ulos-pino), jolla on 16 tasoa, jokaisen tason ollessa sovitettu varastoimaan kaksoisdatasanan (kaksi operandia). Lisäksi suoritettavan käskysanan operaatio-koodista johdettu suorituskoodi varastoidaan operandin kanssa tulopinoon. Tulopinot ovat FIFO-pinoja (ensimmäinen sisään, ensimmäinen ulos), niin että kuhunkin operaatiokoodiin, joka kohdistetaan annettuun suoritusyksikköön, vaadittava ensimmäinen operaatiokoodi ja operandi on ensimmäinen tulopinosta ulos luettu koodi suoritettavaksi tuolla yksiköllä.
6 80532
Kullakin suoritusyksiköllä on myös vastaava tulospinonsa 44, 46, 48 ja 50. Tulospinot ovat myös tavanomaisia FIFO-pinoja, joista kullakin on 16 tasoa. Käskyoperaation tulokset varastoidaan pinoihin niiden suoritusjärjestyksessä. Kukin tulospinon tasoista kykenee varastoimaan kaksoissanan ja lisäksi lisäinformaatiota käskysanan suhteen. Kunkin suoritettavana olevan käskysanan operaatiokoodi muun informaation ohella on osa käs-kysuorituksen jonosanasta (IEQ), joka varastoidaan suoritusjonoon 34, joka on konventionaalinen 16-tasoinen FIFO-pino.
Keskusyksikön 10 tärkeä piirre suorituskyvyn kannalta on, että sekä operandikätkömuisti 20 ja käskykätkömuisti 16, jotka yhdessä muodostavat kätkömuistiyksikön, ja päämuisti 22 näkevät osoiteavaruuden koostuvan kahdeksan 36-bitin sanan lohkosta.
Myös tietojen siirrot päämuistin ja kätkömuistien 20 ja 16 välillä ovat kahdeksan sellaisen sanan yksiköissä tai lohkoissa. Tiedon siirto keskusyksikön 10 sisällä, erityisesti kätkömuis-tiyksiköiden ja suoritusyksiköiden välillä on kaksoissanan tai parin pohjalla ja vain vaadittua kaksoissanaa siirretään näin. Jakelija 24 syöttää operandit kätkömuistista 20 eri suoritusyk-; sikoihin ja pitää yllä monta kopiota AQ-rekisteristä, yksi asetettu keskeistä liukuhihnayksikkörakennetta varten, BINAU ja DECCU. Käskyjen noutoyksikkö 14 koostuu viisivaiheisesta käskyjen esinoudon liukuhihnasta. Käskyjen esinoutoyksikkö 14 varastoi ennalta noudetut käskyt ja tiedot käskypinoonsa. Käskyt esittävät vallitsevaa käskyvirtaa ja yksikön 14 siirto/epäsuora-ennakointitaulukon ennakoimia yhtä tai useampaa esihaettua vaihtoehtoista virtaa tai epäsuoria sanoja. Käskyjen noutoyksikkö syöttää käskyt keskeiseen liukuhihnayksikköön 12. Keskeisessä liukuhihnayksikössä 12 käskyt dekoodataan keskeisen liu-kuhihnayksikön 12 I-, tai käsky-, jakson aikana. Käskyjen esi-haun liukuhihna 14 ei tutki sen esihakemien käskyjen käskyope-raatiokoodeja, vaan mielumminkin käyttää käskylaskurirekiste-rinsä käskylaskentaa tutkiakseen siirto-ja epäsuora-ennakointi-taulukkoa sen määräämiseksi, onko annettu käsky haarautuminen il 7 80532 uuteen muistipaikkaan tai vaatiiko käsky epäsuoraa osoitusta.
Käskyjen esihaun liukuhihna tuottaa käskysuoritusten liukuhihnalle 12 joukon suoritettavia käskyjä. Tämä saavutetaan käyttämällä siirto- ja epäsuora-ennakointitaulukkoa uusien käskysek-venssien ennakoimiseksi ja sitten uuden käskyvirran käskyjen esihakemiseksi kaksi sanaa kerrallaan käskykätkömuistista tai silloin tällöin operandikätkömuistista ja sijoittamalla tällaiset käskyt tai epäsuorat sanat käskypinoon. Uusien sellaisten käskysekvenssien lataaminen esihaun käskypinoon tapahtuu vain, jos siirto/epäsuora-ennakointitaulukko osoittaa, että kunkin parin yksi sellainen käsky oli onnistunut siirto tai vaati epäsuoraa jaksoa edellisen kerran, kun käsky suoritettiin. Kun tämä tapahtuu, käskyjen esihaun liukuhihna 14 poikkeaa vallitsevasta käskysekvenssistä noutaakseen siirtokäskyn tai epäsuoran käskyn kohdesanan. Muussa tapauksessa käskyjen esihaun liukuhihna jatkaa käskyjen peräkkäin noutamista ja niiden sijoittamista käskypinoonsa. Käskyjen noutoyksikön 14 käskyjen esihaun liukuhihna palaa peräkkäiseen esihakuun myös, jos ennakoitu siirtokäsky osoittautuu olevan ei-siirto, kun kyseessä oleva käsky todella suoritetaan. Esihaetut siirto- tai epäsuora-kohteet ovat keskeisen yksikön liukuhihnarakenteen 12 käsittelyä varten saatavilla heti, kun ne on noudettu ja varastoitu käskyjen noutoyksikön 14 käskypinoon. Täten ei ole välttämätöntä odottaa siirto- tai epäsuora-käskyn todellisen suorituksen loppuunsaattamista keskeisellä liukuhihnarakenneyksiköllä ennen kuin IFU 14 aloittaa uuden käskyvirran käskyjen sijoittamisen IFU:n 14 käskypinoon. Tällä tavalla siirtokäskyjen ja epäsuorilla operandeilla varustettujen käskyjen tehollinen suoritus-aika minimoituu.
Käskyjen esihaun liukuhihna toimii viidessä jaksossa samalla tavoin kuin keskeisen liukuhihnayksikön 12 viisi jaksoa. Yksi ero on, että IFU 14 luopuu käskyistä sijoittamalla ne käskypinoonsa kaksoissanapari kerrallaan, kun taas CUPS 12 luopuu käs- 8 80532 kyistä sana kerrallaan viemällä ne eteenpäin keskeiseen suori-tusyksikköön 26 tai suoritusyksiköiden 28, 30 ja 32 tulopinoi-hin. Toinen ero on, että IFU 14 tarkistaa siirto/epäsuora-ennakointitaulukollaan määrittääkseen, onko siirto tai epäsuora osoite suoritettava, kun taas keskeinen liukuhihnayksikköraken-ne päivittää IFU:n 14 siirto/epäsuora-ennakointitaulukon. IFU:n 14 käskyjen esihaun liukuhihnan ensimmäisen jakson tai vaiheen aikana keskusyksikön 10 käskylaskuria lisätään 2:11a. Toisen jakson aikana käskyparin osoite toimitetaan siirto/epäsuora-ennakointitaulukolle ia käsky/operandikätkömuisteihin. Kolmannen jakson aikana päästään siirto/epäsuora-ennakointitaulukkoon ja käskykätkömuistiin 16. Käskykätkömuistiin pääsy koostuu 4:n kaksoissanan joukon lisäksi fyysisen sivun osoitteesta, joka merkitsee näihin kaksoissanoihin liittyvää fyysisen järjestel-mämuistin paikkaa. Neljännen jakson aikana halutun käskyparin fyysisen sivun osoitetta verrataan kätkömuistissa päästyihin kaksoissanoihin. Mikäli sattuu yhteensopivuus, yhteensopivuuteen liittyvä kaksoissana valitaan käskykaksoissanaksi. Ellei yhteensattumaa esiinny, operandikätkömuistista etsitään käsky-kaksoissanaa. Ellei käskykaksoissanaa löydetä I-kätkömuistista eikä O-kätkömuistista, halutun käskykaksoissanan sisältävä 8-sanainen lohko noudetaan päämuistista 10 ja sijoitetaan käskykätkömuisti in.
Siirto/epäsuora-ennakointitaulukkoon mennään sen näkemiseksi onko päästyistä käskyistä toinen tai molemmat ennakoitu siirto/ meno-käskyksi vertaa/valitse- tai neljännen jakson aikana. Käs-’ kypari on valittu yhdestä kätkömuistin neljästä tasosta vastaten yhteensopivuutta reaalisen sivunumeron kanssa vallitsevan käskyvirran hakemistosta. Käskypari, joka on luettu ulos kätkö-muistista, talletetaan käskyn noutorekisteriin, reaalinen sivu-1 numero talletetaan, ja vastaus siirto/epäsuora-ennakointitaulukosta tarkistetaan sen näkemiseksi, onko jompi kumpi käskyistä taltioitu siirto/epäsuora-ennakointitaulukkoon siirtona/menona. Huomaa, että vastaus siirto/ennakointitaulukosta saapuu kaksi
II
9 80532 jaksoa sen jälkeen, kun sitä on kysytty. Suoritusjakson, esi-haun käskyjen liukuhihnan viides jakso, aikana käskypari sijoitetaan käskypinoon niin, että jos siirto/epäsuora-ennakointi-taulukko osoittaa, että jompi kumpi käskyistä on siirto, käskyjen esihaun liukuhihna valmistautuu noutamaan käskyt uudesta käskyvirrasta. Ajoitus on sellainen, että jopa kaksi ylimääräistä kaksoissanaparia vallitsevasta käskyvirrasta myös luetaan kätkömuistista. Siinä tapauksessa, että ennakoitu siirto/ meno osoittautuu olevan ei-siirto, ylimääräiset kaksoissanapa-rit ovat yhä saatavilla käskypinossa. Käskypinoon liittyvät osoittimet sallivat keskeisen käskyjen esihakuyksikön 12 lukea käskyt ulos käskypinosta oikeassa järjestyksessä, so. ohjelma-järjestyksessä.
Käskypino toimii käskyjonona käskyjen esihakuyksikön 14 ja käskyjen suoritusyksikön tai keskeisen yksikön liukuhihnarakenteen 12 välillä. Käskypino on 35-tasoinen. Kun käskyt tai epäsuorat / sanat on sijoitettu käskypinoon käskyjen noutoyksikön liukuhihnarakenteen toimesta, ne jäävät sinne, kunnes ne suoritetaan tai kunnes määrätään, ettei niitä suoriteta. Siirto-käskyn tai epäsuoran sanan vaativien käskyjen tapauksessa, joiden historia löytyy siirto/epäsuora-ennakointitaulukosta esihaun aikana, käskypinon ohjaus sisältää osoittimen kohdekäskyn tai epäsuoran sanan osoitetta pitävään muistipaikkaan. Käskypino on syklinen (kiertovuorottelu) pino. Siinä on kuudestoista sisääntulo, jota käytetään puskuroimaan käskykaksoissanaparit. Käskyt ja epäsuorat sanat tai operandit virtaavat IFUtn 14 käskypinosta keskeiseen liukuhihnayksikkörakenteeseen 12 keskeisen yksikön 12 kan-takäskyrekisterin kautta yksöissana kerrallaan.
Keskeisellä liukuhihnayksiköllä 12 on myös viisi vaihetta tai jaksoa. Ensimmäisessä vaiheessa käskyn operaatiokoodi dekoodataan ja operandin osoitteen muodostus aloitetaan; toisessa vaiheessa operandiosoite saatetaan päätökseen; kolmannessa osoite muutetaan virtuaalisen muistin osoiteavaruusesityksestä todel- 10 80532 liseksi fyysiseksi osoiteavaruusesitykseksi, ja joukko ehdokas-operandeja päästetään operandikätkömuistista fyysisen sivun numeron ohella, joka identifioi järjestelmämuistin paikan, josta kukin operandiehdokkaista päästettiin; neljännessä oprandin fyysisen osoitteen sivunumero-osaa verrataan kuhunkin kätkö-muistista päästettyyn operandiehdokkaaseen liittyvään sivunumeroon ja olettaen, että yhteensopivuus ilmenee; viidennessä valittu operandi ja suorituksen komentokoodi välitetään suoritus-yksikköön, joka yksin kykenee suorittamaan käskyn. Mainittakoon, että jotkut suoritetut toiminteet eivät noudata määriteltyjä liukuhihnavaiheita. Keskeinen liukuhihnayksikkörakenne 12 saa aikaan sisääntulot IFU:n 14 siirto/epäsuora-ennakointitau-lukkoon. Aina kun keskeinen liukuhihnayksikkörakenne suorittaa siirto/meno-käskyn se vahvistaa minkä tahansa vastaavan sisääntulon, joka voi olla siirto/epäsuora-ennakointitaulukossa. Jos ennakoitu siirto osoittautuu olevan ei-meno tai ei-siirto, silloin se sisääntulo TIP-taulukkoon pyyhitään pois. Epäpuhtaan proseduurin tapauksessa, esimerkiksi, siirtokäskyn kohdeosoi-tetta on muunneltu, mutta operaatiokoodi jää yhä siirroksi; sopivaa sisääntuloa siirto/epäsuora-ennakointitaulukossa korjataan tämän seikan huomioimiseksi. Tapauksessa, jossa siirtomenoa ei ole aikaisemmin taltioitu, tehdään uusi sisääntulo TIP-taulukkoon, mikä voi syrjäyttää toisen sisääntulon, mikäli kaikki tuon tietyn käskyn käskylaskuria vastaavat neljä tasoa ovat varattuja. Syrjäytysalgoritmi on satunnainen, sillä ei juurikaan ole etua välttämättömän monimutkaisen piiristön lisäämisestä vähiten käytetyn sisääntulon syrjäyttämiseksi johtuen suora/epäsuora-ennakointitaulukon harhaanosumien harvinaisuudesta. Keskeinen yksikkö on vuorovaikutuksessa siirto/epä-suora-ennakointitaulukon kanssa muilla tavoin. Epäpuhtaan proseduurin tapauksessa, jossa operaatiokoodi on muuttunut, mutta siirto/epäsuora-ennakointitaulukko yhä ennakoi siirtoa, keskeinen liukuhihnayksikkö 12 havaitsee tosiasian käskyjaksolla, jolla käsky ensin dekoodataan. Epäsuorien käskyjen tapauksessa keskeinen liukuhihnayksikkörakenne 12 myös suorittaa sisääntu-
II
li 80532 lon siirto/epäsuora-ennakointitaulukkoon näiden takia. Käskyjen suorituksen liukuhihnalla 12 on kriitillinen rooli keskusyksikössä 10 suorituksen välttämättömän korkean tason saavuttamisessa, kun mitkä tahansa keskeytykset johtuen siitä, ettei tieto ole kätkömuistivksikössä, odottamattornista siirroista, jne., pysäyttävät keskeisen liukuhihnayksikön toiminnan, kunnes tällaiset tapahtumat on korjattu.
Siirto/epäsuora-ennakointitaulukko koostuu 4096 sisääntulosta, jotka on jaettu 1024 neljän sisääntulon joukkoon. TIP-taulukko toimii taltioidakseen kohdeosoitteen ensimmäisen tason epäsuo-ruudelle ja myös ennakoidakseen kohdeosoitteen sekä ehdottomille, että ehdollisille siirroille. Siirto/meno-käskyn tai epäsuoran sanan vaativan käskyn ensimmäisen suorituksen aikana tulee katkos keskeisen liukuhihnarakenteen liukuhihnassa, kun kohdeosoitetta muodostetaan ja kohde päästetään kätkömuistista. Ensimmäisellä suorituksella informaatio valmistellaan siirto/ epäsuora-ennakointitaulukkoa varten, joka määrittelee kohdekäs-kyn paikan kätkömuistiyksikössä. Siirtokäskyn tai epäsuoraa sanaa vaativan käskyn seuraavan esihaun aikana esihaun liukuhihna pääsee siirto/epäsuora-ennakointitaulukkoon ja määrittelee koh-depaikan esihakeakseen myös vaihtoehtoisen käskyvirran tai epäsuoran sanan. Siirto- tai epäsuoran käskyn tarkastaminen vie vain keskeisen liukuhihnayksikön yhden kellojakson sen toteamiseksi, ettei esihaun kohdeosoite ole muuttunut. Minkä tahansa siirtokäskyn seuraavien suoritusten aikana siirto/epäsuora-ennakointitaulukon sisääntulo päivitetään vain, jos siirto ei mene niin kuin on odotettu. Siirto/epäsuora-ennakointitaulukko seuraa vain epäsuoruuden yhtä tasoa. Epäsuorien sanojen kätkö-muistiosoitteet pannaan TIP-taulukkoon vain, ellei epäsuoria sanoja ole muunneltu.
Kätkömuistiyksikkö koostuu kahdesta erillisestä 8K kätkömuistista, käskykätkömuistista 16 ja operandikätkömuistista 20. Tieto pidetään kummassakin kätkömuistissa kahdeksan sanan loh- 12 80532 kon pohjalla. Lohko koostuu kahdeksasta peräkkäisestä 36-bitin päämuistisanasta, joista ensimmäisellä sanalla on binääriseen 000:aan päättyvä osoite. Viittaus lohkon mihinkä tahansa sanaan aiheuttaa koko lohkon lukemisen päämuistista, elle lohko jo ole sopivassa kätkömuistissa. Mitä tahansa lohkoa kätkömuistissa pidetään siellä, kunnes toinen lohko syrjäyttää sen tai kunnes se tyhjennetään kätkömuistista kätkömuistin tyhjennyskäskyllä. Käskykätkömuisti 16 pitää muuttamattomien käskyjen ja epäsuorien sanojen lohkoja, samalla kun operandikätkömuisti pitää operandien, muutettujen käskyjen ja epäsuorien sanojen lohkoja. Operand itietoa ei voi noutaa käskykätkömuistista, eikä tietoa voi muuttaa käskykätkömuistissa. On kuitenkin mahdollista noutaa käskyjä operandikätkömuistista, mutta toiminnan normaali ja haluttu tapa on noutaa käskyt ainoastaan käskykätkömuistista. Mikäli lohkoon, joka sisältyy käskykätkömuistiin viitataan varastoimis- tai tiedon hakuoperaation takia, tuo lohko tyhjennetään käskykätkömuistista ja haetaan uudelleen päämuistista 22 ja sijoitetaan operandikätkömuistiin 20. Yhteenvetona, operandit haetaan vain operandikätkömuistista ja ne voidaan varastoida vain operandikätkömuistiin. Käskyt voidaan hakea kummastakin kätkömuistista, mutta suorituksen etusija on käskykätkömuistil-. la·
Kullakin kätkömuistilla on nelitasoinen joukkoassosiatiivinen hakemisto oheenliitettynä 8K 36-bitin sanan muistivarastoa varten. Kumpikin kätkömuisti on organisoitu 256 neljän 8 sanan lohkon riviin. Fyysisen muistin ensimmäiset kahdeksan sanaa kuvautuvat kätkömuistin ensimmäiselle riville, rivi 0. Sanat 8-15 seuraavalle riville, rivi 1, sanojen 2040-2047 kuvautuessa viimeiselle riville, rivi 255. Kukin seuraava fyysisen muistin 2K kuvautuu kätkömuistille samalla tavoin. Näin ollen kahdeksan sanan lohkon kätkömuistin rivinumero tiedetään fyysisen muistin : osoitteesta. Koska kullakin rivillä on tilaa neljälle 8 sanan lohkolle, neljällä tasolla, annetun kätkömuistin tietyn rivin tasot täyttyvät, ennen kuin on kiistaa tilasta tuolla rivillä.
ti 13 80532
Sen jälkeen kun kaikki rivin tasot on täytetty, rivin vanhemmat lohkot syrjäytyvät perusteella kauimmin käytöstä. Täten vaaditaan viisi osumaa samalle riville, ennen kuin sisääntuleva kahdeksan sanan lohko voi syrjäyttää entisen kahdeksan lohkon. Jos käskyjen kahdeksan sanan lohko on operandikätkömuistissa, käskyjen esihakuyksikkö 14 voi noutaa käskyt operandikätkömuistis-ta kaksoissanapari kerrallaan, mutta poistamatta niitä operan-dikätkömuistista. Tavallisesti käskyjen esihakuyksikkö 14 toimii paljon edellä keskeisen liukuhihnayksikkörakenteen 12 käs-kysuoritusten liukuhihnaa, joten tämä haitta ei aina ole näkyvissä, mutta tällainen tilanne voi aiheuttaa käskyjen esihaun liukuhihnan jäämisen jälkeen, missä tapauksessa oikean käskyn puute johtaa katkokseen keskeisen liukuhihnayksikkörakenteen 1i ukuh ihnassa.
Suorituskyky lisääntyy varastoimisella kätkömuistiin erotuksena varastoimisesta kätkömuistin kautta. Kaikki varastoimisoperaa-tiot menevät operandikätkömuistiin, mutta eivät välittömästi mene päämuistiin 22, vaikka lohkon, jossa varastoiminen tapahtui, syrjäyttäminen pakoittaa tuon lohkon kirjoittumisen päämuistiin. Jos varastoitavana oleva lohko on jo operandikätkömuistissa ja ohjausinformaatio osoittaa, että kahdeksan sanan lohkoa on jo muutettu, silloin varastoiminen operandikätkömuis-tiin saatetaan loppuun, eikä muihin toimenpiteisiin ryhdytä. Kuitenkin, jos lohko löydetään operandikätkömuistista, mutta sitä ei vielä ole muutettu, keskusyksikkö 10 tiedottaa tuohon lohkoon liittyvälle ohjaussovitinyksikölle 2, että lohkoa muutetaan. Ohjaussovitinyksikkö tuottaa siten kirjoitusilmoituksen mille tahansa muille mahdollisesti läsnä oleville keskusyksiköille. Näiden täytyy sitten tehdä epäkelvoksi kahdeksan sanan lohkon mitkä tahansa kopiot, mitkä niillä voi olla joko operan-dikätkömuistissaan tai mahdollisesti käskykätkömuistissaan. Kun tietolohkoa ei löydetä operandikätkömuistista varastoimisope-raatiolla, lohko noudetaan muistista. Keskusyksikkö 10 osoittaa ohjaussovitinyksikölle 2, että nouto on lohkon muuttamista var- 14 80532 ten niin, että kun prosessori ottaa vastaan lohkon, lohko voidaan modifioida ilman mitään yksikköjen välistä lisäkommunikaa-tiota. Vain kätkömuistista luvun epäonnistumiset panevat keskeisen liukuhihnayksikkörakenteen liukuhihnan odottamaan tietoa. Kätkömuistiin varastoimisien epäonnistumisten yhteydessä liukuhihna jatkaa odottamatta tietoa.
Kullakin kätkömuisti11a on kaksinkertainen hakemisto niin, että kun on saatu järjestelmän pyyntö joko tyhjentää lohko tai välittää lohko järjestelmämuistiin, prosessori voi tutkia kaksinkertaista kätkömuistin hakemistoaan häiritsemättä keskeisen liukuhihnayksikön 12 toimintaa. Jos vaadittu lohko löydetään, prosessori ryhtyy asianmukaiseen toimenpiteeseen. Muuten kaksinkertainen hakemisto vastaa pyyntöön, eikä prosessori viivästy.
Keskeisen yksikön liukuhibnarakenne 12 vie eteenpäin kunkin käskyn operaatiokoodia sellaisena kuin se on vastaanotettu, oh-jelmajärjestyksessä, käskyjen suoritusjonoon 34 sinne varastoitavaksi. Jopa kuusitoista käskyjen suoritusjonon IEQ sanaa voidaan varastoida jonoon 34. Keräilijän ohjaus 52 käyttää kunkin IEQ sanan operaatiokoodia ohjatakseen kunkin suoritusyksikön 26 - 32 tulospinoihin 44 - 50 sijoitettujen tai varastoitujen tulosten uloslukua niin, että tulokset oikeassa ohjelmajärjestyksessä voidaan varastoida joko kantatalletusmuistiin MSS 54 .. tai muistipinoon 56. Tulokset, jotka on varastoitu muistipinoon *; 56 ovat operandien muistiin kirjoittamista varten. Käskyt, jot ka muuttavat keskusyksikön 10 ohjelman osoitettavissa olevia rekistereitä, tuottavat tuloksia, jotka varastoidaan kantatal-letusmuistiin 54 niin, että sellaisena aikana kuin keskeytys, V vika tai laitevirhe, keskusyksikön 10 ohjelman osoitettavissa olevien rekisterien sisältö on saatavilla kantatalletusmuistis-ta 54. Kaikkien ohjelman osoitettavissa olevien rekisterien vallitsevan ja kelpaavan sisällön saatavuus helpottaa suuresti vian paljastamista, keskeytysten käsittelyä ja käskyjen sopi- 11 is 80532 vuuden uudelleen kokeilua. Tietojenkäsittelyjärjestelmän, josta keskusyksikkö 10 on osajärjestelmä, päämuisti 22 tarjoaa käskyt käskykätkömuistia 16 varten ja operandit operandikätkömuistia 20 varten. Kaikki varastoimiset tai kirjoittamiset päämuistiin 22 ovat operandikätkömuistiin 20 varastoituneesta datasta. Täten milloin tahansa, kun tieto on kirjoitettava muistiin käskyn suorituksen tuloksena, välttämättömät tiedot, operandit, varastoidaan muistipinoon 50 ohjelmajärjestyksessä ja tuotetaan tai kirjoitetaan operandikätkömuistiin 20 ohjelmajärjestyksessä.
Kun operandikätkömuistin 20 lohko vapautetaan, niin että uutta tietoa voidaan kirjoittaa tuohon lohkoon, operandikätkömuistin ohjaus kirjoituttaa tuon kätkömuistin lohkon tiedon päämuistiin 22 ennen kuin uusi tieto kirjoitetaan tuohon lohkoon.
Keskeinen liukuhihnayksikkö 12 ohjaa prosessoriyksikön 10 kaiken kattavaa toimintaa ja sillä on tehtävänä operaatiokoodien tai komentojen ja niihin liittyvien operandien lähettäminen eri suoritusyksiköihin 26, 28, 30 ja 32, joissa kunkin operandikoo-din todellinen suoritus tapahtuu. Käskyjen noutoyksikkö 14, keskeisen liukuhihnayksikÖn 12 ohjaamana, noutaa käskyt pääasiassa käskykätkömuistista 16 ja lataa jopa kuusitoista paria käskyjä yksikön 14 osana olevaan käskypinoon. Keskeinen liuku-hihnayksikkörakenne 12 saa käskyt käskyjen esihakuyksikön käs-kypinosta. Keskeinen liukuhihnayksikkö 12 valmistelee operandien osoitteet viiden askeleen sarjassa operandikätkömuistista ja lähettää operaatiokoodin ja operandit mihin tahansa yhteen suoritusyksikköön 26, 28, 30 tai 32, joka kykenee sen suorittamiseen. Keskeisen liukuhihnayksikkörakenteen 12 sisällä suoritetaan käskyn esikäsittely, käskyn dekoodaus, operandiosoitteen muodostus sisältäen sivutuksen ja operandikätkömuistin assosiatiivisen muistin tutkimisen.
Suoritusyksiköt 26 - 32 vastaanottavat komennot keskeisestä liukuhihnayksiköstä 12 ja operandit operandikätkömuistista 20, jotka jakelija 22 jakaa eri suoritusyksiköihin. Käskyn suoritus ie 80532 tavallisesti sisältää jonkun vallitsevaan rekisterisisältöön ja syöttöoperandiin perustuvan tuloksen muodostuksen, mikä tuottaa muutoksen ohjelmalle näkyvään rekisteriin tai muistiin.
Keskusyksikkö 10 on varustettu neljällä pääsuoritusyksiköllä, joista kukin on tehty yhdestä tai useammasta osayksiköstä. Nämä yksiköt ovat keskeinen suoritusyksikkö 24, binääriaritmetiikan yksikkö BINAU 30, joka suorittaa liukuvan pilkun käskyt ja kerto- ja jakokäskvt, desimaalimerkkien yksikkö DECCU 32, ja virtuaalimuistin ja turvallisuuden hallintayksikkö VMSM 28. Kukin suoritusyksiköistä 26 - 32 vastaanottaa käskyjä ja operandeja, ja sitten käsittelee ne riippumatta siitä, mitä mikä tahansa muu suoritusyksikkö saattaa olla tekemässä. Suoritusyksi-köillä 28 ja 30 on vastaavat tulopinot 38 ja 40, joista kumpikin on 16-tasoinen FIFO-pino, kunkin tason voidessa pitää yhden kaksoissanan. Suoritusyksiköllä 32 on kaksi kuusitoistatasoista FIFO-pinoa 36, kunkin kyetessä pitämään yhden kaksoissanan tasoa kohti.
Lisäksi kuhunkin suoritusyksikköön on liittyneenä komentopino. Suoritusyksiköt 28 ja 30 voivat pitää jopa 16 komentoa odottamassa suoritusta samalla kun suoritusyksikkö 32 voi pitää jopa 4 komentoa odottamassa suoritusta. On huomattava, että päätöksen siitä, mikä suoritusyksikkö on saanut tai mille suoritusyk-sikölle on osoitettu annettu käsky ja siihen liittyvä operandi, määrää keskeinen liukuhihnayksikkö tutkimalla kunkin käskyn operaatiokoodia. Nimenomainen käytetty menetelmä parhaana pidetyssä toteutusmuodossa on tavanomainen taulukon selaustekniik-ka. Tulopinot 38 - 42 sallivat keskeisen liukuhihnayksikköra-kenteen 12 tuottaa operandit ja niihin liittyvät operaatiokoo-dit suoritusyksiköihin maksimivauhdilla yksi kellojaksoa kohti, odottamatta esimerkiksi monien edellisten suoritusjaksokäskyjen suorituksen loppuunsaattamista. Sellainen järjestely myös sallii käskyjen suorituksen limittymisen eri suoritusyksiköissä. Jokainen käskykoodi suoritetaan aina siinä järjestyksessä, kuin
II
17 80532 se saadaan keskeisestä liukuhihnayksiköstä 12.
Prosessointiyksikön 10, jolla on useita suoritusyksiköitä, systeemiarkkitehtuuri vaatii, että pidetään useita päärekisterien, esim. A ja Q, kopioita. Kun käsittely etenee, tietyn rekisterin kelpaava kopio voi olla missä tahansa suoritusyksiköistä tai missä tahansa prosessointiyksikön 10 yhdestä useista eri rekis-teriryhmistä. Keskeinen liukuhihnayksikkörakenne 12 pitää yllä vallitsevan kelpaavan kopion tietuetta kullekin rekisterille ja tunnistaa, kun seuraavan käskyn suoritus vaatii rekisterin sisällön kopion siirtämistä yhdestä suoritusyksiköstä toiseen. Kuitenkin tietyn rekisterin sisällön kelpaavan kopion ylläpitämisen tekee monimutkaiseksi liukuhihnan 12 pituus, joka on viisi käskyä tai kellojaksoa. Kyky määrätä kunkin osoitettavan rekisterin sisältö välittömästi ennen vian ilmenemistä on nopean viasta toipumisen vaatimus.
Missä tahansa liukuhihnatietokoneessa minkä tahansa käskyn käsittely limittyy monien muiden eri suoritusvaiheessa olevien käskyjen suorituksen kanssa. Lisäksi keskusyksikössä 10 useita käskyjä voidaan suorittaa samanaikaisesti eri suoritusyksiköis-sä. Seurauksena on, että minä tahansa ajankohtana liukuhihnan 12 ja suoritusyksiköiden 26 - 32 rekisterit voivat sisältää rekisterin muutokset tuloksena useiden eri käskykoodien käsittelystä ja suorittamisesta. Kun käskyn ohjelmavika, käskyn käsittelyvirhe tai keskeytys tapahtuu, keräilijä 36 täytyy pysäyttää viimeisen onnistuneesti loppuun saatetun käskyn jälkeen. Kaikki rekisterin muutokset seurauksena käskyjen suorituksesta ohjelma järjestyksessä ennen vikaa, virhettä tai keskeytystä pitäisi saattaa loppuun ja mikä tahansa ohjelmalle näkyvän rekisterin muutos tai muutokset muistiin tuloksena myöhemmin ohjelmajär-jestyksessä olevien käskyjen suorituksesta täytyy peruuttaa tai pyyhkiä pois. Keräilijä 36 tarjoaa voimassaolevan, vallitsevan kopion kustakin ohjelmalle näkyvästä rekisteristä vian ja virheen hakemisen helpottamiseksi ja keskeytysten käsittelemiseksi.
is 80532
Tietuetta oikeasta ohjelmajärjestyksestä kaikille suoritettavana oleville käskyille, joita käsittelee keskusyksikkö 10, pidätetään käskyjen suoritusjonossa 34, joka sisältää yhden sisääntulon jokaista käsiteltävää käskyä varten. Sisääntulot kanta-talletusrauistiin 54 ja muistipinoon 56 on järjestetty siten, että ne puretaan oikeassa ohjelmajärjestyksessä, so. samassa järjestyksessä tai sarjassa kuin missä käskyt varastoidaan käskyjen suorituspinoon 34 keskeisen liukuhihnayksikön jakelijan 24 toimesta. Käskyjen suoritusjonosanat sisältävät käskyn ope-raatiokoodin ja identifioivat taulukon selailutekniikan avulla suorituksen tulosten pinon, johon syötetään tai tullaan syöttämään tuon käskyn tulos, kun se suoritetaan. Kunkin suoritetun käskyn tulos siirretään sitten sopivasta tulospinosta kantatal-letusmuistiin 54 tai muistipinoon 56 ohjelmajärjestyksessä. Täten keräilijälaitteessa käskyt saatetaan loppuun ja jokaisen tulos otetaan vastaan ja järjestetään oikeassa tai ohjelmajär-jestyksessä.
Keräilijä 36 myös suorittaa kaikkien muistiinvarastoimiskäsky-jen todellisen toteutuksen. Kantatalletusmuisti 54 sisältää kopion kaikista ohjelmalle näkyvistä rekistereistä, joten se on sopiva paikka muistiin kirjoitettavien ohjelmalle näkyvien rekisterien sisältöjen hankkimiseksi. Muistikäskyjen käsittely keräilijässä 36 muistiin 22 kirjoitettavan tiedon tullessa joko kantatalletusmuistista 48 tai suoritusyksiköiden tulospinoista muistipinon 56 kautta yllä pitää ohjelmajärjestystä ja välttää suoritusyksiköt 44 - 50 pakolta osallistua muistikäskyihin. Täten tässä mielessä keräilijä 36 on eräs suoritusyksikkö muisti-käskyjen käsittelemiseksi. Seurauksena yksinkertaiset varastoinnit voidaan limittää muiden käskyjen, jotka vaativat kaksi tai useampia kellojaksoja, suorituksen kanssa. Kantatalletus-muistiin 48 varastoitu informaatio tekee suhteellisen helpoksi keskusyksikön 10 kokeilla uudestaan laitekäskyjä silloin kuin se arvioidaan välttämättömäksi.
Il

Claims (3)

19 80532
1. Tietojen keskusprosessori tietokoneohjelmien suorittamiseksi digitaalisessa tietojenkäsittelyjärjestelmässä ja siihen kuuluu kätkömuistielimet (16,20) sovitettuna varastoimaan käskyjä ja operandeja; käskyjen noutoyksikkö (14) käskyjen noutamiseksi kätkömuistielimistä ja suoritusta odottavien käskyjen asettamisesta jonoon, liukuhihnaohjausyksikkS (12) käskyjen hankkimiseksi ohjelmajärjestyksessä mainitusta noutoyksiköstä (14) mainittujen käskyjen dekoodaamiseksi, näin hankitun kunkin käskyn osoittaman operandin noutamiseksi mainitusta kätkömuistielimes-tä, useita erilaisia käskyjen suoritusyksiköitä (26,28,30,32) kunkin mainitusta suoritusyksiköistä kyetessä suorittamaan erilaisia käskytyyppejä, kaikkien suoritusyksiköiden ollessa ohjattuina suorittamaan käskyjä samanaikaisesti ja keskenään asynkronisesti ja jakeluyksikkö (24) liitettynä mainittuun liu-kuhihnayksikköön ja suoritusyksiköihin vuoron antamiseksi kullekin käskylle ja vastaavalle operandille tiettyyn suoritusyk-sikköön, joka pystyy suorittamaan mainitun käskyn; tunnettu siitä, että keskusyksikköön kuuluu lisäksi: - useita tulostuspinoja (44,46,48,50), kunkin ollessa liitettynä yksinomaan vastaavaan suoritusyksikköön kyseisen suoritusyk-sikön prosessoimien operandien vastaanottamiseksi; - keräily-yksikkö (36) liitettynä mainittuihin suoritusyksiköihin mainitussa tulostuspinoissa pidettävien prosessoitujen operandien noutamiseksi ohjelmajärjestyksessä, mainitun keräily-yksikön ollessa kytkettynä mainittuun kätkömuistielimeen, prosessoitujen operandien kirjoittamiseksi seuraavaksi kätkömuistielimeen, kirjoitettavaksi seuraavaksi mainituista kätkömuistielimistä päämuistiin.
2. Patenttivaatimuksen 1 mukainen keskusyksikkö, tunnettu siitä, että kätkömuistielimiin kuuluu operandikätkömuisti operandien tallettamiseksi ja käskykätkömuisti käskyjen tallettamiseksi ja keräily-yksikkö on liitetty mainittuun 20 80532 operandikätkömuistiin prosessoitujen operandien kirjoittamiseksi siihen.
3. Patenttivaatimuksen 1 mukainen keskusprosessori, tunnettu siitä, että keräily-yksikköön (36) kuuluu muistipino tulostuspinoissa pidettävien prosessoitujen operandien tallettamiseksi siihen ohjelmajärjestyksessä mainitussa muistipi-nossa pidettävien prosessoitujen operandien kirjoittamiseksi seuraavaksi mainittuun kätkömuistielimeen. Il 2i 80 532
FI833637A 1982-10-13 1983-10-07 Centralenhet foer databehandlingssystem. FI80532C (fi)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/434,122 US4521851A (en) 1982-10-13 1982-10-13 Central processor
US43412282 1982-10-13

Publications (4)

Publication Number Publication Date
FI833637A0 FI833637A0 (fi) 1983-10-07
FI833637A FI833637A (fi) 1984-04-14
FI80532B FI80532B (fi) 1990-02-28
FI80532C true FI80532C (fi) 1990-06-11

Family

ID=23722909

Family Applications (1)

Application Number Title Priority Date Filing Date
FI833637A FI80532C (fi) 1982-10-13 1983-10-07 Centralenhet foer databehandlingssystem.

Country Status (9)

Country Link
US (1) US4521851A (fi)
EP (1) EP0106667B1 (fi)
JP (1) JPS5991546A (fi)
KR (1) KR880002660B1 (fi)
AU (1) AU555456B2 (fi)
CA (1) CA1200318A (fi)
DE (1) DE3377678D1 (fi)
ES (1) ES8406756A1 (fi)
FI (1) FI80532C (fi)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
JPS60500187A (ja) * 1982-12-30 1985-02-07 インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン データ処理システム
US4689765A (en) * 1983-01-28 1987-08-25 Digital Equipment Corporation Groups of tag signals for data store in multi-plane set of buffers
US4757445A (en) * 1983-09-12 1988-07-12 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4710866A (en) * 1983-09-12 1987-12-01 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4628477A (en) * 1983-10-17 1986-12-09 Sanders Associates, Inc. Programmable push-pop memory stack
GB8401807D0 (en) * 1984-01-24 1984-02-29 Int Computers Ltd Pipelined data processing apparatus
US4701844A (en) * 1984-03-30 1987-10-20 Motorola Computer Systems, Inc. Dual cache for independent prefetch and execution units
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
EP0159712B1 (en) * 1984-04-27 1991-01-30 Bull HN Information Systems Inc. Control means in a digital computer
JPS6116350A (ja) * 1984-07-02 1986-01-24 Nec Corp 情報処理装置のバツフア記憶装置
US4794524A (en) * 1984-07-03 1988-12-27 Zilog, Inc. Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit
JP2539357B2 (ja) * 1985-03-15 1996-10-02 株式会社日立製作所 デ−タ処理装置
US5206945A (en) * 1985-03-15 1993-04-27 Hitachi, Ltd. Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses
DE3752100T2 (de) * 1986-01-07 1997-12-11 Nippon Electric Co Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung
EP0256134B1 (en) * 1986-01-27 1991-12-18 Fujitsu Limited Central processing unit
JP2554050B2 (ja) * 1986-02-26 1996-11-13 株式会社日立製作所 デ−タ処理方法
US5187782A (en) * 1986-02-26 1993-02-16 Hitachi, Ltd. Data processing system
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
US5349672A (en) * 1986-03-17 1994-09-20 Hitachi, Ltd. Data processor having logical address memories and purge capabilities
JPH06100968B2 (ja) * 1986-03-25 1994-12-12 日本電気株式会社 情報処理装置
US5237671A (en) * 1986-05-02 1993-08-17 Silicon Graphics, Inc. Translation lookaside buffer shutdown scheme
US4896264A (en) * 1986-09-08 1990-01-23 American Telephone And Telegraph Company Microprocess with selective cache memory
EP0271187B1 (en) * 1986-10-17 1995-12-20 Amdahl Corporation Split instruction and operand cache management
US5095424A (en) * 1986-10-17 1992-03-10 Amdahl Corporation Computer system architecture implementing split instruction and operand cache line-pair-state management
US5265220A (en) * 1986-12-23 1993-11-23 Nec Corporation Address control device for effectively controlling an address storing operation even when a request is subsequently cancelled
GB2200483B (en) * 1987-01-22 1991-10-16 Nat Semiconductor Corp Memory referencing in a high performance microprocessor
JP3137117B2 (ja) * 1987-03-27 2001-02-19 将容 曽和 高速処理計算機
US4991078A (en) * 1987-09-29 1991-02-05 Digital Equipment Corporation Apparatus and method for a pipelined central processing unit in a data processing system
JP2810043B2 (ja) * 1987-11-13 1998-10-15 株式会社日立製作所 データ処理装置
US5119483A (en) * 1988-07-20 1992-06-02 Digital Equipment Corporation Application of state silos for recovery from memory management exceptions
JP2858140B2 (ja) * 1988-10-19 1999-02-17 アポロ・コンピューター・インコーポレーテッド パイプラインプロセッサ装置および方法
US5123097A (en) * 1989-01-05 1992-06-16 Bull Hn Information Systems Inc. Apparatus and method for simultaneous execution of a write instruction and a succeeding read instruction in a data processing system with a store through cache strategy
US5067069A (en) * 1989-02-03 1991-11-19 Digital Equipment Corporation Control of multiple functional units with parallel operation in a microcoded execution unit
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5155831A (en) * 1989-04-24 1992-10-13 International Business Machines Corporation Data processing system with fast queue store interposed between store-through caches and a main memory
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
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
JP2535252B2 (ja) * 1990-10-17 1996-09-18 三菱電機株式会社 並列処理装置
JP2532300B2 (ja) * 1990-10-17 1996-09-11 三菱電機株式会社 並列処理装置における命令供給装置
JP2682232B2 (ja) * 1990-11-21 1997-11-26 松下電器産業株式会社 浮動小数点演算処理装置
JPH04260929A (ja) * 1991-01-21 1992-09-16 Mitsubishi Electric Corp データ処理装置
JPH0659972A (ja) * 1992-08-05 1994-03-04 Oki Electric Ind Co Ltd メモリ制御装置
US5493669A (en) * 1993-03-03 1996-02-20 Motorola, Inc. Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits
KR940022276A (ko) * 1993-03-11 1994-10-20 오오가 노리오 병렬연산 처리장치
US5651134A (en) * 1994-10-26 1997-07-22 Ncr Corporation Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program
US6704923B1 (en) 1994-12-20 2004-03-09 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
US5668999A (en) * 1994-12-20 1997-09-16 Sun Microsystems, Inc. System and method for pre-verification of stack usage in bytecode program loops
US5748964A (en) * 1994-12-20 1998-05-05 Sun Microsystems, Inc. Bytecode program interpreter apparatus and method with pre-verification of data type restrictions
GB9514433D0 (en) * 1995-07-14 1995-09-13 Sgs Thomson Microelectronics Computer instruction execution
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
US5919256A (en) * 1996-03-26 1999-07-06 Advanced Micro Devices, Inc. Operand cache addressed by the instruction address for reducing latency of read instruction
US5875201A (en) * 1996-12-30 1999-02-23 Unisys Corporation Second level cache having instruction cache parity error control
US5960455A (en) * 1996-12-30 1999-09-28 Unisys Corporation Scalable cross bar type storage controller
US6122711A (en) 1997-01-07 2000-09-19 Unisys Corporation Method of and apparatus for store-in second level cache flush
US5860093A (en) * 1997-01-21 1999-01-12 Unisys Corporation Reduced instruction processor/storage controller interface
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
JP3469469B2 (ja) 1998-07-07 2003-11-25 富士通株式会社 情報処理装置
US6212623B1 (en) 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Universal dependency vector/queue entry
US6212622B1 (en) * 1998-08-24 2001-04-03 Advanced Micro Devices, Inc. Mechanism for load block on store address generation
US6564315B1 (en) 2000-01-03 2003-05-13 Advanced Micro Devices, Inc. Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction
US6694424B1 (en) 2000-01-03 2004-02-17 Advanced Micro Devices, Inc. Store load forward predictor training
US6651161B1 (en) 2000-01-03 2003-11-18 Advanced Micro Devices, Inc. Store load forward predictor untraining
US6622237B1 (en) 2000-01-03 2003-09-16 Advanced Micro Devices, Inc. Store to load forward predictor training using delta tag
US6542984B1 (en) 2000-01-03 2003-04-01 Advanced Micro Devices, Inc. Scheduler capable of issuing and reissuing dependency chains
US6622235B1 (en) 2000-01-03 2003-09-16 Advanced Micro Devices, Inc. Scheduler which retries load/store hit situations
US7120572B1 (en) 2000-01-06 2006-10-10 Sun Microsystems, Inc. Memory efficient program pre-execution verifier and method
US7321964B2 (en) * 2003-07-08 2008-01-22 Advanced Micro Devices, Inc. Store-to-load forwarding buffer using indexed lookup
US7376817B2 (en) 2005-08-10 2008-05-20 P.A. Semi, Inc. Partial load/store forward prediction
US9128725B2 (en) 2012-05-04 2015-09-08 Apple Inc. Load-store dependency predictor content management
US9600289B2 (en) 2012-05-30 2017-03-21 Apple Inc. Load-store dependency predictor PC hashing
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
US10514925B1 (en) 2016-01-28 2019-12-24 Apple Inc. Load speculation recovery
US10437595B1 (en) 2016-03-15 2019-10-08 Apple Inc. Load/store dependency predictor optimization for replayed loads

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3840861A (en) * 1972-10-30 1974-10-08 Amdahl Corp Data processing system having an instruction pipeline for concurrently processing a plurality of instructions
JPS5110746A (fi) * 1974-07-17 1976-01-28 Hitachi Ltd
GB1506972A (en) * 1976-02-06 1978-04-12 Int Computers Ltd Data processing systems
US4156906A (en) * 1977-11-22 1979-05-29 Honeywell Information Systems Inc. Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands
US4295193A (en) * 1979-06-29 1981-10-13 International Business Machines Corporation Machine for multiple instruction execution
JPS5730042A (en) * 1980-07-30 1982-02-18 Nippon Telegr & Teleph Corp <Ntt> Control system for instruction executing sequence
JPS57109084A (en) * 1980-12-26 1982-07-07 Fujitsu Ltd Schedule system for instruction in parallel computer having plural operating devices

Also Published As

Publication number Publication date
EP0106667B1 (en) 1988-08-10
CA1200318A (en) 1986-02-04
DE3377678D1 (en) 1988-09-15
ES526393A0 (es) 1984-08-01
KR880002660B1 (ko) 1988-12-17
FI833637A0 (fi) 1983-10-07
EP0106667A2 (en) 1984-04-25
FI80532B (fi) 1990-02-28
ES8406756A1 (es) 1984-08-01
AU1879283A (en) 1984-04-19
AU555456B2 (en) 1986-09-25
JPS5991546A (ja) 1984-05-26
EP0106667A3 (en) 1986-04-16
FI833637A (fi) 1984-04-14
KR840006528A (ko) 1984-11-30
US4521851A (en) 1985-06-04

Similar Documents

Publication Publication Date Title
FI80532C (fi) Centralenhet foer databehandlingssystem.
US4597044A (en) Apparatus and method for providing a composite descriptor in a data processing system
JP3542021B2 (ja) セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置
US5113515A (en) Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer
US5381533A (en) Dynamic flow instruction cache memory organized around trace segments independent of virtual address line
US6611910B2 (en) Method for processing branch operations
US5802588A (en) Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US5446850A (en) Cross-cache-line compounding algorithm for scism processors
EP0199947A2 (en) Pageable branch history table
EP0394624B1 (en) Multiple sequence processor system
EP1202180A1 (en) Scalar data cache for a vector processor
JP2003514274A (ja) 接近して結合される多重プロセッサのための高速マルチスレッディング
JPS62221036A (ja) 計算装置
US6192462B1 (en) Superscalar microprocessor including a load/store unit, decode units and a reorder buffer to detect dependencies between access to a stack cache and a data cache
KR100431975B1 (ko) 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템
US5897654A (en) Method and system for efficiently fetching from cache during a cache fill operation
EP1005672A1 (en) Load/store unit and method for non-blocking completion of loads in a superscalar microprocessor
US7996655B2 (en) Multiport execution target delay queue FIFO array
JPH07200406A (ja) キャッシュシステム
EP0912929B1 (en) A data address prediction structure and a method for operating the same
WO1998002806A1 (en) A data address prediction structure utilizing a stride prediction method
Weiss et al. United States Patent po
JP2001505327A (ja) 1クロックサイクル内でデータをストアするよう構成されたデータメモリユニット、およびその動作方法
WO1998002803A1 (en) Unified load/store unit for a superscalar microprocessor and method of operating the same

Legal Events

Date Code Title Description
MM Patent lapsed
MM Patent lapsed

Owner name: HONEYWELL INFORMATION SYSTEMS INC.