Który interfejs umożliwia korzystanie ze sterowników i oprogramowania systemu operacyjnego, zapewniając m.in. przepływ danych między pamięcią systemową a dyskiem SATA?
A. EHCI
B. AHCI
C. OHCI
D. UHCI
Pytanie z egzaminu CKE, styczeń 2018 (arkusz E.12-X-18.01).
AHCI, czyli Advanced Host Controller Interface, to właściwa odpowiedź, bo jest to standard interfejsu programowego dla kontrolerów SATA. Mówiąc prościej: AHCI określa, jak system operacyjny i jego sterowniki mają komunikować się z kontrolerem dysku SATA, żeby poprawnie przesyłać dane między pamięcią operacyjną komputera a dyskiem. W praktyce chodzi m.in. o obsługę DMA, czyli bezpośredniego dostępu do pamięci, dzięki czemu procesor nie musi ręcznie przerzucać każdego fragmentu danych. To jest ważne dla wydajności całego komputera, szczególnie przy dyskach SSD i szybszych dyskach twardych SATA. AHCI daje też funkcje takie jak NCQ, czyli Native Command Queuing, pozwalające dyskowi lepiej układać kolejność operacji odczytu i zapisu, oraz hot-plug, czyli możliwość podłączania urządzeń SATA podczas pracy, jeśli sprzęt i system to wspierają. Z mojego doświadczenia warto pamiętać, że w BIOS/UEFI często można ustawić tryb kontrolera SATA jako IDE, AHCI albo RAID. Dobra praktyka jest taka, żeby dla pojedynczych dysków SATA i SSD używać AHCI, o ile nie konfigurujemy macierzy RAID. Zmiana tego trybu po instalacji systemu Windows może czasem skończyć się problemem z uruchomieniem systemu, jeśli sterownik nie był wcześniej aktywny, więc robi się to ostrożnie. EHCI, OHCI i UHCI dotyczą głównie kontrolerów USB, a nie obsługi dysków SATA, więc nie pasują do opisu z pytania.
W tym pytaniu łatwo się pomylić, bo wszystkie podane skróty kończą się na HCI, czyli Host Controller Interface, i brzmią bardzo podobnie. Trzeba jednak patrzeć na to, jakiego rodzaju kontrolera dotyczą. EHCI, OHCI i UHCI są związane z magistralą USB, a nie z dyskami SATA. EHCI, czyli Enhanced Host Controller Interface, kojarzy się głównie z USB 2.0 i obsługą transferów high-speed. OHCI, czyli Open Host Controller Interface, oraz UHCI, czyli Universal Host Controller Interface, były używane przy starszych kontrolerach USB, zwłaszcza dla USB 1.1. One opisują sposób współpracy systemu operacyjnego ze sprzętowym kontrolerem USB, np. dla klawiatury, myszy, pendrive’a albo innych urządzeń peryferyjnych. Nie odpowiadają jednak za natywną obsługę kontrolera SATA ani za przepływ danych między pamięcią systemową a dyskiem podłączonym przez SATA. Typowy błąd myślowy polega na tym, że ktoś widzi słowo sterownik, system operacyjny i przepływ danych, więc wybiera dowolny interfejs kontrolera hosta. A tu kluczowe jest słowo SATA. Dla SATA właściwym standardem jest AHCI, bo to on pozwala systemowi korzystać z funkcji kontrolera dyskowego, takich jak DMA, NCQ czy hot-plug. W praktyce w BIOS/UEFI ustawienie trybu SATA na AHCI jest standardową i zalecaną konfiguracją dla zwykłych dysków HDD oraz SSD SATA, jeżeli nie budujemy macierzy RAID. Moim zdaniem to jedno z tych pytań, gdzie nie trzeba uczyć się skrótów na ślepo, tylko skojarzyć technologię: USB ma EHCI/OHCI/UHCI, a SATA ma AHCI. Taka prosta mapa naprawdę pomaga przy egzaminach i przy realnej diagnostyce komputera.