Eficiența transportorului depinde în mod direct de frecvența cu care este introdusă intrarea. Obținerea unei creșteri de n-ori în ritmul transportorului se poate face în două moduri:
împărțirea fiecărei etape a transportorului la cele mai mici, în timp ce crește frecvența ceasului;
includerea mai multor conducte care lucrează în paralel în procesor.
Din nefericire, câștigul obținut prin intermediul super-conductelor poate, în practică, să fie speculativ. Într-o conductă lungă, probabilitatea conflictelor crește. Mai scumpă este eroarea de predicție a tranziției. În cazul întreruperilor programelor, transportoarele se comportă într-o ordine consecventă, întreaga conductă este curățată și apoi umplută. Întreruperile frecvente și comutarea programelor reduc în mod semnificativ performanța structurilor superconductoare. Este interesant de notat faptul că Intel ® procesor Itanium ® banda transportoare 10, treptată, în timp ce etapa Intel ® Itanium ® 2-8-E .. \ Slide \ Itan.ppt.
Procesoare superscalare
După introducerea clasei de procesoare vectoriale, procesoarele obișnuite au început să fie numite scalare. Următorul pas în dezvoltarea procesoarelor scalare a dus la apariția unor nume superscalare.
Superscalar1 se referă la procesoare care execută simultan mai multe comenzi scalare. (Zilker) Acest lucru se realizează prin includerea mai multor blocuri de funcții independente în procesor, fiecare fiind responsabilă de clasa sa de operațiuni și poate fi prezentă în procesor în mai multe situații. Superscalar implică funcționarea paralelă a numărului maxim de unități de execuție, ceea ce este posibil numai dacă mai multe comenzi scalare sunt executate simultan. Acest lucru se realizează prin faptul că procesorul "scanează" comenzile care se apropie de execuție și alege din ele acele secvențe care pot fi executate în paralel. Superscalar este bine combinat cu conducte și este de dorit să existe mai multe conducte în procesorul superscalar, de exemplu două sau trei. Sistemele superscalare și superconductoare nu se contrazic între ele și în majoritatea procesoarelor moderne, ambele fiind implementate. Trebuie remarcat faptul că, spre deosebire de structura unui singur transportor, în structuri cu mai multe benzi transportoare în fiecare ciclu este necesar pentru a proba mai mult de o echipă, iar acest lucru este foarte similar cu structura VLIW. Procesoarele superscalare implementează paralelismul la nivel de comandă.
Tehnologia Hyper-Threading
Tehnologia Hyper-Threading (HTT) a fost creată de Intel Corporation pentru a îmbunătăți performanța și eficiența sistemelor de servere. Această tehnologie este ceva între procesarea multi-threaded implementată în sistemele multiprocesor și paralelismul de instruire implementat în sistemele uniprocesor. În general vorbind, HTT a devenit una dintre formele tehnologiei sincrone, multi-filetate, în care multiple fire create de aplicațiile software pot rula simultan pe același procesor. Prin implementat în principiu paralelism Hyper-Threading poate procesa tehnologii instrucțiuni în paralel (nu secvențial) operație, adică pentru tratamentul tuturor instrucțiunilor sunt împărțite în două fluxuri paralele. Acest lucru vă permite să procesați simultan două aplicații diferite sau două fire diferite ale aceleiași aplicații și astfel creșteți performanța procesorului. Într-un mod constructiv, procesorul cu suport pentru tehnologia Hyper-Threading constă din două procesoare logice, fiecare având propriile registre și controler de întrerupere. Acest lucru înseamnă că două sarcini de execuție simultan funcționează cu propriile lor registre independente și întrerupe, dar utilizează aceleași resurse procesoare pentru a-și îndeplini sarcinile. După activare, fiecare dintre procesoarele logice poate să-și îndeplinească propria sarcină independent, independent de celălalt procesor, procesul se întrerupe sau se blochează. Astfel, dintr-o configurație reală dual-procesor, noua tehnologie diferă doar prin faptul că ambele procesoare logice folosesc aceleași resurse de execuție, aceeași cache partajată și aceeași magistrală de sistem. Ideea tehnologiei Hyper-Threading este strâns legată de microarhitectura procesorului NetBurst Pentium 4 și este într-un sens logică.
Luați în considerare un procesor ipotetic, în care există patru unități de execuție, două unități logice aritmetice pentru lucrul cu numere întregi (ALU), un bloc pentru a fi utilizat cu un punct plutitor (FPU) și o unitate pentru scrierea și citirea datelor din memorie (Store / Load, S / L). Să presupunem că, în plus, fiecare operație este efectuată într-un singur ciclu de ceas al procesorului. Mai mult, să presupunem că se execută un program format din trei instrucțiuni: primele două sunt operații aritmetice cu întregi, iar ultima este salvarea rezultatului. În acest caz, întregul program va fi executat în două cicluri ale procesorului: în primul ciclu să opereze cu două unități de procesor ALU (pătrate roșii din figura 16.), Al doilea - înregistrarea unității și datele citite din S memorie / L. În aplicațiile moderne, de regulă nu se execută nici una, ci mai multe sarcini sau mai multe fire ale aceleiași sarcini în orice moment. Figura 17 arată modul în care procesorul ipotetic se va comporta atunci când sunt executate două fire de sarcini diferite. Pătrările roșii corespund cu utilizarea unităților de execuție ale procesorului cu un flux, iar pătratele albastre cu celelalte. Dacă ambele fire au fost executate în mod izolat, atunci pentru primul și al doilea fir ar fi necesare cinci cicluri de procesoare (vezi figura 17). Cu execuția simultană a ambelor fire, procesorul va comuta în mod constant între ambele fire, prin urmare, numai unul dintre instrucțiunile firelor este executat pe fiecare ciclu de ceas. Pentru a executa ambele fire, veți avea nevoie și de zece cicluri de procesor (Fig.18).
și
din figura că, în fiecare ciclu nu utilizează toate unitățile de execuție, și există posibilitatea de a combina diferite fluxuri de execuție comandă în fiecare ciclu, în mod natural în cazul în care fluxurile nu folosesc aceleași blocuri așa cum se arată în fig.17Exemplul dat este idealizat. În condiții reale, o astfel de aliniere ideală nu este întotdeauna obținută, există conflicte între fire care încearcă să utilizeze aceeași resursă în același timp. Este destul de evident că în acest caz unul dintre fire este forțat să aștepte eliberarea resursei. Din exemplul unei astfel de situații, prezentat în figura 20, este evident că sunt necesare șapte cicluri, și nu cinci, ca ideal, dar nu zece, ca în procesarea secvențială.