Registrový model HDD Charakteristika • Pevný disk IDE v sestavě personálního počítače sestává z disku a jeho řadiče – tyto dvě komponenty tvoří jeden mechanický celek. • Procesor komunikuje s řadičem přes registry řadiče, registry jsou dostupné programově (např. instrukcí jazyka assembler). • Každý registr má jedinečnou adresu. • Do registrů je možné zapisovat a jejich obsah číst. • Je to možné díky tomu, že do kabelu IDE je ze systémové sběrnice ISA přenesena jistá část signálů - taková, která právě umožňuje takové přenosy realizovat – datové signály, adresové signály, řízení. • Přes datovou sběrnici se přenáší různá informace – např. stav disku – adresací registru, v němž je stav uložen.
1
• Odlišnost od jiných zařízení – v nich jsou programově dostupné registry součástí řadičů umístěných v konektoru systémové sběrnice. Vyrovnávací paměť Čtení dat: data jsou přenášena z vyrovnávací paměti jednotky do paměti hostitelského zařízení. Zápis dat: data jsou přenášena z paměti hostitelského zařízení do vyrovnávací paměti zařízení. Směr je určen předchozími příkazy, které jednotka obdržela. Typy informace uložená v registrech • V registrech jsou uloženy tyto informace: řídicí informace (kód příkazu, parametry příkazu) data stavová informace (informace o stavu disku)
2
• Výběr registru obstarávají signály CS0, CS1 - rozlišení disku a DA(2:0) – rozlišení jednoho z 8 registrů. - Signály CS0/CS1 jsou odvozeny z bitů adresové sběrnice A3 – A9 (obdoba odvození adresy řadiče). • Zápis/čtení dat do/z těchto registrů jsou realizovány pomocí signálů DIOW, DIOR. • Adresy registrů: - registry primární brány obsazují adresy 1F0h-1F7h, - registry sekundární brány obsazují adresy 170h-177h. Typy a význam jednotlivých registrů Registry, do nichž se ukládá stavová informace Status registr (Stavový registr) • Funkční popis: - Registr obsahuje informace aktuálním stavu jednotky.
3
o
-
• • • •
•
Obsah je obnovován po provedení jakéhokoli příkazu. - Pokud byla generována žádost o přerušení po skončení periferní operace, předpokládá se, že je stavový registr naplněn informací o průběhu právě skončené operace => přečtením stavového registru se nuluje aktivní žádost o přerušení. Adresování registru: CS(1:0)=2h, DA(2:0)=7h Softwarově ze strany procesoru: port 1X7h (177/1F7). Směr toku dat: registr je určen pouze pro čtení. Obsah registru musí být ignorován v případě, že BSY je nastaven na 1, což je stav, kdy ještě probíhá periferní operace. Význam jednotlivých bitů: BSY (busy) – bit 7: - BSY nastaven => HDD provádí příkaz a využívá informaci uloženou ve vnitřních registrech.
4
-
Provádění (realizace) příkazu - tzn. čas od zápisu do příkazového registru do doby ukončení příkazu => jednotka má nastaven signál BSY na 1. - Čtení stavového registru v okamžiku provádění příkazu => přečtený obsah je neplatný s výjimkou bitu BSY a DRQ ve stavovém a alternativním stavovém registru. - Bit BSY je nulový => jednotka může měnit obsah IDX, DRDY, DF, DSC a CORR bitů ve stavovém registru a obsah datového registru. • Význam bitů stavového registru: - DRDY (device ready) – bit 6 indikuje připravenost jednotky přijímat příkazové kódy. Tento bit bude nastaven při zapnutí jednotky. - DF (device fault) – bit 5 - indikuje, že byla zjištěna porucha jednotky. - DSC (Device seek complete) – bit 4 - indikuje ukončení vystavení na požadovanou stopu.
5
-
-
-
DRQ (Data request) – bit 3 indikuje připravenost jednotky pro přenos slova nebo slabiky dat (odlišovat od sběrnicového signálu se stejným označením - žádost o přenos DMA). CORR (Corrected data) – bit 2 indikuje opravitelnou chybu v datech. IDX (Index) – bit 1 - je využit výrobcem jednotky. ERR (Error) – bit 0 - indikuje, že při provádění předchozího příkazu nastala chyba. Bity v registru chyby (Error register) poskytují doplňkovou informaci o chybě.
Error register (chybový registr) • Funkční popis: - Registr obsahuje informaci o chybovém stavu po provedení příkazu. - Po provedení příkazu EXECUTE DEVICE DIAGNOSTICS obsahuje diagnostický kód. 6
-
Na základě příkazu EXECUTE DEVICE DIAGNOSTICS se provede autonomní test disku, po skončení testu diagnostický kód pak indikuje stav disku (hardware). Adresace registru: CS(1:0)=2h, DA(2:0)=1h Softwarově ze strany procesoru: port 1X1h (171/1F1) Směr toku dat: registr je určen pouze pro čtení. Přístupová omezení: obsah registru je platný: při BSY a DRQ nulových a ERR nastaveném na jedničku, po provedení příkazu EXECUTE DEVICE DIAGNOSTICS. • Význam jednotlivých bitů registru: bit 7 - je rezervován. UNC (Uncorrectable data error) - bit 6 - indikuje neopravitelnou datovou chybu. MC (media changed) - bit 5 - indikuje výměnu média u zařízení s vyměnitelným médiem. 7
IDNF (ID not found) - bit 4 - indikuje, že ID požadovaného sektoru nebylo nalezeno. MCR (Media change request) - bit 3 indikuje požadavek výměny média u zařízení s vyměnitelným médiem. ABRT (Aborted command) - bit 2 indikuje, že požadovaný příkaz byl zrušen, protože kód příkazu nebo parametry příkazu byly chybné, nebo nastala jiná chyba. Pokud měl příkaz pracovat s daty, data jsou neplatná. TK0NF (Track 0 not found) - bit 1indikuje, že stopa 0 nebyla nalezena v průběhu příkazu RECALIBRATE. Pozn.: Příkaz RECALIBRATE (návrat na stopu 000) je využíván v situacích, kdy dojde k chybě vystavení. Návrat na stopu 000 zajistí výchozí stav, z něhož je možné se znovu pokusit o vystavení na požadovanou stopu. AMNF (Address mark not found) bit 0 - indukuje nenalezení adresové značky sektoru, avšak nalezeno správné ID sektoru.
8
• Logika využití stavového registru a chybového registru: - stavový registr obsahuje pouze indikaci o tom, že vznikla chyba, zatímco - chybový registr poskytuje bližší specifikaci chyby/poruchy. Registry, do nichž se ukládá příkaz a jeho parametry Command Register (registr příkazu) • Funkční popis: - Registr, do něhož se ukládá kód příkazu. - Zpracovávání příkazu začíná v okamžiku, kdy je do registru zapsán kód požadovaného příkazu. - Parametry příkazu - jsou uloženy v dalších registrech. - Zápisem do registru se ruší případná aktivní žádost o přerušení. • Adresování registru: CS(1:0)=2h, DA(2:0)=7h
9
• Softwarově ze strany procesoru: port 1X7h • Směr toku dat: Registr je určen pouze pro zápis. • Přístupová omezení: Do registru může být zapisováno pouze v případě, že BSY a DRQ jsou nulové a DMARQ není nastaven. • Význam jednotlivých bitů registru: 7
6
5
4 3 2 Kód příkazu
1
0
Cylinder High Register (horní část čísla cylindru) • Funkční popis: - Informace zapsaná do registru se stává parametrem příkazu zapsaného do příkazového registru. - Bit LBA v Device/Head registru je nulový => registr obsahuje vyšší část čísla cylindru, který má být použit jako výchozí pro přístup k médiu. 10
Bit LBA je nastaven na jedna => registr obsahuje bity 23-16 lineárního čísla sektoru. Adresování registru: CS(1:0)=2h, DA(2:0)=5h Softwarově ze strany procesoru: port 1X5h Směr toku dat: Registr je určen pro čtení i zápis. Význam jednotlivých bitů registru: Mód CHS 7 6 5 4 3 2 1 0 Cylindr(15:8) -
• • • •
Mód LBA 7
6
5
4 3 2 LBA(23:16)
1
0
Cylinder Low Register (dolní část čísla cylindru) • Funkční popis: - Bit LBA je nulový => registr obsahuje dolní část čísla cylindru.
11
Pokud je bit LBA nastaven na 1, registr obsahuje bit 15-8 lineárního čísla sektoru. Adresování registru: CS(1:0)=2h, DA(2:0)=4h Softwarově ze strany procesoru: port 1X4h (174h/1F4h) Směr toku dat: Registr je určen pro čtení i zápis. Přístupová omezení: Stejná jako v případě Cylinder High Register. Význam jednotlivých bitů registru: Mód CHS 7 6 5 4 3 2 1 0 Cylindr (7:0) Mód LBA 7 6 5 4 3 2 1 0 LBA (15:8) -
• • • • •
Device Control register (registr řízení zařízení) • Funkční popis: - Umožňuje realizovat jisté akce, jako např. nulování logiky HDD.
12
Pomocí tohoto registru je možno ovládat přerušení od jednotky (povolení/zákaz). - Ihned po zápisu do registru je vykonána příslušná akce. - Umožňuje provedení softwarového resetu jednotky. Adresování registru: CS(1:0)=1h, DA(2:0)=6h Softwarově ze strany procesoru: 3X6h (oblast řadiče disket) Směr toku dat: Register je určen pouze pro zápis. Přístupová omezení: Do registru může být zapisováno pouze v případě neaktivního DMARQ. Význam jednotlivých bitů registru: -
• • • •
•
7 R
6 r
5 r
4 r
3 r
2 SRST
1 nIEN
bity 7 až 3 jsou rezervované SRST je software reset bit
13
0 0
nIEN bit ovládá přerušení. Pokud je tento bit nulový a jednotka je vybraná, INTRQ bude povoleno. Device/Head Register (registr jednotky/hlavy) • Funkční popis: Registrem se vybírá hlava v módu CHS. V módu LBA se zde nastavují bity (27:24) lineární adresy sektoru. • Adresování registru: CS(1:0)=2h, DA(2:0)=6h • Softwarově ze strany procesoru: port 1X6h • Směr toku dat: Registr je určen pro čtení i zápis. • Přístupová omezení: Operace s registrem je platná, pokud BSY a DRQ jsou nulové a DMARQ není nastaven. • Význam jednotlivých bitů: Mód CHS 7 6 5 4 3 2 1 0 1 LBA 1 DEV HS3 HS2 HS1 HS0 14
Mód LBA 7 1
6 LBA
5 4 1 DEV
3
2 1 LBA(27:24)
0
• Bitem 6 se vybírá druh adresace jednotky: Bit nastaven na 0 => je použit mód CHS, bit nastaven na 1 => probíhá adresace v módu LBA. • Bitem 4 se vybírá aktivní jednotka: Pokud je bit nulový, vybraná jednotka je Device 0, jinak je vybraná jednotka Device 1. • Bity 3-0 udávají hlavu resp. část lineární adresy v LBA módu. Feature Register (registr parametrů) • Funkční popis: Hodnota zapsaná do registru může být použita jako parametr příkazu. Význam jednotlivých bitů je odvozen od kódu prováděného příkazu. • Adresování registru: CS(1:0)=2h, DA(2:0)=1h
15
• Softwarově ze strany procesoru: port 1X1h • Směr toku dat: Registr je určen pouze pro zápis. • Přístupová omezení: Zápis je platný pouze v případě nulovosti BSY a DRQ. • Význam jednotlivých bitů: 7
6
5 4 3 2 Záleží na příkazu
1
0
Sector Count register (počet sektorů) • Funkční popis: Informace v registru je parametrem příkazů zapisovaných do příkazového registru. Registr obsahuje číslo, které udává, kolik sektorů se má přečíst (zapsat). V případě, že přenosový příkaz skončí chybou, registr obsahuje počet sektorů, které je nutné přenést, aby byl příkaz úspěšně dokončen. Význam registru může být u některých příkazů pozměněn.
16
• Adresování registru: CS(1:0)=2h, DA(2:0)=2h • Softwarově ze strany procesoru: port 1X2h • Směr toku dat: Registr je určen pro čtení i zápis. • Přístupová omezení: S registrem je možné pracovat pouze v případě nulovosti BSY a DRQ, DMARQ nesmí být nastaven. V ostatních případech jsou data zapisovaná či čtená neplatná. • Význam jednotlivých bitů: 7
6
5
4 3 2 Počet sektorů
1
0
Sector Number register (registr čísla sektoru) • Funkční popis: Hodnota registru je parametrem příkazu zapisovaného do příkazového registru. V případě bitu LBA nulového, registr obsahuje číslo sektoru, pokud je LBA
17
nastaven na 1, obsahuje bity 7-0 lineárního čísla sektoru. • Adresování registru: CS(1:0)=2h, DA(2:0)=3h • Softwarově ze strany procesoru: port 1X3h • Směr toku dat: Registr je určen pro čtení i zápis. • Přístupová omezení: Neplatnost hodnot, když nejsou bity BSY a DRQ nulové a DMARQ je nastaven. • Význam jednotlivých bitů: Mód CHS 7
6
5
4 3 2 Sektor(7:0)
1
0
5
4 3 2 LBA(7:0)
1
0
Mód LBA 7
6
18
Registr pro ukládání dat Data Register (registr dat) • Funkční popis: PIO výstupní datový přenos je realizován sérií čtení tohoto registru. PIO vstupní datový přenos je realizován zápisy do datového registru. Datový registr je šestnáctibitový. • Adresování registru: CS(1:0)=2h, DA(2:0)=0h • Softwarově ze strany procesoru: port 1X0h • Směr toku dat: Registr určen pro čtení i zápis. • Přístupová omezení: Do registru může být zapisováno a čteno z něj, pokud je nastaven DRQ a není nastaven DMARQ (DMARQ je sběrnicový signál "žádost o přenos DMA", který bývá ale označován také jako DRQ - zde označen jinak kvůli nejednoznačnosti).
19
• Význam jednotlivých bitů registru: 15
14
13
12 11 10 Data(15:8)
9
8
7
6
5
4 3 2 Data(7:0)
1
0
• Pozn. Přes tento registr je realizován také DMA přenos. Závěr: • Byl popsán registrový model HDD. Obdobný model je možné prezentovat pro jiná zařízení, přičemž mezi těmito modely by bylo možné najít jistou analogii. • Některé registry najdeme ve všech ostatních zařízeních (registr příkazu, datový registr, stavový a chybový registr), jiné jsou typické pouze pro diskovou paměť.
20