Podręcznik
Strona: | SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych |
Kurs: | Architektura systemów komputerowych: Magistrale, pamięć masowa, karty graficzne, urządzenia wejścia-wyjścia |
Książka: | Podręcznik |
Wydrukowane przez użytkownika: | Gość |
Data: | poniedziałek, 7 lipca 2025, 04:30 |
1. Magistrale – podstawowe pojęcia
Magistrale w systemie komputerowym służą do przesyłu danych pomiędzy różnymi elementami systemu. Oprócz samych danych po magistrali mogą również być przesyłane sygnały sterujące i adresy. Dane po magistrali mogą być przesyłane w postaci równoległej lub szeregowej. W przypadku magistrali równoległej potrzebnych jest wiele linii sygnałowych. Prowadzenie ścieżek z wieloma liniami jest skomplikowane. Poza tym sygnały mogą się „rozchodzić” przy dużych częstotliwościach taktowania magistrali. W celu ograniczenia liczby ścieżek magistrale równoległe mogą być multipleksowane (w przeciwieństwie do niemultipleksowanych). W przypadku magistrali multipleksowanej do przesyłu danych i adresów wykorzystywane są te same linie. Transfery danych mogą być przeprowadzane jako transakcje blokowe (ang. burst) – urządzenie automatycznie wystawia kolejne adresy, a dostęp do danych jest realizowany w 1 cyklu zegara.
Obecnie większość magistral stosowanych w systemach komputerowych to magistralne szeregowe. Dane są przesyłane „gęsiego” jedna za drugą, jednak nie bezpośrednio. Zwykle jest stosowany jakiś protokół przesyłu, który jednocześnie zapewnia ochronę danych. W ten sposób można przesyłać dane, adresy i sygnały sterujące.
Przesył danych po magistrali może być zrealizowany w sposób:
• synchroniczny – ustalone są chwile pojawienia się każdego sygnału w relacji do zegara CLK (transfer niezależny od szybkości działania nadajnika i odbiornika),
• asynchroniczny – ustalone jest tylko następstwo sygnałów (możliwe potwierdzanie sygnałów),
• półsynchroniczny - ustalone jest następstwo niektórych sygnałów oraz chwile pojawienia się niektórych sygnałów.
Asynchroniczny sposób działania magistrali umożliwia komunikowanie się urządzeń działających z różnymi prędkościami. Odbiór/nadanie danych jest w tym przypadku potwierdzane. Magistrale działające synchronicznie są szybsze. Przepływ danych synchronizowany jest jednym sygnałem zegarowym. Urządzenia muszą działać z podobnymi prędkościami, bo zegar jest dostosowany do najwolniejszego urządzenia. Możliwy jest też pośredni tryb działania magistrali – półsynchroniczny, w którym tylko pojawienie się niektórych sygnałów jest potwierdzane.
Przesył danych po magistrali zachodzi w kilku etapach:
• żądanie dostępu do magistrali przez urządzenie,
• arbitraż,
• zaadresowanie,
• przesłanie danych (zapis lub odczyt),
• detekcja i sygnalizacja błędów.
Nie wszystkie etapy muszą wystąpić w każdym przypadku. Na etapie żądania dostępu urządzenie zgłasza do kontrolera magistrali chęć transferu danych. Jeśli takich urządzeń jest więcej niż jedno należy przejść do fazy arbitrażu. Na tym etapie ustalane jest, które urządzenia ma pierwszeństwo. Arbitraż może być statyczny lub dynamiczny. Zaletą arbitrażu statycznego jest prostota. W tym przypadku urządzenia mają przydzielone stałe kwanty czasu, w których mogą użytkować magistralę. Istotną wadą tego rozwiązania jest to, że magistrala jest przydzielana nawet wtedy, gdy nie ma transakcji. W arbitrażu dynamicznym przydział magistrali jest realizowany na podstawie priorytetów zgłoszeń. W tym przypadku przydział magistrali następuje zgodnie z zapotrzebowaniem. Algorytm przydziału musi uwzględnić priorytety urządzeń, musi także wykluczać możliwość zablokowania magistrali (np. przez zastosowanie rotacji priorytetów). W fazie zaadresowania następuje wskazanie, z którym, drugim urządzeniem ma być nawiązana komunikacja. Po czym następuje przesłanie danych. W ostatnim etapie możliwa jest detekcja (i ewentualnie korekcja) błędów.
Jeśli chodzi o adresowanie urządzeń podłączonych do magistrali to najczęściej stosuje się adresowanie logiczne, w którym identyfikator jest ustawiany w urządzeniu. Alternatywą jest adresowanie geograficzne, gdzie rozpoznawana jest fizyczna lokalizacja gniazda, poprzez które jest dołączone urządzenie.
2. Typy magistral
W rozdziale tym opisano standardy najbardziej poularnych magistral.
2.1. ISA
Magistrala ISA (ang. Industry Standard Architecture) jest najstarszą magistralą, która została wprowadzona wraz z komputerem PC XT w 1981 roku jako magistrala systemowa. Była to magistrala 8 bitowa taktowana z szybkością 4.77 MHz. W 1984 roku, wraz z wprowadzeniem komputera PC AT, magistrala ISA przeszła gruntowny lifting. Przede wszystkim obsługiwała transfery 16 bitowe (z zachowaniem kompatybilności dla transferów 8 bitowych). Taktowanie magistrali wzrosło do 8.33 MHz. Maksymalny transfer po magistrali wynosił 8 MB/s. Pojedynczy transfer danych zajmował od 2 do 8 cykli zegarowych. Obecnie magistrala ISA nie jest już używana, ale trzeba przyznać, że był to standard, który na rynku komputerowym utrzymał się bardzo długo.
2.2. PCI
W momencie kiedy na rynku pojawiły się komputery 32 bitowe, 16 bitowa magistrala okazała się niewystarczająca. Zaczęto poszukiwać innych rozwiązań, które by ją zastąpiły. Pojawił się standard EISA (ang. Extended Industry Standard Architecture), w którym możliwe były transfery 32 bitowe, z zachowaniem pełnej kompatybilności ze starszym 16 bitowym rozwiązaniem. Kompatybilność wymusiła zachowanie taktowania 8.33 MHz. Magistrala była kosztowna i nie zapewniała znacznej poprawy osiągów, przez co nie była stosowana powszechnie. Innym rozwiązaniem była architektura MCA (ang. Micro Channel Architecture). Tu z kolei wszystko zostało zaprojektowane od początku. Nie było zachowania kompatybilności. Magistrala MCA taktowana była zegarem 20 MHz. Maksymalny transfer po magistrali wynosił 20MB/s. Transfery odbywały się w jednym cyklu zegara. Jednak twórca standardu, firma IBM, wszystko opatentowała i żądała od innych opłat za jego stosowanie. To nie przyczyniło się do popularności tego standardu. W międzyczasie powstał standard VESA Local Bus. Stanowiły go dołączone do płyty głównej zazwyczaj jedno, czy dwa gniazda. Można było do nich dołączyć najszybsze urządzenia. Zazwyczaj była to jedynie karta graficzna. Standard ten wykorzystywał lokalną 32 bitową magistralę procesorów Intel 386/486 łączącą procesor z pamięcią cache. Magistrala ta była taktowana z taką szybkością jak procesor (nie szybciej jednak niż 40 MHz) i umożliwiała transfer z prędkością do 120 MB/s. Jak można zauważyć było to znacznie więcej niż w przypadku EISA czy MCA. Jednak VESA Local Bus nie była uniwersalna i była związana z procesorami Intel 386 /486.
Następny procesor Intela, Pentium, wymagał opracowania nowej magistrali systemowej. W 1992 roku wprowadzono magistralę PCI (ang. Peripherial Component Interconnect). Była to zupełnie nowa 32 bitowa magistrala taktowana zegarem 33 MHz. Maksymalny transfer wynosił 132 MB/s. Każdy transfer był realizowany z jednym cyklu zegarowym (tryb burst). Magistrala PCI jest uniwersalną magistralą równoległą, która daje możliwość tworzenia złożonych systemów. Nie jest też ona zależna od stosowanego procesora. Wkrótce zdobyła dużą popularność i do chwili obecnej jest stosowana, chociaż w dużej mierze została już wyparta z rynku przez jej następcę – magistralę PCI Express. Należy nadmienić, że został również zdefiniowany 64 bitowy wariant PCI. Od wersji 2.1 możliwe jest również stosowanie taktowania 66 MHz. Rozszerzenia te były bardzo rzadko stosowane.
W wersji podstawowej (33 Mhz, 32 bity) sygnały transferowane po magistrali można zaliczyć do podstawowych grup:
1. systemowe,
2. adresu i danych – 32 linie multipleksowane,
3. przebiegu transmisji (FRAME, TRDY, IRDY, …),
4. arbitrażu,
5. sygnalizacji błędów,
6. sygnalizacji przerwań,
7. sterowania pamięcią cache.
Po magistrali mogą być wykonywane różne czynności, które są zdefiniowane dekodowaną komendą:
1. zezwolenie na przerwanie – odczyt wektora przerwań,
2. cykl specjalny – przesyłanie komunikatów do wszystkich urządzeń,
3. zapis/odczyt z urządzenia wejścia-wyjścia (ang. I/O write/read),
4. zapis/odczyt z pamięci (ang. memory write/read),
5. zapis/odczyt z pamięci konfiguracyjnej PCI (ang. configuration memory write/read),
6. cykl adresowania 64 bitowego (ang. dual address cycle).
Do magistrali PCI mogą być podłączone urządzenia nadrzędne (inicjatory transmisji), które mogą rozpoczynać transmisję danych i urządzenia podrzędne (nasłuchujące). Typowy przebieg transmisji danych jest przedstawiony na rysunku 1. Na początku urządzenie będące inicjatorem wystawia aktywny sygnał FRAME oraz jednocześnie adres (ADDRESS) urządzenia docelowego i komendę (BUS CMD). Urządzenie docelowe ma jeden cykl zegarowy, aby odczytać swój adres i zdekodować komendę. Sygnał IRDY wskazuje, że inicjator jest gotowy do rozpoczęcia transmisji danych. Urządzenie docelowe wystawia sygnał DEVSEL. Od tego czasu w każdym takcie zegara jest transferowane jedno 32 bitowe słowo danych. W każdej chwili inicjator lub urządzenie docelowe mogą wstrzymać transmisję wystawiając sygnały IRDY lub TRDY. Transmisję danych kończy zdjęcie sygnału FRAME i DEVSEL.
Rys. 1. Sygnały na magistrali PCI podczas operacji odczytu danych
Magistrala PCI ma swoją własną przestrzeń adresową. Poprzez wpisy danych do tej przestrzeni można konfigurować samą magistralę, jak i urządzenia do niej dołączone. Ta przestrzeń adresowa jest różna od przestrzeni adresów pamięci RAM. Pamięć magistrali PCI zawiera 256 bajtów dla jednego urządzenia. Pierwsze 64 bajty stanowią nagłówek o jednakowej strukturze dla wszystkich urządzeń. Pozostałe 192 bajty to rejestry specyficzne dla urządzenia.
2.3. AGP
AGP (ang. Accelerated Graphics Port) stanowi pewne przedłużenia magistrali PCI. Magistrala AGP została opracowana w 1997 roku i umożliwia bardziej wydajną pracę procesora graficznego. Dzieje się tak dlatego, że procesor graficzny sprawuje wyłączną kontrolę nad magistralą AGP (jest tylko jedno gniazdo takiej magistrali). Nic innego nie jest do niej dołączone. Magistrala AGP bazuje na specyfikacji PCI 2.1, zmienia jednak znaczenie niektórych sygnałów i wprowadza szereg nowych. Jest to 32 bitowa magistrala pracująca z częstotliwością 66 MHz. Magistrala AGP przechodziła liczne modyfikacje ustanawiające różne tryby pracy:
• Tryb 1x. Jest to proste rozszerzenie standardu PCI, w którym dzięki podwojeniu częstotliwości pracy zegara taktującego do 66 MHz, uzyskano teoretyczny maksymalny transfer 264 MB/s. W tym trybie stosowano napięcie 5V.
• Tryb 2x. Częstotliwość zegara pozostała taka jak poprzednio, ale wymiana danych odbywa się podczas narastającego i opadającego zbocza sygnału taktującego. Teoretyczna przepustowość wynosi 532 MB/s. Napięcie zasilające wynosiło 3.3 V.
• Tryb 4x. Różnica w stosunku do trybu poprzedniego polega na tym, że w czasie zbocza wykonywane są dwie transmisje, a więc teoretyczna przepustowość wzrasta do 1064 MB/s. Tryb ten pracuje ze znacznie obniżonym poziomem napięcia - 1.5V (AGP 2.0). Specyfikacja AGP 3.0 również definiuje tryb 4x, ale poziom napięcia zasilającego wynosi 0.8 V. Te dwa tryby 4x nie są ze sobą kompatybilne.
• Tryb 8x. W czasie zbocza sygnału taktującego wykonywane są cztery transmisje. Teoretyczna przepustowość wynosi 2128 MB/s. Jest to ostatni i jednocześnie najszybszy tryb działania AGP. Napięcia zasilające wynosi 0.8 V.
Wraz z magistralą AGP pojawiły się dwie istotne nowości. Pierwszą z nich jest tablica GART (ang. Graphics Address Remapping Table) umożliwiająca sprzętowe przeadresowywanie obszarów pamięci karty graficznej na obszar pamięci RAM. Dzięki temu karta graficzna ma dostęp do wydzielonego obszaru RAM. Pamięć RAM jest dużo tańsza, ale i dużo wolniejsza, niż pamięć karty graficznej. Drugą z nowości był mechanizm DIME (ang. Direct Memory Execute). Dzięki niemu akcelerator graficzny mógł operować na teksturach bez potrzeby wprowadzania ich do pamięci lokalnej. Jednak działania na teksturach trzymanych w pamięci RAM były dużo wolniejsze.
2.4. Wybrane magistrale międzyukładowe
Magistrala międzyukładowa łączy most północny z mostem południowym chipsetu, a obecnie procesor z mostem południowym, jako że most północny jest scalony z procesorem. W tej roli stosowano wiele różnych magistral. Na początku była to równoległa magistrala PCI. Później zaczęto poszukiwać innych rozwiązań, jako że przepustowość magistrali PCI nie wystarczała (było do niej jednocześnie dołączonych wiele urządzeń). Jako magistrale międzyukładowe zaczęto stosować magistrale szeregowe. Można tu wymienić takie rozwiązania jak Hub Architecture, V-Link, Hyper Transport, czy PCI Express. Pewną popularność zdobyła magistrala DMI (ang. Direct Media Interface) opracowana przez firmę Intel, służąca do komunikacji pomiędzy mostkiem północnym a południowym chipsetu. DMI po raz pierwszy zaprezentowana została w 2004 roku. Magistrala DMI jest zmodyfikowaną wersją PCI-E x4. Intel opublikował wiele podwariantów urządzeń współpracujących z ta magistralą, tak więc samo określenie DMI nie gwarantuje pełnej kompatybilności pomiędzy różnymi ich kombinacjami. W 2009 roku Intel zaimplementował interfejs DMI bezpośrednio w procesorach (rodzina Core i3, i5, i7). Przepustowość magistrali DMI wynosi 2,5 GT/s (GigaTransferów/sekundę).
2.5. Hyper Transport
Prace nad magistralą Hyper Transport (HT) zostały zapoczątkowane w roku 1997 przez firmę AMD. Magistrala ta stanowi pomost łączący wyłącznie dwa urządzenia (ang. Point-to-Point). Dane przesyłane są w formie szeregowej w pakietach, a strona elektryczna bazuje na LVDS (ang. Low Voltage Differential Signaling). HT ma konstrukcję modułową, która umożliwia implementacją, w zależności od potrzeb, magistrali o paśmie przepustowym od 0.4 GB/s do 6,4 GB/s. Niezależny ruch dwukierunkowy umożliwia realizację złącza dupleksowego (ang. Full Duplex). Podstawowa specyfikacja, oznaczona jako 2x, definiuje zegar kluczujący 800 MHz i pracę w trybie DDR (transfer na każdym zboczu sygnału taktującego). Pojedynczy link jest dwubitowy i udostępnia pasmo 200 MB/s w każdym kierunku, tworząc kanał dupleksowy o szerokości 400 MB/s. Zgodnie z założeniami specyfikacji link może być poszerzony do rozmiaru 4, 8, 16, 32 bitów. Dopuszczalna częstotliwość zegara kluczującego leży w zakresie od 400 MHz do 2 GHz. Kanał nie musi być symetryczny, jego szerokość może być zależna od kierunku. Możliwość taka ułatwia obsługę urządzeń, o których wiadomo, że są typowymi odbiorcami lub nadawcami.
Podstawowa architektura HT to połączenie od punktu do punktu. Specyfikacja przewiduje jednak bardziej złożone konstrukcje poprzez zastosowanie elementów komutujących pakiety (ang. switch). Uzyskanie topologii gwiazdy możliwe jest dzięki ulokowaniu takiego elementu w centralnym punkcie systemu. Drugą z form złożonych (bez udziału przełączników) jest połączenie łańcuszkowe (ang. Daisy Chain).
Ruch po magistrali HT ograniczony jest wyłącznie do pakietów. Długość pakietu musi być wielokrotnością DW (32 bitów). Pakiety sterujące przesyłane są w momencie aktywowania specjalnego sygnału (CTL). W pozostałych przypadkach magistrala transmituje pakiety, które niosą w sobie dane użytkowe w blokach o maksymalnej długości 64 bajtów.
2.6. PCI Express
Projekt rozwijany był początkowo pod nazwą 3GIO (ang. Third Generation I/O Architecture) przez grupę firm: Compaq, Dell, HP, IBM, Intel, Microsoft. Wstępna wersja specyfikacji została udostępniona w 2002 roku. Nazwa projektu, w trakcie realizacji procedury standaryzacyjnej, została zmieniona na PCI Express. System ten stanowi szynę lokalną typu szeregowego łączącą dwa punkty (ang. Point-to-Point). Szyna ta zastąpiła większość połączeń wewnętrznych architektury PC.
PCI Express zawiera sporo elementów architektury sieciowej. Struktura magistrali opiera się na szkielecie tworzonym przez pięć niezależnych, abstrakcyjnych warstw.
• W warstwie fizycznej odbywa się transmisja sygnałów. Najmniejszą jednostką informacji jest pakiet. Podstawowy link magistrali PCI Express składa się z dwóch niskonapięciowych, różnicowych par sygnałów LVD: pary nadawczej i pary odbiorczej. Sygnał zegarowy jest osadzony w sygnale danych. Tak jak w wielu innych magistralach szeregowych stosowane jest wstępne przekodowywanie z ośmiu na dziesięć bitów (8b/10b), które poprawia parametry elektromagnetyczne i eliminuje składową stałą. Początkowa przepustowość to 2.5Gb/s/kierunek i przewiduje się, że wzrośnie wraz z rozwojem technologii do 10Gb/s/kierunek (maksimum dla sygnałów w przewodzie miedzianym).
• Warstwa łącza ma za zadanie zabezpieczyć spójność transmisji. W celu zapewnienia integralności danych do transmitowanych pakietów dodawane są numery sekwencyjne oraz kody CRC.
• Generowane przez oprogramowanie żądania zapisu i odczytu przekazywane są do warstwy transakcji. Przyjęte zgłoszenie przetwarzane jest na serię pakietów, których przesłanie powierza się warstwie łącza.
• Dwie ostatnie warstwy programowe (tj. PCI-Drivers/Software i PCI-PnP/OS) zapewniają kompatybilność z magistralą PCI.
Interesujący jest system przerwań, który musiał być rozwiązany inaczej niż w magistrali PCI. PCI Express jest szyną szeregową i nie ma dodatkowych linii sygnalizacyjnych. Do sygnalizacji przerwań wykorzystano system MSI (ang. Message Signaled Interrupts). System ten został już wprowadzony do specyfikacji PCI w wersji 2.2 jako funkcja dodatkowa. Żądania obsługi są przekazywane po prostu magistralą w formie wiadomości zapisywanej do wydzielonego obszaru pamięci.
Topologia PCI Express to Host Bridge i kilka punktów końcowych (urządzeń I/O) (Rys. 2). Switch może zapewniać komunikację punkt z punktem pomiędzy różnymi urządzeniami końcowymi. Przekazywanie danych, jeśli nie dotyczy transferów wymagających spójności pamięci, nie musi być kontrolowane przez Host Bridge. Switch jest tu pokazany jako odrębny element, ale często jest scalony razem z układem Host Bridge.
Rys. 2. Topologia magistrali PCI Express [źródło: https://en.wikipedia.org/wiki/PCI_Express]
Pasmo przepustowe magistrali PCI Express może być łatwo liniowo skalowalne przez dodanie dodatkowych par sygnałów (Rys. 3). Warstwa fizyczna wspiera szerokości linii x1, x2, x4, x8, x16, x32, strumień bajtów jest wtedy rozdzielany na poszczególne linie.
Rys. 3. Skalowanie pasma po magistrali PCI Express
Przepustowość magistrali PCI Express dla poszczególnych liczb par sygnałów jest podana w tabeli 1.
Tabela 1. Przepustowość magistrali PCI Express
magistrala | Przepustowość szczytowa w jednym kierunku | Przepustowość szczytowa w obu kierunkach (full duplex) |
PCI-E x1 | 250 MB/s | 500 MB/s |
PCI-E x2 | 500 MB/s | 1GB/s |
PCI-E x4 | 1GB/s | 2 GB/s |
PCI-E x6 | 2 GB/s | 4 GB/s |
PCI-E x16 | 4 GB/s | 8 GB/s |
PCI-E x32 | 8 GB/s | 16 GB/s |
2.7. USB
Magistrala USB (ang. Universal Serial Bus) doczekała się już wielu odsłon. W tabeli 2 przedstawione są poszczególne standardy wraz z maksymalną przepustowością.
Tabela 2. Standardy USB
Interfejs | Rok wprowadzenia | Przepustowość |
---|---|---|
USB 1.0 | 1994 | 1.5 Mbit/s 12 Mbit/s |
USB 2.0 | 2001 | 480 Mbit/s |
USB 3.0 | 2007 | 4.8 Gbit/s |
USB 3.1 | 2013 | 10 Gbit/s |
Poszczególne standardy różnią się nie tylko przepustowością, ale także właściwościami elektrycznymi i sposobem transmisji danych. Najstarszym jest standard USB 1.0. Definiuje on dwie prędkości transmisji 1.5 Mbit/s i 12 Mbit/s. Okablowaniem może być zwykła skrętka. USB 2.0 wprowadza jedną wyższą prędkość 480 Mbit/s. Tu kabel musi być już wyższej jakości, ekranowany. Natomiast elektrycznie i pod względem protokołu transmisji standardy te są w pełni kompatybilne. Magistrala USB ma strukturę drzewiastą (Rys. 4). Do magistrali mogą być dołączone urządzenia końcowe lub koncentratory.
Rys. 4. Drzewiasta struktura magistrali USB
Poprzez dołączenie dodatkowego koncentratora uzyskujemy nowe węzły ze złączami do przyłączania dalszych urządzeń końcowych lub innych koncentratorów. Na najwyższym poziomie zawsze musi występować jeden główny sterownik magistrali. Maksymalnie możemy dołączyć 127 urządzeń na 7 poziomach. Każdy z odcinków magistrali , łączący bezpośrednio dwa urządzenia, ma dwie linie wykorzystywane do przesyłania zasilania (Vcc, GND) i dwie linie sygnałowe do transmisji danych (D+, D-) (Rys. 5). Magistralą dostarczane jest zasilanie dla urządzeń bezpośrednio do niej dołączonych. Ponadto każde urządzenie może mieć własne źródło zasilania.
Rys. 5. Kabel magistrali USB 1.0, 2.0
Dane wysyłane na magistralę dzielone są na pakiety i kodowane metodą NRZI (ang. non-return-to-zero inverted - odwrotny kod bez powrotu do zera). W tej metodzie kodowania jedynka jest reprezentowana przez brak zmiany poziomu, a zero przez zmianę poziomu (Rys. 6). Jest to kod samosynchronizujący się, nie trzeba oddzielnie przesyłać impulsów zegarowych. Ciąg bitów, przed zakodowaniem NRZI, jest modyfikowany przez wstawienie zera po każdej wykrytej sekwencji 6 jedynek. W odbiorniku, po rozkodowaniu, zera są usuwane. Na początku każdego wysyłanego na magistralę pakietu jest doklejany bajt synchronizacji (sekwencja 7 zer zakończona jedynką). Przesyłane magistralą bity danych są reprezentowane przez sygnały różnicowe.
Rys. 6. Kodowanie metodą NRZI
Dane po magistrali USB mogą być przesyłane w jednym z czterech trybów. Przekazy sterujące mają zapewnić wymianę, pomiędzy komputerem a urządzeniem USB, poleceń i informacji o konfiguracji lub o stanie urządzenia. W tym przypadku:
• pierwszym z pakietów jest zapowiedź operacji jaka ma być wykonana na magistrali USB,
• po niej występuje zwykle przesłanie kilku pakietów danych (w zapowiedzianym kierunku),
• operację kończy pakiet potwierdzający przyjęcie danych.
Przekaz izochoryczny jest przekazem przenoszącym tylko strumień danych i jest jednokierunkowy. W tym przypadku gwarantowane są:
• dostęp bez opóźnień ponad wyznaczony limit,
• stała częstotliwość przepływu danych w potoku,
• jeśli wykryty zostanie błąd, nie jest podejmowana próba ratowania danych przez ponowienie transmisji zniekształconego pakietu.
Przekazy przerwaniowe pozwalają urządzeniom USB od czasu do czasu, w wyznaczonych okresach obsługi, przesyłać niewielkie porcje danych. Dane przesyłane w tym trybie tworzą jednokierunkowy strumień danych płynący zawsze do komputera macierzystego. Gwarantowane są:
• nie przekraczanie maksymalnego czasu obsługi,
• ponowienie próby przesłania danych jeśli, na skutek przypadkowego błędu, bieżący przekaz nie powiódł się.
Przekazy masowe zostały wprowadzone z myślą o urządzeniach, które przesyłają relatywnie duże porcje danych, ale dopuszczają dużą zmienność czasu transmisji. Gwarantowane są:
• dostęp do magistrali tylko w ramach aktualnie dostępnego pasma,
• ponowienie próby przesłanie danych jeśli, na skutek przypadkowego błędu, bieżący przekaz nie powiódł się,
• gwarancja dostarczenia danych, ale bez limitu dopuszczalnego opóźnienia.
Standard USB 3.0 używa dodatkowych 5 kabli – dwie różnicowe linie transmisyjne i dodatkowe uziemienie (Rys. 7). Te dodatkowe linie stanowią odrębną magistralę, która pracuje równolegle do starego okablowania USB 2.0 i 1.0. W ten sposób zachowana jest pełna kompatybilność ze starszym standardem. Dodatkowe 5 kabli jest wyprowadzone we wtyczkach USB 3.0. W standardzie USB 3.0 jeden kanał może jednocześnie wysyłać i odbierać dane (w USB 2.0 jest to niemożliwe). Taki tryb transmisji jest nazywany dual simplex. Inną ważną zmianą jest to, że USB 3.0 jest asynchroniczne. Pakiety nie są już wysyłane do każdego urządzenia. Kontroler wysyła je w trybie punkt-z-punktem (asynchronicznie) tylko do właściwego urządzenia, wykorzystując informacje zawarte w nagłówkach pakietów. Urządzenia nie muszą więc ciągle sprawdzać, czy dane są dla nich przeznaczone. USB 3.0 zapewnia przepustowość do 4.8 Gbps. Zwiększono również moc, którą mogą być zasilane urządzenia odbiorcze.
Rys. 7. Kabel magistrali USB 3.0
Obecnie najszybszym standardem USB jest specyfikacja 3.1 gen 2 (tabela 3). Zwiększono tu prędkość transmisji danych do 10 Gbps.
Tabela 3. USB 3.1
interfejs | Maks. szybkość |
Maks. moc wyjściowa | Kierunek przepływu mocy | Konfiguracja kabli |
---|---|---|---|---|
USB 1.1 | 12Mbps | N/A | N/A | Typ A do Typu B |
USB 2.0 | 480Mbps | 5V, 1.8A | Host do urządzenia peryferyjnego | Typ A do Typu B |
USB 3.0 / USB 3.1 gen 1 | 5Gbps | 5V, 1.8A | Host do urządzenia peryferyjnego | Typ A do Typu B |
USB 3.1 / USB 3.1 gen 2 | 10Gbps | 20V, 5A | Dwukierunkowy / kompatybilny z host do urządzenia peryferyjnego | Typ C z obu końców, odwracalna orientacja wtyczki / Typ A do Typu C (kompatybilny) |
Podstawowe właściwości specyfikacji USB 3.1 Gen 2 to:
• Wydana została 26 lipca 2013 roku.
• USB 3.1 podwaja szybkość USB 3.0 do 10 Gb/s (teraz nazywa się SuperSpeed+ lub SuperSpeed USB 10 Gbps), czyniąc go tak szybkim jak oryginalny Thunderbolt.
• USB 3.1 gen 2 jest wstecznie kompatybilny z USB 3.0 i USB 2.0. USB 3.1.
• Ma trzy profile mocy (zgodnie ze specyfikacją dostarczania zasilania USB) i pozwala większym urządzeniom pobierać energię z hosta: do 2A przy 5 V (przy zużyciu do 10 W) i opcjonalnie do 5A przy 12V (60 W) lub 20 V (100 W).
Ciekawie robi się, kiedy połączymy w jednym przewodzie specyfikacje USB 3.1 oraz USB Type-C. Port USB typu C pozwala na zasilanie dwukierunkowe, więc oprócz ładowania urządzenia peryferyjnego, urządzenie peryferyjne może również ładować urządzenie hosta. Możliwość przesyłania 100W dzięki Power Delivery 2.0 (PD 2.0) pozwala na zasilanie i naładowanie baterii w większości pełnowymiarowych notebooków.
2.8. FireWire
Magistrala FireWire była początkowo konkurencją dla USB. Została opracowana stosunkowo dawno. FireWire był znakiem handlowym firmy Apple, która w 1980 roku wprowadziła tą magistralę na rynek. W założeniu miała ona zastąpić stosunkowo drogą magistralę SCSI stosowaną wówczas w komputerach Macintosh i PowerMac. Znane są też inne nazwy tej magistrali. i.Link było określeniem wprowadzonym przez firmę Sony (magistrala stosowana w kamerach wideo). Z kolei IEEE-1394 jest numerem normy amerykańskiego komitetu normalizacyjnego IEEE.
Rys. 8. Przewód Fire Wire
Magistrala FireWire korzysta z dwóch par przewodów (transfer różnicowy) przewodu zasilania oraz masy i ekranu (Rys. 8). Z pozoru wygląda to podobnie jak w USB, ale protokół przesyłu i organizacja magistrali są trochę inne. W tym przypadku również są dostępne różne warianty magistrali:
FireWire 400 (IEEE 1394-1995)
• Transfery 100, 200 albo 400 Mbit/s (S100, S200, S400), half-duplex.
• Długość kabla do 4.5m, ale 16 urządzeń może być połączone w łańcuch przy użyciu aktywnych przekaźników (ang. repeaters).
Usprawnienie (IEEE 1394a-2000)
• Dodano wsparcie dla transferów asynchronicznych, możliwa szybsza rekonfiguracja magistrali, dodano tryb oszczędzania energii (ang. suspend mode).
FireWire 800 (IEEE 1394b-2002)
• Transfery 800 Mbit/s full-duplex przy użyciu nowego systemu kodowania danych – beta mode.
• Pełna specyfikacja 1394b definiuje transfery do 3200 Mbit/s.
• Przekodowywanie 8b/10b, dodawane bity po 5-tym 8-mym bicie danych.
FireWire S800T (IEEE 1394c-2006)
• Wprowadzono znaczące usprawnienia techniczne, a w szczególności nową specyfikację portu, który zapewnia transfer 800 Mbit/s przy użyciu tego samego złącza co sieć Ethernet
• Brak produktów lub chipsetów zawierających tą funkcję.
FireWire S1600 and S3200 - 2007
• Zastosowanie trybów S1600 i S3200, które w przeważającej części zostały już opisane w 1394b.
Przyszłe udoskonalenia (włączając P1394d -2009)
• P1394d wycofany w 2013r.
• Plany zwiększenia szybkości do 6.4 Gbit/s.
Podstawowe założenia magistrali Fire Wire to:
• Połączenie do 63 urządzeń w topologii drzewa albo w łańcuch.
• Komunikacja punkt-z-punktem, bez wykorzystywania pamięci RAM czy CPU.
• Możliwe jest dołączenie wielu kontrolerów (ang. hosts) do magistrali.
• Obsługa plug and play i hot swapping.
• Kabel miedziany, do 4.5 metrów, może dostarczyć 45 watów mocy na port, przy napięciu do 30 woltów.
• Kodowanie non-return-to-zero (NRZ).
Każde urządzenie dołączone do magistrali FireWire ma unikalny numer ID. Jeden węzeł jest mianowany jako root node, ma wtedy najwyższy ID. Numery są nadawane przy każdym „resecie” magistrali (podanie napięć na linie zasilające). FireWire odsługuje transfery asynchroniczne i izochoryczne na raz. Transfery izochoryczne gwarantują ciągłą transmisję danych w określonym paśmie. Żeby to umożliwić Fire Wire dedykuje pewien procent pasma transferom izochorycznym, a reszta jest przeznaczona na transfery asynchroniczne. Porównanie FireWire, USB 2.0, USB 3.0 przedstawiono w tabeli 4.
Tabela 4. Porównanie FireWire, USB 2.0, USB 3.0
porównanie | FireWire | USB 2.0 | USB 3.0 |
---|---|---|---|
Szybkość transferu | do 400, 800, 1600 lub 3200 Mbps | do 480 Mbps | do 480 Mbps |
Kontroler nadrzędny | nie wymagany | wymagany | wymagany |
Obciążenie procesora | nie | tak | tak, duże |
Topologia | sieć rozgałęziona | gwiazda | gwiazda |
Maks. długość kabla | 4.5 m | 5 m | 5 m |
Maks. liczba urządzeń | 63 | 127 | 127 |
Zasilanie | tak, 12 lub 30 V, do 60 W | tak, 5 V, do 2.5 W | tak, 5 V, do 4.5 lub 7.5 albo 9W |
2.9. Thunderbold
Thunderbolt (Light Peak) stanowi standard złączy i protokołów służących do łączenia różnych urządzeń elektronicznych. Standard jest następcą popularnych magistral, takich jak USB, FireWire czy HDMI. Powstał z połączenia DisplayPort i wyprowadzonej na zewnątrz magistrali PCI Express x4, co umożliwia podłączanie za jego pomocą typowych kart rozszerzeń, kontrolerów RAID czy monitorów. Demonstracja technologii Light Peak odbyła się 23 września 2009 podczas Intel Developer Forum. Technologia została wyprodukowana przez firmę Intel we współpracy z Apple Inc. Intel rozpoczął dystrybucję Thunderbolt na początku 2011 roku. Początkowo port Thunderbolt można było znaleźć w MacBookach Pro, MacBookach Air oraz w komputerach iMac i Mac Mini. W 2012 roku trafił do pecetów jako wyposażenie platformy Centrino "Chief River". W czerwcu 2013 roku Intel zaprezentował standard Thunderbolt 2 (Falcon Ridge) o przepustowości 20 Gbps i obsługujący strumieniowanie wideo w standardzie 4K.
Thunderbolt – charakterystyka:
• prędkość 10 Gb/s, 20 Gb/s dla Thunderbolt 2, (przez kabel światłowodowy do 100 Gb/s na odległość do 100 metrów),
• równoczesne połączenie z wieloma urządzeniami,
• wiele protokołów,
• równoczesny transfer w obydwie strony,
• hot plugging dostępny tylko na komputerach firmy Apple działających pod kontrolą OS X (komputery posiadające inny system hot swapu na portach Thunderbolt nie obsługują).
W międzyczasie został opracowany standard USB Type-C. Stanowi on opis samego połączenia portu i gniazda. USB Type-C jest małe, zwarte. Standard ten zastąpi USB Type-A, USB Type-B oraz ich mniejsze odmiany micro i mini USB. Nowy port USB jest odwracalny. Znaczy to, że dobiegają końca czasy obracania wtyczki USB dwa razy aby włożyć pendrive do laptopa.
Intel postanowił stworzyć Thunderbolt 3, tak aby stanowił nadzbiór hosta urządzeń podłączanych wtyczką USB Type-C dając za jego pomocą dostęp do technologii USB 3.1 (przy pełnej prędkości 10Gbps), DisplayPort 1.2, PCI Express Gen 3 i swojego własnego standardu Thunderbolt.
W tabeli 5 zawarto podstawowe porównanie standardów Tunderbolt. Różnice Thunderbolt 3 w porównaniu do poprzednich standardów są przedstawione poniżej:
• Typ połączenia Mini DisplayPort został porzucony na korzyść połączenia typu USB-C.
• Wszystkie kable Thunderbolt 3 będą działać jako kable USB-C. Wszystkie kable USB-C będą działać jako kable Thunderbolt 3, o ile są dobrej jakości kablami.
• Thunderbolt 3 ma najwyższą prędkość przesyłu danych równą 40 Gb/s, o ile kabel ma 0.5 m lub mniej.
• W przypadku kabli o długości 1 m lub dłuższej, Thunderbolt 3 obsługuje pasywne kable (tańsze), które mają prędkość maksymalną 20 Gb/s oraz aktywne kable (droższe), które utrzymują prędkość 40 Gb/s.
• Thunderbolt 3 jest zgodny z wcześniejszymi wersjami Thunderbolt, ale ze względu na nowy typ portu, do korzystania ze starszych urządzeń Thunderbolt są wymagane adaptery.
• Każde urządzenie USB-C podłączone do portu Thunderbolt 3 będzie działać normalnie.
• Ponieważ urządzenia Thunderbolt 3 wykorzystują dyskretne chipy Thunderbolt, nie będą działać po podłączeniu do portu USB-C.
Tabela 5. Thunderbolt 3
Wydanie | Rok wprowadzenia | Prędkość maksymalna | Typ portu |
---|---|---|---|
Thunderbolt | 2011 | 10 Gbps | Mini DisplayPort |
Thunderbolt 2 | 2013 | 20 Gbps | Mini DisplayPort |
Thunderbolt 3 | 2015 | 40 Gbps (krótki lub aktywny kabel) 20 Gbps (długi, pasywny kabel) | USB-C |
2.10. Krótka historia dysku twardego
Dyski twarde mają stosunkowo krótką historię. Pierwszy dysk twardy został użyty w 1956 roku. Miał on bardzo małą pojemność i monstrualne rozmiary. Również jego koszt był bardzo duży. Jednak można powiedzieć, że idea funkcjonowania dysku pozostała taka sama do chwili obecnej. Natomiast ogromny postęp dokonał się w inżynierii materiałowej. Dzisiejsze dyski umożliwiają ogromne upakowanie danych, w stosunku do tych pierwszych.
Można sobie zadać pytanie, co było przed dyskami? Na początku jako pamięć masową stosowano karty perforowane, albo perforowaną taśmę. Rozwiązania takie miały wiele wad i były bardzo zawodne. Trudno było na takim nośniku zapisać pętle (czasami sklejano brzegi taśmy). Wczytywanie kart było bardzo wolne, poza tym mogły się one rozsypać. To samo dotyczyło taśm. Te z kolei mogły się rozerwać w trakcie wczytywania danych. Później perforowane karty zastąpiono taśmami magnetycznymi. Specjalne, bardzo duże rozmiarowo czytniki, przypominające ogromne magnetofony, służyły do odczytu i zapisu danych. Były to rozwiązania drogie i stosowane raczej w dużych komputerach typu mainframe. Poza tym, żeby się dostać do danych na drugim końcu taśmy magnetycznej, trzeba było przewinąć całą taśmę. Dostąp do danych był więc koszmarnie wolny.
W pierwszych komputerach PC nie było w ogóle pamięci masowej. Program więc ginął w momencie wyłączenia komputera. Można sobie tylko wyobrazić jak niewygodne było to rozwiązanie. Następnie pojawiły się stacje dyskietek. Był to ogromny postęp, chociaż dyskietki były dużo wolniejsze nawet od tych pierwszych dysków twardych. Po raz pierwszy można było wpisany program przechować w pamięci masowej i później szybko wgrać do komputera. Dopiero po nich pojawiły się dyski twarde. Pierwsze miały pojemność 10 MB i kosztowały ponad 1000$. Dawały jednak nieporównywalnie wyższy komfort pracy z komputerem.
Za pierwszy dysk twardy (ale nie działający w komputerze klasy PC) uważa się rozwiązanie opracowane dla komputera IBM 305 RAMAC w 1956 roku (Rys. 9 ). Dysk, widoczny w postaci szklanego słoja na rysunku 10, miał 5 MB pojemności. Składał się z 50 talerzy o rozmiarze 24” (ok. 61cm). Transfer danych odbywał się z prędkością 8800 bitów/s.
Rys. 9. Komputer IBM 305 RAMAC z 1956 roku [źródło: https://en.wikipedia.org/wiki/IBM_305_RAMAC]
Rys. 10. Dysk twardym z komputera IBM 305 RAMAC [źródło: https://en.wikipedia.org/wiki/IBM_305_RAMAC]
2.11. Budowa dysku twardego
Na rysunku 11 przedstawione są podstawowe komponenty dysku twardego. Podstawowym elementem każdego dysku twardego są talerze magnetyczne. Zwykle są one połączone w sztywny sposób po kilka. Materiał magnetyczny jest naniesiony na górną i dolną powierzchnię talerza. Talerze są przymocowane do obudowy za pośrednictwem łożyska hydrodynamicznego. Dane są zapisywane i odczytywane z użyciem głowic. Każda powierzchnia magnetyczna dysku ma dedykowana jedną głowicę. Głowice są połączone ze sobą tak, że mogą się poruszać tylko wszystkie razem. W danej chwili jest aktywna tylko jedna głowica. Głowice są poruszane nad talerzem przez specjalny silnik, wykorzystujący pole magnetyczne. Z drugiej strony dysku, pod obudową (Rys. 12) umieszczony jest kontroler dysku twardego. Jest to dość skomplikowany układ, który steruje zapisem i odczytem danych, ale również pośredniczy w wymianie danych z komputerem. Całość spina sztywna obudowa, która powinna również być na tyle szczelna, by nie dopuścić cząstek kurzu do talerzy.
Początkowo talerze dysków były dość duże. Zostało stworzonych kilka standardów rozmiaru talerzy. Starsze dyski mają rozmiar 5.25”. Później pojawiły się dyski o talerzach 3.5” i 2.5”. Obecnie takie rozmiary są najpowszechniejsze. Standard CompactFlash używał dysków o średnicy 1”. Były to najmniejsze produkowane dyski magnetyczne. Obecnie zostały całkowicie wyparte przez karty oparte o pamięci flash. Stosowanie talerzy o mniejszych rozmiarach może się wydawać nieekonomiczne. Na większych talerzach można przecież zmieścić więcej danych. Dyski byłyby pojemniejsze. Obecnie jednak pojemność dysku nie jest problemem priorytetowym. Mniejszy rozmiar talerzy zapewnia:
• większą sztywność – odporność na drgania i wibracje,
• mniejszą masę,
• mniejsze zużycie energii przez dysk twardy,
• redukcję hałasu i wydzielanego ciepła,
• krótsze czasy wyszukiwania danych na dysku.
Rys. 11. Budowa dysku twardego [źródło: https://en.wikipedia.org/wiki/Hard_disk_drive]
https://pl.wikipedia.org/wiki/Dysk_twardy
Rys. 12. Kontroler dysku twardego umieszczony na dole obudowy [źródło: https://pl.wikipedia.org/wiki/Dysk_twardy]
Dyski z mniejszymi talerzami są przez to łatwiejsze w produkcji. Podobnie jest z liczbą talerzy. Wcześniejsze dyski nierzadko miały ich nawet 10. Obecnie najczęściej stosuje się jeden, bądź dwa talerze. Jest to związane z wielkością dysku, zapewnieniem odpowiedniej sztywności, a także łatwością wykonania takiego układu. Talerze dysków mogą wirować z różnymi prędkościami. Tu również mamy zdefiniowane pewne standardy prędkości: 5400 rpm, 7200 rpm, 10000 rpm, 15 000 rpm. Oczywiście im szybciej dysk wiruje, tym szybszy jest odczyt/zapis i dostęp do danych. Standardem obecnie jest prędkość 7200 rpm. Przy wyższych prędkościach obrotowych pojawiają się problemy z tłumieniem drgań, a także z hałasem, który powstaje podczas pracy dysku. Dlatego prędkości 10 000 rpm i 15 000 rpm są w zasadzie zarezerwowane dla dysków serwerowych, gdzie ma znaczenie wydajność, ale hałas nie jest brany pod uwagą.
Talerze dysków twardych dawniej wykonywano z materiałów, których podstawowym składnikiem było aluminium. Takie stopy były lekkie i dość sztywne. Obecnie, jako materiał do wytwarzania talerzy dysków twardych stosuje się pewne odmiany szkła. Szkło jest co prawda bardziej kruche, ale i tak zapewnia lepszą jakość wykonania talerzy (Rys. 13).
Rys. 13. Mikroskopowe zdjęcie powierzchni dysku twardego z lewej talerz z aluminium, z prawej talerz ze szkła [źródło: https://pl.wikipedia.org/wiki/Dysk_twardy]
Przede wszystkim szkło jest gładsze. Zapewnia też większą sztywność. Talerze mogą być cieńsze. Co więcej, szkło zapewnia większą stabilność termalną. Materiał ten w mniejszym stopniu rozszerza się i kurczy przy zmianach temperatury. Oczywiście, żeby dane mogły być przechowywane na talerzach, jego powierzchnia musi być pokryta materiałem magnetycznym. Na początku był stosowany tlenek żelaza. Jednak talerze nim pokryte charakteryzowały się dość dużą chropowatością. Gęstość zapisu danych była mała. Poszukiwano innych materiałów magnetycznych, o lepszych właściwościach. Ponieważ użytkowa warstwa nowych materiałów magnetycznych była sporo cieńsza niż warstwa tlenku żelaza, nazwano je materiałami cienkowarstwowymi. Obecnie jako materiały magnetyczne stosuje się specjalne powłoki z tzw. sprzężeniem antyferromagnetycznym (dwie warstwy ferromagnetyka oddzielone warstwą rutenu o grubości pojedynczych atomów).
Głowica odczytująco-zapisująca dysku jest układem dość złożonym (Rys. 14). Głowica zapisująca jest stosunkowo duża. Jest to tradycyjna głowica, w której przepływ prądu generuje pole magnetyczne, które z kolei odpowiednio ustawia domeny magnetyczne na powierzchni dysku twardego. Natomiast głowica odczytująca, dużo mniejsza, jest zbudowana z materiału zmieniającego swoją rezystancję pod wpływem zmian pola magnetycznego. Wykorzystywany jest efekt gigantycznej magnetorezystywności. Pozwala on wykryć bardzo niewielkie zmiany pola magnetycznego. Zatem domeny mogą być również bardzo małe. Pozostałe elementy głowicy stanowią ekrany magnetyczne. W trakcie pracy dysku głowice unoszą się w bardzo niewielkiej odległości od talerzy na poduszce powietrznej. Nie stykają się więc z powierzchnią magnetyczną, w ten sposób eliminując jej niszczenie poprzez tarcie.
Rys. 14. Budowa głowicy odczytująco-zapisującej dysku twardego
Obudowa dysku twardego powinna zapewnić odporność na wstrząsy i uderzenia, a także tłumienie drgań. Do talerzy dysku nie mogą się przedostać żadne zanieczyszczenia z powietrza, stąd obudowa jest uszczelniona, a do środka powietrze może się przedostać tylko przez specjalne filtry. Dyski magnetyczne pozostają nadal urządzeniami bardzo delikatnymi. Dysk magnetyczny wymaga szczególnej uwagi, gdy pracujemy z komputerem na dużej wysokości. Powietrze jest tam rozrzedzone, poduszka powietrzna jest tym samym cieńsza, dużo łatwiej jest doprowadzić do styku głowicy z materiałem magnetycznym spowodowanym gwałtownym wstrząsem.
2.12. Geometria dysku twardego, format niskopoziomowy
Na geometrię dysku twardego składają się ścieżki i sektory (Rys. 15). Ścieżki i sektory nie przylegają do siebie, ale są rozdzielone pewną nieużywaną powierzchnią. Ma to na celu lepszą separację pól magnetycznych. Pierwsze dyski twarde miały ustaloną, stałą liczbę ścieżek i sektorów (20 ścieżek, 17 sektorów na ścieżkę). Obecnie dyski mają dużo większą gęstość ścieżek (mogą być ich dziesiątki tysięcy), jak i sektorów na ścieżkę. Liczba sektorów na ścieżkę nie jest taka sama dla całej powierzchni talerza dysku.
Dane na dysku są kodowane w postaci zmian namagnesowania domen (małych obszarów powierzchni talerza dysku). Nie jest możliwe kodowanie danych przy użyciu kierunku namagnesowania domen, chociażby z tego względu, że ciąg zer czy jedynek powodowałby skomasowanie jednakowo namagnesowanych domen, tworząc silne pole magnetyczne, które wpływałoby na sąsiednie domeny. Tak więc głowica, przemieszczając się nad dyskiem wykrywa zmiany kierunków namagnesowania domen, generując wtedy pik napięcia (Rys. 16).
Rys. 15. Format niskopoziomowy, ścieżki i sektory
Rys. 16. Zapis i odczyt danych na nośniku magnetycznym
Jednym z najprostszych metod zapisu danych, które wykorzystują zmianę kierunku namagnesowania domen do zapisu danych, jest format FM (ang. frequency modulation). W zapisie tym czas trwania jednego bitu jest regulowany sygnałem zegarowym. Każdy takt zegara generuje impuls Z (Rys. 17). Dodatkowo jeśli kodowany bit jest 1, generowany jest bit D. W ten sposób kodowany jest dowolny ciąg bitów. Kodowanie i dekodowanie jest bardzo proste, ale taki zapis nie jest efektywny. Stosunkowo szybko powstał nieco zmodyfikowany format zapisu danych MFM (ang. modified frequency modulation). W tym przypadku impulsy Z są generowane tylko wtedy, kiedy bieżący bit i poprzedni są zerami. Ma to zapobiec sytuacjom, kiedy ciąg zer nie generuje przemagnesowań. Każda jedynka generuje bit D. Tak powstały kod jest trudniejszy do zdekodowania, ale pozwala na zapis dwa razy większej liczby danych na tym samym nośniku magnetycznym. Kodowanie MFM było używane do zapisu danych na dyskietkach. Następnym z kolei był efektywniejszy kod RLL (ang. Run Length Limited). Przy tym kodowaniu zrezygnowano zupełnie z generowania impulsów przemagnesowujących pochodzących od sygnału zegarowego. Impulsy były generowane tylko przez jedynki z sygnale zapisywanym. Zatem system musiał obliczyć z długości przerwy między jedynkami, ile było pomiędzy nimi zer. W założeniu kodu RLL pomiędzy jedynkami mogła wystąpić pewna minimalna do maksymalnej liczba zer. Jednym z powszechniej używanych kodów był RLL(2,7), gdzie liczba zer musiała się mieścić w przedziale od 2 do 7.
Rys. 17. Formaty zapisu FM i MFM
Oczywiście trudno wymagać od zapisywanych danych, żeby ten warunek był zawsze spełniony. Dlatego kodowanie RLL wymagało przekodowywania danych. Dla kodu RLL(2,7) sposób przekodowania jest opisany w tablicy 6. Jak można zauważyć przekodowanie wydłuża ciąg danych o 100%. Jednak zmniejszona liczba przemagnesowań umożliwia zapis ok. 40% więcej danych niż przy zastosowaniu formatu MFM (Rys. 18).
Tablica 6. Tablica przekodowań systemu RLL(2,7)
Dane wejściowe | Dane wyjściowe |
---|---|
000 | 000100 |
10 | 0100 |
010 | 100100 |
0010 | 00100100 |
11 | 1000 |
011 | 001000 |
0011 | 00001000 |
Stosowane były również inne kody RLL(1,7), RLL(3,9). Umożliwiały one uzyskanie jeszcze większej gęstości zapisu, ale wymagały też wyższej dokładności wykonania układów dekodujących. Obecnie kod RLL też nie jest już stosowany. W pewnym momencie konstrukcji dysków, kiedy domeny magnetyczne stały się naprawdę małe, wykrywanie pików powodowanych przez przemagnesowania okazało się bardzo trudne. Bardzo słabe pola magnetyczne, wpływ innych domen powodowały, że sygnał odczytany przez głowice nie wykazywał wyraźnie widocznych szczytów. Zamiast detekcji szczytów odczytywano ciągły sygnał z głowic. Następnie sygnał taki był zamieniany na cyfrowy. Specjalne algorytmy próbowały odgadnąć jaki jest najbardziej prawdopodobny ciąg bitów, który by wygenerował taki sygnał. Pozostałe błędy są korygowane w locie z użyciem algorytmów korekcji błędów zaszytych w format niskopoziomowy. Taki sposób kodowania nazywa się PRML (ang. Partial Response, Maximum Likelihood). Obecnie stosuje się kodowanie EPRML (ang. Extended PRML), w którym poprawiono wydajność algorytmów dekodujących.
Rys. 18. Kodowanie RLL(2,7)
Nałożona na powierzchnię talerzy struktura ścieżek i sektorów tworzy tzw. format niskopoziomowy dysku. Formatowanie niskopoziomowe jest zawsze przeprowadzane przez producenta, użytkownik nie może go zmienić. Format niskopoziomowy stosowany przy kodowaniu RLL (starsze dyski) jest przedstawiony na rysunku 19. Ścieżki są zbudowane z pewnej liczby sektorów. Każdy sektor przechowuje 512 bajtów danych. Sektor można podzielić na dwie części. Pierwsza z nich to metryka adresowa (ID). Pole ID zawiera adres sektora. Druga część przechowuje dane (DANE). Dane i metryka adresowa są chronione kodami ECC, które są w stanie wykryć błąd odczytu danych i skorygować ten błąd. Pola S służą do synchronizacji sygnałów zegarowych. Pola D3 i D4 wskazują wystąpienie metryki i danych, a pola Z stanowią szczeliny (nieużywane obszary).
Rys. 19. Format niskopoziomowy budowa ścieżki i sektora, kodowanie RLL
Dyski z kodowaniem EPRML w formacie niskopoziomowym nie mają metryki adresowej. Jest to tzw. format No-ID. Adresy poszczególnych sektorów kodowane są w przestrzeniach pomiędzy sektorami. W ten sposób zwiększono powierzchnię dysku przeznaczoną do przechowywania danych. Do kodowania adresów stosuje się specjalne kody (np. Greya). W kodowaniu Greya kolejne liczby zmieniają się tylko na pozycji jednego bitu. Śledząc te zmiany można odczytać położenie głowicy.
Mówiąc o formacie niskopoziomowym nie możemy pominąć pojęcia cylindra (Rys. 20). Głowice są połączone ze sobą w taki sposób, że pozostają w pozycji jedna pod drugą. Jeśli czytany jest sektor z pierwszej ścieżki (położonej najbardziej na skraju dysku, na pierwszym talerzu) to pozostałe głowice są też umieszczone na pierwszej ścieżce tylko innych talerzy (dotyczy to górnej i dolnej powierzchni talerza). Te same ścieżki na górnej i dolnej powierzchni każdego z talerzy tworzą cylinder. Sektory są numerowane w kolejności: wszystkie na pierwszej ścieżce z górnej powierzchni pierwszego talerza, wszystkie na pierwszej ścieżce z dolnej powierzchni pierwszego talerza, wszystkie na pierwszej ścieżce z górnej powierzchni drugiego talerza, itd. Należy zaznaczyć, że we współczesnych dyskach liczba sektorów na ścieżkę nie jest taka sama dla całej powierzchni talerza. Jest to tzw. zapis strefowy (Rys. 21). Na zewnętrznych fragmentach talerza jest po prostu więcej miejsca. Można tam umieścić większą liczbę sektorów (zwykle dwa razy tyle co w strefie wewnętrznej).
Rys. 20. Sektory, ścieżki i cylindry dysku twardego [źródło: https://en.wikipedia.org/wiki/Cylinder-head-sector]
Rys. 21. Zapis strefowy
Strefy pośrednie zawierają coraz większą liczbę sektorów licząc od środka talerza. Ma to też pewien skutek uboczny. Prędkość kątowa obrotu dysku jest stała. Zatem prędkość liniowa na obrzeżu dysku jest większa niż dla sektorów położonych tuż przy środku talerza. Powoduje to, że odczyt danych z sektorów na zewnątrz talerza jest ok. dwa razy szybszy niż tych najbardziej wewnętrznych. Jest to uwidocznione na rysunku 22.
Rys. 22. Transfer danych dla magnetycznego dysku twardego
2.13. Pamięci flash
Pamięci flash (NOR) zostały wynalezione w 1984 roku przez Dr. Fujio Masuoka (pracującego dla firmy Toshiba). Firma Intel zauważyła ogromny potencjał tego wynalazku. Zaprezentowała ona pierwszą komercyjną pamięć flash typu NOR w 1988 roku. Pamięci NAND flash zostały przedstawione przez firmę Toshiba w 1989 roku. Pamięci flash są specyficznym typem pamięci EEPROM (ang. Electrically Erasable Programmable Read-Only Memory), które są kasowane i programowane w dużych blokach. Pamięci flash są jednak dużo tańsze od wymazywalnych i programowalnych bajtowo pamięci EEPROM. Odczyt danych jest szybki, ale kasowanie bloków wolne. Dane w pamięci flash są przechowywane w sposób trwały, to znaczy dane nie znikają po zaniku napięcia zasilania pamięci. Musi istnieć jakiś mechanizm, który to umożliwia. Na pojedynczą komórkę pamięci flash składa się jeden tranzystor (Rys. 23). Jest to dość specyficzny tranzystor. Jego zasada działania jest podobna do typowego tranzystora polowego typu MOSFET.
Rys. 23. Pojedyncza komórka pamięci flash [https://en.wikipedia.org/wiki/Floating-gate_MOSFET]
Podstawowa różnica polega na tym, że tranzystor ten ma dwie bramki, które są izolowane od siebie. Istnieje wiele odmian takich tranzystorów. Jeżeli pomiędzy dren i źródło przyłożone jest napięcie, prąd nie popłynie. Dopiero po przyłożeniu napięcia do bramki tworzy się kanał, którym może płynąć prąd. Mamy do dyspozycji dwie bramki: kontrolną (ang. control gate) i pływającą (ang. floating gate). Napięcie przykładane jest do bramki kontrolnej. Jeżeli w obszarze bramki pływającej nie jest zgromadzony ładunek, to zostanie utworzony kanał i prąd popłynie. Taki stan odpowiada 1 (Erased State – Rys. 24). Natomiast jeśli w obszarze pływającej bramki jest zgromadzony ładunek, ładunek ten ekranuje wpływ pola powstającego przez przyłożenie napięcia do bramki kontrolnej, kanał nie jest tworzony i prąd nie popłynie. Stan ten odpowiada wartości 0 (Programmed State).
Rys. 24. Stany tranzystora pamięci flash
Pozostaje jeszcze omówić sposób w jaki jest wpisywany i kasowany ładunek w obszarze bramki pływającej. Bramka ta jest w pełni izolowana od otoczenia. Izolacja jest na tyle skuteczna, żeby powstrzymać odpływ ładunku w normalnych warunkach przez lata. Ale w momencie kiedy elektronom zostanie nadana odpowiednio duża energia, izolacja może zostać przebita. W ten sposób można wpisywać i kasować ładunek z obszaru bramki pływającej. Wykorzystuje się do tego celu dość złożone zjawiska fizyczne: np. proces programowania poprzez wstrzykiwania gorących elektronów, kasowania z wykorzystaniem zjawiska tunelowania. W celu nadania elektronom odpowiedniej energii wykorzystuje się odpowiednio doprowadzone dość wysokie napięcia. Elektrony z izolowanego obszaru bramki nie mogą być wpisywane i kasowane w nieskończoność. W procesie tym izolacja ulega bowiem stopniowej degradacji. Dlatego też liczba zapisów do pamięci flash jest ograniczona (zwykle jest to kilkadziesiąt tysięcy razy). Komórki pamięci flash działające w ten sposób nazywa się komórkami typu SLC (ang. single level cell). Kodują one tylko dwa stany logiczne. Obecnie częściej stosowane są komórki tupu MLC (ang. multi-level cell). Mogą one kodować więcej stanów logicznych. W najprostszym przypadku są to cztery stany. Trzeba kontrolować wtedy ilość ładunku wstrzykniętego do obszaru bramki pływającej. Efekt ekranujący ładunku będzie różny. Stąd też mierząc natężenie przepływającego prądu można odczytać stan komórki (cztery poziomy). Komórki mogą kodować więcej poziomów, np. osiem. Zwykle żywotność komórek MLC jest mniejsza niż SLC. Także niezawodność działania jest większa w przypadku komórek SLC.
Pierwsze pamięci flash miały organizację NOR. Nazwa pochodzi od bramki NOR, a w zasadzie od analogii w połączeniu tranzystorów w bramce. Pamięci o takiej architekturze mają długi czas wymazywania bloków i zapisu danych, ale zapewniają dostęp do poszczególnych bajtów. Są też drogie w produkcji. Alternatywą jest pamięć o architekturze NAND. Pamięci te charakteryzują się szybszym wymazywaniem i zapisem danych, mają większe upakowanie elementów, ale zapewniają dostęp tylko do dużych bloków danych. Pamięci tego typu są stosowane obecnie powszechnie.
Programowanie pamięci flash (czyli zapisywanie danych) jest realizowane dla stron, kasowanie dla bloków. Typowe rozmiary stron i bloków:
• 32 strony po 512 bajtów – rozmiar bloku 16kB,
• 64 strony po 2 048 bajtów – rozmiar bloku 128kB,
• 64 strony po 4 096 bajtów – rozmiar bloku 256kB,
• 128 stron po 4 096 bajtów – rozmiar bloku 512kB.
Wyróżniony rozmiar strony i bloku jest najczęściej stosowany. W celu zaprogramowania pamięci można zmieniać pojedyncze bity z 1 na 0, ale nie można zmienić z 0 na 1, by to zrobić trzeba wymazać cały blok. Zwykle blok 0 ma zagwarantowane 100000 cykli zapisu-kasowania. W tym bloku mieszczą się najważniejsze struktury danych (np. wskaźnik do tablicy wadliwych sektorów, tablica partycji), pozostałe bloki zapewniają zwykle ok. 10000 cykli zapisu-kasowania.
Można by się zastanowić, czy nie da się zwiększyć liczby cykli zapisu danych. Jednak większa możliwa liczba cykli zapisu-kasowania wiąże się z mniejszą trwałością danych. Dużą trwałość danych można osiągnąć przez lepszą izolację obszaru bramki pływającej. Z kolei trudniejsza do pokonania izolacja łatwiej się niszczy podczas cykli zapisu (wyższe napięcia), co powoduje że mniejsza liczba cykli zapisu niszczy tranzystor. W pamięciach flash konieczne jest równomierne rozłożenie cykli zapisu na wszystkie komórki (ang. wear-leveling). Równoważenie to jest różnie realizowane i w większości przypadków jest zrzucone na karby oprogramowania firmware urządzenia. Zwykle w pamięciach flash przydzielane są zapasowe bloki (ang. disk overprovisioning). Nie są one wykorzystywane do przechowywania danych (dysk jest zatem mniej pojemny), ale łatwiejsze jest zarządzanie wadliwymi blokami.
2.14. Budowa dysków SSD
Dyski SSD (ang. Solid-State Drive), podobnie jak dyski magnetyczne są urządzeniami pamięci masowej. Dostęp jest możliwy tylko do dużych bloków danych. Dyski SSD są zbudowane w oparciu o pamięć typu flash, wszystkie zalety i wady tych pamięci są również zaletami i wadami dysków SSD. Dyski SSD są zbudowane tylko z układów scalonych, brak jest jakichkolwiek elementów elektromechanicznych. Dane zapisane są w bramkach przechowujących elektrony. Dyski SSD mają cały szereg zalet w porównaniu do dysków magnetycznych:
• mniejszy czas dostępu do danych,
• większe prędkości zapisu i odczytu danych,
• mniejszy pobór energii,
• odporność na przeciążenia, wstrząsy i wibracje,
• szeroki zakres temperatur, w których mogą pracować,
• przeważnie są lżejsze.
Niestety mają one też swoje wady. Do największych można zaliczyć:
• ograniczona żywotność:
o MLC do 10000 zapisów jednej komórki,
o SLC do 100000 zapisów jednej komórki,
• ciągle ceny o rząd wielkości wyższe niż HDD,
• wolniejsze nadpisywanie małych obszarów,
• realna awaryjność.
Na rysunku 25 przedstawiona jest budowa dysku SSD. Przepustowość pojedynczego układu pamięci flash nie jest wystarczająca, aby osiągnąć optymalną wydajność dysku SSD. W związku z tym, elementy pamięci muszą być skoordynowane tak, aby działały w układzie równoległym. Mamy więc cały szereg układów scalonych pamięci flash (Flash Pkg), które są zarządzane przez procesor kontrolera urządzenia. Równoległy odczyt-zapis umożliwia osiągnięcie bardzo dużych prędkości. Ważne też jest buforowanie danych w pamięci RAM. Po pierwsze pozwala ono na ograniczenie dostępów do pamięci flash i tym samym ograniczenie jej zużycia. Po drugie buforowanie może znacznie przyspieszyć dostęp do danych, szczególnie dla małych plików. Logika dysku zapewnia kompatybilność ze starszymi dyskami magnetycznymi. Nie jest potrzebny żaden dodatkowy sprzęt, żeby je obsłużyć.
Rys. 25. Budowa dysku SSD
Dyski SSD mogą być obsługiwane poprzez interfejs SATA. Interfejs SATA jest jednak pewnym ograniczeniem dla dysku SSD, dlatego że maksymalna prędkość odczytu/zapisu wyniesie wtedy ok. 540 MB/s. Dlatego też dyski SSD mogą być wyposażone w inne interfejsy. Dużą popularność zdobył standard M.2. Szczególnie często jest on wykorzystywany w laptopach. W komputerach stacjonarnych, ale nie tylko, w przypadku potrzeby dużej przepustowości może być stosowany standard U.2. Dyski SSD mogą być też bezpośrednio podłączane do magistrali PCI Express.
Dyski SSD należą do urządzeń typu MDT (ang. Memory Technology Device). Podstawową jednostką alokacji danych jest blok wymazywalny (ang. eraseblock). Bloki takie są stosunkowo duże, zazwyczaj 256 kB. Aby cokolwiek zapisać na dysku należy najpierw znaleźć pusty blok. Jeśli takich bloków brakuje, należy jakiś blok wyczyścić. Pusty (wymazany) segment flash jest wypełniony jedynkami. Następnie można zapisać dane. Dane są zapisywane w mniejszych porcjach zwanych stronami, zwykle 4 kB. Można zmienić pojedyncze bity z 1 na 0, ale nie można zmienić z 0 na 1, by to zrobić trzeba wymazać cały segment (256 kB). Zapis jest szybki jeśli jest dużo czystych segmentów. Mamy zatem trzy operacje dostępu do danych: zapisz, wyczyść, odczytaj segment. Zepsutych segmentów nie można po prostu ukryć, trzeba je obsłużyć. Segmenty zużywają się po ok. 10000 zapisów. Dyski SSD nakładają nowe wymagania co do systemu plików. Wynikają one z:
• ograniczonej żywotności komórek,
• konieczności równoważenia zużycia (ang. wear levelling),
• konieczności czyszczenie nieużywanych bloków w tle (komenda trim),
• występowania dużych segmentów – ”fragmentacja” wewnętrzna,
• problemów z nadpisywaniem segmentów, np. utrata zasilania miedzy czyszczeniem a pisaniem.
Jednym ze sposobów rozwiązania tego problemu jest zastosowanie firmware, które udaje, że dysk SSD jest urządzeniem blokowym. Zapewnia to pełną kompatybilność, również ze starszymi systemami. Do takich rozwiązań należy FTL (ang. Flash Translation Layer) (Rys. 26). Warstwa ta zapewnia:
• równoważenie zużycia,
• obsługę uszkodzonych sektorów,
• proste odśmiecanie i czyszczenie sektorów,
• mając pamięć flash z FLT mamy urządzenie blokowe, wiec można używać dowolnego systemu plików.
Rys. 26. Umiejscowienie warstwy FTL
3. Przygotowanie dysku do pracy
Aby można było użyć dysku do przechowywania danych należy wykonać:
• formatowanie niskopoziomowe,
• partycjonowanie,
• formatowanie wysokopoziomowe (system plików, np. FAT, NTFS, ext4).
Formatowanie niskopoziomowe dysków magnetycznych jest robione w fabryce. W przypadku dysków SSD firmware zapewnia kompatybilność. W obu przypadkach nie da się wykonać formatowania niskopoziomowego w domu.
Partycjonowanie polega na naniesieniu na dysk informacji o jego podziale na funkcjonalne części. Nawet jeśli nie chcemy dzielić dysku to i tak należy wykonać partycjonowanie. Pozwoli to nanieść na dysk niezbędne informacje. Bez tego dysk jest bezużyteczny.
Formatowanie wysokopoziomowe pozwala zapisać na dysku określony system plików, np. FAT, NTSS, ext4 oraz niezbędne do uruchomienia systemu operacyjnego struktury. Format wysokopoziomowy jest w pewnym stopniu zależny od wykorzystywanego systemu operacyjnego.
3.1. Partycjonowanie
Partycjonowanie możemy przeprowadzić według dwóch różnych schematów. Stary system jest oparty o tzw. Master Boot Record (MBR). Ma on wiele ograniczeń, ale wciąż jest szeroko stosowany. Pierwsze komputery PC używały właśnie tego systemu. Od tego czasu uległ on pewnym modyfikacjom, ale główne zasady działania pozostały niezmienne. Drugi, nowy, system partycjonowania został nazwany GPT (ang. Globally Unique Identifiers Partition Table). Znosi on ograniczenia starego systemu MBR, jednocześnie zachowując z nim kompatybilność.
W systemie partycjonowania MBR możemy podzielić dysk na maksymalnie cztery partycje (Rys. 27). Partycje mogą być dwóch rodzajów: podstawowa i rozszerzona. W systemie może być tylko jedna partycja rozszerzona. Partycja rozszerzona sama w sobie nie może być użyta. Trzeba na niej utworzyć dyski logiczne. Ich liczba może być duża, ale zwykle tworzone są jeden, dwa, trzy dyski. Partycja, z której jest uruchamiany system operacyjny musi być ustawiona jako aktywna.
Rys. 27. Partycjonowanie dysku twardego (MBR)
Pierwszy sektor na dysku zawiera wpis MBR. Opisuje on dysk twardy. Jego elementy można przedstawić następująco:
1. Kod skoku do programu ładującego, który:
• ładuje MBR do pamięci,
• włącza przerwania,
• odczytuje charakterystykę dysku,
• znajduje dysk aktywny,
• ładuje sektor inicjujący z dysku aktywnego.
2. Komunikaty o błędach (nieprawidłowa tablica partycji, błąd ładowania systemu operacyjnego, brak systemu operacyjnego).
3. Wolne miejsce (227 bajtów).
4. Tablica partycji (64 bajty, partycja aktywna, początek partycji, typ partycji, koniec partycji, całkowita liczba sektorów w partycji).
5. Sygnatura zakończenia, która wyznacza granice MBR (AA55h).
Z punktu widzenia opisu dysku twardego, najważniejsza jest tablica partycji. Jest to tablica opisująca jego podział, czyli określa początki i końce poszczególnych partycji (Rys. 28). Zawiera ona też flagi systemowe opisujące np. która partycja jest aktywna, czy jaki system plików jest użyty. Stare adresy fizyczne CHS (cylinder, głowica, sektor) nie są już używane. Pojemność dysków już dawno przekroczyła możliwości tego adresowania (po prostu zbyt mała liczba bitów została przypisana do opisu adresu głowicy, cylindra i sektora). Zamiast adresu fizycznego stosowane są adresy logiczne LBA. Wszystkie sektory dysku są ponumerowane (od zerowego do maksymalnego, sektor to 512 bajtów). W tablicy partycji mamy podany adres logiczny pierwszego sektora partycji i liczbę sektorów w partycji. To pozwala określić jej położenie.
Rys. 28. Tablica partycji
Nieco inaczej określane są adresy partycji logicznych. Wpis MBR wskazuje pierwszy sektor partycji rozszerzonej. Partycje logiczne ułożone są w łańcuszek. Pierwszy sektor każdego dysku logicznego zawiera własną rozszerzoną tablicę partycji. Tablica ta opisuje położenie aktualnego dysku logicznego oraz następnego. Rozszerzona tablica partycji następnego dysku znowu opisuje bieżący dysk i następny aż do wyczerpania dysków logicznych. Zatem każdy pierwszy sektor dysku logicznego ma własną tablicę partycji (66 bajtów) zawierającą 4 wpisy:
• 1 wpis opisuje bieżący dysk logiczny,
• 2 wpis opisuje następny dysk logiczny (jeśli jest zdefiniowany),
• 3 wpis jest nieużywany (zera),
• 4 wpis jest nieużywany (zera).
W nowym systemie partycjonowania GPT zmieniono stary standard adresacji sektorów CHS (cylinder, głowica, sektor) na stosowany obecnie LBA. Limit 32 bitów do opisywania rozmiaru partycji (LBA) istniejący w partycjach MBR zmieniono na 64 bity (limit wielkości partycji >2TB). Zniesiono ograniczenie do 4 partycji w MBR. Osiem bitów typu partycji MBR zastąpiono 128 bitami GUID. Partycje mogą być dowolnie tworzone. Opis tablicy GPT przedstawiony jest na rysunku 29. Na początku widać wpisy zgodne ze starym systemem MBR, w celu zachowania kompatybilności. W tym przypadku zdefiniowana jest jedna partycja opisująca cały dysk. Następnie podawane są w kolejności rozmiary poszczególnych partycji wraz z ich atrybutami. System jest przejrzysty i prosty.
Rys. 29. Tablica GPT
3.2. Format wysokopoziomowy
Zadaniem formatu wysokopoziomowego jest naniesienie na dysk struktur systemowych, po podziale na partycje, koniecznych do przechowywania plików i ewentualnie uruchomienia systemu operacyjnego. Pierwszy sektor aktywnej partycji zawiera tzw. boot record. Pod określonym adresem występuje skok do pliku ładującego właściwy system operacyjny.
System plików po części jest związany z używanym systemem operacyjnym. Istnieje bardzo wiele różnych systemów plików. Najprostszy z nich FAT (ang. File Allocation Table) jest kojarzony z systemem operacyjnym DOS, NTFS – z systemem Windows, ext4 – z systemem Linux. Podstawową jednostką alokacji danych na dysku jest sektor (512 bajtów). Wczesne systemy plików nie umożliwiały adresowania pojedynczych sektorów. Było ich po prostu za dużo w stosunku do liczby bitów przeznaczonych na adres. W związku z tym dyski zostały podzielone na klastry (pewną liczbę przyległych do siebie sektorów). Najmniejszą jednostką alokacji pamięci na dysku jest klaster. Jednostek alokacji na dysku jest mniej, ale najmniejszy obszar możliwy do przydzielenia się zwiększył. Dla przykładu FAT32 dysponuje 32 bitami do utworzenia adresu (czyli mamy 2^32 różnych adresów). Przy rozmiarze klastra 4 kB (8 sektorów) można w ten sposób zaadresować dyski o rozmiarze 0-6 GB, natomiast przy rozmiarze klastra 32 kB (64 sektory) dysk może mieć rozmiar 32-2048 GB.
4. Macierze dyskowe
Dyski twarde mogą być połączone w macierze dyskowe RAID (ang. Redundant Array of Inexpensive /Independent Disks). Są trzy główne powody łączenia dysków w macierze – pierwszy z nich to zwiększenie niezawodności (odporność na awarie), drugi – przyspieszenie transmisji danych i trzeci – powiększenie przestrzeni dostępnej jako jedna całość. Istnieje wiele sposobów łączenia dysków w macierze. Niektóre z nich mają już tylko znaczenia historyczne. Poniżej zostaną przedstawione najbardziej popularne sposoby.
4.1. RAID 0
Macierz RAID 0 jest złożona z dwóch lub więcej dysków o tej samej pojemności. Podstawową jednostką alokacji danych jest w tym przypadku tzw. pasek (ang. strip). Przy konfiguracji macierzy należy wybrać jego rozmiar. Krótsze paski lepiej się sprawdzają przy zapisie/odczycie małych plików, dłuższe paski są bardziej optymalne dla dużych plików. Raz wybranej długości paska nie można później zmienić bez utraty danych z macierzy. Dane podczas zapisu są rozrzucane na poszczególne dyski, odczyt też następuje równolegle (Rys. 30).
Rys. 30. RAID 0 na czterech dyskach
Korzyści ze stosowania RAID 0:
• przestrzeń wszystkich dysków jest widziana jako całość,
• przyspieszenie zapisu i odczytu w porównaniu do pojedynczego dysku (proporcjonalne do zastosowanej liczby dysków).
Wady RAID 0:
• brak odporności na awarię dysków,
• zwiększenie awaryjności; awaria pojedynczego dysku powoduje utratę wolumenu, a szansa na awarię jednego z N dysków rośnie wraz z N,
• pojemność macierzy wynosi N*rozmiar najmniejszego z dysków (zwykle łączy się jednakowe dyski).
4.2. RAID 1
Macierz RAID 1 jest zbudowana zazwyczaj z dwóch dysków (ale może też być ich więcej). Dane też są dzielone na paski. W tym przypadku paski są dublowane na każdym z dysków (Rys. 31).
Rys. 31. Macierz RAID 1
Korzyści ze stosowania RAID 1:
• odporność na awarię N – 1 dysków przy N-dyskowej macierzy,
• możliwe zwiększenie szybkości odczytu,
• możliwe zmniejszenie czasu dostępu.
Wady RAID 1:
• możliwe zmniejszenie szybkości zapisu,
• utrata pojemności (całkowita pojemność jest taka jak pojemność najmniejszego dysku).
4.3. RAID 10, RAID 0+1
Konfiguracja macierzy RAID 10 i RAID 0+1 jest przedstawiona na rysunku 32. Rozwiązanie to łączy zalety RAID 0 i RAID 1. Wadą jest konieczność użycia przynajmniej 4 dysków.
Rys. 32. RAID10 i RAID 0+1
4.4. RAID 5
Macierz RAID 5 wykorzystuje przynajmniej trzy dyski. Dane są dzielone na paski i rozrzucane na różne dyski (Rys. 33). Paski danych są dodatkowo chronione przez kody kontrolne. Kody kontrolne są również rozrzucane na dyski. W najprostszym przypadku kodem kontrolnym może być zwykła suma XOR. Każde dwa paski mają swój kod kontrolny. Paski i kody kontrolne są rozmieszczane na różnych dyskach. Utrata któregokolwiek dysku umożliwia odzyskanie danych.
Korzyści ze stosowania RAID 5:
• odporność na awarię jednego dysku,
• zwiększona szybkość odczytu – porównywalna do macierzy RAID 0 złożonej z N-1 dysków.
Wady RAID 5:
• zmniejszona szybkość zapisu z powodu konieczności obliczania sum kontrolnych (eliminowana poprzez zastosowanie sprzętowego kontrolera RAID5),
• w przypadku awarii dysku dostęp do danych jest spowolniony z powodu obliczeń danych na podstawie pozostałych danych i sum kontrolnych,
• odbudowa macierzy po wymianie dysku jest operacją kosztowną zarówno w sensie obliczeniowym jak i transferu danych, co powoduje spowolnienie operacji odczytu i zapisu. Wraz ze wzrostem pojemności pojedynczego dysku staje się to coraz większym problemem, gdyż rosnący czas odbudowy grupy RAID zwiększa ryzyko utraty danych w wyniku awarii kolejnego dysku w tym czasie.
Rys. 33. RAID5
Macierze RAID mogą być tworzone programowo lub też mogą być kontrolowane przez dedykowany sprzętowy kontroler. Zalety i wady poszczególnych rozwiązań są przedstawione w tabeli 7.
Tabela 7. RAID sprzętowy i programowy porównanie
RAID sprzętow | RAID programowy |
---|---|
• większa wydajność • mniejsze obciążenia CPU • sumy kontrolne wylicza dedykowany kontroler |
• mniejsza wydajność • większe obciążenie CPU • sumy kontrolne wylicza jednostka centralna |
• większa kompatybilność z mniej popularnymi systemami operacyjnymi • konfiguracja macierzy odbywa się poprzez menu podobne do menu BIOS • z punktu widzenia OS macierz zachowuje się jak każdy inny dysk twardy |
• nie wszystkie systemy operacyjne obsługują technologię RAID |
• niestandardowy sposób zapisu danych na nośnikach wykorzystujący własnościowe protokoły i struktury danych inne dla każdego producenta • w przypadku uszkodzenia kontrolera może to uniemożliwić odzyskanie danych pomimo sprawnie działających dysków twardych |
• standardowy (często również otwarty) sposób zapisu danych pozwalający na korzystanie z macierzy dyskowej po podłączeniu do innego systemu obsługującego ten standard |
• możliwość łączenia różnych interfejsów takich jak ATA, SCSI, SATA, USB w obrębie jednej macierzy |
5. System SMART
System SMART (ang. Self-Monitoring, Analysis and Reporting Technology) został opracowany aby monitorować głównie uszkodzenia mechaniczne dysku twardego. Takie uszkodzenia są przewidywalne i jednocześnie są przyczyną około 50-60% uszkodzeń dysków magnetycznych. W przypadku dysków SSD monitorowane jest głównie zużycie komórek. SMART został stworzony w celu obserwacji stanu dysku przy użyciu rozmaitych metod i czujników. Pojedynczy dysk twardy ATA może mieć ok. 30-40 takich wartości, które nazywane są atrybutami. Pomimo, że SMART jest ustandaryzowany niektórzy z producentów stosują własne metody pomiarów niektórych parametrów. Podczas pracy system SMART wykonuje różne testy, na wskutek których otrzymywane są wyniki w postaci wartości poszczególnych atrybutów, na podstawie których określany jest stan dysku twardego. Lista podstawowych atrybutów wraz z ich opisem jest przedstawione w tabeli 8.
Tabela 8. Podstawowe atrybuty – dysk magnetyczny
ID | Hex | Nazwa atrybutu | Opis |
---|---|---|---|
01 | 01 | Read Error Rate | Oznacza wskaźnik odczytu błędów występujących podczas odczytywania danych z powierzchni dysku. |
05 | 05 | Reallocated Sectors Count | Liczba ponownie realokowanych (na nowo przydzielonych) sektorów - remapowanie. |
10 | 0A | Spin Retry Count | Liczba prób rozpędzenia talerzy dysku – problemy z mechaniką dysku. |
188 | BC | Command Timeout | Liczba przerwanych operacji z powodu przerw w komunikacji z dyskiem twardym – problemy z kablem. |
196 | C4 | Reallocation Event Count | Liczba operacji dotyczących ponownego przydzielenia sektorów. |
197 | C5 | Current Pending Sector Count | Liczba "niestabilnych" sektorów (oczekujących na ponowne przydzielenie z powodu błędu odczytu) |
198 | C6 | Uncorrectable Sector Count | Całkowita liczba niekorygowalnych błędów przy zapisywaniu lub odczytywaniu sektora. |
201 | C9 | Soft Read Error Rate | Liczba błędów wynikająca z próby zapisu danych poza ścieżką zapisu |
Na rysunku 34 i 35 przedstawione są atrybuty SMART dla dysku magnetycznego i SSD. Można z nich odczytać liczbę włączeń dysku, czas pracy dysku i podstawowe parametry pracy. W przypadku dysków magnetycznych niepokojące mogą być niezerowe wartości atrybutów: Reallocated Sectors Count, Reallocation Event Count, Uncorrectable Sector Count. W przypadku dysków SSD należy zwrócić uwagę na atrybuty: Total LBA Written, Wear Leveling Count. Informują one o zużyciu dysku.
Rys. 34. Atrybuty SMART, dysk magnetyczny
Rys. 35 Atrybuty SMART, dysk SSD
6. Napędy optyczne
Napędy CD
Prace nad napędem CD-ROM rozpoczęte zostały w roku 1978. Pierwszy napęd powstał dzięki firmie Phillips. W połowie lat 80 minionego wieku, napędy te weszły do szerszej dystrybucji, zaś lata 90 przyniosły im niezwykłą popularność głównie dzięki stosunkowo niskiej cenie oraz stosunkowo dużej pojemności jaką oferowały płyty CD-ROM.
Zasada działania napędu CD-ROM jest prosta.
1. Dioda laserowa emituje na lustro promień podczerwony o niskiej energii.
2. Silnik servo, przesuwając lustro na rozkaz mikroprocesora, ustawia promień na właściwej ścieżce płyty.
3. Po odbiciu promienia przez płytę, jego światło jest zbierane i skupiane przez pierwszą soczewkę znajdującą się pod płytą, odbijane od lustra i kierowane do układu pryzmatów.
4. Układ pryzmatów kieruje promień na następną soczewkę skupiającą i na fotodetektor, który zamienia go na ciąg impulsów elektrycznych.
5. Impulsy elektryczne są dekodowane przez mikroprocesor i wysyłane do komputera.
Zagłębienia na płycie CD-ROM (ang. pit) sprawiają, że światło odbite w tym miejscu różni się intensywnością (energią) od tego, które na pit nie trafiło. Zmiana energii wiązki lasera traktowana jest jako pojawienie się informacji i przekształcana przez fotodetektor na impulsy elektryczne. Ponieważ przekłamanie informacji o pojedynczym bicie może być groźne, np. dla działania programu typu *.exe, stosuje się zaawansowane techniki wykrywania i korekcji błędów. Dzięki nim prawdopodobieństwo niewykrycia błędu jest rzędu 10^(-25). Korekcja wymaga dodatkowych 288 B na każde 2048 B danych.
Najważniejszymi parametrami napędów CD-ROM są:
• Szybkość transmisji – określa jak szybko może odbywać się transmisja danych. Dla napędów CD-ROM przyjęło się używać oznaczeń 1x, 2x, 8x, itp. Symbol 1x określa szybkość 150 kB/s. Naturalnie symbole 2x, 4x, itd. są wielokrotnościami wymienionej prędkości.
• Czas dostępu – opóźnienie pomiędzy momentem zlecenia odczytu, a chwilą uzyskania danych (typowa wartość 100 ms). Należy pamiętać, że inny jest czas dostępu do danych położonych blisko środka, a inny przy brzegu płyty.
Napęd CD-ROM można podłączyć do komputera korzystając z interfejsów, z których najpopularniejsze to SCSI/ASPI oraz IDE/ATAPI.
Napędy DVD
Skrót DVD (ang. Digital Versatile Disk) oznacza dysk zawierający różne dane. W domyślnym znaczeniu chodzi o dane cyfrowe, przede wszystkim cyfrowo zapisane multimedia. Pojedynczy dysk DVD jest w stanie pomieścić nawet do 15 GB danych (płytka dwuwarstwowa dwustronna). Najczęściej jednak dysk DVD jest jednowarstwowy jednostronny o pojemności 4.7 GB. Wymiarami zewnętrznymi płytka DVD nie różni się od CD – grubość 1.2 mm , średnica 120 mm (rozmiar mini 80mm). Laser wykorzystywany do pracy w tym napędzie wykorzystuje światło o długości 650 nm.
Płyta DVD może występować w wielu formatach. Najpopularniejsze z nich to:
DVD-ROM – płyta tylko do odczytu. Może ona zawierać różne dane, trzy najpopularniejsze formaty to DVD-ROM (dane komputerowe), DVD-VIDEO (materiał wideo) oraz DVD-AUDIO (najmniej popularny z wymienionych - zawiera muzykę o jakości wyższej niż CD).
DVD-R – płyty jednorazowego zapisu. Wyróżnia się dwa, niezgodne ze sobą, formaty: -R oraz +R (na szczęście praktycznie wszystkie napędy DVD-RW umożliwiają odczyt/zapis obu formatów). Pierwszy zapisywalny typ nośnika w technologii DVD. Stanowią odpowiednik płytki CD-R.
DVD-RW – płyty wielokrotnego zapisu. Podobnie jak przy DVD-R istnieją dwa niekompatybilne formaty DVD -RW/+RW. Płytki takie mogą być nagrywane ok. 1000 razy.
DVD-RAM – płyta ta po sformatowaniu na strukturę podobną do dysku twardego. Możliwe było zapisywanie na nich danych w podobny sposób jak na dyskietce. Standard ten popularny był głównie w Japonii. Cechuje go wysoka niezawodność i bezpieczeństwo danych. Trwałość tego medium szacowana jest na ok. 100000 cykli zapisu. Pierwsza generacja jednostronnej płytki miała 2.58 GB, potem doprowadzono ją do typowej pojemności 4.7 GB. Stosowany system plików to UDF lub FAT32.
Nowością wprowadzoną przy okazji nagrywarek DVD była technologia LightScribe. Dawała ona możliwość tworzenia za pomocą lasera nagrywarki etykiet na dyskach CD i DVD. Obraz powstaje na górnej stronie płytki. Wadą tej technologii jest stosunkowo długi czas wypalania. Praktyczne stosowanie technologii LightScribe wymaga również stosowania przeznaczonych do tego płytek i oprogramowania.
Napędy Blue Ray
Nad napędem Blue Ray prowadziły prace firmy Sony, Philips Hitachi, Sharp, Samsung, TDK. Płyty Blue Ray są w stanie pomieścić w jednej warstwie 25 GB danych, a na płycie dwuwarstwowej – 50 GB danych. Osiągnięcie tak ogromniej pojemności wymagało wprowadzenia zupełnie nowej technologii. Skonstruowano układ optyczny, który wypala zmniejszone pole (pit) w warstwie światłoczułej płyty. Płyta w stosunku do poprzednich rozwiązań charakteryzuje się następującymi cechami:
• zmniejszona grubość warstwy ochronnej do 0,1 mm, przy czym została ona pokryta materiałem odpornym na zabrudzenia,
• zmieniona aperturę numeryczna soczewki do wartości 0,85.
Długość wiązki zastosowanego lasera ma wartość 405 nm. Jest to kolor niebieski, stąd właśnie pochodzi nazwa całego standardu – Blue Ray. Moc lasera potrzebna do nagrania zmniejszona została o jedna czwartą w porównaniu do potrzebnej do nagrania w standardzie DVD.
7. Interfejsy dysków twardych
Każdy magnetyczny dysk twardy ma układ kontrolera, którego głównymi elementami są: separator danych, układ formatujący, bufor danych, układ sterowania głowicami oraz adapter systemu nadrzędnego (Rys. 36). Zadaniem separatora danych jest zamiana odczytanego, analogowego sygnału z głowic na postać cyfrową. Następnie formowane są słowa danych i buforowane w pamięci urządzenia. Odczyt musi następować spod określonych adresów, zatem sterownik musi umieć odpowiednio pozycjonować głowice. Dane są przesyłane do szyny systemu nadrzędnego za pośrednictwem adaptera systemu nadrzędnego. W przypadku standardu SATA adapter systemu nadrzędnego jest scalony z chipsetem, w przypadku standardu SCSI jest to dedykowany kontroler.
Transfer danych pomiędzy dyskiem i pamięcią RAM może być zrealizowany na dwa sposoby. Pierwszym z nich jest programowane wejście-wyjście (PIO). Sposób ten w znacznym stopniu angażuje procesor. Komunikacja przebiega w następujący sposób:
• System operacyjny ustawia adres na liniach adresowych.
• Po określonym czasie aktywowana jest linia odczyt/zapis i jednocześnie jest podawany sygnał o szerokości słowa danych 8/16 bitów.
• Dla zapisu system operacyjny umieszcza dane na liniach danych, przy odczycie dane dostarcza sterownik dysku.
• Wczytanie danych przez sterownik dysku lub system operacyjny.
• Linie adresowe są zwalniane.
Rys. 36. Kontroler dysku twardego
Obecnie dyski pracują w trybie DMA (ang. direct memory access), z tym, że wykorzystywany jest wbudowany w dysk kontroler DMA i technika bus masteringu. Kontroler dysku przejmuje we władanie magistralę systemową i następuje transfer danych:
• System operacyjny aktywuje sygnał DMARQ – inicjalizacja transmisji DMA.
• Sterownik ustawia sygnał DMAACK – potwierdzenie transmisji DMA.
• Transmisja DMA (może być przesyłanych wiele słów danych).
Dyski są dołączane do systemu z użyciem dwóch głównych interfejsów. Pierwszy z nich to standard SATA (ang. Serial ATA), przeznaczony głównie do komputerów domowych, drugi SAS (ang. Serial Attached SCSI), przeznaczony do serwerów.
7.1. Serial ATA
Standard Serial ATA (SATA) został opracowany w roku 2000. Był on wprowadzany w trzech odsłonach SATA-1X (150 MB/s), SATA-2X (300 MB/s), SATA-4X (600 MB/s). Obecnie pod pojęciem SATA rozumie się tą trzecią, najszybszą wersję standardu. Serial ATA zastąpił interfejs Parallel ATA (PATA). Zniósł też podstawowe ograniczenia starej wersji. Główne cechy standardu SATA to:
• Sygnał przesyłany różnicowo, poziomy napięć rządu 0.25V (PATA używał napięć na poziomie TTL).
• Połączenia punkt z punktem (kontroler – urządzenie).
• Nowy typ kabla (max. dł. 1m).
• Brak terminatorów.
• Obsługa Hot Plugged.
• Nowe funkcje, np. kolejkowanie rozkazów.
• Zgodność ze standardem ATA/ATAPI.
Rys. 37. Komunikacja w standardzie SATA
W standardzie SATA dane są przesyłane różnicowo z użyciem linii A i B (Tabela. 9). Pozostałe piny złącza dostarczają trzech napięć +3.3 V, +5 V, + 12V, albo są podłączone do masy GND. Komunikacja polega na wymianie trzech struktur: symboli (o stałej długości 1DW), ramek z treścią FIS (długość od 1DW do 2049DW), kodów CRC (1DW) – (Rys. 37). W celu pozbycia się niekorzystnych układów bitów stosuje się wstępne przekodowywanie danych z ośmiu na dziesięć bitów.
Tabela 9. Opis końcówek w złączach SATA
Końcówka | Opis |
---|---|
S1 | GND |
S2 | Para A / linia + |
S3 | Para A / linia - |
S4 | GND |
S5 | Para B / linia - |
S6 | Para B / linia + |
S7 | GNG |
P1 | + 3.3 V |
P2 | + 3.3 V |
P3 | + 3.3 V (Pre-charge) |
P4 | GND |
P5 | GND |
P6 | GND |
P7 | + 5 V (Pre-charge) |
P8 | + 5 V |
P9 | + 5 V |
P10 | GND |
P11 | res |
P12 | GND |
P13 | +12 V (Pre-charge) |
P14 | +12 V |
P15 | +12 V |
7.2. Serial Attached SCSI (SAS)
Serial Attached SCSI (SAS) jest interfejsem bardziej uniwersalnym niż SATA. Jest to również interfejs szeregowy, w którym realizowane są połączenia punkt z punktem. Sygnały są przesyłane różnicowo z wykorzystaniem niskich poziomów napięć. Podobnie jak w SATA w celu pozbycia się niekorzystnych układów bitów stosuje się wstępne przekodowanie danych z ośmiu na dziesięć bitów. Transfer danych może być realizowany w trybie full duplex. Pierwsza generacja interfejsu SAS pracowała z szybkością do 3.0 Gb/sec. W drugiej generacji zwiększono szybkość do 6.0 Gb/sec. W każdej z generacji istnieje możliwość zwielokrotnienia połączeń 2x, 3x, 4x, zwielokrotniając tym samym szybkość transferu danych. SAS odziedziczyło zestaw komend od równoległego SCSI, format ramki od Fibre Channel, strukturę i budowę warstwy fizycznej od Serial ATA. Serial Attached SCSI obsługuje zarówno SCSI jak i standard ATA. Mamy tu trzy protokoły transportowe:
• Serial SCSI Protocol (SSP) – obsługuje urządzenia SAS (SCSI),
• Serial ATA Tunneling Protocol (STP) – obsługuje dyski Serial ATA,
• Serial Management Protocol (SMP) – obsługuje ekspandery SAS.
SAS używa 7-pinowego konektora (cztery linie sygnałowe, trzy uziemiające) i kabla o małej średnicy o długości do 8m. Urządzenia SAS i SATA mogą być przyłączone do tego samego konektora.
Każde urządzenie SAS może mieć jeden bądź więcej portów. Każdy port może być skonfigurowany jako „narrow” (pojedyncze połączenie) lub „wide” (wiele połączeń). Siłą standardu SAS jest możliwość użycia ekspanderów. Tanie, szybkie przełączniki nazywane ekspanderami umożliwiają kontrolerowi SAS na połączenie z wieloma urządzeniami (Rys. 38). W odróżnieniu od urządzeń SCSI równoległego, urządzenia SAS nie wymagają ustawienia numeru ID. Wszystkie urządzenia SAS mają automatycznie przyporządkowane unikalne numery adresowe, umożliwiające zidentyfikowanie inicjatora, urządzenia docelowego i ekspandera.
Rys. 38. Możliwość podłączenia dysków do kontrolera SAS
8. Karty graficzne
Podstawowym zadaniem karty graficznej jest przygotowanie informacji o obrazie, który ma być wyświetlony na ekranie monitora oraz sterowanie monitorem. Pierwsze karty graficzne potrafiły jedynie wyświetlać znaki alfabetu łacińskiego ze zdefiniowanego w pamięci karty generatora znaków. Był to tak zwany tryb tekstowy. Kolejna generacja kart graficznych potrafiła wyświetlać w odpowiednim kolorze poszczególne punkty (piksele) – jest to tryb graficzny. Nowoczesne procesory graficzne udostępniają wiele funkcji przyśpieszających pracę programów. Możliwe jest narysowanie odcinka, trójkąta, wieloboku, wypełnienie ich zadanym kolorem lub wzorem, tzw. akceleracja 2D. Karty graficzne mają również wbudowane funkcje do tworzenia obrazu w przestrzeni trójwymiarowej, tzw. akceleracja 3D.
Przegląd kart graficznych rozpoczniemy od rozwiązań historycznych. Dają one pogląd jak szybko i w jakim kierunku rozwijał się ten segment. W tabeli 10 są zaprezentowane poszczególne rozwiązania.
MDA
MDA (ang. Monochrome Display Adapter) był pierwszą kartą graficzną użytą przez firmę IBM w komputerze PC z 1981 roku. Karta pracowała tylko w trybie tekstowym w rozdzielczości 25 linii po 80 znaków. Każdy znak był tworzony w matrycy 9x14 pikseli, co dawało efektywną rozdzielczość 720x350. Częstotliwość odświeżania wynosiła 50 Hz. Piksele nie mogły być adresowalne oddzielnie. Karta była wyposażone w 4 KB pamięci.
Tabela 10. Standardy kart graficznych
Data | Standard | Opis | Rozdzielczość | Liczba kolorów |
---|---|---|---|---|
1981 | MDA | Monochrome Dispay Adapter | 80 znaków w 25 wierszach | monochromat. (9x14 punktów na znak 720x350) |
1981 | CGA | Colour Graphics Adapter |
640x200 160x200 |
monochromat. 16 |
1982 | Herkules | Karta graficzna | 720x348 | monochromat. |
1984 | EGA | Enhanced Graphics Adapter | 640x350 | 16 z 64 (paleta) |
1987 | VGA | Video Graphics Array (syg. analogowy) |
640x480 320x200 |
16 z 262144 256 z 265144 |
1990 | XGA | Extended Graphics Array | 1024x768 | 16.7 milionów |
SXGA | Super Extended Graphics Array | 1280x1024 | 16.7 milionów | |
UXGA | Ultra XGA | 1600x1200 | 16.7 milionów |
CGA
Następcą sterownika MDA była karta CGA (ang. Color Graphics Adapter). Karta CGA została opracowana przez firmą IBM w 1982 roku i jako pierwsza oferowała możliwość korzystania z trybu graficznego. Były to jednak tylko dwie rozdzielczości: 640x200 oraz 320x200 punktów. Wyższa rozdzielczość pozwalała na pracę jedynie w trybie monochromatycznym, zaś niższa – w 4 kolorach. Karta oferowała 16 KB pamięci. Tryb tekstowy oferowany był w dwóch wariantach: 80 znaków x 25 linii, bądź 40 znaków x 25 linii, niestety matryca znaku miała rozmiary 8x8 pikseli. Karta zapewniała maksymalną częstotliwość odświeżania pionowego 60 Hz.
Herkules
Jednym z ograniczeń oryginalnej karty MDA była praca tylko w trybie tekstowym. Firma o nazwie Herkules opracowała w połowie lat osiemdziesiątych kartę wideo, która była kompatybilna z MDA, ale wspierała również wyświetlanie grafiki. Karta oferowała możliwość pracy w rozdzielczości 720x348 punktów (zarówno w trybie tekstowym, jak i graficznym), ale jedynie w trybie monochromatycznym. Wyposażona była w 64 KB pamięci. Znaki w trybie tekstowym wyświetlane były na matrycy 9x14 punktów.
EGA
Karta EGA (ang. Enhanced Graphics Adapter) stanowiła kolejny etap rozwoju standardu CGA. Karta oferowała wyświetlanie obrazu w rozdzielczości 640x350 punktów przy 16 kolorach (wybieranych z palety 64 kolorów). Zaopatrzona była w 256 KB pamięci. Rozdzielczość w trybie tekstowym wynosiła 80x25, przy matrycy znaku 8x14.
VGA
Karta VGA (ang. Video Graphics Array) to kolejny standard firmy IBM, opracowany z myślą o aplikacjach graficznych. Sterownik ten jest w stanie emulować wszystkie dotychczas opisane standardy. Cechą wyróżniającą kartę VGA jest fakt, że wysyła ona do monitora sygnały analogowe (poprzedniczki operowały na sygnałach cyfrowych), dzięki czemu zwiększono liczbę wyświetlanych kolorów. Zajmuje się tym wyspecjalizowany układ przetwornika cyfrowo-analogowego DAC (ang. Digital Analog Converter), który jest w stanie przedstawić każdą z barw w postaci określonej liczby poziomów (np. 64). Standardowy sterownik VGA umożliwia wyświetlanie 25 wierszy znaków w 80 kolumnach (matryca znaku 9x16). Znak może być wyświetlany w jednym z 16 kolorów, natomiast kolor tła dla każdego znaku może być inny. W trybie graficznym karta VGA umożliwia wyświetlenie obrazu o rozmiarach 640x480 pikseli przy 16 kolorach (wybranych z palety 256 kolorów). Maksymalną liczbę kolorów – 256 osiągnąć można przy rozdzielczości 320x200 punktów. Należy zaznaczyć, że karta VGA nie umożliwiała hardware’owego przyspieszania wyświetlania obrazu. Całą pracę związaną z wykreowaniem wyświetlanego obrazu wykonywał procesor.
SVGA
VGA był ostatnim standardem kart wideo, który był szeroko zaakceptowany przez różne firmy. Większość późniejszych kart oferowała wyższe rozdzielczości, pełną paletę kolorów (16.7 milionów), ale także wsteczną kompatybilność z VGA. Karty te często były nazywane SVGA (Super VGA). Nie był to jednak wspólny, udokumentowany standard. Pojęciem SVGA określano raczej wszystkie karty, które rozszerzały możliwości VGA.
8.1. Podstawowe definicje i parametry kart graficznych
Jednym z istotnych parametrów karty graficznej jest maksymalna rozdzielczość wyświetlanego obrazu. Pierwsze karty graficzne pracowały z rozdzielczością 640x480 pikseli. Obecnie rozdzielczości wyświetlanego obrazu daleko przekraczają 1600x1200 pikseli. Pola obrazowe dla poszczególnych rozdzielczości są przedstawione na rysunku 39.
Rys. 39. Pole obrazowe dla różnych rozdzielczości kart graficznych
Kolory w poszczególnych rozwiązaniach kart graficznych były różnie reprezentowane. Zwykle na reprezentację koloru przypadała określona, ograniczona liczba bitów (Tabela 11).
Tabela 11. Reprezentacja kolorów
Liczba bitów | Opis | Liczba kolorów | Bajtów na piksel |
---|---|---|---|
4-bit | Standard VGA | 16 | 0.5 |
8-bit | 256-colour mode | 256 | 1.0 |
16-bit | High colour | 65,536 | 2.0 |
24-bit | True colour | 16,777,216 | 3.0 |
W przypadku reprezentacji kolorów przez 4, czy 8 bitów była wykorzystywana tak zwana paleta kolorów. Przedzielanie tak małej liczby bitów do bezpośredniej reprezentacji koloru mija się z celem. Obraz byłby nieakceptowalnej jakości. Zamiast tego zastosowano inne podejście. Wybierano 16, bądź 256 kolorów tworząc właśnie paletę. Paleta mogła być zbudowana z dowolnych kolorów z wszystkich 16 milionów. Tak więc można było użyć każdego z kolorów, ale jeden wyświetlany obraz mógł zawierać jedynie 16, czy 256 wybranych (tworzących paletę). Tryb high colour używa dwóch bajtów do reprezentacji koloru piksela. Pięć z nich przypada na kolor niebieski, pięć na czerwony i sześć na zielony. Oznacza to możliwość użycia 32 różnych odcieni niebieskiego, 32 czerwonego i 64 zielonego. Redukuje to dokładność wyświetlania barw, ale ta redukcja nie jest duża. Wielu ludzi nie jest w stanie odróżnić tego trybu od trybu true colour. W trybie true colour do reprezentacji koloru piksela jest przeznaczone trzy bajty. Zatem można wyświetlić 256 poziomów każdego z kolorów. Daje to możliwość wyświetlenia 16.7 miliona kolorów. W zasadzie oko ludzkie nie jest w stanie odróżnić więcej niż 16 milionów kolorów, więc ten tryb nie wprowadza już ograniczeń.
W kartach graficznych wykorzystywane są nieco inne, dedykowane im moduły pamięci. Moduły te są zwykle szybsze niż te używane w pamięciach RAM. Niektóre rodzaje pamięci graficznych, używane dawniej, są przedstawione w tabeli 12. Standardy VRAM i WRAM umożliwiały jednoczesny odczyt i zapis danych.
Tabela 12. Typy pamięci używane w kartach graficznych
EDO | VRAM | WRAM | SDRAM | SGRAM | RDRAM | |
Maks. przepustowość (MBps) | 400 | 400 | 960 | 800 | 800 | 600 |
Dwu lub jedno portowa |
jedno-portowa | dwu-portowa | dwu-portowa | jedno-portowa | jedno-portowa | jedno-portowa |
Typowa szerokość szyny danych | 64 | 64 | 64 | 64 | 64 | 8 |
Szybkość (typowa) | 50-60ns | 50-60ns | 50-60ns | 10-15ns | 8-10ns | 330MHz szybkość zegara |
We współczesnych kartach stosowane są moduły pamięci oznaczane jako GDDR i optymalizowane do współpracy z kartami graficznymi. Najnowsze pamięci GDDR6 operują w trybie QDR (cztery transfery na cykl zegara), przez co przy takim samym taktowaniu, w odniesieniu do GDDR5, są w stanie zapewnić dwukrotnie wyższą przepustowość (Tabela 13).
Tabela 13. Porównanie pamięci GDDR5 i GDDR6
Karta graficzna może pracować w trybie 2D (dwuwymiarowym) lub 3D (trójwymiarowym). Jeśli chodzi o tryb 2D to obecnie wszystkie karty graficzne na rynku używają podobnych, bardzo dobrze zoptymalizowanych rozwiązań. Tu nie zostało wiele do poprawiania, tryb ten ma pełną akcelerację sprzętową i nie wymaga już udoskonaleń. Możliwe rozdzielczości w trybie 2D dla różnych ilości pamięci są przedstawione w tabeli 14.
Sygnał do monitora może być doprowadzony w postaci analogowej lub cyfrowej (Rys. 40). W tym pierwszym przypadku sygnał jest zamieniany z postaci cyfrowej do analogowej przez układ RAMDAC (przetwornik cyfrowo-analogowy) umieszczony na karcie graficznej. Od szybkości działania tego przetwornika zależą maksymalne możliwe do uzyskania częstotliwości odświeżania monitora. Jeśli układ ten jest kiepskiej jakości, wpływa też na jakość wyświetlanego obrazu. Wad tych nie ma złącze cyfrowe. W tym przypadku do monitora jest przekazywany bezpośrednio sygnał cyfrowy.
Tabela 14. Możliwe tryby wideo 2D dla różnych ilości pamięci
Pamięć | Rozdzielczość | Głębia kolorów | Liczba kolorów |
---|---|---|---|
1MB |
1024x768 800x600 |
8-bit 16-bit |
256 65,536 |
2MB |
1024x768 1280x1024 800x600 |
8-bit 16-bit 24-bit |
256 16.7 milionów |
4MB | 1024x768 | 24-bit | 16.7 milionów |
6MB | 1280x1024 | 24-bit | 16.7 milionów |
8MB | 1600x1200 | 32-bit | 16.7 milionów |
Rys. 40. Sposób doprowadzenia sygnału z karty graficznej do monitora
Wciąż dużym wyzwaniem dla kart graficznych jest implementacja trybu 3D. Do osiągnięcia pełnego realizmu sporo jeszcze brakuje. Na początku większość obliczeń związanych z grafiką 3D wykonywał procesor główny (Rys. 41). Później coraz więcej obliczeń przejmował procesor karty graficznej. Jest to bardzo rozbudowana jednostka, której moc obliczeniowa może obecnie nawet przewyższać moc obliczeniową CPU (dlatego starano się wykorzystać karty graficzne również w obliczeniach ogólnych).
Rys. 41. Rozdzielenie zadań związanych z wyświetlaniem obrazu 3D pomiędzy kartę graficzną i CPU
Niektóre z możliwości obliczeniowych współczesnych kart graficznych związanych ze scenami trójwymiarowymi są przedstawione poniżej:
• Gourand Shading – ten algorytm nakłada na obiekty 3D realistycznie wyglądające oświetlenie.
• Clipping – operacja ta wskazuje, które obiekty na scenie są widoczne, pozostałe obiekty są pomijane w obliczeniach.
• Lighting – obiekty na scenie zawsze są oświetlone źródłami światła, które są rozmieszczone gdzieś w przestrzeni. Cienie, kolory, odbicia światła i inne efekty są dodawane do obiektów uwzględniając ich pozycję i pozycją oświetlających ich źródeł światła.
• Transparency – niektóre obiekty są przezroczyste lub półprzezroczyste. Obliczenia wskazują, które obiekty mają być widoczne, np. przez półprzezroczystą szybę drzwi.
• Teksture Mapping – w celu, aby obiekty wyglądały realistycznie należy na ich powierzchnię nałożyć rysunki (tekstury). Na przykład ściana w większości przypadków nie jest obiektem litym i gładkim. Może ona być zbudowana z cegieł, czy drewna. Teksture mapping pozwala obiektom wyglądać bardziej realistycznie, a nie być tylko płaskimi, gładkimi. W rzeczywistości istnieje kilka technik nakładania tekstur.
• Dihtering – jest to proces mieszania małej liczby kolorów w taki sposób, aby wykreować iluzję postrzegania większej liczby kolorów.
• Fogging – efekt ten pozwala na rozmycie obiektów, które są daleko na scenie. Pozwala to uzyskać większy realizm sceny, jednocześnie dalekie obiekty są rozmyte, co pozwala na szybsze obliczenia (wymagają mniejszej dokładności).
• Filtering – jest wiele odmian filtrów, które mogą służyć do polepszenia obrazu, czy wygładzenia tekstur.
• Bufering – bufory pamięci są używane do wielu zadań podczas skomplikowanych obliczeń.
Karty graficzne (a szczególnie tryb 3D) stanowią obecnie jeden z najszybciej rozwijających się segmentów rynku PC. Oprogramowanie powstaje przez lata. Jego producenci nie mogliby nadążyć za szybko zmieniającym się hardware’m. Dlatego powstały nakładki programowe – API (ang. application programing interface). Oprogramowanie używa API do tworzenia grafiki, a domeną sterownika karty jest transkrypcja komend API na język sprzętowy karty. Istnieje wiele takich API. Najbardziej znane to DirectX, OpenGL, Direct3D, Farenhait.
Karty graficzne mają ogromny potencjał obliczeniowy. Od dawna próbowano wykorzystać ten potencjał również w obliczeniach ogólnego przeznaczenia. Powstały różne standardy, które to umożliwiały. Najbardziej znanymi są OpenCL i NvidiaCUDA. Powstanie tych standardów umożliwiła unifikacja jednostek obliczeniowych karty graficznej.
8.2. Budowa karty graficznej
Istnieje bardzo duża liczba różnych kart graficznych. Mają one różne architektury. Poniżej, jako przykład, podany zostanie zarys budowy karty GeForce GTX 1080 GPU. Karta ta wykorzystuje architekturę Pascal (Rys. 42). Procesory graficzne Pascal składają się z trzech podstawowych elementów (w różnych konfiguracjach):
• Graphics Processing Clusters (GPC),
• Streaming Multiprocessors (SM),
• kontrolerów pamięci.
Każdy Streaming Multiprocessor jest sparowany z silnikiem PolyMorph, który obsługuje pobieranie wierzchołków, tesselację, transformacje rzutni, konfigurację atrybutów wierzchołków i korekcję perspektywy. Połączenie Streaming Multiprocessor z jednym Polymorph Engine jest określane jako Texture Processing Clusters (TPC). GeForce GTX 1080 (GP104 GPU) składa się z:
• 4 Graphics Processing Clusters (GPC),
• 20 Streaming Multiprocessors (SM)
• 8 kontrolerów pamięci.
Rys. 42. Architektura Pascal - GeForce GTX 1080 GPU [źródło: Nvidia Developer Blog]
W GeForce GTX 1080 każdy Graphics Processing Cluster (GPC) ma dedykowany silnik rastrowy i pięć procesorów strumieniowych (SM). SM jest wysoce równoległym multiprocesorem, który wysyła grupy wątków (po 32) do rdzeni CUDA i innych jednostek wykonawczych. SM jest jedną z najważniejszych jednostek sprzętowych w GPU. Prawie wszystkie operacje przepływają przez SM w pewnym momencie potoku renderowania. GeForce GTX 1080 jest dostarczany z 20 jednostkami SM (łącznie 2560 rdzeniami CUDA i 160 jednostkami teksturowania). Każdy SM zawiera 128 rdzeni CUDA, 256 KB pliku rejestrów, 96 KB współużytkowanej pamięci, 48 KB pamięci podręcznej L1 i osiem jednostek teksturowania (Rys. 43).
Każdy rdzeń CUDA ma w pełni spotokowaną całkowitoliczbową jednostkę arytmetyczno-logiczną (ALU)
i jednostkę zmiennoprzecinkową (FPU) – (Rys. 44). ALU obsługuje obliczenia z 32-bitową precyzją dla wszystkich instrukcji, zgodnie ze standardowymi wymaganiami języka programowania. ALU jest również zoptymalizowane, aby wydajnie obsługiwać 64-bitowe obliczenia.
GeForce GTX 1080 ma osiem 32-bitowych kontrolerów pamięci (256-bitowych łącznie). Do każdego 32-bitowego kontrolera pamięci przyporządkowano osiem jednostek ROP (ang. Raster Operations) i 256 KB pamięci podręcznej L2. Układ GP104 wykorzystywany w GTX 1080 ma w sumie 64 bloki ROP i 2048 KB pamięci podręcznej L2. Pamięci GDDR5X osiągają szybkość transferu 10 Gb/s lub około 100 pikosekund (ps) między bitami danych. Podobnie jak poprzednie procesory graficzne GeForce, podsystem pamięci GeForce GTX 1080 wykorzystuje bezstratne techniki kompresji pamięci w celu zmniejszenia zapotrzebowania na przepustowość.
Rys. 43. Architektura Pascal - GeForce GTX 1080 GPU – multiprocessor strumieniowy (SM) [źródło: Nvidia Developer Blog]
Rys. 44. Architektura Pascal - GeForce GTX 1080 GPU – rdzeń CUDA [źródło: Nvidia Developer Blog]
Polecenia CPU są odczytywane przez Host Interface GPU. GigaThread Engine pobiera określone dane z pamięci systemowej i kopiuje je do bufora ramki. Następnie GigaThread Engine tworzy i wysyła bloki wątków do różnych SM. Poszczególne SM z kolei rozkładają grupy wątków (po 32 wątki – ang. warps) na rdzenie CUDA i inne jednostki wykonawcze. GigaThread Engine również rozdziela pracę na SM, gdy jest taka potrzeba w potoku graficznym, na przykład po etapach tesselacji i rasteryzacji.
8.3. Klawiatura
Biorąc pod uwagę fakt, że przed wynalezieniem klawiatury wprowadzanie danych do komputera było bardzo utrudnione (specjalne panele nastaw, karty bądź taśmy dziurkowane), można powiedzieć, że wynalezienie klawiatury było w pewnym sensie przełomowe. Klawiatury historycznie można podzielić na kilka grup: model XT, model AT i współczesne 101, 102, 104-klawiszowa PS/2 (wprowadzona na rynek przez firmę IBM). Klawiaturę XT i AT charakteryzowała mniejsza liczba klawiszy (83), inne ich rozmieszczenie. Klawiatura XT zapewniała jedynie jednokierunkową wymianę informacji z komputerem.
Zasada działania klawiatury jest stosunkowo prosta. Klawiatura ma swój mikrokontroler jednoukładowy, który nadzoruje siatkę połączeń linii X i kolumn Y, w węzłach której umieszczone są poszczególne klawisze. Układ wysyła, z odpowiednią częstotliwością, impulsy kolejno wszystkimi liniami X i bada, czy nie pojawiły się one na którejś z linii Y. Dzięki takiemu rozwiązaniu można jednoznacznie określić, które klawisze zostały naciśnięte, a które zwolnione. Informacja o mapie klawiatury jest przekazywana szeregowo do komputera. Pojawienie się przychodzącego z klawiatury znaku, komputer sygnalizuje przerwaniem. Każdemu klawiszowi przyporządkowany jest unikalny numer, a naciśnięcie klawisza powoduje przesłanie do komputera tzw. kodu naciśnięcia. Do interpretacji znaczenia klawisza (bądź grupy klawiszy) potrzebna jest cała mapa zestyków klawiatury. Dzięki możliwości programowania klawiatury i kontrolera oraz istnieniu unikatowych numerów przypisanych każdemu klawiszowi możliwe jest dostosowanie klawiatury do używania znaków narodowościowych (np. polskich).
Układ znaków na klawiaturze jest zależny od przyjętego standardu. W Polsce stosuje się dwa standardy - pierwszy to tzw. układ programisty, gdzie polskie litery można uzyskać poprzez wybranie znaku "bez ogonka" z jednocześnie wciśniętym prawym przyciskiem ALT, drugi - to tzw. układ maszynistki, zgodny z wcześniejszym standardem maszyn do pisania (QWERTZ).
8.4. Mysz
Mysz wynalazł w 1963 roku Douglas Engelbart, pracujący ówcześnie w Stanford Research Center. W latach 70 rozwijaniem technologii zajęła się firma Xerox, ale pierwsza mysz wyprodukowana na masową skalę pojawiła się w latach 80, wraz z upowszechnieniem się komputerów Apple Macintosh i ich graficznego interfejsu użytkownika.
Działanie myszy jest proste. Przesuwanie urządzeniem, wyposażonym w przyciski, powoduje przekazanie do komputera informacji o zmianie położenia myszy i w rezultacie ruch kursora na ekranie. Kliknięcie przyciskiem myszki powoduje modyfikację parametrów używanego programu.
Ze względu na sposób w jaki myszy odczytują swoją pozycję, urządzenia te możemy podzielić na trzy grupy: mechaniczne, optomechaniczne i optyczne. Modele mechaniczne i optomechaniczne działają według podobnych zasad:
• W modelu mechanicznym wewnątrz myszy znajduje się kulka wykonana ze specjalnego materiału. Przesuwanie myszy po płaskiej powierzchni powoduje obroty kulki, które zamieniane są na składowe ruchu w kierunkach X i Y. Za proces ten odpowiada para umieszczonych prostopadle do siebie przetworników (zestawu rolek, diody i fotodetektora), które stykają się z kulką.
• Jedyną rzeczą odróżniającą model optomechaniczny myszy od modelu mechanicznego jest fakt, że zmiana pozycji kulki odczytywana jest za pomocą detektorów optycznych, a nie rolek.
• W modelu optycznym myszy do odczytu zmiany pozycji również używane są czujniki optyczne. W tym przypadku jednak nie jest odczytywany ruch kulki, tylko przesuwanie się podłoża. We wczesnych modelach do działania takiej myszy niezbędna była specjalna podkładka pokryta siatką punktów kontrolnych, na podstawie których sensory optyczne odczytywały aktualne położenie urządzenia. Współczesne rozwiązania mogą odczytywać poruszenie myszy po dowolnym podłożu, byle nie było to lustro bądź biała kartka.
Ważnym parametrem jest rozdzielczość myszy - liczba impulsów wysyłanych w trakcie przemieszczania się urządzenia na odcinku jednego cala. Naturalnie, im rozdzielczość jest większa, tym lepiej dla użytkownika. Większość myszy komunikuje się z komputerem wykorzystując złącze PS/2 lub USB. Możliwa jest również bezprzewodowa komunikacja pomiędzy komputerem a myszą, chociażby z wykorzystaniem standardu Bluetooth.
8.5. Skaner
Zadaniem skanera jest konwersja dokumentów i zdjęć z postaci papierowej do cyfrowej oraz przesłanie ich do komputera. Typowym zastosowaniem skanerów jest również rozpoznawanie wyrazów – system OCR (ang. Optical Character Recognition). Podstawowym parametrem skanera jest rozdzielczość, na którą składają się:
• rozdzielczość sprzętowa – zależy od jakości wykonania fizycznych komponentów skanera (lustra, układu skupiającego). Najczęściej spotykane rozdzielczości to 600x600 dpi i 1200x1200 dpi, ale profesjonalne skanery potrafią pracować nawet przy rozdzielczości 14000x5600 dpi.
• rozdzielczość interpolowana – jej wartość wynika z zastosowanych algorytmów interpolacji, mających na celu uwypuklenie szczegółów obrazu. Typowa wartość wynosi 19 200 dpi.
Kolejnym, bardzo istotnym, parametrem skanera jest poprawna interpretacja barw skanowanego dokumentu. Standardowo informacja o barwie każdego zeskanowanego punktu zapisana jest na 24 bitach. Profesjonalne skanery odczytują informację o barwie z większą dokładnością. Posługując się tzw. wewnętrznym kodowaniem, uzyskują większą głębię koloru (np. wykorzystując 36 bitów), po czym z zeskanowanego zbioru wyliczany jest najlepszy zakres barw i zapisywany w 24-bitowym formacie RGB. Innym parametrem, który ma wpływ na jakość skanowanego obrazu, jest zakres gęstości optycznej (D), czyli zdolność prawidłowej prezentacji najjaśniejszych i najciemniejszych partii obrazu.
Wszystkie opisane powyżej własności skanera są powiązane z jego konstrukcją, to ona w największym stopniu decyduje o jakości skanowanych dokumentów i fotografii. Konstrukcje skanerów podzielić możemy, ze względu na wykorzystane elementy światłoczułe, na dwie grupy:
• Urządzenia wykorzystujące układy typu CCD (ang. Charge Coupled Device). Konstrukcje takie zawierają lampę z zimną katodą, której rozgrzewanie, w początkowej fazie skanowania, wymaga dostarczenia prądu o większym natężeniu niż do urządzenia drugiego typu. Skanery te mają znaczną wagę. Jest to spowodowane faktem, że głowica skanująca, prócz elementów CCD i lampy, zawiera lustro i układ skupiający.
• Urządzenia wykorzystujące układy typu CID (ang. Contact Image Sensor). Konstrukcja zawiera diody LED, które mają bardzo małe wymagania prądowe. Głowica skanująca nie zawiera układu lustra i układu skupiającego, dzięki czemu skanery tego typu są bardzo lekkie. Charakteryzują się one jednak gorszymi parametrami jakościowymi. Zaletą tych urządzeń jest przystępna cena.
Niezależnie od typu, działanie skanera jest bardzo podobne: podczas skanowania pod dokumentem przemieszcza się głowica skanera (najczęściej o długości równej szerokości skanowanego dokumentu), której lampa (lub diody LED) oświetlają dokument, który odbija światło. Natężenie światła odbitego od elementu ciemniejszego jest inne, niż natężenie światła odbitego od elementu jaśniejszego. Światło odbite kierowane jest do komórek światłoczułych (w przypadku elementów CCD wymagany jest specjalny układ lustra-soczewek skupiających). Elementy światłoczułe zamieniają informację o natężeniu światła na impulsy elektryczne, które są przesyłane do komputera. W komputerze informacje o poszczególnych częściach dokumentu są zbierane i generowany jest obraz dokumentu jako całość. Skanery komunikują się z komputerem poprzez magistrale SCSI, FireWire lub przez łącza USB.
8.6. Monitor
Obecnie, w ogromnej większości przypadków, używane są monitory LCD (ang. Liquid Crystal Display). Dzięki wielu swym zaletom, do których na pewno należy zaliczyć dużą żywotność, niewielką grubość oraz ciągle malejącą cenę, aktualnie praktycznie wyparły już klasyczne monitory CRT (kineskopowe). Głównym składnikiem wyświetlaczy LCD jest pewna substancja, która wykazuje własności zarówno cieczy jak i ciała stałego. Mowa tu o odkrytym w 1888 roku przez austriackiego botanika Friedrich'a Rheinitzer'a ciekłym krysztale. Pierwsze monitory LCD wykorzystywały technologię TN (ang. Twisted Nematic). Zasadę działania takich paneli LCD opisać można następująco (Rys. 45):
1. Lampa fluorescencyjna, bądź diody LED, umieszczone z tyłu monitora emitują światło. Diody LED są mniej awaryjne, pobierają mniej prądu i łatwiej jest uzyskać równomierne oświetlenie całego ekranu.
2. Światło przechodzi przez pierwszy filtr polaryzacyjny. Polaryzacja światła z użyciem filtru powoduje zorientowanie fali świetlnej w jednej płaszczyźnie, którą wyznacza oś filtru.
3. Spolaryzowane światło dociera do substancji ciekłokrystalicznej, której długie molekuły wcześniej, w procesie produkcyjnym, zostały odpowiednio ułożone wewnątrz każdej z komórek matrycy LCD.
• W przypadku braku zasilania molekuły ciekłego kryształu układają się w położeniu "skręconym", wymuszonym przez warstwę orientującą znajdującą się wewnątrz każdej z komórek. Powoduje to zmianę polaryzacji światła o 90 stopni.
• Pod wpływem napięcia sterowania cząsteczki ciekłego kryształu układają się równolegle do linii pola elektrycznego.
Rys. 45. Ekrany LCD – TN (Twisted Nematic)
4. Światło po przejściu przez warstwę ciekłokrystaliczną pada na drugi filtr polaryzacyjny, którego oś polaryzacji jest zmieniona o 90 stopni w stosunku do filtru pierwszego. Zależnie od braku/występowania napięcia sterującego możliwe są następujące rezultaty działania filtru:
• Brak napięcia powoduje przepuszczenie światła przez filtr - odpowiada to emisji światła, a więc zapaleniu się piksela.
• Przyłożenie napięcia sterowania powoduje wytłumienie światła przez drugi filtr polaryzacyjny - piksel jest czarny.
• Sterowanie wartością napięcia pozwala na zmianę przestrzennego ułożenia cząsteczek ciekłego kryształu. Dzięki temu możliwe staje się odchylenie płaszczyzny spolaryzowanego światła o kąt różny od 90 stopni (np. 30 stopni), co pozwala na uzyskanie różnych odcieni szarości.
Kolorowe wyświetlacze zawierają dodatkową warstwę, w której skład wchodzą barwne filtry RGB (ang. Red Green Blue). Dzięki złożeniu jednego piksela z trzech różnokolorowych komórek matrycy, możliwe staje się wyświetlenie dowolnego koloru.
Wyróżniamy dwa główne rodzaje wyświetlaczy LCD – pasywne DSTN (ang. Dual Scan Twisted Nematic) i aktywne TFT (ang. Thin Film Transistor). Wyświetlacze pasywne nie są już produkowane. Cechy charakterystyczne (negatywne) tych wyświetlaczy to to:
• duża bezwładność – czas potrzebny na ustalenie się wymaganego napięcia sterującego ustawieniem cząsteczek ciekłego kryształu jest duży, co owocuje długim czasem odświeżania obrazu,
• wzajemne oddziaływanie na siebie ścieżek przewodzących powoduje ograniczenie palety barw możliwych do wyświetlenia oraz powstawanie przesunięć obrazu przy dużych kontrastach.
W roku 1970 po raz pierwszy zastosowano tranzystory wbudowane w ekran ciekłokrystaliczny, tworząc tzw. matrycę aktywną. Każda komórka matrycy sterowana jest cienkowarstwowym tranzystorem TFT, który reguluje napięcie na elektrodach. Dzięki takiej konstrukcji wyeliminowany zostały niemal zupełnie niekorzystny efekt wzajemnego wpływu ścieżek przewodzących na siebie.
Oprócz wyświetlaczy TN stosowane są również inne konstrukcje. Najpopularniejsze są panele IPS (ang. In-Plane Switching) i MVA (ang. Multidomain Vertical Alignment). Wyświetlacze IPS zostały opracowane przez firmą Hitachi w roku 1995 w celu poprawy słabego kąta widzenia i słabej reprodukcji kolorów paneli TN w tamtym czasie. Nazwa In-Plane Switching pochodzi od głównej różnicy w stosunku do paneli TN, polegającej na tym, że cząsteczki kryształu poruszają się równolegle do płaszczyzny panelu zamiast prostopadle do niej. Zmiana ta zmniejsza ilość rozpraszania światła w matrycy, co nadaje IPS charakterystyczne, szerokie kąty widzenia i dobre odwzorowanie kolorów. W panelach MVA cząstki ciekłego kryształu związane z jednym pikselem odchylają się w różnych kierunkach. Nowoczesne panele MVA mogą oferować szerokie kąty widzenia (ustępujące tylko technologii S-IPS), dobrą głębię czerni, dobre odwzorowanie i głębię kolorów oraz krótkie czasy reakcji dzięki zastosowaniu technologii RTC (ang. Response Time Compensation). Istnieje kilka technologii „nowej generacji” opartych na MVA, w tym P-MVA i AMVA firmy AU Optronics, a także S-MVA firmy Chi Mei Optoelectronics.
8.7. Drukarka
Drukarka, w przeciwieństwie do skanera, zamienia dokument z postaci cyfrowej na papierową. Drukarki podzielić można na trzy grupy w zależności od techniki jaką wykorzystują do drukowania:
• Drukarki igłowe. Technika druku opiera się na dwóch elementach: głowicy (z igłami) i taśmie barwnej. Igły głowicy uderzając w taśmę barwiącą powodują przeniesienie barwnika na papier. Drukarki tego typu są głośne i oferują słabą jakość wydruku. Mają one w zasadzie jedną zaletę – są w stanie drukować na kalce w więcej niż jednej kopii, dlatego znajdują jeszcze zastosowanie do wydruku faktur, potwierdzeń, itp...
• Drukarki atramentowe. Wykorzystują atrament jako nośnik informacji. Atrament, który znajduje się w zbiornikach, jest doprowadzany do głowicy i wypychany przez dysze. Istnieje wiele rodzajów drukarek atramentowych, wykorzystujących różne techniki do nakładania tuszu na papier. Najpopularniejsze z nich to:
o technika termiczna – kropelka atramentu jest "wypluwana" na papier na skutek rozprężenia pęcherzyka powietrza (w każdej z dysz znajduje się specjalny grzejnik, który w krótkim czasie potrafi rozgrzać się do wysokiej temperatury. W wyniku tego wytwarza się para wodna, która wypycha kropelkę atramentu z dyszy.
o technika piezoelektryczna – kropelka tuszu jest wypychana przez kryształki, które pod wpływem przyłożonego napięcia zmieniają swoją objętość.
• Drukarki laserowe. W tym przypadku, za pomocą specjalnej rolki, toner jest rozkładany w miejscach, które wcześniej oświetlił promień lasera (ujemnie naładowany toner jest przyciągany przez dodatnio naładowane punkty bębna). Naelektryzowany toner przyciągany jest przez papier (również naelektryzowany, lecz przeciwnie), po czym zostaje utrwalony przez zespół wałków rozgrzanych do 200 stopni Celsjusza (w tej temperaturze toner topi się). W trzecim etapie bęben jest oczyszczany z resztek barwnika i rozładowywany.
Najważniejszym parametrem drukarki jest maksymalna rozdzielczość z jaką jest w stanie drukować. Typowe rozdzielczości popularnych drukarek atramentowych to 600x300 dpi, 600x600 dpi. Oczywiście drukarki laserowe (ale i atramentowe również) mogą oferować znacznie większe rozdzielczości. Drugim, ważnym czynnikiem jest czas drukowania dokumentów (drukarki atramentowe ok. 4-6 stron na minutę, drukarki laserowe 10 i więcej). Najczęściej drukarki komunikują się z komputerem wykorzystując port USB. Wiele drukarek ma też obecnie wbudowane interfejsy sieciowe.