Dessa är verkligen, som Paul Simon sjöng, de dagar av underverk och underverk. Det verkar nästan omöjligt att tro att ingenjörerna nu lyckats designa och bygga en maskin vars komponenter mäter så lite som 40nm över. Det är bara en tusenedel av ett människohårs diameter.

Ändå gör vi sådana enheter just nu. De kallas generella bearbetningsenheter, och de börjar utmana centralenheten för sin långvariga titel av den mest magiska tekniken som finns i en dator.

Vilket hot ligger CPU-enheten? Tänk på en topp-skrivbordsprocessor som Quad-core Sandy Bridge-varianten av Intels Core i7. Den har bara knappt en miljard transistorer. En ledande generell bearbetningsenhet som AMDs Cayman, som används i grafikkortet Radeon HD 6970, klockar upp en massiv 2,64 miljarder transistorer.

Med tanke på att det inte skryter med färre än 1 536 shader-processorer, 24 SIMD-motorer (single instruction multiple data) och 32 ROP-enheter (raster operatörenheter), är det kanske inte överraskande. Det här är historien om hur AMD-GPU-enheter tillverkas - hur en idé blir kisel med hjälp av några av de mest avancerade och invecklade tekniska metoderna och mekanismerna. Läs vidare när vi gräver in i de verkliga dagarna av mirakel och undra.

1. Design på hög nivå

Att utforma en generell bearbetningsenhet börjar inte med någon tanke på transistorer eller kopparspår, men med något som kallas produktkravspecifikationen, eller PRS - en prioriterad definition av alla funktioner som det nya chipet måste ha. Det kanske inte låter väldigt spännande, men PRS fungerar som checklista under hela designprocessen.

Med tanke på att designen är en mycket dyr övning i form av tid och pengar är det mycket viktigt att PRS ger ett adekvat svar på frågan: "Vad är det som vi försöker bygga här?"

Vanligtvis tar det sex månader att slutföra PRS. Tusentals ingenjörer, inklusive arkitekter, maskinvarudesigners, styrelsedesigner, valideringsingenjörer, programvaruingenjörer och firmware / BIOS-ingenjörer kommer att vara involverade, liksom representanter för produktledning, teknikhantering och utvecklarrelationer.

Dokumentet har formen av en databas och kan innehålla över 1 000 funktioner, som var och en kan vara allt från en udda mening till en 100-sidig specifikation.

En annan produktion från högkvalitativ design - en teknik som de flesta tekniskt kunniga PC-användare kommer att känna till - är ett blockschema. Även om det inte har någon likhet med hur delarna av GPU-enheten kommer att ordnas på chipet, innehåller den alla de viktigaste funktionella blocken och visar hur signaler går mellan dem.

2. Golvplan och netlist

Lag av ingenjörer nu satt till arbete på två distinkta områden av designen. Först måste golvplanen definieras. Detta är en fysisk representation som tar hänsyn till hur stort varje block förväntas vara och var det ska placeras i förhållande till andra block.

Här beaktas hur många signaler som passerar mellan blocken i syfte att minska längden på vägarna. Under tiden arbetar andra ingenjörer på komponentnivådesignen för varje block.

Men det här är inget som elektronisk kretsdesign som planeras av lekmannen. I stället för ett kretsschema skapas designen i ett maskinvarubeskrivningsspråk som VDHL. Om du är intresserad står den förkortade akronyn för väldigt höghastighets integrerade kretsar (det är vad "V" står för).

Det här sättet att generera kretsar ser mycket ut som ett programmeringsspråk, vilket ger många av de fördelar som erbjuds till mjukvaruutstruktören. Viktigast kan kretsar definieras hierarkiskt, så att man till exempel har definierat en logisk OR-grind från enskilda transistorer, detta kan användas vid definitionen av ett mer komplicerat block som en enbitad adderare.

På samma sätt byggs alltmer sofistikerade byggstenar genom att återanvända det som redan har skapats. Ofta behöver designern inte ens definiera byggstenarna eftersom de kommer att finnas tillgängliga från bibliotek från tredje part.

När VDHL-koden är klar går den igenom en process som kallas syntes, vilket motsvarar att man programmerar ett programmeringsspråk. När sammanställningen av ett programmeringsspråk kontrolleras koden för fel och, när det är felfri, genererar en fil som innehåller enskilda processorinstruktioner kallas syntesens utgång för en netlist och den definierar anslutningarna mellan varje komponent, inklusive de 2,64 miljarder transistorer.

3. Kretskontroll och emulering

Netlist kunde gå direkt i masktillverkningsprocessen, men det skulle vara fråga om problem eftersom designen som är komplicerad som en GPU aldrig är 100 procent korrekt vid det första försöket. Dessutom, med tanke på att en uppsättning masker skulle kunna kosta 1 miljon dollar, skulle det vara orimligt dyrt att testa konstruktionen på verklig kisel.

Istället verifieras och emuleras designen - en enorm processorkrävande operation som kräver superdatorer. Verifiering innebär att man testar enskilda block med kanske tusentals test per block. Varje gång något misslyckas springer konstruktionsgruppen tillbaka för att rätta till felen och utför sedan en komplett uppsättning simuleringstester för att säkerställa att korrigeringsåtgärden inte hade brutit något som tidigare fungerade korrekt.

När alla enskilda block är operationella flyttar laget till emulering. Det betyder att du utövar GPU-enheten som helhet, men med tanke på hur mycket behandlingstid som behövs för att simulera ett multi-billion-transistorchip, kan dessa tester initialt inte vara något mer komplicerat än att dra en enda bildpunkt.

Utöver funktionell provning säkerställer emuleringen också att chipet uppfyller sina krav när det gäller bearbetningshastighet.

4. Gör maskerna

Med simuleringen ur vägen vet designarna att kretsanslutningarna är korrekta, men hittills har, med undantag av planlösningen på översta våningen, ingen tanke på var komponenterna går på chipet. Detta utförs med hjälp av ett speciellt CAD-paket, som drivs av golvplanen.

Denna i stort sett automatiserade process placerar varje komponent och ruter koppar spår som i slutändan kommer att ansluta dem alla tillsammans. Kulmineringen av denna process är en viktig milstolpe som kallas "tejp ut" och markerar övergången från design till tillverkning.

Eftersom AMD är ett fablöst halvledarföretag är detta också den punkt där den händer stafetten till TSMC, den valda gjuteriet för GPU. Innan några marker kan tillverkas måste gjuteriet skapa en uppsättning fotografiska masker som kommer att användas i fotolitografi - en för varje av de många lager som kretsen är uppbyggd på chippet.

Med hjälp av data som levereras på tejp ut (som kan betraktas som bilder av mönstren på varje lager), skapas maskerna som ett mönstrat lager av ogenomskinligt metallkrom på ytan av kvartsglas.