Curs 5 Arhitectura CaIcuIatoareIor

1

CONCEPTE FUNDAMENTALE PRIVIND ARHITECTURA
CALCULATOARELOR
-continuare-


3. Structura generalà a unui CPU

CPU este alcátuit din ALU si UC si se mai numeste simplu procesor.
CPU ÷ ALU ¹ UC
Principala Iunctie a unui procesor este sá execute secvente de instructiuni ce
reprezintá programul stocat în memoria proncipalá (MP). În Iapt CPU este un
interpretor pentru setul de instructiuni de la nivelul cod ma¸inà.
Pentru executia unui program CPU realizeazá urmátoarele:
- TranIerá instructiunile si datele (operanzii) din MP în registrii CPU.
- Executá instructiunile în mod secvential (una dupá alta), cu exceptia
instructiunilor de ramiIicare.
- TransIerá, dacá este necesar, rezultatele din registrele CPU în MP.

Deci, existá un Ilux de instructiuni si unul de date între MP si registrii generali
din CPU care Iormeazá memoria localà (ML).
Asa cum s-a mentionat în cursul trecut memoria calculatorului este realizatá
ierarhic, iar între MP si ML din CPU existá un nivel de memorie nou denumit
memorie superoperativà (MSO). În prezent ea este reprezentatá de memoria
Cache, care are capacitate mai micá si viteza mai mare în comparatie cu MP, si care
poate Ii plasatá în acelasi integrat (cip) cu CPU. De aceea se mai numeste si memoria
Cache interná.
Rolul principal al memoriei Cache este acela de a asigura operatia de citire sau
scriere pe un singur ciclu de ceas (single clock cycle), în timp ce accesul la MP se
Iace în câteva cicluri de ceas.
Orice CPU trebuie sá continá mecanisme pentru:
- extragerea si decodiIicarea unei instructiuni
- executia instructiunii citite sau extrase
- identiIicarea urmátoarei instructiuni de executat.

CPU trebuie sá comunice cu toate unitátile din calculatorul digital: unitatea de
memorie (UM), unitátile de intrare-iesire (UI/O). CPU oIerá adrese, date si semnale
de control, si primeste instructiuni, date, semnale de stare, cereri de intrerupere.
Aceastá comunicatie se realizeazá prin magistrala sistem. De aceea, o componentá a
CPU este interfa(a cu magistrala sistem, care este un controller de magistralá ce
contine drivere, buIIere si selectoare de directie.
Fluxul de date între UM si CPU este bidirectional, iar Iluxul de instructiuni este
unidirectional de la memorie cátre CPU.
Curs 5 Arhitectura CaIcuIatoareIor
2
CPU trebuie sá Iie capabil sá-si urmáreascá starea, adicá sá identiIice Iaza în
care este, sá cunoascá resursele disponibile. De aceea în CPU sunt incluse memorii
speciale de mare vitezá Iormate din registre care Iormeazá memoria localà (ML). În
aceste registre se pot memora si operanzi. Deoarece sunt plasate în CPU,
accesibilitatea este mai rapidá decât citirea din MP. ML este cea mai rapidá memorie
din structura ierarhicá a memoriei, mai rapidá chiar decât MSO. Instructiunile si
datele sunt încárcate în mod normal în ML.

Principalele registre din CPU sunt:
1. Registrul de instruc(iune (RI). Dupá citirea instructiunii curente din
memorie, aceasta este adusá în RI. Instructiunea este Iormatá din cele
douá câmpuri: OPCODE si ADRESA.
2. Registrul de func(ie (RF). Câmpul de OPCODE se tranIerá în RF
pentru a Ii decodiIicat.
3. Registrul de adresà (RA). Contine adresa logicá a operandului.
Câmpul de ADRESA din instructiune se transIerá în RA. În unele
cazuri adresa logicá este egalá cu adresa eIectivá a operandului, dar de
cele mai multe ori diIerá. De aceea la pasul 5 din ciclul instructiune are
loc calculul adresei eIective prin metode speciIice incluse în tehnicile
de adresare.
4. Registrul acumulator (ACC). Face parte din ALU Iiind cea mai
importantá componentá care contine un operand si apoi rezultatul în
urma operatiilor logice sau aritmetice.
5. Registrul operand (Reg. Op.). Face parte din ALU si are rolul de a
memora temporar cel de-al doilea operand. Cel de-al doilea operand
este adus printr-un ciclu Fetch Data. Reg. Op. mai are denumirea si de
registru tampon (buIIer register).
6. Numàràtorul de program (PC). Este o componentá din UC, se mai
numeste si pointer de instructiuni. PC contine întotdeauna adresa
urmátoarei instructiuni de executat. În Iaza Fetch la pasul 4 are loc
incrementarea PC pentru a indica adresa urmátoarei instructiuni de
executat.
7. Registrul de stare sau de flag-uri. (Reg. Stare). Este Iormat dintr-un
set de biti de contiditie, reprezentând diIerite caracteristici ale
rezultatului (semn, transport, paritate, zero, transport auxiliar etc).

Structura generalá a unui CPU este prezentatá în Iigura urmátoare:
Curs 5 Arhitectura CaIcuIatoareIor
3


UC
Dispozitiv de procesare
R
1
R
2
R
2
k
DEC
k/2
k
Registre generale
Reg. Stare
ACC
Reg. Op.
ALU
BIoc de Procesare
Bloc
Secventiator
de Control
PC
Decodificator
OPCODE
RF

RA
Calcul AE
Generator
de tact
incr.
Operatie
decodificata
Adresa
Operand
Adresa
Ìnstructiune
BIoc de
Instructiune
Unitate
Buffer/Driver
Magistrala
Sistem
BIoc de
Adresa
Magistrala Ìnterna de Adrese
Magistrala Ìnterna de Date
Linii interne de Stare
Linii interne de Control
Linii de
Control


Comunicatia CPU cu exteriorul (cu memoria, cu unitátile de I/O) se Iace cu
ajutorul unei interIete cu magistrala sistem numitá Unitate BuIIer/Driver, care contine
buIIere si drivere de comunicatie
Comunicarea interná între blocurile CPU se Iace cu ajutorul unor magistrale
interne de adresá, de date, de control si de stare.
Dupá cum se stie CPU este Iormat din douá unitáti importante: ALU si UC.
Fiecare din acestea au în alcátuire diverse blocuri Iunctionale.
ALU contine un set de registre generale si un bloc de procesare. Registrele
generale constituie memoria localá, care are ca scop pástrarea rezultatelor partiale si a
operanzilor. Blocul de procesare este alcátuit dintr-un dispozitiv de procesare, ce
implementeazá operatii logice si aritmetice, registrul acumulator (ACC), un registru
buIIer (tampon) pentru memorarea celui de-al doilea operand (Reg. Op.), un registru
de stare sau de Ilaguri (Reg. Stare), care contine o serie de indicatori de stare sau
Curs 5 Arhitectura CaIcuIatoareIor
4
Ianioane. Acesti indicatori sunt niste biti de conditie care caracterizeazá rezultatul
generat (indicator de semn, de paritate, de transport, de zero, etc).
UC este alcátuit din 3 blocuri Iunctionale: blocul de instructiune, blocul de
adresá si blocul secventiator de control. Aceste blocuri trebuie sá satisIacá
urmátoarele operatii:
- extragerea instructiunii curente din memorie
- tranIerul instructiunii în RI
- stocarea câmpurilor din instructiune (OPCODE si ADRESA) în RF si
respectiv RA
- decodiIicarea OPCODE-ului si generarea semnalelor de control pe liniile de
control
- determinarea adresei urmátoarei instructiuni
- determinarea adresei eIective (AE) a operandului
- tranIerarea operandului în ALU
- realizarea operatiei date de OPCODE
- stocarea rezultatului
Blocul de instructiune este Iormat din: numárátorul de program (PC), registrul
de instructiune (RI), registrul de Iunctie (RF) si decodiIicatorul de OPCODE.
PC este un pointer la instructiunea urmátoare de executat, el este un registru cu
Iacilitate de incrementare si încárcare paralelá. Comanda de incremenatare este datá
de blocul secventiator de control. Continutul PC este Iolosit în procesul Iazei FETCH
pentru citirea si extragerea instructiunii ce urmeazá a Ii executatá de cátre CPU.
Instructiunea curentá de executat este stocatá în RI, iar câmpul OPCODE al acesteia
se tranIerá în RF, al cárui continut va Ii decodiIicat (interpretat) de un decodiIicator al
Iunctiei si permite identiIicarea Iunctiei.
Blocul de adresá contine: registrul de adresá RA are ca scop stocarea adresei
logice (AL) continutá în câmpul de ADRESA al instructiunii de executat si un
dispozitiv de calcul al adresei eIective (AE) a operandului, care implementeazá un
mecanism de calcul al AE din AL.
Blocul secventiator de control este un dispozitiv secvential complex care
genereazá toate comenzile cátre toate celelalte unitáti ale calculatorului, inclusiv cátre
blocurile din CPU, în vederea realizárii Iunctiei instructiunii curente si primeste
inIormatii de stare de la toate blocurile.

4. Tehnici de echilibrare a vitezei de func(ionare CPU - MP

4.1. Considera(ii generale

Dupá cum s-a arátat, memoria are o structurá ierarhicá Iormatá din:
a) memoria secundarà (externà) - contine programele si datele care nu se
prelucreazá curent de CPU. Sunt deci în regim off-line. Este de capacitate
mare si are timp de acces mare si mediu.
b) memoria principalà (operativà) - contine programele si datele care se
prelucreazá curent de CPU. Se mai numeste si memorie on-line. Denumirea
Curs 5 Arhitectura CaIcuIatoareIor
5
puncteazá ideea cá de aici se extrag instructiunile si datele curente ce se
executa în CPU.
c) memoria localà - este Iormatá dintr-un set de registre plasate în CPU, ea este
ce mai rapidá memorie din ierarhie.

MS
Nivel III




MP
Nivel II





ML
Nivel I
CPU


Existá diIerente substantiale între lárgimea cáilor de comunicatie între CPU si
memoria localá si între CPU si celelalte nivele de memorie. Din punct de vedere
arhitectural aceste diIerente au creat multe probleme proiectantilor de calculatoare
pentru cresterea vitezei de acces la inIormatiei.
Calculatoarele sunt organizate intern astIel încât coordoneazá Iluxul
inIormational între diIeritele nivele de memorie în mod automat. Aceastá actiune
se realizeazá prin rutinele sistemelor de operare (varianta soItware) sau prin
mecanisme speciIice hardware (mult mai rapide). Aceastà coordonare are in
vedere ca informatia ce este accesatà mai rar sà fie mentinutà la nivelul
memoriilor mai lente ¸i de capacitate mare, in timp ce informatia ce este accesatà
mai frecvent sà fie tinutà in nivelele de memorie mai rapide ¸i de capacitàti mai
mici. În cazul memoriei principale este esential ca viteza de prelucrare în CPU sá
Iie cât mai apropiatá de cea a disponibilitátii inIormatiei. Întrucât viteza si
capacitatea memoriei sunt parametri în conIlict, iar programele ce se executá sunt
din ce în ce mai complexe (lungi), pentru cresterea productivitátii calculatoarelor
trebuie impuse echilibrári ale raportului perIormantelor între memoria principalá si
CPU.
Aceste metode sunt grupate în 3 categorii:
1. Lárgirea magistralei de date
2. Cresterea numárului de nivele în ierarhia memoriei
3. Preîncárcarea instructiunilor (preIetching)

4.2. Làrgirea magistralei de date

MP pástreazá instructiunile programului aIlat în executie si datele aIerente
extrase de CPU în vederea procesárii. Rezultatele obtinute se transmit înapoi la MP.
Comunicarea între CPU si MP se realizeazá prin magistrala de date (de memorie).
Având în vedere Iluxul intens de pe aceastá magistralá pe care circulá instructiuni,
date, rezultate, precum si timpul de acces Iinit la memoria principalá, aceastá
Curs 5 Arhitectura CaIcuIatoareIor
6
magistralá reprezintá un Iactor cheie în ce priveste perIormantele întregului
calculator. În arhitectura Neumann aceastá magistralá de date reprezintá punctul
îngust al întregii arhitecturi. ConIorm principiului Neumann chiar dacá în memorie se
aIlá un numár mare de instructiuni si date în Iaza de asteptare pentru executie, CPU
extrage, interpreteazá si prelucreazá doar o singurà instructiune la un moment dat
(one at a time). Rezultá cá limitarea perIormantelor nu este numai de naturá
tehnologicá (timpul de acces la memorie), dar si arhitecturalá. Aceastá limitare
arhitecturalá este agravatá si de diIerenta de vitezá între memorie si procesor.









O solutie de îmbunátátire a perIormantelor ar Ii lárgirea magistralei de date care
leagá memoria principalá de CPU cu scopul de a extrage mai multe instructiuni si
date simultan din memorie. În acest Iel s-ar înlátura limitarea arhitecturalá. Este
evident cá pentru a realiza o astIel de operatie memoria principalá trebuie organizatá
modular având în vedere cá citirea memoriei se Iace în ciclul de citire care presupune
accesul la adresa unicá. Pentru a citi mai multe instructiuni sau date simultan trebuie
accesate mai multe module Iiecare cu ciclu propriu de citire. S-au propus diIerite
structuri de memorie cu magistrale de date mai largi, dar apare o altá problemá
criticá: compatibilizarea accesului neprocedural la memorie, cu Iunctionarea
proceduralá a CPU (adicá oricum ar Ii CPU în arhitectura Neumann acesta va executa
instructiuni secvential), si deci se pune problema stabilirii corecte a grupului de
instructiuni sau date extrase simultan din mai multe module ale memoriei si depuse
pe magistrala de date în vederea aducerii în CPU. Aceastá secventá trebuie cunoscutá
anticipat sau sá Iie previzibilá. Adicá trebuie stabilit care instructiuni si care date sunt
permise pe acea magistralá lárgitá, având în vedere restrictia proceduralá a CPU.







Un ráspuns natural la aceastá problemá constá în aceea cá setul de instructiuni
extrase si care se depun pe magistrala lárgitá sá constituie o secventá de instructiuni
din program si care sá se execute una dupá alta. Deci, MP ar trebui divizatá în mai
multe blocuri conectate paralel (M
1
, M
2
,..., M
n
), astIel încât prin citirea simultaná a
celor n blocuri sá se Iormeze continutul pe magistrala de memorie lárgitá. Dacá
dimensiunea UIA este m biti, atunci prin citirea a n blocuri se extrag m n biti, rezultá
cá magistrala de memorie va Ii de m n linii.



MP
Magistrala
de memorie
(date)


CPU


MP


CPU
Curs 5 Arhitectura CaIcuIatoareIor
7












Într-o astIel de organizare este posibil sá avem acces simultan la câteva module
de memorie, Iiecare oIerind câte o instructiune sau o datá. Deci, în loc sá avem o
singurá instructiune sau datá disponibilá pentru CPU, acum avem un set de n
instructiuni sau date disponibile pentru CPU.
În organizarea originalá, un singur bloc de memorie cu n instructiuni sau date se
extrágea prin citirea a n locatii consecutive din memorie. În noua structurá, cele n
elemente (instructiuni sau date) se înscriu în locatiile de la aceeasi adresá din toate
cele n blocuri de memorie. Deci, printr-un singur acces se extrage un cuvânt de m n
biti, care se depune pe magistrala lárgitá. Întreg cuvântul de m n biti se înscrie în RI
din CPU, dupá care UC baleazá RI si extrage pe rând câte o instructiune.

































M
1
M
2
M
n
.
.
.
.
.
.
MP
Magistrala
de memorie
extinsá
m n
m
.
.
.
.
.
m
m
u ¹1
.
.
.
.
.
.
.
Elem
1

Elem
2

.
.
.
.
.
.
.
.
.
.
Elem
n

Elem
n¹1

Elem
n¹2

.
.
.
.
.
.
.
.
.
.
Adresa m
Magistrala
de memorie
u ¹2
u ¹n
u ¹n¹1
u ¹n¹2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u ¹2n
m
.
.
.
.
.
.
.
.
Elem
1

Elem
n¹1

.
.
.
.
.
.
.
.
.
.
Elem
n

Elem
2n

.
.
.
.
.
.
.
.
.
.
..
m

m

Magistrala de
memorie
lárgitá

Blocul
1
Blocul
n

m n

.. u ¹1
u ¹2
Adresa
.
.
.
.
.
.
.
.
Elem
2n

Curs 5 Arhitectura CaIcuIatoareIor
8

EIicienta depinde de predictia cá întreg setul de n instructiuni cuprins în m n
biti sá Iie Iolosit integral de CPU. Pot exista însá si instructiuni de salt si deci, restul
de instructiuni din cele n instructiuni nu sunt Iolosite. La eIectuarea saltului se va citi
o altá locatie din grupul celor n blocuri de memorie. Deci, trebuie considerat sau
gândit un model de predictie a secventelor de instructiuni. Dacá existá mai multe
ramiIicári în program, adicá salturi sau apeluri, atunci eIicienta este scázutá.

4.3. Creyterea numàrului de nivele în ierarhia memoriei

Ideea de bazá este de a introduce un nivel suplimentar între MP si CPU. Aceasta
se reIerá la memoria superoperativá (MSO) care are o capacitate micá dar un timp de
acces Ioarte mic, astIel încât viteza de lucru a MSO sá deviná comparabilá cu viteza
CPU. În prezent, o Iormá particulará de realizare a MSO este memoria cache.
Deoarece MSO este cea mai apropiatá memorie de CPU, aceasta devine memoria
on-line realá a procesorului.
Memoria cache este realizatá cu module scumpe, de înaltá perIormantá, cu timpi
de acces de ordinul zecilor de ns.
Schimbul de inIormatie între CPU si memoria cache este la nivel de bloc de
date. Aceste blocuri sunt construite pe principiul 'localitátii¨ unui program. Adicá
instructiunile sunt 'înrudite¨ (clustered) si existá niste proprietáti de localitate.


MS
Nivel IV




MO
Nivel III




Mem. Cache
Nivel II




ML
Nivel I
CPU


Initial memoria cache este goalá. Când CPU apeleazá prima instructiune
(instructiunea de start), UC o extrage un bloc de date din MP (unde se gáseste întreg
programul) care contine si instructiunea de start si o încarcá în memoria cache
împreuná cu întreg blocul de instructiuni sau date legate de prima instructiune
(proprietatea de predictie a mecanismelor de gestiune ale memoriei CACHE). Dupá
aceea CPU va gási instructiunile si datele în memoria cache de unde le va extrage cu
vitezá Ioarte mare de acces care este compatibilá cu viteza de executie a CPU. Prin
viteza
capacitate
Curs 5 Arhitectura CaIcuIatoareIor
9
urmare, blocul de date extras contine grupul de instructiuni apropiat (înrudit) cu
instructiunea de start.
Prin grup înrudit se întelege cá dupá executia instructiunii initiale este Ioarte
probabil ca urmátoarele instructiuni de executat sá Iacá parte din acel bloc. Dacá
apare un esec în cáutarea instructiunilor atunci va trebui adus în MSO un nou bloc din
MO. Deci între MO si MSO existá din timp în timp schimb la nivel de blocuri.
Strategia de proiectare a memoriei cache constá în realizarea schimbului sau
transIerului între MO si MSO cât mai rar posibil, deoarece extragerea blocului din
MO este o operatie de citire a memoriei si este consumatoare de timp.
TransIerurile între MO si MSO sunt sub controlul unui mecanism hardware, care
este transparent pentru utilizator. Diversele tehnici de administrare a memoriei cache
au Iost implementate pentru extragerea instructiunilor sau datelor cerute de CPU si
pentru implementarea strategiei de reînlocuire (schimbul de inIormatii între MO si
MSO).

4.4. Preîncàrcarea instruc(iunilor (prefetching)

Ciclul instructiune este Iormat din douá Iaze importante: Iaza FETCH si Iaza
EXECUTE.





Executia unei instructiuni presupune evolutia în timp a celor douá Iaze: FETCH
urmatá de EXECUTE. Executarea unui program înseamná executarea unui lant de
instructiuni, deci, o secventá de FETCH-EXECUTE.

FETCH EXECUTE

FETCH EXECUTE

FETCH EXECUTE






Dupá cum s-a arátat în timpul Iazei FETCH are loc extragerea instructiunii
curente din MP si decodiIicarea acesteia. În timpul Iazei EXECUTE, are loc
extragerea operandului (datei) si realizarea Iunctiei (executarea instructiunii) pentru
obtinerea rezultatului.
Metoda preîncárcárii constá în suprapunerea temporalá a Iunctionárii CPU si a
memoriei. În timp ce CPU executá instructiunea curentá unitatea de control poate citi
FETCH EXECUTE
Ciclu instructiune
Ciclu Instructiune Ciclu Instructiune Ciclu Instructiune
Timp
Instr. 1
Instr. 2
Instr. 3
.
.
.
Curs 5 Arhitectura CaIcuIatoareIor
10
(extrage din memorie) instructiunea urmátoare. Se introduce un paralelism temporal
spre deosebire de cel spatial speciIic primei metode (lárgirea magistralei de date).
Deci, înseamná suprapunerea Iazei EXECUTE de la intructiunea curentá cu Iaza
FETCH de la instructiunea urmátoare.

FETCH EXECUTE

FETCH EXECUTE

FETCH EXECUTE



Se observá astIel o scádere a timpului de executie a programului (se reduce cu
aproape jumátate). Deci are loc asa cum am mai spus o paralelizare în timp.
În realizarea acestei suprapuneri trebuie analizat dacá nu existá conIlicte de
acces la aceeasi resurse cum ar Ii memoria. De asemenea, în secventa de instructiuni
pot apárea instructiuni de salt si chiar dacá s-a Iácut preIetch-ul pentru instructiunea
secvential urmátoare instructiunii de salt, acest lucru este incorect, pentru cá
instructiunea de salt cere prin Iaza sa de executie salt la cu totul altá instructiune. De
aceea se ignorá Iaza FETCH deja eIectuatá simultan cu Iaza EXECUTE a
instructiunii de salt si se reia Iaza FETCH a instructiunii la care s-a Iácut saltul dupá
terminarea Iazei EXECUTE a instructiunii de salt. Deci eIicienta nu este reducerea la
jumátate a timpului, ci ea depinde de predictia aparitiei salturilor (ramiIicárilor).
PreIetching rámâne un mecanism simplu si Ioarte eIicient pentru echilibrarea
vitezei CPU si memorie, si este Irecvent Iolosit în proiectarea UC. PreIetch se poate
raIina în mai multe subIaze astIel încât mai multe instructiuni sá se aIle în diIerte
etape de prelucrare si îmbunátátind astIel perIormanta globalá (caz des întâlnit la UC
de tip pipeline).
Tehnica preIetch este cea mai ieItiná si de aceea este Iolositá Irecvent pentru cá
ea exploateazá unele proprietáti care existá în calculatoare si anume existenta unei
redundante (disponibilitáti) si anume cá douá unitáti din organizarea calculatorului
digital (MP si CPU) au proprietatea de a lucra în paralel. Celelalte douá metode
prezentate sunt mai scumpe pentru cá necesitá resurse noi.

5. Organizarea avansatà a comunicàrii CPU-echipamente periferice

5.1. Echipamente periferice în calculatorul digital

Un sistem de calcul are o multime de unitáti de intrare-iesire. Un calculator
perIormant poate avea zeci poate chiar sute de dispozitive periIerice, care sunt
conectate între ele prin unitáti de I/O.
Orice unitate I/O are rolul de a controla dispozitivele periIerice si comunicá cu
magistrala de sistem.
Timp
Instr. 1
Instr. 2
.
.
.
Instr. 3
Curs 5 Arhitectura CaIcuIatoareIor
11
Ca exemple de dispozitive periIerice avem: tastaturá, mouse, joystick, monitor,
imprimantá, plotter, scanner, componentele care Iormeazá MS (hard-disk, Iloppy-
disk, CD, DVD, etc).
Dispozitivele periIerice prezintá mari diIerente sub douá aspecte:
1) formà si func(ie Iolosesc medii diIerite, principii de Iunctionare diIerite
si un set diIerit de inIormatii de cotrol.
2) vitezà de operare au timp de acces diIerit.
Echipamentele periIerice sunt resurse principale ale calculatorului, ele pot Ii
împártite între mai multi utilizatori si pot Ii solicitate de mai multe procese. Din acest
motiv trebuie stabilite reguli de servire.
Echipamentele periIierice împreuná cu unitátile de I/O (sau interIete de
periIerice) Iormeazá arhitectura de I/O a unui sistem de calcul.
Orice dispozitiv periIeric are urmátoarea structurá:
LOGÌCA DE
CONTROL
BUFFER
TRADUCTOR
Semnale
de control
de la U Ì/O
Semnale de
stare catre
U Ì/O
Magistrala
de date cu
U Ì/O
Date catre/ de la
mediul extern


1) Semnale de control determiná Iunctia pe care o va executa dispozitivul.
2) Semnale de stare indicá starea dispozitivului.
3) Magistrala de date un grup de linii paralele pe care circulá date (biti) care
intrá sau ies din dispozitiv.
4) Logica de control asigurá Iunctia dispozitivului în concordantá cu comenzile
emise de U I/O si cu natura sau tipul dispozitivului periIeric.
5) Traductorul asigurá conversia semnalelor între diverse tipuri de energie.
6) Buffer-ul care se asociazá cu traductorul pentru a stoca temporar date care se
transIerá între U I/O si mediul extern.



Curs 5 Arhitectura CaIcuIatoareIor
12
5.2. Unità(i de I/O

Aceste unitáti se conecteazá la magistrala sistem si controleazá dispozitivele
periIerice. Unitátile de I/O reprezintá o reuiniune de conectori si de cabluri care leagá
dispozitivele periIerice, contin logica de eIectuare a Iunctiei de comutatie între
dispozitivele periIerice si magistrala de sistem.
Linii de Adresa
Unitate Ì/O
Linii de Date
Linii de Control
Magistrala de
Sistem

P1 P2
Pn
Linii catre dispozitive perifierice

Unitátile de I/O trebuie sá interIateze cu CPU si MP si sá interIateze cu unul sau
mai multe dispozitive periIerice.
Deoarece magistralele de transIer a datelor la dispozitivele periIerice sunt mai
lente decât cele de la MP sau CPU este ineIicient sá se Ioloseascá magistrala de
sistem ultrarapidá pentru comunicarea directá cu echipamentele periIerice.
Unitátile de I/O trebuie sá asigure comunicatia cu CPU, cu dispozitivele
periIerice, sá asigure memorarea temporará a datelor, sá asigure partea de control si
de sincronizare, sá rezolve cazurile de detectie a erorilor.
Descrierea tranIerului de date între un dispozitiv periIeric si CPU este
urmátoarea:
1) CPU interogheazá unitatea de I/O pentru a testa starea dispozitivului
periIeric.
2) Unitatea de I/O returneazá la CPU starea dispozitivului.
3) Dacá dispozitivul este operational si pregátit pentru a transmite, atunci CPU
emite o comandá de transIer de date cátre unitatea de I/O.
4) Unitatea de I/O executá comanda si obtine data de la dispozitivul periIeric si
o aduce în U I/O.
5) Data din U I/O se tranIerá prin magistrala sistem la CPU.

Fiecare interactiune între CPU si U I/O implicá mai multe arbitraje pentru
acapararea magistralei sistem.
Structura generalá a unei U I/O este urmátoarea:


Curs 5 Arhitectura CaIcuIatoareIor
13
Registre de date
Registre de
Stare/Control
Linii de
date
Logica Ì/O
Linii de Adresa
Linii de Control
Ìnterfata cu
disp. periferic
Ìnterfata cu
disp. periferic
Date
Stare
Control
Date
Stare
Control
CPU
Disp.
periferice

Orice unitate de I/O are o adresá unicá, numitá adresà de unitate I/O. Dacá la o
U I/O se leagá mai multe dispozitive periIerice, atunci Iiecárui dispozitiv i se alocá o
adresá. Datele tranIerate cátre sau dinspre U I/O sunt memorate temporar în U I/O în
unul sau mai multe registre de date, ce constituie memoria localá a U I/O. Unitátile
I/O au unul sau mai multe registre de stare care Iurnizeazá inIormatia de stare.
Uneori registrul de stare este Iolosit si ca registru de control pentru U I/O, în care
CPU trimite inIormatia detaliatá pentru control. Comenzile cátre U I/O emise de CPU
sunt componente ale magistralei de control din cadrul magistralei sistem.
U I/O si CPU comunicá între ele prin:
1) comenzi de control, transmise prin magistrala sistem
2) schimb de date, realizat prin magistrala de date
3) raportarea de stare, deoarece periIericele sunt lente este important de a
inIorma CPU de starea unitátilor de I/O. De exemplu, semnalele BUSY sau
READY.
4) recunoayterea adresei, Iiecare dispozitiv trebuie sá aibá o adresá unicá deci,
U I/O trebuie sá recunoascá aceastá adresá unicá pentru Iiecare periIeric.

5.3. Moduri de transfer

TransIerurile de date între CPU si dispozitivele periIerice sunt realizate prin 3
moduri sau tehnici de I/O:
1) transfer programat I/O transIerul datelor se Iace sub controlul
programului.
2) transfer ini(iat prin întrerupere
3) acces direct la memorie (DMA)

1) Transferul controlat de program este rezultatul instructiunilor de I/O care
Iac parte din programul în executie. Fiecare transIer este initiat de o instructiune de
program. Fiecare transIer se Iace între un registru CPU (de exemplu acumulatorul) si
un dispozitiv periIeric sau între un registru CPU si memoria. Acest tip de transIer
cere monitorizarea permanentá a dispozitivelor periIerice de cátre CPU, pentru a
Curs 5 Arhitectura CaIcuIatoareIor
14
determina când se terminá un trasIer. De aceea, CPU rámâne într-o buclá de program
pâná ce unitatea I/O indicá dacá este READY. Acest transIer este un mare
consumator de timp pentru cá tine CPU blocat într-un mod nenecesar.
2) Transferul ini(iat de întreruperi Ioloseste Iacilitatea de întrerupere a unui
CPU. Atunci cînd programul ruleazá, o instructiune de I/O inIormeazá U I/O sá emitá
un semnal de întrerupere cátre CPU când dispozitivul periIeric devine disponibil.
Apoi CPU comutá pentru alt program, iar U I/O vegheazá asupra stárii dispozitivului
periIeric. Atunci când dispozitivul devine READY, U I/O trimite o cerere de
întrerupere cátre CPU. Atunci, CPU întrerupe temporar taskul în care era implicat si
sare spre o rutiná de serviciu care asigurá transIerul de date de la dispozitivul
periIeric la CPU, dupá care procesorul revine la taskul pe care îl eIectua.
3) DMA Ioloseste o unitate I/O dedicatá numitá controller DMA, care transIerá
datele în/din memorie prin magistrala de memorie. CPU initializeazá controllerul
DMA precizând natura transIerului, speciIicând adresa de memorie si numárul de biti
dupá care CPU elibereazá magistrala de sistem si predá controlul magistralei de
sistem controllerului DMA. La terminarea transIerului de date controllerul DMA
lanseazá o întrerupere cátre CPU. Deci, controllerul DMA preia controlul magistralei
si realizeazá transIerul.

5.4. Procesoare I/O

Se stie cá periIericele sunt lente în raport cu CPU, deci, operatiile de I/O sunt
mari consumatoare de timp. ConIorm organizárii von Neumann, aceste operatii reduc
productivitatea CPU. Pentru a márii productivitatea este util dacá s-ar suprapune
activitatea CPU cu cea a U I/O, adicá sá se paralizeze activitátile. Pentru aceasta
unitátile I/O s-au tranIormat din simple controllerele în procesoare I/O (IOP-
input/output processors). În conIormitate cu tehnologia IBM, IOP se numeste canal.
Aceste procesoare I/O recunosc un set propriu de instructiuni orientat pentru
operatiile de I/O. Functia de bazá a IOP este supervizarea transIerului I/O, dar
Iunctionarea IOP este controlatá de CPU.
CPU obligá IOP-ul sá execute un program de transIer, care este plasat în MP.
IOP extrage si executá aceste instructiuni Iárá interventia CPU, deci IOP executá
independent programul IO iar CPU continuá executarea sarcinii sale primare, aceea
de eIectuare de calcule. Prin aceasta CPU este eliberat de administrarea operatiilor
lente de I/O. La terminarea transIerului IOP-ul inIormeazá CPU care ia act de
terminarea transIerului.
IOP poate controla un numár mare de dispozitive de I/O cu implicare minimá a
CPU.
Sistemele de calcul cuprind o ierarhie de procesoare, unde în centru se aIlá CPU.
Structura generalá a unui calculator digital în care apar si IOP este prezentatá
mai jos:



Curs 5 Arhitectura CaIcuIatoareIor
15
UC
MP
ALU
IOP
MS
IOP IOP
Dispozitive
periferice de
intrare
Dispozitive
periferice de
iesire
Date de intrare
si programe
Date de iesire
sau rezultate
CPU
Flux de date
Comenzi sau linii de control
Informatii de stare sau linii de stare
Flux de instructiuni

Se disting douá categorii de IOP:
1) selector
2) multiplexor

1) Canalul selector este destinat cuplárii mai multor periferice rapide, si în
orice moment este dedicat tranIerului de date doar cu unul din dispozitive de I/O.
Odatá selectat un periIeric acesta rámâne cuplat pe toatá durata derulárii operatiilor
de I/O. Deci canalul selector selecteazá un singur dispozitiv declansând tranIerul de
date numai cu acesta.
2) Canalul multiplexat poate manipula mai multe operatii de I/O cu mai multe
duspozitive de I/O medii ¸i lente, cu rate mici de transIer. Principiul de Iunctionare se
reduce la baleerea succesivá a mai multor periIerice care transIerá pe rând prin canal
Curs 5 Arhitectura CaIcuIatoareIor
16
câte o datá. Existá douá moduri de organizare a transIerurilor, în Iunctie de viteza de
lucru a dispozitivelor de I/O:
a) multiplexare pe byte într-o cuantá de timp alocatá unui dispozitiv se
transIerá doar 1 byte. Se aplicá la dispozitive lente.
b) multiplexare pe bloc într-o cuantá de timp se transIerá un bloc de
bytes. Se aplicá în cazul unor dispozitive mai rapide.

Un IOP poate administra un periIeric sau mai multe periIerice. Acestea se leagá
la IOP printr-un controller I/O, Iormat din: intefa(a logicà (IF) spre IOP si
controllerul (K) spre dispozitiv.
IF K IOP
Disp.
periferic


InterIata logicá opereazá cu márimi digitale, iar controllerul de dispozitiv cu
márimi speciIice naturii dispozitivului I/O.
Arhitectura I/O este urmátoarea:

IOP
Selector
IOP
Multiplexor
CPU
MP
Date/
Adrese
Date/
Adrese
Mag.
Memorie
Control
Control
Stare Stare
IF
n
Mag. I/O
DP
11
K
n
IF
1
K
1
DP
1P
IF
m
K
m
IF
1
K
1
DP
11
DP
1R
DP
n1
DP
nQ
DP
m1
DP
mS
Dispozitive periferice rapide
Dispozitive periferice
medii si lente


$ $ 7$ 8$ % &+ $ * /4$ 4 2 & .3 * 3 ' 3 $+ * $ $ !! # % " * 3 . . $ # $ $% & ) $ $ % 6 .+) +/).+) /6 $ / $ % * 9 .4 .$ $! ! ' $ ' 6 . 2 * " $ & $ + " $" .+ $ / $ . :$ # # " $ +% ' ! 3 + " % &6 $ "& 6 9$ .$ # + ) * % & 2 $ # + + # % & ! 2 +/)$+ $ # + # * . * : $ <$ # + # # + ) 3 * ! * * % 2 * * & # $ &) ' - 7 . 2 ". .

$# / * $ / * $ .% ! $ " % & % ! ' ! " " " # ! ' ' ! = 3 3 * + 6 * $ > 3 ! # ! $/ # * 8 * ' 3 * $ * > = 45 .# 5 + * & $ 3 ' ! # * ! $ .

$ ! 3 & ' ' ' ' ' ' ' ' ' > ! * /4# 3 * 8 3 $ * * & 3 3 * # $ * 3 3 /4 2 / . ! ' & $$ ' &' ! $: $) & 3 $ $ # " " ! %" $+ . .+) & ! # /6 * $ ! # * . .+)$ 3 4 /6 * $ /4* ! $ > ! # ) > * 2 $ & +/)! )# / * 2 # .# /6 ! )# . . + ) * + #$ $ * + ! %0 . .+) +/)./ ( + #+ ' # * ( - ' . .+)' ! .+) 6 )( ? $ 3 * 3 $ . .

1 " $/ " 2 * * ! $ # . # ! + + 3 ! * 9 " $ # $ * . $ ' * @ 444 @ 44 @ 4 ) . A ! # $ A # $% 2 ! 3 $ 8 $ 7$ 8$ . 3 $+ 3 $ 2 $ ! . .#$ $ $ !' . 3 # * 3 * $ % 2 & .

3 3 * *" 2 $ + 3 3 . $ % .. ! # * . * $ / . . 3 $ ) & 3 3 $ * 2 3 3 $+ ! * "7*$$$* " # " * 3 4 3 * $ . 3 $ % 2 $ $' * 3 * ! # * 3 $ 3 . . $ $ @ $ @ . * " ! # . @ 3 3 $ 3 ' .

" " " $ $ $ $ $ "7 $ $ $ $ $ $ " 2 $+ * * % ' * 3 * ! 3 3 * * " 3 2 3 $ 3 $% # $+ * 3 /4 " % * 2 ' $% 2 2 2 3 $ /4 B B 7 ) ) 7 B B 7 ) ) CC ) ) 7 $ $ $ $ $ $ $ $ B B B 7 ) ) ) $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ > CC $ $ $ $ $ $ $ $ $ $ > 7 $ $ $ $ $ $ $ $ B 7 ) $ $ $ $ $ $ $ $ $ $ 7 $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ < .

) 3 $ $ 3 2 * . * 3 $ $ ($ $! + ' 3 * ( $ $ " $ $+ * $+ $ 3 * @ 4G @ 444 $ ( @ 44 @ 4 4 ! # 3 ! # * . ?)# + $ . 4 2 3 ! . ".# "* $ % + " -. F 3 $ $ * * * 2 ". $ . $ 2 3 " ! . 3 $ D . 3 $ 3 E F! # E ". $ .

2 . ". 3 $ + ".* 3 "3 33 ". ". 3 . ( ".. !. )I) ()$ 6 )( ? )I) () ! $ + 3 .$ . 3 ".# . $+ 3 . 3* # ". ". ". A * . ".$ + ". 3 3 $ . 3 3 $ . 3 ! # * % ) ( " & & 6 )( ? ) )I) ()$ ) * * 4 4 4 $ $7 $8 C $ $ 4 4 &6 )( ? 6 )( ?')I) () 6 )( ? )I) () 6 )( ? 4 ()$ 6 )( ? )I) )I) () ( + " ' ! # 6 )( ? $ % ! $ )I) ()* # 3 " $% H .

45 .$ . ! ! " . $+ () $ . 3 # # $ $ 4 4/ . (. 6 )( ? )I) * 2 () = 6 )( ? = .! 3 + * 6 )( ? 4 4 4 $ $7 $8 C $ $ # )I) $ 6 )( ? )I) () )I) () $! () # $ 6 )( ? 6 )( ? )I) () ( % 3 = ! #+ $ 3 $+ ' * * . ' * )I) ' $+ ! * 3 3 # $ $ 2 3 ! 2 # $ . 45 . $ J $ * . (" $ ' # ! " ) 3 $ ! + (" $ " ) ' . 3 .

45 . + " ! ).& * 0 +* +G+* * + # ) $! * # $ ) * K $ 7# ' . $ " & $! & $! $! $ ' #! () ' ) $ ) & " * # 7# 8# :# $ $ + + # # + + $ + 45 . * & * 1 ' K * $+ $ 45 ! . & % * * 3 * $ * =1 0 * ". 3 ).! ' 0 . $ 9# + .#5 ) ) . 3 . $ $ ! # 3 $ $ 45 . # .

41 $ ! + 6 * 45 . 3 $ " . * * + & # $ 7# 8#+ :# 9# + 6 45 . 3 " $ * * $ 45 . 3 $ 45 . 45 . * $ ' % & ' 3 ' $ ! ' 45 . $ * 45 . + 2 45 . & 3 = - 7 . $ 45 .$ 45 . .$ 45 .

3 4 ( /& 1 & & # $6 45 .$ $ 45 . .+ * 7## ( $-+ + * 8# " + # * /) +L$ :# 2 45 . $ 45 . 45 . + #+ ! 6$+ 45 . 45 . $+ 45 . 45 . # $ . * * 45 .! ' " $ ' ' ' ! " ! .& " $ 6 K $ # ) * " 3 " #+ $ $ % & # ) + " $6 ! $ * 8 # $ .$ 3 * 3 > L * $ # ) 8 45 .* # + + * # + # $ 45 . # ) 3 + + + #* & 45 + .

* 4. $ =& : .2 2 7# $ # ) 45 . $ 4.$ 4. $ 45 . * " $ 45 . 3$ 45 . - # 6 * $ $ 45 . $ . 45 . . $ # 6 ! ' 4. 0 $ +" * 3 +" 8# +" +" 4.* * * 4. #% $ 45 .$ 4. ' 4.* @ * * ' " 4>"* 4. . 5 45 6 . /) +L* 45 . $ 3 4. 3 4. ' $ 45 . * + 3 $+ * /) +L$ 3 ' " 2 2 ' 3 $ * * $ 2 $ * * 0 45 . 3 4. 45 . 5 $ 2 3 +" $ $+ $ * * 2 45 . 45 ' .

0+ + 0+ # + # + # $ .# ) $ + # /&# 1 $ & # .$ 7# 3 . ' " " ) + # . & " 0 # 2 2 $ $ 45 . " 0 * 9 $ 2 45 . * 45 . 45 + .# .$ 4. ' " " ) + # + #" $ # + # .

K 7 3 $1 $ " 0 " . & / 8/ $ " 0 $ 8$ / 6 + # 6 + # 8 8/ # .& $ " 0 " . ' " ) " $ + # # . ' " ) " "+ .$ . 4 45 . 6 * 45 . 4.K 3 $1 4.2 # 3 # $) 45 . ' ! M# 6* $ 8 * ' $ ' $ $ !! # 46 # " " ) 3 & )* 4. .

Sign up to vote on this title
UsefulNot useful