240 likes | 412 Views
Curs X. Tendinte actuale in sistemele cu microprocesoare. Procesorele Pentium. Pentium – lansat in 22 martie 1993, face parte din generatia a 5 de microprocesoare, contine 3,1 miliaoane de tranzistoare, aproximativ de 3 ori mai mult decat predentul 486
E N D
Curs X Tendinte actuale in sistemele cu microprocesoare
Procesorele Pentium • Pentium – lansat in 22 martie 1993, face parte din generatia a 5 de microprocesoare, contine 3,1 miliaoane de tranzistoare, aproximativ de 3 ori mai mult decat predentul 486 • Tehnologie pe 0.8 microni, frecventa de 60 si 66MHz, • L1 cache intern 8kocteti pentru date si 8kocteti pentru program • Facilitatile MMX au fost adaugate in 1997 • Procesor superscalar – compatibil cu cu seria x86, ofera performante superioare in comparatie cu precedentele procesoare x86, dar modeste in comparatie cu procesoarele actuale si chiar cu procesoarele RISC din perioada respectiva. (30% din tranzistoare au fost utilizate pentru al face compatibil cu seriax 86) • Datorita performantelor modeste (calcule in virgula mobila) nu s-a utilizat in computerele stintifice si statiile de lucru • Pentium III generatia a 6 de microprocesoare • Pentium 4 – generatia a 7 de microprocesoare http://arstechnica.com/articles/paedia/cpu/pentium-1.ars/4
Arhitectura interna Arhitectura de tip pipeline cu 5 faze O unitate de procesare intregi cu doua canale (U si V) Numai unitatea U este complet. Cele doua canale nu sunt total independente, existand numeroare restrictii Unitatea de virgula mobila - este simpla oferind performante reduse in comparatie cu procesoarele RISC existente la vremea respectiva Functionarea in paralel a unitatii de virgula mobila si a celei de intregi este supusa unor numeroase restrictii.
Fazele “Pipe –line’ • Extragerea instructiunilor • Decodare faza 1 • Decodare faza 2 • Executie • Stocare rezultate Fata de procesoarele RISC si DSP din perioada respectiva necesita doua stagii de decodificare datorita instructiunilor complexe.
Generatia a 6 de procesoare • Performante ridicate, sistemele cu procesoare din generatia a 6 devin competitive cu sistemele cu procesoare RISC • Procesoare din generatia a 6: - Pentium Pro, 0.6/0.35microni, 5,5milioane tranzistori, 150-200MHz, 8kocteti date si 8kocteti instructiuni - L1 cache, 256/512kocteti L2 cache,1995. - Pentium II: 0,35 microni, 7,5 milioane tranzistori, 233-300MHz, 16kocteti date si 16kocteti instructiuni - L1 cache, 512kocteti L2 cache in aceiasi capsula pe un cip suplimentar, facilitati MMX 1997 • Pentium III: 0,25 microni, 9,5 milioane tranzistori, 450-500MHz, 16kocteti date si 16kocteti instructiuni - L1 cache, 512kocteti L2 cache, facilitati MMX si SSE, 1997 • K5 de la AMD
Arhitectura procesoare de generatia a 6 Unitatea de executie cu arhitectura de tip RISC Unitatea de decodare si translatare a instructiunilor x86 in microinstructiuni interne decupleaza aducerea instructiunilor de executie. Unitatile de executie sunt alocate dinamic de catre statia de rezervare. O microinstructiune se executa atunci cand toate conditiile pentru executie sunt indeplinite. Ordinea de executie poate fi alta decat cea in care sosesc instructiunile. Alocare dinamica contribuie la incarcarea optima a unitatiilor de executie spre deosebire de alocarea statica realizata de unitatea de control de la procesoarele din generatia a 5-a. Bufferul de reordonare este utilizat pentru a transmitera la iesire rezultatele in ordinea in care au sosit instructiunile
Arhitectura procesoare de generatia a 6 • Unitatea ROB poate urmarii 40 instructiuni in diferite faze de executie. De asemenea are un rol important in redenumirea registrilor. Procesoarele x86 utilizeaza numai 8 registri pentru intregi si 8 registri pentru virgula mobila cea ce este mult prea putin pt. un procesor de generatia a 6. • Statia de rezervare poate examina 20 instructiuni simultan
Caracteristici Pentium 4 • Generatia a 7 de microprocesoare • 4 transferuri pe ciclu de ceas pe magistrala externa • transfer pe 256 biti intre nivelul L2 si Data L1 cache ( la generatiile anterioare transferul era pe 64biti) • Nivelul L1 de cache de instructiuni a fost relocat dupa decodorul de instructiuni, se regaseste sub denumirea de “Trace Cache” si contine 12 k micro-instructiuni ( 1 microinstructiune este pe 100 biti, deci 150k biti) • 128 registrii interni (numai 40 registri pe Pentium II si III) • 5 unitati de executie interne http://www.hardwaresecrets.com/article/235/7 Inside Pentium 4 Architecture, Author:Gabriel Torres, October 18, 2005
Organizare Pipeline la Pentium 4 • 20 faze pipeline prima versiune, 31 faze la ultima versiune (pentium III doar 11 faze). • Aceasta a permis cresterea frecventei la valori foarte mari, totusi executia unei instructiuni trece prin 20 sau 31 faze ( la ceias frecventa Pentium III este mai rapid decat pentium IV) • TC Nxt IP: Trace cache next instruction pointer. Detecteaza urmatoarea microinstructiune care trebuie executata din BTB (branch target buffer) (2 faze). • TC Fetch: Trace cache fetch. Incarca din TC microinstructiunea. (2 faze) • Drive: trimite microinstructiunea sprea a fi procesata alocatorului de resurse si circuitelor de redenumirea registrilor. • Alloc: Allocate. Verifica ce resurse CPU vor fi necesare pentru procesare (date din memorie si locatii de stocare). • Rename: Daca programul foloseste unul din registri standard x86, acesta va fi redefinit in unul din cei 128 de registri interni existenti in Pentium 4.
Faze “Pipe-line” la Pentium 4 • Que: Queue. Microinstructiunile sunt depuse in coada de instructiuni dupa timpul instructiunii (intregi sau virgula mobila) They are held in the queue until there is an open slot of the same type in the scheduler. • Sch: Schedule. Microinstructiunile sunt programate pentru executie in functie de tip. Pana in aceasta faza microinstructiunile sunt in ordinea in care apar in program. In aceasta etapa unitatea de planificare reordoneaza executia instructuctiunilor astfel incat unitatile de executie sa fie incarcate la capacitatea maxima. De exemplu daca o unitatea de virgula mobila este libera, planificatorul va cauta o instructiune pentru a fi trimisa acesteia chiar daca urmatoarea instructiune este cu intregi. Unitatea de planificare este inima mecanismului “in afara ordinii” (out-of-order) al generatiei 7 de microprocesoare Intel. (3 faze) • Disp: Dispatch. Trimite microinstructiunile unitatii corespunzatoare de executie. (2 faze). • RF: Register file. Se incarca registri specificati de micro-instructiune. (2 faze) • Ex: Execute.Se executa microinstructiunea. • Flgs: Flags. Se actualizeaza registrul de indicatori (flags). • Br Ck: Branch check. Se verifica daca ramificatia urmata de program este cea estimata de circuitul de predictie a ramificatiilor. • Drive: Trimite rezultatul verificarii spre BTB (branch target buffer) prezent la intrarea in procesor
Memoria cache si Unitatea de extragerea instructiunilor • Nivelul L2 de memorie cache poate fi de 256kB, 512kB, 1MB sau 2 MB in functie de model. • Nivelul L1 de memorie cache de date este de 8KB sau 16kB la versiunile in tehnologie pe 90nm • Decodorul de instructiuni este plasat inaintea nivelului L1 cache de instructiuni (Trace cache) evitandu-se decodarea repetata a instructiunilor dintr-o bucla; contine 12 k-micro-instructiuni. • Memoria Trace Cache are propria unitate BTB cu 512 intrari. BTB este o memorie unde sunt listate toate ramificatiile identificate in program • Unitatea de extragere a intructiunilor din memoeia L2 cache are o unitate BTB cu 4096 intrari in timp ce la procesoarele din generatia a 6-a aceasta avea 512 intrari si 256 intrari la procesoarele din generatia a 5-a
Decodorul • Procesoarele din generatia 7 ca si cele din generatia 6 utilizeaza o arhitectura hibrida CISC/RISC • Procesoare pentru PC numai cu arhitectura RISC nu pot fi create deoarece toate programele sunt scrise utilizand instructiuni CISC compatibile x86 • Micro-instructiunile RISC nu pot fi accesate direct de catre programe. • Setul de micro-instructiuni RISC difera de la un procesor la altul (sunt diferite de la pentium III la pentium 4 si fata de Atlon) • Decodorul are rolul de a translata instructiunile CISC in microinstructiuni RISC. • Se poate decoda o instructiune pe ciclu de ceas. Daca instructiunea complexa se translateaza in mai mult de 4 microinstructiuni se utilizeaza o memorie ROM interna care contine corespondenta dintre instructiunile complexe si microinstructiuni
Alocatorul si redenumirea registrilor • Rezerva unul din cele 126 ‘buffere’ de reordonare (ROB) Aceasta permite executia microinstructiunilor in afara ordinii in timp ce unitatea centrala va fi capabila sa le puna din nou in ordine utilizand acest tabel. • Rezerva unul din cele 128 registri (RF) pentru stocarea rezultatului. • Daca microinstructiunea este de incarcare sau stocare se va incarca unul din cele 48 buffere din memoria RAM sau se va rezerva unul din cele 24 buffere de stocare. • Rezerva o intrare in memorie sau coada generala in functie de microinstructiune. • Cei 8 registri pe 32 biti (EAX,EBX,ECX,EDX, EBP, ESI,EDI, ESP) sunt redenumiti utilizand unul din cei 128 registri disponibili permitand instructiunilor care se refera la ceias registri standard sa ruleze in paralel. In plus se permite rularea microinstructiunilor in afara ordinii. • Procesorul Pentium 4 contine in total 256 registrii, (128 pentru intregi si 128 pentru virgula mobila)
Alocatorul / Redenumirea registrilor Poate executa 3 micro-instructiuni pe o periada de ceas
Planificatorul • Sorteaza instructiunile dupa tipul lor si le expediaza spre unitatile de executie corespunzatoare prin 4 porturi. • Contine 4 subunitati: operatii cu memoria, operatii simple, operatii simple in virgula mobila, operatii lente in virgula mobila • Este partea centrala a mecanismului de executie a instructiunilor in afara ordinii la Pentium 4
Unitate de expediere si Executie Portul 0 si 1 pot expedia 2 instructiuni pe ciclu in timp ce portul 2 si 3 o instructiune pe ciclu
Facilitati MMX • Facilitati multimedia (MMX la procesoarele Intel, 3Dnow la AMD) –introdus in 1997 • Reutilizeaza cei 8 registrii ai coprocesorului matematic pentru operatii vectoriale cu intregi pe 64, 32, 16 sau 8 biti (4 tipuri de date) • 57 de instructiuni noi • Operatii aritmetice cu saturatie.
Tipuri de date MMX Permit implementarea concepului SIMD (o singura instructiune –multiple date
Facilitati SSE • Streaming SIMDExtensions • Aduga 8 registrii noi de 128 bits,permitand operatii paralele asupra numerelor in virgula mobila in simpla precizie – 32 bits • Este similar facilitatilor MMx dar pentru virgula mobila • A fost introdus pe Pentium III • SSE2 – introdus pe Pentium 4 adouga instructiuni vectoriale in dubla precizie (64biti) si pentru intregi 8/16/32 bits • SSE3 – adauga facilitati matematice orientate pe procesarea digitala a semnalelor (DSP) • SSEE3 – adauga operatii se inmultire in virgula fixa pe 16bits • SSE4 – se adauga noi instructiuni printre care produs scalar - prescrierile SSE4 vor fi implementate pe noile procesoare dual core (Penryn' )
Generatia a 8 de procesoare • Athlon 64 – primul procesor pe 64 bit compatibil cu x86 • Lansat in septembrie 2003, tehnologie pe 130nm • Athlon64x2 – procesor dual core (lansat april 2005) • Prevazut cu capacitatea de a reduce tensiunea de alimentare si frecventa cand nu este intens utilizat ( se reduce astfel consumul de la 89 W pana la 32W sau chiar 22W)