Ce este pipelining 1
arhitectura de calculator, dezvoltatorii au recurs mult timp pentru a proiecta metode care sunt cunoscute în mod colectiv drept „combinația de operațiuni“, în care echipamentul de calculator în orice moment, în timp ce efectuează mai mult de o operație de bază. Această metodă generală implică două concepte: paralelism și pipelining. Cu toate că au multe lucruri în comun și sunt adesea dificil să se facă distincția în practică, acești termeni reprezintă două abordări foarte diferite. În timpul funcționării Alinierea paralelismul se realizează prin reproducerea copii multiple ale structurii hardware. Performanță înaltă este realizată prin funcționarea simultană a tuturor elementelor instituțiilor implicate în soluționarea diferitelor părți ale sarcinii.
Pipeline (sau pipeline), se bazează în general pe separarea funcțiilor să fie executate în părți mai mici numite etape, și alocarea pentru fiecare dintre ele o unitate hardware separată. Deci, orice comenzi de mașini de prelucrare poate fi împărțită în mai multe etape (mai multe etape) prin transferarea datelor de la o etapă la alta. În această prelucrare de conducte pot fi utilizate pentru a alinia etapele diferite echipe. Performanța este în creștere, datorită faptului că mai multe comenzi sunt efectuate în diferite etape ale conductei. Pipelining de acest tip este utilizat pe scară largă în toate procesoarele moderne, de înaltă performanță.
organiza cu ușurință linia de asamblare și evaluarea performanței sale
Efectuarea de comenzi tipice pot fi împărțite în următoarele etape:
decodare comanda / operandului preia din registru - ID;
acces de memorie - MEM;
stocarea rezultatului - WB.
Fig. 5.1 prezintă o diagramă simplă a procesorului efectuând etapele de execuție de instrucțiuni fără a combina cele de mai sus. Pipeline acestui sistem, putem împărți pur și simplu executarea de comenzi pe treptele enumerate mai sus, sunt retrase din circuitul agricol pentru fiecare etapă un ciclu de ceas, și începeți fiecare măsură de performanță a noii echipe. Desigur, pentru a stoca rezultatele intermediare ale fiecărei etape trebuie să folosească stația de registru. Fig. 5.2 prezintă circuitele de procesare ca registru cu stația intermediară care furnizează semnale de date și de control de la un transportor la etapa următoare. Deși timpul total de rulare a unei echipe într-o conductă va fi de cinci cicluri de ceas, în fiecare ciclu al echipamentului se va efectua într-un mod combinat, cinci echipe diferite.
Transportorul de lucru poate fi reprezentat în mod convențional ca circuitele de procesor sunt deplasate în timp (fig. 5.3). Această cifră reflectă în mod clar în timp alinierea diferitelor etape ale echipelor de implementare. Cu toate acestea, cel mai adesea pentru a reprezenta transportorul cu ajutorul diagramelor de sincronizare (fig. 5.4), care sunt de obicei portretizat instrucțiuni executabile, numărul de cicluri și faze de execuție instruire.
Înlănțuire crește debitul procesorului (numărul de echipe, culminând într-o unitate de timp), dar aceasta nu reduce timpul rulării comenzii separat. De fapt, este chiar crește ușor performanța fiecărei echipe din cauza overhead asociate cu administrarea ca stații de registru. Cu toate acestea, creșterea lățimii de bandă înseamnă că programul va rula mai repede decât un sistem de nekonveyernoy simplu.
Faptul că executarea fiecărei instrucțiuni în conducta nu este redusă, impune anumite restricții cu privire la lungimea practică a transportorului. Alte limitări asociate cu transportor întârziată, există, de asemenea, limitări generate de dezechilibrele în fiecare dintre etapele sale de întârziere și din cauza aeriene de pipelining. Frecvența de ceas nu poate fi mai mare, și, prin urmare, un ciclu de ceas nu poate fi mai mică decât timpul necesar pentru cel mai lent etapă de conducte. organizarea Transportor aerian apar din cauza semnalului întârzierilor în registrele de conducte (zăvoare) și din cauza semnalelor de sincronizare distorsiuni. Transportor înregistrează pentru a măsura durata timpului de instalare a adăugat și întârzierea de propagare a semnalului. În cazul de limitare a lungimii cursei poate fi redusă la valoarea semnalului de sincronizare deasupra capului și oblic, dar nu rămâne în timp tact pentru a efectua o muncă utilă pe informațiile de transformare.
Ca un exemplu, ia în considerare mașină nekonveyernuyu cu cinci etape de operațiuni care au durata de 50, 50, 60, 50 și 50 ns, respectiv (fig. 5.5). Să deasupra capului pentru organizarea prelucrării conducte costurile se ridică la 5 ns. Apoi, durata medie a comenzii în mașină nekonveyernoy va fi egală cu 260 ns. Dacă utilizați organizația înlănțuire, durata măsurii este egală cu durata cea mai lentă etapă a costurilor de procesare și de regie, adică 65 ns. De data aceasta corespunde cu durata medie a comenzii în conductă. Astfel, accelerația obținută prin înlănțuire va fi egal cu:
Durata medie a comenzii în timpul rulării rezhimeSrednee modul echipa nekonveyernom nekonveyernom
Înlănțuire este eficientă numai atunci când transportorul este aproape de încărcare completă, și viteza de livrare a unor noi comenzi și operanzii corespunde capacității maxime a transportorului. Dacă există o întârziere, va rula în operațiuni paralele și mai puțin productivitatea generală va scădea. Aceste întârzieri pot apărea ca urmare a unor conflicte. Următoarele secțiuni se vor discuta despre diferitele tipuri de conflicte care apar atunci când execută comenzi în curs de pregătire, și soluțiile lor.
![Ce este înlănțuire 1 (transportor) Ce este pipelining 1](https://webp.images-on-off.com/28/13/434x459_qsnb38qd5jqapgnqjhb2.webp)
Fig. 5.3. Noțiunea de transportorului
Fig. 5.4. Funcționare Grafic simplu transportor
![Ce este înlănțuire 1 (transportor) Ce este pipelining 1](https://webp.images-on-off.com/28/13/434x285_azrt9ede2fy873aak52u.webp)
Fig. 5.5. efect înlănțuire când cele 3 echipe - o accelerare de patru ori
Atunci când apar situații de punere în aplicare pipelining care împiedică executarea instrucțiunii următoare din fluxul de instrucțiuni într-un accident vascular cerebral dedicat ei. O astfel de situație se numește un conflict. Conflictele reduce performanțele reale pe banda rulanta, care ar putea fi realizat în cazul ideal. Există trei categorii de conflicte:
conflictele structurale care apar din cauza resurselor conflicte atunci când hardware-ul nu poate suporta toate combinațiile posibile de comenzi atunci când efectuează simultan o cerere de înregistrare.
Conflicte cu privire la datele care apar într-un caz în care executarea unei comenzi depinde de rezultatul comenzii anterioare.
conflictele de management care apar atunci când tranzițiile înlănțuire comenzi și alte comenzi care schimba valoarea contorului de program.
Conflictele din conducta care duce la necesitatea de a suspenda instrucțiuni de execuție (conducta stand). De obicei, în cele mai simple transportoare suspendate în cazul în care orice comandă, toate comenzile ulterioare sunt, de asemenea, ei suspendate. Echipele precedente suspendate pot continua să ruleze, dar la momentul suspendării nu este selectată, nici o nouă comandă.