e-gradiva     Sistemi Motorola Omrežja      
  logotip  
SERŠ Maribor    

Cevovod

Beseda cevovod ima več pomenov. Lahko pomeni napravo iz več med seboj povezanih cevi in drugih delov za prevajanje tekočin. V računalništvu pa beseda cevovod pomeni zaporedje funkcionalnih enot v računalniku ali procesorju, ki izvajajo opravilo (obdelavo podatkov) v več korakih, podobno tekočemu traku v tovarnah.

Klasična gradnja procesne enote je preprosta in se pri cenenih računalnikih včasih uporablja še danes. Gledano s stališča zmogljivosti pa je njena pomanjkljivost v tem, da z njo ni mogoče doseči majhne vrednosti razmerja števila urinih period na ukaz. Zaradi strogo zaporednega izvrševanja korakov, ki sestavljajo ukaz, je skoraj nemogoče doseči razmerje manjše od 3 ali 4. Pri računalnikih z zapletenimi ukazi je razmerje pogosto še večje. Če se želi povečati to razmerje, je to mogoče samo z drugačnim načinom gradnje CPE. Za povečanje hitrosti CPE imamo na voljo naslednja dva načina:

Prvi način je bistveno enostavnejši, vendar le pod pogojem, da hitrejši elementi obstajajo, in da pri njihovi uporabi ni drugih problemov. Ravno v tem leči težava. Zamenjava ene tehnologije integriranih vezij s hitrejšo, prinaša s seboj veliko večjo porabo energije in s tem dodatne potrebe po hlajenju – posledica so bistveno višji stroški izdelave in obratovanja. Tudi povečanje hitrosti ni posebno veliko.

Če pa ostanemo pri isti tehnologiji vezij, lahko ugotovimo naslednje:

Od tod sledi preprosta ugotovitev: če želimo povečati hitrost CPE, moramo uporabiti večje število logičnih elementov. Uporaba hitrejših elementov ne daje veliko možnosti za povečevanje hitrosti. Tu se srečamo z naslednjim vprašanjem: kako uporabiti večje število elementov, da se bo to poznalo pri hitrosti CPE. Povsem načelno je odgovor očiten: večje število elementov prispeva k večji hitrosti tako, da CPE paralelno ali istočasno izvaja največ funkcij. Kako to doseči pa je bistveno bolj zapleteno in zahteva podrobno razumevanje dogajanja v CPE. Razmeroma preprosto in pogosto uporabljamo pot prestavlja tako imenovani cevovod (pipeline).

Resnični cevovodi nikoli niso idealni uravnoteženi in tudi samo delovanje cevovoda (prehodi iz ene stopnje v drugo) porabi nekaj časa. Če pustimo vse ostalo enako kot pri ne-cevovodnih CPE, povečanje zmogljivosti ne bo n-kratno, čeprav je lahko blizu te vrednosti. Upoštevati pa moramo, da je cevovod na CPE zgrajena drugače, in da se zato pogosto spremenijo tudi druge lastnosti.

slika slika slika
obicajna_cpe (klikni na sliko) pararalelna_cpe (klikni na sliko) cevovodna_cpe (klikni na sliko)

SPLOŠNO O CEVOVODU

Manjše število urinih period na ukaz (CPI). Ker pride iz cevovoda n-krat več izvršenih ukazov, je v idealnem primeru povprečno število urinih period na ukaz CPI n-krat manjše kot pri ne-cevovodnih CPE. Trajanje izvrševanja posameznega ukaza- temu času pravimo latenca in je enak N × tCPE - se pri enaki tCPE ne zmanjša, vendar to za uporabnika ni pomembno. v danem času je izvršenih več ukazov in temu ustrezno hitreje je izveden program.

Krajša urina perioda tCPE. Ta možnost je danes bolj teoretična kot praktična. Njeno ozadje je v naslednjem razmišljanju; če uspemo izvrševanje ukazov razdeliti na zelo enostavne pod operacije, je te v principu mogoče opraviti v krajšem času. Pri resničnih CPE je to redko, ker je število možnosti za delitev izvrševanja ukazov na pod operacije običajno majhno celo v primerih, ko je razdelitev na enostavnejše pod operacije možna, se ji razvijalci včasih odpovejo, ker zahteva da ima cevovod večje število stopenj. povečevanje števila stopenj N ima namreč za posledico povečanje izgube zaradi tako imenovanih cevovodnih nevarnosti.

Za računalnike, ki uporabljajo veliko število stopenj z enostavnimi pod operacijami in krajšo urino periodo tCPE, se uporablja ime super cevovodni računalniki. Zmanjševanje urine periode tCPE je namreč povezano s težavami in je uspešno le, če se pri razvoju računalnika od vsega začetka predvideva dolg cevovod. Pri računalnikih, ki so cevovodno realizacijo doživeli kot nadaljevanje razvoja prvotno ne-cevovodne CPE, so stvari pogosto drugačne. V praksi niso redki primeri, ko pretvorba ne-cevovodne CPE v cevovodno urino periodo celo tCPE celo poveča. Za to so krivi trije vzroki. Prvi je zahteva, da se vse pod operacije izvršijo v enakem času. Korak izvrševanja, ki pri ne-cevovodni CPE traja npr. 2 urini periodi, se mora pri cevovodni CPE opraviti v 1 urini periodi. To se pogosto lahko doseže z dodatno logiko ali z uporabo dveh stopenj; obstajajo pa tudi primeri, ko je potrebno še povečanje tCPE.

Drugi vzrok je v paralelnosti delovanja stopenj, ki sestavljajo cevovod. Rezultat pod operacije, ki opravi neka stopnja, je ob koncu urine periode treba shraniti v vmesni register. Če tega ne naredimo, naslednja stopnja cevovoda rezultata nebo mogla uporabiti; v naslednji urini periodi sebo rezultata namreč spremenil med izvrševanjem naslednjega ukaza. Čas za shranjevanje rezultata v register se v vsaki stopnji prišteva k času za izvrševanje pod operacije in ima lahko za posledico povečanje tCPE.

Tretji vzrok je v večjem številu logičnih elementov, ki jih zahteva cevovodna CPE. Ker jih je več, zasedejo več prostora in so med seboj zato fizičnobolj oddaljeni. To ima za posledico, da trenutek, ob kateri se pojavi aktivna fronta ure, ni popolnoma enak za vse flip-flope in registre- zaradi časa za potovanje signala in različno dolgih poti urinega signala do flip-flopov in registrov pride do časovnih zamikov. Ti zamiki med aktivnimi prehodi ure so znani pod imenom clock skew. Njihova posledica je, da preklopi niso več popolnoma istočasni. To pomeni, da se podaljša tudi čas, ob katerem so po preklopu vsi signali stabilni. Ta problem je prisoten tudi pri ne-cevovodni CPE, vendar je pri cevovodni zaradi večjega števila elementov izrazitejši in lahko povzroči, da je treba povečati tCPE .

Tudi če zanemarimo spreminjanje urine periode tCPE,bi bralec lahko prišel do zaključka, da narediti zelo hitro CPE sploh ni posebno težko. Vse kar potrebujemo je dovolj veliko število stopenj:cevovod z N-stopnjami bo imel N-krat večjo hitrost. Na žalost so stvari nekoliko drugačne. Med delovanjem cevovoda namreč prihaja do cevovodnih nevarnosti, zaradi katerih se mora cevovod ustaviti in počakati, da nevarnost mine. Razlikujemo tri vrste cevovodnih nevarnosti:

Strukturne nevarnosti
Do teh nevarnosti pride, kadar več stopenj cevovoda v neki urini periodi potrebuje isto enoto. Pod enoto tu mislim registre, ALE in pomnilnik. Če imamo samo eno enoto, mora ena od stopenj počakati.
Podatkovne nevarnosti
Te nevarnosti bi bilo bolj pravilno imenovati operandne nevarnosti. Do njih pride, kadar ukaz potrebuje kot vhodni operand rezultat prejšnjega, še ne dokončanega ukaza.
Kontrolne nevarnosti
Do teh nevarnosti pride v skokih, klicih in drugih kontrolnih ukazih, ki spreminjajo vsebino programskega števca PC. Če se npr. PC spremeni šele v tretji stopnji cevovoda, ni mogoče vedeti, katere ukaze naj cevovod izvršuje v prvih dveh stopnjah.

Zaradi cevovodnih nevarnosti se cevovod ustavlja in deluje počasneje. S povečanjem števila stopenj cevovoda N se pogostost nevarnosti povečuje in njegova učinkovitost pada. Kot bomo videli v nadaljevanju, obstajajo načini, s katerimi se odpravi velik del posledic cevovodnih nevarnosti. Toda ti načini sobolj uspešni, če število stopenj cevovoda N ni preveliko.

Cevovod je pravzaprav način za izkoriščanje paralelizma v zaporedno si sledečih ukazih. Posamezne pod operacije na katere se razbijejo ukazi, so v večini primerov med seboj neodvisne in se lahko opravljajo istočasno. Obstajajo pa tudi primeri, ko so ukazi med seboj odvisni: takrat prihaja do cevovodnih nevarnosti.

Bolj splošno je cevovod poseben primer tako imenovanega eno dimenzionalnega sistoličnega polja. Poleg eno dimenzionalnih sistoličnih polj poznamo tudi več vrst več dimenzionalnih, ki se včasih uporabljajo tudi v CPE. Velika prednost cevovoda v primerjavi z drugimi načini za paralelno izvrševanje ukazov je v tem, da ga je mogoče narediti na način, ki je za programerja neviden. Arhitektura računalnika ostane enaka in zato tudi programiranje. To je posebno pomembno pri serijah računalnikov z isto arhitekturo, ki se proizvajajo preko daljših časovnih obdobij. Če se je v tem času tehnologija močno spremenila, lahko na novejših računalnikih tečejo vsi programi starejših. Za druge vrste paralelnega izvrševanja ukazov to pogosto ne velja.

CEVOVODNA PODATKOVNA ENOTA

Težavnost gradnje cevovodne CPE je močno odvisna od števila in vrste ukazov, ki jih ima računalnik. Eno od najpomembnejših spoznanj, ki je prišlo z pojavom RISC računalnikov je ravno v pomenu preprostih ukazov za cevovodno realizacijo CPE. Pri računalnikih z velikim številom ukaznih formatov in načinov naslavljanja je cevovodna realizacija veliko bolj zapletena.

SERŠ Maribor, Strokovna gimnazija, leto: 2002, avtor: Rok Prejac