Arhitectura
Calculatoarelor
Cătălina Mancaș Dan Mancaș
[email protected] [email protected]
Universitatea din Craiova
Facultatea de Automatică, Calculatoare și Electronică
Catedra de Ingineria Calculatoarelor și Comunicații
Concepte fundamentale Structura generală a unui CPU
Tehnici de echilibrare a vitezei de funcţionare CPU – MP
Echipamente periferice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Data trecută…
Structura de bază a unui calculator digital;
Arhitectura von Neumann (5 unități);
Modul de funcționare;
Ciclul instrucțiune.
2
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Structura de bază a unui calculator
3
Flux de date
Comenzi sau linii de control
Informatii de stare sau linii de stare
Flux de date alternativ
Flux de instructiuni
CPU
Date de
intrare si
programe
Unitatea
Logico-
Aritmeticã
(ALU)
Unitatea de
Intrare
(UI)
Unitatea de
Iesire
(UO)
Unitatea de
Control
(UC)
Unitatea de
Memorie
(UM)
Date de iesire
sau rezultate
DMA DMA
DateInstructiuni
Flux de date
Flux de date alternativ
Flux de instrucțiuni
Linii de control
Linii de stare
= ALU + UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Astăzi...
Structura generală a unui CPU;
Tehnici de echilibrare a vitezei de funcționare CPU-MP;
Organizarea avansată a comunicării CPU:
– echipamente periferice;
– unități I/O;
– procesoare I/O.
4
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Structura generală a unui CPU
5
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Structura de bază a unui calculator
6
Flux de date
Comenzi sau linii de control
Informatii de stare sau linii de stare
Flux de date alternativ
Flux de instructiuni
CPU
Date de
intrare si
programe
Unitatea
Logico-
Aritmeticã
(ALU)
Unitatea de
Intrare
(UI)
Unitatea de
Iesire
(UO)
Unitatea de
Control
(UC)
Unitatea de
Memorie
(UM)
Date de iesire
sau rezultate
DMA DMA
DateInstructiuni
Flux de date
Flux de date alternativ
Flux de instrucțiuni
Linii de control
Linii de stare
= ALU + UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
CPU
CPU = ALU + UC
Procesor;
Principala funcţie: să execute secvenţe de instrucţiuni
programul stocat în memoria principală (MP);
Interpretor pentru setul de instrucţiuni de la nivelul cod maşină;
Pentru execuţia unui program CPU realizează următoarele:
– Transferă instrucţiunile şi datele din MP în regiștrii CPU;
– Execută instrucţiunile în mod secvenţial;
– Transferă rezultatele din regiștrii CPU în MP.
=> flux de instrucţiuni și de date între MP şi regiştri generali din CPU care formează memoria locală (ML).
7
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Regiștrii CPU
Registrul de instrucţiune (RI):
– UC;
– înregistrează instrucțiunea adusă din UM.
Registrul de funcţie (RF):
– UC;
– înregistrează OPCODE spre a fi decodificat.
Registrul de adresă (RA):
– UC;
– înregistrează ADRESELE spre a fi aduși opeanzii.
Registrul acumulator (ACC):
– ALU;
– memorează un operand;
– înregistrează rezultatul unei operații logice sau aritmetice.
8
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Regiștrii CPU
Registrul operand (Reg. Op.):
– ALU;
– memorează temporar operanzii;
– registru tampon (buffer register).
Registrul de stare sau de flag-uri (Reg. Stare):
– reprezintă diferite caracteristici ale rezultatului (semn, transport, paritate, zero, transport auxiliar etc).
Numărătorul de program (PC):
– UC;
– pointer de instrucţiuni, program counter;
– conţine întotdeauna adresa următoarei instrucţiuni de executat.
9
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
CPU
Trebuie să comunice cu toate unităţile din calculatorul digital:
– unitatea de memorie (UM);
– unităţile de intrare-ieşire (UI/O).
Input: instrucţiuni, date, semnale de stare, cereri de întrerupere;
Output: adrese, date şi semnale de control; => Magistrala sistem.
Componentă: interfaţa cu magistrala sistem:
– care este un controller de magistrală;
– conţine drivere, buffere şi selectoare de direcţie.
10
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
1) Cu exteriorul:
Unitatea Buffer/Driver:
– interfața cu magistrala sistem;
– conţine buffere şi drivere de comunicaţie.
2) Internă:
Între blocurile CPU: magistrale interne
– de adresă;
– de date;
– de control;
– de stare.
11
Comunicarea la nivelul CPU
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Structura generală a unui CPU
12
UC
Dispozitiv de procesare
R1
R2
R2
k
DEC
k/2k
Registre generale
Reg. Stare
ACC
Reg. Op.
ALU
Bloc de Procesare
Bloc
Secventiator
de Control
PC
Decodificator
OPCODE
RF
RI
RA
Calcul AE
Generator
de tact
incr.
Operatie
decodificata
Adresa
Operand
Adresa
Instructiune
Bloc de
Instructiune
Unitate
Buffer/DriverMagistrala
Sistem
Bloc de
Adresa
Magistrala Interna de Adrese
Magistrala Interna de Date
Linii interne de Stare
Linii interne de Control
Linii de
Control
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Conţine:
– un set de regiștri generali;
– un bloc de procesare.
Scop: păstrarea rezultatelor parţiale şi a operanzilor;
Regiștri generali memoria locală;
Blocul de procesare:
– un dispozitiv de procesare: ce implementează operaţii logice şi aritmetice;
– registrul Acumulator (ACC);
– registrul Operand (buffer);
– registrul de Stare sau de Flaguri (Reg. Stare).
13
ALU
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
3 blocuri funcţionale:
1) Blocul de Instrucţiune;
2) Blocul de Adresă;
3) Blocul Secvenţiator de control.
15
UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Aceste blocuri trebuie să satisfacă următoarele operaţii:
– extragerea instrucţiunii curente din memorie;
– transferul instrucţiunii în RI;
– stocarea câmpurilor din instrucţiune (OPCODE şi ADRESA) în RF şi respectiv RA;
– decodificarea OPCODE-ului şi generarea semnalelor de control pe liniile de control;
– determinarea adresei următoarei instrucţiuni;
– determinarea adresei efective (AE) a operandului;
– transferarea operandului în ALU;
– realizarea operaţiei date de OPCODE;
– stocarea rezultatului.
17
UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Blocul de instrucţiune :
– numărătorul de program (PC);
– registrul de instrucţiune (RI);
– registrul de funcţie (RF);
– decodificatorul de OPCODE.
PC:
– pointer la instrucţiunea următoare de executat;
– registru cu facilitate de incrementare şi încărcare paralelă.
Comanda de incrementare: blocul secvenţiator de control;
Conţinutul PC: faza FETCH, pentru citirea şi extragerea instrucţiunii ce urmează a fi executată de către CPU;
Instrucţiunea curentă de executat este stocată în RI, iar câmpul OPCODE al acesteia se transferă în RF, al cărui conţinut va fi decodificat (interpretat) de un decodificator al funcţiei ce permite identificarea funcţiei.
18
UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Blocul de adresă:
– registrul de adresă (RA): stocarea adresei logice (AL) conţinută în câmpul de ADRESA al instrucţiunii de executat;
– un dispozitiv de calcul al adresei efective (AE) a operandului, care implementează un mecanism de calcul al AE din AL.
Blocul secvenţiator de control: un dispozitiv secvenţial complex care:
– generează toate comenzile către toate celelalte unităţi ale calculatorului;
– inclusiv către blocurile din CPU;
– în vederea realizării funcţiei instrucţiunii curente;
– primeşte informaţii de stare de la toate blocurile.
19
UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Memoria: structură ierarhică;
memoria secundară (externă);
– programele şi datele care nu se prelucrează curent de CPU;
– offline;
– capacitate mare;
– timp de acces mare şi mediu.
memoria principală (operativă);
– conţine programele şi datele prelucrate curent de CPU;
– online;
– se extrag instrucţiunile şi datele curente ce se executa în CPU.
memoria locală;
– este formată dintr-un set de regiștri plasați în CPU;
– cea mai rapidă memorie din ierarhie.
20
Memoria
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 21
MS
Nivel III
MP Nivel II
ML Nivel I
CPU
Memoria
Viteza
crește
Capacitatea
crește
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
∃ diferenţe substanţiale între lărgimea căilor de comunicaţie între CPU diferitele nivele de memorie;
=> multe probleme proiectanţilor de calculatoare pentru creşterea vitezei de acces la informaţiei;
Calculatoarele coordonează fluxul informaţional între diferitele nivele de memorie în mod automat;
Principiu:
Informaţia ce este accesată mai rar este menţinută la nivelul memoriilor mai lente şi de capacitate mare, în timp ce informaţia ce este accesată mai frecvent este ţinută în nivelele de memorie mai rapide şi de capacităţi mai mici.
Esențial: viteza de prelucrare în CPU să fie cât mai apropiată de cea a disponibilităţii informaţiei (MO);
Conflict: viteza MO << viteza CPU
22
Viteza CPU vs. viteza memoriei
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Tehnici de echilibrare a vitezei de funcționare CPU-MP
23
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Pentru creşterea productivităţii calculatoarelor trebuie impuse echilibrări ale raportului performanțelor între MP şi CPU;
Aceste metode sunt grupate în 3 categorii:
1) Lărgirea magistralei de date;
2) Creşterea numărului de nivele în ierarhia memoriei;
3) Preîncărcarea instrucţiunilor (prefetching).
24
Tehnici
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
MP: – Se extrag datele și instrucțiunile; – Sunt depozitate rezultatele instrucțiunilor.
Comunicarea CPU-MP: magistrala de date;
» factor cheie pentru calculator.
În arhitectura von Neumann:
» magistrala de date = punctul îngust.
Principiul von Neumann:
CPU extrage, prelucrează și execută o singură instrucțiune odată!
=> limitări de natură arhitecturală!
25
Lărgirea magistralei de date
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Limitări:
– diferența de viteză;
– de natură arhitecturală.
26
Lărgirea magistralei de date
MP
Magistrala de date
CPU
<-1 instrucțiune
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Soluție: – mărirea magistralei de date care leagă MP de CPU cu scopul
de a extrage mai multe instrucțiuni odată!
=> s-ar soluționa problema arhitecturală!
27
Lărgirea magistralei de date
MP
Magistrala de date
CPU
<-mai multe instrucțiuni
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Modularizarea MP!
Pentru a citi mai multe instrucţiuni sau date simultan trebuie accesate mai multe module fiecare cu ciclu propriu de citire;
S-au propus diferite structuri de memorie cu magistrale de date mai largi;
Problemă: funcţionarea procedurală a CPU
executarea secvenţială a instrucţiunilor!
Soluție: stabilirea corectă a grupului de instrucțiuni extrase simultan din mai multe module ale memoriei!
28
Lărgirea magistralei de date
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Un răspuns natural: setul de instrucţiuni extrase şi care se depun pe magistrala lărgită să constituie o secvenţă de instrucţiuni din program şi care să se execute una după alta;
=> MP ar trebui divizată în mai multe blocuri conectate paralel (M1, M2,..., Mn), astfel încât prin citirea simultană a celor n blocuri să se formeze conţinutul pe magistrala de memorie lărgită.
29
Lărgirea magistralei de date
M1
M2
Mn
.
.
.
.
.
.
MP
Magistrala de memorie extinsă
m
.
.
.
.
.
m
m
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 30
Lărgirea magistralei de date
În organizarea originală:
– un singur bloc de memorie cu n instrucţiuni sau date;
– se extrăgea prin citirea a n locaţii consecutive din memorie.
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 31
Lărgirea magistralei de date
În noua structură:
– cele n elemente (instrucţiuni sau date) se înscriu în locaţiile de la aceeaşi adresă din toate cele n blocuri de memorie;
– printr-un singur acces se extrage un cuvânt de n*m biţi, care se depune pe magistrala lărgită;
– întreg cuvântul de n*m biţi se înscrie în RI din CPU;
– UC extrage pe rând câte o instrucţiune din RI.
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Eficienţa:
– Mare: întreg setul de n instrucţiuni cuprins în biţi să fie folosit integral de CPU.
– Scăzută: instrucţiuni de salt -> la efectuarea saltului se va citi o altă locaţie din grupul celor n blocuri de memorie.
Concluzie: trebuie considerat sau gândit un model de predicţie a secvenţelor de instrucţiuni.
Dacă există mai multe ramificări în program (salturi sau apeluri), atunci eficienţa este scăzută.
32
Lărgirea magistralei de date
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Idee: introducerea unui nivel suplimentar între MP şi CPU;
MSO (Memoria Super Operativă Memoria Cache);
-> capacitate mică;
-> timp de acces foarte mic;
=> viteza de lucru a MSO comparabilă cu viteza CPU.
33
Creşterea numărului de nivele în ierarhia memoriei
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 34
Creşterea numărului de nivele în ierarhia memoriei
Date de
intrare si
programe
Unitatea
Logico-
Aritmeticã
(ALU)
Unitatea de
Intrare
(UI)
Unitatea de
Iesire
(UO)
Unitatea de
Control
(UC)
Memorie
Superoperativa
(MSO)
CPU
Date de iesire
sau rezultate
DMA DMA
DateInstructiuni
Memorie
Operativa
(MO)
Memorie
Secundara
(MS)
Date
Date
Unitatea Centrala
MP
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Inițial: memoria Cache este goală;
CPU apelează prima instrucţiune (instrucţiunea de start);
UC extrage un bloc de date din MP:
– Conţine instrucţiunea de start;
UC încarcă în memoria cache întreg blocul de instrucţiuni sau date legate de prima instrucţiune;
CPU va găsi instrucţiunile şi datele în memoria cache de unde le va extrage cu viteză foarte mare de acces care este compatibilă cu viteza de execuţie a CPU;
Blocul de date extras conţine grupul de instrucţiuni apropiat (înrudit) cu instrucţiunea de start;
35
Creşterea numărului de nivele în ierarhia memoriei
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Grup înrudit: după execuţia instrucţiunii iniţiale este foarte probabil ca următoarele instrucţiuni de executat să facă parte din acel bloc.
Eşec: va trebui adus în MSO un nou bloc din MO.
Strategia de proiectare a memoriei cache: transfer MO - MSO cât mai rar posibil;
Extragerea din MO:
– operaţie de citire a memoriei;
– consumatoare de timp.
Transferurile MO - MSO sunt sub controlul unui mecanism hardware, transparent pentru utilizator.
36
Creşterea numărului de nivele în ierarhia memoriei
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Ciclul instrucţiune:
1) faza FETCH;
2) faza EXECUTE.
Executarea unui program: executarea unui lanţ de instrucţiuni => o secvenţă de FETCH-EXECUTE;
37
Preîncărcarea instrucţiunilor (PREFETCHING)
FETCH EXECUTE
Ciclu instrucţiune
Ciclu Instrucţiune Ciclu Instrucţiune Ciclu Instrucţiune
Timp
Instr. 1
Instr. 2
Instr. 3
…..
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
FETCH:
– extragerea instrucţiunii curente din MP;
– decodificarea acesteia.
EXECUTE:
– extragerea operandului (datei);
– realizarea funcţiei (executarea instrucţiunii).
Metoda preîncărcării:
– suprapunerea temporală a funcţionării CPU şi a memoriei;
– executarea instrucţiunii curente (CPU) || UC extrage din memorie instrucţiunea următoare;
– paralelism temporal.
Suprapunerea fazei EXECUTE de la intrucţiunea curentă cu faza FETCH de la instrucţiunea următoare.
38
Preîncărcarea instrucţiunilor (PREFETCHING)
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Metoda preîncărcării:
Suprapunerea fazei EXECUTE de la intrucţiunea curentă cu faza FETCH de la instrucţiunea următoare.
39
Preîncărcarea instrucţiunilor (PREFETCHING)
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Paralelizare în timp: scădere a timpului de execuţie a programului;
Mecanism simplu şi foarte eficient pentru echilibrarea vitezei CPU şi memorie;
Frecvent folosit în proiectarea UC;
Se poate rafina în mai multe subfaze a.î. mai multe instrucţiuni să se afle în diferte etape de prelucrare;
Crește performanţa globală;
Cel mai ieftin;
Două unităţi din organizarea calculatorului digital (MP & CPU) lucrează în paralel;
Celelalte două metode sunt mai scumpe pentru că necesită resurse noi.
40
Preîncărcarea instrucţiunilor (PREFETCHING)
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Un calculator performant: zeci/sute de dispozitive periferice;
Conectate între ele prin unităţi de I/O;
Unitate I/O:
– controlează dispozitivele periferice;
– comunică cu magistrala de sistem.
Exemple de echipamente periferice:
– tastatură;
– mouse;
– joystick;
– monitor;
– imprimantă;
– scanner;
– componentele care formează MS (hard-disk, floppy-disk, CD,
DVD, etc).
42
Echipamente periferice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Unități I/O
43
Flux de date
Comenzi sau linii de control
Informatii de stare sau linii de stare
Flux de date alternativ
Flux de instructiuni
CPU
Date de
intrare si
programe
Unitatea
Logico-
Aritmeticã
(ALU)
Unitatea de
Intrare
(UI)
Unitatea de
Iesire
(UO)
Unitatea de
Control
(UC)
Unitatea de
Memorie
(UM)
Date de iesire
sau rezultate
DMA DMA
DateInstructiuni
Flux de date
Flux de date alternativ
Flux de instrucțiuni
Linii de control
Linii de stare
= ALU + UC
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Dispozitivele periferice prezintă mari diferenţe sub două aspecte:
– formă şi funcţie – folosesc medii diferite, principii de funcţionare diferite şi un set diferit de informaţii de cotrol.
– viteză de operare – au timp de acces diferit.
Resurse principale ale calculatorului;
Pot fi împărţite între mai mulţi utilizatori;
Pot fi solicitate de mai multe procese;
Reguli de servire;
Echipamentele periferice + unităţile de I/O (sau interfeţe de periferice) = arhitectura de I/O a unui sistem de calcul.
44
Echipamente periferice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Orice dispozitiv periferic are următoarea structură:
– Semnale de control: determină funcţia pe care o va executa dispozitivul;
– Semnale de stare: indică starea dispozitivului;
– Magistrala de date: un grup de linii paralele pe care circulă date (biţi) care intră sau ies din dispozitiv;
– Logica de control: asigură funcţia dispozitivului în concordanţă cu comenzile emise de U I/O şi cu natura sau tipul dispozitivului periferic;
– Traductorul: asigură conversia semnalelor între diverse tipuri de energie;
– Buffer-ul: care se asociază cu traductorul pentru a stoca temporar date care se transferă între U I/O şi mediul extern.
45
Echipamente periferice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Se conectează la magistrala sistem;
Controlează dispozitivele periferice;
O reuniune de conectori şi de cabluri care leagă dispozitivele periferice;
Conţin logica de efectuare a funcţiei de comutaţie între dispozitivele periferice şi magistrala de sistem;
Trebuie să:
– interfaţeze cu CPU şi MP şi cu unul sau mai multe dispozitive periferice;
– asigure comunicaţia cu CPU, cu dispozitivele periferice;
– asigure memorarea temporară a datelor;
– asigure partea de control şi de sincronizare;
– să rezolve cazurile de detecţie a erorilor.
47
Unități I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 48
Unități I/O
Linii de Adresa
Unitate I/O
Linii de Date
Linii de Control
Magistrala de
Sistem
P1 P2 PnLinii catre dispozitive perifierice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Descrierea transferului de date între un dispozitiv periferic şi CPU este următoarea:
1) CPU interoghează unitatea de I/O pentru a testa starea dispozitivului periferic;
2) Unitatea de I/O returnează la CPU starea dispozitivului;
3) Dacă dispozitivul este operaţional şi pregătit pentru a transmite, atunci CPU emite o comandă de transfer de date către unitatea de I/O;
4) Unitatea de I/O execută comanda, obţine data de la dispozitivul periferic şi o aduce în Unitatea I/O;
5) Data din Unitatea I/O se transferă prin magistrala sistem la CPU.
49
Transferul de date CPU-periferic via U I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 50
Structura Unității I/O
Registre de date
Registre de
Stare/Control
Linii de
date
Logica I/O
Linii de Adresa
Linii de Control
Interfata cu
disp. periferic
Interfata cu
disp. periferic
Date
Stare
Control
Date
Stare
Control
CPU Disp.
periferice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Orice unitate de I/O are o adresă unică => adresă de unitate I/O;
Dacă la o U I/O se leagă mai multe dispozitive periferice, atunci fiecărui dispozitiv i se alocă o adresă;
Datele transferate către sau dinspre U I/O sunt memorate temporar în U I/O: regiștri de date => memoria locală a U I/O;
Regiștri de stare: furnizează informaţia de stare;
– uneori folosit şi ca registru de control, în care CPU trimite
informaţia detaliată pentru control.
Comenzile către U I/O emise de CPU sunt componente ale
magistralei de control din cadrul magistralei sistem.
51
Structura Unității I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
U I/O şi CPU comunică între ele prin:
– comenzi de control: magistrala sistem;
– schimb de date: realizat prin magistrala de date;
– raportarea de stare: deoarece perifericele sunt lente este
important de a informa CPU de starea unităţilor de I/O (ex.
BUSY sau READY);
– recunoaşterea adresei: fiecare dispozitiv trebuie să aibă o
adresă unică => U I/O trebuie să recunoască această adresă
unică pentru fiecare periferic.
52
Comunicarea U I/O - CPU
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Transferurile de date: CPU - dispozitive periferice;
3 moduri:
1) transfer programat I/O;
2) transfer iniţiat prin întrerupere;
3) acces direct la memorie (DMA).
53
Moduri de transfer CPU - Periferice
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Rezultatul instrucţiunilor de I/O care fac parte din programul în execuţie;
Fiecare transfer este iniţiat de o instrucţiune de program;
Fiecare transfer se face:
– între un registru CPU şi un dispozitiv periferic, sau
– între un registru CPU şi memorie.
Cere monitorizarea permanentă a dispozitivelor periferice de către CPU, pentru a determina când se termină un trasfer;
CPU rămâne într-o buclă de program până ce unitatea I/O indică dacă este READY;
Mare consumator de timp: ţine CPU blocat într-un mod nenecesar.
54
Transferul controlat de program
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Foloseşte facilitatea de întrerupere a unui CPU;
Atunci când programul rulează:
1) O instrucţiune de I/O informează U I/O să emită un semnal de întrerupere către CPU când dispozitivul periferic devine disponibil;
2) CPU comută pentru alt program;
3) U I/O veghează asupra stării dispozitivului periferic;
4) Atunci când dispozitivul devine READY, U I/O trimite o cerere de întrerupere către CPU;
5) CPU întrerupe temporar taskul în care era implicat şi sare spre o rutină de serviciu care asigură transferul de date de la dispozitivul periferic la CPU;
6) Procesorul revine la taskul pe care îl efectua.
55
Transferul iniţiat de întreruperi
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Foloseşte o unitate I/O dedicată numită controller DMA, care transferă datele în/din memorie prin magistrala de memorie.
CPU iniţializează controllerul DMA:
– precizând natura transferului;
– specificând adresa de memorie şi numărul de biţi.
CPU eliberează magistrala de sistem şi predă controlul magistralei de sistem controllerului DMA.
La terminarea transferului de date controllerul DMA lansează o întrerupere către CPU.
=> controllerul DMA preia controlul magistralei şi realizează transferul.
56
DMA (Direct Memory Access)
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Funcționarea calculatorului digital
57
Astăzi: transferul se face prin DMA (Direct Memory Access), astfel:
Date de
intrare și
programe
Date de
ieșire și
rezultate
Unitatea de
Memorie
(UM)
Unitatea de
Control
(UC)
Unitatea de
Intrare
(UI)
Unitatea de
Ieșire
(UO)
DMA
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Perifericele < rapide decât CPU =>
58
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Perifericele < rapide decât CPU =>
operaţiile de I/O sunt mari consumatoare de timp =>
59
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Perifericele < rapide decât CPU =>
operaţiile de I/O sunt mari consumatoare de timp =>
reduc productivitatea CPU. (cf. arh. von Neumann)
60
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Perifericele < rapide decât CPU =>
operaţiile de I/O sunt mari consumatoare de timp =>
reduc productivitatea CPU. (cf. arh. von Neumann)
Pentru a mării productivitatea:
61
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Perifericele < rapide decât CPU =>
operaţiile de I/O sunt mari consumatoare de timp =>
reduc productivitatea CPU. (cf. arh. von Neumann)
Pentru a mării productivitatea: activitatea CPU || activitatea U I/O
Unităţile I/O s-au tranformat din simple controllerele în procesoare I/O (IOP-input/output processors).
62
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
În conformitate cu tehnologia IBM, IOP se numeşte canal;
Funcţia de bază: supervizarea transferului I/O;
Funcţionarea IOP este controlată de CPU:
– CPU obligă IOP-ul să execute un program de transfer, care este plasat în MP;
– IOP extrage şi execută aceste instrucţiuni fără intervenţia CPU, => IOP execută independent programul IO;
– CPU continuă executarea sarcinii sale primare, aceea de efectuare de calcule.
CPU este eliberat de administrarea operaţiilor lente de I/O;
La terminarea transferului IOP-ul informează CPU;
IOP poate controla un număr mare de dispozitive de I/O cu implicare minimă a CPU.
63
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 64
Structura generală a unui calculator digital (+IOP)
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Se disting două categorii de IOP:
– Selector;
– Multiplexor.
65
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Canalul selector: este destinat cuplării mai multor periferice rapide;
în orice moment este dedicat transferului de date doar cu
unul din dispozitive de I/O;
Odată selectat un periferic acesta rămâne cuplat pe toată durata derulării operaţiilor de I/O;
=> canalul selector selectează un singur dispozitiv declanşând transferul de date numai cu acesta.
66
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Canalul multiplexat: poate manipula mai multe operaţii I/O cu mai multe dispozitive I/O medii şi lente, cu rate mici de transfer;
Principiul de funcţionare se reduce la baleerea succesivă a mai multor periferice care transferă pe rând prin canal câte o dată;
Există două moduri de organizare a transferurilor, în funcţie de viteza de lucru a dispozitivelor de I/O:
– multiplexare pe byte:
- într-o cuantă de timp alocată unui dispozitiv se transferă doar 1 byte;
- se aplică la dispozitive lente.
– multiplexare pe bloc:
- într-o cuantă de timp se transferă un bloc de bytes;
- se aplică în cazul unor dispozitive mai rapide.
67
Procesoare I/O
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale
Un IOP poate administra unul sau mai multe periferice;
Acestea se leagă la IOP printr-un controller I/O, format din:
– intefaţa logică (IF) spre IOP;
– controllerul (K) spre dispozitiv.
Interfaţa logică operează cu mărimi digitale, iar controllerul de dispozitiv cu mărimi specifice naturii dispozitivului I/O.
68
Procesoare I/O
IF KIOPDispozitiv
periferic
ARHITECTURA CALCULATOARELOR - Concepte Fundamentale 69
Arhitectura I/O
IOP
Selector
IOP
Multiplexor
CPU
MPDate/
Adrese
Date/
Adrese
Mag.
Memorie
Control Control
Stare Stare
IF
n
Mag. I/O
DP11
Kn
IF1
K1
DP1P
IFm Km
IF1 K1
DP11 DP1R
DPn1
DPnQ
DPm1 DPmS
Dispozitive periferice rapide
Dispozitive periferice
medii si lente