Interfejs ATA
"KMK/JŻ IDE"
Interfejs znany jako "KMK/JŻ IDE" służy do podłączania urządzeń ATA
oraz ATAPI (głównie twardych dysków IDE oraz napędów CD-ROM) do Atari XE
przez znajdujące się z tyłu komputera złącze CARTRIDGE/ECI. Interfejs został
zaprojektowany i skonstruowany w 1995 roku przez Jacka Żuka (JŻ), a
oprogramowany przeze mnie (KMK) - i stąd nazwa "KMK/JŻ IDE". Pierwsza
publiczna prezentacja odbyła się w styczniu 1996 roku.
Interfejs jest tzw. "nowym urządzeniem" wykorzystującym sprytny mechanizm
wymyślony przez konstruktorów Atari XL/XE, pozwalający na automatyczne
wykrycie i zainicjowanie przez system urządzenia I/O zaraz po włączeniu
komputera. Dysponuje własną pamięcią ROM i RAM, znajduje się tam komplet
procedur i danych służących do obsługi dysku. Gdy program użytkownika lub DOS
odwołuje się do interfejsu szeregowo-równoległego, tzw. SIO, XL OS podłącza
sobie tę zewnętrzną pamięć na czas przeprowadzania operacji I/O i wywołuje
odpowiednie procedury, a zakończywszy przywraca stan poprzedni
(pamięć interfejsu "znika" z przestrzeni adresowej). Mechanizm ten ma nieco
wsparcia - ale bez przesady - ze strony elektroniki komputera.
Więcej na ten temat można się dowiedzieć z Atariki.
Działanie interfejsu
Dane z dysku (i do dysku) transmitowane są w trybie PIO (nie DMA), przez
16-bitowy port danych. Sterownik pracuje w trybie CHS. Przyczyny użycia CHS
zamiast LBA są dość prozaiczne:
- w czasach, kiedy konstruowaliśmy interfejs, dyski mające LBA
występowały bardzo rzadko;
- nawet obecnie tryb LBA jest dla urządzeń ATA opcjonalnym trybem pracy,
podczas gdy tryb CHS jest zaimplementowany zawsze. Wyłącznie w CHS działają
nawet niektóre karty Compact-Flash!
Mimo pracy w CHS przeciętny transfer jest bardzo szybki - w zależności od
konfiguracji partycji (o czym niżej) waha się w zakresie od 35 do nawet 64
kilobajtów na sekundę przy odczycie plików pod SpartaDOS X. Jest to sporo i
jak na Atari XL/XE i jak na interfejsy twardych dysków do tego komputera
- KMK/JŻ IDE jest w tej klasie najszybszy.
Gwoli rzetelności trzeba zaznaczyć, że SpartaDOS X jest bardzo szybkim
DOS-em (to znaczy nakładającym na operacje I/O stosunkowo niewielki
"narzut" na obsługę systemu plików). Inny popularny DOS dla Atari - MyDOS
- nie ma nawet połowy wydajności Sparty X, co trzeba brać pod uwagę przy
testach odczytu plików.
Limity
Sterownik interfejsu, zwany w skrócie HD BIOS-em, był projektowany w 1995
roku z około 20-krotnym zapasem w stosunku do pojemności używanych wtedy
twardych dysków. W związku z tym całkowity limit pojemności możliwej do
obsłużenia to 8 GB na jeden napęd (24-bitowe adresowanie logiczne, 16777216
sektorów po 512 bajtów).
Obszar ten można podzielić na 16 partycji, z których każda jest adresowana
24-bitowo: a więc maksymalny rozmiar pojedynczej partycji to znowu 8
GB, a dokładniej: 16777215 sektorów, gdyż na dyskach Atari sektor o logicznym
numerze 0 nie istnieje.
Obsługiwane są trzy rozmiary sektorów: 128, 256 i 512 bajtów. Sektor
fizyczny w ATA ma 512 bajtów, pozostałe "gęstości" sterownik symuluje. Tryby
pracy z sektorami 256- i 512-bajtowymi służą do pracy z DOS-em i
przechowywania plików, pierwszy zaś emuluje średnią gęstość zapisu stacji
1050 i służy do uruchamiania wymagających takiego rozmiaru sektora programów
całodyskowych.
Zgodnie z tym, co można przewidywać, tryb pracy z sektorami 512-bajtowymi
jest bardzo szybki, ten z sektorami 256-bajtowymi taki sobie, a pozostały
raczej wolny. Konkretnie w gęstościach o emulowanym rozmiarze sektora (128 i
256 bajtów) odczyt jest znośny, natomiast bardzo wolny jest zapis; wystarczy
powiedzieć, że jeśli przy sektorach 256-bajtowych tempo zapisu sięga 15-16
kilobajtów na sekundę, to możemy mówić o szczęściu. Natomiast przy sektorze
512-bajtowym na tym samym dysku zapis bez większego wysiłku osiąga 50
kilobajtów na sekundę. Cały czas mowa o transmisji plików pod DOS-em.
Powyżej opisano limity narzucone przez sterownik interfejsu, ale to jest
nic w porównaniu z ograniczeniem pojemności, jakie narzucają istniejące na
Atari DOS-y. "Wielka trójka" najbardziej zaawansowanych dyskowych systemów
operacyjnych dla tego komputera wyglądała do niedawna tak:
- MyDOS 4.50/4.53: limit 8 partycji x 16 MB = 128 MB dostępnej pojemności
dysku. Używając zaimplementowanego w interfejsie przekierowania partycji
D1: na dowolną z pozostałych 15 można zwiększyć wykorzystanie dysku do 256 MB
(ale "naraz" widoczne będzie tylko 128 MB).
- SpartaDOS 3.2g: 9 partycji x 16 MB = 144 MB dostępne "naraz", możliwość
przekierowania jak wyżej.
- SpartaDOS X 4.2x: tak samo, jak SpartaDOS 3.2g.
W drugiej połowie 2006 roku nastąpił tu niejaki postęp, na czoło wysunął
się SpartaDOS X zdecydowanie deklasując konkurencję: w wersji 4.39RC
zwiększono liczbę widzianych naraz napędów do 15, a maksymalny rozmiar
partycji podskoczył do 32 MB. Razem daje to 15 x 32 = 480 MB możliwych do
wykorzystania przez DOS, a więc ponad trzykrotnie więcej niż dotychczas.
Wciąż jednak nie jest to wiele w porównaniu do pojemności współczesnych
dysków czy choćby limitów BIOS-u interfejsu.
Oprogramowanie
Oprogramowanie pozwalające na popartycjonowanie dysku i skonfigurowanie
interfejsu jest na dyskietce systemowej.
Dwa najważniejsze programy to:
- KMKDIAG - program diagnostyczny służący do sprawdzenia działania
intefejsu i przyłączonego dysku.
- FDISK II - właściwy program do partycjonowania i konfiguracji.
Główny sterownik, czyli BIOS, jak to już wyżej zostało powiedziane,
rezyduje sobie w pamięci ROM interfejsu. Pamięć ta ma 1,5 kilobajta w
interfejsach starszego typu, albo 3k (czy też raczej dwa banki po 1,5
kilobajta) w interfejsach nowszych. Ilość pamięci interfejsu widocznej dla
komputera podaje program diagnostyczny, więc łatwo to sprawdzić.
Interfejsy, które mają 1,5k ROM-u nazywane są w skrócie "jednobankowymi",
a te drugie - "dwubankowymi". Cała linia BIOS-ów z serii "v. 1.x" - bieżąca
wersja ma numer 1.11 - jest przeznaczona do interfejsów obu typów. Jednak
jednobankowy BIOS wypełnia już dostępne mu miejsce w tak dużym stopniu, że
nie można już nic tam dodać, a i poprawki błędów (jakie od czasu do czasu
wyłażą) robią się problematyczne. Dlatego podjąłem prace nad BIOS-em 2.0
przeznaczonym tylko dla nowszych interfejsów z serii KMK/JŻ oraz dla
wszystkich z serii IDEa. Jest on w tej chwili w fazie prototypowej.
Więcej o omawianym sprzecie można się, jak zwykle, dowiedzieć z
Atariki:
Dla tych, którzy znają angielski: w dziale z plikami do ściągnięcia
znajduje się angielska instrukcja obsługi interfejsu, w formacie PDF.

|