Adres wejścia-wyjścia
Adres I/O to numeryczny identyfikator, którego CPU komputera używa do komunikowania się z urządzeniem peryferyjnym. Każdy port I/O w komputerze, na przykład port USB, gniazdo Ethernet i port HDMI, ma unikatowy adres, który odróżnia go od każdego innego portu. Oddzielne adresy I/O pomagają procesorowi rozpoznać poszczególne urządzenia peryferyjne i komunikować się z nimi bezpośrednio.
Gdy program działający na procesorze komputera musi bezpośrednio komunikować się z urządzeniem peryferyjnym, wysyła polecenia i dane na adres I/O tego urządzenia. Urządzenie peryferyjne może odpowiedzieć, wysyłając informacje z powrotem do procesora komputera pod ten sam adres. Na przykład podczas drukowania dokumentu procesor przekazuje dokument i ustawienia drukowania na adres I/O drukarki, która może następnie przetworzyć to żądanie i wydrukować dokument.
Wczesne komputery często przypisywały portom I/O stałe adresy zależne od typu portu I/O — na przykład standardowym adresem pierwszego portu szeregowego komputera był zawsze 0x03F8. Adresy te były oddzielone od systemowej pamięci i wymagały specjalnych instrukcji procesora do wysyłania danych do urządzeń I/O i odbierania ich z tych urządzeń. Współczesne komputery używają teraz wydajniejszej metody o nazwie mapowanie pamięciowe I/O, która przypisuje adresy portom I/O z tej samej przestrzeni adresowej co główna pamięć systemowa. Współdzielenie tej przestrzeni adresowej pozwala każdej instrukcji procesora, która uzyskuje dostęp do pamięci systemowej, uzyskiwać również dostęp do urządzeń I/O. Ponieważ adresami I/O zarządza teraz system operacyjny, aplikacje mogą używać systemowych interfejsów API do komunikowania się z urządzeniami peryferyjnymi zamiast wysyłać dane na określone, wstępnie zdefiniowane adresy — znacznie zwiększając niezawodność i zmniejszając częstotliwość występowania konfliktów.
Sprawdź swoją wiedzę