ReAmiga 4091 project

Zájem o využití SCSI řadičů na amigách oživil příchod redukcí od Acardu, SCSI2SD či ZuluSCSI. Rychlé SCSI na Amize existuje na turbo kartách, pomalejší pro Zorro II sloty a pro Zorro III? V podstatě dvě karty, FastlaneZ3, která navíc umí i rozšířit paměť, a pak - Commodore A4091. A když se dva firmwaroví inženýři setkají v garáži v Silicon Valley a začnou společně vytvářet hardware, vznikne z toho co? ReA4091!

Číst dále...

Amiblaster Deluxe

Amiblaster Deluxe je 16-bitová zvuková karta určená pro Zorro sloty. Je to evoluční následovník zvukové karty Prelude od A.C.T (Albrecht Computer Technik), přesněji repliky Prelude (první repliky). Právě replika Prelude a její možná omezení vedla Alexandera Engelhardta (Alf24de) k vytvoření Amiblasteru. Na práci na kartě se dále podíleli Matthias Hampel (Mattymuc) a Thomas Wenzel (TomSoniq).

Číst dále...

Access (Refit)

Access je dílem firmy Index Information Ltd., konkrétně Steva Rencontra a Micka Tinkera. V době svého vzniku (1997) se jednalo o unikátní zařízení. Tato unikátnost vycházela nejen z jeho stavby, ale také z použité technologie FPGA. Celé zařízení je totiž základní deska, kterou lze díky svým rozměrům umístit do standardní 5,25" pozice libovolné skříně/toweru, přesněji řečeno - pokud se tam vleze.

Číst dále...

Co to je MaxTransfer?

Napsal Prober on .

Protože dodnes lidi přesně nevědí co to vlastně ta záhadná hodnota MaxTransfer v "Advanced Options" HDToolBoxu je a jak ji správně nastavit, je zde vyčerpávající a přesná odpověď podepřená informacemi Mika Sinze, bývalého systémového inženýra Commodore Amiga.

Popis problému

Důvody, proč hodně IDE disků má problémy s MaxTransferem jsou v zásadě dva. Oba dva souvisí s interním firmwarem disku a neefektivností MS-DOSu a Windows. Abychom porozuměli tento důvodům musíme nejdříve vysvětlit jak MaxTransfer pracuje.

Amigácký IDE (resp. SCSI) ovladač načítá z disku více jak jeden sektor (512 bajtů) vždy, kdy je to jen možné. To je výhodné jednak proto, že se tím redukuje množství příkazů, které se musí poslat disku, ale hlavně se tak můžou načíst všechny sektory naráz během jediné otočky disku. To je *mnohem* rychlejší, než číst sektory po jednom a díky tomu čekat na každý sektor celou otočku disku. Inteligentní firmware moderních disků tuto nevýhodu částečně napravuje díky interní cache, proto se na PC toto zpomalení až tolik neprojevuje (k čemuž také přispívají velikosti clusteru >512).

V IDE normě je jako počítadlo sektorů použita 8-bitová hodnota. Specifikace IDE normy říká, že může nabývat hodnot od 1 do 256. Dobře, ale jak zapsat 256 do 8-bitové hodnoty? Jednoduše - protože je nesmysl žádat po disku 0 sektorů, specifikace IDE říká, že 8 znamená 256.

A právě tato výjimka je první problém, který se projevuje u většiny IDE disků. Tyto disky (resp. jejich firmware) zkrátka neumějí obsloužit hodnotu 0. V lepším případě se celý přenos neprovede nebo častěji se data některého sektoru přepíší pseudonáhodnými hodnotami BEZ OZNÁMENÍ CHYBY!!! Na žádost Commodore se někteří výrobci disků podívali do zdrojových kódů mikrokontrolérů a ve většině případů potvrdili tuto chybu.

Dobrá, ale proč se tato chyba projevuje pouze na Amize? Je to proto, že PC je hlavní uživatel disků a po dlouhou dobu nepoužíval multi-sector čtení/zápis. Jakmile se na PC začaly používat diskové cache (včetně SmartDrive od MS) pořád měly divné omezení na 64KB (velikost segmentu x86 procesorů), takže nikdy nepřenášely více jak 128 sektorů najednou (: 64KB).

Druhým, ještě zajímavějším problémem je fakt, že hodnoty 128-255 také občas nefungují. Proč? Pokud používáme znaménkovou aritmetiku (byte-signed) tyto hodnoty představují záporná čísla? Výsledek je ten, že firmware v disku je naprosto zmaten a dělá nepředvídatelné věci. Wow!!!

Proč se ale ani na tuto chybu nepřišlo dříve? Protože PC nemělo větší velikosti clusterů než 32KB. Ve skutečnosti pouze NT podporovaly 64K cluster a to musí být partition větší než 2GB - kolik takových disků donedávna bylo?

Náprava

U každém případě je na Amize (která naštěstí nemá velikost bloku větší než 32KB) nejbezpečnější nastavit velikost MaxTransferu tak, aby se nikdy nežádalo více jak 127 sektorů v jediném IDE příkaze. To zajistí hodnota těsně pod 64KB (128 sektorů je 64KB). Tato hodnota je 65535 (hexadecimálně 0000FFFF). V případě, že váš IDE disk je novějšího data, ale pořád nesprávně obsluhuje hodnotu 0 (256) sektorů je bezpečné nastavení 131071 (hexa: 0001FFFF). Defaultně je nastaveno 00FFFFFF (tj. 2047 sektorů).

Ještě malé upozornění: systémový příkaz FORMAT obsahuje nepříjemnou chybu ve výpočtu masky. Pokud zatuhne při formátování, tak upravte MaxTransfer na hodnotu 0000F000, respektive na 0001F000.

Závěr

Je chyba, že se MaxTransfer pojmenoval tak jak se pojmenoval. Je chyba, že dodnes si někteří lidé myslí, že znamená rychlost přenosu (pochopitelně: velice nízká nastavení opravdu zpomalí disk). Je chyba, že si někdo myslí, že to má co do činění s diskovou cache (mnoho starých disků mělo jen 4KB, nové mají 256KB a více a přesto u nich dochází k jedné nebo oběma z výše uvedených chyb...). Tyto chyby jsou zákeřné, protože se projevují pseudonáhodně (dle verze firmwaru a disku) a někdy se projeví až při kopírování opravdu rozsáhlých souborů (záleží na fragmentaci, rychlosti disku, původním obsahu interní cache...). Proto raději nikdy nenechávejte u IDE disků nastaven defaultní MaxTransfer. Stejně není možné přenést najednou 2047 sektorů, i když moderní disky již bezchybně vyhovují IDE standardu.

Shaman/Abort

Přidat komentář

Rozšíření Amig podle typu

Chart

  • 01 Running
  • 02 Strength Training
  • 03 Cycling
  • 04 Skating
  • 05 Swimming