Stephen Fhisher
An English translation of this article can be found here.
De Californische stad Folsom, twee uur rijden ten noordoosten van San Francisco, is bij het gewone publiek niet zo bekend. Mensen die er wel heen gaan komen vooral vanwege de ligging vlakbij het prachtige Lake Tahoe en de skigebieden in het Sierra Nevada-gebergte. Wie rondrijdt in het pittoreske, typisch Amerikaanse plaatsje met ongeveer 60.000 inwoners, zou echter nooit vermoeden dat het tevens de thuisbasis is van een van de meest geavanceerde stukjes techniek die de mens ooit voortgebracht heeft.
Als de lokale bevolking zijn verhaal doet zal dat wellicht veranderen, want bijna iedereen in Folsom moet wel iemand kennen die op de enorme campus aan de rand van de stad werkt: zeven gebouwen waar met grote letters 'Intel' op prijkt.
Bijna zevenduizend mannen en vrouwen doen daar allerlei werk voor verschillende afdelingen van het bedrijf, maar zijn op dit moment vooral trots op het feit dat het de plaats is waar 's werelds eerste 45nm-processor is ontworpen, getest en geperfectioneerd. Tweakers.net werd rondgeleid door verschillende laboratoria en sprak met Stephen Fisher, de lead architect achter Penryn.
Fisher heeft al een lange carrière bij Intel achter de rug: hij werkte onder meer aan de 486, de definitie van de mmx- en sse-instructies en de Pentium III. Het vorige product waar hij aan werkte droeg de codenaam 'Tejas'. Dit zou een 65nm-versie van de Pentium 4 worden met een extreem lange pipeline (40 tot 50 stappen) om kloksnelheden van 7GHz of zelfs nog meer te kunnen halen.
Tejas was al in een vrij vergevorderd stadium van ontwikkeling toen Intel begin 2004 inzag dat de Pentium 4-strategie geen toekomst meer had. Het team had net de belangrijke 'tape-out'-mijlpaal gehaald toen het nieuws binnenkwam dat hun project geannuleerd was. De 'tape', die eigenlijk naar de fabriek gestuurd zou worden om de eerste fysieke versie van de chip te laten maken, ligt nu ergens in een kluis stof te verzamelen.
Hoewel dit natuurlijk een teleurstelling was voor Fisher, bleef hij niet lang werkeloos. Direct na het annuleren van Tejas werden twee nieuwe projecten opgestart: Penryn en Nehalem. De twee teams begonnen vanuit dezelfde startpositie: een vroege alfaversie van de Merom-architectuur, die nu bekendstaat als Core 2 Duo. Het Penryn-team moest echter een jaar eerder klaar zijn dan het Nehalem-team.
Tick-tock
Het gelijktijdig ontwikkelen van meerdere ontwerpen voor hetzelfde procedé is wat Intel het 'tick tock'-model noemt. Een van de redenen hiervoor is dat kleinere transistors tot op zekere hoogte onvoorspelbaar zijn. Toen men begon aan Penryn en Nehalem was het mei 2004, toen de meest geavanceerde techniek 90nm was. Het was toen net zo moeilijk te voorspellen hoe 45nm-circuits zich zouden gedragen als het nu is om te zeggen hoe dingen op 22nm gaan werken. Men heeft altijd wel ruwe schattingen om vanuit te gaan, maar die veranderen naarmate er steeds meer definitieve beslissingen worden genomen en de theorie wordt omgezet in de praktijk.

De eerste 45nm-chip werd begin 2006 gemaakt, minder dan een jaar voor Penryn af moest zijn.
Veranderende eigenschappen van een procedé, ook wel 'design rules' genoemd, zijn een groot probleem voor ontwerpers. Als ze te vooruitstrevend proberen te zijn zou zomaar ineens kunnen blijken dat hun ideeën simpelweg niet te realiseren zijn. Maar pakken ze het te conservatief aan, dan wordt weer niet optimaal gebruikgemaakt van de mogelijkheden die de vele miljarden dollars kostende fabrieken bieden.
Intel heeft er daarom voor gekozen om twee wegen tegelijk te bewandelen, met ongeveer een jaar verschil er tussen. Voor de 45nm-generatie is Penryn de conservatieve benadering en Nehalem de vooruitstrevende. Ieder probleem dat het eerste team tegenkwam is een les geweest voor het tweede team, dat vervolgens zes maanden tot een jaar langer de tijd had om het op te lossen. Vanwege deze luxepositie kon het tweede team zich veel beter concentreren op nieuwe features, zoals in dit geval het integreren van multithreading, een geheugencontroller en een videochip.
Deze tactiek wil het bedrijf de komende jaren steeds blijven herhalen. Voor de 32nm-generatie staan er dus ook twee ontwerpen op de roadmap: 'Westmere' zal een conservatief gekrompen versie van Nehalem zijn, terwijl de vooruitstrevende 'Sandy Bridge' weer een hoop nieuwe features moet toevoegen. En daarbij houdt het niet op: Fisher onthulde op dit moment al bezig te zijn met een 22nm-ontwerp. Elders bij Intel is men ook al serieus aan het nadenken over welke features er in de 16nm-generatie bij moeten komen.
De geboorte van Penryn
Even terug naar het heden: Penryn. De eerste versie van de processor werd in december 2006 gebakken in de ontwikkelfabriek D1D in Oregon, bijna 800 kilometer ten noorden van Folsom. Een team van ongeveer vijftig man zat midden in de nacht te wachten terwijl iemand met een van Intels 'shuttles' (privévliegtuigen) onderweg was met de A0-versie van de chip.
Ze hadden natuurlijk ook gewoon tot de volgende ochtend kunnen wachten, maar wilden maar wat graag zien of de chip waar ze op dat moment al dik twee jaar aan gesleuteld hadden ook daadwerkelijk werkte. Bovendien wilden ze het record van het Merom-team verbeteren, dat er in geslaagd was om binnen dertig minuten Windows te booten op de A0-versie van Core 2 Duo. Er was die nacht goed nieuws en slecht nieuws: Penryn werkte, maar het duurde zes uur om Windows aan de praat te krijgen.
Na de A0-versie zijn er nog een aantal andere steppings gemaakt. Dit gebeurt om verschillende redenen, zoals het oplossen van bugs, het verbeteren van de yields of het mogelijk maken van hogere kloksnelheid. De versie die vanaf 12 november in de winkels ligt heet C0 en is de vijfde revisie van het ontwerp.

Penryn van dichtbij: 420 miljoen transistors op 107mm²
Maar hoe test Intel dit soort dingen nou? Alleen Windows starten is duidelijk niet genoeg om te weten of alle functies werken zoals het hoort. En een nacht SuperPi draaien is - in tegenstelling tot wat sommige overklokkers denken - ook niet genoeg om te zeggen dat een chip stabiel is op een bepaalde kloksnelheid. En wat gebeurt er als er een bug gevonden wordt in de hardware? Penryn pakt bijna vier miljoen transistors per vierkante millimeter samen, het is toch onmogelijk om er achter te komen wat daarbinnen precies fout gaat? Of toch niet?
Logische validatie
Bij de logische validatie richt men zich puur op de functionaliteit van de chip, waarvoor men drie soorten tests gebruikt. De eerste categorie bestaat uit standaardsoftware: benchmarks, spellen, besturingssystemen, (server)applicaties, noem maar op. Dit is de makkelijkste categorie om voor te slagen, omdat dit soort 'normale' software meestal geen hele vreemde code of nieuwe features gebruikt.
De tweede trap is al moeilijker: dat zijn tests die specifiek zijn geschreven om bepaalde (nieuwe) features aan de tand te voelen. Deze worden vaak gemaakt door de ontwerpers zelf, die natuurlijk precies weten hoe ze iedere vreemde uitzondering kunnen nabootsen.
De laatste categorie is wellicht de zwaarste: dan worden er volledig willekeurige instructies op de processor afgevuurd om te kijken of de fysieke chip zich hetzelfde gedraagt als het softwaremodel dat ervan is gemaakt. Deze 'emulator' kan natuurlijk al uitvoerig getest worden voor de eerste fysieke chip terugkomt uit de fabriek, dus als de hardware identiek reageert op iedere combinatie van instructies en data dan is de kans groot dat alles in orde is.

Dit bord is apart genomen om even goed doorgemeten te worden
Zoals verwacht kan worden van een van de grootste technologiebedrijven ter wereld verloopt alles vrijwel volledig automatisch. Een groot netwerk voert volledig automatisch tests aan en resultaten af, waardoor de werknemers zich alleen maar met de problemen bezig hoeven te houden.
Als er een probleem gevonden wordt is het de belangrijkste taak van de mensen in het lab om uit te vinden waar het zit, want het hoeft niet altijd de processor zelf te zijn. Ook software, het bios of de chipset kunnen crashes veroorzaken. Door het testplatform aan een hele serie apparaten te hangen, kan men precies kijken welke signalen er over de bussen heengaan en wat de interne staat van de processor is (bijvoorbeeld de inhoud van de registers) om een diagnose te stellen. Soms blijkt overigens ook dat de processor wel goed is, maar de testsoftware een fout bevat. Al met al kan het nog een aardige puzzel zijn om de oorzaak van een probleem te vinden.
Circuitvalidatie
De chip moet echter niet alleen functioneel in orde zijn, maar ook de beoogde kloksnelheid halen. Zolang die niet naar tevredenheid is wil men graag weten welke 'speedpaths', de knelpunten in de circuits, opgelost moeten worden om het volgende niveau te bereiken.
Het lab waar men dit werk doet is in opzet vrijwel identiek aan het vorige: een hele zaal vol met 19"-racks, waarbij in iedere kast een speciaal voor testdoeleinden ontworpen moederbord ligt. Deze testborden gebruiken standaard chipsets, maar zijn daarnaast voorzien van tientallen extra aansluitingen rond de processor, zodat men allerlei gegevens kan uitlezen terwijl het systeem draait. Boven het systeem dat getest wordt staat een normale pc die de tests uitvoert en de resultaten verzamelt.
Het grote verschil tussen het logicalab en het circuitlab is dat men hier ook met de kloksnelheid en temperatuur speelt. De mannen van Intel gebruiken een geavanceerde vorm van 'temperature control', een centrale vloeistofkoeling waarmee temperaturen van -50 tot +80 graden Celsius ingesteld kunnen worden.

Het doel van deze zogenaamde 'circuit marginality validation' is om er achter te komen tot welke kloksnelheid en bij welke temperaturen de chip nog steeds door de tests heen blijft komen. Zodra een snelheid bereikt wordt waarop sommige tests beginnen te falen, of de koeling die nodig is om stabiel te blijven te zwaar wordt geacht, gaat men op zoek naar de oorzaak van het probleem. In de meeste gevallen kan dan een circuit worden geïdentificeerd dat niet goed genoeg presteert.
De voor de hand liggende vraag of ze Penryn ook overgeklokt hebben, wordt met brede grijnzen beantwoord, maar of ze verder zijn gekomen dan de 5,56GHz die vorig week is gedemonstreerd wilde men niet zeggen. De driedubbele phasechangekoeling van XtremeSystems die voor die overklok werd gebruikt is zonder twijfel nog geavanceerder dan het spul dat Intel heeft staan, maar daar staat tegenover dat de mannen in het lab toegang hebben tot het binnenwerk van de chip.
Patchen op 45nm
Als er een bug gevonden wordt moet die natuurlijk worden opgelost. Of het nu om een fout in de logica gaat of om een ongelukkige implementatie van een circuit die de kloksnelheid beperkt; om van een A0-chip naar een product te komen moet er flink wat gesleuteld worden.
Sommige bugs zijn echter bijzonder lastig om te traceren. Met name als het ontwerp gewoon goed lijkt of simulaties voorspelden dat een traag circuit gewoon snel had moeten zijn, kunnen de ontwerpers niets meer doen dan op goed geluk dingen aanpassen, in de hoop dat de situatie daarmee verbetert... ware het niet dat Intel een aantal heel dure machines heeft staan die in dat soort situaties uitkomst kunnen bieden.
Een processor waarin een 'onverklaarbaar' probleem wordt gevonden ondergaat een speciale behandeling: de standaard metalen heatspreader gaat er als eerste af. Vervolgens wordt de beschermde laag daaronder ook weggefreesd, zodat er van de 750µm nog maar ongeveer 10µm overblijft. Daarna plaatst men de chip in een speciaal ontworpen testsocket met een puur diamanten heatsink. Diamant is sowieso een goede geleider van warmte, maar belangrijker voor dit verhaal is dat het ook doorzichtig is.
Een minder bekende eigenschap van silicium is namelijk dat het ook transparant is. Niet voor het blote oog, maar wel voor infrarood. Met een zeer precieze laser is het dus mogelijk om letterlijk ín de chip te kijken om te zien wat er gebeurt. Met een 2,6 miljoen dollar kostend apparaat dat speciaal voor Intel is ontwikkeld kan het naar individuele transistors kijken om te meten of er spanning op staat of niet, met de nauwkeurigheid van een picoseconde, een miljoenste van een miljoenste seconde. Hiermee kan dus letterlijk zichtbaar gemaakt worden waar en hoe snel de transistors schakelen.
Een van de interessante extra features van de testplatforms die men gebruikt, is dat het mogelijk is om de klok van de chip te vertragen. Degene die de machine bedient kan er voor kiezen om van drie miljard tikken per seconde (3,0GHz) naar één tik per seconde te gaan, zodat mensenogen het allemaal iets beter kunnen volgen. Met hetzelfde gemak kan de klok helemaal stilgezet worden, zodat men desnoods twee uur kan staren naar een situatie die normaal in een fractie van een nanoseconde voorbij is.

Om transistors te vinden wordt het ontwerp van de chip automatisch over de beelden heen geprojecteerd
Een tweede apparaat gooit daar nog een stap bovenop: deze kan letterlijk inzoomen tot details van minder dan een nanometer en dan vervolgens nog bewerkingen uitvoeren ook. Dit gebeurt door bepaalde chemicaliën in de laserstraal te verdampen en zo direct de chip in te schieten. Met een corrosieve oplossing kunnen verbindingen worden verbroken, terwijl metalen en silicium gebruikt kunnen worden om nieuwe structuren aan te leggen.
Dit apparaat is zo gevoelig dat het extra gestabiliseerd moest worden nadat er buiten op straat verkeersdrempels waren aangelegd. Trillingen veroorzaakt door de auto's die er overheen reden zorgden er namelijk voor dat het beeld van de operator op en neer zwiepte.
Deze techniek bespaart de ontwerpers enorm veel tijd: een nieuwe revisie van de chip door de fabriek laten maken kost minimaal vier tot zes weken, terwijl het met dit apparaat binnen een dag voor elkaar kan zijn. Hoewel het niet bedoeld is voor massaproductie, komt dat bij uitzondering wel voor. Twee weken voor de introductie van de eerste Pentium 4 werd bijvoorbeeld nog een bug gevonden in de southbridge. Men heeft destijds als een gek honderden chips lopen 'patchen' om in de eerste weken toch moederborden te kunnen leveren.
Errata en conclusie
Hoe goed Intel ook zijn best doet, een chip zo complex als Penryn kan nooit helemaal perfect zijn, althans niet zonder er nog een paar jaar langer aan te werken. Sommige problemen worden daarom softwarematig opgelost door middel van microcode- of bios-updates. Andere problemen - meestal degenen die tijdens het uitvoeren van willekeurige instructies worden ontdekt - worden helemaal niet opgelost. Ofwel omdat men denkt dat de omstandigheden zo bizar zijn dat niemand ze ooit zal tegenkomen in de praktijk, ofwel omdat de potentiële gevolgen zo klein zijn dat het niet de moeite waard is om op te lossen.
Alles wat men in de labs vindt wordt wel gepubliceerd. Voor de eerste commercieel beschikbare versie van Core 2 Duo zijn in totaal 112 van deze zogeheten 'errata' bekend. Intel gebruikt die term omdat het 'bugs' een te groot woord vindt. Bugs zijn er om opgelost te worden, maar van de meeste errata hoeft vrijwel niemand wakker te liggen. Bijvoorbeeld:
With respect to the retirement of instructions, stores to the uncacheable memory-based APIC register space are handled in a non-synchronized way. For example if an instruction that masks the interrupt flag, e.g. CLI, is executed soon after an uncacheable write to the Task Priority Register (TPR) that lowers the APIC priority, the interrupt masking operation may take effect before the actual priority has been lowered. This may cause interrupts whose priority is lower than the initial TPR, but higher than the final TPR, to not be serviced until the interrupt enabled flag is finally set, i.e. by STI instruction. Interrupts will remain pending and are not lost.
Deze zomer zijn 39 van dit soort punten opgelost in de nieuwe G0-stepping, maar er is ook een nieuwe gevonden. Ondanks het feit dat er dus nog steeds 74 bekende 'fouten' in de chip zitten, zullen de meeste mensen beamen dat ze nergens last van hebben, wat betekent dat de mensen in het validatielab hun werk goed hebben gedaan.
Conclusie
Het ontwikkelen van een processor neemt al snel drie tot vier jaar in beslag, waarbij men zich in het laatste jaar voor de introductie alleen nog maar bezighoudt met testen en perfectioneren. Het valideren begint echter niet pas op het moment dat de eerste chip terugkomt uit de fabriek, net zo min als het ophoudt zodra een product eenmaal op de markt is. Ook komt het maar zelden voor dat de processor als geïsoleerd onderdeel getest kan worden: vaak moet de chipset tegelijkertijd worden getest, wat de zaken nog een stuk complexer maakt.
Wat we in dit artikel hebben laten zien is dus maar een klein deel van het totale traject, maar hopelijk is daardoor wel duidelijk geworden dat er een groot verschil is tussen het hebben van samples en het daadwerkelijk klaar zijn voor de introductie van een product. Het feit dat Intel vorige week een machine op het podium had staan die het zinnetje 'Hi, I am Nehalem. I am only three weeks old, and I am already talking.' kon oplezen is weliswaar bemoedigend, maar het komende jaar zal deze chip nog een uitgebreid traject moeten ondergaan voor hij klaar is om uitgebracht te worden.

Een chronologisch overzicht van de verschillende stappen in het validatieproces