Architektura systemów informatycznych Architektura urządzeń wejścia i wyjścia (I/O) Literatura: Hyde R. 2005, Zrozumieć komputer, Profesjonalne programowanie Część 1, Helion, Gliwice
Podstawowe elementy systemu komputerowego Podstawową obowiązującą obecnie architekturą komputera jest architektura von Neumanna (ang. von Neumann architekture -VNA) jednostka centralna (procesor, CPU) pamięć urządzenia wejścia-wyjścia (I/O)
Zagadnienia Połączenie procesora ze światem zewnętrznym Mechanizmy wejścia-wyjścia Magistrale systemowe Urządzenia peryferyjne płyta główna (foto: Wikipedia)
Połączenie procesora ze światem zewnętrznym W celu przesłania danych na urządzenie wyjściowe, procesor kopiuje je do specjalnego miejsca w pamięci będącego adresem urządzenia Aby je odczytać, przenosi je spod adresu urządzenia Operacje wejścia i wyjścia działają tak samo, jak odczyty i zapisy w pamięci ale występuje w nich znacznie więcej stanów oczekiwania
Połączenia procesora ze światem zewnętrznym Port tylko do odczytu Port tylko do zapisu Port do odczytu i zapisu Dualne porty I/O Port dwukierunkowy
Schemat portu wyjściowego (do zapisu) Linia kontroli zapisu CPU Linia dekodowania adresu Magistrala danych z CPU W En Dane Z A T R Z A S K Dane na zewnątrz Zatrzask rejestr asynchroniczny, który przechowuje dane przeznaczone do przykazania na zewnątrz
Schemat portu do odczytu i zapisu (możliwość odczytu tylko danych wcześniej zapisanych do portu) Linia kontroli zapisu CPU Linia dekodowania adresu Magistrala danych z CPU W En Dane Z A T R Z A S K Linia kontroli odczytu CPU Linia dekodowania adresu Magistrala danych do CPU W En Dane Z A T R Z A S K Dane na zewnątrz
Schemat portu dualnego I/O Linia kontroli zapisu CPU Linia dekodowania adresu z CPU W En Dane Z A T R Z A S K Dane na zewnątrz Magistrala danych Linia kontroli odczytu CPU Linia dekodowania adresu do CPU W En Dane Z A T R Z A S K Dane z zewnątrz
Mechanizmy wejścia-wyjścia Odwzorowanie w pamięci do komunikowania z urządzeniami peryferyjnymi wykorzystywana jest jest zwykła przestrzeń adresowa pamięci i zwykłe instrukcje procesora mov (strona pamięci o wielkości 4096 bajtów zarezerwowana do komunikacji z urządzeniem). Ten obszar pamięci nie może być buforowany przez pamięć podręczną. Odwzorowanie na I/O wykorzystywana jest odrębna przestrzeń adresowa oraz specjalne instrukcje maszynowe in i out zapewniające konwersję między specyficznymi adresami I/O a światem zewnętrznym. Bezpośredni dostęp do pamięci (DMA) direct memory access urządzenie peryferyjne odczytuje i zapisuje dane w pamięci bez udziału procesora.
Magistrale systemowe i szybkość transferu danych Magistrala PCI Magistrala ISA Magistrala AGP
Wydajność magistrali PCI (Peripheral Component Interconnect) Podstawowy układ to 32-bitowa magistrala danych taktowana zegarem 33 MHz, czyli transfer danych: (4 bajty*33mhz) 132 MB/s Kiedy procesor chce sięgnąć do urządzenia peryferyjnego za pośrednictwem magistrali PCI, musi wynegocjować z innymi urządzeniami zasady dostępu do tej magistrali. Zanim sterownik PCI przyzna mu dostęp do magistrali, negocjacje mogą zająć kilka cykli zegara. Aby przyśpieszyć komunikację stosuje się dane w trybie pakietowym przez sterownik DMA
Wydajność magistrali ISA Magistrala ISA to artefakt po oryginalnych systemach PC/AT, jest 16-bitowa z szybkością 8 MHz, czyli transfer sięga do 2 MB/s Może ona obsłużyć jedynie urządzenia o małej i średniej szybkości. Magistrala ISA wymaga najpierw negocjowania użycia magistrali PCI
Wydajność magistrali AGP (Accelerated Graphics Port) Interfejs AGP został stworzony dla kart graficznych aby nie musiały negocjować dostępu do magistrali z innymi urządzeniami AGP czyli przyśpieszony port grafiki łączy magistralę lokalną procesora bezpośrednio z kartą. Daje to możliwość szybkiego przekazywania danych z pamięci RAM do karty graficznej i z powrotem. Jest to 32-bitowa (66 MHz) magistrala PCI zoptymalizowana do szybkiego przesyłania dużych ilości danych pomiędzy pamięcią operacyjną a kartą graficzną. Maksymalny transfer przy przepływowości x 8 wynosi 2 GB/s Obecnie zastępowana przez szybszą PCI Express
Sterowniki urządzeń tryb chroniony Większość współczesnych systemów operacyjnych w komunikacji z urządzeniami peryferyjnymi stosuje tryb chroniony. Do portów I/O dostęp mają tylko specjalne moduły sterowniki urządzeń. Sterownik urządzenia to specjalnego rodzaju program, który łączy się z systemem operacyjnym. Sterownik musi postępować zgodnie z pewnymi przyjętymi protokołami i musi wykonywać specjalne wywołania systemu operacyjnego. We współczesnych systemach operacyjnych komunikacja z urządzeniami peryferyjnymi zwykle przypomina odczyt z pliku lub zapis do niego.
Urządzenia peryferyjne Klawiatura Standardowy port równoległy Porty szeregowe Stacje dysków Pamięć flash Urządzenia i sterowniki SCSI Interfejs IDE/ATA/SATA Uniwersalna magistrala szeregowa USB Urządzenia wskazujące Karty dźwiękowe
Klawiatura Klawiatura komputera PC sama w sobie jest osobnym komputerem. W jej wnętrzu znajduje się mikrosterownik 8042, który stale sprawdza stan klawiszy czy któryś nie został przyciśnięty To przetwarzanie jest robione równolegle z normalnym działaniem komputera. Nawet kiedy komputer jest zajęty innymi zadaniami, klawiatura rejestruje wszystkie wciśnięcia klawiszy. Zgłoszenie klawisza zaczyna się od jego wciśnięcia, co powoduje zamknięcie obwodu elektrycznego rejestrowane przez mikrosterownik. Dla każdego klawisza klawiatura generuje dwa kody: kod wciśnięcia i kod zwolnienia. Mikrosterownik 8042 przesyła kody klawiszy do komputera, który przetwarza je w ramach procedury obsługi przerwania klawiatury Zdefiniowanie osobnych kodów wciśnięcia i zwolnienia jest istotne, gdyż przytrzymanie niektórych klawiszy (Shift, Alt, Ctrl) daje inne efekty. Sterownik klawiatury zwykle zamienia kody klawiszy na kody ASCII lub inne, które potrafią obsłużyć aplikacje
Standardowy port równoległy (LPT) Interfejs IEEE 1284 nazwa 25-pinowego złącza w komputerach osobistych. IEEE 1284 jest portem równoległym wykorzystywanym w głównej mierze do podłączenia urządzeń peryferyjnych: drukarki, skanery, plotery. Został opracowany w przez konsorcjum Network Printing Alliance jako standard zapewniający wsteczną kompatybilność z używanym od lat 70. jednokierunkowym portem Centronics. Zwany jest też portem LPT lub portem równoległym. W jednokierunkowym systemie komunikacji równoległej istnieją dwie strony transmitująca i odbierająca. Strona transmitująca wstawia dane na liniach danych oraz informuje odbierającą, że są już dostępne. Strona odbierająca pobiera dane z linii i znowu informuje o tym nadawcę. Proces równoległej wymiany danych polega koordynacji przekazywanych danych (handshaking).
Porty szeregowe Port szeregowy RS-232 port komputerowy, przez który dane są przekazywane w formie jednego ciągu bitów. Port ten jest zwykle zaopatrzony w specjalny układ o nazwie UART, który tłumaczy ciągi bitów na bajty i na odwrót. Port do komunikacji z urządzeniami zgodnymi z standardem RS-232 połączonych portami COM1:, COM2:, COM3 i COM4:. Obecnie całkowicie zastępowany portami USB. Porty szeregowe w komputerze wykorzystywano zwykle do podłączania "strumieniowych" urządzeń zewnętrznych takich jak myszy, klawiatury, modemy i urządzenia pomiarowe. Ze względu na prostszą synchronizację niż w przypadku portu równoległego, porty szeregowe w praktyce osiągają większe przepustowości.
Dyski: optymalizacja wydajności dysków Przeplot sektorów przeplot polega na rozsunięciu sektorów w ramach ścieżki tak, aby sektory sąsiadujące logicznie były od siebie fizycznie rozdzielone, zaletą przeplotu sektorów jest to, że kiedy system czyta jeden z nich, zanim zostanie przeczytany następny logicznie sektor, musi upłynąć czas obrót nad innym sektorem. Dzięki temu system operacyjny ma czas na przetwarzanie i wysłanie nowego żądania I/O, jeszcze zanim sektor znajdzie się pod głowicą. Sterownik dysku z pamięcią Systemy RAID - (ang. Redundant Array of Independent Disks, Nadmiarowa macierz niezależnych dysków) polega na współpracy dwóch lub więcej dysków twardych w taki sposób, aby zapewnić dodatkowe możliwości, nieosiągalne przy użyciu jednego dysku. RAID używa się w następujących celach: zwiększenie niezawodności (odporność na awarie), zwiększenie wydajności transmisji danych, powiększenie przestrzeni dostępnej jako jedna całość.
Systemy RAID RAID Level 0: Polega na połączeniu ze sobą dwóch lub więcej dysków fizycznych tak, aby były widziane jako jeden dysk logiczny. Powstała w ten sposób przestrzeń ma rozmiar taki jak N*rozmiar najmniejszego z dysków. Dane są przeplecione pomiędzy dyskami. Dzięki temu uzyskujemy znaczne przyśpieszenie operacji zapisu i odczytu (N*szybkość 1 dysku) ze względu na zrównoleglenie tych operacji na wszystkie dyski w macierzy. RAID Level 1: Polega na replikacji pracy dwóch lub więcej dysków fizycznych. Powstała przestrzeń ma rozmiar najmniejszego nośnika. RAID 1 jest zwany również lustrzanym (ang. mirroring). Szybkość zapisu i odczytu zależy od zastosowanej strategii:
Pamięć flash Pamięć flash jest urządzeniem półprzewodnikowym, opartym na elektronicznie dającej się wymazać i ponownie zapisać pamięci tylko do odczytu (EEPROM); pamięć ta, wbrew swojej nazwie, może być odczytywana i zapisywana. Pamięć w modułach flash jest ułożona blokami, a nie sektorami, jak na dysku twardym. W przeciwieństwie do zwykłej pamięci półprzewodnikowej RAM, nie można zapisywać w module poszczególnych bajtów - zapis musi być robiony przez wymazywanie najpierw całego bloku, w którym dane będą zapisywane. Wada pamięci flash jest ograniczona gwarancja na liczbę zapisów ( liczba cykli zapisu do tego samego bloku wynosiła od 10 000 w pierwszych urządzeniach do 1 000 000 we współczesnych) Pamięć flash jest wolniejsza nawet od szybkich dysków twardych - odczyt danych z pamięci flash zwykle zajmuje mikrosekundy (w RAM nanosekundy)
Urządzenia i sterowniki SCSI SCSI (skrót z ang. Small Computer Systems Interface) równoległa magistrala danych przeznaczona do przesyłania danych między urządzeniami. System SCSI do niedawna był powszechnie wykorzystywany głównie w wysokiej klasy serwerach i stacjach roboczych. SCSI to prawdziwa magistrala peer-to-peer - wszystkie urządzenia podłączone do magistrali są równorzędne, każde z nich może pełnić rolę zarówno inicjatora (rozpoczynać operację) jak i celu (wykonywać operację zleconą przez inicjator). SCSI (szybkość transferu 320 MB/s) to doskonały interfejs dla macierzy RAID, gdyż jest to jeden z nielicznych sterowników dysków pozwalających umieszczać wiele dysków na tym samym interfejsie
Interfejsy IDE/ATA, SATA IDE/ATA (ang. Integrated Drive Electronics / Advanced Technology Attachments) tańszy od SCSI interfejs systemowy w komputerach klasy PC przeznaczony do komunikacji z dyskami twardymi zaproponowany w 1983 przez firmę Compaq. Interfejs ten stosuje się także do współpracy z napędami optycznymi i przenośnymi kartami pamięci. Interfejs IDE pozwala podłączyć jedynie tylko dwa dyski na kanale podstawowym i dwa na kanale wtórnym, wymaga współpracy procesora głównego. W 2003 roku wprowadzono Serial ATA - standard ATA jest określany jako PATA (od "Parallel ATA"). Prędkości od 33 do 133MB/s (ATA/33, ATA/66, ATA/100, ATA/133) Serial ATA (ang. Serial Advanced Technology Attachment, SATA) szeregowa magistrala komputerowa, Opracowano trzy generacje interfejsu SATA o coraz wyższej przepustowości: SATA I - 1,5 Gbit/s (ok. 180 MB/s) SATA II - 3,0 Gbit/s (ok. 375 MB/s) SATA III - 6,0 Gbit/s (ok. 750 MB/s). SATA ATA
Uniwersalna magistrala szeregowa (USB) Universal Serial Bus (USB; uniwersalna magistrala szeregowa) rodzaj sprzętowego portu komunikacyjnego komputerów, zastępującego stare porty szeregowe i porty równoległe. Został opracowany przez firmy Microsoft, Intel, Compaq, IBM i DEC. Port USB jest uniwersalny w tym sensie, że można go wykorzystać do podłączenia do komputera wielu różnych urządzeń (jednocześnie do 127 urządzeń) Urządzenia podłączane w ten sposób mogą być automatycznie wykrywane i rozpoznawane przez system, przez co instalacja sterowników i konfiguracja odbywa się w dużym stopniu automatycznie. Możliwe jest także podłączanie i odłączanie urządzeń bez konieczności wyłączania czy ponownego uruchamiania komputera. USB to połączenie typu master-slave, gdzie nadrzędny jest zawsze komputer USB pracuje w przesyle 1,5 i 12MB/s (USB 1.1), 480MB/s(USB 2.0) i 640 MB/s (USB 3.0)
Rodzaje transmisji USB Transmisja sterownia zapis i odczyt z kontrolą jakości przesyłu Transmisja masowa - transmisja dużych porcji danych z największą możliwą prędkością (dyski i skanery przesył danych) Transmisja przerwania - stałe pasmo bezbłędnego przesyłu niewielkiej ilości danych (klawiatury, muszki, 4dyski i skanery - przesył stanu) Transmisja izochroniczna dostarczenie danych na czas, nie gwarantuje bezbłędności przekazu (urządzenia audio, wideo)
Urządzenia wskazujące Rodzaje urządzeń wskazujących: Urządzenia zwracające względne położenie wskaźnika zmiana położenia od chwili poprzedniego odczytu (np. myszy, trackpady, trackballe) Urządzenia zwracające bezwzględne położenie wskaźnika to pewne współrzędne mierzone w ustalonym układzie współrzędnych (np. ekrany dotykowe, pióra świetlne, tablety naciskowe, joystiki) Za obsługę urządzenia wskazującego odpowiada system operacyjny, który obrazuje je w postaci kursora. Aplikacja jest informowana o zajściu zdarzenia związanego z urządzeniem wskaźnikowym
Karty dźwiękowe Standard kart dźwiękowych został wprowadzony w latach 80-tych przez firmę Creative Labs jako karta Sound Blaster, pierwsze karty dysponowały jedynie 8-bitowym próbkowaniem, nowsze karty pozwalały już odtwarzać dźwięk zapisany na 16 bitach próbkowanie 44,1 Hz, współczesne syntezatory kart generują dźwięk 24 bitowy z 96 Hz próbkowaniem. Współczesne urządzenia dźwiękowe generują dźwięk na jeden z trzech sposobów: Za pomocą syntezatora komputerowego: - Analogowo (synteza FM) synteza dźwięku za pomocą oscylatorów i prostych układów elektronicznych - Przez cyfrowe próbkowanie nagranie i digitalizowanie kilku nut prawdziwego instrumentu muzycznego nagranie jest przechowywane w pamięci ROM karty Przez cyfrowe odtwarzanie odtwarzanie nagrań cyfrowych- przez umieszczany w pamięci RAM syntezator samplujący
BIOS BIOS (akronim ang. Basic Input/Output System podstawowy system wejścia-wyjścia) zapisany w pamięci stałej zestaw podstawowych procedur pośredniczących pomiędzy systemem operacyjnym a sprzętem. Jest to program zapisany w pamięci ROM (Read Only Memory pamięć tylko do odczytu) płyty głównej oraz innych urządzeń takich jak karta graficzna. Obecnie większość BIOS-ów zapisywana jest w pamięciach typu EEPROM, co umożliwia ich późniejszą modyfikację. Program służący do konfiguracji BIOS-u to BIOS setup.