P6 er en superskalær superpipelining-arkitektur udviklet af Intel og understøtter Pentium Pro- , Pentium II- , Pentium III- , Celeron- og Xeon-mikroprocessorerne . I modsætning til x86 -kompatible processorer fra tidligere generationer med en CISC -kerne, har P6-arkitekturprocessorer en RISC -kerne, der ikke udfører komplekse x86-instruktioner direkte, men først afkoder dem til simple interne mikrooperationer.
Den første processor i P6-arkitekturen var Pentium Pro-processoren, som blev annonceret den 1. november 1995 , rettet mod arbejdsstations- og servermarkedet . Pentium Pro-processorerne blev udgivet parallelt med P5 -arkitektur-processorerne ( Pentium og Pentium MMX ) designet til personlige computere . Den 7. maj 1997 annoncerede Intel Pentium II-processoren, som erstattede P5-arkitektur-processorerne. [en]
I 2000 blev P6-arkitekturen på desktop- og serverprocessormarkedet erstattet af NetBurst -arkitekturen , men P6-arkitekturen blev udviklet i Pentium M og Core mobile processorer . I 2006 blev processorerne i NetBurst-arkitekturen erstattet af Core 2 Duo- familien af processorer , hvis arkitektur også er en udvikling af P6-arkitekturen. [2] [3]
P6-arkitekturprocessorer består af fire hovedundersystemer:
Enhederne i dette delsystem omfatter:
Processorer baseret på Tualatin-kernen indeholder desuden en instruktionsforhenter ( Prefetcher ), som forudhenter instruktioner baseret på grentabellen.
Udførelseskerne med gensekventeringUdførelse uden for sekvens, som ændrer rækkefølgen, som instruktioner udføres i uden at ændre resultatet, fremskynder arbejdet ved bedre at fordele anmodninger til hjælpeblokke og minimere deres nedetid. Enheder til at organisere ydeevne med en ændring i rækkefølge omfatter:
Kerneudførelsesenheder inkluderer:
Volumen (KB) | Processorer |
---|---|
0 | Celeron Covington |
128 | Celeron ( Mendocino , Coppermine-128 ), Pentium III ( Coppermine til Xbox [4] ) |
256 | Pentium Pro , Pentium III (Coppermine, Tualatin-256 ), Xeon ( Cascades ) |
512 | Pentium Pro, Pentium II , Pentium III ( Katmai , Tualatin ), Xeon ( Drake , Tanner ) |
1024 | Pentium Pro, Xeon (Drake, Tanner) |
2048 | Xeon (Drake, Tanner, Cascades 2 MB) |
Hukommelsesundersystemet interagerer med hovedhukommelsen. Dette delsystem inkluderer:
Transportøren består af 12 trin [5] :
Udførelsen af en instruktion begynder med dens hentning og afkodning. For at gøre dette vælges 64 bytes (to linjer) fra instruktionscachen på det første niveau på adressen fra grenforudsigelsesbufferen. Af disse bliver 16 bytes, startende ved adressen fra den næste instruktionsadresseberegningsblok, justeret og videregivet til instruktionsdekoderen, som konverterer x86 instruktioner til mikrooperationer. Hvis instruktionen svarer til én mikrooperation, udføres afkodningen af en af dekoderne for simple instruktioner. Hvis instruktionen svarer til to, tre eller fire mikrooperationer, udføres afkodningen af den komplekse instruktionsdekoder. Hvis instruktionen svarer til et større antal mikrooperationer, dannes de af mikrooperationssekvensplanlæggeren.
Efter at instruktionerne er afkodet , omdøbes registrene , og mikrooperationer og data placeres i en buffer - en backupstation, hvorfra, i overensstemmelse med den optimale eksekveringsrækkefølge og med forbehold for sikkerheden af de operander, der er nødvendige for deres udførelse, de sendes til udførelsesenhederne (maks. 5 instruktioner pr. cyklus). Mikro-ops eksekveringsstatus og dens resultater gemmes i mikro-ops genbestillingsbuffer, og da resultaterne af udførelsen af nogle mikrooperationer kan tjene som operander for andre, placeres de også i redundansstationen.
Baseret på resultaterne af mikrooperationer bestemmes deres parathed til pensionering . Hvis de er klar, afvises de i den rækkefølge, som programmet angiver, under hvilken tilstanden af de logiske registre opdateres, såvel som den forsinkede lagring af resultaterne i hukommelsen (dataoptagelsesrækkefølgen styres af hukommelsens genbestillingsbuffer) [ 1] .
De første processorer i P6-arkitekturen på udgivelsestidspunktet var væsentligt forskellige fra eksisterende processorer. Pentium Pro-processoren blev kendetegnet ved brugen af dynamisk eksekveringsteknologi (ændring af rækkefølgen for udførelse af instruktioner) såvel som Dual Independent Bus-arkitekturen , på grund af hvilken mange af de hukommelsesbåndbreddebegrænsninger, der er typiske for forgængere og konkurrenter, blev fjernet. Den første processor i P6-arkitekturen blev clocket til 150 MHz , mens de seneste repræsentanter for denne arkitektur havde en clockhastighed på 1,4 GHz . P6-arkitekturprocessorerne havde en 36-bit adressebus, der gjorde det muligt for dem at adressere op til 64 GB hukommelse (med en process lineære adresserum begrænset til 4 GB, se PAE ).
Superscalar mekanisme til at udføre instruktioner med ændring af deres rækkefølge
Den grundlæggende forskel mellem P6-arkitekturen og dens forgængere er RISC-kernen, som ikke fungerer med x86-instruktioner, men med simple interne mikrooperationer. Dette fjerner mange begrænsninger af x86-instruktionssættet, såsom uregelmæssig instruktionskodning, variabel-længde operander og register-til-hukommelse heltal overførselsoperationer [1] . Derudover udføres mikrooperationer ikke i den sekvens, som programmet giver, men i den optimale med hensyn til ydeevne, og brugen af tre-pipeline-behandling tillader at udføre flere instruktioner i en cyklus [6] .
Superpiping
P6-arkitekturprocessorerne har en 12-trins pipeline. Dette gør det muligt at opnå højere clockhastigheder sammenlignet med processorer, der har en kortere pipeline med samme produktionsteknologi. Så for eksempel er den maksimale klokfrekvens for AMD K6-processorer på kernen (pipeline-dybde - 6 trin, 180-nm-teknologi) 550 MHz, og Pentium III-processorer på Coppermine-kernen kan fungere ved en frekvens, der overstiger 1000 MHz.
For at forhindre situationen med at vente på udførelsen af en instruktion (og følgelig den ledige tid af pipelinen), hvis resultater udførelsen eller ikke-udførelsen af en betinget gren afhænger af, bruger P6-arkitekturprocessorerne grenforudsigelse . For at gøre dette bruger P6-arkitekturprocessorer en kombination af statisk og dynamisk forudsigelse: en adaptiv historisk algoritme på to niveauer ( Bimodal branch prediction ) bruges, hvis grenforudsigelsesbufferen indeholder en grenhistorie, ellers bruges en statisk algoritme [6] [ 7] .
Dobbelt uafhængig bus
For at øge båndbredden af hukommelsesundersystemet bruger P6-arkitekturprocessorerne en dobbelt uafhængig bus. I modsætning til tidligere processorer, hvis systembus blev delt af flere enheder, har P6-arkitekturprocessorerne to separate busser: Bagsidebus, der forbinder processoren med andet niveaus cache, og frontsidebus , der forbinder processoren med chipsættets nordbro [6 ] .
P6-arkitekturprocessorerne havde en pipelinet matematisk coprocessor ( FPU ), som gjorde det muligt at opnå overlegenhed i forhold til sine forgængere og konkurrenter i hastigheden af beregninger med rigtige tal [8] . FPU af P6-arkitektur-processorerne forblev den bedste blandt konkurrenterne indtil introduktionen af AMD Athlon-processoren i 1999 [9] .
Derudover havde processorerne i P6-arkitekturen overlegenhed i forhold til konkurrenterne i hastigheden af at arbejde med andet niveaus cache. Pentium Pro og Pentium II havde en dobbelt uafhængig bus, mens konkurrerende processorer ( AMD K5 , K6, Cyrix 6x86 , M-II) havde en traditionel systembus, hvortil blandt andet en second-level cache var tilsluttet [10] . Med fremkomsten af Athlon-processorer, der også brugte den dobbelte uafhængige busarkitektur, blev ydeevnegabet indsnævret, men Pentium III-processorernes 256-bit BSB (startende med Coppermine-kernen) gjorde det muligt at bevare L2-cache-ydelsesfordelen i forhold til K7 arkitektur processorer, som havde 64-bit BSB. Den dengang forældede systembus af P6-arkitekturprocessorerne, kombineret med den store mængde L1-cachehukommelse i K7-arkitekturprocessorerne, tillod dog ikke at opnå fordele i hukommelsesbåndbredde [11] .
Den største ulempe ved de første P6-arkitekturprocessorer ( Pentium Pro ) var lav ydeevne, når man arbejdede med 16-bit software, der var udbredt på det tidspunkt. Dette skyldtes det faktum, at når man arbejdede med sådanne applikationer, var udførelse af instruktioner ikke i orden (for eksempel kunne Pentium Pro-processoren ikke læse fra et 32-bit register, hvis dens 16-bit lave del havde været skrevet før, og kommandoen, der udførte skrivningen, blev ikke tilsidesat [12] ). I Pentium II-processoren blev denne mangel rettet, hvilket førte til en stigning i ydeevnen ved arbejde med 16-bit programmer med mere end en tredjedel [13] .
P6-arkitekturprocessorerne understøttede drift i multiprocessorsystemer, dog blev der brugt en delt systembus, som gjorde det muligt at forenkle sporingen af bundkort, men påvirkede ydeevnen af processorhukommelsesundersystemet negativt og begrænsede det maksimale antal processorer i system [9] [14] .
CPU | Nucleus | Produktionsteknologi | Udgivelsesår |
---|---|---|---|
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 (kobbermine) | Pentium IIIS (Tualatin) |
---|---|---|---|
Pentium III mobil | Celeron (Mendocino) | Celeron (Mendocino) | Celeron (Coppermine-128) |
Officiel information
Karakteristika for P6-arkitekturprocessorer
Processor anmeldelser
Intel processorer | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|