Laboratorul 1

Sisteme de înregistrare a datelor pe suport magnetic

 

5.1. Conectarea mediilor de stocare a datelor

Orice sistem de stocare a datelor: harddisk, floppy disk, banda streamer sau unitate de disc optic, se conecteaza la sistemul de calcul prin intermediul unei interfete (ansamblu hardware), care va asigura doua operatii de baza cu aceste medii, si anume scrierea si citirea datelor.

Aceste interfete poarta denumirea generala de controller-e sau cuploare (de disc, streamer, CD-ROM etc.). Astfel, în cazul citirii de pe mediul de stocare, rolul interfetei este de a localiza pozitia si de a citi datele specificate, respectiv de a le adapta formatul într-unul care poate fi utilizat si "înteles" de componentele sistemului de calcul, în special de memoria RAM si microprocesor. De asemenea, în cazul scrierii de noi date, aceasta interfata va realiza operatia inversa, adica localizarea pozitiei unde vor fi depuse acestea, transformând datele preluate într-un format special în care pot fi scrise pe mediul de stocare.

Bineînteles, fiecare operatie de acest gen are ca etapa de start (la citire) si finala (la scriere), operatia de transformare a schimbarilor de flux magnetic de la nivelul discurilor în unitati de semnal (care vor fi interpretate ca biti), respectiv de a transforma unitatile binare în fluxuri magnetice care vor realiza functia de scriere. Comanda controller-ului este realizata prin intermediul unor registre interne. Dupa ce microprocesorul a transmis comanda catre controller, acesta din urma va lucra independent, în timp ce microprocesorul se va dedica unei alte activitati. La încheierea operatiei comandate, controller-ul va genera un semnal catre microprocesor, corespunzator terminarii operatiei.

În ceea ce priveste accesul la memorie, controller-ele sunt concepute sub doua forme: în primul caz este vorba despre cele care nu accepta transmisia tip DMA (Direct Memory Access) si care, dupa citirea unui bloc de informatii de la periferice, încep sa transfere secvential informatia în memoria RAM (octeti sau cuvinte, în functie de dimensiunea magistralei), proces controlat si gestionat de microprocesor. Aceasta metoda este relativ lenta în transmisia datelor, deoarece pentru fiecare operatie a controller-ului, acesta va cere acceptul sau va astepta comanda microprocesorului. În plus, microprocesorul supravegheaza transferul de date pe toata durata sa. Cea de a doua metoda este folosita de controller-ele dotate cu posibilitatea transmiterii DMA, transferul fiind efectuat integral de controller, microprocesorul nefind obligat sa supravegheze procesul. Implicit, viteza generala a sistemului creste prin degrevarea microprocesorului de aceasta sarcina.

O problema care apare în cazul harddisk-urilor este cea în care controller-ele nu ar avea posibilitatea retinerii datelor citite, fiind obligate sa efectueze transferurile catre memorie, la fiecare citire, direct prin magistrala. Poate aparea foarte frecvent pericolul magistralei ocupate (Busy), fapt care ar duce la pierderea informatiei citite. În plus, dupa cum se va arata în continuare, vitezele de transfer controller-RAM si controller-discuri difera foarte mult: în cazul primului transfer, acesta se desfasoara la nivel de MB/s, iar în cel de-al doilea caz, la nivel de KB/s. Desigur, trebuie sa existe o compensare a acestei diferente. Acestea au fost motivele dotarii controller-elor cu memorii tampon (buffer-e), cu rol de stocare temporara a blocurilor de informatii citite din mediul de stocare, pâna când se primeste acceptul scrierii în RAM (magistrala libera - blocul de date citit anterior a fost deja transferat în RAM). Un alt aspect luat în considerare la constructia controller-elor este legat tot de harddisk-uri si intervine în procesul de citire. Intervalul de timp necesar controller-ului pentru golirea buffer-elor în memorie este prea mare pentru ca sectorul care deja se afla sub capul de citire al unitatii sa poata fi citit si memorat în acest buffer. Nu trebuie neglijata, asadar, viteza foarte mare cu care se roteste discul.

Practic, sectorul urmator celui memorat va fi pierdut, putând fi citit abia la o a doua trecere a acestuia prin dreptul capului de citire. De aceea, la completarea sectoarelor pe harddisk-uri, se impune ca între doua sectoare succesive din punct de vedere logic sa existe un anumit numar de sectoare, fara legatura cu datele care sunt continute de sectoarele succesive logic.Acest factor de salt se numeste factor de întretesere (interleave sau interlace). El este fixat la formatarea discului, când fiecare sector fizic se numeroteaza, în dimensionarea sa intervenind si timpul de acces al unitatii de disc.

Controller-ele au o influenta deosebita asupra vitezei de transfer a datelor. Privitor la aceasta, un factor important este rata de transmisie de pe magistrala. Astfel, oricât de rapide ar fi unitatea de stocare si controller-ul aferent, având deci o rata de transmisie unitate-controller foarte buna, daca magistralele calculatorului nu se ridica la acelasi nivel de performanta, investitia în unitati si controller-e de calitate este inutila, deoarece magistrala sistemului va "gâtui" transferul controller-sistem, aducându-l la nivelul la care acesta poate efectua o transmisie. O alta caracteristica a controller-elor, care poate îmbunatati calitatile unitatii în ansamblu (scazând timpul de acces cu circa 25 %), este aceea de a retine comenzile de scriere/citire într-o anumita ordine, care are drept criteriu de ierarhizare distanta dintre capetele de citire/scriere si pozitia fizica pe disc a datelor care trebuie citite. În acest mod se pot evita deplasari neergonomice ale capetelor de scriere/citire ce ar duce la cresterea timpului de acces (vezi figura 1).


Fig. 5.1.1. Ierarhizarea distantei dintre capetele de citire/scriere.

În figura 1, capul de citire/scriere va citi mai întâi sectorul 3, care este cel mai aproape de pozitia capului, dupa care va citi sectoarele 4 si 2, sarind apoi la sectorul 1, desi acesta a fost primul cerut. Pâna la citirea efectiva a sectorului 1, datele continute de sectoarele 2, 3 si 4 (citite deja) vor fi retinute în buffer-ul controller-ului. O problema importanta este cea generata de erorile de citire/scriere, care apar destul de frecvent în cazul utilizarii intense a harddisk-ului (cum este situatia utilizarii memoriei virtuale, create pe disc - fisiere temporare - swap files). Metoda de verificare a corectitudinii rezida din calcularea sumelor de control (CRC - Cyclic Redundancy Check), constând în suma unui anumit numar prestabilit de biti ai informatiei scrise.

În momentul scrierii datelor pe disc, aceste sume sunt calculate si memorate. Valoarea este stocata pe disc si citita la fiecare accesare a informatiei respective. Odata cu citirea informatiei, suma de control este recalculata si apoi comparata cu valoarea anterior stocata. În cazul în care cele doua valori nu sunt identice, este activat un mesaj de eroare, intervenind procesele de corectie. Aceasta suma este reactualizata la fiecare scriere pe disc a informatiilor.

Controller-ele pot transmite datele serial sau paralel. Transmisia seriala este mult mai simpla, deci mai ieftina, datele transmitându-se pe o singura linie sub forma unor "trenuri" de date, bit cu bit. Datele vor forma cozi pâna când magistrala se va elibera pentru a prelua un nou transfer. Este un mod de transmisie foarte lent si de aceea este rar utilizat în sistemele performante, folosindu-se mai mult la cele lente si nepretentioase.

Transmisia paralela se desfasoara simultan pe opt linii si este în mod normal de 8 ori mai rapida decât cea seriala. Este o solutie mai scumpa decât precedenta, dar mult mai avantajoasa prin cresterea vitezei de transfer. La scrierea pe disc, odata cu informatia propriu-zisa, sunt scrise si asa-numitele informatii de tact, cu rol de a stabiliza viteza de citire/scriere. Avem în vedere variatiile de turatie ale motorului care antreneaza discurile si pozitia informatiei pe suprafata. Aceste informatii de tact însotesc pe disc informatiile propriu-zise si apar sub forma unor biti de tact (exista unele tipuri de controller-e la care informatiile de tact nu sunt asimilate la scrierea fiecarui bit de date, ci sunt scrise într-o portiune speciala a discului). Principalele tipuri de controller-e, respectiv unitati de harddisk asociate, folosite în configuratiile clasice sunt:

  • ST 505 - ST 506 (Seagate Technology);
  • ESDI (Enhanced Small Device Interface);
  • SCSI (Small Computer System Interface);
  • IDE (Integrated Device Electronics).

Fiecare din aceste tipuri are propriile dezvoltari ulterioare, variante mai fiabile, cu viteze de transfer superioare, deci solutii tehnice mai performante, derivate din aceste tipuri de baza.

Controller-e ST

Acest tip de controller este printre cele mai vechi si a fost dezvoltat de corporatia Seagate Technology (ST). În functie de modul în care se face înregistrarea pe harddisk, exista trei subtipuri de controller-e ST. Primul tip este NZR (No Return to Zero). La acest tip, informatiile de tact sunt scrise pe anumite suprafete de disc protejate (fata de modelele mai avansate, la care aceste informatii sunt scrise simultan cu informatia, în aceleasi zone de date). Procedeul de scriere este simplu. Fluxul magnetic pe suprafata activa se schimba la schimbarea starii logice (din 0 în 1 sau invers) si ramâne la fel pentru bitii identici.

Fig. 5.1.2. Realizarea scrierii pentru controller-e ST tip NRZ.

Acest mod de înregistrare este primitiv si ridica probleme mari la sincronizare. Rata de transfer controller-harddisk, în acest caz, este de sub 2 MB/s, iar rata de transfer controller-RAM de circa 120 KB/s. Al doilea tip de controller din categoria ST foloseste o metoda de scriere prin modulare în frecventa (FM - Frequency Modulation), metoda în care, simultan cu înregistrarea datelor, se înregistreaza si informatiile de tact. Astfel, pentru fiecare bit de informatie se mai ataseaza un bit suplimentar, de tact (1 devine 11 si 0 devine 10). Acest procedeu ocupa foarte mult spatiu (practic dublu), datorita bitilor de tact, fiind necesara (tehnologic) o densitate de înregistrare mica. Controller-ul de acest tip este dotat cu BIOS integrat, iar magistrala de date este seriala (volum mic de date integrate transferate la viteza mica). Si aici exista greutati de sincronizare, datorita aparitiei sirurilor lungi de biti identici. Rata de transfer controller-harddisk este de 2,5-3 MB/s.


Fig. 5.1.3. Realizarea scrierii pentru controller-e ST prin modulare FM.

Procedeul FM a evoluat apoi la MFM (Modified Frequency Modulation), obtinându-se o noua categorie de discuri ST. Informatia de tact este stocata doar în grupele de biti care nu contin biti setati (1) si nici în grupa anterioara nu exista vreun astfel de bit. Asadar, un 1 se transforma în grupa 01, iar valoarea 0 se transforma în grupa 00 sau 10, dupa cum a existat (sau nu) valoarea 1 în grupa anterioara. În acest caz discul prezinta 17 sectoare per pista si 512 octeti per sector. Sensul curentului din bobina se schimba înaintea fiecarei cifre 1.


Fig. 5.1.4. Realizarea scrierii pentru controller-e ST prin modulare MFM.

Privind comparativ cele doua metode de scriere se observa ca bobina este comandata diferit, în primul caz (FM) fiind necesar ca sensul curentului prin bobina capului de citire/scriere sa se schimbe de 16 ori, iar în cazul MFM de 8 ori. De aici rezulta ca viteza de scriere în cazul MFM este mult mai mare, deoarece dispozitivul de comutare electronica a sensului prin bobina va lucra mai putin. În cazul MFM, rata de transfer controller-harddisk este de circa 5 MB/s, iar rata de transfer controller-RAM, de 400-600 KB/s. Un sistem de înregistrare mai evoluat este cel obtinut prin metoda RLL (Run Length Limited), sistem cu care se obtin economii de spatiu de 45-50 %, fata de metodele anterioare. În aceasta metoda, între doi biti succesivi cu valoare 1 se intercaleaza între 2 si 7 biti cu valoare 0, tinând cont si de bitii care urmeaza, rezultând o codificare speciala. În acest mod se obtin multe siruri cu configuratia 100…1 (sau minim 2 zerouri dupa 1), siruri care se pot stoca pe un spatiu foarte restrâns). Pentru aceste controller-e, rata de transfer controller-harddisk este de 7,5-9 MB/s, rata de transfer controller-RAM este de 650-700 KB/s, iar discul prezinta 26 de sectoare per pista la 512 octeti per sector. Toate aceste interfete sunt seriale, iar legaturile se fac prin cabluri panglica (cu 20 de linii - magistrala de date si 34 de linii pentru comenzi). Unitatile harddisk se cupleaza prin cabluri panglica cu 6, respectiv 20 de linii. Tipurile de controller-e ST pot suporta pâna la doua discuri legate simultan si au integrate pe placa circuite electonice de atenuare si compensare a erorilor de scriere/citire. Tot în aceasta categorie intra si controller-ele care asigura cuplarea floppy disk-ului la sistem, folosindu-se metoda MFM. Fiecare interfata din aceasta categorie este dotata cu propriul BIOS, integrat de asemenea pe placa. Adaptarea semnalelor pentru magistrala reprezinta înca o functie integrata a placii controller. O serie de parametri care privesc lucrul cu discul se pot programa si regla din softul (driver-ul) care se livreaza, de obicei, odata cu placa controller.

-continuare-

Inapoi la Tehnologia RAID
Inapoi la Index