Superscalar arhitectura - stadopedia

Procesorul, construit pe o arhitectură superscalare, are două (sau mai multe) ale transportorului pentru a executa comenzi. Aceasta vă permite să executați simultan 2 (sau mai multe) comenzi. Pentru a înțelege mai bine utilitatea arhitecturii procesorului superscalar, să ne uităm la exemplul anterior de pipelining, în care ne-am asumat pentru simplitate că comanda etapa (S4) durează numai pentru un ciclu mașină. Și ce se întâmplă dacă execuția comenzii E4 durează 2 cicluri de mașină? Apoi conducta va eșua, după cum se arată în figură.







Superscalar arhitectura - stadopedia

Procesorul nu va putea trece la faza de executare a E4 a comenzii K2 până când nu finalizează complet faza de execuție a comenzii K1. Ca rezultat, ciclul de execuție al comenzii K-2 va crește cu 1 ceas de mașină, i. E. în timp ce așteaptă eliberarea conductei în etapa E4. Pe măsură ce comenzile suplimentare ajung pe conducte, unii dintre pașii săi vor funcționa în regim de așteptare (în figură sunt evidențiate în gri).

Pentru a combate nefuncționarea echipamentelor, sunt utilizate mai multe transportoare. În procesorul Intel Pentium au fost utilizate 2 conducte. A devenit primul procesor de familie IA-32 construit pe o arhitectură superscalară. În procesorul Pentium, pentru prima dată au fost utilizate 3 conducte.







Continuăm să considerăm exemplul nostru de transportor cu șase trepte și să introducem în el un transportor (adică al doilea). Ca și înainte, vom presupune că faza de execuție a comenzii E4 durează două cicluri de mașină. Așa cum este arătat în figură, comanda numerotată impare merge la u-pipeline, iar comanda cu un număr par va merge la conducta v. Această abordare vă permite să eliminați timpii de nefuncționare în conductă.

Superscalar arhitectura - stadopedia

În MP cu o astfel de arhitectură, se utilizează executarea paralelă a comenzilor între mai multe conducte, iar decizia de executare paralelă a comenzilor este acceptată de echipamentul procesorului în stadiul de execuție. Utilizarea eficientă a unei astfel de arhitecturi necesită o optimizare specială a codului mașinii în compilator pentru a genera perechi de comenzi independente (atunci când rezultatul unei comenzi nu este un argument al celuilalt).

Superscalare MP poate emite pentru execuție în fiecare ciclu de un număr variabil de comenzi și funcționarea transportoarelor lor pot fi programate, fie printr-un compilator static, și prin optimizarea dinamică a hardware-ului. Mașini superscalara folosesc nivel de instrucțiuni paralelism prin trimiterea mai multor comenzi ale fluxului de instrucțiuni normală în mai multe unități funcționale.

Într-o mașină tipică superscalară, echipamentul poate distribui 1 până la 8 instrucțiuni într-un singur ciclu de ceas. De obicei, aceste comenzi trebuie să fie independente și să îndeplinească anumite restricții, de exemplu, astfel încât în ​​fiecare ciclu de ceas nu pot fi emise mai multe instrucțiuni de acces la memorie. Dacă orice comandă din fluxul de comandă depinde în mod logic sau nu îndeplinește criteriile de emitere, numai comenzile care preced acest lucru vor fi emise pentru execuție. Prin urmare, viteza de emitere a comenzilor în mașinile superscalare este o variabilă







Articole similare

Trimiteți-le prietenilor: