Czy to dalej pecet? Ewolucja platformy PC (część 1)
Czy dzisiejsze pecety to dalej ten sam typ urządzenia, co pierwsze komputery IBM PC, od których wzięły one swoją nazwę? Co sprawia, że dalej je tak nazywamy? Kompatybilność? Architektura? Czy może chodzi już tylko o przyzwyczajenie…
Termin "PC" jest w mowie potocznej i marketingu bardzo rozmyty. Dziś dotyczy on ogóle komputerów osobistych, a nie urządzeń zgodnych (w jakiś sposób) z architekturą IBM PC. Dlatego pecetami nazywane są komputery Surface ze Snapdragonem - ale np. nie iPad, choć funkcjonalnie jest on "komputerem osobistym". Intuicja podpowiada jednak, że tablet Apple nie jest pecetem.
Zresztą, co w ogóle się ostało po pecetach IBM PC, poza architekturą x86? Co w dzisiejszych komputerach dalej ma cokolwiek wspólnego z oryginalną platformą? Pamiętajmy, że była ona sklecona dość eklektycznie, bez ścisłych wytycznych i oferując niemal nadmiar swobody - w imię zgodności, ale także ceny. Ale również tego, że IBM nie wierzył w sukces peceta i nie chciał nakładać na sprzęt peryferyjny cech potencjalnie wynikających z jego architektury.
Zworki i Plug and Play
Pierwsze pecety to przede wszystkim magistrala ISA, brak automatycznego wybierania przerwań oraz koncepcja oparta o to, że karty rozszerzeń żywcem "wcinają się" w główną przestrzeń adresową. Interakcja z urządzeniem przebiegała za pomocą przerwań i stałych adresów pamięci, które urządzenie wymuszało (bo nie "wybierało") samo i nad którym ewentualną kontrolę miało się najwyżej przez zworki.
Dalsza część artykułu pod materiałem wideo
Rok 1981 to oczywiście zbyt wcześnie na wynalazki typu Plug and Play, ale już np. skorelowanie numeru przerwania z numerem gniazda ISA oraz przewidywalne adresy pamięci byłyby czymś o wiele bardziej osiągalnym (choć wielu tradycjonalistów może tutaj mocno protestować). Platforma PC jednak nie zawierała niczego takiego i dopiero magistrala PCI wprowadziła proces "negocjowania" przez urządzenie przerwania i adresu. Zarówno ISA, jak i jej następcy - Microchannel i VESA Bus - nie zawierały nic takiego. Koncentrowały się one głównie na zwiększeniu przepustowości.
Dziś magistrala ISA nie istnieje, choć umierała dość długo i przez długi czas istniała "w chipsecie" jako obowiązkowy, acz jedynie logiczny, niedostępny komponent. Plug and Play jest dla nas kompletnie naturalne - choć jest przeszczepem do świata PC, a nie czymś co byłoby w nim naturalne. I widać to w zachowaniu systemów operacyjnych. Dopiero Windows 2000 zaoferował w pełni stabilną jego obsługę, a więc przyszło na to czekać dobrych parę lat.
USB
Z koncepcją Plug and Play nierozerwalnie związany jest także interfejs USB, zastępujący poprzednie porty szeregowe, czyli operujące pod adresami I/O 3F8 i 2F8 gniazda zwane powszechnie COM1 i COM2. Urządzenia podpinane przez porty COM nie były w ogóle wykrywane (jedynym wyjątkiem była myszka szeregowa w Windows, acz odbywało się to dzięki cwanym sztuczkom). Komunikacja z nimi zależała od oprogramowania, które ich używało - oznacza to, że często było to o wiele więcej niż sam "sterownik", a o Plug and Play można było zapomnieć.
USB było odwrotnością, a nie rozwinięciem tego podejścia. Oto w systemie pojawiał się tzw. kontroler hosta (HCI), który zarządzał przydziałem zasobów dla urządzeń USB. HCI oferował interfejs komunikacyjny oraz urządzenie zerowe w postaci głównego koncentratora (huba). Urządzenia przedstawiały się, aktywnie, podczas podłączenia, i "prosiły" system o konfigurację i sterownik. Podłączone urządzenia USB nie zajmowały żadnych przerwań IRQ a komunikacja z nimi odbywała się wyłącznie przez HCI, a nie przez dedykowane okno w pamięci.
Kwestię tę często przedstawiano jako zaletę i z perspektywy Plug and Play na pewno są to zalety - ale są wadami gdy mowa o wydajności. Brak obsługi przerwań i brak bezpośredniego dostępu do pamięci ujemnie wpływają na wydajność, ale są niewątpliwymi oszczędnościami. Dlatego USB wygrało z, potencjalnie oferującym ww. cechy, konkurencyjnym interfejsem w standardzie IEEE-1394, czyli FireWire. Mimo, że można dzięki temu uznać USB za rozwiązanie-taniochę, jego skutkiem ubocznym było uporządkowanie komunikacji, redukcja konfliktów, rozszerzenie liczby dostępnych gniazd i standaryzacja.
Na pewno zyskaliśmy na tej przemianie. Jednakże przejście na USB nie jest jedynie pasmem zalet. Wraz z popularyzacją nowego złącza straciliśmy kilka potencjalnie wartościowych cech poprzedników. Jakie one były? Tej kwestii przyjrzymy się w kolejnej części, gdzie odejdziemy nieco od samego Plug and Play i zajmiemy się, między innymi, urządzeniami dyskowymi.
Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl