Cunoștințe, prelegere, arhitectura microprocesoarelor intel și principalii factori care o afectează

Acum vom discuta superscalitatea. Am vorbit despre dispozitivul de control al comenzii și despre dispozitivele logice aritmetice. Superscalitatea este un procesor. care are mai multe dispozitive de executare, adică simultan, poate efectua mai multe operații aritmetice și logice. Am discutat transportorul, în cazul în care o instrucțiune de procesare, și a fost o parte a conductei, care a efectuat operațiunea și numit „unitate de executare“, în cazul în care activitatea principală a fost făcută în mod direct, pentru care acest ghid a fost scris. Superscalar înseamnă că o conductă are mai multe dispozitive de executare și pot fi executate simultan mai multe comenzi diferite. Efectuarea dispozitivului specificate, acestea nu pot executa nici o instrucțiune, fiecare dintre ele are propria poziție (una efectuează unele tipuri de echipe, celălalt - celălalt, și așa mai departe). Asta înseamnă că avem posibilitatea de a efectua simultan mai multe instrucțiuni cu privire la aceste dispozitive de executare. De exemplu, până la 6 instrucțiuni pe microprocesoarele familiei IA32 ale celor mai recente modele.







Primul procesor superscalar al arhitecturii Intel a fost Pentium, și a implementat dispozitivul executabil U și dispozitivul executabil V. Unul face cu pricepere toate operațiile. iar al doilea - cel mai nemulțumit, de exemplu, creșterea.

Varietatea instrucțiunilor care intră în banda transportoare permite procesorului să încarce mai mult transportorul. Dacă aveți toate instrucțiunile de același tip, atunci spectrul tuturor acestor dispozitive de execuție nu va fi utilizat și acestea vor fi inactive.

Model de procesor simplificat

Cunoștințe, prelegere, arhitectura microprocesoarelor intel și principalii factori care o afectează

Acum luăm și modificăm un model ușor simplificat al microprocesorului nostru pentru a afișa schematic pe el acele proprietăți pe care tocmai le-am discutat. Preîncărcarea este activă pe magistrala de sistem. care din datele de podgruzhaet de memorie din sistemul cache, bazat pe logica predictorului de fier. Afișăm cache-ul sistemului. Microprocesorul va opera conducta și predictor, și anume, unitatea de control va lua nu numai instrucțiunile care este în prezent, vor efectua la fel de bine ca și cele pe care le recomandă luarea de predictor (pentru a încărca banda transportoare mai strâns). Înregistrează un număr crescut, bine, superscalar. pe care le putem afișa ca având mai multe dispozitive computaționale și logice.

Utilizarea instrucțiunilor vectoriale, vectorizare

O instrucțiune vectorală tipică efectuează o operație elementară pe două secvențe vectoriale în registrele de memorie sau vectori cu lungime fixă.

Vectorizate - procesul de conversie a programului de calculator al reprezentărilor scalare în care se efectuează o operație pe o pereche de operanzi în reprezentare vectorială, în care o operație este realizată pe o pereche de operanzi vectoriale.







Pentium III Noua tehnologie SSE (Streaming SIMD Extensions), care se adaugă la registrele MP 8128-bit (XMM0-XMM7) și 70 instrucțiuni noi, inclusiv operațiuni în virgulă mobilă. SSE2, SSE3, SSEE3, SSE4, SSE4 .2, AVX - extinderea ulterioară a acestei idei.

Pipelining, superscalaritatea sunt câteva variante de paralelizare. Ele sunt oarecum diferite în specificul lor, dar, în general, ele conduc la faptul că lucrăm simultan cu mai multe instrucțiuni.

A treia variantă a paralelizării este paralelizarea datelor, vectorizarea. O instrucțiune vectorală tipică efectuează o operație elementară pe două secvențe vectoriale în registrele de memorie sau vectori cu lungime fixă. Acesta poate fi interpretat în două moduri, pe de o parte este suportul la nivelul microprocesorului registrelor vectoriale și operațiuni cu ei, pe de altă parte, acest tip de optimizare. Acest lucru permite ca codul scalar obișnuit să fie transformat în cod vectorial. Ie spre deosebire de caracteristicile discutate anterior ale microprocesorului, această tehnologie nu va funcționa în mod implicit, dacă nu se iau măsuri de către dezvoltatorii aplicației lansate. Microprocesorul nu știe cum să vectorizeze codul în acest stadiu.

Vectorizare - acest tip de tehnologie, puteți codul de scalare (de exemplu, cod care funcționează cu unele elemente scalare, de exemplu, elementele de matrice) transforma într-un cod de vector care va funcționa mai elementele de matrice și secțiuni de matrice, se va face operațiile pe un element al matricei a, respectiv, asupra vectorului elementelor. Puteți face vectorizare cu oricare dintre mâini sau puteți atribui această lucrare compilatorului și convertește programul dvs. scalar într-o vizualizare vectorală. În această prelegere, listați factorii care afectează performanța. Vreau doar să subliniez faptul că utilizarea instrucțiunilor vectoriale în calcule poate accelera serios activitatea microprocesorului.

Procesorul suportă diferite seturi de instrucțiuni vectoriale: SSE2. SSE3 și așa mai departe. Discutând despre caracterul complet al unui set de instrucțiuni care le-am ridicat deja problema că aplicația va rula optim pe arhitectura, în cazul în care creați o aplicație, vă va crea în mod specific pentru a lucra la această arhitectură. Acest lucru este valabil și pentru instrucțiunile vectoriale.

Este, de asemenea, posibilă executarea unei execuții în afara ordinii.

Execuția în afara ordinelor este una dintre proprietățile definitorii ale arhitecturii x86. Implementarea acestui mecanism complică procesorul. Ca exemplu opus Intel, este posibil să menționăm arhitectura lui Itanium și Atom. Pe aceste arhitecturi, instrucțiunile sunt executate în ordinea specificată de aplicație.

Ie În microarhitectura familiei IA32, este implementată execuția cu executarea în afara ordinii. Asta este, programatorii au scris câteva instrucțiuni, le-au înaintat procesorului. și el însuși a ales în ce ordine să le îndeplinească. În acest caz, o parte importantă a instrucțiunilor de programare a lucrărilor este efectuată direct de către microprocesor.

Aceasta nu este singura versiune posibilă a microprocesorului. Există un microprocesor Intel Atom. Este proiectat pentru diferite dispozitive de tabletare care efectuează în mod consecvent microinstrucțiunile primite sau, de exemplu, procesorul Itanium. în care procesorul primește instrucțiuni deja grupate împreună. Asta este, de lucru pentru a determina ce instrucțiuni sunt independente și în ce ordine acestea sunt hrănite la procesor este transferat la compilator. În acest caz, lucrarea privind determinarea ordinii optime a instrucțiunilor se execută o singură dată - la momentul compilării. Acest lucru ar trebui să fie benefic în ceea ce privește consumul de energie.

Dacă cineva vrea să afle mai multe despre acest lucru, mă refer la instrucțiunile, la documentația de la Intel. Puteți descărca documentația și apoi puteți să o citiți înainte de a merge la culcare. Documentația conține multe scheme care explică în detaliu funcționarea microprocesorului și interacțiunea dintre diferitele componente ale procesorului. Un exemplu care arată specificațiile dispozitivelor executabile. Adică există un anumit distribuitor în interiorul conductei, care distribuie instrucțiunile primite către un dispozitiv de executare potrivit.

Cunoștințe, prelegere, arhitectura microprocesoarelor intel și principalii factori care o afectează







Articole similare

Trimiteți-le prietenilor: