Torustik: arhitektuur, eelised ja puudused

Proovige Meie Instrumenti Probleemide Kõrvaldamiseks





Programmi käivitamise kiiruse suurendamine suurendab seega ka programmi kiirust töötleja. Täitmise kiiruse suurendamiseks on leiutatud mitmeid viise, nii riistvara juurutamine kui ka tarkvaraarhitektuur. Täheldati, et käskude samaaegse täitmisega saab vähendada täitmiseks vajalikku aega. Paralleelsuse mõiste aastal programmeerimine tehti ettepanek. Selle järgi saab taktsükli jooksul täita rohkem kui ühte käsku. Seda kontseptsiooni saab programmeerija rakendada mitmesuguste tehnikate abil, näiteks Torustik, mitu täitmisüksust ja mitu südamikku . Kõigi nende paralleelsusmeetodite seas kasutatakse kõige sagedamini torujuhtmeid. Niisiis, kuidas saab käsku täita torujuhtme meetodil? Kuidas see suurendab täitmise kiirust?

Mis on torustik?

Torujuhtme kontseptsiooni mõistmiseks vaatame programmi täitmise juurtaset. Korraldus on programmi väikseim täitmispakett. Iga käsk sisaldab ühte või mitut toimingut. Lihtsad skalaarprotsessorid täidavad ühe tsükli jooksul ühe või mitu käsku, kusjuures iga käsk sisaldab ainult ühte toimingut. Loodetud tulemuste saamiseks täidetakse juhised faaside jadana. See järjestus on toodud allpool




Juhiste täitmise järjestus

Juhiste täitmise järjestus

  • IF: tõmbab käsu käsuregistrisse.
  • ID: juhiste dekodeerimine, dekodeerib opkoodi juhised.
  • AG: aadressigeneraator, genereerib aadressi.
  • DF: Data Fetch, tõmbab operandid andmeregistrisse.
  • EX: täitmine, täidab määratud toimingu.
  • WB: kirjuta tagasi, kirjutab tulemuse tagasi registrisse.

Kõik juhised ei nõua kõiki ülaltoodud toiminguid, kuid enamik neist siiski. Need sammud kasutavad erinevaid riistvarafunktsioone. Torustikus viiakse need erinevad faasid läbi samaaegselt. Torujuhtmete koostamisel peetakse neid etappe erinevate toimingute vahel sõltumatuteks ja need võivad kattuda. Seega saab samaaegselt teha mitu toimingut, kusjuures iga toiming on oma iseseisvas faasis.



Juhend torustik

Vaatame, kuidas juhiseid torujuhtmes töödeldakse. Seda saab hõlpsalt mõista alltoodud skeemi järgi.

Juhend torustik

Juhend torustik

Oletame, et juhised on sõltumatud. Lihtsas torujuhtme protsessoris on antud ajahetkel igas faasis ainult üks operatsioon. Algfaas on IF-faas. Niisiis, esimesel kellatsüklil tõmmatakse üks toiming. Kui saabub järgmine taktimpulss, läheb esimene operatsioon ID-faasi, jättes IF-faasi tühjaks. Nüüd eraldatakse see tühi etapp järgmisele operatsioonile. Niisiis on teise taktsimpulsi ajal esimene operatsioon ID-faasis ja teine ​​operatsioon IF-faasis.

Kolmanda tsükli jaoks toimub esimene operatsioon AG-faasis, teine ​​operatsioon on ID-faasis ja kolmas operatsioon on IF-faasis. Sel viisil täidetakse käsud samaaegselt ja kuue tsükli järel väljastab protsessor täielikult täidetud käsu taktsükli kohta.


Kas see käsk on järjestikku täidetud, kas algselt peab esimene käsk läbima kõik faasid, siis tõmmatakse järgmine käsk? Nii et iga käsu täitmiseks vajaks protsessor kuut taktsüklit. Kuid torujuhtmega protsessoris, kuna käskude täitmine toimub samaaegselt, nõuab ainult algne käsk kuus tsüklit ja kõik ülejäänud käsud täidetakse ühena iga tsükli kohta, vähendades seeläbi täitmise aega ja suurendades protsessori kiirust.

Torustikuarhitektuur

Paralleelsust saab saavutada riistvara, kompilaatori ja tarkvaratehnikate abil. Kasutada ära gaasijuhtme kontseptsiooni arvuti arhitektuur paljud protsessoriüksused on omavahel ühendatud ja toimivad samaaegselt. Torujuhtmega protsessori arhitektuuris on eraldatud töötlusüksused täisarvude ja ujukoma käskude jaoks. Kui järjestikuses arhitektuuris on ette nähtud üks funktsionaalne üksus.

Torujuhtmega protsessori seade

Torujuhtmega protsessori seade

Staatilises torustikus peaks protsessor edastama käsu läbi torujuhtme kõigi etappide, hoolimata juhendamise nõudest. Dünaamilises torujuhtme protsessoris võib käsk mööda minna faasidest, sõltuvalt nõudest, kuid peab liikuma järjestikuses järjestuses. Kompleksses dünaamilises torujuhtme protsessoris saab käsk nii faasidest mööda minna kui ka valida faasid korrast ära.

Torustik RISC protsessorites

Kõige populaarsem RISC arhitektuur ARM-protsessor järgib 3-etapilist ja 5-etapilist torujuhtmeid. Kolmeastmelises torujuhtmes on etapid: Tõmme, Dekodeeri ja Käivita. Sellel torujuhtmel on 3 tsükli latentsus, kuna individuaalse käsu täitmiseks kulub 3 taktsüklit.

ARM 3-etapiline torustik

ARM 3-etapiline torustik

Torujuhtmete nõuetekohaseks rakendamiseks tuleks uuendada ka riistvaraarhitektuuri. Kolmeastmelise torujuhtme riistvara sisaldab registripanka, ALU-d, barrelilülitit, aadressigeneraatorit, inkrementi, käsudekooderit ja andmeregistreid.

ARM 3-etapiline torujuhtmete andmebaas

ARM 3-etapiline torujuhtmete andmebaas

Viies etapis on etapid järgmised: Fetch, Decode, Execute, Buffer / data ja Write back.

Torustiku ohud

Tüüpilises arvutiprogrammis on lisaks lihtsatele juhistele haruharjutused, toimingute katkestamine, juhiste lugemine ja kirjutamine. Torustik ei sobi igasuguste juhiste jaoks. Kui mõned juhised torujuhtmes täidetakse, võivad nad torujuhtme kinni panna või selle täielikult loputada. Seda tüüpi probleeme, mis tekivad torujuhtmete paigaldamisel, nimetatakse torujuhtmete ohtudeks.

Enamikus arvutiprogrammidest kasutab ühe käsu tulemust teine ​​käsk operandina. Kui sellised käsud täidetakse torustikus, toimub lagunemine, kuna esimese käsu tulemus pole saadaval, kui teine ​​käsk hakkab operandi koguma. Niisiis, teine ​​käsk peab seiskuma, kuni üks käsk on täidetud ja tulemus on loodud. Seda tüüpi ohtu nimetatakse torujuhtme lugemise ja kirjutamise järgseks ohuks.

Lugege pärast torujuhtme kirjutamise ohu kirjutamist

Lugege pärast torujuhtme kirjutamise ohu kirjutamist

Filiaali juhiste täitmine põhjustab ka torujuhtme ohtu. Harujuhised täidetuna torustikus mõjutab järgmiste juhiste toomise etappe.

Torujuhtmega haru käitumine

Torujuhtmega haru käitumine

Torustiku eelised

  • Juhiste läbilaskevõime suureneb.
  • Torujuhtmete etappide arvu suurenemine suurendab samaaegselt täidetavate käskude arvu.
  • Kiiremat ALU-d saab kavandada torujuhtmete kasutamisel.
  • Torujuhtmega protsessorid töötavad kõrgemate taktsagedustega kui RAM.
  • Torustik suurendab protsessori üldist jõudlust.

Torustiku puudused

  • Torujuhtme protsessori projekteerimine on keeruline.
  • Juhiste latentsus suureneb torujuhtmetega protsessorites.
  • Torujuhtme protsessori läbilaskevõimet on raske ennustada.
  • Mida pikem torujuhe, seda hullem on filiaali juhiste ohuprobleem.

Torujuhtmetest saavad kasu kõik juhised, mis järgivad täitmiseks sarnast toimingute jada. Protsessoreid, millel on keerulised juhised, kus iga käsk käitub teistest erinevalt, on raske edastada. Protsessoritel on mõistlikud seadmed torujuhtme 3 või 5 etapiga, kuna torujuhtme sügavuse suurenemisega suurenevad sellega seotud ohud. Nimetage mõned torujuhtmetega protsessorid nende torujuhtme etapiga?