Intel P6

P6  är en superskalär superpipelining-arkitektur utvecklad av Intel och som ligger till grund för mikroprocessorerna Pentium Pro , Pentium II , Pentium III , Celeron och Xeon . Till skillnad från x86 -kompatibla processorer från tidigare generationer med en CISC- kärna, har P6-arkitekturprocessorer en RISC- kärna som exekverar komplexa x86-instruktioner inte direkt, utan först avkodar dem till enkla interna mikrooperationer.

Den första processorn i P6-arkitekturen var Pentium Pro-processorn, tillkännagiven den 1 november 1995 , riktad mot arbetsstations- och servermarknaden . Pentium Pro-processorerna släpptes parallellt med P5- arkitekturprocessorerna ( Pentium och Pentium MMX ) designade för persondatorer . Den 7 maj 1997 tillkännagav Intel Pentium II-processorn, som ersatte P5-arkitekturprocessorerna. [ett]

År 2000 ersattes P6-arkitekturen på marknaden för stationära och serverprocessorer av NetBurst- arkitekturen , men P6-arkitekturen utvecklades i Pentium M- och Core -mobilprocessorerna . 2006 ersattes processorerna i NetBurst-arkitekturen av Core 2 Duo- familjen av processorer , vars arkitektur också är en utveckling av P6-arkitekturen. [2] [3]

Funktionella enheter

P6-arkitekturprocessorer består av fyra huvuddelsystem:

Beställt Preprocessing Subsystem

Enheterna i detta delsystem inkluderar:

Processorer baserade på Tualatin-kärnan innehåller dessutom en instruktionsförhämtare ( Prefetcher ), som förhämtar instruktioner baserat på grentabellen.

Utförandekärna med återsekvensering

Exekvering utanför sekvensen, som ändrar ordningsföljden i vilka instruktioner exekveras utan att resultatet ändras, påskyndar arbetet genom att bättre distribuera förfrågningar till hjälpblock och minimera deras stilleståndstid. Enheter för att organisera prestanda med en ändring i sekvens inkluderar:

Kärnexekveringsenheter inkluderar:

Beställt delsystem för komplettering Minnesdelsystem L2 volym av P6-arkitekturprocessorer
Volym (KB) Processorer
0 Celeron Covington
128 Celeron ( Mendocino , Coppermine-128 ), Pentium III ( Coppermine för 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 2MB)

Minnesdelsystemet interagerar med huvudminnet. Detta delsystem inkluderar:

Instruktionsutförande

Pentium Pro-processorpipeline

Transportören består av 12 steg [5] :

Utförandet av en instruktion börjar med att den hämtas och avkodas. För att göra detta väljs 64 byte (två rader) från instruktionscachen för den första nivån på adressen från förgreningsförutsägelsebufferten. Av dessa är 16 byte, med början på adressen från nästa instruktionsadressberäkningsblock, inriktade och skickas till instruktionsavkodaren, som omvandlar x86-instruktioner till mikrooperationer. Om instruktionen motsvarar en mikrooperation, utförs avkodningen av en av de enkla instruktionernas avkodare. Om instruktionen motsvarar två, tre eller fyra mikrooperationer, utförs avkodningen av den komplexa instruktionsavkodaren. Om instruktionen motsvarar ett större antal mikrooperationer, så bildas de av mikrooperationssekvensschemaläggaren.

Efter att instruktionerna avkodats döps registren om , och mikrooperationer och data placeras i en buffert - en backupstation, varifrån, i enlighet med den optimala exekveringsordningen och med förbehåll för de operander som krävs för deras exekvering, de skickas till exekveringsenheterna (max 5 instruktioner per cykel). Micro-ops exekveringsstatus och dess resultat lagras i mikro-ops omordningsbufferten, och eftersom resultaten av exekveringen av vissa mikroops kan fungera som operander för andra, placeras de också i redundansstationen.

Baserat på resultaten av mikrooperationer bestäms deras beredskap för pensionering .  Om de är klara, avvisas de i den ordning som tillhandahålls av programmet, under vilken tillståndet för de logiska registren uppdateras, såväl som den fördröjda lagringen av resultaten i minnet (dataregistreringsordningen styrs av minnesbufferten för omordning) [ 1] .

Arkitektoniska egenskaper

De första processorerna i P6-arkitekturen vid tidpunkten för utgivningen skilde sig markant från befintliga processorer. Pentium Pro-processorn kännetecknades av användningen av dynamisk exekveringsteknik (ändrar ordningsföljden för exekvering av instruktioner), såväl som Dual Independent Bus-arkitekturen ,  på grund av vilken många av minnesbandbreddsbegränsningarna som är typiska för föregångare och konkurrenter togs bort. Den första processorn i P6-arkitekturen klockades till 150 MHz , medan de senaste representanterna för denna arkitektur hade en klockhastighet på 1,4 GHz . P6-arkitekturprocessorerna hade en 36-bitars adressbuss, vilket gjorde att de kunde adressera upp till 64 GB minne (med en processs linjära adressutrymme begränsat till 4 GB, se PAE ).

Superskalär mekanism för att utföra instruktioner med att ändra deras sekvens

Den grundläggande skillnaden mellan P6-arkitekturen och dess föregångare är RISC-kärnan, som inte fungerar med x86-instruktioner, utan med enkla interna mikrooperationer. Detta tar bort många begränsningar för x86-instruktionsuppsättningen, såsom oregelbunden instruktionskodning, operander med variabel längd och register-till-minne heltalsöverföringsoperationer [1] . Dessutom exekveras mikrooperationer inte i den sekvens som tillhandahålls av programmet, utan i den optimala när det gäller prestanda, och användningen av tre-pipeline-bearbetning tillåter exekvering av flera instruktioner i en cykel [6] .

Superpiping

P6-arkitekturprocessorerna har en 12-stegs pipeline. Detta gör att högre klockhastigheter kan uppnås jämfört med processorer som har en kortare pipeline med samma tillverkningsteknik. Så till exempel är den maximala klockfrekvensen för AMD K6-processorer på kärnan (pipeline-djup - 6 steg, 180-nm-teknik) 550 MHz, och Pentium III-processorer på Coppermine-kärnan kan arbeta med en frekvens som överstiger 1000 MHz.

För att förhindra situationen att vänta på exekvering av en instruktion (och följaktligen vilotid för pipelinen), på vars resultat exekveringen eller icke-exekveringen av en villkorlig gren beror, använder P6-arkitekturprocessorerna grenprediktion . För att göra detta använder P6-arkitekturprocessorer en kombination av statisk och dynamisk prediktion: en adaptiv historisk algoritm på två nivåer ( Bimodal  branch prediction ) används om grenprediktionsbufferten innehåller en grenhistorik, annars används en statisk algoritm [6] [ 7] .

Dubbel oberoende buss

För att öka bandbredden för minnesundersystemet använder P6-arkitekturprocessorerna en dubbel oberoende buss. Till skillnad från tidigare processorer, vars systembuss delades av flera enheter, har P6-arkitekturprocessorerna två separata bussar: Backside-buss som ansluter processorn till andra nivåns cache, och Frontside-buss som ansluter processorn till den norra bryggan av chipset [6 ] .

Fördelar

P6-arkitekturprocessorerna hade en pipelined matematisk coprocessor ( FPU ), som gjorde det möjligt att uppnå överlägsenhet gentemot sina föregångare och konkurrenter när det gäller hastigheten för beräkningar av reala tal [8] . FPU:n för P6-arkitekturprocessorerna förblev den bästa bland konkurrenterna fram till introduktionen av AMD Athlon-processorn 1999 [9] .

Dessutom hade processorerna i P6-arkitekturen överlägsenhet gentemot konkurrenterna i hastigheten att arbeta med den andra nivåns cache. Pentium Pro och Pentium II hade en dubbel oberoende buss, medan konkurrerande processorer ( AMD K5 , K6, Cyrix 6x86 , M-II) hade en traditionell systembuss, till vilken bland annat en andranivåcache var ansluten [10] . Med tillkomsten av Athlon-processorer, som också använder den dubbla oberoende bussarkitekturen, minskade prestandagapet, men 256-bitars BSB hos Pentium III-processorerna (som börjar med Coppermine-kärnan) gjorde det möjligt att behålla L2-cacheprestandafördelen jämfört med K7-arkitekturprocessorer, som hade 64-bitars BSB. Den då föråldrade systembussen för P6-arkitekturprocessorerna, i kombination med den stora mängden L1-cacheminne i K7-arkitekturprocessorerna, tillät dock inte att vinna fördelar i minnesbandbredd [11] .

Nackdelar

Den största nackdelen med de första P6-arkitekturprocessorerna ( Pentium Pro ) var låg prestanda när man arbetade med 16-bitars programvara som var utbredd på den tiden. Detta berodde på det faktum att när man arbetade med sådana applikationer var det svårt att utföra instruktioner i oordning (till exempel kunde Pentium Pro-processorn inte läsa från ett 32-bitars register om dess 16-bitars låga del hade varit skrivet tidigare, och kommandot som utförde skrivningen avsattes inte [12] ). I Pentium II-processorn korrigerades denna brist, vilket ledde till en ökning av prestanda vid arbete med 16-bitarsprogram med mer än en tredjedel [13] .

P6-arkitekturprocessorerna stödde drift i multiprocessorsystem, men en delad systembuss användes, vilket gjorde det möjligt att förenkla spårningen av moderkort, men påverkade prestandan för processor-minnesundersystemet negativt och begränsade det maximala antalet processorer i system [9] [14] .

P6-arkitekturprocessorer

CPU Kärna Produktionsteknik Utgivningså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 Ankbonde 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 (Coppermine) Pentium IIIS (Tualatin)
Pentium III mobil Celeron (Mendocino) Celeron (Mendocino) Celeron (Coppermine-128)

Utvecklingen av Intel-arkitekturer

Anteckningar

  1. 1 2 3 Waiting for Willamette - Historien om IA-32-arkitekturen och hur P6-familjens processorer fungerar . Hämtad 12 augusti 2008. Arkiverad från originalet 2 juli 2013.
  2. Pentium M: en bra "desktop" CPU ... som vi inte kommer att ha (otillgänglig länk) . IXBT.com (26 juli 2005). Datum för åtkomst: 16 augusti 2008. Arkiverad från originalet 24 augusti 2011. 
  3. Nytt vin i gamla vinskinn. Conroe: sonson till Pentium III-processorn, brorson till NetBurst-arkitekturen? (inte tillgänglig länk) . IXBT.com (9 september 2005). Hämtad 16 augusti 2008. Arkiverad från originalet 3 januari 2014. 
  4. Till skillnad från Celeron-processorn baserad på Coppermine-128-kärnan, som har en 4-kanals associativ L2-cache, har denna processor en 8-kanals cache. Se: "Spelkonsolernas värld. Del fem, Upgrade Magazine, 2007, nr 28 (325), s. 24
  5. Jon Stokes. The Pentium: An Architectural History of the World's Most Famous Desktop Processor (del I)  (engelska)  (ej tillgänglig länk) . Ars Technica (11 juli 2004). Tillträdesdatum: 19 augusti 2008. Arkiverad från originalet 28 januari 2012.
  6. 1 2 3 X86-arkitekturer är olika ... . Hämtad 11 maj 2022. Arkiverad från originalet 4 januari 2012.
  7. http://www.pcmag.ru/issues/sub_detail.php?ID=10105&SUB_PAGE=8 - RISC Legacy: Branch Prediction.
  8. Jämförelse av Super Socket-7 och Slot-1-baserade system . Hämtad 12 augusti 2008. Arkiverad från originalet 2 juli 2013.
  9. 1 2 Översikt över AMD Athlon 600 MHz-processorn . Hämtad 12 augusti 2008. Arkiverad från originalet 4 april 2013.
  10. PCI-buss (Peripheral Component Interconnect-buss) Arkiverad 4 april 2013 på Wayback Machine  - se diagram
  11. 1000 MHz-processorer . Hämtad 12 augusti 2008. Arkiverad från originalet 23 juni 2008.
  12. Maxim Len: "ARCHITECTURE P6: HERITAGE OF GENERATIONS" (publicerad på webbplatsen fcenter.ru den 22 november 2000) - backuplänk (  otillgänglig länk)
  13. http://www.pcmag.ru/issues/sub_detail.php?ID=9935&SUB_PAGE=3 - Pentium: historien fortsätter.
  14. Dual-processor Socket A-system baserat på AMD 760MP-kretsuppsättningen . Hämtad 11 maj 2022. Arkiverad från originalet 23 februari 2009.

Länkar

Officiell information

Egenskaper hos P6-arkitekturprocessorer

Processorrecensioner