Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 23 reacties
Bron: Ars Technica

Ars Technica gaat vandaag verder waar het de vorige keer ophield. Na de geschiedenis van de eerste Pentium-architectuur tot en met de Pentium III werpt men in deel twee van dit overzicht een blik op de Pentium 4, de Pentium M en de Prescott. Toen de Pentium 4 voorgesteld werd, was er nogal scepsis omtrent het nieuwe ontwerp. De prestaties per klokcyclus vielen nogal tegen, en het compleet nieuwe ontwerp stuitte ook op de nodige kritiek. De pipeline van de P6-architectuur bestond uit twaalf stappen die voor de Pentium 4 opgesplitst werden naar twintig etappes. Doordat in elke fase minder gewerkt moet worden, kan de kloksnelheid omhoog, wat tot resultaat heeft dat hogere kloksnelheden zich ook vertalen in betere prestaties.

In de P6-architectuur werd reeds de buffer besproken die er voor zorgde dat eventuele haperingen in de aanvoer van instructies opgevangen werden zodat de uitvoerende hardware geen tijd hoeft te verliezen. Door de nog langere pipeline van de Pentium 4 was het reservation station echter niet meer voldoende. Door de hogere kloksnelheden kon de front end-hardware de instructies niet snel genoeg meer aanleveren. Een mogelijk oplossing was het uitbreiden van de buffer en het instruction window geweest. Hoewel dit een van de maatregelen is die Intel nam - de Pentium 4 kan maar liefst 126 instructies tegelijk in de gaten houden -, werd een andere belangrijke wijziging aangebracht. De trage x86-vertaalstap werd namelijk uit de pipeline verwijderd door de L1-cache om te vormen tot een cache voor gedecodeerde instructies.

Schema Pentium 4 architectuur

De P6 haalde de x86-instructies uit de L1 cache en converteerde deze naar micro-operations (eenvoudige en uniforme interne instructies die gemakkelijker beheerd kunnen worden) voor ze naar het reservation station verplaatst werden. De nieuwe Pentium 4 daarentegen haalt de x86-instructies op uit het L2-cachegeheugen, vertaalt deze naar reeksen micro-operations en plaatst deze traces vervolgens in de nieuwe L1-cache. Hierdoor hoeven de instructies niet meer vertaald te worden in de pipeline en kunnen ze de weg naar de uitvoerende hardware sneller afleggen. Hoewel Intel geen details wou vrijgeven omtrent deze cache, beweert men dat er 12KB uops (micro-operations) in opgeslagen worden met een hit ratio equivalent aan dat van 16KB traditionele L1-cache. De trace cache is dus een reservoir waarin de vertaalde uops opgeslagen worden voordat ze naar het kleinere instructiereservoir verhuizen.

Pentium 4Het werd reeds eerder vermeld, maar ook het instruction window werd aangepast voor de Pentium 4. Zoals in het vorige artikel duidelijk gemaakt werd, bestond het instruction window van de P6 uit het reservation station en de reorder buffer. Ook de Pentium 4 beschikt over een reorder buffer die overigens heel wat groter is dan in de P6. Het reservation station werd voor de Pentium 4 echter opgesplitst in verschillende onderdelen. Per klokcyclus kunnen namelijk drie uops uit de trace cache naar de reorder buffer overgeheveld worden. Van daaruit worden de instructies in een van beide wachtrijen geplaatst: geheugenoperaties gaan in de memory queue terwijl rekenwerk in de arithmetic-logic queue geplaatst wordt.

Deze wachtrijen hebben een FIFO-structuur en zijn gelinkt met verschillende schedulers. Deze bepalen wanneer de noodzakelijke bronnen en gegevens voor een instructie beschikbaar zijn en plannen op basis daarvan de volgorde waarin de uops uitgevoerd worden. Het voordeel van deze splitsing van het instruction window in twee wachtrijen is dat men de verzekering heeft dat beide types van instructies steeds beschikbaar zullen zijn, zodat een overvloed aan rekeninstructies bijvoorbeeld er niet voor zorgt dat geheugenbewerkingen blijven liggen. Het is dus de bedoeling dat, door al deze aanpassingen, de uitvoerende hardware een onafgebroken aanvoer van nieuwe opdrachten krijgt. Bij de P6 werden instructies uit het reservation station door een van de vijf beschikbare poorten naar de execution core gestuurd.

Pentium 4De Pentium 4 beschikt echter slechts over vier poorten: twee voor geheugenoperaties, twee voor alle andere instructies. Met deze vier poorten kan de Pentium 4 echter toch zes uops per klokcyclus naar de execution core sturen. Execution port 0 is verbonden met een Fast Integer ALU die integerberekeningen uitvoert, evenals logische bewerkingen. Deze ALU staat ook in voor het evalueren van branch-voorwaarden en uitvoeren van store-data uops. Doordat deze ALU zowel op de rijzende als op de dalende flank van een kloktik instructies kan uitvoeren werkt deze eenheid dubbel zo snel als de klokfrequentie. Naast de eerste ALU is execution port 0 ook verbonden met een eenheid die instaat voor het verplaatsen en opslaan van floating-point instructies en SSE-bewerkingen.

Execution port 1 is op zijn beurt verbonden met een tweede double-speed ALU, die echter enkel integerbewerkingen uitvoert. Daarnaast is er ook een trage integer ALU die de tragere bewerkingen zoals 'shift' en 'rotate', die niet in een halve klokcyclus uitgevoerd kunnen worden, voor zijn rekening neemt. De derde ALU waarmee deze port verbonden is, berekent floating-point en SSE-instructies, evenals MMX-bewerkingen. De eigenschap van de twee snelle ALU's om zowel op de rijzende als de dalende flank een integerbewerking uit te voeren, houdt in dat de Pentium 4 eigenlijk over vijf logische ALU's beschikt. Dit verklaart dan ook meteen waarom de Pentium 4 het in veel integer-benchmarks zo goed doet. Met de Pentium 4 werd overigens ook SSE 2 geïntroduceerd. Deze technologie bood niet alleen een 128-bits datatype met twee double-precision floating-point argumenten maar onder andere ook ondersteuning voor SIMD-berekeningen met 64-bits integers als argumenten en uitgebreide ondersteuning voor geheugenbewerkingen.

Deze uitbreidingen zijn overigens een illustratie van Intels strategie om kleinere transistoren niet enkel te benutten om de kloksnelheid omhoog te halen, maar om extra functies aan de core toe te voegen. De verbeterede SIMD-support biedt echter niet aan alle applicaties zoveel voordelen. De prestatieverbetering is afhankelijk van hoe sterk de software gebruikmaakt van specifieke hardware. Dit in tegenstelling tot een verbetering van hardware die, onafhankelijk van de software, een prestatieverbetering teweeg brengt. Zoals eerder al vermeld werd is een van de gevolgen van de lange pipeline en hoge kloksnelheid de noodzaak voor een groter instruction window. Een ander gevolg is echter de complexiteit van de hardware die instaat voor de branch prediction. Door de langere pipeline gaan bij een verkeerde voorspelling namelijk nog meer instructies verloren dan wat bij de P6 het geval was.

Branch Prediction / TakkenDaarom beschikt de Pentium 4 ook over twee branch predictors: een dynamische en een statische. De dynamische predictor bestaat uit een Branch History Table en een Branch Target Buffer. Codetakken die niet dynamisch voorspeld kunnen worden, doordat ze bijvoorbeeld niet in de BHT voorkomen, worden door de statische predictor afgehandeld. Deze gaat overigens relatief eenvoudig te werk en gaat uit van de veronderstelling dat een codetak meestal voorkomt als eindvoorwaarde in een loop. Voorwaartse takken worden daarom altijd voorspeld als 'zal niet genomen worden' terwijl takken in de code die terugkeren als 'zal genomen worden' voorspeld worden.

De pipeline van de Pentium 4 is overigens de eerste die gebruik maakte van drive stages. Deze stappen zorgen er alleen maar voor dat de kloksnelheid van de processor niet gelimiteerd wordt door de tijd die signalen nodig hebben om hun doel te bereiken. Verder hebben deze stappen echter geen enkel nut en vormen ze dan ook een van de nadelen van de hoge kloksnelheid. Dit is namelijk nog een extra stap in de pipeline die in het geval van een branch misprediction gewist moet worden. De pipeline van de Pentium 4 doet dus uiteindelijk hetzelfde als bij de P6, maar splitst bepaalde stappen op in meerdere onderdelen zodat de pipeline langer maar sneller wordt.

Het is reeds bij elke generatie Pentium-processors aan bod gekomen en ook bij de Pentium 4 wil men even stilstaan bij de x86-ondersteuning. Bij de Pentium 4 is dit echter een geval apart, aangezien de trace cache zowel een symptoom als een oplossing voor de x86-ondersteuning is. Omdat chips die geen ondersteuning voor x86 bieden ook een L1-cache hebben die vergelijkbaar is met de trace cache kan deze niet als een echte 'kost' aangerekend worden. Door zijn complexe eigenschappen, zoals de mogelijkheid om trace segments op te stellen, wordt hij echter ingewikkelder dan traditioneel L1-cachegeheugen, wat dan weer een argument is om de x86-ondersteuning wel als een nadeel te beschouwen.

Pentium 4 HT HyperThreading logo (klein)Om het Pentium 4-verhaal af te sluiten wordt nog een kleine zijstap richting hyperthreading gemaakt. HT, of simultane multi-threading, maakt het mogelijk om verschillende threads tegelijk uit te voeren. Eenvoudig uitgelegd komt het erop neer dat het instruction window niet alleen langer geworden is, maar ook breder zodat instructies van twee verschillende threads bekeken kunnen worden. Voor een meer uitgebreide uitleg wordt echter naar een ander artikel verwezen. Iets meer dan een jaar geleden werd de Pentium M voorgesteld. Hoewel Intel weinig details heeft vrijgegeven over deze architectuur, zijn er toch enkele opvallende aanpassingen die de moeite van het vermelden waard zijn. Deze generatie is overigens gebaseerd op de Pentium III-architectuur met enkele aanpassingen die hem op de Pentium 4 doen lijken, maar niet zo ingrijpend zijn als bij de Pentium 4 het geval is.

De belangrijkste wijziging is het grotere instruction window. Zo zijn de reorder buffer en het reservation station uitgebreid en ook de andere buffers (zoals de memory reorder buffer) zijn vermoedelijk wat groter gemaakt. Deze uitbreiding was nodig omdat de Pentium M ook enkele stappen aan de pipeline toevoegde. Hoewel Intel details hieromtrent niet wil bekendmaken, wordt algemeen vermoed dat er drie of vier stappen aan de pipeline toegevoegd werden zodat de kloksnelheid omhoog kon. Ook de branch prediction werd verbeterd. Zo kan deze generatie ook indirecte takken in de code voorspellen en beschikt hij met een loop detector over betere dynamische voorspellingen. Verder worden uops in de Pentium M nog eens extra vertaald naar macro-instructies. Door bepaalde groepjes uops samen te voegen in een macro-instructie, nemen ze slechts één entry in de reorder buffer en het reservation station in. De verschillende uops worden echter wel nog steeds apart uitgevoerd.

Pentium 4 Prescott - (op zijn rug gelegd)

Dit brengt ons bij de meest recente versie van de Pentium-processor. De 90nm Pentium 4 zoals hij door Ars Technica genoemd wordt, ofwel de Prescott. Net zoals bij de Pentium M is Intel niet zo gul met informatie, maar dat sluit niet uit dat er toch verschillende aanpassingen in de architectuur bekend zijn. Zo is bijvoorbeeld de pipeline weer iets langer geworden in vergelijking met de Pentium 4, vermoedelijk twee stappen. Wat in die twee stages precies gebeurt is niet bekend, maar Intel stelt dat ze toegevoegd werden om de kloksnelheid gemakkelijker op te kunnen schalen. Ook de integer ALU's werden enigszins aangepast. Zo kreeg een van beide units extra functionaliteit om shifts en rotates uit te voeren, zodat deze instructies nu ook dubbel zo snel uitgevoerd kunnen worden. Bovendien werd een dedicated integer multiplier toegevoegd, vermoedelijk aan de ALU die de complexe integerbewerkingen voor zijn rekening neemt.

De reorder buffer kan bij de Prescott nog steeds 126 entries bevatten, maar het instruction window is groter geworden. Dit betekent dat de schedulers die de floating-point en SIMD-instructies plannen uitgebreid zijn, net zoals de wachtrijen die de instructies aan deze schedules aanleveren. Om deze grotere pipeline en buffers steeds te voorzien van voldoende rekenvoer werd het L1-cachegeheugen uitgebreid van 8KB tot 16KB en beschikt de Prescott over 1MB L2-cache. Met dertien nieuwe instructies introduceert de Prescott bovendien SSE3 dat betere conversies van floating-point naar integer kan uitvoeren, evenals videocodering, complexe berekeningen en andere multimediacode. Tot slot werd ook de branch prediction verbeterd. Door loops te bestuderen slaagde men er namelijk in om vooral de statische predictor te verbeteren. Volgens Intel is er namelijk een relatie tussen de afstand van de tak naar de voorwaarde. Indien een codepad niet dynamisch voorspeld kan worden zal de statische predictor zich dan ook baseren op deze afstand om te voorspellen welke tak genomen zal worden.

Moderatie-faq Wijzig weergave

Reacties (23)

Tegenwoordig is het toch ook mogelijk om later nog een CPU te patchen wat de micro instructies betreft?
klopt
en dat gebeurt ook regelmatig.
kijk maar eens in het changelog van de bios van je mobo.
zal vast wel een keer een micro code update in voorkomen.
(de update zit in de bios omdat hij elke keer dat de computer opnieuw opstart opnieuw geupdate moet worden)
* En dan nu nog de geschiedenis van AMD en John is weer volledig up-to-date en kan weer meepraten :P
Zo is bijvoorbeeld de pipeline weer iets langer geworden in vergelijking met de Pentium 4, vermoedelijk twee stappen.
2 maar?
ik heb altijd gehoord dat hij van 20 naar 30 stappen is gegaan? dus zo'n 50% langer is geworden.

hier
http://zdnet.com.com/2100-1103_2-5144907.html
dus de P6 is ouder dan de P4 :?
Nee de P6 is een type archtectuur en de P4 is gewoon een afkorting van Pentium 4 (ik meende dat de P6 architectuur de basis is van de Pentium Pro, de Pentium 2, Pentium 3 en de Pentium 4 processor)
P6 is niet voor de Pentium 4 gebruikt dacht ik.

De P4 is al zevende generatie:
http://www.azillionmonkeys.com/qed/cpujihad.shtml
De P6 architectuur is de basis van den Pentium Pro, Pentium 2, Pentium 3 en voor een stuk de Pentium M.

De Pentium 4 is gebouwd op de (nieuwe) Netburst architectuur.
@DenDave:
Tegenwoordig loopt het cache, in ieder geval het L1-cache, toch ook op de volledige kloksnelheid?
Dus een PPro is sneller dan een P4? Gevoelsmatig misschien wel als je die trage 486's en P1's gewend was :z
Ohh die fijne tijden toen de PPro er was.. dat was een geweldig ding. Full speed on-die cache! Kaboom! Dat ging snel! Zeker als je er twee van had... gr grrr...


< :*)enDave heeft heimwee naar betere tijden..>
Nee P6 is naams verwarring en bestaat nog niet.
Pentium VI ?

8086/8088
80186
80286
80386
80486
Pentium
Pentium MXX
Pentium II
Pentium III
Pentium IV

P6 is een verbastering van 80686 dat kan slaan op Pentium PRO/MMX/II een van deze drie als intel 80?86 aanduiding nog doorvoerde.
Cirix gebruikte 586 en 686 als aanduiding.

Pentium Classic komt over een met 80586 of 80686
Pentium pro is de voorloper van Xeon

Dus P6 is er niet, is foutieve naam
ik denk dan meer aan een
801186 == Pentium 6
'n tejas vervanger 64bit ofzo

Sinds Pentium is telling gereset. 80x86 naam aanduiding is er niet meer this pentium en dan opnieuw tellen.
Lees anders ff beide delen voor je wat gaat roepen

De P6 heeft niks te maken met een eventuele Pentium 6, maar is gewoon de aanduiding voor de architectuur waarop de core van de Pentium III gebaseerd is
De P staat in dit hele onzinverhaal voor 'processorgeneratie'. Feitelijk bestaat die hele aanduiding niet, dus is het weinig zinvol om er over te discusseren.

Er bestaat geen (intel) 80586, intel is gestopt met die benaming bij invoering van de pentium. De reden hiervoor is dat ze een nummer niet als merk konden vastleggen, waardoor bv. AMD ook 486 processoren konden maken (en dat met verve deed, AMD liep in MHZ in die tijd eigenlijk altijd een paar tientallen herzen voor, bv. de 386DX-40, 486 Dx4-120, enz).

Intel heeft dat gedaan om naamsbekendheid te krijgen. Ook de 'intel inside' campagne is in die tijd gestart.

Er bestaat geen pentium 5 of 6, noch bestaat er een 80786 of iets dergelijks. Wat er wel bestaat is de 6e generatie processoren, welke begint met (als ik me niet vergis) de pentium pro, zoals ook al eerder gemeld.

Al het andere bovenstaande, over het resetten van nummerwijzes, P6's enzovoort is allemaal lariekoek.
P staat voor Pentium
P 6 = Pentium 6
Nee. P6 staat niet voor Pentium 6. Dat is precies wat Yoeri zegt, en dat probeer je vervolgens onderuit te halen door er vanuit te gaan dat het er *wel* voor staat. Beetje curieus. :)
P staat voor Pentium
P 6 = Pentium 6

En dat slaat totaal niet op 686

zal ik es P6 voluit schrijfen in jouw quote:
als Pentium 6
Lees anders ff beide delen voor je wat gaat roepen

De Pentium 6 heeft niks te maken met een eventuele Pentium 6, maar is gewoon de aanduiding voor de architectuur waarop de core van de Pentium III gebaseerd is
P6 staat voor Pentium 6 is aanduiding voor Pentium 3 core?
Wat een hoop onzin weer, de x86 telling is helemaal niet 'gereset', die loopt gewoon door:
Pentium is de 80686 en de Pentium 2/3/4 reeks is de 80786

Edit:
M'n waarde Onno, je hebt helemaal gelijk, ik denk dat ik moeite met tellen heb :)
Pentium == 80586
Pentium pro and beyond == 80686

@SG:
Ik verzin die benamingen dus mooi niet, ik weet niet meer zo hoe software geregeld is in het windows wereldje waarin jij je begeeft, maar in het Unix wereldje waar ik me begeef hebben we het continu over i686 geoptimaliseerde code en meer van dat soort grapjes ;)
Zelluf onzin! Als je nummers wilt gebruiken is de Pentium nog altijd 586, en p6 (dus vanaf PPro) 686. :)
Wat voor pentium is de 80386?
Pentium min 2 ?

80486 is de CPU naam
net zoals dat voor ene ander CPU type Pentium is.

Ik neem aan dat iNtel één naam geeft aan zijn produkten en geen dubbele of meerbenaming.

en dan heb ik het niet over interne produkt code zoals prescot Cumine.

Maar de Officiele naam.
80386 en Pentium 4 zijn officiele namen.

Of link je elke Pentium effe met de natte vinger aan een 80x86 versie.

Tuurlijk gereset van cijfer naam naar merknaam Pentium en van daaruit opnieuw tellen

Om een hoofd rede een naam uit letters is wel te beschermen dan een pure cijfer reeks.

tuurlijk kan ieder voor zich 80x86 doortrekken langs de Pentium lijn als je dat leuk vind.

Maar doe niet P %variable% == 80%Variable%86

Dat is wat ik boner wou duidelijk maken
Wauw! Ik krijg een heel stijf klein piemeltje! :9~ :9~
Volgens mij is niemand hier geinteresseerd in het wel en wee en de status van jou geslachtsdeel.
daar sluit ik me bij aan :+
-Beetje offtopic-

Wat een slecht SMD werk op die Prescott (zie foto)
Helft van die condensatoren zit niet recht !
Misschien Engineering-sample ?
Op normale CPU's heb ik ze iig nooit zo scheef zien zitten.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True