Sie 03

 

Intel_4004

Pierwszy procesor 4-bitowy.

4004 – to pierwszy 4 bitowy procesor powstały w 1971 r. na zamówienie japońskiej firmy ETI, Procesor ten przeznaczony był co prawda tylko do kalkulatora ale stanowił początek technologicznej linii układów scalonych. Procesor zawarty był w pojedynczym układzie, składał się z około 2300 tranzystorów upakowanych na powierzchni 10 mikrometrów i pracował z częstotliwością 108 KHz.

Intel 4040 to 4-bitowy procesor, następca 4004, którego produkcję rozpoczęto w 1974. Najważniejszą różnicą w porównaniu z 4004 było dodanie obsługi przerwań. Rozszerzono liczbę instrukcji do 60, powiększono pamięć programową do 8KB, zwiększono głębokość stosu do 7 poziomów i liczbę rejestrów do 24. Razem z 4040 powstało także 10 innych chipów służących do jego obsługi i komunikacji w innymi układami.

Procesory 8-bitowe

8008 – to opracowany w 1972 r. 8 bitowy procesor przeznaczony podobnie jak jego poprzednik – 4004, do prostych urządzeń obliczeniowych. Pracował z częstotliwością 200 KHz, na powierzchni 10 mikrometrów zawierał 3500 tranzystorów.

Lata 70-te ubiegłego wieku to okres dominacji komputerów 8-bitowych. Co prawda w 1974 Intel miał już na rynku swój procesor o oznaczeniu 8080, niemniej pierwsze skrzypce w tamtym okresie grały procesory firm konkurencyjnych.
Jednym z tych procesorów była Motorola 6800 (nie mylić z jego następcą Motorola 68000!). Ten 8-bitowy procesor został wprowadzony na rynek kilka miesięcy po 8080 ale w gruncie rzeczy był do niego bardzo podobny. Oba procesory mogły zaadresować do 64kB pamięci, miały rejestry A i B o długości 8-bitów a rejestry stosu i programu o długości 16-bitów. Motorola 6800 prawdopodobnie jako pierwszy procesor miał rejestr indeksowy, który Intel zaimplementował w swoich procesorach dopiero 4 lata później. O jego sukcesie zdecydowała także dość prosta aplikacja, 6800 był zasilany tylko jednym napięciem +5V. Konkurencyjny 8080 wymagał trzech różnych potencjałów, o czym pisałem już we wcześniejszej części tekstu. CPU Motoroli był masowo używany jako główny procesor w tzw. komputerach kitach. Czyli komputerach, które składało się własnoręcznie, min. w bardzo znanym Altair 680. Pierwotne wersje 6800 były taktowane zegarem 1MHz, później produkowano także wersje taktowane nawet 2MHz.

6800

Procesor zasłynął w środowisku programistów dzięki upublicznieniu jednej instrukcji oznaczonej mianem HCF (ang. Halt and Catch Fire – wstrzymaj egzekucję programu i stań w ogniu). Skrót HCF to ogólna nazwa nieudokumentowanych instrukcji języka maszynowego procesora, których wykonanie wiąże się z destrukcyjnymi efektami ubocznymi. Według popularnych miejskich legend takie instrukcje są obecne w wielu znanych systemach. W przypadku Motoroli 6800 wprowadzała ona procesor w specjalny tryb testu magistrali.

Spora część zespołu inżynierów projektujących Motorolę 6800 po konflikcie w firmie zmieniła pracodawcę na MOS Technology i pod ich skrzydłami rozpoczęła pracę nad kolejnymi procesorami. Pierwszym ich dzieckiem było MOS Technology 6501. Procesor, który mógł być używany jako bezpośredni zamiennik na płytach głównych zaprojektowanych dla Motoroli 6800, ale miał całkowicie inny zestaw instrukcji. Tj nie mógł uruchamiać programów dla 6800. Oczywiście Motorola momentalnie złożyła pozew do sądu przeciwko MOS Technology, który zakończył się ugodą na mocy której MOS zobowiązał się do zaprzestania produkcji 6501. Inżynierowie wrócili więc do deski kreślarskiej czego efektem było postanie procesora MOS Technology 6502. Jedyną zmianą w stosunku do 6501 był brak kompatybilności z płytami głównymi od Motorli 6800, poza tym procesory były identyczne.

6502

MOS 6502 miał specyfikację bardzo podobną do większości procesorów z tej epoki. Wewnętrznie jest procesorem 8-bitowym, ale posiada szynę adresową o szerokości 16-bitów. Dzięki czemu potrafi adresować do 64kB pamięci. Efektywnej konstrukcji zawdzięcza także niezłą wydajność, ponieważ przy niezbyt wysokim taktowaniu sięgającym raptem 2 MHz potrafił być do 50% szybszy od konkurencyjnych konstrukcji. Procesor miał także bardzo przystępną jak na owe czasy cenę, bo raptem 25 dolarów, co ostatecznie przyczyniło do jego ogromnej popularności. Wystarczy wymienić popularniejsze komputery na nim bazujące: Apple I, Apple II, Comodore PET, Commodore 64, a także większość 8-bitowych komputerów Atari; modele 400, 800, 1200XL, 600XL, 800XL a także te najpopularniejsze 65XE, 130XE.

Kolejnym bardzo popularnym procesorem późnych lat 70-tych był Zilog Z80. Procesor zaprojektowany przez jednego z konstruktorów Intel 8080, został wprowadzany na rynek w 1976 roku. Z80 jest w zasadzie zlepkiem rozwiązań zaczerpniętych z najpopularniejszych procesorów tamtej epoki. Zilog Z80 ma zaimplementowany pełny zestaw instrukcji, rejestrów oraz przerwań procesora 8080, co czyni go z nim kompatybilnym na poziomie kodu.

z80

Dodatkowo Z80 ma wiele własnych rozszerzeń w tym 80 nowych instrukcji, dwa rejestry indeksowe, zestaw nowych przerwań oraz uproszczony – podobny do tego z 8085 system zasilania, który wymaga tylko jednego napięcia +5V. Procesor był masowo klonowany przez wielu producentów (także w Polsce przez Elwro) przez co stał się podstawą ogromnej liczby komputerów szczególnie w krajach bloku wschodniego. Oryginalnie był taktowany zegarem 2.5 MHz, ale jego klony osiągały taktowanie nawet 20 MHz. Najpopularniejsze komputery używające tego procesora to cała rodzina ZX Spectrum, Amstrad CPC oraz Commodore 128. Wielu z naszych starczych czytelników miała na początku swojej kariery komputerowej maszynę wyposażoną w jeden z przedstawianych wyżej procesorów. Szczególnie popularne w Polsce były wszelkiego rodzaju „trumienki” czyli ZX Spectrum, później także Commodore 64 – który po dziś dzień utrzymuje rekord najlepiej sprzedającego się komputera osobistego. Sprzedano ich ponad 30mln sztuk!

 

Procesory 16-bitowe

Historia IBM PC

Pod koniec pierwszej części wspomniałem o powstaniu pierwszego IBM PC. Warto chyba wiedzieć, skąd wziął się pierwowzór komputera, przed którym 99% z Was właśnie siedzi. Rynkowa premiera IBM PC miała miejsce 12 sierpnia 1981r. W katalogu producenta widniał jako model 5050. W podstawowej konfiguracji maszyna była wyposażona 16-bitowy procesor 8086 taktowany zegarem 4.77MHz oraz 16kB lub 64kB pamięci operacyjnej rozszerzalnej do 256kB. Standardowo instalowano w nim także kartę graficzną CGA, która była zdolna do wyświetlania obrazu o rozdzielczości 320×200 pikseli w 4 kolorach (z palety 16) na ekranie telewizora. Jako opcję można było zamówić monochromatyczną kartę MDA (Monochrome Display Adapter) o teoretycznie wysokiej rozdzielczości 720×350. Niestety ta ostatnia potrafiła pracować tylko w trybie tekstowym. Co ciekawe, główną pamięcią masową komputera w założeniu producenta miał być magnetofon kasetowy znany choćby z komputerów Commodore 64. Niestety kuriozalnie podstawowy system operacyjny przyszłego peceta nie był dostępny na kasetach, tylko na dyskietkach. PC sprzedawane z magnetofonem miały zatem do dyspozycji tylko i wyłącznie interpretator Basica zaimplementowany w pamięci stałej (ROM) komputera przez co nie cieszyły się zbyt dużym zainteresowaniem. Bardzo szybko okazało się, że podstawową pamięcią masową komputera będą stacje dyskietek 5.25” o pojemności 160kB. W PC można było zainstalować ich maksymalnie dwie sztuki. Dysk Twardy był oferowany tylko jako bardzo droga opcja instalowana jako urządzenie zewnętrzne, ponieważ wbudowany 63W zasilacz nie był w stanie sprostać wymaganiom prądowym twardziela. I znowu kuriozalnie główny system operacyjny PC w pierwotnej wersji nie potrafił obsłużyć tego urządzenia aż do 1983 roku, czyli ponad 2 lata po premierze! Maszyna wyposażona w 16kB pamięci oraz kartą graficzną CGA i magnetofon kosztowała w dniu premiery 1565 dolarów. Wersja z 64kB pamięci oraz jedną stację dyskietek 5.25” kosztowała oszałamiające 3005 dolarów.

Jak powstał PC-DOS

IBM był świadom, że komputer bez systemu operacyjnego to tylko bezużyteczna kupa żelastwa, dlatego rozmowy na temat opracowania systemu operacyjnego do swojego komputera rozpoczął na długo przed planowaną premierą komputera. W ówczesnych czasach de facto standardem był system CP/M opracowany przez Digital Research, Inc. dla komputerów bazujących na 8-bitowych procesorach 8080/Z80. IBM zdawał sobie sprawę, że sukces jego komputera jest uzależniony od oprogramowania na niego dostępnego. Dlatego negocjacje w sprawie systemu dla swojego dzieła rozpoczął właśnie z firma DRI. Co prawda Digital Research planował wypuszczenie wersji swojego systemu w wersji na procesory 8086, ale data jego premiery nie była znana. Pomimo wielu prób koncernowi nie udało się jednak wynegocjować z DR umowy na zakup licencji systemu CP/M w wersji na swoją nową maszynę. Dlatego ostatecznie zwrócił się do Microsoft z prośbą o napisanie klona tego systemu.

MS znany był do tej pory głównie z produkcji interpreterów języka Basic na różne platformy sprzętowe. W 1980 roku Microsoft po rozmowie z przedstawicielem IBM za 25000 dolarów nabył od Seattle Computer Products licencję bez praw wyłączności na klona systemu CP/M nazwanego QDOS (ang. Quick and Dirty Disk Operating System), przemianowanego później na 86-DOS. Pół roku później zatrudnił jego twórcę do przeportowania tego systemu na potrzeby nowego komputera IBM. Na miesiąc przed premierą rynkową komputera IBM PC, Microsoft kupił za kolejne 50000 dolarów prawa wyłączności na system 86-DOS od SCP. Zapisy licencji umożliwiały firmie z Redmond odsprzedaż systemu innym firmom, o co oczywiście głównie chodziło. Spektakularny sukces nowego dziecka IBM skłonił pierwotnego właściciela licencji na 86-DOS do wniesienia do sądu pozwu przeciwko Microsoft – firma twierdziła, że MS zataił fakt podpisania umowy z IBM aby zakupić 86-DOS za możliwie niską kwotę. Ostatecznie wyrok nie zapadł, ale SCP na mocy porozumienia otrzymał od MS rekompensatę w wysokości 1 miliona dolarów. Tak powstał MS-DOS v1.0, któremu IBM na potrzeby swojego produktu zmienił nazwę na PC-DOS.

Bardzo szybko okazało się, że system który napisano w dużym pośpiechu miał kilka istotnych wad. Przede wszystkim nie obsługiwał magnetofonu, który pierwotnie miał być główną pamięcią masową IBM PC. Ze względu na znikomą sprzedaż modelu wyposażonego w magnetofon, tej wady ostatecznie nigdy nie usunięto. DOS v1.0 obsługiwał tylko i wyłącznie jednostronne dyskietki 5.25” o pojemności 160kB. Aby uzyskać dostęp do drugiej strony, dyskietkę należało odwrócić na drugą stronę. Tę wadę usunięto w wersji v1.25 wydanej 9 miesięcy później. DOS nadal jednak nie potrafił obsłużyć 10MB dysku twardego, który IBM oferował jako opcję do swojego komputera. Tę wadę usunięto dopiero w 1983 roku wraz z premierą system DOS v2.0. System ten był dołączany do kolejnego komputera IBM o nazwie XT. Ewolucja IBM PC oraz systemów Microsoftu to tematy na osobny artykuł. Wróćmy do procesorów.

Procesory 16-bitowe

W drugiej połowie lat 70-tych wielu producentów rozpoczęło pracę procesorami 16-bitowymi. Co prawda pierwszy 16-bitowy procesor pojawił się na rynku już w 1973 roku, był to IMP-16 wyprodukowany przez National Semiconductor. Niemniej nie zyskał on większej popularności ze względu na problemy z wydajnością. Pierwszym naprawdę udanym procesorem 16-bitowym był wprowadzony na rynek w 1978 roku 8086 Intela, o którym pisałem już w poprzedniej części artykułu. Dlatego tutaj pozwolę sobie przytoczyć tylko najważniejsze informacje na jego temat.

8086 to pierwszy procesor z używanej w komputerach osobistych do dziś rodziny procesorów x86, a także pierwszy w pełni 16-bitowy procesor Intela. CPU dysponował 16-bitowymi rejestrami, oraz wskaźnikiem stosu, przez co mógł efektywnie adresować do 64kB pamięci. Dzięki 20 bitowej szynie adresował potrafił obsłużyć nawet do 1MB pamięci. Była to niewyobrażalna na ówczesne czasy objętość. 8086 względem swojego pierwowzoru miał mocno rozbudowaną listę rozkazów, które szczególnie nadawały się do manipulacji dużymi blokami danych. Dzięki tym rozkazom potrafił wykonać w jednym cyklu zegara zadania, które wcześniejszym konstrukcjom zajmowały 4-5 kroków. Dzięki temu w specyficznych warunkach potrafił być do 5x szybszy od swojego poprzednika. 8086 nie posiadał zintegrowanego koprocesora matematycznego, tę funkcję pełnił opcjonalny układ 8087. Wiele firm produkowało zamienniki tego układu, które cechowały się znacznie większą wydajnością niż oryginał. Pierwsze wersje 8086 były taktowane zegarem 4.77 MHz, a klony innych producentów osiągały nawet 10 MHz

 8086

Rok później, w 1979 roku Intel wprowadził na rynek delikatnie zmodyfikowaną wersję 8086, procesor o oznaczeniu 8088. Główną zmianą była redukcja szerokości zewnętrznej szyny adresowej z 16-bitów do 8-bitów. CPU nadal mógł odczytywać i zapisywać 16-bitowe dane, ale robił to w dwóch cyklach zegara zamiast w jednym, przez to całą operacja trwała dwa razy dłużej niż na 8086. Drugą zmianą, było przystosowanie nowego procesora do współpracy z układami wspomagającymi od rodzin 8080/8085. Miało to szczególne znaczenie dla producentów komputerów. 8-bitowe chipsety było znacznie tańsze od ich 16-bitowych odpowiedników. Reszta pozostała zasadniczo nie zmieniona. 8088 także obsługiwał zewnętrzny koprocesor matematyczny o oznaczeniu 8087. Pierwotne wersje procesora były taktowane zegarem 5MHz, a klony osiągały nawet 10 MHz.

 8088

Nad 16-bitowym procesorem pracowano także w zakładach Motoroli. Firma uważała, że jest nieco w tyle za konkurencją dlatego postanowiła przeskoczyć konstrukcje czysto 16-bitowe i postawić na coś zupełnie nowego. W 1976 rozpoczęto pracę nad zaawansowanym procesorem, który miał zerwać z wsteczną kompatybilnością, ale dzięki temu oferować unikatowe możliwości dla przyszłej generacji komputerów. Owocem tych prac było wypuszczenie na rynek na początku 1980 roku Motoroli 68000, pierwszego przedstawiciela rodziny m68k. Nazwa CPU pochodzi od ilości tranzystorów zawartych w jego rdzeniu, tj około 68000. Dla porównania Intel 8086 był zbudowany z około 29000. Motorola 68000 posiada wewnętrznie 32-bitowe rejestry adresowy i danych, ale zewnętrznie komunikuje się za pomocą 16-bitowej szyny danych i 24-bitowej szyny adresowej. Ta ostatnia limituje maksymalną ilość obsługiwanej pamięci do 16MB, co i tak jest wartością oszałamiającą jak na tamte czasy. Można powiedzieć, że M68k pomimo że faktycznie jest procesorem 16-bitowym, jest zoptymalizowany do pracy z kodem 32-bitowym.

 68000

Ta ostatnia cecha miała szczególnie duże znaczenie dla programistów, którzy mogli już teraz zacząć pisać programy zoptymalizowane dla przyszłych procesorów 32-bitowych. Motorola mogła bardzo prosto rozszerzyć funkcjonalność procesora do pełnych 32-bitów tylko i wyłącznie po przez zmianę zewnętrznych szyn adresowych procesora, co zresztą zrobiono w Motoroli 68020. Początkowo Motorola 68000 była używana tylko w bardzo drogich stacjach roboczych. Najbardziej znane przykłady do HP 9000 seria 200, Sun-1, Silicon Graphics IRIS 1000 i 1200 oraz DEC Vax Station 100. W połowie lat 80-tych, kiedy procesory staniały znalazły zastosowanie w wielu bardzo popularnych komputerach domowych: Apple Lisa i Macintosh, cała seria Commodore Amiga 1000; 2000; 500; 500+; 600, Atari 520ST i 1040ST a później także ST Mega 2 i 4.

Kolejną młodość Motorola 68000 przeżył jako zaawansowany mikrokontroler. W tej roli używano go w drukarkach, telefonach, konsolach do gier, a nawet w high-endowych graficznych kalkulatorach. To niewiarygodne, ale do dziś powstają nowe aplikacje tego procesora!

Dwa lata później, 1982 Intel miał już gotową odpowiedź na procesory Motoroli, dwie premiery: Odświeżonej wersji 8086 wydanej pod nazwą 80186; Oraz 80286 całkowicie nowego procesora, który został wykorzystany jako serce nowej linii komputerów IBM PC AT. Między 80186 a 8086 różnice są w zasadzie kosmetyczne. Jedyną zasadniczą zmianę jest przeniesienie części układów pomocniczych do struktury procesora, przez co ta wersja CPU bardziej nadaje się do zastosowań zintegrowanych niż jego poprzednik. Intel już wcześniej zastosował podobną taktykę przy wprowadzeniu na rynek 8085. 80186 nazywany czasami po prostu i186 oraz 8086 ze sobą całkowicie zgodne na poziomie kodu źródłowego.

 80188

Przy czym w 80186 dodano 7 całkowicie nowych instrukcji, a trzy już istniejące wzbogacono. Niejako dodatkowo część instrukcji rozkładanych wcześniej przez mikrokod procesora na pod rozkazy przeniesiono na poziom czysto sprzętowy. Dzięki temu przy tym takim samym zegarze jak 8086 operacje te wykonywane są nawet do 20x szybciej na 80186. Oczywiście nie oznaczało to, że wszystkie programy działały 20x szybciej. Podobnie jak w przypadku swojego poprzednika, także i ten procesor ma wersję z zewnętrzną szyną adresową obciętą do 8-bitów. Nazwano go jak nie trudno zgadnąć 80188. Oba procesory są do siebie tak podobne, że do 80186 nie stworzono nawet dedykowanego koprocesora arytmetycznego. Wykorzystywano te opracowane dla 8086. Zgodnie z pierwotnym przeznaczeniem producenta, CPU nie znalazł zastosowania w zbyt wielu komputerach. Większość produkcji trafiało na rynek urządzeń zintegrowanych. Pierwsze wersje 80186 były taktowane zegarem 6 MHz, a klony osiągnęły zegary na poziomie do 12 MHz.

 80286

Prawdziwy przełom miał natomiast przynieść drugi procesor wprowadzony na rynek w 1982 roku przez Intela. 80286, lub po prostu 286, to 16-bitowy procesor drugiej generacji, w którym główną zmianą było wprowadzenie pracy w tzw. trybie chronionym. Procesor nadal miał nadal 16-bitową konstrukcję wewnętrzną, ale szyna adresowa została poszerzona do 24-bit. Dzięki temu mógł zaadresować do 16MB pamięci, w odróżnieniu do 1MB w przypadku 8086. Tryb chroniony przydawał się szczególnie do pracy w systemach wieloużytkownikowych takich jak OS/2, Venix, SCO Xenix 286, gdzie procesor po raz pierwszy mógł uruchamiać wiele procesów jednocześnie. Niestety nie przydawał się praktycznie zupełnie w systemach operacyjnych napisanych dla wcześniejszych procesorów. 286 nie mógł uruchomić jednocześnie dwóch programów napisanych dla procesorów 8086. Dodatkowo przynajmniej oficjalnie nie było możliwości przełączenia się z trybu chronionego do trybu rzeczywistego, co stwarzało nie lada problemy programistom. Ostatecznie większość z tych problemów Intel poprawił dopiero przy premierze procesora kolejnej generacji. Oczywiście tryb chroniony nie był jedyną zmianą prowadzoną w nowym procesorze. Wszystkie nowości zaimplementowane w 80186 znalazły się także w 286. Intel chwalił się, że dzięki optymalizacji nowy CPU miał wydajność ponad dwukrotnie większą zegar w zegar w stosunku do poprzednich konstrukcji. Pierwotne wersje były taktowane zegarem do 8 MHz, ale klony innych producentów osiągnęły nawet 25 MHz. 286 dzięki trybowi chronionemu oraz odpowiednim systemom operacyjnym dawał na biurkach namiastkę tego, co oferowały do tej pory tylko komputery klasy mainframe.

Na tym w zasadzie można zakończyć opis ważniejszych procesorów 8 i 16-bitowych.

 

Autor admin



Odpowiedz

Musisz się  zalogować żeby skomentować ten post.