Procesory

Historia c.d. - Procesory 16-bitowe

przeczytasz w 4 min.

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 320x200 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 720x350. 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

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.