VLSI czyli niewesolo
Kluczowa dla procesu produkcji wszelkich ukladow scalonych jest fotolitografia. Technologia polprzewodnikowa jest generalnie prozniowa. W uzywanym w technologi polprzewodnikowej procesie fotolitografi odtwarzany jest w fotopolimerze wzor kolejnych fotomasek na powierzchni powstajacych przyszlych ukladow scalonych na plycie.
Przed nalozeniem fotorezystu powierzchnia procesowanej plyty jest poddawana bardzo dokladnemu, rygorystycznemu oczyszczaniu. W tym celu uzywany jest caly repertuar wyrafinowanych metod. Kazde najdrobniejsze zanieczyszczenie czy nawet zaobsobowane na powierzchni jony beda dyskwalifikujaca wada.
Nastepnie na prozniowej wirowce rozprowadza sie cieniutka warstwe fotopolimeru usuwajac zarazem nadmiar polimeru po brzegach, ktory mogly przeszkadzac w dalszych procesach.
Nastepnie poprzez maske naswietla sie fotopolimer. Dlugosc fali swiatla widzialnego jest zbyt duza do technologi o duzej rozdzielczosci i stosuje sie ultrafiolet. W dalekiej przyszlosci konieczne bedzie uzywanie promieniowania rentgenowskiego X ( rentgenolitografia ) , o krotszej fali niz nawet najglebszy ultrafiolet. Maska jest wykonana na szkle kwarcowym a sam cieniusienki ( kilkadziesiat warstw atomow ) wzor na niej jest chromowy. Jest pokryta tlenkowa powloka antyrefleksyjna. Maski czesto rowniez wytwarza sie metoda fotolitografi.
Maska przy naswietlaniu musi byc niezwykle dokladnie usytuowana w stosunku do plytki krzemowej.
Im wieksza rozdzielcznosc procesu tym bardziej wyrafinowany jest uklad naswietlania.
W procesie wywolywania w miejscach naswietlonych fotorezyst zostaje usuniety. Nastepnie pozostaly fotorezyst zostaje utwardzony wygrzewaniem. Teraz przez powstale okna bez fotorezystu dokonywana jest dyfuzja, implantacja jonow,, wytwarzane sa polaczenia lub powierzchnia jest trawiona.
Po zakonczonym procesie fotolitografi usuwa sie fotorezyst rozpuszczalnikami i wykonuje kolejna fotolitografie...
Przerozne metody technologi polprzewodnikowej i super czyste substancje chemiczne nie sa w ogole podawane do informacji i nie sa nawet jawnie chronione patentami.
Sprzedawany od 1971 roku 4 bitowy procesor Intel 4004 wykonany w latwej i prostej ( malo masek !) technologi PMOS o rozdzielczosci 10 um, ma 2300 aktywnych tranzystorow. Uzyte w nim topologie ALU czy sterujacej PLA byly pionierskie. Po ulepszeniach rozwiazania z tych procesorow sa szeroko nasladowane. Mankamentem rodziny 4004 oprocz wolnej technologi PMOS byla logika dynamiczna, ale logike dynamiczna ma takze pozniejszy procesor Motoroli 6800 i wiele innych. Ale to pozwolilo uzyteczny mikroprocesor w ogole wykonac ! Uklady PMOS sa 2-3 razy wolniejsze niz NMOS ( mniejsza ruchliwosc dziur niz elektronow ) a dodatkowo technologia NMOS wymaga super czystosci materialu i rygorystycznego przestrzegania warunkow produkcji.
Sprzedawany od 1974 roku pierwszy dojrzaly 8 bitowy procesor Intel 8080 wykonany byl w technologi nMOS o rozdzielczosci 6 um i ma 4700 aktywnych tranzystorow i 6000 wszystkich tranzystorow czy tez raczej miejsc na tranzystory. Mowa o miejscach na potencjalne tranzystory w PLA i ROMie mikroprogramu.
Procesor 8080 ma nadzbior instrukcji procesora 8008 ktory nieomal w 100% jest zgodny z procesorem wykonanym na ukladach TTL w terminalu Datapoint 2200 z 1970 roku. Terminal zbudowano na okolo 100 ukladach TTL skali SSI/MSI a wiec sam mikroprocesor zastepowal mniej niz 100 ukladow. NB Intel nie byl w stanie wywiazac sie w terminie i wykonac procesor LSI identyczny funkcjonalnie do pierwowzoru wykonanego na ukladach TTL. Terminal z procesorem 8008 powstal w 1972 roku tak jak i procesor 8008.
Przecietny rozkaz wykonywany jest w ca 7 cykli zegarowych. Chip ma 20mm powierzchni. Rezystorami drenowymi sa wzbogacane, nienasycone tranzystory co wymaga zasilania 12V i w porownaniu z tranzystorami wzbogaconymi daje wolniejsze bramki. Napiecie -5V doprowadzone do tylnych "bramek" tranzystorow zmniejsza problem z zanieczyszczeniami, glownie jonami sodu. Sterowanie jest juz prawdopodobnie mikroprogramowe. Nieznana jest pojemnosc pamieci mikroprogramu ani dlugosc slowa mikroprogramu.
Procesor 8080 ma juz nieliczne rozkazy 16 bitowe - LXI, INX, DCX, DAD, XCHG . W tej grupie tylko rozkaz DAD ustawia znacznik przeniesienia CY i umozliwia w miare sprawna realizacje artmetyki 16 i 32 bitowej. Dodanie HL do siebie jest rownowazne przesunieciu w lewo
Zwrocmy uwage ze para rejestrow "Accumulator" ( jest to przerzutnik typu Latch ) i "Accumulator Latch" (oczywiscie typu Latch) moga razem dzialac jako przerzutnik Master Slave a dodatkowo Master moze byc czytany na Data Bus. Jest to konieczne w sytuacji gdy akumulatior jest w jednej instrukcji jednoczesnie zrodlem operandu ("Accumulator Latch" ) i miejscem zapisania wyniku ("Accumulator").
Realizacja komputera z procesorem 8080 wymaga uzycia kontrolera 8228 i zegara 8224. W tej mierze lepszy jest o rok mlodszy i doskonalszy technologicznie procesor MC6800 Motoroli (6800 tranzystorow) czy mikrokontroller Intel 8085. Rezystorem drenowym sa juz w tych procesorach nasycone tranzystory wzbogacone i stosowane jest wygodne pojedyncze zasilanie 5V
Ogromny sukces odniosl mikroprocesor Zilog Z80 ( stosowany w komputerku Spectrum i wczesniejszym ZX81 ) wykonany w technologi nMOS umozliwiajacy minimalizacje hardware komputera i obnizajacy jego komplikacje i cene. Zaprojektowali go autorzy procesora 8080. Potrzebuje tyle samo cykli zegarowych na wykonanie rozkazow listy procesora 8080 co oryginalny 8080 ale produkowany jest z wieksza czestotliwoscia taktowania. Ma 8500 tranzystorow i sterowanie mikroprogramowe. Sam odswieza dynamiczne DRAMy co oszczedza sporo hardware i kosztow. Ciekawostka jest uzycie w nim zaledwie 4 bitowego ALU wykonujacego 8 bitowe operacje w dwoch cyklach. Procesory 8080 i 8085 maja natomiast ALU osmiobitowe.
Patrzac na pogladowy schemat blokowy procesora Z-80 nie widac tam ani czesci rejestrow niezbednych - koniecznych do pracy procesora ani tego ze ALU jest 4-bitowe co wymaga kolejnych rejestrow i multiplexerow.
Mikroprocesor 8086 Intel z 1978 roku nie jest pierwszym produkowanym mikroprocesorem 16 bitowym. Juz w 1976 roku cos na ksztalt procesora 16 bitowego na swoje potrzeby produkowal Hewlet Packard ( lista rozkazow typu 2116 stosowana do dzis ), ktory korzystal posrednio z rzadowych kontraktow obronno - kosmicznych. Tylko ze 8086 jest, mimo iz wypuszczony jako projekt do awaryjnego ratowania poteznego projektu projektu Intela IAPX, jest znacznie dojrzalszy i produkowany masowo. Motorola znow o rok pozniej wypusila swoja procesorowa odpowiedz "68000"
Intel 8086 wykonany jest w technologi NMOS o rozdzielczosci 3 um i ma 20000 aktywnych tranzystorow z 29000 wszystkich tranzystorow czyli miejsc na tranzystory. Ma 24 mm2 powierzchni. Czas propagacji bramki wynosi 5 ns. Procesor wymaga kontrolera i zegara i ma co gorsza multipleksowane szyny Adres i Data co zmniejsza szybkosc pracy o 20-30% w porowaniu z rozwiazaniem bez multipleksacji. W rezultacie czesc operacji jest wolniejsza niz dla wydajnych procesorow 8 bitowych. Czasy realizacji 16 bitowego mnozenia - 150 cykli a dzielenia do 190 cykli nie sa zachwycajace. Sredni czas operacji to 15 cykli. Wynika to z braku w sumie prostego hardware do sprawnej sekwencyjnej realizacji mnozenia i dzielenia i sumatora do systemu adresu. Przestrzen adresowa 1 MB jest zupelnie wystarczajaca ale segmentacja pamieci jest nad wyraz niewygodna. Chociaz do dodania rejestrow segmentowych do Efektywnego Adresu uzyto osobnego sumatora to Efektywny Adres wylicza niestety glowne ALU co powoduje slimazarny dostep do danych z pamieci. W wypadku odmiany 8088 z 8 bitowa szyba danych slimazarnosc jest jeszcze gorsza. Pamiec mikroprogramu procesora 8086 zawiera 530 slow 21 bitowych. Uklad sterujacy jest ulepszonym sekwencerem znanym z bipolarnych procesorow segmentowych Intel 3000. Mala dlugosc slowa mikroprogramu wymaga uzycia dalszych dekoderow dajacych juz konkretne sygnaly sterujace rejestrom, multiplexerom , ALU i sygnaly wyprowadzone na zewnatrz procesora. Procesor jest niezgodny binarnie z 8080 ale ma bezposrednie przyporzadkowanie rozkazow i uzycie programu z procesora 8080 jest wzglednie latwe. Latche, bufory, dekodery adresow wymagaja uzycia w komputerze od 10 do kilkunastu pomocniczych ukladow TTL a wiec niemalo.
Znow o rok mlodszy konkurencyjny procesor Motoroli 68000 ( tyle ma rzekomo potencjalnych tranzystorow ) wymaga prostszego otoczenia. Az ponad 35 tysiecy tranzystorow angazuje pamieci mikroprogramu ale porownania wskazuja ze rozkazy procesora 68000 (srednio 7 cykli zegara na rozkaz, wzorowane na symetrycznej architektirze minikomuterow PDP-11 ) sa bardziej efektywne od rozkazow procesora 8086 i potrzeba ich mniej do realizacji konkretnego algorytmu w asemblerze. Z drugiej strony kody wytworzone przez kompilatory nie sa bynajmniej istotnie mniejsze a to jest przeciez najwazniejsze.
W wykonanym w technologi CMOS o rozdzielczosci 1.5 um procesorze Intel 80286 z 1982 roku dodano kolejny sumator do wyliczania Efektywnego Adresu oraz rozbudowano i ulepszono ALU tak ze sekwencyjne mnozenie zajmuje circa 24 cykle zegarowe. Procesor ma az 134 tysiace tranzystorow z czego spora czesc zajmuje pamiec mikroprogramu. Nadal jednak wykonanie rozkazow wymaga wielu, wielu cyklow zegara. Chip ma 25 mm2 powierzchni. Dodano w stosunku do 8086 kilka rozkazow. System zarzadzania pamiecia bylby adekwatny do mocnego komputera i jest raczej przerostem formy nad trescia. System taki bylby bardzo uzyteczny w przyszlym wydajnym procesorze podobnie jak wsparcie systemu operacyjnego stosowane w duzych komputerach. Nalezalo raczej znacznie przyspieszyc wykonywanie rozkazow czy sprobowac podejsc do zmiennego przecinka. Nowy procesor DSP firmy Texas Instruments TMS32010 ma kombinatoryczny uklad mnozaco akumulujacy dzialajacy w jednym cyklu zegarowym przy czym srednio instrukcja wykonywana jest w 4 cyklach. Tak wiec Intel powinien sie przylozyc i w nowym procesorze dac szybkie kombinatoryczne mnozenie i na tej bazie sekwencyjne operacje zmiennoprzecinkowego mnozenia i dzielenia mieszczace sie poczatkowo w 10-20 cyklach.
Operacje zaimplementowanego programowo na 80286 zmiennego przecinka w pojedynczej precyzji zabieraja do 1000 cykli zegarowych a zatem przy taktowaniu 6 Mhz mamy zenujace 6000 operacji na sekunde. Okolo 50 tysiecy operacji zmiennoprzecinkowych na sekunde wykonuje koprocesor 8087 ktory jest jednak prohibicyjnie drogi.
Wykonanie przecietnego rozkazu pochlania procesorowi 80286 az 8-10 cykli zegarowych czyli idea pracy procesora nieznacznie zmienila sie od 8080. Nowy procesor wykonuje program procesora 8086 co jest ogromna zaleta i otwiera wielkie pole do przyszlej ekspansji rodziny procesorow rodziny '86.
Nie da sie ukryc ze od ponad 10 lat Intel ma przewage nad konkurencja zarowno technologiczna jak i intelektualna i przewaga ta caly czas sie utrzymuje.
Poki co architektura mikroprocesorow nasladuje architekture minikomputerow i komputerow. Rozdzielczosc technologi i ilosc tranzystorow rosnie jednak tak szybko ze za kolejne 11 lat histori mikroprocesorow od powstania 80286 (1971-4004 i 1982 -80286) beda one mialy 134 * 134/2.3 = 7.8 mln sztuk tranzystorow w 1993 roku. Wpierw latwiejsze instrukcje beda wykonywane w jednym cyklu a pozniej wiecej niz jedna instrukcja bedzie wykonywana w cyklu zegarowym.
Gdy ilosc tranzystorow procesorow bedzie liczona w milionach a pozniej w miliardach oczywiscie efektywne beda architektury wektorowe czy wieloprocesorowe.
Im wiecej tranzystorow ma uklad procesora czy pamieci tym ma wyzsza cene i latwiej go sprzedac. Z czego wynika optymalna ekonomicznie ( zysk producenta lub w ogole rentownosc ) ilosc tranzystorow procesora czy pamieci.
Wrocmy do procesu technologicznego. Wada moze powstac na kazdym etapie produkcji i przy kazdej czynnosci. Wady moze tez miec sam krzem. Niedoskonale sa tez maski. Obecnie ilosc wad na centymetr kwadratowy powierzchni skonczonej technologicznie plyty krzemowej wynosi u renomowanym producentow od 3-5 do 30. Przy czym na przestrzeni lat ilosc wad na centymetr kwadratowy powierzchni zmienia sie niewiele lub wcale natomiast szybko rosnie rozdzielczosc procesu.
Zalozmy ze cala plyta krzemowa na ktorej wykonuje sie czynnosci procesowe ma duza ilosc ukladow. Uzywajac rachunku prawdopodobienstwa mozemy wyliczyc uzysk ( funkcja jest dosc skomplikwana ) czyli oczekiwana ilosc sprawnych ukladow do calkowitej ich ilosci. Nietrudno zgadnac ze uzysk jest tym mniejszy im wieksza wzgledna powierzchia przypadajaca na jedna wade.
Na wykresie pokazano zdefiniowany powyzej uzysk. Przy powierzchni ukladu rownej powierzchni przypadajacej na jedna wade uzysk jest ponizej 0.4 czyli 40%. Jesli powierzchnie zwiekszymy pieciokrotnie to uzysk spadnie do ca 3%.
Wykres ten doskonale pasuje do przytoczonych powierzchni kolejnych procesorow Intela.
Zalozmy ze Intel produkujac procesor 80286 ma wlasnie uzysk 40%. Gdyby chcial ta sama technologia wyprodukowac procesor o pieciokrotnie wiekszej powierzchni to kosztowalby on prawie 70 razy wiecej ! Poniewaz chetnych byloby bardzo malo to dodatkowo koszt bylby powiekszony o koszta stale i procesor pewnie by kosztowal ze 100 razy tyle lub wiecej. Intel jest nie tylko dobry w technologi i projektach procesorow ale ma tez myslace szefostwo, ktore orientuje sie doskonale co i za ile warto rynkowi zaoferowac.
Gdy Intel bedzie mial lepsza technologie to wypusci kolejny procesor, pewnie o podobnej powierzchni co dotychczasowe, ktory bedzie mial wiecej mniejszych i szybszych tranzystorow. Na tej zasadzie kto raz zlapie wiatr w zagle moze po horyzont rozdeptywac konkurencje.
Tekst jest prawdopodobnie z roku 1984. Wykres [ oryginal ZX Spectrum ] wspolczesny.
Ładne, ale za mało :). Temat jest pełen anegdot: 87 robiono w Izraelu, tamtejsi mieli własne koncepcje, szef projektu w USA obudzony kolejny raz o nieludzkiej porze (różnica czasu...) przez gościa, tłumaczącego, że on wie lepiej jak to zrobić - w końcu powiedział: no dobrze, jeżeli uważacie że tak będzie lepiej - to tak zróbcie. I tak postał 8087 :)
OdpowiedzUsuń@Mirosław Mączka
OdpowiedzUsuńJa komputer PC/AT mialem w pracy w 1987 roku. Koprocesor pozyczylem od kolegi bowiem moj program wykonywal potworna ilosc obliczen.
Troche przyspieszyl ale nie tyle co sobie wyobrazalem.