Historia procesora Intel 386
02.05.2019 15:33
Przełomowy – tak jednym słowem można podsumować bohatera tego odcinka. To na jego bazie powstały procesory 486 oraz Pentium, to on był inspiracją do stworzenia Linuxa, to przez wydarzenia z nim związane, w kolejnych latach na obudowach pecetów pojawiały się naklejki “intel inside”, a o jego wielkości najwybitniej świadczy fakt, że ten CPU był produkowany przez 22 lata. W tym materiale pod lupę biorę procesor 80386 Intela.
Materiał dostępny jest w wersji tekstowej, którą właśnie czytacie oraz w wersji wideo:
Był październik 1985 roku, świat podziwiał dziewiczy lot wahadłowca Atlantis, amerykańskie dzieci po latach czekania mogły zacząć zabawę konsolami NES, rodzi się Free Software Foundation, natomiast w Polsce odbyły się ostatnie (cytując Wikipedię) "w żadnym stopniu wolne" wybory do parlamentu. Wtedy to Intel – w końcu – zaprezentował pierwszy 32 bitowy procesor w architekturze x86. Dlaczego w końcu?
Bowiem na papierze procesor ten powstał jeszcze przed wypuszczeniem na rynek procesora 80286, ot, był tak skomplikowany, że Intel potrzebował jeszcze kilku lat, aby z papieru przenieść projekt do pecetów.
Trzeba też zaznaczyć, że nie był to pierwszy Intelowy procesor 32‑bitowy, wcześniej –dużo wcześniej, Intel wypuścił iAPX 432. Procesor (a właściwie zestaw procesorów) został udostępniony w końcówce 1981 roku, a zaprojektowano go już w 1975 roku. Ten CPU nie był jednak w architekturze x86 i okazał się finansową klapą.
80386 przemianowany w późniejszym okresie na po prostu 386, był nie lada osiągnięciem. Przez lata dzierżył miano najmocniejszego procesora i był chętnie wykorzystywany w bardziej profesjonalnych zastosowaniach (CADy, serwery, itp.).
Pierwsze iteracje procesora były zbudowane z 275 000 tranzystorów! Dla porównania na pierwsze wersje 286 składało się 134 tysiące tranzystorów, a taki Pentium 60 posiadał ich już 3,1 miliona.
Co ciekawe proces technologiczny był taki sam jak przy 286, czyli 1500 nm. Intelowi udało się upakować taką liczbę tranzystorów zwiększając powierzchnię samego CPU: z 49 mm kwadratowych do 104 mm kwadratowych – patrząc na takie obrazki procesora:
...miejcie na uwadze, że jego serce znajduje się w samym środku:
Jak się ma ten proces technologiczny do tego, który jest obecnie aktualny? Na obrazku niżej macie ściągawkę:
To, że Intel zaprezentował 386‑kę w 85 roku nie znaczy, że można ją było wtedy nabyć. Produkcja pełną parą ruszyła dopiero w 1986 roku, a jak już ruszyła produkcja i dość skromnie procesor zaczął się pojawiać w sklepach to wraz z nim zaczęły się pojawiać problemy, a jednym z nich był brak płyt głównych obsługujących nowe układy. Więcej o tych problemach w dalszej części.
Dostępne były dwie główne wersje procesorów, pierwsza z dopiskiem DX była pełnoprawnym 32 bitowym CPU, druga wersja – SX, to hybryda 16/32 bit. Wersja SX była oczywiście o wiele tańsza i pojawiła się 2 lata po oryginalnym modelu. W tym miejscu warto zaznaczyć, że dopiski DX i SX zostały dodane wraz z premierą wersji SX.
Zasadnicza różnica pomiędzy tymi modelami to magistrala danych: wersja DX pozwalała zaadresować aż 4GB pamięci, natomiast wersja SX jedynie 16MB, co tylko pozornie było problemem, bo 16 MB RAM w blaszaku z 386 było czymś trudno osiągalnym i często po prostu niepotrzebnym, a adresowanie 4GB w 1985, to zwykłe sci‑fi.
Była jeszcze wersja SL, energooszczędna, przeznaczona do notebooków, a zbudowana została na bazie wersji SX. Oprócz tego Intel wypuścił jeszcze kilka wersji do systemów wbudowanych.
80386 pracował w trzech trybach: Real mode (tryb rzeczywisty), Protected mode (tryb chroniony) oraz Virtual mode (tryb wirtualny). Nowością był ten trzeci, który pozwalał uruchamiać jednocześnie wiele programów trybu rzeczywistego. Co ważne ten CPU pozwalał w szybki sposób przełączać się pomiędzy trybami, poprzednik (286) musiał być resetowany przed przełączeniem z trybu chronionego do rzeczywistego.
Do procesora dodano również zestaw nowych instrukcji. Jeśli do tego dodamy jeszcze o wiele lepsze zarządzanie pamięcią niż u poprzednika, to wychodzi z tego prawdziwy demon szybkości, ze zdolnością do wydajnego multitaskingu, który w tamtych czasach dopiero raczkował, choć był możliwy nawet na 286 – na tym procesorze działało to jednak w tak ograniczonym stopniu, że sam Bill Gates mówił o 286 pieszczotliwie: “brain dead”.
Głównym inżynierem odpowiedzialnym za powstanie nie tylko 386, ale też 486 był John Crawford. Maczał też palce przy projektowaniu Pentiumów.
Wczesne modele 80386 były taktowane zegarem 12 MHz, szybko potem pojawiły się wersje z taktowaniem 16 MHz, 20 MHz, 25 MHz oraz 33 MHz. Inni producenci z taktowaniem 386‑tek zaszli dalej, taki AMD z powodzeniem sprzedawał modele Am386 z taktowaniem 40 MHz, ale aby być fair, AMD rozpoczął produkcję swoich klonów dopiero w 1991 roku (a wersję 40 MHz od 1992r.).
Dlaczego tak późno i jak to się stało, że AMD robił klony procesorów Intela? Jest to skomplikowany temat i wyjaśnienie tej kwestii zajęłoby z pewnością więcej czasu niż cały ten materiał miał trwać, ale postaram się wyjaśnić to w wielkim skrócie.
Był rok 1981, ówczesny gigant branży IT – IBM, wyraził swoje zainteresowanie procesorami z rodziny x86 Intela. Nie trzeba być gazelą biznesu, aby wiedzieć, że taki deal z IBM to duże ilości guacamole i trzeba zrobić wszystko, aby do finalizacji umowy doszło. IBM miał jednak jeden warunek – Intel nie mógł być jedynym dostawcą chipów, firma została niejako zmuszona do udzielenia licencji na produkcję procesorów x86 innym.
Tak oto do akcji wkracza AMD. W 1982 obie firmy podpisały kontrakt na 10 lat, co warte odnotowania, nie był to pierwszy kontrakt jakie obie firmy ze sobą podpisały, pierwszy o wymianie technologii podpisano w 1976 roku, dodatkowo rozszerzono go w 1982 roku właśnie.
AMD z powodzeniem produkował klony intelowskich procesorów i wszystko szło gładko, do momentu nasycenia się rynku. W chwili wydania 386 Intel nie musiał się już... kolokwialnie mówiąc "podlizywać" do IBM (kierunek lizania się raczej odwrócił, o czym za chwilę). W takiej sytuacji Intel wypowiada AMD umowę o współpracy, ale jej rozwiązanie ma trwać zgodnie z kontraktem 5 lat. W tym czasie AMD chce jeszcze wyprodukować swojego klona 386, ale Intel twierdząc, że podpisana umowa dotyczyła tylko procesorów 286 w dół, nie chce dać AMD mikrokodów nowego chipu.
Ówczesny wiceprezydent AMD, Gene Conner skomentował ruch Intela słowami:
"Powiedzieć, że zostaliśmy zdradzeni, to duże niedopowiedzenie".
Niesprawiedliwym byłoby stwierdzenie, że Intel robił to z czystej chciwości – umowa którą obie firmy podpisały mówiła o tym, że jeśli jedna strona bierze technologię drugiej strony, to musi w zamian dostarczyć technologię o równym stopniu skomplikowania, a wedle Intela, AMD nie dysponował wtedy niczym w zamian. Można o tym poczytać w książce “The Power of Boldness”, a opowiada o tym sam Gordon Moore, jeden z założycieli Intela (tak, to ten od prawa Moora).
AMD nie daje za wygraną. Podpierając się wygasająca umową firma postanawia pozyskać mikrokody poprzez wsteczną inżynierię. Gotowe układy udało się wyprodukować w niespełna 2 lata. W międzyczasie trwa przepychanka sądowa z Intelem. Po długiej i kosztownej batalii AMD wychodzi z niej zwycięsko i zaczyna zalewać (dosłownie) rynek swoimi klonami 386. W sądach firmy spędzą jeszcze kilka lat, ale to historia na inną okazję.
To podczas tych przepychanek sądowych, Intel stracił prawo do nazywania procesorów liczbami, a to, jak Intel dowiedział się o tym, że AMD planuje sprzedawać procesory wykorzystując ciąg liczb “3‑8-6” było naprawdę niesamowitą historią.
W 1990 roku pracownik AMD z działu marketingu Mike Webb zatrzymał się w hotelu w Sunnyvale w Kalifornii, w tym samym czasie, w tym samym hotelu, zatrzymał się inżynier Intela: Mike Webb. Chyba już wiecie gdzie to zmierza. Tak oto pracownik Intela otrzymał paczkę przeznaczoną dla pracownika AMD, w której to znajdowały się materiały marketingowe reklamujące procesor 386 od AMD.
Intel nie chciał przyjąć do wiadomości, że ich nazwa procesora stanie się nazwą generyczną. Dlatego firma zaczęła wymagać od producentów PeCetów, aby ci informowali w broszurach i na obudowach, że w oferowanym komputerze jest INTEL 386, a nie 386. To pokłosiem tych wydarzeń były dobrze wszystkim znane naklejki na obudowach “intel inside”.
Finalnie Intel przegrał bitwę o nazewnictwo procesorów: nazwy 386, 486 a nawet 586 mogły być wykorzystywane przez inne firmy. Rzutem na taśmę dodam jeszcze, że wynalezienie nazwy dla swoich kolejnych procesorów firma Intel zleciła firmie Lexicon – to ta firma wpadła na nazwę Pentium, a na swoim koncie mają takie nazwy jak: PowerBook, BlackBerry czy DeskJet.
Tak oto Intel przegrał wszystko, co dało się przegrać, nazwę i samą technologię, do tego - trzeba to podkreślić: procesory 386 produkowane przez AMD były niemal pod każdym względem lepsze niż te produkcji Intela. Mniej się grzały, były szacunkowo szybsze o 20%, czerpały mniej prądu, były tańsze i przede wszystkim były bardziej dojrzałe – nie posiadały młodzieńczych błędów Intelowego pierwowzoru. Procesory Am386 okazały się ogromnym sukcesem finansowym i były przysłowiowym wiatrem w żagle dla firmy AMD.
Intel może i przegrał to starcie, ale z drugiej strony, kiedy inne firmy bawiły się we wsteczną inżynierię, Intel opracowywał już kolejną generację procesorów. W tym okresie uwaga Intela była skupiona na 486 i jego następcy. Intel jeszcze przez wiele lat będzie tą firmą, którą się goni.
Układy od AMD nie były jedynymi klonami 386‑tek, na rynku pojawiły się jeszcze procesory produkcji IBM, konkretnie IBM 386SLC. Chipy pojawiły się w 1991 roku, były klonami wersji SX i nie zwojowały rynku, bo w zasadzie to nie miały tego zrobić. Intel udzielił IBM‑owi licencji pod warunkiem, że ten będzie je jedynie stosował w swoich zestawach komputerowych lub zestawach do upgrade'u pecetów IBM‑a, samodzielna sprzedaż nie była dozwolona.
Inną firmą, która chciała spróbować swoich sił na tym polu było Chips and Technologies. W odróżnieniu od IBM‑a który miał licencję od Intela, czy AMD który twierdził, że ma licencję od Intela, Chips and Technologies zbudowało swój układ na zasadzie "Clean room design", czyli skopiowaniu jakiegoś rozwiązania w taki sposób, aby nie naruszyć żadnych praw autorskich.
Innym przykładem 'clean room design' był np. BIOS firmy Phoenix, a bardziej dzisiejszym przykładem jest np. ReactOS, czyli open-source'owy system, który ma być binarnie kompatybilny z systemami Windows 2003 w górę.
Super386, bo tak nazywał się twór Chips and Technologies, a w zasadzie twory, bo wersji było kilka, pojawił się na rynku bardzo późno bo dopiero w 1992 roku. Najbardziej wypasiona wersja 38605DX posiadała 512 bajtów pamięci cache – przypomnę tylko, że wersje od Intela i AMD nie posiadały pamięci cache wcale, ta była zależna od tego ile użytkownik lub producent peceta osadził na płycie głównej. Wydajność tego procesora miała być nawet o 40% większa niż u konkurencji, był jednak jeden zasadniczy minus: brak pinowej kompatybilności z socketem na procesory 386 (PGA132). Procesor nie podbił rynku i szybko o nim zapomniano.
Wypadałoby jeszcze wspomnieć o Cyrix-ie, ich procesory 486SLC i 486DLC i ich kolejne wersje (wbrew temu co sugeruje nazwa), nie są tak naprawdę stuprocentowymi klonami 486‑tek, w praktyce są czymś pomiędzy 386, a 486. Można je było zamontować w płytach głównych komputerów generacji 386, ale posiadały własny cache i zestaw instrukcji procesorów 486. Układy te dla Cyrixa wyprodukowało Texas Instruments, które sprzedawało je też pod swoim brandem. Procesory znalazły swoją niszę, ale nie brakowało niezadowolonych nabywców, którzy sugerując się nazwą spodziewali się wydajności procków 486, a tak naprawdę dostawali tylko trochę lepszego 386.
Związek Socjalistycznych Republik Radzieckich także miał swoją wersję 386. Z cyrylicy na nasze, chip nazywał się 1875VD2T i był klonem intelowskiego 386‑EXTB. Niewiele wiadomo o układzie, ale chyba bezpiecznie będzie założyć, że procesora nie pozyskano poprzez licencjonowanie czy "clean room design".
Grzechem byłoby nie wspomnieć o RapidCAD od Intela. Reklamowany jako koprocesor, był tak naprawdę zestawem procesor + coś. W rzeczywistości główny układ był 486‑ką pozbawioną cacheu i kilku instrukcji, ale już z koprocesorem. Drugi chip był taką bardziej skomplikowaną zaślepką – wysyłał do płyty głównej informacje, że maszyna ma koprocesor. Jeśli zastanawialiście się jakie kombo 386/387 wypada najlepiej w testach, to odpowiedzią jest RapidCAD.
Wracamy do oryginalnego 386 produkcji Intela, a dokładnie do pierwszego na świecie komputera, który mógł się pochwalić tym procesorem. Otóż pierwszym dostawcą PeCetów z 386 było Compaq i firma dołożyła starań, aby wszyscy o tym fakcie wiedzieli. W tym celu zatrudniono członka Monty Pythona – Johna Cleese’a, a efektem współpracy okazał się całkiem udany klip reklamowy (tych klipów jest cała seria, ale tylko ten dotyczy omawianego sprzętu):
PeCet nosił nazwę Deskpro 386 i dzięki magii Internetu możemy dotrzeć do oryginalnych informacji z tamtego okresu odnośnie tego sprzętu, a 30 lat po premierze sam intel wspominał ten zestaw słowami “najszybszy pecet na świecie”.
Cena Deskpro z 1 MB RAM i dyskiem 40 MB wynosiła 6 499 USD, czyli niespełna 15 tysięcy dolarów dzisiaj. To jednak nie wszystko, bo w cenie nie było monitora ORAZ karty graficznej. Karta EGA to minimum +600USD, monitor kolorowy +800USD. Razem daje to jakieś 7900 USD, czyli dzisiejsze 18 220 dolarów.
Dlaczego poświęcam tyle czasu na jakiegoś peceta z połowy lat 80‑tych? Otóż spekuluje się, że tym zestawem firma Compaq zdetronizowała IBM‑a na rynku domowych PeCetów, po czym gigant już się nie otrząsł (a próbował).
Specjalnie z myślą o 386 i z całą pewnością z myślą o jego następcach, IBM opracował magistralę Micro Channel potocznie zwaną MCA. Na drodze ponownie stanęło Compaq, które wraz z innymi wielkimi firmami IT pod szyldem – uwaga – Gang Dziewięciu (poważnie, tak nazywało się konsorcjum na czele którego stało Compaq), opracowały otwarty standard EISA.
Powodem buntu producentów Klonów była opłata licencyjna, a właściwie dwie opłaty: jedna, aby z MCA w ogóle korzystać i druga za każdego sprzedanego PeCeta. Szczęśliwie dla nas, plan IBM się nie udał, choć MCA było szybszym rozwiązaniem (szczęśliwie dla nas, bo opłatę licencyjną przerzucono by oczywiście na konsumentów).
Złe to były czasy dla IBM, a najgorsze miało dopiero nadejść:
Między innymi wydarzenia związane z erą pecetów 386 przyczyniły się do tego, że w 1993 roku firma stanęła na skraju bankructwa, ze stratami sięgającymi 5 miliardów dolarów, ale o tym innym razem. Niezaprzeczalnym jest jednak fakt, że okres kiedy to o względy IBM musiały walczyć inne firmy sprzętowe dobiegł końca, od teraz to IBM musi się “podlizywać” m.in. do Intela.
Dobra, zbaczam trochę z kursu. Wracamy do Deskpro 386. Mamy więc pierwszego peceta ze świeżutkim 32‑bitowym prockiem – co dalej? No właśnie, zakładając, że nie pracujemy na oprogramowaniu mocno specjalistycznym, to prawdopodobnie nie mieliśmy zbyt wielu okazji, aby zobaczyć moc 386 w praktyce.
Naturalnym więc wydaje się to, że Compaq naciskało na Microsoft, aby ten czym prędzej wydał Windowsa/386, który miał pokazać moc i możliwości 386‑ki i co za tym idzie Blaszaka Compaq, a skoro już przy Windows/386 jesteśmy, to trudno nie wspomnieć o tej abominacji, która reklamowała system (to jest autentyczna reklama Microsoftu, prawdziwa akcja zaczyna się od 8. minuty):
Jak już wspomniałem 386 był chętnie używany w stacjach roboczych i to tam właśnie trafiał w pierwszej kolejności. I tu pojawiał się kolejny problem – bowiem w chwili premiery 386 koprocesor i387 mocno pożądany w stacjach roboczych, nie był jeszcze dostępny.
Produkcja koprocesora ruszyła niemal równe dwa lata po wypuszczeniu 386. Producenci płyt głównych zalewani pytaniami od klientów znaleźli jednak na to rozwiązanie: na płytach głównych osadzano sockety zgodne z koprocesorem do 286. Oczywiście nie było to idealne rozwiązanie i sprawdzało się tylko w pewnych przypadkach, ale najwyraźniej lepsze to niż nic (takie rozwiązanie zastosowano m.in. w Compaq, o którym była przed chwilą mowa).
W takim scenariuszu procesor 386 i koprocesor 287 pracują asynchronicznie, co oczywiście przekłada się na gorsze osiągi.
Problemy intela z tym procesorem nie kończyły się niestety na ograniczonej dostępności płyt głównych czy braku dedykowanego koprocesora na start. Okazało się bowiem, że niektóre (wczesne) partie procesora przeprowadzały błędne operacje mnożenia w trybie 32 bitowym. Kiedy o usterce zrobiło się głośno (w 1987 roku) Intel nie był skłonny do wymiany wadliwych chipów, użytkownicy dostali jedynie dodatkowy rok gwarancji.
Firma zmieniła jednak zdanie i finalnie zarządzono wymianę wadliwych egzemplarzy. Felerne chipy w trybie 16 bitowym działały jednak poprawnie, więc zamiast wyrzucać je do kosza, Intel sprawdzał każdy egzemplarz i jeśli wykryto usterkę nabijano na powierzchni "16 bit software only", jeśli natomiast wszystko było OK nabijano dwie sigmy.
Po latach okazało się, że w 386 zaszyty był jeszcze jeden bug o nazwie POPAD, jednak programiści sami się z nim uporali i pisali kod mając tę niedoskonałość w pamięci. POPAD to jeden z rejestrów ogólnego przeznaczenia.
Ogólnie, pierwsze rewizje procesora nie cieszyły się dobrą sławą, w gazetach można było nawet znaleźć artykuły odnośnie tego, których wersji procesora trzeba unikać.
Już na początku wspomniałem, że produkcja 386 zakończyła się dopiero po 22 latach, konkretnie w 2007 roku. Jak to możliwe? To oczywiście za sprawą całej masy systemów wbudowanych, czyli embedded. Tego staruszka można znaleźć w instrumentach muzycznych, maszynach przemysłowych, podobno świetnie sobie radzi (radził) w przemyśle kosmicznym. Był też sercem tzw. “interaktywnego pagera” BlackBerry 950 oraz Nokii 9000 Communikatora.
Ciekawostką jest, że bohater tego materiału był inspiracją do stworzenia Linuxa. Linus Torvalds chcąc sprawdzić co potrafi jego 386 zaczął tworzyć swój, jak to określił na usenecie: "darmowy system operacyjny". We wpisie podkreślał też, że jego system będzie utylizował możliwości 386 do przełączania zadań.
Tak oto dotarliśmy do końca, uff, to miał być krótki materiał, który miał być zresztą jedynie dodatkiem do innego wpisu – jak widać, trochę mi nie wyszło. Nevermind, dotarliśmy do końca, w przyszłości możecie się spodziewać podobnych materiałów o innych procesorach (trochę tego nazbierałem).