SISD
Această intrare sau secțiune despre componentele computerului nu menționează sursele necesare sau sunt insuficiente . |
Fluxul de instrucțiuni unice, fluxul de date unice ( SISD ) este o arhitectură în care o singură unitate de procesare execută un singur flux de date [1] . Acesta corespunde arhitecturii clasice von Neumann folosită în aproape toate computerele personale chiar dacă acum este învechită.
Mașină SISD
În arhitectura SISD este posibil să se execute o singură instrucțiune la un moment dat pe o singură dată, executând instrucțiunile una după alta, așa cum este cerut de paradigma imperativă.
Cicluri de educație
- Faza de preluare = preia instrucțiunea care trebuie executată din memoria centrală utilizând adresa conținută în PC (Program Counter), crește computerul astfel încât să poată conține adresa următoarei instrucțiuni de executat,
- Faza de decodare = CU (unitatea de control) interpretează instrucțiunea și determină operațiunile care trebuie efectuate.
- Execute phase = ALU (unitate aritmetică logică) execută operațiile și CU monitorizează progresul execuției operațiunilor.
Limitele arhitecturii SISD
O limitare importantă a arhitecturii SISD este conexiunea unică între procesor și memorie. Deoarece accesul la memorie este limitat la o singură operație la un moment dat, apare problema clasică definită ca blocaj , generând o încetinire generalizată.
Solutii posibile
Unele soluții identificate sunt:
- Extinderea BUS-ului de date;
- Introducerea cache - ului ;
- Paralelism de timp pentru instrucțiuni, asigurându-vă că mașina este capabilă să proceseze cel mai mare număr posibil de instrucțiuni pe secundă.
Mașină SISD cu pre-preluare
Suprapunerea „temporală” a preluării și executarea fazei a două instrucțiuni succesive.
Calculatorul are două unități hardware separate pentru a efectua faza de preluare și executare.
Această tehnică nu ia în considerare modificările în secvența de execuție.
Exemplu: când există instrucțiuni de salt
Modificările secvenței nu vă permit să profitați de câștigurile de timp datorate pre-preluării, dar nici nu încetinesc execuția în comparație cu modelul de pre-preluare.
Conducte pe SISD
Pipelining implică atât executarea unei instrucțiuni împărțite în mai multe faze (numite și etape), cât și suprapunerea temporală a etapelor mai multor instrucțiuni, în care fiecare etapă este gestionată de o unitate hardware dedicată.
Conducerea pe SISD presupune funcționarea paralelă a mai multor instrucțiuni situate în diferite etape.
Pipelining nu execută instrucțiuni mai repede, dar crește rata de finalizare a instrucțiunilor, adică crește numărul de instrucțiuni executate pe secundă ( Throughtput ).
Throughtput = Num_operations / cycle
Conductele au de obicei 5 etape de bază. O conductă în etapă X procesează N instrucțiuni pe o perioadă de timp egală cu ciclurile de ceas X + (N-1), în timp ce un procesor cu conducte ia X * N cicluri de ceas.
Câștigul maxim (randament) este dat de indicele Speed_up definit astfel: Speed_up = [X+(N-1)]/(X*N)
Probleme de conducte
În prezența tarabelor, câștigul unei conducte este redus atât datorită dependenței dintre instrucțiuni, cât și datorită prezenței instrucțiunilor de salt, deoarece următoarea instrucțiune care trebuie executată nu este cunoscută a priori.
În arhitectura RISC , conducta permite atingerea unor viteze mari de calcul.
În arhitectura CISC , avantajele conductelor nu sunt întotdeauna exploatate datorită prezenței instrucțiunilor complexe care utilizează toate fazele de conducte, încetinind cele simple.
Notă
- ^ Hennessy, John L. și Asanović, Krste., Arhitectura computerelor: o abordare cantitativă , ediția a 5-a, Morgan Kaufmann, 2012, ISBN 012383872X ,OCLC 755102367 .