Serial ATA

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare
Dispunerea pinilor la interfețele SATA (alimentare și date)

SATA (pronunțat IPA: /ˈseɪtə/, /ˈsætə/ or /ˈsɑːtə/) este o interfață care realizează conectarea adapterelor locale (de regulă ele sunt integrate pe plăcile de bază a calculatoarelor staționare și portabile) cu dispozitivele de stocare a datelor(cum ar fi unități de hard disk și unitățile optice).

Prezentare generală[modificare | modificare sursă]

Punerea în aplicare a interfeței SATA este o substituire majoră a predecesoarei sale interfața ATA. Interfața în serie se diferă de cea precedentă prin rata înaltă de transmisiune de date care utilizează tehnologia Gigabit și codificarea 8b/10b. Figura 1 ilustrează cum două dispozitive sunt conectate la un adapter ATA. Această metodă permite conectarea a două dispozitive la un singur port folosind tehnologia de comunicare dispozitivul 0 / dispozitivul 1. Fiecare dispozitiv este conectat printr-un cablu astfel creând conexiunea „Daisy Chain”.

Fig.1A Conectarea unui dispozitiv de stocare a datelor (HDD) cu interfaţa ATA
Fig.1B Conectarea unui dispoztitiv de stocarea a datelor (HDD) cu intrefaţa SATA

Figura 1B ne ilustrează modul în care aceleași două dispozitive sunt conectate, folosind implementarea în serie a unui adapter ATA. Soft-ul ATA accesează imlementarea în serie a subsistemului ATA în același mod și cu aceleași funcții la fel ca și în cazul cu implementarea în paralel. Cu toate acestea, în cazul dat soft-ul vizualizează cele două dispozitive ca pe un dispozitiv unitar (dispozitiv 0) pe două porturi separate. Porțiunea de dreapta a adapterului este o nouă implimentare care are menirea să converteze operațiile soft-ului într-un flux de date/control în serie. Structura interfeței în serie oferă conectarea celor două unități cu propriile lor cabluri folosind tehnologia point-to-point.

Operații sub-modul[modificare | modificare sursă]

Dispozitivul de monitorizare a stării transportării datelor și dispozitivul de monitorizare a stării legăturilor fizice sunt două sub-module de bază care au ca rolul de controlor a funcționării globale a dispozitivelor de stocare a datelor. Dispozitivul de monitorizare a stării legăturilor fizice verifică operațiile legate de linia de serie, iar dispozitivul de monitorizare a stării transportării datelor verifică operațiile legate de platforma gaazdă. Ambele module coordonează acțiunile sale și utilizează resurse pentru a transfera date dintre calculatorul gazdă și atașarea dispozitivelor de stocare în masă. Dispozitivul gazdă de monitorizare a stării legăturilor fizice comunică direct prin legătura în serie spre un dispozitiv de monitorizare a stării legăturilor fizice corespunzătoare situată în dispozitiv. Dispozitivul gazdă de monitorizare a stării transportării datelor de asemenea comunică cu respectivul dispozitiv de monitorizare a stării transporturilor de date. Figura 3 arată modul în care dispozitivele comunică utilizând parametrii necesari .Fiecare nivel comunică cu dispozitivul respectiv fie direct fie indirect.

Gazda interacționează cu dispozitivul de monitorizare a stării transportării datelor prin intermediul unei interfețe de registru care este echivalent cu implementarea în paralel a adapterului ATA (gazdă). Acest lucru permite soft-ului gazdei, de a urma standardele și convențiile existente atunci când se accesează interfața registrului apoi urmând convențiile de protocoale de comandă standarde. Dispozitivul de monitorizare a stării transport date întrerupe aceste operații într-o secvență de acțiuni, datele despre operații fiind schimbate dinte dispozitivul de monitorizare a starii transport date și dispozitivul de monitorizare a legăturilor fizice.


PROCESAREA COMENZILOR PRIN INTERFAȚA SATA[modificare | modificare sursă]

ATA Queue.PNG

Acest capitol ne relatează metoda și dispozitivul care implementează tehnologia de atașare cu pachete de interfață (Advanced Technology Attachement Packet Interface) și tehnologia NCQ prin interfața SATA.

Tehnologia de atașare avansată (ATA) este o specificație a interfeței și este aplicată la interfața de transmisie dintre gazdă și dispozitivele de stocare de date. Specificațiile ATA indică niște seturi de facilități setul de facilități în lanț (Queued Feature Set). Acest set de facilități permite gazdei să emită comenzi concurente către același dispozitiv. Unele comenzi ATA pot fi puse în lanțul de așteptare. Aceste comenzi includ : Pachet command (C7h), Read DMA Queued Ext command (26h), Write DMA Queued command (CCh), Write DMA Queued ext command (36h).

REFERINȚĂ CĂTRE FIGURA 2[modificare | modificare sursă]

În cazul comenzilor ce stau în lanțul de așteptare o gazdă cu interfața ATA (120) inițializează o serie de comenzi către un dispozitiv ATA. Dispozitivul (125) determină cea mai eficientă metodă de a executa o comandă, și execută comenzile care sunt în lanțul de așteptare conform figurii 2, gazda (120) inițializeză o comandă în lanț având tag-ul=0 în pasul (130). Dispozitivul (125) efectuează o eliberare a magistralei astfel curățind sistemul de semnalizare care indică starea busy în pasul 132 pentru a indica că dispozitivul (125) este gata să primească comenzi adiționale de la gazdă (120). În acest exemplu gazda (120) inițializează două comenzi către dispozitivul (125) pentru relatarea abilităților a dispozitivului (125) de a procesa execuții de tip out-of-order. După ce sistemul de semnalizare a curățit valoarea busy, gazda inițializează din nou o comandă în lanț, având în pasul (134) tag-ul comenzii egal cu „1”. Dispozitivul (125) inițializează eliberarea magistralei și curăță în pasul (136) valoarea busy în sistemul de semnalizare. În pasul (138), dispozitivul (125) este gata de transfera date și de a finisa comenzile prin cereri de servicii (Service Request). Dispozitivul (125) setează octetul de servicii (SERV) cu valoarea „1” pentru a semnala faza de transfer de date. Gazda (120) inițializează în pasul (140) o comandă de servicii și vizualizează registrele I/O și gasește numărul tag-ului. În acest caz se poate de asumat că citirea numărul tag-lui din dispozitiv are valoarea „1” pentru a demonstra execuțiile out-of-order. În pasul (142) soft-ul de pe gazda (120) programează un motor de acces direct la memorie (Direct Memory Access) a gazdei și îi indică dispozitivului drumul corect spre un bufer de date pentru stocarea datelor de intrare sau pentru transferul datelor către dispozitiv (125). În următorul pas (144), dispozitivul execută comanda care a fost în lanțul de așteptare cu tag-ul „1” și inițializeză transferul de date, și datele fie sunt transmise de la gazdă (120) către dispozitiv (125) sau primită de către gazdă (120) de la dispozitiv (125).

În figura 2 pasurile de la 130-136 pot fi considerate ca niște faze de comenzi pentru introducerea comenzilor în lanțul de așteptare. Pasurile 138-144 pot fi marcate ca faza de date, pentru executarea comenzilor de transferare a datelor.

Standardul Serial Advanced Technology Attachement a fost prezentată la începutul secolului XXI. Ea este o specificație a interfeței care au fost inițial promovate de către companiile APT, Dell, IBM, Intel, Maxtor, Seagate etc. Specificațiile SATA sunt aplicate interfeței de transmisiuni a unui disc rigid (hard disk) sau a unei unități optice de citire a CD/DVD – urilor pentru a substitui interfața ATA/ATAPI care a fost utilizată de timp îndelungat. Specificațiile SATA speifică două perechi de linii de semnale diferențiale pentru a substitui liniile de semnale 40/80 cu implementare în paralel. Procesul de serializare a datelor originale poate reduce mărimea, tensiunea și sporirea vitezei de transfer. În timp ce sa serializat liniile de semnale, specificațiile SATA păstrează în mare parte conceptele a specificațiilor ATA, așa ca dinițiile registrelor I/O, seturile de comenzi etc. Ea utilizezează pachete de date pentru a transfera acele registre I/O, și sarcinile utile dintre gazdă și dispozitiv. Pachetele au referința la structura frame-urilor informației (Frame Information Structure) în specificațiile a interfeței SATA. În afară de aceste lucruri, specificațiile SATA de asemenea ne oferă niște funcții noi așa cum ar fi prima parte a accesului direct la memorie (First Party DMA) pentru a facilita transferul de date dintre gazdă și dispozitiv. Cu scopul de a distinge diferența aceste două interfețe, tehnologia ATA cu implementare în paralel va fi utilizată pentru a face referințe la interfața cu 40/80 linii, tehnologia ATA cu implementare în serie (SATA) va fi utilizată pentru a face referințe la interfața serializată. Oricum ambele interfețe PATA și SATA pot transporta seturile de comenzi ATA/ATAPI.

REFERINȚĂ CĂTRE FIGURA 3[modificare | modificare sursă]

SATA queue.PNG

Figura 3 este o diagramă de timp care ilustrează tehnologia de atașare avansată cu implementare în serie (SATA)și tehnologia NCQ . Protocolul SATA NCQ la momentul actual se aplică unităților de discuri rigide pentru a permite citirea datelor și plasarea comenzilor în lanțul de așteptare de a fi executate prin metoda out-of-order. O gazdă SATA (150) trimite informația prin registrul FIS (160) având tag-ul comenzii egal cu „0” către un dispozitiv SATA (155). Dispozitivul (155) răspunde prin intermediul registrului FIS (162) recunoscând registrul (160) și eliminând starea busy din sistemul de semnalizare pentru a indica că dispozitivul (155) este capabil să primească comenzi adiționale de la gazdă (150). Apoi gazda (150) trimite informația prin registrul FIS (164) având tag-ul comenzii egal cu „1” și dispozitivul (155) răspunde prin registrul FIS(166). În acest exemplu se presupune că ambele comenzi inițalizate de către gazdă (150) către dispozitivul (155) sunt comenzi destinate pentru citirea datelor de la dispozitiv (155). Comenzile susmenționate sunt fazele de comenzi iar cele expuse mai jos sunt fazele de date a protocolului SATA NCQ.

Având în vedere că dispozitivul (155) a primit două comenzi de la gazdă (150), dispozitivul (155) trebuie să decidă care dintre aceste două comenzi trebuie executate la început. În acest caz comanda cu tag-ul „1” va fi executată înainte de cea cu tag-ul „0” pentru a reflecta execuția prin metoda out-of-order. În pasul (168) transmite DMA Setup FIS pentru setarea transferului DMA pentru comanda cu tag-ul „1”. După ce este setat DMA-ul transferul de date pentru comanda cu tag-ul „1” are loc în pasul (170). Aceste două pasuri sunt repetate pentru comanda cu tag-ul „0” în pasul (172) și (174).

Protocolul SATA NCQ este are avantaje în comparație protocolul command queuing fiindcă faza de date are mai puține cerințe față de sistem, și aplicațiile soft de pe gază (150) nu au necesitatea de a controla manual transferul de date așa cum se proceda la protocolul command queue. Cu tehnologia NCQ este utilizată prima parte a DMA și echipamentul va verifica tag-ul comenzii, la rândul său va încarca datele către buferul specific corespunzător tag-ului comenzii. Pe de altă parte cu protocolul command queuing, softul trebuie să inițializeze o comandă de servicii pentru a specifica un bufer destinat pentru transferul de date atunci când dispozitivul trimite o indicație către gazdă de a transfera date, care sporește complexitatea și cerințele către sistem la transferul de date.

Oricum dispozitivele ATAPI utilizează alte scheme pentru transmiterea comenzilor către unitățile de disc rigid. Dispozitivele ATA utilizezază registrele de intrare/ieșire pentru a transmite comenzi. Codul comenzii este preluat de către registrul de comenzi ; paramentrii sunt preluați de către restul registrelor. Pentru dispozitivele ATAPI, gazda introduce valoarea 0xA0 în registrul de comenzi pentru a indica faza pachetelor de comenzi, și apoi va utiliza registrul de date pentru transmiterea datelor de 12 octeți pentru comenzile ATAPI. Deci tehnologia curentă NCQ este disponbilă doar pentru unități de disc rigid, și nu pentru dispozitive cu interfața ATAPI cum ar fi unități optice de citire a discurilor CD/DVD precum și alte dispozitive. Întrucât tehnologia NCQ nu este disponibilă pentru unitățile cu interfață ATAPI , doar dispozitivele cu interfața ATA pot beneficia de facilitățile acestei tehnologii.