326

No, ale 6502 nie ma dzielenia :/

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

327

Ano nie ma, ale trudno oczekiwać, żeby panowie od standardu ATA wzięli to pod uwagę. Zresztą - nawet na 6502 można tych dzieleń przeważnie uniknąć. Tyle że kod zajmuje więcej miejsca, ale różnica szybkości między CHS a LBA jest minimalna (wszelako na korzyść LBA, rzecz jasna).

KMK
? HEX$(6670358)

328 Ostatnio edytowany przez BartoszP (2011-09-14 12:46:10)

Adam Klobukowski napisał/a:

Mnie nieco dziwi że adresowanie CHS istnieje, bo LBA jest od pierwszej wersji standardu ATA. Prostsze, szybsze i mniej problemowe.

CHS miało sens gdy HDD miało "sfiksowane" ilości cylindrów/sektorów/sektorów i mapowanie było 1:1 ale gdy zaczęto upychać nierówne ilości sektorów o tym samym rozmiarze logicznym na bardziej pojemnych ścieżkach zewnętrznych, to zrobiła się "buła" i do tego służy LBA. To dysk wie ile gdzie ma sektorów a komputer musiałby pobierać taką tabelę i przeliczać " w locie". Czas pokazał też, że postęp technologiczny w pojemnościach dysku jest taki, że CHS nie wystarcza. Potem pojawił się problem maksymalnej wielkości LBA. Dzięki jednolitości możemy stosować je także w urządzeniach o pamięci zapisywalnej w postaci liniowej a nie typu CHS.
Kto jeszcze pamięta ustawianie w bios odczytywanych z naklejek na dyskach ustawień CHS ?
Kiedyś 640KB miało wystarczyć w PC :),  a kto przewidywał programy wymagające ponad 128kB na ATARI ?

329 Ostatnio edytowany przez drac030 (2011-09-14 13:02:59)

BartoszP napisał/a:

Czas pokazał też, że postęp technologiczny w pojemnościach dysku jest taki, że CHS nie wystarcza.

No i to jest właśnie mit, o jakim pisałem powyżej. LBA (podstawowe) ma 28 bitów, czyli można zaadresować 2^28 sektorów (268435456 po 512 bajtów = 128 GB). CHS ma:

- 16 bitów na numer cylindra (C)
- 4 bity na nr głowicy (H)
- 8 bitów na nr sektora na ścieżce (S)

16 + 4 + 8 = 28. Gdy dodać do tego, że geometria CHS jest logiczna (czyli różna od rzeczywistej liczby cylindrów głowic itp. - miałem kiedyś dysk, który twierdził, że ma 16 głowic, acz z dokumentacji wynikało, że ma przy tym tylko jeden talerz), widać, że różnica między CHS a LBA to różnica konwencji.

Kto jeszcze pamięta ustawianie w bios odczytywanych z naklejek na dyskach ustawień CHS ?

Te naklejki były potrzebne z jednego powodu: błędu w implementacji ATA przez producentów dysków. Mianowicie, dysk pracujący w CHS powinien w bloku identyfikacyjnym zwracać geometrię (liczbę głowic, cylindrów itp.), w jakiej pracuje - dość oczywiste, nie? Na ogół jest to zresztą geometria logiczna, którą dysk sobie potem jakoś tam "mapuje" na fizyczną.

Otóż niektóre firmy nie mogły tego pojąć, np. wczesne dyski marki Conner zwracają w id geometrię fizyczną (rzeczywistą liczbę głowic itp.), która nie jest nikomu do niczego potrzebna, natomiast na temat geometrii logicznej - tej którą dysk rzeczywiście rozumie - nic się nie można dowiedzieć.

Oczywiście, tę geometrię da się znaleźć automatycznie metodą prób i błędów :)

KMK
? HEX$(6670358)

330

drac030 napisał/a:
BartoszP napisał/a:

Czas pokazał też, że postęp technologiczny w pojemnościach dysku jest taki, że CHS nie wystarcza.

No i to jest właśnie mit, o jakim pisałem powyżej

(ciach) Mnie się wydaje że bardziej chodzi o zmienną ilość sektorów na ścieżce, co w adresowaniu CHS jest conajmniej kłopotliwe ;)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

331 Ostatnio edytowany przez drac030 (2011-09-14 13:17:42)

Nie aż tak bardzo, skoro podawana przez dysk geometria na ogół (tj. w 99,9% wypadków) nie odzwierciedla rzeczywistej geometrii napędu. Spotkałem np. dysk, który twierdził, że ma 1 (słownie: jeden) sektor na każdej ścieżce. Jak napisałem wyżej, jest to kwestia konwencji, przy CHS tak samo jak przy LBA dysk i tak musi wiedzieć, gdzie ma ile sektorów.

Zresztą, część dysków (np. Caviary) daje sobie ustawić geometrię w sposób dość dowolny: byle się ogólna suma sektorów zgadzała, dysk ci pójdzie z geometrią jaką chcesz.

KMK
? HEX$(6670358)

332

Tak, CHS daje maksymalnie tyle ile można wyliczyć ale LBA, to jeszcze ukłon w stronę SCSI, gdzie mamy adresację liniową.
Czy CHS czy LBA, to nie zmienia to postaci, że i tak najlepiej aby to sprzęt (HDD,karta CF, flash itd.) sam troszczył się o to gdzie zapisuje a my omijamy kwestie jak to robi.
Co do mitu...CHS obecnie nie wystarcza w PC. Kiedyś wydawało się to niemożliwe ale stało się faktem. Tak jak to, że transmisja szeregowa do dysku po kablu 4-ro żyłowym jest szybsza niż równoległa po 80-ciu żyłach.
Po prostu postęp.

333

Bartosz: ograniczenia na PC wynikały z ograniczeń BIOSu/DOSu/wczesnych wersji Windy.

Zaś transmisja równoległa jest nadal szybsza od szeregowej, z tym że przy dużych prędkościach problemem jest zorientowanie się kiedy konkretne bity są składnikami konkretnego bajtu, bo nawet zagięcie kabla może powodować przekłamania - dlatego zrezygnowano z przesyłania danych równolegle. Zauważ jak to rozwiązano np w PCI Express - masz x1 (jeden kanał) x4 (cztery kanały, równolegle) i x16 (szesnaście kanałów, równolegle), przy czym kanały te są niezależne od siebie. Pewnie z czasem zrobią takie coś dla dysków (jak się dyski SSD upowszechnią), zresztą już dziś dostępne są rozwiązania SSD na PCI Express.

(btw. ten sam problem synchronizacji dotyka sieci kablowych)

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

334

Ograniczenia wynikały z niedoszacowania postępu..kropka...i swobody implementacji, i to często częściowej, standardów....druga kropka.

Co do transmisji szeregowej: po prostu napotkano barierę transmisji równoległej....opracowano nowe układy/technologie...i się okazało, że szeregowo można równie szybko ale za to pewniej transmitować...tak...znam teorie linii długiej, przesłuchy  i takie inne trudne nudne tematy...z tego powodu powstała szyna EISA, potem VESA Local Bus, potem PCI, potem PCI-X, potem AGP, potem PCI-Ex...wkrótce co innego powstanie .... po prostu postęp technologiczny.

335

BartoszP napisał/a:

Czy CHS czy LBA, to nie zmienia to postaci, że i tak najlepiej aby to sprzęt (HDD,karta CF, flash itd.) sam troszczył się o to gdzie zapisuje a my omijamy kwestie jak to robi.

Naturalnie... ja tylko zwracam uwagę, że nieprawdą jest, jakoby CHS się pod tym względem znacząco różnił od LBA. Ponieważ geometria CHS i tak jest "nieprawdziwa" (logiczna), więc wystarczy ustawić w niej okrągłą (binarnie) liczbę głowic oraz równie okrągłą liczbę sektorów na ścieżkę, żeby mieć adresację liniową w CHS.

Oczywiście niedogodność polega na tym, że nie wszystkie dyski dają sobie ustawić każdą geometrię (niektóre w ogóle sobie tego nie pozwalają zmienić), a zatem chcąc niechcąc trzeba robić przeliczenia na piechotę. Ale to nie jest jakiś wielki problem, najwyżej niedogodność.

Co do mitu...CHS obecnie nie wystarcza w PC. Kiedyś wydawało się to niemożliwe ale stało się faktem.

Wystarcza (w teorii) dokładnie tak samo, jak LBA, tyle że PC nie umie z tego skorzystać. Plus producenci dysków nakładają sztuczne ograniczenia na adresację CHS, na przykład dysk 30 GB potrafi zeznać, że w CHS on ma tylko 8 GB. Ale to ograniczenie nie ma uzasadnienia, jeśli wziąć pod uwagę CHS sam w sobie - można zaadresować nim 128 GB i w LBA tak samo.

Tak jak to, że transmisja szeregowa do dysku po kablu 4-ro żyłowym jest szybsza niż równoległa po 80-ciu żyłach.
Po prostu postęp.

Tutaj akurat nie chodzi o liczbę kabli, gdyby po 80 żyłach transmisja szła tym samym sposobem, co po tych czterech, to byłoby 20x szybciej. SATA, o ile mi wiadomo (poprawcie mnie jeśli się mylę), jest szybsze od PATA nie dlatego, że liczba kabli jest mniejsza, ale dlatego, że PATA przesyła stany bitów zmieniając napięcia, a SATA - zmieniając kierunek przepływu prądu. Ponieważ to drugie jest mniej wrażliwe na zakłócenia niż to pierwsze, transmisję można znacznie przyspieszyć.

KMK
? HEX$(6670358)

336 Ostatnio edytowany przez epi (2011-09-14 16:06:45)

Nieco ściślej, mniejsza wrażliwość na zakłócenia bierze się stąd, że w transmisji różnicowej jeden bit leci jednocześnie na dwóch drutach, z tym że prądy płyną w nich w przeciwnych kierunkach. Upraszczając, zakłócenie zewnętrzne, działające na dwa druty umieszczone blisko siebie, daje w obu podobny skutek. Odbiornik odejmuje napięcia na swoich wejściach + i -, otrzymując (teoretycznie) zdwojony sygnał, a zakłócenie zostaje wytłumione. Na podobnej zasadzie dane idą po drutach w ethernecie ze skrętką czy USB.

No i zupełnie nie rozumiem co ma geometria dysku do liczby drutów i szybkości samej transmisji. Niedługo zaczniesz pisać, Bartoszu, że CHS jest odpowiedzialny za kryzys i rosnące zadłużenie.

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

337

Za kryzys i zadłużenie odpowiedzialni są cykliści...i to wiadomo od 1956 r. :)

A wracając do pytania, to po prostu pewne technologie się sprawdzają lepiej, drugie gorzej...do innych dorastamy.
Gdyby dyski dalej miały budowę taką, że prawdziwe byłoby mapowanie fizycznej struktury dysku do notacji CHS, to by było super. Ale wtedy jednolitej metody adresacji nie dałoby się zastosować np do pamięci flash, które mają inna konstrukcję. LBA uprościło ten temat. Nie twierdzę, że jest lepsze...jest bardziej jednolite. Nieważne też, jaki standard wybierzemy, to mówimy że da się korzystać z niego w zakresie do 128GB. Tak. Ale co z dyskami większymi od 128GB. Tu już CHS nie starcza. No chyba, że zrobimy standard CHS128+. Ale po co ?
Trzeba pamiętać też, że nie zaczynaliśmy od dysków ATA tylko od MFM a nawet wrócić trzeba aż do pamięci bębnowych. Za czasów pamięci bębnowych adresowalny w nich był pojedynczy bajt (bo było to przedłużenie pamięci operacyjnej). Jednak technologia zapisu i konieczność zwiększania pamięci spowodowała, że wprowadzano coraz więcej głowic i talerzy. Aż osiągnięto granice zdrowego rozsądku i mozliwości technicznych. Ponieważ programy były opracowane, zaszyty miały algorytm adresacji z podziałem na talerze i głowice, to najprościej było zaadoptować ten styl do obsługi nowego rodzaju pamięci, gdzie adresowany nie był konkretny bajt a cała grupa bajtów zwana sektorem. Stąd mamy CHS.
Pamiętajmy, że ówcześnie opracowanie programu to był WYSIŁEK i KOSZTY. Więc nie zmieniano ich tak często, wręcz nie można było. Zatem to sprzęt dostosowywano do programów a nie na odwrót. Pojawianie się komputerów PC nie zmieniło stanu rzeczy bo sprzęt nie rozwijał się tak szybko. Po przekroczeniu "masy krytycznej" ilości PC wreszcie zaczęto konstruować nowe dyski  do nich i nagle okazało się, że CHS nie jest taki wygodny/jednolity. Wymyślono LBA.
Podkreślam...ani lepsze ani gorsze...inne...jednolite.

A swoją drogą to tu  ciekawy opis: http://www.pcguide.com/ref/hdd/bios/modes_CHS.htm

338

Do dysków 128+ wymyślono LBA+ czyli LBA48 - bardzo proste rozszerzenie, kompatybilne w dół (każdy kontroler IDE to obsłuży (nawet wyprodukowany przed tym jak to wymyślono), jedynie potrzebne jest wsparcie systemu operacyjnego.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

339

Koniec oftopu. Niedługo będzie nowa wersja BIOS-u do IDE Plusa, na razie zwiastun filmowy:

http://drac030.krap.pl/ideplus_atr_load.avi

Tradycyjne, staropolskie sorry za kiepską jakość, filmik zrobiłem tym, co było pod ręką, czyli aparatem fotograficznym.

KMK
? HEX$(6670358)

340 Ostatnio edytowany przez AS... (2011-09-27 14:24:00)

No szacunek Draco!!!
Brawa wielkie!

Ładowanie Atr-ów to .. jest to!

p.s.
ciekawe czemu moja struktura dysku od kmk jest identyczna z Twoją :P

341

Nooooo - gratulacje! Pinokio będzie bardzo zadowolony. Będzie pewnie jeszcze chciał support dla DC3, DCM :D bo ma tego setki na dysku.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

342

to tylko do plusa?
a co z userami kmk/jz? krypto-wymuszenie upgrade? ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

343

To może i dla SIDE by się dało?

344

SIDE ma najnowszy bios na swiecie, IDE+ musi gonic ;)

przechodze na tumiwisizm

345

Draco - poproszę do testów upgrade :) - no chyba, że wszystko już "GRA" ;)-

Kontakt: pin@usdk.pl

346 Ostatnio edytowany przez drac030 (2011-09-27 16:33:22)

jellonek napisał/a:

to tylko do plusa?
a co z userami kmk/jz?

No niestety, co jest na IDE Plusie łatwe i przyjemne, na starym interfejsie jest b. trudne o ile w ogóle możliwe. Tam jest ogólnie trochę za mało pamięci RAM, a na dodatek bankowana jest razem z ROM-em, więc zakodowanie czegokolwiek, co korzysta z więcej niż 512 bajtów RAM naraz to jest niezła ekwilibrystyka.

KMK
? HEX$(6670358)

347

Candle napisał/a:

SIDE ma najnowszy bios na swiecie, IDE+ musi gonic ;)

Czy to oznacza, że SIDE pozwala lub będzie pozwalało na ładowanie z ATR? ;)

348

szkoda :/

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

349 Ostatnio edytowany przez Pin (2011-09-27 17:11:25)

Side pozwala na to bodaj od zawsze. No chyba, że się mylę ;)-

Kontakt: pin@usdk.pl

350

Z tego co mi wiadomo, ma loader do binarek a nie do ATR, dlatego pytam, skoro Candle tak pochwalił jego "BIOS" ;)