Aritoni Ovidiu Sisteme de operare 1 Introducere


B. Controllere de dispozitiv



Yüklə 486,94 Kb.
səhifə20/27
tarix12.01.2019
ölçüsü486,94 Kb.
#96236
1   ...   16   17   18   19   20   21   22   23   ...   27

B. Controllere de dispozitiv

De obicei, unitatile I/O includ o componenta mecanica si una electronica. Adesea cele doua componente se pot separa pentru a le conferi un design mai modular si mai general. Componenta electronica se numeste controller de dispozitiv sau adaptor. Pe computerele personale ia adesea forma unei placi cu circuit imprimat si care poate fi introdusa intr-unul din slot-urile existente pe placa de baza. Componenta mecanica o constituie chiar dispozitivul.

Placa de control este de obicei prevazuta cu un conector in care poate fi introdus un cablu care sa faca legatura direct cu dispozitivul. Multe controllere pot sa sustina doua, patru sau chiar opt dispozitive identice. Daca interfata dintre controller si dispozitiv este una standard sau una oficiala asa cum sunt ANSI, IEEE sau ISO sau una inclusa de producator, atunci companiile pot sa realizeze controllere sau dispozitive care sa fie compatibile cu interfata respectiva. De exemplu, multe companii proiecteaza disk drivere care sa fie compatibile cu interfetele de disk controller IDE sau SCSI.

Precizam aceasta diferenta intre controller si dispozitiv deoarece sistemul de operare lucreaza aproape intotdeauna cu controllerul si nu cu dispozitivul. Cele mai multe computere mici utilizeaza doar modelul de bus din figura 3-1 pentru comunicarea dintre procesor si controllere. Frame-urile principale mari folosesc adesea un model diferit, cu mai multe bus-uri si computere specializate pe I/O numite canale I/O care preiau o parte din sarcinile procesorului principal.


Fig. 3-1 Un model de conectare a procesorului, memoriei, controllerelor si dispozitivelor I/O.

Interfata dintre controller si dispozitiv este adesea o interfata de nivel scazut. Un disk de exemplu, poate fi formatat cu 16 sectoare a cate 512 bytes pe fiecare pista . Ceea ce vine efectiv de pe drive este un flux de biti in serie incepand cu un preambul, apoi cei 4096 de biti dintr-un sector si, in final, suma de verificare numita si cod de corectare a erorilor (ECC). Preambulul se scrie atunci cand este formatat disk-ul si contine numarul de cilindru si cel de sector, marimea sectorului si alte date asemanatoare precum si informatiile de sincronizare. Sarcina controller-ului este sa converteasca fluxul serial de biti intr-un bloc de bytes si sa corecteze erorile aparute. De obicei blocul de bytes este initial asamblat bit cu bit intr-un buffer (zona tampon) din interiorul controller-ului. Dupa ce a fost verificat si declarat fara erori poate fi copiat in memoria principala.

Controller-ul pentru un terminal CRT functioneaza tot ca un dispozitiv cu biti in serie si tot la nivel scazut. Acesta citeste bitii existenti in memorie si care contin caractere de afisat si genereaza semnale utilizate pentru modularea fascicolului CRT pentru ca acesta sa scrie pe ecran. Tot controller-ul este cel care genereaza semnale care determina fascicolul CRT sa se retraga orizontal dupa ce a terminat o linie de scanare si o retragere verticala dupa ce intregul ecran a fost scanat. Daca nu ar fi existat controller-ul CRT programatorul sistemului de operare ar fi trebuit sa programeze explicit scanarea analoaga a tubului. Astfel, sistemul de operare ii furnizeaza controller-ului cativa parametrii cum ar fi numarul de caractere per linie si numarul de linii per ecran, si lasa controller-ul sa conduca efectiv fascicolul.

Fiecare controller are cativa registri care sunt utilizati pentru comunicarea cu procesorul. Pe unele computere acesti registri sunt integrati in spatiul alocat adresei memoriei. Aceasta schema se numeste schema de memorie I/O. 680×0 de exemplu, utilizeaza aceasta metoda. Alte computere folosesc spatiu special pentru adresa I/O, fiecare controller avand alocata o portiune din acest spatiu. Repartizarea adresei I/O dispozitivelor se face de catre logica decodarii bus-urilor asociata cu controller-ul. Unii producatori de asa numitul PC IBM compatibil folosesc adrese I/O diferite de cele folosite de IBM. In plus fata de porturile I/O, multe controlere folosesc intreruperi pentru a-I comunica procesorului momentul in care sunt pregatite scrierea sau citirea registrilor. O intrerupere este in primul rand un eveniment electric. O Cerere de Intrerupere a liniei este o intrare fizica in cipul de intrerupere al controll-erului. Numarul unor astfel de intrari este limitat; PC din clasa Pentium au doar 15 dispozitive disponibile pentru I/O. Unele controller-e sunt conectate pe placa de baza prin disopzitive hard ca la IBM PC. In cazul unui controller care se conecteaza in partea din spate, comutatoarele sau jumper dispozitivului controller-ului pot fi folositi, cate odata pentru a selecta IRQ pe care-l va folosi dispozitivul pentru a evita conflictele (desi in cazul unor placi plug’n play IRQ poate fi setat din software). Cipul controller-ului de intreruperi monitorizeaza fiecare intrare IRQ la vector de intrerupere care localizeaza software-ul corespunzator de intrerupere a sarcinii. Figura 3-2 arata adresele I/O, intreruperile de hardware si vectorii de intrerupere alocati unor controlere de pe un IBM PC de exemplu. MINIX utilizeaza aceleasi intreruperi hardware, dar vectorii de intrupere MINIX sunt diferiti de cei aratati aici pentru ms-dos.

Sistemul de operare executa I/O scriind comenzi in registrii controller-ului. Controller-ul floppy-disk-ului IBM PC de exemplu accepta 15 comenzi diferite, cum sunt: CITESTE, SCRIE, CAUTA, FORMATEAZA si RECALIBREAZA. Multe dintre comenzi au parametrii, care sunt de asemenea incarcati in registrii controller-ului. Atunci cand o comanda a fost acceptata procesorul poate sa lase controller-ul sincur si sa inceapa alta sarcina. Atunci cand comanda a fost executat, controller-ul executa o intrerupere pentru a permite sistemului de operare sa preia controlul asupra procesorului si sa testeze rezultatele operatiei. Procesorul obtine rezultatele si statulul dispozitivului citind unul sau mai multi bytes de informatie din registrii controller-ului.


fig 3-2.cateva exemple de controller-e, adresele lor I/O, liniile de intrerupere hardware si vectorii lor de intrerupere pe un PC obisnuit care ruleaza in MS-DOS




Yüklə 486,94 Kb.

Dostları ilə paylaş:
1   ...   16   17   18   19   20   21   22   23   ...   27




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin