WINCHESTER DISK & CONTROLLER TEST Navodilo za uporabo wichester disk in kontroler testnega programa ================================================================= ( Verzija 3. - Revizija 2 ) Iskra - Delta (C) 1984 WF-v3-r2/84 1 WINCHESTER DISK & CONTROLLER TEST V S E B I N A --------------- 1. Uvod 2. Opis testnega mesta 3. Opis programa 4. Uporaba programa 5. Uvod v XEBEC S-1410 5.25 Winchester Disk Controller 6. Uvod v ST 412 Winchester Disk 7. Zaklju~ek 8. Literatura Iskra - Delta (C) 1984 WF-v3-r2/84 2 WINCHESTER DISK & CONTROLLER TEST **************** * * * 1. U V O D * * * **************** Winchester disk in kontroler test je predvsem namenjen testiranju in formatiranju diska v vhodni kontroli, proizvodnji in servisu. Testni program ni namenjen uporabnikom. Za uporabnike je potrebno izdelati podoben format program, saj dosedanji SEAGATE program, ni ve~ uporaben. Program je namenjen kateri koli Partner konfiguraciji z Seagate ST-412 Winchester diskom in Xebex S-1410 winchester disk krmilnikom in operacijskim sistemom CP/M Plus. Na~in testiranja bazira na menu sistemu, tako, da lahko izberemo test, katerega `elimo. Napake in protokol testiranja se izpisujejo na ekranu, po `elji pa tudi na printerju. Testni paket se nahaja na distribucijski disketi z imenom WFV3R2. Tu je program v izvorni kodi, kot tudi v strojni kodi. Na distribucijski disketi se nahajajo slede~i programi: .wf.mac 1.izvorni modul .wf1.mac 2.izvorni modul .wf2.mac 3.izvorni modul .wf.rel 1.prevedeni modul .wf1.rel 2.prevedeni modul .wf2.rel 3.prevedeni modul .wf.com program v strojnem jeziku .wfpri.txt opis testnega programa in navodila Testni program podrobno testira krmilnik in diskovni pogon, napake in protokol, ki se generirajo pa je potrebno dobro preu~iti. Pri testiranju odkrite slabe sledi na disku, program nadomesti z alternativnimi sledmi, tako, da je za uporabnika napaka prozorna. Pogon, za katerega program trdi da nima napak, je vsestransko pregledan. Tudi za eventualne slabe sledi je poskrbljeno tako, da upo- rabnik nima dostopa do njih.Trajni nonstop test, pa omogo~a testiranje pogona v poostrenih tempera- turnih in napetostnih razmerah.Izpis ure in datuma pri vsakem testu pa omogo~a koreliranje pojavov. Zavedati se moramo da pri~ujo~i testni program ni program, ki bi lahko testiral enote na chip nivoju. Zato pa omogo~a vhodni kontroli, proizvodnji in servisu, da z dokaj{no gotovostjo ugotovijo delovanje celotnega sistema host_adapterkrmilnikdiskovni pogon. Iskra - Delta (C) 1984 WF-v3-r2/84 3 WINCHESTER DISK & CONTROLLER TEST ********************************************** * * * 2. O P I S T E S T N E G A M E S T A * * * ********************************************** 2.1. Testno mesto mora imeti: 1.Partner mikrora~unalnik najbolje v verziji PARTNER/F 2.Printer 3.Pri testiranju winchester diskov moramo imeti zanesljiv krmilnik 4.Pri testiranju krmilnikov pa zanesljiv winchester disk (lahko testiramo oba hkrati). 5.Testni program WF.COM, ki se nahaja na distribuciji WFV3R2. 2.2. Priprava testnega mesta Testno mesto lahko pripravimo na ve~ na~inov: 2.2.1. Testno mesto v PARTNER/Standardni konfiguraciji. Pri standardni konfiguraciji sta mogo~a dva na~ina testiranja: a.) Partner z winchestrom in gibkim diskom. Pri takem testiranju ni potrebno nobenih sprememb nastavitev Partnerja. Zavedati se moramo samo, da je test destruktiven in da izbri{e vse podatke na disku. Zato se moramo prepri~ati ~e imamo vse kopije pomembnih programov, kateri se nahajajo na winchester disku. Nato lahko po`enemo program WF, ki se lahko nahaja na winchester disku ali pa na gibki disketi. Ko nas program vpra{a kateri disk `elimo testirati moramo vtipkati 0. Jasno je, da moramo po kon~anem testiranju obnoviti operacijski sistem. b.) K standardnemu Partnerju dodamo winchester katerega `elimo testirati. Vtakem primeru pa moramo priskrbeti dodatni kabel za povezavo konektorja J3 na krmilniku z konektorjem J2 na winchester disku (le ta je enak kablu, ki povezuje krmilnikov konekto J2 z winchesterskim konektorjem J2), spremeniti je potrebno tudi kabel, ki povezuje krmilnikov konektor J1 z winchesterjevim konektorjem J1, saj mu je potrebno dodati {e en konektor za dodatni winchester. Poleg tega je potrebno spremeniti napajalni kabel za winchester, saj mu moramo dadati {e en konektor za napajanje winchestra ki ga `elimo testirati. Prav tako pa je treba prerezati na testiranem winchestru povezave na preveznem polju 6E. Povezave, katere je potrebno prerezati so DS1, DS3, DS4. Testni program po`enemo prav tako z ukazom WF, vendar, ko nas vpra{a za pogon katerega `elimo testirati moramo vtipkati 1. V takem primeru se Partnerjev winchester ne testira. 2.2.2. Testno mesto v Partner/F konfiguraciji. Pri tej konfiguraciji dodamo k ra~unalniku krmilnik, winchester ter vse potrebne kable. Program WF se nahaja na disketi, in ko nas testni program vpra{a kateri pogon naj testira moramo vtipkati 0. Iskra - Delta (C) 1984 WF-v3-r2/84 4 WINCHESTER DISK & CONTROLLER TEST ************************************* * * * 3. O P I S P R O G R A M A * * * ************************************* 3.UVOD Winchester disk in kontroler test program je sestavljen iz treh modulov. Ti so: WF modul z glavnim programom, WF1 modul z driver programi za disk, WF2 modul z podprogrami. 3.1. WF modul Ta modul krmili izvajanje programa ter skrbi za komunikacijo ~lovek stroj. Z pomo~jo tega programa se kli~ejo slede~e testne rutine: CNTINI - Controller initialization Rutina inicializira krmilnik, ter javi upe{no/neuspe{no inicializacijo. DRVRDY - Drive ready test Rutina izvede test "drive ready", v primeru napake le to javi HOME - Recalibrate test Rutina izvede recalibrate test CNTEST Controller test Rutina pregleda krmilnik CNRAM Controller RAM test Rutina pregleda pomnilnik krmilnika FORMAT Formatiranje pogona Rutina formatira disk ter verificira format. V primeru "hard" disk napak, formatira tudi alternativne sledi. Rutina javi lahko samo fatalno napako, kar pomeni, da je pogon ali pa krmilnik tako slab, da ne deluje. DRIVED Speedy disk test Rutina hitro pregleda sektor 00 na vsaki sledi. Ta test lahko samo okvirno pove ~e diskovni pogon in krmilnik v redu delujeta. DRIVET Full disk test Ta rutina je tako imenovana non stop rutina, ki testira diskovni pogon s pomo~jo zapisovanja razli~nih podatkov na disk. Poleg tega pa intenzivno testira dostop do sledi. 3.2. WF1 modul V tem modulu se nahajajo driverji za disk READ rutina ~ita definirano {tevilo sektorjev z diska v pomnilni bufer WBUF. V primeru napake spro`i razli~ne diagnosti~ne programe. WRITE rutina vpi{e definirano {tevilo sektorjev na disk iz buferja RBUF, kateri se nahaja v pomnilniku. GETSTA rutina preverja status byta, katere krmilnik po{ilja ra~unalniku po vsaki operaciji. SETIOP rutina generira blok podatkov, ki sestavljajo ukaz krmilniku. CMDOUT rutina po{ilja krmilniku ukaz v obliki bloka podatkov. GETCON rutina ugotavlja ~e je mo`en nadzor na krmilnikom. Vklju~i tudi watchdog timer, ki zagotavlja, da po dolo~enem ~asu, v primeru nepravilnega delovanja krmilnika, nadaljevanje izvajanja programa. HDREQ rutina ~aka na request diskovnega pogona. Tudi tu je program za{~iten z watchdogom HDWRD rutina inicializira DMA vezje za ~itanje HDRDD rutina inicializira DMA vezje za pisanje Iskra - Delta (C) 1984 WF-v3-r2/84 5 WINCHESTER DISK & CONTROLLER TEST 3.3. WF2 modul Pomembnej{e rutine v tem modulu so: DIAG rutina, ki izvaja celotno diagnostiko diska in krmilnika HOME rutina, ki izvede recalibracijo pogona SFORMA rutina, ki formatira pogon CFORMA rutina, ki verificira format pogona FORALT rutina, ki dodeljuje in formatira alternativne ter verificira format alternativnih sledi Ostale rutine so predvsem, za komunikacijo ~lovek stroj, ter za razna pretvarjanja in izpisovanja. 3.4. Zbiranje, povezovanje programa WF V primeru, da `elimo program spreminjati, so na voljo izvorni moduli na distribucijski disketi. Ti moduli so: WF.MAC, WF1.MAC, WF2.MAC. Priporo~ljivo je da pred temi spremembami shranimo stare delujo~e programe: PIP B:=WF*.*[VCR REN b:WF?OLD.*=B:WF?.* Po spremembah modulov, le te prevedemo: M80 WF,WF=WF/Z/C M80 WF1,WF1=WF1/Z/C M80 WF2,WF2=WF2/Z/C CREF80 *=WF *=WF1 *=WF2 ter module pove`emo L80 WF/N,WF,WF1,WF2/E Program po`eno z enostavnim klicem WF Iskra - Delta (C) 1984 WF-v3-r2/84 6 WINCHESTER DISK & CONTROLLER TEST ************************************************* * * * 4. U P O R A B A P R O G R A M A W F * * * ************************************************* 4. Delo z programom WF. Program je pisan tako, da omogo~a ~im bolj enostavno delo z njim. Osnovan je na menu principu, tako, da program spra{uje, kateri test `elimo. 4.1. Zagon programa. Program po`enemo z ukazom WF. 4.2. Priprava za delo. Program se javi z glavo programa ter izpi{e tudi verzijo ter revizijo. Program katerega opisujemo v tem priro~niku je verzija 3. revizija 2. Sedaj nas program vpra{a, ~e `elimo imeti protokol na printerju, odgovoriti moramo z Y ali N (YES/NO). Nato nas program vpra{a kateri pogon testiramo vtipkati moramo 0 ali 1. Program odgovori z "ARE YOU SURE", nakar moramo pritrditi ali zanikati (Y/N). Nato program zahteva ime in priimek osebe, ki program testira. Vnos kon~amo z . Program zahteva serijsko {tevilko winchester disk krmilnika. Vnos kon~amo z . Program nato zahteva serijsko {tevilko pogona. Vnos kon~amo z . 4.3. Testiranje. 4.3.1. Inicializacija krmilnika. V tej to~ki program vpra{a, ~e `elimo inicializirati krmilnik. Vsekakor moramo to storiti vsaki~, ko prvi~ po`enemo program. Vtipkamo Y ali N. 4.3.2. Test ~e je pogon pripravljen. Ta test pregleda ~e je pogon pripravljen za delo. Za sam test moramo vtipkati Y ali N. V primeru ,da pogon ni pripravljen, javi Home error, kar povzro~i izstop iz testa. Program vpra{a ~e `elimo nadaljevati. V primeru ,da je test uspe{en program preide na naslednji test. 4.3.4. Interni test krmilnika Testira se krmilnik. V primeru napake se le-ta javi. 4.3.5. Diagnostka pomnilnika na krmilniku. Ta test pregleda pomnilnik na krmilniku. 4.3.6. Formatiranje winchester diska. Ta test najprej formatira disk z E5 byti. Nato test preverja pravilni zapis formata. V primeru, da program odkrije kak{no napako, to zanj ni fatalna napaka, saj dodeljuje pokvarjenim sledem alternativne sledi. Fatalna napaka je v primeru ~e je teh alternativnih sledi ve~ kot 20. Prav tako so fatalne napake pri tem testu v primeru home ali seek napak. Vsekakor je dobro, ~e v primeru fatalnih napak, zamenjamo krmilnik in ponovno testiramo. V primeru , da se pojavljajo iste napake tudi pri zamenjanem krmilniku lahko smatramo, da je winchester resni~no neuporaben. Iskra - Delta (C) 1984 WF-v3-r2/84 7 WINCHESTER DISK & CONTROLLER TEST 4.3.7. Hitri test pogona. Pri tem testu program hitro pregleda diskovni pogon. Ta test vsekakor ni merodajen za odlo~itev ali je pogon v redu ali ni. 4.3.8. Non-stop test. Ta test omogo~a testiranje pogonov za dlje ~asa. Progam sam zapusti ta test le v primeru fatalne napake. Te fatalne napake pa so lahko: preve~ dodeljenih alternativnih sledi, home napake, seek napake. Druga~e pa test lahko prekinemo z pritiskom na katerokoli tipko. 4.4.Pripombe k protokolu in izpisom. Zaradi programa, ki je namenjen tudi tovarni v Avstriji je komunikacija ~lovek stroj pisana v angle{~ini. Za potrebe slovenske proizvodnje se lahko sporo~ila spremenijo. Potrebno je le v vseh modulih spremeniti polja z sporo~ili v angle{~ini v slovenska ali v sporo~ila v katerem koli jeziku. Nato je potrebno prevesti module ,ter jih povezati kot je opisano v poglavju 3. Prav tako se lahko spremeni oblika izpisov, ki niso najbolje dore~eni. Pri tem pripro~am da se spremeni {tevilka revizije, katera se nahaja v modulu WF pod labelo rev. Iskra - Delta (C) 1984 WF-v3-r2/84 8 WINCHESTER DISK & CONTROLLER TEST ******************************** * * * 5. X E B E C S - 1 4 1 0 * * * ******************************** 5.1.Splo{no: Xebec S-1410 winchester disk krmilnik lahko nadzoruje do dva 5.25 diskovna pogona, ki imata vmesnika ustrezna ST-506 standardu. Lastnosti: < "Interlocked Data Transfer" preko SASI vmesnika < arhitektura bazirana na mikroprocesorju < 256 ali 512 sector buffer < 32-bitni ECC polinom z 11-bit burst corekcijo < Seagate disk vmesnik < Interna diagnostika < Avtomati~ni "burst error & detection" < Lo~en sector format za ID in podatkovna polja z posameznimi ECC polji za ID in data polji < veliko zmogljivih ukazov < spremenljivi interlieve faktor 5.2. Na diagramu 1. je pokazana funkcionalna organizacija krmilnika 5.2.1. Host vmesnik povezuje interno podatkovno vodilo z ra~unalnikom; avtomat nadzoruje pretok podatkov in ukazov preko "host" vmesnika 5.2.2 Procesor (8-bitni) zasleduje in nadzoruje delo krmilnika 5.2.3 Avtomat nadzoruje in sinhronizira delo "host" vmesnika, SERDES in sector bufferja 5.2.4 "serializer/deserializer"(SERDES) izvaja konverzijo paralelnih podatkov internega vodila v serijske podatke za prenos na disk, ter obratno 5.2.5 Data separator izvr{i konverzijo serijskih NRZ podatkov v MFM podatke za prenos na disk ter obratno 5.2.6 Sector buffer hrani podatke za prenos med diskom in "host" ra~unalnikom, zato da se prepre~i izgubo podatkov (overrun) Diagram 1. Iskra - Delta (C) 1984 WF-v3-r2/84 9 WINCHESTER DISK & CONTROLLER TEST 5.3.Ukazi krmilniku Pod ukaze krmilniku smatramo prenos ukazov med krmilnikom in ra[unalnikom. Ra[unalnik po[ilja ukaze krmilniku preko @host@ adatpterja, ptem pa krmilnik ustrezno ukazom le-te izvr[uje in po[ilja sporocila nazaj. 5.3.1 Ukazi [est besed dolg ukazni blok smatramo kot ukaz, ki specificira krmilniku doloceno dejavnost, tak blok imenijemo Device Control Block (DCB). Slika 2. prikazuje format DCB-ja. Bit 7 6 5 4 3 2 1 0 --------------------------------------------- Byte 0 ! Cmd class ! Opcode ! --------------------------------------------- Byte 1 ! LUN ! High Address ! --------------------------------------------- Byte 2 ! Middle Address ! --------------------------------------------- Byte 3 ! Low Address ! --------------------------------------------- Byte 4 ! Interleave or Block Count ! --------------------------------------------- Byte 5 ! Control Field ! --------------------------------------------- Slika 2. Byte 0: biti 7,6,5 povedo razred ukaza, biti od 4 do 0 pa opisujejo ukaz Byte 1: Biti 7,6,5 povedo logicno stevilko pogona (Logic Unit Number LUN). Biti 4-0 vsebujejo del logicnega naslova sektorja. Byte 2: Biti 7-0 vsebujejo del logicnega naslova sektorja. Byte 3: Biti 7-0 vsebujejo del logicnega naslova sektorja. Byte 4: Biti 7-0 specificirajo interleave ali pa stevilo blokov za prenos. Byte 5: Bit 0 Half step opcija za Seagate in TI pogone Bit 1 Half step opcija za Tandon pogone Bit 2 Buffer-step opcija za CM in RM pogone Bit 3-4 Rezervirano Bit 5 Ce je ta bit postavjen se pri formatiranju uporabi vsebina sector bufferja v kontrolerju Bit 6 Ce je postavljen, se pri citanju sektorja ob napaki sektor ne prebere se enkrat. Bit 7 Ce je postavljen, se prepove ponavljanje pri vseh dostopih na disk. 5.3.2. Logicni naslov sektorja se izracuna na sledeci nacin: Log.naslov=(CYADR*HDCYL+HDADR)*SETRK+SEADR CYADR = Cylinder Address HDADR = Head Address SEADR = Sector Address HDCYL = Number of Heads per Cylinder SETRK = Number of Sectors per Track Iskra - Delta (C) 1984 WF-v3-r2/84 10 WINCHESTER DISK & CONTROLLER TEST 5.3.3 Ukazi winchester disk pogonu Ukazi so razdeljeni v 8 klas, pri cemer se uporabljata samo dve: -klasa 0 to so data transfer, non-data transfer,status ukazi -klasa 7 diagnosticni ukazi 5.3.3.1 Test if Drive Ready (klasa 0, koda 0) Ukaz selectira definiran pogon in verificira ce je pogon @ready@ d = pogon 0/1 Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! ! ! ! ! ! --------------------------------- Byte 2 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 3 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 4 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 5 ! ! ! ! ! ! ! ! ! --------------------------------- 5.3.3.2 Recalibrate (klas0, ukaz 01) Ta ukaz postavi R/W glavo na sled 00 d = drive 0/1 r = retries s = step opcija Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! ! ! ! ! ! --------------------------------- Byte 2 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 3 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 4 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 5 ! r ! 0 ! 0 ! 0 ! 0 ! s ! s ! s ! --------------------------------- Iskra - Delta (C) 1984 WF-v3-r2/84 11 WINCHESTER DISK & CONTROLLER TEST 5.3.3.3. Request Sense Status (klasa 0, ukaz 03) Racunalnik mora ta ukaz poslati krmilniku takoj, ko le ta zazna napako. Ta ukaz pove krmilniku naj poslje racunalniku stiri byte informacije o napaki (tako imenovani Sense Bytes). Ce se napaka pojavi pri multi sector ~itanju ali pisanju krmilnik vrne tudi logicni naslov sektorja. d = pogon 0/1 Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! 1 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! ! ! ! ! ! --------------------------------- Byte 2 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 3 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 4 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 5 ! ! ! ! ! ! ! ! ! --------------------------------- Sense Bytes: Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! High Address ! --------------------------------- Byte 2 ! Middle Address ! --------------------------------- Byte 3 ! Low Address ! --------------------------------- Byte 0: Biti 0-3 Error Code Biti 4-5 Error Type Bit 6 Bit 7 Veljavni sektor naslov, ce je postavljen Tabela kod za napake -------------------- Stevilka napake (hex.) Opis ---------------------- -------------------------------------------- 00............... Ni napake 01............... Na pogonu ni detectiran indeks 02............... Pogon ni javil @seek complete@ 03............... Pogon ni zapisal (write fault) 04............... Pogon ni pripravljen (drive not ready) 06............... Pogon ni nasel sled 00 10............... Napaka pri citanju ID polja 11............... Nepopravljiva napaka v podatku Iskra - Delta (C) 1984 WF-v3-r2/84 12 WINCHESTER DISK & CONTROLLER TEST [tevilka napake (hex.) Opis ---------------------- -------------------------------------------- 12............... Pogon ni na{el Address marke 14............... Pogon ni na{el zahtevanega sektorja 15............... Seek error 18............... Popravljiva napaka 19............... Bad track flag detected 1A............... Napaka pri formatiranju 1C............... Direktni dostop do alternativne sledi 1D............... Pri formatiranju alternativne sledi je bila sled `e definirana kot alternativna, ali pa je bila oznacena kot slaba sled 1E............... Ko krmilnik dosega alternativno sled, leta ni bila definirana, kot alternativna 1F............... Ko krmilnik hoce formatirati sled, je ta bila oznacena kot slaba 20............... Neveljavni ukaz 21............... Neveljaven naslov diska 30............... RAM diagnosticna napaka 31............... Napaka pri diagnostiki programa 32............... Napaka pri ECC diagnostiki 5.3.3.4.Formatiranje pogona (klasa 0, ukaz 04) Ta ukaz formatira vse sectorje z ID in podatkovnimi polji, ustrezno izbranemu interleave faktorju. Ce je bit 5 v bytu 5 resetiran potem krmilnik vpise na disk podatkovne vrednost 6C, drugace pa vsebino sector bufferja. Zacetni naslov se prenese preko DCB. Krmilnik bo formatiral disk od zacetnega naslova pa do konca. d = pogon 0/1 r = ponavljanje/ni ponavljanja s = step opcija f = default/sector buffer Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! 0 ! 0 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! High Address ! --------------------------------- Byte 2 ! Middle Address ! --------------------------------- Byte 3 ! Low Address ! --------------------------------- Byte 4 ! 0 ! 0 ! 0 ! Interleave ! --------------------------------- Byte 5 ! r ! r ! f ! 0 ! 0 ! s ! s ! s ! --------------------------------- 5.3.3.5.Check Track Format (klasa 0, ukaz 05) Format ukaza je isti kot pri ukazu Format Drive. Ukaz pregleda ID in interleave za definirano sled. Iskra - Delta (C) 1984 WF-v3-r2/84 13 WINCHESTER DISK & CONTROLLER TEST 5.3.3.6.Format Track (klasa 0, ukaz 06) Format ukaza je enak ukazu Format Drive. Ukaz formatira definirano sled. 5.3.3.7.Format Bad Track (klasa 0, ukaz 07) Format ukaza je enak ukazu Format Drive. Ukaz formatira specificirano sled in postavi bad sector flag v ID polja. Ne vpisuje v podatkovna polja. 5.3.3.8.Read (klasa 0, ukaz 08) Ta ukaz precita specificirano stevilo sektorjev, zacne pa pri vpisanem logicnem naslovu. d=pogon 0/1 r=ponavljanje a=ponavljanje pri ECC napaki s=step opcija Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! 0 ! 0 ! 0 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! High Address ! --------------------------------- Byte 2 ! Middle Address ! --------------------------------- Byte 3 ! Low Address ! --------------------------------- Byte 4 ! Block Count ! --------------------------------- Byte 5 ! r ! a ! 0 ! 0 ! 0 ! s ! s ! s ! --------------------------------- 5.3.3.9 Write (klasa 0, ukaz 0A) Ukazni format je enak kot pri Read ukazu. Write ukaz precita definirano stevilo sektorjev, z zacetnim logicnim naslovom zapisanim v DCB. 5.3.3.10 Seek (klasa 0, ukaz 0B) Ta ukaz zacne operacijo dostopa do sledi katere naslov je zapisan v DCB. Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! 0 ! 1 ! 1 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! High Address ! --------------------------------- Byte 2 ! Middle Address ! --------------------------------- Byte 3 ! Low Address ! --------------------------------- Byte 4 ! ! --------------------------------- Byte 5 ! r ! 0 ! 0 ! 0 ! 0 ! s ! s ! s ! --------------------------------- Iskra - Delta (C) 1984 WF-v3-r2/84 14 WINCHESTER DISK & CONTROLLER TEST 5.3.3.11 Initialize Drive Characteristics (klasa 0, ukaz 0C) Ta ukaz omogoca uporabniku da pove krmilniku z katerim tipom winchester diska komunicira. Kljub vsemu pa morata biti oba pogona istega tipa.Ko ra~uunalnik po{lje DCB krmilniku, le ta zahteva dodatnih osem bytov informacije o parametrih pogona. Pogonski parametri: C = maksimalno stevilo cilindrov H = maksimalno stevilo glav W = Starting reduced write current cylinder P = Starting write precompensation cylinder E = Maximum ECC data burst lenght Za na{ primer, ko uporabljamo Seagate ST-412 Winchester Diskovni pogon so parametri naslednji: C = 306 (132 hex.) H = 4 W = 128 (80 hex.) P = 64 (40 hex.) E = 11 Format ukaza: Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! 1 ! 0 ! 0 ! --------------------------------- Byte 1 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 2 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 3 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 4 ! ! ! ! ! ! ! ! ! --------------------------------- Byte 5 ! ! ! ! ! ! ! ! ! --------------------------------- Konfiguracijski parametri: Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! C ! C ! C ! C ! C ! C ! C ! C ! --------------------------------- Byte 1 ! C ! C ! C ! C ! C ! C ! C ! C ! --------------------------------- Byte 2 ! 0 ! 0 ! 0 ! 0 ! H ! H ! H ! H ! --------------------------------- Byte 3 ! W ! W ! W ! W ! W ! W ! W ! W ! --------------------------------- Byte 4 ! W ! W ! W ! W ! W ! W ! W ! W ! --------------------------------- Byte 5 ! P ! P ! P ! P ! P ! P ! P ! P ! --------------------------------- Byte 6 ! P ! P ! P ! P ! P ! P ! P ! P ! --------------------------------- Byte 7 ! 0 ! 0 ! 0 ! 0 ! E ! E ! E ! E ! --------------------------------- Iskra - Delta (C) 1984 WF-v3-r2/84 15 WINCHESTER DISK & CONTROLLER TEST 5.3.3.12.Format Alternate Track (klasa 0, ukaz 0E) Ukaz za formatiranje alternativne sledi, vpi{e v slabo sled nalov alternativne sledi, tako da krmilnik kasneje ve katera alternativna sled pripada slabi sledi. Format ukaza je slede~: Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! 0 ! 1 ! 1 ! 1 ! 0 ! --------------------------------- Byte 1 ! 0 ! 0 ! d ! High address ! --------------------------------- Byte 2 ! Middle Address ! --------------------------------- Byte 3 ! Low Address ! --------------------------------- Byte 4 ! 0 ! 0 ! 0 ! Interleave ! --------------------------------- Byte 5 ! r ! r ! F ! 0 ! s ! s ! s ! s ! --------------------------------- Logi~ni nalov v ukazu ka`e na slabo sled. Interleave faktor je enak interleave faktorju pri obi~ajnem formatu, in se uporabi pri formatiranju alternativne sledi. ^e je bit F=1 potem krmilnik uporabi za formatiranje vsebino sektorskega buferja na krmilniku, druga~e pa vpi{e na sled same 6C. Krmilnik po tem ukazu zahteva {e tri dodatne byte, ki vsebujejo podatke o alternativni sledi, katere zagotovi ra~unalnik. Bit 7 6 5 4 3 2 1 0 --------------------------------- Byte 0 ! 0 ! 0 ! 0 ! High Address ! --------------------------------- Byte 1 ! Middle Address ! --------------------------------- Byte 2 ! Low Address ! --------------------------------- Po prejemu celotne informacije krmilnik naredi slede~e: a.) Vericira ~e je alternativna sled prosta,t.j. ~e `e ni uporabljena kot alterantivna sled, ali pa tudi ozna~ena kot slaba sled. V primeru napake krmilnik sporo~i napako "1D". b.) Formatira sled kot alternativno sled. c.) Slabo sled pa ozna~i kot slabo in vpi{e v header podatke o alternativni sledi. Pri uporabi alternativnih sledi na pogonu moramo biti pozorni na slede~e: a.) Krmilnik mora biti inicializiran na polno kapaciteto winchester disk pogona. b.) Pri uporabi alternativnih sledi, sistem ne more razpolagati z celim diskom, temve~ je kapaciteta manj{a za {tevilo alternativnih sledi. Izbrano {tevilo alternativnih sledi je odvisno od kapacitete diska, obi~ajno izberemo na 50 do 100 sledi eno alternativno sled. V primeru Partnerja z ST-412 pogonom imamo 20 alternativnih sledi. c.) Postopek generiranja diska: 1. najprej formatiramo cel disk, 2. verificiramo vsebino diska, 3. za vsako napako na disku, generiramo alternativno sled. d.) Pri delu z diskom so alternativne sledi operacijskemu sistemu nevidne, ker krmilnik samodejno izbere alternativno sled, ko ra~unalnik zahteva dostop do slabe sledi. Iskra - Delta (C) 1984 WF-v3-r2/84 16 WINCHESTER DISK & CONTROLLER TEST e.) Direktni dostop do alternativne sledi, povzro~i napako "1C", katero krmilnik sporo~i ra~unalniku. 5.3.3.13. Write Sector Buffer (klasa 0, ukaz 0F) Ta ukaz se uporablja zato, da se v bufer na krmilniku zapi{e neko informacijo. Pri tem ni nobenega dostopa do diska. Pri Partnerju uporabljamo ta ukaz zato da pripravimo sektorski buffer z vsebino E5. Kar s pridom uporabljamo pri formatiranju. 5.3.3.14. Read Sector Buffer (klasa 0, ukaz 10) Ta ukaz uporabljamo za ~itanje sektorskega buferja. Krmilnik po{lje ra~unalniku vsebino sektorskega buferja, ka lahko koristno uporabimo pri diagnostiki napak. 5.3.3.15. RAM Diagnostics (klasa 7, ukaz0) Ta ukaz izvede podatkovni vzor~ni test v krmilnikovem pomnilniku. 5.3.3.16. Drive Diagnostics (klasa 7, ukaz 03) Ukaz zahteva od krmilnika da izvede test diskovnega pogona in comunikacije med pogonom in krmilnikom. Krmilnik izvr{i "recalibrate" ukaz ter verificira sektor 00 na vseh sledeh. Krmilnik ne izvede nobene zapisovalne operacije na disk med izvajanjem tega ukaza. Smatra se, da je bil pogon predhodno formatiran. 5.3.3.17. Controller Internal Diagnostics (klasa 7, ukaz 04) Z tem ukazom krmilnik testira samega sebe. Krmilnik pregleda interni procesor, podatkovne buferje, ECC vezje ter program v ROM-u. 5.3.3.18. Read Long (klasa 7, ukaz 05) Ukaz prenese sektor in {tiri ECC byte ra~unalniku. ^e se pojaci ECC napaka krmilnik pri izvajanju tega ukaza, ne posku{a popraviti napako v podatkovnem polju. Ukaz je uporaben pri po- pravljanju "hard" error napak,saj druga~e ne moremo pre~itati okvarjenega sektorja, pa tudi pri diagnostiki. 5.3.3.19. Write Long (klasa 7, ukaz 06) Krmilnik sprejme od ra~unalnika sektor podatkov in {tiri dodatne ECC byte, ter vse zapi{e na disk. Pri tej zapisovalni operaciji krmilnik uporabi za ECC {tiri byte, katere priskrbi ra~unalnik. Ta ukaz je uporaben samo za diagnostiko. Iskra - Delta (C) 1984 WF-v3-r2/84 17 WINCHESTER DISK & CONTROLLER TEST 5.4 Format sektorja Slika in tabela ka`eta format sectorja, imena in dol`ine polj. !-------------------ID FIELD--------------------! !-----DATA FIELD-----! ! ! ! ! ---------------------------------------------------------------------------------------- !AM!GAP1!SYNC1!GAP2!COM!CYLH!CYLL!HEAD!SEC!FLAG!ZER!ECC1!GAP3!SYNC2!GAP4!DATA!ECC2!GAP5! ---------------------------------------------------------------------------------------- Polje [t. bytov Opis polja ------------- --------- ----------------------- AM 4 Address Mark GAP1 9 Zero Byte Gap SYNC1 1 ID Sync Byte GAP2 2 ID Zero Byte Gap COM 1 ID Compare Byte CYLH 1 Cylinder High (MSB) CYLL 1 Cylinder Low (LSB) HEAD 1 Head Number SEC 1 Sector Number FLAG 1 Flag Byte ZER 1 Zero Byte ECC1 4 ID ECC Bytes GAP3 16 Zero Byte Gap SYNC2 1 Data Field Sync Byte GAP4 2 Data Field Zero Byte Gap DATA 256/512 Data Field ECC2 4 Data Field ECC Bytes GAP5 14/43 Inter-record Zero Gap Iskra - Delta (C) 1984 WF-v3-r2/84 18 WINCHESTER DISK & CONTROLLER TEST ************************************ * * * 6. ST-412 winchester disk pogon * * * ************************************ 6. Splo{no Seagate ST-412 winchester disk pogon slu`i za shranjevanje podatkov. Je naprava, ki nima izmenljivega magnetnega medija. Ima dva magnetna diska, na vsaki strani diska pa ima 306 podatkovnih sledi. Najve~ja formatirana kapaciteta diska je 10 mega bytov (32 sektorjev na sled, 256 bytov na stektor). Vmesnik je podoben Shugartovi dru`ini SA1000 8 in~nih diskovnih pogonov. 6.1. Specifikacije 6.1.1. Omejitve okolja Temperatura okolja: 4 do 50 st.Celzija pri delovanju -40 do 60 st.Celzija pri mirovanju Temperaturni gradient: pri delovanju 10 st. Celzija/uro pri mirovanju pod kondenzacijo Relativna vlaga: 8 do 80% brez kondenzacije Najve~ja vi{ina: pri delovanju do 3000 m pri mirovanju -300 m do 10000 m Tresenje: pri delovanju do 10 G pri mirovanju do 20 G Napetostne zahteve: +12V +/- 5% 1.8A (4.5A pri zagonu) +5V +/- 5% 0.7A (max. 1A) +12V/+5V Max. ripple = 50 mV p.p Dispacija: 25W (29W max.) Iskra - Delta (C) 1984 WF-v3-r2/84 19 WINCHESTER DISK & CONTROLLER TEST 6.1.2. Zanesljivost MTBF.....................11000POH (pri uporabi v mejah specifikacij) PM.......................ni potreben MTTR.....................30 minut `ivljenska doba..........5 let "Soft" ~italne napake....1/10**10 pre~itanih bitov "Hard" ~italne napake....1/10**12 pre~itanih bitov "Seek" napake............1/10**6 dostopov "hard" napaka je definirana kot nepopravljiva po {estnajstih ponavljanjih 6.1.3. Zmogljivosti Neformatirana kapaciteta: Pogon..............12.76Mbytov Povr{ina...........3.19Mbytov Sled...............10416Bytov Formatirana kapaciteta: Pogon..............10.0Mbytov Povr{ina...........2.5Mbytov Sled...............8192Bytov Sector.............256Bytov Hitrost prenosa: 5.0Mbitov/sek Hitrost dostopa: sled/sled..........3ms povpre~je..........85ms (pri uporabi algoritma za hitri dostop) maksimum...........205ms ("burst" na~in) ~as nastavitve.....15ms mirovanje..........8.33ms 6.1.4. Funkcionalne specifikacije: hitrost vrtenja....3600 obr./sek +/-1% gostota zapisa.....9074 bpi max. gostota fluksa.....9074 fci gostota sledi......345 tpi cilindri...........306 sledi..............1224 ^it/pis. glav......4 mag. diski.........2 6.2. Uporabni{ke opcije: Tri opcije so na voljo uporabniku. Le te se nahajajo na preveznem polju 6E glavne tiskane plo{~e winchester diska. 6.2.1. "R" (radial) opcija Tovarna dobavlja pogon z 14 pinskim ~ipom na 16 pinskem podno`ju. Tovarni{ko pina 1-16 nista povezana tako, da pogon deluje v "daisy chain" na~inu. Izhodi pogona niso aktivni dokler pogon ni selektiran.^e pa preve`emo pina 1-16 potem deluje pogon v "radial" na~inu. V tem primeru so vsi izhodni signali aktivni, ~eprav pogon ni selektiran. Iskra - Delta (C) 1984 WF-v3-r2/84 20 WINCHESTER DISK & CONTROLLER TEST 6.2.2. "D" (defeat recal) opcija Tovarna dobavlja pogon z prevezanimi pini 2-15. V tem primeru se vedno pri zagonu pogona ~italno/pisalne glave pomaknejo na sled 00. V primeru da to povezavo prekinemo, se glave ne bodo premaknile, tako da bo signal "ready" pri{el hitreje. --------- ! ! 1 !---R---! 16 2 !---D---! 15 3 !-------! 14 4 !-------! 13 5 !--DS4--! 12 6 !--DS3--! 11 7 !--DS2--! 10 8 !--DS1--! 9 --------- Slika preveznega polja 6E na winchester pogonu 6.2.3. "DSx" (drive selected povezave) Te povezave definirajo {tevilko pogona. V primeru Partner ja imamo lahko dva pogona, zato mora biti za pogon "0" povezano polje DS1, za pogon "1" pa polje DS2. Iskra - Delta (C) 1984 WF-v3-r2/84 21 WINCHESTER DISK & CONTROLLER TEST ************************* * * * 7. Z A K L J U ^ E K * * * ************************* Program je bil preizku{en v laboratorijskih razmerah, kjer smo imeli na voljo zelo malo vzorcev diskovnih pogonov. Zato je {e vedno mo`no, da program v dolo~enih primerih ne bo deloval pravilno. V takem slu~aju prosim, da mi probleme sporo~ite, pri ~emer bi bilo `a`eljeno, da mi dobavite pogon in krmilnik ter protokol. V tej verziji izpisi niso najlep{i, posku{al jih bom popraviti in sistematizirati, vendar mislim, da uporabnik najbolje ve, kak{ne izpise `eli. Zato bi prosil, da eventualne popravke v izpisih izvr{ite sami. V primeru katerih koli te`av, ali pa potrebe po informacijah je moj naslov: Du{an [alehar Iskra-Delta Parmova 41 RRMS Ljubljana. Iskra - Delta (C) 1984 WF-v3-r2/84 22 WINCHESTER DISK & CONTROLLER TEST *************************** * * * 8. L I T E R A T U R A * * * *************************** 8.1. XEBEC S1410, 5.25 inch Winchester Disk Controller, Owner's manual, Xebec Systems Incorporated Document #104524, Revision C, April, 1982. 8.2. ST506/412, 5.25 inch Winchester Disk Drive, OEM manual, Seagate Technology, April 1982 8.3. Partner dokumentacija, Iskra-Delta, 1983. Iskra - Delta (C) 1984 WF-v3-r2/84 23