budowa komputera
Transkrypt
budowa komputera
Wstęp do budowy komputerów Opracowanie: Piotr Fulmański 2002-01-10 Spis treści Przedmowa i 1 Wstęp 1 2 Procesor 2.1 Budowa . . . . . . . . . . . . . . . . 2.2 Rejestry . . . . . . . . . . . . . . . . 2.2.1 Rejestry widzialne . . . . . . 2.2.2 Rejestry sterowania i stanu . 2.3 Układ sterowania . . . . . . . . . . . 2.4 Przerwania . . . . . . . . . . . . . . 2.5 Rozkazy . . . . . . . . . . . . . . . . 2.5.1 Reprezentacja rozkazu . . . . 2.5.2 Rodzaje rozkazów . . . . . . 2.5.3 Liczba adresów . . . . . . . . 2.5.4 Rodzaje argumentów . . . . . 2.5.5 Rozkazy o zmiennej długości 2.6 Adresowanie . . . . . . . . . . . . . . 2.6.1 Adresowanie natychmiastowe 2.6.2 Adresowanie bezpośrednie . . 2.6.3 Adresowanie pośrednie . . . . 2.6.4 Adresowanie z przesunięciem 2.7 Potokowe przetwarzanie rozkazów . . 2.8 Procesory RISC . . . . . . . . . . . . 2.9 Procesory superskalarne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 5 6 9 10 11 12 15 16 16 17 17 17 17 18 19 19 19 3 Pamięć 3.1 Parametry charakteryzujące pamięć . . . . . . . . . 3.2 Hierarchia pamięci . . . . . . . . . . . . . . . . . . . 3.3 Półprzewodnikowa pamięć o dostępie swobodnym . . 3.4 Organizacja pamięci . . . . . . . . . . . . . . . . . . 3.5 Pamięć podręczna . . . . . . . . . . . . . . . . . . . 3.6 Układy pamięciowe PC . . . . . . . . . . . . . . . . 3.6.1 PM — Page Mode . . . . . . . . . . . . . . . 3.6.2 FPM — Fast Page Mode . . . . . . . . . . . 3.6.3 EDO — Extended Data Out . . . . . . . . . 3.6.4 BEDO — Burst EDO . . . . . . . . . . . . . 3.6.5 SDRAM . . . . . . . . . . . . . . . . . . . . . 3.6.6 DDR SDRAM — Double Data Rate SDRAM 3.6.7 RDRAM — Rambus DRAM . . . . . . . . . 3.6.8 VC-SDRAM — Virtual Channel . . . . . . . 3.7 Moduły pamięci . . . . . . . . . . . . . . . . . . . . . 3.7.1 Moduły SIMM-30 (SIP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 22 23 25 26 26 26 26 26 26 26 27 27 27 27 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 SPIS TREŚCI 3.7.2 Moduły SIMM PS/2 . . . . . 3.7.3 Moduły DIMM . . . . . . . . 3.7.4 Moduły DDR . . . . . . . . . 3.7.5 Moduły RIMM . . . . . . . . 3.8 Problem nazewnictwa . . . . . . . . 3.9 Dyski magnetyczne . . . . . . . . . . 3.9.1 Własności . . . . . . . . . . . 3.9.2 Organizacja danych na dysku 3.9.3 Macierze dyskowe . . . . . . 3.10 Dyski magnetooptyczne . . . . . . . 3.11 Taśma magnetyczna . . . . . . . . . 3.12 Pamięć optyczna . . . . . . . . . . . 3.12.1 Standardy . . . . . . . . . . . 3.12.2 Pamięć optyczna (CD) . . . . 3.12.3 Pamięć optyczna (CD-R) . . 3.12.4 Pamięć optyczna (CD-RW) . 3.12.5 Pamięć optyczna (DVD) . . . 3.12.6 Technologia BURN-Proof . . 3.12.7 Słowniczek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 28 28 28 28 28 28 29 30 32 33 35 35 37 40 41 42 45 46 4 Magistrale 4.1 Wprowadzenie . . . . . . . . 4.2 Struktura magistrali . . . . . 4.3 Podstawowe parametry . . . . 4.4 Przykłady rozwiązań . . . . . 4.4.1 Magistrala zewnętrzna 4.4.2 Magistrala ISA . . . . 4.4.3 Magistrala EISA . . . 4.4.4 Magistrala MCA . . . 4.4.5 Magistrala VESA . . . 4.4.6 Magistrala PCI . . . . 4.4.7 Magistrala AGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . w modelu PC/XT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 51 53 55 55 56 56 57 57 58 59 5 Magistrale połączeniowe 5.1 IDE . . . . . . . . . . . 5.2 EIDE . . . . . . . . . . 5.3 Serial-ATA . . . . . . . 5.4 SCSI . . . . . . . . . . . 5.5 Złącze IEEE-1394 . . . . 5.6 Złącze USB . . . . . . . 5.6.1 USB 2.0 . . . . . 5.7 IrDA . . . . . . . . . . . 5.7.1 IrDA DATA . . . 5.7.2 IrDA CONTROL 5.8 Interfejs RS-232C . . . . 5.9 Złącze równoległe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 62 64 65 67 68 69 69 69 70 71 72 6 Urządzenia peryferyjne 6.1 Monitory CRT . . . . 6.2 Wyświetlacze LCD . . 6.3 Drukarki . . . . . . . . 6.4 Skanery . . . . . . . . 6.5 UPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 73 73 73 73 73 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPIS TREŚCI 3 7 Tryby PIO i DMA 7.1 DMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 74 8 Zabezpieczenia transmisji danych 8.1 Kod CRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 75 9 Pytania 77 Przedmowa Poniższy dokument stanowi elektroniczną wersję notatek, jakie przygotowywałem dla siebie prowadząc wykład ze wstępu do budowy komputerów. Udostępniam je z nadzeją, że ułatwi to uporządkowanie wiadomości zebranych na wykładzie. Zdecydowanie polecam zajrzenie do poszczególnych pozycji wymienionych w spisie literatury. Nawet jeśli jakaś pozycja nie jest ściśle związana z omawianymi zagadnieniami, to umożliwi poszerzenie własnych horyzontów myślowych, pozwalając na samodzielny rozwój i ocenę istniejących koncepcji. i Rozdział 1 Wstęp 1 ROZDZIAŁ 1. WSTĘP Rysunek 1.1: Schemat połączeń procesora Z80 z pamięcią i układami we/wy. 2 Rozdział 2 Procesor 2.1 Budowa Głównymi zespołami procesora są jednostka arytmetyczno–logiczna (ALU), jednostka sterująca (CU), rejestry. ALU jest tą częścią komputera, która realizuje operacje arytmetyczne i logiczne na danych. Wszystkie inne elementy systemu komputerowego — jednostka sterująca, rejestry, pamięci, we/wy — istnieją głównie po to, żeby dostarczać dane do ALU w celu ich przetworzenia, a następnie odebrać wyniki. Jednostka arytmetyczno–logiczna, tak jak wszystkie podzespoły elektroniczne komputera, wykorzystuje proste, cyfrowe uklady logiczne, mogące przechowywać cyfry binarne i wykonujące proste operacje logiczne, które dają się opisać przez algebrę Boole’a. Zarówno dane z których ALU będzie korzystać jak i wyniki wszelkich operacji są przechowywane w rejestrach. Rejestry są miejscami tymczasowego przechowywania danych wewnątrz procesora. ALU ustawia również znaczniki (flagi), bedące wynikiem operacji, lub dające bardziej szczegółowe o niej informacje. Na przykład , znacznik przepełnienia jest ustawiany jako 1, jeżeli wynik obliczeń przekracza długość rejestru, w którym ma być przechowywany. Jednostka sterująca jest tą częścią procesora, która w rzeczywistości wywołuje zdarzenia. Wysyła ona wygnały sterowania na zewnątrz procesora w celu spowodowania wymiany danych z pamięcią i modułami we/wy. Jednostka sterująca wysyła również wywnętrzne sygnały sterowania procesorem w celu przenoszenia danych między rejestrami, spowodowania wykonania określonych funkcji przez ALU oraz w celu regulowania innych operacji wewnętrznych. Na wejści jednostki sterującej są podawane sygnały z rejestru rozkazu, znaczników stanu i sygnały sterujące ze źródeł zewnętrznych (np. sygnały przerwania). Podstawową rolą jednostki sterującej jest powodowanie występowania sekwencji operacji elementarnych, zwanych Rysunek 2.1: Uproszczony schemat funkcjonalny procesora 3 ROZDZIAŁ 2. PROCESOR 4 mikrooperacjami, podczas trwania cyklu rozkazu. Jak działa procesor ? Działanie procesora sprowadza się do cyklicznego powtarzania dwóch podstawowych operacji: – pobrania rokazu – wykonania rozkazu Przerwanie tego cyklu nastąpić może jedynie w przypadku napotkania specjalengo rozkazu nakazującego zatrzymanie procesora lub w wyniku ”interwencji z zewnątrz”. Cykl pracy procesora składa się z następujących kroków: 1. odczytanie z pamięci rozkazu wskazywanego przez licznik rozkazów i umieszczenie go w rejestrze rozkazów 2. zmiana zawartości licznika rozkazów, tak aby wskazywał następny rozkaz 3. dekodowanie rozkazu znajdującego się w rejestrze rozkazów; określenie jego typu i liczby oraz rodzaju argumentów 4. wyznaczenie adresów argumentów i ich pobranie 5. wykonanie czynności wynikających z istoty zadanego rozkazu 6. przejście do kroku 1 2.2 Rejestry Systemy komputerowe zawierają hierarchię pamięci. Na wyższych poziomach jest ona zwykle szybsza, mniejsza i droższa (w przeliczeniu na bit). Wewnątrz procesora występuje zestaw rejestrów, które działają jako poziom pamięci przewyższający w hierarchii pamięć główną i podręczną. Rejestry procesora podzielić można na dwie grupy: – rejestry widzialne dla użytkownika – rejestry sterowania i stanu — używane przez jednostkę sterująca, oraz pewne uprzywilejowane programy systemu operacyjnego (OS) do sterowania wykonywnniem programów 2.2.1 Rejestry widzialne Rejestry widzialne są rejestrami, do których można odnosić się za pomocą języka maszynowego. Możemy je scharakteryzować, posługując się następującym podziałem: – ogólnego przeznaczenia – danych – adresów – kodów warunkowych Rejestry ogólnego przeznaczenia mogą być przypisane wielu funkcjom. Na ogół dowolny rejestr roboczy może zawierać argument dowolnego kodu operacji. Zdarzają się jednak ograniczenia - mogą na przykład występować rejestry dedykowane operacjom zmiennoprzecinkowym. W pewnych przypadkach rejestry ogólnego przeznaczenia mogą być używane do funkcji adresowania (np. pośredniego rejestrowego). W innych przypadkach ma miejsce częściowa lub pełna separacja rejestrów adresowych od rejestrów danych. ROZDZIAŁ 2. PROCESOR 5 Rejestry danych mogą być używane tylko do przechowywania danych i nie można ich używać do obliczania adresów argumentów. Same rejestry adresowe mogą być w pewnym stopniu uniwersalne lub mogą być przypisane określonym trybom adresowania. Do przykładów należą: – wskaźnik segmentu - w maszynie z adresowaniem segmentowym, rejestr segmentu zachowuje adres podstawy segmentu. Może występować kilka rejestrów: na przykład jeden dla systemu operacyjnego i jeden dla bieżącego procesu. – rejestry indeksowe - używane do adresowania indeksowego; mogą być indeksowane automatycznie wskaźnik stosu Kody warunkowe (znaczniki stanu, flagi) są bitami ustalanymi sprzętowo przez procesor w wyniku wykonania instrukcji. Na przykład operacja arytmetyczna może dać wynik dodatni, ujemny, zero lub przepełnienie. Poza skierowaniem do rejestru lub pamięci samego wyniku, ustalany jest również kod warunkowy. Kod ten może być następnie sprawdzony w ramach operacji rozgałęzienia warunkowego. Bity kodu warunkowego zbierane są w jednym lub wielu rejestrach. Zwykle stanowią one część zawartości rejestru sterowania. Na ogół możliwe jest odczytanie tych bitów przez programistę, jednak nie mogą one być zmieniane. W niektórych maszynach wywołanie podprogramu powoduje automatyczne zapisywanie zawartości wszystkich rejestrów widzialnych dla użytkownika, co umozliwia ich odtworzenie po powrocie z podprogrmu. Zapisywanie i odtwarzanie jest wykonywanie przez procesor w ramach wykonywania rozkazów wywołania i powrotu. Dzięki temu każdy podprogram może niezależnie używać rejestrów widzialnych dla użytkownika. W innych maszynach obowiązek zachowania zawartości odpowiednich rejestrów przed wywołaniem podprogramu a następnie ich przywrócenie po powrocie spoczywa na programiście. 2.2.2 Rejestry sterowania i stanu W procesorze występują różnorodne rejestry wykorzystywane do jego sterowania. Zwykle nie są one widzialne dla użytkownika; niektóre mogą być dostępne dla rozkazów wykonywanych w trybie sterowania lub dla systemu operacyjnego. Istnieją cztery tego typu rejestry mające zasadnicze znaczenie dla wykonywania rozkazów: – licznik programu (PC) – rejestr rozkazu (IR) – rejestr adresowy pamięci (MAR) – rejestr buforowy pamieci (MBR) Licznik programu zawiera adres rozkazu i zwykle po każdorazowym pobraniu rozkazu aktualizuje się jego wartość, przez co wskazuje on zawsze następny rozkaz przewidziany do pobrania. Licznik modyfikowany jest także przez rozkazy rozgałęzienia i skoku. Pobrany rozkaz jest ładowany do rejestru rozkazu, gdzie dokonywana jest analiza kodu operacji i specyfikatorów argumentów. Dane są wymieniane z pamięcią za pośrednictwem rejestrów MAR i MBR. Dodatkowo występować mogą rejestry buforujące służęce jako rejestry wejściowe oraz wyjściowe dla ALU i wymieniające dane z rejestrem MBR i z rejestrami widzialnymi dla użytkownika. We wszystkich projektach procesora jest rejestr lub sespół rejestrów określanych często jako słowo stanu programu (PSW). Przechowuje się w nich zwykle kody warunkowe i inne informacje o stanie procesora. Spotkać można następujące flagi: znak (zawiera bit znaku ostatniej operacji), zero, równość, przepełnienie, zezwolenie/blokowanie przerwania. ROZDZIAŁ 2. PROCESOR 6 Ponadto obok PSW występować może wiele innych rejestrów związanych ze sterowaniem i stanem, adekwatnych dla konkretnego projektu. Ponieważ pewne rodzaje informacji sterowania mają szczególne znaczenie dla systemu operacyjnego, więc chęć wspierania jego, wpłynąć może na organizację rejestrów stan i sterowania Jakie rejestry stosować? 1. W przypadku stosowania rejestrów wyspecjalizowanych z kodu operacji może domyśłnie wynikać, do którego rejestru odnosi się określony specyfikator argumentu. Specyfikator ten powinien określać jeden z zespołu rejestrów wyspecjalizowanych a nie jeden ze wszystkich dostępnych, co pozwala zaoszczędzić bitów. Specjalizacja ograniczyć może jednak znacznie elastyczność programisty. 2. Osobnym zagadnieniem jest liczba rejestrów. Wpływa to na istę rozkazów, ponieważ więcej rejestrów oznacza konieczność stosowania większej ilości bitów specyfikatora argumentu. 3. Rozważyć należy również problem związany z długością rejestrów. Rejestry adresowe muszą mieć długość wystarczającą do przechowania największego adresu. Rejestry danych pomiwnny móc przechować większość rodzajów danych. W niektórych maszynach możliwe jest używanie sąsiednich rejestrów do przechowywania wartości o podwójnej długości. Obecnie istnieje tendencja do używania rejestrów specjalizowanych. Ilość waha się między 8 a 32, choć np. procesory o architekturze RISC-owej stosują ich znacznie więcej (nawet kilkaset). 2.3 Układ sterowania Działanie komputera podczas wykonywania programu składa się z sekwencji cykli rozkazu. Na jeden rozkaz maszynowy przypada jeden cykl. Każdy cykl rozkazu może być traktowany jako złożony z pewnej liczby mniejszych jednostek. Jednym z wygodnych podziałów jest podział na pobranie, adresowanie pośrednie, wykonanie i przerwanie, przy czym tylko cykle pobrania i wykonania wystepuja zawsze. Możliwa jest dalsza dekompozycja tak, że każdy z mniejszych cykli obejmuje z kolei szereg elementarnych kroków, angażujacych rejestry procesora, zwanych mikrooperacjami. Na przykład pobranie rozkazu lub jego argumentów wymaga otwarcia odpowiednich bramek umożliwiajacych przesłanie odresu do rejestru adresowego pamięci, wysłania sygnałów odczytu, otwarcia bramek umożliwiajacych przesłanie danych z rejestru buforowego pamięci do miejsca przeznaczenia. Wszystkimi tymi złożonymi czynnosiami zarządza układ sterowania. Można w nim wyróżnic następujace bloki funkcjonalne: – dekoder rozkazów – układy wykonawcze – kombinacyjną sieć logiczną – układy taktujące Na wejście dekodera podawany jest kod operacji rozkazu znajdujacego sie w rejestrze rozkazów. Sygnały z dekodera uaktywniają odpowiednie fragmenty układów wykonawczych. Układ taktujący generuje odpowiedni ciąg impulsów synchronizujący ich działanie. Układy wykonawcze generują niezbędne sekwencje sygnałów sterujących pracą poszczególnych ROZDZIAŁ 2. PROCESOR 7 Rysunek 2.2: Uproszczony schemat układu sterowania układow procesora (ALU, rejestrów, magistral). Wytworzone sygnały sterujące, przez kombinacyjną sieć logiczną docirają do miejsca przeznaczenia. W ostatniej fazie cyklu sterowania następuje aktualizacja licznika rozkazów i przejście do fazy pobrania nastepnego rozkazu. Układy logiczne realizujące algorytm sterowania procesora cechuje duża złożoność konstrukcyjna. Struktury niezbędnych sieci logicznych są bardzo nieregularne i trudno jest wydzielić układy wykonujące poszczególne czynności elementarne, gdyż znaczna ich część bierze udział w wielu operacjach. ”Sztywno” połączone ze soba układy są uaktywniane w zależności od potrzeb za pomoca odpowiednich sekwencji sygnałów taktujących i różnych kombinacji sygnałów sterujących. W tej sytuacji wszelkie zmiany konstrukcyjne są zwykle bardzo pracochłonne i kosztowne. Problemy pojawiają się już w momencie gdy ktoś zechce np. dodać nowy rozkaz do listy już istniejących. Tymczasem łatwo można zauwazyć, że opis algorytmu sterowania bardzo przypomina opis algorytmu działania programu. Powstaje więc pytani: czy czasem struktura układu sterowania nie mogłaby odzwierciedlać (we własciwej skali) struktury komputera? Ponieważ widać analogie między kolejnymi krokami, z których składa się wykonanie rozkazu, a kolejnymi rozkazami, z których składa się program, to może wykonywaniem tych kroków (a zatem i wykonywaniem rozkazów) mogłby sterować jakiś wewnętrzny mikroprogram zlożony z mikrorozkazów. Dopuszczając taka możliwość okazuje się, że struktura tak pomyślanego układu sterowania może być bardzo prosta i przejrzysta. Naszkicowana tu koncepcja mikroprogramowanego układu sterowania została pierwszy raz zaproponowana przez M. V. Wilkesa z Uniwersytetu w Cambridge w 1951 r. Oto jak wówczas wyrażano sie o tej ideii: ”Jest ona nieco mglista. Żaden z dużych producentów nie wykazał zainteresowania tż metodą, chociaż najprawdopodobniej wszyscy ja zbadali.” Jednak już w kilka lat później koncepcja mikroprogramowania staje się podstawową metodą przy projektowaniu różnych układów. Podstawową zaletą jest przejrzystość i elastyczność. Ciągowi operacji elementarnych, z których składa się cykl wykonania rozkazu, odpowiada ciąg mikrorozkazów wykonywanych przez stosunkowo prostą sieć logiczną o regularnej strukturze. Mikroporogramy realizujące poszczególne rozkazy są przechowywane w specjalnej, bardzo szybkiej, pamięci wewnetrznej, ROZDZIAŁ 2. PROCESOR 8 Rysunek 2.3: Struktura mikroprogramowanego układu sterowania zwanej pamięcią sterowania. Jeżeli zajdzie taka potrzeba, względnie łatwo zmienić można nawet całą liste rozkazów procesora, modyfikujac zawartość pamięci sterowania. Główną wadę stanowi nieco mniejsza prędkość jednostki mikroprogramowanej od jednostki układowej wykonanej w porównywalnej technologii. Budowa mikrorozkazu W najprostszym przypadku mikrorozkaz składa się z ciagu bitów odpowiadających poszczególnym bramkom, które w danej chwili należy zamknąć lub otworzyć, aby spowodować określony przepływ informacji lub wykonać wymagane operacje. Możliwe jest także testowanie stanu wybranych sygnałów i w zależności od wyniku testu odpowiednie rozgałezieni mikroprogramu. Mikrorozkazy tego typu są zwykle bardzo długie, gdyż takich węzłowych punktów, których stan w danej chwili należy określić, jest w procesorze bardzo dużo. Nazywamy je mikrorozkazami poziomymi. Pojedyncze bity lub grupy bitów możemy uważać za kody mikrooperacji. Mikrorozkazy poziome mają więc wiele kodów operacji wykonywanych równocześnie, nie mają za to wcale cześci adresowych (każdy z kodów mikrooperacji określa bezpośrednio jej argument). Przeciwieństwem mikrorozkazów poziomych sa mikrorozkazy pionowe o strukturze bardzo zbliżonej do struktury normalnych rozkazów. Maja one jeden kod mikrooperacji i jedno lub kilka pól adresowych. Są znacznie krótsze i oddziaływują na wybrane fragmenty procesora. Informacje okreslające sygnały sterujące, które należy wygenerować mają postać zakodowaną. Mikroprogramy zbudowane z mikrorozkazów poziomych wykonują się szybciej. Wiele czynności określanych przez pojedynczy mikrorozkaz przebiega bowiem równolegle. Trudniej je jednak ulożyc, gdyż liczba czynników sciśle od siebie zależnych, które równocześnie należy brać pod uwage, jest bardzo duża. W przypadku mikrorozkazów pionowych algorytm sterowania jest bardziej przejrzysty, a sekwencje mikrooperacji łatwiejsze do kontrolowania. Czas wykonania nawet pojedynczego mikrorozkazu jest jednak dluższy, ponieważ trzeba dekodować poszczególne jego pola. Wykonanie czynności określanych za pomoca jednego mikrorozkazu poziomego wymaga ciągu mikrorozkazow pionowych. ROZDZIAŁ 2. PROCESOR 9 Rysunek 2.4: Zasada działania przerwania 2.4 Przerwania Praktycznie we wszystkich komputerach przewidziano mechanizam, za pomocą którego może zostać przerwane normalne przetwarzanie danych przez procesor. Najczęściej występują nastepujące klasy przerwan: – programowe - generowane przez warunek będacy wynikiem wykonania rozkazu, taki jak przepełnienie arytmetyczne, dzielenie przez zero, próba wykonanania niedozwolonego rozkazu oraz odniesienie do przestrzeni pamięci zarezerwowanej dla użytkownika – zegarowe - generowane prze wewnętrzny zegar; umożliwia wykonanie pewnych funkcji przez system operacyjny – wejścia/wyjścia - generowane przez sterowniki we/wy – uszkodzenie sprzętu - generowane np. w przypadku błedu parzystości pamięci Przerwanie pierwotnie przewidziano jako sposób poprawienia efektywnosci przetwarzania. Wiele urządzeń zewnętrznych jest o wiele wolniejszych od procesora. Zalóżmy, ze procesor przenosi dane do drukarki, stosując schemat cyklu rozkazu przedstawiony wcześniej. Po każdej operacji zapisu procesor musi pozostawac bezczynnie, aż drukarka za nim nadąży. Długość tej przerwy może wynosić setki lub nawet tysiące cykli rozkazu. Przerwania dają procesorowi możliwość wykonywania innych rozkazów, podczas gdy ma miejsce operacja we/wy. Aby obsługa przerwan była możliwa, do cyklu rozkazu dodawany jest cykl przerwania. Jeśli w danym momencie nie stwierdzono obecności sygnału przerwania procesor przechodzi do cyklu pobrania i pobiera następny rozkaz z bieżącego programu. Gdy jednak przerwanie wystąpi procesor realizuje następujące czynnosci: 1. zawiesza wykonanie bieżącego programu i zachowuje jego kontekst (tj. zachowane zostają dane związane z bieżacym działaniem procesora) 2. licznik programu ustawiony zostaje na początkowy adres programu obsługi przerwania W rzeczywistych systemach często spotykamy się z przerwaniami wielokrotnymi. Zdarza się bowiem, że kolejne przerwania następują w czasie, w którym jest przetwarzane przerwanie wcześniejsze. ROZDZIAŁ 2. PROCESOR 10 Problem wielokrotnych przerwań można rozwiązać na dwa sposoby. Pierwszy to uniemożliwienie przerwań, jeśli jakiekolwiek przerwanie jest własnie przetwarzane. Jeśli żądanie przerwania nastąpi w tym właśnie czasie, na ogół pozostaje ono zawieszone i zostanie wykryte przez procesor gdy zakończy on obsługę poprzedniego. Ujemną stroną tego podejścia jest to, że nie bierze się pod uwagę względnej ważności przerwań oraz zadań, które krytycznie zależą od czasu. Stąd bierze się drugie podejście polegające na określeniu priorytetów przerwań. Dozwolone jest wówczas aby przerwanie o wyższym priorytecie przerwało program obsługi przerwania o niższym priorytecie. 2.5 Rozkazy Na ogół przeciętny użytkownik pracujący na danym komputerze, czy nawet programista używający jednego z wielu dostępnych obecnie języków wysokiego poziomu, nie ma zbyt wielu możliwości by poznać wewnetrzną architekture wykorzystywanej maszyny (inną sprawą jest to, że wcale nie musi jej znać). Jednym z obszarów, w którym projektant komputera i jego programista maja wspólny obraz maszyny, jest lista rozkazów maszynowych. Z punktu widzenia projektanta, lista rozkazów określa wymaganaia funkcjonalne w stosunku do procesora — wdrożenie listy rozkazów jest właśnie tym zadaniem, na którm w głównej mierze polega implementacja procesora. Z punktu widzenia użytkownika, tylko ten użytkownik, który wybiera programowanie w języku maszynowym (w istocie w języku asemblerowym) ma możliwość uświadomienia sobie struktury rejastrów i pamięci, rodzaje danych bezpośrednio obsługiwanych przez maszynę oraz funkcjonowanie ALU. Opis listy rozkazów maszynowych komputera daje nam okazję do głebszego poznania budowy i zasad działania procesora. Działanie procesora jest określone przez rozkazy, które on wykonuje. Ilość realizowanych funkcji znajduje odbicie w różnorodności definiowanych dla niego rozkazów. Każdy rozkaz musi zawierać informacje wymagane przez procesor do jego wykonania. Elementami, z których składa się rozkaz sa: – kod operacji — określa operację, jaka ma być przeprowadzona, – odniesienie do argumentów źródłowych — operacja może obejmować jeden lub wiele argumentów źródłowych; stanowią one dane wejściowe dla operacji, – odniesienie do wyników — operacja może prowadzic do powstania jednego lub wielu wyników – odniesienie do następnego rozkazu — skąd procesor ma pobrać następny rozkaz po zakończeniu wykonywania bieżącego; w większości przypadków następny rozkaz przewidziany do pobrania następuje bezpośrednio po obecnie przetwarzanym — wówczas nie występuje jawne odniesienie do niego. Argumenty źródłowe i wyniki mogą znajdować się w jednym z trzech obszarow: – pamięci głównej - musi być dostarczony adres pamięci – rejastrze procesora - musi być dostarczony numer pożądanego rejestru – urządzenia we/wy - rozkaz musi określać moduł we/wy oraz urządzenie we/wy używane w operacji. Jesli używane jest we/wy odwzorowane w pamięci, jest to jeszcze jeden adres pamieci. 11 ROZDZIAŁ 2. PROCESOR Rysunek 2.5: Etapy wykonania rozkazu Rysunek 2.6: Typowe formaty rozkazów 2.5.1 Reprezentacja rozkazu Wewnętrznie każdy rozkaz reprezentowany jest za pomoca ciągu bitów. Rozkaz jest dzielony na pola odpowiadające elementom składowym rozkazu. Obraz rozkazu nazywamy formatem rozkazu. Dlugość poszczególnych pól i samego rozkazu zależą od kilku czynników. W przypadku kodu operacji decyduje po prostu długość listy rozkazów. Pole n-bitowe może pomieścić tylko 2n różnych kombinacji zer i jedynek, a zatem w komputerze mającym np. 150 różnych rozkazów, kod operacji musi zajmować 8 bitów. Dużo większy wpływ na długość rozkazu ma liczba i typ jego argumentów. Posługiwanie się binarna reprezentacją rozkazów maszynowych nie należy do rzeczy, ”które tygrysy lubią najbardziej”, dlatego powszechnie używana jest ich symboliczna reprezentacja. Kody operacji są zapisane za pomocą skrótów, zwanych mnemonikami. Jako przykład takiej reprezentacji posłużyć mogą rozkazy: LD ADD INC CALL RET — — — — — ładuj dane / rozkaz przesłania dodaj zwiększ o 1 wywołanie podprogrmu/procedury powrót z podprogramu/procedury Argumenty również można reprezentować symboicznie. Na przykład zapis ADD A,r oznacza: dodaj wartość zawartą w rejestrze r do zawartości akumulatora (specjalny rejestr). Zatem możliwe jest napisanie programu w języku maszynowym w postaci symbolicznej. Każdy symboliczny kod operacji ma ustaloną reprezentację binarną, a programista określa lokalizację każdego symbolicznego argumentu (rozpoczynając np. od listy definicji: X=513, Y=514) ROZDZIAŁ 2. PROCESOR 12 i tak dalej. Odpowiedni program przekształca kody operacji i odniesienia do argumentów na postać binarną, po czym buduje binarne rozkazy maszynowe. 2.5.2 Rodzaje rozkazów Rozważmy rozkaz w języku wysokiego poziomu: x=x+y; Instrukcja ta zaleca komputerowi dodanie wartości przechowywanej w y do wartości przechowywanej w x oraz umieszczenie wyniku w x. Oto jak można tę samą operację zapisać w języku maszynowym. Załóżmy, że zmienna x ma adres 512 a y - 513. Operacje powyższą można by wykonać za pomocą nastepującego ciągu operacji: 1. Załaduj do rejestru zawartość komórki pamięci 512. 2. Dodaj zawartość komórki pamięci o adresie 513 do rejestru. 3. Przechowaj zawartość rejestru w komórce pamięci 512. Jak łatwo można zauważyć, pojedyncza instrukcja w języku wysokiego poziomu może wymagać kilku rozkazów maszynowych. Jest to typowa zależność między językiem wysokiego poziomu a językiem maszynowym. Język wysokiego poziomu wyraża operacje w zwartej formie algebraicznej, używajac zmiennych. Jezyk maszynowy wyraża operacje w postaci podstawowej, obejmując ”ruch” danych do/z rejestrów/pamięci. Komputer powinien zatem dysponować listą rozkazów, które umożliwiłyby użytkownikowi formułowanie dowolnych zadań dotyczących przetwarzania danych. Patrząc na zagadnienie trochę inaczej, można powiedzieć, że lista rozkazów musi być wystarczająca do wyrażenia dowolnych instrukcji języka wysokiego poziomu aby możliwe stało się jego przetłumaczenie na język maszynowy a następnie wykonanie. Stąd rozkazy podzielić możemy na następujące rodzaje – przetwarzania danych - rozkazy arytmetyczno—logiczne, konwersje, – przechowywania danych - rozkazy pamięciowe / rozkazy transferu danych, – przesyłania danych - rozkazy we/wy – sterowania - rozkazy testowania i rozgałezienia Operacje arytmetyczne Większość maszyn realizuje podstawowe operacje arytmetyczne: dodawanie, odejmowanie, mnożenie, dzielenie. Zawsze są one przewidziane dla liczb całkowitych (stałoprzecinkowych, stałopozycyjnych) ze znakiem. Często są również przewidziane dla liczb zmiennopozycyjnych i upakowanych dziesęetnie. Możliwe są również różne rozkazy jednoargumentowe jak wartość bezwzględna, negacja, inkrementacja, dekrementacja. Operacje arytmetyczne mogą powodować transfer danych przed i/lub po wykonaniu funkcji w ALU, oraz ustawienie kodu warunkowego i znacznika stanu. Operacje logiczne Rozkazy logiczne operują bezpośrednio na bitach, nie wnikając w to, jakie faktycznie dane one reprezentują, dzięki czemu mamy możliwość przetwarzania dowolnych rodzajów danych, jakie użytkownik może chcieć wykorzystać. Są one oparte na operacjach Boole’a. Poza bitowymi operacjami logicznymi, większość mszyn umożliwia wiele funkcji przesuwania i rotacji. Operacje logiczne rownież angażują ALU i mogą powodować operacje przestania danych. Konwersja Są to rozkazy zmieniające format danych lub operujące na formatach danych. 13 ROZDZIAŁ 2. PROCESOR Rysunek 2.7: Różne rodzaje logicznych przesunięć Transfer danych Rozkazy tego typu muszą precyzować kilka faktow: – położenie argumentów źródłowych i wyników (możliwe są np.: pamięć, rejestr, wierzchołek stosu) – długość danych przeznaczonych do przesłania – tryb adresowania Na przykład komputery serii IBM S/390 dysponują następującymi rozkazami transferu danych: Mnemonik operacji L LH LR STC Nazwa Load Load halfword Load Store character Liczba przeznazonych bitów 32 16 32 8 Opis Przeniesienie Przeniesienie Przeniesienie Przeniesienie z z z z pamieci pamieci rejestru rejestru do do do do rejestru rejestru rejestru pamieci Operacje we/wy W celu wykonania instrukcji odnoszącej się do we/wy, procesor podaje adres określający moduł we/wy i urządzenie zewnętrzne oraz rozkazy we/wy. Rozkazy we/wy podzielić można na rozkazy – sterowania – testowania – odczytu/zapisu Rozkazy sterowania Przy normalnym biegu zdarzeń, wykonywane są kolejne rozkazy z pamięci. Po prostu następuje elementarny przyrost stanu licznika programu przed pobraniem następnego rozkazu. Istnieje jednak wiele przyczyn, dla których wymagane jest przekazanie sterowania w inne miejsce. 1. Są zastosowania wymagające wielokrotnego powtórzenia jakiegoś postępowania. Na przykład: sumujac 100 liczb wprowadzanych kolejno z urządzenia wejściowego, trzeba 100 razy wykonać następujacą parę rozkazów: 14 ROZDZIAŁ 2. PROCESOR (a) czytaj liczbę (b) dodaj liczbę do zawartosci komórki przeznaczonej na sumę Oczywiście można 100-krotnie powtórzyć w pamięci wymienione rozkazy. Znacznie lepszy byłby jednak następujacy program: (a) czytaj liczbę (b) dodaj (c) przejdź do kroku (c) Rozkazy dające możliwość wykonania kroku (c) nazywamy rozkazami skoku. Mają one zwykle jeden argument, którym jest adres komórki, do której chcemy przekazać sterowanie. W wyniku wykonania takiego rozkazu do licznika rozkazów trafia własnie ten adres. Na rysunku pokazano jak zmienia się (w funkcji czasu) zawartość licznika rozkazów podszas wykonywania programów nie zawierających i zawierających rozkaz skoku. Przykład: zmiana licznika programu zawierającego i nie zawierającego rozkazy skoku. 2. Praktycznie wszystkie programy obejmują podejmowanie decyzji. Miejsca, w których to następuje nazywamy rozgałęzieniami, a rozkazy je realizujące skokami warunkowymi. Podczas ich wykonywania procesor sprawdza, czy warunek wymieniony w treści rozkazu jest spełniony czy nie. Jeśli tak, to wykonuje się skok, a jeśli nie, to procesor po prostu przechodzi do następnego rozkazu. Na przykład instrukcja ADD powoduje ustawienie jednego z 4 bitow gdy: Bity (Condition Code) Mask Rezultat operacji 0 8 Zero 1 4 <0 2 2 >0 3 1 Overflow Jeśli teraz chcemy wykonać skok warunkowy gdy wynikiem ostatniej operacji, jaką było dodawanie, jest 0, to musimy użyc instrukcji BC 8,ADRES Gdy chcemy by skok miał miejsce gdy wynik będzie różny od 0 to napiszemy BC 6,ADRES Skokowi bezwarunkowemu odpowiada BC 15,ADRES Rozkazy wywołania podprogramu Zasadniczym powodem stosowania podprogramu jest ekonomia i modułowość. * Dzięki stosowaniu podprogramow, ten sam fragment kodu może być użyty wielokrotnie, co pozwala na bardziej efektywne gospodarowanie pamięcią. * Możliwy staje się również podział dużych i złozonych problemów na prostsze. * Ułatwia to także identyfikację miejsc, gdzie wystąpił bład jak i ich naprawę. Mechanizm podprogramu standardowego obejmuje dwa podstawowe rozkazy: rozkaz wywołania , powodujący skok z aktualnej lokacji do podprogramu; rozkaz powrotu , powodujący powrót od podprogramu do miejsca, w którym nastąpiło jego wywołanie. ROZDZIAŁ 2. PROCESOR 15 Przykład: zasada ”działania” podprogramu. Przykład: umieszczenie wywołań podprogramów w kodzie programu. Ponieważ wywołanie podprogramu może nastąpić w wielu różnych punktach programu, oraz mogą one być zagnieżdzane, procesor musi zachować adres powrotu. Rozwiązaniem najogólniejszym i dającym wiele możliwości jest użycie stosu. Stos jest tablicą jednowymiarową, na której można wykonywać tylko dwie operacje: umieścić coś na stosie, pobrać coś ze stosu. Przypominają one układanie na kołku krążków. (...) Dodatkowo dostępny jest wskaźnik stosu zawierający adres aktualnego wierzchołka. Przykład: użycie stosu do wywoływania podprogramów. 2.5.3 Liczba adresów Liczba adresów w rozkazie jest podstawową decyzją projektową. Mniej adresów oznacza prostsze rozkazy, wymagajace mniej złożonych procesorow. Rownież sam rozkaz jest krótszy. Jednak wówczas program zawiera więcej rozkazów, co powodować może wydłużenie czasów wykonania oraz wydłużenie i skomplikowanie samych programow. W przypadku rozkazów jednoadresowych, progrmista ma na ogół dostęp do jednego rejestru ogólengo przeznaczeenia, tzw. akumulatora. W przypadku rozkazów wieloadresowych, zwykle można korzystać z wielu rejestrów ogólnego przeznaczenia. Pozwala to na wykonywanie pewnych operacji wyłącznie na rejestrach, co przyspiesza wykonanie programu. Ponadto wybór liczby adresów komplikowany jest przez różne tryby adresowania oraz możliwosc operowania zarówno na rejestrach jak i bezpośrednio na pamieci. Zobaczmy jak zmienić może się liczba rozkazów w zależności od liczby adresów. Rozważmy działanie Y = (A - B) / (C + D * E) Jeśli używać będziemy rozkazów 3 argumentowych, to moglibyśmy zapisać je następująco SUB MUL ADD DIV Y,A,B; T,D,E; T,T,C; Y,Y,T; Y:=A-B T:=D*E T:=T+C Y:=Y/T (subtract) (multiply) (add) (divide) Używając rozkazów 2 argumwntowych otrzymamy MOVE SUB MOVE MUL ADD DIV Y,A; Y,B; T,D; T,E; T,C; Y,T; Y:=A Y:=Y-B T:=D T:=T*E T:=T+C Y:=Y/T Dla rozkazów 1 argumentowych LOAD MUL ADD STOR LOAD SUB DIV STOR D; E; C; Y; A; B; Y; Y; AC:=D AC:=AC*E; AC:=AC+C y:=AC AC:=A AC:=AC-B AC:=AC/Y Y:=AC ROZDZIAŁ 2. PROCESOR 2.5.4 16 Rodzaje argumentów Rozkazy maszynowe operuja na danych. Najważniejsze z nich, to: liczby; znaki; dane logiczne; adresy. Liczby Ważną różnica między liczbami używanymi w codziennej matematyce a liczbami przechowywanymi w komputerze jest ograniczony charaketer tych ostatnich. Po pierwsze istnieje granica wielkości liczb reprezentowanych w komputerze, a po drugie, w przypadku liczb zmiennopozycyjnych, granica ich dokładności. Konieczna zatem staje się znajomość konsekwejcji zaokrąglania, przepełniania i niedomiaru. W komputerach powszechnie spotyka się trzy rodzaje danych numerycznych: całkowite lub stałopozycyjne zmiennopozycyjne dziesiętne Znaki Powszechną formą danych jest tekst lub ciąg znaków. Jednakże dane tego typu nie mogą być łatwo przechowywane i przetwarzane przez system jako, że został on zaprojektowany z myślą o przetwarzaniu danych binarnych. Oznaczało to konieczność opracowania kodów, za pomocą których można reprezentować znaki jako ciąg bitów. Najwcześniejszym, powszechnie znanym przykladem jest kod Morse’a. Inne to np.: kod ANSI ASCII (American National Standards Institute) powszechnie stosowany we wszystkich komputerach kod EBCDIC (Extended Binary Coded Decimal Interchange Code) stosowany np. w maszynach S/390 2.5.5 Rozkazy o zmiennej długości Wszystkie dotychczasowe rozważania dotyczyły rozkazów o określonej długości. Jednak projektując listę rozkazów można wybrać rozkazy o różnych długościach, co da w efekcie bardziej elastyczne adresowanie przy różnych kombinacjach odniesień do rejestrów i do pamięci oraz ich trybie. Przyjecie rozkazów z zmiennej długości pociąga za soba wzrost złożoności procesora. Zastosowanie rozkazów o zmiennej długości nie eliminuje zadania, aby wszystkie długości rozkazów były integralnie związane z długoscią słowa. Ponieważ procesor nie zna długości następnego rozkazu przewidzianego do pobrania, typową strategią jest pobranie liczby bajtów lub słów równej przynajmniej najdłuższemu możliwemu rozkazowi. Oznaczać to może, że czasem pobieramy wiele rozkazow. ROZDZIAŁ 2. PROCESOR 2.6 17 Adresowanie Pole lub pola adresowe w typowym formacie rozkazu są ograniczone. Zastosowanie różnych metod adresowania jest nieodzowne gdy chcemy dysponowac możliwością odnoszenia sie do dużego zakresu lokacji w pamięci w sposób odpowiedni dla postawionego zadania. Metody te stanowią kompromis między zakresem adresów i (lub) elastycznością adresowania, a liczbą odniesień do pamięci i (lub) złożonością obliczania adresów z drugiej strony. Do najważniejszych rodzajów adresowania zaliczamy adresowania: * natychmiastowe * bezpośrednie * pośrednie * z przesunięciem – względne – z rejestrem bazowym – indeksowanie 2.6.1 Adresowanie natychmiastowe Jest to najprostsza forma adresowania. Mówimy o nim wówczas, gdy argument operacji, którą należy wykonać, jest zawarty bezpośrednio w treści rozkazu. Zaletą adresowania natychmiastowego jest to, że żadne odniesienie do pamięci poza pobraniem rozkazu nie jest potrzebne do uzyskania argumentu, gdyż jest on dostępny zaraz po jego pobraniu (stanowi w istocie jego cześć). Wadą jest to, że rozmiar liczby jest ograniczony do rozmiaru pola adresowego. Przykład: adresowanie natychmiastowe. 2.6.2 Adresowanie bezpośrednie W tym przypadku pole adresowe zawiera efektywny adres argumentu. Zaletą tej metody jest prostota, wadą zaś, podobnie jak wcześniej, możliwość obsłużenia tylko ograniczonej przestrzeni adresowej. Przykład: adresowanie bepośrednie. Odmianą jest adresowanie rejestrowe. Przykład: adresowanie bezpośrednie rejestrowe. 2.6.3 Adresowanie pośrednie W przypadku adresowania bezpośredniego problemem jest to, że długość pola adresowego jest zwykle mniejsza niż długość słowa, co ogranicza zakres adresów. W jednym z możliwych rozwiązań pole adresowe odnosi się do słowa w pamięci, które z kolei zawiera pełnej długości adres argumentu. Zaletą tego rozwiązania jest to, że przy długości słowa N dostępna jest przestrzeń adresowa 2N . Wadą jest konieczność wykonania dwóch odniesień do pamięci. Przykład: adresowanie pośrednie. Odmianą jest adresowanie pośrednie rejestrowe. ROZDZIAŁ 2. PROCESOR 18 Prykład: adresowanie pośrednie rejestrowe. 2.6.4 Adresowanie z przesunięciem Adresowanie to łączy możliwości adresowania bezpośredniego oraz pośredniego adresowania rejestrowego Przykład: adresowanie z przesunieciem. Adresowanie względne W przypadku adresowania względnego rejestrem domyślnym jest licznik programu. Oznacz to, że adres bieżącego rozkazu jest dodawany do pola adresowego w celu otrzymania adresu efektywnego. Zalóżmy, że mamy do czynienia z sytuacja pokazana na rysunku. Początkowo licznik rozkazów (PC) wskazuje pewien rozkaz. Po pobraniu go do rejestru rozkazów zawartość PC zmieni się tak, że wskazuje następny rozkaz. Ponieważ odpowiednie pole w rozkazkie 1 informuje procesor, że ma on do czynienia z adresowaniem wzglednym, nastepuje dodanie adresu ADR do zawartości PC. Wskazana komórka zawierajaca argument znajduje się w odległości ADR od aktualnego rozkazu. Jest to bardzo ważna własność. Program, w którym stosuje się wyłącznie taki sposób adresowania, można bowiem swobodnie przemieszczać w pamięci i będzie się on wykonywał poprawnie, czego nie możn powiedzieć np. o programach stosujących adresowanie bezwzględne. Przykład: adresowanie względne. Adresowanie z rejestrem bazowym Interpretacje tego typu adresowania jest następująca. Rejestr, do którego się odwołujemy, zawiera adres pamieci, a pole adresowe zawiera przesunięcie (zwykle w postaci liczby całkowitej bez znaku) w stosunku do tego adresu. Odniesienie do rejestru może być jawne lub domyślne. Adresowanie z rejestrem podstawowym wykorzystuje lokalność odniesienia do pamięci. Jest ona wygodnym srodkiem wdrażania segmentowania. Rozważmy następujący przykład. Załóżmy, że mamy system dysponujący 64 K słów, a pole adresowe rozkazu ma 14 bitów, co pozwala na dostęp do 16 K słów. Dzięki obecności rejestru bazowego, program może jednak korzystać z całej pamięci. Przykład: adresowanie z rejestrem bazowym. Indeksowanie Interpretacja tego typu adresowania jest następująca. Pole adresowe donosi się do adresu w pamięci głównej, a wywołany rejestr zawiera dodatnie przesunięcie w stosunku do tego adresu. Jest to rozwiązanie odwrotne w stosunku do adresowania z rejestrem bazowym. Adresowanie indeksowe jest szczególnie przydatne przy operacjach na tablicach. Cześć adresowa rozkazu zawiera wówczas adres początkowy tablicy, a rejestr indeksowy numer jej kolejnego elementu (czyli indeks tablicy - stąd nazwa metody). Załóżmy, że chcemy przejrzeć kolejnych N elementów tablicy. Przy takich operacjach, indeks zmienia się liniowo od 0 do N − 1. Ponieważ rejestry indeksowe są powszechnie używane a potrzeba ich systematycznego zwiększania lub zmniejszania bardzo częsta, niektóre systemy wykonują ją automatycznie, jako część tego samego cyklu rozkazu. W takim przypadku mówimy o autoindeksowaniu. ROZDZIAŁ 2. PROCESOR Przykład: indeksowanie. 2.7 Potokowe przetwarzanie rozkazów 2.8 Procesory RISC 2.9 Procesory superskalarne 19 Rozdział 3 Pamięć 3.1 Parametry charakteryzujące pamięć Pamięć komputera, pozornie prosta w założeniach, cechuje się bardzo dużym zróżnicowaniem jeśli weźmie się pod uwagę takie aspekty jak technologia, oragnizacja, wydajność czy koszty produkcji. Nie istnieje jedna technologia, która byłaby w stanie sprostać wszystkim wymaganiom. Z tego powodu większość systemów komputerowych dysponuje hierarchią różnych pamięci, stosowanych do ściśle określonych zadań. Aby łatwiej ogarnąć dość złożone zagadnienie jakim są pamięci najlepiej podzielić je według pewnych cech a następnie rozpatrywać różnice w obrębie jednej lub kilku z nich. Pamięci podzielić można ze względu na: położenie (wewnątrz procesora, wewnętrzna, zewnętrzna); pojemność (rozmiar słowa, liczba słów); wydajność (czas dostępu, szybkość transmisji, długość cyklu); własności fizyczne (ulotna/nieulotna, wymazywalna/niewymazywalna); rodzaj fizyczny (półprzewodnikowe, magnetyczne); jednostkę transferu (słowo, blok) sposób dostępu (sekwencyjny, bezpośredni, swobodny, skojarzeniowy); organizację W zasadzie własności te nie wymagają większego komentarza. Określmy tylko pojęcia związane ze sposobem dostępu oraz wydajnością. Dostęp sekwencyjny. Ten rodzaj dostępu spotykany jest na przykład w pamięciach taśmowych. Pamięć zorganizowana jest w tym przypadku w oparciu o jednostki danych zwane rekordami. Dostęp do poszczególnych pól rekordu możliwy jest w określonej sekwencji liniowej. Podczas operacji odczytu/zapisu konieczne jest przemieszczanie się od bieżącej pozycji do pożądanej, przechodząc przez wszystkie rekordy pośrednie. W rezultacie czas dostępu do różnych rekordów może być bardzo różny. Dostęp bezpośredni. Dostępem bezpośrednim charakteryzują się pamięci dyskowe. Mechanizm ten jest zbliżony do wcześniej opisanego. Jednak w tym przypadku poszczególne bloki lub rekordy mają unikatowy adres oparty na lokacji fizycznej. Dostęp realizowany jest przez bezpośredni dostęp do najbliższego otoczenia, po którym następuje sekwencyjne poszukiwanie w celu odnalezienia lokacji finalnej. Jak poprzednio czas dostępu jest zmienny choć nie widać tutaj już takich różnic. 20 ROZDZIAŁ 3. PAMIĘĆ 21 Dostęp swobodny. Dostępem swobodnym wyróżniają się systemy pamięci głównej. Każda adresowalna lokacja ma unikatowy, fizycznie wbudowany mechanizm adresowania. Czas dostępu do danej lokacji nie zależy od sekwencji poprzednich operacji dostępu i jest stały. Dzięki temu dowolna lokacja może być wybierana swobodnie i jest adresowana i dostępna bezpośrednio. Dostęp skojarzeniowy. Dostęp skojarzeniowy może być używany w pamięciach podręcznych. Jest to rodzaj dostępu swobodnego, który umożliwia porównywanie i specyficzne badanie zgodności wybranych bitów wewnątrz słowa, przy czym jest to czynione dla wszystkich słów jednocześnie. Tak więc słowo jest wyprowadzane raczej na podstawie części swojej zawartości niż na podstawie adresu. Czas dostępu jest stały i niezależny od poprzednich operacji dostępu. Czas dostępu. Jest to czas niezbędny do zrealizowania operacji odczytu/zapisu. Czas ten mierzy się od chwili doprowadzenia adresu do momentu zmagazynowania lub udostępnienia danych. Czas cyklu. Czas ten składa się z czasu dostępu i czasu jaki musi upłynąć nim będzie mógł następić kolejny dostęp. Dodatkowy czas potrzebny może być na przykład dla zaniku sygnałów przejściowych lub do regeneracji danych. Szybkość transferu. Jest to szybkość, z jaką można wprowadzać lub wyprowadzać dane z jednostki pamięci. Ponadto warto zwrócić uwagę na własności fizyczne urządzeń do przechowywania danych. W pamięci ulotnej informacja zanika naturalnie lub jest tracona po wyłączeniu zasilania. W pamięci nieulotnej informacja raz zapisana nie zmienia się aż do chwili zamierzonej zmiany (do zachowania informacji nie jest konieczne zasilanie elektryczne). Zawartość pamięci niewymazywalnej, w przeciwieństwie do wymazywalnej, nie może być zmieniana. Tego typu pamięci określa się jako stałe (ROM — read–only memory). 3.2 Hierarchia pamięci Między podstawowymi parametrami pamięci istnieją wzajemne zależności wiążące ze sobą pojemność, czas dostępu i koszt. Zwykle mnijszy czas dostępu oznacza większy koszt w przeliczeniu na bit. Koszt na bit jest jednak tym mniejszy im większą pojemność możemy zaoferować. Większa pojemność oznacza jednak na ogół większy czas dostępu. Znalezienie jednego, uniwersalnego rozwiązania, nie jest możliwe. Osiągnięcie kompromisu możliwe jest poprzez wykorzystanie hierarchii pamięci. Przykład: hierarchia pamięci Oto cechy charakterystyczne tak przyjętej hierarchii pamięci, przy rozpatrywaniu jej w kierunku od góry do dołu: * malejący koszt w przeliczeniu na bit, * rosnąca pojemność, * rosnący czas dostępu, * malejąca częstotliwość odwołań do pamięci przez procesor. ROZDZIAŁ 3. PAMIĘĆ 3.3 22 Półprzewodnikowa pamięć o dostępie swobodnym Wśród pamięci półprzewodnikowych o dostępie swobodnym wyróżnić możemy pamięci o dostępie swobodnym — RAM (random access memory) i pamięci stałe — ROM (read only memory). Cechą wróżniającą pamięci RAM jest to, że możliwe jest zarówno odczytanie danych z pamięci, jak też łatwe i szybkie zapisanie do niej nowych danych. Obie te operacje są dokonywane za pomocą sygnałów elektrycznych. Inną własnością tego rodzaju pamięci jest ich ulotność. Pamięć tego typu musi mieć stałe źródło zasilania. Pamięci RAM można dodatkowo podzielić na dynamiczna (DRAM, D — dynamic) i statyczne (SRAM, S — static). Dynamiczna pamięć wykonana jest z komórek, które przechowują dane podobnie, jak kondensator przechowuje ładunek elektryczny. Obecność lub brak ładunku w kondensatorze są interpertowane jako binarne 1 lub 0. Ponieważ kondensatory mają naturalną tendencję do rozładowywania się, tego typu pamięciach musi być co jakiś czas odświeżany ładunek aby dane nie uległy utraceniu. W statycznych pamięciach, dane przechowuje się za pomocą przerzutników. Pamięci tego typu nie wymagają odświeżania. Zwykle pamięci statyczne są droższe od odpowiadających im pamięci dynamicznych. Związane jest to po prostu z faktem, że pamięci dynamiczne mają mniej złożoną strukturę dzięki czemu możliwe jest gęstsze upakowanie poszczególnych struktur wchodzących w skład pamięci. Używa się jej przeważnie jako pamięci podręcznej. Pamięci ROM zawierają w swojej strukturze pewien wzór danych, który w przeciwieństwie do pamięci typu RAM nie może być modyfikowany. Zwykle pamięci tych używa się do przechowywania informacji, które nie muszą lub nie mogą być modyfikowane, pewnych programów bibliotecznych czy programów systemowych. Produkcja pamięci tego typu wiąże się z dość dużymi kosztami spowodowanymi koniczności wytworzenia nowej serii mikroukładów, nawet wtedy gdy zmienion tylko jeden bit. Konieczność wyrzucenia całej partii produkcyjnej zajdzie natomiast w przypadku niewłaściwej zawartość pewnej komórki. Z tego względu powstała programowalna pamięć ROM (PROM — programable ROM). Pamięć PROM podobnie jak ROM jest nieulotna. Zapis można dokonać tylko raz i jest on realizowany elektrycznie. Czynności tej może dokonać zarówno dostawca jak i klient już po wyprodukowaniu układu. Pomiędzy pamięciami RAM i ROM można umieścić pamięci głównie do odczytu. Używa się ich głównie wtedy gdy operacje zapisu są znacznie rzadsze od operacji odczytu, a wymagana jest nieulotność. Powszechnie spotkać można trzy rodzaje tego typu pamięci. EPROM — optycznie wymazywalna programowalna pamięć stała. Pamięć tego typu jest odczytywana i zapisywana elektrycznie. Przed operacją zapisu wymagane jest jednak naświetlenie układu promieniami ultrafioletowymi w celu wymazania zapisanych danych. Proces wymazywania może być wykonywany wielokrotnie; każde wymazanie zajmuje okoko 20 minut. EEPROM — elektrycznie wymazywalna programowalna pamięć stała. Jest to pamięć głównie do odczytu, która może być zapisana bez wymazywania poprzedniej zawartości; aktualizowane są tylko bajty adresowane. EEPROM jest droższa niż EPROM; zawiera także mniej bitów w mikroukładzie niż odpowiadająca jej pamięć EPROM. Flash memory — pamięć błyskawiczna. Podobnie jak w EEPROM-ie, w tego typu pamięci wykorzystuje się metodę wymazywania elektrycznego. Cała pamięć może być wymazana w ciągu kilku sekund. Ponadto możliwe jest wymazanie bloków pamięci zamiast całego układu (nie ma tu jednak wymazywania na poziomie bajtów). Pod względem kosztu jak i funkcjonalości, pamięci tego typu można umieścić pomiędzy pamięciami EPROM i EEPROM. ROZDZIAŁ 3. PAMIĘĆ 23 Rysunek 3.1: Struktura komórki pamięci liniowej (a) i przestrzennej (b). 3.4 Organizacja pamięci Aby zorganizować komórki pamięci w sprawnie funkcjonujący układ, należy je odpowiednio zaadresować. Najprostszym sposobem jest zorganizowanie pamięci liniowo - jest to tak zwane adresowanie 2D. Do każdej komórki podłączone jest wejście, sygnał wybierania pochodzący z dekodera oraz wyjście. Nieco innym sposobem jest adresowanie przy użyciu tzw. matrycy 3D. Pamięć organizuje się tutaj dzieląc dostępne elementy na wiersze i kolumny. Dostęp do pojedynczego elementu pamiętającego można uzyskać po zaadresowaniu odpowiedniego wiersza i kolumny. Dlatego też komórka RAM obok wejścia i wyjścia musi dysponować jeszcze dwoma sygnałami wybierania, odpowiednio z dekodera kolumn (CAS) i wierszy (RAS). Zaletą pamięci adresowanej liniowo jest prosty i szybszy dostęp do poszczególnych bitów niż w przypadku pamięci stronicowanej (3D), lecz niestety, przy takiej organizacji budowanie większych modułów RAM jest kłopotliwe. Dlatego też w przemyśle stosuje się zazwyczaj układy pamięci zorganizowanej w matrycę 3D, pozwala to na nieskomplikowane tworzenie większych modułów o jednolitym sposobie adresowania. Rozważmy przykład. Załóżmy, że chcemy zbudować pamięć o pojemności 16 megabitów dającą możliwość jednoczesnego zapisu/odczytu 4 bitów. Jeśli miałaby to być pamięć o strukturze 2D, to należałoby zorganizować ją w postaci 4 zespołów po 4194304 bity (4194304 × 4 = 16777216). Każdy taki zespół miałby strukturę 2D. Zatem do wskazania odpowiedniego bitu w zespole należałoby doprowadzić 22 linie adresowe (222 = 4194304). Rozważmy teraz strukturę 3D. Również w tym przypadku pamięć musi być zprganizowana w 4 bloki. Każdy taki blok jest kwadratem złożonym z 2048 na 2048 elementów 3D. Chcąc zaadresować teraz pewną czwórkę bitów należy: * uaktywnić sygnał wyboru adresu wiersza — RAS, * podać na magistralę adresową numer wiersza, * uaktywnić sygnał wyboru adresu kolumny —CAS, * podać na magistralę adresową numer kolumny. W tej sytuacji, ponieważ osobno wskazujemy wiersze i osobno kolumny, wystarczy jeśli do układu doprowadzimy 11 linii adresowych (211 = 2048). Wybierane numery wiersza i kolumny przechowywane są w rejestrze adresowym pamięci. Dane słowo zostanie wybranie gdy wskazane zostaną obie te wielkości. Organizacja pamięci 3D przedstawiona wyżej jest odpowiednia do momentu, gdy rozmiar pamięci mierzony w słowach jest równy liczbie bitów w poszczególnym mikroukładzie (bloku). Słowo z jakim mieliśmy do czynienia miało długość 4 bitów. Zatem całkowita pojemność pamięci wynosiła 16777216/4 = 4194304 słów. Liczba bitów w pojedynczym mikroukładzie wynosiła 2048 × 2048 = 4194304 bitów. ROZDZIAŁ 3. PAMIĘĆ Rysunek 3.2: Pamięć 16 Mbit-ów o strukturze liniowej. Rysunek 3.3: Pamięć 16 Mbit-ów o strukturze przestrzennej. 24 ROZDZIAŁ 3. PAMIĘĆ 25 Jeśli wymagana jest większa pamięć, potrzebna jest matryca mikroukładów. Oto jak możnaby zorganizować pamięć składająca się z 16 M słów 4 bitowych. W tym przypadku występują 4 kolumny mikroukładów, każda zawiera 4 M słów uporządkowanych jak poprzednio. Chcąc wskazać jakieś słowo, należy wskazać, kolumnę mikroukładów a następnie, postępować jak poprzednio. Rejestr adresowy pamięci musi zostać rozszerzony o 2 bity, na których zapisany będzzie numer kolumny mikroukładów. Przykład: organiacja pamięci 16 M słów 4 bitowych. 3.5 Pamięć podręczna Stosowanie pamięci podręcznej jest kompromisem między dużą szybkością jaka powinna charakteryzować pamięć, z jednoczesnym jej dużym rozmiarem z względnie niewielkie pieniądze. Stanowi ona stopień pośredniczący na drodze wymiany informacji procesor — pamięć. Jest ona mniejsza niż pamięć główna, ale za to wielokrotnie szybsza. Pamięć podręczna zawiera kopię części zawartości pamięci głównej (kopia ta składa się z bloków, a każdy blok z pewnej ilości słów). W momencie gdy procesor odwołuje się do pamięci, najpierw sprawdzane jest, czy szukane słowo nie znajduje się w pamięci podręcznej. Jeśli tak, to może ono być bardzo szybko dostarczone do procesora. Jeśli natomiast nie, to blok pamięci głównej zawierający ustaloną liczbę słów jest wczytywany do pamięci podręcznej, a następnie szukane słowo dostarczane jest do procesora. Ze względu na zjawisko lokalności odniesień, jeśli blok danych został pobrany do pamięci podręcznej w celu zaspokojenia pojedynczego odniesienia do pamięci, jest prawdopodobne, że przyszłe odniesienia będą dotyczyły innych słów zawartych w tym samym bloku. Zanim blok pozostający w pamięci podręcznej będzie mógł być zastąpiony, konieczne jest rozważenie, czy musi on być zmieniony w pamięci podręcznej a nie głównej. Jeśli nie musi, to stary blok w pamięci podręcznej może być nadpisany. Jeśli musi, to znaczy, że na słowie zawartym w tej linii pamięci podręcznej musi być przeprowadzona przynajmniej jedna operacj zapisu, a pamięć główna musi być odpowiedni zaktualizowana. Problem stanowi fakt, iż do pamięci głównej może mieć dostęp więcej niż jedno urządzenie (na przykład moduł we/wy może być zdolny do bezpośrednich operacji na pamięci). Jeśli słowo byłoby zmienione tylko w pamięci podręcznej, to odpowiednie słowo w pamięci głownej byłoby nieaktualne. Ponadto, jeśli moduł we/wy zmieniłby słowo w pamięci głównej, to odpowiednie słowo w pamięci podręcznej byłoby nieważne. Jeszcze bardziej złożony problem występuje, gdy do jednej magistrali podłączonych jest kilka procesorów wyposażonych we własne pamięci podręczne. Istnieją dwa popularne sposoby rozwiązania problemu pierwszego. Zapis jednoczesny (write through). Przy jego zastosowaniu wszystkie operacje zapisu są prowadzone jednocześnie zarówno dla pamięci głównej jak i podręcznej, co zapewni ich stałą aktualność. Wadą tej metody jest to, że generuje ona znaczny przepływ danych do pamięci. Zapis opóźniony (write back). Metoda ta minimalizuje ilość operacji na pamięci głównej. Aktualizuje się w niej tylko pamięć podręczną. Gdy to nastąpi, ustawiany jest bit aktualizacji odpowiedniego wiersza pamięci podręcznej. Jeśli następnie blok będzi musiał być zastąpiony, to podlega on wpisaniu do pamięci głównej, tylko wtedy gdy ustawiony będzie bit aktualizacji. Problemem jest tutaj to, że część pamięci głownej jest nieaktualna, przez co dostęp modułów we/wy jest możliwy tylko za pośrednictwem pamięci podręcznej. Komplikuje to znacznie budowę układów i stwarza możliwość zaistnienia wąskich gardeł. Problem drugi jest o wiele bardziej złożony. Osoby zainteresowane mogą zajrzeć do [59], [53] ROZDZIAŁ 3. PAMIĘĆ 3.6 26 Układy pamięciowe PC Pamięc operacyjna komputera PC to po dziś dzień pamięć dynamiczna (DRAM). Omówimy tutaj po krótce wszystkie jej typy poczynając od pamięci PM, przez EDO na VC-SDRAM kończąc. 3.6.1 PM — Page Mode Jest to najstarszy tryb dostępu do pamięci polegający na oddzielnym adresowaniu wiersza i kolumny dla każdego cyklu. Adres wiersza zdejmowany jest przez układ pamięciowy z szyny adresowej w momencie wykrycia opadającego zbocza sygnału sterującego RAS. Po zatrzaśnięciu tego fragmentu adresu w rejestrze wejściowym, następuje krótkotrwałe zwolnienie szyny adresowej, po czym odkłada się na niej fragment adresu odpowiedzialny za numer kolumny. Adres ten jest wprowadzany do układu pamięciowego w momencie zdekodowania opadającego zbocza sygnału sterującego CAS. 3.6.2 FPM — Fast Page Mode Różnica w stosunku do wcześniej przedstawionego trybu adresowania polega na uproszczeniu mechanizmu adresowania. Dostęp do dowolnej komórki pamięci nie odbywa sie poprzez odczytanie lub zapis tylko jednej wartości. Inny sposób postępowania narzucony został niejako przez architekturę PC. Otórz wymiana danych między pamięcią a resztą systemu odbywa się zwykle w porcjach po kilka bajtów na raz. Wiąże się to, ze wspomnianym już przy okazji omawiania pamieci podręcznej faktem, iż przetwarzane kody skupione są zwykle w pewnym spójnym wycinku pamięci i w dużej mierze przylegają do siebie. Przy takim założeniu, adres wiersza przekazuje się do układu pamięciowego tylko raz na cztery cykle dostępu, które razem tworzą pewnego rodzaju pakiet (Burst). Posostałe trzy cykle dostępu mają domyślnie ten sam adres wiersza, a tylko zmienny adres kolumny. Czas trwania poszczególnych cykli pakietu (mierzonych w jednostkach zegarowych magistrali) podaje się w formacie x-x-x-x. 3.6.3 EDO — Extended Data Out Pamięci tego typu stanowią nieznaczną modyfikację poprzenich. Charakterystyczne dla EDO jest to, że można wyznaczać kolejny adres zaraz po rozpoczęciu odczytu poprzedniej komórki. Rezultat taki osiągnięto dzięki zmodyfikowaniu cygnału CAS i nie blokowaniu wyjścia (dataout) w czasie transmisji. 3.6.4 BEDO — Burst EDO Pamieci tego typu stanowią połączenie technik zastosowanych w FPM i EDO. 3.6.5 SDRAM Rodzaj pamięci, w której odczyt poszczególnych komórek pamięci synchronizowany jest z zewnętrznym zegarem. Wszystkie sygnały sterujace wyprowadzane są z jednego przebiegu zegarowego, co ułatwia integrację pamięci w systemie, gdyż dużo łatwiej jest zagwarantować zaostrzone reżimy czasowe w przypadku podwyższania częstotliwości taktujących. Pamięć SDRAM jest często oznaczana jako SDR SDRAM (Single Data Rate SDRAM). 3.6.6 DDR SDRAM — Double Data Rate SDRAM Zasada działania modułów DDR SDRAM polega na stosunkowo prostym ulepszeniu technologii SDRAM. W odróżnieniu od zwykłych SDRAM-ów, DDR SDRAM transmituje dane zarówno przy wzroście jaki i spadku sygnału taktującego. Pamięć ta działa dwukrotnie szybciej niż SDR SDRAM, przy tej samej częstotliwości magistrali i procesora. ROZDZIAŁ 3. PAMIĘĆ 3.6.7 27 RDRAM — Rambus DRAM Technologia RDRAM (Direct Rambus DRAM) opracowana została przez firmę Rambus i przez nią też opatentowana. Nie stanowi więc tzw. otwartego standardu, a producenci zmuszeni są do uiszczania opłat licencyjnych. Technologia ta bazuje na trzech elementach: kontrolerze pamięci (Direct Rambus Controller), kanałach (Direct Rambus Channel) i układach pamiętających (Direct Rambus DRAM). Komunikację ze ”światem zewnętrznym” zapewnia kontroler, który połączony jest z układami pamiętającymi za pomocą specjalnych kanałów transmisyjnych. Jego zadaniem jest zarządzanie żądaniami napływającymi od urządzeń zewnętrznych, kontrolowanie przepływu danych, zmiany stanu pracy poszczególnych modułów oraz odświeżanie zawartości pamięci. Każdy kanał może obsłużyć do 32 układów w ramach maksymalnie trzech modułów (Direct Rambus RIMM), a w systemie może istnieć kilka takich kanałów. Każdym z nich przekazywane są w zarówno dane, jak i informacje sterujące. Wykorzystano transmisję pakietową, pozwalającą na zredukowanie liczby zewnętrznych wyprowadzeń, jak również na łatwe zwiększenie pojemności bez konieczności dokonywania zmian w samej architekturze. Pamięci w zależności od wersji mają być taktowane zegarami 300, 350 i 400 MHz, a ponieważ dane są transferowane podobnie jak w przypadku pamięci DDR SDRAM przy narastającym i opadającym zboczu sygnału taktującego, ”wewnątrz” daje to prędkość 600, 700 i 800 MHz. Ponieważ interfejs pamięci RDRAM jest 16-bitowy, pozwoli to na uzyskanie maksymalnej przepustowości rzędu odpowiednio 1,2, 1,4 oraz 1,6 GB/s. Do wad RDRAM należy niewątpliwie długi czas ”robiegu” od momentu wystosowania rozkazu do pojawienia się pierwszych danych (ok. 70–90 ns, DDR ok. 45 ns). Przewaga widoczna jest natomiast w długich i nieprzerwanych transferach danych. Jednak ze względu na pamięć podręczną drugiego poziomu, zintegrowaną w aktualnych procesorach, zwyżka wydajności wynosi w praktyce 5 procent. Przykład: struktura pamięci RDRAM. 3.6.8 VC-SDRAM — Virtual Channel By zrozumieć ideę kanałów wirtualnych, warto przypomnieć sobie, jak obsługiwana jest pamięć w tradycyjnym systemie. Tzw. Memory Master - czyli dowolne urządzenie uprawnione do zapisu/odczytu z pamięci (procesor, kontroler AGP, PCI, pamięci L2-cache itd.) - przesyła do kontrolera pamięci żądanie operacji na niej wraz z charakteryzującymi je parametrami (adres, rozmiar bloku danych, rodzaj operacji itp.), które następnie jest realizowane. W trakcie obsługi jednego urządzenia inne muszą oczekiwać na zwolnienie magistrali pamięci i zakończenie wspomnianej operacji, co jest poważnym minusem w przypadku współczesnych systemów współbieżnych. By usunąć tę niedogodność, NEC zaproponował koncepcję Virtual Channel Memory. Każde urządzenie uzyskuje tu dostęp do pamięci nie bezpośrednio, ale za pośrednictwem szybkich wirtualnych kanałów. W ich ramach określa obszary w pamięci, do których chce zapisywać lub z których chce odczytywać informacje. W efekcie wszystkie operacje wejścia/wyjścia na pamięci są od siebie niezależne i mogą być wykonywane równocześnie. Na dodatek każde urządzenie może zarezerwować na swój użytek kilka kanałów równocześnie. Przykład: koncepcja pamięci VC-SDRAM. 3.7 3.7.1 Moduły pamięci Moduły SIMM-30 (SIP) Listwa połączeniowa płytki posiada 30 pól. Pierwotnie jako elementy złącz stosowane były krótkie szpilki (odmiana SIP), a potem pola kontaktowe na płytce drukowanej. Znaczenie końcówek 1—30 w formie SIP było takie samo jak w SIMM. SIMM-30 dysponuje 11-bitową szyną adresową. Dla osiągniecia wymaganej szerokości magistrali 16 bitów konieczne było stosowania dwóch takich jednostek. ROZDZIAŁ 3. PAMIĘĆ 3.7.2 28 Moduły SIMM PS/2 Moduły tego typu skonstruowano w celu zaspokojenia wymagań procesorów z magistralą 32 bitową. Miały one 72 pola kontaktowe. 3.7.3 Moduły DIMM Listwa połączeniowa tych modułów jest dwustronna i posiada w sumie 168 pól kontaktowych. Specyfikacja nie ogranicza ich zastosowania do konkretnego typu pamięci. Mogą one stanowić nośnik dla pamięci FPM, EDO, SDRAM. 3.7.4 Moduły DDR Moduły te na pierwszy rzut oka przypominają moduły DIMM. Różnią się jednak od nich topologią listwy połączeniowej, która w przypadku DDR zawiera 184 pola kontaktowe. 3.7.5 Moduły RIMM Listwa połączeniowa zawiera 184 punkty. Od DDR odróżnia ją inna lokalizacja karbów identyfikujących. Najbardziej charakterystyczną cechę stanowią jednak metalowe pokrywy przysłaniające same chipy. Moduły RIMM wytwarzają tak dużo ciepła, iż niezbędnym stało się obudowanie ich radiatorami ułatwiającymi ich chłodzenie. 3.8 Problem nazewnictwa Jest kilka rodzajów pamięci DDR SDRAM do których stosuje się różne, czasem wprowadzające w błąd nazewnictwo. Na początku stosowano nazwy PC200 i PC266 do pamięci pracujących z częstotliwościami 100 MHz i 133 Mhz. Potem wprowadzono zamiast nich nowe: PC1600, PC2100, PC2600. Nowe nazwy wiążą się maksymalną przepustowością pamięci. Pamięć SDR SDRSM używa 64-bitowej szyny danych pracując z częstotliwością 100 MHz lub 133 MHz. Oznacza to maksymalną przepustowość 800 MB/s i 1064 MB/s. W przypadku DDR SDRAM wartości te należy podwoić, przez co otrzymujemy odpowiednio 1600 MB/s (dla 100 MHz) - pamięci PC1600, oraz 2128 MB/s (dla 133 Mhz) - pamięci PC2100. Pamięć pracująca z częstotliwością magistrali 166 MHz osiąga przepustowość 2656 MB/s i oznaczana jest PC2600. Można również spotkać symbole DDR-266A i DDR-266B. Oznaczają one po prostu pamięci PC2100 (z opóźnieniem CAS wynoszącym odpowiednio 2 i 2,5 ns). Ponadto w stosunku do pamięci RDRAM stosuje się oznaczenia PC600, PC700, PC800 w zależności od tego jakim zegarem taktowane są pamięci (odpowiednio 300, 350, 400 MHz). W numerze 12 z 2001 roku PC WORLD KOMPUTER na stronie 20 znaleźć można wzmiankę o pamięciach RDRAM 1066 oraz DDR 333. 3.9 3.9.1 Dyski magnetyczne Własności Dysk to okrągła płyta wykonana z metalu lub plastiku, pokryta materiałem magnetycznym. Dane są zapisywane i odczytywane za pomocą przwodzącej cewki zwanej głowicą. Podczas operacji odczytu/zapisu głowica pozostaje nieruchoma, obraca się natomiast dysk. Zapis polega na wykorzystaniu pola magnetycznego wytwarzanego przez prąd elektryczny płynący przez cewkę. Do głowicy są wysyłane impulsy, co powoduje zapisywanie wzorów magnetycznych na powierzchni znajdującej się pod głowicą, przy czym wzory te są różne dla prądów dodatnich i ujemnych. Przy odczycie wykorzystuje się prąd elektryczny powstający w cewce pod wpływem pola magnetycznego dysku poruszającego się względem cewki. Gdy ROZDZIAŁ 3. PAMIĘĆ 29 powierzchnia dysku przesuwa się pod głowicą, generowany jest prąd o tej samej biegunowości, jak użyty do zapisu. Głowica dysku może być nieruchoma lub poruszać się wzdłuż promienia płyty. W przypadku dysków z nieruchomą głowicą, występuje jedna głowica zapisu/odczytu na jedną ścieżkę. Wszystkie głowice są zmontowane na sztywnym ramieniu, które rozciąga się przez wszystkie ścieżki. W przypadku dysków z ruchomą głowicą, istnieje tylko jedna głowica, umieszczona, jak poprzednio na ramieniu. Ponieważ jednk musi istnieć możliwośc pozycjonowania głowicy nad dowolną ścieżką, ramię musi mieć możliwość obrotu lub wydłużania i skracania. Sam dysk umieszczony jest w napędzie dysku, który składa się z ramienia, wałka obracającego dysk i układów elektronicznych potrzebnych do wprowadzania i wyprowadzania danych binarnych. Dysk niewymienny jest na stałe mocowany w napędzie dysku. Dysk wymienny może być usunięty i zastąpiony innym dyskiem. Zaletą tego ostatniego rozwiązania jest teoretycznie nieograniczona liczba danych osiągalna przy ograniczonej liczbie systemów dyskowych. Ważniejszą jednak cechą jest łatwa możliwość wymiany danych. W przypadku większości dysków warstwa magnetyczna jest nanoszona po obu stronach płyty, co jest określane jako dysk dwustronny. Niektóre napędy sysków umożliwiają stosowanie wielu płyt umieszczonych jedna nad drugą w pewnych odległościach. Mówić będziemy wówczas o napędzie wielodyskowym. Zwykle głowica umieszczona była w ustalonej odległości nad płytą. Innym możliwym podejściem jest pozostawienie głowicy w fizycznym kontakcie z nośnikiem podczas operacj zapisu/odczytu (wykorzystywany w przypadku napędu dyskietek). Powstanie trzeciego rodzaju dysków związane było ściśle z poszukiwaniem możliwości coraz gęstszego zapisu. Głowica musi bowiem generować, lub wykrywać pole elektromagnetyczne o wielkości wystarczającej do przeprowadzenia operacji zapisu/odczytu. Im więcaj danych chcemy umieścić na płycie, tym węższa musi być głowica, aby możliwe stąło się operowanie węższymi ścieżkami. Oznacza to jednak, iż głowica musi być znacznie bliżej powierzchi dysku. Jednak im odległość ta jest mniejsza, tym większe ryzyko błędu spowodowanego przez zanieczyszczenia lub niedokładnosci. Wynikiem rozważań na ten temat były dyski typu Winchester opracowane w IBM w 1968 roku. Głowice tego typu dysków pracują w zamkniętych, hermetycznych obudowach eliminując praktycznie możliwość przedostania się jakichkolwiek zanieczyszczeń. Ze względu na lekkość głowic i niewielkie odległości od powierzchni, w stanie spoczynkowym głowice nie są wycofywane poza obręb dysków, lecz spoczywają na ich powierzchni, w specjalnie przeznaczonym na to obszarze. Ciśnienie powietrza wytwarzane przez wirujące dyski wystarcza aby unieść je na odpowiednią wysokość umożliwiającą pracę. 3.9.2 Organizacja danych na dysku Przyjęci takiej konstrukcji pamięci sprawiło, że organizacja danych na płycie ma postać koncentrycznego zespołu pierścieni, nazywanych ściżkami. Sąsiednie ścieżki rozdzielone są od siebie przerwami, minimalizującymi błedy spowodowane przez niewłaściwe ustawienie głowicy lub interferencję pola magnetycznego. Na każdej ścieżce przechowywana jest taka sama liczba bitów. Zatem gęstość, wyrażana w bitach jakie da się zapisać na pewnej powierzchni wzrasta wraz z przesuwaniem się do wewnątrz dysku. Dane przenoszone są na/z dysku blokami, zwykle mniejszymi niż pojemność ścieżki. Wobec tego przechowuje się je w obszarach zwanych sektorami. Na ścieżkę przypada zwykle od kilku do kilkudziesięciu sektorów, o zmiennej lub ustalonej długości. Sąsiednie sektory są oddzielone przerwami wewnątrzścieżkowymi. Zbiór wszystkich ścieżek o tym samym promieniu nazywamy cylindrem. W celu identyfikacji sektora na ściżce dysk zawiera dodatkowe informacje, zwanych danymi kontrolnymi, niedostępnymi dla użytkownika. Przykład 3.1 Rozkład danych na dysku ROZDZIAŁ 3. PAMIĘĆ 30 Przykład 3.2 Format ścieżki Z przedstawionej powyżej organizacji wynika, że adres informacji składać musi się z trzech elementów: numeru cylindra, numeru ścieżki i numeru sektora. Numer cylindra określa położenie głowicy w stosunku do osi dysku, numer ścieżki identyfikuje głowicę, a numer sektora lokalizuje na ścieżce obszar zawierający szukaną informację. Mówiąc o pamięciach półprzewodnikowych zdefiniowane zostało pojęcie czasu dostępu, tj. czasu jaki upływa od podania adresu pamięci do uzyskania informacji. Dla pamięci dyskowych parametr ten będzie łącznym czasem jaki potrzebny jest na wykonanie następujących czynności: – pozycjonowanie głowicy nad ścieżką/cylindrem, tzw. czas przeszukiwania (seek time); – wybranie głowicy odpowiadającej żądanej ścieżce; – oczekiwanie na pojawienie się odpowiedniego sektora pod głowicą, tzw. opóźnieniw obrotowe (rotational latency); – odczytanie i przesłanie informacji do pamięci operacyjnej. Zdarzyć się może, że ze względu na szybkść obrotową dysku, ilość informacji odczytywanych przez głowicę może przekroczyć przepustowość kontrolera. Z tego względu koniczne staje się wówczas zastosowanie odczytu danych z przeplotem, polegającym na niesekwencyjnym odczycie kolejnych sektorów. Technika ta daje kontrolerowi czas na przetworzenie odczytanego sektora, ale spowolnia proces odczytu. Przykład: różne współczynniki przeplotu (1:1, 1:2, 1:3). 3.9.3 Macierze dyskowe Zasadniczym powodem powstania macierzy dyskowych była ich niewielka wydajność i pojemność. Poszukując alternatywnych rozwiązań rozpoczęto eksperymenty z zestawami dysków twardych (tzw. macierzami), złożonymi z mniejszych i tańszych napędów. W 1988 roku David Patterson, Randy Katz i Gerth Gibson z Uniwersytetu Berkeley w Kalifornii opublikowali pracę pod tytułem ”A Case for Redundant Arrays of Inexpensive Disks” (RAID), w której zaprezentowali koncepcję macierzy dyskowych oraz wprowadzili pojęcie RAID. Koncepcja ta bazuje na niezależnej i równoległej pracy kilku dysków, nazywanych razem macierzą dyskową. Gdy mamy do czynienia z wieloma dyskami, oddzielne zapotrzebowania na operacje wejścia/wyjścia mogą być przetwarzane równolegle, jeśli tylko poszukiwany blok danych jest rozproszony na wielu dyskach. Schemat RAID składa się z sześciu poziomów, wyznaczających różne architektury. W każdym z nich RAID stanowi zespół fizycznie istniejących napędów dyskowych, widzianych przez system operacyjny jako pojedynczy napęd. Dane przechowywane w takiej macierzy (tablicy) dyskowej są rozproszone. Nadmiarowa pojemność dysków wykorzystywana jest do przechowywania informacji, dających możliwość odzyskania danych w przypadku uszkodzenia jakiegoś dysku. Warto zauważyć, iż zwiększenie niezawodności nie było celem samym w sobie jaki stawiali przed sobą pomysłodawcy. Może się to wydać dziwne, ale zastosowanie większej liczby dysków, umożliwiające przyspieszenie działań wejścia/wyjścia, zwiększa prawdopodobieństwo uszkodzenia. ROZDZIAŁ 3. PAMIĘĆ 31 RAID 0 Jest to macierz złożona z co najmniej dwóch dysków, tworzących jeden wirtualny napęd o pojemności równej sumie pojemności dysków składowych. Mechanizm (sprzętowy lub programowy) RAID dzieli zapisywany plik na małe pakiety danych, tzw. bloki stripe (A, B, C...) o stałej wielkości. Pakiety te są następnie kolejno zapisywane na wszystkich dyskach. Ponieważ głowice każdego z dysków pracują niezależnie, teoretycznie możliwy jest równoczesny zapis tylu bloków, ile dysków wchodzi w skład macierzy, a co za tym idzie, tylokrotne zwiększenie szybkości zapisu - co jest właśnie istotą takiego układu. W praktyce, wiele zależy od tego, czy wykorzystana magistrala zapewnia równoczesny dostęp do wszystkich dysków macierzy. Poważną wadą stripingu jest niebezpieczeństwo utraty wszystkich danych w razie awarii któregoś dysku. RAID poziomu 0 znajduje zastosowania wszędzie tam, gdzie wymagana jest wysoka wydajność w odniesieniu do niekrytycznych danych. Przykład: RAID 0. RAID 1 Poziom ten różni się od następnych, sposobem osiągania redundancji. Tutaj redundancja nie jest osiągana przez przeprowadzenie pewnych obliczeń, lecz przez zwyczajne duplikowanie wszystkich danych. RAID 1 umożliwia szybkie uzyskanie odpowiedzi na żądania wejścia/wyjścia, jeśli tylko ich główna część dotyczy odczytu. W takiej sytuacji możliwy jest niemal 2-krotny wrost wydajności w porównaniu z RAID 0. Nastąpi to, gdy możliwe będzie rozdzielenie żądań odczytu w taki sposób, aby w operacji uczestniczyły oba dyski. RAID 1 zapewnia, iż rezerwowe dane są dostępne natychmiast, bez przerywania pracy systemu. Główną wadą jest koszt takiego rozwiązania; wymaga ono dwukrotnie większej przestrzeni dyskowej w porównaniu z dyskiem logicznym, który jest obsługiwany. Ponadto podczas operacji zapisu przesyłana jest dwukrotnie większa ilość danych, co powodować może spowolnienie całej procedury. Z tych powodów wykorzystanie konfiguracji RAID 1 pozostaje raczej ograniczone do napędów przechowujących oprogramowanie systemowe oraz inne bardzo ważne pliki. W przyjętej popularnie terminologii, jeżeli obydwa dyski współpracują z jednym kontrolerem, mówi się o dyskach lustrzanych (mirroring), a jeśli każdy ma niezależny kontroler – o zdowojeniu (duplexing) dysków. To drugie rozwiązanie jest korzystniejsze zarówno z powodu niezawodności jak i wydajności. Przykład: RAID 1. RAID 2 RAID 2 i 3 wykorzystują metodę dostępu równoległego. W takim przypadku wszystkie dyski uczestniczą w realizacji każdego żądania wejścia/wyjścia. Zwykle poszczególne napędy są synchronizowane tak, że w dowolnym momencie każda głowica znajduje się w tej samej pozycji nad każdym dyskiem. Podobnie jak w pozostałych schematach, wykorzystywane jest paskowanie danych. W RAID 2 i 3 paski te są bardzo małe, równe często jednemu bajtowi lub słowu. W RAID 2 kod korekcji błędów jest obliczany na podstawie odpowiednich bitów na każdym dysku danych, a bity kodu są przechowywane w odpowiednich pozycjach bitowych zlokalizowanych na wielu dyskach parzystości. Zwykle wykorzystywany jest kod Hamminga, który umożliwia korygowanie błędów jednobitowych i wykrywanie dwubitowych. Poziom ten, wymagający mniejszej liczby dysków niż RAID 1, nadal jest raczej kosztowny. Sposób zapisu danych powoduje, że każda operacja wymaga równoległej pracy wszystkich dysków. Właściwym miejscem jego zastosowania są środowiska, w których występuje wiele błedów dyskowych. ROZDZIAŁ 3. PAMIĘĆ 32 Przykład: RAID 2. RAID 3 RAID 3 jest zorganizowany podobnie jak RAID 2. Różnica polega na tym, że wymaga on tylko jednego dysku redundacyjnego, niezależnie od wielkości matrycy dysków. Wykorzystuje się tutaj dostęp równoległy, przy czym dane są rozmieszczone w postaci małych pasków (często wielkości jednego bajtu). Zamiast kodu korekcyjnego, obliczany jest bit parzystości dla zespołu indywidualnych bitów znajdujących się w tej samej pozycji na wszystkich dyskach danych. W przypadku uszkodzenia dysku, wszystkie dane są nadal dostępne w tzw. trybie zredukowanym. W tym trybie w przypadku odczytu zaginione dane są regenerowane na bieżąco za pomocą obliczeń. Gdy dane są zapisywane w zredukowanej tablicy RAID 3, musi być zachowana zgodność parzystośći w celu umożliwienia późniejszej regeneracji. Powrót do pełnego działania wymaga wymiany uszkodzonego dysku i zregenerowania całej jego zawartości. Przykład: RAID 3. RAID 4 W RAID 4 i 5 wykorzystuje się metodę dostępu niezależnego, dzięki czemu oddzielne żądania wejścia/wyjścia mogą być obsługiwane równolegle. Z tego względu tablice o dostępie niezależnym są bardziej odpowiednie w przypadku zastosowań wymagających szybkiej odpowiedzi na żądanie wejścia/wyjścia, są natomiast stosunkowo mało przydatne w zastosowaniach wymagających dużych szybkości transferu danych. Paski wykorzystywane w RAID 4 są stosunkowo duże. Pasek przystości tworzony bit po bicie jest obliczany na podstawie odpowiednich pasków na każdym dysku danych, a bity parzystości są przechowywane w odpowiednim pasku na dysku parzystości. W schemacie tym występuje pogorszenie wydajności zapisu, jeśli realizowane jest żądanie zapisu małej ilości danych. Przy każdej operacji zapisu muszą być uaktualniane dane na dysku parzystości, który przez to może stać się wąskim gardłem. Przykład: RAID 4. RAID 5 RAID 5 zorganizowany jest podobnie jak RAID 4. Różnica polega na tym, że w przypadku RAID 5 paski przystości są rozproszone na wszystkich dyskach. Typowo wykorzystuje się schemat cykliczny. Taki sposób rozmieszczenia pasków parzystości zapobiega ewentualnemu powstawaniu wąskich gardeł, o których mowa była w odniesieniu do RAID 4. Przykład: RAID 5. 3.10 Dyski magnetooptyczne Dyski magnetooptyczne, ze względu na trwałość zapisu i elastyczność zastosowania, były do niedawna jednym z najatrakcyjniejszych nośników danych. Pod względem wygody dostępu do danych i wydajnością porównywalne były z klasycznymi dyskami twardymi, zaś odpornością na niesprzyjające warunki przechowywania i upływ czasu dorównywały CD-ROM-om. Zgodnie z nazwą, zarówno zapis jak i odczyt dysków magnetooptycznych odbywa się metodą kombinowaną. Inforamacja przechowywana jest przez pokrywający płytę wykonaną z tworzywa lub szkła odpowiednio dobrany nośnik magnetyczny. Magnetyczna głowica zapisująca znajduje się w pewnej odległości od powierzchni wirującego dysku, co zmienjsza wrażliwość układu na zanieczyszczenia mechaniczne. Generowane przez nią pole obejmuje kilka ścieżek, jest jednak zbyt słabe, by w normalnych warunkach spowodawać przemagnesowanie ROZDZIAŁ 3. PAMIĘĆ 33 nośnika. Właściwa ścieżka jest wybierana promieniem lasera na tyle silnym, by lokalnie podgrzać nośnik do temperatury, w której pole wytworzone przez głowicę powoduje reorientację domen magnetycznych. Przy odczycie wykorzystuje się zjawisko różnego skręcania płaszczyzny polaryzacji światła słabego lasera przy odbiciu od różnie namegnesowanych obszarów powierzchni dysku. Dzięki takiej technologii dyski magnetooptyczne są stosunkowo odporne zarówno na przypadkowe pola magnetyczne, jak i wysoką temperaturę — uszkodzenie informacji mogą wywołać tylko oba te czynniki występujące jednocześnie. 3.11 Taśma magnetyczna Pamięć taśmowa była pierwszym rodzajem pamięci pomicniczej. Wciąż jest szeroko używna jako najtańszy i najpowolniejszy zarazem element hierarchii pamięci, choć pojewienie się dydsków optycznych może zachwiać ich ugruntowaną od lat pozycją. Ze względu na dużą pojemność oraz stosunkowo długą żywotność medium streamery są podstawowym narzędziem archiwizacji w sieciach i złożonych systemach komputerowych. Dostępne modele różnią się rodzajem taśmy oraz zastosowaną technologią zapisu. Wszystkie urządzenia archiwizujące cechuje wysoka jakość wykonania, gdyż muszą one zapewnić maksimum niezawodności w trakcie eksploatacji. Współczesne napędy taśmowe korzystają najczęściej z jednej z pięciu popularnych technik zapisu. Streamery mogą różnić się już na pierwszy rzut oka kształtem kasety przechowującej magnetyczne medium. Również wśród samych nośników można znaleźć przynajmniej kilka odmian charakteryzujących się różną szerokością taśmy oraz stosowaną metodą zapisu informacji. W celu silniejszego upakowania informacji na nośniku, stosuje się większą liczbę ścieżek, a za precyzyjne pozycjonowanie głowic odpowiadają tzw. ścieżki wspomagające (servo-tracks). W części urządzeń korzysta się z techniki zapisu liniowego, w której taśma przesuwana jest przed nieruchomą głowicą. Aby zwiększyć szybkość pracy streamerów, stosuje się tzw. zespół zapisująco-odczytujący (kilka pracujących równolegle głowic), dzięki czemu jednocześnie może zostać ”obsłużonych” więcej ścieżek. Taśma przesuwana jest ze stosunkowo dużą prędkością, dlatego konstrukcja urządzenia, jak i sam nośnik narażone są na poważne obciążenia mechaniczne. Zapis liniowy stosowany jest w streamerach typu SLR/MLR oraz DLT. Inną techniką zapisu jest zapis helikalny przypominający nieco sposób funkcjonowania np. magnetowidów VHS. Podstawowym elementem konstrukcji czytnika jest zespół głowic odczytujących i zapisujących, umieszczony ukośnie w stosunku do nośnika. Wirowanie głowic oraz równomierny przesuw taśmy decydują o powstaniu ukośnych ścieżek zapisu. Ze względu na znaczne zagęszczenie informacji na powierzchni nośnika medium przesuwane jest powoli. Nie ma również potrzeby stosowania długich taśm, co w konsekwencji powoduje, że czas przewijania jest przeważnie znacznie krótszy niż w przypadku urządzeń korzystających z techniki zapisu liniowego. SLR/MLR (Single/Multiple Linear Recording) Taśma o szerokości ok. 6 mm przechowywana jest w zamkniętej kasecie (QIC). Nośnik przez cały cykl pracy pozostaje w kasecie, przez co znacznemu skróceniu uległ czas rozpoczynania operacji odczytu/zapisu. Za przesuw medium odpowiada rolka dociskowa oraz pasek przekaźnikowy, który porusza obie szpule. W systemie SLR dane zapisuje pojedyncza głowica na maks. 46 ścieżkach. W MLR3 wykorzystywane są trzy pracujące równolegle głowice: dwie zapisujące i jedna odczytująca, co pozwala na weryfikowanie zapisywanych danych niezależnie od kierunku przesuwania się taśmy. Szybkość transferu danych wynosi 2 MB/s, a pojedyncza taśma mieści do 25 GB danych bez kompresji (MLR3: 144 ścieżki + 24 ścieżki synchronizujące). Technologie SLR i MLR stosują m.in. firmy Tandberg i Overland. ROZDZIAŁ 3. PAMIĘĆ 34 Przykład: nośnik SLR/MLR. DLT (Digital Linear Tape) Technologia DLT, znana ze streamerów Quantum i HP, pochodzi ze świata dużych maszyn i komputerów mainframe DEC. Nośnik o szerokości nieco ponad centymetr znajduje się na pojedynczej szpuli. Czytnik, w momencie załadowania, wciąga koniec taśmy, którą nawija na drugą, zewnętrzną szpulę. Za odczyt i zapis danych odpowiadają cztery zestawy głowic, których charakterystyczną cechą jest oryginalne rozmieszczenie - pod różnymi kątami do kierunku ruchu taśmy - chroniące gęsto położone ścieżki danych przed możliwością wystąpienia zakłóceń w trakcie odczytu. Taśma o pojemności 35 GB przesuwana jest z bardzo dużą prędkością, co w połączeniu z wydajnym systemem zapisu zapewnia transfer na poziomie ok. 5 MB/s. Przykład: taśma DLT. DDS3 (DAT - Digital Audio Tape) Helikalny standard zapisu DDS3 stosowany jest w czteromilimetrowych taśmach DAT i umożliwia przechowanie do 12 GB informacji na pojedynczej kasecie. Taśmy DAT są profesjonalnym standardem przechowywania dźwięku w cyfrowej postaci. Transfer danych w technologii DDS3 odbywa się ze średnią prędkością 1 MB/s, a za poprawność zapisu odpowiada metoda korekcji read-after-write, polegająca na odczytywaniu i weryfikowaniu danych bezpośrednio po przeprowadzonym zapisie. W momencie wykrycia błędu następuje ponowne skopiowanie informacji na nośnik. Dane kodowane są z użyciem znanej z dysków twardych techniki PRML (CHIP 9/96, s. 68). Napędy DDS3 mogą również zapisywać i odczytywać dane w jednym z wcześniejszych standardów - DDS1 i DDS2 - różniących się od DDS3 pojemnością nośnika (mniejsze skondensowanie danych na pojedynczej ścieżce Przykład: kasety DAT, MIC (AIT). AIT (Advanced Intelligent Tape) Technologia AIT jest w pewnym sensie rozwinięciem koncepcji zastosowanych po raz pierwszy w taśmach DAT. Taśma AIT o długości 170 metrów mieści do 25 GB danych (bez kompresji) i wykonana jest w technice AME (Advanced Metal Evaporation - proces pokrywania nośnika cieńką warstwą metalu). Dane zapisywane są ze średnią prędkością 3 MB/s. Za bezpieczeństwo przechowywanych informacji odpowiadają dwa zastosowane mechanizmy korekcji - odczyt-po-zapisie oraz ECC (error correction code). Pierwszy z nich zapewnia poprawność zapisu, drugi zaś umożliwia rekonstrukcję danych i odczyt informacji z uszkodzonego nośnika. Unikatową cechą taśm MIC (Memory In Cassette), wykorzystywanych przez napędy AIT, jest układ pamięci zainstalowany wewnątrz kasety. Przechowuje on informacje o aktualnej zawartości nośnika wraz ze szczegółową lokalizacją zbiorów na powierzchni taśmy. Rozwiązanie takie zapewnia niemal błyskawiczny dostęp do przechowanych danych. Technologię AIT opracowała firma Sony na potrzeby urządzeń wizyjnych. AIT powszechnie stosowana jest również w streamerach Seagate. Mammoth Dla swoich urządzeń firma Exabyte opracowała własną technologię 8 mm, w której używa podobnego nośnika co AIT. Pojedyncza kaseta mieści 20 GB danych, które zapisywane są z prędkością 3 MB/s. Napędy 8 mm są kompatybilne z wcześniejszymi modelami (odczyt), dzięki czemu najnowsze urządzenia Exabyte bez problemu odczytują nawet najstarsze taśmy. Streamery Exabyte, podobnie jak urządzenia AIT, korzystają ze 170-metrowej taśmy. ROZDZIAŁ 3. PAMIĘĆ 3.12 35 Pamięć optyczna Kiedy wprowadzano na rynek pierwsze płyty kompaktowe, nikt się chyba nie spodziewał, że staną się one jednym z najlepiej znanych i rozpowszechnionych tworów myśli ludzkiej. Dziś trudno wyobrazić sobie nowoczesny system komputerowy nie dysponujący napędem CDROM. Wszystko to, co kiedyś trzeba było pracowicie upakowywać na dyskietkach, można teraz wygodnie zgromadzić na błyszczącym krążku. Swoją oszałamiającą karierę płyta CD zawdzięcza dwóm zasadniczym czynnikom: bardzo niskim kosztom produkcji oraz możliwości zapamiętania na niej ogromnych ilości cyfrowych informacji. 3.12.1 Standardy Standard cyfrowego zapisu dźwięku ogłoszony został w 1982 roku przez firmy Philips i Sony. W związku z formą publikacji określany jest on jako Czerwona Ksiega. Tak powstała muzyczna płyta CD, dziś nazywana CD-DA (Compact Disk - Digital Audio) lub popularnie ”kompaktem”. Trzy lata później narodził się CD-ROM (Compact Disk - Read Only Memory). W 1987 roku opublikowano specyfikację CD-I (Compact Disk - Interactive), a po roku bazujący na niej multimedialny standard CD-ROM XA (eXtended Architecture) umożliwiający jednoczesny odczyt danych, dźwięku i obrazu. W 1990 roku pojawiła się specyfikacja formatu nośników zapisywalnych, w tym CD-R (CD - Recordable). ”Kolorowe” standardy definiują fizyczną i logiczną strukturę płyty oraz metody korekcji błędów, pomijając sposób kodowania hierarchicznej struktury katalogów oraz nazw plików. W zależności od rozmieszczenia danych użytkowych i ”technicznych” rozróżnia się kilka formatów zapisu danych: CD-DA, CD-ROM Mode 1, CD-ROM Mode 2, CD-ROM XA Mode 2 Form 1 i CD–ROM XA Mode 2 Form 2. W 1985 standard znany pod nazwą High Sierra, po drobnych modyfikacjach zatwierdzony przez International Organization for Standardization jako norma ISO 9660. Specyfikacja ta opisuje sposób kodowania i obsługi struktury plików oraz katalogów na wszystkich platformach sprzętowych. Założony uniwersalizm narzuca jednak dość drastyczne ograniczenia. Nazwy powinny składać się z najwyżej 8 znaków (plus 3 znaki rozszerzenia) oraz zawierać jedynie litery, cyfry i znak podkreślenia. Nazwy katalogów nie mogą posiadać rozszerzenia, a ich zagłębienie nie może przekroczyć ośmiu poziomów. Zapis na płytę plików i katalogów z nazwami ściśle odpowiadającymi rygorom normy ISO 9660 nie zawsze wystarcza. Zdefiniowano zatem jej rozszerzenia, oznaczone symbolami Level x. I tak ISO 9660 Level1 umożliwia nazywanie plików i katalogów w sposób stosowany w systemie DOS, zaś Level 8 jest w pełni zgodny z wymogami UNIX-a. Wraz z systemem operacyjnym Windows 95 pojawił się problem z przeniesieniem na dyski kompaktowe długich nazw zbiorów oraz sposobu ich kodowania. Propozycją jego rozwiązania stał się format ISO 9660:1988, czyli Joliet. Jest to przedstawiony przez Microsoft sposób kodowania długich nazw Windows 95 z użyciem międzynarodowego zestawu znaków (tzw. Unicode). Zezwala on na zapis do 64 liter w nazwie zbioru z możliwością użycia spacji. Alternatywny sposób zapisu długich nazw, przedstawiony przez firmę Adaptec, nosi kryptonim Romeo. Zgodnie z nim nazwa zbioru może zawierać do 128 znaków (także spacji), ale jest konwertowana na duże litery. Jeżeli płyta w formacie Romeo zawiera pliki o długich, identycznie zaczynających się nazwach, podczas jej odczytu w DOS-ie widać jedynie pierwszy z nich (w formacie Joliet wszystkie). Format Red Book dla płyt Audio CD Opracowany w 1980 roku przez Sony i Philipsa standard Red Book zawiera specyfikacje dotyczące cyfrowych płyt Audio CD. Księga ta określa, w jaki sposób na kompaktach mają być zapisywane dane oraz informacje adresowe. Na początku nagranego zbioru danych znajduje się spis jego zawartości, noszący nazwę Table of Contents (TOC). Red Book opisuje także budowę ścieżek (tracks), których płyta Audio CD może mieć maksymalnie 99. Ścieżki te są podzielone na sektory, z których każdy ROZDZIAŁ 3. PAMIĘĆ 36 zawiera 2352 bajty. Sektory stanowią najmniejszą adresowalną jednostkę na płycie CD. Tzw. ramki minut/sekund określają fizyczny adres danego sektora. Podczas odtwarzania płyty Audio CD w ciągu jednej sekundy odczytywane jest 75 sektorów. W katalogu zawartości dysku (TOC) znajdują się liczby i adresy startowe ścieżek oraz informacja o typie kompaktu (Data- lub Audio-CD). Tzw. ścieżka wstępna (Lead-In Area, LIA) jest pierwszą ścieżką zawierającą rzeczywiste dane, natomiast katalog zawartości znajduje się w wydzielonym obszarze. Cały obszar cyfrowych informacji zamyka ścieżka końcowa (Lead-Out Area, LOA). Format Yellow Book dla płyt Data CD Yellow Book stanowi uzupełnienie standardu Red Book i zawiera definicję ścieżek danych dla płyty CD-ROM. Na tym samym kompakcie istnieje odtąd możliwość zapisania ścieżek danych i audio (Mixed-Mode CD). Zdefiniowane w Yellow Book ścieżki noszą tu odpowiednie nazwy: CD-ROM-Mode 1 i CD-ROM-Mode 2. Ścieżki Mode 1 są przewidziane dla danych komputerowych i mogą być odczytywane przez wszystkie napędy CD-ROM. Mode 2 definiuje natomiast ścieżki przeznaczone dla danych audio, wideo oraz zdjęć. Standard Yellow Book (Mode 1 i 2) 2352 bajty Sync Header Data EDC ECC Free Tag 12 4 2048 8 272 8 2352 bajty Sync Header Data 12 4 2336 Jak pokazują zamieszczone tabele, struktura sektorów w przypadku ścieżek Mode 1 i Mode 2 jest odmienna. Aż 288 bajtów kodu przeznacza się do rozpoznawania i korekcji błędów: obszary EDC (Error Detection Codes) oraz ECC (Error Correction Codes) są wykorzystywane np. wtedy, gdy z powodu zarysowania lub zabrudzenia kompaktu wystąpią błędy odczytu. Dzięki kodom EDC i ECC oryginalne dane mogą być więc zrekonstruowane. Mechanizm rozpoznawania i korekcji błędów jest szczególnie ważny dla ścieżek Mode 1, gdyż zawierają one dane komputerowe (np. programy). W przypadku ścieżek, które zostały zapisane w trybie Mode 2, korekcja błędów nie odgrywa tak istotnej roli, gdyż są na nich nagrane dane audio, wideo oraz zdjęcia. Dla ludzkiego oka i ucha drobne błędy transmisji nie stanowią bowiem - w przeciwieństwie do procesora komputera - żadnego problemu. Z uwagi na fakt, że na ścieżkach Mode 2 nie zapisuje się żadnych informacji dotyczących korekcji błędów, na nośniku pozostaje więcej miejsca dla rzeczywistych danych. Standard Yellow Book według CD-ROM/XA (Form 1 i 2) 2352 bajty Sync Header Subheader Data EDC ECC 12 4 8 2048 8 272 2352 bajty Sync Header Subheader Data EDC 12 4 8 2324 4 Nowym typem ścieżki danych jest Mode 2 XA (Extended Architecture). W tym przypadku możliwe jest zapisywanie na jednej ścieżce danych komputerowych wraz z informacjami EDC i ECC oraz danych audio/wideo bez kodu ECC. Na kompaktach nagranych w trybie Mode 2 XA możemy więc zapisywać w dowolnej kolejności dane komputerowe, audio i wideo, a następnie odtwarzać je równocześnie w ramach aplikacji multimedialnych. ROZDZIAŁ 3. PAMIĘĆ 37 Format Green Book dla płyt CD-i Standard Green Book określa, w jaki sposób na płycie CD mają być zapisane dane czasu rzeczywistego. Kompakty nagrywane według tej specyfikacji noszą nazwę CD-i (Compact Disc Interactive). W przypadku standardu Green Book chodzi przede wszystkim o dane ADPCM-Audio, wideo i im podobne, które można mieszać w dowolny sposób. Wada takiego rozwiązania polega na tym, że klasyczne napędy CD-ROM nie potrafią odczytywać ścieżek CD-i, ani w ogóle rozpoznawać kompaktów zapisanych w tym formacie. Standard Green Book (Mode 1 i Mode 2) 2352 bajty Sync Header Subheader Data EDC ECC 12 4 8 2048 8 272 2352 bajty Sync Header Subheader Data 12 4 8 2328 Format Blue Book (CD Extra, wcześniej CD Plus) Księga Blue Book definiuje standard płyt CD Plus, który umożliwia rozszerzenie specyfikacji Mixed Mode. Rozwiązanie to pozwala na umieszczenie w ramach własnej sesji dodatkowej ścieżki danych na końcu dotychczasowego nagrania. Dzięki temu odtwarzanie kompaktów nagranych zgodnie ze standardem Blue Book nie powoduje już żadnych uszkodzeń w zestawach hi-fi, gdyż dane komputerowe są ściśle odizolowane od informacji audio. Odtwarzacz Audio CD ma więc dostęp wyłącznie do danych audio. Od niedawna standard ten zmienił nazwę z CD Plus na CD Extra. Bez względu na to, która nazwa widnieje na etykiecie, płytę taką możemy bez obaw odczytywać w każdym odtwarzaczu Audio CD. Format Orange Book dla płyt CD-R W księdze Orange Book opisany został sposób, w jaki można zapisywać kolejne sesje na dyskach CD-R. Na nagrywalnych płytach CD dane mogą być nagrywane i kasowane z dowolną częstotliwością. Podobnie jak w przypadku twardych dysków, także i tu nowe dane mogą być dodawane do już istniejących. Operacja ta odbywa się jednak w kilku tzw. sesjach, w związku z czym kompakty takie noszą również nazwę Multisession CD-ROM. Płyta taka może być odczytana na pececie dopiero wtedy, gdy zostanie ona odpowiednio utrwalona przez program nagrywający. Format White Book (Video CD) W księdze White Book znajdziemy pełną specyfikację zapisu obrazu wideo na płytach CD. Opracowanie tego standardu stało się konieczne, gdyż w 1993 roku firmy Philips, Sony, JVC i Matsushita rozpoczęły nagrywanie na kompaktach filmów wideo. Chociaż płyty CD mają stosunkowo dużą pojemność, to w przypadku pełnometrażowego filmu okazuje się ona niewystarczająca. Z tego też względu konieczne jest zastosowanie specjalnej techniki kompresji, dzięki której można zapisać więcej danych wideo o jakości zbliżonej do standardu VHS. 3.12.2 Pamięć optyczna (CD) Kodowanie i struktura danych Analogicznie jak w przypadku czarnego krążka, także w muzycznym kompakcie może wystąpić ”przeskok” ścieżki lub obniżenie jakości emitowanego dźwięku, gdy na powierzchni znajdą ROZDZIAŁ 3. PAMIĘĆ 38 się jakieś zarysowania. Aby zaradzić takim problemom, płyta CD dysponuje pewnymi mechanizmami zabezpieczającymi, za pomocą których napęd jest w stanie odtworzyć utracone dane. Cały sekret takiego rozwiązania tkwi w sposobie zapisu danych na kompakcie. Gdy promień laserowy napotyka powierzchnię kompaktu, jest on odbijany i dociera do fotokomórki. W momencie natrafienia na zagłębienie (Pit) promień odbija się w innym kierunku i dopływ światła do czujnika zostaje przerwany. Taka właśnie zmiana oświetlenia jest rozpoznawana przez elektroniczny układ odczytujący. Fotokomórka przechwytująca powracający promień laserowy najlepiej rozpoznaje przejście od stanu jasnego do ciemnego. Nośnikiem informacji nie jest więc sama wartość, lecz jej zmiana. Normalną sytuacją na płycie CD jest ciągła zmiana pomiędzy obszarami Pit i Land. Jedynie odstępstwo od tej reguły oznacza wartość logiczną 1. Regularne następowanie po sobie kolejnych wartości Pit i Land mechanizm odczytujący interpretuje natomiast jako ciąg zer. Logiczna jedynka stanowi zatem zamierzoną nieprawidłowość w regularnym ciągu Pit-Land. Takie nieregularności nie powinny jednak występować zbyt często, gdyż elektroniczny układ odczytujący nie będzie w stanie prawidłowo odczytać informacji. Pomiędzy kolejnymi jedynkami musi więc zawsze występować określona minimalna liczba zer. Konieczne jest przekodowanie przygotowanych do zapisu danych w taki sposób, aby spełniony został powyższy warunek. Stosowana jest w tym przypadku metoda zwana kodowaniem EFM (Eight to Fourteen Modulation). Do odwzorowania jednego bajta używa się w niej 14 bitów. Za pomocą takiego ciągu bitów można utworzyć 16 384 (2 14 ) kombinacje, z których do wykorzystania pozostaje 267. Z tej liczby 256 kombinacji służy do odwzorowania jednego bajta, a pozostałe 11 możliwości są niezdefiniowane. Najmniejszy stosowany w kompaktach zestaw bajtów nosi nazwę Small Frame (mała ramka) i zawiera 24 bajty informacji oraz 8 dodatkowych do korekcji ewentualnych błędów. Jeśli jednak zbyt duża część tego 24-bajtowego ciągu zostanie uszkodzona, to nawet najlepszy układ elektroniczny nie będzie w stanie ich odtworzyć na podstawie ośmiu bajtów zapasowych. Powierzchnia użytkowa płyty CD jest podzielona na specjalne segmenty, zwane sektorami. Sektor taki - określany również mianem Large Frame (duża ramka) - składa się z 98 obszarów Small Frame. Z uwagi na fakt, że sektory łączą się ze sobą tworząc spiralę, ich liczba nie musi być z góry określona i może zmieniać się w zależności od pojemności dysku. W przypadku muzycznych kompaktów pojedynczy sektor odpowiada materiałowi muzycznemu o długości około jednej siedemdziesiątej piątej sekundy. Gdy z powodu zanieczyszczeń odczytanie jakiegoś sektora jest niemożliwe, odtwarzacz analizuje sąsiednie bloki danych i przyjmuje zamiast utraconych informacji najbardziej prawdopodobne wartości. W efekcie błąd taki jest praktycznie niesłyszalny przy odtwarzaniu. Jeśli jednak tego typu usterki będą występować zbyt często, słuchacz może odnieść wrażenie, że brzmienie kompaktu jest nieprawidłowe. Podobne rozwiązanie nie funkcjonuje jednak w przypadku danych komputerowych, gdyż komputer może pracować tylko na danych autentycznych, a nie przybliżonych. Z tego też względu konieczne jest zastosowanie bardziej zaawansowanego mechanizmu korekcji błędów. Liczba bajtów przypadających na jeden sektor jest ustalona dla każdego standardu nośnika; płyty CD-ROM posiadają z reguły sektory o długości 2352 bajtów. Jeśli od tej liczby odejmiemy 12 bajtów wykorzystywanych do synchronizacji, 288 bajtów do korekcji błędów oraz 4 bajty umożliwiające dokładne adresowanie każdego sektora, to w jednym sektorze pozostanie miejsce na 2 KB danych. W celu uzyskania takiej ilości danych i późniejszego ich przesłania do komputera, napęd CD musi jednak fizycznie odczytać z kompaktu ponad 7 KB informacji. Wśród 288 bajtów przeznaczonych na korekcję błędów znajdują się 4 bajty kontroli parzystości. W ten sposób elektroniczny układ odczytujący może łatwo ustalić, czy w danym sektorze w ogóle występuje jakiś błąd. Po tych czterech bajtach następuje ciąg 8 bajtów zerowych, które mają zapewnić fizyczny odstęp pomiędzy danymi. Na pozostałych 276 bajtach znajdują się informacje nadmiarowe (redundantne), wyliczone na podstawie rzeczywistych danych. Dzięki tak zakodowanym informacjom istnieje możliwość skorygowania w pewnym ROZDZIAŁ 3. PAMIĘĆ 39 zakresie napotkanych błędów. Płyta CD umożliwia przechowywanie utworów muzycznych w postaci cyfrowej. W studiu nagraniowym specjalny układ elektroniczny próbkuje dany utwór 44 100 razy na sekundę i przekształca go na postać Small Frames. Płyta kompaktowa jest zatem nagrywana z częstotliwością próbkowania 44,1 kHz. Przy odtwarzaniu takiego krążka powstaje w związku z tym stały strumień danych o przepustowości 176 kilobajtów na sekundę. Z uwagi na fakt, że zewnętrzne ścieżki płyty CD są dłuższe niż wewnętrzne, szybkość obrotowa napędu musi być zmienna. Gdy głowica odczytująca znajduje się na skrajnie zewnętrznej ścieżce, płyta kompaktowa kręci się z szybkością 200 obrotów na minutę. W przypadku ścieżek wewnętrznych musi ona natomiast wykonać w tym samym czasie 530 obrotów, aby było możliwe utrzymanie stałej szybkości transmisji danych (176 KB/s). Mechanizm zachowujący stałą szybkość odczytu danych znany jest również pod nazwą techniki CLV (Constant Linear Velocity). W przypadku odtwarzaczy audio taka zmiana szybkości obrotowej nie stanowi wielkiego problemu, gdyż pomiędzy poszczególnymi utworami standardowo występują kilkusekundowe przerwy. W tym czasie napęd CD może dokonać zmiany szybkości. Napędy CD-ROM nie mogą jednak pozwolić sobie na takie przerwy. Szczególnie trudna jest taka zmiana w urządzeniach o x-krotnej szybkości, gdyż napęd musi w ułamku sekundy zwolnić lub przyspieszyć obroty dysku. Dlatego producenci napędów instalują w nich wysokiej jakości silniki krokowe, które umożliwiają błyskawiczną zmianę szybkości obrotowej płyty. Szybkość liniowa i kątowa Aby napęd CD-ROM mógł transmitować dane ze stałą szybkością, odczytywana płyta musiałaby obracać się ze zmienną szybkością. W momencie, gdy głowica odczytuje wewnętrzny obszar płyty, nośnik musi obracać się nieco szybciej, natomiast w przypadku zewnętrznego obszaru - nieco wolniej. Zmienną szybkość obrotową wykorzystywało w swojej pracy wiele napędów CD-ROM (technologia ta nosiła nazwę CLV - Constant Linear Velocity, czyli stałej prędkości liniowej). Rozwiązanie to ma jednak pewne istotne wady. Silnik napędu musi stale zwiększać i zmniejszać szybkość obracania płyty, w zależności od tego, która ścieżka jest odczytywana przez promień laserowy. Mechanizm taki z jednej strony wprowadza dodatkowe wibracje, z drugiej - niepożądany czas oczekiwania, gdyż głowica odczytująca jest uaktywniana dopiero wtedy, gdy szybkość obrotowa kompaktu będzie zbliżona do optymalnej. Z tych też względów na rynku rozpowszechniła się inna technologia, nosząca nazwę CAV (Constant Angular Velocity). W tym przypadku napęd CD-ROM pracuje zawsze z tą samą szybkością obrotową - bez względu na położenie głowicy odczytującej. Konsekwencją takiego rozwiązania jest większa szybkość transmisji danych, jeśli są one odczytywane z zewnętrznych obszarów płyty. Aby zmniejszyć nieco ten efekt, należy stosować rozwiązanie kompromisowe, któremu nadano nazwę Partial CAV. Płyta CD obraca się wówczas ze stałą prędkością kątową do chwili, w której laser będzie chciał odczytać zewnętrzne ścieżki nośnika (20 procent całego obszaru danych). W tym momencie silnik obniży automatycznie swoją szybkość obrotową. Zastosowanie takiego mechanizmu pozwala na utrzymanie stosunkowo dużych szybkości transmisji, które nie będą jednak zbyt wyraźnie odbiegać od wartości średniej. Źródła błędów Istnieje bardzo wiele źródeł błędów odczytu płyt CD. Jeśli w trakcie procesu produkcyjnego do szklanej matrycy dostanie się kurz lub w tworzywie budującym płytę powstaną pęcherzyki powietrza, to możemy spodziewać się utraty całych bloków danych. Z tego też względu, aby mechanizm korekcji błędów miał większą swobodę działania, dane zapisane na płycie CD są trochę rozproszone. Jeżeli uszkodzeniu uległo mniej niż 450 kolejnych bajtów, to istnieje możliwość ich zrekonstruowania. Producent kompaktów sprawdza więc, jak dużo fizycznych błędów odczytu posiadają nowo wyprodukowane płyty. Niemal standardowym parametrem kompaktu jest więc maksymalna liczba błędów przypadających na sektor (BLER, Block Error Rate). Wartość ta ROZDZIAŁ 3. PAMIĘĆ 40 jest jednak z reguły ustalana w zupełnie dowolny sposób. Zwykle jako maksymalną dopuszczalną wielkość parametru BLER przyjmuje się liczbę 220. Przy korekcji błędów decydujące znaczenie ma fakt, w którym miejscu i w jakiej grupie pojawiła się usterka. W normalnym przypadku elektroniczny układ korygujący może bez problemu naprawić błędy na nośniku o wartości BLER 220. Jeśli jednak na powierzchni takiej płyty znajdą się dodatkowo rysy lub zabrudzenia, prawidłowy odczyt danych może być niemożliwy Z uwagi na istnienie mechanizmu korekcji błędów odtwarzacze kompaktowe są stosunkowo mało czułe na zabrudzenia powierzchni. Kolejna zaleta wynika bezpośrednio z praw fizyki. Ognisko strumienia laserowego jest położone stosunkowo daleko od powierzchni (ok. 1,2 mm). W ten sposób - na podstawie praw optyki - minimalizowany jest negatywny wpływ zanieczyszczeń nośnika. Zabrudzenia te są bowiem na tyle nieostre, że praktycznie stają się niewidoczne. Zjawisko to można wykorzystywać tylko w pewnych granicach. Plama o powierzchni zaledwie jednego milimetra kwadratowego przykrywa bowiem ponad 230 kilobajtów informacji! Kolejnym źródłem błędów odczytu kompaktów są same napędy. Nawet najlepsze układy mechaniczne nie zawsze zapewniają dostęp do właściwego miejsca na dysku. Silnik wprawiający płytę CD w ruch obrotowy nie pracuje przez cały czas z identyczną szybkością obrotową. Także niektóre dyski kompaktowe nie są idealnie wycentrowane. Tendencja do minimalizowania kosztów skłania ponadto wielu producentów do stosowania w napędach tanich układów mechanicznych, nie dorównujących precyzją droższym rozwiązaniom. We wszystkich tych sytuacjach prawidłowy odczyt danych jest możliwy tylko dzięki istnieniu elektronicznego układu korekcji błędów. 3.12.3 Pamięć optyczna (CD-R) Jeszcze kilka lat temu istniał poważny problem dotyczący pamięci masowych. Wymagania pojemnościowe stawały się coraz większe, a tradycyjne nośniki kosztowały ogromne sumy, nie zapewniając wymaganej wydajności i efektywności. W odpowiedzi na oczekiwania użytkowników pojawiły się płyty CD-R, które w krótkim czasie stały się niezmiernie popularne. Oferując dużą pojemność (650 MB), przy rozsądnym koszcie nagrania, były praktycznie bezkonkurencyjne. W ciągu kilku lat ilość sprzedawanego sprzętu i wciąż rosnący popyt pozwolił obniżyć ceny urządzeń nagrywających tak, by stały się dostępne dla przeciętnego użytkownika. Do momentu powstania płyty CD-R ”kompakty” tłoczono w całości, nie było więc potrzeby, by na płycie znajdowała się więcej niż jedna sesja. W momencie powstania nośników CD-R możliwy stał się zapis informacji partiami. Każda partia danych zapisana na płycie nosi nazwę sesji. Sesja może się składać z jednej lub kilku ścieżek w tym samym bądź różnym formacie. Dobrym przykładem, pozwalającym zrozumieć różnicę pomiędzy sesją a ścieżką, jest płyta CD-DA. Każdy utwór nagrany na takiej płycie jest ścieżką, a zbiór wszystkich utworów stanowi jedną sesję. Konieczność jednorazowego zapisania całej sesji implikuje wymóg doprowadzenia do urządzenia nagrywającego równomiernego strumienia danych. W razie przerwy w dopływie danych nośnik zwykle zostaje trwale uszkodzony. Zapewnienie ciągłego strumienia danych w praktyce może się okazać wyjątkowo trudne. Stąd zaleca się wyłączenie podczas nagrywania funkcji oszczędzania energii, mogących doprowadzić do spowolnienia procesora lub ”uśpienia” dysku. Warto również powstrzymać się w tym czasie od jakiejkolwiek pracy z innymi aplikacjami oraz zadbać o zamknięcie wszystkich zbędnych programów zwykle pracujących w tle, jak np. wygaszacza ekranu czy sterowników sieciowych. Co prawda, wydajność współczesnych komputerów, szybkie procesory i dyski o dużym transferze w dużej mierze eliminują te niedogodności, nawet w przypadku pracy pod kontrolą wielozadaniowych systemów operacyjnych. Zawsze jednak istnieje możliwość zakłócenia strumienia danych i w konsekwencji zniszczenia nagrywanej właśnie płyty. Milowym krokiem w stronę rozwiązania tego problemu jest technologia zapisu pakietowego - Incremental Packet Writing. ROZDZIAŁ 3. PAMIĘĆ 41 Zapis pakietowy Universal Data Format definiuje pakietowy sposób zapisu danych. W przypadku napędów CD-R możemy mieć do czynienia z czterema wielkościami pakietów nagrywanych bez wyłączania lasera zapisującego. Największym możliwym do nagrania blokiem danych jest cały dysk. Tryb Disk at Once polega na ciągłym zapisie wielu ścieżek. W drugim przypadku - Track at Once - laserowa głowica jest wyłączana po zapisaniu każdej ścieżki. Stwarza to wprawdzie konieczność oddzielenia ich dodatkowymi krótkimi blokami (run-in/run-out), lecz pozwala na zapis poszczególnych ścieżek w odstępach czasowych (umożliwiających uzupełnienie danych w buforze). Trzecim z trybów jest Session at Once, czyli zapis sesji lub płyty w kilku podejściach, z możliwością kontroli odstępów (bloków run-in/run-out) pomiędzy poszczególnymi ścieżkami. Największą elastyczność daje jednak zmniejszenie wielkości pakietu do minimum, jak ma to miejsce w przypadku przyrostowego zapisu pakietowego (Incremental Packet Writing). Po raz pierwszy rozwiązanie to zastosowano w modelu JVC XR-W2010. Polega ono w przybliżeniu na tym, że nagranie małych porcji danych nie wymaga zakończenia sesji czy płyty. Dopuszczalne są dowolnie długie odstępy czasu oddzielające nagranie poszczególnych pakietów. Płytę do zapisu pakietowego należy najpierw przygotować w urządzeniu CD-R (”sformatować”). By możliwy był odczyt takiej płyty, trzeba zastąpić interpreter obrazu ISO 9660 (np. MSCDEX) sterownikiem obsługującym format ISO 9660 Level 3. Innym sposobem, stosowanym w programach obsługujących nagrywanie pakietowe, jest zakończenie ”sesji pakietowej”, a więc zapisanie nagłówków dotyczących ostatecznej informacji w sposób zgodny z ISO 9660. Po takim zabiegu płyta jest czytana we wszystkich urządzeniach CD-ROM, a rozpoczęcie następnej sesji pakietowej wymaga ponownego ”sformatowania” kolejnej ścieżki (informacji na temat zapisu pakietowego szukaj na CHIP CD 12/96). 3.12.4 Pamięć optyczna (CD-RW) Płyty CD-R doskonale spełniały swe zadanie w przypadku długoterminowego składowania danych, okresowych archiwizacji, a nawet niskonakładowych publikacji. Ich jedyną wadą był brak możliwości wielokrotnego zapisu. Uniemożliwiało to swobodne przenoszenie danych, jak w przypadku dyskietek i ograniczało nieco krąg możliwych zastosowań. Potrzebne było nowe rozwiązanie i tak powstało CD-RW będące naturalnym rozwinięciem technologii CD-R. CDRW posiada możliwość wielokrotnego kasowania zawartości płyty i nagrywania jej od nowa. Nośnik prawie niczym nie różni się od zwykłej płyty CD-ROM, pozwala zapisywać dane w takich samych formatach, jak CD-R i jest odczytywany przez większość nowych czytników. Struktura krążka CD-RW Zasadniczą i najpoważniejszą nowością jest wewnętrzna struktura płyty CD-RW. Aby przystosować płytę do zapisu zmiennofazowego, należało stworzyć nośnik o odmiennych właściwościach chemicznych. Warstwa nagrywana jest teraz zbudowana ze stopu czterech pierwiastków (srebro, ind, antymon, tellur). Posiada ona zdolność zmiany przezroczystości zależnie od mocy padającej na jej powierzchnię wiązki lasera. Absolutnym novum jest, oczywiście, fakt, że zmiany powierzchni płyty spowodowane nagrywaniem są odwracalne. Oznacza to, że wypalony i nieprzezroczysty punkt może pod wpływem działania światła o specjalnie dobranym natężeniu zmienić swoje własności i stać się przezroczystym. Warstwa główna jest otoczona z obu stron powłokami materiału dielektrycznego, który ma za zadanie poprawienie odprowadzania ciepła z nośnika. Staje się to bardzo istotne, gdyż skumulowane ciepło mogłoby skasować wcześniej zapisane na płycie informacje. Najdalej od głowicy lasera leży warstwa srebra, która jest właściwym elementem odbjającym światło. Również nieco inny jest mechanizm nanoszenia zmian na płytę. Elementem umożliwiającym kasowanie i powtórny zapis danych na dysku CD-RW jest laser o zmiennej mocy. Standardowe nagrywarki CD-R mogły emitować wiązkę światła o dwóch różnych natężeniach: bardzo małym - tylko do odczytu i w żaden sposób nie zmieniającym struktury nośnika - oraz bardzo dużym - służącym do ROZDZIAŁ 3. PAMIĘĆ 42 miejscowego i gwałtownego podniesienia temperatury warstwy głównej. Jeśli punkt na płycie został naświetlony podczas nagrywania laserem dużej mocy, w warstwie nośnika zachodziły odpowiednie reakcje i stawała się ona nieprzezroczysta. Przez obszar nie naświetlony laserem dużej mocy światło mogło nadal bez przeszkód docierać do warstwy refleksyjnej. W przeciwieństwie do swojego poprzednika nośnik CD-RW, dzięki specjalnemu składowi, reaguje całkowicie odmiennie na wiązkę światła o średniej mocy. Naświetlenie nią punktu powoduje odwrócenie ewentualnych wcześniejszych zmian i przywrócenie płycie stanu początkowego. Zmiennofazowa technika zapisu umożliwia również bezpośrednie nadpisywanie danych bez wstępnego czyszczenia przeznaczonego dla nich miejsca. Przyspiesza to całą operację, gdyż jeśli konieczne byłoby uprzednie usunięcie zawartości (tak jak to jest np. w nośnikach magnetooptycznych), każda operacja musiałaby przebiegać dwukrotnie. Zabieg powtórnego zapisu może być wykonywany wielokrotnie. Jednak wbrew niektórym przekonaniom, istnieje granica wytrzymałości nośnika. Zazwyczaj wynosi ona około tysiąca cykli nagraniowych. Nie jest to oszałamiająco dużo, ale zakładając, że daną płytę kasuje się raz w tygodniu, zostałaby ona zniszczona dopiero po 19 latach nieprzerwanego użytkowania. Raczej nie jest możliwe, aby jakikolwiek produkt cieszył się popularnością przez 20 lat. Trzeba zdać sobie sprawę, że za kilka lat z pewnością zostanie wynaleziony nowy sposób przechowywania danych i CD-RW straci swoją pozycję. Nieuniknione zmiany musiały dotknąć także samych urządzeń nagrywających, są one jednak minimalne. Główne modyfikacje przeprowadzono w elektronice, a korekty układu optycznego są bardzo nieznaczne. Dzięki temu nagrywarki CD-RW są w stanie bez żadnych problemów nagrywać zwykłe krążki CD-R. Taka własność czyni je urządzeniami uniwersalnymi. Niewielkie różnice sprzętowe powodują także, że cena nagrywarki CD-RW jest tylko minimalnie wyższa od ceny standardowej nagrywarki (CD-R). Sprawa zgodności Zawsze, gdy na rynku pojawia się nowy nośnik danych wypływa problem kompatybilności z dotychczas wyprodukowanymi i zainstalowanymi odtwarzaczami. Niestety dotknął on również płyt CD-RW, które nie są czytane przez starsze napędy CD-ROM-ów. Związane jest to z o wiele mniejszym natężeniem światła odbijanego od powierzchni płyty i wracającego do czytnika. W przypadku zwykłego, tłoczonego CD odbijane jest ok. 65% światła, a w CD-RW - tylko 25%. Aby umożliwić zwykłym napędom CD-ROM odczyt danych z płyty wielokrotnego zapisu, stworzono elektroniczny mechanizm, wzmacniający sygnał detektora odbitych promieni lasera. Czytniki, które posiadają taki system, otrzymują miano zgodnych ze standardem Multi-Read (MR). W chwili obecnej wszystkie napędy potrafią odczytać płyty CD-RW. Niewątpliwą przewagą nad płytami CD-R jest to, że CD-RW są kompatybilne z DVD. Zainstalowany tam laser generuje fale o długości 650 nm, podczas gdy w standardowym CD-ROM-ie - 780 nm. Z powodu tej różnicy i specyficznej struktury, CD-R nie będą odczytywane przez większość napędów DVD. Natomiast CD-RW nie są czułe na taką zmianę długości fali lasera i ten problem się nie pojawi. 3.12.5 Pamięć optyczna (DVD) Swoim wyglądem płyta DVD bardzo przypomina tradycyjny nośnik CD-ROM. Część producentów określa nowe krążki jako ”Digital Video Disk”, inni z kolei podkreślają ich uniwersalność za pomocą ”Digital Versatile Disk”. Ten nazewniczy bałagan jest nieodłącznie związany z tworzeniem nowego standardu. Wokół ustalenia końcowej wersji specyfikacji DVD toczą się od lat nieustanne dyskusje i trwa ostra rywalizacja. Standard DVD opracowany został przez specjalne konsorcjum, które utworzyła grupa firm z branży elektronicznej. Członkami tego gremium są Hitachi, JVC, Matsushita, Mitsubishi, Philips, Pioneer, Sony, Thomson, Time Warner i Toshiba. Wspólnym celem wymienionych firm jest rozpowszechnienie na rynku nowego standardu oraz zapewnienie przestrzegania założeń technicznych stworzonej specyfikacji. ROZDZIAŁ 3. PAMIĘĆ 43 Nośniki DVD powinny w przyszłości wyprzeć z rynku płyty kompaktowe i taśmy wideo. Przejście ze standardu CD na DVD będzie łatwe dzięki zachowaniu kompatybilności w dół odtwarzacze DVD czytają płyty CD. Główną zaletą nowych nośników jest duża pojemność - w zależności od typu płyty można na nich zapisać do 17GB informacji, a więc niemal 27 razy więcej niż w przypadku tradycyjnych kompaktów. Tak dobre wyniki udało się uzyskać między innymi poprzez zastosowanie nowej techniki dwuwarstwowej wykorzystującej półprzepuszczalny materiał, z którego wykonana jest górna warstwa. Jeśli mają być odczytywane dane z dolnej warstwy, zmieniana jest długość fali światła laserowego, które dzięki temu może przeniknąć głębiej. Aby przełączanie pomiędzy warstwami następowało płynnie i bez zakłóceń, pierwsza warstwa odczytywana jest od środka na zewnątrz dysku, a druga w kierunku przeciwnym. Dzięki temu w momencie przełączenia pomiędzy warstwami nie zachodzi potrzeba szybkiej zmiany położenia lasera ani prędkości obrotowej dysku. Ponadto dla zachowania płynności odczytu wprowadzono pamięć buforową. Jeżeli takie same warstwy zostaną umieszczone również na odwrotnej stronie krążka, wówczas powstanie dwustronna, dwuwarstwowa płyta zdolna pomieścić 17 GB danych, czyli niemal 27 razy więcej niż zwykły CD. Oczywiście, nie wszystkie płyty muszą być 17-gigabajtowymi olbrzymami. Dla większości współczesnych zastosowań w zupełności wystarczy jednostronny, jednowarstwowy DVD - 4,7 GB pozwala zapisać ponaddwugodzinny film wideo wysokiej jakości w standardzie MPEG-2. Pod względem przeznaczenia płyty DVD dzielimy na trzy grupy: DVD-ROM, DVD-Audio i DVD-Video. Nowe nośniki możemy również pogrupować według ich pojemności 4,7-17GB. DVD-ROM Urządzenia odczytujące DVD są kompatybilne z płytami CD-ROM i zapisywalnymi kompaktami. Aby móc odtwarzać te nośniki danych, czytniki DVD zostały wyposażone w specjalne laserowe układy próbkujące. Głównym obszarem zastosowań płyt DVD są filmy wideo w formacie MPEG2. Kolejną możliwość wykorzystania tych nośników stanowią zaawansowane gry, które zajmują kilka standardowych płyt CD-ROM. Aby utrudnić nielegalne kopiowanie, płyty Video DVD będą sprzedawane wraz z kodem kraju pochodzenia (Area Code), w związku z czym będzie je można odczytywać tylko na kompatybilnych odtwarzaczach. W konsekwencji amerykańskie krążki nie będą działały w europejskich napędach, co z pewnością znacznie ograniczy możliwość rozpowszechnienia się standardu DVD. Na rynku dostępne są obecnie następujące rodzaje płyt DVD-ROM: Single Layer, Single-Sided, 4,7 GB (odpowiada to 135 minutom filmu wideo w formacie MPEG); Dual Layer, Single-Sided, 8,5 GB (około 240 minut); Single Layer, Double-Sided, 9,4 GB (około 270 minut); Dual Layer, Double-Sided, 17 GB (około 480 minut). DVD-RAM Znacznie ciekawszą propozycją jest DVD-RAM, który, podobnie jak technologia CD-RW, pozwala na wielokrotny zapis nośnika. W lipcu 1997 roku DVD Forum (Hitachi, Kodak, Panasonic, Mitsubishi, Philips, Pioneer, Sony, Thompson, Toshiba i JVC) opracowało standard pozwalający zapisać 2,6 GB danych na jednej stronie płyty DVD-RAM (5,2 GB dwustronnie). Według zapewnień producentów płyty DVD-RAM mogą być zapisywane nawet 100 tysięcy razy. Tymczasem pod koniec 1997 roku Sony, Philips i Hewlett-Packard zaprezentowały własny format DVD+RW, zapewniający pojemność 3 GB, który jest niekompatybilny z poprzednim standardem. Niedługo później NEC przedstawił swoją koncepcję, pozwalającą zapisać do 5,2 GB. Jednak dzisiaj produkowane są jedynie urządzenia pracujące w ”oryginalnym” standardzie DVD-RAM. ROZDZIAŁ 3. PAMIĘĆ 44 Podczas produkcji płyty DVD-RAM na jej powierzchni tworzone są rowki (grooves) oddzielone od siebie wypukłymi polami (lands). Również w trakcie wytwarzania na określonych obszarach powstają nagłówki sektorów (sector headers). Zapis danych, wykorzystujący technologię zmiany fazy, odbywa się zarówno w obszarze rowków, jak i pól. Dzięki takiemu ukształtowaniu powierzchni odnalezienie właściwej ścieżki jest znacznie łatwiejsze niż w przypadku napędów CD-ROM, ponieważ krawędzie pomiędzy obszarami wykorzystywane są jako punkty orientacyjne. Granica między rowkiem a polem jest dodatkowo pofalowana, co w trakcie wirowania płyty jest źródłem sygnału informacyjnego, pozwalającego precyzyjniej ustawić głowicę lasera i zmniejszyć poziom błędów odczytu. Podstawową wadą tej odmiany DVD jest brak zgodności z innymi standardami - płyty DVD-RAM nie mogą być odczytywane w tradycyjnych odtwarzaczach DVD-ROM, które wymagają wyższego współczynnika odbijania światła. Niemniej możliwości wykorzystania płyt DVD-RAM nie ograniczają się do archiwizacji danych. Ich ogromną zaletą jest to, że w wielu sytuacjach mogą pełnić funkcję superszybkich, łatwych w obsłudze dyskietek o ogromnej pojemności. Ponieważ napędy DVD-RAM czytają również płyty DVD-ROM, można się spodziewać, że ich popularność w niedalekiej przyszłości znacznie się zwiększy. Obecnie dostępne są następujące rodzaje płyt DVD-RAM: Single Layer, Single-Sided, 2,6 GB; Single Layer, Double-Sided, 5,2 GB. DVD-Video Z uwagi na fakt, że płyta DVD ma wystarczająco dużą pojemność, pozwalającą na zapisanie całego filmu wraz z kilkoma wersjami dźwięku i napisów, przemysł filmowy od samego początku wykazywał duże zainteresowanie nowym nośnikiem. Jakość przechowywanego w ten sposób obrazu i dźwięku jest znacznie wyższa niż w przypadku tradycyjnych taśm wideo. Niestety, nawet na płycie DVD zapisywanie całych filmów jest możliwe tylko dzięki zastosowaniu zaawansowanych metod kompresji. O ile dla krążków DVD-ROM za wystarczającą uznaje się technikę programową MPEG-1 (rozdzielczość 353x240 pikseli, współczynnik kompresji 1:30), o tyle do odtwarzania filmów wideo konieczne jest już użycie sprzętowego mechanizmu MPEG-2. Standard ten akceptuje obraz o rozdzielczości 720x480 pikseli i umożliwia uzyskanie współczynnika kompresji nawet 1:200. DVD-Audio Innym obszarem zastosowań nośników DVD jest branża audio. Tradycyjna płyta CD pozwala na zapisanie 70 minut dźwięku w systemie stereo. Ponieważ przyjmuje się, że ludzkie ucho jest w stanie usłyszeć dźwięk w zakresie częstotliwości do 22kHz, zgodnie z twierdzeniem Shannona jako maksymalny zakres przyjmuje się wartość dwukrotnie wyższą, czyli 44,1kHz. Częstotliwość próbkowania — zapisu analogowego dźwięku w postaci cyfrowej — wynosi zatem 44,1kHz, a głębia - 16bitów. Nowy standard DVD-Audio ma — podobnie jak DVD-Video — oferować dźwięk Surround, znacznie wzbogacający odbiór nagrań koncertowych. W przyszłości na rynku ma również pojawić się standard Super-Audio, który umożliwi odtwarzanie dźwięku z częstotliwością próbkowania 96kHz i 24-bitową głębią. Dzięki temu nośniki DVD będą mogły uzyskać to, co według muzycznych koneserów nie jest możliwe w przypadku tradycyjnych kompaktów – dostęp do profesjonalnego rynku audio (high-end). Jest jednak mało prawdopodobne, by przeciętny śmiertelnik był w stanie rozpoznać jakąkolwiek różnicę jakości dźwięku w stosunku do płyty CD. Na nośniku DVD wszystkie dane — tak jak na kompakcie CD — zapisane są na jednej spiralnej ścieżce. Poszczególne informacje mają postać niewielkich zagłębień na aluminiowej, ROZDZIAŁ 3. PAMIĘĆ 45 lustrzanej powierzchni płyty (tzw. pits). Jeśli podczas odczytu strumień lasera natrafi na obszar pomiędzy zagłębieniami (tzw. land), to ulegnie on odbiciu. W przypadku obszarów Pit następuje natomiast takie odchylenie promienia, że nie trafia on już do specjalnego fototranzystora, pełniącego funkcję odbiornika sygnału. Poszczególne obszary na płycie są więc interpretowane przez czytnik odpowiednio jako ”1” lub ”0”. W celu uzyskania większej pojemności konstrukcja nośnika DVD - w porównaniu z płytą CD - została w kilku miejscach istotnie zmieniona. Płyta DVD składa się z dwóch sklejonych ze sobą dysków, z których każdy pozwala na dwustronny zapis danych. Z uwagi na fakt, że nie zawsze wykorzystywane są wszystkie możliwości nowego nośnika, istnieją cztery odmiany płyty DVD, różniące się pojemnością. Przykład: 4 schematy struktury DVD. Dzięki zastosowaniu znacznie mniejszych struktur danych na jednej stronie pojedynczego dysku DVD można zapisać ponad siedem razy więcej informacji niż w przypadku tradycyjnego kompaktu. Minimalną długość obszaru Pit ograniczono bowiem z 0,83 (płyty CD) do 0,4 mm. Również ścieżki danych zostały umieszczone bliżej siebie - odległość tę zmniejszono z 1,6 do 0,74 mikrometra. Aby przy tak dużej gęstości zapisu istniała możliwość poprawnego odczytu danych, do obsługi płyt DVD wykorzystywane są lasery o mniejszej długości fali. O ile w standardowym napędzie CD-ROM używany jest laser podczerwony (długość fali 780 nanometrów), o tyle do odczytu płyt DVD wykorzystuje się czerwony laser o długości fali 640 nm. W przypadku płyty dwuwarstwowej dane zapisywane są po obu stronach dysków składowych. Górna warstwa nośnika ma półprzepuszczalną powierzchnię, co umożliwia odczytywanie dwóch warstw płyty za pomocą tego samego, odpowiednio ogniskowanego układu optycznego. Dane zapisane na dolnej warstwie mogą być albo odczytywane równolegle z górną (cyklicznie zmieniana jest wtedy ogniskowa promienia laserowego), albo głowica czytnika przeczyta najpierw dane z jednej ścieżki (od środka na zewnątrz), a potem z drugiej (od zewnątrz do środka). W ten sposób możliwy jest nieprzerwany odczyt obrazu wideo zapisanego na obu warstwach płyty. Dwuwarstwowe krążki DVD można poznać po złotym kolorze nośnika oraz umieszczonych na jednej stronie dwóch numerach seryjnych. W celu uzyskania maksymalnej pojemności 17 gigabajtów należy skleić ze sobą dwa dyski dwuwarstwowe. Do nagrania czterogodzinnego filmu wystarcza już jednak jednostronny, dwuwarstwowy nośnik DVD o pojemności 8,5GB. Struktura sektora danych krążka DVD Sektor danych płyty DVD (2064 B) składa się z 12 ramek po 172 bajty każda i mieści 2052 bajtów danych. Pierwsza ramka zawiera 32-bitowy numer sektora, po którym następują dwa bajty wykorzystywane podczas korekcji błędów. Kolejnych sześć pól 8-bitowych zarezerwowano do wykorzystania w przyszłości. Ostatnich 160 bajtów pierwszej ramki i kolejnych 11 ramek to użyteczne dane zapisane na krążku. Przykład 3.3 Schemat sektora danych krążka DVD. 3.12.6 Technologia BURN-Proof Podczas wypalania kompaktów nie można przerwać pracy lasera w dowolnym momencie. Niewielki bufor pamięci RAM zamontowany w nagrywarce pozwala na kontynuowanie zapisu nawet podczas chwilowego zatrzymania dopływu danych. Jeżeli jednak w ciągu kilku sekund strumień znowu nie popłynie, bufor zostanie opróżniony, a proces wypalania - przerwany. Efektem tego błędu, powszechnie znanego jako ”buffer underrun”, w przypadku stosowania nośnika jednokrotnego zapisu (CD-R) jest zniszczenie płyty. ROZDZIAŁ 3. PAMIĘĆ 46 Niektóre przyczyny braku dopływu danych do bufora, powodujące przerwanie nagrania, są właściwie poza naszą kontrolą. Zaliczyć do nich można nie najlepiej zrealizowaną w Windows 9x wielozadaniowość, problemy z dostępem do sieci oraz wiele innych konfliktów dowolnych części wykorzystywanego komputera lub systemu. Z tego względu nagrywanie wymieniane jest często jako proces, podczas którego łatwo można stracić (bezpowrotnie zniszczyć) wykorzystany nośnik. Po wznowieniu zapisu przerwanego na skutek opróżnienia bufora między sektorami pozostaje mały odstęp. Nie ma to jednak żadnego wpływu na odczytywanie danych przez napędy CD-ROM. W napędach nowej generacji, gdzie zastosowano technologię BURN-Proof (skrót od Buffer UnderRuN Proof), nie ma problemów z dostarczaniem danych do bufora (np. odczytywaniem ich z dysku) i żadne zabezpieczenia nie są potrzebne. Wystarcza nawet niewielka pamięć podręczna napędu i popularny interfejs EIDE, a mimo to obsługa urządzenia jest tak prosta jak w przypadku napędu dyskietek. Mechanizm działania nowego sposobu zapisu nie jest skomplikowany. Od momentu rozpoczęcia nagrania stale sprawdzany jest poziom zapełnienia wewnętrznego bufora. Jeżeli dane przestaną napływać i napełnienie bufora spadnie poniżej 10% jego maksymalnej pojemności, znajdującą się tam resztkę informacji wykorzystuje się do doprowadzenia nagrania do wybranego miejsca na dysku – w praktyce do końca najbliższego sektora. Podczas gdy nagrywarka kontynuuje próby wyciągnięcia następnych danych z komputera i wypełnienia nimi swego bufora, obwody BURN-Proof określają miejsce na krążku, gdzie został zapisany ostatni sektor. Gdy go znajdzie, głowica lasera umieszczona zostaje w prawidłowym miejscu i oczekuje na napływ danych do bufora. Po jego ponownym wypełnieniu proces nagrywania zostaje wznowiony od następnego niezapisanego sektora. Sterowanie położeniem głowicy musi być jednak na tyle precyzyjne, aby nie dopuścić do powstania większego od określonego w ”pomarańczowej księdze” na sto mikrometrów (w praktyce zwykle około 40) odstępu pomiędzy sąsiadującymi sektorami. Pierwsze modele z nową technologią zostały zaprezentowane przez firmę Sanyo. Jej procesor sterujący pracą urządzenia, oprócz nowej technologii, wyróżnia się także obsługą wielu funkcji realizowanych w innych ”wypalarkach” przez dodatkowe układy i dlatego w pełni zasługuje na miano ”nagrywarkowego” chipsetu. Łatwo można wywnioskować, że z elementów wymaganych do obsługi nowej technologii trudniejsze było wykonanie wystarczająco precyzyjnej części mechanicznej napędu niż jego części elektronicznej. Warto jeszcze dodać, że swoje wersje systemów podobnych do BURNProofa wprowadziła na rynek firmy Yamaha (system Optimum Write Speed Control) i Ricoh (JustLink). O przyszłości napędów obsługujących nośniki optyczne świadczy następująca notka z PC WORLD KOMPUTER 12/2001, strona 20: ”Firma Hawlett-Packard kończy produkcję nagrywarek CD-RW. Koncern skupi się na nagrywarkach DVD. . . . Firma nie zaprezentuje kolejnych napędów CD-R/CD-RW, zaś produkcja starych modeli potrwa do pierwszych miesięcy przyszłego (tj. 2002 roku).” 3.12.7 Słowniczek Audio-CD w audio CD poszczególne utwore muzyczne pamiętane są na swojej własnej ścieżce. Chociaż taki muzyczny kompakt zawiera kilka ścieżek, nie jest bynajmniej CD wielosesyjnym, gdyż wszystkie te ścieżki zarządzane są przez jeden jedyny TOC. MultiSession CD zawierają jak wiadomo kilka TOC, powiązanych ze sobą odsyłaczami. Muzyczny TOC może pomieścić do 99 wpisów dla nagranych na audio CD utworów muzycznych. Bufor - obszar pamięci RAM okresowo przeznaczony na przechowywanie danych. ROZDZIAŁ 3. PAMIĘĆ 47 caddy - wyciągana na zewnątrz napędu płaska i zamykana szufladka chroniąca płytę CAV (Constant Angular Velocity) - stała prędkość obrotowa; technologia odczytu charakteryzująca się pracą ze stałą prędkością obrotową silnika napędu. Pozwala na uniknięcie zmian prędkości, ale dane zapisane bliżej środka płyty czytane są dużo wolniej niż na jej zewnętrznych krawędziach CD-Bridge specyfikacja zapisu informacji CD-I na dysku CD-ROM XA. Używany dla dysków Photo CD i VideoCD. CD-DA (Digital Audio) standardowy format zapisu muzyki. CD-Extra tryb zapisu Mixed Mode polegający na zapisywaniu ścieżek dźwiękowych na początku płyty. CD-I (CD Interactive) - system interaktywnej rozrywki bazujący na płytach CD. Ten format zapisu stosowany jest w tych CD, w których między odtwarzaniem dźwięku i ruchomych obrazów istnieć musi ścisła synchronizacja. CD-PLUS Standard kompaktów, w którym dane są zapisywane w dwóch sesjach. Pierwsza sesja zawiera dane audio, które mogą być także odczytywane przez zwykły odtwarzacz audio. W drugiej sesji znajdują się natomiast dane komputerowe, których odtwarzacz audio nie jest w stanie odczytać. CD-R (CD Recordable) - płyta CD, na której możliwy jest zapis za pomocą CD-Recordera. CD-ROM jest skrótem od Compact Disk Read Only Memory. Format ten definiuje sposób zapisu na CD danych komputerowych. CD-ROM XA (eXtended Architecture) - format zoptymalizowany pod kątem potrzeb multimediów. CD-UDF (CD Universal Data Format) - standard opisujący nagrywanie danych pakietami. CLV (Constant Linear Velocity) - stała prędkość liniowa; technologia polegająca na zmianie prędkości obrotowej płyty w zależności od umiejscowienia odczytywanych zbiorów; daje bardziej równomierną prędkość liniową odczytu, lecz pociąga za soba czasochłonną konieczność ciągłego rozpędzania i hamowania nośnika DAO ”disk at once” jest techniką zapisu, w której poszczególne ścieżki rejestruje się bezpośrednio jedna za drugą. Na końcach ścieżek znaczniki inicjujące (lead-in) i zamykające (lead-out) nie są zapisywane - czyli dokładnie na odwrót niż w przypadku track-at-once (patrz dalej). Disk at Once - metoda pozwalająca na ciągły zapis kilku ścieżek. Fixing czyli zamykanie CD, polega na zapisaniu znacznika zamykającego (lead-out) na końcu CD. Dopiero po zamknięciu dysk kompaktowy można odczytywać w dowolnym napędzie CD-ROM. Format Hybrid Umożliwia połączenie struktury katalogów HFS firmy Apple ze standardem ISO 9660. Helix dane na CD-ROM-ie zapisywane są zawsze wzdłuż spirali (helix), biegnącej od wnętrza płyty na zewnątrz. Aby na całej powierzchni dysku CD uzyskać stałe natężenie strumienia danych, prędkość obrotowa silnika wrzeciona musi być stale zmieniana w zależności od położenia głowicy zapisująco-odczytującej. Incremental Packet Writing - przyrostowy zapis pakietowy. Umożliwia nagranie danych małymi porcjami bez potrzeby zamykania sesji czy płyty. ROZDZIAŁ 3. PAMIĘĆ 48 Image jako ”image”, czyli obraz, określa się cyfrową kopię zawartości ścieżki. Specjalną jego formą jest ”ISO image” (obraz fizyczny), zawierający dokładne odwzorowanie ścieżki ISO-9660. Jeszcze inną postacią jest obraz zewnętrzny, który albo wytwarzany jest przez aplikację, albo odczytywany z CD. ISO 9660 (High Sierra) - norma opisująca niezależny od systemu operacyjnego hierarchiczny system plików na dysku CD-ROM. ISRC (International Standard Recording Code) - kod występujący na płytach CDDA na początku każdej ścieżki. Zawiera dane o prawach autorskich i dacie zapisu. Jouliet zestandaryzowany przez Microsoft system plików, bazujący na ISO 9660. Pozwala stosować nazwy plików o długościach do 64 znaków. Pliki te mogą być również odczytywane przez starsze wersje DOS-a i Windows. Kolorowe księgi Dla różnych zakresów zastosowań zdefiniowano normy, które zebrano w ”kolorowych” księgach. Czerwona Księga: audio CD; Zielona Księga: multimedialny CD (CD-I); Biała Księga wideo CD; Żółta Księga: CD dla danych; Niebieska Księga: mieszany CD (audio i dane). Lead-in, lead-out dwa znaczniki, określające początek i koniec jednej sesji. ”Lead-in” oznacza znacznik inicjujący, zaś ”lead-out” - znacznik zamykający. Mixed Mode Ścieżki danych oraz audio są zapisywane razem w ramach jednej sesji. Odtwarzacz Audio-CD rozpoznaje wówczas tylko ścieżki audio, ignorując napotkane dane komputerowe. Multi Session CD technika rejestracji, w której CD zapisywany jest w kilku sesjach. Zatem w trakcie jednej sesji wypalany jest tylko jeden fragment całej ścieżki danych. Aby po każdym procesie zapisywania wszystkie dotychczasowe dane można było jednoznacznie adresować na CD, każda sesja prócz właściwych danych użytkowych zawiera swój własny znacznik inicjujący (lead–in), TOC i znacznik zamykający (lead-out). Spisy treści (TOC) każdej z sesji powiązane są w łańcuch, dzięki czemu komputer, wychodząc od ostatnio zapisanego TOC, może dotrzeć do danych wszystkich poprzednich sesji. Wielką zaletą rejestracji wielosesyjnej jest to, że do CD można dopisywać dane kilkakrotnie, jednak za tę możliwość płaci się wysoka cenę. Pierwsza sesja zajmuje 23 megabajty na dane organizacyjne, każda następna - 15 megabajtów. Jeśli więc chcielibyśmy na CD zmieścić pełnych 650 megabajtów danych użytkowych, musimy jako metodę zapisu wybrać SingleSession. Multi Volume CD ta metoda zapisu jest szczególną odmianą MultiSession CD. Wprawdzie w przypadku dysków wielowoluminowych dane nagrywane są także w kilku sesjach, jednak odpowiednie oprogramowanie nie tworzy powiązań (link) pomiędzy poszczególnymi TOC. Dlatego każda sesja jest zamkniętą w sobie jednostką informacyjną (woluminem) na CD. Kompakty wielowoluminowe mają kilka wad: zwykłe napędy CD-ROM potrafią najczęściej odczytać tylko ostatnio zapisany wolumin. Dostęp do wszystkich woluminów zrealizować można wyłącznie w nagrywarce CD-ROM-ów, co zresztą wymaga zainstalowania specjalnego windowsowego sterownika, który każdy wolumin przypisuje do jednej litery napędu. Obraz ISO 9660 - plik zawierający dokładną kopię danych w postaci, w jakiej są zapisane na płycie CD. Obraz wirtualny - obraz plików i katalogów utworzony w pamięci komputera w sposób umożliwiający pobieranie ich z dysku podczas nagrywania płyty. ROZDZIAŁ 3. PAMIĘĆ 49 On the Fly technika rejestracji, w której zapisywane dane generowane są dopiero w trakcie procesu zapisywania. Stawia to przed komputerem i systemem operacyjnym wysokie wymagania, ponieważ podczas zapisywania otwieranych i zamykanych jest wiele plików. Overburning - ”powiększenie” płyty, polegające na przesunięciu i skróceniu czasu LeadOutu (pustego obszaru zamykającego sesję). Uzyskane w ten sposób miejsce wykorzystywane jest na ”upchanie” większej ilości danych na płycie. Żeby moć korzystać z overburningu, musimy posiadać nagrywarkę obsługującą tę funkcję. Photo-CD Płyty Photo-CD wykorzystują standard ISO 9660 rozszerzony o specyfikację ISO 9660 XA. Struktura tego typu kompaktów umożliwia zapisywanie obrazu. Aby komputer miał dostęp do wszystkich sesji płyty Photo-CD, potrzebny jest wielosesyjny napęd CD. Płyta jednosesyjna (Single-Session CD) Kompakt taki wykorzystuje pojedynczą ścieżkę danych zgodną ze standardem ISO 9660. Na nośniku można umieszczać obok siebie dane komputerowe i audio; mówimy wówczas o płycie Mixed-Mode CD. Każdy napęd CD-ROM jest w stanie odczytywać płyty Single-Session CD. Płyty wielosesyjne - nośniki, na których informacje umieszczone są w kilku kolejnych sesjach zapisu; po każdym kolejnym nagraniu spis treści krążka uaktualniany jest nowymi pozycjami, co pozwala na bezpośredni dostęp do całej zawartości Romeo - sposób zapisu długich nazw Windows 95. Nazwa zbioru może mieć do 128 znaków i jest konwertowana na duże litery. Single Session CD w tej metodzie zapisu wszystkie dane zapisywane są na CD-ROM-ie ”za jednym zamachem”. Po zakończeniu procesu wypalania złoty krążek jest raz na zawsze zamknięty, co oznacza, że w przyszłości nie będzie można do niego dopisać żadnych nowych danych. Zapisana na SingleSession CD informacja rozpoczyna się od znacznika inicjującego (lead-in), po którym następuje TOC, właściwe dane oraz znacznik zamykający (lead-out). Sektory Run-Out Z powodu opóźnienia przy wyłączaniu lasera zapisującego na końcu danego fragmentu danych lub ścieżki powstają zawsze dwa uszkodzone sektory. W trybie Track-at-Once sektory te tworzą się po każdej ścieżce, natomiast w trybie Discat-Once - nie. Sesja (Session) Specyfikacja Orange Book określa tą nazwą obszar ograniczony polami LIA i LOA. Płyta kompaktowa może zawierać maksymalnie 99 sesji, ale zwykle ma ich znacznie mniej. Session at Once - sposób zapisu płyty w kilku podejściach z możliwością kontroli odstępów (bloków run-in/run-out) pomiędzy ścieżkami. Ścieżka (Track) Logiczna jednostka danych na płycie kompaktowej. Ścieżka może zawierać albo dane komputerowe (CD-ROM, XA), albo muzykę (CD-DA). Minimalna długość pojedynczej ścieżki wynosi 600 sektorów. Przed każdą ścieżką musi znajdować się 150 pustych sektorów (około 2 sekund nagrania na płycie audio), które w przypadku pierwszej ścieżki są przeznaczone na obszar TOC. W trybie zapisu Disc-at-Once jedynie pierwsza ścieżka musi zawierać 150 pustych sektorów. SAO (Session At Once) - tryb nagrywania w jednej sesji bez wyłączania lasera. Pomiędzy ścieżkami nie ma żadnych przerw. W odróżnieniu od trybu DAO następne sesje mogą być dodane później. TAO (Track-At-Once) - tryb zapisu polegający na zapisywaniu jednorazowo pojedynczej ścieżki. W przypadku CD z danymi różnica w stosunku do ”disk at once” jest niewielka. W CD dźwiękowych TAO wstawia po każdej ścieżce dwusekundową przerwę. ROZDZIAŁ 3. PAMIĘĆ 50 Przy samodzielnym nagrywaniu kompaktów muzycznych powoduje, iż między kolejnymi utworami występuje niepożądana często przerwa. W przerwach pomiędzy wypalaniem kolejnych ścieżek komputer przygotowuje następną porcję danych do nagrywania kolejnej ścieżki. Za każdym razem, gdy laser kończy pracę, wypala dwa bloki wyjściowe (tzw. Run-Out blocks). Wraz ze wznowieniem pracy nagrywane są jeszcze dwa dodatkowe bloki wejściowe (tzw. Run-In blocks). Powstałe w ten sposób dodatkowe bloki są ignorowane przez normalne odtwarzacze CD-ROM i nie powodują ujemnych skutków transmisji danych, jednak niektóre urządzenia audio mogą odtworzyć tę przerwę jako pojedynczy ”klik”. Dlatego też preferowaną metodą nagrywania płyt audio jest tryb Disc-At-Once. TOC (Table of Contents) - spis zawartości płyty; zawiera wszystkie informacje na temat liczby zapisanych ścieżek, ich długości i zajmowanego obszaru. Track oznacza tyle co ”ścieżka” i mylony jest często z określeniem ”sesja”. W przypadku CDROM pod pojęciem ścieżki rozumie się tę część spirali danych, która zawiera informacje użyteczne i adresowana jest przez TOC - odnosi się to zarówno do dysków jedno-, jak i wielosesyjnych. Track at Once - metoda zapisu, w której laser jest wyłączany po zapisaniu każdej ścieżki. Stwarza to konieczność zapisu dodatkowych bloków (run-in/run-out) pomiędzy ścieżkami, lecz pozwala na zapis poszczególnych ścieżek w odstępach czasowych (kiedy np. potrzebny jest czas na dostarczenie danych do bufora). UDF (Universal Disc Format) - format, który może być używany przy zapisie płyt CDR/CD–RW/DVD metodą pakietową.. UPC (Universal Product Code) - 13-cyfrowy kod płyty, który może zostać zapisany w TOC. Wielosesyjność (Multi-Session) Jest to możliwość zapisania na jednym kompakcie kilku zestawów danych (tzw. sesji) w ramach różnych cykli nagrywania. Do odczytu wielosesyjnego kompaktu potrzebny jest kompatybilny napęd CD oraz odpowiedni sterownik. Nowe napędy CD-ROM i ich sterowniki nie sprawiają pod tym względem żadnych problemów. Write Test - test zapisu przeprowadzany przy zmniejszonej mocy lasera. Pozwala zoptymalizować parametry zapisu w warunkach identycznych do prawdziwego zapisu. Zamknięcie sesji (Closing Session) Pecet może odczytywać płytę CD tylko wtedy, gdy sesja nagrywania została zakończona (utrwalona). Dotyczy to zarówno do płyt SingleSession jak i Multi-Session. Zapis pakietowy - metoda nagrywania polegająca na zapisie małych fragmentów danych (pakietów). Oprogramowanie obsługujące zapis pakietowy potrafi nagrać dane z wykorzystaniem dowolnego menedżera plików. Rozdział 4 Magistrale 4.1 Wprowadzenie Magistrala jest drogą zapewniającą komunikację między urządzeniami. Główną cechą charakterystyczną magistrali jest to, że jest ona wspólnym nośnikiem transmisji. Do magistrali dołącza się wiele urządzeń, a sygnały wysyłane przez którekolwiek z nich mogą być odbierane przez wszystkie pozostałe urządzenia. Oczywiście dwa urządzenia nie mogą nadawać w tym samym czasie, gdyż ich sygnały wzajemnie zakłócałyby się; w określonym czasie może więc nadawać tylko jedno urządzenie. Często magistrala składa się z wielu dróg/linii komunikacyjnych. Każdą linią mogą być przesyłane sygnały reprezentujące binarne 0 i 1. W ciągu pewnego czasu przez pojedyńczą linię może być przekazana sekwencja cyfr binarnych. Kilka lini zawartych w magistrali można wykorzystywać razem do jednoczesnego (równoległego) transmitowania bitów. System komputerowy zawiera pewną liczbę różnych magistral, które łączą zespoły komputera na różnych poziomach hierarchii. Magistrala łącząca główne zespoły komputera (procesor, pamięć, wejscie-wyjście) nazywana jest magistralą systemową. 4.2 Struktura magistrali Magistrala systemowa składa się z kilkudziesięciu oddzielnych linii. Każdej linii jest przypisane okerślone znaczenie lub funkcja. Linie wchodzące w skład magistrali systemowej można podzielić na trzy grupy funkcjonalne: linie danych, sdresów i sterowania. Linie danych są ścieżkami służącymi do prznoszenia danych między modułami systemu. Linie te określa się łącznie jako szyna danych. Liczba linii wchodzących w kład szyny danych określa jej szerokość. Ponieważ w danym momencie każda linia może przenosić tylko 1 bit, z liczby linii wynika, ile bitów można jednocześnie przenosić. Szerokość szyny danych jest kluczowym czynnikiem określającym wydajność całego systemu. Jeśli na przykład jej szerokość wynosi 8 bitów, a każdy rozkaz ma długość 16 bitów, to procesor musi łączyć się z modułem pamięci dwukrotnie w czasie każdego cyklu rozkazu. Linie adresowe są wykorzystywane do określania źródła lub miejsca przeznaczenia danych przesyłanych magistralą. Jej szerokość determinuje maksymalną możliwą pojemność pamięci systemowej. Ponadto linie adresowe są również używane do adresowania portów wejscia/wyjscia. Linii sterowania używa się do sterowania dostępem do linii danych i linii adresowych a także do sterowania ich wykorzystaniem. Ponieważ linie adresowe i danych służą wszystkim zespołom, musi istnieć sposób sterowania ich używaniem. Sygnały sterujace przekazywane między modułami systemu zawierają zarówno rozkazy, jak i informacje regulujące czas (taktujące). Sygnały czasowe określają ważność danych i adresów. Sygnały rozkazów prezyzują operacje, które mają być przeprowadzone. Typowe linie sterowania to linie: 51 ROZDZIAŁ 4. MAGISTRALE 52 Zapis w pamięci. Sprawia, że dane z magistrali zostają zapisane pod określonym adresem. Odczyt z pamięci. Sprawia, że dane spod określonego adresu są umieszczane w magistrali. Zapis do wejścia/wyjścia. Sprawia, że dane z magistrali są kierowane do zaadresowanego portu wejścia/wyjścia. Odczyt z wejścia/wyjścia. Sprawia, że dane z zaadresowanego portu wejścia/wyjścia są umieszczane na magistrali. Potwierdzenie przesłania. Wskazuje, że dane zostały przyjęte z magistrali lub na niej umieszczone. Zapotrzebowanie na magistralę. Wskazuje, że moduł zgłasza zapotrzebowanie na przejęcie sterowania magistralą. Rezygnacja z magistrali. Wskazuje, że moduł rezygnuje ze sterowania magistralą. Żądanie przerwania. Potwierdzenie przerwania. Zegar. Wykorzystywany do synchronizowania operacji. Przywrócenie. Ustawia wszystkie moduły w stanie początkowym. Działanie magistrali, jako środka pośredniczącego w komunikacji modułów, jest bardzo proste. Jeśli jeden z modułów zamierza wysłać/odebrać dane od drugigo, to musi: 1. Uzyskać dostęp do magistrali. 2. Przekazać dane za pomocą magistrali/Przekazać zapotrzebowanie do modułu przez odpowiednie linie sterowania i adresowe a następnie czekać, aż drugi moduł wyśle dane. W większości systemów komputerowych wykorzystuje się struktury wielomagistralowe o określonej hierarchii. Spowodowane jest to zjawiskiem spadku wydajnosci w przypadku dołączenia do jednej magistrali zbyt wielu urządzeń, a stać się to może głównie z dwóch powodów. # Na ogół im więcej urządzeń dołączono do magistrali, tym większe jest opóźnienie propagacji. Opóźnienie to określa czas potrzebny do tego, aby skoordynować wykorzystanie magistrali. Jeśli sterowanie magistralą przenosi się często od zespołu do zespołu, to opóźnienia te mogą zauważalnie obniżyć wydajność. # Magistrala może stać się wąskim gardłem, jeśli zapotrzebowanie na przesłanie zgromadzonych danych zbliża się do pojemności magistrali. Problemowi temu można do pewnego stopnia przeciwdziałać, zwiększając szybkość przenoszenia danych przez magistralę, a także stosując szersze magistrale. Ponieważ jednak szybkosć i ilość generowanych danych wzrasta obecnie bardzo szybko, przesyłanie pojedynczą magistralą jest w tym wyścigu skazane na porażkę. W typowej, tradycyjnie stosowanej strukturze występuje lokalna magistrala łącząca procesor i pamięć podręczną. Może ona wspierać jedno lub więcej urządzeń lokalnych. Sterownik pamięci podrecznej łączy te pamięć nie tylko do magistrali lokalnej, ale również do magistrali systemowej, do której dołączone są wszystkie moduły pamięci głównej. Dzięki temu pamięć główna może być przesunięta z magistrali lokalnej do systemowej. W ten sposób wejście/wyjście komunikuje się z pamięcią główną przez magistralę systemową, nie kolidując z działalnością procesora. Możliwe jest podłączenie sterowników wejścia/wyjścia bezpośrednio do magistrali systemowej. Bardziej efektywnym rozwiązaniem jest jednak wykorzystanie do tego celu jednej lub wielu szyn rozszerzeń. Interfejs szyny rozszerzenia buforuje dane przesyłane między magistralą systamową a sterownikami wejścia/wyjścia dołaczonymi do szyny rozszerzenia. Rozwiązanie to umożliwia systemowi wykorzystywanie wielu urządzeń wejścia/wyjścia i jednocześnie izolowanie ruchu między pamięcią a procesorem od ruchu związanego z wejściem/wyjsciem. 53 ROZDZIAŁ 4. MAGISTRALE Przykład: tradycyjna architektura magistralowa. Tak przyjęta architektura jest rozsądnie efektywna, jednak zaczyna się załamywać w miarę, jak rośnie wydajność urządzeń wejścia/wyjścia. Stąd też, jako powszechnie przyjęte postępowanie, jest budowa szybkich magistrali ściśle zintegrowanych z resztą systemu. Wymagają one tylko mostu między magistralą procesora a magistralą szybką. Rozwiązanie to określane jest czasem jako architektura międzypiętrowa. Zaletą takiego rozwiązanie jest to, że szybka magistral ściślej sprzęga procesor z urządzeniami wejścia/wyjścia o wysokich wymaganiach, a jednocześnie jest niezależna od procesora. Dzięki temu mogą być tolerowane różnice procesora i szybkiej magistrali, a także różne definicje linii sygnałowych. Zmiany architektury procesora nie wpływają na szybką magistralę i na odwrót. Przykład: architektur o dużej wydajności. Przykład: budowa wewnętrzna komputera HP VECTRA 486/V. 4.3 Podstawowe parametry Chociaż występuje wiele różnych rozwiązań magistrali, istnieje kilka podstawowych parametrów i elementów projektowych, które służą do ich klasyfikowania i różnicowania. Projektując magistralę należy wziąć pod uwagę: rodzaj – specjalistyczna – multipleksowana metodę arbitrażu – centralną – rozproszoną koordynację czasową – synchronicza – asynchroniczna sposób wymiany informacji – szeregowa – równoległa szerokość magistrali – adres – dane rodzaj transferu danych – odczyt – zapis – odczyt–modyfikacja–zapis – odczyt po zapisie – blokowy Rodzaje magistrali Linie magistralowe mogą być podzielone na dwa rodzaje: specjalistyczne i multipleksowane. Linia specjalistyczna jest trwale przypisana albo jednej funkcji (specjalizacja funkcjonalna), albo fizycznie (specjalizacja fizyczna) określonym zespołom komputera. Jako przykład tej pierwszej mogą służyć oddzielne linie adresowe i danych stosowane powszechnie w systemach komputerowych. Może się jednak zdażyć, że zarówno adresy jak i dane transmitowane są przez ten sam zespół linii przy wykorzystaniu linii sterowania określającej ważność adresu. W tym przypadku każdy moduł ma do dyspozycji określony odcinek czasu na skopiowanie adresu i stwierdzenie czy jest adresowanym modułem. Adres jest następnie usuwany z magistrali, a te same połączenia magistralowe są wykorzystywane do przenoszenia ROZDZIAŁ 4. MAGISTRALE 54 danych. Metoda używania tych samych linii do wielu celów jest znana jako multipleksowanie czasowe. Zaletą multipleksowania czasowego jest stosowanie mniejszej liczby linii, co pozwala oszczędzić miejsce i (zwykle) koszt. Wadą jest to, że wewnątrz każdego modułu są potrzebne bardziej złożone układy. Może ponadto nastąpić spadek wydajności, gdyż niektóre zdarzenia wymagające tych samych linii nie mogą zachodzić równolegle. Pojęcie specjalizacji fizycznej odnosi się do używania wielu magistral, z których każda łączy tylko określoną grupę modułów. Do zalet specjalizacji fizycznej należy zaliczyć ich potencjalnie dużą przepustowaść i możliwość uniezależnienia pewnych modułów od siebie. Wadą jest zwiekszony rozmiar i koszt systemu. Metoda arbitrażu We wszystkich systemach, wyłaczając te naprawdę proste, zapotrzebowanie na dostęp do magistrali może zgłoszać kilka różnych modułów. Oczywiście, w określonym przedziale czasu, tylko jeden z nich dostęp ten otrzyma. Który — to zależy właśnie od przyjętej metody arbitrażu. Jej celem jest zawsze wyznaczenie jednego urządzenia jako nadrzędnego. Urządzenie nadrzędne może następnie inicjować transfer danych z innymi urządzeniami, które w tym określonym przesyłaniu gra rolę podrzędną. Istnieje wiele różnych sposobów postępowania. O każdej z nich można jednak powiedzieć, że jest albo scentraliowana albo rozproszona. W układzie scentralizowanym istnieje jedno urządzenie, zwane sterownikiem magistrali lub po prostu arbitram, które jest odpowiedzialne za gospodarowanie czasem na magistrali. W układzie rozproszonym centralny sterownik nie występuje. Każdy moduł zawiera układy logiczne sterujące dostępem, a moduły współpracują korzystając ze wspólnej magistrali. Koordynacja czasowa Pojęcie koordynacji czasowej odnosi się do sposobu w jaki koordynowane (czyli uzależniane) są zdarzenia na magistrali. Przy koordynacji synchronicznej występowanie zdarzeń na magistrali jest wyznaczone przez zegar. Magistrala zawiera linię zegarową, którą zegar transmituje regularną sekwencję kolejno zmieniających się zer i jedynek o takim samym czasie trwania. Pojedyncza transmisja 1-0 nazywana jest cyklem zegara lub cyklem magistrali i określa przedział czasowy. Wszystkie inne urządzenia dołączone do magistrali mogą odczytywać stan linii zegarowej, a wszystkie zdarzenia rozpoczynają się równocześnie z cyklem zegara. Sygnały na magistrali mogą się zmieniać w momencie narastania sygnału zegarowego (oczywiście z nieznacznym opóźnieniem wynikającym z czasu propagacji sygnału i czasu reakcji).1 Podstawową zaletą takiego systemu jest łatwość manipulacji prędkością transmisji. Przykład: koordynacja czasowa synchroniczna. Przy koordynacji asynchronicznej występowanie zdarzeń na magistrali jest zależne od zdarzenia poprzedzającego. Przykład: koordynacja czasowa asynchroniczna. Koordynacja synchroniczna jest łatwiejsza do wdrożenia i testowania. Ceną tego jest jednak mniejsza elastyczność. Ponieważ wszystkie urządzenia dołączone do magistrali synchronicznej są zależne od ustalonej szybkosci zegara, system nie może w pełni wykorzystać postępu w wydajności urządzeń. Przy koordynacji asynchronicznej magistrala może być wykorzystywana wspólnie przez urządzenia szybkie i wolne, wykorzystujące nową i starą technologię. 1 Istnieje oczywiście możliwość aktualizowania stanów magistrali zarówno przy wznoszącym jak i opadającym zboczu zegara — patrz pamieci DDR. ROZDZIAŁ 4. MAGISTRALE 55 Sposób wymiany informacji Wymiana informacji między urządzeniami może przebiegać, w zależności od konstrukcji magistrali łączącej, w formie równoległej lub szeregowej. Magistrala równoległa przesyła w jednym cyklu całe słowo danych. Komunikacja poprzez złącze szeregowe odbywa się na innych zasadach. Kolejne pozycje bitowe słowa danch przenoszone są tym samym przewodem. Liczba linii połączeniowych jest z reguły dużo mniejsza, ale komplikuje się protokół i pojawia konieczność wprowadzenia dodatkowch sygnałów kontrolnych. Szerokość magistrali Szerokość szyny danych ma wpływ na wydajność systemu: im jest ona szersza, tym większa jest liczna jednocześnie przesyłanych bitów. Szerokość szyny adresowej ma natomiast wpływ na pojemność systemu: im szersza jest szyna adresowa, tym większa jest ilość miejsc możliwych do okerślenia w pamięci. Rodzaje transferu danych Magistrala służy do przesyłania różnego rodzaju danych. Wszystkie magistrale obslugują zarówno zapis jak i odszyt. W przypadku multipleksowanych szyn adresów i danych, szyna jest najpierw używana do specyfikowania adresu, a następnie do przesyłania danych. W operacji odczytu występuje typowe oczekiwanie, podczas gdy dane są pobierane z modułu podrzędnego i wprowadzane do magistrali. W przypadku specjalistycznych szyn adresów i danych, adres jest lokowany na szynie adresowej i pozostaje tam w czasie, gdy dane są doprowadzane do szyny danych. Przy okazji zapisu moduł nadrzędny umieszcza dane na szynie danych natychmiast po ustabilizowaniu się adresu, gdy moduł podrzędny ma możliwość rozpoznania adresu. Przy operacji odczytu moduł podrzędny umieszcza dane na szynie danych tuż po rozpoznaniu adresu. Na niektórych magistralach dopuszczalne są operacjr kombinowane. Operacja odczytmodyfikacja-zapis jest po prostu odczytem, po którym natychmiast następuje zapis pod tym samym adresem. Adres jest rozgłaszany tylko raz, na początku operacji. W typowym przypadku cała operacja jest niepodzielna w celu zapobieżenia dostępowi do danych przez inne potencjalne moduly nadrzędne. Odczyt-po-zapisie jest niepodzielną operacją składającą się z zapisu, po którym natychmiast następuje odczyt z tego samego adresu. Niektóre systemy magistralowe umożliwiają także blokowe przesyłanie danych. W tym przypadku po jednym cyklu adresu następuje n cykli danych. Pierwsza grupa danych jest przesyłana pod sprecyzowany adres (lub pobierana pod tym adresem), pozostałe dane są przesyłane pod następne adresy (lub pobierane pod tymi adresami). Przykład: rodzaje magistralowego transferu danych. 4.4 4.4.1 Przykłady rozwiązań Magistrala zewnętrzna w modelu PC/XT Będący pierwowzorem dla modelu XT , mikrokomputer IBM PC był konstrukcją ośmiobitową opartą na procesorze 8086 (lub jego oszczędnościowej wersji 8088). Dla procesora 8086 charkaterystyczne są dwa tryby pracy: minimalny i maksymalny. W trybie minimalnym procesor sam wytwarza sygnały sterowania magistralą systemową. Tryb maksymalny wymaga obecności specjalnego dekodera, który, bazując na sygnałach ststusowych procesora, wytwarza niezbędne sygnały sterujące. ROZDZIAŁ 4. MAGISTRALE 56 Przykład: schemat blokowy komputera XT. Zewnętrzna magistrala architektury PC/XT jest ośmiobitowa. Komputery tej klasy wyposażane były w umieszczone na płycie głównej 62-końcówkowe gniazda rozszerzenia. Liczba tych gniazd nie była jednoznacznie sprecyzowana i zależała od modelu płyty. Teoretycznie jest całkowicie obojętne, w którym z gniazd umieszczono daną kartę, bowiem wyprowadzenia wszystkich gniazd połączono równolegle. W praktyce zdarzało się, że niektóre karty umieszczone zbyt blisko siebie zakłócały się. Karty rozszerzające są niezmiernie ważnym elementem architektur komputera. Dają one bardzo dużą elastyczność w projektowaniu urządzeń peryferyjnych, które z punktu widzenia oprogramowania będą zachowywały się tak, jak gdyby znajdowały się na płycie głównej. 4.4.2 Magistrala ISA Wraz z powstaniem modelu PC/AT, którego ogólną sylwetkę określa się mianem ISA (Industry Standard Architecture), wprowadzono nową magistralę zewnętrzną. Podobnie jak w modelu PC/XT, większa część sygnałów magistrali systemowej wyprowadzona jest do gnizad, w których można umieszczać karty rozszerzające. W tym przypadku magistrala zewnętrzna jest już jednak 16-bitowa. Gniazda rozszerzające są podzielone na dwa odcinki: pierwszy 62 stykowy, jest praktycznie zgodny z 8-bitową nagistralą XT, drugi stanowi jej 36-stykowe uzupełnienie. Dzięki temu magistrala zewnętrzna dysponowała wyprowadzeniami 24-bitowej systemowej szyny adresowej, 16-bitowej szyny danych i większości sygnałów systemowej szyny sterującej. W modelu tym jedynymi układami mogącymi przejąć pełną kontrolę nad magistralami systemowymi (tzn. inicjować transmisję i decydować o jej kierunku) są procesor i kontroler DMA. Żaden inny procesor zamontowany na karcie rozszerzającej nie może sterować w bezpośredni sposób magistralami systemowymi. Wprawdzie na magistrali zewnętrznej wyprowadzono sygnał MASTER, ale procedura przejęcia sterowania rozpoczyna się od wymiany sygnałów uzgodnienia z kontrolerem DMA, który to dopiero odłącza procesor systemowy od magistral. 4.4.3 Magistrala EISA Najwęższym gardłem architektury ISA stała się właśnie magistrala zewnętrzna. Chąc zaradzić ograniczeniom jakie ona narzycała wprowadzono rozszerzoną archiekturę ISA znaną jako EISA (Extended ISA). System ten stanowił istotny krok na drodze do wykorzystania pełnych możliwości procesorów 32-bitowych. Architektura tak okazała się jednak niezwykle kosztowna ze względu na swoją komplikację. Zachowano bowiem możliwość współpracy z dotychczas stosowanymi peryferiami ISA. Za każdym razem kontroler magistrali decydował czy podczas bieżącej operacji można pracować w nowym, 32-bitowym trybie, czy należy symulować 16-bitowy. To samo dotyczyło oczywiście kontrolera DMA. Zmiany jakie wprowadzała nowa architektura można okerślić jako poważną operację plastyczną. Oto zmiany które dotknęły magistral Dowolny kontroler umieszczony na jednej z kart rozszerzających EISA ma nieograniczone możliwości sterowania magistralą systemową. System przydziału magistral kolejnym procesorom jest dosyć rozbudowany i umożliwia hierarchiczno-priorytetowy sposób dostępu. Karty rozszerzające EISA mają do dyspozycji, oprócz wielu sygnałów sterujących, 32 bity systemowej szyny adresowej i 32 bity systemowej szyny danch. Na magistralę zewnętrzną EISA składa się 98 sygnałów standardu ISA oraz 90 nowych linii. Aby zachować wymóg zgodności z kartami ISA, gniazda EISA mają szczególną konstrukcję. Styki gniazd ułożone są na dwóch poziomach. Poziom górny dostarcza wszystkich sygnałów standardu ISA, natomiast w dolnym umieszczono dodatkowe końcówki EISA. Normalna karta ISA nie może być wsunięta tak głęboko, by sięgać linii dodatkowych styków. Możliwe jest to dla kart EISA dzięki odpowiednim wycięciom. ROZDZIAŁ 4. MAGISTRALE 57 Istotne zmiany objęły również kontroler DMA. Dzięki temu stał się możliwy transfer danych nie ograniczonych do bloków 64 kB, co miało miejsce w ISA. Wszystkie magistrale EISA są 32 bitowe. Ponadto procesory 80386 i 80486 mają możliwość użytkowania magistrali w specjalnym trybie następujących po sobie kolejnych cykli dostępu (Burst), co oznacza osiąganie adresowanego obiektu w jednym takcie zegarowym. Podsumowanie Przykład: architektura komputera z magistralą ISA/EISA. W architekturze PC AT bezpośrednio do szyny procesora dołączono tylko pamięć podręczną. Magistrala procesora (32 linie adresowe, 32 linie danych, linie sterujące) jest taktowana zegarem o częstotliowści 25 lub 33 MHz. Zatem teoretyczny maksymalny transfer wynosił 132 MB/s, w praktyce ok. 100 MB/s. Obie magistrale: 16-bitowa ISA i 32-bitowa EISA pracują z zegarem 8MHz. Teoretycznie transfer większości danchy przez złącze EISA wymaga minimum dwóch cykli zegara; dla magistrali ISA — 8. Stąd maksymalny, możliwy do osiągnięcia, transfer wynosi 8 MB/s dla ISA i 33 MB/s dla EISA. Szybkość ta dodatkowo ograniczana jest przez protokół przesyłania danych. Porównanie teraz tych dwóch transferów (transfer na magistrali procesora i transfer na magistrali rozszerzającej) dobitnie pokazują jak bardzo ISA a pośrednio także EISA ograniczały możliwości komputera. problem ten stał się szczególnie istotny wraz z nastaniem graficznych środowisk pracy, kiedy to należało przesłać bardzo dużą ilość danych w bardzo krótkim czasie. 4.4.4 Magistrala MCA Architektura MCA (Micro Chanel Architecture) po raz pierwszy została wprowadzona w modelu IBM PS/2. Ma w niej miejsce zdecydowany odwrót od tradycyjnego, upartego (w celu zachowania kompatybilności) trzymania się standardu ISA. Dotyczy to zarówno cech logicznych jak i fizycznych. Przepustowość magistrali zewnętrznej MCA sięga 20 MB/s. Każda z kart rozszerzeń ma swój niepowtarzalny numer identyfikacyjny. Dzięki temu możliwa jest jednoznaczna identyfikacja rodzaju karty. Jej konfiguracja odbywała się tylko i wyłącznie na drodze dialogu z programem instalacyjnym. Na karcie brakuje jakichkolwiek zwór i przełączników. Informacja o konfiguracji karty przechowywana jest w systemowej pamięci CMOS. Również pojedyńcze gniazda magistrali zewnętrznej zaczęły być identyfikowane w ramach systemu. Dało to na przykład możliwość progrmowego odłączania karty znajdującej się fizycznie w złączu. Powodem dla któreko architektura ta nie usyskała większej popularności była polityka koncernu IBM. Wszystkie bowiem charakterystyczne cechy systemu opatentowano. Stąd też narodził się standard EISA — jako obrona rynku producentów przed monopolem IBM. 4.4.5 Magistrala VESA Ponieważ producenci nie mogli liczyć na zdobycie licencji na magistralę MCA, a jeśli już im się to udało, to wiązało się z dużymi opłatami, powstał pewnego rodzaju pseudo standard. Pseudo, gdyż każdy producent stosował tu swoje prywatne rozwiązania, choć idea była wszędzie taka sama. Jak można się zorientować z lektury wcześniejszych akapitów w systemach mieliśmy do czynienia z następującą sytuacją. Magistrala procesora była, jak na owe czasy, wystarczajaco szybka. Przepustowość magistral rozszerzeń, również mogłaby wystarczyć, gdyby nie pewien ”problemik”. Grafika, bo o niej tu mowa, stawiała bardzo wysokie wymagania dotyczące transferu danych. W tym momencie dochodzimy właśnie do sedna sprawy. Skoro magistrala procesora jest szybka, a my mamy dużo ”obrazków” do przesłania, to dlaczego nie podłączyć sterownika grafiki bezpośrednio do tej magistrali? Zwykle były to konstrukcje all in one, gdzie nie było możliwości wymiany urządzenia ”podłączonego” do takiej magistralil. Tak oto ROZDZIAŁ 4. MAGISTRALE 58 narodziła się idea wewnętrznej magistrali lokalnej. Z niej to, gdy prodcentom udało się dojść do porozumienia wywodzi się magistrala lokalna VESA. VESA różni się od wewnętrznej magistrali lokalnej zainstalowaniem złącza VL-Bus w które można wkładać karty rozszerzające. Teoretycznie można do takej magistrali dołączyć do 5 urządzeń. Jednak VESA dedykowana była w zasadzie obsłudze dwóch urządzeń — karty sterownika monitora i kontrolera dysków. Stąd w popularnych domowych PC-tach przeważały płyty z jednym złączem — złączem dla karty graficznej. Dlatego rozwiązanie to traktowano jako swego rodzaju dodatek do architektur ISA, gdyż nie naruszano istniejącego standardu dodając dodatkowe złącze/złącza. Magistrala VESA jest 32-bitową magistralą zewnętrzną, taktowaną zegarem procesora, którego częstotliowść nie może jednak przekraczać 40 MHz. Jej przepustowość dochodzić może do 120 MB/s. Oba rozwiązania, magistrala wewnętrzna i VL-Bus miały jednak dość poważne wady, wynikające z bezpośredniego dołączenia do magistrali procesora. Po pierwsze, rozwiązanie takie, choć niskie jeśli mowa o kosztach, musi umrzeć śmiercią naturalną wraz z odejściem systemów opartych na branych pod uwagę procesorach (80386,80486). Po drugie, przeciążenie magistrali procesora układami innymi, niż przewidywane przez producenta (projekt zakładał obciążenie tylko konkretnymi układami) może zakłócać a nawet uniemożliwiać pracę. Przykład: architektura komputera z magistralą lokalną i magistralą VESA. 4.4.6 Magistrala PCI Magistrala PCI (Peripherial Component Interconnect) opracowana została przez firmę Intel i jest aktualnie dominującym rozwiązaniem 32-bitowej szyny lokalnej. W krótkim czasie wyparła ona magistralę VLB, mimo zbliżonych parametrów. Stało się to możliwe dzięki niezależności magistrali PCI od typu procesora. Architektura z magistralą PCI pozwala na tworzenie bardzo złożonych konstrukcji. Zgodnie ze specyfikacją 2.1 standardu PCI w jednym systemie może współpracować do 256 magistral PCI, z których każda pozwala na obsługę do 32 urządzeń. Każde z urządzeń może być wielozadaniowe i pełnić do 8 różnych funkcji. Podstawowa wersja może pracować z częstotliwością od 0 do 33 MHz (v. 2.1 — 66 MHz), co pozwala na osiągnięcie teoretycznej przepustowości 132 MB/s. Magistrala ta pracuje w trybie burst, co oznacza dostęp do adresowanego obiektu w jednym takcie zegarowym. Zdefiniowano również 64-bitowe rozszerzenie magistrali PCI, umożliwiające transfer z prędkością 264 MB/s. Prędkość taką osiąga się w tym przypadku wyłącznie pomiędzy urządzeniami 64-bitowymi. Wymiana danych pomiędzy urządzeniami 64- i 32-bitowymi jest jednak wolniejsza niż na 32-bitowej magistrali PCI ze względu na wprowadzenie dodatkowego cyklu umożliwiającego rozpoznanie sposobu transmisji danych. Urządzenia PCI, podobnie jak EISA czy MCA, nie mają zwór konfiguracyjnych. Konfiguracja przebiega automatycznie, przez wpisanie odpowiednich wartości do rejestrów urządzeń PCI. Zmiany wartości tych rejestrów umożliwiają rekonfigurację urządzeń po dołączeniu do systemu nowego urządzenia. Urządzenia podłączone do magistrali PCI są automatycznie wykrywane i konfigurowane przez oprogramowanie systemowe przed rozpoczęciem testów POST (Power On Self Test). Na podstawie wartości zapisanych w rejestrach urządzeń PCI oprogramowanie systemowe decyduje o przydzieleniu kanałów przerwań, przydzieleniu obszarów pamięci, sposobie arbitrażu. Oprogramowanie systemowe zapewnia konfigurację umożliwiającą uruchomienie komputera. Po uruchomieniu, systemu konfiguracja urządzeń PCI może być zmieniona przez system operacyjny. Przykład 4.1 Architektura komputera z magistralą PCI. ROZDZIAŁ 4. MAGISTRALE 59 Każde urządzenie PCI wyposażone jest w 256-bajtową pamięć konfiguracyjną, w której przechowuje informacje niezbędne do poprawnej pracy. Pierwsze 64 bajty stanowią nagłówek, którego struktura jest jednakowa dla wszestkich urządzeń. Pozostałe 192 bajty to rejestry specyficzne dla danego urządzenia. Przykład: struktura nagłówka pamięci konfiguracyjnej urządzenia PCI. 4.4.7 Magistrala AGP Po magistralach ISA i PCI nadszedł czas na nowe rozwiązanie: szybki port graficzny Accelerated Graphics Port, w skrócie AGP. Pomysł jest prosty: karta graficzna może użyć dowolnej ilości pamięci operacyjnej umieszczonej na płycie głównej, a niezależna szyna graficzna zapewnia bezpośredni transfer danych. Powinno to dać bardziej realistyczne i szybsze animacje trójwymiarowe w porównaniu z tym, co było możliwe do tej pory. Szyna AGP, bazująca na specyfikacji PCI w wersji 2.1 (zegar 66 MHz), taktowana jest zegarem 66 MHz - w porównaniu z taktem 33 MHz, stosowanym w PCI, oznacza to zwiększenie maksymalnej przepustowości do 264 MB/s. Większa przepustowość przy przesyłaniu danych nie jest jedyną zaletą oferowaną przez AGP. Przykładowo, AGP ma dodatkowe linie sygnałowe do sterowania potokami. O ile w szynie PCI polecenie transmisji danych mogło być zrealizowane dopiero po zakończeniu poprzedniego transferu, AGP potrafi przyjąć zlecenia już wtedy, gdy poprzednio żądane dane są jeszcze wyszukiwane w pamięci. Najważniejszą informacją jest fakt, że AGP obsługuje wyłącznie grafikę. Cała przepustowość magistrali może być ”przeznaczona” dla operacji graficznych, bez potrzeby dzielenia się z innymi urządzeniami. AGP nie jest więc tak uniwersalne, jak szyna PCI, dla której istnieją wszelkie możliwe karty. Dlatego AGP należy widzieć raczej jako uzupełnienie niż następcę PCI. Szyna AGP jest wykorzystywana do bezpośredniego połączenia między pamięcią operacyjną (RAM) na płycie głównej a układem akceleratora na karcie graficznej. Zamiast lokalnej pamięci graficznej na karcie, akcelerator może korzystać z pamięci głównej, na przykład podczas przechowywania tekstur. Dotychczas musiały być one najpierw umieszczone w pamięci karty, zanim procesor graficzny mógł ich użyć. Teraz tekstury będą pobierane bezpośrednio z pamięci głównej. Taką technikę Intel określa mianem ”DIME” (Direct Memory Execute). Rozmiar pamięci RAM wykorzystywanej przez AGP jest zmienny i zależy zarówno od używanego programu, jak i od całkowitej wielkości pamięci dostępnej w komputerze. W zasadzie możliwości grafiki można poprawić również poprzez odpowiednie zwiększenie pamięci karty graficznej, ale rozwiązanie to jest droższe i nie tak elastyczne jak AGP, gdzie istniejąca pamięć RAM może być wykorzystywana dokładnie wedle potrzeb. Współpraca procesora głównego (CPU), pamięci operacyjnej (RAM) i akceleratora graficznego, jak też połączenie z szyną PCI jest nadzorowane przez zestaw układów (chipset) na płycie głównej. Przykładowo, układy te zarządzają adresami w taki sposób, że wolna pamięć RAM jest widziana przez akcelerator na karcie graficznej jako jego własny obszar pamięci. W specyfikacjach definiuje się opisane niżej tryby, w których przepustowość osiąga różne wartości. Dla osiąganej szybkości podsystemu graficznego przepustowość ta ma decydujące znaczenie. AGP 1x : Sama tylko częstotliwość taktowania szyny, podwojona do 66 MHz, daje dwukrotne zwiększenie przepustowości w stosunku do PCI (264 MB/s). Należy przy tym pamiętać, że wartość ta - podobnie jak dla innych opisanych tu trybów - dotyczy maksymalnych osiągów. W praktyce osiągane wartości są mniejsze. AGP 2x : Tutaj nie tylko narastające, ale i opadające zbocze sygnału zegara 66 MHz wykorzystuje się do zapoczątkowania transferu danych. Wynik: maksymalna przepustowość 528 MB/s. W tym tempie dane są przekazywane potokowo. ROZDZIAŁ 4. MAGISTRALE 60 AGP 4x : W trybie tym magistrala przesyła podwójną, w porównaniu z trybem 2x, ilość danych bowiem pomiędzy dowolnymi dwoma zboczami zegara mają miejsce dwie transakcje. Odpowiada to teoretycznej przepustowości 1064 MB/s. Przykład: architektura komputera z magistralą AGP. Rozdział 5 Magistrale połączeniowe 5.1 IDE Kontroler dysku twardego W obudowie klasycznego dysku twardego zintegrowane są jedynie układy bardzo ściśle współpracujące z elementami wykonawczymi sterowania części ruchomych napędu dysku — silniki oraz systemy bezpośrednio związane z głowicami odczytująco-zapisującymi. Zadanie sterowania tymi elementami i obróbkę danych przejmuje kontroler dysku. Z logicznego punktu widzenia kontroler dysku twardego wymienia dane z magistralą systemową komputera tak samo, jak każde inne urządzenie. Procesor wysyła do odpowiednich rejestrów sterujących dane i rozkazy, a pozostający w kontakcie z dyskiem kontroler odpowiada danymi oraz pewnymi inforamcjami dodatkowymi. Sam kontroler składa się z mikroprocesora otoczonego niezbędnymi układami dodatkowymi, jak pamięci RAM i ROM, dekodery adresów i specjalistyczne układy obróbki danych. Każdy kontroler zawiera dodatkowo pamięć mogącą pomieścić pewną ilość odczytanych danych wraz z kodami ECC (Error Correction Code); system kontroli i korekcji ECC są zwykle rozwiązaniami sprzętowymi. Opis standardu Architektura pierwszych komputerów łączyła dysk twardy z resztą systemu przy pomocy magistrali ST412/506, która wyparta została przez model określany mianem IDE, AT-BUS lub ATA (wprowadzony w 1981). Skrót IDE (Intelligent Drive Electronics) ma podkreślać fakt, iż napędy dysków jako takie zdolne są do samodzielnych (ineligentnych) działań i nie wymagają oddzielnych kontrolerów (tak jak to miało miejsce w przypadku ST412/506). Spotkać można również rozwinięcie skrótu jako Integrated Device Electronics. W tym przypadku nacisk kładzie się na nową cechę tego standardu, tj. zintegrowanie układów kontrolera i mechanizmów napędu w jednej obudowie. Elektronika, jaką montowano w dyskach starszej generacji, miała za zadanie wyłącznie sterowanie pracą części ruchomych i obróbką sygnałów zapisu i odczytu dla głowic magnetycznych. Pozostałe czynności: pozycjonowanie głowicy nad określoną ścieżką, odszukanie bloku identyfikującego sektor, dekodowanie sygnału, przesłanie bloku danych do pamięci oraz wszelkiego typu operacje towarzyszące jak choćby kontrola błędów, wykonywał układ kontrolera dysku umieszczony na osobnej karcie. Skrót ATA (AT Attachment) tak samo jak IDE odnosi się do implementacji tej samej magistrali połączeniowej. Pojawiło się ono nieco później niż IDE i stanowi określenie używane przez zespoły normalizacyjne pracujące nad standardem IDE w jego kolejnych wersjach. AT-BUS jako złącze jest strukturą logiczną. To co w systemach ST412/506 określane było mianem złącza, tj. fizyczne połączenie kontrolera i napędu wraz z określeniem znaczenia poszczególnych linii, tutaj, z logicznego punktu widzenia, nie istnieje. Praktycznie każdy model dysku IDE ma inne parametry, do których dostosowany jest inny kontroler i nie może 61 ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 62 być mowy o jakimkolwiek standardzie na tym odcinku. Dysk IDE komunikuje się z szynami systemowymi za pośrednictwem sterownika określanego często mianem Host-Adapter. Jest to prosty zestaw bramek logicznych realizujących jedynie funkcje dekodowania adresu i buforowania sygnałów szyn. Pierwotny standard IDE dopuszczał obsługę jedynie dwóch dysków twardych. Jedne z nich musiał wtedy być oznaczony jako Master, a drugi jako Slave. Ustawień tych dokonuje się za pomocą zworek konfiguracyjnych zlokalizowanych na dyskach. Połączenia dysku IDE z odpowiednimi gniazdami na płycie głównej komputera odbywa się 40-żyłowym płaskim przewodem. Kabel połączeniowy posiada trzy wtyki: po jednym dla dysku Master i Slave oraz jeden do podłączenia do płyty. Żadne z przewodów nie są skrzyżowane a fizyczna kolejność urządzeń na magistrali nie odgrywa roli. W swojej pierwszej wersji umożliwiał podłączenie maksymalnie dwóch urządzeń i był bezpośrednio związany z architekturą ISA, co w rezultacie określiło jego maksymalną przepustowość - 3,3 (Mode 0) do 8,3 MB/s (Mode 2). W pierwszej wersji ATA stosowano asynchroniczne przesyłanie danych regulowane sygnałem strobe generowanym przez kontrolerAT-Bus na karcie lub na płycie głównej. Operacje wejścia/wyjścia realizowane były w trybie PIO (za odbieranie i wysyłanie danych odpowiadała procedura realizowana przez procesor komputera). 5.2 EIDE Standard AT-BUS bez wątpienia zdominował rynek komputerów PC na długi czas. Jednak w miarę rozwoju techniki, coraz głośniej dawały znać o sobie jego ograniczenia: pojemność ograniczona do 504 MB, niezbyt duża szybkość transmisji danych, możliwość podłączenia dwóch dysków twardych, brak możliwości podłączenia innych urządzeń niż dyski twarde. Opracowanie nowoczesnego i na miarę dzisiejszych potrzeb standardu, zdolnego do obsługi wielu różnch urządzeń wymagających dużych możliwości transferowych, w zasadzie nie stanowiłoby w chwili obecnej większego problemu. W zasadzie, gdyż koniecność wkomponowania takiego systemu w rzeczywisty świat użytkowników PC, który częst z uporem maniaka chce zachować zgodność ”w dół” nawet z najstarszymi podzespołami, rodzi wiele komplikacji. Dlatego też, stary i mocno wysłużony system IDE podlega coraz to nowym adaptacjom. Jego kolejne modyfikacje, określane wspólną nazwą EIDE (Enhanced IDE), mają za zadanie usuwanie kolejnych napotykanych ograniczeń, zapewniając jedocześnie zgodność ze standardem IDE, tak iż nawet najnowsze urządzenia pracują poprawnie podłączone do starego kontrolera IDE. Oczywiści nie można wówczas mówić o wykorzystaniu pełni możliwości. Następujące po sobie kolejne rozszerzenia pierwotnego standardu IDE szły w kilku kierunkach: wzrost pojemności dysków, podniesienie pasma przepustowości magistrali, umożliwienie obsługi innych urządzeń (streamery , CD-ROM-y), zwiększenie liczby obsługiwanych urządzeń. ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 63 ATA-2 ATA-2 wprowadzono w 1994 roku. Specyfikacja ATA-2 (Fast ATA/EIDE) wprowadziła nową, zupełnie odmienną metodę transferu - synchroniczne przesyłanie danych. W napędach ATA2 ”elektronika” napędu synchronizuje wysyłane informacje z wznoszącym zboczem sygnału strobe (pełniącym funkcję separatora komunikatów). Ponieważ prędkość transferu związana jest bezpośrednio z częstotliwością generowanego sygnału taktującego, naturalnym sposobem zwiększenia przepustowości interfejsu było ”zagęszczenie” w czasie generowanych impulsów. Pojawiły się nowe typu tansmisji w systemie PIO (Type-3 oraz Type-4). Transmisja w tych trybach posługuje się sprzętowym mechanizmem regulującym prędkość przekazu co pozwala na spowalnianie pracy magistrali przez dysk. Koniczność wprowadzenia mechanizmu regulacji wynikła w związku z pojawieniem się niebezpieczeństwa ”przysypania” dysku danymi przez kontroler. Zdefiniowano ponadto tryby DMA (Type-0, Type-1, Type-2). Specyfikacja ATA-2 nie zmienia ani dopuszczalnej liczby urządzeń, ani maksymalnej długości przewodu połączeniowego (nadal wynosi ona 46 cm). Zaimplementowano natomiast funkcje wspierające mechanizm Plug & Play. Nowością był również wprowadzony tryb adresowania danych przechowywanych na dysku - LBA - umożliwiający przekroczenie dotychczasowej bariery pojemności 504 MB. ATA-3 ATA-3 wprowadzono w 1996 roku. Poprawki ograniczają się w zasadzie do implementacji trybu gwarantującego pewną formę zabezpieczeń dostępu do danych (Secure Mode) oraz systemu nadzoru i autodiagnostyki S.M.A.R.T (Self Monitoring Analysis and Reporting Technology). ATA/ATAPI-4 Standard ten wprowadzono w 1997 roku. Podnisiono w nim maksymalną prędkość transmisji do poziomu 33 MB/s dzięki wprowadzeniu trybów Ultra-DMA. Podwojenie prędkości w porównaniu z najszybszymi jak dotąd trybami pracy (PIO-4 i MDMA-2) uzyskano wyłącznie dzięki zmianom w protokole. W celu zwiększenia szybkości przesyłane dane synchronizuje się oboma zboczami sygnału strobe. W efekcie dwukrotnie zwiększono przepustowość złącza, zachowując zarazem pełną kompatybilność z wcześniejszymi specyfikacjami. Aby zwiększyć wydajność i ”nadążyć” z przesyłaniem informacji w tak szybkim tempie zadanie generowania sygnału strobe w trakcie odczytu danych przeniesiono na ”elektronikę” dysku twardego. Dzięki temu napęd, wysyłając informacje, nie oczekuje na sygnał, lecz generuje go samodzielnie. Umożliwiło to zlikwidowanie bezwładności związanej z dostosowywaniem się urządzenia do ”rytmu” generowanego przez kontroler na płycie głównej. UDMA/33 jest całkowicie zgodny w dół, a dla jego zaimplementowania wymagane były jedynie niwielkie zmiany. Ponieważ częstotliwość żadnego z sygnałów nie ulagła zwiększeniu, system może posługiwać się dotychczas stosowanymi przewodami połączeniowymi. Umożliwiono obsługę to czterech urządzeń, po dwa na kabel. Zdefiniowano możliwość współpracy z urządzeniami o fizycznej organizacji danych innych niż dyski twarde (streamery, CD-ROM-y). Dla potrzeb tych urządzeń powstaje nowy logiczny interfejs określany mianem ATAPI (AT Attachment Packet Interface). Składają się na niego nowe funkcje, przekazujące swoje parametry w specjalnych blokach (tzw. pakietach). W celu zwiększenia bezpieczeństwa przesyłanych danych (Ultra ATA/33 balansuje na granicy możliwości przesyłowych standardowego 40-żyłowego kabla) w interfejsie Ultra ATA/33 wprowadzono metodę wykrywania i korekcji błędów transmisji znaną jako suma kontrolna CRC (Cyclical Redundancy Check). Suma ta obliczana jest dla każdego pakietu przesyłanych danych, zarówno przez napęd, jak i kontroler na płycie głównej. Po zakończeniu transmisji następuje porównanie obu obliczonych wartości. W razie wystąpienia błędu proces przesyłania danych realizowany jest ponownie, w razie potrzeby w wolniejszym trybie komunikacyjnym. ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 64 ATA/ATAPI-5 Już w dwa lata po wprowadzeniu standardu Ultra ATA/33 okazało się, że poprzeczkę należy podnieść jeszcze wyżej. Teoretyczną maksymalną przepustowość 66 MB/s (ATA-5 lub Ultra ATA/66) osiągnięto, zwiększając dwukrotnie prędkość przesyłania danych oraz redukując czas realizacji komend sterujących. Aby skorzystać z większej szybkości, należało zastosować specjalny kabel, którego konstrukcja zapobiega powstaniu zakłóceń elektromagnetycznych (przesłuchów) pojawiających się podczas pracy z tak dużą prędkością. W porównaniu z dotychczas stosowaną taśmą połączeniową dwukrotnie zwiększyła się liczba żył (z 40 do 80), nie zmienił się jednak typ wtyczki. Ponieważ zaistniała jednak konieczność autodetekcji rodzaju kabla (nowy, czy stary w sytuacji gdy dysponujemy starszym systemem), trzy wtyki przypisano do określonych urządzeń i oznakowano różnymi kolorami: niebieski od storony kontrolera, czarny Master i szary Slave. Nowe żyły pełnią funkcję uziemienia i wplecione są pomiędzy standardowe żyły sygnałowe. ATA/ATAPI-6 Oferuje możliwości transferu z prędkością do 100 MB/s (Ultra ATA/100). Nadal zapewniona jest kompatybilność z wcześniejszymi wersjami standardu. Wykorzystuje się opracowany dla UDMA/66 specjalny 80-żyłowy przewód łączący. Ultra ATA/100 oferuje również większe bezpieczeństwo przesyłania danych. Protokół ma charakter pakietowy i posługuje się sumami kontrolnymi CRC. Wprowadzono ponadto: rozszerzony tryb adresowania, który przesuwa barierę 127 GB pojemności jak powstała przy 28-bitowym schemacie adresowania w trybie LBA; możliwość optymalizacji parametrów akustycznych (redukcja hałasu); strumieniowe przesyłanie danych audio-video. Więksość aktualnie produkowanych dysków twardych oraz płyt głównych wyposażona jest w złącze IDE, mogące pracować w trybie Ultra ATA/100. Należy jednak jasno zdawać sobie sprawę, iż na razie dyski twarde ze złączem IDE mogą dostarczać dane strumieniem nie przekraczającym 20 MB/s. W tym kontekście nie odgrywa większej roli, czy magistrala może przenieść 60, czy 100 MB/s. Oczywiście inaczej sytuacja będzie wyglądać w przypadku macierzy dyskowych składających się np. z czterech szybkich urządzeń. Oto fragment odpowiedzi 1 udzielonej na pytanie jednego z czytelników CHIP-a: ”...Z drugiej strony dyski IDE, będące w tej chwili na rynku, mają maksymalną prędkość obrotową 7200 obr./min i najwyższy osiągany przez nie transfer oscyluje wokół wartości 20 MB/s. Wykonane w CHIPLab pomiary wskazują, że w trybie UltraATA/33 ”twardziele” pracują równie wydajnie jak w UltraATA/66. Nie podważamy w ten sposób sensu zakupu kontrolera, bo pozwala on na lepszą współpracę między dyskiem a systemem, a poza tym udostępnia cztery dodatkowe kanały IDE, jego możliwości będą jednak słabo wykorzystane aż do chwili pojawienia się dysków działających z prędkością 10 000 obr./min i osiągających transfery przekraczające 30 MB/s...” 5.3 Serial-ATA Jak można zauważyć, opisany wcześniej, interfejs ATA przeszedł już kilka kuracji odmładzających mających na celu przyspieszenie jego działania. W końcu jednak zwiększanie szybkości transmisji natrafiło na fizyczne ograniczenia jakie pojawiają się podczas transmisji równoległej z wykorzystaniem wieloprzewodowego kabla transmisyjnego. Wprawdzie dzięki wprowadzeniu dodatkowych przewodów służących jako ekranowanie i pewnych środków korygujących błędy transmisji udało się osiągnąć granice 133 MB/s jednak na tym kończą się możliwości 1 Jerzy Michalczyk, CHIP, 2000.01. ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 65 rozwojowe tego interfejsu. Sytuacje, gdy przepustowość interfejsu ATA/133 stanie się zbyt mała, przy obecnym tempie rozwoju nie wydaje się wcale taka odległa. Dlatego też do dalszych prac postanowiono wybrać, rokujący lepsze perspektywy, interfejs szeregowy. Wbrew pozorom interfejs szeregowy oferować może całkiem ”niezłe” parametry o czym świadczy choćby IEEE 1394 czy USB 2.0. Stosuje się w tym przypadku dwuprzewodową linię różnicową o niskim poziomie sygnału. Zrealizowana w ten sposób transmisja synchroniczna na dzień dzisiejszy pozwala osiągnąć prędkość przesyłania około 2.5 Gb/s (fizyczna granica to około 10 Gb/s). Dodatkowym atutem jest łatwa skalowalność transmisji szeregowej (zwielokrotnienie lini transmisyjnych). Fizyczna realizacja interfejsu to dwie dwuprzewodowe linie transmisji danych i dwie takie same linie transmitujące sygnał zegara. Serial ATA jest połączeniem typu ”punkt-punkt”. Wynika z tego konieczność zwielokrotnienia liczby portów i zastosowanie topologii gwiaździstej. Szybkość transmisji, dla pierwszej wersji, ustalono na 1.5 Gb/s (150 MB/s) a w dalszych planach jest 3 i 6 Gb/s (300, 600 MB/s). Dziwić może fakt wprowadzenia kolejnego interfejsu, gdy dostępne są inne rozwiązanie w zupełności wystarczające do obsługi transmisji dyskowy. Odpowiedź jest, jak zwykle w świecie PC-ta, jedna i ta sama: w celu zapewnienia zgodności wstecznej. 5.4 SCSI Drugim pod względem popularności zastosowań interfejsem jest SCSI (Small Computer Systems Interface). SCSI jest bardziej zaawansowanym interfejsem niż IDE/ATA posiadającym kilka zalet, predysponujących go do zastosowań profesjonalnych. Mimo niewątpliwych zalet nie zyskał on poparcia ze strony ”amatorskich” użytkowników komputerów. Główną przyczyną tego stany rzeczy są koszty jakie należy ponieść, chcąc korzystać z tego interfejsu. Ponadto gdyby nawet zainwestować w niego, to i tak w warunkach domowych trudno byłoby dostrzec jego zalety. Podczas gdy IDE należy traktować jako interfejs połączeniowy, SCSI stanowi rodzaj szyny systemowej, z inteligentnymi kontrolerami umieszczonymi w każdym urządzeniu, współpracującymi przy przesyłaniu danych. SCSI wspiera wiele różnych typów urządzeń; nie jest, jak IDE/ATA dedykowany tylko dyskom twardym2 . Projektowany od podstaw jako dodatkowa szyna dla urządzeń peryferyjnych, SCSI oferuje dużą wydajność oraz możliwość stosowania rozszerzeń z zachowaniem kompatybilności. Interfejs SCSI sięga swoim początkiem roku 1979, kiedy to Shugart Associates, kierowane przez Alana Shugarta, stworzyło SASI (Shugart Associates System Interface). Ten bardzo dawny przodek interfajsu SCSI miał dość ograniczony potencjał — dysponował niewielką liczbą komend w porównaniu z pierwszymi ”prawdziwymi” interfejsami SCSI i dysponował przepustowością 1.5 MB/s. Jak na swoje czasy SASI był wielką ideą, gdyż był pierwszą próbą stworzenia inteligentnego interfejsu pamięci masowych dla ”małych” komputerów. Z faktu tego łatwiej będzie zdać sobie sprawę, jeśli uświadomimy sobie, że były to czasy gdy popularnie używano 8-calowch napędów dyskietek. Prace nad uczynieniem z SASI standardu akceptowanego przez ANSI rozpoczęto w 1981 roku, zaś opublikowano go w 1986. W między czasie wprowadzono wiele poprawek w protokole i polepszono jego wydajność. Zmieniono również nazwę na SCSI. SCSI wymaga interfejsu umożliwiającego jego współpracę z szyną PCI lub ISA. Nie jest to kontroler jako, że właściwy kontroler wbudowany jest w każde urządzenie SCSI; prawidłowa nazwa to ”host adapter” (choć znacznie częściej używane jest pojecie ”kontroler”). Urządzenia SCSI przyłączane są do magistrali systemowej właśnie za pomocą host adaptera. Host adapter zaliczany jest do urządzeń SCSI i należy go uwzględnić rozważając maksymalną możliwą do podłączenia liczbę urządzeń. Każde urządzenie musi mieć jednoznacznie nadany numer ID. Nie ma związku między nadanym numerem a fizyczną pozycją na magistrali; kolejność nadawania numerów jest dowolna. Wymaga się aby końce magistrali zostału odpowiednio zakończone za pomocą tak zwanych terminatorów. Zapobiega to nieporządanym 2 Wprawdzie rozszerzenie standardu ATA umożliwia obsługę innych niż dysk twardy urządzeń, dotyczy to jednak niewielkiej ich klasy, jak na przykład CD-ROM-y 66 ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE odbiciom sygnałów oraz gwarantuje integralność danych przy stosowaniu dłuższych kabli połączeniowych. Obowiązuje generalna zasada, że magistrala może mieć tylko jeden początek i jeden koniec (oba obciążone oczywiści termainatorami). Nie są zatem dozwolone żadne rozgałęzienia typu ”Y” czy ”T”. Teoretycznie, jak już nadmieniono powyżej, przydział adresów do urządzeń jest dowolny. ”Teoretycznie”, gdyż od tej zasady istnieją dwa wyjątki. Pierwszym z nich jest adres kntrolera. Koncepcja SCSI stosuje bowiem pojęcie priorytetu w dostępie do magistrali. Im większy adres urządzenia, tym wyższy jest jego priorytet. Konsekwencją takiego podejścia jest nadawanie kontrolerowi identyfikatora 73 . Dla zachowania zgodności w dół, ten numer przyznawany jest również w typach obsługujących do 16 urządzeń. Drugi wyjątek wynika z faktu, iż niektóre kontrolery wymagają, by system operacyjny ładowany był dysku 0. SCSI-1 powstały w roku 1986 używał asynchronicznego trybu transmisji. Szerokość magistrali wynosiła 8 bitów, co pozwalało na transfer z prędkością 3 MB/s. Możliwe było podłączenie 8 urządzeń (w tym host adapter). Maksymalna długość magistrali to 6 metrów. Standard SCSI-2 zaakceptowany przez ANSI w 1994 roku zwiększał szybkość transmisji do 5 MB/s. Dodatkowo umożliwiono łączenie innych, niż dysk twardy, urządzeń. Ponadto zdefiniowano dwa opcjonalne usprawnienia dotyczące szybkości: podwojenie częstotliowści pracy do 10 MHz (tzw. Fast SCSI) oraz zwiększenie szerokości magistrali do 16 bitów (Wide SCSI). Oba te rozwiązania te mogły być zastosowane razem, albo tylko jedno z nich, albo żadne. Wide SCSI umożliwiał podłączenie do 16 urządzeń. Długość magistrali wynosi 3 metry. Osiągalny maksymalny transfer przedstawia się następująco Typ SCSI-Fast SCSI-Wide SCSI-Fast-Wide Maksymalna liczba urządzeń Host+7 Host+15 Host+15 Maksymalny transfer (MB/s) 10 10 20 Specyfikacja SCSI-3 opublikowana po raz pierwszy w 1996 wprowadza pewien nieład. Spowodowane jest to wprowadzeniem listy opcjonalnych rozszerzeń. Dowolność ich wyboru powoduje, że na rynku pojawiają się urządzenia spełniające wymagania standardu SCSI-3 a jednak różniące się znacznie parametrami. Sytuacji nie poprawia fakt, iż producenci mają tendencję do różnego nazywania tego samego. Rozszerzeniami tymi są: posługiwanie się obydowoma zboczami sygnałów taktujących co prowadzi do zwiększenia pasma przepustowego bez podnoszenia ich częstotliowści; kontrola poprawności przekazu za pomocą kodów CRC; odrębny protokół diagnostyczny pozwalający na ocenę jakości połączenia; przyspieszone przekazywanie grup rozkazów za pośrednictwem protokołu pakietowego; uproszczenie i skrócenie mechanizmu uzyskiwania dostępu do magistrali. Ponadto definicja standardu eliminuje konieczność stosowania dodatkowego kabla połączeniowego w trybie Fast lub Wide oraz wspiera stosowanie światłowodów. Ważną cechą jest dodanie SCAM (SCSI Configuration Auto-Magically), który eliminuje jednen z większych problemów związanych z SCSI – prawidłowa konfiguracja. Parametry tego standardu przedstawiają się następująco Typ Ultra-SCSI Ultra-Wide-SCSI Ultra-Wide-SCSI-Diff Ultra-2-Wide-SCSI Ultra/160 3 Pierwsze Maksymalna liczba urządzeń Host+7 Host+7 Host+15 Host+15 Host+15 Maksymalny transfer (MB/s) 20 40 40 80 160 realizacje SCSI umożliwiały podłączenie maksymalnie 8 urządzeń. Maksymalna długość magistrali (m) 3 3 25 12 12 ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 5.5 67 Złącze IEEE-1394 Omawiane tutaj złącze stanowi odmianę magistrali szeregowej o bardzo szerokim polu zastosowań nie tylko w branży komputerowej. Umożliwia ono łączenie urządzeń wymagających dużego transferu danych jak dyski twarde, karty wideo, magnetowidy, telewizory, skanery, sprzęt stereofoniczny, odtwarzacze DVD itp. Standard magistrali szeregowej IEEE 1394 4 powstał w 1986 roku w laboratoriach firmy Apple jako alternatywa dla interfejsu SCSI. Co ciekawe, technologia ta rozwinęła się kilka lat wcześniej przed opracowaniem USB przez Intela. Początkowo FireWire był popularyzowany przez - specjalnie do tego celu powołaną organizację 1394 Trade Association, a w 1995 doczekał się certyfikatu przemysłowego nadanego przez Institute of Electrical and Electronics Engineers (IEEE) - oficjalna nazwa to IEEE 1394-1995. Ujęte w dokumentach normalizacyjnych ogólne cechy magistrali IEEE-1394 obejmują szereg różnorodnych zagadnień (topologie, protokoły, prędkość transmisji itp). Ogólna koncepcja jest bardzo obszerna i pozwala na budowę bardzo rozległych i złożonych systemów. Transfer odbywa się w zasadzie w trybie asynchronicznym. Standard przewiduje jednak możliwość wynegocjowania kanałów o minimalnej gwarantowanej przepustowości. Zdefiniowane są trzy prędkości: * 98304 Mb/s (12.5 MB/s), oznaczana S100, * 196608 Mb/s (25 MB/s), oznaczana S200, * 393216 Mb/s (50 MB/s), oznaczana S400. Jedną z cech charakterystycznych standardu jest zakaz budowania pętli. W standardzie FireWire maksymalna liczba węzłów (urządzeń) pracujących w sieci wynosi 64. Innymi słowy, do pojedynczego komputera możliwe jest jednoczesne podłączenie 63 urządzeń peryferyjnych (skanerów, drukarek, dysków twardych, napędów DVD, kamer cyfrowych itp.). Ze względu na sposób łączenia poszczególnych urządzeń pracujących w standardzie FireWire sieć IEEE 1394 jest siecią typu peer-to-peer (point-to-point), bez wydzielonego węzła nadrzędnego. Oznacza to, że każdy wchodzący w jej skład komponent może kontaktować się samodzielnie z innymi elementami struktury. Przykładem takiej bezpośredniej komunikacji jest np. sytuacja, w której odpowiednio skonfigurowany aparat cyfrowy współpracuje z drukarką atramentową, natychmiast ”wywołując” gotowe fotografie - i to wszystko bez udziału komputera. Inną, bardzo istotną właściwością interfejsu szeregowego FireWire jest możliwość dowolnego podłączania i odłączania poszczególnych urządzeń w trakcie pracy całego systemu - bez potrzeby wyłączania komputera (Hot-plug). Jest to ściśle związane ze zdefiniowaną w specyfikacji IEEE 1394 cechą samokonfiguracji i rekonfiguracji poszczególnych elementów sieci. Takie rozwiązanie w założeniach podobne jest do mechanizmu plug and play stosowanego m.in dla magistrali USB. Podczas inicjalizacji magistrali wszystkie połączone ze sobą komponenty sieci IEEE 1394 ”dogadują się” ze sobą - ustalają numery identyfikacyjne, uzgadniają, które z nich będą pełnić funkcję koncentratorów (hubów) oraz przejmą na siebie funkcje kontrolne. Odłączenie jakiegokolwiek urządzenia lub gałęzi sieci nie pociąga za sobą żadnej przerwy w działaniu systemu, lecz podział struktury na dwie podsieci, pracujące od tej chwili zupełnie niezależnie od siebie. Co ciekawe, ponowne uaktywnienie węzła powoduje automatyczne zrekonfigurowanie i połączenie w całość obu oddzielonych uprzednio gałęzi. Interfejs FireWire do komunikacji pomiędzy poszczególnymi węzłami wykorzystuje transmisję pakietową. Nagłówek każdego pakietu zawiera: informacje (numer identyfikacyjny) o urządzeniu wysyłającym i odbiorczym, kanale przenoszenia, priorytecie transmisji, bajty kontrolne CRC oraz różne informacje dodatkowe. Tymi ostatnimi mogą być np. dane służące do zabezpieczenia przed nielegalnym kopiowaniem filmów DVD - telewizor zignoruje ciąg bitów zabezpieczających (wyświetli film), lecz układ kontrolny magnetowidu nie zezwoli na włączenie zapisu. 4 Stosuje się również onaczenia Fire Wire, i.Link. ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 68 W sieci pracującej w standardzie IEEE 1394 występują zarówno urządzenia transferujące dane w czasie rzeczywistym (np. kamery wideo), jak i nie wymagające tak szybkiej komunikacji (np. skaner lub drukarka). Ponadto interfejs ten dopuszcza współistnienie węzłów o różnej prędkości transmisji (100, 200 i 400 Mbit/s). W jaki więc sposób realizowana jest szybka komunikacja wewnątrz sieci? Standard IEEE 1394 obsługuje dwie różne techniki transmisji danych: asynchroniczną i izochroniczną. Większość urządzeń o niskiej i średniej prędkości przesyłania danych (np. skanery, drukarki, modemy) korzysta z transferu asynchronicznego. Urządzenie nadawcze wysyła dane pod ściśle określony adres i oczekuje na potwierdzenie poprawności transmisji. W przypadku niepowodzenia operacji następuje powtórzenie transferu. Innymi słowy, gwarantowane jest bezbłędne dostarczenie danych do urządzenia odbiorczego.Dla transferu asynchronicznego zarezerwowane jest zawsze minimum 20% pasma przenoszenia magistrali IEEE-1394. Technika transferu izochronicznego polega natomiast na dokładnym ustaleniu szybkości transmisji, która byłaby niezmienna w czasie. Dane przekazywane są do wszystkich części magistrali FireWire w regularnych odstępach czasu bez potwierdzenia poprawności transmisji. ”Spóźnione” dane lub informacje odebrane niepoprawnie uznawane są za ”nieważne” i nie są powtórnie transmitowane. Z izochronicznym transferem danych związane są kanały transmisyjne (maksymalnie mogą być 64). Dołączenie do interfejsu IEEE 1394 urządzenia wymagającego przekazu danych w czasie rzeczywistym powoduje automatyczne przydzielenie mu kanału transferu izochronicznego o żądanym paśmie przenoszenia. W przypadku podłączenia kilku lub kilkunastu węzłów izochronicznych mechanizm arbitrażu (co 125 ms) dzieli dostępne pasmo przenoszenia magistrali FireWire pomiędzy wszystkie węzły aktualnie przesyłające dane w czasie rzeczywistym. 5.6 Złącze USB Koncepcja magistrali USB jest pod wieloma względami niezmiernie elastyczna. Projektanci starali się zagwarantować nowej technice maksimum popularności, co oznaczało konieczność dostosowania jej do szerokiej gamy urządzeń: od powolnych klawiatur prze modemy do szybkich skanerów i kamer wideo. Dostępne pasmo przepustowe musi być optymalnie wykorzystane, przy czym należy zagwarantować prawo dostępu do magistrali dla urządzeń wszelkich klas prędkości. Celem twórców złącza USB (m.in. Intela, Microsoftu, IBM-a i NEC-a) było skonstruowanie pojedynczego interfejsu, który w przyszłości umożliwiłby pecetowi komunikację z całym zestawem najróżniejszych urządzeń peryferyjnych. Urządzenia USB można swobodnie dołączać i odłączać podczas pracy komputera. Zgodnie z ideą twórców standardu system operacyjny powinien natychmiast rozpoznać nowe urządzenie i błyskawicznie zainstalować dla niego odpowiednie sterowniki (prawdziwy mechanizm plug and play). Jak łatwo zorientować się po samej nazwie, złącze USB wykorzystuje szeregową magistralę danych (serial bus). Wszystkie dane są przesyłane kolejno za pośrednictwem jedynie czterożyłowego kabla. Dzięki zaawansowanemu mechanizmowi sterowania najszybsza dotychczas wersja magistrali USB oferuje dość wysoką przepustowość - 1,5MB/s, co odpowiada szybkości 10-krotnego CD-ROM-u lub starego dysku twardego IDE. W celu ograniczenia kosztów i podniesienia atrakcyjności standardu USB wśród producentów urządzeń peryferyjnych, opracowany został dodatkowo wolniejszy tryb pracy o przepustowości zaledwie 200 KB/s. Taka szybkość transmisji jest zupełnie wystarczająca w przypadku prostych urządzeń, które muszą przesyłać niewielkie ilości danych. W przyszłości planowana jest jeszcze implementacja urządzeń USB, które będą komunikować się z szybkością przekraczającą 60 MB/s. Taka przepustowość będzie wystarczająca nawet dla zaawansowanych aplikacji multimedialnych. Dużą zaletą architektury USB jest możliwość rozbudowy, pozwala ona bowiem na jednoczesne podłączenie do komputera nawet 127 urządzeń peryferyjnych. Odbywa się to za pośrednictwem tzw. hubów, czyli rozdzielaczy działających w analogiczny sposób jak wielowtykowe gniazda w instalacji elektrycznej. W zależności od konstrukcji danego huba, może ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 69 on wzmacniać napływające sygnały oraz zasilać w prąd mniejsze urządzenia. Rozwiązanie to pozwala ograniczyć do niezbędnego minimum liczbę kabli i gniazd zasilających. Zgodnie ze specyfikacją interfejsu USB konfiguracja takich hubów może mieć maksymalnie siedem poziomów. Przy podłączaniu urządzeń zasilanych z portu USB należy jednak zachować ostrożność. Zużycie prądu jest tu mierzone w jednostkach obciążenia loads (ładunki), przy czym jeden ”ładunek” odpowiada maksymalnemu natężeniu 100 mA. Dane urządzenie może należeć albo do kategorii low power (zużycie prądu wynosi maksymalnie jeden ”ładunek”), albo do high power (do pięciu ”ładunków”). Informacje na ten temat znaleźć można z reguły w dokumentacji odpowiedniego sprzętu. Do jednego portu USB w pececie nie wolno podłączać więcej niż jednego urządzenia należącego do kategorii high power. W przypadku tego typu problemów powinniśmy wykorzystać dodatkowy hub z własnym zasilaniem (np. w monitorze). Kolejnym aspektem jaki należy brać pod uwagę podłączając kolejne urządzenia peryferyjne jest wydajność. Jeśli do kilku koncentratorów ”wepnie się” jednocześnie zbyt wiele elementów, to przepustowość magistrali może okazać się niewystarczająca. Z drugiej strony nie zawsze instalacja sprzętu USB jest tak prosta, jak obiecują to jego producenci. Technologia USB jest pod wieloma względami bardzo podobna do tej którą posługuje się magistrala IEEE-1394. Obie techniki oferują zbliżone parametry. Konkurujące ze sobą techniki starają się zdominować różne sektory branży elektronicznej: USB próbuje opanować sektor urządzeń peryferyjnych w technice komputerowej, a IEEE-1394 chce zawładnąć dziedziną wymiany danych pomiędzy sprzętem audiowizualnym. Do wspólnych właściwości porównywanych rozwiązań niewątpliwie należy zaliczyć: magistrale są typu szeregowego; transfer danych w formie pakietowej odbywa się w trybie synchronicznym z wydzielonym kanałem izochronicznym; magistrale konfigurują się automatcznie w trakcie pracy, rozpoznawane jest zarówno ”pojawienie” się jak i ”zniknięcie” urządzeń; automatyczny przydział adresów; nie ma konieczności odnajdowania zakończeń magistrali i instalacji terminatorów. 5.6.1 USB 2.0 Wydajność oferowana przez USB 1.1 jest całkowicie wystarczająca dla urządzeń typu mysz czy klawiatura, jednak ustępuje znacznie IEEE 1394 gdy pod uwagę weźmie się urządzenia typu dysk twardy czy skaner. Właśnie w celu uczynienia z USB ”prawdziwego” konkurenta dla IEEE 1349 powstało konsorcjum, złożone między innymi z firm Intel, Microsoft, HawlettPackard, Compaq, Philips, mające na celu opracowanie nowego standardu interfejsu USB. USB 2.0 rozszerza możliwości transferu oferowane przez USB 1.1 z 12Mb/s do 360-480 Mb/s. Zakłada się, że nowy interfejs będzie zgodny z poprzednim w obie strony. 5.7 IrDA 5.7.1 IrDA DATA Począwszy od 1994 roku IrDA DATA definiuje standard uniwersalnego bezprzwwodowego systemu transmisji danych za pomocą portu podczerwieni. IrDA Data Protocols składa się z pewnej ilości protokołów podstawowych i opcjonalnych. Do podstawowych zaliczyć należy: PHY (Physical Signaling Layer); IrLAP (Link Access Protocol); IrLMP (Link Management Protocol and Information Access Services (IAS)). ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 70 Charakteryzacja PHY Minimalna odległość między urządzeniami wynosi 1 m. Dla urządzeń o zmniejszonym poziomie zasilania odległość ta wynosi od 20 do 30 cm (możliwe jest wówczas 10-krotne zmniejszenie poboru energii). Aby współczynnik szybkość połączenia/koszt mógł być dobrany odpowiednio do zaistniałej sytuacji do dyspozycji jest szeroki zestaw klas. W każdej z nich połączenie jest dwukierunkowe. Szybkość transmisji wahać się może od 9600 b/s do 4 Mb/s z krokiem co 115 kb/s. Pakiety z danymi zabezpieczane są za pomocą kodu CRC (CRC-16 do prędkości 1.152 Mb/s, CRC-32 do prędkości 4 Mb/s). Charakteryzacja IrLAP Provides a device-to-device connection for reliable, ordered transfer of data. Device discover procedures. Handles hidden nodes. Charakteryzacja IrLMP Provides multiplexing of the IrLAP layer. Multiple channels above an IrLAP connection. Provides protocol and service discovery via the Information Access Service (IAS). 5.7.2 IrDA CONTROL IrDA CONTROL jest standardem dotyczącym bezprzewodowej komunikacji urządzeń peryferyjnych, takich jak mysz, klawiatura, wszelkiego typu urządzenia wskazujące, z tak zwanym ”host devices” którym może być zarówno komputer jak i telewizor, magnetowid, lodówka (jeśli ktoś coś takiego w niej zaimplementuje) – słowem dowolne inne urządzenie, którym można sterować. Do podstawowych protokołów definiowanych przez IrDA Control należą: PHY (Physical Layer); MAC (Media Access Control); LLC (Logical Link Control). Charakteryzacja IrDA Control Physical Signaling Minimalna odległość wynosi 5 metrów. Obowiązuje dwukierunkowa komunikacja. Szybkość transmisji do 75 kb/s. Pakiety z danymi zabezpieczone są kodem CRC (CRC-8 lub CRC-16 w zależności od długości pakietu. Rozwiązanie fizyczne zoptymalizowane pod kątem niskiego zużycia energii i mogą być zastosowania w urządzeniach niskobudrzetowych. Charakteryzacja IrDA Control MAC Możliwość komunikacji hosta z wieloma urządzeniami; jednoczesna komunikacja z 8. Zapewnienie krótkiego czasu reakcji. Charakteryzacja IrDA Control LLC Zapewnia retransmisję danych w przypadku wykrycia błedów. ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 5.8 71 Interfejs RS-232C RS-232C jest określeniem powstałego w USA standatdu przesyłania informacji między urządzeniami za pośrednictwem łącza szeregowego. Standard ten definiuje parametry mechaniczne, elektryczne i logiczne złącza. Łącza szeregowe, w które wyposażony jest komputer klasy PC/XT i AT, przystosowane są do transmisji asynchronicznej. Przeznaczone do przesłania dane w formie szeregowej otrzymują pewien rodzaj ”opakowania” – tzw. ramki. Jednorazowo przez łącze przekazywana jest właśnie ramka, a nie pojedynczy bit. Na ramkę składają się: znacznik początku ramki; dane; bit kontroli parzystości; znacznik końca rami. Czas trwania jednego bitu ramki, tj. jednego wyimaginowanego przebiegu synchronizującego, wynika ściśle z uzgodnionej prędkości transmisji. W standardzie tym nadawca może wysyłać znaki w dowolnej chwili i robić dowolnie długie przerwy pomiędzy poszczególnymi znakami. Asynchroniczność oznacza, iż odbiorac i nadawca nie wymagają koordynacji przed wysłaniem informacji. Gdy jednak nadawanie rozpocznie się, nadawca wysyła wszystkie bity bez przerw między nimi. W standzrdzie tym, kabel po którym następuje transmisja pozostawiany jest pod ujemnym napięciem (oznaczającym bit 1) gdy nie ma żadnych informacji do przesłania. Ponieważ między kolejnymi bitami napięcie nie powraca do zera, zarównoo nadawca jak i odbioraca muszą ustalić czas odpowiadający przesłaniu jedngo bitu. Odbiorca uruchamia swój zegar w momencie otrzymania pierwszego bitu. Ponieważ stan ”bezczynności” jest sygnalizowany w taki sam sposób jak bit o wartości 1, zatem w celu odróżnienia tych dwóch stanów przesyłany jest bit startu, czyli dodatkowy bit o wartości 0. Wszystkie cechy charakterystyczne ramki, tj. prędkość transmisji, liczba bitów danych (od 5 do 8), liczba bitów stopu, tryb kontroli parzystości są uzgadniane między nadajnikiem a odbiornikiem jako format przekazywanych danych jeszcze przed nawiązaniem połączenia. Na ogół ustawień dokonuje się ręcznie, za pomocą odpowiednich programów konfiguracyjnych. Tylko w ten sposób możliwe jest prawidłowe odczytywanie napływających do odbiornika informacji. Generator odbiornika pracuje więc z założenia z taką samą częstotliwością, z jaką pracował generator nadawczy. Należy jedynie dokonać jeszcze odpowiedniej synchronizacji fazy, tzn. uruchomić układ dekodujący odbiornika precyzyjnie na początku ramki. Standard RS-232C dotyczy wymiany danych pomiędzy tzw. terminalem DTE (Data Terminal Equipment) a modemem DCE (Data Communication Equipment). Utworzony został dla potrzeb ujednolicenia komunikacji między końcówką komputerową (Terminal) a dużym komputerem (Host) przy użyciu łącz telefonicznych i modemów. Pod pojęciem DTE rozumiemy dziś jednak głównie komputery PC. Połączenie interfejsów RS-232C od strony mechanicznej stanowi 25-żyłowy przewód zakończony zdefiniowanymi przez standard wtykami. Większość linii przeznaczona została na potrzeby szeregowej transmisji synchronicznej. W standardzie IBM PC wykorzystywane jest tytlko 9 z tych sygnałów, dlatego też często zamiast wtyku 25-końcówkowego (DB-25) stosuje się wtyk 9-końcówkowy (DB-9). Ta liczba linii w zupełności wystarcza do obsłużenia transmisji asynchronicznej w standardzie RS-232C. Łącze szeregowe może pracować w jednym z trzech trybów. Tryb simpleksowy Łącze skonfigurowane jest na stałę na jeden z możliwych kierunków transmisji: z DTE do DCE lub na odwrót, z DCE do DTE. ROZDZIAŁ 5. MAGISTRALE POŁĄCZENIOWE 72 Tryb półdupleksowy W tym trybie zarówno DTE, jak i DCE mogą być stroną nadającą oraz odbierającą. Do dyspozycji jest jednak tylko jeden logiczny kanał danych, który można naprzemiennie wykorzystywać w obu kierunkach. Tryb dupleksowy Dane pomiędzy DCE i DTE mogą być przekazywane jednocześnie w obu kierunkach. W trybie tym nie jest wymagane uzyskanie przez jedną ze stron zezwolenia na nadawanie. Kanał logiczny połączenia otwarty jest stale w obie strony. 5.9 Złącze równoległe Złącze równoległe jest jednym z najstarszych elementów architektury PC, który w praktycznie niezmienionej postaci utrzymuje się od wielu już lat. Złącze narodziło się wraz z ideą komputera PC, kiedy to powstała konieczność zaimplementowania prostego złącza równoległego do obsługi drukarki. Łącze służyć miało tylko temu celowi, dlatego też specyfikacja obejmowała tylko transfer jednokierunkowy. Oprócz 8-bitowej magistrali danych, wyposażono je w cztery linie sterujące. Drukarka miała w prawdzie możliwość zgłaszania pewnych sytuacji wyjątkowych, ale o normalnym transferze danych w kierunku przeciwnym nie można było w tym przypadku mówić. Specyfikacja portu równoległego definiuje 5 lini statusowych, z których część służy realizacji protokołu Centronics a część pozwala na sygnalizację pewnych stanów wyjątkowych. Okazało się, że cztery spośród tych linii wykorzystać można do transmisji w kierunku odwrotnym. Dwa następujące po sobie półbajtowe (stąd nazwa – tryb półbajtowy) cykle pozwalają na organizację wymiany danych w tempie około 100 kB/s. Łącze równoległe umożliwia transfer danych na odległość do około 5 m (szeregowe do około 200 m). Standard IEEE-1284, wydany w 1994 definiuje pięć trybów pracy portu równoległego PC: Tryb kompatybilny (Compatibility Mode). Tryb podstawowy oferujący jednokierunkową transmisję z maksymalną prędkością 200 kB/s (praktycznie ok. 150 kB/s). Tryb półbajtowy (Nibble Mode). Pozwala zarówno na wysyłanie, jak i odbieranie danych z wykorzystaniem 4 lini wejściowyh. Dane odbierane mogą być z prędkością 100 kB/s. Tryb bajtowy PS/2 (Byte Mode). Tryb ten korzysta ze modyfikowanego dwukierunkowego portu danych. Modyfikacja taka musi być zaimplementowana przez producenta sprzętu. W obu kierunkach kanał udostępnia pasmo maksymalne do 200kB/s. Tryb EPP (Enhanced Parallel Port). Kanał dwukierunkowy o szerokości maksymalnej 2.3 MB/s. Na ogół wykorzystywany jest do obsługi urządzeń wymagających szerszego kanału transmisyjnego jak na przykłąd skanery. Tryb ECP (Extended Capabilities Port). Tryb udostępnia kanał dwukierunkowy o parametrach podobnych do EPP. Dodatkowo w trybie tym korzysta się z buforów i kanału DMA. Pierwsze trzy tryby bazują na pierwotnym standardzie interfejsu. Dwa pozostałe wymagają kompletenej modyfikacji sprzętu. Tradycyjnie już, wszystkie kolejne standardy są zgodne w dół. Rozdział 6 Urządzenia peryferyjne 6.1 Monitory CRT 6.2 Wyświetlacze LCD 6.3 Drukarki 6.4 Skanery 6.5 UPS 73 Rozdział 7 Tryby PIO i DMA 7.1 DMA Procesor często postrzegany jest jako ”mózg” komputera. We wczesnych konstrukcjach tak było w istocie — procesor robił prawie wszystko. Oprócz wykonywania kodu programu był także odpowiedzialny za transfer danych to i z urządzeń peryferyjnych. Powieżenie tej ostatniej czynności procesorowi nie jest najszczęśliwszym rozwiązaniem, jako, że ”marnuje” on wówczas prawie bezproduktywnie swój czas. W procesie tym jest on bowiem tylko pośrednikiem umożliwiającym wykonanie transferu. Wprowadzenie kanałów DMA (direct memory access) dało możliwość wykonywania przez procesor czynności do jakich został stworzony, podczas gdy odbywał sie transfer danych. Należy zauważyć, że kanały DMA występują tylko w magistralach ISA, EISA oraz VLB. Ponadto odciążenie procesora nadzorowaniem transmisji tylko teoretycznie oznacza, że może on swobodnie wykonywać inne operacje. Trzeba bowiem pamiętać, że wszystkie szyny (adresowa, danych) są we władanu kontrolera DMA, a więc procesor może przetwarzć tylko te dane, które znajdują się w rejestrach lub pamieci podręcznej. Pojawienie się wraz z magistralą ISA kanałów DMA stanowiło istotne usprawinienie w transporcie danych. Jednak zastosowana wówczas technologia pozostała nie zmieniona do dzisiaj. Stało się to przyczyną dla której dzisiejsze twarde dyski nie korzystają z tego mechanizmu. Aktualnie dostępne (2001 XI) tryby danych: Tryb PIO 0 PIO 1 PIO 2 PIO 3 PIO 4 Singleword DMA 0 Singleword DMA 1 Singleword DMA 2 Multiword DMA 0 Multiword DMA 1 Multiword DMA 2 Ultra DMA 0 Ultra DMA 1 Ultra DMA 2 (UDMA/33) Ultra DMA 3 (UDMA/44) Ultra DMA 4 (UDMA/66) Ultra DMA 5 (UDMA/100) Maksymalny transfer [MB/s] 3.33 5.22 8.33 11.11 16.66 2.08 4.16 8.33 4.16 13.33 16.66 16.16 25.00 33.33 44.44 66.64 99.96 74 Zegar UDMA [MHz] 4.16 6.25 8.33 11.11 16.66 24.96 Rozdział 8 Zabezpieczenia transmisji danych 8.1 Kod CRC CRC (Cyclic Redundancy Code) jest cyklicznym kodem nadmiarowym używanym do detekcji błędów. Najczęściej wykorzystywany jest do zabezpieczania przed przekłamaniami ciągów danych podczas transmisji. Przyczyną wielkiej popularności tego kodu jest jego skuteczność wykrywania przekłamań, przy jednoczesnej prostocie obliczania i realizacji sprzętowej algorytmu. Zabezpieczenie danych w tej metodzie polega na dodaniu do nich specjalnie obliczonej dodatkowej informacji, którą stanowi właśnie kod CRC. Do obliczenia kodu CRC potrzebny jest tak zwany wielomian generacyjny. Stanowi on podstawę do obliczeń i dlatego jego znajomość jest niezbędna zarówno dla nadawcy jak i odbiorcy. Wielomianem generacyjnym jest łańcuch bitów, w którym kolejne pozycje są współczynnikami przy odpowiednich potęgach wielomianu. Na przykład wielomian postaci x7 + x 5 + x + 1 zapisujemy jako 1x7 + 0x6 + 1x5 + 0x4 + 0x3 + 0x2 + 1x1 + 1x0 co ostatecznie daje ciąg 10100011 Zarówno najstarszy jak i najmłodszy bit wielomianu generacyjnego musi być równy 1, a ciąg przeznaczony do zakodowania musi być od niego dłuższy. Przy obliczeniach obowiązuje arytmetyka modulo 2. Nie uwzględnia się przeniesień przy dodawaniu i pożyczek przy odejmowaniu. Operacje te są zatem równoznaczne z funkcją XOR. Na przykład 10011011 + 11001010 ---------01010001 11110000 - 10100110 ---------01010110 Do ciągu danych należy dodać na końcu tyle bitów zerowych ile wynosi stopień wielomianu generacyjnego. Następnie należy rozszerzony tak ciąg danych podzielić przez wielomian generacyjny. Dzielenie wykonujemy w następujący sposób. Rozpoczynamy od bitu danych położonego z lewej strony. Jeśli jest on równy 1, to poniżej przepisujemy wielomia generacyjny, jeśli 0, to wpisujemy same zera. Następnie wykonujemy dodawanie modulo 2 (czyli stosujemy 75 ROZDZIAŁ 8. ZABEZPIECZENIA TRANSMISJI DANYCH 76 funkcje XOR). W następnym kroku spisujemy z ciągu danych kolejny bit i powtarzamy poprzdnią operację aż zużyjemy wszystkie bity danych. To, co zostanie z dzielenia, będzie właśnie poszukiwanym kodem CRC. Bity te należy wpisać na koniec ciągu danych zamiast uprzednio dodanych bitów zerowych. Obliczając teraz kod CRC dla danych z dołączonym kodem, jeśli transmisja była bezbłędna, powinniśmy otrzymać zerową resztę z dzielenia. W praktycznych zastosowaniach używa się następujących wielomianów CRC 12 CRC 16 CRC CCITT = = = x12 + x11 + x3 + x2 + x + 1 x16 + x15 + x2 + 1 x16 + x12 + x5 + 1 Szczególnie dwa ostatnie wielomiany godne są polecenia, wyłapują bowiem szystkie błędy pojedyncze i podwójne, błędy z nieparzystą liczbą bitów, błędy seryjne o długości mniejszej od 16 bitów oraz 99.99% błędów seryjnych 18-bitowych i dłuższych. Przykład: obliczanie kodu CRC. Ciag z danymi 1101011011 Generator 10011 11010110110000 : 10011 10011......... -----......... 10011........ 10011........ -----........ 00001....... 00000....... -----....... 00010...... 00000...... -----...... 00101..... 00000..... -----..... 01011.... 00000.... -----.... 10110... 10011... -----... 01010.. 00000.. -----.. 10100. 10011. -----. 01110 00000 ----1110 - Kod CRC Rozdział 9 Pytania 1. Wymień główne zespoły składowe procesora i opisz ich rolę. 2. Wyjaśnij mechanizm funkcjonowania przerwań. 3. Omów ogólny format rozkazu. Jakie czynniki mają na niego wpływ? 4. Omów poszczególne etapy wykonania rozkazu. 5. Umieć opisać zmiany jakie zachodzą przy stosowaniu rozkazów skoku i wywołania podporogramu (zmiany licznika programu, zapamiętywanie na stosie miejsc powrotu). 6. Wymień i scharakteryzuj sposoby adresowania. 7. Wyjaśnij idee potokowego przetwarzania rozkazów. 8. Jakie parametry charakteryzują pamięć. 9. Przyczyny stosowania hierarchi pamięci. 10. Scharakteryzuj półprzewodnikowe pamięci o dostępie swobodnym. 11. Opisz modele organizacji pamięci. 12. Opisz zadania i sposób pracy pamięci podręcznej. 13. Opisz linię rozwojową układów pamięciowych stosowanych w komputerach domowych. Wskaż wyraźnie kolejne modyfikacje/zmiany. 14. Przedstaw budowę napędu dyskowego. 15. Przedstaw sposób organizacji danych na dysku magnetycznym. 16. W jakim celu wprowadzono macierze dyskowe. Opisz jeden z poziomów RAID. 17. Przedstaw zasadę pracy napędu magnetooptycznego. 18. Scharakteryzuj budowę, zasadę funkcjonowania itp. taśmy magnetycznej i napędów taśmowych. 19. Scharakteryzuj budowe i zasadę funkcjonowania dysków optycznych (CD). 20. Scharakteryzuj budowe i przedstaw zasadę funkcjonowania dysków DVD. 21. Przedstaw ogólną strukturę i zadania magistrali. 22. Wymień i opisz parametry charakteryzujące magistralę. 77 ROZDZIAŁ 9. PYTANIA 78 23. Przedstaw krótko linie rozwojową magistral w komputerach osobistych. 24. Scharakteryzuj magistralę połączeniową IDE/EIDE. 25. Scharakteryzuj magistralę połączeniową SCSI. 26. Scharakteryzuj jedną z następujących magistral połączeniowych: FireWire, USB, IrDA. 27. Opisz zasadę działania monitora CTR. 28. Opisz zasadę działania wyświetlacza LCD. 29. Wymień rodzaje drukarek i opisz sposoby ich pracy. 30. Co to jest skaner i jak działa? 31. Co to jest i do czego służy UPS? Jakie są rodzaje? 32. Przedstaw zabezpieczenia polegające na stosowaniu bitu parzystości, sumy kontrolnej, kodu CRC. Spis literatury [1] Wojciech Antosiewicz, AGP – pryszłość grafiki, PC WORLD KOMPUTER 5/97, s 24. [2] Maurice J. Bach, Budowa systemu operacyjnego UNIX, WNT, Warszawa, 1995. [3] Marcin Bieńkowski,Cyfrowe na złote, CHIP, 6/97. [4] Marcin Bieńkowski, Magistrala XXI wieku ?, CHIP 12/99, s. 158. [5] Marcin Bieńkowski, 20 stopień zasilania, CHIP, 5/2000. [6] Marek Czapelski, UPS – i nie zgasło, CHIP, 9/2000. [7] Marek Czapelski, Wypalanie na żądanie, CHIP, 11/00. [8] Robert Dec, Jak działa DVD, CHIP, 6/98. [9] Ewa Dziekańska, Narodziny procesora, CHIP, 9/98. [10] Ewa Dziekańska, Polimerowe pamięci optyczne, CHIP, 11/98. [11] Piotr Górecki, Skaner – oko komputera, Elaktronika dla wszystkich, 9/2001. [12] Zbigniew Gutowski, Marian Molski, Komputer w pytaniach i odpowiediach, WNT, Warszawa 1988. [13] Dariusz Hałas, Nagraj własne CD, ENTER 11/2001, s. 48. [14] http://www.irda.org/ [15] Ewa Hutny, Janusz Hutny, Magistrale, ENTER 3/94, s.33. [16] JS, Drukarki laserowe, ENTER, 7/93, s. 32. [17] JS, Igły i kolce, ENTER, 11/93, s. 58. [18] Marek Kowalski, Cienki czerwony kabelek, ENTER 11/2001, s.34. [19] Paweł Leśniorowski, Wirujący krążek, CHIP, 7/98. [20] Paweł Leśniorowski, Na wszelki wypadek, CHIP, 3/99. [21] Andrzej Majkowski, Michał Stelak, Jan Stożek, Czas na kolorowy wydruk, ENTER, 5/94, s.48. [22] Andrzej Majkowski, Czym drukować?, ENTER, 7/97, s. 44. [23] Andrzej Majkowski, Graficzna rewolucja Intela, ENTER 10/97, s. 28. [24] Andrzej Majkowski, Technologie druku kolorowego, ENTER, 11/97, s. 20. 79 SPIS LITERATURY 80 [25] Piotr Metzger,Anatomia PC, Helion, 2001. [26] Jerzy Michalczyk, Wewnętrzne życie odtwarzacza, CHIP, 3/97. [27] Jerzy Michalczyk, Bez barw? Nie!, CHIP, 12/97, s. 96. [28] Jerzy Michalczyk, Treci slot, CHIP, 2/98, s. 60. [29] Jerzy Michalczyk, Wzdłuż srebrnej spirali, CHIP, 7/98. [30] Jerzy Michalczyk, Twardziele przyszłości, CHIP, 9/98. [31] Jerzy Michalczyk, Technologia jutra?, CHIP, 11/98. [32] Jerzy Michalczyk, Wir pamięci, CHIP, 12/99. [33] Jerzy Michalczyk, Wybierz kolor i wypal!, CHIP, 10/00. [34] Łukasz Nowak, Nagrajmy to jeszcze raz, CHIP, 11/97. [35] Jacek Orłowski, Po prost spalam się, CHIP, 3/01. [36] Przemysław Pawełczyk, PCI ante portas?, ENTER 4/94, s. 22. [37] Przemysław Pawełczyk, Stara nowa ISA, ENTER 12/94, s. 30. [38] Przemysław Pawełczyk, Wymiana szyn, ENTER 12/95, s 30. [39] Przemysław Pawełczyk, Pamięci stałe CD-ROM. Nośnik dwuwarstwowy., ENTER 3/96, s. 22. [40] Przemysław Pawełczyk, Szyna dla wielu procesorów, ENTER 8/96, s. 27. [41] Przemysław Pawełczyk, CardBus i nie tylko, ENTER 11/96, s. 16. [41] Przemysław Pawełczyk, NFR podzwonne dla HDD?, CHIP, 12/98. [43] Marcin Pawlak, Koniec kłopotów, CHIP, 9/97. [44] Jacek Petrus, Wygrać złoto, CHIP, 4/98. [45] Murray Sargent III, Richard L. Shoemaker, The Personal Computer from the Inside Out (Third Edition), Addison-Wesley Publishing Company, 1995. [46] Abraham Silberschatz, James L. Peterson, Peter B. Galvin, Podstawy systemów operacyjnych, WNT, Warszawa 1993. [47] Ryszard Sobkowski, Historia naturalna PC. Wielotorowa historia szyny, ENTER 2/96, s. 24. [48] Ryszard Sobkowski, PCI zupełnie inaczej, ENTER 11/2001, s.31. [49] Ryszard Sobkowski, Przełamane bariery, ENTER, 1/2002, s. 26. [50] Ryszard Sobkowski, Nie tylko DDR, ENTER, 1/2002, s. 32. [51] Ryszard Sobkowski, Dżungla gniazd i podstawek, ENTER, 1/2002, s. 88. [52] Krzysztof Sokołowski, Jerzy Michalczyk, Silikonowa dżungla, CHIP, 10/97. [53] William Stallings, Organizacja i architektura systemu komputerowego, Wydawnictwa Naukowo-Techniczne, Warszawa 2000. [54] Michał Stelak, Igłą, tuszem i laserem, ENTER, 11/94, s. 44. SPIS LITERATURY 81 [55] Michał Stelak, Poświecić, pochlapać, ENTER, 7/96, s. 40. [56] Michał Stelak, Bez ”twardego” ani rusz, ENTER, 4/97, s. 62. [57] Michał Stelak, RAM bez prądu, PCkurier, 12 listopada 2001, s. 49. [58] Michał Stelak, Prąd na czarną godzinę, PCkurier 24, 26 listopada 2001, s. 44-48. [59] Andrew S. Tanenbaum, Rozproszone systemy operacyjne, Wydawnictwo Naukowe PWN, Warszawa 1997. [60] Krzysztof Wierzbicki, 60 milionów tranzystorów, ENTER, 1/2002, s. 36. [61] Krzysztof Wojtuszkiewicz, Urządzenia techniki komputerowej. Część I. Jak działa komputer?, MIKOM, Warszawa, 1999. [62] Krzysztof Wojtuszkiewicz, Urządzenia techniki komputerowej. Część II. Urządzenia peryferyjne i interfejsy, MIKOM, Warszawa, 2000.