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.