Sunteți pe pagina 1din 16

Curs 5 Arhitectura CaIcuIatoareIor

1

CONCEPTE FUNDAMENTALE PRIVIND ARHITECTURA
CALCULATOARELOR
-continuare-


3. Structura general a unui CPU

CPU este alctuit 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 main.
Pentru executia unui program CPU realizeaz urmtoarele:
- 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 cteva cicluri de ceas.
Orice CPU trebuie s contin mecanisme pentru:
- extragerea si decodiIicarea unei instructiuni
- executia instructiunii citite sau extrase
- identiIicarea urmtoarei instructiuni de executat.

CPU trebuie s comunice cu toate unittile din calculatorul digital: unitatea de
memorie (UM), unittile 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 ctre CPU.
Curs 5 Arhitectura CaIcuIatoareIor
2
CPU trebuie s Iie capabil s-si urmreasc 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 dect citirea din MP. ML este cea mai rapid memorie
din structura ierarhic a memoriei, mai rapid chiar dect MSO. Instructiunile si
datele sunt ncrcate 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 cmpuri: OPCODE si ADRESA.
2. Registrul de func(ie (RF). Cmpul de OPCODE se tranIer n RF
pentru a Ii decodiIicat.
3. Registrul de adres (RA). Contine adresa logic a operandului.
Cmpul 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. Numrtorul de program (PC). Este o component din UC, se mai
numeste si pointer de instructiuni. PC contine ntotdeauna adresa
urmtoarei instructiuni de executat. n Iaza Fetch la pasul 4 are loc
incrementarea PC pentru a indica adresa urmtoarei instructiuni de
executat.
7. Registrul de stare sau de flag-uri. (Reg. Stare). Este Iormat dintr-un
set de biti de contiditie, reprezentnd diIerite caracteristici ale
rezultatului (semn, transport, paritate, zero, transport auxiliar etc).

Structura general a unui CPU este prezentat n Iigura urmtoare:
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
R
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 unittile 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 unitti importante: ALU si UC.
Fiecare din acestea au n alctuire diverse blocuri Iunctionale.
ALU contine un set de registre generale si un bloc de procesare. Registrele
generale constituie memoria local, care are ca scop pstrarea rezultatelor partiale si a
operanzilor. Blocul de procesare este alctuit 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 alctuit din 3 blocuri Iunctionale: blocul de instructiune, blocul de
adres si blocul secventiator de control. Aceste blocuri trebuie s satisIac
urmtoarele operatii:
- extragerea instructiunii curente din memorie
- tranIerul instructiunii n RI
- stocarea cmpurilor din instructiune (OPCODE si ADRESA) n RF si
respectiv RA
- decodiIicarea OPCODE-ului si generarea semnalelor de control pe liniile de
control
- determinarea adresei urmtoarei instructiuni
- determinarea adresei eIective (AE) a operandului
- tranIerarea operandului n ALU
- realizarea operatiei date de OPCODE
- stocarea rezultatului
Blocul de instructiune este Iormat din: numrtorul de program (PC), registrul
de instructiune (RI), registrul de Iunctie (RF) si decodiIicatorul de OPCODE.
PC este un pointer la instructiunea urmtoare de executat, el este un registru cu
Iacilitate de incrementare si ncrcare 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 ctre CPU.
Instructiunea curent de executat este stocat n RI, iar cmpul OPCODE al acesteia
se tranIer n RF, al crui 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 cmpul 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 ctre toate celelalte unitti ale calculatorului, inclusiv ctre
blocurile din CPU, n vederea realizrii 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 artat, 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 lrgimea cilor 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 nct 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 capacitti mai
mici. n cazul memoriei principale este esential ca viteza de prelucrare n CPU s
Iie ct mai apropiat de cea a disponibilittii inIormatiei. ntruct viteza si
capacitatea memoriei sunt parametri n conIlict, iar programele ce se execut sunt
din ce n ce mai complexe (lungi), pentru cresterea productivittii calculatoarelor
trebuie impuse echilibrri ale raportului perIormantelor ntre memoria principal si
CPU.
Aceste metode sunt grupate n 3 categorii:
1. Lrgirea magistralei de date
2. Cresterea numrului de nivele n ierarhia memoriei
3. Prencrcarea instructiunilor (preIetching)

4.2. Lrgirea magistralei de date

MP pstreaz instructiunile programului aIlat n executie si datele aIerente
extrase de CPU n vederea procesrii. Rezultatele obtinute se transmit napoi la MP.
Comunicarea ntre CPU si MP se realizeaz prin magistrala de date (de memorie).
Avnd 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 numr 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 mbunttire a perIormantelor ar Ii lrgirea 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 nltura limitarea arhitectural. Este
evident c pentru a realiza o astIel de operatie memoria principal trebuie organizat
modular avnd 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 lrgit, avnd n vedere restrictia procedural a CPU.







Un rspuns natural la aceast problem const n aceea c setul de instructiuni
extrase si care se depun pe magistrala lrgit 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 nct prin citirea simultan a
celor n blocuri s se Iormeze continutul pe magistrala de memorie lrgit. 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 cteva module
de memorie, Iiecare oIerind cte 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
extrgea 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 cuvnt de m n
biti, care se depune pe magistrala lrgit. ntreg cuvntul de m n biti se nscrie n RI
din CPU, dup care UC baleaz RI si extrage pe rnd cte 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
n1

Elem
n2

.
.
.
.
.
.
.
.
.
.
Adresa m
Magistrala
de memorie
u 2
u n
u n1
u n2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u 2n
m
.
.
.
.
.
.
.
.
Elem
1

Elem
n1

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

Elem
2n

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

m

Magistrala de
memorie
lrgit

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
gndit un model de predictie a secventelor de instructiuni. Dac exist mai multe
ramiIicri n program, adic salturi sau apeluri, atunci eIicienta este sczut.

4.3. Creyterea numrului 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 nct 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 'localittii unui program. Adic
instructiunile sunt 'nrudite (clustered) si exist niste proprietti de localitate.


MS
Nivel IV




MO
Nivel III




Mem. Cache
Nivel II




ML
Nivel I
CPU


Initial memoria cache este goal. Cnd CPU apeleaz prima instructiune
(instructiunea de start), UC o extrage un bloc de date din MP (unde se gseste 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 gsi 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 urmtoarele instructiuni de executat s Iac parte din acel bloc. Dac
apare un esec n cutarea 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 ct 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 renlocuire (schimbul de inIormatii ntre MO si
MSO).

4.4. Prencrcarea 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 artat 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 prencrcrii const n suprapunerea temporal a Iunctionrii 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 urmtoare. Se introduce un paralelism temporal
spre deosebire de cel spatial speciIic primei metode (lrgirea magistralei de date).
Deci, nseamn suprapunerea Iazei EXECUTE de la intructiunea curent cu Iaza
FETCH de la instructiunea urmtoare.

FETCH EXECUTE

FETCH EXECUTE

FETCH EXECUTE



Se observ astIel o scdere a timpului de executie a programului (se reduce cu
aproape jumtate). 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 aprea instructiuni de salt si chiar dac s-a Icut preIetch-ul pentru instructiunea
secvential urmtoare 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 Icut saltul dup
terminarea Iazei EXECUTE a instructiunii de salt. Deci eIicienta nu este reducerea la
jumtate a timpului, ci ea depinde de predictia aparitiei salturilor (ramiIicrilor).
PreIetching rmne 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 nct mai multe instructiuni s se aIle n diIerte
etape de prelucrare si mbunttind astIel perIormanta global (caz des ntlnit la UC
de tip pipeline).
Tehnica preIetch este cea mai ieItin si de aceea este Iolosit Irecvent pentru c
ea exploateaz unele proprietti care exist n calculatoare si anume existenta unei
redundante (disponibilitti) si anume c dou unitti 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 comunicrii CPU-echipamente periferice

5.1. Echipamente periferice n calculatorul digital

Un sistem de calcul are o multime de unitti de intrare-iesire. Un calculator
perIormant poate avea zeci poate chiar sute de dispozitive periIerice, care sunt
conectate ntre ele prin unitti 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
mprtite ntre mai multi utilizatori si pot Ii solicitate de mai multe procese. Din acest
motiv trebuie stabilite reguli de servire.
Echipamentele periIierice mpreun cu unittile de I/O (sau interIete de
periIerice) Iormeaz arhitectura de I/O a unui sistem de calcul.
Orice dispozitiv periIeric are urmtoarea structur:
LOGCA 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 unitti se conecteaz la magistrala sistem si controleaz dispozitivele
periIerice. Unittile 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

Unittile 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 dect cele de la MP sau CPU este ineIicient s se Ioloseasc magistrala de
sistem ultrarapid pentru comunicarea direct cu echipamentele periIerice.
Unittile 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
urmtoarea:
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 pregtit pentru a transmite, atunci CPU
emite o comand de transIer de date ctre 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 urmtoarea:


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 Iiecrui dispozitiv i se aloc o
adres. Datele tranIerate ctre 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. Unittile
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 ctre 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 unittilor 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 ctre CPU, pentru a
Curs 5 Arhitectura CaIcuIatoareIor
14
determina cnd se termin un trasIer. De aceea, CPU rmne ntr-o bucl de program
pn 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 cnd programul ruleaz, o instructiune de I/O inIormeaz U I/O s emit
un semnal de ntrerupere ctre CPU cnd dispozitivul periIeric devine disponibil.
Apoi CPU comut pentru alt program, iar U I/O vegheaz asupra strii dispozitivului
periIeric. Atunci cnd dispozitivul devine READY, U I/O trimite o cerere de
ntrerupere ctre 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 preciznd natura transIerului, speciIicnd adresa de memorie si numrul 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 ctre 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 organizrii von Neumann, aceste operatii reduc
productivitatea CPU. Pentru a mrii productivitatea este util dac s-ar suprapune
activitatea CPU cu cea a U I/O, adic s se paralizeze activittile. Pentru aceasta
unittile 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 Ir 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 numr 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 cuplrii 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 rmne cuplat pe toat durata derulrii operatiilor
de I/O. Deci canalul selector selecteaz un singur dispozitiv declansnd 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 rnd prin canal
Curs 5 Arhitectura CaIcuIatoareIor
16
cte 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 mrimi digitale, iar controllerul de dispozitiv cu
mrimi speciIice naturii dispozitivului I/O.
Arhitectura I/O este urmtoarea:

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

S-ar putea să vă placă și