Programowanie Niskopoziomowe Wykład 5: Elementy typowego komputera x86 i system we/wy Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie
Plan Elementy typowego komputera x86 System wejścia-wyjścia
Płyta główna (1) ang. motherboard Realizowana jako wielowarstwowa płytka drukowana Szyny łączące różne komponenty Komponenty standardowe gniazdo procesora (ang. CPU socket) różne kształty i wielkości w zależności od procesora gniazda pamięci (SIMM lub DIMM) układ BIOS-u (basic input-output system) CMOS RAM (razem z baterią podtrzymującą zasilanie) złącza pamięci masowej (IDE, EIDE, UDMA, sata ) złącza USB (dla urządzeń we/wy) porty myszy i klawiatury gniazda PCI (dla kart rozszerzeń dźwięk, grafika, sieć itp.)
Płyta główna (2) Komponenty opcjonalne: zintegrowany procesor dźwięku zintegrowane porty równoległe i szeregowe zintegrowana karta sieciowa złącze AGP dla szybkich kart video Popularne mikrokontrolery obecne na płycie głównej: FPU jednostka zmiennoprzecinkowa 8284/82C284 układ zegarowy 8259A programowalny układ przerwań 8255 programowalny port równoległy 8253 programowalny układ czasowy
Przykładowa płyta główna
Rozmiary płyt głównych
Architektury PCI i PCI Express Szyny PCI (Peripheral Component Interconnect) i PCI Express PCI łączy procesor z innymi urządzeniami systemowymi (kontroler dysków twardych, pamięć, kontroler grafiki, karta dźwiękowa, karta sieciowa itp.) przepustowość 528 MB/s (PCI 2.3) PCIe połączenie typu punkt-punkt, transmisja pakietowa za pośrednictwem pary łącz szeregowych (krotność oznacza liczbę par łącz), przepustowość od 250 MB/s (x1) do 4GB/s (x16 v1.0) i 16 GB/s (x16 v2.0)
Wersje złącz PCI
Gniazda PCIe PCIe x4 PCIe x16 PCIe x1 PCIe x16 PCI
Chipset Chipset zbiór układów mikrokontrolerów zaprojektowanych do wspólnej pracy na określonym typie płyty głównej Celem układów chipsetu jest m.in. zarządzanie energią, obsługa multimediów, poprawa wydajności Przykład Intel P965 Express Chipset (2006) przeznaczony dla płyt głównych współpracujących z procesorami Intel Core Duo 2 oraz Intel Pentium D z technologią Intel Fast Memory Access umożliwia przez mostek północny (MCH Memory Controller Hub) korzystanie z dwukanałowych pamięci DDR2 przy częstotliwości 800 MHz ICH (I/O Controller Hub) mostek południowy w postaci układu Intel ICH8/R/DH korzystający z technologii MST (Intel Matrix Storage Technology) może obsłużyć macierz dyskową składającą się z 6 dysków Serial ATA obsługuje do 10 portów USB, 6 gniazd PCIe, kartę sieciową chip audio zapewniający dźwięk o jakości HD
Diagram blokowy dla Intel 965 Express Chipset Intel Core 2 Duo Processor 8.5 GB/s Intel Fast Memory Access PCI Express x16 Graphics 8 GB/s P965 MCH 12.8 GB/s DDR2 DDR2 10 Hi-Speed USB 2.0 Ports 60 MB/s 2 GB/s DMI Intel High Definition Audio 6 PCI Express x1 500 MB/s each x1 P965 ICH8 3 GB/s each Intel Quiet System Technology 6 Serial ATA Ports Intel GbE LAN LPC or SPI BIOS / FIrmware Intel Matrix Storage
Wyjście Video Karta graficzna składa się z dwóch elementów kontrolera video pamięci obrazu Obraz i tekst zapisywane są najpierw do pamięci obrazu, a następnie za pośrednictwem kontrolera video wysyłane na ekran monitor Współczesne kontrolery video są specjalizowanymi mikroprocesorami (GPU) Monitory CRT (cathode-ray tube) ze względu na zasadę działania charakteryzowały się czterema parametrami (rozdzielczością, częstotliwością odświeżania w pionie i poziomie, obecnością (lub brakiem) przeplotu) LCD (Liquid Crystal Display) wyświetlają bezpośrednio strumień bitów otrzymany z kontrolera video
Pamięć ROM ROM (Read-Only Memory) rodzaj nieulotnej pamięci nie podlegającej żadnym modyfikacjom PROM (Programmable ROM) rodzaj pamięci nieulotnej, którą można zaprogramować EPROM (Erasable PROM) rodzaj nieulotnej pamięci, którą można wyzerować ultrafioletem, a następnie ponownie zaprogramować EEPROM (Electrically-Erasable PROM) rodzaj programowalnej pamięci nieulotnej, którą można wyzerować odpowiednim sygnałem elektrycznym FLASH
Dynamiczne pamięci RAM RAM Random Access Memory DRAM (Dynamic RAM) rodzaj niedrogiej pamięci, działającej na zasadzie ładowania kondensatorów, wymaga więc okresowego odświeżania zawartości FPM (Fast Page Mode DRAM) pamięci stosowane w czasach procesorów i486 i wczesnych modeli Pentium EDO (Extended Data Output RAM) konstrukcja podobna do FPM z poprawionym sposobem odświeżania SDRAM (Synchronous DRAM) synchroniczna praca z szyną systemową SDR (Single Data Rate SDRAM) przesył danych tylko na narastającym zboczu sygnału zegarowego DDR (Double Data Rate SDRAM) dane przesyłane zarówno na narastającym jak i na opadającym zboczu sygnału zegarowego DDR2 i DDR3 RAMBUS ECC (Error Checking and Correcting) pamięci wyposażone w układ wykrywania i korekcji błędów
Porównanie wyglądu modułów pamięci RAM DIP SIPP SIMM (30-pin) SIMM (72-pin) DIMM (SDR, SDRAM) RIMM (Rambus) DIMM (DDR) DIMM (DDR2) DIMM (DDR3)
Pozostałe typy pamięci RAM SRAM (static RAM) pamięć statyczna (nie wymaga odświeżania), szybka ale droga, stosowane w pamięciach cache VRAM (video RAM) dwuportowa, jeden port służy do ciągłego odświeżania zawartości ekranu, drugi do zapisywania danych, które mają być wyświetlone CMOS RAM pamięć ustawień systemowych płyty głównej, podtrzymywana bateryjnie po wyłączeniu zasilania
Porty we/wy i interfejsy urządzeń zewnętrznych (1) USB (Universal Serial Bus): magistrala szeregowa automatyczne rozpoznawanie podłączonych urządzeń możliwość łączenia w topologii gwiazdy przepustowość: 12 Mbit/s (USB 1.1), 480 Mbit/s (USB 2.0), 5 Gbit/s (USB 3.0) Port równoległy: symboliczne nazwy: PRN, LPT1, LPT2, transmisja równoległa, dwustronna o prędkości do 1MB/s (na krótkim dystansie) dawniej typowy port drukarki, obecnie port do współpracy ze specjalizowanymi urządzeniami zewnętrznymi ATA (Advanced Technology Attachment) kontroler przeznaczony głównie do połączeń z urządzeniami pamięci masowej (dyski twarde, napędy optyczne itp.) interfejsem IDE (Integrated Drive Electronics)
Porty we/wy i interfejsy urządzeń zewnętrznych (2) SATA (Serial ATA) standard, który zastąpił ATA i IDE transmisja szeregowa tańsze, prostsze (4 linie zamiast 40/80) i bardziej niezawodne przewody FireWire standard szybkiej magistrali zewnętrznej transfer ok. 800 Mbit/s (do 3200) transmisja izochroniczna możliwość jednoczesnego podłączenia wielu urządzeń Port szeregowy (RS-232): transmisja szeregowa z max. prędkością 19.200 bit/s bardzo duży dystans układ kontrolera tzw. UART cały czas wiele urządzeń (w szczególności laboratoryjnych współpracuje z tym typem portu)
Porty we/wy i interfejsy urządzeń zewnętrznych (3) Bluetooth komunikacja bezprzewodowa krótki dystans niewielkie porcje danych tanie w realizacji głównie do komunikacji z urządzeniami mobilnymi (telefony, PDA itp.) Wi-Fi wg standardu IEEE 802.11 większe prędkość i ilość przesyłanych danych niż w bluetooth większy zasięg
Poziomy dostępu do urządzeń we/wy Standardowo programy użytkowe odczytują dane z klawiatury lub plików dyskowych i zapisują je na ekran lub do plików dyskowych Nie ma potrzeby stosowania bezpośredniego dostępu do sprzętu można skorzystać z funkcji systemu operacyjnego Podstawowe poziomy dostępu: funkcje języków wysokiego poziomu (przenoszalne, niezależne od sprzętu i OS-u) system operacyjny programy wywołują funkcje systemu operacyjnego dostępne w formie biblioteki API (Application Programming Interface) np. zapisywanie do pliku, odczyt klawiatury, alokowanie bloków pamięci BIOS (Basic Input-Output System) kolekcja podprogramów niskiego poziomu, które komunikują się bezpośrednio ze sprzętem (mocno zależne od sprzętu, wykorzystywane przez funkcje OS-u)
Sterowniki urządzeń Programy umożliwiające systemowi operacyjnemu bezpośrednią komunikację ze sprzętem Firmware oprogramowanie w pamięci nieulotnej urządzenia wykorzystywane przez sterownik urządzenia Sterowniki są instalowane na dwa sposoby: przed podłączeniem urządzenia do komputera po podłączeniu do komputera i pozytywnej identyfikacji (nazwa i sygnatura urządzenia)
Schemat poziomów dostępu do I/O Program użytkowy Poziom 3 Funkcje systemu operacyjnego Poziom 2 Funkcje BIOS-u Poziom 1 Sprzęt (firmware) Poziom 0
Przykład Wypisanie łańcucha znaków na ekran program użytkowy wywołuje z biblioteki języka wysokiego poziomu funkcję wypisującą łańcuch na ekranie funkcja biblioteczna (p3) wywołuje funkcję systemu operacyjnego przekazując jej wskaźnik do łańcucha znaków funkcja systemu operacyjnego (p2) wywołuje w pętli funkcję BIOS-u przekazując jej kod ASCII znaku i kolor oraz funkcję BIOS-u powodującą przesunięcie kursora funkcja BIOS-u (p1) otrzymuje znak, odwzorowuje go we właściwej czcionce systemowej i wysyła go do portu we/wy związanego z kartą graficzną kontroler karty graficznej (p0) generuje sygnały odpowiedzialne za fizyczną część wyświetlania znaku
DZIĘKUJĘ ZA UWAGĘ