Ako vyzerá navrhovanie súčasných CPU a prečo je to 1000-krát ťažšie ako v minulosti? Čo vlastne pri návrhu novej generácie procesora pre počítače alebo mobilné zariadenia robíme a ako to všetko prebieha?

Zväčšený pohľad na odhalený mikročip môže byť často dych berúci. Všetky tie komplexné prvky, geometrické tvary a rozličné štruktúry pôsobia až mimozemsky a možno ste sa už viackrát zamysleli nad tým, ako to vlastne všetko vznikne a kto to od začiatku vymyslí.

Ak sa pokúsite na tieto otázky získať odpoveď, je veľmi časté, že skončíte len u vysvetľovania toho, ako sa čipy vyrábajú na kremíkovom waferi. Toto je však až posledná časť celej tej komplexnej skladačky. Obvykle zostávajú úplne v hmle odpovede na to, kto celý procesor tak komplexne naplánuje, čím sa to vôbec robí a kto určí, čo všetko ho bude tvoriť a ako budú jeho časti a celok spoločne fungovať.

Komplexné vnútro mikroprocesoru Intel Xeon X7550 /Foto: xivlia/

Tento článok vás vnesie do sveta toho, ako celý proces návrhu procesorov prebieha a akými krokmi prechádza. Pozrieme sa na čarokrásne historické začiatky a takisto aj na súčasný stav, aby ste mohli dobre posúdiť, ako veľmi sa všetko zmenilo.

Aj keď v konečnom dôsledku je vytvorenie procesorov nesmierne komplexný proces, ktorý vyžaduje obrovský počet krokov a expertízu v mnohých odboroch, jeho základnú kostru je schopný pochopiť aj úplný laik. Nebojte sa teda a vyberte sa spolu s nami do tohto krásneho sveta.

Z ČOHO VLASTNE KAŽDÝ PROCESOR MUSÍME POSKLADAŤ

Začnime teda úplne od začiatku, aby sme všetko mohli dobre vstrebať. História nás prevedie jednotlivými krokmi postupne a prehľadne a ukáže nám, prečo dnes navrhovanie procesorov nevyhnutne vyzerá tak, ako vyzerá.

Základným prvkom každého čipu je tranzistor. Ako čitatelia nášho magazínu nepochybne viete, že všetky operácie v počítačoch a v akýchkoľvek digitálnych obvodoch na najhlbšej úrovni prebiehajú v binárnej sústave, teda v podobe jednotiek a núl. To, čo už obvykle ľudia netušia je, že táto abstrakcia je na fyzickej úrovni reprezentovaná pozitívnym a negatívnym elektrickým napätím a vo výsledku tak každý digitálny obvod vlastne vytvárame len z prepínačov, ktoré buď prepúšťajú alebo neprepúšťajú elektrické napätie.

V počiatkoch elektronických počítačov (40. roky minulého storočia) fungovali v pozícii týchto prepínačov tzv. elektrónky, čo boli vákuové sklenené trubice veľké zhruba ako žiarovka. Ich životnosť nebola nijako oslnivá a v prvých počítačoch sa nejaké „vypálili“ každý deň a bolo ich treba v obvodoch neustále vymieňať. Všetko sa zmenilo v polovici 20. storočia v legendárnych Bellových laboratóriách (Bell labs), práve s vynálezom tranzistora. Polovodičovej súčiastky, vytvorenej z germánia a neskôr z kremíka, ktorá prepínanie napätia mohla robiť extrémne spoľahlivo a v malých rozmeroch.

Tranzistor je v základe veľmi jednoduchá trojprvková súčiastka. Aj keď jeho tvar a materiál sa v priebehu dekád extrémneho zmenšovania menil, v základe si ho stále môžete predstaviť ako jednoduchý most medzi dvoma bodmi. Most je napojený na vlastný vodič a podľa toho či je pod napätím je elektricky prechodný alebo nepriechodný. Spomenuté dva body (elektródy) teda buď vodivo spája alebo nespája, čím funguje ako prepínač, ktorý môže reprezentovať stav 0 alebo 1.

Zázrak v podobe tranzistora v 50. rokoch minulého storočia svet elektroniky celkom ovládol. Namiesto vlákna, ktoré sa žeravilo veľkým prúdom, sme potrebné prepínanie v rámci obvodu dosahovali stabilným a plochým kúskom platničky, ktorá naoko nič nerobila a nebolo divu, že jeho rozšírenie začalo byť rýchlo obrovské, aj napriek nemalej cene. Možno vás prekvapí, že už v tejto ranej dobe sme ho vyrábali tak ako dnes, teda na ploských kremíkových waferoch, do ktorých sme ho „vyryli“ optickou litografiou.

Princíp takejto výroby je, že s pomocou šablóny (tzv. masky) plochu waferu prekryjeme a zasvietime na ňu laserovým lúčom. Svetlo medzerami v pripravenej šablóne prejde a vypáli na ploche waferu konkrétny obrazec. Týmto spôsobom v kremíku „vyrývame“ jednotlivé stavebné prvky, ktoré následne chemicky opracujeme. Pomocou ďalších masiek môžeme na wafer naniesť aj ďalšie vrstvy iného materiálu presne na konkrétne miesta, podobne ako keď sprejer na stenu priloží papierovú šablónu a vďaka nej na omietke vytvorí presný obrazec z farby. Môžeme tak budovať komplexnejšie sendvičové štruktúry na konkrétnych miestach, vo veľmi malých rozmeroch.

Kremíková platnička s jediným tranzistorom osadená v typickom klobúčiku /Foto: Fairchild Semiconductor/

Na začiatku svojej éry, pred príchodom mikročipov, sa tranzistory predávali samostatne. Na jednom waferi sme ich vyrábali pár desiatok až stoviek, pričom wafer sa následne rozrezal na malé štvorcové platničky, veľké niekoľko milimetrov, ktoré niesli vždy jeden tranzistor. Túto kremíkovú platničku s jedným tranzistorom sme uzavreli do malého kovového klobúčika, postaveného na troch nožičkách, ktoré tvorili elektronické kontakty. Typický tranzistor v tejto forme môžete vidieť na fotografii. Priemer klobúčika bol zhruba taký veľký ako gombík na košeli, pričom z týchto tranzistorov a iných súčiastok sme potom na doskách s elektronikou vytvárali komplexnejšie obvody, potrebné pre rádiá, televízory a takisto rané počítače.

Aj keď klobúčiky tranzistorov boli oproti elektrónkam naozaj maličké, ak sme chceli zapájať desiatky či stovky tranzistorov do stále lepších a zložitejších obvodov, nebolo to jednoduché. Nešlo len o to, že proces spájkovania každej súčiastky na správne miesto bol veľmi prácny. S počtom tranzistorov totiž narastal aj rozmer samotných obvodov a tým aj veľkosť potrebného prúdu, ktorý vzdialenosti na úrovni desiatok centimetrov dokázal z dôvodu elektrického odporu prekonávať.

Kľúčovým momentom sa preto stal prelom 50. a 60. rokov, kedy sme sa po prvý raz začali snažiť o to, aby sme mohli jednotlivé tranzistory do želaných obvodov prepájať nie externe, ako samostatné súčiastky, ale už priamo na kremíkovom waferi, v rámci ich výrobného procesu. Vyžiadalo si to veľký pokrok v litografii, precíznu prácu s laserom a maskami a takisto rozšírenie nášho pochopenia v rámci materiálovej vedy, nakoľko sme začali medzi tranzistormi rovno vytvárať vodivé cestičky a takisto ich správne umiestňovať do vrstiev, aby sa neprekrižovali. V základe sme chceli hŕstku susediacich tranzistorov vzájomne elektricky poprepájať tak, aby ich činnosť dohromady vykonala nejakú logickú operáciu, na ktorú bolo potrebné predtým stavať samostatný obvod.

Vytvorenie logického obvodu z tranzistorov sa dá jednoducho predstaviť ako „bludisko“ s niekoľkými cestami, alebo ako mechanickú hru Pinball, kde sa guľôčka nevyhnutne vyberie konkrétnou cestou, vždy podľa svojho úvodného stavu. Typicky môžeme viacero tranzistorov prepojiť do skupiny tak, aby elektrický signál, ktorý do tejto skupiny vojde, zmenil svoju podobu len tým, ako týmto prepínacím prepojením putuje. Príkladom je zväzok tranzistorov, ktorý dvojicu prijatých signálov 1/1, vždy zmení na jednu hodnotu 1, zatiaľ čo akúkoľvek inú dvojicu (0/0, 0/1, 1/0) premení vždy na 0.

Takáto logika, či presnejšie logické hradlo, sa nazýva AND, pričom si treba uvedomiť, že operácia ako taká je len dôsledkom fyzickej podoby obvodu, nie vedomou prácou. Je to podobné, ako keď preosievacie sito určí veľkosť prepustených zŕn podľa toho, s akými veľkými dierami ho urobíme. Iným podobným druhom logiky je napríklad OR, v ktorej sú tranzistory prepojené zas tak, aby výstup bol vždy 1, ak je aspoň jednou hodnotou na vstupe jednotka (1/0, 0/1, 1/1). Takže 0 sa na výstupe objaví len pri vstupe 0/0 naraz.

Raný integrovaný obvod v podobe logického hradla NOR od firmy Fairchild, zložený zo šiestich prepojených tranzistorov (štvorčeky v centre)

Raný integrovaný obvod v podobe logického hradla NOR od firmy Fairchild, zložený zo šiestich prepojených tranzistorov (štvorčeky v centre). Jeho veľkým nákupcom bola napríklad aj NASA, ktorá ho používala pre lode Apollo. / Foto: NASA/

Aj keď to nevyzerá na pohľad nejako oslnivo, vytvorenie obvodu priamo na waferi bolo obrovským zlomom. Namiesto jedného tranzistora si výrobcovia elektroniky mohli kúpiť konkrétny obvod, ktorý už vykonával nejakú konkrétnu operáciu a nebolo ho treba zo samostatných tranzistorov stavať. Bol „integrovaný“ už v základe, z čoho vychádza aj názov týchto konštrukcií – „integrované obvody“, ktorý sa používa dodnes.

Prvé integrované obvody, ktoré sme dokázali v procese výroby tranzistorov vytvoriť, boli práve takéto základné typy logiky, aké sme popísali vyššie. Boli poskladané len z malého počtu, napríklad 10 tranzistorov, ktoré sa z waferu odrezali ako celok a umiestnili sa do „klobúčika“, ktorý sa predával. Vďaka tomu mohli vývojári elektroniky budovať pokročilejšie obvody a hlad po čoraz komplexnejších integrovaných riešeniach narastal. V základe rozpoznávame sedem elementárnych druhov logiky, ktoré nazývame AND, OR, NOT, NAND, NOR, EOR a ENOR. Prvé dve sme si už popísali, pričom napríklad v prípade tej tretej (NOT) ide o jednoduchú logiku, ktorá vždy vráti opak, teda pri prijatej 1 vráti 0 a naopak.

Tieto logické základy obvodov sú dôležité, pretože ich kombináciou môžeme dosahovať ešte komplexnejšie logické operácie. Tak ako hŕstku totožných tranzistorov môžeme špecificky prepojiť do podoby logického hradla za účelom nejakej jednoduchej logickej operácie, tak kombináciou viacerých logických hradiel jedného alebo všetkých siedmich typov základnej logiky môžeme vykonávať matematické výpočty a iné operácie v rámci rôznych kombinačných obvodov. Je to tak trochu podobné stavebnici Lego. Aj keď kociek stavebnice je len niekoľko druhov, čím viac dielikov máte, tým komplexnejšie a detailnejšie stavby môžete ich kombináciou tvoriť.

OD NÁVRHU KLOBÚČIKOV AŽ K MIKROČIPOM

Na dobovej fotografii z roku 1963 vidíte proces výroby prvého komerčného integrovaného obvodu od legendárnej firmy Fairchild Semiconductor, z ktorej prakticky vyklíčilo dnešné Sillicon Valley. Šlo o logiku NOR, zloženú zo šiestich špeciálne prepojených tranzistorov, ktorú môžete vidieť na fotografii kremíkovej platničky, vloženej do klobúčika. Šlo o jedno elementárne logické hradlo, ktoré sme do tej doby externe skladali zo súčiastok.

Dobová kresba z roku 1963, demonštrujúca výrobu prvých integrovaných obvodov na waferoch. Pekne ukazuje, že ide len o „vyrývanie“ vodivých prvkov a kanálikov do kremíka.

Dobová kresba z roku 1963, demonštrujúca výrobu prvých integrovaných obvodov na waferoch. Pekne ukazuje, že ide len o „vyrývanie“ vodivých prvkov a kanálikov do kremíka. /Ilustrácia: Fairchild Semiconductor/

Ako vidíte, v tejto ére návrhár integrovaného obvodu vlastne ešte nenavrhoval logiku ako takú, ale skôr spôsob, ako tú známu elementárnu logiku vyrobiť na kremíkovom waferi. Skrátka hľadal spôsob, kam jednotlivé fyzické tranzistory umiestniť a ako ich prepojiť pomocou vodivých kanálikov tak, aby sa na waferi neprekrižovali a tranzistory sa stále usporadúvali do známeho a potrebného logického zväzku. V tomto období teda dizajn obvodu a jeho fyzická výroba šli ruka v ruke a vzhľadom na rozsah práce mohol kompletný proces poznať úplne do detailu aj jediný človek.

To sa však začalo rýchlo meniť. Ako sa nám tranzistory a vodivé kanáliky darilo vyrábať čoraz menšie, začala sa nám otvárať cesta ku vzájomnej kombinácii viacerých logických hradiel naraz. Najprv sme spájali napríklad štyri logické hradlá, čo je využiteľné napríklad na stvorenie tzv. preklápacieho obvodu, schopného na krátku dobu udržať vloženú hodnotu a vrátiť ju spať. Keďže takýto obvod sa dá postaviť napríklad z dvoch správne prepojených AND a dvoch NOR hradiel, výsledná platnička odrezaná z waferu tak začala obsahovať desiatky tranzistorov. A v tejto idei sme pokračovali a postupne tvorili stále komplexnejšie logické zapojenia.

Jednoduché integrované obvody zo začiatku 60. rokov boli osadzované do klobúčiku so 7, 8 či až 10 nožičkami v podobe kontaktov. Vľavo vidieť logické hradlo typu NOR (Fairchild uL903), vpravo pokročilejší preklápací obvod typu JK (Fairchild uL923). Všimnite si nakreslené príklady prepojenia logických hradiel v rôznych variantách obvodov /Foto: Adam Lewis/

Originálny ručne kreslený návrh fyzickej konštrukcie raného integrovaného obvodu. Konkrétne ide o preklápací obvod F od firmy Fairchild Semicondictors, z roku 1960. Krúžky sú elektrické kontakty, napojené na nožičky klobúčika. Zvyšok je integrovaný obvod z prepojených logických hradiel, respektíve ich tranzistorov. Všimnite si rozdielne farby, ktoré znázorňujú vrstvy, ktoré sa postupne vyrábali na waferi. /Foto: Computer History Museum, Mountain View/

Keďže takéto viac spletité integrované obvody už spoločne zvládali o niečo komplexnejšie úlohy, pričom vstup a výstup signálu mal viaceré cesty, klobúčikom, v ktorých bola kremíková platnička umiestnená, začali postupne pribúdať nožičky. Pre logiku vybudovanú z desiatok logických hradiel a teda stoviek tranzistorov toto „balenie“ už prestalo byť napokon efektívne a hotové platničky s integrovanými obvodmi sme začali osadzovať na chrbát „chrobáka“, teda obdĺžnika s mnohými „nožičkami“ kontaktov (tzv. pinov) po stranách, ktorý sa stal typickým reprezentantom mikročipu.

Narábanie so stále pokročilejšou kombináciou základných logických hradiel na prelome 60. a 70. rokov viedlo k tomu, že pracovanie na návrhu obvodov a ich fyzické vyrobenie na waferi sa začalo od seba vzďaľovať. Návrh komplexnejšej logiky si žiadal značné matematické a iné teoretické znalosti, ktoré vôbec nekolidovali a nesúviseli s vedomosťami expertov na polovodičové materiály a výrobu, čo znamenalo že tieto úlohy začali nevyhnutne vykonávať odlišní jednotlivci.

Tí na vývoji čipu pracovali jeden po druhom a prácu si prakticky odovzdávali. V tejto ranej dobe zrod čipov fungoval obvykle tak, že za polovodičovou firmou, akou boli v tej dobe Fairchild Semiconductor, Texas Instruments či čerstvo založený Intel, prišli zákazníci v podobe výrobcov elektroniky (vyrábajúci napr. kalkulačky, kopírky a takisto sálové počítače) a zadali jej svoje požiadavky na funkcie integrovaného obvodu.

Špecialista na konštrukciu logických obvodov si požiadavky vypočul a na základe toho vymyslel a naplánoval zoskupenie desiatok či dokonca stoviek logických hradiel, ktoré požadovanú funkciu a prácu dokázali vykonať. Komplexnosť obvodu bola z hľadiska maximálneho počtu hradiel limitovaná (možnosťami výroby) a obvykle sa na každú konkrétnu činnosť robil nejaký zvlášť. Vtedajšie kalkulačky tak napríklad obsahovali 10 či 12 rozličných čipov, pričom každý mal vytvorený logický obvod na nejakú konkrétnu matematickú funkciu, ktorú stroj potreboval vykonávať, alebo slúžil ako register či mechanizmus na prijímanie bitových hodnôt, ktorý ich dokázal vracať na požiadanie iného čipu späť (plnil tak rolu pamäte).

Kombináciou základných logických hradiel sme skladali čoraz komplexnejšie obvody. V tomto prípade ide o duálny preklápací obvod firmy Fairchild, zložený zo štyroch logických hradiel AND, dvoch NAND, jednej NOR a jednej NOT. Obsahuje teda desiatky tranzistorov

Kombináciou základných logických hradiel sme skladali čoraz komplexnejšie obvody. V tomto prípade ide o duálny preklápací obvod firmy Fairchild, zložený zo štyroch logických hradiel AND, dvoch NAND, jednej NOR a jednej NOT. Obsahuje teda desiatky tranzistorov /Foto: ZeptoBars/

Je treba si uvedomiť, že maličký rozmer tranzistorov a ich prepojení, ktoré vtesnali komplexnejší obvod napríklad z 20 základných logických hradiel do štvorčeka 3 × 3 mm, otvorilo cestu aj k obvodom, ktoré sme dovtedy nemali možnosť z klasických veľkých súčiastok stvoriť. Nešlo pritom len o to, že kremíkový integrovaný obvod sa vyrábal v obrovskom počte v rámci automatickej výroby, za veľmi malú cenu. Šlo aj o to, že stále menší rozmer otváral dvere komplexnosti, ktorá vo väčších rozmeroch prvkov skrátka nemohla existovať.

Začali sme teda navrhovať aj úplne nové obvody a komplexnú výpočtovú logiku, ktorá predtým nikdy neexistovala ani v teoretickej rovine. Po dokončenom návrhu obvodov z hľadiska logiky následne schéma putovala k odlišnému človeku z výroby, ktorý podľa nej naplánoval fyzickú podobu prvkov čipu, teda pozíciu tranzistorov a ich neprekrížených prepojení na waferi.

Na začiatku 70. rokov sme začali byť schopní na čipe budovať a prepájať viac ako 1000 tranzistorov, teda už niekoľko stoviek základných logických hradiel, pričom sa po prvý raz začala rodiť myšlienka realizovateľnosti špeciálnej logiky, ktorá by už nebola navrhnutá na nejakú špecifickú funkciu, ale na akúkoľvek. Čip by teda nerobil len jeden konkrétny matematický výpočet sám, ale len reagoval univerzálne na ľubovoľné softvérové zadanie a fungoval by teda ako stroj na logické operácie. Namiesto počítača, schopného vykonávať potrebné úkony pomocou hromady jednoúčelových čipov, by tak šlo o „mikroprogramový počítač umiestnený priamo na jednom čipe“, teda mikroprocesor.

Prvým komerčne dostupným mikroprocesorom (pre japonské kalkulačky Busicom), bol Intel 4004 zložený 2250 tranzistorov a pokiaľ vás jeho cesta zaujíma podrobnejšie, venovali sme sa jej v podrobnom článku „Neobyčajný príbeh prvého mikroprocesora na svete“. Z pohľadu tohto článku je ale dôležité najmä to, že jeho kompletný dizajn zvládla štvorica ľudí. Návrh samotnej logiky vytvorili Ted Hoff a Stanley Mazor. Na jej základe Masatoši Šima vytvoril softvér, ktorý takýto univerzálny obvod dokázal používať a napokon talentovaný polovodičový inžinier Federico Faggin naplánoval podľa potrebných logických hradiel jednotlivé fyzické prvky tranzistorov a ich spojení, ktoré sa prostredníctvom masiek a litografie vyrobili na kremíkovom waferi.

Ručne nakreslená schéma logiky prvého procesora Intel 4004 z roku 1971

Ručne nakreslená schéma logiky prvého procesora Intel 4004 z roku 1971 /Foto: Intel/

Nasledovný nástup pokročilých procesorov, ktoré otvorili éru prvých osobných počítačov od rôznych firiem ako Commodore, Atari, Apple, Altair, TRS a ďalších, však začal opäť všetko komplikovať. Kým prvá generácia pokročilých procesorov ako Intel 8080, MOS 6502 či Zilog Z80, bola skladaná v druhej polovici 70. rokov ešte zo 6- až 8-tisíc tranzistorov, ich nasledovníci, ktorý sa na začiatku nasledujúcej dekády podieľali na boome IBM PC a jeho klonov, už ich obsahovali niekoľko desiatok tisíc a následne stovky tisíc.

Pozrime sa teda detailnejšie na to, ako ručný proces návrhu procesorov a iných pokročilých čipov v priebehu 70. a následne aj 80. rokov minulého storočia vlastne vyzeral. Šlo totiž o poriadnu lopotu.

AKO SME V MINULOSTI POKROČILÉ PROCESORY NAVRHOVALI RUČNE

Procesory sú komplexné a pokročilé integrované obvody a zložitosť logiky, ktorú bolo v 70. a 80. rokoch minulého storočia potrebné navrhnúť, si už vyžadovala značné intelektuálne úsilie. Keď návrhári v tejto dobe plánovali skonštruovať nový procesor, začali premýšľať hlavne nad samotnými logickými operáciami, ktoré bolo treba vykonať a ich princípom, pričom sa už vôbec nezaoberali tranzistormi a ich prepojením na waferi. Výroba samotného čipu bola totiž vzdialená méta a najprv bolo nutné vymyslieť, ako bude operačná logika v takomto pokročilom obvode vlastne fungovať a čo bude vyžadovať.

Proces teda začínali úvahami a diskusiou nad základnou architektúrou, pričom v týchto dobách ju pokojne mohli prediskutovávať len dvaja či traja ľudia. Napríklad procesor Intel 8080, čo bol z praktickej stránky vlastne prvý seriózny CPU, ktorý v polovici 70. rokov otvoril novú éru osobných počítačov, sa architektonicky skladal zo štyroch základných funkčných blokov. Z aritmeticko-logickej jednotky (ALU), adresnej logiky s poľom registra, kontrolného a inštrukčného registra a dátových zberníc.

Pre laika môžu tieto názvy znieť cudzo a strašidelne, ale v základe je to ako keď plánujeme postaviť auto a vieme že budeme potrebovať motor, prevodovku, volant a kolesá, pričom vieme kde zhruba musia byť a ako budú spolupracovať. V rámci procesora sme potrebovali, aby procesor mal niekde aritmeticko-logickú oblasť, ktorá mala vykonávať logické a výpočtové operácie, ďalej oblasť v podobe adresnej logiky s poľom registra, kde sa uchovávali dáta, s ktorými procesor aktuálne operoval, oblasť kontrolného a inštrukčného registra, kde sa kontroloval tok dát do procesora a jeho podoba a napokon štvrtú oblasť tvorenú z dátových zberníc, ktorými dáta putovali dnu a von z procesora.

Ručná tvorba schémy logiky pokročilého integrovaného obvodu v 70. rokoch

Ručná tvorba a následná podrobná kontrola schémy logiky pokročilého integrovaného obvodu v 70. rokoch /Foto: Tom Schiers/

Návrhári sa zhodli, že toto potrebujú a následne začala ozajstná práca, keď tieto oblasti mali stvoriť. Čo to znamenalo? Nuž to, že si položili na stôl polopriehľadný pauzovací papier, na ktorý začali ručne kresliť kombinácie a prepojenia jednotlivých základných logických hradiel AND, OR, NOT, NAND, NOR, EOR a ENOR, ktoré by spoločne dosiahli potrebné správanie a funkcie a tieto bloky procesora tak spolu vytvorili.

Na fotografii môžete vidieť, ako takéto skladanie vyzeralo, pričom obvykle sa každá z vtedajších základných štyroch oblastí CPU kreslila na samostatný papier. Návrhári sa snažili všetko poskladať efektívne a plynulo, pričom čím komplexnejší návrh robili, teda čím viac hradiel a logiky v danej časti použili, tým mohol výsledný obvod vykonávať dané úlohy rýchlejšie či vo väčšom objeme. Návrhári pravdaže vždy poznali limity vtedajšej fyzickej výroby a ak bolo napríklad v roku 1975 možné vyrábať čipy zo zhruba 8 000 tranzistorov, vedeli, že si môžu dovoliť navrhovať logiku z niekoľkých stoviek či zo zhruba tisíc hradiel. Keď o pár rokov neskôr bolo možné vyrobiť na rovnakej ploche 25 000 tranzistorov, logika mohla byť niekoľkonásobne komplexnejšia a robustnejšia.

Tu sa vlastne dostávame na začiatok 80. rokov, kedy plány procesorov obsahovali niekoľko tisícok prepojených NOR, XOR, OR a ďalších stavebných „lego tehličiek“. Tieto papiere s ručne nakreslenými schémami logiky následne putovali k projektantom na digitalizáciu, kde sa hradlá prekreslili do digitálnej podoby. Pri tomto procese sa im automaticky pridelili potrebné tranzistorové prvky na základe databáz, ktoré známe varianty prepojenia obsahovali. Šlo teda napríklad o to, že z nakresleného „štvorčeka“ s nápisom NOR  sa stalo šesť správne prepojených tranzistorov, ktoré ho tvorili, z hradiel OR či XOR zas toľko a toľko prepojených tranzistorov, ktoré tvorili zas tie a podobne.

Následne sa celá táto komplexnejšia, ale už fyzicky presnejšia schéma celého integrovaného obvodu vytlačila na veľký papier. Návrhári tak v tomto momente po prvýkrát uvideli reálnu reprezentáciu budúceho procesora v hlbšom detaile, v rámci ktorého už bolo každé jedno hradlo naozaj zložené z tranzistorov.

Vytváranie spojov medzi hradlami a tranzistormi s pomocou ceruzky a pravítka na obrovskej schéme pokročilého integrovaného obvodu v 80. rokoch

Vytváranie spojov medzi hradlami a tranzistormi s pomocou ceruzky a pravítka na obrovskej schéme pokročilého integrovaného obvodu v 80. rokoch /Foto: Photodisc/

Tieto obrovské kusy papiera sa rozložili na veľké stoly, alebo v prípade komplexnejších čipov na podlahu celej miestnosti, pričom všetci traja či štyria návrhári si naň sadli a po kolenačky, s nosom pritlačeným k papierom, začali s pravítkom a žltou fixkou ručne kresliť budúce prepojenia obvodov. Budúci elektrický signál sa musel dostať všade a všetky zhluky tranzistorov museli byť na seba správne naviazané. Začínalo sa kresliť od pinov, teda od nožičiek budúceho „chrobáka“, ktorými signály vchádzali do čipu a postupne sa pokračovalo celou štruktúrou smerom do centra. Žlté čiarky reprezentovali budúce vodiče, respektíve vodivé kanáliky a spojenia v rámci waferu, ktorými sa prepájalo každé jedno logické hradlo a jeho tranzistory.

Nič sa nesmelo vynechať, na žiadne spojenie sa nemohlo zabudnúť. Šlo tak o nesmierne časovo a psychicky vyčerpávajúci proces, ktorý bolo treba neustále a opakovane kontrolovať viacerými očami. Na fotografii nižšie môžete vidieť jeden z typických príkladov čipov danej éry a jeho obrovskú spleť komplexných spojení. Každá jedna čiarka, ktorú vidíte, bola nakreslená a naplánovaná ručne uvedeným spôsobom (kliknite pre zväčšenie na plnú veľkosť).

Vyrobený procesor Intel 8008, každý prvok, vodič a jeho poloha boli naplánované ručne

Hotová fyzická konštrukcia procesoru Intel 8008 z roku 1972. Každý prvok, vodič a jeho poloha boli naplánované ručne /Foto: Intel/

Akonáhle bolo všetko pripravené a pospájané, prešlo sa k príprave výrobných šablón, respektíve, odborne povedané, k príprave výrobných masiek. Slovo šablóna, ktoré vyvoláva dojem, že si v tvrdom papieri vystrihujeme nejaké vzory, je úplne na mieste. Presne takto totiž ich prípravný proces v minulosti vyzeral. Hotový nákres čipu, so všetkými jednotlivými tranzistormi a nakreslenými vodivými spojeniami sa v rámci prípravy masiek/šablón rozložil na niekoľko vrstiev, podľa poradia výrobných krokov.

Proces prípravy tisícok hradiel, zložených z desiatok tisíc tranzistorov a ich spojení bol stále viac-menej rovnaký, ako výroba prvých integrovaných obvodov z napr. šiestich tranzistorov a 20 vodičov. Podľa hotového nákresu bolo šablónami skrátka nutné naplánovať to, kde sa do wafera vypáli diera, aká bude veľká, kde bude vodivý kanálik, ktorý bude potrebné vyplniť iným materiálom, kde sa bude budovať izolačná vrstva medzi prvkami a podobne.

Šablóny sa teda museli povystrihovať a pozliepať. Všetko to pripomínalo prácu umelcov a hodinu výtvarnej výchovy. Používali sa veľké pláty priesvitného červeného plastu (Rubylith), pripomínajúce celuloidový film zo starých fotoaparátov. Ten sa skalpelmi, respektíve žiletkovými nožíkmi rezal na malé plátky, reprezentujúce jednotlivé prvky, ktoré bolo treba vytvárať alebo v procese výroby dočasne zakrývať. Všetko sa prilepilo na veľkú podsvietenú plochu na stoloch alebo stenách, čo môžete vidieť aj na dobových fotografiách.

Technik počas 70. rokov minulého storočia robí korekcie pri príprave masky z rubylitu, na základe nakreslených obvodov

Technik počas 70. rokov minulého storočia robí korekcie pri príprave masky z rubylitu, na základe nakreslených obvodov /Foto: Bob Wickley/

Ukladaním viacerých transparentných šablón na seba bolo možné overovať, či jednotlivé prúžky perfektne sedia a prekrývajú sa a nevzniká prázdne miesto, kde by pri nanášaní vrstiev materiálu na wafer vznikol nechcený vodivý spoj a prípadne skrat v budúcom fyzickom čipe. Ak všetko sedelo a všetky šablóny boli správne pripravené, prešlo sa k ich zmenšeniu.

Obrovské dokončené šablóny, veľké ako stôl, sa pomocou fotografického procesu začali zmenšovať do rozmerov, v akých sme boli schopní na strojoch tieto prvky vyrábať. V ére prvých procesorov sme vyrábali tranzistory veľké zhruba 10 mikrometrov (10 000 nanometrov), pričom v druhej polovici 70. rokov minulého storočia sme ich postupne zmenšovali na 7 µm a 5 µm (5 000 nm) a v nasledujúcej dekáde na 3 a 1 µm.

Zmenšenie šablón na takto malý rozmer bol pomerne priamočiary proces, využívajúci projekciu a fotografovanie. Na povystrihované a pozliepané vzory sa zasvietilo ostré svetlo, pričom vrhnutý tieň sa zachytil na fotografický film. Je to podobný princíp, aký používa klasický projektor (známy napríklad zo škôl), ktorý obraz z A4 papiera/fólie s pomocou zväčšovacej lupy premietne na stenu vo veľkom formáte.

V tomto prípade je ale šošovka opačná a obraz sa premieta naopak zmenšený, rovno na fotografický film, ktorý mal už podobný rozmer, ako budúca fyzická kremíková platnička čipu, teda na úrovni centimetrov až milimetrov. Vo výsledku sa tak plocha a prvky celej šablóny/masky preniesli vďaka fotoprocesu do správneho miniatúrneho rozmeru, ktorý by žiadny človek nedokázal fyzicky nakresliť. A práve táto maska, či presnejšie fotomaska sa používala pri procese výroby, pri ktorej sa prekrývalo svetlo lámp a neskôr laserov, ktorými sa prenášal (vypaľoval) vzor na kremíkový wafer.

Ako ste z popisu mali možnosť vidieť, návrh procesora či iného čipu, zloženého z desiatok tisíc tranzistorov, bola mimoriadne náročná práca po všetkých ohľadoch. Či už šlo o proces navrhovania obvodov z logických hradiel, ich prípravy a overovanie, plánovania spojení v súvislosti s fyzickými tranzistormi a takisto v rámci prípravy masiek, prakticky všetko, s výnimkou priradenia tranzistorov hradlám, prebiehalo ručne.

Tento komplexný proces návrhu a prípravy integrovaných obvodov sme začali označovať ako „Rozsiahla integrácia“, skrátene LSI (z anglického Large Scale Integration), čím sme vyjadrovali, že integrované obvody vytvárame už skutočne vo veľkom meradle. Obsahovali desiatky tisíc tranzistorov a zároveň aj desiatky tisíc ich vzájomných spojení, čiže de facto sme každých pár mesiacov navrhovali a ručne skladali nové „stroje“ zložené zo sto tisíc súčiastok. Ich vzájomná koordinácia a správny návrh a vysokopresná výroba na úrovni mikrometrov boli pritom nevyhnutné.

Techničky vo firme Intel v polovici 70. rokov vyrezávajú z rubylitu jednotlivé prvky, ktoré sa budú vyrábať na waferoch

Techničky vo firme Intel v polovici 70. rokov vyrezávajú z rubylitu jednotlivé prvky, ktoré sa budú vyrábať na waferoch /Foto: Jim Wiley, Intel/

Vývoj výroby polovodičov však neprestajne pokračoval a na waferi sa nám úspešne darilo vyrábať stále menšie a menšie tranzistory. Zhruba každého 1,5 roka sme ich zvládali vyrobiť na rovnakej ploche dvojnásobok, za zhruba rovnakú cenu, takže dizajn CPU nevyhnutne reagoval a komplexnosť návrhov a projektov v honbe za vyšším výkonom naďalej rástla. Počas 80. rokov minulého storočia sme začali procesory skladať zo stoviek tisíc tranzistorov a v roku 1989, s príchodom procesora Intel 80486, sme napokon prekročili hranicu milióna tranzistorov (600 nm výrobný proces).

Stúpajúci počet prvkov pritom postupne presiahol ľudské časové aj fyzické možnosti. Stovky tisíc až milióny tranzistorov, doplnené o obdobný a väčší počet prepojení, už totiž žiadny človek nedokázal v rozumnej dobe ručne naplánovať, nakresliť, rozvrhnúť, čiarami poprepájať a s vystrihovanými šablónami pripraviť pre výrobu. Našťastie, stále výkonnejšie počítače, ktoré sme týmito postupmi tvorili, nám napokon začali podávať pomocnú ruku. Vošli sme tak do éry, v ktorej začala dominovať čoraz väčšia abstrakcia a automatizácia. Proces návrhu nasledujúcich gigantických integrovaných obvodov, zložených z miliónov, stoviek miliónov a dnes už desiatok miliárd tranzistorov a spojení, sme začali označovať ako „Veľmi rozsiahla integrácia“, skrátene VLSI (z anglického Very Large Scale Integration).

ČO SA NA DIZAJNOVANIE ČIPOV POUŽÍVA DNES?

Ak sa pozriete na fotografie útrob dnešných CPU, ich štruktúra je už na pohľad masívne komplexná. Obsahuje obrovské množstvo častí a prvkov, ako rôzne multiplexory, inštrukčné registre, mnohé aritmeticko-logické jednotky, vyrovnávacie pamäte a mnoho ďalšieho, z čoho sa nejednému laikovi okamžite zamotá hlava.

Nech už ide o akýkoľvek pokročilý procesor alebo hoc aj grafický čip, všetky tieto komplexné štruktúry sú tvorené iba logickými alebo preklápacími obvodmi. Logické obvody vykonávajú nejakú matematickú, respektíve logickú operáciu, zatiaľ čo preklápacie obvody obvykle plnia rolu krátkodobých pamäťových buniek, kde sa priebehová hodnota na maličký moment uchováva. A čo je zaujímavé, nech sú tieto prvky akokoľvek pokročilé a komplexné, všetky sú stále poskladané len z tých dobre známych siedmich základných typov logických hradiel AND, OR, NOT, XR, NAND, NOR a XNOR, ako ich predchodcovia.

Útroby CPU Intel Core s mikroarchitektúrou Westmere /Foto: Intel/

A keďže každé logické hradlo staviame z kremíkových tranzistorov, moderné čipy z hľadiska svojej operačnej funkčnosti takisto neobsahujú nič iné, než vzájomne prepojené a rozlične usporiadané tranzistory.

Tak trochu to pripomína prírodu, kde pri dostatočne hlbokom pohľade na vec zistíme, že všetky materiály sú len zlúčeninou prvkov z Mendelejevovej tabuľky a každý prvok je tvorený len z atómov, ktoré majú rozlične usporiadané totožné elementárne častice. Komplexnosť je teda dôsledkom rozličného usporiadania a prepojenia totožnej veci. Tak ako recept na dobré jedlo nepopisuje proces varenia na úrovni atómov, tak ani návrhári nenavrhujú CPU na úrovni tranzistorov.

Dnes sa dokonca nezaoberajú už ani samotnými logickými hradlami, ako ich predchodcovia v 70. a 80. rokoch. Je ich totiž priveľa. Predstavte si, že by ste chceli naplánovať jednu miliardu hradiel v dnešnom procesore, pričom na každé sa musíte sústrediť a rozhodnúť odkiaľ jeho spojenie ide a kam. Nesmiete sa pomýliť a všetko musí byť efektívne, aby ste mohli stvoriť konkrétnu logiku. Aj keby ste boli neomylní a superrýchli a pozíciu jedného hradla by ste zvládli naplánovať za neuveriteľnú sekundu, miliarda sekúnd je 277 777 hodín. Čiže ak by ste pracovali 10 hodín denne a 5 dní v týždni, trvalo by vám to 106 rokov.

Druhá vec je zložitosť a komplexnosť jednotlivých logických konštrukcií, ktoré sa pri týchto počtoch vymykajú schopnostiam akéhokoľvek človeka. Dizajnovanie súčasných funkcií a schopností procesora preto už dnes prebieha formou abstrakcie, v rámci ktorej sa popisuje model komplexných digitálnych štruktúr v rámci vyšších logických operácií, bez premýšľania nad základnými, z ktorých sú tvorené.

Popisovanie logiky hardvéru v jazyku SystemVerilog, pri dizajnovaní moderných procesorov

Popisovanie logiky hardvéru v jazyku SystemVerilog, pri dizajnovaní moderných procesorov

Používa sa na to tzv. jazyk na popis hardvéru, skrátene HDL (Hardware Description Language), v rámci ktorého je možné štruktúry digitálnych obvodov abstraktne popisovať a takisto automaticky analyzovať a simulovať.

Hardvérové jazyky sa v základe podobajú na bežné programovacie jazyky a ak sa na popis logiky hardvéru pozriete ako laik, celkom určite vám bude vizuálne aj štrukturálne pripomínať zdrojový kód programu. Avšak v prípade, že nejakú programátorskú znalosť máte, v oku vám rýchlo utkvie zaujímavý rozdiel v tom, že hardvérové jazyky vždy zahrňujú do popisu aj element času, čo súvisí s tým, že popisujú reálnu fyzickú štruktúru.

Z hľadiska histórie boli najpopulárnejšími hardvérovými jazykmi Verilog a VHDL, ktoré používali aj tie najväčšie firmy v odbore. Oba vznikli už v 80. rokoch minulého storočia a následne sa neustále vyvíjali po viac ako tri dekády. V súčasnosti je v rámci návrhu a dizajnu čipov považovaný za štandard predovšetkým jazyk SystemVerilog, ktorý je novším a z hľadiska komplexnejších schopností verifikácie aj pokročilejším variantom pôvodného Verilogu.

Existencia týchto popisných jazykov hardvéru návrh robí možným, ale pravdaže nie ľahkým. Kým prvé procesory dokázali navrhnúť aj jednotlivci, respektíve malá skupina ľudí, dnešné monštrá je nutné rozdeliť na mnoho úloh pre jednotlivých návrhárov, inžinierov a iných expertov, ktorých špičkové znalosti sú použiteľné vždy len v nejakej konkrétnej časti celého procesu. O tých ostatných majú zvyčajne už len veľmi hmlistú predstavu a v súčasnosti už žiadny človek na svete nezvládne mať hlboké pochopenie všetkých potrebných krokov, ku ktorým v rámci návrhu a výroby CPU dochádza. Vo výsledku je tak dizajnovanie moderných špičkových čipov prácou stoviek ľudí. Poďme sa teda pozrieť na to, ako to vyzerá.

AKO PROCES NÁVRHU MODERNÉHO PROCESORA PREBIEHA

Aj keď návrh moderného procesora je enormne komplexný proces, v základe si ho môžeme rozdeliť len na niekoľko dôležitých a vzájomne prepojených fáz. Vizualizujme si ho teda s pomocou grafu, v ktorom si pre lepšiu orientáciu jednotlivé previazané fázy rozlíšime aj farebne.

Proces návrhu moderných CPU a iných pokročilých integrovaných obvodov

Proces návrhu moderných CPU a iných pokročilých integrovaných obvodov

Úplným začiatkom celého procesu je prvotná idea o vlastnostiach čipu a jeho špecifikáciách, čo vidíme na grafe reprezentované ako horné biele políčko. V základe ide o rozhodnutie o tom, o aký čip pôjde, čo potrebuje zvládať z hľadiska výkonu aj funkcií a v akej oblasti bude používaný. Je potrebné zdôrazniť, že procesory či iné čipy sa dnes takmer nikdy nenavrhujú úplne od nuly. Ich základná schéma funkčnosti sa nemôže zakaždým rodiť „na zelenej lúke“, pretože chceme, aby fungovali v nejakom existujúcom softvérovom prostredí. Je to ako keď navrhujeme nový model auta, pričom takisto obvykle nevymýšľame od začiatku úplne nový princíp pohonu či riadenia. Skrátka len zlepšujeme tie predošlé, prípadne inak a lepšie konfigurujeme niektoré jeho časti.

Dizajnéri procesora či iného čipu vždy vopred vedia, s akými prvkami a princípmi musia v základe nevyhnutne operovať. Ak použijeme znovu naše predošlé automobilové prirovnanie, je to to isté, ako keď navrhujeme elektrické auto, pričom dopredu vieme, že budeme musieť operovať s batériami a cievkami a nie s vstrekovaním benzínu a s výfukmi. V rečiach procesorov je tento základný princíp funkčnosti reprezentovaný tzv. architektúrou inštrukčnej súpravy.

V rámci desktopového a notebookového segmentu celkom dominuje architektúra x86, na ktorej navrhujú svoje procesory Intel aj AMD. To je dôvod, prečo ich môžete vo svojom počítači zamieňať a takisto vymieňať staršie za novšie, pričom operačný systém a programy stále fungujú. Aj keď interne sa tieto procesory výrazne líšia svojím návrhom, schopnosťami a výkonom (mikroarchitektúrou), z vonkajšieho pohľadu fungujú na rovnakom princípe a preto sú vzájomne kompatibilné. Podobná situácia panuje aj v rámci mobilného segmentu, kde zas dominuje architektúra inštrukčnej súpravy ARM.

Akonáhle je teda známe, na akom princípe má budúci procesor pracovať a aké vlastnosti sa od neho požadujú, návrhári sa púšťajú do práce. Pozrú sa na požadované zmeny a zlepšenia a začnú diskutovať o potrebných úpravách, pomocou ktorých by to malo byť možné dosiahnuť. Môžu sa zhodnúť na tom, že niektoré časti procesora treba efektívnejšie prepracovať, že niektoré je treba vypustiť a nahradiť jednoduchšími a iné zase rozšíriť tak, že budú poskytovať dvojnásobný výkon len tým, že daných častí bude oproti minulosti už dvojnásobný počet.

Týmto sa rodí nová mikroarchitektúra procesora, teda nové, robustnejšie, komplexnejšie alebo efektívnejšie rozloženie jeho jednotlivých funkčných oblastí. V rámci procesorov mikroarchitektúru poznáte ako názvy Zen 2, či Zen 3 u AMD, alebo Broadwell či Skylake u Intelu. Z hľadiska marketingu sa síce procesory stále volajú napr. Intel Core i7, alebo AMD Ryzen, avšak ich každoročné zlepšenie a vydanie nového modelového radu je práve návrh novej a vylepšenej mikroarchitektúry. Pri jej návrhu sa dizajnéri skrátka rozhodujú, čo zlepšovať, kde a ako.

Keď sú tieto špecifikácie v základe hotové, prechádza sa k zhmotneniu týchto predstáv, v podobe ich návrhu, teda tvorbe samotných logických obvodov. Nazývame to RTL dizajn a v našom grafe vchádzame do „žltej fázy“.

RTL dizajn, teda návrh celej logiky čipu sa vykonáva pomocou popisného hardvérového jazyka. Jedným z tých najpoužívanejších je už spomenutý SystemVerilog, pomocou ktorého definujeme jednotlivé funkčné prvky. Namiesto popisu desiatok miliónov logických hradiel, či rovno miliárd tranzistorov už jednotliví návrhári tvoria všetko len na úrovni abstrakcie, v rámci ktorej digitálne dáta (elektrické signály) prechádzajú medzi jednotlivými hardvérovými registrami a vykonávajú jednotlivé logické operácie.

Z toho vychádza aj samotné pomenovanie „RTL dizajn“ alebo niekedy aj „RTL kódovanie“, ktoré vyjadruje model na úrovni transferu hardvérových registrov, skrátene RTL (z anglického Register-transfer Level). Jednoduchšie povedané, návrhári podrobne popisujú, ako má vyzerať logika procesora a ako má prebiehať. Sústreďujú sa na jednotlivé vyššie logické operácie, ich funkčnosť a robustnosť. Nemyslia pritom na základné logické prvky či dokonca na tranzistory. Je ich skrátka príliš veľa a žiadny človek by to v rozumnom čase nedokázal.

Následne sa prechádza ku kroku v podobe funkčnej verifikácie, v rámci ktorej je napísaný dizajn simulovaný priamo v rámci SystemVerilogu, na overenie toho, či dáva zmysel a funguje. Proces navrhnutej logiky sa spúšťa virtuálne v rámci testovacieho prostredia, kde sa do neho vpúšťajú testovacie dáta a kontrolujú sa výstupné reakcie. Ak logika nereaguje správne, dizajn sa opravuje. Na grafe môžete vidieť, že tento proces je cyklický, takže RTL kód s návrhom logiky procesora sa na základe simulácie upravuje, aby sa správal tak, ako sa predpokladá. Tento proces, ktorý sa v priebehu dizajnu procesora mnohokrát opakuje, odhaľuje problémy s návrhom a logické nefunkčnosti. Ak máte skúsenosti s programovaním, zjavne vám to bude pripomínať ladenie (debugging) kódu programu.

Funkčná verifikácia RTL kódu, pomocou simulácie jednotlivých navrhnutých logických operácii

Celá táto žltá časť sa v obore návrhu označuje ako „front-end fáza“, čím sa vyjadruje, že ide o prvý základný stavebný prvok celého procesu. Aj keď na grafe to vyzerá ako opakovanie troch krokov, je nutné upozorniť, že pri návrhu veľmi komplexných integrovaných obvodov, ako sú práve moderné CPU, alebo grafické procesory (GPU), sú tieto kroky príliš komplexné na to, aby ich vykonávali tí istí ľudia.

V realite sa táto vrchná žltá fáza návrhu vykonáva nie na celom procesore, ale na jeho malých častiach. Navrhované CPU alebo GPU je rozdelené na mnoho samostatných blokov/sekcií, ktoré navrhujú samostatné skupiny konkrétnych špecialistov, zameraných na dané typy logiky a funkčnosti. Každý blok je rozdelený na ešte menšie samostatné úseky, ktoré sa testujú ako prvé, pričom sa podrobne overuje ich dátový vstup a výstup.

Až keď sú jednotlivé úseky overené a v poriadku, testuje sa z nich zložený blok a následne po otestovaní všetkých blokov konkrétny procesor. Je to ako keby ste stavali nejaký fyzický stroj a najprv overovali funkčnosť každej jednej malej súčiastky zvlášť, následne funkčnosť každého jedného prvku, ktorý je z týchto súčiastok zložený a napokon funkčnosť celého stroja zloženého z daných prvkov. Takto sa odhaľujú medzery alebo v nedostatky v konkrétnej logike a samotnej navrhnutej mikroarchitektúre, ktorá má obrovský počet úrovní. Celého procesu sa tak zúčastňujú stovky ľudí.

Akonáhle je všetko hotové a dizajn v podobe RTL kódu je detailne overený z hľadiska funkčnosti logiky, prechádza sa do spodnej „back-end fázy“, ktorá je na grafe znázornená zelenou farbou.

V tomto procese je hardvérový popisný kód konvertovaný do podoby elementárnych logických hradiel (XOR, NOR, OR, atď.) a z nich zložených preklápacích obvodov. Označujeme to ako Syntetizovanie, pričom sa vysokoúrovňový RTL kód, s popisom toho čo má logika robiť, pretvorí na logické hradlá, ktoré danú vyššiu operáciu sú schopné pri správnom prepojení vykonávať. V tomto kroku sa teda dostávame k fáze, ktorú sme v ranej histórii robili na fyzické papiere, pri ktorých návrhári logické hradlá kreslili a potom prepájali čiarkami pomocou fixiek. Rozloženie a prepojenie jednotlivých logických hradiel je dnes robené plne strojovo na základe odladeného RTL kódu, kde bola funkčnosť logiky overená.

Automatické nástroje tento popisný kód logiky skrátka prevedú do podoby stoviek miliónov vzájomne prepojených logických hradiel, potrebných pre budúci čip. Tento masívny zoznam samotných siedmich typov hradiel, s príslušnými spojeniami sa označuje ako Netlist, pričom ide de facto o diagram obvodov, ktorý neobsahuje nič iné než logické hradlá. Celá konverzia sa následne testuje a overuje sa, či extrémne komplexná navrhnutá logika funguje aj v prípade, že je vytvorená z týchto najzákladnejších logických kameňov. Na grafe si môžete všimnúť, že pri tomto procese sa môžu objaviť chyby, pričom v takomto prípade sa celý proces vracia do žltej fázy dizajnu, ktorý je v prípade chýb na tejto úrovni nutné upraviť.

Automaticické syntetizovanie schémy obvodov z logických hradiel, na základe vytvoreného popisného RTL kódu

Takto vidieť v programe na automatické syntetizovanie jednotlivé schémy obvodov z logických hradiel, na základe vytvoreného popisného RTL kódu.

V rámci zelenej fázy dochádza takisto aj k Fyzickému návrhu obvodov, pri ktorom je syntetizovaný Netlist základnej logiky (XOR, NOR, atď.) strojovo usporiadaný do vhodnej geometrickej reprezentácie budúcich fyzických prvkov. Inak povedané, dostáva sa na svet naozajstný nákres fyzickej štruktúry budúceho čipu, ktorý sa bude vyrábať na kremíkovom waferi.

V tejto fáze musia byť vzájomne prepojené hradlá a ich tranzistory usporiadané na ploche tak, aby ich bolo fyzicky možné efektívne vyrobiť. Laicky povedané, musia byť zoskupené nielen funkčne správne, podľa predošlého logického návrhu, ale aj tak, aby mali dohromady napríklad tvar malého štvorca 3 × 2 cm a nie podobu tenučkého vlákna dlhého dva metre. Automaticky a strojovo je teda hľadaný spôsob, ako miliardy logických hradiel z fyzických tranzistorov vhodne usporiadať.

Do hry pritom vstupuje nielen samotný geometrický tvar, pri zachovaní všetkých prepojení, ale aj realizovateľnosť riešenia z hľadiska výroby. Naše schopnosti prenášať tvary a materiály na wafer majú totiž vždy v rámci konkrétnej generácie výrobného procesu nejaké limity.

Takisto ako v prípade dizajnu logiky, aj fyzický dizajn je v skutočnosti rozložený na mnoho samostatných menších krokov, ktoré vykonáva veľké množstvo špecialistov. Operujú pritom vždy po menších blokoch procesora, tak ako návrhári v predošlej žltej fáze, aby bol proces jednoduchší a technicky realizovateľný. V úvode fyzického dizajnu sa na základe syntetizovaných obvodov robí tzv. navrhovanie pôdorysu, v rámci ktorého sa rozhoduje, ktorý blok procesora sa bude nachádzať na ktorom mieste, čo okrem iného určí aj to, ako budú usporiadané vstupné a výstupné kontakty výsledného čipu.

Finálne geometrické rozmiestnenie prvkov na vyrobenom CPU /Foto: Intel/

V tejto fáze čip dostáva typickú podobu, ktorú poznáte z fotografií, ktoré vyzerajú ako plánik nejakej vysoko komplexnej farebnej konštrukcie. Bloky ktoré v štruktúre opticky rozpoznávate sú veľmi často aj blokmi, ktoré boli samostatne navrhované (pri procese návrhu ešte boli takmer určite delené na mnoho menších úsekov).

Po návrhu pôdorysu prichádza na rad kontrolované strojové rozmiestňovanie prvkov, v angličtine a odbore označované ako „placement“. Ide o vysoko komplexný proces rozhodovania o rozmiestnení samotných tranzistorov v rámci vrstiev waferu a ich vzájomných vzdialeností, čo je nesmierne dôležité z hľadiska výkonu, spotreby a tepelnej produkcie samotného čipu. Tento návrh sa mnohokrát upravuje a vylepšuje až do čo možno najlepšieho stavu.

Od tohto rozvrhnutia sa odvíja aj návrh rozmiestnenia jednotlivých prepojení v podobe signálových vodičov (tzv. routing), ktoré spájajú a prepájajú všetky tranzistory a hradlá. Aby sa neprekrižovali, musia byť umiestnené v mnohých vrstvách, vďaka čomu sú samotné tranzistory len na úplnom dne čipu. Nad nimi je mnoho poschodí križujúcej sa „kabeláže“, či presnejšie odizolovaných veľmi tenučkých vodivých kanálikov/tunelov. Aj keď rozmiestnenie miliárd vodičov je v základe strojové, proces je nutné podrobne formovať a kontrolovať do najvhodnejšej podoby.

V poslednej fáze fyzického dizajnu sa robia zmeny na uľahčenie výroby a navrhujú sa prípadné pomocné štruktúry, ktoré nemajú vplyv na čip ako taký, ale na jeho ľahšiu alebo menej chybovú výrobu. Má to podobu naplánovania podperných a iných vrstiev do konštrukcie, ktoré môže vyžadovať samotná polovodičová fabrika, v ktorej sa budú čipy vyrábať. Následne dôjde ku automatickému generovaniu masiek, teda šablón pre výrobu. Dochádza k tomu digitálne, pričom sa používa grafický databázový formát GDSII, v ktorom sú uložené príslušné geometrické tvary.

Z procesu dizajnu následne prechádzame do výrobnej červenej fázy, pri ktorej sa digitálne súbory s maskami posielajú do polovodičovej fabriky, ktorá u nich vyrobí fyzické fotomasky, teda šablóny na skle, ktoré sa pri procese výroby presvecujú a obrazec sa po optickom zmenšení „vypaľuje“ na wafer. Ak si dobre uvedomíte, k čomu vlastne v tej spodnej zelenej fáze návrhu CPU dochádza, dostanete odpoveď na otázku, prečo navrhnutý procesor či iný čip nie je možné len tak vyrobiť u hocakého výrobcu polovodičov (červená fáza v podobe výroby).

Ak si napríklad nejaká firma ako Nvidia alebo AMD necháva vyrábať svoje CPU vo fabrike Samsungu na 7 nm výrobnom procese, a tá nestačí uspokojiť veľkú požiadavku, nemôže len tak začať vyrábať tento čip v inej fabrike konkurencie, ako je TSMC na jej 7 nm výrobnom procese.

Rovnako ako výrobca nemôže len tak začať vyrábať tie isté procesory novším a lepším výrobným procesom, hneď ako je dostupný. Zatiaľ čo horná žltá časť dizajnu čipu je celkom nezávislá od fyzickej výroby, tá spodná zelená časť dizajnu už je na vlastnosti výrobného procesu silno naviazaná a na základe nich sa tvorí.

Kontrola masky, na základe ktorej sa na waferoch budujú jednotlivé fyzické prvky /Foto: Reuters/

Ak teda chceme žltú časť dizajnu použiť na inom alebo novom výrobnom procese, celá tá zelená časť sa musí robiť znova, čo si vyžaduje čas a financie. Z tohto dôvodu sa preto na novom výrobnom procese začnú vyrábať obvykle vždy nové procesory s novou mikroarchitektúrou, zatiaľ čo tie staršie obvykle zostanú na tom staršom procese až do ukončenia produkcie.

Prvé vyrobené prototypy čipov sa podrobne testujú a dochádza k finálnym úpravám, ktoré celý proces návrhu ukončia a čip začne byť vhodný pre masovú výrobu. Následne sa tieto wafery režú na jednotlivé platničky v podobe čipov, ktoré sa otestujú, osadia do nosiča, znovu otestujú, zabalia a napokon predávajú a používajú.

Cesta čipu je skutočne komplexná, náročná a má v sebe obrovský kus histórie, ktorý neustále nesie. Snáď sa vám tento komplexný proces aspoň trochu poodhalil a budete sa na výsledné čipy pozerať predsa len už trochu iným pohľadom.

František Urban

František Urban
Zameriavam sa najmä na prehľadové a analytické články z oblasti najrôznejších technológií a ich vývoja. Nájdete ma takisto pri diagnostike HW a SW problémov.

Máte pripomienku alebo otázku k článku? Napíšte nám na redakcia@touchit.sk alebo priamo autorovi článku. Ďakujeme.