PA-8000
PA -8000 (PCX-U), med kodnamnet Onyx , är en mikroprocessor utvecklad och tillverkad av Hewlett-Packard (HP) som implementerade PA-RISC 2.0 instruktionsuppsättningsarkitekturen (ISA). Det var en helt ny design utan kretsar härledda från tidigare PA-RISC-mikroprocessorer. PA-8000 introducerades den 2 november 1995 när leveranser började till medlemmar i Precision RISC Organization (PRO). Den användes uteslutande av PRO-medlemmar och såldes inte på handelsmarknaden. Alla efterföljande PA-8x00-processorer (PA-8200 till PA-8900, beskrivs ytterligare nedan) är baserade på den grundläggande PA-8000-processorkärnan.
PA-8000 användes av:
- HP i sina HP 9000 arbetsstationer och servrar
- NEC i sin TX7/P590-server
- Stratus Technologies i sina Continuum-feltoleranta servrar
Beskrivning
PA-8000 är en fyrvägs superskalär mikroprocessor som exekverar instruktioner ur funktion och spekulativt . Dessa funktioner hittades inte i tidigare PA-RISC-implementeringar, vilket gör PA-8000 till den första PA-RISC-processorn som bryter traditionen med att använda enkla mikroarkitekturer och implementeringar med hög klockfrekvens för att uppnå prestanda.
Instruktionshämtningsenhet
PA-8000 har en front-end i fyra steg. Under de första två stegen hämtas fyra instruktioner från instruktionscachen av instruktionshämtningsenheten (IFU). IFU innehåller programräknaren , grenhistoriktabellen (BHT), grenmåladressens cache (BTAC) och en översättningsbuffert med fyra ingångar (TLB). TLB används för att översätta virtuell adress till fysiska adresser för åtkomst till instruktionscachen. I händelse av en TLB-miss begärs översättningen från huvud-TLB.
Branch förutsägelse
PA-8000 utför grenprediktion med statiska eller dynamiska metoder. Vilken metod PA-8000 använde valdes av en bit i varje TLB-post. Statisk förutsägelse betraktar de flesta bakåtgrenar som tagna och framåtgrenar som inte tagna. Statisk förutsägelse förutspådde också resultatet av grenar genom att undersöka tips som kodats i instruktionerna själva av kompilatorn.
Dynamisk förutsägelse använder den inspelade historiken för en gren för att avgöra om den tas eller inte. En 256-post BHT är där denna information lagras. Varje BHT-post är ett trebitars skiftregister . PA-8000 använde en majoritetsröstalgoritm, en gren tas om majoriteten av de tre bitarna är inställda och inte tas om de är klara. En felaktigt förutspådd gren orsakar en fem-cykelstraff. BHT uppdateras när resultatet av grenen är känt. Även om PA-8000 kan exekvera två greninstruktioner per cykel, registreras endast ett av resultaten eftersom BHT inte är dubbelportad för att förenkla dess implementering.
PA-8000 har en tvåtaktsbubbla för korrekt förutsagda grenar, eftersom måladressen för grenen måste beräknas innan den skickas till instruktionscachen. För att minska förekomsten av denna bubbla använder PA-8000 en helt associativ BTAC med 32 poster. BTAC cachar en filials måladress. När samma gren påträffas, och förutsägs tas, skickas adressen till instruktionscachen omedelbart, vilket gör att hämtningen kan börja utan fördröjning.
För att maximera effektiviteten av BTAC cachelagras endast grenmålet för förutspådda tagna grenar. Om en gren förutsägs inte tas, men dess måladress cachelagras i BTAC, raderas dess post. I händelse av att BTAC är full, och en ny post måste skrivas, väljs posten som ersätts med hjälp av en round robin-ersättningspolicy.
Instruktionscache
Instruktionscachen är extern och stöder en kapacitet på 256 KB till 4 MB. Instruktioner föravkodas innan de går in i cachen genom att lägga till fem bitar till varje instruktion. Dessa bitar minskar den tid som krävs för att avkoda instruktionen senare i pipelinen. Instruktionscachen är direktmappad för att undvika komplexiteten hos uppsättningsassociativa cacher och nås via en 148-bitars buss. Taggarna för cachen är också externa. Den är byggd av synkrona SRAM (SSRAM).
Avkoda och instruktionsbufferten för omordning
Under det tredje steget avkodas instruktionerna. I det fjärde steget placeras de i instruktionsreorderbufferten (IRB). IRB:s syfte är att byta namn på redskapsregistret , utförande i oordning, spekulativt utförande och att tillhandahålla en tillfällig plats för resultat att lagras tills instruktionerna försvinner. IRB bestämmer vilka instruktioner som ges under steg fem.
IRB består av två buffertar, en för heltals- och flyttalsinstruktioner, den andra för laddnings- och lagrainstruktioner. Vissa instruktioner placeras i båda buffertarna. Dessa instruktioner är greninstruktioner och vissa systeminstruktioner. Varje buffert har 28 poster. Varje buffert kan ta emot upp till fyra instruktioner per cykel och kan utfärda upp till två per cykel till dess funktionella enheter.
Avrättning
Alla instruktioner börjar utföras under steg sex i de tio funktionella enheterna. Heltalsinstruktioner förutom multiplikation exekveras i två aritmetiska logiska enheter (ALU) och två skift/sammanfogningsenheter. Alla instruktioner som exekveras i dessa enheter har en encykellatens och deras resultat skrivs till destinationsregistret i steg sju.
Flyttalsinstruktioner och heltalsmultipliceringsinstruktioner exekveras i två sammansmälta multiplicera-ackumulera (FMAC) enheter och två dividera/kvadratrotsenheter. FMAC-enheterna är pipelinerade och har en tre-cykel latens. Multiplikation utförs under steg sex, addition i steg sju, avrundning i steg åtta och återskrivning i steg nio. Det finns ingen avrundning mellan stegen multiplicera och ackumulera. FMAC-enheterna utför också individuell multiplikation och add-instruktioner, som också har en latens på tre cykler för både enkelprecisions- och dubbelprecisionsvarianter . Dela/kvadratrotsenheterna är inte pipelinerade och har en 17-cyklers latens. En instruktion kan ges till dem per klockcykel på grund av registerportbegränsningar, men de kan arbeta parallellt med varandra och FMAC-enheterna.
Både heltals- och flyttalsladdnings- och lagringsinstruktioner exekveras av två dedikerade adressadderare.
Översättningsbuffert på sidan
Översättnings -lookaside-bufferten (TLB) innehåller 96 poster och är dubbelportad och fullt associativ. Den kan översätta två virtuella adresser per cykel. Denna TLB översätter adresser för både instruktioner och data. När IFU:s TLB missar, tillhandahåller denna TLB översättningen för det. Översättning för laster och butiker har högre prioritet än de för instruktioner. Varje TLB-post kan mappas till en sida med en storlek mellan 4 KB och 16 MB, i steg som är fyra potenser.
Datacache
PA-8000 har en datacache med en kapacitet på upp till 4 MB. Datacachen är dubbelportad, så två läsningar eller skrivningar kan utföras under varje cykel. Den är dubbelportad genom att implementera två cachebanker, så den är inte riktigt dubbelportad eftersom om två läsningar eller skrivningar refererar till samma bank, uppstår en konflikt och endast en operation kan utföras. Den nås av två 64-bitars bussar, en för varje bank. Cache-taggarna är externa. Det finns två kopior av cache-taggarna för att tillåta oberoende åtkomster i varje bank. Datacachen är direktmappad av samma skäl som instruktionscachen. Den är byggd av SSRAM.
Runway buss
Det externa gränssnittet är Runway-bussen , en 64-bitars adress- och datamultiplexbuss. PA-8000 använder en 40-bitars fysisk adress , så den kan adressera 1 TB fysiskt minne .
Fysisk
PA-8000 har 3,8 miljoner transistorer och mäter 17,68 mm gånger 19,10 mm, för en yta på 337,69 mm 2 . Den tillverkades av HP i deras CMOS-14C-process, en 10% gate-krympning av CMOS-14-processen. CMOS-14C-processen var en 0,5 μm, fem-nivå aluminium sammankoppling , komplementär metall-oxid-halvledare (CMOS) process. Munstycket har 704 lodbullar för signaler och 1 200 för kraft eller jord. Den är förpackad i en 1 085-pad flip chip alumina keramisk land grid array (LGA). PA-8000 använder en 3,3 V strömförsörjning.
PA-8200
PA -8200 (PCX-U+), med kodnamnet Vulcan , var en vidareutveckling av PA-8000. De första systemen att använda PA-8200 blev tillgängliga i juni 1997. PA-8200 fungerade på 200 till 240 MHz och konkurrerade främst med Alpha 21164 . Förbättringar gjordes för grenförutsägelse och TLB. Förutsägelsen av grenen förbättrades genom att fyrdubbla antalet BHT-poster till 1 024, vilket krävde användningen av en tvåbitarsalgoritm för att passa utan omdesign av omgivande kretsar; och genom att implementera en skrivkö som möjliggjorde att två grenutfall registrerades av BHT istället för ett. Antalet TLB-anmälningar utökades till 120 anmälningar från 96, vilket minskade TLB-missarna. Klockfrekvensen förbättrades också genom mindre kretsdesign. PA-8200:s dyna var identisk i storlek med PA-8000 eftersom förbättringar använde tomma områden på formen. Den tillverkades i CMOS-14C-processen.
PA-8500
PA-8500 (PCX-W), med kodnamnet Barracuda , är en vidareutveckling av PA-8200. Det bands ut i början av 1998 och introducerades i slutet av 1998 inom system. Produktionsversioner fungerade vid frekvenser på 300 till 440 MHz, men den var designad för, och har, fungerat upp till 500 MHz. De mest anmärkningsvärda förbättringarna är de högre driftfrekvenserna och integrationen av de primära cacharna. De högre driftsfrekvenserna och integreringen av de primära cacharna på samma dyna som kärnan möjliggjordes av migreringen till en 0,25 μm process. PA-8500-kärnan mätte 10,8 mm gånger 11,4 mm (123,12 mm 2 ) i den nya processen, mindre än hälften av ytan av 0,5 μm PA-8200. Detta gjorde ett område tillgängligt som kunde användas för att integrera cacharna.
PA-8500 har en 512 KB instruktionscache och en 1 MB datacache. Andra förbättringar av mikroarkitekturen inkluderar en större BHT som innehåller 2 048 poster, dubbelt så stor kapacitet som PA-8200, och en större TLB som innehåller 160 poster. PA-8500 använder en ny version av Runway-bussen . Den nya versionen fungerar på 125 MHz och överför data på både stigande och fallande flanker av klocksignalen (dubbel datahastighet, eller DDR) och ger 240 MT/s eller 2 GB/s bandbredd. Eftersom Runway-bussen används för att överföra adresser och data är den användbara bandbredden 80 % av 2 GB/s, eller runt 1,6 GB/s.
PA-8500 innehåller 140 miljoner transistorer och mäter 21,3 mm gånger 22,0 mm (468,6 mm 2 ). Den tillverkades av Intel Corporation i en 0,25 μm CMOS-process med fem nivåer av aluminiumkoppling. Den använder en 2,0 V strömförsörjning. HP tillverkade inte PA-8500 själva eftersom de hade slutat uppgradera sina fabs för att implementera en process nyare än CMOS-14C, som användes för att tillverka tidigare PA-RISC-mikroprocessorer.
PA-8500 var förpackad i en mindre 544-pad land grid array (LGA) eftersom integrationen av de primära cacharna på formen resulterade i att de två 128-bitars bussarna som kommunicerade med de externa cacharna och deras tillhörande I/O togs bort. dynor.
PA-8600
PA-8600 (PCX-W+), med kodnamnet Landshark , är en vidareutveckling av PA-8500 som introducerades i januari 2000. PA-8600 var tänkt att introduceras i mitten av 2000. Det var en tweakad version av PA-8500 för att den skulle nå högre klockfrekvenser på 480 till 550 MHz. Det förbättrade mikroarkitekturen genom att använda en nästan nyligen använd (LRU) vräkningspolicy för instruktionscache. Den tillverkades av Intel.
PA-8700
PA-8700 (PCX-W2), med kodnamnet Piranha , är en vidareutveckling av PA-8600. Introducerad i augusti 2001, fungerade den på 625 till 750 MHz. Förbättringar var implementeringen av dataförhämtning, en kvasi-LRU-ersättningspolicy för datacachen och ett större 44-bitars fysiskt adressutrymme för att adressera 16 TB fysiskt minne. PA-8700 har också större instruktions- och datacacher, ökad kapacitet med 50 % till 0,75 MB respektive 1,5 MB. PA-8700 tillverkades av IBM Microelectronics i en 0,18 μm kisel på isolator (SOI) CMOS-process med sju nivåer av kopparinterconnect och lågk- dielektrik .
PA-8700+
PA-8700+ var en vidareutveckling av PA-8700 som introducerades i system i mitten av 2002. Den fungerade på 875 MHz.
PA-8800
PA-8800, kodnamnet Mako , är en vidareutveckling av PA-8700. Den introducerades 2004 och användes av HP i deras C8000- arbetsstation och HP 9000 Superdome- servrar. Den var tillgänglig på 0,8, 0,9 och 1,0 GHz. PA-8800 var en med dubbla kärnor som bestod av två modifierade PA-8700+ mikroprocessorer på en enda dyna. Varje kärna har en instruktionscache på 768 KB och en datacache på 768 KB. De primära cacherna är mindre än de i PA-8700 för att göra det möjligt för båda kärnorna att passa på samma dyna.
Förbättringar jämfört med PA-8700 är förbättrad grenförutsägelse och införandet av en extern 32 MB enhetlig sekundär cache. Den sekundära cachen har en bandbredd på 10 GB/s och en latens på 40 cykler. Det är 4-vägs set-associativt, fysiskt indexerat och fysiskt taggat med en radstorlek på 128 byte. Uppsättningsassociativiteten valdes för att minska antalet I/O-stift. L2-cachen är implementerad med hjälp av fyra 72 Mbit (9 MB) Enhanced Memory Systems Enhanced SRAM (ESRAM) chips, som trots sitt namn är en implementering av 1T-SRAM – dynamiskt direktminne (DRAM) med ett SRAM -liknande gränssnitt . Tillgången till denna cache av varje kärna bestäms av styrenheten på tärningen och 1 MB sekundära cache-taggar finns också på tärningen som SRAM och skyddas av ECC. PA-8800 använde samma främre sidobuss som McKinley Itanium -mikroprocessorn, som ger 6,4 GB/s bandbredd och är kompatibel med HP:s Itanium-kretsuppsättningar som zx1 .
Den bestod av 300 miljoner transistorer, varav 25 miljoner var för logik, på en 23,6 mm gånger 15,5 mm (365,8 mm 2 ) dyna. Den tillverkades av IBM i 0,13 μm SOI-process med kopparkopplingar och lågk-dielektrik . PA-8800 är förpackad i ett keramiskt kulnät monterat på ett tryckt kretskort (PCB) med de fyra ESRAM, som bildar en modul som liknar de som används av tidiga Itanium-mikroprocessorer.
PA-8900
PA-8900, med kodnamnet Shortfin , var ett derivat av PA-8800. Det var den sista PA-RISC-mikroprocessorn som utvecklades och introducerades den 31 maj 2005 när system som använder mikroprocessorn blev tillgängliga. Den användes i HP 9000- servrarna och C8000-arbetsstationen. Den fungerade på 0,8, 0,9, 1,0 och 1,1 GHz. Det är inte en die shrink av PA-8800, som tidigare ryktats. L2-cachen fördubblades i kapacitet till 64 MB, har lägre latens och bättre feldetektering och korrigering på cacher. Den använder McKinley-systembussen och var kompatibel med Itanium 2-chipset som HP zx1. Det gjordes inga förändringar i mikroarkitekturen, men flyttalsenheten och on-die-cache-kretsarna gjordes om för att minska strömförbrukningen, och varje kärna avledde därefter cirka 35 W vid 1,0 GHz.
Anteckningar
- Barnes, Phillip (26 februari 1999). "En 500 MHz 64 bitars RISC CPU med 1,5 MB på chipcache". Proceedings of the International Solid State Circuits Conference .
- ComputerWire (28 juni 2002). "HP förbereder dual-core PA-8800" . Registret .
- Gaddis, N.; Lotz, J. (november 1996). "En 64-b fyrutgåva CMOS RISC mikroprocessor". IEEE Journal of Solid-State Circuits 31 (11): s. 1697–1702.
- Gwennap, Linley (14 november 1994). "PA-8000 kombinerar komplexitet och hastighet". Mikroprocessorrapport , volym 8, nummer 15.
- Gwennap, Linley (28 oktober 1996). "HP pumpar upp PA-8x00-familjen". Mikroprocessorrapport , volym 10, nummer 14.
- Gwennap, Linley (17 november 1997). "PA-8500s 1,5 M cache hjälper till att prestera". Mikroprocessorrapport .
- Hewlett-Packard Company (2 november 1995). HP tillkännager release av PA-8000 till PRO-partners . ( Pressmeddelande )
- Hill, J. Michael och Lachman, Jonathan (2000). "En 900MHz 2,25MByte cache med On Chip CPU - Nu i SOI/Cu" . 2000 International Solid State Circuits Conference .
- Hunt, D. (1995). "Avancerade prestandafunktioner för 64-bitars PA-8000". CompCons förfarande . s. 123–128.
- Johnson, David JC (16 oktober 2001). "HP:s Mako-processor". 2001 mikroprocessorforum .
- Krewell, Kevin (22 maj 2000). "HP utökar PA-RISC med 8700". Mikroprocessorrapport .
- Kumar, Ashok (19 augusti 1996). "HP PA-8000 RISC CPU" . Proceedings of Hot Chips VIII .
- Lesartre, Greg; Hunt, Doug (1997). "PA-8500: The Continuing Evolution of the PA-8000 Family". CompCons förfarande .
- Pountain, Dick (juli 1995). "HP:s Speedy RISC". Byte .
- Scott, Anne P. et al. (augusti 1997). "Fyrvägs Superscalar PA-RISC-processorer". Hewlett-Packard Journal .
- Tsai, Li C. (16 februari 2001). "En 1GHz PA-RISC-processor". International Solid State Circuits Conference .
- Wermer, Sandra (8 mars 1999). "HP:s PA-8600-processor levereras tidigare än väntat". HOISe .
Vidare läsning
- Burch, C. (1997). "PA-8000: en fallstudie i statisk och dynamisk grenprediktion". Proceedings of International Conference on Computer Design . s. 97–105.
- Gaddis, NB et al. (1996). "En 56-posters instruktionsbuffert för omordning". ISSCC sammanfattning av tekniska papper . s. 212–213, 447.
- Heikes, C.; Colon-Bonet, G. (1996). "En samprocessor med dubbla flyttal med en FMAC-arkitektur". ISSCC sammanfattning av tekniska papper . s. 354–355, 472.
- Kumar, A. (mars 1997). "HP PA-8000 RISC CPU". IEEE mikro . s. 27–32.
- Lotz, J. et al. (1996). "En RISC-CPU som inte fungerar med fyra problem". ISSCC sammanfattning av tekniska papper . s. 210–211, 446.
- Naffzinger, S. (1996). "En sub-nanosekund 0,5 μm 64 b adder design". ISSCC sammanfattning av tekniska papper . s. 362–363.
- PA-8000 PA-RISC-processor OpenPA.net
- PA-8200 PA-RISC-processor OpenPA.net
- PA-8500 PA-RISC-processor OpenPA.net
- PA-8600 PA-RISC-processor OpenPA.net
- PA-8700 PA-RISC-processor OpenPA.net
- PA-8800 PA-RISC-processor OpenPA.net
- PA-8900 PA-RISC-processor OpenPA.net