P6 este o arhitectură superscalar superpipelining dezvoltată de Intel și care stă la baza microprocesoarelor Pentium Pro , Pentium II , Pentium III , Celeron și Xeon . Spre deosebire de procesoarele compatibile x86 din generațiile anterioare cu un nucleu CISC , procesoarele cu arhitectură P6 au un nucleu RISC care execută instrucțiuni x86 complexe nu direct, ci mai întâi le decodifică în micro-operații interne simple.
Primul procesor al arhitecturii P6 a fost procesorul Pentium Pro, anunțat la 1 noiembrie 1995 , destinat pieței stațiilor de lucru și serverelor . Procesoarele Pentium Pro au fost lansate în paralel cu procesoarele cu arhitectură P5 ( Pentium și Pentium MMX ) concepute pentru computerele personale . Pe 7 mai 1997, Intel a anunțat procesorul Pentium II, care a înlocuit procesoarele cu arhitectură P5. [unu]
În 2000, arhitectura P6 pe piața procesoarelor desktop și server a fost înlocuită cu arhitectura NetBurst , cu toate acestea, arhitectura P6 a fost dezvoltată în procesoarele mobile Pentium M și Core . În 2006, procesoarele arhitecturii NetBurst au fost înlocuite cu familia de procesoare Core 2 Duo , a cărei arhitectură este, de asemenea, o evoluție a arhitecturii P6. [2] [3]
Procesoarele cu arhitectură P6 constau din patru subsisteme principale:
Dispozitivele acestui subsistem includ:
Procesoarele bazate pe nucleul Tualatin conțin în plus un prefetcher de instrucțiuni ( Prefetcher ), care preface instrucțiunile bazate pe tabelul de ramuri.
Miez de execuție cu resecvențiereExecuția în afara secvenței, care modifică ordinea în care instrucțiunile sunt executate fără a modifica rezultatul, accelerează munca prin distribuirea mai bună a cererilor către blocurile auxiliare și minimizând timpul de nefuncționare a acestora. Dispozitivele pentru organizarea performanței cu o modificare a secvenței includ:
Unitățile de execuție ale nucleului includ:
Volumul (KB) | Procesoare |
---|---|
0 | Celeron Covington |
128 | Celeron ( Mendocino , Coppermine-128 ), Pentium III ( Coppermine pentru Xbox [4] ) |
256 | Pentium Pro , Pentium III (Coppermine, Tualatin-256 ), Xeon ( Cascade ) |
512 | Pentium Pro, Pentium II , Pentium III ( Katmai , Tualatin ), Xeon ( Drake , Tanner ) |
1024 | Pentium Pro, Xeon (Drake, Tanner) |
2048 | Xeon (Drake, Tanner, Cascades 2MB) |
Subsistemul de memorie interacționează cu memoria principală. Acest subsistem include:
Transportorul este format din 12 trepte [5] :
Execuția unei instrucțiuni începe cu preluarea și decodarea acesteia. Pentru a face acest lucru, 64 de octeți (două linii) sunt selectați din memoria cache de instrucțiuni de la primul nivel la adresa din buffer-ul de predicție al ramurilor. Dintre aceștia, 16 octeți, începând de la adresa din următorul bloc de calcul al adresei de instrucțiune, sunt aliniați și trecuți la decodorul de instrucțiuni, care convertește instrucțiunile x86 în micro-ops. Dacă instrucțiunea corespunde unei micro-operații, decodarea este efectuată de unul dintre decodoarele de instrucțiuni simple. Dacă instrucțiunea corespunde la două, trei sau patru micro-operații, decodarea este efectuată de decodorul de instrucțiuni complexe. Dacă instrucțiunea corespunde unui număr mai mare de micro-operații, atunci acestea sunt formate de planificatorul secvenței de micro-operații.
După decodificarea instrucțiunilor , registrele sunt redenumite , iar micro-operațiunile și datele sunt plasate într-un buffer - o stație de rezervă, de unde, în conformitate cu ordinea optimă de execuție și cu certitudinea operanzilor necesari executării lor, acestea sunt trimise la unitățile de execuție (maximum 5 instrucțiuni pe ciclu). Starea de execuție a micro-op-urilor și rezultatele sale sunt stocate în buffer-ul de reordonare a micro-op-urilor și, deoarece rezultatele execuției unor micro-op-uri pot servi ca operanzi ai altora, ele sunt de asemenea plasate în stația de redundanță.
Pe baza rezultatelor micro-operațiunilor, se determină pregătirea acestora pentru pensionare . Dacă sunt gata, acestea sunt respinse în ordinea furnizată de program, în timpul căreia starea registrelor logice este actualizată, precum și stocarea întârziată a rezultatelor în memorie (ordinea de înregistrare a datelor este controlată de bufferul de reordonare a memoriei) [ 1] .
Primele procesoare ale arhitecturii P6 la momentul lansării erau semnificativ diferite de procesoarele existente. Procesorul Pentium Pro s-a remarcat prin utilizarea tehnologiei de execuție dinamică (schimbarea ordinii de execuție a instrucțiunilor), precum și arhitectura Dual Independent Bus , datorită căreia multe dintre limitările de lățime de bandă a memoriei tipice predecesorilor și concurenților au fost eliminate. Primul procesor al arhitecturii P6 a fost tactat la 150 MHz , în timp ce ultimii reprezentanți ai acestei arhitecturi aveau o viteză de tac de 1,4 GHz . Procesoarele cu arhitectură P6 aveau o magistrală de adrese pe 36 de biți, permițându-le să adreseze până la 64 GB de memorie (cu spațiul de adrese liniar al unui proces limitat la 4 GB, vezi PAE ).
Mecanism suprascalar pentru executarea instrucțiunilor cu modificarea secvenței acestora
Diferența fundamentală dintre arhitectura P6 și predecesorii săi este nucleul RISC, care nu funcționează cu instrucțiuni x86, ci cu micro-opțiuni interne simple. Acest lucru elimină multe limitări ale setului de instrucțiuni x86, cum ar fi codificarea neregulată a instrucțiunilor, operanzii cu lungime variabilă și operațiile de transfer de numere întregi de la registru la memorie [1] . În plus, microoperațiile nu sunt executate în secvența oferită de program, ci în cea optimă din punct de vedere al performanței, iar utilizarea procesării în trei conducte permite executarea mai multor instrucțiuni într-un singur ciclu [6] .
Superpiping
Procesoarele cu arhitectură P6 au o conductă în 12 etape. Acest lucru permite atingerea unor viteze de ceas mai mari în comparație cu procesoarele care au o conductă mai scurtă cu aceeași tehnologie de fabricație. Deci, de exemplu, frecvența maximă de ceas a procesoarelor AMD K6 de pe nucleu (adâncimea conductei - 6 etape, tehnologie 180-nm) este de 550 MHz, iar procesoarele Pentium III de pe nucleul Coppermine pot funcționa la o frecvență care depășește 1000 MHz.
Pentru a preveni situația de așteptare a execuției unei instrucțiuni (și, în consecință, timpul inactiv al conductei), de rezultatele căreia depinde execuția sau neexecuția unei ramuri condiționate, procesoarele cu arhitectură P6 folosesc predicția ramurilor. . Pentru a face acest lucru, procesoarele cu arhitectură P6 folosesc o combinație de predicție statică și dinamică: se folosește un algoritm istoric adaptiv pe două niveluri ( Bimodal branch prediction ) dacă tamponul de predicție al ramurilor conține un istoric al ramurilor, în caz contrar se folosește un algoritm static [6] [ 7] .
Autobuz dublu independent
Pentru a crește lățimea de bandă a subsistemului de memorie, procesoarele cu arhitectură P6 folosesc o magistrală duală independentă. Spre deosebire de procesoarele anterioare, a căror magistrală de sistem a fost partajată de mai multe dispozitive, procesoarele cu arhitectură P6 au două magistrale separate: magistrala din spate care conectează procesorul la nivelul cache al doilea și magistrala frontală care conectează procesorul la podul de nord al chipset-ului [6] ] .
Procesoarele cu arhitectură P6 aveau un coprocesor matematic pipeline ( FPU ), care a făcut posibilă atingerea superiorității față de predecesorii și concurenții săi în viteza calculelor cu numere reale [8] . FPU-ul procesoarelor cu arhitectură P6 a rămas cel mai bun dintre concurenți până la introducerea procesorului AMD Athlon în 1999 [9] .
În plus, procesoarele arhitecturii P6 aveau superioritate față de concurenți în viteza de lucru cu cache-ul de nivel al doilea. Pentium Pro și Pentium II aveau o magistrală dublă independentă, în timp ce procesoarele concurente ( AMD K5 , K6, Cyrix 6x86 , M-II) aveau o magistrală de sistem tradițională, la care, printre altele, era conectat un cache de nivel al doilea [10] . Odată cu apariția procesoarelor Athlon, folosind și arhitectura magistrală duală independentă, decalajul de performanță s-a redus, dar BSB-ul pe 256 de biți al procesoarelor Pentium III (începând cu nucleul Coppermine) a făcut posibilă menținerea avantajului de performanță cache L2 față de Procesoare cu arhitectură K7, care aveau BSB pe 64 de biți. Cu toate acestea, magistrala de sistem depășită de atunci a procesoarelor cu arhitectură P6, combinată cu cantitatea mare de memorie cache L1 din procesoarele cu arhitectură K7, nu a permis obținerea de avantaje în lățimea de bandă a memoriei [11] .
Principalul dezavantaj al primelor procesoare cu arhitectură P6 ( Pentium Pro ) a fost performanța scăzută atunci când lucrați cu software pe 16 biți care era larg răspândit la acea vreme. Acest lucru s-a datorat faptului că atunci când lucrați cu astfel de aplicații, execuția necorespunzătoare a instrucțiunilor era dificilă (de exemplu, procesorul Pentium Pro nu putea citi dintr-un registru de 32 de biți dacă partea sa inferioară de 16 biți ar fi fost scrisă înainte, iar comanda care a efectuat scrierea nu a fost lăsată deoparte [12] ). La procesorul Pentium II, acest neajuns a fost corectat, ceea ce a dus la o creștere a performanței la lucrul cu programe pe 16 biți cu mai mult de o treime [13] .
Procesoarele cu arhitectură P6 au suportat funcționarea în sistemele multiprocesor, cu toate acestea, a fost folosită o magistrală de sistem partajată, care a făcut posibilă simplificarea urmăririi plăcilor de bază, dar a afectat negativ performanța subsistemului procesor-memorie și a limitat numărul maxim de procesoare din sistem [9] [14] .
CPU | Nucleu | Tehnologia de producție | Ani de lansare |
---|---|---|---|
Pentium Pro | P6 | CMOS / BiCMOS , 500-350 nm | 1995 - 1998 |
Pentium II | Klamath, Deschutes | CMOS, 350-250 nm | 1997 - 1999 |
Pentium III | Katmai, Coppermine, Tualatin-256 | CMOS, 250-130 nm | 1999—2002 _ |
Pentium III-S | Tualatin | CMOS, 130 nm | 2001-2002 _ |
Celeron | Covington, Mendocino, Coppermine-128, Tualatin-256 | CMOS, 250-130 nm | 1998-2002 |
Pentium II Xeon | Drake | CMOS, 250 nm | 1998-1999 |
Pentium III Xeon | Tanner, Cascades, Cascades 2MB | CMOS, 250-180 nm | 1999-2001 |
Pentium Pro (P6) | Pentium II (Deschutes) | Pentium III (mine de cupru) | Pentium IIIS (Tualatin) |
---|---|---|---|
Pentium III Mobile | Celeron (Mendocino) | Celeron (Mendocino) | Celeron (Coppermine-128) |
Informații oficiale
Caracteristicile procesoarelor cu arhitectură P6
Recenzii procesoare
procesoare Intel | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|