HARDVER<>
052001<><>

Projektovanje i proizvodnja mikroprocesora (2)

Šta kada su suviše brzi?

Još nekoliko faza u dizajnu mikroprocesora, projektovanje konkretnog modela, simulacije njegovog rada i finalne provere

U modernom dizajnu procesora sve je bitniji problem brzine komunikacije između pojedinih blokova na čipu. U okviru kratkih rastojanja, brzina signala je određena veličinom kapaciteta koji treba da promeni vrednost napona. Što je kapacitet koji treba da se promeni veći (driven capacitance), trebaće više vremena da se signal promeni. Brzina se može povećati proizvoljno stavljanjem jačeg izvora signala koji je u stanju da obezbedi jaču struju koja će dovesti do brze promene signala. Jačina izvora se zove driver strength i ona direktno zavisi od širine tranzistora na izlazu koji menja vrednost signala. Moderni procesori imaju neke tranzistore koji su bukvalno hiljadama puta širi od običnih tranzistora, kako bi bili u stanju da brzo menjaju vrednosti globalnih signala koji se koriste svuda na čipu, npr. kloka. Ukoliko je dužina linije relativno mala, kapacitivni efekti su jedino bitni i signal može da se proizvoljno ubrza stavljanjem većih drajvera. Problem nastaje kada linije više nisu zanemarljive dužine i kada njihova otpornost više nije zanemarljiva. U tom slučaju linija se više ne može ubrzati, tako da je brzina signala na liniji konačna, bez obzira na snagu drajvera. Ovaj fenomen zove se RC kašnjenje (RC delay) i predstavlja sve veći i veći problem u modernim dizajnima, pošto već u sadašnjim dizajnima treba ceo klok-ciklus da bi signal prešao sa jednog na drugi kraj čipa, bez obzira na drajver. Ovo postavlja velika ograničenja u pogledu broja i prirode signala koji mogu da idu na velike distance na čipu.

Drugi problem predstavlja „curenje” (leakage), tj. nepoželjan protok struje između izvoda tranzistora. Svi moderni načini za proizvodnju mikroprocesora već su decenijama zasnovani na CMOS (Complementary Metal Oxide Semiconductor) tehnologiji, koja je do sada imala prednost u tome što je nivo curenja vrlo mali, praktično nepostojeći. Međutim, zbog neprestanog smanjivanja dimenzija tranzistora i povećanja njihovog broja na čipu, ukupna parazitna struja curenja raste. Kritična dimenzija tranzistora za curenje je debljina izolacije (silicijum dioksida) između kontrolne elektrode, gejta (gate) i kanala (channel). Potrebno je da izolacija bude što deblja da bi curenje bilo manje. Nažalost, debljina izolacije je obrnuto proporcionalna brzini, tako da se moderni procesori prave sa što je moguće tanjom izolacijom da bi bili što brži. Debljina izolacije u modernim procesorima toliko je mala da se sastoji od samo 10 do 20 slojeva atoma! Pitanje je da li uopšte ima smisla govoriti o „izolaciji” sa tako tankim materijalima. Procesori koji su na pragu u sledećih nekoliko godina imaće samo nekoliko slojeva atoma za izolaciju, tako da je teško zamisliti kako bi se to još smanjilo. Jedno od obećavajućih rešenja jeste korišćenje nekoliko vrsta tranzistora u čipu, npr. sporiji s debljom izolacijom koji se mogu koristiti u delovima čipa koji nisu kritični, i brzi tranzistori koji dosta cure, ali moraju da se koriste u delovima gde je brzina kritična.

Svi novi mikroprocesori za PC računare moraju da zadovoljavaju specifikaciju „Intelove” arhitekture koja je definisana još 1980. godine sa Intelom 8086 koji je bio procesor u prvom IBM PC-u. Izuzetak su „Appleovi” Macintosh računari koji se zasnivaju na drugoj arhitekturi koja je definisana sa PowerPC procesorima pre desetak godina. Osnovne karakteristike jedne arhitekture su vrste instrukcija koje procesor koristi, kao i broj i vrsta unutrašnjih registara (veoma brze memorije na čipu), ali i mnogo drugih detalja. Jedinstvena arhitektura obezbeđuje da svi programi koji rade, na primer, na „Intelovim” procesorima moraju da rade i na AMD-ovim procesorima.

S jedne strane, arhitektura postoji samo na apstraktnom nivou pošto se mikroprocesori drastično razlikuju između sebe, ne samo između proizvođača nego i u okviru modela istog proizvođača. Konkretna realizacija procesora, tj. broj i vrste blokova koji omogućavaju da on pravilno radi zove se mikroarhitektura. Dobar primer razlika u mikroarhitekturi i same prirode ovog pojma jeste broj tipova instrukcija koje procesor može da izvrši istovremeno. Svi moderni procesori, uključujući Pentium 4, Pentium III, Athlon, PowerPC mogu da izvršavaju više instrukcija u isto vreme. Na primer, jedan procesor može istovremeno da izvrši četiri bilo kakve instrukcije, drugi može samo tri, a treći tri od kojih samo jedna može da bude memorijska operacija itd. Inače, procesori koji mogu da izvršavaju instrukcije paralelno zovu se superskalarni (superscalar). Drugi parametar je koliko instrukcija procesor može odjednom da zahvati iz memorije itd.

Definicija mikroarhitekture je početna faza u razvoju novog modela mikroprocesora. Cilj je, naravno, da se mikroarhitektura napravi tako da je procesor što brži i da je u stanju da izvršava što više instrukcija u isto vreme. Mikroarhitektura se ne menja bitno za svaki novi procesor pošto to zahteva mnogo vremena (više godina) i napora (stotine ljudi). Na primer, Pentium 4, koji se pojavio prošle godine, ima potpuno drugačiju mikroarhitekturu od Pentiuma III koji se ne razlikuje mnogo od Pentiuma II i Pentiuma Pro, koji je izašao 1995. godine. Pentium se, inače, potpuno razlikuje od svih prethodnih tipova. AMD Athlon se drastično razlikuje od AMD K6 procesora, koji se opet potpuno razlikuje od AMD K5 procesora itd.

Mikroarhitektura procesora, tj. sam procesor, određuje se hardverskim modelom (hardware model), programom napisanim u programskom jeziku za opisivanje hardvera (HDL, Hardware Description Language). Model potpuno određuje vrste blokova od kojih će se sastojati procesor, način na koji rade i međusobno komuniciraju itd. Ovaj model je veoma bitan pošto je on u stvari najdetaljnija i najkompletnija definicija procesora i načina na koji radi.

Jedna od najbitnijih uloga modela jeste simulacija. Pošto je model napisan u programskom jeziku, moguće je pomoću kompjutera simulirati način rada procesora i proveriti da li radi pravilno. Simulacija počinje praktično odmah od početka i nastavlja se do završetka dizajna, pa čak i posle. Dizajneri neprestano testiraju model preko simulacije i traže probleme kojih uvek ima, pošto je ceo dizajn veoma kompleksan. Ideja je da se broj problema, koji je u početku veliki, pošto definicija nije dovoljno razrađena, smanjuje tokom vremena i na kraju treba potpuno da nestane. Zbog kompleksnosti, problema ima čak i u procesorima u proizvodnji, s tim što su problemi s procesorima koji se prodaju vrlo mali i uske prirode i pojavljuju se samo pod određenim, retkim okolnostima. Spisak problema procesora u proizvodnji zove se Errata Sheet i bukvalno ih imaju svi proizvođači. „Intel” javno objavljuje Errata Sheet za sve svoje procesore (AMD to ne radi, mada se zna da i AMD procesori imaju problema), tako da proizvođači računara znaju za sve probleme.

Druga aktivnost koja počinje od samog početka jeste tzv. globalno planiranje rasporeda (global floor planning). Procesori se izrađuju na pločicama silicijuma na kojima je sve definisano u nizovima ravni, tj. dvodimenzionalnih slojeva. U okviru ove faze određuje se, na grubom nivou, gde treba da budu razni funkcionalni blokovi čipa, npr. FPU (Floating Point Unit, blok za izvršavanje aritmetičkih operacija sa realnim brojevima) će biti u sredini čipa, ALU (Arithmetic Logic Unit, blok za izvršavanje aritmetičkih operacija) će da bude levo u sredini, memorijski blok će biti u desnom gornjem uglu itd. I pored toga što je ovo planiranje u početku veoma grubo, ono ima bitne posledice pošto tokom celog projekta određuje kritične karakteristike, kao što su broj i dužina linija između raznih blokova. Loš raspored može da dovede do velikih problema sa brzinom komunikacije među blokovima i time ukupnom brzinom procesora. Pored toga što se određuje lokacija, obično se odredi i koliki deo površine svaki blok zauzima.

Kada se model dovoljno razradi, počinje se sa dizajnom električnih kola kojima se realizuju funkcije u modelu. U ovom momentu određuju se vrste i karakteristike kola koja će da se koriste, čime se otprilike dobija ideja o brzini. Pre nekoliko godina, električna kola su se projektovala crtanjem električnih šema na kompjuteru. Zbog ogromnog broja tranzistora u modernim procesorima to više nije praktično, već se dobar deo procesora automatski pretvara u šeme i detaljan raspored na silicijumu putem takozvane sinteze. Ovaj proces je mnogo brži i efikasniji nego dizajn koji rade inženjeri, ali su nažalost gustina, potrošnja i brzina blokova napravljenih preko sinteze lošiji nego što inženjeri mogu da naprave ručno. Zbog toga se dizajn i crtanje šema za kritične delove (kao što su datapath kola za operacije i manipulacije vektora od više signala, unutrašnja memorija itd.) rade ručno, što dugo traje i zahteva dosta napora.

Kada su i šeme dovoljno razrađene, počinje rad na jednoj od najbitnijih i najkomplikovanijih faza – tajmingu (timing). Cilj je da se analizira da li svaki element čipa radi dovoljno brzo. Ako samo jedan od desetina miliona tranzistora na čipu nije dovoljno brz, a nalazi se na „kritičnom putu” (critical path), to dovodi do nepravilnog rada celog čipa. U idealnim okolnostima, tajming analiza može da se vrši na nivou svakog tranzistora, sa preciznim električnim simulacijama, ali je to sporo i nepraktično. Zbog toga se ovakva vrsta analize vrši samo na delovima na kojima su poznati kritični putevi. Jedan od načina na koji se određuju kritični putevi jeste procena broja i složenosti operacija koje treba da se izvrše u jednom klok ciklusu. Ukoliko dizajneri smatraju da ima mnogo stvari da se uradi u ciklusu, onda oni analiziraju u detalje (na nivou tranzistora) blok koji je u pitanju. U većini delova vrši se specifikacija tajminga na nivou blokova, tako što se odredi kada treba da budu prisutni ulazni signali i kada će biti važeći signali na izlazima. Ova informacija se onda upoređuje između blokova tako što se proverava da li je svaki signal važeći na izlazu pre nego što ga zahtevaju svi korisnici na njihovim ulazima. Ovaj proces se zove statička tajming analiza (static timing analysis). Proces je statički zbog toga što se ne vrši simulacija rada bloka, već se samo proverava da li su signali važeći na izlazima u pravo vreme, u svakom slučaju.

Još jedna interesantna i verovatno iznenađujuća činjenica jeste da, iako signali treba da budu što brži da bi ceo procesor brzo radio, oni ne smeju da budu suviše brzi! Ovaj problem se zove minimalno kašnjenje (min-delay). Svaki čip ima hiljade memorijskih elemenata, flip-flopova ili lečeva (latch) koji služe za pamćenje svih međurezultata tokom izvršavanja operacija u procesoru, tokom svih faza instrukcija. U vreme rada procesora ima više instrukcija koje se izvršavaju istovremeno i nalaze se u raznim fazama. Na kraju svakog ciklusa instrukcije prelaze u sledeću fazu tako što su zapamćene u memorijskim elementima (flip-flopovima). Pod određenim uslovima može da se desi da nema šta da se radi u određenoj fazi, tako da instrukcija može greškom da odjednom prođe kroz dve faze. Ovo može dovesti do katastrofalnih posledica pošto sledeće faze očekuju da instrukcija ide samo kroz jednu fazu u klok ciklusu. U slučaju kada instrukcija prođe greškom kroz dve faze u ciklusu, ceo put instrukcije je „suviše brz”. Rešenje je da se linija koja je u pitanju uspori dodavanjem kašnjenja koje će osigurati da instrukcija može da prođe samo kroz jednu fazu u svakom ciklusu. Problem minimalnog kašnjenja veoma je ozbiljan: u slučaju da procesor nije dovoljno brz, uvek može da radi na nižoj frekvenciji, sporije, dok u slučaju problema sa minimalnim kašnjenjem procesor nikad ne radi pravilno.

Nadamo se da smo uspeli da predstavimo glavne probleme u razvoju mikroprocesora i faze u njihovom razvoju. Zbog ograničenosti prostora, nismo bili u stanju da ulazimo u detalje, kao ni da pomenemo neke druge faze i probleme, na primer testiranje. Celokupno polje razvoja mikroprocesora veoma je obimno i uzbudljivo i postoji hiljade knjiga na tu temu.

Borislav AGAPIEV

 
 NOVE TEHNOLOGIJE
Ultra SATA/1500
Biomemorijski mediji

 NA LICU MESTA
Chaintech dani

 HARDVER
Projektovanje i proizvodnja mikroprocesora (2)
Šta mislite o ovom tekstu?
Ostali tekstovi na temu:
Procesori

Autor je osam godina radio u „Intelu” i učestvovao je u razvoju Pentium Pro procesora na čijoj se arhitekturi zasnivaju svi današnji modeli mikroprocesora ovog proizvođača. Vlasnik je novoosnovane firme „Omni-Explorer technologies”.