Sunteți pe pagina 1din 30

1

1 Structura unui microprocesor


Definiii

Sunt prezentate cteva definiii strict necesare pentru nelegerea


noiunilor ce vor urma. De asemenea, este prezentat arhitectura foarte
general a unui sistem de calcul, care nu necesit multe cunotine
pentru a fi bine neleas. Pornind de la aceasta, vor fi dezvoltate
arhitecturi reale foarte diverse i complicate.

1.1 Cteva definiii


Vom defini cuvintele ce vor fi utilizate foarte frecvent n lucrare,
care sunt de fapt larg folosite n informatic. Chiar dac definiiile nu
coincid total cu cele ale Academiei, au meritul de a fi simple i clare.
Circuit integrat - component electronic de mici dimensiuni, (cu
suprafaa msurat n milimetri ptrai) ce conine un numr de
tranzistoare elementare interconectate; el poate avea funcii cablate sau
programate. Circuitele integrate sunt clasificate n mai multe categorii, n
funcie de densitatea de integrare: circuite integrate simple, circuite
integrate pe scar medie (MSI - Medium Scale Integration), circuite
integrate pe scar larg (LSI - Large Scale Integration), circuite integrate
pe scar foarte larg (VLSI - Verry Large Scale Integration), etc. Dup
dezvoltarea exploziv a circuitelor integrate n ultimii ani, aceste noiuni
au nceput s devin desuete.
Unitate central sau Unitate central de procesare este acea
component a unui calculator care realizeaz prelucrarea datelor pe baza
unui program i controlul ntregului sistem. Se utilizeaz frecvent notaia
CPU (Central Processing Unit) ceea ce desemneaz de data aceasta n
mod exclusiv un microprocesor.
Microprocesor - este un circuit integrat (LSI, VLSI) cu mii de
tranzistoare n structur care realizeaz funciile unitii centrale dintr-un
calculator.
Microcalculator - sistem de calcul n care unitatea central este un
microprocesor; un microcalculator mai cuprinde: blocuri de memorie,
circuite pentru transferul informaiei (porturi de intrare - ieire) i
dispozitive periferice - tastatur, monitor, unitate de discuri, imprimant
etc.

2
Hardware - totalitatea componentelor materiale ale unui sistem de
calcul (structuri mecanice, cabluri, cutii, circuite, etc.).
Software - totalitatea componentelor imateriale (programe de sistem
i de aplicaii) cu care este dotat un sistem de calcul. Pentru programele
complexe, nu exist nici o metod de verificare care s garanteze c este
fr erori de concepie. Doar utilizarea ndelungat n practic a unui
program poate duce la detectarea i eliminarea total a erorilor.
Sistem de operare - totalitatea programelor care permit
utilizatorului accesul deplin la toate resursele sistemului. Conine
programe cu denumiri specifice dup funciile realizate, care asigur
accesul la echipamentele periferice (tastatur, monitor, uniti externe de
memorie etc.) organizarea informaiei sub form de fiiere i o gam larg
de operaii asupra acestora (deschiderea, nchiderea, transferul, afiarea,
crearea, tergerea, modificarea i altele). Cele mai rspndite sisteme de
operare sunt MS-DOS, WINDOWS i UNIX.
Noiunea de memorie. Nu se poate nelege funcionarea unui
sistem programabil, ca microprocesorul de exemplu, fr a stpni
noiunea de memorie.
S considerm, de exemplu, o comod cu mai multe sertare
suprapuse, pe care le numerotm. Numrul fiecrui sertar este ceea ce
numim n general adres iar
Celule (locaii) de memorie
Adrese sertarul este n informatic
locaie de memorie. Pentru
1 1 1 1 0 0 0 0
0 0 1 1 sistemul de calcul, memoria
0 0 0 0 1 1 1 1
0 0 1 0 este un ir finit de locaii
numerotate (fig.1).
1 1 0 0 0 0 1 1
0009
O locaie este definit de
0 0 1 1 0 0 1 1
0 0 0 8 dou entiti informaionale:
0 0 0 7 coninutul i adresa.
1 1 0 1 1 1 0 1
Coninutul este un ir de
0006
1 1 0 1 0 1 1 1
cifre binare 0 sau 1 (Binary
0 0 0 5 Digit = bit) care poate
1 1 0 0 0 1 0 1
0 0 0 4 reprezenta o dat (un numr
0 1 1 1 0 1 1 1
0 0 0 3 sau un caracter n cod binar, o
0 1 0 1 1 1 1 1
stare, etc.) sau o comand
0002
0 0 0 0 0 0 0 0
(instruciune). Numrul de
0 0 0 1 cifre binare dintr-o locaie
0 0 0 1 1 1 0 1
dimensiunea
0 0 0 0 reprezint
0 1 0 1 0 1 0 1
locaiei (formatul memoriei)
Fig. 1. Reprezentarea memoriei
(pentru 8 bii se utilizeaz
(locaii de 8 bii)
denumirea "octet" iar pentru
16 bii - "cuvnt").

3
Adresa este numrul de ordine al unei locaii de memorie; adresa
permite identificarea fiecrei locaii n irul ordonat de locaii ce
alctuiesc memoria unui sistem de calcul.
Structura memoriei organizat pe locaii, cu delimitarea anumitor
zone este numit "harta memoriei".
Se pot evidenia dou astfel de zone:
- Memoria de date (locaiile conin "date");
- Memoria de programe (locaiile conin instruciuni codificate).
Instruciunea reprezint cea mai simpl operaie (comand) pe care
o poate transmite programatorul ctre o unitate central (care poate fi un
microprocesor). Unitatea central poate recunoate i executa numai
instruciunile codificate pentru care a fost construit; acestea formeaz
setul de instruciuni caracteristic unitii centrale.
Un ir de instruciuni, organizate logic dup un algoritm, formeaz
un program; prin intermediul programului, utilizatorul transmite sistemului
de calcul o anumit sarcin privind prelucrarea datelor (task). Noiunea
de task este mai larg dect cea de program: exist sarcini pentru a cror
ndeplinire sunt necesare mai multe programe.
Magistrala este un ansamblu de conexiuni electrice prin care
circul informaie de acelai tip avnd ca suport semnale electrice; n
funcie de tipul informaiei, magistralele sunt de trei categorii: de date, de
adrese i de control. O caracteristic de baz este dimensiunea
magistralei, adic numrul liniilor de conectare; avem astfel magistrale de
8 bii (cu 8 linii de conectare), magistrale de 16 bii (cu 16 linii de
conectare), etc. Dimensiunea fiecrei magistrale este determinat de
structura unitii centrale i determin la rndul su structura memoriei
(numrul de bii pe locaie) i a porturilor de intrare / ieire.
Prin cuvntul magistral se nelege de regul i ansamblul de
circuite electronice (amplificatoare uni- sau bi-direcionale) care sporesc
puterea semnalelor electrice (pentru fan-out mai mare) i aduc nivelul
(tensiunea) la valoarea standard.
Magistralele unidirecionale pot transmite informaia ntr-un singur
sens iar cele bidirecionale, n ambele sensuri (sensul de transmisie este
controlat de unitatea central). Magistrala de adrese este unidirecional
(de la unitatea central spre sistem) iar magistralele de date i de control
sunt bidirecionale.
La o magistral se cupleaz n paralel mai multe blocuri de acelai
tip sau de tipuri diferite; acestea devin active succesiv sub comanda
unitii centrale; astfel UC coordoneaz toate transferurile din sistem.

1.2 Structura sistemelor de calcul


Orice sistem numeric de prelucrare a datelor, primete din exterior
date binare pe care le prelucreaz pe baza unor programe de lucru
existente n memorie. Rezultatele prelucrrii sunt transmise ctre exterior
prin uniti specializate.
Principalele componente hardware sunt vizibile n structura din
figura 2, care este valabil att pentru sisteme simple (calculator de
buzunar), ct i pentru sisteme complexe de calcul.
UCP - unitate central de procesare (microprocesor n cazul n care
sistemul de calcul este un microcalculator). Ea conine o unitate
central de comand - UCC i o unitate aritmetic i logic - UAL;
Memoria;
Uniti de intrare / ieire - I/E;
1. UCC are rol de prelucrare a datelor i de coordonare a ntregului
sistem. Prin intermediul magistralelor extrage succesiv din memorie
instruciuni, le interpreteaz i genereaz semnale de comand ctre
unitile de prelucrare a datelor. Operaiilor aritmetice i logice sunt
efectuate de unitatea UAL.
UCP

Mag.de adrese
Mag. de date

UAL
Mag. de control

UCC

MEMORIA

Uniti I / E
Unitate
de
Intr/ieiri

Unitate
de
intrare

Unitate
de
ieire

Figura 2. Structura unui sistem de calcul

2. Memoria pstreaz programe i date. Programele sunt stocate n


memorie sub form de iruri de instruciuni iar datele sunt operanzi sau
rezultate ale prelucrrilor. Datele sunt numere binare (iruri de ''0'' i ''1'')
iar instruciunile sunt comenzi de prelucrare, care dei se prezint tot ca

5
iruri de cifre binare, vor fi numitecoduri. Anumite zone de memorie vor
fi utilizate pentru programe iar altele, pentru date.
Controlul asupra coninutului memoriei revine exclusiv unitii
centrale; blocul de memorie nu are nici un control asupra semnificaiei
informaiei pe care o conine.
3. Unitile sau dispozitivele de intrare/ieire (notate I/E sau
Input/Output=I/O) realizeaz legtura dintre sistemul de calcul i lumea
exterioar. O unitate elementar de tip I/O este numit n mod curent port
de intrare/ieire. ntre porturi i locaiile de memorie exist asemnri
dar i deosebiri fundamentale.
Ca i locaiile de memorie, porturile sunt adresabile (fiecare port are
o adres proprie de identificare); operaiile pe care unitatea central le
poate efectua cu porturile sunt: ''scriere port'' - transfer de date la port i
''citire port'' - transfer de date de la port la UCC (aceleai operaii se
efectueaz i cu locaiile de memorie).
Deosebirea esenial fa de locaiile de memorie este legtura pe
care porturile o realizeaz cu echipamentele externe (periferice):
tastatur, monitor, uniti de memorie externe (disc, band), imprimant,
alte echipamente specifice unor procese industriale ( traductoare,
echipamente de for, de semnalizare etc.). Aceast funcie a porturilor de
''puncte de frontier'' determin i alte deosebiri fa de locaiile de
memorie:
Informaia primit prin intermediul porturilor este tot timpul ''de
actualitate'' - informaie nou pentru UCC.
Informaia ''scris'' ntr-un port nu este stocat n mod pasiv, ca ntr-o
locaie de memorie ci are efect asupra unui periferic (aprinde luminile
oraului, declanaz sistemul de propulsie al unei rachete cosmice).
Operaiile cu porturile sunt realizate de UCC prin instruciuni
specifice, de tip IN (Input) sau OUT (Output), altele dect cele cu
memoria, MOV, PUSH, POP etc.
Din punct de vedere software, un sistem de calcul dispune de dou
componente fundamentale.
1. Sistemul de operare - totalitatea programelor care asigur accesul
utilizatorului la resursele sistemului ( MS-DOS, WINDOWS, UNIX etc.).
Programele, cu denumiri specifice dup funciile realizate, asigur accesul
i controlul dispozitivelor periferice, organizarea informaiei n memoria
intern, ncrcarea i execuia programelor de aplicaii etc.
Fr un sistem de operare, calculatorul este o cutie inutil.
2. Programele de aplicaii - introduse de utilizator n scopul
rezolvrii sarcinilor proprii. Acestea au o varietate practic nelimitat.

1.3 Arhitectura de baz a unui microprocesor


Acest capitol se refer la structura intern a unui microprocesor
"standard", unitile interne fiind prezente sub form mai simpl sau mai
complex la toate tipurile de microprocesoare .
Dei exist o mare varietate de microprocesoare, produse de diferite
firme, cu multe deosebiri n structura i tehnologia lor de fabricaie, toate
au o schem structural comun, rezultat din operaiile de baz pe care le
efectueaz. Caracteristicile structurale i funcionale comune rezult din
filosofia proiectrii microprocesoarelor, ca instrumente complexe pentru
realizarea unor sisteme numerice flexibile, rapide, puternice i la un pre
de cost deosebit de avantajos.

Magistrala intern de date

T
F

UAL

UCC

Memorie (registre)
R1
R2
:
Rk

Unitate de adresare
a memoriei externe

R
D

Magistrala
de date

R
A

Memorie
(microcod)

Unitate de instruciuni

Magistrala
de adrese

Magistrala de
control
Fig. 3 Arhitectura standard a unui microprocesor

Structura de baz conine 5 uniti cu funcii specifice: unitatea de


comand i control - UCC, unitatea aritmetic i logic - UAL, memoria
intern (format din registre = locaii), unitatea de adresare a memoriei
externe i unitatea de instruciuni.
1.3.1. Memoria intern
Este format din registre cu dimensiunea (numr de celule de
memorie) egal cu cea a magistralei de date.

7
Registrele, notate R1, R2, . . . ,Rk, sunt numite "de uz general"
deoarece, prin intermediul instruciunilor, n acestea se pot stoca temporar
date de orice tip (numerice, alfanumerice, date de intrare - ieire, adrese,
instruciuni etc.). n mod frecvent, n registrele de uz general se stocheaz
operanzi i rezultate intermediare ale prelucrrilor numerice; registrele
fiind conectate la magistrala intern de date, transferul datelor este rapid
i facil.
Setul de registre de uz general constituie un atribut de arhitectur
deoarece aceste registre sunt la dispoziia programatorului; acesta le
utilizeaz prin intermediul instruciunilor. Pentru a fi uor de utilizat,
registrele au un nume format din una sau mai multe litere: A, B, C, . . ,
AX, BX, . . , EAX, EDI, EDS etc.
1.3.2. Registrul de date i registrul de adrese
Dou registre, RA i RD prin care se realizeaz conectarea cu
magistralele externe de date i adrese, au rol cu totul special n structur.
DI 0

D
C Q

DO 0

DI 1

D
C Q

DO 1

DI 2

D
C Q

DO 2

D
C Q

DO 3

D
C Q

DO 4

D
C Q

DO 5

D
C Q

DO 6

D
C Q

DO 7

DI 3
DI 4

DI 5
DI 6
DI 7
STB

DE

Fig. 4. Schema unui registru de 8 bii

Registrul de date RD memoreaz temporar datele magistralei pe care


o deservete. Datele ce se transfer spre exterior sunt meninute pe
magistral pn cnd dispozitivele externe (de regul mai lente dect
procesorul) le recepioneaz n registrele proprii. Datele transferate prin
magistral spre microprocesor se consider recepionate dup nscrierea n
RD, care fiind conectat la magistrala intern de date devine surs de date
pentru blocurile interne.

8
Similar, registrul de adrese RA are rolul de a menine o adres pe
magistrala extern de adrese un timp suficient pentru ca memoria i
porturile s o poat nregistra pentru realizarea funciei de selecie.
Cele dou registre, RA i RD sunt invizibile pentru utilizator.
n figura 4 este prezentat schema de principiu a unui registru de 8
bii care poate fi utilizat ca tampon pentru magistrala de adrese (RA).
Pentru o magistral de 16 bii, se utilizeaz dou registre de 8 bii.
Registrul din figur are i rol de amplificator de magistral,
asigurnd un fan - out de 20 intrri TTL. Informaia de la intrrile DI
apare al ieirile DO pe nivelul 1 logic al semnalului STB i este memorat
n cele 8 circuite basculante bistabile de tip D. Pentru ca informaia s fie
disponibil la ieiri, este necesar ca semnalul de validare DE = 0.
1.3.3. Unitatea aritmetic i logic (UAL)
Acest bloc funcional execut prelucrarea dat elor. Funciile
realizate de unitate sunt:
funcii aritmetice: adunare, scdere, nmulire, mprire;
funcii logice: I, SAU, SAU EXCLUSIV, NU i complement.
Fiecare funcie este activat de o instruciune corespunztoare care
furnizeaz i operanzii implicai n operaie.
Pentru realizarea funciilor sale, unitatea aritmetic i logic
utilizeaz cteva registre speciale care fac parte integrant din UAL:
Acumulatorul
Registru de uz general care este utilizat de UAL pentru stocarea
unuia dintre operanzi i pentru rezultatul operaiei; din acest punct de
vedere are un rol cu totul special n comparaie cu celelalte registre de uz
general.
Registrul F
Este registrul fanioanelor de condiii (Flags) i conine celule de
memorie independente, cu funcii specifice, pentru nregistrarea unor
informaii ce rezult din operaiile aritmetice i logice (semnul
rezultatului, paritatea, existena bitului de transport sau mprumut,
depirea domeniului i altele). n ansamblu, indicatorii de condiii
exprim starea unitii aritmetice i logice.
Registrul de deplasare
Este utilizat pentru deplasri spre stnga sau spre dreapta a unui
operand. Deplasrile se pot face cu unul sau mai muli bii. Deplasarea
spre stnga cu un bit este echivalent cu nmulirea cu 2 iar cea spre
dreapta, cu mprirea prin 2.
La microprocesoarele de 8 bii, acumulatorul este folosit i ca
registru de deplasare ns la microprocesoarele evoluate exist un registru
special cu aceast funcie, care nu este vizibil pentru programator.

9
Deplasrile spre stnga sau spre dreapta se realizeaz sub comanda unor
instruciuni specifice care acioneaz asupra unui registru de uz general
sau unei locaii de memorie. Pentru realizarea operaiei, coninutul
registrului sau locaiei se transfer n registrul de deplasare, se execut
deplasarea i apoi rezultatul se transfer napoi n registru sau locaie.
Pentru programator operaiile secundare sunt invizibile.
1.3.4. Unitatea de adresare a memoriei externe
Rolul acestei uniti este calcularea adresei unui operand aflat n
memoria extern, ncrcarea acesteia pe magistrala de adrese i controlul
transferului ntre memorie i microprocesor.
n memoria extern se adreseaz instruciuni i operanzi. Pentru
instruciuni se utilizeaz un registru special de adres, PC (Program
Counter) - numrtor de program sau IP (Instruction Pointer) - indicator
de instruciuni; coninutul su crete cu o unitate dup citirea fiecrui
octet.
Pentru adresarea operanzilor (datelor) se utilizeaz registre de
adresare numite ''index''. Adresa se poate obine direct din registru sau
prin adunarea (scderea) unui deplasament (constant specificat n
instruciune). Adresarea datelor se poate face i direct, prin ncrcarea
adresei n registrul RA; n acest caz, adresa este furnizat de instruciune.
1.3.5. Unitatea de comand i control
Coordoneaz funcionarea tuturor unitilor interne pentru execuia
operaiilor coninute n mod codificat n instruciuni.
Funciile unitii de comand sunt:
Extragerea instruciunii din memoria extern.
Se ''citete'' instruciunea din zona care conine programul aflat n
execuie. Instruciunea are dou zone de informaie: zona de cod, care
conine operaia caracteristic instruciunii i zona de date (operanzi).
Zona de cod se ncarc n registrul de instruciuni, aflat n unitatea de
instruciuni.
Decodificarea instruciunii.
Fiecare instruciune are ca efect o succesiune specific de operaii
elementare, numite microoperaii. Secvena de microoperaii este generat
de unitatea de comand pe baza codului instruciunii; determinarea acestei
secvene n funcie de cod, este numit ''decodificare''.
Execuia propriu-zis const n activarea succesiv a unitilor
interne pentru efectuarea operaiilor din secvena corespunztoare
instruciunii.
Codul instruciunii permite obinerea tuturor informaiilor necesare
execuiei operaiilor impuse de instruciune:

10
- numrul de octei din formatul instruciunii;
- tipul operaiei principale (adunare, scdere, transfer, salt etc.);
- numrul operanzilor implicai n operaie;
- adresa fiecrui operand ( dac este operand aflat temporar ntr-un
registru intern, se specific acest registru; dac este operand n memorie,
se specific adresa sau cum se obine adresa lui).
Fiecare instruciune corespunde unei operaii fundamentale, care, n
general se realizeaz n mai multe etape. Execuia unei instruciuni este un
ir de operaii elementare:
starea - corespunde unei perioade de tact (T) i este durata unei
operaii elementare (de exemplu, incrementarea unui registru);
ciclul main - conine 3 - 5 stri i corespunde unei etape din
execuia unei instruciuni (de exemplu, citirea unei locaii de
memorie, transferul de date ntre un registru intern i o locaie de
memorie etc.); o instruciune conine 1 - 5 cicluri main, dintre care
primul ciclu main este de citire memorie (citirea codului instr.).
T1

stare

T2

stare

T3

stare

T4

T5

stare

stare
t

CM
t
CM (ciclu main)

Fig.4 Diagrama semnalului de tact i delimitarea unui ciclu main

n desfurarea n timp a unei instruciuni, unitatea de comand i


control selecteaz i adreseaz unitile interne ale microprocesorului care
realizeaz funcii specifice rolului lor.
Realizarea concret a unitii de comand i control (UCC) este
specific fiecrui tip de microprocesor i determin multe din
performanele sale.
Ca structur, UCC este un automat finit, care funcioneaz pe baza
unui microprogram introdus n procesul de fabricaie. Acest microprogram
nu poate fi modificat de utilizator i corespunde setului de instruciuni,
fiind un interpretor de instruciuni. De aceea, setul de instruciuni este de
asemenea fix pentru fiecare tip de microprocesor.

11

Magistrala de date
RI

Decodor
.
Semnale
de
control
interne .
.

Magistrala de control

Bloc de comand
i sincronizare

Semnale de comand pentru unitile interne

Fig. 5 Structura unitii de comand i control

n figura de mai sus este prezentat structura general a unitii de


comand i control. Registrul de instruciuni (RI) memoreaz temporar
codul instruciunii, care este ncrcat din memorie prin intermediul
magistralei externe de date. Decodorul identific instruciunea n cadrul
setului de instruciuni; informaia privind instruciunea curent este
transferat blocului de comand.
Blocul de comand i sincronizare, pe baza unui microprogram de
interpretare, genereaz semnalele de comand ctre unitile interne de
execuie.

1.4 Principiul de funcionare al unui microprocesor


Programul este compus din instruciuni care se afl n memorie.
Citirea instruciunilor din memorie se face n sensul cresctor al adreselor
la care sunt memorate. Activitatea microprocesorului const, n principal,
n execuia instruciunilor una cte una, n ordinea n care se afl n
program. Principalele etape sunt aadar:
citirea instruciunii din memorie i stocarea sa ntr-un registru intern;
decodarea instruciunii, adic identificarea operaiilor coninute sub
form codificat n instruciune;

12
executarea operaiilor ntr-o anumit ordine.
Fiecare instruciune are o anumit adres. Pentru citirea instruciunii
este necesar ncrcarea adresei pe magistrala de adrese pentru a se
realiza accesul la locaia de memorie. Microprocesorul trebuie s dispun
n permanen de adresa instruciunii curente, din care, prin incrementare
obine adresa instruciunii urmtoare. n acest scop se utilizeaz un
registru de adresare, numit, n general, numrtor de program (PC Program Counter) sau indicator de instruciuni (IP - Instruction Pointer)
care conserv n permanen adresa curent.
Microprocesor

Memorie
Numrtor (PC)

Unitatea
de
comand

Registru de instruciuni

Decodor

Unitate de execuie

Acumulator

Fig.6 Etapele tratrii unei instruciuni

Primul octet al unei instruciuni (uneori i al doilea) este totdeauna


octet de cod; el este ncrcat temporar n registrul RI (registrul de
instruciuni). Un octet d o informaie direct de 8 bii, adic 16 stri,
ceea ce este insuficient pentru setul de instruciuni. De aceea,
instruciunile sunt codificate pe 8 bii, ceea ce permite utilizarea tuturor
combinaiilor binare, n total 256; dac se utilizeaz doi octei de cod,
numrul maxim de instruciuni codificabile este 256 x 256.
Pentru obinerea informaiei din codul instruciunii, este necesar
operaia de decodare (decodorul are 8 intrri i 256 ieiri, cte una pentru
fiecare instruciune codat) i transformarea ieirilor decodorului n
comenzi electrice care urmeaz s activeze unitile interne care vor
executa operaiile prestabilite. De exemplu, o comand de adunare
activeaz unitatea aritmetic pentru operaia de adunare.
Decodarea instruciunii furnizeaz i informaia privind numrul de
octei pe care l conine. Astfel, unitatea central poate separa
instruciunile din irul de octei al programului. Unele instruciuni conin
pe lng unul sau doi octei de cod i operanzi. Acetia sunt transferai n
registrele de uz general, RI fiind rezervat exclusiv pentru coduri. Dup
citirea unui octet din program, numrtorul de program (PC) este

13
incrementat (coninutul crete cu o unitate: PC+1), fiind astfel pregtit
pentru extragerea octetului urmtor, care se afl n memorie la adresa
urmtoare n sens cresctor.
Registrul PC se comport asemntor cu indicatorul kilometric al
unui automobil: el indic permanent numrul de kilometri parcuri i
crete cu o unitate imediat ce a fost parcurs nc un kilometru.
1.4.1. Ceasul microprocesorului
Circuitele de comand i cele care genereaz secvenele de operare,
pun n funciune diferite uniti interne ale microprocesorului la anumite
momente. UCC fiind un automat secvenial cu numr finit de stri,
funcioneaz pe baza unor impulsuri de tact. Acestea sunt produse de un
generator electronic pilotat de un cristal de cuar, care asigur stabilitatea
frecvenei la variaia tensiunii de alimentare i a temperaturii. Generatorul
de tact poate fi un circuit specializat extern sau poate fi coninut n
structura intern a microprocesorului (Fig.7).

Microprocesor

Qz

Generator de tact

Qz

Generator de tact

Microprocesor

Fig.7 Relaia generator de tact - microprocesor

Frecvena impulsurilor de tact determin viteza de execuie a


instruciunilor. O operaie elementar se efectueaz ntr-o singur
perioad de tact. Viteza de operare, exprimat n operaii/secund, va fi:
v = f = T1 op/ sec .
unde f este frecvena (n Herz) iar T este perioada (n secunde).
De exemplu, la o frecven de 100 MHz, rezult o vitez de operare
de 100 000 000 de operaii elementare pe secund.
Nu se pot msura foarte riguros performanele unui microprocesor,
deoarece nu exist un instrument cu asemenea funcie.
Evaluarea performanelor se face prin compararea diferitelor tipuri
de microprocesoare ntre ele, pe baza unor criterii unanim recunoscute.

14

Viteza de operare, de exemplu, se exprim prin mai muli parametri:


Frecvena de tact, exprimat n MHz; cu ct este mai mare, cu att
viteza de execuie crete. Frecvena nu exprim ns foarte exact
viteza de execuie a instruciunilor; n cazul apelrii la subrutine, este
necesar un interval de timp pentru schimbarea adresei curente. Unui
microprocesor i sunt necesare 10 perioade de tact pentru a executa
saltul iar altuia, 20 de perioade. Dac s-ar dubla frecvena de tact la
cel de-al doilea, durata saltului rmne aceeai!
Numrul de instruciuni pe secund; se exprim n MIPS (Milioane de
Instruciuni Pe Secund). Durata de execuie (exprimat n perioade
de tact), difer foarte mult n funcie de tipul instruciunii. Cele mai
lungi instruciuni sunt cele pentru operaii aritmetice n virgul
mobil; de aceea, unitatea recunoscut este FLOPS (Floating Point
Operation per Second).
La compararea calculatoarelor, totul se complic, deoarece pe lng
performanele unitii centrale intervin cele de sistem: viteza de transfer
pe magistrale, viteza de operare a discului, a monitorului. Au fost
concepute programe test speciale pentru evaluarea performanelor prin
msurarea timpului de execuie pe diferite calculatoare. Orice program,
ns, favorizeaz o anumit arhitectur n detrimentul alteia.

1.4.2. Exemplu de execuie a unui program simplu


Exemplul urmtor este real dar corespunde microprocesoarelor de 8
bii, care dei au performane modeste, prezint avantajul simplitii.
Urmrirea etapelor de execuie nu este foarte dificil iar valoarea
pedagogic este considerabil.
Problema const n adunarea 5+12, rezultatul fiind ncrcat n
registrul acumulator.
Vom privi problema din punctul de vedere al programatorului, care
are acces doar la registrele interne i la locaiile de memorie.
Instruciunile i operanzii (5 i 12) se afl n memorie.
Secvena complet de operaii este urmtoarea:
Prima instruciune transfer numrul 5 din memorie n acumulator;
A doua, comand adunarea lui 12 la coninutul acumulatorului;
Rezultatul adunrii rmne n acumulator.
Organigrama programului (schema logic) este dat n fig.8.

15

Start program

Pune 5 n acumulator

Adaug 12 la acumulator

Sfrit de program
Fig. 8 Schema logic a programului

Programul din memorie va conine aadar dou instruciuni, care


conin i operanzii. Vom presupune c programul ncepe la adresa 0105.
Pentru a fi executat de microprocesor, programul trebuie scris n cod
main (n sistem binar sau n hexazecimal) i ncrcat n memorie, octet
cu octet ncepnd cu locaia de memorie cu adresa 0105.
n setul de instruciuni al microprocesorului cutm instruciunile
corespunztoare. Pentru aceasta, este necesar manualul de utilizare; vom
folosi manualul de utilizare al microprocesorului Intel 8085, unde gsim
toate informaiile necesare, cu privire la instruciuni.
MOV A, d8
ADD A, d8

; ncarc n acumulator data de 8 bii


; adun data la acumulator, rezultatul n A.

Vom nlocui n corpul fiecrei instruciuni operanzii generici, cu 5 i 12.


Instruciunea

Descrierea

Cod Hexa

Cod binar

MOV A, 05H

ncarc n acumulator numrul 05


(05 n Hexa este tot 05)

3E
05

0011 1110
0000 0101

ADD A, 0CH

Adun 12 la acumulator
(12 n Hexa este C)

C6
0C

1100 0110
0000 1100

Cei 4 octei (din ultimele dou coloane ale tabelului) definesc n


totalitate programul.
Programul se ncarc n memorie, octet cu octet, de la adresa 0105.
Celulele de memorie fiind circuite bistabile (binare), n memorie vom gsi
programul sub form de cod binar (ultima coloan).

16

Coninutul locaiei

Adresa

0 0 1 1 1 1 1 0

0105

0 0 0 0 0 1 0 1

0106

1 1 0 0 0 1 1 0

0107

0 0 0 0 1 1 0 0

0108
0109

Fig. 9 Aspectul programului n memorie


n continuare vom derula ''filmul'' operaiilor care au loc pentru
execuia programului. Este pus n eviden principiul fundamental al
rulrii programelor ntr-un sistem numeric de calcul.
Etapa 0: situaia iniial
Ne intereseaz coninutul numrtorului de program (PC), al
registrului de instruciuni (RI) i al registrului acumulator (A).
PC conine adresa primei instruciuni (0105), acumulatorul conine
data rmas din operaii anterioare, care nu mai intereseaz pe nimeni iar
registrul RI conine codul unei instruciuni anterioare, care, de asemenea
nu ne intereseaz.
Magistrala intern de date

UAL

(registre)

RI
X X X X

X X X X

R
D
X X X X

Decodor

:
PC= 0105
0011 1110
0000 0101
1100 0110
0000 1100

UCC

(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memoria

Fig. 10 Adresarea memoriei pentru extragerea primului octet

Etapa 1: Citirea primului octet. Coninutul contorului (PC) se


ncarc pe magistrala de adrese, ceea ce are ca efect selectarea locaiei cu
adresa 0105, care conine primul octet al instruciunii ( de cod).

17

Magistrala intern de date

R
D
A

(registre)

RI
0011 1110

Decodor

UAL

:
PC= 0106
0011 1110
0000 0101
1100 0110
0000 1100

UCC

(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memorie

Fig. 11 ncrcarea octetului de cod n RI i decodarea

Dup citirea primului octet, contorul de program este incrementat


automat, aadar coninutul lui devine PC = 0106.
Dup decodare, UCC obine informaia privind octetul de date i
comand citirea lui i ncrcarea n registrul A; UCC ''tie'' c al doilea
octet este ultimul i deci va urma eventual alt instruciune.
Magistrala intern de date

R
D
A

(registre)

RI
0011 0101

UAL

Decodor

:
PC= 0106
0011 1110
0000 0101
1100 0110
0000 1100

UCC
(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memorie

Fig. 12 Citirea celui de-al doilea octet al instruciunii (primul operand)

Etapa 2: Citirea octetului al doilea (operandul 05). Coninutul


contorului (PC) se ncarc pe magistrala de adrese, ceea ce are ca efect
selectarea locaiei cu adresa 0106, care conine al doilea octet al

18
instruciunii - octetul de date. Acesta va fi ncrcat n registrul A, conform
comenzii primei instruciuni. Dup citirea octetului de date, n mod
automat, coninutul contorului devine PC = 0107.
Magistrala intern de date

R
D
A

(registre)

RI

0000 0101

0011 0101

Decodor

UAL

:
PC= 0107
0011 1110
0000 0101
1100 0110
0000 1100

UCC
(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memorie

Fig. 13 ncheierea execuiei primei instruciuni

Etapa 3: Citirea octetului de cod (instruciunea a doua).


Se efectueaz aceleai operaii ca n etapa 1, dar locaia de memorie
selectat este 0107, n care se afl codul instruciunii a doua.
Magistrala intern de date

R
D
A

T
0000 0101

(registre)

RI
0011 0101

UAL

Decodor

:
PC= 0107
0011 1110
0000 0101
1100 0110
0000 1100

UCC
(microcod)

Microprocesor

Memorie

Fig.14 Citirea locaiei cu adresa 0107, codul instruciunii a doua

0105
0106
0107
0108
0109

19

Magistrala intern de date

R
D
A

(registre)

RI
1100 0110

0000 0101

Decodor

UAL

:
PC= 0108
0011 1110
0000 0101
1100 0110
0000 1100

UCC

(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memorie

Fig. 15 Decodarea instruciunii a doua (de adunare)

Etapa 4: Citirea octetului al doilea .


Acesta reprezint al doilea operand ce va fi ncrcat n registrul
temporar T, al unitii aritmetice UAL (fig. 16, 17). Transferul n T se
execut pe baza comenzii codificate n instruciunea ADD A, 0C - de
adunare a operandului 0C la acumulator; aceeai instruciune comand
operaia de adunare A+T i plasarea rezultatului n registrul A (fig.18).
Magistrala intern de date

R
D
A

T
0000 0101

UAL

(registre)

RI
1100 0110

Decodor

:
PC= 0108
0011 1110
0000 0101
1100 0110
0000 1100

UCC

(microcod)

Microprocesor

Memorie

Fig. 16 Citirea octetului al doilea al instruciunii de adunare.

0105
0106
0107
0108
0109

20

Magistrala intern de date

R
D
A

T
0000 0101

(registre)

RI
1100 0110

0000 1100

Decodor

UAL

:
PC= 0109
0011 1110
0000 0101
1100 0110
0000 1100

UCC

(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memorie

Fig. 17 ncrcarea octetului 0C n registrul temporar T

Operaia de adunare A+T se face ntr-o singur perioad de tact iar


rezultatul este plasat n A prin intermediul magistralei interne de date la
care registrul A este conectat.
Magistrala intern de date

R
D
A

T
0001 0001

0000 1100

UAL

(registre)

RI
1100 0110

Decodor

:
PC= 0109
0011 1110
0000 0101
1100 0110
0000 1100

UCC

(microcod)

Microprocesor

0105
0106
0107
0108
0109

Memorie

Fig. 18 Efectuarea adunrii A+T, rezultatul fiind 0001 0001=17

n fig.19, 20, sunt prezentate cele dou instruciuni descompuse n


operaii elementare (conform manualului de utilizare Intel); sunt delimitate
perioadele de tact i ciclurile main. Pentru prima instruciune, ciclul
main CM1:

21
T1: coninutul numrtorului PC este ncrcat pe magistrala de
adrese iar pe magistrala de date se ncarc temporar cuvntul de stare
(Status).
T2: se incrementeaz PC pentru citirea locaiei urmtoare.
Tw: dac citirea memoriei dureaz mai mult de o stare, se insereaz
automat o stare de ateptare ( wait).
T3: codul instruciunii se transfer n registrul de instruciuni.
T4: se face decodarea octetului de cod.
Ciclul main CM2:
T1: coninutul numrtorului PC este ncrcat pe magistrala de
adrese iar pe magistrala de date se ncarc temporar cuvntul de stare
(Status).
T2, (Tw), T3: data din locaia adresat se copiaz n A
(acumulator).
;se transfer octetul 05H n acumulator

MOV A, 05H
M1
T1
PC out
Status

M2
T2

T3

PC=PC+1

Cod

T4
RI

T1
PC out
Satus

Decod.

T2

T3

PC=PC+1

Data

Tw

Tw

Fig. 19 Desfurarea n timp a instruciunii MOV A, 05H

n cazul instruciunii ADD A, 0CH, desfurarea n timp este


asemntoare (fig.20), cu deosebirea c al doilea ciclu main are 4 stri,
copierea operandului se face n registrul T iar n ultima stare se face
adunarea A+T cu depunerea rezultatului n A.
;se adun octetul 0C la acumlator
;rezultatul se obine n acumulator.

ADD A, 0CH
M1
T1
PC out
Status

M2
T2

T3

PC=PC+1
Tw

Cod

T4
RI

Decod.

T1
PC out
Satus

T2

T4

T3

PC=PC+1

Data

Tw

Fig. 20 Desfurarea n timp a instruciunii ADD A, 0CH

A+T

22

2 Magistrale i standarde de
magistral
2.1 Conceptul de magistral
Microprocesorul schimb informaii nu numai cu memoria dar i cu
lumea perifericelor ( tastatur, mouse, ecran, imprimant, modem etc.). El
dialogheaz cu aceste periferice prin intermediul circuitelor de interfa,
numite nc de ''intrare/ieire'' (I/O - input/output). Toate perifericele
trebuie s poat fi nominalizate individual prin adrese specifice; aceste
adrese nu se confund cu cele de memorie, deoarece ele sunt active
simultan cu comenzi specifice numai circuitelor de interfa.
Comunicarea cu memoria i perifericele se realizeaz prin linii
paralele de transfer de date, magistrale.
Magistrala este un mediu comun de comunicaie ntre componentele
unui sistem de calcul; fizic, este format din linii electrice prin care
circul semnale de acelai tip i amplificatoare electronice pentru
meninerea nivelului de tensiune n condiiile creterii numrului de
componente conectate.
Orice magistral este generat i controlat de o unitate specializat,
de regul unitatea central a sistemului. Aceast unitate iniiaz dialogul
cu alte uniti conectate la magistral (uniti de intrare/ieire, memorie).
Dialogul este totdeuna de tipul UC unitate secundar i nu ntre dou
uniti secundare.

Unitate
central

:
:

Decodor

Ampl. de
magistral

Magistral bidirecional

C1
Sel

C2
Sel

C3
Sel

C4
Sel

linii de selecie

Fig. 1 Comunicare ntre UC i componenta C3, prin magistral.


Celelalte componente conectate sunt pasive

n fig.2, este prezentat amplificatorul de magistral Intel 8286,


bidirecional, pe 8 bii, cu ieiri cu trei stri i fan-out 20 pentru ieirile
B, 6 pentru ieirile A.

23
Circuitul realizeaz funciile de amplificare i transfer atta timp ct
semnalul DE = 0. Dac DE = 1 , ieirile trec n starea de nalt impedan.
Sensul transferului este stabilit de intrarea T: dac T=1, transferul se face
de la A la B iar dac T=0, de la B la A.
A0
B0
A1
B1
A2
B2
A3
B3
A4
B4
A5
B5
A6
B6
A7
B7
DE

Fig. 2. Schema unui amplificator bidirecional de magistral (Intel 8286)

Introducerea conceptului de magistral a revoluionat modul de


concepere i proiectare a sistemelor de calcul. Modelul de calculator
bazat pe magistral a fost preluat mai ales de familiile de mini i micro
calculatoare. Prin standardizarea magistralelor, sistemele de calcul au
devenit deschise, n sensul c productorii de componente au putut s
realizeze module de memorie, interfee de intrare / ieire, echipamente
periferice, pentru familii mari de calculatoare, bazndu-se numai pe
specificaiile magistralei.
Au fost dezvoltate diferite standarde de magistral, urmrind
evoluia microprocesoarelor utilizate ca uniti centrale i implicit a
necesitilor lor de comunicare (vitez, mod de transfer, sincronizare
etc.).

24
S-au dezvoltat magistrale specializate pentru anumite tipuri de
echipamente periferice ( uniti de disc, console grafice etc.).
Din acest punct de vedere se pot distinge dou clase de magistrale:
Magistrale de sistem - dezvoltate n special pentru conectarea
unitii centrale cu celelalte componente de baz ale sistemului: ISA,
EISA, MULTIBUS, PCI;
Magistrale specializate - care sunt destinate optimizrii transferului
de date ntre sistem i anumite tipuri de periferice: VESA, SCSI,
GPIB.
Apariia i evoluia rapid a microprocesoarelor a consacrat modelul
de calculator bazat pe magistral. Semnalele generate de microprocesor
sunt concepute tocmai pentru conectarea la o magistral de sistem.
Microprocesor
Magistral intern

Memorie

Interfa de
magistral
Magistral standard

Interfa video

ISA, EISA, MCA

Interfa hard disc

Intrri / Ieiri

Fig.3 Microprocesorul genereaz magistrala intern (de date, adrese,


i de control). Interfaa de magistral face corespondendena cu
magistrala standard (extins).

Dei familiile de microprocesoare sunt diferite, n funcie de


productor, totui numeroase caracteristici ale magistralelor lor sunt
comune ( principii de transfer, tipuri de semnale, dimensiune), astfel c
modulele proiectate pentru o anumit magistral pot fi adaptate uor
pentru alta.

2.2 Elementele de baz ale unei magistrale


O magistral, care din punct de vedere fizic este constituit din linii
conductoare i amplificatoare de semnal, din punct de vedere funcional se

25
compune dintr-un set de semnale electrice i un set de reguli care
guverneaz accesul la comunicaie i transferul de informaii.
Informaiile transferate pot fi: date, instruciuni, informaii de
control i sincronizare. Regulile de funcionare se refer la:
caracteristicile fizice i electrice ale componentelor conectate la
magistral (niveluri de tensiune, cureni, ncrcare, tip conectori);
secvena de generare a semnalelor necesare pentru transfer;
timpi limit pentru diferite faze ale unui transfer i timpi de meninere
a unui anumit semnal;
dependene funcionale i temporare ntre diferite tipuri de semnale.
n funcie de numrul liniilor utilizate pentru transferul de date,
magistralele sunt de dou tipuri: paralele i seriale.
Cele seriale se utilizeaz n principal pentru comunicaie ntre
sisteme de calcul aflate la distan (reele de calculatoare).

2.3 Magistrale paralele


O magistral paralel se compune din urmtoarele tipuri de semnale:
semnale de date - utilizate pentru transfer de date n ambele sensuri;
la un moment dat o singur unitate poate s emit pe liniile de date;
numrul liniilor de date ( 8, 16, 32, 64) determin dimensiunea
cuvntului de date ce poate fi transferat i viteza de transfer;
semnale de adres - avnd rolul de adresare a modulului destinaie
sau surs; numrul liniilor de adres determin dimensiunea spaiului
de adresare al magistralei;
semnale de comand - specific direcia de transfer (dinspre procesor
sau ctre procesor) i tipul componentei adresate (modul de memorie,
dispozitiv de intrare/ieire, controler de ntreruperi etc.).
semnale de control - stabilesc condiiile de transfer pe magistral;
semnale de ntrerupere - semnalizeaz apariia unor evenimente
interne sau externe i determin ntreruperea execuiei programului
curent;
semnale de tact - au rol de sincronizare i permit generarea unor
semnale de frecven programabil;
semnale de alimentare - utilizate ca tensiuni de alimentare pentru
componentele sitemului;
semnale de control acces - utilizate pentru arbitraj i pentru controlul
accesului la magistral, n cazul magistralelor multimaster.

26
Numrul i semnificaia particular a semnalelor depinde de tipul i
destinaia magistralei. Anumite grupe de semnale pot lipsi i alte grupe
pot fi adugate (semnale de eroare, de control paritate etc.).
Clasificare
1. Dup modul de lucru, n raport cu semnalul de tact:
magistrale sincrone - ciclurile de transfer sunt corelate cu semnalul
de tact. Dimensiunea magistralei este limitat de frecvena semnalului
de tact.
magistrale asincrone - nu exist o legtur direct ntre ciclul de
transfer i semnalul de tact al sistemului; majoritatea magistralelor
actuale lucreaz pe acest principiu (ISA, EISA, MULTIBUS).
2. Dup numrul de uniti master conectate la magistral:
magistrale unimaster - exist o singur unitate master pe magistral;
nu sunt necesare mecanisme de arbitraj. Unitatea master iniiaz orice
transfer de informaie i are permanent controlul deplin asupra strii
magistralei; unitile slave conectate la magistral nu dispun de
elementele necesare pentru controlul magistralei.
magistrale multimaster - sunt controlate de mai multe uniti master
dar nu simultan; magistrala trebuie s conin semnale de arbitraj i
un anumit protocol de transfer al controlului ntre unitile master.
3. Dup modul de realizare a transferului de date:
magistrale cu transfer prin cicluri (secveniale); se aplic regula ca
la un moment dat cel mult un ciclu de transfer s se afle n
desfurare; majoritatea magistralelor folosesc acest principiu de
transfer.
magistrale tranzacionale - transferul de date se efectueaz prin
tranzacii; o tranzacie este divizat n mai multe faze care se pot
desfura simultan dac ele utilizeaz grupuri de semnale diferite.
Pentru compatibilizarea modulelor cu sistemele de calcul, au fost
standardizate multe tipuri de magistrale.
n cadrul unui sistem de calcul pot s coexiste ma imulte tipuri de
standarde, specializate pe transfer de date ntre diferite tipuri de
componente de sistem. Astfel se poate utiliza o magistral de mare vitez
pentru transferul ntre procesor i memorie, o magistral cu acces multiplu
pentru conectarea unor periferice de mare vitez (disc, interfa video) i
o magistral de vitez redus pentru periferice lente.
n domeniul calculatoarelor personale s-au dezvoltat mai multe
magistrale care au devenit standarde n fapt, nainte de standardizarea lor
formal:

27
ISA (Industrial Standard Architecture) - magistrala de sistem a
primelor calculatoare personale compatibile IBM PC i care nc se
utilizeaz n majoritatea calculatoarelor personale.
EISA (Extended ISA) - varianta extins a magistralei ISA.
VESA Local Bus ( Video Electronics Standard Association) magistral proiectat iniial pentru pentru accelerarea transferului
ntre procesor i interfaa grafic, s-a dovedit util i pentru alte
tipuri de interfee de mare vitez ( Hard Disc).
PCI (Peripheral Component Interconnect) - magistral de mare
vitez adaptat cerinelor procesoarelor evoluate din familia Intel. A
fost adoptat n arhitectura general Power PC definit de Apple
-IBM - Motorola.
PCMCIA (Personal Computer Memory Card International
Association) n format de carte de credit.

2.4 Caracteristici funcionale ale magistralei ISA


Magistrala ISA (Industrial Standard Architecture) a fost definit
pentru calculatoarele personale IBM PC. Se utilizeaz pentru conectarea
n sistem a interfeelor de intrare/ieire specifice unui calculator personal:
interfaa de disc, interfaa video, interfaa de sunet i diferite alte interfee
de utilizator.
Este o magistral asincron, care poate transfera date pe 8 i 16 bii.
Semnalele magistralei se regsesc pe sloturile de extensie ale
calculatorului. Un slot se compune din doi conectori, unul de 64 de pini i
cellalt de 36 de pini.
A1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A31
B1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B31

C1 . . . . . . . . . . . . . . . . . . C18
D1 . . . . . . . . . . . . . . . . . . D18

Fig.4 Conectorii magistralei ISA (62 +36 pini)

Pe o magistral ISA transferul de date se realizeaz pe baz de


cicluri de magistral. n funcie de tipul transferului, exist 4 tipuri de
ciclu:
ciclu de citire memorie ( MRDC - Memory Read Command);
ciclu de scriere memorie ( MWTC - Memory Write Command);
ciclu de citire port intrare ( IORC - Input Output Read Command);
ciclu de scriere port ieire ( IOWC - Input Output Write Command);
n paranteze sunt menionate denumirile semnalelor care se activeaz la
execuia fiecrui tip de ciclu, toate fiind active n ''0''.

28
Conectorii magistralei ISA se compun din dou seciuni:
Seciunea de origine, pe 8 bii (PC XT), cu 62 de pini;
Seciunea de extensie la 16 bii (PC AT), cu 36 de pini.
Liniile de semnal sunt:
SA0 . .SA19 (System Address) linii de adres pentru memorie i
porturi;
LA17 . . LA23 (Lachable Address) linii de adres nememorate, valide
numai pe durata semnalului BALE .
B1
Mas
Reset DRV
+5V
IRQ9
-5V
DRQ2
-12V
OWS
+12V
B10
Mas
SMEMW
SMEMR
IOW
IOR
DACK3
DRQ3
DACK1
DRQ1
Refresh
B20
CLK
IRQ7
IRQ6
IRQ5
IRQ4
IRQ3
DACK2
T/C
BALE
+5V
OSC
Mas
B31

A1

D1

C1

I/O CH CK MEM CS16


SBHE
LA23
SD7
I/O CS16
IRQ10
LA22
SD6
LA21
IRQ11
SD5
IRQ12
LA20
SD4
IRQ15
LA19
SD3
IRQ14
LA18
SD2
LA17
DACK0
SD1
MEMR
DRQ0
A10 SD0
D10
C10
MEMW
DACK5
I/O CH RDY
SD 8
DRQ5
AEN
SD 9
DACK6
SA19
DRQ6
SD10
SA18
SD11
DACK7
SA17
SD12
DRQ7
SA16
SD13
+5V
SA15
MASTER
SD14
SA14
Mas
SA13
D18
C18 SD15
SA12
A20
SA11
SA10
SA9
SA8
SA7
SA6
Fig.5 Semnalele magistralei ISA:
SA5
seciunea de 62 de pini i seciunea
SA4
SA3
extensie de 36 de pini
SA2
SA1
A31 SA0

de

CLK linia semnalului de tact al sistemului;


Reset DRV (Reset Driver) comanda de iniializare;
SD0 . . SD15 (System Data Lines) linii bidirecionale de date;
I/O CH CK (I/O Channel Check) indic o eroare de paritate;
I/O CH RDY (I/O Channel Ready) prin dezactivare, semnalul

introduce stri de ateptare pentru dispozitive lente;


IRQ3 . .IRQ7, IRQ9 . .IRQ15 (Interrupt Request) cereri de ntrerupere;
IORC (Input/Output Read Command) citire port de intrare (periferic);
IOWC (Input/Output Write Command) scriere port de ieire
(periferic);
SMEMR (System Memory Read) citire memorie din spaiul sub 1 MB;

29
SMEMW (System Memory Write) scriere memorie n spaiul de

adresare sub 1 MB;


MRDC (Memory Read Command) citire memorie n tot spaiul;
MWTC (Memory Write Command) scriere memorie n tot spaiul;
DRQ0 . . DRQ7 (DMA Request) cereri de acces direct la memorie (0..3
pentru transferuri de 8 bii, 4..7 pentru transferuri de 16 bii);
DACK0 . . DACK7 (DMA Acknowledge) achitare cereri DMA (0..3
pentru transferuri de 8 bii, 4..7 pentru transferuri de 16 bii);
AEN (Address Enable) invalideaz selecia porturilor I/O pe durata
desfurrii unui ciclu DMA;
REFRESH - indic ciclu main de remprosptare memorie DRAM;
T/C (Terminal Count) indic terminarea transferului DMA;
SBHE (System Bus Hight Enable) indic transfer pe octetul superior
de date ( SD8 . . 15 );
MASTER semnal generat de un modul master (procesor de intr./ieire)
cnd iniiaz un ciclu de transfer;
MEMCS 16 (Memory Size 16) indic selectarea unui modul de
memorie pe 16 bii;
I/O CS 16 (Input/Output Size 16) indic selecia unui port pe 16 bii;
OSC (Oscilator) semnal generat de oscilatorul sitemului; acest semnal
este divizat cu diferii factori pentru obinerea frecvenei de transfer,
de remprosptare memorie etc.

2.5 Arbitrajul magistralelor


ntr-un sistem cu mai multe procesoare (sistem multiprocesor), i o
singur magistral de sistem, un singur procesor trebuie s aib controlul
magistralei, altfel apar conflicte de acces. Este necesar aadar, prezena
unui arbitru, care s atribuie magistrala unui singur procesor la un moment
dat.
Gestiunea magistralelor este numit ''arbitrajul magistralelor'' i este
asigurat de circuite logice speciale; aceste circuite sunt numite generic
ASIC (Application Specific Integrated Circuit) i au ca sarcin rezolvarea
conflictelor de acces la magistral. Arbitrajul se face n funcie de nivelul
de prioritate al fiecrui concurent. n general, dispozitivele de
remprosptare a memoriei DRAM i cele de acces direct la memorie,
DMA, au nivelul de prioritate maxim.
Problemele de acces la magistral sunt evitate dac fiecare procesor
are memorie intern ''cache''; este unul din motivele pentru care generaiile
evoluate de microprocesoare dispun de memorie intern, integrat pe chip.

30

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