Articles

GeeksforGeeks

pentru a îmbunătăți performanța unui procesor avem două opțiuni:
1) îmbunătățirea hardware-ul prin introducerea circuite mai rapide.2) aranjați hardware-ul astfel încât să poată fi efectuate mai multe operații în același timp.

deoarece există o limită a vitezei hardware și costul circuitelor mai rapide este destul de mare, trebuie să adoptăm a 2-A opțiune.

conducte : Pipelining este un proces de aranjare a elementelor hardware ale procesorului, astfel încât performanța sa generală să crească. Executarea simultană a mai multor instrucțiuni are loc într-un procesor cu conducte.

să vedem un exemplu din viața reală care funcționează pe conceptul de funcționare prin conducte. Luați în considerare o instalație de ambalare a sticlelor de apă. Să existe 3 etape prin care ar trebui să treacă o sticlă, introducând sticla(I), umplând apă în sticlă(F) și sigilând sticla(sticlele). Să considerăm aceste etape ca etapa 1, Etapa 2 și, respectiv, Etapa 3. Lăsați fiecare etapă să dureze 1 minut pentru a-și finaliza funcționarea.
acum, într-o operație fără conducte, o sticlă este introdusă mai întâi în instalație, după 1 minut este mutată în etapa 2 Unde se umple apa. Acum, în etapa 1 nu se întâmplă nimic. În mod similar, atunci când sticla se deplasează în etapa 3, atât etapa 1, cât și Etapa 2 sunt inactive. Dar în funcționarea cu conducte, când sticla se află în etapa 2, o altă sticlă poate fi încărcată în etapa 1. În mod similar, atunci când sticla este în etapa 3, poate exista câte o sticlă în etapa 1 și Etapa 2. Deci, după fiecare minut, obținem o sticlă nouă la sfârșitul etapei 3. Prin urmare, timpul mediu necesar pentru fabricarea 1 flacon este :

fără pipelining = 9/3 minute = 3M

I F S | | | | | || | | I F S | | || | | | | | I F S (9 minutes)

cu pipelining = 5/3 minute = 1,67 m

I F S | || I F S || | I F S (5 minutes)

astfel, funcționarea pipelined crește eficiența unui sistem.

proiectarea unei conducte de bază

  • într-un procesor cu conducte, o conductă are două capete, capătul de intrare și capătul de ieșire. Între aceste capete, există mai multe etape/segmente, astfel încât ieșirea unei etape este conectată la intrarea etapei următoare și fiecare etapă efectuează o operație specifică.
  • registrele de interfață sunt utilizate pentru a menține ieșirea intermediară între două etape. Aceste registre de interfață se mai numesc zăvor sau tampon.
  • toate etapele din conductă împreună cu registrele de interfață sunt controlate de un ceas comun.

executarea într-un procesor cu conducte
secvența de execuție a instrucțiunilor într-un procesor cu conducte poate fi vizualizată folosind o diagramă spațiu-timp. De exemplu, luați în considerare un procesor care are 4 etape și lăsați să fie executate 2 instrucțiuni. Putem vizualiza secvența de execuție prin următoarele diagrame spațiu-timp:

execuție non-suprapusă:

Stage / Cycle 1 2 3 4 5 6 7 8
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 8 Cycle

Overlapped execution:

Stage / Cycle 1 2 3 4 5
S1 I1 I2
S2 I1 I2
S3 I1 I2
S4 I1 I2

Total time = 5 Ciclul

etapele conductei

procesorul RISC are o conductă de instrucțiuni în 5 etape pentru a executa toate instrucțiunile din setul de instrucțiuni RISC. Următoarele sunt cele 5 etape ale conductei RISC cu operațiunile lor respective:

  • Etapa 1 (preluarea instrucțiunilor)
    în această etapă CPU citește instrucțiuni de la adresa din memorie a cărei valoare este prezentă în contorul programului.
  • Etapa 2 (decodare instrucțiuni)
    în această etapă, instrucțiunea este decodat și fișierul registru este accesat pentru a obține valorile din registrele utilizate în instrucțiunea.
  • Etapa 3 (Instrucțiuni executa)
    în această etapă, operațiunile ALU sunt efectuate.
  • Etapa 4 (acces la memorie)
    în această etapă, operanzi de memorie sunt citite și scrise de la / la memoria care este prezent în instrucțiunea.
  • Etapa 5 (scrieți înapoi)
    în această etapă, valoarea calculată / preluată este scrisă înapoi în registrul prezent în instrucțiuni.

performanța unui procesor cu conducte
luați în considerare o conductă de segment ‘k’ cu timpul ciclului de ceas ca ‘Tp’. Să fie ‘ n ‘ sarcini care urmează să fie finalizate în procesorul pipeline. Acum, prima instrucțiune va lua cicluri ‘ k ‘pentru a ieși din conductă, dar celelalte instrucțiuni’ n – 1 ‘vor lua doar’ 1 ‘ciclu fiecare, adică un total de cicluri’ n – 1′. Deci, timpul necesar pentru a executa instrucțiunile ‘n’ într-un procesor cu conducte:

 ETpipeline = k + n – 1 cycles = (k + n – 1) Tp

în același caz, pentru un procesor fără conducte, timpul de execuție al instrucțiunilor ‘n’ va fi:

 ETnon-pipeline = n * k * Tp

deci, accelerarea (accelerațiile) procesorului cu conducte față de procesorul fără conducte, când sarcinile ‘n’ executat pe același procesor este:

 S = Performance of pipelined processor / Performance of Non-pipelined processor

deoarece performanța unui procesor este invers proporțională cu timpul de execuție, avem,

 S = ETnon-pipeline / ETpipeline => S = / S = / 

când numărul de sarcini ‘n’ sunt semnificativ mai mari decât k, adică n >> k

 S = n * k / n S = k

unde ‘k’ reprezintă numărul de etape din conductă.

De asemenea, Efficiency = Given speed up / max speed up = s / Smax
știm că, Smax = k

So, Efficiency = s / k

Throughput = Numărul de instrucțiuni / timpul Total pentru a finaliza instrucțiunile

So, Throughput = n / (k + n – 1) * TP

notă: valoarea ciclurilor pe instrucțiune (CPI) a unui procesor ideal cu conducte este de 1

a se vedea setul 2 pentru dependențe și pericol de date și setul 3 pentru tipurile de conducte și de blocare.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *