13,371 matches
-
O ce are un circuit de interfață de nivel înalt cu procesorul este numit canal I/ O, în timp ce un modul simplu este numit controler I/O. 7.4. Metode de transfer a datelor Datele pot fi transferate între procesor și periferic în 4 moduri: -transferul datelor prin program - inițiat și controlat de către procesor -transferul datelor prin întreruperi - controlat de procesor după ce a fost inițiat de către periferic -transferul datelor prin acces direct la memorie (DMA) - controlat de un dispozitiv specializat după ce a
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
O. 7.4. Metode de transfer a datelor Datele pot fi transferate între procesor și periferic în 4 moduri: -transferul datelor prin program - inițiat și controlat de către procesor -transferul datelor prin întreruperi - controlat de procesor după ce a fost inițiat de către periferic -transferul datelor prin acces direct la memorie (DMA) - controlat de un dispozitiv specializat după ce a fost inițiat de periferic. -transferul datelor prin canale I/ O - inițiată de către procesor și executată de alt dispozitiv. 7.4.1. Transferul datelor prin program
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
-transferul datelor prin program - inițiat și controlat de către procesor -transferul datelor prin întreruperi - controlat de procesor după ce a fost inițiat de către periferic -transferul datelor prin acces direct la memorie (DMA) - controlat de un dispozitiv specializat după ce a fost inițiat de periferic. -transferul datelor prin canale I/ O - inițiată de către procesor și executată de alt dispozitiv. 7.4.1. Transferul datelor prin program Acest gen de transfer este inițiat de către procesor întotdeauna și controlat prin program și se caracterizează prin simplitate. Este
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
de aplicația în cauză. Există două modalități de transfer a datelor prin program: transferul direct și transferul prin interogare. Transferul direct presupune doar ca procesorul să scrie sau să citească din portul respectiv, fără a fi necesar a verifica dacă perifericul a încheiat operațiunea precedentă. Accesul poate fi realizat doar la început în timpul inițializării unui periferic, sau poate fi realizat în mod repetat în timpul rulării programului (în faza de proiectare și testare a unor aplicații). După cum îi spune și numele transferul
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
și transferul prin interogare. Transferul direct presupune doar ca procesorul să scrie sau să citească din portul respectiv, fără a fi necesar a verifica dacă perifericul a încheiat operațiunea precedentă. Accesul poate fi realizat doar la început în timpul inițializării unui periferic, sau poate fi realizat în mod repetat în timpul rulării programului (în faza de proiectare și testare a unor aplicații). După cum îi spune și numele transferul prin interogare presupune interogarea perifericului (polling) de către procesor pentru a afla dacă acesta poate primi
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
Accesul poate fi realizat doar la început în timpul inițializării unui periferic, sau poate fi realizat în mod repetat în timpul rulării programului (în faza de proiectare și testare a unor aplicații). După cum îi spune și numele transferul prin interogare presupune interogarea perifericului (polling) de către procesor pentru a afla dacă acesta poate primi sau dacă are disponibile date. Interogarea se face după o schemă prevăzută prin program și presupune testarea stării perifericului (citirea informației de stare din registru de stare). Registrul de stare
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
aplicații). După cum îi spune și numele transferul prin interogare presupune interogarea perifericului (polling) de către procesor pentru a afla dacă acesta poate primi sau dacă are disponibile date. Interogarea se face după o schemă prevăzută prin program și presupune testarea stării perifericului (citirea informației de stare din registru de stare). Registrul de stare conține mai multe circuite basculante bistabile (fanioane) care sunt modificate de către periferic în conformitate cu starea sa. Funcție de valoarea citită, procesorul poate urma un segment de program care să reia interogarea
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
dacă are disponibile date. Interogarea se face după o schemă prevăzută prin program și presupune testarea stării perifericului (citirea informației de stare din registru de stare). Registrul de stare conține mai multe circuite basculante bistabile (fanioane) care sunt modificate de către periferic în conformitate cu starea sa. Funcție de valoarea citită, procesorul poate urma un segment de program care să reia interogarea (dacă dispozitivul nu este pregătit) sau poate continua cu transferul datelor dacă acesta este pregătit. La adresa 279h este situat registrul de date. Programul
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
sa. Funcție de valoarea citită, procesorul poate urma un segment de program care să reia interogarea (dacă dispozitivul nu este pregătit) sau poate continua cu transferul datelor dacă acesta este pregătit. La adresa 279h este situat registrul de date. Programul va comanda perifericul să transmită cîteva cuvinte prin intermediul acestui periferic. În acest scop, trebuie înscris câte un cuvânt în registrul de date, pornită transmisia și apoi testat perifericul pentru a vedea dacă a realizat transmisia până se obține un răspuns afirmativ, după care
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
un segment de program care să reia interogarea (dacă dispozitivul nu este pregătit) sau poate continua cu transferul datelor dacă acesta este pregătit. La adresa 279h este situat registrul de date. Programul va comanda perifericul să transmită cîteva cuvinte prin intermediul acestui periferic. În acest scop, trebuie înscris câte un cuvânt în registrul de date, pornită transmisia și apoi testat perifericul pentru a vedea dacă a realizat transmisia până se obține un răspuns afirmativ, după care se reia bucla. Transferul datelor prin întreruperi
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
datelor dacă acesta este pregătit. La adresa 279h este situat registrul de date. Programul va comanda perifericul să transmită cîteva cuvinte prin intermediul acestui periferic. În acest scop, trebuie înscris câte un cuvânt în registrul de date, pornită transmisia și apoi testat perifericul pentru a vedea dacă a realizat transmisia până se obține un răspuns afirmativ, după care se reia bucla. Transferul datelor prin întreruperi Sistemul de întreruperi al unui procesor permite întreruperea activității curente a procesorului pentru efetuarea unor operații asincrone generate
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
Datele care trebuie salvate sunt: -adresa de revenire (contorul de program înainte de a efectua saltul la rutina de întrerupere; -indicatorii de condiții și stare ai procesorului; -regiștrii interni; Avantajul acestei metode este acela că nu se pierde timp cu interogarea perifericului. Buclarea programului de mai sus se poate face și de sute sau mii de ori pînă perifericul execută task-ul. De exemplu o interfață serială care lucrează cu rata de 9600 baud (cca 0.1 ms) necesită 1.2 ms pentru
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
de întrerupere; -indicatorii de condiții și stare ai procesorului; -regiștrii interni; Avantajul acestei metode este acela că nu se pierde timp cu interogarea perifericului. Buclarea programului de mai sus se poate face și de sute sau mii de ori pînă perifericul execută task-ul. De exemplu o interfață serială care lucrează cu rata de 9600 baud (cca 0.1 ms) necesită 1.2 ms pentru a transmite un cuvânt - 1 bit de start, 8 biți de date, un bit de paritate și
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
bit de paritate și 2 biți de stop, iar un procesor RISC cu frecvența de tact de 1MHz execută o instrucțiune pe tact. Asta înseamnă execuția a 1200 de instrucțiuni pe durata transmisiei. Cine poate genera întreruperea? În principiu orice periferic conectat la sistem poate genera o întrerupere, dacă este prevăzut cu această facilitate, componente hardware cu rol de supraveghere a funcționării sistemului (a tensiunii de intrare, temperatra procesorului) sau evenimente interne (instrucțiuni inexistente). Există 2 tipuri de întreruperi: -întreruperi nevectorizate
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
în alte cazuri reprezintă o adresă de memorie unde este memorată adresa rutinei de întrerupere. Unitatea centrală poate iniția un transfer de date, trimițând o comandă către circuitul de interfață, după care continuă execuția programului. Circuitul de interfață acționează asupra perifericului și va întrerupe procesorul după ce data a fost transmisă către acesta sau când o data este disponibilă în registrul de date. În figura următoare este prezentată o schemă logică a transferului prin întreruperi. După cum se observă, programul principal este întrerupt imediat
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
următoare este prezentată o schemă logică a transferului prin întreruperi. După cum se observă, programul principal este întrerupt imediat după terminarea execuției instrucțiunii în cursul căreia a apărut întreruperea. Execuția continuă cu rutina de întrerupere: -se salvează regiștrii procesorului -se testează perifericul, dacă acesta nu este gata se generează o eroare și se iese din rutină, -se citește data de la periferic, -se verifică dacă mai sunt de preluat date și se revine la programul principal dacă nu mai sunt date, -se dă
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
terminarea execuției instrucțiunii în cursul căreia a apărut întreruperea. Execuția continuă cu rutina de întrerupere: -se salvează regiștrii procesorului -se testează perifericul, dacă acesta nu este gata se generează o eroare și se iese din rutină, -se citește data de la periferic, -se verifică dacă mai sunt de preluat date și se revine la programul principal dacă nu mai sunt date, -se dă o nouă comandă acestuia dacă mai sunt date sau se revine la programul principal. Programatorul trebuie să aibă grijă
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
fi controlată de către procesor (prin software sau prin hardware), de către un circuit controler de întreruperi sau prin hardware, dispozitivele fiind conectate într-un lanț de priorități. Arbitrarea prin software necesită un hardware minimal (de exemplu un registru în care fiecărui periferic întreruperi îi corespunde un bit care va fi setat atunci când acesta generează o cerere de întrerupere. Procesorul citește registrul și în funcție de starea bților decide care rutină de întrerupere va fi executată. Dacă sunt activați mai mulți biți simultan, atunci tot
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
prezintă o ieșire INT cu colector (drenă) în gol care permite legarea acestora împreună la intrarea INT a procesorului. Această linie se leagă la tensiunea de alimentare printr-o rezistență realizând funcția SAU cablat. Prioritatea cea mai mare o are perifericul ce mai apropiat de procesor pe linia INT ACK (Interrupt Acknowledge), cel mai îndepărtat având prioritatea cea mai mică. Acestea sunt fixe, neputând fi modificate datorită cablării hardware. Circuituk (CTR INT) furnizează procesorului vectorul de întrerupere. La activarea unei cereri
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
transferate blocuri mari de date (imagini, fișiere), procesorul ar trebui întrerupt pentru fiecare octet la utilizarea întreruperilor. Transferul prin DMA este o soluție care rezolvă aceste neajunsuri. După cum îi spune și numele, transferul se realizează fără intervenția procesorului, direct între periferic și memorie, întregul proces fiind coordonat de către un circuit specializat. Acest circuit se numește controler DMA. În figura 7.8 este prezentată structura unui sistem de calcul cu posibilități DMA. Inițierea transferului se face de către periferic. Cererea este adresată controlerului
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
intervenția procesorului, direct între periferic și memorie, întregul proces fiind coordonat de către un circuit specializat. Acest circuit se numește controler DMA. În figura 7.8 este prezentată structura unui sistem de calcul cu posibilități DMA. Inițierea transferului se face de către periferic. Cererea este adresată controlerului (Cerere DMA), iar acesta solicită la rândul său procesorului accesul și controlul magistralelor sistemului (CM - cerere magistrale - „bus request”). Sistem de calcul cu controler DMA Procesorul cedează magistralele cu o mică întârziere (sfârșitul ciclului de execuție
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
controler DMA Procesorul cedează magistralele cu o mică întârziere (sfârșitul ciclului de execuție a instrucțiunii în curs) trecându-le în starea de înaltă impedanță (HZ) și activează semnalul MA - magistrale acordate - „bus granted”. Odată magistralele cedate, controlerul DMA anunță circuitul periferic că deține magistralele (Acceptare DMA). Apoi furnizează adresele pe magistrala de adrese și ativează semnalele de scriere/citire (IOR/IOW și WR/RD) în/din memorie/periferic funcție de sensul transferului. Dispozitivul sursă pune datele pe magistrala de date, iar dispozitivul
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
semnalul MA - magistrale acordate - „bus granted”. Odată magistralele cedate, controlerul DMA anunță circuitul periferic că deține magistralele (Acceptare DMA). Apoi furnizează adresele pe magistrala de adrese și ativează semnalele de scriere/citire (IOR/IOW și WR/RD) în/din memorie/periferic funcție de sensul transferului. Dispozitivul sursă pune datele pe magistrala de date, iar dispozitivul destinație le primește. Un controler DMA este în principiu un periferic pentru procesor și este programat să realizeze o secvență de transfer de date în locul procesorului. Un
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
de adrese și ativează semnalele de scriere/citire (IOR/IOW și WR/RD) în/din memorie/periferic funcție de sensul transferului. Dispozitivul sursă pune datele pe magistrala de date, iar dispozitivul destinație le primește. Un controler DMA este în principiu un periferic pentru procesor și este programat să realizeze o secvență de transfer de date în locul procesorului. Un astfel de circuit are de regulă mai multe, așa numite, canale DMA (DMA0, DMA1,...DMAk), fiecare putând fi programate să realizeze un transfer de
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]
-
mai sunt octeți de transferat (CerDMA activ), atunci CM se va activa din nou și după activarea semnalului MA (magistrale acordate - Bus Granted, Hold Acknowledge) se va mai transfera un octet. -Modul de transfer în bloc - transferul este inițiat de către periferic odată cu activarea semnalului CerDMA, care trebuie menținut activ doar până la răspunsul controlerului cu AprobDMA activ. Datele sunt transferate una câte una până contorul de cuvinte ajunge la zero (condiție TC) sau până se comandă un proces EOP extern (programat de către
Arhitectura Calculatoarelor by Cristian Zet () [Corola-publishinghouse/Science/329_a_567]