Intel 4004. Historia i architektura pierwszego procesora niebieskich

Ostatnio było trochę o tranzystorach, a właściwie miliardach tranzystorów. Czy to dużo? Cóż, interpretacja zawsze zależy od punktu odniesienia. Dlatego pozwolę sobie przytoczyć taki bardzo skrajny – procesor Intel 4004 z 1971 roku, pierwszy procesor niebieskich. 

Oto niezwykła historia o tym jak, z dobrze prosperującego producenta pamięci, Intel przekształcił się w procesorowego hegemona. Zapnijcie pasy, gdyż wskakujemy właśnie w kapsułę czasu, przechodząc na moment ze świata tranzystorów liczonych w miliardach do świata tranzystorów liczonych na palcach. No dobra, jeśli faktycznie na palcach, to kogoś mocno napromieniowanego – ale dobrze brzmi ;) 

Idąc za Wikipedią, procesor to sekwencyjne urządzenie cyfrowe, które pobiera dane z pamięci, interpretuje je i wykonuje. Czyli w najbardziej podstawowej wersji musi składać się z dekodera i jednostki arytmetyczno-logicznej (ALU). 

U genezy funkcję procesora realizował cały zbiór układów scalonych, zawierających od kilkudziesięciu do kilkuset tranzystorów każdy. Aż pojawił się Intel 4004, który wszystko to integrował w obrębie jednego czipu. Nie był pierwszy, gdyż w tamtych czasach w procesory ostro inwestowało wojsko. Niemniej jako pierwszy trafił do konsumenta.

Malarz artysta teoretyk

Jest lipiec 1968 roku. Wynalazcy Gordon E. Moore oraz Robert Noyce zakładają firmę Intel, której nazwa wywodzi się od anglojęzycznego terminu integrated electronics. Chcą tworzyć moduły pamięci. Interes kręci się bardzo dobrze. Intel oferuje jedne z najgęstszych pamięci na rynku. Nikt jakoś szczególnie nie szuka innych źródeł zarobku. 

Niespodziewanie w 1969 roku do Intela zgłasza się firma Busicom, japoński producent sprzętu biurowego. Japończycy mają projekt kalkulatora wraz z całą wymaganą logiką, ale potrzebują kogoś, kto im ten sprzęt wyprodukuje.

Inżynier Marcian "Ted" Hoff Jr., wówczas menedżer działu aplikacji w Intelu, zauważa, że japoński projekt można uprościć i zamknąć właśnie w obrębie pojedynczego czipu. Przekonuje do tego zarówno swoich przełożonych, jak i przedstawicieli Busicom. Jest tylko jeden problem. Hoff nie ma absolutnie żadnego doświadczenia w związku z układami obliczeniowymi, a jego rozważania są czysto teoretyczne. 

Projekt przez blisko pół roku tkwi w martwym punkcie. Przełomem jest pojawienie się Federico Faggina, amerykańskiego fizyka o włoskich korzeniach. Ten pracował wcześniej dla Fairchild Semiconductor, eksperymentując z krzemem. Opracował technologię produkcji krzemowych tranzystorów. W przeszłości bramki robiono z aluminium. 

Wreszcie, w marcu 1971 roku Faggin osiąga sukces. Efektem jego intensywnych prac są cztery układy: 2048-bitowy ROM 4001, 40-bitowa pamięć RAM 4002, układ logiki 4003 oraz właściwy procesor 4004. Widząc efekty, włodarze Intela nie wahają się ani przez chwilę i odkupują od Busicom wszystkie prawa do projektu. Choć Japończycy mogą dalej sprzedawać cały zestaw czipów, co też czynią, jako MCS-4. 

Może nie dobrze, ale tanio i jako tako

Wydawałoby się, że kiedy w grę wchodzi zaprojektowanie sprzętu tak nowatorskiego, nie ma mowy o oszczędnościach. Ale nie tym razem. Intel 4004 z założenia miał być produktem niedrogim i masowym, w odróżnieniu od wieloukładowych "systemów procesorowych". Dlatego koszty cięto na każdym kroku.

Kierownictwo Intela wymusiło, aby układ zamknięto w 16-pinowej obudowie DIP. Podczas gdy większe, 40-pinowe DIP powoli stawały się standardem. W ten sposób ograniczono szerokość magistrali zewnętrznej do zaledwie 4 bitów.

Przez tę 4-bitową magistralę czip musiał przeciskać 12-bitowe adresy pamięci, 8- i 16-bitowe instrukcje, a także 4-bitowe liczby całkowite, na których operował. Aby przyjąć 16-bitowy rozkaz, układ potrzebował aż czterech cykli odczytu. Wykonanie pojedynczej instrukcji wymagało ośmiu cykli zegara. Teoretycznie, przy częstotliwości zegara taktującego równej 740 kHz, Intel 4004 powinien wykonywać 92,6 tys. instrukcji na sekundę. W praktyce, z uwagi na wąską magistralę, graniczyło to z cudem. 

Zestaw instrukcji liczył 46 rozkazów, z czego 41 było 8-, a 5 – 16-bitowych. Przy czym te 16-bitowe reprezentowane były w dwóch cyklach, więc efektywny czas wykonania dodatkowo wzrastał – dwukrotnie. Do tego obsługę przerwań wprowadzono dopiero w 1976 roku, wraz z modelem Intel 4040. Intel 4004 był więc procesorem dość uciążliwym dla programisty, bo wymagał ściśle uszeregowanego przetwarzania. 

Nie jest to jednak dużym problemem, gdy chodzi jedynie o proste operacje arytmetyczne. Stąd do projektowanych przez Busicom kalkulatorów Intel 4004 był jak znalazł. Doskonały przykład implementacji stanowi model 141-PF, który później stał się podstawą licznych kas fiskalnych. Dzisiaj mają one dużą wartość kolekcjonerską. 

Epilog: Nie wzięli go na poważnie

Na przekór wszystkim przeciwnościom, Intel 4004 szybko staje się zalążkiem nowego trendu: budowy monolitycznych mikroprocesorów. W kolejnych latach powstają modele 8008, 8080 i wreszcie kultowy 8086, który stworzył fundament pod stosowany do dzisiaj model programowy x86. 

W połowie lat 70. pojawiają się pierwsze komputery osobiste dla rynku konsumenckiego, natomiast w 1981 roku debiutuje IBM PC.

Federico Faggin opuszcza firmę Intel w 1974 i zakłada przedsiębiorstwo Zilog, w ramach którego opracowuje czip Z80. Wersję rozwojową Intela 8080, a zarazem jeden z najlepiej sprzedających się mikroprocesorów w historii.

Co zabawne, Intel nigdy nie opatentuje 4004, jako że konsekwentnie będzie traktować go jako układ scalony o wysokiej skali integracji (LSI), a nie produkt jakkolwiek nowy i rewolucyjny. Zrobi to dopiero Texas Instruments, uzyskując patent w roku 1973.

Po wielu latach, a konkretniej w roku 1990 wyjdzie na jaw, że pewien wynalazca z Północnej Karoliny nazwiskiem Gilbert P. Hyatt już w 1970 roku złożył patent na komputer oparty na pojedynczym czipie, którego budowę – jak twierdził – rozpoczął jeszcze w '68. Ale Texas Instruments udowodni, że Hyatt nie mógł dysponować technologią pozwalającą na budowę opisywanej maszyny i doprowadzi do unieważnienia jego praw.