Anda di halaman 1dari 88

"Aidoma celor care, pregtindu-se pentru a depune jurmntul lui

Hipocrat, traverseaz anevoioasa, dar att de necesara, etap de formare a


diseciei, cei care doresc s-i gseasc un loc n fascinanta, dar att de
aglomerata, lume a calculatoarelor se impune s ptrund fundamentele
constructive, infrastructura acestora. De asemenea, tot mai multe segmente de
preocupri din domeniul calculului necesit cunotine tot mai profunde de
arhitectura calculatoarelor. Sunt doar cteva motive pentru care consider
lucrarea recenzat cu deosebire binevenit ... "

Prof.dr.ing. Nicolae Robu

Referent tiinific: Prof.dr.ing. Mircea VLDUIU

ARHITECTURA
CALCULATOARELOR
Colecia

"CALCULATO ARE "

Descrierea CIP a Bibliotecii Naionale a Romniei


ROBU, NICOLAE
Arhitectura calculatoarelor - prof.dr.ing. Nicolae Robu Timioara : Editura Politehnica, 2008
180 p.; 24 cm. - (Calculatoare)
Bibliogr.
ISBN 973-8247-01-2
004.2

EDITURA POLITEHNICA
TIMIOARA - 2008

CUPRINS

Copyright Editura Politehnica, 2008


: Toate drepturile sunt rezervate editurii. Nici o parte din aceast lucrare nu poate
fi reprodus, stocat sau transmis prin indiferent ce form, fr acordul
prealabil scris al Editurii Politehnica.

CUPRINS
pag.

EDITURA POLITEHNICA
Bv. Republicii nr. 9
300159 Timioara, Romnia
Tel. 0256/403.823
Fax 0256/403.823
E-mail: editura@edipol.upt.ro

Consilier editorial: Prof. dr. ing. Sabin IONEL


Redactor: Claudia MIHALI

Bun de imprimat: 25.02.2008


Coli de tipar: 11
c.z.u. 004.2
ISBN 973 - 8247 - Ol - 2

Tiparul executat sub comanda m. 15


la Tipografia Universitii "Politehnica" din Timioara

1.

CONSIDERAII INTRODUCTIVE........................................................

7 .
1.1. Noiuni fundamentale ........ .......... .. .. ........................... 7
1.2. Aciuni ce au loc la pornirea unui calculator ..... .......... .. 13
2. DESPRE MEMORIE ...... 17
3. DESPRE INTERFEE ........... ~. 25
4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC ...... 31

4.1. Reprezentarea numerelor n calculator ......... ... .. ~ ................ 31


4.1.1. Reprezentarea numerelor n virgul fix ..................... ... ... 31
4.1.1.1. Reprezentarea numerelor pozitive . . . ............... .. 31
4.1.1.2. Reprezentarea numerelor de orice senm . ......... .. ... 34
4.1.1.2.1. Reprezentarea prin semn-mrime .... ...... ............ 34
4.1.1.2.2. Reprezentarea prin complement de unu ....... .. 36
4.1.1.2.3. Reprezentarea prin complement de doi .................. 40
4.1.2. Reprezentarea numerelor n virgul flotant ... ...... 45
4.1.2.1. Principii .. ... . ... ........... ... : ....... ...... .. .... 45
4.1.2.2. Standardul IEEE 754 . ... .......... ... . ....... ... 4 7
4.2. Dispozitive de adunare i S(:dere ..... .. ..... .......... .. . .. 50
4.2.1. Principii . ........... ... . . . ..... .. ... ........ ....... 50
4.2.2. Sumatoare seriale .... ..... ... .. ....... ... .. . .. ...... 52
4.2.2.1. Principii . .... . .......... ..... . ..... . ......... ...... 52
4.2.2.2. Proiectarea unui sumator serial
folosind bistabile J-K .. . ........ ... ............ . ...... 52
4.2.2.3. Proiectarea unui sumator serial
folosind bistabile D ...... .... ... . .. ... .. . 5 3
4.2.2.4. Avantaje i dezavantaje ale sumatoarelor seriale .. .. 54
4.2.3. Sumatoare paralele ... . ... . .... .......... ..... . .. ....... 54
4.2.3 .1. Principii ...... .. .. ... .. . . ............. ..... 54
4.2.3.2. Sumatoare "ripp!e carry" . ... . . ...... ... . 54
4.2.3.3; Sumatoare "carry lookahead" ... ..... . .. . .. .. 56
4.2.3.4. Sumatoare "carry skip ".. . . ...... ... ......... ..... 59
4.2.3.5. Sumatoare BCD .... .... ............ ... ........ .... ... . 60

CUPRINS

CAP. I. CONSIDERA II INTRODUCTIVE

pag.
4.3. Dispozitive de nmulire ...... ..... . ................ .... ............... 63
4.3 .1. Principii ...... ... ..... ........... .... ............ .. ........ ........... 63
4.3.2. Sinteza unui nmulitor de numere n semn-mrime ... ... 67
4.3 .3. Sinteza unui nmulitor de numere n complement de doi,
dup metoda Robertson . .. . . .. . ........ ............. ..
79
4.3 .4. Sinteza unui nrriulitor combinaional . .. ....... .... . .. 91
4.4. Dispozitive de mprire .. .. . .. .... ... ............... .. .. 93
4.4.1. Principii ......................... ... ..... .................. ........ . .. . 93
4.4:2. Sinteza unui mpritor de numere n semn-mrime,
opernd cu refacerea resturilor .. ....... .. .... 96
4.4.3. Sinteza unui mpritor de numere n semn-mrime,
opernd f'ar refacerea resturilor .. .... ...... ... . .. . .... 105
5. DESPRE PROCESOR. UNITATEA DE REGISTRE ......... 119
5.1. Introducere .... ... ..... .. .... ....... ........... ..... ....... ... .. 119
5.2. Unitatea de registre a procesorului CSAC 2001. .. . . ... 120
5.3. Unitatea de registre a procesorului MOTOROLA 68000 . . 124
5.4. Unitatea de registre a procesorului INTEL 8086 . .... ... .127
6. DESPRE PROCESOR. UNITATEA DE COMAND ... ... ........ ..131
6.1. Preliminarii. Paradigma von Neumann ...... . ... . . . .. .. 131
6.2. Elementele constitutive
ale unei uniti de comand von Neumann .... . .... ...... ... .. 132
6.3. Despre instrucii. Studiu de caz
pe setul de instrucii al procesorulu! CSAC 2001 . . . 140
6.) .1 . Aspecte introductive ..................................... . ....................... 140
6.3.2. Codificarea instruciilor . . . .. . ... . .... . .. ... 141
6.3 .3. Coninutul instruciilor ............... ..... ..................... ....... 14 7
6.4. Implementarea instruciilor . .. . .. .. .... ... . .... .... 156
6.4.1. Aspecte introductive ... .... .. ... .. .. . .. . ... 156
6.4.2. Implementarea cicluluifetch ... .... ....... ........... .............. 157
6.4.3. Implementarea instruciei "LD SP, aaaa" . ... ..... .... 160
6.4.4. Implementarea instruciei "JP (aaaa)" . .. . .. ... ... 162
6.4.5. Implementarea instruciei "ADD A, (BC)" . . . 164
6.4.6. Implementarea instruciei "CALL (aaaa)" . .... ... . 166
6.4. 7. Implementarea instruciei "RET" ........ .... ................. . 169
6.4.8. Implementarea instruciei "OUT (aa), A~' . ... .. . .. 171
BIBLIOGR.4FIA .... .. .. ... ~.. .. .. .. ........ ...... .. ..... . .. ........ 174

1
CONSIDERAII

INTRODUCTIVE

1.1. Notiuni fundamentale


Calculatorul este o main destinat procesrii de date, nzestrat, n
acest sens, cu capabiliti de a accepta, reine, n'elege i executa ordine
exprimate de utilizator printr-o succesiune de instrucii conform scopului
urmrit i care constituie ceea ce se cheam program.
Prin instrucii se specific operaiile solicitate i, cnd este cazul, se
desemneaz, ntr-un anumit mod dintre mai multe posibile, datele de tratat
i destinaia

rezultatelor.

Instruciile i

datele vizate de ele sunt construcii literal-cifrice


sugestive, de tip lingvistic, deci cu o anumit sintax i o anumit
semantic.

Pentru ca instruciile i datele s poat fi acceptate, reinute, nelese i


tratate, forma lor literal-cifric se transpune ntr-o form fizic. Sub
aceast form, instrucme i datele se prezint ca seturi de tensiuni electrice,
constituite potrivit unor convenii de codificare.
n unul dintre standardele consacrate, s-a instituit convenia ca aceste
tensiuni s poat lua fie o vaioare n intervalul 0-0.4 V, fie o valoare n
intervalul 2.4-5 V, n timp ce orice alte valori sunt interzise.
O astfel de tensiune, cu dou valori posibile, se asociaz cu ceea ce se
bit.

cheam

Un bit este informatia

elementar, ireductibil, caracterizat

prin aceea

c surprinde u~a din d~u posibiliti care sunt, una n raport cu cealalt,
contradictorii i complementare.

CAP. 1. CONSIDERA II INTRODUCTIVE


cAP. I. CONSIDERA II INTRODUCTIVE

Corespunztor
dup

celor

dou posibiliti,

bitul ia valorile logice O sau 1,

caz.

O informaie oarecare, ce surprinde una din m posibiliti se poate


reprezenta printr-un set de bii de cardinal cel puin egal cu log2 m.

Un set de n

bii

se

cheam

cod pe n bii.

Codurile au, n contexte diferite, semnificaii diferite. De exemplu,


0100 0001 reprezint, uneori, litera "A", alteori, numrul 65 n baza 10, iar
alteori, totul altceva.

cu

Un set de 8 bii se numete byte sau octet.


De obicei, codurile au lungimi care sunt puteri ale lui 2. Sunt uzuale
codurlle pe 8, 16, 32, 64, 128, 256 bii.
Multiplii bitului sunt:
0
1 Kbit = i biti
20
1 Mbit = 2 blti
30
I Gbit = 2 bii
etc.

Toate acestea au ca suport teoretic primar algebra booleean i


aritmetica sistemului de numeraie binar.
Un calculator const, din punct de vedere arhitectural, n:
procesor;
memorie;
interfee;
dispozitive de introducere a datelor;
dispozitive de extragere a datelor;
memorii externe.
Procesorul este partea unui calculator care are rolul de a implementa
sarcinile de comand pe care le implic acceptarea, reinerea, nelegerea i
executarea ordinelor -adic: execuia de programe- i de a efectua
prelucrrile propriu-zise. Blocurile funcionale ale unui procesor sunt:
unitatea aritmetico-logic
unitatea de comand
unitatea de registre
Unitatea aritmetico-logic este partea unui procesor care, aa cum
numele su o sugereaz, are n sarcin efectu~rea operaiilor aritmetice i
logice. Alturi de unitatea aritmetico-logic, n structura procesoarelor
exist, uneori, un bloc funcional care implementeaz operaii matematice
mai complexe i de mai bun rezoluie i precizie, numit coprocesor
matematic.

Multiplii byte-ului sunt:


10
1 KByte = 2 Bytes
20
1 MByte = 2 Bytes
30
1 GByte = 2 Bytes
etc.
Reprezentarea fizic a bitului printr-o tensiune ce poate lua doar dou
valori se bazeaz pe fenomenele de comutaie -saturare I blocare- specifice
tranzistoarelor de toate tipurile. Exploatnd aceste fenomene, s-au conceput
i realizat circuite n comutaie -numite i circuite digitale sau circuite
numerice sau circuite logice-, ajunse actualmente la o diversitate extrem
de larg.
Cu ajutorul circuitelor digitale, se pot memora informaii i se pot
efectua operaii logice i matematice elementare sau complexe, precum i
operaii de diverse alte naturi, reductibile la primele.
8

Unitatea de comand este partea unui procesor care are n sarcin


generarea comenzilor interne i externe necesare funcionrii calculatorului
n ansamblul su.
Unitatea de registre este partea unui procesor care reprezint o memorie
de manevr, realizat pe acelai cip j n aceeai tehnologie cu unitatea
aritmetico-logic i cu unitatea de comand i, n consecin, la fel de
rapid ca i acestea, la care accesele se fac mult mai simplu i eficient dect
la memoria propriu-zis.

Memoria este partea unui calculator care are rolul de a pstra


informatiile operative la un moment dat, adic: codurile programelor
aflate n' rulare i datele asupra crora ele acioneaz, respectiv pe care le
produc.
9

CAP. 1. CONSIDERA II INTRODUCTIVE

Interfeele

sunt

entiti structural-funcionale

care au rolul de a asigura


ntre procesor sau memorie, pe de o parte, i
~ispozitivele de introducere a datelor, dispozitivele de extragere a datelor,
re Sp ectiv memoriile externe, pe de alt parte. .
chirnbul de

informaii

pispozitivele de introducere a datelor sunt entiti structuralcare au rolul de a intermedia transferul de informaii de la
tilizator ctre calculator. Dispozitivele de introducere a datelor cele
~ai uzuale sunt tastatura, mouse-ul, joy-stick-ul i ecranul senzitiv.
funcionale

pispozitivele de extragere a datelor sunt

are au rolul de a intermedia transferul de

entiti structural-funcionale

informaii

de la calculator ctre
c tilizator. Dispozitivele de extragere a datelor cele mai uzuale sunt
~onitorul sau display-ul, imprimanta i ploterul.
Memoriile externe sunt entiti structural-funcionale cu rolul de a
neoperative la un moment dat (a se vedea, mai sus, ce
~e nelege prin "informaii operative"). Memoriile externe cele mai
uzuale sun_t: unitatea de hard-disk, unitatea de dischete, unitatea de
stra informaiile

corrzpact-dzsk.
Dispozitivele de introducere a datelor, dispozitivele de extragere a
datelor i memoriile externe sunt referite, generic, prin noiunea de
echipamente periferice.
ntr-o reprezentare

arhitectural,

un calculator poate fi schematizat

astfel:

Fig. 1_1. Reprezentre

arhitectural

10

Se precizeaz c, pn nu demult, noiunea de calculator subsuma doar


procesorul, memoria i interfeele, unii specialiti rmnnd i astzi cu
aceast accepiune asupra termenului. Noi opiniem c o asemenea abordare
nu mai este n acord cu starea de fapt la care s-a ajuns n domeniu sub
aspect constructiv, stare caracterizat prin aceea c cel puin procesorul,
memoria, ir:iterfeele i memoriile externe sunt nglobate n aceeai carcas,
n timp ce unele modele de calculatoare -ne referim la aa-numitele laptop-uri sau note-book-uri- ncorporeaz nu numai aceste entiti, ci i .o
tastatur, un mouse (eventual i unjoy-stick) i un display.
Trebuie spus c maina aceasta numit calculator, dei deloc simpl, nu
ar impresiona aa cum o face, dac nu ar funciona ntr-un sistem mai
complex, numit sistem de calcul, care cuprinde, alturi de entitile referite
mai sus -care, toate, au o natur material, fizic- i resurse de natur pur
logic, nepalpabile, reprezentnd aa-numitele programe de sistem.
Menirea programelor de sistem este, pe de o parte,. aceea de a face ca
exploatarea prii fizice, precum i a lor nsele s decurg ct mai judicios
i ct mai comod, iar pe de alt parte aceea de a conferi sistemului
capabiliti n plus fa de cele prezentate de partea fizic.

Cele mai importante programe de sistem sunt:


editoarele de texte*);
translatoarele de limbaj*);
programele de bibliotec*);
editoarele de legturi*);
depanatoarele*);
utilitarele;
driver-ele de intrare-ieire;
sistemul de operare.

Editoarele de texte sunt programe cu ajutorul crora se scriu textele


programelor, dar, posibil, i texte oarecari. Prin aciunea editoarelor de
texte se genereaz aa-numitele fiiere-surs, care conin textele
programelor i a cror denumire este, n partea sa numit "extensie",
specific limbajului de programare utilizat (de exemplu: ".pas" -pentru
PASCAL, ".c" -pentru C, ".cpp" -pentr:u C++, etc.).
a unui calculator.
11

CAP. 1. CONSIDERA II INTRODUCTIVE

CAP. 1. CONSIDERA II INTRODUCTIVE

Translatoarele de limbaj sunt programe cu ajutorul crora se


traducerea programelor utilizatorilor din limbajul de programare
care au fost scrise, n limbajul mainii numit calculator sau, altfel spus:
cod-main. Exist trei tipuri de translatoare de limbaj, denumite:
compilatoare;
asambloare;
interpretoare;

efectueaz

n
n

Compilatoarele i asambloarele sunt programe care la un apel al lor


traduc un ntreg program sau modul de program i, n final, genereaz
codul-main 9orespunztor, ntr-un fiier numit "fiier-obiect", al crui
nume are extensia ".obj1'. Diferena dintre compilatoare i asambloare
rezid n faptul c primele traduc programe scrise n limbaje de nivel nalt,
iar cele din urm -programe scrise n limbaj de asamblare.
lnte1pretoarele sunt programe care traduc o linie a unui program i
introduc imediat n rulare codul-main rezultat, apoi trec la linia
urmtoare .a.m.d., fr ca n final s ofere codul-main al ntregului
program sau modul de program, cum am vzut c fac compilatoarele i
asambloarele. Rezult, aadar, c n cazul folosirii interpretoarelor, de
fiecare dat cnd se dorete rularea unui program, se impune o nou
traducere i c, inevitabil, timpul i::ecesar rulrii programului este prelungit
cu timpul de traducere.
Programele de bibliotec sunt pr~grame care pun la dispo~iia
utilizatorilor o serie de faciliti, ce se adaug celor pe care le prezmt
limbajele de programare nsei.
Editoarele de legturi sunt pr_ograrne care au rolul de a interconecta
codul-obiect a1 programului utilizatorului, respectiv codurile-obiect ale
modulelor n care acesta consist, cu coduri-obiect de programe de
bibliotec, de driver-e de intrare-ieire i-sau de programe innd de
sistemul de operare, dup caz, astfel nct ceea ce se obine s reprezinte un
program executabil; acesta face obiectul unui fiier numit "fiier
.executabil", caracterizat prin aceea c poart un nume cu extensia ".exe"
sau, uneori,." .c(n".

Depanat~-arele sunt pr~grame cu ajutorul crora se pun la dispoziia


utilizatorilor o seam de faciliti de depanare a programelor: execuie pas
cu pas, oprire la o anumit linie, vizualizarea/modificarea valorilor unor
variabile, etc.
12

Toate aceste programe -marcate cu ) n enumerarea de mai sus- sunt


integrate n aa-numitele medii de dezvoltare a aplicaiilor, cum sunt:
TURBO PASCAL, BORLAND PASCAL, TURBO C/C++, BORLAND
CIC++, VISUAL STUDIO, etc., fr, ns, ca, n cadrul acestora, s-i
piard identitatea.
Utilitarele sunt programe cu ajutorul crora se efectueaz operaii cu un
grad ridicat de uzualitate, cum sunt: creerea, copierea, mutarea fiierelor,
etc.

Driver-ele de

intrare-ieire sunt programe cu ajutorul crora se


introducerea, respectiv extragerea datelor, evident, ntr-o strns
conlucrare cu interfeele de intrare-ieire.

realizeaz

Sistemul de operare este un conglomerat de programe care au rolul


generic de a gestiona resursele sistemului, interpunndu-se ntre acestea i
utilizator. Metaforic, se poate spune c un sistem de operare joac rol de
dirijor, orchestrnd doleanele utilizatorilor prin atribuirea de partituri
adecvate ctre diversele resurse ale calculatorului i veghind la
interpretarea armonizat a respectivelor partituri, astfel nct scopurile
pentru care s-a apelat la calculator s devin atinse.

1.2. Actiuni ce au loc la pornirea unui calculator


n general, la pornirea unui calculator, intr n rulare, n mod
automat, un program pstrat n partea nevolatil (a se citi: care i pstreaz
coninutul intact i n lipsa tensiunii de alimentare) a memoriei
calculatorului; instaniat, de obicei, n varianta cunoscut sub numele
"EPROM'', program care are ca misiune identificarea configuraiei n
care se afl calculatorul, efectuarea de teste de bun funcionare a
principalelor entiti componente, ncrcarea n memorie, de pe hard-disk,
a componentelor sistemului de operare i lansarea acestuia n execuie. O
dat intrat n execuie, sistemul de operare se va ngriji ca tot ce se va
ntmpla mai departe pe calculator s fie sub controlul sau, cel puin, cu
consimtmntul su. Astfel, el va asigura afiarea meniurilor cu
altemat,ivele ce stau n fi~care moment cnd el este n execuie la dispoziia
utilizatorului, preluarea i introducerea n fluxul de procesare a
informaiilor specificate de utilizator cu ajutorul tastaturii, mouse-ului, etc.,
lansarea n execuie, dup caz, a altor programe de sistem -medii de
programare, utilitare- sau a unor programe ale utilizatorului, etc.

CAP. 1. CONSIDERA II INTRODUCTIVE

CAP. 1. CONSIDERA II INTRODUCTIVE

n cazul punctual al calculatoarelor exploatate sub sistemul de operare


WINDOWS 95, la pornire se ntmpl urmtoarele lucruri:

A). SE INTRODUCE N RULARE SISTEMUL DE PROGRAME


"B 'S" I, CU AJUTORUL LUI:
se identific i testeaz memoria, porturile, adaptorul video, tastatura,
unitatea de hard disk, unitatea de dischete, unitatea de CD-ROM;
se identific, introduce n configuraie i testeaz elementele tratabile
rin tehnica ''plug and play ";
s determin partiia care conine nregistrarea de startare principal,
re rit prin abrevierea MBR (Master Boot Record), cutnd-o mai
nt pe dischet, dac unitatea de dischete conine o dischet, iar
apoi, ac mai este cazul, pe hard-disk i, eventual, pe CD-ROM;
se nca c nregistrarea MBR i i se d controlul;
B). SE INTR~CE N RULARE PROGRAMUL "10.SYS" I, CU
AJUTORUL LU .
se preiau din 1ierul numit MSDOS.SYS -vezi figura 1.2_1- i se
efectivizeaz pa metrii procesului de "boot"-are;

se afieaz coninutul fiierului cu numele LOGO.SYS;


se ncarc fiierul cu numele DR VSPA CE.BIN, dac este prezent
fiierul cu numele DR VSPA CE.INI;
se ncarc fiierul cu.numele SYSTEM.DAT;
se ncarc, dac este cazul, un program de tipul "driver", cu faciliti
de dubl "buffer"-izare;
se ncarc i lanseaz n execuie, atunci cnd exist, fiierul
CONFIG.SYS;
se ncarc i lanseaz n execuie, atunci cnd exist, fiierul
A UTOEXEC.BAT;

C). SE INTRODUCE N RULARE PROGRAMUL "WIN.COM" I, CU


AJUTORUL LUI:
se ncarc diverse driver-e (VMM32. VXD sau un altul solicitat prin
fiierul cu numele SYSTEM.INI) i se iniializeaz;
se ncarc componentele de baz ale sistemului de operare, care sunt:_
- "KERNEL",
constituit
din fiierele KERNEL32.DLL 1
KERNEL.DLL, care asigur n principal: operaiile de intrare-ieire
asupra fiierelor, ncrcarea i lansarea n execuie a programelor,
gestiunea memoriei;
.
.
- "USER", constituit din fiierele USER32.DLL 1 USER.DLL, care
mmevreaz intrrile i ieirile utilizator (legate, spre exemplu, de:
tastatur, mouse, canalele de comunicaii, etc.) i furnizeaz nsi
interfaa WINDOWS;
- "GDI", constituit din fiierele GDI32.DLL i GDIDLL, cJ.re
gestioneaz tot ce este grafic ( GDI: Graphical Device Inter/ace),
mpreun cu interpretorul "Explorer" i, dac este cazul, cu suportul
de reea;
se execut toate programele din grupul "Start Up ";
e se execut programele din registry, n directorul cu num~le:
Hkey_Local_Machine/Software/Microsoft/Windows/CurrentVers1on
/RunOnce.

Fig. 1.2_1. Coninutul fiierului MSDOS.SYS

se afieaz mesajul "Starting Windows 95" i e ateapt timp de


cteva secunde (uzual: dou-trei) eventuala apsare a unei taste
funcionale, menit s dic!eze modul de derulare, n continuare, a
procesului de iniializare;
14

Uzual n urma parcurgerii tuturor acestor pai, se va ajunge c1 ecranul


arate 'aa cum se ilustreaz n figura 1.2_2, ca semn c sistemul de
operare este plenar n lucru, ateptnd ca utilizatorul s-i fac cunoscute

opiunile.

15

CAP2. DESPRE MEMORIE

CAP.1. CONSIDERAII INTRODUCTIVE

n cazul punctual al calculatoarelor exploatate sub sistemul de operare


WINDOWS 95, la pornire se ntmpl urmtoarele lucruri:

A). SE INTRODUCE N RULARE SISTEMUL DE PROGRAME


"BIOS" I, CU AJUTORUL LUI:
se identific i testeaz memoria, porturile, adaptorul video, tastatura,
unitatea de hard disk, unitatea de dischete, unitatea de CD-ROM;
se identific, introduce n configuraie i testeaz elementele tratabile
prin tehnica ''plug and play ";
se determin partiia care conine nregistrarea de startare principal,
reforit prin abrevierea MBR (Master Boot Record), cutnd-o mai
nti pe dischet, dac unitatea de dischete conine o dischet, iar
apoi, dac mai este cazul, pe hard-disk i, eventual, pe CD-ROM;
se ncarc nregistrarea MBR i i se d controlul;

B). SE INTRODUCE N RULARE PROGRAMUL "10.SYS" I, CU


AJUTORUL LUI:
se preiau din fiierul numit MSDOS.SYS -vezi figura 1.2 1- i se
efectivizeaz parametrii procesului de "bqot "-are;

2
DESPRE MEMORIE
n acest capitol, ne propunem s vorbim despre memoria calculatoarelor
doar att ct este necesar pentru nelegerea a ceea ce ea reprezint, a
principiilor organizrii interne i a modului n care ea funcioneaz la nivel
bloc. i toate acestea, pentru ca mai trziu, pe parcursul capitolului 6, s
existe premizele unei facile i corecte nelegeri a conlucrri dintre procesor
i memorie, a funcionalitii ansamblului procesor-memorie i, n definitiv,
a nsi fenomenologiei computaiei.
Memoria unui calculator trebuie perceput ca tabel de locaii
asimilabi.le, fiecare, cte unui registru pe 8 bii i avnd asociate, n mod
injectiv, informaii de reperare cunoscute sub numele de adrese.
Dei n calculatoarele actuale este obinuit ca, n mod dinamic, dup
necesitii, memoriile s fie accesate fie la nivel de octet, fie la nivel de

Fig. 1.2_1. Coninutul fiierului MSDOS.SYS

se. afieaz mesajul "Starting Windows 9 5" i se ateapt timp de


cteva secunde (uzual: dou-trei) eventuala apsare a unei taste
funcionale, menit s dicteze modul de derulare, n continuare, a
procesului de iniializare;
16

dublu-octet, numit cuvnt, fie la nivel de cuadruplu-octet, numit cuvnt lung,


i chiar la nivel mult mai extins, noi vom considera, simplificator, n
continuare, n acest capitol, cazul memoriilor capabile s opereze doar la
nivel de octet. n aceast ipotez, o memorie se prezint, la nivel bloc, ca
entitate prevzut cu:
8 borne de intrare-ieire -deci: bidirecionale-, dedicate vehiculrii
informaiilor de scris n ea, respectiv citite din ea;
J born de intrare de specificare a operaiei ce se execut la un moment:
scriere, respectiv citire;
Zog2 N borne de intrare de adresare, unde N reprezint capacitatea
memoriei, adic: numrul de locaii cu care memoria este nzestrat;
1 born de intrare de validare I invalidare;
.l born de ieire de confirmare a efecturii complete a operaiei ce a fcut
obiectul unei sesiuni de lucru la un moment dat.
17

CAP2. DESPRE MEMORIE

CAP2. DESPRE MEMORIE

Cele 8 borne de intrare-ieire, numite borne de date, se noteaz de obicei


cu DO-D 7. Borna de specificare a operaiei ce se execut la ~n moment
dat, numit born de citire-scriere, se noteaz cu R/W (abreviere de la
"read I write"). Borna de validare I invalidare, numit i born de selecie se
noteaz cu MRQ (abreviere de la "memory request"), iar bornele de
adresare, numite i borne de adrese -cu AO-AX, unde X= log2 N -1. Borna
de confirm~~ se n?t:az cu :J-C:K (abr_eviere de la "acknowledge"). Cu
aceste notau -precizam: regs1b1le mai mult sau mai putin ca atare n
documentaii, ntruct ele nu corespund dect nt.n'.ipltor unor
procesoare concrete-, vom putea reprezenta o memorie aa cum se arat
n figura 2_1.

N Bytes
AO-AX

ACK
~R!W

J:iRQ

Fig. 2_1. Reprezentarea bloc


a unei memorii.

ACK, ca semn, la citire, c datele citite au ajuns s fie disponibile la


bornele DO-D7, iar la scriere, c datele de scris sunt deja scrise. Semnalul
ACK este destinat procesorului (mai exact: unitii de
procesorului), care se informeaz cu ajutorul lui ct trebuie

n figura 2 _2, se prezint schema unei memorii organizat i capabil s


opereze la nivel de octet -i numai la nivel de octet- i avnd capacitatea
de 64 KBytes. S-a presupus c aceast memorie este realizat cu ajutorul a 4
capsule de cte 16 KBytes fiecare, prevzute -evident: pe lng bornele de
alimentare- cu 14 borne de adrese, notate AO-Al3, 8 borne de date, notate
DO-D7, 1 born de citire-scriere, notat R I W i 1 born de selecie, notat
CS (abreviere de la "chip select"). Pentru ca cele 4 capsule s poat constitui
un bloc de memorie, a fost necesar ca ele s fie conectate born la born,
excepie de la aceast regul. fcnd bornele CS, care se conecteaz separat,
fiecare la cte o ieire a circuisticii de decodificare a adreselor.
precizeaz c este firesc ca circuisticile de decodificare a adreselor s
n sarcin doar decodificarea combinaiei logice a biilor mai
semnificativi din r.adrul adresei, n timp ce ceilali bii sunt tratai la nivelul
fiecrei capsule folosite n implementarea memoriei. La o memorie cu
capacitatea de N octei, realizat din blocuri de cte M octeyi -evid~nt: ":~r
fi x=NIM astfel de blocuri-, consistnd n capsule de capacitate M'l'f.k bii,
revin circuisticii de c!ecodificare a adreselor, dintre cei log2 N bii de
adres necesari n total, cei mai
semnificativi p=log2 N . .- log2 M, iar pe
baza lor, circuistica va genera x=2P semnale de selecie. In cazul concret
14
10
10
16
i, n co.nse~ii:,
considerat, N=642 =2 , M=l62 =2 , iar k=8
p=log2 N - log2 M=2; aa se explic faptul c, n figura 2_2, crrcmstica
de decodificare a adreselor se ocup de biii Al 5 i Al 4 ai adrc:selor,
genernd, pe baza lor, cele x=i=4 seIDlale de selecie: CS aferent blocului
O, ... CS aferent blocului 3. Dac procesorul are o capacitate de adresare
L > N, atunci, evident, la nivelul circuisticii de decodificare a adre~elor.nu s~
vor mai trata cei mai semniflcativi p=log2 N - log2 M, c1 cer mai
semnificativi q=log2 L - log2 M bii, generndu~se, pe ~az~ lor, y=2q semn~l~
de selectie primele x dintre acestea vor fi folosite efectiv, m cadrul memone1
de N octe~, iar restul de y-x, rmn la dispoziie pentru extinderi ll:lterioare,
posibil de fcut n blocuri de cte M octei (evident: fiecare dm aceste
blocuri va avea pe post de semnal CS, cte unul din semnalele y-x).

Se

impedan.

Cnd semnalul de la intrarea MRQ este "O", dac semnalul de la borna


R I W este "I", atunci se execut o operatie de citire din locatia a crei adres
este stabilit la bornele AO-AX. Informati~ citit este oferit l~ bornele DO-D7
dup un interval de timp numit "ti,.,;.p de acces", msurat ncepnd din
momentul n care ultimul dintre sernnalelele AO-AX, MRQ i R / W ajunge
s fie stabil.
Cnd senmalul de la intrarea MRQ este ''O", dac semnalul de la borna
R I W este '.'O", atunci se execut o operatie de scriere n locatia a crei adres
est~ stabilit~ la b?rnele AO-~. a _inforinaiei prezente la bornele DO-D7.
Scnerea se mcheie la. un anumit .mterval de timp dup momentul n care
ultimul dintre sernnaleleleAO-Ax, MRQ i R I W ajunge s fie stabil.
1

comand a
s in activ

semnalul MRQ. La trecerea semnaluluiACK la "O", procesorul nelege c


memoria i-a ncheiat ciclul ce i-a fost cerut i o dezleag temporar de sarcini,
trecnd semnalul care a inut-o activ-este vorba despre MR.Q - la "l ".

aib

Memoria efectueaz o operaie de citire sau de scriere, dup caz, doar


atunci cnd semnalul de la intrarea MRQ are valoarea logic "O" altfel ea
i conserv coninutul i i ine bornele DO-D7 n starea 'de n~lt

18

Att n cazul citirii, ct i n cazul scrierii, n final, se activeaz semnalul

19

CAP2. DESPRE MEMORIE

CAP2. DESPRE MEMORIE

kfRQ face ca toate

1r---------------------------------------~-------------------------------------------

D 7-D

'I

llDO

AG,____
AlA2
AJ

'-IDJ
ID2

IDJ
: ID4
ID5
ID6
'--

1D7

rw

RIw

5\
-

Al

"S

lvo

AJ

ID5
ID6

A~

Ai:
Ali
A$

ID7

Loo

AC-

._'Dl
lD2
ID3

A~

iD2
ID3
: ID4
IDs
ID6

A3
A~

AJ

(j)

A~

Ai

AC'-AJi.-A2
A3

--IDI

AJ1-

.....__ ID7

A~

A.l

A~

I :

Ac

AJC
AJI
AJ2
AJJll

.rlRIW

A)
AU
All
Al2
A13lj

1"S

_rlMii

A(1Al~

fie

inute

la

A2
A3
A~

A~

A5
All
All
A12

r"

n partea inferioar a schemei din figura 2_2, este prezent circuistica.de

A~

Ai

A~

rs
...

Aj

A~

AJC
All
AJ2
A13~

cs

liDo
'-iDJ
ID2
ID3
; ID4
ID5
ID6
....._ ID1

generare a senmalului ACK , conceput n ipoteza c att la citire ct i la


scriere, memoria rspunde cererii procesorului n cel mult 1 Yi perioade ale

Al3ll

Al5=0 A14=1
AT'i....,n

~ ~

+--

AJ.tJ--,n.L_

de
L decodificare

ACK , pentru cazul considerat (cu linie

ntrerupt,

se

t
+5 V

l1
-<:

K-R Q

r---C
l
I
I
I
I

c@
<:/

c@

---<

MRQ

c@

K-R Q

K- R Q

I
I
I

I
I
I
I

Observatii:
Capsula O conine locaiile
Capsula 1 conine locaiile
Capsula 2 conine locaiile
Capsula 3 conine locaiile

de
de
de
de

I
I
I
I
I
I

L________ I" ________ _

_Bi_ _ _ _ _--'n----------j

I
I

memorie cu adresele hexazecimale 0000-3FFF.


memorie cu adresele hexazecimale 4000-lFFF.
memorie cu adresele hexazecimale 8000-BFFF.
memorie cu adresele hexazecimale COOO-FFFF.

Circuistica de decodificare a adreselor va fi valid -adic: va putea


efectua decodificarea combinaiei de valori logice prezente pe liniile Al 5 i
20

Bo

l
~------------------------------------------------------------------------------------!
Fig. 2_2. Un exemplu de memorie.

sugereaz ce s-ar ntmpla dac ACK ar fi luat de la primul bistabil,


respectiv de la al treilea bistabil).

semnalului de tact, de la trecerea semnalului MR.Q la "O". Evident, dac


durata acestor operaii ar fi mai mare de 2 Yi perioade ale semnalului de tact,
atunci celor trei bistabile ale schemei ar trebui s li se adauge i altele,
conectate dup aceeai logic. n figura 2~3, este redat cronograma
semnalelor MRQ

Circuistic

MRQ

AJ5 .L.A14

Al5=1 A/4=0 ~ 2

ACK

circuisticii de decodificare

valoarea lor inactiv, adic: la" 1''. Cnd senmalul MR.Q ia valoarea "O", una
dintre ieirile circuisticii de decodificare va comuta la "O". Prin consecin,
una dintre cele patru capsule de memorie va ajunge s fie selectat,
procednd, dup caz, la efectuarea unei operaii de citire sau a unei operaii
de scriere.

'

: lo4

A4

..

Al5=1. Al4=1

CLK

ieirile

ACK

LJ

Fig. 2_3. Cronograma semnalelor MRQ i ACK.

Se precizeaz c memoria oricrui calculator cuprinde o parte exploatat


att n regim de citire ct i n regim de scriere, numit RAM -de la Random
Access Memory-, i o parte exploatat doar n regim de citire, numit ROM de la Read Only Memory-. Este important de reinut c memoria RAM
pstreaz informaiile memorate n ea intacte doar ct vreme este alimentat
corespunztor, n timp ce memoria ROM i pstreaz coninutul intact i n
lipsa tensiunii de alimentare. Se spune c memoria RAM este volatil i c
memoria ROM este nevolatil.
21

CAP2. DESPRE MEMORIE

CAP2. DESPRE MEMORIE

n cazul calculatoarelor universale, partea de memorie RAM este de


departe majoritar. La aceste calculatoare, memoria de tipul ROM conine
doar programul de boot-are, adic: un program introdus implicit n rulare la
pornire i care are ca misiune identificarea configuraiei n care se afl
calculatorul, efectuarea de teste de bun funcionare a principalelor entiti
componente, ncrcarea, de pe hard-disk, a componentelor sistemului de
operare i lansarea n execuie a sistemului de operare .. De asemenea, tot
n memoria ROM se obinuiete s se pstreze i driver-ele sau o parte a
driver-elor de intrare ieire. Celelalte programe -de sistem sau de aplicaie
se pstreaz pe suporturile externe de memorare. De aici, ele se ncarc doar
.temporar n memoria RAM, n vederea rulrii. Evident, cnd spunem c un
program se afl ncrcat pentru rulare, nelegem c partea lui de cod se afl
n memorie i c o anumit cantitate din memorie este la dispoziia sa pentn1
implementarea diverselor variabile i pentru anumite manevre.

aducerea tuturor celulelor sale la"!". 6 memorie EPROM concret poate fi


tears i reprogramat de un numr de ori foarte ridi~at, reprezentnd o dat
de catalog a circuitului respectiv. EPROM vme de la Erasable
Progr~mmable Read Only Memory.
. Memoria EEPROM se caracterizeaz prin aceea c este nscris de
utilizator, printr-un proces specific, dup ce a fost pregtit pentru aceasta
prin tergere electric; att tergerea ct i nscrierea memoriilor EEPROM ~e
pot face chiar n contextul circuisti~ n care ele s~nt exploatate. O m.emorie
EEPROM concret poate fi tears 1 reprogramata de un numr de on foarte
ridicat, reprezentnd o dat de catalog a circuitului respectiv. EEPROMvine
de la Electrica! Erasable Programmable Read Only Memory.

n cazul calculatoarelor dedicate unor aplicaii -se au, aici, n vedere, n


primul rnd, aa-numitele "embedded systems "-, memoria este preponderent
de tip ROM. n ea se gsete programul aferent aplicaiei, programe conexe
acestuia i, eventual, un minim de programe de sistem, iar memoria RAM
servete doar implementrii variabilelor i operaiilor de manevr.
Exist

mai multe tipuri de memorie ROM:


memoria ROM propriu-zis
memoria PROM
memoria EPROM
memoriaEEPROM

Memoria ROM propriu-zis se caracterizeaz prin aceea


prin nsui procesul su de fabricaie, n mod imuabil.

este

nscris

Memoria PROM se caracterizeaz prin aceea c este nscris de utilizator,


printr-un proces spedfic, cu ajutorul unui dispozitiv dedicat, numit
"programator de PROM-uri" sau "arztor de PROM-uri". O dat nscris, o
asemenea memorie nu mai accept nici un fel de modificare a coninutului
su, putnd, n continuare, fi doar citit. PROM vine de la Programmable
Read Only Memory.
Memori.a EPROM se caracterizeaz prin aceea c este nscris de
utilizator, printr-un proces specific, cu ajntorul unui dispozitiv dedicat, numit
"programator de EPROM-uri", dup ce a fost pregtit pentru aceasta prin
iradiere cu raze ultraviolete. Iradierea are ca efect tergerea memoriei, adic:
22

23

CAP3.DESPREINTERFEE

CAP2. DESPRE MEMORIE

DESPRE INTERFEE
Aa cum s-a precizat n capitolul 1, interfeele din structura unui
calculator au rolul de a asigura schimbul de informaii ntre procesor sau
memorie, pe de o parte, i dispozitivele de introducere a datelor,
dispozitivele de extragere a datelor, respectiv memoriile externe, pe de 'alt
parte.

interfa const

circuistic conex,

n unul sau mai multe porturi i, eventual, o


ce ndeplinete funcii de comand local.

Prin termenul de port se desemneaz un registru, dimensionat, de regul,


la 8 bii, avnd rolul de a prelua date de la echipamentele periferice,
respectiv de a scoate date spre echipamentele periferice, precum i de a
materializa diverse sarcini de comand aferente transferului datelor.
Porturile dedicate prelurii datelor de la echipamentele periferice se
numesc ''porturi de intrare".
Porturile dedicate scoaterii datelor spre echipamentele periferice se
numesc "porturi de ieire" (evident, porturile folosite pentru materializarea
de sarcini de comand sunt, inevitabil, fie de intrare, fie de ieire).

n principiu, un port de intrare -vezi figura 3_1- .este prevzut cu:


8 borne de intrare dedicate prelurii datelor de la echipamentul periferic,
numite "borne de intrare date" i notate IO .. .17;
I born de intrare de comand a scrierii n port a datelor prezente pe
liniile J0 .. .!7, numit "born de scriere" i notat b-xTWR (abreviere de
la "external write");
8 borne de ieire dedicate transmiterii datelor spre procesor, numite
"borne de ieire date" i notate 00... 07;
24

25

. CAP. 3. DESPRE INTERFEE


CAP3.DESPREINTERFEE

I born de intrare de comand a disponibilizrii ctre procesor a datelor


nscrise n port, numit "born de citire" i notat RD (abreviere de la
"read");
I born de. ieire de semnalare a faptului c n port exist o dat nscris

i nc necitit, numit "born de semnalare" i notat IBF (abreviere de

la "input buffer ful!");

I born de intrare de validare/invalidare, numit "born de selecie" i


notat CE sau CS (abrevieri de la "chip enable", respectiv "chip
select").
00 Ol 02 03 04 05 06 07
CE

RD

PORT DE INTRARE TIPIC

sub comanda semnalului RD. La ncheierea operaiei de citire, portul i va


trece din nou semnalul IBF la "O", fcnd, astfel, cunoscut, att pentru
procesor, ct i pentru periferic, faptul c~ befer-ul ~e intrare este. gol.
Pentru a se evita pierderea de date pnn suprascnere -suprascnerea
nseamn preluarea n port a unei noi date nainte ca precedenta s fi fost
citit-, perifericul trebuie s nu activeze semnalul EXTWR dect n timp ce
semnalul IBF este la "O". Pe de alt parte, procesorul trebuie s nu citeasc

portul dect n timp ce semnalul IBF este la"l ",pentru c, altfel, va accesa
fie o dat rar semnificaie, stabilit n port cu ocazia punerii sub tensiune,
fie o dat care a fost deja citit.

IB

IO II !2 13 !4 !5 16 !7 EXTWR

n principiu, un port de ieire -vezi figura 3:_3- este prevzut cu:


8 borne de intrare dedicate prelurii datelor de la procesor, numite

Fig. 3_1. Bornele clasice ale unui port de intrare.

Introducerea datelor n calculator cu ajutorul unui port de intrare tipic


este ilustrat prin cronograma din figura 3_2.
!0-17

===x

DATESTABILEX _ _ _ __

EATWR

__/

IBF

__/-

RDCS

Fig. 3_2. Cronograma semnalelor ce intervin la introducerea datelor


n calculator cu ajutorul unui port de intrare tipic.

Cronograma din figura 3_2 vrea s spun urmtoarele lucruri:


Cnd datele pe care perifericul trebuie s le introduc n calculator sunt
stabile, are loc activarea de

ctre

Hborne de intrare date" i notate 10.. .17;


J born de intrare de comand a scrierii n port a datelor prezente pe
liniile 10...17, numit "born de scriere" i notat WR (abreviere de la
"write");
8 borne de ieire dedicate transmiterii datelor spre echipamentul
periferic, numite "borne de ieire date" i notate 00. 07;
J born de intrare de informare a portului asupra faptului c
echipamentul periferic a preluat datele nscrise n el, numit "born de
citire" i notat EXTRD (abreviere de la ''externa! reali');
J born de ieire de semnalare a faptului c n port exist o dat nscris

i nc necitit, numit "born de semnalare" i notat OBF (abreviere


de la "output buffer/ul!");
J born de intrare de validare/invalidare, numit "born de selecie" i
notat CE sau CS (abrevieri de la "chip enable", respectiv "chip
select").

periferic a semnalului EXTWR, prin

trecerea sa la nivel "O". Valoarea activ a semnalului EXTWR determin


preluarea n port a datei prezente la bornele sale 10-17. Buffer-ul portului
ajungnd astfel plin, semnalul fanion IBF trece la "I". Prin testarea acestui
semnal, procesorul afl c o dat este pregtit pentru el n port i execut o
operaie de citire cu referire la acesta, prelund data prin bornele 00-0 7,
26

JO Il 12 13 14 15 16 17
PORT DE IEIRE TIPIC

WR
OB

00 Ol 02 03 04 05 06 07 EXTRD

Fig. 3_3. Bornele clasice ale unui port de ieire.


27

CAP. 3. DESPRE. INTERFEE

CAP3. DESPRE

Extragerea datelor din calculator cu ajutorul unui port de


prin cronograma din figura 3_ 4.

ieire

tipic este

ilustrat

Cronograma din figura 3_ 4 vrea s spun urmtoarele lucruri:


Cnd procesorul vrea

s scoat

dat

de scriere cu referire la port, ceea ce

spre periferic,

provoac

execut

operaie

activarea semnalului WR ,

prin trecerea sa la "O". Valoarea activ a semnalului WR determin


preluarea. n port a datei prezente la bornele sale 10-17. Buffer-ul portului
ajungnd astfel plin, semnalul fanion OBF trece la "O". Prin testarea
acestui semnal, perifericul afl c o dat este pregtit pentru el n port i
execut o operaie de citire, prelund data prin bornele 00-07, sub comanda
semnalului EXTRD. La ncheierea

operaiei

de citire, portul

va trece din

nou semnalul OBF la "I", fcnd, astfel, cunoscut, att pentru procesor, ct
i pentru periferic, faptul c buffer-ul de ieire este gol. Pentru a se evita
pierderea de date prin suprascriere, procesorul trebuie s nu scrie n port
dect n timp ce semnalul OBF este la "l". Pe de

alt

parte, perifericul

trebuie s nu citeasc portul dect n timp ce semnalul OBF este la "O",


pentru c, altfel, va accesa fie o dat fr semnificaie, stabilit n port cu
ocazia punerii sub tensiune, fie o dat care a fost deja citit.
10-17
WR.CS

==x

DATESTABILEX _ _ _ __

Ca i locaiile de memorie, porturile au asociate adrese. Adresele de


porturi pot fi parte a unui spaiu unic de adrese la nivelul calculatorului,
alturi de adresele de locaii de memorie sau pot constitui un spaiu de
adrese distinct, complementar spaiului de adrese de locaii de memorie. Din
considerente didactice, vom merge pe varianta din urm, adic: vom
presupune c se dispune de un spaiu de adrese de locaii de memorie,
avnd ca "martor" semnalul MRQ, i de un spaiu de adrese de porturi,
avnd ca "martor" un semnal numit IORQ. O adres de o anumit valoare
se refer, la un moment, la o locaie de memorie sau la un port, dup cum n
acel moment este activ semnalul MRQ sau, dimpotriv, semnalul IORQ.
Dac nici unul dintre aceste semnale nu este activ, atunci codul prezent la
bornele de adrese ale calculatorului -evident, la orice borne, un cod exist,
inevitabil, ntotdeauna, fie c este valid, fie c este invalid- nu reprezint o
adres i, n consecin, el nu trebuie s conduc nici la selecia unei locaii
de memorie i nici la selecia unui port. Acest lucru se asigur decodificnd
adresele condiionat de semnalele MRQ , respectiv IORQ.
Porturile se introduc n schemele calculatoarelor conectnd ntre ele,
la born, bornele de ieire date ale porturilor de intrare, bornele de
intrare date ale porturilor de ieire i bornele de intrare-ieire date ale
memoriei. Conectarea nu trebuie neleas obligatoriu direct, ci posibil prin
intermediul unor circuite tampon.
born

_/

OBF

__/---

EXTRD

Fig. 3_4. Cronograma semnalelor ce intervin la extragerea datelor


din calculator cu ajutorul unui port de ieire tipic.

Se precizeaz c bornele de ieire date ale porturilor de intrare sunt


inute, n cea mai mare parte a timpului, n starea de nalt impedan, fiind
activate doar n imp ce un astfel de port este citit efectiv de ctre procesor,
adic: n timp ce att semnalul CE, c;.t_li_ semnalul RD sunt active. De
asemenea, se menioneaz c semnalele RD i WR au efecte doar n timp .
ce portul este validat de semnalul CE, n timp ce semnalele EXTRD i
EXTWR nu sunt legate de semn?lul de validare I invalidare.
28

INTERFEE

29

CAP. 3. DESPRE INTERFEE


CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

4
DESPRE PROCESOR. UNITATEA
ARITMETICO-LOGIC

4.1. Reprezentarea numerelor n calculator


4.1.1. Reprezentarea numerelor n virgul fix
4.1.1.1. Reprezentarea numerelor pozitive

ntr-un sistem de numeraie de baz r, un numr K se exprim prin

notaia:

(4.1.1.1-1)
i

are valoarea:
(4.1.1.1-2)

Se spune c notaia (1) este poziional, deoarece fiecare cifr intervine


n valoarea numrului cu o pondere dat de poziia sa ("ri" pentru cifra
din poziia "i").
ntruct n calculatoare se lucreaz n baza 2, n continuare, vom
considera r-2.
Fie:
K'=cn-lcn_ 2 ..C1.c0 .

"'- semnul "." nu se mai scrie, fiind sub

30

31

neles

(4.1.1.1-3)

CAP. 4. DESPRE PROCESOR. UNITA TEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

(4.1.1.1-4)
K'

K{

(4.1.1.1-10)

= 2(cn-l . zn- 2 + cn-2 . 2n- 3 + ... + C1 )+Co


(4.1.1.1-5)

K{
2(cn-I . 2n-3 + cn-2 . zn-4 + ... + C2 )+ C1

Fie:

(4.1.1.1-6)

K;

K = C_I

Prin

'

2-I

+ C_2

'

2-2

+ C-(m-1) 2-(m-l) + C_m ' 2 -m

nmuliri

fracionare

succesive cu 2 ale
ale produselor, rezult:

(4.1.1.1-11)

numrului iniial i

K" 2 = c-1 + c-2 2- 1 + + c-(m-1) 2-<m-2 > + c-m . r<m-l)


.

K~-3 = 2(cn-1 . 2 + cn-2) + cn-3

ale

prilor

(4.1.1.1-12)

K;'
(4.1.1.1-7)

'-----v----'

KI . 2 = c_2 + C_3

2-I

+ + C-(m-1) 2-(m-3) + c_m . 2-Cm-2)

K~-2

(4.1.1.1-13)

Ki

K~-2 = 2(cn-1)+cn-2

(4.1.1.1-8)

'--v-"

K~-1

K~-l

(4.1.1.1-9)

= 2(0) + c _1
11

Aadar, cifrele binare ale unui numr pozitiv ntreg se pot obine prin
mpriri

succesive la 2 ale numrului n cauz, respectiv ale cturilor,


e ajunge la ct nul, ele -cifrele- fiind resturi n aceste mpriri.

pn

K~_ 2 2 =
K~-I

Aadar,

(4.1.1.1-15)

cifrele binare, ale unui numr pozitiv fracionar se pot obine


succesive cu 2 ale numrului n cauz, respectiv ale prilor
ale produselor, ele -cifrele- fiind prile ntregi ale produselor;
se efectueaz pn la determinarea unui numr satisfctor de

cifre.

Co

=>
=>
=>
=>
=>
=>

(4.1.1.1-14)

nmulhi.

fracionare

42:2=21 rest O
21: 2= 1O rest 1
10:2= 5 rest O
5:2 = 2 rest 1
2:2 = 1 rest O
1:2 =O rest 1

2 = c_m

nmulirile

K' == 42:

K"m-1

prin

Exemelu:

c-<m-I) +c_m

42=221+0
21=2 10+ 1
10=25+0
5=22+1
2=21+0
1=20+1

C5

=> 4210=1010102
Se precizeaz c numrul cifrelor binare necesare reprezentrii unui
numr ".a" pozitiv ntreg este:

Exemple:
1). K" = 0.8125

2).K" = 0.8124
C.J

C_J

0.81242=1 +0.6248
0.62482=1 +0.2496
0.24962=0+0.4992
0.49922=0+0.9984
0.99842=1 +0.9968

0.81252=1 +0.625
0.6252=1 +0.25
0.252=0+0.5
0.52=1 +O.O

C_5

C_4

=> 0.8124 10=0.l 1001...z

=> 0.812510=0.l lOli

n = min iii > log2 a


ieN

32

33

.CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO~LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC


;;:,

Cifrele binare ale unui numr pozitiv fonnat din parte ntreag i parte
fracionar se determin aplicnd regulile de mai sus pentru cele dou pri.

Lungimea de cod a reprezentrii semn-mrime este dat de relaia:

.Ft

2M
le sm=log2 r

Wi!

;},',

,~~,

Exemplu:
42.8125=42+0.8125=1O1O102+0 . l 101 2=101Ol0.1101 2

(4.1.1.2.1-6)

unde:
r: rezoluia cu care se iau n
intervalul (-M; M).

considerare

numerele

de

reprezentat

4.1.1.2. Reprezentarea numerelor de orice semn


4.1.1.2.1. Reprezentarea prin

Observatie:
Att M, ct ir, sunt, n practic, puteri ale lui 2.

semn-mrime

Fie A un numr oarecare i a reprezentarea sa n semn-mrime. Atunci,

.dac:

(4.1.1.2.1-1)
rezult:

a== ao . a_I ...a_(m+n)

~ semnul"". nu se reprezinta
~Am ca1cu1ator prm
' rum1c,

exemplific

-1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 o 0.25 0.50 0.75 1.00 1.25 1.50 1.75
de
reprezentat
1111 1110 1101 1100 1011 1010 1001 0000 0001 0010 0011 0100 0101 0110 0111
Codul
1000
semnNumrul

el fiind considerat n mod implicit

unde:

(4.1.1.2.1-2)

Tabelele din figurile 4.1.1.2.1 I i 4.1.1.2.1_2


reprezentarea numerelor n semn mrime n ipotezele:
(-M; M) =(~2,~ 2)
r=0.25
.respectiv:
(-M; M)=(-8; 8)
r=l

mrime

fO,dacaA 2 O

ao=1

(4.1.1.2.1-3)

a _1 =cn-i , Vi == 1 .m + n

(4.1. 1.2.1-4)

ll,daca A< O

Reprezentarea numerelor n semn mrime se poate surprinde matematic


cu ajutorul urmtoarei expresii:

Valoarea 1.875 1.750 1.625 1.500 1.375 1.250 1.125 O.OOO 0.125 0.250 0.375 -0.500 0.625 0.750 0.875
I.OOO
codului
semnmrime

Fig. 4.1.1.2.1_1. Reprezentarea n semn-mrime a numerelor din intervalul (-2; 2),


considerate cu rezoluia 0.25.
-5
-2
-1
o 1 2 3 4 5 6 7
-7
-6
-3
-4
de
reorezentat
1111 1110 1101 1100 1011 1010 1001 0000 0001 0010 0011 0100 0101 0110 0111
Codul
1000
semnNumrul

X
-

sm(x)

(0;1), daca x > O

l+fl

(1;2), dacax <O

(4.1.1.2.1-5)

mrime

Valoarea 1.875 1.750 1.625 1.500 1.375 1.250 1.125 O.OOO 0.125 0.250 0.375 0.500 0.625 0.750 0.875
I.OOO
codului
semn-

O sau 1 daca .x == O

mrime

unde:

Mare proprietatea c (-M; M) este intervalul n care se presupune c se


afl numerele de reprezentat.
34

Fig. 4.1.1.2.1_2. Reprezentarea n semn-mrime a numerelor din intervalul (-8; 8),


considerate cu rezoluia 1.

35

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR UNITATEA ARITMETICO-LOGIC

Evident, valoarea unui numr x al


sm(x) va fi dat de expresiile:
M sm(x), daca sm(.r:)

O, daca sm(x)

cod n

semn-mrime

este

Aadar, numerele pozitive se reprezint n complement de unu exact


prin semn-mrime. Numerele negative au bitul de semn ca n cazul
reprezentrii semn-mrime, iar ceilali bii -valori complementare n

ca

raport cu acest caz.

(0;1)

x = - M (sm(x)-1), daca sm(x)

crui

(4.1.1.2.1-7)

(1;2)

{0;1}

Lungimea de cod a

reprezentrii

complement de unu este

dat

de

relaia:

2M
lc_cl = log2 - r

Avantajele reprezentrii numerelor n semn mrime rezid n faptul


c ea permite efectuarea rar nici o complicaie a operaiilor de nmulire

(4.1.1.2.2-5)

unde:

i mprire.

Dezavantaje.le reprezentrii numerelor n semn mrime sunt:


necesit tratarea specific a biilor de semn n cazul operaiilor de
adunare i scdere (la nmulire i mprire nici nu se poate altfel, n
nici una dintre reprezentri);
dedic dou coduri pentru numrul O: 0.0 ... 0, respectiv 1.0 ... 0, ceea
ce face ca valorile reprezentabile cu ajutorul ei s fie cuprinse n
intervalul (-M; M) i nu [-M; MJ~ cum se ntmpl n cazul altor

r: rezoluia cu care se iau n considerare


intervalul (-M; M).

numerele de reprezentat n

Reprezentarea numerelor n complement de unu se poate surprinde

matematic cu ajutorul urmtoarei expresii:


X

reprezentri

cl(x) =

(0;1), daca x > O

2-2-n-~E [1;2-2-n ), dacax< O

(4.1.1.2.2-6)

O sau 2 - 2-n, daca x = O

4.1.L2.2. Reprezentarea prin complement de unu


Fie A un numr oarecare
Atunci, dac:

i a

reprezentarea sa n complement de unu.


( 4.1.1.2.2-1)

( 4.1.1.2.2.:.2)

a0 a_1a_(m+n)

unde:

M are proprietatea c (-M; M) este intervalul n care se presupune


c se afl numerele de reprezentat,
i:

n este numrul cifrelor din dreapta bitului dedicat semnului:

rezult:

a=

unde:

ao= {

. t-am
~ ca1cu1ator prm
. rum1c,
. .
semnu1" .,.nu se reprezm
el fiind considerat n mod implicit

O, dacaA:::::: O

1, daca A< O

cn-i daca A~ O
a_i = { _
_
cn-i daca A< O, unde cn-i

( 4 .1.1.2 .2-3)

= NOT(cn-i)
36

,Vi=l...m+n

(4.1.1.2.2- 7)

n=lc_cl-1,

Tabelele din figurile 4.1.1.2.2 1 i 4.1.1.2.2_2 exempl\fic


reprezentarea numerelor n complement de unu, n ipotezele:
(-M; M)=(-2; i)
.
r=0.25
respectiv:
(-M; M) =(-8; 8)
r=l

(4.1.1.2.2-4)
37

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

. CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

-1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25

Numrul

Exemple:

0.25 0.50 0.75 1.00 1.25 1.50 1.75

de
reprezentat
1000 1001 1010 1011 1100 1101 1110 0000 0001 0010 0011 0100 0101 0110 0111
Codul
1111
complement
de unu
Valoarea I.OOO 1.125 1.250 1.375 1.500 1.625 1.750 O.OOO 0.125 0.250 0.375 0.500 0.625 0.750 0.875
codului
1.875
complement
de unu

Fig. 4.1.1.2.2_1. Reprezentarea n complement de unu a numerelor din intervalul (-2; 2),
considerate cu rezoluia 0.25.

Fie:

(-M; .M)=(-8; 8), r=l


Rezult:

le_el = 4
~:

n =3

Fie:

I). a= -1, b= -5

I
'~~

-7

Numrul

-6

-5

-4

-3

-2

-1

;~

de
reprezentat
Codul
1000 1001 1010 1011 1100 1101 1110 0000 0001 0010 0011 0100 0101 0110 0111
complement
111 I
de unu
Valoarea I.OOO 1.125 1.250 1.375 1.500 1.625 1.750 O.OOO 0.125 0.250 0.375 0.500 0.625 0.750 0.875
codului
1.875
complement
de unu

ff

crui

a= -1 IO= ~0012 = lOOlsm = l l lOc1


b = -510= -1012= llOlsm = 1010cl
1110+
1010
1~1000+

~l
1001

Fig. 4.1.1.2.2_2. Reprezentarea n complement d~ unu a numerelor din intervalul (-8; 8),
considerate cu rezoluia 1.

Evident, valoarea unui numr x al


este el (x) va fi dat de expresiile:

Se va avea:

cu:

1OOlcI = -610

cod n complement de unu

2). a= I, b= 5

M cl(x), daca cl(x) E (O;l)

Se va avea:

-M (2 - 2-n - cl(x)), daca cl(x) E (1; 2-Tn)


{

O, daca cl(x)

(4.1.1.2.2-8)

{O; 2-Tn}

a= 110 = OO!i = OOOlsm =OOO lei


b = 510= lOh= OlOlsm = OlOlc1

0001+
0101

demonstreaz c

n reprezentarea complement de unu, suma a


dou numere se poate obine n doi pai, astfel:
n primul pas, se adun ntre ei complemenii de unu ai celor dou
numere, ntr-un proces n care biii de semn sunt tratai exact ca
oricare al-U
n al doilea pas, se adun la suma obinut n pasul unu, n poziia cea
mai puin semilificativ, transportul rezultat n respecivul pas unu,
transport ce, evident, poate fi fie 1, fie O.
'

Se

38

Qo(-0110+
L____,.

0110
cu:

39

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC .

Avantajele reprezentrii numerelor n complement de unu sunt:


permite efectuarea adunrii prin introducerea n calcule a biilor de
semn n mod nedistinctiv fa de restul biilor
permite nlocuirea scderii prin adunarea la desczut a
complementului de unu al opusului scztorului; de reinut c:

dac

. xlcl

= X 0 .X_1.X_P, atunci pentru

-X,

Se Va avea:

J'ic

cu y_1=x_i''ifi=O ... p; aadar: dac scztorul,


1 =y0.y_1.y_P,
n complement de unu, este 0011 (adic: +3), atunci numrul ce se va
aduna la desczut pentru realizarea scderii va fi 1100 (adic: -3 ), iar
dac scztorul, n complement de unu, este 1100 (adic: -3), atunci
numrul ce se va aduna la desczut pentru realizarea scderii va fi
0011 (adic: +3)

Dezavantajele reprezentrii numerelor in complement de unu sunt:


dedic dou coduri pentru numrul O: b.0 ... 0, respectiv 1.1...1, ceea
ce face ca valorile reprezentabile cu ajutorul ei s fie cuprinse n
intervalul (-M; M) i nu [-M; M), cum se ntmpl n cazul altor
reprezentri

face

Aadar, numerele pozitive se reprezint n complement de doi exact


ca i prin semn-mrime, respectiv ca i n complement de unu.
Numerele negative au bitul de semn i biii situai n dreapta celui mai
din dreapta bit nenul, precum i pe acesta nsui, la fel ca n cazul
reprezentrii semn-mrime, iar ceilali bii -valori complementare n
raport cu acest caz.

Lungimea de cod a reprezentrii complement de doi este dat de


relaia:

2M

unde:
r: rezoluia cu care se iau n considerare numerele de reprezentat n
intervalul [-M; M).

Reprezentarea numerelor n complement de doi se poate surprinde


matematic cu ajutorul urmtoarei expresii:

dificil execuia operaiilor de nmulire i mprire


parcurgerea a doi pai pentru efectuarea operaiei

necesit

de
adunare, ceea ce conduce la dublarea timpului de adunare, n raport
cu alte reprezentri

c2(x) =

i a

reprezentarea sa n complement de doi.


( 4.1.1.2.3-1)

rezult:

a=

( 4.1.1.2.3-2)

ao . a_1.a_(m+n)

semnul "." nu se reprezint n calculator prin nimic,


el fiind considerat n mod implicit

unde:
O,. daca A ;::: O
{ l, daca A< O

ao=

a .=

_,

( 4.1.1.2.3-3)

cn-t> daca A;::: Osau daca '\lj > i => cn-J =O


{ cn-i daca A< Osi 3j > zlcn-J '#O, unde cn-i = NOT(cn-i)

z_M
M

(0;1), daca x > O


E

{1;2), daca X<

( 4.1.1.2.3-6)

O, dacax =O

4.1.1.2.3. Reprezentarea prin complement de doi


Fie A un numr oarecare
Atunci, dac:

( 4.1.1.2.3-5)

le c2= logir

,'\/ i = 1. m + n

unde:
Mare proprietatea c. [-M, M) este intervalul n care se presupune
c se afl numerele de reprezentat.
Evident,
este n:

numrul

cifrelor binare din dreapta bitului dedicat semnului


( 4.1.1.2.~- 7)

n=lc_c2-l,

Tabelele din figurile 4.1.1.2.3_1 i 4.1.1.2.3 _2


reprezentarea numerelor n complement de doi, n ipotezele:
[-M; M)=[-2; 2)
r=0.25
respectiv:
[-M; M)=[-8; 8)
r=l

( 4.1.1.2.3-4)
40

41

exemplific

'

'

CAP. 4. DESPRE. PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Numrul

-2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50


-0.25 o 0.25 o.so 0.75 1.00 1.25 1.50 1.75
de
renrezeotat
Codul
1000 1001 1010 1011 1100 1101
1110 1111 0000 0001 0010 0011 0100 0101 0110 0111 ;,
complement
de doi
Valoarea 1.000 1.125 1.250 1.375 1.500 1.625
1.750 1.875 O.OOO b.125 0.250 0.375 0.500 0.625 0.750 0.875 !
codului
complement
de doi

Fie a E [-M; M) i b E [-M; M) dou numere cu proprietatea c:


a+b
i

Fig. 4.1.1.2.3_2. Reprezentarea n complement de doi a numerelor din intervalul [-8; 8),
considerate cu rezoluia I.

Evident, valoarea unui numr x al crui cod n complement de doi


este c2(x) va fi dat de expresiile:
M c2(x), daca c2(x)

A+ B-2, dacaA+B

(4.1.1.2.3-8)

Se demonstreaz c n reprezentarea complement de doi, suma a


dou numere se poate obine ntr-un singur pas, adunnd ntre ei
complemenii de doi ai celor dou numere, ntr-un proces n care biii de
alii.

Facem .. co_nvenia de a nota cu litere minuscule numerele de


reprezentat i cu litere majuscule imaginile lor n reprezentarea n
complement de doi:

(4.1.1.2.3-11)

c~
(4.1.1.2.3-12)

,,
~

unde:
c=a+b

'
[:.

. (4.1.1.2.3-13)

ntr-adevr:

i). dac a :? O i b :? Oatunci, evident, a+ b:? O i rezult:


a
b a+b
c2(a)+c2(b) = - + - = - = c2(a+b)
MM
M

iJ. dac a:? O i b < O, cu a:? I b I,

atunci, evident,

(4.1.1.2.3-14 )

a+b~ O i rezult:

prin ignorarea

iii). dac a :?

oi b < O, cu a < r b I, atunci, evident, a+ b< oi rezult:


a

lbl

lbl-a

c2(a)+c2(b)
- - = c2(a+b)
... = M+ 2 -M- = 2 -M

iv). dac a< O i b :?0, cu b:?I a

I,

( 4.1.1.2.3-16)

atunci, evident, a+b~O i rezult:


prin ignorarea
tennenului '2"

b
b
b - Ia I ,----"'--., - 1a 1
)
c2(a)+c2(b)=2--+-=2+-=
--=c2(a+b) (4.1.1.2.3-17
MM
M
M

laJ

(4.1.1.2.3-9)
c2(a)+c2(b)

42

[2;4)

are proprietatea c:

v). dac a < O i b :? O, cu

x E[-M,M)~X E[0;2)

Jbl

O, daca c2(x) =O

semn sunt tratai exact ca oricare

B imaginile lor prin c2.

a
a-lbj~a-lbJ
c2(a)+c2(b)=-+2--=2+-=
--=c2(a+b) (4.1.1.2.3-15)
M
M
M
M

(O;l)

x::: -M (2-c2(x)), daca c2(x) E [1;2)

(4.1.1.2.3-1 O)

c- {A+ B, dacaA+B E [0;1)

Numrul

-8
-7
-6
-5
-4
-3
-2
-1
o 1 2 3 4 5 6 7
de
reorezentat
Codul
1000 1001 1010 1011 1100 1101 1110 1111
0000 0001 0010 0011 0100 0101 0110 0111
complement
de doi
Valoarea I.OOO 1.125 1.250 1.375 1.500 1.625 1.750
1.875 O.OOO 0.125 0.25C 0.375 0.500 0.625 0.750 0.875
codului
complement
de doi

[-M; M) ,

Atunci:

Fig. 4.1.1.2.3 _1. Reprezentarea n complement de doi a numerelor din intervalul [-2; 2), . ,
considerate cu rezoluia 0.25.

Ia I:? b,

atunci, evident, a+b< O i rezult:

= 2 -ia-J +b- = 2 -laj-b


- - = c2(a+b)
M M

43

(4.1.1.2.3-18)

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

dac

vi).

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

a < Oi b < O, atunci, evident, a+b< O i rezult:


prin ignorarea

'c2(~)+c2(b) = 2-M+2-J1
~2-lal+lbl
= c2(a+b)
M
M
. M

(4.1.1.2.3-19)

Avantajele reprezentrii numerelor n complement de doi sunt:


permite efectuarea adunrii prin introducerea n calcule a bitilor de
semn n mod nedistinctiv fat de restul bitilor
'
permite nlocuirea scderii prin adunarea la desczut a
complementului de doi al opusului scztorului; de reinut c:
dac

Observatie:
Ignorarea termenilor de valoare "2" nseamna, m practic,
neglijarea transportului generat n procesul de adunare din rangul
2 ctre rangul 2 1

[-M; M)={-8; 8), r=l

le_c2 = 4 i n = 3
Fie:
1). a= -1, b= -5

Se va avea:
a = -l 10 = -00 l 2 = 100 lsm = 1111~2
b = -510= -lOh= llOlsm = lOllc2

X 0 .X_1.X_P ,

atunci pentru y =

-X,

Se Va avea;

x-i' dac '\lj > i ~ x_J =O


Y-i = { _ d .., . 1
, Vi= 0 ... p;
x_i, aca ~J > i x_j O
. .

aadar: dac scztorul, n complement de doi, este O11 O (adie~: +6),


atunci numrul ce se va aduna la desczut pentru realizarea scderii
va fi 1O1 O (adic: -6), iar dac scztorul, n complement de doi, este
1O1 O (adic: -6), atunci numrul ce se va aduna la desczut pentru
realizarea scderii va fi O11 O (adic: +6)
numrul O are dedicat un singur cod: 0.0.0, ceea ce face ca valorile
reprezentabile cu ajutorul ei s fie cuprinse n intervalul {-M; M) i
nu doar (-M; M), cum se ntmpl n cazul altor reprezentri

Dezavantajele reprezentrii numerelor n complement de doi sunt:


face execuia operaiilor de nmultire i mprire mai dificil dect n
cazul reprezentrii . semn-mrime, dar, oricum, indiscutabil
acceptabil

4.1.2. Reprezentarea numerelor n

virgul flotant

4.1.2.1. Principii

1111+

1011

Reprezentarea numerelor n virgul fix nu d satisfacie n privina


preciziei, atunci cnd numerele variaz n intervale largi. In
astfel de,., cazuri, trebuie folosit aa-numita reprezentare n virgul
flotant. In aceast reprezentare, un numr R se reprezint printr-o
mantis, M, i un exponent, E, stabilite astfel n.ct:

l~iOIO

rezoluiei i

+...___ se pierde
cu:

lOIOc2=

c2

Ylc2 = YoY-1Y-p, cu

Exemple:
Fie:
Rezult:

xi

-610

R=M~,

2). a= 1, b= 5

Se va avea:
a== l 10= 0012 = OOOlsm = OOOlc2
b = 510= lOlz= OlOlsm = OIOlc2

OOO-I+
0101
0~0110

cu:

Ol10c2= 610

B fiind baza sistemului de reprezentare. n domeniul calculatoarelor,


baza se alege 2, sau, n orice caz, o putere a lui 2. Se precizeaz c ea nu
trebuie s apar explicit la nivel de circuite, ci poate fi -i aa i estesubneleas.

Mantisa este, n variantele clasice de reprezentare n virgul flotant,


un numr fracionar. Se obinuiete ca ea s se aduc cu modulul mai
mare sau egal cu B- 1, prin ajustarea corespunztoare
a exponentului. O
mantis cu modulul mai mare Sf;lU egal cu B- 1 se numete mantis
normalizat {menionm c aceasta este normalizarea clasic, dar exist
i alte normalizri, dup cum se va vedea mai jos, la 4.1.2.2).
Mantisele clasice normalizate, reprezentate prin semn mrime, au
primul bit de dup cel al semnului cu valoarea 1.

44

45

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO~LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Exemple:

o.1ooi...} mantise semn-marzme


. norma1zzate
.

1.1010... .

Mantisele clasice normalizate, reprezentate prin complement de doi,


dac

sunt
valoarea l
b) dac sunt
valoarea O

Valoarea
exponentului
translatat

Bias=127

11111111
11111110

Bias=128

255
254

+128
+127

129
128
127

+2
+l

+127
+126
.
+1

pozitive: primul bit de

dup

cel al semnului cu

negative: primul bit de

dup

cel al semnului cu

10000001
10000000
01111111
01111110

...

126

-1

...
1

...

00000001
00000000

-126
-127

-1
-2

...
-127
-128

Fig. 4.1.2.1_1. Dou exemple de translatare a exponenilor.

0.0000000

o.10oi...} mantise complement d.e 2 norma1izate


.

'---v---'

0.0101...} mantise complement d e 2 nenorma zzzate


1.1011...

'---v-----'

mantisa

00000000

'----v----'

virgul flotant ofer

0.0000001
mantisa

Dac

rezultatele cu mantisa

normalizat.

~o

exponentul transl~tat

1.0110 ...

de calcul n

...

Dac att mantisa, ct i exponentul se reprezint pe 8 bii,. cu biasul


de + 128, vom avea:

Exemple:

Unitile

Valoarea exponentului efectiv

...

...

0.0101...} mantise semn-marzme


. nenorma ttzate
l.0111...

au:
a)

Exponentul
translatat

00000000

'-----v---'

Spre exemplificare, se prezint, n tabelul din figura 4.1.2. l _ 1, cazul


exponenilor reprezentai pe 8 bii, cu bias de 127, respectiv de 128.
46

i-128

=o

exponentul s-ar reprezenta netranslatat, atunci s-ar avea:

0.0000000 00000000-+

'----v-----' ' - - - v - - - '

mantisa

exponentul

0.0000001 00000000-+ Z-7 2

Exponentul este un numr ntreg. Asupra lui sunt instituite dou


Pe de o parte, ar fi de dorit ca numrul zero s se reprezinte
numai prin bii nuli, pentru ca el s fie uor detectabil, ca i n
reprezentarea n virgul fix. Pe de alt parte, se impune ca numerele
nenule, dar foarte mici, s aib acelai exponent ca numrul zero, pentru
ca erorile introduse prin rotunjiri i trunchieri s nu fie mari. Ambele
cerine pot fi satisfcute dac se adopt ca exponentul s apar translatat
cu un deplasament (bias) pozitiv, stabilit astfel nct exprimarea sa prin
bii exclusiv nuli s corespund celei mai mici valori posibile (aceasta
. este o valoare negativ; evident). Un exponent translatat astfel poart
numele de ''caracteristic".

exponentul translatat

'---v----' '---.,...----'

exigene.

mantisa

exponentul

Aadar, diferena ntre numrul care are toi biii nuli, n afar de
bitul cel mai semnificativ al mantisei, i numrul zero este i-1 , cnd se
lucreaz cu exponentul netranslatat i 2-135 , cnd se lucreaz cu
exponentul translatat.

4.1.2.2. Standardul IEEE 754


Standardul IEEE. 754 referitor la reprezentarea numerelor n virgul
flotant a fost lansat de IEEE (Institute of Electronical and Electrica!

Engineer~) n anul 1985. Acest standard are variante pe 16, 32,.64 i 80


bii. n continuare, va fi prezentat pe larg varianta pe 32 bii. De
asemenea, se vor indica i elementele de baz ale variantei pe 64 bii.
47

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

cel mai mic numr pozitiv reprezentabil este:

Baza de numeraie a standardului IEEE 754 este 2. Ea nu apare


explicit la nivelul circuisticii, aceasta innd cont de ea n mod implicit.

o1
[o Io o

Exponentul este pe 8 bii, translatat cu un deplasament egal cu 127.


Mantisa este un ntreg n intervalul [1; 2), reprezentat n sernnmrime, cu partea ntreag nematerializat, ci sub neleas. Aadar, n
timp ce mantisa vizibil este M, mantisa efectiv este m = 1.M.

31
i

unde:
S este semnul mantisei
E este exponentul translatat, cu bias=l27
M este excesul de lal mantisei (partea vizibil a mantisei)

E E [O; 254]

31
l l

8 9

1
\011 l

are valoarea:

cel mai mic

o1

numr

:::

+3.4 l 0+

combinaia

1 11

valoar~a:

cmmnnr=(-l)1 (1.11...11)-22s4-121 =-(l+(l-i-23))2121 ::-3.410+3s

48

combinaia
X E

31

M:t:O

arat c

nu se

.Jo cantitate negativa

corespunztoare lui E=255 i M=O arat


("overjlow"), atunci cnd se ajunge la numere

(-oo;-3.410 38 )LJ(+3.410 38 ;+oo)

de

"subdepirea"

negativ reprezentabil este:

011 1

pentru semnalarea

bii

de

supradepirea"

X E

38

8 9

bii

11

= (-1) 0 (1.11...11) 2 254- 127 = +(1 + (1- T 23 )) 2 127

= +2-127 =+0.5910-38

are de a face cu un numr, n cazuri cum sunt: Q,

are valoarea:
cmMnpr

31

o ol

Standardul IEEE 754 rezerv unele combinaii de


unor situaii deosebite. Astfel:
combinaia de bii corespunztoare lui E=25 5

se va avea:
cel mai mare numr pozitiv reprezentabil este:

are

8 9

o ojo o

23

Aadar,

zero este:

zero= (-1) 0 (1.00 ... 00). 2-m

ME [O; 1), cu rezolutia 2

numrul

o1
Iolo o

unde:

31

o ol

are valoarea:

x=(-l)s (1M)2E-m,

8 9

o 1 Io o

cmMnnr=(-1) 1 (l.00.00)2 1- 127 =-2- 126 =:-1.1810-38

Valoarea unui numr real x reprezentat n standardul IEEE 7 54 este dat


de expresia:

1110 o

= +2-126 =+l.1810-38

cel mai mare numr negativ reprezentabil este:

8 9

ls I

31

o ol

are valoarea:
cmmnpr = (-1) 0 -(1.00 ... 00) 2 1- 127

Reprezentarea IEEE 754 are cmpurile:

o 1.

8 9

o 1 Io o

(-1.1810-38 ; 0

bii corespunztoare lui E=O i M:;z:O arat


("underjlow"), atunci cnd se ajunge Ia numere

)u

(0; + 1.1810-38 )

n varianta pe 64 bii, standardul IEEE 754 are cmpurile definite astfel:

o1

!sl

63

1112
E

49

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Evident, n aceast variant, exponentul se reprezint pe 11 bii, iar


mantisa pe 52 bii, deplasamentul cu care se translateaz exponentul fiind
egal cu 1023. Drept urmare, valoarea unui numr real x reprezentat n
standardul IEEE 754 pe 64 bii este dat de expresia:

evideniaz clar cazurile de depire, precum i m,odul n care ele pot .fi

detectate.
Se

Ieiri

Intrri

demonstreaz

z,

simplu

c:

E9 Y; E9 C;+1

Ci+l

Xi

Y;

C;

o
o
o
o

o
o

cu:

4.2. Dispozitive de adunare i scdere

4.2.1. Principii

o
o

Circuistica de determinare, pe
baza primelor dou ecuaii de mai
sus, a biilor zi i ci are schema din
figura 4.2.1_3.

X=

(-l)s , (l.M). zE-1023,

unde:
ME [O; 1), cu rezolutia 2- 52
E E [O; 2047]

Operaia de adunare consist n determinarea, pentru fiecare rang al


reprezentrii, a cifrei sumei i a cifrei transportului spre rangul de pondere
imediat superioar, pornind de la cifrele celor doi operanzi corespunztoare
rangului n cauz i de la cifra transportului din rangul de pondere imediat
inferioar, aa cum se arat n figura 4.2.1_1 (n dezideratul de a nu
ncrca notaiile, n aceast figur i n continuare, biii de poziie "-k", cu
k=J . (n-1), se indexeaz cu "k'', rmnnd a se subntelege c ponderea
k
k
.
'
lor este T, i nu 2 ).
.

Fig. 4.2.1_2.

Relaiile
i Cj, Zi,

Zi

=X;

sau, echivalent, pe baza relaiei:


a+ b =a E9 b Ee (a b),
C;

= X;Y;

El?> C;+1X;

EB C;+1Y;

dintre Ci+J, Xi, Yi, pe de o parte,


pe de alt parte.

j,
Cj+/

:-------[)----------------D+.
I

I
I
I
1

I
I
I
!

z,

C;
I
I

I
!

I
:

~--------------------------------'

Fig. 4.2.1_3. Circuistica de determinare a biilor Zi i ci.


Ieiri

Intrri

Fig. 4.2.1_1. O ilustrare a operaiei de adunare.


Aadar,

pentru un rang "i", se vor avea


circuistica din figura 4.2.1_3.

situaiile

din figura 4.2.1_2

Rezultatele obinute n procesul de adunare pot fi afectate de erori,


atunci cnd el~- se situeaz n afara intervalului de reprezentabilitate
corespunztor numrului de bii pe care se lucreaz. Se spu~e, n astfel de
situaii, c intervine fenomenul de "depire" (4n termen mai vechi pentru
desemnarea acestui fenomen este cel de "depire a capacitii registrelor").
Evident, fenomenul de depire poate aprea doar atunci cnd se adun
operanzi cu acelai semn i se manifest prin aceea c semnul rezultatului
difer de semnul comun al celor doi operanzi. Tabelul din figura 4.2.1.4
50

Yo

Co

Zo

'V

o
o

o
o

o
o

o
o

C1

Xo

o
o

o
o

Fig. 4.2.1_4. Cu privire la fenomenul de "depire".

51

Rezult,

evident:
v =c 0 EB c 1

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

4.2.2. Sumatoare seriale

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

pentru K:

4.2.2.1. Principii

ecuaia

tact

Ol

consecin,

o
1

rezult urmtoarea "diagram

ieirii'':

11
O

10
1

=>z=xEByE9Q

schema sumatorului serial cu bistabil J-K este

---+-----a C

xy

o
o

sumei,

00

tact

urmtoarea:

strilor urmtoare 11 :
10

Din paragraful anterior se poate nelege c adunarea serial presupune


memorarea, n fiecare pas, a transportului rezultat n procesul de adunare,
. pentru a se face posibil disponibilitatea lui n pa.sul de adunare urmtor.
Avnd n vedere ecuaia transportului, rezult urmtoarea "diagram a

11

*
o

Fig. 4.2.2.2_4. Diagrama ieirii.

Fig. 4.2.2.1_1. Principiile adunrii seriale.

01

xy

.. 0101 z

00

10

Fig. 4.2.2.2_3. Diagrama intrrii K.

Avnd n vedere

11

Sumatoarele seriale efectueaz adunarea, ntr-un ciclu de tact, pentru un


singur rang. Se presupune, deci, c biii operanzilor. sunt fumizai serial, n
sincronism cu un semnal de tact, aa cum se su~ereaz n figura 4.2.2.1_1.

4.2.2.2. Proiectarea unui sumator serial folosind bistabile J-K

Ol

KR
Fig. 4.2.2.2_5. Sumatorul serial cu bistabil J-K.

Fig. 4.2.2.2_1. Diagrama strilor urmtoare.


innd seam
Qn+l

de

ecuaia

4.2.2.3. Proiectarea unui sumator serial folosind bistabile D

bistabilului J-K:

S-a artat c:

= J Qn + K Qn

se obin, pentru J
pentru J

K, urmtoarele diagrame, respectiv ecuaii:

z, = x 1 EB yi EB ci+I
ci =X;Yi +c;+1X; +ci+1Y1

' xy

Q"'(

00

Ol

IO

~J=xy

Fig. 4.2.2.2_2. Diagrama intrrii J.

52

Din aceste relaii, rezult c schema unui sumator serial cu bistabil D


este cea din ~gura 4.2.2.3_1, n care dreptunghiul marcat cu semnu~
reprezint circuistica de determinare a biilor sumei i transportului, a crei
schem este redat n figura 4.2.1_3.
11

53

+''.

CAl'. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

zj, i=O ... n-1

Zo

z., transport iniial

c. i=O ... n-1

Ci+/

i=O ... n-I

R. c

tact

Xn-:!

Yn-:!

x_,

Yn-1

Fig. 4.2.3.2_1. Schema de principiu a nsumrii paralele "ripple cany".


Fig. 4.2.2.3_1. Sumatorul serial cu bistabil D.

4.2.2.4. Avantaje i dezavantaje ale sumatoarelor seriale

Avantajele sumatoarelor seriale sunt:


simplitate
implementare printr-un numr redus de circuite
Dezavantajul sumatoarelor seriale este:
viteza de nsumare redus (pentru operanzi pe "n 11 bii, sunt necesare
"n" perioade de tact; n plus, frecvena semnalului de tact trebuie
aleas astfel nct, n fiecare perioad a sa, s existe suficient
timp pentru stabilizarea lui cJ

Avnd n vedere schema circuisticii de determinare a biilor zi i C; -vezi


figura 4.2.1_3-, rezult c timpul de adunare, Tad, al sumatorului "ripple
carry" este dat de relaia:
Tad

= n (2r) + T = (2n + l)z-

Un sumator "ripple carry" poate fi uor transformat n sumator/scztor,


aducndu-l la urmtoarea schem:
Sumator

4.2.3. Sumatoare paralele

Xi.

i=O.n-1

"n" exemplare

4.2.3.1. Principii
Sumatoarele paralele efectueaz adunarea, ntr-un ciclu de tact, pentru
toate rangurile.

z,

4.2.3.2. Sumatoare "ripple carry"


Se presupune c numerele sunt reprezentate n complement de 2, cu
bitul corespunztor semnului n poziia c0 Schema de principiu a nsumrii
11
paralele ripple carry 11 se prezint, atunci, aa cum se arat n figura
4.2.3.2 1.

Xo

SUB

Yo

Fig. 4.2.3.2_2. Schema dispozitivului de nsumare I scdere "ripple carry".

54

55

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Evident:
SUB=O implic faptul c la intrrile 2 ale sumatorului
se aplic valoarea y (ntruct: y 1 EB O= Y;), n timp ce cn=O,
ceea ce face ca dispozitivul s efectueze operaia z=x+y
SUB=l implic faptul c la intrrile 2 ale sumatorului
se aplic valoarea
- YI ci (ntruct: Y; EB 1= y;),. n timp ce
cn=l, ceea ce face ca dispozitivul s efectueze . operaia
z=x+(-yjc1J+2-rn-1J =x+(-Y!c1J=x-y

Observatie:
Se reamintete faptul c ntre complementul de 2 i complementul de J
ale unui numr, n exprimare pe n bii, . exist relaia:
c2(x) = cl(x) + r(n-1)

4.2.3.3. Sumatoare "carry /ookahead"


. Sumato~ele "carry lookahead' au aprut din ideea de a se reduce Tad
prm determmarea transporturilor ci direct n funcie de x;, Yb xi+i, Yi+/J ... , xn_ 1,
Yn-J i, eventual, c111 printr-o circuistic cu un numr redus de nivele logice.
Se are:
ci

= X;Y, + c;+1x; + c;+1Y;

+ (x; + Y; )c,+1
.__.. '--v--'

(4.2.3.3-1)

= X;Y;

gi

Pi

unde:
gi este comppnenta lui ci generat n rangul "i"
Pi. este variabila care asigur regsirea n ci a transportului propagat
dm rangul precedent, ci+!J atunci cnd acest transport este nenul
Mrimile gi i Pi se pot sintetiza cu o circuistic de factura celei din

Pe haza relaiei (4.2.3.3-1), se

obine:

(4.2.3 .3-2)

iar din (4.2.3.3-2)

(4.2.3.2-1) rezult:
(4.2.3.3-3)

Pentru concretizare,

s considerm

cazul

operrii

pe 4 bii. Vom avea:

C3=g3+p3Cin
C2=g2+p2g3+pffJ3C;n
c1=g1+p1g2+p1p2c3= g1+p1g2+p1p2g3+ P1P2P3Cin
co=go+pog1+pop JC2= go+pog1+PoP 1g2+ PoP 1p2g3+ PoP 1P2PJCin
i,

pe

aceast baz,

vom

obine

( 4.2.3 .2-4)
(4.2.3 .2-5)
(4.2.3.2-6)
( 4.2.3 .2-7)

schema din figura 4.2.3.3_2.

Evident, circuistica devine considerabil mai complex i mai


costisitoare, pe msur ce numrul de ranguri crete. Timpul de adunare
este, ns, redus i nu depind~ de numrul rangurilor .
T0 d

=rp.g

l~

(4.2.3.2-8)

+rc+Tr =r+2r+r=4r

logic

l.

\ 1 nivel logic

2 nivele logice

Observatie:
S-a avut n vedere
consecutiv lor!

determin

x/1Jzi se

n paralel cu p

g, nu

O soluie de compromis performan-cost se obine combinnd ideile


"ripple carry" i "carry lookaheacf', aa cum se arat n figura 4.2.3 .3 _3.

figura 4.2.3.2_1.
Timpul de adunare specific schemei din figura 4.2.3 .3 _ 3 este:

~ :~------5==-~
C;-/

Z;

T0 d

:'
! - - - - - - . . ; . . . '- - < ' l

g;

+"l'c +Tz

=('p.g

I~

+3TJ+rc +rz =r+32r+2r+r=l0r

logic

X;

y;

--------------------:-~
Fig. 4.2.3.3 _1. Circuistica de sintetizare a lui z;, gi ip;.

56

\ 1 nivellogic

2 nivele logice

Pi

=T:(O.J) =Te.

57

4 23 2 9
( .
- )

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Jl

CAP. 4. DESPRE PROCESOR. UNITATEA

ARITMETICO-LOGIC

1*

z (0:3)

z (4:7)

z (8:1 I)

x(4:7) y(4:7)

x(8:JJ)y(8:11)

z (12:15)

bO
J

;:;
~

1*

60

x(O:J) y(O:J)

Fig. 4.2.3.3_3. Sumator hibrid "ripple carry"

Pentru un dispozitiv de nsumare format din


lookahead' se obine:

x(l2:15)y(l2:15)

"carry lookahead".
"m'~

sumatoare "cany

Tad =rp,g +(m-l}rc +Te +T =r+(m-l)2r+2r+r=(2m+2)r


1

(4.2.3.2-10)
/J
I
~

r;

1*

4.2.3.4. Sumatoare "carry-skip"

b-0

Schema sumatorului "carry-skip"este cea redat n figura 4.2.3.4_1.

........

~
~
~

~
_l

...

- -

f?

1*

Fig. 4.2.3.4_1. Schema sumatorului "carry-skip".

Se observ c atunci cnd exist condiii ca la nivelul unui grup de 4


ranguri, transportul s se propage de la intrarea n grup pn la ieirea din
grup, se asigur aceast propagare pe o cale scurtat, cuprinznd 3 nivele
logice. Rezult c n situaia cea mai defavorabil, se are:

l
<::

I..)

58

59

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

T d =k2r+r+(k-I)-2r
+ ..,.,r + (n/k-2)2r=(nlk+4k--4)r
..____,,.___,
'----v--""
0

i
timpul de propagare a
transportului generat n
interiorul grupului c.m.p.s.

timpul de propagare prin


ultimul nivel logic de calcul
al sumei n grupul c.m.p.s.

Exemple:
1).

(4.2.3.4-1)

dintr-un

grup

2a).

cu

0101+
0100
1001~9

5 -E--7 0101+
8 ~ 1000
,,;O~ 1101+
-r
0110

1~ ~1 ~0011~3

cale de propagare a ,

Sumatorul "carry-skip" realizeaz un bun compromis ntre costurile pe


care le implic i performantele pe care le ofer. Trebuie spus c, n :,
prezent, n domeniul calculatoarelor, n prim-plan este pus problema f
performanelor, costurile implicate de creterea gradului de complexitate
circuisticii nemaicntrind prea mult.

all

I
J

4.2.3.5. Sumatoare BCD

timpul de propagare a
timpul de propagare a
transportului prin circuitele transportului pe calea scurtat,
rangurilor 1. (k-1) ale
n cele n/k-2 grupuri i!{g.c.m.s.,
grupului c.m.p.s.
g.c.m.p.s.)

unde:
n = numrul de ranguri
k = numrul de ranguri
transportului scurtat

5
4

I
nsumarea numerelor BCD se face cu sumatoare binare de tipul celorf
tratate mai sus, prevzute, suplimentar, cu o logic de corecie. Se are nl
vedere faptul c adannd dou cifre BCD, xb yi, i un transpo;-t din rangull
I~
zecimal anterior, ci+b sunt posibile dou situaii:
1) xi+ yi+ ci+J < 10
i
2) x 1 + y,+ c + 1 ~ JO

2b). 9

e:l

-F

1001+
1000
~ 0001+
0110

1~ ~0~0111~7
Exemplele 2a) i 2b) conduc la concluzia c adunarea suplimentar, n
scopuri de corecie, a valorii 6, trebuie tcut fie atunci cnd suma dup
primul pas este cuprins ntre 1O i 15, fie atunci cnd respectiva sum este
ntre 16 i 18, n acest al doilea caz rezultatul nemaifiind, de fapt,
reprezentabil pe 4 bii, ci pe 5, al cincilea fiind transportul ci= 1.
Rezult c
prezint aa

o celul de nsumare BCD, realizat cu sumatoare binare, se


cum se arat n figura 4.2.3.5_1.
'Z;,3

Z1,o

-------
I

I
I
I

I
I

'
I

,.
I

..

1,2

I
I
I
I

z /,]
sumator
binar
pe 1 bit

J
I

I
I

I
I

I
I

------~-----t---- -------- ---- --------- ------------- ---- _____ J


Xt,3

Yi.J

X;,o

Fig. 4.2.3.5_1. Schema celulei de nsumare BCD.

60

I
I
I
I

n situaia 1), prin adunarea binar obinuit a celor dou tetrade ce~
codific cifrele operanzilor, se obine direct codul BCD al sumei, n timp ce~
transportul spre urmtoarea cifr zecimal este nul.
i
n situaia 2), prin adunarea binar obinuit a celor dou tetrade ce
codific cifrele operanzilor, se obine un rezultat la care dac se adun ci:fraJ
6, se ajunge l~ codul BCD al sumei, rezultnd, totodat, aa cum trebuie, un~
transport nenul spre urmtoarea cifr zecimal.

"O"

61

Y1.o

c 1+ 1

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR UNITATEA ARITMETICO-LOGIC

Legnd n cascad "n" celule de tipul de mai sus, aa cum se arat n


figura 4.2.3 .5 _ 2, se obine un sumator pe "n" cifre BCD.

Co

Zo

Zt

Sumator

Sumator

BCD

BCD

Yo

Swnator
BCD

+-----

.
X;

4.3.1. Principii

Zn-J

4
Xo

4.3. Dispozitive de nmultire

Y1

Xn./

Cele mai folosite


Cn

reprezentri

n care se

efectueaz

n calculator

operaia

de nmulire sunt reprezentarea semn-mrime i reprezentarea complement

de 2. Pentru ilustrarea principiilor de interes pentru implementarea acestei


operaii, alegem s folosim, imediat n continuare, reprezentarea semn-

mrime.

Yn-I

Fig. 4.2.3.5_2. Sumator BCD pe "n" cifre.

numere y i x din intervalul (-M; M), considerat cu


Lungimea de cod a reprezentrii semn mrime a acestor numere
va fi -vezi relaia (4.1.1.2.1-6)-:
Fie de

nmulit dou

rezoluia r.

(4.3.1-1)
ntruct, evident, intervalul de valori posibile pentru produsul celor dou
numere este (-M2 ; M 2), dac adoptm i pentru produs rezoluia r, cum este
i firesc, rezult c lungimea de cod necesar pentru reprezentarea
produsului va fi:

lc_sm_y=log2 (2M2/r)= 2log2M+l-log2r = 2lc_sm_o:J+log2r

(4.3.1-2)

Dac

I
I
~;

i
I

impunem, n plus, ca cele dou numere s fie pozitive, atunci,


conform relaiei (4.1.1.2.1-5), imaginile lor semn-mrime vor fi:

sm(x)=x/M

(4.3.1-3)

sm(y)=y!M

(4.3.1-4)

iar produsul acestor imagini va fi:

p=(xy)IM2 =srn(xy)

(4.3.1-5)

Privind acest p prin prisma relaiei (4.1.1.2.1-7), n ipotezele stabilite, se


c el este tocmai imaginea semn-mrime a produsului z al
numerelor x i y. ntr-adevr:
observ

62

II

(4.3.1-6)

63

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

n cazul n care cel puin unul dintre numerele care se nmulesc este
negativ, atunci, evident, cele de mai sus nu mai sunt valabile.
Fie, pentru operanzi, (-M0 p; M 0 p) = .(-8; 8), r=l i, prin consecin,
lc_sm_op =4 bii (inclusiv semnul)-a se revedea tabelul 4.1.1.2.1_2-, iar
pentru produse, (-Mp; Mp)=(-64; 64), r=l i, prin consecin, lc_sm_JJ =7
bii (inclusiv semnul), i fie, de asemenea, x=6 i y=5.
Constatm c dac nmulim imaginile celor dou numere -adic:
numerele Q. 750 i 0.625-, obinem numrul 0.46875, care, n condiiile
stabilite, este imaginea semn-mrime a numrului 30=6*5 (ntr-adevr:
64*0.46875=30).

produsele de forma 2j x j y, iar n final, s se efectueze adunarea lor n


vederea obinerii produsului cutat. O soluie mai rezonabil ar rezulta dac
lucrurile ar fi abordate n mod recurent. Produsul p ar putea fi, atunci,
exprimat astfel:
p = (. ( ( O + 2 ~ Xo Y) + 21 X1 Y) + ... + 2 n-2 Xn-2 . Y) + 2 n-1 Xn-1 Y

dup

(t-7)

IP..

cum urmeaz:

11 o.
101

00000+
110
0011 O+

= P, + X1Y
'zY22

OOO
00110+

p=P2+XiY

110
11110

o= O
oy2

Pa+xay

1=

ly2

~O.__/_O_ls_m=_0_.6_2_5_10-----0-.4_61_..510=001111 O,m
Fig. 4.3.l_l. O ilustrare a nmulirii a dou numere ntregi
prin intermediul imaginilor lor semn-mrime.

IP,

Ip,

iar calculele ar decurge

111102=3010

O11 O,,.,=O.

\l"JPo

11

Fie y~y~ 1 y~ 2 y~ 3 imaginea semn-mrime a lui y = +YzYiYo i x~x~ 1 x~ 2 x~ 3


imaginea semn-mrime a lui x = +x2 x 1x 0 Rezult:
o
l
2
3
(4.3.1-8)
y =2 O+r Y-1 +2- Y-2 +2- Y-3
I

Algoritmul de nmulire a celor doi opernnzi ntregi, denmulitul y= 1102


i runulitorul x= 1O1 2 este, n principiu, cel cunoscut din aritmetic pentru
nmulirea

numerelor zecimale, astfel nct vom avea:

1 1 O ~ Y4Y iYo
~ 101 ~ X2X1Xo
110 ~ 2xay
OOO ~ 2 1x1y
2
110
-~ 2 X2Y

(4.3.1-9)
S vedem ce se ntmpl dac, n loc s nmulim cele dou numere,
nmulim pe x' cu y' i, n plus, facem artificiul ca pe parcursul calculelor s
operm nu cu y , ci cu 2y , lund, totodat, msuri pentru ca rezultatul final
s
I

nu fie afectat.

p =y

o
1
= y (2 0 + Z- X_I

11110 ~ p= 'L:2jxj y,cun.=3


)=O

y + r X_1y + r

64

X_z

+ Z-

X_3)

X_1Y

\ \I I p~
L . . .-

\p~

I1r

L.J

Evident: din punct de vedere al implementrii, ar fi total inacceptabil s


se procedeze ca mai sus, adic: ntr-o etap s se calculeze, succesiv,

+r

+ r X_3y =
1
1
=(((( 0 +X~32yfZ- 1 +X~z2y'JZ- +X~i2y )Z- +02y )2-l

= 2 . o.

n-1

65

(4.3\1-.1:i .

\ p;
-

'

P4 - p

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Prin artificiul de mai sus, au fost atinse dou deziderate. Pe de o parte,


s-a pus n eviden un algoritm recurent de nmulire, algoritm constnd
ntr-un numr de pai egal cu lungimea de cod a reprezentrii semn-mrime
a op~ranzilor i n cadrul cruia n fiecare pas se efectueaz o operatie de
adunare i una de nmulire cu 2 1, ambele uor de implementat. Pe d~ alt
parte, s-au asigurat premizele furnizrii rezultatului nu pe 7 biti cum ar
impune relaiile (4.3 .1-1) i (4.3 .1-2), dac s-ar opera efectiv cu x 'i' y ; ci pe
8 bii, lungime mult mai adecvat pentru un calculator. n acest caz, ns, Mp
devine:

(4.3.1-11)
ceea ce nseamn c valoarea efectiv a produsului se va obtine nmultind
'
'
exprimarea sa semn-mrime nu cu 64, ci cu 128.
Concret, lucrurile vor decurge dup cum urmeaz:

4.3.2. Sinteza unui nmultitor de numere n

. nmulirea n semn mrime a dou numere pozitive se realizeaz aa cum


s-a artat n ult~a parte a paragrafului 4.3.1. nmulirea n semn mrime a
unui numr pozitiv cu un numr negativ, respectiv a dou numere negative
se realizeaz reducnd problema la nmulirea a dou 'numere pozitive, dup
cum urmeaz: se rein semnele operanzilor pentru ca, pe baza lor, s se
stabileasc semnul produsului, iar n calculele propriu-zise se introduc, pe
de o parte, operandul pozitiv, aa cum este el, iar pe de alt parte opusul
operandului negativ, respectiv, n al doilea caz, opuii celor doi operanzi
negativi.
Fie

y 0 y_1y_ 2 y_' 3

2P~
2P~+x~ 3 2y

'

-----?>

01100000
~

X~ 2 2y'
--j-

2P~
X~ 1 2y'

lui

y = sYy 2y 1y 0 . i

x=sxx2 x 1x 0 , cu sy, SxE{+; -}.


indiferent de valorile lui sy i sXJ n calculele propriu-zise
introduce
numerele
Oy~1 y~ 2 y~ 3 = 0Yiy 1y 0 ,
respectiv

vor

=Ox x x

2 1 0,

iar semnul produsului va rezulta din expresia:


(4.3.2-1)

Schema bloc a unui nmulitor de numere n semn-mrime,


baza relaiei (4.3.1-10), este redat n figura 4.3.2_1.

conceput

pe

-----------------------------------reg~triiil:>oausufu1--------------------------------

00011110
0.23437510

00110000
~.

-l... 2!

00111100+
02y
0000
2p; +02y' =2p ~ 00111.100
.,1.. 2 I

00110000+
0000

2Jf

2.ff +x~ 2 2y'

2I

01111000

2~

011 o

X~ 3 2y'

semn-mrime

x;x~ 1 x~ 2 x~ 3 imaginea semn-mrim~ a lui

se

imaginea

Rezult, aadar, c,

Ox~ 1 x~ 2 x~ 3

0110. 2P~ +x~ 2y


1
0101
00000000+

semn-mrime

-l... 128

2-t

3~10

00011000+
0110

Mp

2P~ +x~ 1 2y' ~ 01111000

CLK

MUL

Fig. 4.3.2_1. Schema bloc a nmulitorului de numere reprezentate n semn-mrime.

66

67

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Elementele structurale ale schemei sunt:


X:
bistabil
MUXl: multiplexor
A:
registru de deplasare dreapta, cu posibiliti de ncrcare paralel
Q:
registru de deplasare dreapta, cu posibiliti de ncrcare paralel
M:
registru cu posibiliti de ncrcare paralel
SUM: sumator paralel, pe 8 bii
MUX2: multiplexor
BC:
bloc de comand

Bistabilul X este destinat prelurii semnului produsului, determinat cu


ajutorul porii SAU EXCLUSIV n ultimul pas al algoritmului n ciclul de
ncrcare paralel, n scopul transmiterii lui spre rangul O al registrului A, n
ciclul de deplasare dreapta din cadrul aceluiai ultim pas.
Multiplexorul MUXl are rolul de a introduce n rangul O al registrului A
bii de _valoare "O", n ciclurile de deplasare dreapta din cadrul pailor ce-l
preced pe ultimul, respectiv informaia prezent n bistabilul X -semnul
produsului-, n ciclul de deplasare dreapta din cadrul pasului ultim.
Registrul A este sediul prii mai semnificative a produselor pariale i, n "
final, sediul prii mai semnificative a produsului numerelor nmulite. El
este iniializat la zero la nceputul fiecrei sesiuni de nmulire. n primul.
ciclu al fiecrui pas al algoritmului de nmulire, registrul A este ncrcat
paralel cu suma dintre coninutul su anterior i rezultatul nmulirii cifrei
_curente a nmulitorului cu denmulitul. n al doilea ciclu al fiecrui pas al
algoritmului, registrul A este supus unei operaii de deplasare la dreapta, n
concatenare cu registrul Q -deplasare prin care se efectueaz, de fapt,
nmulirea cu 2- 1 prin care se genereaz produsele pariale-; n timpul
deplasrii, prin intermediul multiplexorului MUXl, n rangul
O
al
registrului A intr zero-uri, n paii diferii de ultimul, respectiv coninutul
bistabilului X, reprezentnd semnul produsului, n pasul ultim.
Registrul Q este, iniial, sediul nmulitorului, dar, pe parcurs, n cadrul
de deplasare dreapta ce au loc n ciclul doi al fiecrui pas al
algoritinulUi de nmulire, biii nmulitorului deja folosii sunt ejectai' prin
partea dreapt, n timp ce prin stnga intr ceea ce iese din rangul 3 al
registrului A, adic: cte un bit al produsului n curs de determinare. n
operaiilor

68

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

finalul algoritmului, n registrul Q se va


a produsului numerelor ce se nmulesc.

gsi

partea mai

Registrul M este, de la nceput pn la sfrit, sediul


aici n etapa de iniiere a unei noi sesiuni de nmulire.

puin semnificativ

denmulitului,

adus

Multiplexorul MUX2 are rolul de a transmite la intrarea 2 a sumatorului


SUM fie denmulitul, atunci cnd cifra curent a nmulitorului -este vorba
despre cifrele diferite de cea corespunztoare semnului- este I, fie valoarea
0000, n cazul contrar. Atunci cnd cifra curent a nmulitorului este cea
corespunztoare semnului, se foreaz trimiterea spre intrarea 2 a
sumatorului SUM a valorii 0000.
Sumatorul SUM e_ste un sumator binar paralel oarecare, cu rolul de a
calcula produsele pariale ca sum dintre produsul parial de pn atunci i
rezultatul nmulirii cifrei curente a nmulitorului cu denmulitul.
Blocul de comand BC este un automat secvenial cu rolul de a sintetiza
semnalele de comand interne ale nmulitorului, i anume: IN, P, DD i
UP. Semnificaiile acestor semnale sunt urmtoarele:
IN:
semnal de iniializare a nmulitorului, generat intern, de ctre
blocul de comand BC, la nceputul fiecrei noi sesiuni de
lucru. Iniializarea cont n:
>- forarea la zero a bistabilului X i a registrului A
>-- ncrcarea registrului Q cu nmulitorul
> ncrcarea registrului M cu denmulitul
P:
semnal de ncrcare paralel a registrului A i a bistabilului X.
Reamintim: ncrcarea paralel a registrului A se face cu suma z
furnizat de sumatorul SUM, n urma adunrii produsului parial
de pn n momentul respectiv cu rezultatul nmulirii cifrei
curente a nmulitorului cu denmulitul, iar bistabilul X se
ncarc, n afara ultimului pas al algoritmului, cu informaii
nesemnificative i, n consecin neutilizate, iar n ultimul
pas, cu semnu.I produsului, determinat cu ajutorul porii SAU
EXCLUSIV prezente n schem.

69

CP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

DD:

semnal de deplasare la dreapta a informaiei diri registrele


n concatenare. Reamintim: n cadrul
deplasrilor -deplasri prin care se efectueaz, de fapt,
nmulirea cu 2- 1 a produselor pariale-, n rangul O . al
registrului A intr zero-uri, n paii diferii de ultimul,
respectiv coninutul bistabilului X, reprezentnd semnul
produsului, n pasul ultim.
semnal auxiliar ce marcheaz ajungerea n Ultimul pas al
algoritmului de nmulire, pas n care sunt ajuni la rnd biii
celor doi operanzi corespunztori semnelor (remarcm faptul
c, n schem, apare i negatul acestui semnal, UP ).

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-~OGIC

0110

A i Q, considerate

UP

Semnalele pe care schema le primete din exterior sunt:


CLK: semnal de tact, primit de nmulitor de la unitatea de comand
a procesorului. Acest semnal va pilota funcionarea tuturor
elementelor secveniale ale schemei: bistabilul X, registrele A,
Q i M i blocul de comandBC.
MUL: semnal de declanare a unei noi sesiuni de lucru a
nmulitorului, primit de nmulitor din partea unitii de
comand a procesorului. Declanarea unei noi sesiuni de
lucru a nmulitorului se va face la fiecare tranziie de la O la 1 a
acestui semnal.
Dac stabilirea schemei bloc a nmulitorului este -de la un punct ncolo,
cel puin- o chestiune de imaginaie, pu la fel stau lucrurile cu proiectarea
blocului su de comand. Aceast proiectare se poate face algoritmic, aa
cum se va arta n continuare.
Funcionarea dorit pentru schem este cea descris prin organigrama din
figura 4.3.2_2. Se remarc faptul c se parcurg 10 stri -o stare fiind un
ciclu al semnalului de tact-, dintre care una este starea de inactivitate, SO, ,
a,lta este starea de iniializare, SJ, iar celelalte opt, S2-S9, sunt strile ~
corespunztoare celor 4 pai ai algoritmului de nmulire propriu-zis, cte
2 pentru fiecare cifr binar din reprezentarea semn~mrime a nmulitorului.
Rezult, aadar, c blocul de comand al nmulitomlui va fi un automat
secvenial. cu 1O stri. S-l proiectm, acum, ct metoda diagramelor VID,
presupunnd c implementarea vrem s o facem cu bistabile J-K.

IN
X+--0,
A(0:3) +--O,
Q(0:3) +- x',
M(0:3) +- y';
0011
DD
1100

A(0:3) +-- z(0:3),


X+- Q(3) tB M(O);
li z(0:3) = A(0:3) + Q(3)*0.M(l :3)

________

Jr~ldR..

________ _

A(0:3) +-- z(0:3),


X+-- Q(3) E9 M(O);
li z(0:3) = A(0:3) + Q(3)*0.M(l :3)
li Q(3) = Sx, M(O) = Sy

0010

DD
Q(3) +-- Q(2),

1000

Q(O) +- A(3 ),
A(3) ~ A(2),

DD,UP

A(O) +-- MUXl;


li MUXl =X.UP

Q(3) +-- Q(2),

Q(O)
A(3)

A(3),
A(2),

A(O) +-- MUXl;


li MUX1 = XUP

Fig. 4.3.2_2. Organigrama funcionrii nmulitorului.


70

71

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Mai nti, se impune codificarea adiacent a strilor. S admitem varianta


de codificare indicat n figura 4.3.2_2. Diagrama acestei codificri este
reprezentat n figura 4.3.2_3, n
ipoteza c bistabilele blocului de
comand sunt notate cu B3 - B 0

~
00

B3

Ol

~1Bo

tlz " "

00
01
11
10

00

so

O1
Sl

S7

S6

11
S2
S5

S8

*
*

*
*

S9

10
S3
S4

*
*

11
10

~ K 0 = B2 B1 + B2 B1
Fig. 4.3.2_6. Diagrama lui K pentru bistabilul B 0 .
~1Bo
B 3tli ~ 00

Fig. 4.3.2_3. Diagrama codificrii strilor.

n continuare, se ntocmete, pentru fiecare din bistabilele B 0- B3,


"diagrama strilor urmtoare", "diagrama lui J" i "diagrama lui K" -vezi
figurile 4.3 .2 4-4.3 .2 15-, ultimele dou tinnd seama de ecuatia de
funcionare a bistabilului J-K:

'

(4.3.2-2)
B

00
O1
00 MUL 1
01
o o

11

IO

11

*
*

*::o

tli " "

10

00
01
11
10

*
*

Fig. 4.3.2_4. Diagrama strilor urmtoare pentru bistabilul B 0

o
o
o
o

O1
1

11

10

o
*
*

1
1

*
*

~
00
01

11
10

00

10

o
o
o

*
*
*

=B2 Bo

=>J1

Fig. 4.3.2_8. Diagrama lui J pentru bistabilul B1.

B1Bo
B3B2
00
00
*
01
11

10

01

=B3 B2 ffi MUL+B2 B1

10

o
o

*
*
=B2 Bo

Fig. 4.3.2_9. Diagrama li K pentru bistabilul B1.

Fig. 4.3.2_5. Diagrama lui J pentru bistabilul B0 .

72

11

*
*
*

~K1

~J0

*
*

Fig. 4.3.2_7. Diagrama strilor urmtoare pentru bistabilul B1.

B3

~1Bo

00

73

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

BB
l o
B 3B2

00

01

11

00
01

11

o
o

*
*

10

00

10
1
1

00

11

10

01 1 ._.:__i--:o~~o__..__
0-1

*
*

01

11

10

Fig. 4.3.2_10. Diagrama strilor urmtoare pentru bistabilul B 2

*
*

* *
* *
=> J3 = B2 fii Bo
*

Fig. 4.3.2_14. Diagrama lui J pentru bistabilul

B1Bo
B3B2
00

00
01
11

10

o
*
*

01

11

01

11

o
*

*
*
*

*
*

*
*

=:> J 2 = Bi

*
=>K3 =Bi

Ba

Fig. 4.3.2_15. Diagrama lui K pentru bistabilul

Fig. 4.3.2_11. Diagrama lui J pentru bistabilul B2 .

Aadar, ecuaiile intrrilor

B1Bo

B3B2
00
01
11

00

01

11

10

*
o

*
*

*
*

10

K2 =B3

BB
l o

00
00
01
11
10

o
1
1

01

11

10

o
o
*
*

o
o
*
*

pentru bistabilul B 3 :
J3 = B2 B1 Bo
K3 =B2

o
*

B3.

bistabilelor B 0 - B3 vor fi:

pentru bistabilul B 0 :
Jo ;;J33 B2 Bi MUL+B2 B1
Ko = B2 "Bi + B2 B1
pentru bistabilul B1:
Ji =B2 Ba
Ki =B2 Ba
pentru bistabilul B2:
J2 =Bi Bo

Fig. 4.3.2_12. Diagrama lui K pentru bistabilul B2

B 3B2

B3.

(4.3.2-3)
(4.3.2-4)

(4.3.2-5)
(4.3.2-6)
(4.3.2-7)
(4.3.2-8)
(4.3.2-9)
(4.3.2-10)

. Fig. 4.3.2_13. Diagram~ strilor urmtoare pentru bistabilul B3 .

A mai rmas s determinm ecuaiile ieirilor, ieiri care sunt: IN, P, DD


UP. ntocmim,- pentru fiecare dintre acestea, cte o "diagram a ieirii"
-vezi figurile 4.3.2_16 - 4.3.2_19-.

74

75

.CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

B1Bo
B3B2
. 00
00
01
11
10

o
o
o

_CAP. 4. DESPRE PROCESOR. UNITATEA RITME.TJCO-LOGIC

11

10

:------------------------------------.-----------;.,_--------------o.-------::
5 ~ ~01
e~~~

o
o
*

o
*

..

-5 5 " ~
~ ;;
R
I

10'

@1c:::b

..... u

B1 B0

)
'

I
I
I

=?1N=B2

-1-

I
I

Fig. 4.3.2_16. Diagrama ieirii IN.

1
I

I
I

I
I

B1Bo

I
I

B3B2

10

I
I

00

11

01
11
IO
=?

IP= B2 B 1 B 0 + B 2 B1 B 0 + B 3 B 2

Br + B2 'Bi B 0

Fig. 4.3.2_17. Diagrama ieirii P.

B3~o
_

00

00

OI

O'

DD = B2 B 1 B0 + B 2 B 1 B 0 + B3 B 2 + B3 B 2

10'

@1.::::b

,_, u

11
10
=?

'r'

Hi B

Fig. 4.3.2_18. Diagrama ieirii DD.


I
J

O'

=?

UP=B3

Fig. 4.3.2_19. Diagrama ieirii UP.


76

I:.~
:I

. ,

10'

@1c:::o

..... u
I

L ...

I
I

I
I

.~

I
I
I

'----------------~------------------------------------------------------

77

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Aadar, ecuaiile ieirilor IN, P, DD i UP vor fi:

IN=B2 B1 Ba
IP = B2 B1 Ba + B 2 B1 Ba + B3 B 2 lf., + B2 'Bi. B0
DD="ffi B1 ~lfo +B2 B1 Ba +B3 B2 +B3 B2 Br Bo

(4.3.2-11)
(4.3.2-12)
(4.3.2-13)
(4.3.2-14)

UP=B 3

Pe baza

ecuaiilor

(4.3.2-3) - (4.3.2-14), se obine pentru blocul de


de numere n semn-mrime schema din figura

comand a nmulitorului

4.3.2 20.
Considerm contextul adecvat pentru a introduce i un alt element
consacrat de descriere a funcionrii schemelor logice secveniale, i anume:
cronograma. Aadar, redm n figura 4.3.2_21 cronograma schemei din
figura 4.3.2_20.

4.3.3. Sinteza unui nmultitor de numere n complement de 2,


dup metoda Robertson
Avnd n vedere c cele mai frecvente operaii -am numit adunarea i
scderea- se fac mai convenabil n complement de 2, s-au cutat soluii n
aceast reprezentare i pentru nmulire (soluia de trecere de la
complement de 2 la semn-mrime, nmulire n semn-mrime i reconversie
din semn-mrime n complement de 2 nu este acceptabil sub aspectul
vitezei, aceasta fiind sens.ibil diminuat de operaiile de conversie} Una
dintre soluiile cele mai bune rezultate din aceste cutri este cea dat de
Robertson. Metoda de nmulire Robertson prevede urmtoarele:
1) n cazl y~ =O, x~ =O:
Numerele se nmulesc ca i cum ar fi n semn mrime, pe baza
formulelor de recuren: ~=O, 2~ = (2P;~ 1 +x;_n2y') T 1 ,i = l...n
2) n cazul y~ = 1, x~ = O :

Dac k=max(j)I x~I=l,atunci.F{ =0,Vi>ksi~ <0,Vi5.k. Drept

_MU_L__.____.l\l----:-----:-----t--~----:----1-------1-----1--------:-------:--------:---

-::___,__j . ' :
~~:

---4

l-

B2

B3

----.-----;~~:~---;--;-~;---r----;----;--~----,rIP

DD

urmare, se pot aplica formulele

P; =O, 2P;' = (21{ + x;_n 2y') T


1

i = l...n , lund msuri ca deplasarea la dreapta din calculul lui 2~


prin care se face nmulirea cu 2 1, s se fac cu introducere de zero -uri n rangul cel mai semnificativ, dac i > k, i cu introducere de
unu -uri, dac i S k.

3) n cazul y~ = O, x~ = 1 :
Numerele se nmulesc ca i n cazul 1), dar, n final, se adaug un
pas de corecie care const n scderea denmulitului din
ultimul produs parial.

4) n cazul y~ = 1, x~ =I :
Numerele se nmulesc ca
corecia indicat la cazul 3).

n cazul 2),

adugndu-se,

n final,

Metoda Robertson poate fi implementat cu ajutorul schemei bloc din


figura 4.3.3_1, n care s-a avut n vedere cazul unor operanzi pe 4 bii.

UP

Fig. 4.3.2_21. Cronograma schemei din figtira 4.3.2_20.

78

79

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC.

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Registrul A este sediul prii mai semnificative a produselor pariale i,


n final, sediul prii mai semnificative a produsului numerelor nmulite. El
este iniializat la zero la nceputul :fiecrei sesiuni de nmulire. n primul
ciclu al fiecrui pas al algoritmului de nmulire, registrul A este ncrcat
paralel cu suma dintre coninutul su anterior i rezultatul nmulirii cifrei
curente a nmulitorului cu denmulitul. n al doilea ciclu al fiecrui pas al
algoritmului, registrul A este supus unei operaii de deplasare la dreapta, n
concatenare cu registrul Q -deplasare prin care se efectueaz, de fapt,
nmulirea cu 2 1 din cadrul calculului produselor pariale-; n timpul
deplasrii, n rangul O al registrului A intr, dup caz, zero-uri, sau
unu- uri, oferite de bistabilul F, aa cum s-a menionat.
Registrul Q este, iniial, sediul nmulitorului, dar, pe parcurs, n cadrul
de deplasare dreapta ce au loc n ciclul doi al fiecrui pas al
algoritmului de nmulire, biii nmulitorului deja folosii surit ejectai prin
partea dreapt i preluai n bistabilul K, n timp ce prin stnga intr ceea ce
iese din rangul 3 al registrului A, adic: cte un bit al produsului n curs de
determinare. n finalul algoritmului, n registrul Q se va gsi partea mai
puin semnificativ a produsului numerelor ce se nmulesc.
operaiilor

Fig. 3.3.3_1. Schema bloc a nmulitorului de numere n complement de 2,


bazat pe metoda Robertson.

Elementele structurale ale schemei sunt:


F:
bistabil
registru de deplasare dreapta, cu posibiliti de ncrcare paralel
A:
Q:
registru de deplasare d'eapta, cu posibiliti de ncrcare paralel
bistabil
K:
o M:
registru cu posibiliti de ncrcare paralel
c SUM:
sumator paralel, pe 4 bii
MUX: multiplexor
bloc de comand
BC:

Bistabilul F este destinat fumizrii de bii de valoare adecvat -O sau 1,


caz-, pentru .intrarea serie n rangul O al registrului A, n acord cu
specificaiile n acest sens ale metodei Robertson. Remarcm c dezideratul
exprimat la punctul 2) de mai sus i valabil i pentru plU1ctul 4) se :
realizeaz simplu cu ajutorul bistabilului F, dac acesta se poziioneaz atunci cnd denmulitul este negativ- pe 1 la prima ntlnire a unui bit al
.nmulitorului nenul i rmne apoi la valoarea 1 pn la sfritul ,
procesului de nmulire. Cu alte cuvinte, n F se va nscrie valoarea
F + x;_n y~, cu "i" evolund nortnal, de la 1 ctre n (aici, semnul "+': '.
reprezint operaia logic "SAU', iar semnul"" -operaia logic "~"'I").

Registrul M este, de la nceput pn la sfrit, sediul denmultitului,


adus aici n etapa de iniiere a unei noi sesiuni de nmulire~
'
Multiplexorul MUX are rolul de a transmite la intrarea 2 a sumatorului
SUM fie denmulitul, atunci cnd cifra curent a nmulitorului este 1, fie
valoarea 0000, n cazul contrar. n timpul operaiei de corecie, circuistica
din. jurul multiplexorului va asigura transmiterea spre sumator a opusului
denmulitului, dac corecia se impune, respectiv transmiterea valorii
0000, altfel.

dup

80

Sumatorul SUM este un sumator binar paralel oarecare, cu rolul -de a


calcula produsele pariale ca sum dintre produsul parial de pn atunci i
rezultatul mnultirii
cifrei curente a nmultitorului
cu denmultitul. n
,
'
timpul coreciei, sumatorul efectueaz, n fond, o scdere, adunnd la
produsul parial din acel moment opusul denmulitului.

Blocul de co.ruand BC este un automat secvential cu rolul de a sintetiza


semnalele de comand interne ale nmulitorului, 'i anume: IN, P, DD i
COR. Semnificaiile acestor semnale sunt urmtoarele:
81

. CAP. 4.DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

IN:

P:

DD:

COR

semnal de iniializare a nmulitorului, generat intern, de


ctre blocul de comand BC, la nceputul fiecrei noi sesiuni
de lucru. Iniializarea'cont n:
> forarea la zero a bistabilelor F i K i a registrului A
.> ncrcarea registrului Q cu nmulitorul
> ncrcarea registrului M cu denmulitul
semnal de ncrcare paralel a registrului A i. a bistabilului F.
Reamintim: ncrcarea paralel a registrului A se face cu suma
z fumizat de sumatorul SUM, n urma adunrii produsului
parial de pn n momentul respectiv cu rezultatul .
nmulirii cifrei curente a nmulitorului cu denmulitul, iar
bistabilul F se ncarc cu valoarea F + x;_n y~. n final,
sumatorul SUM va fumiza spre ncrcare n regjstrul A,
rezultatul operaiei de corecie.
semnal de deplasare la dreapta a informaiei din registrele
A i Q, considerate n concatenare, cu .preluarea informaiei
ejectate din rangul 3 al registrului Q, n bistabilul K;
evident, dup ultima deplasare, n K se va afla semnul
nmulitorului. Reamintim: n cadrul deplasrilor -deplasri
prin care se efectueaz, de fapt, nmulirea cu 2- 1 a
produselor pariale-, n rangul O al registrului A intr, dup
caz, zero-uri sau unu-uri furnizate de bistabilul F.
semnal auxiliar ce marcheaz ajungerea n ultimul pas ar
algoritmului de nmulire, pas n care se efectueaz operaia de
corecie.

Semnalele pe care schema le primete din exterior sunt:


CLK: semnal de tact, primit de nmulitor de la unitatea de comand
a procesorului. Acest seITu~al va pilota funcionarea tuturor
elementelor secveniale ale schemei: bistabilele F i K,
registrele A, Q i M i blocul de comand BC.
MUL: semnal de declanare a unei noi sesiuni de lucru a
nmulitorului, primit de nmulitor din partea unitii de
comand a procesorului. Declanarea unei noi sesiuni de
lucru a nmulitorului se va face la fiecare tranziie de la O la 1
a acestui semnal.

82

--

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Blocul de comand trebuie s aib 11 stri:


1 stare de repaus
1 stare de iniializare
4. x 2 = 8 stri de ncrcare paralel i deplasare (cte o pereche de
operaii. de ncrcare paralel I deplasare pentru fiecare bit al
nmulitorului)

1 stare de

corecie,

care presupune efectuarea

a unei

operaii

de

ncrcare paralel

Vom proiecta acest bloc, de aceast dat, cu ajutorul unui numrtor.


Evident, numrtorul trebuie s fie modulo 11. Bistabilele numrtorului
le vom nota cu B3-B 0
Considerm, mai nti, drept stare de repaus, starea

O numrtorului.
apoi, ca procesul de numrare s nceap atlmci cnd tactul
gsete semnalul MUL pe 1. Stabilim, n continuare, ca numrarea s in
ct timp cel puin un bistabil al numrtorului este pe 1, dar nu mai mult de
11 perioade ale semnalului de tact. Mai exact, lum msuri ca la atingerea
n numrtor a valorii 11, el s fie forat asincron la O.

Adoptm,

Instituim drept stare de iniializare starea 1 a numrtorului, iar drept


de ncrcare paralel, . strile pare din intervalul 2-9 i starea a 10-a.
Sunt, evident, 5 astfel de stri: 4 dedicate prelurii sumelor ce intervin n
calculul produselor pariale pe baza formulelor de recuren P~ = O,
stri

= (2P;~l + x;_n. 2y'). i- 1 ,i=1...n'

cu n = 4, i 1 dedicat efecturii
coreciei pe care algoritmul o impune pentru cazurile cnd nmulitorul
este un numr negativ (corec#e care, reamintim, const n scderea
denmulitului din produsul parial aferent ultimului pas).

2P;'

Dedicm drept stri de deplasare dreapta strile impare din intervalul


1
2-9. Sunt, evident, 4 astfel de stri. Ele servesc efecturii nmulirii cu T
prezente
n
formula
de
calcul
al
produselor
pariale,
'
'
'
'
I
2~ =(2P;_1 +xi-n 2y )2':" ,i=l...n.

Alocm ca stare de corecie starea 1O a numrtorului. n cadrul ei, se va


activa semnalul COR, astfel nct circuistica din jurul multiplexorului
MUX, mpreun cu acesta, s poat asigura .aplicarea la intrarea 2 a
sumatorului SUM fie a opusului denmulitului, atunci cnd corecia se
impune, fie a valorii 0000, altfel.
83

CAP. 4. DESPRE PROCESOR. UNITATEA ARITM:ETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

0100

Cnd numrtorul atinge, n mod natural, starea 11, se va fora


imediat -adic: n mod asincron- aducerea lui la zero; n acest fel,
numrtorul va numra modulo 11. Semnalul de forare a aducerii
numrtornlui la zero, la atingerea strii 11 are ecuaia:

0101

R = B3 B 1 B 1 B 0
IN
--p-~o~----

0110

A(0:3) +-0,
Q(0:3) +- x',
M(0:3) <--- y';

ntruct combinaia pentru care B3 B2 B1 B 0 = 1 nu apare niciodat,


expresia lui R poate fi minimizat la forma:
(4.3.3-1)

0111

0010

Organigrama de funcionare a nmulitorului Robertson este redat pe


pagina precedent, n figura 4.3 .3 _2.

DD

IP

--A(O:~~~C0:3):---------

1000

F +- F + M(O)Q(3);
li z(0:3) = A(0:3) + Q(3)*M(0:3)

__________IP__________ _
A(0:3) +- z(0:3),
F <--- F + M(O)-Q(3 );
li z(0:3) = A(0:3) + Q(3)*M(0:3)

0011

DD

GIOO)

--R--+:"Q(3)~-----------

Q(3) +- Q(2),

Evid.ent, strile blocului de comand realizat ca numrtor modulo 11


nu vor mai fi codificate adiacent -vezi figura 4.3.3_3-, cum au fost la
nmulitorul n semn mrime.
BB
I O
8 382
00

00
01

so

11

lO
DD

Q(O) +- A(3),
A(3) +- A(2),

-K.--~Q(3f-~----------

Q(3)

f-

Q(2),

S8

ss
*

S9

11

10

S3

S2

S7

S6

*
*

810

Fig. 4.3.3_3. Diagrama codificrii strilor.

Ecuaiile semnalelor de comand generate de blocul BC se vor


determina construind, pentru fiecare dintre ele, cu ajutorul informaiilor din
figurile 4.3.3_2 i 4.3.3_3, "diagrama ieirii".

Q(O) +- A(3 ),
A(3) +-A(2),

1010

_________

S4

Ol
Sl

________ _

!P~~QE

A(0:3) +- z(0:3),
F +- F + M(O}Q(3);
li z 0:3 =A 0:3 -K*M(0:3

B8
I O
8 382
00
o
00

Ol

11

10

Ol

11

10

o
*

o
o
*

*
*

-=.. IN = B3 JJ2 Br B 0
Fig. 4.3.3_4. Diagrama ieirii IN.

Fig. 4.3.3_2. Organigrama funcionrii

84

nmulitorului

Robertson.

85

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

B1Bo
B3B2
00
01

(4.3.3 _6)

10
~~--+---#-~::3;t'

(4.3.3_7)

11
10-i=-~+-:--t----l~-Jd-

=>lP=B1

Evident, n acest fel, circuitul format din cele 4 bistabile va ncepe


prin comutarea de la O la 1 a bistabilului B 0 i o va continua ct
timp cel puin unul dintre bistabile va fi pe 1, adic: pn la atingerea strii
11, cnd va intra n aciune semnalul R i va reinstitui starea O.

B0 +B2 .Ba +B3 B0

numrarea

Fig. 4.3.3_5. Diagrama ieirii P.

B1Bo
B3B2
00
00

Ol
11
10

o
o
*
o

Ol

Pe baza ecuaiilor (4.3.3_1) - (4.3.3_7), se obine pentru blocul de


al nmulitorului Robertson schema din figura 4.3.3_8.

10

comand

o
o
*
o

,-----------------------------------------------------------------------------------.

COR:

I_ J
I

~
I

I
I
1

=> DD =Bi B0 + B2 B0 + B:. B0

1
I
I

Fig. 4.3.3_6. Diagrama ieirii DD.

DoJ

I
I

I
I

00
01
11
10

B1Bo

B3B2

00

Ol

11

10

o
o

~ :!

:I
I
I
I
I
I

,_ J

'Bi Bi, Bo

(4.3.3_2)

I
I
I
I

I
I

Bo +Bi ffo +B3 Bo =(Bi +B1 +B3)Bo =Bi Bi B3Bo

1-<c@
~KR

I~~

Q~-

Q--...... ,_ J

Q_

I-

Q- ,.....

o--

Q-.....

kc@

~c@

r<c@

~Ki

~ KR_

- KR_

cL. .

Q,......,

Q. . . .

(4.3.3_3)

B2. B3Bo(4.3.3_4)
(4.3.3_5)

lM UL
I
l
I

I
I
I
~

~-----------------------------------------------------------------------------------

Fig. 4.3.3_8. Schema blocului de comand al nmulitorului Robertson.

Pentru implementarea numrtorului, vom folosi bistabile J-K, cu


comutare pe frontul cobortor al semnalului de tact. Pentru ca ansamblul
celor~ bistabile s funcioneze ca numrtor, vom asigura pentru intrrile
lor J 1 K semnale cu urmtoarele ecuaii:
86

I
I
I

N:

:c!-K

I
I
I

Aadar, ecuaiile ieirilor IN, P, DD i COR vor fi:

p:

DD=B1 Bo +B2 Bo +B3 Bo =(B1 +Bi +B3)Bo ='Bi


COR=B3 B1

I
I
f
I

Fig. 4.3.3_7. Diagrama ieirii COR

IP=B1

::::>COR=B3 B1

IN =B3

I/

87

I
I
I
I

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICA

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

n figura 4.3 .3 _9, se prezint cronograma de funcionare a schemei din


figura 4.3.3_8.

'Nr. crt. BJB2B1Bo


~
o
0000
.--- 1
0001
0010
2

Ooeratia

XX.XX

Q
xxxx

X.XXX

START=> linia I

X.XXX

XX.XX

011?

xxxx
0010

IN =>linia 2
P =>linia 3

0011
0100

o
o

0010
0010

DD =>linia 4
P =>linia 5

0101
0110

7
8

0111
1000

o
o

9
10

1001
1010

o
o

11
12

0000
0000

o
o

0000 +
0000 0000
0000+
0010 0010
0001 +
0010 . ; :;
0011
0001 +
0000 0001
0000 +
0000 .;:
0000
0000

0110

001~

0011

OOO'

0010
0010

DD =>linia 6
P =>linia 7

0001

10op

1
1

0010
0010

DD =>linia 8
P =>linia 9

1000
1100

0010
0010

DD => linia 1O
P =>linia 11

0010
0010

NllvflC => linia 12

1100
1100

Fig. 4.3.3_10. Exemplu de nmulirea cu metoda Robertson: y = 2, x = 6 (cazul 1).


Observatie:
Rezultatul este: 0000 11 OOc2 = 0000 11 OOsm = +OOO 11002 = + 1210
COR

. . . . . .
I

Observatie:

IL
I

Fig. 4.3.3_9. Cronograma de funcio~are a dispozitivului de com~d


al nmulitorului Robertson.

Aciunile semnalelor de comand IN, P, DD i UP se produc efectiv pe frontu{ ridict .


(posibil, ns, i pe cel cobortor) al semnalului de tact din ciclul n care ele sunt active.

n final, se prezint, n tabelele care fac obiectul figwilor 4.3.3 104.3.3_13, patru exemple de nmulire dup metoda Robertson, cte ~ul
pentru fiecare din cele patru cazuri pentru care metoda prevede reete
distincte.

Nr. crt. B3B2B1Bo


0000
o
0001
1
0010
2

XX.XX

xxxx
0000 +
0000 . ; :;
0000
0000 +
1110 ~
1110
1111 +
1110 .;:
1101
1110 +
0000 1110
1111 +
0000 ~
1111
1111

0011
0100

.O

4
5
6

0101
0110

1
1

7
8

0111
1000

1
1

9
10

1001
1010

11
12

0000
0000

1
1

.1

Q
xxxx

O oe raia

XX.XX

START=> linia 1

XX.XX

0110
I

xxxx
1110

IN =>linia 2
P =>linia 3

0110
0011

o
o

1110
1110

DD => linia4
P =>linia 5

0011
0001

1110

1110

DD =>linia 6
P ::::>linia 7

0001

1110
1110

DD =>linia 8
P => lini 9

1110
1110

DD =>linia 10
P => linia 11

1110
1110

NIMIC=> linia 12

10op

1000
0100
OiOO
0100

Fig. 4.3.3_11. Exempl~ de nmulirea cu metoda Robertson: y = -2, x = 6 (cazul 2).


Observatie:
Rezultatul este: 1111 01 OOc2 = I OOO 11 OOsm =-OOO 11002 = -1210
88

89

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITA TEA ARITMETICO-LOGIC


Nr. crt. B3B2B1Bo
0000
o
0001
1
0010
2

F
X

X.XXX

xxxx
0000+
0000 .....;
0000
0000 +
0010 ~
0010
0001 +
0000 0001
0000+
0010 "
0010
0001 +
1110 _;
1111
1111

0011
0100

5
6

0101
0110

o
o
o
o

. o111

1000

9
10

1001
1010

11
12

0000
0000

o
o

Oneratia
START=> linia 1
IN =>linia 2
P =>linia 3

1010

M
xxxx
xxxx
0010

1010
01011

o
o

0010
0010

DD =>linia 4
P =>linia 5

0010
0010

DD => linia6
P =>linia 7

0010
0010

DD =:> linia 8
P =>linia 9

0010
0010

DD =>linia 10
P => linia 11

0010
0010

NI.MIC=> linia 12

xxxx
xxxx

X
X

0101

001p

0010

lOOl

1001
0100

0100
0100

4.3.4. Sinteza unui nmultitor combinational


Procedeele de nmulire considerate pn aici implic o execuie
Ele au avantajul c se implementeaz printr-o circuistic
relativ restrns, dar i dezavantajul c necesit un timp cu att mai mare
cu ct opereaz pe mai muli bii. Progresele nregistrate de tehnologia
microelectronic
au
fcut
posibil
realizarea de nmulitoare
combinaionale, ultrarapide, la un raport performan-cost din ce n ce mai
secvenial.

atrgtor.

La baza conceperii unui


considerente;
Dac
'

= -6 (cazul 3).

exprimai

semn-mrime,

stau

urmtoarele

sunt:

(4.3.4_1)

Y = YoY-1 Y-cn-1)
I

Fig. 4.3.3_12. Exemplu de nmulirea cu metoda Robertson: y = 2, x

cei doi operanzi,

nmulitor combinaional

(4.3.4_2)

XoX-1 . X-(n-I)

modulele lor fiind:

Observatie:
Rezultatul este: 1111OlOOc2=1000 JJOOsm =-OOO 11002
Nr. crt. B3B2B1Bo
o
0000
l
0001
0010
2

.:>

0011
0100

(4.3.4_3)

-1210

.K

Oneratia

X.XXX

xxxx

START=> linia 1

xxxx
0000 +
0000 ~
0000
0000+
1110 ~
1110
1111 +
0000 ~
1111
1111 +
1110
1101
1110 +
0010 0000
0000

X.XXX

xxxx
xxxx

101?

1110

IN =>linia 2
P => linia 3

1010

1110
1110

DD =:> linia 4
P =>linia 5

1110
1110

DD ::::>linia 6
P => linia 7

111 o
1110

DD =:> linia 8
P =>linia 9

1110
1110

DD => linia 1O
P => linia 11

1110

lllO

o
o

0101
0110

6
7
8

0111
1000

1
1

9
10

1001
1010

11

oo"oo

12

0000

Ol Of

0101
0010

0010
100i1

1001
1100

o
o

NIMIC~

Fig. 4.3.3_13. Exemplu de runulirea cu metoda Robertson: y = -2, x

=-6 (c;:;zul 4).

Observatie:
Rezultatul este: 0000 llOOc2= 0000 JJOOsm= +OOO 11002

90

linia 12

Ox~1 . x~<n-11

(4.3.4_4)

atunci:

!PI= Op~1P~2 /J~2n--2) =y' x' =(~-iy~) (~-1x~)=


1=1

-2

'

-3

i=l

=2 (x_1Y-1)+2 (X_1Y-2 +x_2Y-1)+.+2

-(2n-2)

(x_(n-1)>'-(n-1))

(4.3.4_5)

iar:

P=

1100
1100

Ix' I=

(4.3.4_6)

PoP-1P-2P-<m-2)

cu:
p~ =X~ ffi y~
'

(4.3.4_7)

'

(4.3.4_8)

P-1 = C_z
P-2 = X_1Y-1 + C_3
I

(4.3.4_9)
I

(4.3.4_10)

P-3 = x_1Y-2. + x_2Y-1 + c-4


O

P-c2n-2)

(4.3.4_11)

= x_<n-l)Y-<n-n

+1210
91

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. VNirATEA ARITMETICO-LOGIC

4.4. Dispozitive de mprtire

n cazul concret n=4, se va avea:


'

'

(4.3.4_12)

Y = YoY-1Y-2Y-3
X

'

'

(4.3.4_13)

X 0 X_1X_ 2 X_ 3

(4.3.4_14)
(4.3.4_15)

jP'j =

Op~iP~2P~3P'-4P~sP~ =y' x' =r2 (x~1i1)+r3 (x~1Y~ +x~2y~1 )+

Operaia de mprire

se efectueaz n calculator cel mai convenabil n

semn-mrime. n procesul de mprire propriu-zis, se opereaz cu


modulele numerelor, senmul ctului urmnd a fi stabilit separat, ca functie

SAU EXCLUSIV ntre bitul corespunztor semnului dempritului i bitul


corespunztor semnului mpritorului.
-dempritul,

Fie cei doi operanzi

+ 2- (x~,y~3 + X~2Y~2 + X~3Y~1) + T 5 (X~2Y~3 + X~3Y~2) + 2-6(x~3Y~3)


iar:

4.4.1. Principii

semn-mrime, dup

XoX-1 .. X-(2n-2)

(4.3.4_16)

(4.3.4_17)

Y = YoY-1 Y-cn-1)

respectiv

mpritorul- exprimai

cum urmeaz:

(4.4.1_1)

(4.4.1_2)

cu:
p~ =X~ (fJ y~

. .
P-1 = C_z
.
P-2

(4.3.4_18)

X_1Y-1

+ C_3
I

(4.3.4_20)
I

~-1Y-2

(4.4.1_4)

+ X_2Y-1 + C_4
P~ = X~1Y~3 + X~2Y~2 + X~3Y~1 + C~s
P-s = X_2Y-3 + X_3Y-2
P-3 =

(4.4.1_3)

(4.3.4_19)

Pentru modulele lor, vom avea:

(4.3.4_21)
(4.3.4_22)

(4.3.4_23)
(4.3.4_24)

Pe baza relaiilor (4.3.4_17).( 4.3.4_24), rezult, pentru nmulitorul


pe 4 bii, schema din figura 4.3.4_1.

combinaional

--------------------------------~-----------------------------------

Este lesne de rieles c, n semn marune, dac la nivel de module,


ar fi mai mare sau egal cu mpritorul, atunci ar rezulta un ct
de modul supraunitar, care, n consecin, ar fi nereprezentabil (reamintim:
n semn mrime, numerele pozitive sunt reprezentate prin numere din
intervalul (O; 1), iar numerele negative, prin numere din intervalul (1; 2),
n timp ce numrul O are dubl imagine, pe O i pe 1). Aadar, este
obligatoriu ca:
dempritul

x_,y_,

(4.4.1_5)
putnd avea fie:

:
I
I
I

I
I

t
I
I
I

Pa

p_,

P-2

p._J

p_,,

P-s

P-6

1------------------------------------------------------------------ I

lx'I e[O; l~'IJ

(4.4.1_6)

lx'I [l~I; ly'I]

(4.4.1_7)

fie:
E

Fig. 4.3.4_1. Schema runulitorului combinaional (cazul operanzilor pe 4 bii).

92

93

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

E~dent, n primul caz j;:: < ~ i, n consecin, bitul de pondere 2

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

START

al

~ i, consecin,

n
bitul de
ctului va fi O, iar n cazul al doilea 1x:1 .!.
'
y
2
'
1 1
1
pondere 2- al ctului va fi 1. Distincia ntre cele dou cazuri se va face n
practic prin testarea semnului expresiei 2!x'j - !y'j.

x = x0x_1.x-rin-IJ :

reprezentarea semn-mrime pe 2n bii a dempritului,


cu Y2 din valoarea reprezentrii pe 2n-1 bii

egal

=y

y_1 y-r-IJ

reprezentarea semn-mrime pe n

bii

mpritorului

x~21xl
'!se face x' egal cu modulul dem ritului

Aceeai logic se va aplica, firete, i pentru determinarea biilor de


2
pondere 2- , 2-3, .a.m.d., considernd, ns, n locul dempritului iniial,
ceea ce a mai rmas din el n urma pailor precedeni, adic: dempriturile
pariale sau, cum se spune mai frecvent n literatur, "resturile pariale".

O precizare se impune. Aa cum s-a artat n paragraful 4.3 .1, la


doi operanzi reprezentai n semn-mrime pe cte Hn" bii, se

nmulirea a

obine, natural," un rezultat exprimat pe 2n-1 bii. Exist, ns, posibilitatea


ca acest rezultat s fie reprezentat pe 2n bii -aa cum este, evident, mult
mai adecvat-, dac se iau dou msuri: pe de o parte, se adaug un bit de
mrime cu valoarea O, imediat dup cifra corespunztoare semnului, iar pe
de alt parte, se calculeaz valoarea efectiv a numrului iniial
mnulind imaginea sa semn-mrime nu cu M, ci cu 2M; i toate acestea,

pentru

DA

C sm(x)llc_sm(x)=2n = ~sm(x)llc_sm(x)==1n-I'
DA

Pe baza aceleiai logici, vom considera dempritul reprezentat nu pe


c
2n-1 bii, c1 pe 2n bii, neuitnd s inem seam
X

'I

pe 2 n biri

I ., pe
2X

2n1 biti

Ca o chintesen a celor de mai sus, rezult algoritmul de mprire


prezentat n organigrama din figura 4.4.1_1.

=x

x_ 1 x_r 2 ._1!

restul, n reprezentare semn-mrime


STOP

Fig. 4.4.1_1. Organigrama algoritmului fundamental de

94

95

mprire.

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

4.4.2. Sinteza unui mprtitor de numere n semn


opernd cu refacerea resturilor

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

mrime,

la nivelul mpritorului i ctului, dempritul s fie reprezentat pe 7 bii.


Faptul c n schema noastr el apare pe 8 bii -precizm din nou:

Algoritmul fundamental de mprire prezentat n organigrama din


figura 4.4.l_l constituie ceea ce se cheam. "metoda de mprire cu
refacerea resturilor". Un mpritor bazat pe aceast metod are schema
bloc din figura 4.4.2_1, conceput n ipoteza n = 4.
:-------------------------------;~g~~---------------------------------------------:

dempritului, AQ

A.

~---------..

:IN<>-~-+-+-++---l-~+--1---+~...__-1-----~--------1--~-+-J
:PDu..-~-t-+-+--+--+---+--t---+-+--1---------------__,

1pso-----1-1--1---1---------1......

:1s n---:1A

i[__________________________________________________________________________________
~ ;r !: : ~
sel~t cu~"
i
j
4

0000

CLK

I DIV
Fig. 4.4.2_1. Schema bloc a mpritorului cu refacerea resturilor.

Elementele structurale ale schemei sunt:


A:
registru de deplasare stnga, cu posibiliti de

ncrcare

paralel

Q:

registru de deplasare stnga, cu posibiliti de

ncrcare

paralel

registru cu posibiliti de ncrcare paralel


SUM/SCZ: sumator I scztor paralel, pe 4 bii
MU.Xl, MUX2:multiplexoare
BC:
bloc de comand

M:

Registrul A este iniial, mpreun cu registrul Q, sediul dempritului


reprezentat n semn-mrime pe 8 bii, iar n final, sediul restului. Aa cum
s-a artat, considerentele de scalare ar fi cerut ca, n cazul operrii pe 4 bii
96

reprezentarea semn-mrime pe 8 bii a unui numr are valoar~a egal cu ~


din valoarea reprezentrii aceluiai numr pe 7 bii- face ca prima operaie
asupra registrului ce-l gzduiete s fie una de nmulire cu 2.
Aceast nmulire se face prin deplasare la stnga cu un rang. Cu ocazia
deplasrii, bitul corespunztor semnului dempritului va disprea, nu ns
nainte ca el s fie folosit, mpreun cu bitul corespunztor semnului .
mpritorului, la determinarea semnului ctului, semn care va fi introdus n
rangul 3 al registrului Q. n continuare, registrul A va fi, succesiv, supus
cte unui triplet de operaii, cuprinznd, n ordine: o deplasare la stnga n
concatenare cu registrul Q (calculul lui 21x'I), o ncrcare paralel cu
rezultatul scderii din el a modulului mpritorului (ncrcarea cu 2x' - [y' I
-vezi figura 4.4.1_1) i o ncrcare paralel cu rezultatul adunrii la el a
modulului mpritorului (ncrcarea cu 2x'+ [y'j -vezi figura 4.4.1_1) sau
a valorii O, dup caz.
efectuat

Registrul Q este, iniial, mpreun cu registrul A, sediul dempritului,


iar n final, sediul ctului. Cu ocazia primei deplasri la stnga la care el
este supus n concatenare cu registrul A, n rangul su 3 va fi introdus
semnul ctului. n continuare, la fiecare deplasare, n acest rang 3 se va
introduce un 1, pentru alternativa c cifra ctului aflat n curs de
determinare n pasul respectiv este 1. Dac lucrurile vor sta contrar -adic:
se va constata c 2.x'- l:Y'I < 0-, atunci n ciclul de ncrcare dup adunare a
registrului A, rangul 3 al registrului Q va fi forat la O (asta prin semnalul
AQ(3) din figura.4.4.2_1; "AQ(3)" vine de la anuleaz Q(3)).
Registrul M este, de la nceput pn la sfrit, sediul mpritorului, adus
aici n etapa de iniiere a unei noi sesiuni de mprire.
Multiplexorul MUXl are rolul de a furniza pentru introducere n
rangul 3 al registrului Q fie semnul ctului, fie un 1, dependent de valoarea
semnalului PD.
Multiplexoru

MUX2 are rolul de a furniza pentru intrarea 2 a sumator-

scztorului SUM/SCZ, n ciclurile de scdere, modu.Iul mpritorului,


iar n ciclurile de adunare, modulul mpritorului, dac dup scderea ce le
precede, coninutul lui A a ajuns negativ (adic: A(O) = 1), respectiv

valoarea 0000, altfel.


97

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Sumator-scztorul SUM/SCZ este un sumator-scztor binar paralel


oarecare, cu rolul de a calcula, pe de o parte, diferenele 2x' - lY' I, iar pe de
alt parte sumele x'+ lY'l, respectiv x'+ O.

Blocul de comand BC este un automat secvential cu rolul de a sintetiza


semnalele de comand interne ale mpritorului, i anume: IN, PD, DS, S
i A. Semnificaiile acestor semnale sunt urmtoarele:
semnal de iniializare a mpritorului, generat intern, de ctre
IN:
blocul de comand BC, la nceputul fiecrei noi sesiuni de
lucru. Iniializarea const n:
)> ncrcarea registrului A cu partea mai semnificativ din
reprezentarea senm-mrime pe 8 bii a dempritului
)> ncrcarea registrului
Q cu partea mai puin
semnificativ din reprezentarea semn-mrime pe 8 bii a
dempritului
)> ncrcarea registrului

M cu mpritorul, n reprezentare
pe 4 bii
semnal de marcare a faptului c este n derulare prima operaie
de deplasare la stnga a informaiei din registrele A i Q
concatenate.
Acest
semnal
servete
comandrii
multiplexorului MUXl, astfel nct el s fumizeze pentru
introducere n rangul 3 al registrului Q fie semnul ctului, fie
un 1.
semnal de deplasare la stnga a informaiei din registrele
A i Q, considerate n concatenare. La prima deplasare
(adic: n timp ce PD= 1), n rangul 3 al registrului Q se
va introduce semnul ctului, iar la celelalte deplasri, cte
un 1, pentru alternativa c cifra ctului aflat n curs de
determinare n pasul respectiv este 1. Dac lucrurile vor sta
contrar -adic: se va constata c 2.x; - ty' I < 0-, atunci n
ciclul de ncrcare dup adunare a registrului A, rangui 3
al registrului Q va fi forat la O.
semnal de ncrcare paralel a registrului A cu rezultatul
scderii din el a modulului mpritorului (calculul lui
semn-mrime

PD:

DS:

S:

2x' A:

lY'I) .

semnal de ncrcare paralel a registrului A cu rezultatul


adunrii la el a modulului mpritorului, respectiv a valorii
0000, dup caz, n funcie de semnul cantitii 2.x'- lY'l.

98

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Semnalele pe care schema le primete din exterior sunt:


CLK:
semnal de tact, primit de mpritor de la unitatea de comand
a procesorului. Acest semnal va pilota funcionarea
tuturor elementelor secveniale ale schemei: registrele A, Q
i M i blocul de comand BC.
DIV:
semnal de declanare a unei noi sesiuni de lucru a
mpritorului, primit de mpritor din partea unitii. de
comand a procesorului. Declanarea unei noi sesiuni de
lucru a mpritorului se va face la fiecare tranziie de la O la l
a acestui semnal.
Blocul de comand trebuie s aib 12 stri:
1 stare de repaus
1 stare de iniializare
1 stare de deplasare stnga preliminar a registrelor A i Q, tratate
concatenat
3 x 3 = 9 stri de deplasare stnga, ncrcare paralel asociat scderii i

ncrcare paralel asociat adunrii

Vom proiecta acest bloc, cu ajutorul unui


trebuie s fie modulo 12. Bistabilele
nota cu B3-Bo.
numrtorul

numrtor. Evident,
numrtorului le vom

Considerm,
Adoptm, apoi,

mai nti, drept stare de repaus, starea O a numrtorului.


ca procesul de numrare s nceap atunci cnd tactul
gsete semnalul DIV pe 1. Stabilim, n continuare, ca numrarea s in
ct timp cel puin un bistabil al numrtorului este pe 1, dar nu mai mult de
12 perioade ale semnalului de tact. Mai exact, lum msuri ca la atingerea
n numrtor a valorii 12, el s fie forat asincron la O.
Instituim drept stare de iniializare starea 1 a numrtorului, iar drept
de deplasare stnga, starea 2 i strile multiplu de 3. Dedicm pentru
scdere strile 4, 7 i 10, iar pentru adunare -strile 5, 8 i 11.
stri

Cnd numrtorul atinge, n mod natural, starea 12, se va fora


imediat -adic: n mod asincron- aducerea lui Ia zero; n acest fel,
numrtorul va numra modulo 12. Semnalul de forare a aducerii
numrtorului la zero la atingerea strii 12 are ecuaia:

R = B3 B2
Organigrama
figura 4.4.2_ 2.

(4.4.2_1)
de

funcionare

a
99

mpritorului

este

redat

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

0110

DS

Codificarea strilor blocului de comand realizat ca numrtor modulo


12 este redat n figura 4.4.2_3.
BB
1 o
B3B2
Ol 11 10
00

0111

_________{N_________ _

A(O:~}Q(O:~) ~ x' Ismpe8bii,

A(O)EeM(O),

A(3)
A(O)

Q(O),
A(l);

10

S8

~1Bo
B3.02 ~ 00
o
00

DS
~

S3
87

S2

S5
S9

S6

811 SlO

figurile 4.4.2~2 i 4.4.2_3, "diagrama ieirii".

________ _

Q(3)

Sl

S4

Ecuaiile semnalelor de comand generate de blocul BC se vor


determina construind, pentru fiecare dintre ele, cu ajutorul informaiilor din

0010
I>]~tQ.

so

Fig. 4.4.2_3. Diagrama codificrii strilor.

M(O ..:>)o(--y lsmpe4bii;

_________

00
01
11

1010

o
*
o

Ol
11
10

0011

___________Q__________ _

-::=::;,

1011

Q(3) ~ l,

01
1

11

10

o
o

*
o

IN ~ B3 B 2

o
*

'Bi B 0

Fig. 4.4.2_4. Diagrama ieirii IN.

BB
1 o

A(3) ~ Q(O),
A(O) ~ A(l);
li A(0:3) = pcms a lui 2 Ix' I

B 3B2

00
00
01
11

0100

10

IS

o
*

11

01

o
o

o
o

*
o

:::::; PD = B3

--A(~})-~~(o~i)~----------

11 z(0:3)=A(0:3)-MUX2(0:3)
li MUX2(0:3) = O.M(l :3) = Iy'

10
1

o
*

B2 B 1 B0

Fig. 4.4.2_5. Diagrama ieirii PD.

B1Bo
B3B2

0101

00
00
01
11
10

__________ J,b.__________ _
A(0:3) ~ z(0:3),
.
lz(0:3) = A(0:3) + MUX2(1 :3)
IMUX2(0:3) =fie o.M(l :3),
0000

fie

-::=::;,

Fig. 4.4.2_2. Organigrama funcionrii

100

mpritorului

DS =

o
o
*
o

B3 B2 B1 + B3 B 1 B0 + B 3 B1 B 0

Fig. 4.4.2_6. Diagrama ieirii DS.


cu refacerea resturilor.

101

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

Evident, n acest fel, circuitul format din cele 4 bistabile va ncepe


prin comutarea de la O la 1 a bistabilului Bo i o va continua ct
timp cel puin unul dintre bistabile va fi pe 1, adic: pn la atingerea strii
12, cnd va intra n aciune semnalul R i va reinstitui starea O.
numrarea

00
01
11

Pe baza ecuaiilor (4.4.2_1) - (4.4.2_8), se obine pentru blocul de


al mpritorului schema din figura 4.4.2_9.

10

~ IS = B2

'Bi Ba + B

comand

B1 B 0 + B3 B1 B0

:-----------------------------------------------------------------------------------]

Fig. 4.4.2_7. Diagrama ieirii S

r----

~ '

'
I

schem

B1Bo
B3B2
00

cu
pori

10

01
11
10

le' -LK

Fig. 4.4.2_8. Diagrama ieirii A

I
I
I

__'.::- K

(4.4.2_2)

PD=~"BiB 1 ~

(4.4.2_3)

IS = B 2
IA = B 3

B1 Ba
B 1 Ba

3 B1

Ba

(4.4.2_4)
(4.4.2_5)
(4.4.2_6)

Pentru implementarea numrtorului, vom folosi bistabile J-K, cu


comutare pe frontul cobortor al semnalului de tact. Pentru ca ansamblul
celor 4 bistabile s funcioneze ca numrtor, vom asigura pentru intrrile
lor J i K se~ale cu urmtoarele ecuaii:

R Q'--('.)

K:C
.__ K

Q,__~

kc@
'-- K

R 01--1
(::5

:nIV

Q--""""

'-- J

kC@
'-- K

R.

Q1---;

L----------------------------------------------------------------------------------Fig. 4.4~2_9. Schema blocului de comand al mpritorului cu refacerea resturilor.

n figura 4.4.2_10, se prezint cronograma de funcionare a schemei


din figura 4.4.2_9.

(4.3.3_7)
(4.3.3_8)

102

Q ._,....

Q-- ,,_ J

-- J

IN

~
-

Bi. B +~ B B -+-B
Bi B + B B1 B + B
Bi. B + B Bi_ B + B
1

RES

'r'
I
I

Q'-'-'

- Kc@

B3 Bi B~ B0

I
I

,..._ J

'
''
'

Aadar, ecuaiile ieirilor IN, PD, DS, S i A vor fi:

DS=~

PD

-=Lf

=> IA = B3 Bi B0 + B2 Bi B0 + B 3 B1 B 0

L7V =

...!!.

..___

;-\

*
o

j_

I'
''
''

103

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

CP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

:::)+-

Nr. crt. B:Jl2B1Bo

DIV

0000
0001
0010
0011
0100

Bo

0101

0110
0111

1000

1
2
3

.___...___...____..__-(
u

RES

-~~---'~:~~-;----~~~~~_;.___;~__;_~_;___..:_~~

i
_n_s-~-------Jj
PD

~~~~-'."-~---~---'~~-'-~~~__;_~___;~~~

Operaia

xxxx

xxxx

XX.XX

pocx

xxxx

1011

pcxx
-{<*Hl
0011
0011

START=> linia 1
IN =>linia 2
DS, PD => linia 3
DS =>linia 4
S=> linia 5

1011

0011

A =>linia 6

1011
0111

0011
0011

DS =>linia 7
S =>linia 8

0111

0011

A =>linia 9

-{Jk>oo

1 llQ

lld.l}+-

0001
0011 0011
0000+
0000
0000
0001 0011

~
0011

01-~0)

9
10

1001
1010

0001
0010 0011

11

lOll

~
0011

12

1100
0000

0010
0010

13

i--_

0011
0011

DS =>linia 10
S => linia 11

1101

OOll

A => linia 12

11qo)
1100

0011

NIMIC-::::;. linia 13

0011

1101

---

Fig. 4.4.2_11. Exemplu de mprire cu refacerea resturilor: x = -14, y

_A~~~-.~~.~.---1H
Fig. 4.4.2_10.

. r! . M

Cro~ogr~a de funcio~are a dispozitivului de co~and


0

al mpritorului cu refacerea resturilor.


Observatie:
Aciunile semnalelor de comand IN, PD, DS, !S i A se produc efectiv pe
frontul ridictor (posibil, ns, i pe cel cobortor) al semnalului de tact din ciclul
n care ele sunt active.

n final, se prezint, n tabelul care face obiectul figurii 4.4.2_1 l, un


exemplu de mprire cu refacerea resturilor.

= 3.

4.4.3. Sinteza unui mprtitor de numere n semn mrime,


opernd fr refacerea resturilor

Algoritmul de mprire fr refacerea resturilor este derivat din


algoritmul de mprire cu refacerea resturilor i este conceput n ideea
aceleiai scheme bloc de principiu.
La baza algoritmului de

mprire fr

refacerea resturilor

st urmtorul

raionament:

Fie Rt res~I parial obinut ntr-un pas "i" al algoritmului, cu i=I... n-I
i fie Ro= Ix I. Atunci, aa cum s-a vzut la mprtirea cu refacerea
resturilor:
'

-{2R0
Ri-

ly'I, daca

2R0, daca 2R0

2R0 -

ly'l 2:: O

Iii <O

(4.4.3_1)

Introducem notaia:
(4A.3_2)
104

105

CAP. 4. DESPRE.PROCESOR. UNITATEA ARITMETICO-LOGIC


CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC
Rezult:

START

.6. 1 , daca ~ 1 ~ O

Ri= {
. .6. 1 + IY'I, daca Li 1 <O

(4.4.3_3)

reprezentarea semn-mrime pe 2n bii a dempritului,


egal cu Y2 din valoarea reprezentrii pe 2n-I bii

i:

Y = YaY-i Y-rn-iJ

Li.1 -_ 2R.

I -

I-

x = x~x~ 1 x~r 2 n-i)

consecin,

daca Lii-1 ~O
daca Lii-l <O

(4.4.3_5)

mprire rar

refacerea resturilor se

)y ')-{2.!'.ii-I
-jy'),
2.6.H + IY'/,
algoritmul de

reprezentarea semn-mrime pe n bii a mpritorului

prezint aa cum se arat n organigrama din figura 4.4.3 _l.

Shema bloc a mpritorului fr refacerea resturilor, conceput n


ipoteza n = 4, este redat n figura 4.4.3_2. Dup cum se poate lesne
remarca, ea este aproape identic cu cea a mpritorului cu refacerea
resturilor. Blocul de comand va fi, ns, sensibil diferit n cele dou cazuri.
Elementele structurale ale schemei sunt:
A:
registru de deplasare stnga, cu posibiliti de ncrcare
paralel

Q:

registru de deplasare stnga, cu posibiliti de ncrcare

paralel

M:

SUM/SCZ:

MUX:
BC:

registru cu posibiliti de ncrcare paralel


sumator I scztor paralel, pe 4 bii
multiplexor
bloc. de comand

q0 q_,.q_r -u

x = x~x~1

11

ctul, n reprezentare semn-mrime

x~rzn-i) : restul, n reprezentare semn-mrime


STOP

Fig. 4.4.3_1. Organigrama algoritmului de mprire rar refacerea resrurilor.


106

107

CAP. 4. DESPRE'PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

:-----------------------------;;gi~~---------------------------------------------

dempritului, A Q

:
l

{ .

registru

---.-

estului, A

--.\

registru 1ctului, Q

registrul

mpritorului, M

I
I

detenninare .n pasul respectiv este 1. Dac lucrurile vor sta contrar


se va constata c 2x'- lY'I, respectiv 2.x'+ lY'I < 0-, atunci, cu ocazia
ncrcrilor, rangul 3 al registrului Q va fi forat la O, prin semnalul AQ(3)
din figura 4.4.3_2-reamintim: "AQ(3)" vine de la anuleaz Q(3)-,

-adic:

I
I
I

:IN
PlJC:O--_-_ .,.-------- _---1--_TT-_-_+-+--_---t-1--_--~I-++--l-4-_-_-_-_-_-_-_-_-_-_-_-_-_-_...:._r.:..:,:.:.;,.i:.J
:Esir---+++---t--+--+--+--j.....J
I

Registrul M este, de la nceput pn la sfrit, sediul mpritorului, adus


aici n etapa de iniiere a unei noi sesiuni de mprire.

-i._

:1i<>---t-<11
I

I
I

I
I
I

~IN
PD DS S ACOR

4.

I
I

BC

I
I

-~~~-------- -r,iy----------~----------------------------------------------------

Fig. 4.4.3_2. Schema bloc a mpritorului fr refacerea resturilor.

Registrul A este iniial, mpreun cu registrul Q, sediul dempritului


reprezentat n semn-mrime pe 8 bii, iar n final, sediul restului. i n acest
caz, din aceleai considerente de scalare legate de reprezentarea
dempritului pe 8 bii i nu pe 7, se impune, mai nti, o nniulire a sa cu
2. Aceast nmulire se face prin deplasare la stnga cu un rang. Cu ocazia
deplasrii, bitul corespunztor semnului dempritului va dispare, nu ns
nainte ca el s fie folosit, mpreun cu bitul corespunztor semnului
mpritorului, la determimyea semnului c.tului, semn care va fi introdus n
rangul 3 al registrului Q. In continuare, registrul A va fi, succesiv, supus
cte unui cuplu de operaii, cuprinznd, n ordine: o deplasare la stnga n
concatenare cu registrul Q (calculul lui 2lx' I) i o ncrcare paralel cu
rezultatul scderii sau adunrii din el a modulului mpritorului (ncrcarea
cu 2x'- lY'!, respectiv 2x'+ lY'I din figura 4.4.3_1). n final, dac dup
ultimul cuplu de operaii deplasare-scdere/adunare, coninutul lui A este
gsit negativ, atunci se procedeaz la ajustarea lui prin adunare cu modulul

Multiplexorul MUX are rolul de a furniza pentru introducere n


rangul 3 al registrului Q fie semnul ctului, fie un 1, dependent de valoarea
semnalului PD.
Sumator-scztorul SUM/SCZ este un sumator-scztor binar paralel

oarecare, cu rolul de a calcula, dup caz, diferenele 2x' - lY' I sau


sumele 2x'+ [y'I, respectiv, n finalul algoritmului, suma x'+ lY'!, atunci
cnd dup ultimul cuplu de operaii deplasare-scdere/adunare, x' este gsit
negativ.
Blocul de comand BC este un automat secvential cu rolul de a sintetiza
semnalele de comand intern:e ale mpritorului, i anume: IN, PD, DS, S,
A i COR. Semnificaiile acestor semnale sunt unntoarele:

IN:

dempritului

}'> ncrcarea registrului M


semn-mrime pe 4 bii

PD:

mpritorului.

Registrul Q este, iniial,. mpreun cu registrul A, sediul deTu.'Tiultitului,


iar n final, sediul ctului. Cu ocazia primei deplasri la stnga la ~are el
este supus n copcatenare cu registrul A, n rangul su 3 va fi introdus
~emnul ctului. In continuare, la. fiecare deplasare, n acest rang 3 se va
mtroduce un 1, pentru alternativa c cifra ctului aflat n curs de
108

semnal de iniializare a mpritorului, generat intern, de ctre


blocul de comand BC, la nceputul fiecrei noi sesiuni de
lucru. Iniializarea const n:
);> ncrcarea registrului A cu partea mai semnificativ din
reprezentarea semn-mrime pe 8 bii a dempritului
);> ncrcarea registrului
Q cu partea mai puin
semnificativ din reprezentarea semn-mrime pe 8 bii a

DS:

cu

mpritorul,

n repiezentare

semnal de marcare a faptului c este n derulare prima operaie


de deplasare la stnga a informaiei din registrele A i Q
concatenate. Acest
semnal
servete
comandrii
multiplexorului MUX, astfel nct el s fumizeze pentru
introducere n rangul 3 al registrului Q fie semnul ctului, fie
un L
semnal de deplasare la stnga a infomi.aiei din registrele
A i Q, considerate n concatenare. La prima deplasare, n
rangul 3 al registrului Q se va introduce un 1, pentru
109

CAP. 4. DESPRE.PROCESOR. UNITATEA ARITMETICO-LOGIC

S:

A:

COR:

alternativa c cifra ctului aflat n curs de determinare n


pasul respectiv este 1. Dac lucrurile vor sta contrar -adic:
se va constata c 2x'- IY'I, respectiv 2x'+ lY'I < 0-, atunci, cu
ocazia ncrcrilor la care este supus registrul A (mai puin n
timpul celei cu scop ajustativ, din finalul algoritmului),

rangul 3 al registrului Q va fi forat la O.


semnal de ncrcare paralel a. registrului A cu rezultatul
scderii din el a modulului mpritorului (calculul lui
2x'- IY'D.
semnal de ncrcare paralel a registrului A cu rezultatul
adunrii la el a modulului mpritorului (calculul lui 2x'+ lY'I,
respectiv, n finalul algoritmului, calculul lui x'+ Lv'l, cnd
dup ultimul cuplu de operaii deplasare-scdere/adunare,
x' este gsit negativ).
semnal de corecie, ce nsoete .ultimul semnal A, cu rolul
de a mpiedica activarea semnalului AQ(3) n timpul
ncrcrii aferente adunrii corective finale.

Semnalele pe care schema le primete din exterior sunt:


CLK:
semnal de tact, primit de mpritor de la unitatea de
comand a procesorului. Acest semnal va pilota funcionarea
tutUror elementelor secveniale ale schemei: registrele A, Q i
M i blocul de comand BC.
semnal de declanare a unei noi sesiuni de lucru a
DIV:
mpritorului, primit de mpritor din partea unitii de
comand a procesorului. Declanarea unei noi
sesiuni de
lucru a mpritorului se va face la fiecare tranziie de la O la 1
a acestui semnal.

Blocul de comand trebuie s aib 1O stri:


1 stare de repaus
I stare de iniializare
1 stare de deplasare stnga preliminar a registrelor A i Q, tratate
concatenat
3 x 2 = 6 .sttj. de deplasare stnga i ncrcare paralel asociat, dup
caz, scderii sau adunrii
l stare de ncrcare paralel -eventual- asociat adunrii de corecie a
resturilor negative de la sfritul ultimei perechi de operaii deplasarescdere/ adunare
110

CAP. 4. DESPRE PROCESOR. UNITATEA ARITh'IETICO-LOGJC

Vom proiecta acest bloc, cu ajutorul unui numrtor. Evident,


trebuie s fie modulo 9, cnd restul obinut dup a
treia pereche de operaii deplasare-scdere/adunare este pozitiv,
respectiv modulo 1O, n cazul contrar. Bistabilele numrtorului le vom
nota cu B3-Bo.
numrtorul

Considerm,
Adoptm, apoi,

mai nti, drept stare de repaus, starea O a numrtorului.


ca procesul de numrare s nceap atunci cnd tactul
gsete semnalul DIV pe 1. Stabilim, n continuare, ca numrarea s in
ct timp cel puin un bistabil al numrtorului este pe 1, dar nu mai mult
de 9, respectiv 1O perioade ale semnalului de tact. Mai exact, lum msuri
ca la atingerea n numrtor a valorii 9, respectiv I O, el s fie fartat
'
asincron la O.
Instituim drept stare de iniializare starea I a numrtorului, iar drept
de deplasare stnga, starea 2 i strile 3, 5 i 7. Dedicm pentru
adunare I scdere dup deplasare strile 4, 6 i 8, iar pentru adunarea de
corecie, atunci cnd ea este necesar, starea 9.
stri

Cnd numrtorul atinge, n mod natural, starea 9, respectiv starea


1O, se va fora imediat -adic: n mod asincron- aducerea lui la zero; n
acest fel, numrtorul va numra modulo 9, respectiv modulo 1O. Semnalul
de forare a aducerii numrtorului la zero va avea ecuaia:
(4.4.3_6)
Organigrama de
4.4.3 3.

funcionare

Codificarea strilor blocului de


9 I 1O este redat n figura 4.4.3 _4.

mpritorului

comand

este

realizat ca

redat

n figura

numrtor

modulo

Ecuaiile semnalelor de comand generate de blocul BC se vor


determina construind, pentru fiecare dintre ele, cu ajutorul informaiilor din
figurile 4.4.3 _3 i 4.4.3 _ 4, "diagrama ieirii".

111

CAP. 4. DESPRE.PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA

0101

BB
1 o
B3B2

DS
0110

01

so

OI

S4

Sl
s5

11

10

88

S9

A(0:.3).Q(O:~) +- x' Is~ pe 8 bii,

Isrn pe 4 bii,

0010
])~~~12

10
S2
S6

*
*

*
*

BB
l o
B 3Bz

_________

11
S3
S7

Fig. 4.4.3_ 4. Diagrama codificrii strilor.

_________{N_________ _
M(0.3) +- Y

00
00

00

00
01
11

________ _

Q(3) +- A(O)ffiM(O),

10

A(3) +- Q(O),
A(O) +- A(l );

o.

o
*
o

01
1

*
o

11

IO

o
*

*
*

Fig. 4.4.3_5. Diagrama ieirii IN.


0011

B1Bo
B3B2
00

----~-----_Q_~---------~
Q(3) +-1,

A(3) +- Q(O),
A(O) +- A(l);
li A(0:3) = pcms a lui 2 Ix'

00

_______ IA. ______ _

01

A(0:3) +- z(0:3),
//z(0:3) = A(0:3) + O.M(l :3)

11

*
o

10

Ol

11

o
o
*
*

"::::}PD=B2 B1 B0
Fig. 4A.3_6. Diagrama ieirii PD.

B1Bo
B3Bz
00

00

_______

L~------A(0:3) +- z(0:3),
. /z(0:3) = A(0:3) + O.M(l :3)

_______

J~-------A(0:3) +- z(0:3),
li z(0:3)=A(0:3)-0.M(1:3)

01
11
10

o
o
*

Fig. 4.4.3_7. Diagrama ieirii DS.


Fig; 4.4.3_3. Organigrama funcionrii mpritorului cu refacerea resturilor.

112

113

ARITMETICO-LOGIC

CAP. 4. DESPRE.PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

BB
B3
00
01
11

Pentru implementarea numrtorului, vom folosi bistabile. J-K, cu


comutare pe frontul cobortor al semnalului de tact. Pentru ca ansamblul
celor 4 bistabile s funcioneze ca numrtor, vom asigura pentru intrrile
lor J i_ K semnale cu urmtoarele ecuaii:

00
.----.----..----.--_,

A O

10 ~"'"-..l.__,;,.--1..---L---'
-:=:;, IS= A(O)B2

BO +A(O)B3 BI BO

Fig. 4.4.3_8. Diagrama ieirii S.

Ji =Ki =DIV +B0 +B1 +B2 +B3 , 'v'i=0 ... 3

(4.4.3_13)

C 0 =CLK, Ci= Bi_1, Vi= 1...3

(4.4.3_14)

~1Bo

(4.4.3_15)

B3Jj2 ~ 00

--------

00
o
o1 A I Jll--+t=l=::H-.LJ\ {
11
1o ~~===3:::::::::1=-.:__J

Evident, n acest fel, circuitul format din cele 4 bistabile va ncepe


prin comutarea de la O la 1 a bistabilului B 0 i o va continua' ct
timp cel puin unul dintre bistabile va fi pe I, adic: pn la atingerea strii
9 respectiv 1O, cnd va intra n aciune semnalul R i va reinstitui starea O.
numrarea

~IA= A(O)B2 Ba+ A(O)B3 +B3 B0

Pe baza ecuaiilor (4.4.3_6) - (4.4.3_15), se obine pentru blocul de


al mpritorului schema din figura 4.4.3_11.

Fig. 4.4.3_9. Diagrama ieirii A.

comand

B1Bo
B3B2
00
o
00

Ol
11
10

o
*
o

Ol

o
o

11

10

o
o

-----------------------------------------------------------------------------------,
lA(O)
-EQR:
I

A(O)

I
I
I
I

*
*

~COR=B3

4)

schem

cu

pori

I
I

I
I
I
I

- - ,____ E.

I
I

Ba

-S

I
f

I
I

PD

I
I
I
I

Fig. 4.4.3_10. Diagrama ieirii COR.

--R.J

1-\_

:cLK

Aadar, ecuaiile ieirilor IN, PD, DS, S i A vor fi:

IN

JJ3 B2 'Bi B 0
PD=B2 B1 B0

(4.4.3_8)

DS=B2 B0 +B2 B1

(4.4.3_9)

(4.4.3_7)

IN =

I
I
I
I

'I
I
I
I

._ J

- kc@
~ KR_

RES

f- '
-

Q ._

pJ};::
:ncitkJ . '

Q>-f-

kc@
_ KR. Q
o

-~

IS = A.(0 )- Bi B0 + A(O )- B3 B1 B0

(4.4.3_10)

L4 = A(O) B 2 Ba + A(O) B3 + B3 Ba
COR== B3 B 0

(4.4.3_11)
(4.4.3 12)

Ql--1--

..__ J

kc@

kc@

.._ KR_ o~

..__ KR_ Q'-'

(.)

I
J
I

I
I
I
I
I

Q .... '-

.._ J

I
1
I

'I

I
I
J

'I

~-----------------------------------------------------------------------------------'

Fig. 4.4.3_11. Schema blocului de comand al mpritorului cu refacerea resturilor.

114

115

CAP. 4. DESPRE 'PROCESOR. UNITATEA ARITMETICO-LOGIC

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC

n figura 4.4.3_12, se prezint cronograma de funcionare a schemei


din figura 4.4.3 _l l.

....
'I-' -

Nr. crt.

1)1------1--------r--------t------------r-----:-------T---- ---( ----:

Ba

RES

---+----1n

_IN

_P_D~~+-~-;-~--~~:~~!--~-+-~--!~~-+-~-.;.~~-+--~-;-

Operaia

0011
0011

START=> linia 1
IN =>linia 2
DS, PD => linia 3
DS =>linia 4
S :::::> linia 5

1011
0111

0011
0011

DS =>linia 6
S :::::>linia 7

011(0)
.J.}6i

0011
0011

DS =>linia 8
A =>linia 9

3
4
5
6

0101
0110

7
8

0111
1000

1001

~+

0011

A => linia 1O

10
11

0000
0000

0010
0010

1100
1100

0011
0011

NIMIC => linia 11

1
2

DIV

M
XXX.X

A
xxxx

BsB2B1Bo
0000
0001
0010
0011
0100'

Q
xxxx
xxxx
1 llQ
11(\lJ+1011

;xxx

y1poo

0001
0011 0011
0000
0001 0011
\1)110
11:00.+
0011

Fig. 4.4.3_13. Exemplu de mprire

:Iar

DS
S/A

IS/lA :

IA

_c_o_R~-j-~~+-~-;-~~~~-+-~~r--~_,_~--:~~-:-~~r--1
Fig. 4.4.3_12. Cronograma de funcionare a dispozitivului de comand
al mpritorului f'ar refacerea resturilor
(cazul cnd n final se impune corecia restului).
Observatie:
Aciunile semnalelor de comand IN, PD, DS, S i A se produc efectivpe
frontul ridictor (posibil, ns, i pe cel cobortor) al sem:zalului de tact din
ciclul n care ele sunt active.

n final, se prezint, n tabelul care face obiectul figurii 4.4.3_13, un


exemplu de mprire fr refacerea resturilor.

116

117

p:xx

L{op11

refacerea resturilor: x

=-14,

y = 3.

CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGIC


CAP. S. DESPRE PROCESOR. UNITATEA DE REGISTRE

5
DESPRE PROCESOR. UNITATEA DE REGISTRE

5.1. Introducere
Aa cum s-a artat n capitolul 1, unitatea de registre reprezint o
memorie de manevr, realizat pe acelai cip i n aceeai tehnologi~ cu
unitatea aritmetico-logic i cu unitatea de comand -i, n . consecin, la
fel de rapid ca i acestea-, la care accesele se fac mult mai simplu i mai
eficient dect la memoria propriu-zis.
Dou linii arhitecturale s-au dezvoltat la nivelul unitilor de registre.
Una dintre ele se caracterizeaz prin heterogenitate, iar cealalt -prin
omogenitate. n cazul arhitecturilor heterogene, registrele se difereniaz sub
aspectul rolului pe care l pot juca. n funcionarea procesorului i, n
consecin, al modului n care intervin sau pot interveni n diversele
instrucii-main. n cazul arhitecturilor omogene, registrele sunt echipotente
i, n consecin, oricare dintre ele ar putea juca, la un moment dat, un
anumit rol n cadrul unei anumite instrucii. Trebuie spus c, n practic, nici
heterogenitatea i nici omogenitatea nu au fost duse la cotele maximale. n
arhitecturile heterogene, este obinuit s se ntlneasc un numr de registre
echipotente ntre ele sau difereniate doar n mic msur, dup cum este
obinuit ca n arhitecturile omogene un numr de registre s dispun i de
caracteristici n plus fa de cele comune tuturor sau s se diferenieze uor
unele de altele.
n scopuri ilustrative, se prezint, n continuare, unitatea de registre a
unui procesor imaginar, cu date pe 8 bii i adrese pe 16 bii-fie CSAC 2001
numele lui-, pe care l vom considera, pe mai departe n cadrul cursului,
drept
principal caz de studiu, unitatea de registre a procesorului
MOTOROLA 68000 i unitatea de registre a procesorului INTEL 8086.

118

119

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

----------------------------------------- ---------------------------------------------1
I

5.2. Unitatea de registre a procesorului CSAC 2001

I
I

Unitatea de registre a procesorului CSAC 2001 cuprinde registrele


reprezentate prin dreptunghiuri color~te n gri n figura 5.2_1, figur n care,
n sprijinul unei ct mai bune nelegeri a lucrurilor, a fost redat ntregul
procesor. Respectivele registre sunt: A, B, C, F, SP, Bl, B2, B3, OG i 1 G.
Le vom prezenta rnd pe rnd.

I
I

I
I
I
I
I

I
I

I
I
I

l
I

:
. :.

Registrele A, B. si C

Registrele A, B i C au o lungime de 8 bii i sunt cvasiechipotente ntre


ele. Principala lor menire este aceea de a juca, n procesul de execuie a
instruciilor, rolul de reedin a cel puin unui operand -eventual a
operandului unic-, respectiv de a prelua rezultate. Este uzual -de fapt, se
poate vorbi despre o adevrat regul n acest sens- ca rezultatele execuiei
instruciilor s fie oferite de procesoare prin registrul iniial sediu al
operandului unu -eventual unic-. Evident, respectivul operand, prin
suprascriere, se pierde. Atunci cnd valoarea sa este i pe mai departe
necesar n rularea programului, ea trebuie salvat, fie n memorie, fie
ntr-un registru. Evident, a doua alternativ ar fi cea de preferat, ntotdeauna,
dar, uneori, ea nu poate fi aplicat, deoarece se ntmpl.ca nici unul dintre
registre s nu fie la momentul n cauz liber.
Registrele B i C pot fi folosite n cteva instrucii i concatenat -B n
poziia mai semnificativ i C n poziia mai puin semnificativ-, pentru
operare cu informaii pe 16 bii. Procesorul CSA C 2001 dispune, dup cum
se va vedea mai trziu, de posibilitatea referirii locaiilor de memorie fie prin
adrese indicate n mod efectiv n cadrul instruciilor, fie prin adrese luate din
registrul pereche BC. Evident, tocmai aceast din urm facilitate de adresare
a memoriei este la originea concatenabilitii celor dou registre (ne
reamintim: procesorul CSAC 2001 este o arhitectur de calcul pe 8 bii, cu
adrese pe 16 bii).

I
I

I
I
l
I

I
I
I
I
I

I
I
I
I

I
I
I
I
I
I

'

:'

i ..
I

:
:

:
l
:

Registrul F-.
Registrul F are rolul de a memora n bistabilele sale informaii privind
rezultatele obinute n cadrul operaiilor efectuate' de unitatea aritmeticologic. La unele procesoare -inclusiv la CSAC 2001- se au n vedere doar
rezultatele operaiilor care implic o prelucrare efectiv (adunare, scdere,
120

';i::

~I

!
L__ --- ----------------------- --------------~

-------------- ----1~
121

nj

~ ;~ .;~ i~

ll ~- __ !

CAP .. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

I, SAU etc.), iar la altele inclusiv operaiile de transfer simplu dintr-un loc
n altul. Bistabilele registrului F poart numele de fanioane. Ele sunt notate
cu Z, S, C, Vi P.
Fanionul Z arat dac rezultatul ultimei operaii este nul sau nenul. Cnd
rezultatul este nul, atunci Z=l, cnd rezultatul este nenul, atunci Z=O.
Fanionul S arat dac rezultatul ultimei operaii este negativ sau
nenegativ (adic: pozitiv sau zero). Cnd rezultatul este negativ, atunci S=J,
cnd rezultatul este nenegativ, atunci S=O.
Fanionul C arat dac n timpul ultimei operaii a aprut sau nu un
transport din rangul cel mai semnificativ, 2 7, spre rangul inexistent, 2 8 Cnd
a aprut transport, atunci C= 1, cnd nu a aprut transport, atunci C=O.
Fanionul V arat dac rezultatul ultimei operaii este sau nu eronat ca
urmare a fenomenului de depire. Cnd rezultatul este eronat, atunci V=l,
cnd rezultatul este neeronat, atunci V=O.
Fanionul Parat dac rezultatul ultimei operaii are un numr par sau un
impar de bii cu valoarea" l ". Cnd rezultatul are un numr par de bii
cu valoarea "l ", atunci P= 1, cnd rezultatul are un numr impar de bii cu
valoarea "l ", atunci P=O. Se face precizarea c i convenia invers de
poziionare a fanioanelor P poate fi ntlnit.

numr

Toate aceste fanioane se

poziioneaz

instruciilor. Exist, ns, i instrucii

implicit n procesul de execuie a


speciale, a cror obiect este exclusiv

poziionarea fanioanelor~

Registrul SP

CAP. 5. DESPRE PROCESOR. uNrrATEA DE REGISTRE

n care se face scriere n stiv, respectiv pot viza registrele A i F sau B i C


sau PCH i PCL, n cazul n care se face citire din stiv. Tandemurile
A-F, B-C, PCH-PCL vor fi referite prin abrevierile AF, respectiv BC,
respectiv PC.
Exploatarea unei zone de memorie dup principiul stivei presupune, mai
nti, ncrcarea registrului SP cu adresa cea mai de sus a respectivei zone,
iar apoi respectarea cu strictee a urmtoarei proc.eduri:
A. la scriere:
I. se decrementeaz SP cu o unitate
2. se scrie la adresa din SP octetul superior din perechea de doi octei ce
trebuie depus n stiv
3. se decrementeaz SP cu o unitate
4. se scrie la adresa din SP octetul inferior din perechea de doi octei ce
trebuie depus n stiv
B. la citire:
1. se citete de la adresa din SP octetul inferior din perechea de doi octei
ce trebuie descrcat din stiv
2. se incrementeaz SP cu o unitate
.
3. se citete de la adresa din SP octetul superior din perechea de doi
octei ce trebuie descrcat din stiv
4. se incrementeaz SP cu o unitate
Registrele BJ, B2

B3

Registrele Bi, B2 i B3 sunt registr,e auxiliare, de uz exclusiv intern. BI


rol de tampon ("buffer') ntre magistrala pe care se vehiculeaz datele
i unitatea aritmetico-logic. B2 joac rol de tampon ntre unitatea
aritmetico-logic i magistrala pe care se vehiculeaz datele. B3 joac rol de
tampon ntre multiplexorul de adrese, AM, i magistrala pe care se transmit
n afar adresele. B2 i B3 au ieirile cu trei stri logice. Activarea
respectivelor ieiri se face cu ajutorul semnalelor OB_B2, respectiv OB'_B3,
care nseamn: "on the bus B2", respectiv "on the bus B3".

joac

Registrul SP (SP vine de la ''stack pointer") este constituit prin


concatenarea registrelor SPH i SPL (H i L vin, respectiv, de la "high" i
"low"). Prin urmar_e, SP este un registru pe 16 bii. Rolul registrului SP este
acela de a face posibil gestionarea un.ei pri din memoria RAM a
calculatorului dup principiul stivei: last input-first output (prescurtat:
LIFO); respectiva parte va fi"numit simplu "stiv". n procesorul CSAC
2001, fiecare sesiune de lucru .la nivelul stivei manevreaz doi octei.
Acetia pot proveni din registrele A i F sau B i C sau PCH i PCL, n cazul

Registrele OG i 1 G sunt, de fapt, pseudoregistre, de uz exclusiv intern.


Rolul lor este acel~ de a pune pe magistrala pe care se vehiculeaz datele,
atunci cnd sunt selectate cu semnalele OB_OG, respectiv OB_JG; un octet
de valoare zero, respectiv un octet de valoare unu, necesari n implementarea
unora dintre instrucii.

122

123

Registrele OG i 1 G

CAP. S. DESPRE PROCESOR. UNITATEA DE REGISTRE

CAP. 5. DESPRE PROCESOR. UNITATEA DE RE.GISTRE

5.3. Unitatea de registre a procesorului MOTOROLA 68000

Aa

cum se sugereaz n figura 5.3_1, registrele DO-D7 -registre pe 32


pot fi folosite la nivel de octet, la nivel de dublu-octet, numit cuvnt i
la nivel de cuadruplu octet, numit cuvnt lung. Lucru.I la nivel de octet
vizeaz n mod implicit biii 0-7, n. timp ce biii 8-31 rmn neafectai, iar
lucrul la nivel de cuvnt vizeaz n mod implicit biii 0-15, n timp ce biii
I 6-31 rmn neafectai. n limbaj de asamblare, se specific dac la un
moment se dorete lucrul pe octet~ cuvnt sau cuvnt lung cu ajutorul unui
sufix adugat mnemonicelor instruciilor. Sufixul este "B" n cazul lucrului
pe octet, "W" n cazul lucrului pe cuvnt i "L" n cazul lucrului pe cuvnt
lung. n toate cazurile, mnemonicul este separat de sufix printr-un
caracter".".
bii-

Unitatea de registre a procesorului MOTOROLA 68000 -aa cum o vede


programatorul n limbaj main, fr regstrele auxiliare de uz intern- este
reprezentat n figura 5 .3 _ l .
cuvnt lung

cuvnt
octet

31
31
31
31
31
31
31

31
31
31
31
31
31

31
31
31
31

16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15
16 15

87
87
87
87
87
87
87
87

15

87

.
oDO
oDl
oD2
oD3

oD4
oD5
oD6
oD7

oAO
oAl
oA2
oA3
oA4
oA5

oA6
oA7

oA7'

oSR

Fig. 5.3_1. Unitatea de registre a procesorului MOTOROLA 68000.

Registrele DO-D7 sunt denumite ''registre de date". Ele sunt echipotente


ntre ele n sensul cel mai strict al termenului. Principala menire a registrelor
DO-D7 este aceea de a juca, n procesul de execuie a instruciilor, rolul de
r~edin a cel. puin unui operand -eventual a operandului unic-, respectiv
de a prelua rezliltate; din acest punct de vedere, ele au exact acelai statut ca
registrele A, B; C-ale procesorului CSAC 2001. De asemenea, registrele
DO-D 7 se folosesc ca registre de manevr i ca registre index. Se precizeaz
c un registru index este un registru iII1.plicat n procesul de calcul al
adreselor sub care se acceseaz memoria, prin adunarea coninutului su cu o
valoare ce joac rol de referin,- specificat efectiv sau aflat ntr-un alt
registru.
124

Exemple:
S presupunem c registrul D3 conine valoarea hexazecimal 11223344.
1. Dac se dorete anularea octetului format din biii O-7, se execut
instrucia CLR.B D3, obinndu-se n D3 valoarea hexazecimal
11223300.
2. Dac se dorete anularea dublului octet format din biii 0-15, se
execut instrucia CLR. W D3, obinndu-se . n D3 valoarea
hexazecimal 11220000.
3. Dac se dorete anularea ntregului coninut al registrului D3, se
execut instrucia CLR.L D3, obinndu-se valoarea hexazecimal
00000000.
Registrele AO-A6 sunt denumite "registre de adrese". Ele sunt echipotente
ntre ele n sensul cel mai strict al termenului. Principala menire a registrelor
AO-A6 este aceea de a fi registre pointer -adic: sediu de referine-. De
asemenea, ele se folosesc i pe post de registre index i de registre de
manevr, pur i simplu.
Aa

cum se sugereaz n figura 5.3 _l, registrele AO-A6 -registre pe 32


pot fi folosite la nivel de dublu-octet (cuvnt) i la nivel de cuadruplu
octet (cuvnt lung). Lucrul la nivel de cuvnt vizeaz n mod implicit biii 015; biii 16-31 sunt, ns, i ei afectai, n cazul ope:i;aiilor de scriere ntr-un
asemenea registru, prin extensia n zona lor a valorii logice a bitului 15.

bii-

Registrele A7 si A7' au toate caracteristicile registrelor AO-A6, dar, n


plus, joac n mod implicit rolul de pointeri de stiv, motiv pentru care i
sunt denumite "registre pointeri de stiv". Procesorul MOTOROLA 68000
125

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

are dou moduri de funcionare: modul utilizator, respectiv modul


supervizor. Modul utilizator este destinat rulrii programelor de aplicaie, iar
modul supervizor -rulrii programelor ce sistem. Fiecare categorie de
programe dispune, n sistemele c~ MOTOROLA 68000, de propria stiv. i
asta, se asigur prin mecanisme hardware. De ce? Pentru asigurarea creterii
performanelor sistemelor n privina siguranei n funcionare. Cnd
procesorul este n modul utilizator, unitatea de comand a procesorului
MOTOROLA 68000 folosete pe post de pointer de stiv registrul A 7. Cnd
procesorul .este n modul utilizator, unitatea de comand a procesorului
MOTOROLA 68000 folosete pe post de pointer de stiv registrul A 7 '.
Pentru programator, este transparent comutarea de la A 7 la A 7' i viceversa;
referirile programatorului vor fi, ntotdeauna,
doar la A 7, dar, prin
hardware, se va asigura ca ele s vizeze exemplarul din A 7 care trebuie,
dup caz.

Registrul SR este denumit "registru de stare" (prescurtarea SR vine de la


"status register"). EI cuprinde 10 fanioane. 5 dintre ele -implementate la
nivelul octetului inferior al registrului SR- sunt accesibile programelor de
aplicaie, iar 5 sunt vzute exclusiv de programele de sistem. Din acest
motiv, octetul inferior al lui SR poart numele de "octet utilizator", iar
octetul superior -pe acela de "octet supervizor"-. Figura 5 .3 _ 2 pune n
eviden toate aceste fanioane.
octet utilizator

octet su ervizor
15

Fanionul T indic dac regimul de :furlctionare este de trasare -n acest


caz T=l- sau nonnal -n acest caz T=O:. Regimul de lucru trasare se
caracterizeaz prin aceea c dup rularea fiecrei instructii, se intr ntr-o
rutin specific, pe afieaz diverse informaii, utile n pro~esul de depanare
a ~rogr~elor (de exemplu: coninuturile registrelor, etc.). Existena
reg1mulw de lucru trasare permite implementarea aa-numitelor debugger-e.
Fanionul S indic dac modul de lucru este supervizor-n acest caz S=lsau utilizator -n acest caz S=O-.
Fanio~ele !2 I1 si IO au semnificaie doar ca ansamblu, prin valoarea pe
care o codifica la un moment dat. Ele materializeaz aa-numita "masc de
ntreruperi".
Termenul
"ntrerupere " desemneaz n d~meniul
calculatoarelor abilitatea procesoarelor de a se abate de la programul n curs
de execuie n vederea rulrii unor rutine speciale -numite "rutine de tratare
rspuns la semnale
a ntreruperilor" sau "handler-e de ntrerupere",
externe sau interne, numite "cereri de ntrerupere". ntruct este posibil ca
n anumite momente s fie formulate mai multe cereri de ntrerupere, se
impune ca sistemele de calcul s dispun de mecanisme de tratare
prioritizat a acestor cereri. n c~zul procesorului MOTOROLA 68000,
cererile de ntrerupere sunt ierarhizat~ pe 7 nivele. Nivelul cel mai prioritar
este nivelul 7, iar cel mai puin prioritar -nivelul 1. Fanioanele 12-10 au rolul
de a detemuna luarea n considerare la un moment doar a cererilor de
. ntrerupere de pe nivelele cu numr de ordine mai mare dect numrul
codificat de ele (12 are ponderea 2 2 , iar IO -ponderea 2) i ignorarea
celorlalte.

ca

transport

trasare
supervizor----

depire

'-----zero
L------ negativ
..___ _ _ _ _ extensie

masc d e - - - - - - - - '
ntrerupere

Fig. 5.3 _2. Fanioanele registrului SR.

Fanioanele C, V, Z si N sunt echivalentele fanioanelor C, V, Z i S ale


prqcesoruiui CSAC 2001. Fanionul X are aceeai semnificaie ca i fanionul
C, 'dar este afectat numai de ctre operaiile aritmetice, n timp ce 'acesta din
mm se poziioneaz i cu alte oc'!Zl.i.
126

5.4. Unitatea de registre a procesorului INTEL 8086


Unitatea de registre a procesorului INTEL 8086 -aa cum o vede
programatorul n limbaj main, rar registrele auxiliare de uz intern- este
reprezentat n figura 5 .4_ l.
Registrul AX este din aceeai clas cu registrele A, B, C ale procesorului
CSAC 2001, respectiv DO-D7 ale procesorului MOTOROLA 68000.
Principala menire a registrului AX este aceea de a juca, n procesul de
execuie a instruciilor, rolul de reedin a unuia dintre operanzi -eventual a
operandului unic-, respectiv de a prelua rezultate. De asemenea, registrul AX
se folosete ca registru de manevr.
127

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

15

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

87

AH
BH
CH

AL

AX

BL

BX

CL

DH

ex

DL

DX
SP
BP
Sf
DI

F
Fig. 5.4_1. Unitatea de registre a procesorului INTEL 8086.
Aa cum se sugereaz n figura 5.4_1, registrul AX -registru pe 16 bii
poate fi folosit la nivel de octet i la nivel de dublu-octet. Lucrul la nivel de
octet vizeaz fie biii 0-7, fie biii 8-15. Primii definesc registrul parte a lui
AX numit AL, iar ultimii -registrul parte a lui AX, numit AH.

Registrul BX este un registru dedicat implementrii unor "moduri de


adresare" a memoriei, i anume: adresarea bazat i adresarea indirect
(vezi capitolul urmtor). i BX este pe 16 bii i poate fi folosit la nivel de
octet i la nivel de dublu-octet. Lucrul la nvel de octet vizeaz fie biii 0-7,
fie biii 8-15. Primii definesc registrul parte a lui BX, numit BL, iar ultimii registrul parte a lui BX, numit BH.
Registrul ex este un registru-numrtor, conceput s fie utilizat n
materializarea unor operaii de rotire, deplasare, ciclare i transfer de iruri.
i ex este pe 16 bii i poate fi folosit la nivel de octet i la nivel de dubiuoctet. Lucrul la nivel de octet vizeaz fie biii O-7, fie biii 8-15. Primii
definesc registrul parte a lui ex, numit CL, iar ultimii -registrul parte a lui
ex, numit CH.
Registrul DX este un registru conceput cu predilecie pentru a fi utilizat n
materializarea oper.aiilor de nmulire, mprire i lucru cu porturile. i DX
este pe 16 bii .i poate fi folosit la nivel de octet i la nivel de dublu-octet.
Lucrul la nivel de octet vizeaz fie biii O-7, fie biii 8-15. Primii definesc
registrul parte a lui DX, numit DL, iar ultimii -registrul parte a lui DX
numitDH.
128

Chiar dac, aa cum se poate remarca din descrierea de mai sus, fiecare
dintre registrele Ax, BX, CX, DX i are particularitile sale -unitatea de
registre a procesorului INTEL 8086 este, evident, una heterogen-, exist un
tennen comun pentru referirea lor, i anume: termenul de "registre de date".
Registrul SP este registrul pointer de stiv al procesorului INTEL 8086.
Registrul BP este un registru dedicat pointrii programate -adic: mi
impus hardware- spre locaiile de memorie gestionate dup principiul
stivei. Cu ajutorul lui BP, se pot accesa simplu locaiile de stiv n orice
ordine se dorete i nu neaprat n ordinea LfFO, implementata cu ajutorul
registrului SP.
Registrul Sf este un registru index conceput s fie utilizat n calculul
adresei locaiei de memorie de unde se face la un moment un transfer.
Registrul DI este un registru index conceput s fie utilizat n calculul
adresei locaiei de memorie spre care se face la un moment un transfer.
Registrele SP, BP, Sf i DI sunt desemnate, mpreun, prin termenul
"registre pointer i index".
Registrul F este un registru de fanioane numit "registru al cuvntului de
stare a programului"; se obinuiete ca el s fie referit prin prescurtarea
PSW, de la program status word. Structura registrului este pus n eviden
de figura 5.4_2.
octet su ervizor

octet utilizator
8 7
IF TF SF ZF ~fi'

15
depire--------

transport
'------ paritate
...___ _ _ _ _ transport
auxiliar
zero

direcie---------'
masc

de _ _ _ _ _ _ ____,

ntrerupere
trasare - - - - - - ------'

L-..-__ _ _ _ _ _ _

l - - - - - - - - - - - semn

Fig. 5.4_2. Fanioanele registrului F.

129

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Fanioanele CF. ZF. SF. OF. PF au aceleai semnificaii ca i fanioanele


C, Z, S, V. P ale procesorului CSAC 2001, respectiv, primele patru dintre
ele, ca i fanioanele C, Z, N, Vale procesorului MOTOROLA 68000.
Fanionul AF este numit ''fanion de transport auxiliar" i are rolul de a
indica, n urma rulrii unora dintre operaiile aritmetice, dac apare -AC= 1sau nu -AC= O- transport din rangul 3 spre rangul 4, adic: de la tetrada 1
spre tetrada 2. Aceast informaie este util atunci cnd se opereaz cu
numere reprezentate n codul BCD (BCD vine de la "binary coded decimal'',
adic: zecimal codificat binar).
Fanionul TF are aceeai semnificaie ca i fanionul T al procesorului
MOTOROLA 68000.
Fanionul IF este numit ''fanion de intreruperi" i are rolul de a valida I
invalida ntreruperile, adic: de a activa I dezactiva sensibilitatea
procesorului la cererile de ntrerupere.

6
DESPRE PROCESOR. UNITATEA DE COMAND

6.1. Preliminarii. Paradigma von Neumann


Dup cum s-a vzut, nucleul unui calculator este constituit din procesor
. . .
.
'
memorie I mterfee, la mvelul procesorului distingndu-se: unitatea
aritmetico-logic, unitatea de registre i unitatea de comand.

Unitatea aritmetico-logic i algoritmii pe baza crora ea functioneaz


s-au studiat n detaliu n capitolul 4.
'
Unitatea de registre, cu locul i rolul elementelor sale n ansamblul
procesorului, a fcut obiectul capitolului 5.

Se menioneaz c procesorul INTEL 8086 mai dispune de 4 registre.


-CS, DS, SS, ES-, numite "registre segment". Referitor la aceste registre, ne

Despre unitatea de comand s-a spus n prima parte a lucrrii c ea


reprezint partea unui procesor care are n sarcin generarea comenzilor
interne i externe necesare funcionrii calculatorului n ansamblul su.
Exist mai multe tipuri de uniti de comand; n cadrul prezentei lucrri,
se vor avea n vedere doar unitile de comand numite, ca i procesoarele
n care sunt integrate, von Neumann. Acestea se caracterizeaz prin aceea c
respect urmtoarea paradigm, numit "paradigma von Neumann":

I). Un program const n instrucii care opereaz la un moment asupra unui


singur flux de date.
2). Instruciile se execut una dup alta i nu mai multe simultan, sub
aspectul producerii de rezultate; la nivel micro, ns, este posibil ca
operaii eleme!ltare aparinnd de dou sau mai multe instrucii s fie
executate suprapus, fr alterarea ordinii de generare de rezultate macro,
fa de cazul n care instruciile s-ar executa pur secveniat.
3). O instrucie poate implica introducerea n procesare a maximum doi
operanzi.
130

I
~

Fanionul DF are rolul de a indica direcia n care evolueaz adresele n


cazul operaiilor cu iruri: DF=l arat c adresele se incrementeaz, iar DF=
O-c adresele se decrementeaz.

limitm, n context, la a spune doar c ele aparin unui bloc special al unitii
de comand a procesorului INTEL 8086, numit "unitate de gestiune a
memoriei".

131

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

4). Instruciile se reprezint prin coduri care sunt fie de lungime fix, fie de
lungime variabil.
5). Un cod de instrucie cuprinde cmpuri prin care se specific:
operaia ce face obiectul instruciei
operandul I operanzii sau informaii despre locul n care se afl
operandul/operanzii
informaii despre locul unde trebuie depus rezultatul
6). O instrucie este urmat n execuie, n mod implicit, de instrucia situat
n memorie imediat dup ea. n cazul instruciilor de salt, de apel de
subrutin i de revenire din subrutin, instrucia urmtoare se determin
de ctre fiecare dintre ele n mod specific, prin algoritmul nglobat
special n cadrul lor, n acest sens.
7). Programele aflate n rulare sunt "ncrcate", adic: au instruciile
amplasate n memorie, n acord cu logica programului, n locaii de
adrese consecutiv cresctoare sau rezultate din logica intern a
instruciilor de salt, de apel de subrutin i de revenire din subrutin.

6.2. Elementele constitutive ale unittilor de


von Neumann

comand

O unitate de comand von Neumann const, n esen, din urmtoarele


blocuri:
un registru de adresare a instruciilor, numit pointer de instrucie, IP
(lnstruction Pointer) sau numrtor al programului, PC (Program
Counter);
un registru sediu al cuvntului instrucie ce instaniaz instrucia aflat n
rulare, numit registrul instruciei, IR (Instruction Register);
un decodificator al cuvntului instrucie ce instaniaz instrucia aflat n
rulare, numit, din raiuni istorice, decodificator al codului operaiei,
OCD ( Opf!raion Code Decoder);
un bloc de secveniere a comenzilor, numit secveniator, S (Sequencer);
un bloc de pilotare temporal, numit generator de tact, CG ( Clock
Generator);
un bloc de iniializare, numit generator de reset, RG (Reset Generator).

132

Figura 6.2_1 surprinde o unitate de comand von Neumann, ca parte a


unui procesor ipotetic, definit de pe poziii didactice -procesorul CSA C
2001, referit i n capitolul precedent.
Se

remarc prezena

n figura 6.2_1 a tuturor celor 6 blocuri din


componena unitii de comand standard von Neumann. S ne oprim puin,
n continuare, asupra fiecruia dintre ele.
Registrul PC
Registrul PC -numrtorul programului sau pointerul de instrucie- are
rolul de a indica adresa urmtoarei instrucii sau, cnd instruciile se citesc
fragmentar, adresa urmtorului fragment al instruciei n curs de rulare.
Avnd n vedere paradigma von Neumann, registrul PC funcioneaz, de
regul, n regim de numrare -mai exact: incrementare- . i doar n cazul
instruciilor de salt, apel de subrutin i revenire din subrutin, n regim de
ncrcare paralel; aceasta, n ideea de a prelua ceea ce se genereaz n
cadrul acestor instrucii, pe post de adres a instruciei urmtoare.

Registrul IR
Registrul IR -registrul

instruciei- joac

rolul de sediu al codului

operaiei care face obiectul instruciei. Este obinuit ca registrul IR s aib

extensii pentru pstrarea unor informaii conexe codului operaiei, cum ar fi


informaiile privind locul n care se afl operanzii sau unde trebuie depus
rezultatul, respectiv informaii pe baza crora se determin -eventual n
urma unor calcule- locul operanzilor i-sau al rezultatului.
n arhitectur~ considerat, extensiile registrului IR sunt IREL, respectiv
IREH. Acestea sunt registre pe cte 8 bii, concatenabile ntre ele astfel
nct s poat prelua i pstra i informaii pe 16 bii.
133

CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Aa cum se va vedea, n arhitectura considerat instruciile au lungimi de


1-4 octei. n timpul procesului de rulare, acetia sunt pstrai la nivelul
procesorului dup cum urmeaz:
octetul 1: n registrul IR
octetul 2: n registrul IREL
J
octetul 3: n registrul IREH
j
octetul 4: n registrul Bl

1 A nu se deduce din cele de mai sus c registrul Bl ar fi i el extensie a


i registrului IR. Registrul Bl are, dup cum. s-a artat n capitolul prec~dent
i i dup cum se va vedea n continuare, cu totul alte. roluri i, numai

~I

j.

conjunctural, n cazul unui numr redus de instrucii, el este pe post de


extensie a registrului IR
Decodificatorul codului operatiei
Decodificatorul codului operaiei are rolul de a decodifica codul din IR
i de a indica secveniatorului S, pe de o parte, operaia ce trebuie executat,
iar pe de alt parte, operandul I operanzii sau modul n care trebuie s fie
determinat locul operandului I operanzilor i-sau al rezultatului.
Se precizeaz c exist o multitudine de modaliti prin care operandul I
operanzii, respectiv locul operandului I operanzilor i-sau locul rezultatului
se pot specifica; o astfel de modalitate poart, consacrat, numele de "mod de
adr~sare". n figura 6.2_2, sunt sintetizate modurile de adresare cu care este
nzestrat arhitectura de calcul considerat.

.9
,...,,

Se face precizarea c unele dintre modurile de adresare surprinse n


figura 6.2_2 sunt referite de ctre unii productori i-sau utilizatori de
procesoare prin ali termeni dect cei adoptai n context de noi; de altfel,
cititorul este rugat s rein c unicitatea termenilor i a semnificaiilor pe
care termenii le au este, n domeniul calculatoarelor, mult prea frecvent,
doar un deziderat.
135

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Nr. Modul de adresare


Definirea modului de adresare
crt.
I. Adresarea implicit . Se numete adresare implicit referirea unui
registru al procesorului ce conine un operand
sau este vizat s conin rezultatul prin nii
bitii ce reprezint codul operaiei.
2. Adresarea la registru Se numete adresare la registru referirea unui
registru al procesorului ce conine un operand
sau este vizat s conin rezultatul, prin bii
dedicai ai cuvntului instrucie, alturai celor
. prin care se specific codul operaiei.
3. Adresarea imediat Se numete adresare imediat specificarea prin
cuvntul instrucie a nii operanzilor, prin
bii dedicai, alturai celor prin care se
specific codul operaiei.
4. Adresarea indirect Se numete adresare indirect referirea unei
locaii de memorie sau a unui port ce conine
un operand sau este vizat I vizat s conin
rezultatul, printr-o adres coninut de unul
dintre registrele prncesorului, indicat prin bii
dedicai ai cuvntului instrucie, alturai celor
orln care se specific codul operatiei.
5. Adresarea direct
Se numete adresare direct referirea unei
locaii de memorie sau a unui port ce conine
un operand sau este vizat I vizat s conin
rezultatul, printr-o adres coninut n mod
efectiv n cuvntul instrucie, alturat
cmpului ce joac rolul de cod al operatiei.
6. Adresarea stiv
Se numete adresare stiv referirea unor
locaii de memorie pentru depunerea n ele a
coninuturilor unor registre, respectiv pentru
descrcarea coninuturilor lor n anumite
registre, cu ajutorul adresei coninut de
registrul pointer de stiv, decrementat
naintea fiecrei operaii de scriere i
incrementat dup fiecare operaie de citir~
Fig. 6.2_2. Modurile de adresare ale arhitecturii de calcul din figura 6.2_1.
136

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Secventiatorul
Secveniatorul

S are rolul de a genera ansamblul semnalelor ce


elementare la care sunt :reduse instruciile, n mod
specific pentru fiecare instrucie, conform indicaiilor primite de la
decodificatorul codului operaiei.

materializeaz operaiile

Rularea unei instrucii are dou etape:


1). Etapa de extragere sau aducere ("fetch") a codului operaiei i a
informaiilor privind locul operanzilor i-sau rezultatului indisociabile de
codul operaiei.
2). Etapa de execuie propriu-zis a instruciei.
Etapa de aducere cuprinde un ciclu de citire din memorie identic pentru
toate instruciile. n cadrul acestui ciclu, se citete locaia cu adresa prezent
n registrul PC i coninutul ei se duce n registrul IR.
Etapa de execuie cuprinde unul sau mai multe cicluri de citire, respectiv
de scriere, viznd memoria sau un port, n mod specific pentru fiecare
instructie. Aceste cicluri au ca obiectiv, n principal, citirea operanzilor,
respectiv scrierea rezultatului, dar, uneori, mai nainte de asta, aducerea
informaiilor privind locul operanzilor i-sau rezultatului, ce se prezint
separat de codul operaiei.
Semnalele de comand generate de secveniator acioneaz, n
majoritatea covritoare a lor, n interiorul procesorului i doar un numr
redus n afara sa. n arhitectura considerat, semnale de comand interne
sunt:
LD IR
OB A
ADD
etc.,
iar semnale de comand externe:

MRQ

IORQ

RD

WR.

137

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Semnalul LD_IR (load IR)are rolul de a determina ncrcarea registrului


IR cu informaia prezent la intrrile sale. Este activ pe frontul ridictor.

CAP. 6. DESPRE PROCESOR UNITATEA DE COMAND

Operaia de citire I scriere n derulare la un moment va viza o locaie de


memorie sau alta, respectiv un port sau altul, n funcie de valoarea
informaiei numit adres, transmis memoriei, respectiv unitii de porturi,

Semnalul OB_A (on the bus A) are rolul de a determina punerea pe


liniile de date ale procesorului a coninutului registrului A, prin activarea
ieirilor cu 3 stri ale acestui registru. Este activ pe nivelul ridicat, adic: pe
nivelul de "l ".

prin grija unitii de comand, n timp ce semnalele MRQ, respectiv IORQ


sunt active.

Semnalul ADD (ad) are rolul de a specifica unitii aritmetico-logice c


are de efectuat o adunare. Este activ pe nivelul ridicat, adic: pe nivelul
de "l".

Suportul fizic pe care se face vehicularea adreselor ntre procesor i


memorie, respectiv porturi este aa-numita "magistral de adrese",
format, n cazul arhitecturii considerate, din 16 linii: AO-AJ 5. Liniile
magistralei de adrese sunt cu trei stri logice, unidirecionale.

Semnalul MRQ ("memory request") are rolul de a mobiliza memoria n


vederea efecturii unei operaii. Operaia poate fi de citire sau de scriere,
dependent de valoarea logic a semnalelor RD i WR. Este activ pe nivelul
cobort, adic: pe nivelul de "O".

Suportul fizic pe care se face vehicularea datelor ntre procesor i


memorie, respectiv porturi, ca i ntre memorie, respectiv porturi i procesor
este aa-numita "magistral de date", format, n cazul arhitecturii
considerate, din 8 linii: DO-D 7. Liniile magistralei de date sunt cu trei stri
logice, bidirecionale.

Generatorul de tact
Semnalul IORQ ("input-output request") are rolul de a mobiliza
unitatea de porturi n vederea efecturii unei operaii. Operaia poate fi de
citire sau de scriere, dependent de valoarea logic a semnalelor RD i WR.
Este activ pe nivelul cobort, adic: pe nivelul de "O".
Semnalul RD ("read") are rolul de a specifica memoriei sau unitii de
porturi c operaia dispus de procesor prin semnalele MRQ, respectiv

IORQ este una de citire. Este activ pe nivelul cobort, adic: pe nivelul
de "O".
Semnalul WR. ("write") are rolul de a specifica memoriei sau unitii de
porturi c operaia dispus de procesor prir.. semnalele MRQ, respectiv

IORQ este una de scriere. Este activ pe nivelul cobort, adic: pe nivelul
de "O".
138

Generatorul de tact, CG, are rolul de a furniza aa-numitul "semnal de


tact" sau "semnal de ceas", CLK ("clock"), cu care i sincronizeaz
funcionarea secveniatorul, dar i celelalte blocuri secveniale ale unitii
de comand i, n ultim instan, ntregul calculator.

Generatorul de reset
Generatorul de reset, RG, are rolul de a furniza un semnal de iniializare
a secveniatorului i a altor blocuri cu caracter secvenial, de fiecare dat
cnd calculatorul se pune sub tensiune, respectiv cnd se apas un buton
dedicat, numit "buton RESET'.
Minimal, generatorul de reset asigur aducerea registrului PC la un
coninut predefinit (zero, n cazul celor mai multe procesoare, inclusiv n
cazul n studiu), reprezentnd adresa instruciei de nceput a primului
program ce s~ imp"!..me a fi rulat (de regul: un program de autotestare sau un
program ncrctor), respectiv instituirea strii iniiale a secveniatorului,
astfel nct el s-i demareze activitatea cu un ciclu fetch.

139

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

6.3. Instructiile procesoarelor von Neumann. Studiu de caz


pe setul de instructii al procesorului CSAC 2001
6.3.1. Aspecte introductive

Procesorul CSAC 2001 dispune, la nivel generic, de 17 instrucii:


Instrucia de ncrcare (loa), "LD"
Instrucia de adunare (add), "ADD"
Instrucia de scdere (substract), "SUB"
Instrucia de efectuare a operaiei I (and), "AND"
Instrucia de efectuare a operaiei SAU (or), "OR"
Instrucia de efectuare a operaiei SAU EXCLUSIV (exclusiv or), "XOR"
Instrucia de incrementare (increment), ''INC"
Instrucia de decrementare (decrement), "DEC''
Instrucia de deplasare la dreapta (shift right), "SHR."
IO.Instrucia de deplasare la stnga (shift lefi), "SHL"
11.Instrucia de intrare (input), ''IN"
12.Instrucia de ieire (output), "OUT"
13.Instrucia de scriere n stiv (push), "PUSH"
14.Instrucia de citire din stiv (pop), "POP"
15.Instrucia de salt (jump), "JP"
16.Instrucia de apel de subrutin (call), "CALL"
17.Instrucia de revenire din subrutin.(return), "RET"

1.
2.
3.
4.
5.
6.
7.
8.
9.

(BC): pentru desemnarea locaiei de memorie pointat de adresa din BC


sau a coninutului ei, distincia fcndu-se din context
(aaaa): pentru desemnarea locaiei de memorie pointat de adresa "aaaa"
sau a coninutului ei, distincia fcndu-se din context
(aa): pentru desemnarea portului de adres "aa" sau a continutului lui
distincia fcndu-se din context
'
'
aa: pentru desemnarea unei valori pe 8 bii
aaaa: pentru desemnarea unei valori pe 16 bii

Se face precizarea c cele mai multe dintre instruciile procesorului


CSAC 2001 fac uz de toate cele ase moduri de adresare introduse cu ocazia
prezentrii decodificatorului codului operaiei:
adresarea implicit
adresarea la registru
adresarea imediat
adresarea indirect
adresarea direct
adresarea stiv
6.3.2. Codificarea instructiilor
Se convine ca octetul 1 al instruciilor -reamintim: instructiile
procesorului CSAC 2001 se reprezint pe 1...4 octei- s aib urmtoa~ele
cmpuri:
a). cnd val (bit7... bit5)

nainte de prezentarea efectiv a acestor instrucii, se instituie


urmtoarele notaii:

op: pentru desemnarea operaiei cu care se identific o instrucie


x: pentru desemnarea sediului operandului 1 sau a sediului comun al
operandului 1 i al rezultatului sau a sediului operandului 2, distincia
fcndu-se din context; operandul 1 poate fi i unicul
y: pentru. desemnarea -operandului 2 sau a sediului operandului 2,
distin<;;ia fcndu-se din context
A, B, C: pentru desemnarea registrelor A B, C sau a coninuturilor lor,
distincia fcndu-se din context
140

[001 2 .110 2]
5

val (bit4 bit3)

codul

specificaia

operaiei

pt.x

001: op= LDx, y


010: op= ADD x, y
011: op= SUB x, y
lOQ: op= AND x, y
101: op= ORx, y
110: op= XORx, y

00: X =A
01: X =B
10: X= C

141

[00 2 ... 102]:

specificaia

pt.y
OOO:y
OOl:y
OlO:y
01 l:y
lOO:y
101: y

=A
= B
= C

= ao
= (BC)
= (aaaa)

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

b). cnd val (bit7. bit5)


7

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

[OOlz ... 1102] i val (bit4 bit3) = 112:


5

e). cnd val (bit7. bit5) = 111 2 i val (bit4 bit3) = 00 2


i val (bit2 . bitO) = 111 2 :
7

codul

pt.y

codul

OO:y =A
Ol:y =B
lO:y = c
ll:y = aa

operaiei

c ). cnd val (bit 7... bit5) = 111 2 i val (bit4 bit3)


i val (bit2 . bitO) E [000 2 .1012]:
6

codul

specificaia

codul

pt.x

operaiei

111 : op = vezi
val (bit2 . bitO)

OO:x =A
01: X= B
IO:x = C

i specificaia

pt. y

OOO: op= INC x


001: op = DEC x
010: op= SHLx
011: op= SHRx
1O1 : op = IN x, y
cuy

d). cnd val (bit7 . bit5) = 111 2 i val (bit4 bit3)


i val (bit2 . bitO) = 1102 :
5

specificaia

operaiei

pt.y

111: op = vezi
val (bit2 ... bitO)

operaiei

00111: op= RET

f). cnd val (bit7 ... bit5) = 11 h i val (bit4 bit3)


6

= 11 2

codul

specificaia

codul

ptx

operaiei

111: op = vezi
val (bit2 ... bitO)

g). cnd val (bit7 ... bit5)


7

= 000 2 i val (bit3


5

codul

(aa)

[002. l 02]

110: X =(BC)
111: x =(aaaa)

OOO: op= vezi


val (bit3 . bitO)

bitO)

specificai a
pt. X
O:x=AF
sau:

codul
operaiei

0000: PUSHx
1000: POP X
0111: LD x, aaaa

l:x=BC
.

bitO) = 111 }z:

codul
operaiei

pt. x
110: op = OUT x, y
cu x

= (aa)

codul

codul

operaiei

operaiei

OOO: op = vezi
val (bit4 ... bit O)
142

{0000, 1000, 0111

x=SP

00: op=INC
Ol: op= DEC
10: op= SHL
11: op= SHR

i specificaia

OO:y =4
Ol:y =E
10:y = c

operaiei

h). cnd val (bit7 ... bit5) = 000 2 i val (bit3

codul

codul

operaiei

[002 ... 102]

operaiei

111 : op = vezi
val (bit4 ... bitO)

specificaia

pt.x
110: X =(BC)
111: x =(aaaa)

001: op= LDx,y


010: op= ADD x, y
011: op= SUBx,y
100: op= ANDx,y
101: op=ORx,y
110: op=XORx,y

specificaia

operaiei

01111: op= INC BC


11111: op= DEC BC

143

}:

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

i). cnd val (bit7 bit6 bit5)


6

= 0002 i val (bit2 bitl bitO)


5

codul

specifi-

operaiei

caia

{001...1102}:

codul
operaiei

pt. X

bOO: op =vezi
val (bit3 ... bitO)

Notatie
765 43 210
001 00 OOO JDA.A
001 DA B
010 DA,C
011 JD A,aa
100 JD A, rRrl
101 JD A -(aaaa)
01 OOO JDB,A
001 JDB B
010 :.DB C

OlllLDB,aa
100 JD B.IBC)

O: e=N 0001: op= JP eZ, (aaaa)


1: e= ni! 001 O: op= JP eS, (aaaa)
0011: op= JP eC, (aaaa)
0100: op= JP eV, (aaaa)
0101: op= JP eP, (aaaa)
0110: op= JP (BC),
dacbit4=0

011 O: op = JP (aaaa)
dac bit4=1
1001: op= CALL eZ, (aaaa)
1010: op= CALL eS, (aaaa)
1011: op= CALL eC, (aaaa)
1100: op= CALL eV, (aaaa)
1101: op= CALL eP, (aaaa)
011 O: op= CALL (BC),
dac bit4=0
011 O: op= CALL (aaaa)
dac bit4=1

Ca o conseci~t a conventiilor
de codificare de mai sus, rezult tabelul
'
din figura 6.3.2_1.Acesta cuprinde, ntr-o manier sintetic, ntregul set de
instrucii al procesorului CSAC 2001, cu modurile de adresare pe care ele le

101

_n B, (aaaa)

JO OOO -DC,A
001 -DC.B
010
011 ..,DC,aa
100 c.D C, fBC)
101 DC, (aaaa)
OOO "'D(BC ,A
001 LD(BC ,B
010 ... DCBC tC
011 ~CBC ),aa
100 ...D (aaaa), A
101 i..D (aaaa), B
110 ... D (aaaa), C
111 LD ( aaaa), aa
OOO A.NDA,A
001 .NDA,B
010 A.NOA, C
011 ANDA,aa
100 AND A,CBC)
101 ANDA, (aaaa)
OOO A.NDB. A
001 ANDB,B
010 A.ND B. C
011 11..NDB, aa
100 ANDB <BC)
101 IAND B, (aaaa)
OOO ANDC A
001 A DC B
010 A~oc,c
011 IA~ DC, aa
100 A~ DC, CBC)
101 A..~ DC, (aaaa)
OOO A~DI BC ,A
001 A Di BC ,B
010 A Dl BC ,C
011 A} DI BC ). aa
100 A} D (aaaa), A
101 4J D (aaaa), B
110 4J D <aaaa), C
111 AND (aaaa), aa

. .oc.c

11

100 00

Ol

10

admit.
li

Fig. 6.3.2_1.

144

010 00 OOO

010 00 OOO
001
l
l
010
2
011
l
100
101
3
1
01 OOO
1
001
010
1
011
2
100
1
3
101
10 OOO
1
1
001
010
1
2
011
100
1
101
3
1
11 OOO
001
1
010
I
2
011
100
3
3
101
110
3
111
4
1 101 00 OOO
001
I
010
l
2
011
100
1
101
3
Ol OOO
1
001
l
1
010
1

Ol I

1
3
I
l

100
101

1
2
1

3
l
l
l
2
3

3
3
4

10 OOO
001
010
011
100
101
11 OOO
001
010
011
. 100
101
110
111

Instruciile

Nota.tie
)DA,A
"- DA,B
"-DAC
~ DA, aa
~ DA, (BC)
A.. >DA faaaa)
A.. >DB,A
A.. DB,B
~ DB,C
DB,aa
DDB,CBC)
~ D B. (aaaa)
DC.A
1. >DC.B
DC,C
A..DD C, aa
A..DD C (BC)
i lD C, (aaaa)
A. >D C),A
l,. >D
C),B
D IC\C
>DI ~C), aa
Di aaaa), A
~ D aaaa), B
D aaaa), C
~ )D (aaaa), aa
IRA,A
RA,B
IRA,C
IRA,aa
RA, CBC)
RA (aaaa)
ORB,A
1RB,B
IRB,C
)RB,aa
RB,(BC)
lR B, (aaaa.)
)RC,A
>RC,B
RC,C
RC,aa
RC,(BC)
>RC, (aaaa)
R(BC),A
RCBC), B

:JR(BC), C
:::>R (BC), aa
OR (aaaa), A
::>R (aaaa). B
::>R (aaaa), C
OR (aaaa), aa

L 765 43 210
Notatie
1 Oli 00 OOO SUBA,A

1
I
2
1

3
1
1
1
2
1

3
l
l
l
2
l

001 m3A.B
010 UBA,C
011 UBA aa
100 UBA, (BC)
101 SUB A. (aaaa)
01 OOO SUBB A
001 SUBB,B
010 SUBB.C
011 SUB B aa
100 SUB B (BC)
101 SUB B, (aaaa)
10 OOO SUB C,A
001 SUBC,B
010 UBC C

Oli

3
1
I
1

11

2
3
3
3
4
l
1
l
2
l

110 00

3
l
1
I
2
1

Ol

3
1
l

10

1
2
1
3
1
1
I

11

2
3
3

3
4

procesorului CSAC 2001 (se

145

UB C, aa

100
101

UB C. (BC)
UB C, (aaaa)
OOO UB 'BC),A
001 SUB BC),B
010 UB BC),C
Oli UB BC),aa
100 UB aaaa), A
101 UB aaaa), B
110 UB aaaa), C
111 UB (aaaa), aa
OOO {ORA A
001 'ORA,B
010 ORA,C
011 ORA, aa
100 ORA,(BC)
OR A, (aaaa)
101
OOO ORB,A
ORB,B
001
010 ORB,C
ORB,aa
011
100 ORB,(BC)
ORB, (aaaa)
101
OOO ORC.A
001
ORC,B
010 WRCC
OII 'ORC. aa
100 ORC, <BC)
ORC. (aaaa)
101
OOO OR CBC), A
OR(BC), B
001
010 OR CBC), C
OR BC), aa
011
100 OR aaaa), A
OR (aaaa), B
101
110 OR aaaa), C
OR (aaaa), aa
111

continu).

l
2
1

3
1
l
1
2

.1
3
I
l
1
2
I
3
1
1
1
2

3
3
3
4
1
1
I

2
1

3
1

1
1
2
l

3
1
I
1
2
1

3
1
1
I

2
3
3
3
4

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

6.3.3. Continutul instructiilor


765 43 2 1 O

Notatie

1ll 00 OOO INC A


001 DECA
010 SHLA

101 lN A, (aa)
110 8UT (aa), A

Ol OOO INC B
001 DECB
010 SHLB
011 ISHRB

2
1
1

1
1
I

100
101 IN B, <aa)
110 OUT (aa), B

111
10 OOO INC C
001
010
011
100
101

DECC
Sfil.C
SHRC

INC, (aa)
1IO OUT (aa), C

111
11 OOO INC (BC)
001
010
011
100

DECffiC)
SHL (BC)
SHR(BC)
lNC ( aaaa)
101 DEC(aaaa)
110 SHL (aaaa)
111 SHR (aaaa)

Legend:

Notatie

1 OOO 00 OOO DUSH AF


1
001 JP NZ, (aaaa)

011 SHRA
100

111 RET

01 O 00 OOO

2
2

1
1
1

1
2
2

1
I
1
1
3
3

3
3

010 P NS, (aaaa)


011 rp NC, (aaaa)
100 ip NV, (aaaa)
101 rp NP, (aaaa)
110 r:P CBC)
111 ....DSP, aaaa

76 5 4 3 2 1 O

Notaie

1
3
3

3
3
3

1. Instructia de ncrcare (LD).

Notatie:
LDx,y
unde:

xE{A, B, C, (BC), (aaaa)}


yE {A, B, C, (BC), (aaaa), aa}, cu YE {(BC), (aaaa)}=> x~{(BC), (aaaa)}

3
1

01 OOO IPOP AF
001 !CALL NZ, (aaaa) 3
010 ICALLNS, (aaaa)
011 CALLNC,(aaaa)
100 CALL NV, ( aaaa)
101 ICALLNP, (aaaa)
110 ':ALL (BC)
111 CNCBC
10 OOO PUSH BC
001 JP Z, (aaaa)
010 IJP S, (aaaa)
011 P C, (aaaa)
100 V, (aaaa)
101 P P, (aaaa)
110 P (aaaa)
111 JD BC. aaaa

11 OOO lQp BC
001 2ALL'Z, (aaaa}
010 CALL S, (aaaa)
011 CALL C, (aaaa)
100 CALL V, (aaaa)
101 ::::ALL P, (aaaa)
110 ::::ALL (aaaa)
111 )ECBC

3
3
3
3
1
1

1
3
3

Descriere:
ncarc x cu y (a se citi: "ncarc un registru sau o locaie de memorie
cu o valoare specificat prin adresare imediat sau cu o copie a unui octet
aflat ntr-un registru sau ntr-o locaie de memorie".

Codificare:
Aa

3
3
3
3
3

1
3

3
3
3
3

3
1

L: lungimea n octei a instruciilor.


Fig. 6.3.2_1. Instniciile procesorului CSAC 2001 (continuare).

cum rezult din figura 6.3.2_1, instrucia LD poate avea 1-4 octei,

de modurile de adresare pe care le folosete. Semnificaiile


sunt urmtoarele:
a). cazul L= 1 octet
Octetul 1 (unicul) reprezint codul operaiei. n plus, n cazul adresrilor "la
registru" i "indirect", tot el indic i registrul I locaia de memorie vizat I
vizat prin respectivele adresri.
b). cazul L= 2 octei
Octetul 1 reprezint codul operaiei. n plus, n cazul adresrilor "la
registru" i "indirect", tot el indic i registrul /locaia de memorie vizat I
vizat prin respectivele adresri.
Octetul 2 reprezint operandul efectiv -adic: pe aa-, cazul L=2 octei
coninnd o adresare imediat.
c). cazul L= 3 octei
Octetul 1 reprezint codul operaiei. n plus, tot el indic i registrul vizat
prin adresarea "la registru" pe care cazul L=3 octei o conine inevitabil.
Octetul 2 reprezint partea mai puin semnificativ a adresei locaiei de
memorie vizat -adic: pe aaaar-, cazul L=3 octei coninnd o adresare

funcie

octeilor

direct.

partea mai semnificativ a adresei locaiei de memorie


vizat -adic: pe aaaan, cazul L=3 octei coninnd o adresare direct.
Octetul 3

146

reprezint

147

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

4. Instructia de efectuare a operatiei SI (AND).


Notatie:
ANDx,y
unde:
XE {A, B, C, (BC), (aaaa)}
ye{A, B, C, (BC), (aaaa), aa}, cu ye{(BC), (aaaa)}=>

d). cazul L= 4 octei


Octetul 1 reprezint codul operaiei.
Octetul. 2. reprezint partea mai puin semnificativ a adresei locaiei de
memorie vizat -adic: pe aaaa1-, cazul L=4 octei coninnd o adresare
direct.

Octetul 3 reprezint partea mai semnificativ a adresei locaiei de memorie


vizat -adic: pe aaaaw, cazul L=4 octei coninnd o adresare direct.
Octetul 4 reprezint operandul efectiv -adic: pe aa-, cazul L=4 octei
coninnd o adresare imediat.
2. Instrtictia de adunare (ADD).
Notatie:
ADDx,y
unde:
xe {A, B, C, (BC), (aaaa)}
ye{A, B, C, (BC), (aaaa), aa},cu ye{(BC),(aaaa)}=> x~{(BC), (aaaa)}

'

.i

"

!
!

Descriere:
Adun pe x cu y i ofer rezultatul n x i informaii despre rezultat n F.

Codificare:
Tot ce s-a spus n p1~ivina codificrii la instrucia LD este valabil i
pentru instrucia ADD.
3. Instructia de
Notatie:

scdere

(aaaa)}

Descriere:
Efectueaz operaia I
informaii

bit la bit ntre x


despre rezultat n F.

Codificare:
Tot ce s-a _spus n privina
pentru instrucia AND.

codificrii

la

i ofer

instrucia

rezultatul n x

LD este valabil

5. Instructia de efectuare a operatiei SAU (OR).


Notatie:
ORx,y
unde:
xe{A, B, C, (BC), (aaaa)}
ye{A, B, C, (BC), (aaaa), aa}, cu ye{(BC), (aaaa)}=>

x~{(BC),

(aaaa)}

Descriere:
Efectueaz operaia
informaii

(SUB).

SAU bit la bit ntre x


despre rezultat n F.

Codificare:
Tot ce s-a spus n privina
pentru instrucia OR.

SUB X, y
unde:
xe {A, B, C, (BC), (aaaa)}
ye{A, B, C, (BC), (aaaa), aa},cu ye{(BC),(aaaa)}=> x~{(BC), (aaaa)}

codificrii

la

i ofer

instrucia

rezultatul n x

LD este valabil

6. Instructia de efectuare a operatiei SAU EXCLUSIV (XOR).


Notatie:
XORx,y
unde:
xe {A, B, C, (BC), (aaaa)}
ye{A, B, C, (BC), (aaaa), aa}, cu ye{(BC), (aaaa)}=> x~{(BC), (aaaa)}

Descriere:
Scade din x pe y i ofer rezultatul n x i informaii despre rezultat n F.

Codificare:
Tot ce s-a spus n privina codificrii la instrucia LD este valabil i
pentru instrucia SUB.

Descriere:
Efectueaz operaia

rezultatul n x
148

x~{(BC),

SAU EXCLUSIV bh la bit ntre x


despre rezultat n F.

i informaii

149

y i ofer

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Codificare:
Tot ce s-a spus n privina
pentru instrucia XOR.

codificrii

la instrucia LD este valabil i

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

9. Instructia de deplasare Ia dreapta (SHR).


Notatie:
SHRx
und:

7. Instructia de incrementare (INC).

xe{A, B, C, (BC), (aaaa)}

Notatie:

INCx

Descriere:

unde:
xe {A, B, C, (BC), (aaaa), BC}
Descriere.;
Incrementeaz x i ofer informaii despre rezultat n F.

Codificare:
Aa cum rezult din figura 6.3.2_1, instrucia INC poate avea fie 1 octet,
fie 3 octei, n funcie de modurile de adresare pe care le folosete.
Semnificaiile octeilor sunt unntoarele:

a). cazul I= 1 octet


Octetul I (unicul) reprezint codul operaiei. n plus, n cazul adresrilor "la
registru" i "indirect", tot el indic i registrul I locaia de memorie vizat I
vizat prin respectivele adresri.
b). cazul L~ 3 octei
Octetul I reprezint codul operaiei.
Octetul 2 reprezint partea mai puin semnificativ a adresei locaiei de
memorie vizat -adic: pe aaaaL-, cazul L=3 octei coninnd o adresare
direct.

Octetul 3 reprezint partea mai semnificativ a adresei locaiei de memorie


vizat -adic: pe aaaaw, cazul L=3 octei coninnd o adresare direct.
8. Instructia de decrementare (DEC).

Depl~seaz" la dreapta cu o poziie biii lui x i ofer informaii despre


rezultat m F. In procesul de deplasare, n rangul de pondere 2 7 al lui x se
introduce valoarea O, iar ceea ce a fost n rangul de pondere 2 se transfer
n fanionul C.

Codificare:
Tot ce s-a spus n privina codificrii la instrucia INC este valabil i
pentru instrucia SHR.
10. Instructia de deplasare la stnga (SHL).
Notatie:
SHLx

unde:
xe{A, B, C, (BC), (aaaa)}

Descriere:
Deplaseaz" la stnga cu o poziie biii lui x i ofer informaii despre
rezultat n F. In procesul de deplasare, n rangul de pondere 2 al lui x se
introduce valoarea O, iar ceea ce a fost n rangul de pondere 2 7 se transfer

n fani onul C.

Codificare:
Tot ce s-a spus n privina codificrii la instrucia INC este valabil i

Notatie:

DECx

pentru

unde:
XE{A, B, C, (BC), (aaaa), BC}
Descriere:
Decrementeaz x i ofer informaii despre rezultat n F.

Codificare:

instrucia

SHL.

11. lnstructia de intrare (IN).


Notatie:
INx,y
unde:
xe{A, B, C}

Tot ce s-a spus n privina codificrii la instrucia INC este valabil i

y = (aa)

pentru instrucia DEC


150

151

CAP. 6. DESPRE PROCESOR. UNITATEA DE

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Descriere:
Introdu n x o copie a informaiei de un octet aflat ntr-un port de
intrare y.

Codificare:
Aa cum rezult din figura 6.3.2_1, instrucia IN are 2 octei.
Semnificatiile octetilor sunt urmtoarele:
Octetul 1 ~eprezint codul operaiei. n plus, tot el indic i registrul vizat
prin adresarea "la registru" pe care instrucia o conine inevitabil.
Octetul 2 reprezint adresa portului vizat -adic: pe aa-.
12. Instructia de iesire (OUT).
Notatie:

OUTx,y
unde:
x = (aa)
yE{A, B, C}

Descriere:
Scoate ntr-un port de ieire x o copie a octetului aflat ny.
Codificare:
Tot ce s-a spus n privina codificrii la instrucia IN este valabil i
pentru instrucia OUT

13. lnstructia de scriere n stiv (PUSH).


Notatie:
PUSHx
unde:
X E{AF, BC}
Descriere:
Depune x n

stiv.

Codificare:
Aa cum rezult din figura 6.3.2_1, instrucia PUSH are 1 octet.
Semnificatiile sale sunt urmtoarele:
O~tetul l (unicul) reprezint codul operaiei. n plus, tot el indic i
perechea de registre vizat prin adresarea "la registru" pe care instrucia o
conine inevitabil.
1

152

14. Instructia de scriere n


Notatie:

stiv

COMAND

(POP).

POPx
unde:
X E{AF, BC}
Descriere:
ncarc x prin descrcarea stivei.
Codificare:
Tot ce s-a spus n privina
pentru instruc{a POP.

codificrii

la

instrucia

PUSH este valabil

15. Instructia de salt (JP).


Notatie:
dac W *ni!:
JP eW, x
dac W = nil:
JP X
unde:
e E {ni!, N}
W E {Z, S, C, V, P, ni!}
XE { (BC), (aaaa)}
Descriere:
Iei din secvena normal de rulare, eventual condiionat, i continu
programul cu instrucia localizat prin x; altfel spus: f un salt. Dac
W :;e nil, atunci ieirea din secven se face condiionat de valoarea
fanionului indicat de W: dac e = ni!, atunci, pentru salt, respectivul fanion
trebuie s fie la unu; dac e = N, atunci, pentru salt, respectivul fanion
trebuie s fie la zero. Cnd condiia de salt nu este ndeplinit, prograJiml
continu, ca i n cazul instruciilor ordinare, cu instrucia imediat
urmtoare din punct de vedere topologic ..
Codificare:
Aa cum rezult din figura 6.3.2_1, instrucia JP poate avea fie 1 octet,
fie 3 octei, n funcie de modurile de adresare pe care le folosete.
Semnificaiile octeilor sunt urmt,oarele:

153

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

a). cazul L= 1 octet


"
Octetul 1 (unicul) reprezint codul operaiei. In plus, tot el indic i faptul
c adresa instruciei la care se vizeaz s se efectueze saltul se afl n
registrul pereche BC.
b). cazul L= 3 octei
Octetul 1 reprezint codul operaiei, iar n cazul instruciilor de salt
condiionat -n plus, condiia impus.
Octetul 2 reprezint partea mai puin semnificativ a adresei locaiei de
memorie vizat -adic: pe aaaaL-, cazul L=3 octei coninnd o adresare
direct.

Octetul 3 reprezint partea mai semnificativ a adresei locaiei de memorie


vizat -adic: pe aaaaH~, cazul L=3 octei coninnd o adresare direct.

Evident, n cazurile n care saltul trebuie ex.ecutat, acest lucru se


realizeaz prin ncrcarea registrului PC cu coninutul registrului pereche
BC -dac x = (BC)-, repectiv cu octeii 2 i 3 ai instruciei -dac x =

(aaaa).

16. Instructia de apel de subrutin (CALL).


Notatie:
dac W :::. nil:
CALL eW, x
dac W =ni!:
CALLx
unde:
e E{nil, N}
We{Z, S, C, V, P, ni!}
xe { (BC), (aaaa)}
Descriere:
Iei din secvena normal de rulare, eventual condiionat, i continu
programul cu instrucia localizat prin x, dup ce salvezi n stiv adresa
instruciei imediat urmtoare din punct de vedere topologic; altfel spus: f
Un salt reversibil sau apeleaz o subrutin. Dac W ;e nil, atunci apelarea
subrutinei se face condiionat de valoarea fanionului indicat de W: dac
e = nil, atunci, pentru apel; respectivul fanion trebuie s fie la unu; dac
e = N, atunci, pentru apel, respectivul fanion trebuie s~ fie la zero. Cnd
condiia de apel nu este ndeplinit, programul continu, ca i n cazul
instruciilor ordinare, cu instrucia imediat urmtoare din punct de vedere
topologic.
154

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Codificare:
Aa cum rezult din.figura 6.3.2_1, instrucia CALL poate avea fie 1
octet, fie 3 octei, n funcie de modurile de adresare pe care le folosete.
Semnificaiile octeilor sunt urmtoarele:
a). cazul L= I octet
Octetul 1 (unicul) reprezint codul operaiei. n plus, tot el indic i faptul
c adresa instruciei la care se vizeaz s se efectueze apelul -altfel spus:
adresa de nceput a subrutinei- se afl n registrul pereche BC.
b). cazul L= 3 octei
Octetul 1 reprezint codul operaiei, iar n cazul instruciilor de apel
condiionat -n plus, condiia impus.
Octetul 2 reprezint partea mai puin semnificativ a adresei lo.caiei de
memorie vizat -adic: pe aaaaL-, cazul L=3 octeti continnd o adresare
direct.
'
'

Octetul 3 reprezint partea mai semnificativ a adresei locaiei .de memorie


vizat -adic: pe aaaa;r, cazul L=3 octei coninnd o adresare direct.
Evident, n cazurile n care apelul trebuie executat, acest lucru se
realizeaz prin ncrcarea registrului PC cu coninutul registrului pereche
BC -dac x = (BC)-, repectiv cu octeii 2 i 3 ai instruciei -dac x =
(aaaa), dup ce coninutUl su, reprezentnd adresa instruciei imediat
urmtoare din punct de vedere topologic, a fost salvat n stiv.

17. Instructia de revenire din subrutin <RET).


Notatie:
RET
Descriere:
Iei din secvena normal de rulare i continu programul cu instrucia
a crei adres se afl n vrful stivei sau, altfel spus: revino din subrutin
(evident, dac s-a operat corect asupra stivei, atunci n momentul execuiei
instruciei RET, n vrful stivei se gsete adresa instruciei imediat
urmtoare din punct de vedere topologic instruciei CALL care a apelat
subrutina-vezi descrierea instruciei CALL).
Codificare:
Aa cum rezult din figura 6.3.2_1, instrucia RET are 1 octet.
Semnificatiile sale sunt urmtoarele:
Octetul 1 (unicul) reprezint codul operaiei. n plus, tot el indic i faptul
c adresa instruciei la care se vizeaz~ s se produc revenirea -altfel spus:
adresa de revenire- se afl n vrful stivei.

Evident, revenirea din subrutin se face prin descrcarea primilor 2 octei


din vrful stivei n registrul PC.
155

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

. ~a pornirea calculatorului, are loc un proces de iniializare al crui efect


rmmmal este aducerea la zero a registrului PC i instituirea strii initiale a
secveniatorului, astfel n~t el s-i demareze activitatea cu un ciclufe~ch.

6.4. Implementarea instructiilor


n procesoarele von Neumann
6.4.1. Aspecte introductive

6.4.2. Implementarea ciclului fetch

n acest subcapitol, se va ilustra ce se ntmpl i cum se desfoar


lucrurile la nivel elementar, pentru a se face posibil procesarea datelor,
procesare care, aa cum s-a artat nc de la nceputul lucrrii noastre,
nseamn: acceptarea, reinerea, nelegerea i executarea de instrucii. Vor fi
considerate cteva instrucii reprezentative i se vor construi cronogramele
semnalelor de comand interne i externe prin care ele se implementeaz.
Principiile organizrii interne i funcionrii calculatoarelor vor fi, astfel,
clar i definitiv

Av~d n vedere obiectivele ciclului fetch, cronograma sa este cea care


.
face obiectul figurii 6.4.2_1.
Not:

Pentru .nelegerea a ceea ce urmeaz, este obligatorie folosirea


schemez procesorului CSAC 2001 -figura 6.2_1- i schemei memoriei
avut n vedere -figura 2_2-.

nelese.

Aa cum s-a artat cu ocazia prezentrii secveniatorului, rularea unei

CLK

instrucii

are dou etape:


1). Etapa de extragere sau aducere (''fetch") a codului opera1e1 i a
informaiilor privind locul operanzilor isau re~ltatului indisociabile de

SEL_PC

~----+-----lf---~--~MRQ

codul operaiei.
2). Etapa de execuie propriu.zis a instruciei.

-+--4---l--__w

l-!

-=RD=----...

Etapa de aducere cuprinde un ciclu de citire din memorie identic pentru


toate instruciile. n cadrul acestui ciclu, se citete locaia cu adresa prezent

LD_IR

separat de codul

i
:

Not:

Cu linii

ngroate

: ciclu!: (etch:

s-au evideniat .fronturile active.

Fig. 6.4.2_1. Cronograma cicluluifetch.

operaiei.

156

'

INC_PC

n registrul PC i coninutul ei se duce n registrul IR.

Etapa de execuie cuprinde unul sau mai multe cicluri de citire, respectiv
de scriere, viznd memoria sau un port, n mod specific pentru fiecare
instrucie. Aceste cicluri au ca obiectiv, n principal, citirea operanzilor,
respectiv scrierea rezultatului~ dar, uneori, mai nainte de asta, aducerea
informaiilor .privind locul operanzilor isau rezultatului, ce se prezint

157

CAP~

6. DESPRE PROCESOR. UNITATEA DE COMAND

Figura 6.4.2_1 arat c ciclul fetch debuteaz pe frontul ridictor al


semnalului CLK.
Semnalul SEL_PC are rolul de a selecta la ieirea multiplexorului de
adrese AM infonnaia din PC, adic: adresa instruciei care urmeaz a se
executa.. Aceast adres se ncarc n registrul tampon de adrese B3, pe
frontul cobortor al semnalului. LD_B3. Simultan, se lanseaz spre memorie
o cerere de .lucru, prin activarea semnalului MRQ i se anun c operaia
de executat este una de citire, prin activarea semnalului RD. Deodat cu

activarea semnalului MRQ, pe liniile de adrese A O-Al 5 se plaseaz adresa


locaiei. de memorie vizate, adic: coninutul registrului B3. Memoria
rspunde cererii primite, activnd semnalul

ACK n momentul n care


termin de efectuat citirea i anume: dup 1 Y2 perioade ale senmalului de
tact (evident, aceasta este o ipotez de lucru). n acest moment, informaia
citit se afl pe liniile de date DO-D7 i, implicit, la intrrile tutu1:m .
registrelor conectate la acestea. Dup ce sesizeaz trecerea la O a semnalului

ACK, secventiatorul
S activeaz semnalul LD- IR. Pe frontul su
'
cobortor, acest s~mnal va determina preluarea informaiei furnizate de
memorie -adic: a codului operaiei instruciei ce urmeaz a. se executa- n
registrul IR. Imediat n continuare, secveniatorul dezactiveaz semnalul
MRQ, ceea ce face ca la nivelul memoriei s fie dezactivat semnalul

ACK. Pn la ncheierea ciclului de tact curent, are loc decodificarea


codului operaiei, astfel nct din urmtorul ciclu s poat ncepe execuia,
adic: secvena de operaii elementare pe care instrucia n cauz o implic.
Aa cum se poate observa pe cronogram, deodat cu semnalul LD_IR este
activat i semnalul INC_PC, i el activ pe front cobortor. Prin aceasta, se
pregtete n PC adresa la care ~el mai probabil -adic: dac instrncia nu se
dovedet~ a fi, de exemplu, una de salt pe 1 octet, apel de subrutin. pe l
octet sau revenire din subrutin- urmeaz s se fac urmtorul acces.

158

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

De remarcat c, n ipoteza de lucru adoptat, ntre strile SO i Sl a fost


inserat o perioad de tact n care nu se ntmpl nimic nou fa de perioada
precedent. O asemenea perioad poart numele de stare de ateptare sau
"stare wait". Cu ajutorul strilor wait, se realizeaz sincronizarea dintre
procesor i memorie, astfel nct ele s poat conlucra chiar dac au ritmuri
de "micare" diferite. Evident, semnalul ACK este cel n funcie de care se
stabilete numrul strilor de ateptare ce se insereaz ntr-un ciclu de lucru

cu memoria.

6.4.3. Implementarea instructiei "LD SP, aaaa"


Aa cum s-a art~t, activitatea procesorului demareaz cu O n registrul

PC. Asta nseamn c prima instrucie rulat va fi cea de la adresa O. ntruct


una dintre primele operaii care trebuie efectuate la nivel software este
iniializarea pointerului de stiv, s presupunem c ncepnd de la adresa o
se afl instrucia:

LD SP, O
Aceast presupunere implic o alta, i anume: c stiva este implementat

ncepnd de la adresa FFFF 16 spre adrese mai mici (ne reamintim: lucrul cu
stiva se face decrementnd SP naintea efecturii unei scrieri).
Not:

n cele ce urmeaz, valorile hexazecimale se vor marca asociind


succesiunii cifrelor prin care ele se exprim sufixul "H". Se face
convenia ca atunci cnd prima cifr. a unei valori hexazecimale este o
liter (evident, una din literele A-F), n faa acesteia s se adauge cifra O,
pentru a se crea posibilitatea deosebirii succesiunilor de caractere care
reprezint numere de construciile alfanumerice de alt natur.
Instrucia "LD SP, aaaa" este una pe 3 octei. Ea se prezint n memorie,
cnd aaaa=00001 6, aa cum se arat n figura 6.4.3_1.

159

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Adresa Coninuturile locaiilor Semnificaia


[n cu adresele date de col (1) informaiei
din col (2)
rm hexal
hexal
(3)
(2)
(])
octet 1
07
0000
octet 2
00
0001
octet 3
00
0002
octet 1
16
0003
octet 2
00
0004
octet 3
Ol
0005

Instruciile

aflate n locaiile cu adresele


date de col (1)

CLK

SEL_PC

(4)

LD_B3

LD SP, OOOOH

MRQ

ACK

JP (OlOOH)

RD

LD_SPL

Fig. 6.4.3_1. Coninutul zonei de memorie de adrese OOOOH-0005H.

Presupunem c ciclul fetch a fost deja parcurs. Prin urmare, n registrul


IR se afl codul 07H, iar registrul PC a ajuns la coninutul OOOIH.

INC_PC

;.

: ciclu~

exeduie

11o:

!:iJ!1!E. Cu linii ngroate s-au evideniat.fronturile activ~.


Fig. 6.4.3_2. Cronograma ciclului

Prin decodificarea codului 07H, secveniatorul afl c are de executat


instrucia "LD SP, aaaa", despre care "tie" c este una pe 3 octei, i, prin
urmare, declaneaz 2 cicluri de citire din memorie, similare ciclului fetch,
asistate, de asemenea, de registrul PC, pentru aducerea octeilor 2 i 3 ai
instruciei, care reprezint valoarea aaaa. n aceste cicluri, ns, n locul
activrii semnalului LD _IR, n timp ce informaiile citite sunt stabile pe
liniile de date, se activeaz semnalele LD _SPL, respectiv LD _SPH. Se
nelege c efectul cumulativ al aciunii acestor dou semnale va fi
ncrcarea

1:

execuie

al instruciei "LD SP, aaaa".

CLK
SEL_PC

LD_B3

registrului SP cu valoarea OOOOH.

ntmc-t la sfritul fiecrui ciclu de citire regist.rul PC este incrementat


(de reinut: incrementarea registrului PC cu ocazia oricrei citiri fcut sub
asistena sa reprezint o regul absolut!), la finele instruciei, n PC se va
gsi valoarea 0003H, reprezentnd adresa urmtoarei instrucii.
Cronogramele celor 2 cicluri de citire, pe care le vom numi "execuie I",
respectiv ''.execuie 2", sunt redate n figurile 6.4.3_2, respe~tiv 6.4.3_3.

160

RD
LD_SPH

INC_PC

Not:

Cu linii

ngroate

s-au

evideniat fronturile

active.

Fig. 6.4.3 _3. Cronograma ciclului execuie 2


al instruciei "LD SP, aaaa".

161

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

6.4.4. Implementarea instructiei "JP (aaaa)"


L-a ntocmirea figurii 6.4.3_1, s-a presupus ca m zona de memorie
considerat, imediat dup instrucia "LD SP, OOOOH" -adic: ncepnd de
la adresa 0003H- se afl instrucia "JP (OlOOH)". S analizm cum ar rula
"programul" considerat, n continuare.
Dup ciclul execuie 2 al instruciei "LD SP, OOOOH", se va executa un
nou ciclu fetch, de data aceasta cu referire la adresa 0003H, prin care n

registrul IR va fi adus octetul 16H, adic: codul instruciei "JP (aaaa)".


Instrncia "JP (aaaa)" fiind i ea una pe 3 octei, vor urma alte 2 cicluri

de citire, omoloage ciclurilor execuie 1 i execuie 2 de la instrucia


"LD SP, aaaa", n cadrul crora, cu ajutorul semnalelor LD_ IREL,
respectiv LD _IREH, se ncarc registrele IREL i IREH cu ip.formaia
aflat la adresele 0004H, respectiv OOOSH, adic: cu octeii 2 i 3 ai
instruciei. ntruct aceast informaie repreiint adresa la care se face saltul,
adic: adresa locaiei unde se afl instrucia ce trebuie introdus n rulare
dup instrucia JP, n continuare, se va proceda la transferul succesiv al
coninuturilor registrelor IREL i IREH n registrele PCL, respectiv PCH,
n cadrul unui ciclu de lucru desfurat exclusiv la nivelul procesorului.
Numim acest ciclu "execuie 3 ".
Cronogramele ciclurilor execuie 1, execuie 2 i execuie 3 ale instruciei
"JP (aaaa)" sunt redate n figurile 6.4.4_1, 6.4.4_2 i 6.4.4_3.

n concluzie, se puncteaz faptul c valoarea care se va gsi nscris n


registrul PC la sfritul execuiei instruciei "JP (Ol OOH)", este O1OOH.

RD

LD_IREL
INC_PC

lYf!1E. Cu linii ngroate s-au evideniat fronturile active.


Fig. 6.4.4_1. Cronograma ciclului execuie 1
al instruciei "JP (aaaa)".

CLK
SEL_PC

LD B3

hf--'--+---+----l--+-~

MRQ

~I---'-~-l---'--1-1

RD

LD_IREH

INC_PC

... :
Not: Cu linii ngroate s-au evideniatji-onturile active.

Fig. 6.4.4_2. Cronograma ciclului execuie 2


al instruciei "JP (aaaa)".

162

163

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

"ADD A, (BC)". Aceast instrucie este pe 1 octet. Execuia ei presupune,


mai nti, transferul operandului 1, aflat n registrul A, n registrul tampon
Bl, lucru care se face cu ajutorul semnalelor OB_A i LD_Bl, iar apoi
citirea operandului 2 din memorie, de la adresa din BC, aducerea lui la
intrarea a doua a unitii aritmetico-logice, comanda efecturii de ctre
unitatea aritmetico-logic a wiei operaii de adunare n timp ce informaia
citit din memorie este stabil pe liniile de date -adic: n timp ce semnalul

CLK
OB IREL
LD PCL

HI-"-_.:..-~-~---:

OB JREH ;

LDPCH;

~.\,

ri::

~1+-~c~f~lw::._::erFe~cu=t~i~-3-P>i~:

Not: Cu linii ngroate s-au evideniat fronturile active.


Fig. 6.4.4_3. Cronograma ciclului execuie 3
al instructiei "JP (aaaa)".

Figura 6.4.5_1 i 6.4.5_2 ilustreaz la nivel de


prezentat n rndurile de mai sus.

6.4.5. Implementarea instructiei "ADD A, CBC)"

- " zona de memorie O1OOH-0105H


presupunem, n continuare, ca in
avem situaia surprins de figura 6.4.5 _l.
S

Adresa Continuturile locaiilor Semnificaia


informaiei
[n cu afuesele date de col (1)
din col (2)
fn hexal
hexal
(3)
(2)
(])
octet
1
44
0100
octet 1
1E
0101
octet 2
00
0102
octet 3
10
0103
octet 1
E6
0104
octet 2
21
0105

aflate n locaiile cu adresele


date de col (1)
(4)

ADD A, CBC)

OB_A

LD_Bl

n--;--r-----+-~....___,

SEL BC

LD B3

h.._'-----~~

MRQ
CALL ( 1OOOH)

cronogram

CLK

Instruciile

1'~~~~~~__.ii~\

ACK

OUT (21H), A
ADD

Fig. 6.4.5_1. Coninutul zonei de memorie de adrese 0100H-0105H.

Aa cum s-a vzut n subcapitolul precedent, "programul" ~o~t:U a aju~~

la rularea instructiei de la adresa O1OOH n urma execu1e1 instrucie:


"JP OlOOH"; Aa.dar, suntem imediat dup ciclul execuie 3 al acestei

LD_B2
SEL_ALU;
LD_F

Not: Cu linii ngroate s-au evideniat fronturile active.

instrucii.

continuare, se va executa un ciclufetch prin c~e,... de la adre~a 0100~;


registrul IR va fi adus octetul 44H, ad1ca: codul mstruc1e1

n
n

ACK este activ-, preluarea rezultatului adunrii n registrul B2 i, n fmal,


transferul su din B2 n A. ntruct prima parte a operaiei de citire din
memorie nu necesit magistrala de date intern a procesorului, transferul
operandului 1 din A n Bl se poate face n paralel cu ea. Se mai face
precizarea c deodat cu ncrcarea rezultatului n registrul B2, se efectueaz
i ncrcarea informaiilor despre rezultat n registrul F, informaii fumizate
automat de ctre unitatea aritmetico-logic.

164

Fig. 6.4.5_2. Cronograma ciclului execuiei


al instruciei "ADD A, (BC)".
165

ceea ce s-a

CAP. 6. DESPRE.PROCESOR. UNITATEA DE COMAND

:,lf

so
o

:,

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

Cronogramele ciclurilor execuie 1, execuie 2, executie 3 execuie 4 i


execuie 5 ale instruciei "CALL (aaaa)" sunt redate n :figurile 6.4.6 1
- '
6.4.6_2, 6.4.6_3, 6.4.6_4 i 6.4.6_5.

~
OB_B2
LD_A

LJ
~

so

dclul eh:ecuik 2

Not:. Cu

linii ngroate s-au

CLK

~:

evideniat fronturile

active.

Fig. 6.4.5_3. Cronograma ciclului execuie 2


al instruciei "ADD A, (BC)".

SEL_PC

LD_B3

MRQ

ACK.

6.4.6. Implementarea instructiei "CALL (aaaa)"


L-a ntocmirea figurii 6.4.5_1, s-a presupus c n zona de memorie
considerat, imediat dup instrucia "ADD A, (BC)" -adic: ncepnd de
la adresa OlOlH- se afl instrucia "CALL (lOOOH)". Drept urmare, dup
execuia instruciei "ADD A, (BC)", "programul" evolueaz dup cum

RD

LD_IREL
JNC_PC

: ciclul:

Not: Cu linii ngroate s-au evideniat frontwi!e active.

urmeaz.

Se execut, mai nti, uri ciclu fetch cu referire la adresa O1O1 H. Prin
acesta, n registrul IR se aduce octetul lEH, adic: codul instruciei
"CALL (aaaa)".
Instrucia "CALL (aaaa)" fiind una pe 3 octei, vor urma alte 2 cicluri
de citire, primul dintre ele identic cu ciclul execuie 1 al instruciei
"JP (aaaa)", iar al doilea aproape identic cu ciclul execuie 2 al
instruciei "JP (aaaa)"; "aproape identic" i nu "identic" deoarece n ciclul
execuie 2 al instruciei "CALL (aaaa)" se execut, n plus fa de ceea ce
se ntmpl n ciclul execuie 2 al instruciei "JP (aaaa)", decrementarea
registrului SP, n vederea iminentei campanii de scriere n stiv, sub
asistena sa, a coninutului registrului PC, nainte de ncrcrea acestui
registru cu adresa subrutinei la care se face apelul.

Salvarea n stiv a lui PC se face n 2 cicluri: mai nti, se va salva PCH,


iar apoi, dup o nou decrementare a lui SP, realizat la finele primului
ciclu, se va salva PCL. Cele 2 cicluri se vor numi "execuie 3 ", respectiv
"execuie 4 ".
. Execuii;t instruciei "CALL (aaaa)" se ncheie cu un ciclu "execuie 5"
~dentic cu ciclul execuie 3 al instruciei "JP (aaaa)", adic: cu un ciclu
mtem de transfer al informaiei <lln registrele IREL i IREH, n registrele
PCL, respectiv PCH.
166

Fig. 6.4.6_1. Cronograma ciclului execuie J


aUnstruciei "CALL (aaaa)".

CLK

SEL_PC
LD_B3

ACK

n
un
i ih

!---=----;___~1

RD

_L_D_=IRE
__H--r[---+----+---,-+---~

_IN_C~-~PC~+~-+---+~_._--Jr--t__j

_D_E_C_=S_P~------~--~--j---t__j
i cicluli

exec!uie 2

Notfz: Cu linii fngroate s-au evideniat .fronturile active.


Fig. 6.4.6_2. Cronograma ciclului execuie 2
al instruciei "CALL {aaaa)".
167

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

CLK
SEL_SP

LD B3

MRQ
ACK
Not:

WR

OB PCH

Cu linii ngroate s-au evideniat fronturile active.


Fig. 6.4.6_5. Cronograma ciclului execuie 5
al instruciei "CALL (aaaa)".

DEC_SP

i..
Not: Cu linii ngroate s-au evideniat fronturile active.

Fig. 6.4.6_3. Cronograma ciclului execuie 3


al instruciei "CALL (aaaa)".

n concluzie, se puncteaz faptul c valoarea care se va gsi nscris n


registrul PC la saritul execuiei instruciei "CALL (1 OOOH)", este 1OOOH,
n timp ce n vrful stivei se gsete valoarea 0104H, reprezentnd adresa
instruciei aflat topologic imediat dup instrucia CALL, adic: adresa la
care trebuie revenit din subrutin.
6.4.7. Implementarea instructiei "RET"

Sl

Aa cum s-a vzut, efectul execuiei instruciei "CALL (1 OOOH)",


amplasat n memorie la adresele O1OlH - O103H, a fost, pe de o parte,
salvarea n stiv a adesei 0104H, corespunztoare instruciei aflat, din
punct de vedere topologic, imediat dup instrucia CALL (lOOOH), iar pe de
alt parte, ncrcarea registrului PC cu,..valoarea lOOOH, reprezentnd adresa
primei instrucii din subrutina apelat. In cadrul subrutinei, la un moment, se
va ntlni instrucia RET. Prezena acesteia este obligatorie pentru revenirea
n seciunea de program de unde subrutina a fost apelat. S vedem cum se
implementeaz aceast instrucie.

... :

CLK
SEL_SP

LD _B3

MRQ

HL-__;,---"-----:--~
l~~~~-:-irl

ACK
WR

OB PCL

- l l \ ! f - :;
'1

-=---+---I,

'

'

'

'

'

'

l ciclu~

1LJ
'

exeduie 4 \

'

Not": Cu linii ngroate s-au evideniat fronturile active.

Fig. 6.4.6_4. Cronograma ciclului execuie~


al instruciei "CALL (aaaa)".

Instrucia RET este o instrucie. pe 1 octet. Dup parcurgerea cicJului


fetch cu referire la adresa unde ea se gsete, n registrul IR se va avea
valoarea OE7H. Execuia propriu-zis a instruciei RET presupune
efectuarea a dou cicluri de citire din memorie din zona gestionat dup
principiul stivei -asta, bineneles, sub asistena registrului SP- i transferarea
informaiei citite n registrul PC. Conform principiilor lucrului cu stiva,
fiecare citire din stiv presupune o postincrementare a registruJui SP, aa
cum fiecare scriere n stiv presupune o predecrementare a registrului SP.

Cronogramele celor 2 cicluri de execuie ale


n figurile 6.4.7_1, respectiv 6.4.7_2.
168

169

instruciei

RET sunt redate

CAP. 6. DESPRE PROCESOR. UNITATEA DE

COMAND

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

6.4.8. Implementarea instructiei "OUT (aa), A"

CLK

n figura 6.4.5_1, s-a presupus c "programul" considerat are de rulat,

SEL_SP

dup subrutina de la. adresa lOOOH, o instrucie de tip OUT, i anume:

LD_B3

"OUl' (21H), A".


Instrucia "OUT (21H), A" este o instrucie pe 2 octei. Dup efectuarea
ciclului/etch cu referire la adresa 0104H, n registrul IR se va gsi valoarea
OE6H, reprezentnd octetul 1 al unei instane a acestei instrucii, ce vizeaz
portul de ieire de adres 21H. Execuia instruciei "OUT (21H), A"

RD

LD_PCL
INC_SP

l::f!!1E. Cu linii ngroate s-au evideniat fronturile active.


Fig. 6.4. 7_1. Cronograma ciclului execuie 1
al instruciei "RET".

citire sau scriere, a fost activat semnalul MRQ, la scrierea ntr-un port
-lucru valabil, evident, i pentru citirea dintr-un port-, locul acestui semnal
va fi luat de semnalul IORQ.

CLK
SEI.._SP

LD B3

h~:-+---+--+---:---

MRQ
ACK.

presupune, pe de o parte, efectuarea unui ciclu de citire din memorie sub


. asistena lui PC, n scopul aflrii adresei portului vizat, surprins de octetul
2 al instruciei, iar pe de alt parte, efectuarea unui ciclu de scriere n portul
cu adresa respectiv, a coninutului registrului A. Notm cu "execuie I",
respectiv "execuie 2" cele 2 cicluri. Dac pn acum, n toate operaiile de

1~-+--!--~--;--

Cronogramele ciclurilor execuie I i. execuie 2 sunt redate n figura


6.4.8_1, respectiv 6.4.8_2.
~:

CLK
SEL_PC

RD
LD_B3
LD_PCH

MRQ
INC_SP

h
'

ACK

: ciclut
I'

Not: Cu linii ngroate s-au evideniat fronturile active.

Fig. 6.4. 7_2. Cronogram.a ciclului execuie 2


al instruciei "RET".

n concluzie, se puncteaz faptul c valoarea care se va gsi nscris~ n


registrul PC la sfritul execuiei instruciei ''RET" n subrutina apelat
prin instrucia "CALL (100011)" amplasat n memorie la adresele
0101H- 0103H este 0104H.
170

RD

LD_IREL
INC_PC

: ciclul:

Not: Cu. linii ngroate s-au evideniat fronturile active,.

Fig. 6.4.8_1. Cronograma ciclului execuie 1


al instruciei "OUT (aa), A".
171

BIBLIOGRAFIE

CAP. 6. DESPRE PROCESOR. UNITATEA DE COMAND

SO
'

'1r.

Sl

LD B3

h._'_-;.\-.. . . ;. . ---;

IORQ

i , tJ

1'4

SEL_IRE

WR

OB_A

!
~

~u

ciC'~ul ex\ecuiel

.....

Note:
~ Cu linii ngroate s-au evideniat.fronturile active.
2). Din IRE, doar partea inferioar-IREL- este util.
Fig. 6.4.8 _2. Cronograma ciclului execuie 2
al instruciei "OUT (aa), A".

BIBLIOGRAFIE
[ANDE '93]

Anderson, D., Shanl~y, T.,: "Pentium Processor System Architecture",


Richardson TX, Mindshare Press, 1993.

[BAIE '80]

Baier, J.L.: "Computer System Architecture", Computer Society Press:


Rockville, Maryland, 1980.

[BALA '95]

Bala, V., Rubin, N.: "Efficient lnstruction Scheduling Using Finite State
Automata", Proceedings of MICRO 28, IEEE, 1995.

[BECK '93]

Becker, M.,

semnalul ACK. Negenerarea semnalului ACK de ctre unitatea de porturi


face necesar aplicarea automat la intrarea cu acelai nume a procesorului a
semnalului IORQ nsui.

"T11e Power PC 601 Microprocessor", IEEE Micro,

[BRAN '96]

Bhandarkar, D.: "Alpha, lmplemetation and Architecture", Digital


Equipment Co Press, 1996.

[BUTL '91]

Butler, M., .a.: "Single Jnstruction Stream is Greater than Two", Proc.
181h Ann. Int'l Syrnp. on Computer ArcliJtecture, 1991.

[CHAN '97]

Chang, P.Y., .a.: "Target Prediction for Indirect Jumps", The


University ofMichigan, Ann. Arbor, USA, 1997.

[CRAG '92]

Cragon, H.G.: "Branch Strategy Taxonomy and Feiformance Models",


IEEE Computer Society Press, Los Alamitos, California, 1992.

[DIEF '92]

Dieffendorf, K., Allen, M.: "Organization of the Motorola 88110


Superscalar RISC Microprocessor", IEEE Micro, April 1992.

[DIEF '94]

Dieffendorf, K., .a.: "Evolution of the Power PC Architecture", IEEE


Micro, 14(2), 1994.

[DEC '92]

Digital Equipment
Co.:
"DEC Chip
21064
Microprocessor.Hardware Reference Manual", 1992.

[DULO '98]

Dulong, C.: "The IA-64 Architecture at Work", IEEE Computer, July,

Este de remarcat faptul c din cronograma ciclului execuie 2 lipsete


semnalul ACK. Explicaia rezid n aceea c porturile au timpi de rspuns
foarte redui, fiind posibil conlucrarea dintre ele i procesor rar
introducerea de stri de ateptare i, n consecin, fr a se mai folosi

.a.:

October, 1993.

-A

RISC

1998.
[FARQ '94]

Farquhar E. , Bunce, P.: "The lvf!PS Programmer 's HandbooR',


Morgan Kaufmann Publishers, San Francisco, California, 1994.

[FELD '94]

Feldman J.M., Retter, C.T.: "Computer Architecture, A Designer 's


Text Based on a Genaric RISC', McGraw-Hill, New York, 1994.

[HALL '72]

Hallin, T.G., Flinn, M.J.: "Pipelining of Arithmetic Functions", IEEE


Trans. Comput., August, 1972.

[HAYE '88]

172

Hayes, J.P.: "Computer Architecture and Organization", 2"d ed.,


McGraw-Hill, New York, 1988.
173

BIBLIOG~E

[HENN '96]

Hennessy, J.P., Patterson D.A.: "Computer Architecture: A


Quantitative Aproach", Morgan Kaufmann, San Mateo, California, 2nd
ed., 1996.

[HENN '94]

Hennessy, J.P., Patterson D.A.: "Computer Organization and Design:


the Hardware/Software Interface", Morgan Kaufmann, San Mateo,
California, 1994

[HWAN '93] Hwang, K.: "Advanced Computer Architecture. Parallelism, Scalability,


Programability", McGrow-Hill, New York, 1993.
[HWU '92l

Hwu, W.M., Chang, P.P.: "Efficient Jnstruction Sequencing with Inline


Target Insertion'', IEEE Trans. Comput., 41, no. 12, 1992.

[INTE '92]

Intel Corp.: "Intel 486 Microprocessors Family Programmer 's


Reference Manual 1992", Mt. Prospect, 1992.

[INTE '92]

Intel Corp.: "Intel i860 Microprocessors Family Programmer 's


Reference Manual 1992", Mt. Prospect, 1992.

[INTE '93]

Intel Corp.: "Pentium Processor User 's Manual -Voi. 3: Architecture


and Programming ManuaI'', Mt. Prospect, 1993

[INTE '94]

Intel Corp.: "Microprocessors: Volume I Intel 386T"; 80286&8086TM


Microprocessors 1994", Mt. Prospect, 1994

[LUA '94]

Lija, D.J.: "Architectural Alternatives for Exploiting Parallelism", IEEE


Computer Society Press, Los Alamitos, California, 1994.

[MCLE '93]

McLellan, E.: "The Alpha AXP Architecture and 21064 Frocessor",


IEEE Micro, 13(3), 1993.

[MEHD '96]

Mehdi, R.Z.: "Computer Architecture: Single and Parallel Systems",


Pre11tice Hali: Inc. Simon & Schuster, New Jersey, 1996.

[MONT '90] Montoye, R., .a.: "Design ofthe IBM RISC System/6000 Floating Point
Execution Unit", IBM J. Researc~ and Development, 34, No. 1, 1990.
[MOTO '88] Motorola Inc.: "MC 88100 RISC Microprocessor User's Manual",
Phoenix, Arizona, 1988.
[STAL '96]

Stallin!s, W.: "Computer Organization and Architecture", PrenticeHall, 4 ed., 1996.

(STON '93]

Stone, H.: "High Performance Computer Architecture", Addison


Wesley, 1993.

[THOM '94] Thompson, T., Ryan, B.: "Power PC 620 Soars'', Byte, August, 1993.
[VLD '99]

Vlduiu, M.: "Arhitectura calculatoarelor'', note de curs predat la


anul II -t. sist. i a calcul., Facultatea de Automatic i Calculatoare a
Universitii "Politehnica" din Timioara, anul universitar 1999-2000

[WALL '96]

Wallace, S., Bagherzadeh, N.: "Instruction Fetching Mechanisms for


Superscalar Microprocessors", EuroPar Conf., Lyon, 1996.

174