Documente Academic
Documente Profesional
Documente Cultură
a. 100011
b. 10010011
c. 10000100
d. 0100101
e. 00100011
a. 01001010,1
b. 0101010,011
c. 001001010,01
d. 11001010,010
e. 11001010,001
a. 0xbea00000
b. 0xfac00000
c. 0xbac00000
d. 0xbec00000
e. 0xefc00000
) If (register && 5)
2) If (register & 5)
Cele două funcții decizionale vor intra pe ramura then pentru aceeași valoare a variabilei register.
True
False
If (register & 0x0011)
Ramura then a expresiei dicizionale va fi activă pentru:
a. register = 17
b. register = 8
c. register = 2
d. register = 20
e. register = 16
f. register = 10
g. register = 6
h. register = 32
Funcția decizională if ((register & 19) == 19) verifică dacă variabila register are activi biți:
(numerotarea biților începe de la 0)
a. 1, 2, 5
b. 1, 2, 3
c. 0, 1, 6
d. 0, 1, 4
e. 2, 3 ,6
a. -1
b. 4,5
c. -2
d. 10
e. 0
TEST 2
Care dintre următoare magistralele nu este prezentă într-un calculator?
a. Magistrala de semnale
b. Magistrala de comunicații
c. Magistrala procesorului
d. Magistrala de adrese
e. Magistrala de date
a. tridirecțională
b. pluridirecțională
c. multidirecțională
d. unidirecțională
e. bidirecțională
Magistrala de semnale
a. este unidirecțională
b. are linii independente (fiecare activând individual)
c. este multidirecțională
d. este bidirectională
e. are un conținut omogen (semnale construind un tot unitar)
True
False
True
False
True
False
Semnalul (ACK) este folosit pentru a semnala faptul că procesorul lucrează cu memoria
True
False
Portul de ieșire semnalează perifericului faptul că are informații disponibile prin semnalul:
Select one:
a. (OBF)
b. IBF
c. (EXTRD)
d. (EXTWR)
e. (CE)
True
False
Pentru generarea unei întârzieri de 3,5 semnale ale ciclului de tact, pentru memorie, se folosesc:
a. 2 bistabile
b. 4 bistabile
c. 3 bistabile
d. 1 bistabil
e. 5 bistabile
Pentru adresarea completă a unui modul de memorie cu capacitatea de 128 kB avem nevoie de:
a. 12 de linii de date
b. 16 linii de date
c. 27 linii de adrese
d. 32 de linii de adrese
e. 17 linii de adrese
Pentru adresarea completă a unui modul de memorie cu capacitatea de 2GB avem nevoie de:
a. 30 linii de adrese
b. 32 linii de adrese
c. 22 linii de adrese
d. 31 linii de adrese
e. 25 linii de adrese
Dacă avem la dispoziție module cu capacitatea 256 MB, iar procesorul are 30 de linii de adrese, adresa
31A0 5BACH se găsește în modulul
a. 3
b. 5
c. 4
d. 1
e. 2
Dacă avem la dispoziție module cu capacitatea 128MB, iar procesorul are 30 de linii de adrese, adresa
31A0 5BACH se găsește în modulul
a. 2
b. 6
c. 3
d. 7
e. 8
f. 4
g. 5
h. 1
Dacă avem la dispoziție module de memorie cu capacitatea de 512MB iar procesorul are 38 de linii de
adrese, de câte module de memorie este nevoie pentru a acoperii tot spațiul de adresare?
a. 8
b. 512
c. 16
d. 2
e. 1024
f. 256
g. 4
h. 128
(1). In zecimal, valoarea 16h reprezinta
a) 16 b)32 c)22 d)166 e)256
→c)22
2. Numarul maxim de semnale de selectie pentru un decodificator cu 3 linii de intrare
este: a)8 b)9 c)3 d)6 e)0
??? a)?
(3) Bitul este: a)informatie reductibila b) un atom c) informatie elementara d)
reprezentat prin valori binare multiple e) definit prin cele trei stari posibile (0,1,S)
--> C) INFORMATIE ELEMENTARA
(4)Un Megabyte reprezinta :
a)1024 x 1024 biti b) 1024 x 1024 x 8 bytes c)1024 bytes d)1024 x 1024 x 8 biti e)1024
x 1024 x 1024 biti
->D) 1024 x 1024 x 8 biti (1,048576 megabyte)
(5)Care dintre urmatoarele este o unitate a procesorului
a)unitatea aritmetico-cuantica b) unitatea cuantico-logica c) unitatea logica-comanda
d) unitatea fuzzy-logica e) unitatea aritmetico-logica
->E) unitatea aritmetico-logica
(6)Prin semnalul IORQ\ se selecteaza
a) memoria b) porturile de intrare/iesire c) placa de baza d)BIOS-ul e)driver-ele
→ b) porturile de intrare/iesire
7)Avand o magistrala de 24 de linii pentru adrese, capacitatea de memorie maxim
adresabila este de:
a)16 mb b)256 mb c)24 kb d)24 x 1024 bytes; e)toate gresite
→a)16mb
(8)Care dintre urmatoarele moduri de adresare nu este valid?
a) adresarea stiva b) adresarea directa c)adresarea implicita d) adresarea imediata
e)adresarea inedita
--> E)adresarea inedita
9)Generarea ansamblului de semnale care materializeaza operatiile elementare este
realizata de catre:
a)memorie b)porturi c) registre d)secventiator e)generatorul de tact
→D)secventiator
(10)Care dintre urmatoarele este un model valid de unitate de comanda
a)Van Eyck, b) von Neumann c)asincrona d) Van Gogh e) Vin diesel
b)-->von Neumann
(11)Primul ciclu al unei instructiuni este:
a)load b)add c)fetch d)jump e)MRQ\
--> c)fetch
(12)Care dintre urmatoarele programe de sistem nu exista
a) editoarele de procesor b) translatoarele de limbaj c) depanatoarele d)utilitarele
e)driver-ele
-->a)editoarele de procesor
(13)In urma rularii compilatorului se obtine un fisier
a).cpp b).com c).obj d).exe e).txt
-->c)obj
(14)Care dintre urmatoarele nu reprezinta un tip de memorie
a) RAM b)ROM c)EPROM d)GPROM e)EEPROM
-->d)GPROM
(15)Standardul IEEE 754 dubla precizie ocupa
a)32 biti b)16 biti c)256 biti d)128 biti e)64 biti
-->e)64 biti
(16)Avand sablonul de biti FFF00000H care reprezinta un IEEE 754 simpla precizie,
valoarea exponentului este
a)127 b)255 c)512 d)64 e)32
→b)255
(17)Magistrala de adrese este
a)unidirectionaloa b)bidirectionala c) multidirectionala d)omnidirectionala e) nu
exista
→a)unidirectionaloa
18)Daca in decodificatorul de memorie intre doar linia de adresa A31, stiind ca
procesoril are 32 de linii de adrese, in care modul se afla 7000 0000H?
a)5 b)4 c)3 d)2 e)1
(19)Valoarea 31 reprezentata in baza 2 este:
a)10111 b)11101 c)11100 d)11111 e)11110
-->d)11111
(20)Sablonul 101101(baza 2) reprezinta valoarea :
a)67 b)45 c)39 d)47 e)29
-->b)45
AC - Rezolvare subiecte examen anul trecut
Semnale:
Intrari:
Desen:
3. Actiunile care au loc la pornirea calculatorului:
1) La pornire intra automat in executie programul BIOS aflat in EPROM.
2) Acesta identifica configuratia sistemului ,
3) Apoi testeaza componentele principale ale sistemului.
4) Bios incarca de pe HDD sistemul de operare in memorie
5) Si lanseaza in executie sistemul de operare.
6) Sistemul de operare preia controlul asupra tuturor actiunilor urmatoare.
4. Definitii:
1) bit = informaia elementara ireductibila ce surprinde una din doua posibilitati care
sunt contradictorii si complemntare.
2) Calculator = Un sistem format din processor, memorii, intefete, dispositive de
introducere a datelor, dispositive de extragere a datelor, memorii externe.
3) Compilator = un program ce traduce un program scris intr-un limbaj de programare
de nivel inalt in cod-masina necesar procesorului.
4) Interpretor = un program ce traduce o linie de program in cod-masina si o executa
imediat, apoi trece la urmatoarea linie de program s.a.m.d.
1. Să se reprezinte valoarea -53,125 conform standardului IEEE 754, simplă precizie (32 de
biți).
Rezolvare
Normalizăm mantisa.
M reprezintă biți aflați după virgulă. Bitul 1 din fața virgulei fiind bitul ascuns.
M = 10101001
Exponentul reprezintă valoare puterii lui 2 după normalizare, plus bias-ul (în acest caz 127).
E = 5 + 127 = 132
Rezultatul este:
Rezolvare
Rezolvare
Rezolvare
A Q K M Operație
xxxx xxxx x xxxx Start
xxxx xxxx x xxxx IN
0000 + 0110 0 0010 ÎP
0000
0000 0110 0 0010 DD
0000 + 0011 0 0010 ÎP
0010
0010 0011 0 0010 DD
0001 + 0001 1 0010 ÎP
0010
0011 0001 1 0010 DD
0001 + 1000 1 0010 ÎP
0000
0001 1000 1 0010 DD
0000 + 1100 0 0010 ÎP
0000
0000 1100 0 0010
Arhitectura calculatoarelor
Laboratorul 1.
1
octet (byte) n=8
cuvânt (word) n=16
dublu cuvânt (long) n=32
cvadruplu cuvânt (quad, double long) n=64
Tabel 1.1 Denumirea reprezentărilor tipice în funcție de numărul biților
Rezultatul, considerat pe 9 biți este reprezentarea binară a numărului 25710 . În fapt, rezultatul
constă doar din cei mai puțin semnificativi 8 biți, cu valoarea 00000001, iar bitul al nouălea, cu
valoarea 1, este memorat separat sub numele de transport sau carry. Semnificația bitului de
transport depinde de modul de reprezentare folosit. La reprezentarea naturală a numerelor
pozitive semnificația este de depășire a capacității de reprezentare, ceea ce este echivalent cu
un rezultat eronat pe componenta de 8 biți.
La operația de scădere avem în vedere necesitatea de a face un împrumut din rangul anterior,
atunci când este cazul. Dacă împrumutul trebuie făcut dinspre bitul de rang 2𝑛 spre rangul
2𝑛−1 atunci el se manifestă prin poziționarea fanionului carry și semnifică un rezultat negativ,
deci eronat.
2
va asocia un bit din cei 8, 16,... ai reprezentării, iar ceilalți se vor folosi pentru a reprezenta
magnitudinea numărului (valoarea absolută).
Prin convenție, bitul cel mai semnificativ, 𝑎𝑛−1 , se folosește pentru a reprezenta semnul, cu
valoarea 0 pentru „+” și 1 pentru „-”. Rezultă o reprezentare simetrică, în care fiecare număr
pozitiv are o pereche negativă. Numărul maxim reprezentabil, ca valoare absolută, este jumătate
din cel reprezentabil ca număr natural. Pe octet acest număr este 127.
Avantajele reprezentării semn-mărime sunt:
este o reprezentare naturală în raport cu percepția umană;
la nivelul unității aritmetice facilitează realizarea operațiilor de înmulțire și împărțire.
Dezavantaje:
există două coduri pentru numărul 0;
necesită tratarea semnului printr-un proces de decizie complicat.
3
va putea aduna/scădea două numere într-o singură fază, indiferent de semnele și magnitudinile
lor.
În codul complement de 1 numerele pozitive se reprezintă la fel ca în codul semn-mărime.
Numerele negative se reprezintă, prin convenție, inversând bit cu bit reprezentarea numărului
pozitiv.
Astfel, considerând o lungime de un octet,
numărul +19 se reprezintă 0001 0011 C1
numărul -19 se reprezintă 1110 1100 C1
Complementând fată de 1 un număr negativ se obține, așa cum era de așteptat, numărul pozitiv
care are aceeași magnitudine, fapt ce se poate verifica imediat pe exemplul de mai sus.
Față de reprezentarea semn-mărime se păstrează semnificația bitului de semn, dar la numere
negative ceilalți biți nu mai formează o reprezentare pozițională.
Se poate demonstra că adunarea a două numere în complement de 1 se poate face cu următorul
algoritm:
se adună numerele bit cu bit, tratând toți biții nediferențiat, inclusiv cei de semn;
se adună la rezultat bitul carry.
0000 0101 +
1111 1100
1| 0000 0001 +
1
0000 0010
1111 1010 +
0000 0011
0| 1111 1101 +
0
1111 1101
4
Rezultatul, 1111 1101𝐶1 corespunde numărului −210 , ceea ce se poate verifica imediat
deoarece prin complementare rezultă 0000 0010𝐶1 , adică +210 . Operația de scădere se
realizează prin complementarea scăzătorului, urmată de adunare.
Condiția de corectitudine a rezultatului este ca el să se încadreze în intervalul numerelor
reprezentabile în cod C1 (vezi exerciții). De exemplu, încercarea de a aduna 6410
(0100 0000𝐶1 ) cu 6510 (0100 0001𝐶1 ) duce la rezultatul 0 | 1000 0001𝐶1 , care se
interpretează ca număr negativ.
5
Aceste caracteristici permit implementarea hardware unitară și simplă a unui sumator/scăzător
combinaţional, făcând din codul complement de doi codul acceptat de toți producătorii pentru
reprezentarea internă a numerelor întregi.
Pentru schimbarea bazei de reprezentare a unui număr din baza 2 în hexazecimal este necesar
să grupăm biții numărului câte 4 începând cu cel mai puțin semnificativ bit, poziția cu puterea
0.
Exemplu 1: Reprezentarea numărului 2010 în hexazecimal. În acest exemplu vom folosi un byte
pentru reprezentarea numerelor.
Reprezentăm numărului 2010 în baza 2 0001 01002
Grupăm biții câte 4 grupul 1 – 0100
grupul 2 – 0001
Verificăm echivalentul grupurilor în Tabel 01002 – 416
1.2 00012 – 116
6
Reprezentarea hexazecimală se regăsește sub mai multe forme. De obicei, în matematică se
folosește 5𝐴16 . În programare, de exemplu limbajul C, valoarea este precedată de grupul de
simboluri 0x, precum în 0x5A. De asemenea, în limbajul de asamblare mai putem regăsi
valoarea succedată de caracter H, precum în 5AH, care reprezintă valoarea 5A16 .
1.7. Exerciții.
7
Arhitectura calculatoarelor
Laboratorul 2.
Mantisa (în limba engleză mantissa sau significand) este normalizată în baza doi, cu un bit în
partea întreagă și 23, respectiv 52 de biți în partea fracționară. Specific operației de normalizare
în baza 2 este faptul că partea întreagă are întotdeauna valoarea 1. Din acest motiv reprezentarea
1
acestui bit este redundantă. El nu se reprezintă și poartă numele de bit implicit sau bit ascuns.
Așadar, câmpul M conține doar partea fracționară a mantisei. Valoarea adevărată a mantisei
este 1.M. Putem considera că bitul este ascuns, sau acoperit, de bitul cel mai din dreapta al
câmpului C.
Valoarea exponentului și semnul său sunt exprimate prin câmpul C, numit caracteristică sau
exponent translatat (în limba engleză characteristic sau biased exponent). Dacă se alocă n biți
pentru caracteristică atunci C = E + (2𝑛−1 − 1). În simplă precizie n = 8. Rezultă că pentru C =
0, E = -127, pentru C = 127, E = 0, pentru C = 255, E = 128. În dublă precizie pentru C = 0, E
= -1023, pentru C = 1023, E = 0, iar pentru C = 2045, E = 1024.
Această reprezentare este similară reprezentărilor în cod complementar, în raport cu cele de tip
semn-mărime și are avantajul că caracteristicile a două numere pot fi comparate, adunate sau
scăzute printr-o singură operație. În concluzie, numărul corespunzător unei reprezentări în
simplă precizie este:
𝑥 = (−1)𝑠 ∗ 1. 𝑀 ∗ 2𝐶−127
Iar în dublă precizie:
𝑥 = (−1)𝑠 ∗ 1. 𝑀 ∗ 2𝐶−1023
Numerele reprezentabile se află în două intervale simetrice, cuprinzând atât valori supraunitare
cât şi subunitare. Simetria este valabilă pentru orice reprezentare IEEE 754 și rezultă din modul
în care se reprezintă semnul, anume ca bit independent.
Prin depășire superioară înțelegem situația în care, în urma unui calcul, rezultatul are o valoare
a exponentului care depășește valoarea maximă, pozitivă, reprezentabilă pe numărul de biți
alocat prin standard.
Prin depășire inferioară înțelegem situația în care, în urma unui calcul, rezultatul are o valoare
a exponentului care depășește valoarea minimă, negativă, reprezentabilă pe numărul de biți
alocat prin standard.
2
2.3.2. Cazuri speciale
Numărul zero
Convenția de normalizare a mantisei pleacă de la prezumpția că mantisa are cel puțin o cifră
semnificativă. Acest lucru nu este adevărat pentru numărul zero. În standardul IEEE 754
numărul zero se reprezintă în forma 00…0. Aceasta este o derogare de la convenția prezentată
în paragraful anterior. Conform acestei convenții 00…0 ar fi reprezentat, după adăugarea bitului
implicit, numărul 2-127 , iar numărul zero ar fi fost nereprezentabil.
Datorită simetriei, există o reprezentare validă și pentru numărul -0, sub forma binară 100...000.
Operația de comparație între operanzii +0 și -0 este implementată astfel încât să dea un rezultat
de egalitate. Ca rezultat al unei operații, zero apare întotdeauna în forma pozitivă, cea negativă
poate apărea doar fiind introdusă din afară.
3
În tabela următoare se prezintă sumarul codificărilor conform standardului IEEE754.
𝑥 = (−1)𝑠 ∗ 1. 𝑀 ∗ 2𝐶−𝑏
Unde prin b (bias) s-a notat offset-ul caracteristicii fată de exponent, cu valoarea de 127,
respectiv 1023 în simplă, respectiv în dublă precizie.
Se poate remarca faptul că toate codurile posibile care au valoarea 00…0 sau 11…1 în câmpul
C au interpretări speciale. Unele dintre acestea sunt rezervate pentru zero, infinit și NaN, iar
4
celelalte sunt disponibile pentru a reprezenta numere nenormalizate. Valoarea unui număr real
nenormalizat este dată de formula:
𝑥 = (−1)𝑠 ∗ 1. 𝑀 ∗ 21−𝑏
2.5. Exerciții
1. Să se reprezinte conform standardului IEEE 754, simplă precizie, următoarele valori:
5
43.75; -123.375; 259 ; 192.
2. Să se calculeze care este valoare în baza 10 a următoarelor șabloane de biți, reprezentate
conform IEEE 754, simplă precizie:
0100 0001 1111 0000 0000 0000 0000 0000;
1100 0101 1000 0000 0000 0000 0000 0000;
43700000H;
C1E00000H.
3. Să se determine cel mai mic număr pozitiv și cel mai mare număr pozitiv ce pot fi
reprezentate. Să se reprezinte aceste numere în standard IEEE 754 în formă binară și în
formă hexazecimală.
5
[>
ARHITECTURA CALCULATOARELOR
CUPRINS
1. CONSIDERAȚII INTRODUCTIVE
1.1. Noţiuni fundamentale ..............macaonne nene ononeneonenoeeonenenoneoneenonnenaee
1.2. Acţiuni ce au loc la pornirea unui calculator .........mceeeee eee
2. DESPRE MEMORIE
3. DESPRE INTERFEȚE
4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ ..naemuneaeaeesce
4.1. Reprezentarea numerelor în calculator ............ce nenea neeneeeenee
4.1.1. Reprezentarea numerelor în virgulă fixă .......mceea nenea
4.1.1.1. Reprezentarea numerelor pozitive ......cc nana neaaareeeeeaeeee
4.1.1.2. Reprezentarea numerelorde orice semn ........... ceeace
4.1.1.2.1. Reprezentarea prin semn-mărime .........ecaeneeneneneeree
4.1.1.2.2. Reprezentarea prin complement de unu .................
4.1.1.2.3. Reprezentarea prin complement de doi ..............c.-
4.1.2. Reprezentarea numerelor în virgulă flotantă ...........m anaecene
4.1.2.1. Principii „cnneeeeneoneereeneneze ceeneneenenennenenenoataeeaenenneaanenenasaasee
4.1.2.2. Standardul IEEE 754 cca naennenneneene neon eeeneeeenaenacer ananas
4.2. Dispozitive de adunare şi scădere ............cccccee eee nana eraneneneeene
4.2.1. Principii „nana neeneoeoeennenonennaneencea eneneenenaneanananonaeneneananesasae nene
4.2.2. Sumatoare seriale .........ncoaeonneeeeen neo neeeenoneanenoeoane name ononenaneenanaee
4.2.2.1. Principii „mcccecnennonoe ne enoeeannenenenoneananeoaenanene once enneaaenaenennanaaae
4.2.2.2. Proiectarea unui sumator serial
folosind bistabile J-K ........cmc nonnacneeneanee nea eeceneenenoeeenaene
4.2.2.3. Proiectarea unui sumator serial
folosind bistabile D ........ccncneonaeanenene eneeeaneeoenaeeanenaease
4.2.2.4. Avantaje şi dezavantaje ale sumatoarelorseriale..........
4.2.3. Sumatoare paralele ...........meooeanoneenoneenonennanaeeeenoneasaaniseeacananaeee
4.2.3... Principii „nn smooeoneenooeeneeaeneencasenzonoeeezenenooneenonneneenana season
4.2.3.2. Sumatoare “ripple Carry” caen aneneentnee nenea eeaaennneeaaene
4.2.3.3. Sumatoare “carry lookahead” cena eee nn noereonenaaaee
4.2.3.4. Sumatoare “carry Skip”... nana nnnenaeenenenenaneemenananocannneeaeee
4.2.3.5. Sumatoare BCD .........cceeee neoane eeeeenneenne nn enoenenonoenaca oana eee
CUPRINS . ARHITECTURA CALCULATOARELOR
pag.
4.3, Dispozitive de înmulțire ..............maceoneconeceoneeeaeonneeoeeanaeeaneenananaae 63
4.3.1. Principii „nnncaenneeeoeanoeereeooeneracenenenanenaeaeooanonoaneaanenaaaanesaeneneaa aaa 63
4.3.2. Sinteza unui înmulţitor de numere în semn-mărime ............ 67?
4.3.3. Sinteza unui înmulţitor de numere în complementde doi,
după metoda Robertson .......ncnenano nnnnennennennannone nea neaaceneaneaeenaeae 79 1
4.3,4. Sinteza unui înmulţitor combinațional ..........mcnen nene eeeenoeeeeeaee 91 CONSIDERAȚII INTRODUCTIVE
4.4. Dispozitive de împărțire ..............couoaeneoceencenene ce aneeeaenaeeeneneenaaaeeae 93
4.4.1. Principii „mnecnnacieienenaceotaceneaeenanateseezatastssasceneaaetaanodeceesiesea 93 1.1. Noţiuni fundamentale
4.4.2. Sinteza unui înmulțitor de numere în semn-mărime,
operând cu refacerea resturilor ..........ÎN AaPNL MeA a,E5 96 Calculatorul este o maşină destinată procesării de date, înzestrată, în
4.4.3. Sinteza unui înmulţitor de numere în semn-mărime, acest sens, cu capabilități de a accepta,reţine, înțelege şi executa ordine
operând fără refacerea resturilor .......mcnnneoncecaeeeoeeenecaneeeozsace 105 exprimate de utilizator printr-o succesiune de instrucţii conformă scopului
5, DESPRE PROCESOR. UNITATEA DE REGISTRE ........smaoseosesasgatscacetces 119
urmărit şi care constituie ceea ce se cheamă program.
5.1. Introducere ............cnnan enmaenaneeneeenoneeneeeeanenneeneneanaecananeeanaaoeanea 119
5.2. Unitatea de registre a procesorului CSAC 2001.........LA, umaeasette 120
Prin instrucţii se specifică operaţiile solicitate şi, când este cazul, se
5.3. Unitatea de registre a procesorului MOTOROLA 68000 ........ 124
desemnează, într-un anumit mod dintre mai multe posibile, datele de tratat şi
127
destinaţia rezultatelor.
6. DESPRE PROCESOR. UNITATEA DE COMANDĂ ...cuce.naenaeocooeoaoeanacesasa 131
6.1. Preliminarii. Paradigma von Neumann ...........mcanaeeeeeeeeeeeeeee 131
Instrucţiile şi datele vizate de ele sunt construcții literal-cifrice
6.2. Elementele constitutive ai
aleunei unităţi de comandă von Neumann .........cccaeeee neaaeeaeeee 132 sugestive, detip lingvistic, deci cu o anumită sintaxă şi o anumită semantică.
6.3. Despre instrucţii. Studiu de caz
pesetul de instrucții al procesorului CSAC 2001 ................... 140 Pentru ca instrucţiile şi datele să poată fi acceptate, reţinute, înțelese și
6.3.1. Aspecte introductive ......naunaaenaoeaeaeeonaaeeceazaaaeatnaaee 140 tratate, forma lorliteral-cifrică se transpuneîntr-o formă fizică. Sub această
6.3.2. Codificarea instrucţiilor .........nnuenneeeneneoneeeneeaeenee aa eeeaneeeaenene e 141 formă, instrucţiile și datele se prezintă ca seturi de tensiuni electrice,
6.3.3. Conţinutul instrucțiilor .......ncasanseneeneoeeneoneeeanonenneeoeneeeneneaaeeere 147 constituite potrivit unor convenții de codificare.
6.4. Implementarea instrucțiilor ...........mcmoeceocenoneeeaeeneneeeeeeaeazeneneeaea 156
6.4.1]. Aspecte introductive .........mauua a noeaenoneoeaaeeenononoet tenteanaseeaaanaae 156 În unul dintre standardele consacrate, s-a instituit convenţia ca aceste
6.4.2. Implementarea cicluluifetch ......ncnnu annoeeneonneesesananeoeeneeenaeea 157 tensiuni să poată lua fie o valoare în intervalul 0-0.4 V, fie o valoare în
6.4.3. Implementarea instrucției “LD SP, aaaa”...............uemeeoooeeee 160 intervalul 2.4-5 V, în timp ceoricealte valori suntinterzise.
6.4.4. Implementarea instrucției “JP (aaaa)”...........mmecneeeneeeeeeee 162
6.4.5. Implementarea instrucției “ADD A, (BC)”..........cmcecaeoeeaenee 164 O astfel de tensiune, cu două valori posibile, se asociază cu ceea ce se
6.4.6. Implementarea instrucției “CALL (aaaa)”............ccanoeeeeee 166 cheamă bit.
6.4.7. Implementarea instrucției “RET” ...........mneoeneeeeaeenenecerocaee 169
6.4.8. Implementareainstrucției “OUT (aa), A”...nneeeeeeeeeee 171 Un bit este informația elementară, ireductibilă, caracterizată prin aceea
BIBLIOGRAFIA 174 că surprinde una din două posibilităţi care sunt, una în raport cu cealaltă,
contradictorii şi complementare.
CAP. 1. CONSIDERAŢII INTRODUCTIVE CAP. 1. CONSIDERAȚII INTRODUCTIVE
Corespunzător celor două posibilităţi, bitul ia valorile logice 0 sau i, Toate acestea au ca suport teoretic primar algebra booleeană şi
după caz. aritmetica sistemului de numerație binar.
O informație oarecare, ce surprinde una din m posibilități se poate Un calculator constă, din punct de vedere arhitectural, în:
reprezenta printr-un set de biţi de cardinalcel puţin egalcu logm. procesor;
memorie;
Un set de n biţi se cheamă cod pe n biţi. interfeţe;
dispozitive de introducere a datelor,
Codurile au, în contexte diferite, semnificații diferite. De exemplu,
dispozitive de extragere a datelor;
0100 0001 reprezintă, uneori, litera “A”, alteori, numărul 65 în baza 10, iar
memorii externe.
alteori, cu totul altceva.
Procesorul este partea unui calculator care are rolul de a implementa
Un set de 8 biţi se numește byte sauoctet.
sarcinile de comandă pe care le implică acceptarea, reținerea, înțelegerea şi
executarea ordinelor —adică: execuţia de programe- şi de a efectua
De obicei, codurile au lungimi care sunt puteri ale lui 2. Sunt uzuale
prelucrările propriu-zise. Blocurile funcționale ale unui procesorsunt:
codurile pe 8, 16, 32, 64, 128, 256 biţi.
e unitatea aritmetico-logică
Multiplii bitului sunt: e unitatea de comandă
1 Kbit = 21 biţi e unitatea deregistre
1 Mbit = 2%biţi
1 Gbit = 2%biţi Unitatea aritmetico-logică este partea unui procesor care, aşa cum
etc. numele său o sugerează, are în sarcină efectuarea operațiilor aritmetice şi
logice. Alături de unitatea aritmetico-logică, în structura procesoarelor
Multiplii byte-ului sunt: există, uneori, un bloc funcțional care implementează operaţii matematice
1 KByte = 210 Bytes mai complexe şi de mai bună rezoluție şi precizie, numit coprocesor
1 MByte = 2% Bytes matematic.
1 GByte = 2Bytes
etc. Unitatea de comandă este partea unui procesor care are în sarcină
generarea comenzilorinterne şi externe necesare funcționării calculatorului
Reprezentarea fizică a bitului printr-o tensiune ce poate lua doar două în ansamblul său.
valori se bazează pe fenomenele de comutație -saturare / blocare- specifice
tranzistoarelor de toate tipurile. Exploatând aceste fenomene, s-au conceput Unitatea de registre este partea unui procesor care reprezintă o memorie
şi realizat circuite în comutație -numite şi circuite digitale sau circuite de manevră, realizată pe acelaşi cip şi în aceeaşi tehnologie cu unitatea
numerice sau circuite logice-, ajunse actualmente la o diversitate extrem aritmetico-logică şi cu unitatea de comandă şi, în consecinţă, la fel de
de largă. rapidă ca şi acestea,la care accesele se fac mult mai simplu şi eficient decât
la memoria propriu-zisă.
Cu ajutorul circuitelor digitale, se pot memora informaţii şi se pot
efectua operații logice şi matematice elementare sau complexe, precum şi Memoria este partea unui calculator care are rolul de a păstra
operaţii de diverse alte naturi, reductibile la primele. informaţiile operative la un moment dat, adică: codurile programelor
aflate în rulare şi datele asupra cărora ele acționează, respectiv pe care le
produc.
%
CAP. 1. CONSIDERAȚII INTRODUCTIVE CAP. 1. CONSIDERAȚII INTRODUCTIVE
utilitarele;
-omemnannm
10 1]
CAP. 1. CONSIDERAŢII INTRODUCTIVE CAP. 1. CONSIDERAȚII INTRODUCTIVE
Translatoarele de limbaj sunt programe cu ajutorul cărora se Toate aceste programe -marcate cu ” în enumerarea de mai sus- sunt
efectuează traducerea programelor utilizatorilor din limbajul de programare integrate în aşa-numitele medii de dezvoltare a aplicaţiilor, cum sunt:
în care au fost scrise, în limbajul maşinii numită calculator savu, altfel spus: TURBO PASCAL, BORLAND PASCAL, TURBO. C/C+, BORLAND
în cod-maşină. Există trei tipuri de translatoare de limbaj, denumite: C/C++, VISUAL STUDIO, etc., fără, însă, ca, în cadrul acestora, să-şi
e compilatoare; piardă identitatea.
e asambloare;
Utilitarele sunt programe cu ajutorul cărora se efectuează operații cu un
e interpretoare;
grad ridicat de uzualitate, cum sunt: creerea, copierea, mutarea fişierelor,
Compilatoarele şi asambloarele sunt programe care la un apel al lor etc.
"Fig, 1.2_1. Conţinutulfişierului MSDOS.SYS Uzual, în urma parcurgerii tuturor acestor paşi, se va ajunge ca ecranul
să arate aşa cum se ilustrează în figura 1.22, ca semn că sistemul de
o se afişează mesajul “Starting Windows 95” şi se aşteaptă timp de operare este plenar în lucru, aşteptând ca utilizatorul să-şi facă cunoscute
câteva secunde (uzual: două-trei) eventuala apăsare a unei taste opțiunile.
funcționale, menită să dicteze modul de derulare, în continuare, a
procesului de inițializare;
14 15
CAP. 1. CONSIDERAȚII INTRODUCTIVE eII ARHITECTURA CALCULATOARELOR
2
DESPRE MEMORIE
16 17
CAP2. DESPRE MEMORIE CAP2. DESPRE MEMORIE
Cele 8 borne de intrare-ieşire, numite borne de date, se notează, de D0-D7. Scrierea se încheie la un anumit interval de timp după momentul în
obicei, cu D0-D7. Bora de specificare a operaţiei ce se execută la un care care ultimul dintre semnalelele40-4X, MRO şi R/W ajungesă fie stabil.
moment dat, numită bornă de citire-scriere, se notează cu R/W (abreviere
de la “read / write”). Borna de validare / invalidare, numită şi bornă de Atât în cazul citirii, cât şi în cazul scrierii, în final, se activează semnalul
selecţie se notează cu MRQ (abreviere de la “memory request”), iar bornele
de adresare, numite şi borne de adrese -cu 40-AX, unde X= log> N -1. Borna ACK , ca semn, la citire, că datele citite au ajuns să fie disponibile la
bornele D0-D7, iar la scriere, că datele de scris sunt deja scrise. Semnalul
de confirmare se notează cu ACK (abreviere de la “acknowledge”). Cu
aceste notații —precizăm: regăsibile mai mult sau mai puţin ca atare în ACK este destinat procesorului (mai exact: unității de comandă a
documentaţii-, vom putea reprezenta o memorie aşa cum se arată în figura procesorului), care se informează cu ajutorul lui cât trebuie să țină activ
21. semnalul MRO. La trecerea semnalului ACK la “0”, procesorul înțelege
că memoria şi-a încheiat ciclul ce i-a fost cerut şi o dezleagă temporar
de sarcini, trecând semnalul carea ţinut-o activă —este vorba despre MRO -
D0-D7 "la
1
18 19
CAP). DESPRE MEMORIE CAP2. DESPRE MEMORIE
valoarea lor inactivă, adică: Ja”1”. Când semnalul MRQ ia valoarea “0”,
„nmeonmmmnmmman mmm amana
B [|
B2
"Fig. 2_2. Un exemplu de memorie.
Observatii:
ACK | i L_
Capsula 0 conţine locaţiile de memorie cu adresele hexazecimale 0000-3FFF.
Capsula ] conţine locaţiile de memorie cu adresele hexazecimale 4000-7FFF. Fig. 2_3. Cronograma semnalelor MRO şi ACK .
Capsula 2 conţine locaţiile de memorie cu adresele hexazecimale 8000-BEFF.
Capsula 3 conține locaţiile de memorie cu adresele hexazecimale C000-FFFF Se precizează că memoria oricărui calculator cuprinde o parte exploatată
atât în regiin de citire cât şi în regim de scriere, numită RAM —de la Random
Access Memory-, şi o parte exploatată doar în regim de citire, numită ROM
Circuistica de decodificare a adreselor va fi validă —adică: vaputea -de la Read Only Memory-. Este important de reținut că memoria RAM
efectua decodificarea combinației de valori logice prezente pe liniile 475 şi păstrează informaţiile memorate în ea intacte doar câtă vreme este
alimentată corespunzător, în timp ce memoria ROM îşi păstrează conţinutul
A14- doar în timp ce semnalul MRQ este “0”, valoarea “1” a semnalului
intact şi în lipsa tensiunii de alimentare. Se spune că memoria RAM este
volatilă şi că memoria ROM este nevolatilă.
20 21
CAP2. DESPRE MEMORIE CAP2. DESPRE MEMORIE
n
În cazul calculatoarelor universale, partea de memorie RAM este de aducerea tuturor celulelor sale la “1”. O memorie EPROM concretă poate fi
departe majoritară. La aceste calculatoare, memoria de tipul ROM conţine ştearsă şi reprogramată de un număr de ori foarte ridicat, reprezentând o
doar programul de boot-are, adică: un program introdus implicit în rulare la dată de catalog a circuitului respectiv. EPROM vine de la Erasable
pornire şi care are ca misiune identificarea configurației în care seaflă Programmable Read Only Memory.
calculatorul, efectuarea de teste de bună funcționare a principalelor entități
Memoria EEPROM se caracterizează prin aceea că este înscrisă de
componente, încărcarea, de pe hard-disk, a componentelorsistemului de
utilizator, printr-un proces specific, după ce a fost pregătită pentru aceasta
operare şi lansarea în execuţie a sistemului de operare. De asemenea,tot
prin ştergere electrică; atât ştergerea cât şi înscrierea memoriilor EEPROM
în memoria ROM se obişnuieşte să se păstreze şi driver-ele sau o parte a
se pot face chiar în contextul circuistic în care ele sunt exploatate. O
driver-elor de intrare ieşire. Celelalte programe —de sistem sau de aplicație-
memorie EEPROM concretă poate fi ştearsă şi reprogramată de un număr de
se păstrează pe suporturile externe de memorare. Deaici, ele se încarcă doar
ori foarte ridicat, reprezentând o dată de catalog a circuitului respectiv.
temporar în memoria RAM, în vederea rulării. Evident, când spunem că un
EEPROM vine de la Electrical Erasable Programmable Read Only
program se aflăîncărcat pentru rulare, înțelegem că partea lui de cod se află
Memory.
în memorie şi că oanumită cantitate din memorie este la dispoziţia sa pentru
implementarea diverselorvariabileşi pentru anumite manevre.
În cazul calculatoarelor dedicate unoraplicaţii -se au, aici, în vedere, în
primul rând, aşa-numitele “embedded systems ”-, memoria este preponderent
de tip ROM. În ea se găseşte programul aferent aplicaţiei, programe conexe
acestuia şi, eventual, un minim de programe de sistem, iar memoria RAM
serveşte doar implementării variabilelorşi operaţiilor de manevră.
Există mai multetipuri de memorie ROM:
memoria ROM propriu-zisă
memoria PROM
memoria EPROM
memoria EEPROM
3
DESPRE INTERFEȚE
O interfață constă în unul sau mai multe porturi şi, eventual, o circuistică
conexă, ce îndeplineşte funcţii de comandă locală.
24 25
CAP. 3. DESPRE INTERFEȚE CAP3. DESPRE INTERFEȚE
stabile, are loc activarea de către periferic a semnalului EXTWR, prin [Eu ELA pei E pat
10 VU D B3 14 15 16 17 WR
trecerea sa la nivel “0”. Valoarea activă a semnalului EXTWR determină
preluarea în port a datei prezente la bornele sale 10-17. Buffer-ul portului
_ICE PORTDE IEŞIRE TIPIC E
ajungând astfel plin, semnalul fanion IBF trece la “1”. Prin testarea acestui 00_O1_02 03 04 05 06 07 EXTRD
semnal, procesorul află că o dată este pregătită pentru el în port şi execută o TITI
operaţie de citire cu referire la acesta, preluând data prin bornele 00-07, Fig. 3_3. Borneleclasice ale unui port de ieşire.
26 27
CAP.3. DESPRE INTERFEȚE CAP3. DESPRE INTERFEȚE
Extragerea datelor din calculator cu ajutorul unui port de ieşire tipic este Ca şi locaţiile de memorie, porturile au asociate adrese. Adresele de
ilustrată prin cronograma din figura 3_4. porturi pot fi parte a unui spațiu unic de adrese la nivelul calculatorului,
alături de adresele de locaţii de memorie sau pot constitui un spațiu de
Cronograma din figura 3_4 vrea să spună următoarele lucruri: adrese distinct, complementar spaţiului de adrese de locaţii de memorie. Din
Când procesorul vrea să scoată o dată spre periferic, execută o operație considerente didactice, vom merge pe varianta din urmă, adică: vom
presupune că se dispune de un spaţiu de adrese de locaţii de memorie, având
de scriere cu referire la port, ceea ce provoacă activarea semnalului WR, ca “martor” semnalul MRO, şi de un spațiu de adrese de porturi, având ca
prin trecerea sa la “0”. Valoarea activă a semnalului YPR determină “martor” un semnal numit IORQ.: O adresă de o anumită valoare se referă,
preluarea în port a datei prezente la bornele sale 10-77. Buffer-ul portului la un moment, la o locaţie de memorie sau la un port, după cum în acel
ajungândastfelplin, semnalul fanion OBF trece la“0”. Prin testareaacestui moment este activ semnalul MRO sau, dimpotrivă, semnalul JORQ. Dacă
semnal, perifericul află că o dată este pregătită pentru elîn port şi execută o nici unul dintre aceste semnale nu este activ, atunci codul prezent la bornele
operaţie de citire, preluând data prin bomele 00-07, sub comanda de adrese ale calculatorului —evident, la orice borne, un cod există,
inevitabil, întotdeauna, fie că este valid, fie că este invalid- nu reprezintă o
semnalului EXTRD . La încheierea operaţiei de citire, portul îşi va trece din adresă şi, în consecință, el nu trebuie să conducă nici la selecţia unei locații
nou semnalul OBF la “1”, făcând, astfel, cunoscut, atât pentru procesor, cât de memorie şi nici la selecţia unui port. Acest lucru se asigură decodificând
şi pentru periferic, faptul că buffer-ul de ieşire este gol. Pentru a se evita adresele condiționat de semnalele MRQ , respectiv IORQ.
pierderea de date prin suprascriere, procesorul trebuie să nu scrie în port
decât în timp ce semnalul OBF este la “1”. Pe de altă parte, perifericul Porturile se introduc în schemele calculatoarelor conectând între ele,
bornă la bornă, bornele de ieşire date ale porturilor de intrare, bornele de
trebuie să nu citească portul decât în timp ce semnalul OBF este la ”0”, intrare date ale porturilor de ieşire şi bornele de intrare-ieșire date ale
pentru că, altfel, va accesa fie o dată fără semnificaţie, stabilită în port cu memoriei. Conectarea nu trebuie înţeleasă obligatoriu directă, ci posibil prin
ocazia punerii sub tensiune,fie o dată care fost dejacitită. intermediul unorcircuite tampon.
10-17 W DATE STABILEX__
IRC TITI
era eauezaeBi | pe
EXTRD /
Fig. 3_4. Cronograma semnalelorce intervin la extragereadatelor
din calculatorcu ajutorul unui port deieşire tipic.
4
DESPRE PROCESOR. UNITATEA
ARITMETICO-LOGICA
şi are valoarea:
—m
Fie:
30 31
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
E" =,
K 10-32 ... C_(m-1)C-m (4.1.1.1-10)
K' = 2(e, 202 3 cp 203 ++ a)+ co
K (4.1.1.1-5) Kc 2hep-22 pact20 em 2 (4.1.1.1-11)
K] = 2epa +23 + ema 24 pur ca)ra (4.1.1.1-6) Prin înmulţiri succesive cu2 ale numărului inițial şi ale părţilor
K, fracţionare ale produselor, rezultă:
Ka
Ka > 20a)+ Ca (4.1.1.1-8)
K
——
Kmi
Ka = 2(0)+ ca (4.1.1.1-9) Ka i 2 = Cm) + C_m ” Pl
———
(4. ] . ] „1-14)
Km
Aşadar, cifrele binare ale unui număr pozitiv întreg se pot obține prin (4.1.1.1-15)
împărțiri succesive la 2 ale numărului în cauză, respectiv ale câturilor, până Km"2 = Com
se ajungela cât nul, ele -cifrele- fiind resturi în aceste împărțiri. Aşadar, cifrele binare ale unui număr pozitiv fracționar se pot obține
prin înmulţiri succesive cu 2 ale numărului în cauză, respectiv ale părților
Exemplu: fracţionare ale produselor, ele —ifrele- fiind părţile întregi ale produselor;
K'=42:
înmulţirile se efectuează până la determinarea unui număr satisfăcător de
0 cifre.
42:2=21 rest 0 = 42=2:21+0
21:2=10'rest 1 => 21=2:10+1 Exemple:
10:2= 5 restO => 10=2:5+0 1). K” = 0.8125 2). K” = 0.8124
5:2 =2 rest] = 5=2-2+1 | CJ C.]
32 32
m
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ CAP. 4; DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
n
Cifrele binare ale unui număr pozitiv format din parte întreagă şi parte Lungimea de coda reprezentării semn-mărime este dată de relaţia:
fracţionară se determină aplicând regulile de mai sus pentru cele două părți.
Exemplu: lc__sm = log» E
2M (4.1.1.2.1-6)
42.8125=42+0.8125=1010103+0.1101»=101010.11015 unde:
r: rezoluția cu care se iau în considerare numerele de reprezentat în
intervalul (CM; M).
4.1.1.2. Reprezentarea numerelor de orice semn
Observatie: i sl
4.1.1.2.1. Reprezentarea prin semn-mărime Atât M, câtşi r, sunt, în practică , puteri ale lui2.
34 35
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Evident, valoarea unui număr x al cărui cod în semn-mărime este Aşadar, numerele pozitive se reprezintă în complement de unu exact
sm(%) vafi dată de expresiile: ca şi prin semn-mărime. Numerele negative au bitul de semn ca în cazul
reprezentării semn-mărime, iar ceilalți biţi —valori complementare în
M - sm(%), daca sm() e (041)
raport cu acest caz.
x =4-M -(sm() — 1), daca sm(x) e (1;2,) (4.1.1.2.1-7)
0, daca sm(x) e (0,17 - Lungimea de cod a reprezentării complement de unu este dată de
relația:
Avantajele reprezentării numerelor în semn mărime rezidă în faptul
că ea permite efectuarea fără nici o complicaţie a operaţiilor de înmulțire Ic_cl = log, ZM,
E (4.1.1.2.2-5)
şiîmpărțire. unde:
r: rezoluția cu care se iau în considerare numerele de reprezentat în
Dezavantajele reprezentării numerelor în semn mărime sunt: intervalul (-M: M).
e necesită tratarea specifică a biţilor de semn în cazul operaţiilor de
adunare şi scădere (la înmulţire şi împărțire nici nu se poatealtfel, în Reprezentărea numerelor în complement de unu se poate surprinde
nici una dintre reprezentări); matematic cu ajutorul următoarei expresii:
* dedică două coduri pentru numărul 0: 0.0...0, respectiv 1.0...0, ceea
ce face ca valorile reprezentabile cu ajutorul ei să fie cuprinse în își e (041), daca x > 0
intervalul (-M; M) şi nu [-M,; M), cum se întâmplă în cazul altor
reprezentări
cl(x) =42—2 -B e [1;2-2), dacax <0 (4.1.1.2.2-6)
0 sau 2 — 2”, daca x = 0
4.1.1.2.2. Reprezentarea prin complement de unu
36 37
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Exemple:
Numărul |-1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 9.25 0.50 0.75 1.00 1-25 1.50 1.75
pă de
Fie:
reprezentat
Codul [1000 1001 1010 1011 1100 1101 1110 0000 0001 0010 0011 0100 0101 0110 0ili (-M; M)=>(-8; 8), r=l
complementi' Mr
-de: unu Rezultă:
Valoarea 11.000 1125 1250 1.375 17500 1.625 1.750 0.000 0.125 0.250 0.375 0.500 0.625 0.75010.875
1.875
codului lecl =4şin=3
ei)
de unu
Fie:
Fig. 4.1.1.2.2_1. Reprezentarea în complement de unua numerelordin intervalul (-2; 2),
„considerate cu rezoluţia 0.25. 1). a= -], b=-5
1 2 3 4 5 6 7 Se vaavea:
Numărul -7 [-61-5|4|-3|-2|-1|0
de
|. = -110= -0012= 1001, = 11104
reprezentat
Codu |1000[1001/101011011[1100|1101[111010000[000110010[0011:[0100|0101 [010 0111 | b= -510=-1012= 1101= 10102
- 1
complement "1110+
de unu CĂ
Valoarea |1.000/1.125|1.250|1.375|1.500[1.625|1.750|0.000[0.125|0.250|0.375|0.500[0.625/0.750
0.875 1010
codului 1.875] . - 1—1000+
complemen Ș I.
de unu ; 1
1001
Fig. 4.1.1.2.2_2. Reprezentareaîn complement de unu a numerelor din intervalul(-8; 8), cu:
considerate cu rezoluția |.
1001 = -619
Evident, valoarea unui număr x al cărui cod în complement de unu
este c1(%) va fi dată de expresiile: 2).a= 1,b=5
38 39
P
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ ti
Avantajele reprezentării numerelorîn complement de unu sunt: Aşadar, numerele pozitive se reprezintă în complement de doi exact
e permite efectuarea adunării prin introducereaîn calcule a biţilor de ca şi prin semn-mărime, respectiv ca şi în complement de unu.
semn în mod nedistinctiv față de restul biților Numerele negative au bitul de semn şi biții situați în dreapta celui mai
din dreapta bit nenul, precum şi pe acesta însuşi, la fel ca. în cazul
e permite înlocuirea scăderii prin adunarea la descăzut a
complementului de unu al scăzătorului reprezentării semn-mărime, iar ceilalți biţi —valori 'complementare în
raport cu acest caz.
Dezavantajele reprezentării numerelorîn complement de unu sunt: Lungimea de cod a reprezentării complement de doi este dată de
e dedică două coduri pentru numărul 0: 0.0...0, respectiv 1.1...1, ceea relația:
ce face ca valorile reprezentabile cu ajutorul ei să fie cuprinse în
intervalul (M: M) şi nu [-M; M), cum se întâmplă în cazul altor l0_2= loga (4.1.1.2.3-5)
reprezentări
face dificilă execuţia operaţiilor de înmulțire şi împărţire unde:
necesită parcurgerea a doi paşi pentru efectuarea operaţiei de - r: rezoluția cu care se iau în considerare numerele de reprezentat. în
adunare, ceea ce conduce la dublarea timpului de adunare, în raport intervalul [-M, M).
cu alte'reprezentări
Reprezentarea numerelor în complement de doi se poate surprinde
matematic cu ajutorul următoarei expresii:
4.1.1.2.3, Reprezentarea prin complement de doi x
—
el e(0;1),
), daca
daca x > 0
Fie A un număr oarecare şi a reprezentarea sa în complement de doi.
Atunci, dacă: c2(x) = bi e [1;2), daca x <9 (4.1.1.2.3-6)
0, daca x = 0
Ă = Eco
n
pe ec.m (4.1.1.2.3-1)
rezultă: unde:
_ 0, daca 420
a | daca 40 (4.1.1.2.3-3) Tabelele din figurile 4.1.1.2.3_1 şi 4.1.1.2.32 exemplifică
reprezentarea numerelorîn complementde doi, în ipotezele:
e [-M; M)=/[-2; 2)
Cui» daca A 20 sau daca Vj >i=>c, =0 e r=0.25
e aj,=_ DN _ „Yi =1..m+na
Ca daca A<0si 3j >ic,, 40, undec,., = NOT(c,-;) respectiv:
(4.1.1.2.3-4) e /-M, M)=/-8; 8)
e 7=l
40 4]
P
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ BE CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Numărul |-2.00/-1.751-1.50-1.25-1.00]-0.751-0.50|-0.254 0 |0.2510.50|0.75|1.00[1.25|1.50| 1.75 Fie ac [-M; M) şi be [-M; M) două numere cu proprietatea că:
de
reprezentat a+b e [-M; M) (4.1.1.2.3-10)
Codul [10001100111010[101111100|1101[1110[111110000|0001|0010|00:1|0100[0101|0410J0111
complementi
de doi
şi A şi B imaginile lorprin c2.
Valoarea [1.000/1.125(1.25011.3'7541.5001.625/1.75041.87 popor .500|0.62510.'750%0.875i
“ codului . Atunci:
pomplenienţ
de doi [ata daca A+ B e [0;2)
Fig. 4.1.1.2.3_1. Reprezentarea în complement de doi a numerelor din intervalul [-2; 2), 4+ B-—2, daca 4+ Be [2,;4) (4.1.1.2.3-11)
considerate cu rezoluţia 0.25. are proprietatea că:
c2
Numărul -8 |-7|-6|-5|-4|-31-2|-1|10|1 2 3 4 516 |7 Cc (4.1.1.2.3-12)
de j
reprezentat unde:
Codul |1000[100111010|1011|1100[1101|1110[11111000010001|0010|0011|01001010110110|0111
complement! : - c=a+b (4.1.1.2.3-13)
de doi ,
Valoarea |1.000|1.12541.25011.3751.500[1.625|1.750/1.87500.00040.12510.25000.3'7540.50040.62510.75000.875| Într-adevăr:
codului
complement! i). dacă a 20 şi b 20 atunci, evident, a+b>0 şirezultă:
de doi
Fig. 4.1.1.2.3_2. Reprezentarea în complement de doi a numerelor din intervalul [-8; 8), c2(a) + c2(B) = a
„Pb. a+b
= c2(a+b) (4.1.1.2.3-14)
M M
considerate cu rezoluția 1.
ii). dacă a >0 şi b < 0, cua >|2|, atunci, evident, a+b>0 şi rezultă:
Evident, valoarea unui număr x al cărui cod în complement de doi
este c2(x) vafi dată de expresiile:
aa) e) 32-42 =2+ a-l a-l = c2(a+b)
= p (4.1.1.2.3-15)
M -c2(x), daca c2(x) e (0;1)
x = -M -(2 —c2(x)), daca c2(x) e [1;2) (4.1.1.2.3-8)
iii). dacă a 20 şi b < 0, cua < l2| , atunci, evident, a+b< 0 şi rezultă:
0, dacac2(x) = 0
cata) cab)=-2+2- hi 2- Pia o cata) (4.1.1.2.3-16)
Se demonstrează că în reprezentarea complement de doi, suma a
două numere se poate obține într-un singur pas, adunând între ei
complemenții de doi ai celor două numere,într-un procesîn care biții de iv). dacă a < 0 şi b 20, cu b>lal , atunci, evident, a+b>0 şi rezultă:
semn sunt trataţi exactca oricare alții.
| el p termenului "2"
vi). dacă a < 0 şi b < 0, atunci, evident, a+b< 0 şi rezultă: Avantajele reprezentării numerelor în complement de doi sunt:
e permite efectuarea adunării prin introducerea în calcule a biţilor de
c2(a)+ c2(b) = 2 — Ela. pp,„His =c2(a+b) (4.1.1.2.3-19)
semn în mod nedistinctiv faţă de restul biților
e permite înlocuirea scăderii prin adunarea la descăzut a
_ complementului de doial scăzătorului
Observaţie: e numărul 0 are dedicat un singur cod: 0.0...0, ceea ce face ca valorile
Ignorarea termenilor de valoare “2” înseamnă, în practică,
reprezentabile cu ajutorulei să fie cuprinse în intervalul /-M;: M) şi
neglijarea transportului generat în procesul de adunare din rangul nu doar (-M; M), cum se întâmplă în cazul altor reprezentări
2% către rangul 2..
Dezavantajele reprezentării numerelor în complement de doi sunt:
Exemple: e face execuţia operațiilor de înmulțire şi împărțire maidificilă decâtîn
Fie: cazul reprezentării semn-mărime, dar, oricum, indiscutabil
LMM=[8; 8), r=l acceptabilă
Rezultă:
lec2 =4şin=3
4.1.2. Reprezentarea numerelor în virgulă fiotanță
Fie:
1). a= -1, b=-5 4.1.2.]. Principii
Se va avea:
a = -110= -0012= 1001= 111 1e2 Reprezentarea numerelor în virgulă fixă nu dă satisfacţie î n privința
b = -510= -1012= 1101= 101 leg rezoluţiei şi preciziei, atunci când numerele variază în intervale largi. În
astfel de cazuri, trebuie folosită aşa-numita reprezentare în virgulă
1111+ flotantă. În această reprezentare, un număr R se reprezintă printr-o
1011 mantisă, M, şi un exponent, E, stabilite astfel încât:
R=MBE,
cu: ,
10102 = -519 B fiind baza sistemului de reprezentare. În domeniul calculatoarelor,
baza se alege 2, sau, în orice caz, o putere lui 2. Se precizează că ea nu
2). a=1,b=5 trebuie să apară explicit la nivel de circuite, ci poate fi -şi aşa şi este-
Se va avea: subînţeleasă.
a = io = 001, = 0001, i 000 Le2
Mantisa este, în variantele clasice de reprezentare în virgulă flotantă,
"b = 510= 1012= 0101= 01013
un număr fracționar. Se obişnuieşte ca ea să se aducă cu modului mai
0001+ mare sau egal cu B”, prin ajustarea corespunzătoare a exponentului. O
9101 mantisă cu modulul mai mare sau egal cu B! se numeşte mantisă
00110 normalizată.
cu:
01 102 = 610 Mantisele clasice normalizate, reprezentate prin semn mărime, 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:
Exponentul Valoarea Valoarea exponentului efectiv
translatat exponentului
0.1001... Bias=128
mantise semn-marime normalizate - translatat Bias=127
1.1010... III 255 +128 +127
11112110 254 +127 +126
0.0101... , , , 129 +2 +
1.0111 mantise semn-marime nenormalizate 10000001
10000000 128 + 0
Oli 127 0 i!
01111110 126 -l -2
Mantisele clasice normalizate, reprezentate prin complement de doi,
au: 00000001 1 -126 -127
00000000 ____| 0 -127 -128
a) dacă sunt pozitive: primul bit de după cel al semnului cu
valoarea 1
Fig, 4.1.2.1_1. Două exemple de translatare a exponenților.
b) dacă sunt negative: primul bit de după cel al semnului cu
valoarea O
Dacă atât mantisa, cât şi exponentul se reprezintă pe 8 biţi, cu biasul
Exemple: de +128, vom avea:
0.0000000 00000000 —>0
0.1001... ţi ] 'de2 alizat mantisa exponentul transiata
1.0110... maâniise compiemeni de hormalizale
mantisa exponentul
normalizată.
0.0000001 00000000 —> 2.2% >> 0
Spre
mantisa exponentul
Exponentul este un număr întreg. Asupra lui. sunt instituite două
exigenţe. Pe de o parte, ar fi de dorit ca numărul zero să se reprezinte Aşadar, diferența între numărul care are toți biții nuli, în afară de
numai prin biţi nuli, pentru ca el să fie uşor detectabil, ca şi în bitul cel mai semnificativ al mantisei, şi numărul zero este 2”, când se
reprezentareaîn virgulă fixă. Pe de altă parte, se impune ca numerele lucrează cu exponentul netranslatat şi 2"'*, când se lucrează cu
nenule, dar foarte mici, să aibă acelaşi exponent ca numărul zero, pentru exponentul translatat.
ca erorile introduse prin rotunjiri şi trunchieri să nu fie mari. Ambele
cerințe pot fi satisfăcute dacă se adoptă ca exponentul să apară translatat
cu un deplasament (Bias) pozitiv, stabilit astfel încât exprimarea sa prin 4.1.2,2. Standardul IEEE 754
biţi exclusiv nuli să corespundă celei mai mici valori posibile (aceasta
Standardul IEEE 754 referitor la reprezentarea numerelorîn virgulă
este o valoare negativă, evident). Un. exponent translatat astfel poartă
flotantă a fost lansat de IEEE (Institute of Electronical and Electrical
numele de "caracteristică".
Engineers) în anul 1985. Acest standard are variante pe 16, 32, 64 şi 80
biţi. În continuare, va fi prezentată pe larg varianta pe 32 biţi. De
Spre exemplificare, se prezintă, în tabeluldin figura 4.1.2.1_1, cazul
asemenea, se vor indica şi elementele de bazăale variantei pe 64 biţi.
exponenților reprezentaţi pe 8 biţi, cu bias de 127, respectiv de 128.
46 47
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Baza de numerație a standardului IEEE 754 este 2. Ea nu apare e cel mai mic număr pozitiv reprezentabil este:
explicit la nivelul circuisticii, aceasta ținând cont de ea în mod implicit. Du a 31
Exponentuleste pe 8 biţi, translatat cu un deplasamentegal cu 127. [0[o00 ... 0 1[00 SI 0 0]
Mantisa este un întreg în intervalul [|; 2), reprezentat în semn- şi are valoarea:
mărime, cu partea întreagă nematerializată, ci subînțeleasă. Aşadar, în cramnpr 2 (2192 -(0.00..00)-2217 = 42-26 e +1.18-10%%
timp ce mantisavizibilă este +M, mantisa efectivă este m = +].M.
Reprezentarea IEEE 754 are câmpurile: e cel mai mare număr negativ reprezentabil este:
01 89 31 01 8 9 31
5] = iv — [i[o 0... 0 1[00 0_0]
unde: şi are valoarea:
e Seeste semnul mantisei cmMnnr = (-1)! -(1.00...00)-2117 = —2-1%6 z —1.18-10%
o E este exponentultranslatat, cu bias=127
o M este excesul de lal mantisei(partea vizibilă a mantisei) e numărul zero este:
Valoarea unui număr real x reprezentatîn standardul IEEE 754 este dată [oo g Ş oo G G7
de expresia: = —
x = 00-(0.M)-257, şi are valoarea:
unde:
e Mostar rezoluria 22 zero = (1
(Po.
-(1.00...00)-2
„D027 2
+22 390127 =2 40.59.10
40.59.10
* E e[0;254] | Standardul IEEE 754 rezervă unele combinaţii de biţi pentru semnalarea
Aşadar, se va avea: NI , unor situații deosebite. Astfel:
e cel mai mare număr pozitiv reprezentabil este: e combinaţia debiţi corespunzătoare lui E=255 şi M=0 arată că nu se
0 89 31 are de a face cu un număr,în cazuri cum sunt: O AJo cantitate negativa
[OI 1... TOȚI _. 11] 0
: ] i e combinaţia de biţi corespunzătoare lui E=255 şi M=0 arată
ȘI are valoarea: "supradepăşirea” ("overflow"), atunci când se ajunge la numere
48
49
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ ARHITECTURA CALCULATOARELOR
50 119
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE L
CAP. 5, DESPRE PR
o CESOR. UNITATEA DE ERE REGI
GISTRE
Rezistrele A, B, şi C
Rezistrul F
Registrul F' are rolul de a memora în bistabilele sale informații privind III
i oa.g
ş
s
rezultatele obținute în cadrul operaţiilor efectuate de unitatea aritmetico- ia N, Gal |
logică. La unele procescare —inclusiv la CSAC 2001- se au în vedere doar | oa
rezultatele operaţiilor care implică o prelucrare efectivă (adunare, scădere, | eee a force
120 | In
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
ŞI, SAU etc.), iar la altele inclusiv operaţiile de transfer simplu dintr-un loc în care se face scriere în stivă, respectiv pot viza registrele A şi F sau B şi C
în altul. Bistabilele registrului F poartă numele de fanioane. Ele sunt notate sau PCH 'şi PCL, în cazul în care se face citire din stivă. Tandemurile
cuZ, $, CVşiP. A-F, B-C, PCH-PCL vor fi referite prin abrevierile AF, respectiv BC,
respectiv PC.
Fanionul Z arată dacă rezultatul ultimei operații este nul sau nenul. Când
Exploatarea unei zone de memorie după principiul stivei presupune, mai
rezultatul este nul, atunci Z=/, când rezultatul este nenul, atunci Z=0.
întâi, încărcarea registrului SP cu adresa cea mai de sus a respectivei zone,
iar apoi respectarea cu stricteţe a următoarei proceduri:
Fanionul S arată dacă rezultatul ultimei operaţii este negativ sau
nenegativ (adică: pozitiv sau zero). Când rezultatul este negativ, atunci Z=/, scriere:
1. se decrementează SP cu o unitate
când rezultatul este nenegativ, atunci Z=0.
2. se scrie la adresa din SP octetul superior din perechea de doi octeți ce
trebuie depusă în stivă
Fanionul C arată dacă în timpul ultimei operaţii a apărut sau nu un
3. se decrementează SP cu o unitate
transport din rangul cel mai semnificativ, 2”, spre rangul inexistent, 2%. Când
4. se scrie la adresa din SP octetul inferior din perechea de doi octeți ce
a apărut transport, atunci C=1, când nu a apăruttransport, atunci C=0.
trebuie depusă în stivă
B. la citire:
Fanionul V arată dacă rezultatul ultimei operaţii este sau nu eronat ca
1. se citeşte de la adresa din SP octetul inferior din perechea de doi
urmare a fenomenului de depășire. Când rezultatul este eronat, atunci V=,
octeți ce trebuie descărcată din stivă
când rezultatul este neeronat, atunci V=0,
2. se incrementează SP cu o unitate
Fanionul P arată dacă rezultatul ultimei operații are un număr par sau un 3. se citeşte de la adresa din SP octetul superior din perechea de doi
octeți ce trebuie descărcată din stivă
număr impar de biţi cu valoarea “1”. Când rezultatul are un număr par de
4. se decrementează SP cu o unitate
biți cu valoarea “1”, atunci P=/, când rezultatul are un număr impar de biţi
cu valoarea “1”, atunci P=0. Se face precizarea că şi convenţia inversă de Registrele 8/7, B2 şi B3
poziționarea fanioanelor P poate fi întâlnită.
Registrele B7/, 82 şi B3 sunt registre auxiliare, de uz exclusiv intern. B/
Toate aceste fanioane se poziţionează implicit în procesul de execuţie a joacărol de tampon (“buffer ”) între magistrala pe care se vehiculează datele
instrucțiilor. Există, însă, şi instrucții speciale, a căror obiect este exclusiv şi unitatea aritmetico-logică. B2 joacă rol de tampon între unitatea
poziţionarea fanioanelor. 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
Repistrul SP în afară adresele. B2 şi B3 au ieşirile cu trei stări logice. Activarea
respectivelor ieşiri se facecu ajutorul semnalelor OB_B2, respectiv OB_B3,
Registrul SP (SP vine de la “stack pointer”) este constituit prin care înseamnă: “on the bus B2”, respectiv “on the bus B3”.
concatenarea registrelor SPH şi SPL (H şi L vin, respectiv, de la “high” şi
Registrele 0G şi 7JG
“low”). Prin urmare, SP este un registru pe 16 biţi. Rolul registrului SP este
acela de a face posibilă gestionarea unei părți din memoria RAM a Registrele 0G şi 1G sunt, de fapt, pseudoregistre, de uz exclusiv intern.
calculatorului după principiul stivei: Jast input-first output (prescurtat: Rolul lor este acela de a pune pe magistrala pe care se vehiculează datele,
LIFO); respectiva parte va fi numită simplu “stivă”. În procesorul CSAC atunci când sunt selectate cu semnalele OB_0G, respectiv 0OB_1G, un octet
2001, fiecare sesiune de lucru la nivelul stivei manevrează doi octeți. de valoare zero, respectiv un octet de valoare unu, necesari în
Aceştia pot proveni din registrele A şi F sau B şi C sau PCH şi PCL, în cazul implementarea unora dintre instrucții.
122 123
PT
CAF. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE CAP.5. DESPRE PROCESOR. UNITATEA DE REGISTRE
5.3. Unitaţea de registre a procesorului MOTOROLA 68000 Aşa cum se sugerează în figura 5.3_1, registrele D0-D7 —registre pe 32
biţi- pot fi folosite la nivel de octet, la nivel de dublu-octet, numit cuvânt şi
Unitatea de registre a procesorului MOTOROLA 68000 —aşa cum o vede la nivel de cuadruplu octet, numit cuvânt lung. Lucrul la nivel de octet
programatorul în limbaj maşină, fără registrele auxiliare de uz intern- este vizează în mod implicit biții 0-7, în timp ce biții 8-31 rămân neafectaţi, iar
reprezentată înfigura 5.3_1. lucrul la nivel de cuvântvizează în mod implicit biții 0-15, în timp ce biții
16-31 rămân neafectaţi. În limbaj de asamblare, se specifică dacă la un
cuvânt moment se doreşte lucrul pe octet, cuvânt sau cuvânt lung cu ajutorul unui
sufix adăugat mnemonicelor instrucțiilor. Sufixul este “B” în cazul lucrului
pe octet, ““W”în cazul lucrului pe cuvânt şi “L” în cazul lucrului pe cuvânt
7: 15:
lung, În toate cazurile, mnemonicul este separat de sufix printr-un
SINAI IRI
a Sa | Pa Pa Di a Pa Po Ps Ps Pa Pe Ps Pa
1 15 caracter “.”,
] 15
1 15 Exemple:
1 15 Să presupunem că registrul D3 conţine valoarea hexazecimală 11223344.
1 5 1. Dacă se doreşte anularea octetului format din biții 0-7, se execută
1 15 instrucția CLR.B D3, obținându-se în D3 valoarea hexazecimală
I 5.
11223300.
J 15
1 13 2. Dacă se doreşte anularea dublului octet format din biții 0-15, se
ti
<a
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
are două moduri de funcționare: modul utilizator, respectiv modul Fanionul 7. indică dacă regimul de funcţionare este de trasare —în acest
supervizor. Modul utilizator este destinat rulării programelor de aplicaţie, iar caz 7=1- sau normal —în acest caz T=0-. Regimul de lucru trasare se
modul supervizor —rulării programelor de sistem. Fiecare categorie de caracterizează prin aceea că după rulareafiecărei instrucţii, se intră într-o
programe dispune, în sistemele cu MOTOROLA 68000, depropriastivă. Şi rutină specifică, ce afişează diverse informaţii, utile în procesul de depanare
asta, se asigură prin mecanisme hardware. De ce? Pentru asigurareacreşterii a programelor (de exemplu: conținuturile registrelor, etc.). Existența
performanţelor sistemelor în privința siguranței în funcționare. Când regimului de lucru trasare permite implementarea aşa-numitelor debuggere.
procesorul este în modul utilizator, unițatea de comandă a procesorului
MOTOROLA 68000 foloseşte pe post de pointer de stivă registrul 47. Când Fanionul $. indică dacă modul de lucru este supervizor —în acest caz S=1-
procesorul este în modul utilizator, unitatea de comandă a procesorului sau utilizator —în acest caz S=0-.
MOTOROLA 68000 foloseşte pe post de pointer de stivă registrul 47”.
Pentru programator, este transparentă comutarea de la 47 la 47" şi Fanioanele ]2, JI] şi 10 au semnificație doar ca ansamblu, prin valoarea
viceversa; referirile programatorului vor fi, întotdeauna, doar la 7, dar, pe care o codifică la un momentdat. Ele materializează așa-numita “mască
prin hardware, se va asigura ca ele să vizeze exemplarul din 47 care de întreruperi”. "Termenul “întrerupere” desemnează în domeniul
trebuie, după caz. calculatoarelor abilitatea procesoarelor de a se abate de la programulîn curs
de execuţie în vederea rulării unorrutine speciale —numite “rutine de tratare
:.. Registrul SR este denumit “registrude stare”(prescurtarea SR vine de la a întreruperilor” sau “handlere de întrerupere”, ca răspuns la semnale
“status register”). El cuprinde 10 fanioane. 5 dintre ele —implementate la externe sau interne, numite “cereri de întrerupere”. Întrucât este posibil ca
nivelul octetului inferior al registrului SR sunt accesibile programelor de în anumite momente să fie formulate mai multe cereri de întrerupere, se
aplicaţie, iar 5 sunt văzute exclusiv de programele de sistem. Din acest impune ca sistemele de calcul să dispună de mecanisme de tratare
motiv, octetul inferior al lui SR poartă numele de “octet utilizator”, iar prioritizată a acestor cereri. În cazul procesorului MOTOROLA 68000,
octetul superior —pe acela de “octet supervizor”. Figura 5.32 pune în cererile de întrerupere sunt ierarhizate pe7 nivele. Nivelul cel mai prioritar
evidenţă toate aceste fanioane. este nivelul7, iar cel mai puţin prioritar —nivelul 1. Fanioanele 12-10au rolul
de a determina luarea în considerare la un moment doar.a cererilor de
octet supervizor N octet utilizator întrerupere de pe nivelele cu număr de ordine mai mare decât numărul
15 8|7 0| codificat de ele (12 are ponderea 22, iar J0 —ponderea 20) şi ignorarea
7] [5] | jazz | | lxiylzivic celorlalte. |
trasare . ” transport
supervizor depăşire 5.4. Unitatea de registre a procesorului INZEL 8086
zero
mască de ——————— ——————— negativ Unitatea de registre a procesorului INTEL 8086 —aşa cum o vede
întrerupere L———————————— extensie
programatorul în limbaj maşină, fără registrele auxiliarede uz intern- este
reprezentată în figura 5.4_].
Fig. 5.3_2. Fanioaneleregistrului SR.
Registrul AX este din aceeaşi clasă cu registrele A, B, C ale procesorului
Fanioanele- C, V, Z şi N sunt echivalentele fanioanelor C, V, Z şi S ale CSAC 2001, respectiv D0-D7 ale procesorului MOTOROLA 68000.
procesorului CSAC 2001. Fanionul X are aceeaşi semnificaţie ca şi fanionul Principala menire a registrului AX este aceea de a juca, în procesul de
C, dar este afectat numai de către operaţiile aritmetice, în timp ce acesta din execuţie a instrucţiilor, rolul de reşedinţă a unuia dintre operanzi —eventual a
urmă se poziţionează şi cu alte ocazii. operandului unic-, respectiv de a prelua rezultate. De asemenea, registrul AX
se foloseşte ca registru de manevră.
126 127
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
Chiar dacă, aşa cum se poate remarca din descrierea de mai sus, fiecare
dintre registrele AX, BX, CĂ, DX îşi are particularitățile sale —unitatea de
registre a procesorului INTEL 8086 este, evident, una heterogenă-, există un
termen comun pentru referirea lor, şi anume: termenulde “registre de date”.
122 por
ARHITECTURA CALCULATOARELOR
CAP. $. DESPRE PROCESOR. UNITATEA DE REGISTRE
Fanionul 7F are aceeaşi semnificaţie ca şi fanionul 7 al -procesorului După cum s-a văzut, nucleul unui calculatoreste constituit din procesor,
MOTOROLA 68000. memorie şi interfeţe, la nivelul procesorului distingându-se: unitatea
aritmetico-logică, unitatea de registre şi unitatea de comandă.
Fanionul ZF este numit “fanion de intreruper?”şi are rolul de valida /
invalida întreruperile, adică: de a activa / dezactiva sensibilitatea Unitatea aritmetico-logică şi algoritmii pe baza cărora ea funcționează
procesorului la cererile de întrerupere. s-au studiat în detaliu în capitolul 4.
Fanionul DF are rolul de a indica direcția în care evoluează adresele Unitatea de registre, cu locul şi rolul elementelor sale în ansamblul
în cazul operațiilor cu şiruri: DF=1 arătă că adresele se incrementează, iar procesorului, a făcut obiectul capitolului 5.
DF= 0 —că adresele se decrementează.
Despre unitatea de comandă s-a spus în prima parte a lucrării că ea
Se menţioneazăcă procesorul IN7EL 8086 mai dispune de 4 registre reprezintă partea unui procesor care are în sarcină generarea comenzilor
-CS, DS, S$, ES-, numite “registre segment”. Referitor la aceste registre, ne interne şi externe necesare funcționării calculatorului în ansamblul său.
limităm, în context, la a spune doar că ele aparţin unui bloc specialal unităţii
de comandă 'a procesorului INTEL 8086, numit “unitate de gestiune a Există mai multetipuri de unităţi de comandă; în cadrul prezentei lucrări,
memorie!”. DOO
se vor avea în vedere doar unităţile de comandă numite, ca şi procesoarele în
care sunt integrate, von Neumann. Acestea se caracterizează prin aceea că
respectă următoarea paradigmă, numită “paradigma von Neumann”:
N
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
4). Instrucţiile se reprezintă prin coduri care suntfie de lungime fixă, fie de
Figura 6.2_1 surprinde o unitate de comandă von Neumann, ca parte a
lungime variabilă.
unui procesor ipotetic, definit de pe poziţii didactice —procesorul CSAC
5). Un cod deinstrucţie cuprinde câmpuri prin care se specifică:
e operaţia ceface obiectul instrucției 2001, referit şi în capitolul precedent.
e operandul / operanzii sau informaţii despre locul în care se află
Se remarcă prezenţa în figura 6.2_1 a tuturor celor 6 blocuri din
operandul / operanzii
e informații despre locul unde trebuie depus rezultatul componența unității de comandă standard von Neumann. Să ne oprim puțin,
6). O instrucţie este urmată în execuţie, în mod implicit, de instrucţia situată în continuare, asupra fiecăruia dintreele.
în memorie imediat după ea. În cazul instrucțiilor de salt, de apel de
subrutină şi de revenire din subrutină, instrucţia următoare se determină Registrul PC
de către fiecare dintre ele în mod specific, prin algoritmul înglobat special
în cadrul lor, în acest sens.
Registrul PC -numărătorul programului sau pointerul de instrucție- are
7). Programele aflate în rulare sunt “încărcate”, adică: au instrucţiile
amplasate în memorie, în acord cu logica programului, în locaţii de rolul de a indica adresa următoarei instrucţii sau, când instrucţiile se citesc
adrese consecutiv crescătoare sau rezultate din logica internă a fragmentar, adresa următorului fragment al instrucției în curs de rulare.
instrucţiilor de salt, de apel de subrutină şi de revenire din subrutină.
Având în vedere paradigma von Neumann, registrul PC funcționează, de
regulă, în regim de numărare —mai exact: incrementare- şi doar în cazul
6.2. Elementele constitutive ale unităţilor de comandă instrucţiilor de salt, apel de subrutină şi revenire din subrutină, în regim de
von Neumann încărcare paralelă; aceasta, în ideea de a prelua ceea ce se generează în
cadrul acestor instrucţii, pe post de adresăa instrucției următoare.
O unitate de comandă von Neumann constă, în esenţă, din următoarele
blocuri:
e un registru de adresare a instrucțiilor, numit pointer de instrucție, IP Registrul JR
(Instruction Pointer) sau numărător al programului, PC (Program
Counter); Registrul IR —registrul instrucției- joacă rolul de sediu al codului
e un registru sediu al cuvântului instrucție ce instanțiază instrucția aflată în operaţiei care face obiectul instrucției. Este obişnuit ca registrul IR să aibă
rulare, numit registrul instrucției, IR (Instruction Register); extensii pentru păstrarea unor informaţii conexe codului operaţiei, cum arfi
e un decodificator al cuvântului instrucţie ce instanţiază instrucția aflată în
informaţiile privind locul în care se află operanzii sau unde trebuie depus
rulare, numit, din raţiuni istorice, decodificator al codului operației,
rezultatul, respectiv informaţii pe baza cărora se determină —eventual în
OCD (Operation Code Decoder);
e un bloc de secvenţiere a comenzilor, numit secvențiator, S (Sequencer); urma unor calcule- locul operanzilor şi-sau al rezultatului.
e un bloc de pilotare temporală, numit generator de tact, CG (Clock
Generator); În arhitectura considerată, extensiile registrului IR sunt IREL,respectiv
e un bloc deiniţializare, numit generator de reset, RG (Reset Generator). IREH. Acestea sunt registre pe câte 8 biţi, concatenabile între ele astfel
încât să poată prelua şi păstra şi informaţii pe 16 biţi.
„nn
132
hu A
id
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ E_ CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
....
135
Ț
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Secvenţiatorul
Nr. Modul de adresare Definirea modului de adresare
crt,
Secvenţiatorul S$ are rolul de a genera ansamblul semnalelor ce
materializează operaţiile elementare la care sunt reduse instrucțiile, în mod
Adresarea implicită Se numeşte adresare implicită referirea unui
specific pentru fiecare instrucție, conform indicațiilor primite de la:
registru al procesorului ce conține un operand
sau este vizat să conțină rezultatul prin înşişi
decodificatorul codului operaţiei.
biții ce reprezintă codul operaţiei.
Adresarea la registru Se numeşte adresare la registru referirea unui
Rularea unei instrucţii are două etape:
1). Etapa de extragere sau aducere (“ferch”) a codului operației şi a
registru al procesorului ce conține un operand
informaţiilor privind locul operanzilor şi-sau rezultatului indisociabile de
sau este vizat să conțină rezultatul, prin biţi
codul operaţiei.
dedicați ai cuvântuluiinstrucție, alăturaţi celor
2). Etapa de execuție propriu-zisă a instrucției.
prin care se specifică codul operaţiei.
Adresarea imediată Se numeşte adresare imediată specificarea prin
Etapa de aducere cuprinde un ciclu de citire din memorie identic pentru
cuvântul instrucție a înşişi operanzilor, prin biţi
toate instrucţiile. În cadrul acestui ciclu, se citeşte locaţia cu adresa prezentă
dedicați, alăturaţi celor prin care se specifică
codul operaţiei.
în registrul PC şi conţinutul ei se duceîn registrul IR.
Adresarea indirectă Se numeşte adresare indirectă referirea unei
Etapa de execuţie cuprinde unul sau mai multe cicluri de citire, respectiv
locaţii de memorie sau a unui port ce conţine
de scriere, vizând memoria sau un port, în mod specific pentru fiecare
un operand sau este vizată / vizat să conțină
instrucţie. Aceste cicluri au ca obiectiv, în principal, citirea operanzilor,
rezultatul, printr-o adresă conținută de unul
respectiv scrierea rezultatului, dar, uneori, mai înainte de asta, aducerea
dintre registrele procesorului, indicat prin biţi
informaţiilor privind locul operanzilor şi-sau rezultatului, ce se prezintă
dedicați ai cuvântului instrucție, alăturați celor
separat de codul operaţiei. |
prin care se specifică codul operaţiei.
Adresarea directă Se numeşte adresare directă referirea unei
Semnalele de comandă generate de secvențiator acționează, în
locații de memorie sau a unui port ce: conţine majoritatea covârşitoare a lor, în interiorul procesorului şi doar un număr
un operand sau este vizată / vizat să conțină redus în afara sa. În arhitectura considerată, semnale de comandă interne
rezultatul, printr-o adresă conținută în mod
sunt:
efectiv în cuvântul instrucție, alăturat câmpului
e LDIR
ce joacărolul de cod al operaţiei. |
e OBA
Adresareastivă Se numeşte adresare stivă referirea unor locaţii
e ADD
de memorie pentru depunerea în ele a
conținuturilor unor registre, respectiv pentru e etc.
iar semnale de comandă externe:
descărcarea conținuturilor lor în anumite
registre, cu ajutorul adresei conținută de
g
SI) 3
Fig. 6.2_2. Modurile de adresare ale arhitecturii de calcul din figura 6.2_1.
136 137
Ţ
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Semnalul LD_IR (load IR)are rolul de a determina încărcarea registrului Operația de citire / scriere în derulare la un moment va viza o locaţie de
IR cu informaţia prezentă la intrările sale. Este activ pe frontul ridicător. memorie sau alta, respectiv un port sau altul, în funcţie de valoarea
informației numită adresă, transmisă memoriei, respectiv unităţii de porturi,
Semnalul OB_A (on the bus A) arerolul de a determina punerea peliniile
prin grija unităţii de comandă, în timp ce semnalele MRO, respectiv JIORO
de date ale procesorului a conținutului registrului A, prin activareaieşirilor
cu 3 stări ale acestui registru. Este activ penivelul ridicat, adică: pe nivelul sunt âctive.
de «>
Generatorul de reset
Semnalul RD (“read”) are rolul dea specifica memoriei sau unităţii de
porturi că operația dispusă de procesor prin semnalele MRQ, respectiv Generatorul de reset, RG, are rolul de a furniza un semnal de iniţializare
a secvențiatorului şi a altor blocuri cu caracter secvențial, de fiecare dată
IORQ este unade citire. Este activ pe nivelul coborât, adică: pe nivelul când calculatorul se pune sub tensiune, respectiv când se apasă un buton
de «Q>
dedicat, numit “buton RESET”.
138
-.
|
e y: pentru desemnarea operandului 2 sau a sediului operandului 2, 011: 0p= SUBx,y 10:x=C 010:y=C
100: op = AND + y Oll:y=aa :
distincţia făcându-se din context 101: op= OR, y 100: y = (BC)
e A,:B, C: pentru desemnarea registrelor A, B, C sau a conţinuturilor lor, 110: op=XOR.x, y 101: y = (aaaa)
140 141
LA
Ț
Da
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ . CAP. Ga DESPRE PROCESOR. UNITATEA DE COMANDĂ
b). când val(bit7... bit5) e [0012...1102] şi val (Bit4 bit3) = 11»: e). când val (Bi47... bit5) = 1112şi val (bit4 bit3) = 002
trip iri
şi val (Bbit2 ... bit0) = 111:
Zu 6. 5 4 3 2 1 0_
7 6 5 4 3 2 1 0
=
76 2543 2 1 0 111: op = vezi 110: x =(B0) 00: op = INC
val (bit2 ... bit0) 111:x =(aaaa) 0l:op=DEC
10: op=SHL
codul specificația codul 11: op = SHR
operaţiei pt. x operaţiei
111: op vezi
,
00; x = A
şispecificaţi pt. y
000: op = INC x
2). când val (bi17.... bit5) = 0002 şival (bit3 ... bit0) e (0000, 1000, 01112):
val (bit2 ... bitQ) 0l:x=8 001: op = DEC x 7 6 5 4 3 2 ! 0
10:x =C 010: op = SHL x
OlI: op = SHR x
10l: o0p=INxy
cu y = (aa) codul specifi- codul
operaţiei _caţia operaţiei
d). când val (bit? ... bit5) = 1112 şi val (bit4 bit3) e [002...102] pt. x
000: 0p= vezi O0:x=AF 0000: PUSH x
şi val (biţ2 ... bit0) = 110:
val (biţ3 .. bit0) sau: 1000: POP x
x=SP 0111: LD x, aaaa
76 5 4232 1 0 1: x=BC
h). când val (Bi47.... bit5) = 0002 şi val (bit3... bit0) = 11112:
codul specificaţia codul
operaţiei pt.y operaţiei
, şi specificaţia pt. x
111: op = vezi 00:py=A 110:0p=O0UTx,y
val (Bit2 ... bitQ) O0I:y=8 cu x = (aa) codul codul
10:y=C
operației operaţiei
000: op = vezi 01111: 0p= INC BC
val (bit4 ... bit0) 11111: op= DEC BC
142 143
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
i). când val(Bit7 bit6 bit5) = 0002 şi val (bit2 bit] bit0) e 4001...110): L
2I>
1
n
1
2
1
codul specifi- codul 3
1
operaţiei caţia operaţiei 1
pt. x 1 10
000: op=vezi 0:e=N 000l:0p=JPeZ, (aaaa) 2
l 100
val (biţ3 ... bit0) 1: e=nil 0010: op = JP eS, (aaaa) 10
3
9011: op = JP eC, (aaaa) 1 000
0100: op = JP eV, (aaaa) 1 001
0101: op = JP eP, (aaaa) 1
2 01
0110: op = JP (BO), 100
i
dacă Bir4=0 3 101
0110: op = JP (aaaa) 000
sole lelel>
1
sole lolef>
dacă bit4=1 1 001
1
1001: op = CALL eZ, (aaaa)
2
1010: op = CALLeS,(aaaa) 3 199
1011: op = CALI eC, (aaaa) 3
1100: op = CALL, eV, (aaaa) 3
4 Ii
1101: op = CALL eP, (aaaa)
1 000
=
0110: op= CALL (BC), 1 001
dacă bit4=0 1 010
s loelsle lalal>
3 lalel>lg lala|>
e lojal> E lola[>
1 001 001
1 010 010
2 Oli 011
3 100 100
3 101 191
3 110 110
4 11 ul
144 145
CAP.6. DESPRE PROCESOR. UNITATEA DE COMANDĂ CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
001 001 registru” şi “indirectă”, tot el indică şi registrul / locația de memorie vizat /
010 010 vizată prin respectivele adresări.
Ol 011 b). cazul L= 2 octeți |
100 aaaa 100
101 aaaa 101 Octetul1 reprezintă codul operaţiei. În plus, în cazul adresărilor “la registru”
110 aaaa 110 aaaa şi “indirectă”, tot el indică şi registrul / locaţia de memorie vizat / vizată prin
il! Ul BC respectivele adresări.
Legendă: |: lungimeaîn octeți a instrucţiilor. Octetul 2 reprezintă operandul efectiv -adică: pe aa-, cazul L=2 octeți
conţinând o adresare imediată.
Fig. 6.3.2_1. Instrucţiile procesorului CSAC 2001 (continuare). c). cazul L= 3 octeți
Octetul 1 reprezintă codul operaţiei. În plus,tot el indică şi registrul vizat
prin adresarea “la registru” pe care cazul L=3 octeți o conţine inevitabil.
Octeţul 2 reprezintă partea mai puţin semnificativă a adresei locației de
memorie vizată -adică: pe aaaas-, cazul L=3 octeți conținând o adresare
directă.
Octetul 3 reprezintă partea mai puțin semnificativă a adresei locației de
memorie vizată -adică: pe aaaar-, cazul L=3 octeți conţinând o adresare
directă.
146 147
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ CAP. 6. DESPRE PROCESOR: UNITATEA DE COMANDĂ
Codificare:
Tot ce s-a spus în privința codificării la instrucţia LD este valabil şi Codificare:
pentru instrucția XOR. Tot ce s-a spus în privința codificării la instrucția ÎNC este valabil şi
pentru instrucția DEC.
7. Instrucția de incrementare (INC).
Notaţie: 9. Instrucţia de deplasare la dreapta (SHR).
INC x
unde: SHR x
unde:
xe(A, B, C, (BC), (aaaa), BC)
xețA, B, C,(BC), (aaaa))
Descriere:.
Incrementează x şi oferă informaţii despre rezultat în F. Descriere:
„ Deplaseazăla dreapta cu o poziţie biții lui x şi oferă informaţii despre
Codificare: rezultat în F. În procesul de deplasare, în rangul de pondere 2 al lui x se
Aşa cum rezultă din figura 6.3.2_1, instrucția INC poate avea fie 1 octet, introduce valoarea (, iar ceea ce a fostîn rangul de pondere 2" se transferă
fie 3 octeți, în funcție de modurile de adresare pe care le foloseşte. în fanionul C.
Semnificațiile octeţilor sunt următoarele:
a). cazul L= 1 octet Codificare:
Octetul1 (unicul) reprezintă codul operației. În plus, în cazul adresărilor “la Tot ce s-a spus în privinţa codificării la instrucția INC este valabil şi
registru” şi “indirectă”, totel indică şi registrul / paua de memorie vizat / pentru instrucția SHR.
vizată prin respectivele adresări.
b). cazul L= 3 octeți 10. Instrucţia de deplasare la stânsa (SHI).
Octetul1 reprezintă codul operaţiei. Notaţie:
Octetul 2 reprezintă partea mai puţin semnificativă a adresei locației de SHL x
memorie vizată -adică: pe aaaay-, cazul L=3 octeți conţinând o adresare unde:
directă. xeA, B, C, (BC), (aaaa))
Octetul 3 reprezintă partea mai puţin semnificativă a adresei locației de
memorie vizată -adică: pe aaaay-, cazul L=3 octeți conținând o adresare Descriere:
directă. Deplasează la stânga cu o poziţie biții lui x şi oferă informaţii despre
rezultat în F. În procesul de deplasare, în rangul de pondere 2 al lui x se
8. Instrucţia de decrementare (DEC). introduce valoarea (, iar ceea ce a fost în rangul depondere 2' se transferă
Notaţie: | în fanionul C.
DEC x Codificare: E
unde: Tot ce s-a spus în privința codificării la instrucția INC este valabil şi
„ XEŢA,B, C, (BC), (aaaa), BC) pentru instrucția SHL.
unde: Codificare:
xe(A, B, C) Aşa cum rezultă din figura 6.3.21, instrucția PUSH are 1 octet.
y = (aa) Semnificațiile salesunt următoarele: Ă
Octetul1 (unicul) reprezintă codul operaţiei. În plus,tot el indică şi perechea
Descriere: de registre vizată prin adresarea “la registru” pe care instrucția o conține
Introduce în x o copie a informaţiei de un octet aflată într-un port de inevitabil.
intrare y.
14. Instrucţia de scriere în stivă (POP).
Notaţie:
Codificare: POP x
Aşa cum rezultă din figura 6.3.21, instrucția IN are 2 octeți. unde:
Semnificațiile octeţilor sunt următoarele:
x ețAF, BC?
Octetul 1 reprezintă codul operaţiei. În plus, tot el indică şi registrul vizat
prin adresarea “la registru” pe care instrucția o conţineinevitabil. Descriere:
Octetul 2 reprezintă adresa portului vizat -adică: pe aa-. Incarcă x prin descărcareastivei.
Codificare: | e = nil, atunci, pentru apel, respectivul fanion trebuie să fie la unu; dacă
Aşa cum rezultă din figura 6.3.2_1, instrucţia JP poate avea fie 1 octet, e = N, atunci, pentru apel, respectivul fanion trebuie să fie la zero. Când
fie 3, octeți, în funcție de modurile de adresare pe care le foloseşte. condiţia de apel nu este îndeplinită, programul continuă, ca şi în cazul
Semnificațiile octeților sunt următoarele: instrucţiilor ordinare, cu instrucția imediat următoare din punct de vedere
a). cazul L= 1 octet topologic.
Octetul 1 (unicul) reprezintă codul operaţiei. În plus,tot el indică şi faptul că
adresa instrucției la care se vizează să se efectueze saltul se află în registrul
Codificare:
pereche BC. Aşa cum rezultă din figura 6.3.2_1, instrucţia CALL poate avea fie |
b). cazul L= 3 octeți octet,fie 3 octeți, în funcție de modurile de adresare pe care le foloseşte.
Octetul 1 reprezintă codul operației, iar în cazul instrucţiilor de salt Semnificațiile octeţilor sunt următoarele:
condiționat —în plus, condiţia impusă. a). cazul L= 7 octet _ a j
Octetul 2 reprezintă partea mai puţin semnificativă a adresei locației de Octetul 1 (unicul) reprezintă codul operației. În plus, tot el indică şifaptul că
memorie vizată -adică: pe aaaa-, cazul L=3 octeți conținând o adresare
adresa instrucției la care se vizează să se efectueze apelul —altfel spus:
directă.
adresa de început a subrutinei- se află în registrul pereche BC.
Octetul 3 reprezintă partea mai puţin semnificativă a adresei locației de b). cazul L= 3 octeți _
memorie vizată -adică: pe aaaau-, cazul L=3 octeți conţinând o adresare
Octetul 1 reprezintă codul operaţiei, iar în cazul instrucţiilor de apel
directă. | E
condiţionat —în plus, condiţia impusă.
Octetul 2 reprezintă partea mai puţin semnificativă a adresei locației de
Evident, în cazurile în care saltul trebuie executat, acest lucru se
memorie vizată -adică: pe aaaar-, cazul L=3 octeți conținând o adresare
realizează prin încărcarea registrului PC cu conţinutul registrului pereche BC N
directă.
-dacă x = (BC)-, repectiv cu octeții 2 şi 3 ai instrucției —dacă x = (aaaa). Octetul 3 reprezintă partea mai puţin semnificativă a adresei locației de
memorie vizată -adică: pe aaaay-, cazul L=3 octeți conţinând o adresare
16. Instrucţia de apel de subrutină (CALL).
directă.
Notaţie:
dacă W z nil:
Evident, în cazurile în care apelul trebuie executat, acest lucru se
CALL eW, x
realizează prin încărcarea registrului PC cu conținutul registrului. pereche BC
dacă W = ni:
—dacă x = (BC)-, repectiv cu octeţii 2 și 3 ai instrucției —dacă x = (aaaa),
CALL x
după ce conţinutul său, reprezentând adresainstrucției imediat următoare din
unde:
punct de vedere topologic, a fost salvat în stivă.
e.e(nil, N)
We(Z, S, C, V, P, nil)
xe((BO), (aaaa)) 17. Instrucția de revenire din subrutină
Notaţie:
T).
Descriere: RET
leşi din secvența normală de rulare, eventual condiționat, şi continuă
programul cu instrucția localizată prin x, după ce salveziîn stivă adresa Descriere: | |
instrucției imediat următoare din punct de vedere topologic; altfel spus: fă leşi din secvenţa normală de rulare şi continuă programul cu instrucția a
un salt reversibil sau apelează o subrutină. Dacă W z nil, atunci apelarea cărei adresă se află în vârful stivei sau, altfel spus: revino din subrutină
subrutinei se face condiționat de valoarea fanionului indicat de W: dacă (evident, dacă s-a operat corect asupra stivei, atunci în momentul execuţiei
154 155
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ:
Codificare:
Aşa cum rezultă din figura 6.3.21, instrucția RET are 1 octet.
Semnificațiile sale sunt următoarele:
Octetul 1 (unicul) reprezintă codul operației. În plus, tot el indică şi faptul că
adresa instrucției la care se vizează să se producă revenirea —altfel spus:
adresa de revenire- se află în vârful stivei.
156
CUPRINS
CUPRINS
pag.
1. CONSIDERAŢII INTRODUCTIVE ........................................................ 7
1.1. Noţiuni fundamentale ................................................................ 7
1.2. Acţiuni ce au loc la pornirea unui calculator ........................... 13
2. DESPRE MEMORIE ............................................................................. 17
3. DESPRE INTERFEŢE ........................................................................... 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 semn ....................... 34
4.1.1.2.1. Reprezentarea prin semn-mărime ........................... 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 ..................................................... 47
4.2. Dispozitive de adunare şi scă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 .................................................... 53
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 “ripple 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
5
CUPRINS
pag.
4.3. Dispozitive de înmulţire ............................................................. 63
4.3.1. Principii ................................................................................ 63
4.3.2. Sinteza unui înmulţitor de numere în semn-mărime ............ 67
4.3.3. Sinteza unui înmulţitor de numere în complement de doi,
după metoda Robertson ........................................................ 79
4.3.4. Sinteza unui înmulţitor combinaţional ................................. 91
4.4. Dispozitive de împărţire ............................................................. 93
4.4.1. Principii ................................................................................ 93
4.4.2. Sinteza unui înmulţitor de numere în semn-mărime,
operând cu refacerea resturilor ............................................. 96
4.4.3. Sinteza unui înmulţitor de numere în semn-mărime,
operând fără 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 unităţi de comandă von Neumann .............................. 132
6.3. Despre instrucţii. Studiu de caz
pe setul de instrucţii al procesorului CSAC 2001 ................... 140
6.3.1. Aspecte introductive ............................................................. 140
6.3.2. Codificarea instrucţiilor ........................................................ 141
6.3.3. Conţinutul instrucţiilor ......................................................... 147
6.4. Implementarea instrucţiilor ..................................................... 156
6.4.1. Aspecte introductive ............................................................. 156
6.4.2. Implementarea ciclului fetch ................................................ 157
6.4.3. Implementarea instrucţiei “LD SP, aaaa” ........................... 160
6.4.4. Implementarea instrucţiei “JP (aaaa)” ................................ 162
6.4.5. Implementarea instrucţiei “ADD A, (BC)” .......................... 164
6.4.6. Implementarea instrucţiei “CALL (aaaa)” .......................... 166
6.4.7. Implementarea instrucţiei “RET” ........................................ 169
6.4.8. Implementarea instrucţiei “OUT (aa), A” ........................... 171
BIBLIOGRAFIA ........................................................................................................ 174
6
CAP. 1. CONSIDERAŢII INTRODUCTIVE
14
CAP. 1. CONSIDERAŢII INTRODUCTIVE
14
CAP. 1. CONSIDERAŢII INTRODUCTIVE
1
CONSIDERAŢII INTRODUCTIVE
De obicei, codurile au lungimi care sunt puteri ale lui 2. Sunt uzuale
codurile pe 8, 16, 32, 64, 128, 256 biţi.
9
CAP. 1. CONSIDERAŢII INTRODUCTIVE
Dispozitive de introducere I I
n Procesor n
a datelor
t t
e e Memorii
r r
externe
f f
e e
ţ ţ
Dispozitive de extragere Memorie
e e
a datelor
• compilatoare;
• asambloare;
• interpretoare;
Compilatoarele şi asambloarele sunt programe care la un apel al lor
traduc un întreg program sau modul de program şi, în final, generează
codul-maşină corespunzător, într-un fişier numit "fişier-obiect", al cărui
nume are extensia ".obj". Diferenţa 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.
Interpretoarele sunt programe care traduc o linie a unui program şi
introduc imediat în rulare codul-maşină rezultat, apoi trec la linia următoare
ş.a.m.d., fără ca în final să ofere codul-maşină al întregului program sau
modul de program, cum am văzut că fac compilatoarele şi asambloarele.
Rezultă, aşadar, că în cazul folosirii interpretoarelor, de fiecare dată când se
doreşte rularea unui program, se impune o nouă traducere şi că, inevitabil,
timpul necesar rulării programului este prelungit cu timpul de traducere.
Programele de bibliotecă sunt programe care pun la dispoziţia
utilizatorilor o serie de facilităţi, ce se adaugă celor pe care le prezintă
limbajele de programare înseşi.
Editoarele de legături sunt programe care au rolul de a interconecta
codul-obiect al programului utilizatorului, respectiv codurile-obiect ale
modulelor în care acesta consistă, cu coduri-obiect de programe de
bibliotecă, de driver-e de intrare-ieşire şi-sau de programe ţinând de sistemul
de operare, după caz, astfel încât ceea ce se obţine să reprezinte un program
executabil; acesta face obiectul unui fişier numit "fişier-executabil",
caracterizat prin aceea că poartă un nume cu extensia ".exe" sau, uneori,
".com".
Depanatoarele sunt programe cu ajutorul cărora se pun la dispoziţia
utilizatorilor o seamă de facilităţi de depanare a programelor: execuţie pas cu
pas, oprire la o anumită linie, vizualizarea/modificarea valorilor unor
variabile, etc.
Toate aceste programe -marcate cu *) în enumerarea de mai sus- sunt
integrate în aşa-numitele medii de dezvoltare a aplicaţiilor, cum sunt:
TURBO PASCAL, BORLAND PASCAL, TURBO C/C++, BORLAND
C/C++, VISUAL STUDIO, etc., fără, însă, ca, în cadrul acestora, să-şi
piardă identitatea.
12
CAP. 1. CONSIDERAŢII INTRODUCTIVE
13
CAP. 1. CONSIDERAŢII INTRODUCTIVE
v. fişierul fig.1.2.1&1.2.2.doc
14
CAP. 1. CONSIDERAŢII INTRODUCTIVE
15
v. fişierul fig.1.2.1&1.2.2.doc
CAP. 1. CONSIDERAŢII INTRODUCTIVE
16
CAP2. DESPRE MEMORIE
2
DESPRE MEMORIE
17
CAP2. DESPRE MEMORIE
D0-D7
N Bytes
A0-AX
ACK Fig. 2_1. Reprezentarea bloc
R / W MRQ a unei memorii.
18
CAP2. DESPRE MEMORIE
D7-D0
D0 A0 D0 A0 D0 A0 D0 A0
D1 A1 D1 A1 D1 A1 D1 A1
D2 A2 D2 A2 D2 A2 D2 A2
D3 A3 D3 A3 D3 A3 D3 A3
D4 A4 D4 A4 D4 A4 D4 A4
...
...
...
...
D5 A5 D5 A5 D5 A5 D5 A5
D6 0 A6 D6 1 A6 D6 2 A6 D6 3 A6
D7 A7 D7 A7 D7 A7 D7 A7
...
...
...
...
A8 A8 A8 A8
A9 A9 A9 A9
A10 A10 A10 A10
A11 A11 A11 A11
_ ____ A12 _ ____ A12 _ ____ A12 _ ____ A12
R/W CS A13 R/W CS A13 R/W CS A13 R/W CS A13
R/W
A15-A0
A15 A14
A15=1, A14=1 3
A15=1, A14=0 2 Circuistică
de
A15=0, A14=1 1 decodificare
A15=0, A14=0 0
MRQ
+5 V
J Q J Q J Q
C B0 C B1 C B2
K K R Q K R Q
R Q
CLK
ACK
Fig. 2_2. Un exemplu de memorie.
Observaţii:
20
CAP2. DESPRE MEMORIE
În figura 2_2:
Capsula 0 conţine locaţiile de memorie cu adresele hexazecimale 0000-3FFF.
Capsula 1 conţine locaţiile de memorie cu adresele hexazecimale 4000-7FFF.
Capsula 2 conţine locaţiile de memorie cu adresele hexazecimale 8000-BFFF.
Capsula 3 conţine locaţiile de memorie cu adresele hexazecimale C000-FFFF.
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
3 F F F
4 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
7 F F F
8 0 0 0
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
2
1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
B F F F
C 0 0 0
1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
3
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
F F F F
21
CAP2. DESPRE MEMORIE
______
sugerează ce s-ar întâmpla dacă ACK ar fi luat de la primul bistabil,
respectiv de la al treilea bistabil).
CLK
MRQ
B0
B1
B2
ACK
______ ______
Fig. 2_3. Cronograma semnalelor MRQ şi ACK .
22
CAP2. DESPRE MEMORIE
D7-D0
D0 A0 D1 A0 D6 A0 D7 A0
A1 A1 A1 A1
A2 A2 A2 A2
A3 A3 A3 A3
A4 A4 A4 A4
Bitul 0 A5 Bitul 1 A5 Bitul 6 A5 Bitul 7 A5
al A6 al A6 al A6 al A6
capsulei A7 capsulei A7 ... capsulei A7 capsulei A7
...
...
...
...
echivalente A8 echivalente A8 echivalente A8 echivalente A8
pe 8 biți A9 pe 8 biți A9 pe 8 biți A9 pe 8 biți A9
A10 A10 A10 A10
A11 A11 A11 A11
_ ____ A12 _ ____ A12 _ ____ A12 _ ____ A12
R/W CS A13 R/W CS A13 R/W CS A13 R/W CS A13
CS
R/W
A13
...
...
...
...
...
A1
A0
Fig. 2_3. Capsula echivalentă de 16 Kbytes,
realizată cu 8 capsule de 16 Klocații de 1 bit per locație.
D7-D0
D0 A0 D2 A0 D4 A0 D6 A0
D1 A1 D3 A1 D5 A1 D7 A1
A2 A2 A2 A2
A3 A3 A3 A3
A4 A4 A4 A4
Biții A5 Biții A5 Biții A5 Biții A5
0 și 1 A6 2 și 3 A6 4 și 5 A6 6 și 7 A6
ai A7 ai A7 ai A7 ai A7
...
...
...
...
CS
R/W
A13
...
...
...
...
...
A1
A0
Fig. 2_5. Capsula echivalentă de 16 Kbytes,
realizată cu 4 capsule de 16 Klocații de 2 biți per locație.
D7-D0
23
CAP2. DESPRE MEMORIE
D0 A0 D4 A0
D1 A1 D5 A1
D2 A2 D6 A2
D3 A3 D7 A3
A4 A4
Biții A5 Biții A5
0-3 A6 4 - 7 A6
ai A7 ai A7
capsulei A8 capsulei A8
echivalente A9 echivalente A9
pe 8 biți A10 pe 8 biți A10
A11 A11
_ ____ A12 _ ____ A12
R/W CS A13 R/W CS A13
25
CAP3. DESPRE INTERFEŢE
3
DESPRE INTERFEŢE
O interfaţă constă în unul sau mai multe porturi şi, eventual, o circuistică
conexă, ce îndeplineşte funcţii de comandă locală.
25
CAP3. DESPRE INTERFEŢE
O0 O1 O2 O3 O4 O5 O6 O7 RD
___
CE PORT DE INTRARE TIPIC IBF
_______
I0 I1 I2 I3 I4 I5 I6 I7 EXTWR
IBF
CE
RD
CE
WR
OBF
________
EXTRD
28
CAP3. DESPRE INTERFEŢE
29
CAP3. DESPRE INTERFEŢE
30
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
4
DESPRE PROCESOR. UNITATEA
ARITMETICO-LOGICĂ
şi are valoarea:
−m
K = c n −1 r n −1 −1
+ ... + c1 r + c0 + c −1 r + ... + c −m r −m
= c
i = n −1
i ri (4.1.1.1-2)
K = cn −1 2n −1 + cn − 2 2n − 2 + + c1 21 + c0 (4.1.1.1-4)
..............................................................
Aşadar, cifrele binare ale unui număr pozitiv întreg se pot obţine prin
împărţiri succesive la 2 ale numărului în cauză, respectiv ale câturilor, până
se ajunge la cât nul, ele -cifrele- fiind resturi în aceste împărţiri.
Exemplu:
K = 42 :
C0
4210=1010102
n = min i i log 2 a
iN
32
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Fie:
~
K '' = .c−1 ...c−( m−1) c−m (4.1.1.1-10)
K m −1 2 = c− m (4.1.1.1-15)
Aşadar, cifrele binare ale unui număr pozitiv fracţionar se pot obţine
prin înmulţiri succesive cu 2 ale numărului în cauză, respectiv ale părţilor
fracţionare ale produselor, ele –cifrele- fiind părţile întregi ale produselor;
înmulţirile se efectuează până la determinarea unui număr satisfăcător de
cifre.
Exemple:
1). K = 0.8125 2). K = 0.8124
c-1 c-1
0.8125·2=1+0.625 0.8124·2=1+0.6248
0.625·2=1+0.25 0.6248·2=1+0.2496
0.25·2=0+0.5 0.2496·2=0+0.4992
0.5·2=1+0.0 0.4992·2=0+0.9984
0.9984·2=1+0.9968
c-4
c-5
0.812510=0.11012 0.812410=0.11001...2
33
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Cifrele binare ale unui număr pozitiv format din parte întreagă şi parte
fracţionară se determină aplicând regulile de mai sus pentru cele două părţi.
Exemplu:
42.8125=42+0.8125=1010102+0.11012=101010.11012
x
M ( 0;1 ), daca x 0
x
sm( x ) = 1 + ( 1;2 ), daca x 0 (4.1.1.2.1-1)
M
0 sau 1 daca x = 0
Evident, legea de mai sus ne spune că numerele pozitive se reprezintă
prin numere din intervalul (0; 1), iar numerele negative, prin numere din
intervalul (1; 2), în timp ce numărul zero are o dublă imagine, pe zero,
respectiv pe unu:
-M 0 +M
0 1 2
34
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
rezultă:
a~ = a0 .a−1...a− ( m + n) (4.1.1.2.1-3)
Semnul “.” nu se reprezintă în calculator prin nimic,
el fiind considerat în mod implicit
unde:
0, daca A 0
• a0= (4.1.1.2.1-4)
1, daca A 0
2M
lc _ sm = log2 (4.1.1.2.1-6)
r
unde:
r: rezoluţia cu care se iau în considerare numerele de reprezentat în
intervalul (-M; M).
Observaţie:
Atât M, cât şi r, sunt, în practică, puteri ale lui 2.
Tabelele din figurile 4.1.1.2.1_1 şi 4.1.1.2.1_2 exemplifică
reprezentarea numerelor în semn mărime în ipotezele:
• (-M; M)=(-2; 2)
• r=0.25
respectiv:
• (-M; M)=(-8; 8)
• r=1
Numărul -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 0 0.25 0.50 0.75 1.00 1.25 1.50 1.75
de
reprezentat
Codul 1111 1110 1101 1100 1011 1010 1001 0000 0001 0010 0011 0100 0101 0110 0111
semn- 1000
mărime
Valoarea 1.875 1.750 1.625 1.500 1.375 1.250 1.125 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875
codului 1.000
semn-
mărime
Numărul -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
de
reprezentat
Codul 1111 1110 1101 1100 1011 1010 1001 0000 0001 0010 0011 0100 0101 0110 0111
semn- 1000
mărime
Valoarea 1.875 1.750 1.625 1.500 1.375 1.250 1.125 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875
codului 1.000
semn-
mărime
36
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
x
M ( 0;1 ), daca x 0
x
c1( x ) = 2 − 2− n − [ 1; 2 − 2− n ), daca x 0 (4.1.1.2.1-1)
M
0 sau 2 − 2− n , daca x = 0
Evident, legea de mai sus ne spune că, la fel ca în cazul reprezentării în
semn-mărime, numerele pozitive se reprezintă prin numere din intervalul
(0; 1), iar numerele negative, prin numere din intervalul (1; 2); numărul
zero are și în acest caz o dublă imagine, de data aceasta, pe zero, respectiv
pe 2 – 2-n:
-M 0 +M
0 1 2
rezultă:
a~ = a0 . a−1...a−( m + n) (4.1.1.2.2-3)
Semnul “.” nu se reprezintă în calculator prin nimic,
el fiind considerat în mod implicit
unde:
0, daca A 0
• a0= (4.1.1.2.2-4)
1, daca A 0
cn−i , daca A 0
• a−i = , i = 1...m + n (4.1.1.2.2-5)
cn−i , daca A 0, unde cn−i = NOT (cn−i )
37
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Fig. 4.1.1.2.2_1. Reprezentarea în complement de unu a numerelor din intervalul (-2; 2),
considerate cu rezoluţia 0.25.
Numărul -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
de
reprezentat
Codul 1000 1001 1010 1011 1100 1101 1110 0000 0001 0010 0011 0100 0101 0110 0111
complement 1111
de unu
Valoarea 1.000 1.125 1.250 1.375 1.500 1.625 1.750 0.000 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_2. Reprezentarea în complement de unu a numerelor din intervalul (-8; 8),
considerate cu rezoluţia 1.
38
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Exemple:
Fie:
(-M; M)=(-8; 8), r=1
Rezultă:
lc_c1 = 4 şi n = 3
Fie:
1). a= -1, b= -5
Se va avea:
a = -110 = -0012 = 1001sm = 1110c1
b = -510 = -1012 = 1101sm = 1010c1
1110+
1010
11000+
1
1001
cu:
1001c1 = -610
39
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
2). a= 1, b= 5
Se va avea:
a = 110 = 0012 = 0001sm = 0001c1
b = 510 = 1012 = 0101sm = 0101c1
0001+
0101
00110+
0
0110
cu:
0110c1 = 610
40
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
0 1 2
41
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
42
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Numărul -2.00 -1.75 -1.50 -1.25 -1.00 -0.75 -0.50 -0.25 0 0.25 0.50 0.75 1.00 1.25 1.50 1.75
de
reprezentat
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 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875
codului
complement
de doi
Fig. 4.1.1.2.3_1. Reprezentarea în complement de doi a numerelor din intervalul [-2; 2),
considerate cu rezoluţia 0.25.
Numărul -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7
de
reprezentat
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 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875
codului
complement
de doi
Fig. 4.1.1.2.3_2. Reprezentarea în complement de doi a numerelor din intervalul [-8; 8),
considerate cu rezoluţia 1.
43
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
44
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Observaţie:
Ignorarea termenilor de valoare “2” înseamnă, în practică,
neglijarea transportului generat în procesul de adunare din rangul
20 către rangul 21.
Exemple:
Fie:
[-M; M)=[-8; 8), r=1
Rezultă:
lc_c2 = 4 şi n = 3
Fie:
1). a= -1, b= -5
Se va avea:
a = -110 = -0012 = 1001sm = 1111c2
b = -510 = -1012 = 1101sm = 1011c2
1111+
1011
11010
se pierde
cu:
1010c2 = -610
2). a= 1, b= 5
Se va avea:
a = 110 = 0012 = 0001sm = 0001c2
b = 510 = 1012 = 0101sm = 0101c2
0001+
0101
00110
cu:
0110c2 = 610
45
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
47
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Aşadar, diferenţa între numărul care are toţi biţii nuli, în afară de
bitul cel mai semnificativ al mantisei şi numărul zero este 2 −7 , când se
lucrează cu exponentul netranslatat şi 2 −135 , când se lucrează cu
exponentul translatat.
unde:
• S este semnul mantisei: 1 pentru mantisă negativă, 0 pentru
mantisă pozitivă
• E este exponentul pe 8 biți, translatat, cu bias=127
• M este excesul de 1al mantisei (partea vizibilă a mantisei), pe 23
de biți
Valoarea unui număr real x reprezentat în standardul IEEE 754 pe 32 de
biți este dată de expresia:
48
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
şi are valoarea:
cmMnpr = (−1) 0 (1.11...11) 2 254−127 = +(1 + (1 − 2 −23 )) 2127 +3.4 10 +38
şi are valoarea:
cmmnnr = (−1)1 (1.11...11) 2 254−127 = −(1 + (1 − 2 −23 )) 2127 −3.4 10 +38
şi are valoarea:
cmmnpr = (−1) 0 (1.00...00) 21−127 = +2 −126 +1.18 10 −38
şi are valoarea:
cmMnnr = (−1)1 (1.00...00) 21−127 = −2 −126 −1.18 10 −38
şi are valoarea:
zero = (−1) 0 (1.00...00) 2 0−127 = +2 −127 +0.59 10 −38
49
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
unde:
• S este semnul mantisei: 1 pentru mantisă negativă, 0 pentru
mantisă pozitivă
• E este exponentul pe 11 biți, translatat, cu bias=1023
• M este excesul de 1 al mantisei (partea vizibilă a mantisei), pe 52
de biți
Valoarea unui număr real x reprezentat în standardul IEEE 754 pe 64 de
biți este dată de expresia:
50
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
4.2.1. Principii
Aşadar, pentru un rang "i", se vor avea situaţiile din figura 4.2.1_2 şi
circuistica din figura 4.2.1_3.
Rezultatele obţinute în procesul de adunare pot fi afectate de erori,
atunci când ele se situează în afara intervalului de reprezentabilitate
corespunzător numărului de biţi pe care se lucrează. Se spune, în astfel de
situaţii, că intervine fenomenul de "depăşire". Evident, fenomenul de
depăşire poate apărea doar atunci când se adună operanzi cu acelaşi semn şi
se manifestă prin aceea că semnul rezultatului diferă de semnul comun al
celor doi operanzi. Tabelul din figura 4.2.1.4 evidenţiază clar cazurile de
depăşire, precum şi modul în care ele pot fi detectate.
51
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
4.2.1. Principii
Aşadar, pentru un rang "i", se vor avea situaţiile din figura 4.2.1_2 şi
circuistica din figura 4.2.1_3.
Rezultatele obţinute în procesul de adunare pot fi afectate de erori,
atunci când ele se situează în afara intervalului de reprezentabilitate
corespunzător numărului de biţi pe care se lucrează. Se spune, în astfel de
situaţii, că intervine fenomenul de "depăşire". Evident, fenomenul de
depăşire poate apărea doar atunci când se adună operanzi cu acelaşi semn şi
se manifestă prin aceea că semnul rezultatului diferă de semnul comun al
celor doi operanzi. Tabelul din figura 4.2.1.4 evidenţiază clar cazurile de
depăşire, precum şi modul în care ele pot fi detectate.
50
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
x-i
y-i z-i
c-(i+1)
c-i
Intrări Ieşiri
c-1 x0 y0 c0 z0 v
0 0 0 0 0 0
0 0 1 0 1 0
0 1 0 0 1 0 Rezultă, evident:
0 1 1 1 0 1 v = c0 c−1
1 0 0 0 1 1
1 0 1 1 0 0
1 1 0 1 0 0
1 1 1 1 1 0
51
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
4.2.2.1. Principii
...1010
x ...0101 z
...1011
y
tact
52
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
• pentru K:
xy
Q 00 01 11 10
0 * * * * K = xy = x+ y
1 1 0 0 0
Fig. 4.2.2.2_3. Diagrama intrării K.
x
y z
J Q
tact
C
K R
c-(i+1)
i=0…n-1
Q D
tact
R C
4.2.3.1. Principii
54
z0 z-1 z-2 z-3
cin
p-3
g-3
p
g-2-2
p-1
g-1
p0
g0
cin
c0
58
g0 p0 g-1 p-1 g-2 p-2 g-3 p-3
*
*
*
c-(i+1)
i=0…n-1
Q D
tact
R C
4.2.3.1. Principii
54
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
SUB
x0 y0 x-1 y-1 x-(n-2) y-(n-2) x-(n-1) y-(n-1)
Evident:
• când SUB=0, vom avea:
− la canalul 1 de intrare al dispozitivului: x c 2
− la canalul 2 de intrare al dispozitivului: y c 2 (întrucât: y−i 0 = y−i ),
ceea ce face ca dispozitivul să efectueze operaţia z c 2 = x c 2 + y c 2
• când SUB=1, vom avea:
− la canalul 1 de intrare al dispozitivului: x c 2
− la canalul 2 de intrare al dispozitivului: − y c 2 (întrucât: y−i 1 = y−i
și c-n=1), ceea ce face ca dispozitivul să efectueze
operaţia
z c 2 = x c 2 + (− y c 2 ) = x c 2 − y c 2
Observaţie:
Se reaminteşte faptul că între complementul de 2 şi complementul de 1
ai unui număr, în exprimare pe n biţi, există relaţia: c2( x) = c1( x) + 2−( n−1)
55
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
p-i
x-i y-i
56
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Tad = p , g + c + z = + 2 + = 4 (4.2.3.2-8)
Observaţie:
S-a avut în vedere că xizi se determină în paralel cu p şi g, nu
consecutiv lor!
57
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
4.3.1. Principii
sm(x)=x/M (4.3.1-3)
sm(y)=y/M (4.3.1-4)
p=(xy)/M2=sm(xy) (4.3.1-5)
z=M2p=M2((xy)/M2)=xy (4.3.1-6)
În cazul în care cel puţin unul dintre numerele care se înmulţesc este
negativ, atunci, evident, cele de mai sus nu mai sunt valabile.
59
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Fie, pentru operanzi, (-Mop; Mop) = (-8; 8), r=1 şi, prin consecinţă,
lc_sm_op =4 biţi (inclusiv semnul) –a se revedea tabelul 4.1.1.2.1_2-, iar
pentru produse, (-Mp; Mp)=(-64; 64), r=1 şi, prin consecinţă, lc_sm_p =7
biţi (inclusiv semnul), şi fie, de asemenea, x=6 şi y=5.
Constatăm că dacă înmulţim imaginile celor două numere –adică:
numerele 0.750 şi 0.625-, obţinem numărul 0.46875, care, în condiţiile
stabilite, este imaginea semn-mărime a numărului 30=6*5 (într-adevăr:
64*0.46875=30).
610=1102 510=1012 111102=3010
y → 110 y2y1y0
x → 101 x2x1x0
110 20x0y
000 21x1y
110 22x2y
n −1
1 1 1 1 0 p = 2 j x j y, cu n = 3
j =0
60
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Fie y0' y−' 1 y−' 2 y−' 3 imaginea semn-mărime a lui y = + y2 y1 y0 şi x0' x−' 1 x−' 2 x−' 3
imaginea semn-mărime a lui x = + x2 x1 x0 . Rezultă:
y ' = 20 0 + 2 −1 y−' 1 + 2 −2 y−' 2 + 2 −3 y−' 3 (4.3.1-8)
Mp = Mop2Mop = 2 M op
2
= 2 82 = 128 (4.3.1-11)
62
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
CLK ÎNM
• X: bistabil
• MUX1: multiplexor
• A: registru de deplasare dreapta, cu posibilităţi de încărcare paralelă
• Q: registru de deplasare dreapta, cu posibilităţi de încărcare paralelă
• M: registru cu posibilităţi de încărcare paralelă
• DA: dispozitiv de adunare pe 8 biţi
• MUX2: multiplexor
• BC: bloc de comandă
65
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Funcţionarea dorită pentru schemă este cea descrisă prin organigrama din
figura 4.3.2_2. Se remarcă faptul că se parcurg 10 stări –o stare fiind un ciclu
al semnalului de tact-, dintre care una este starea de inactivitate, S0, alta este
starea de iniţializare, S1, iar celelalte opt, S2-S9, sunt stările
corespunzătoare celor 4 paşi ai algoritmului de înmulţire propriu-zisă, câte 2
pentru fiecare cifră binară din reprezentarea semn-mărime a înmulţitorului.
Rezultă, aşadar, că blocul de comandă al înmulţitorului va fi un automat
secvenţial cu 10 stări. Să-l proiectăm, acum, cu metoda diagramelor VID,
presupunând că implementarea vrem să o facem cu bistabile J-K.
66
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
0000 0110
S0 S4
0 ÎC
ÎNM
1 0111
S5
0001
S1
DD
IN
0101
X 0, S6
A(0:-3) 0,
Q(0:-3) x’, ÎC
M(0:-3) y’;
0100
0011 S7
S2
DD
ÎC
1100
A(0:-3) z(0:-3), S8
X Q(-3) M(0);
// z(0:-3) = A(0:-3) + Q(-3)*0.M(-1:-3)
ÎC, UP
67
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 ÎNM * * 0
01 0 * * 1
11 0 * * *
10 0 * * *
J 0 = B3 B2 B1 ÎNM + B2 B1
Fig. 4.3.2_5. Diagrama lui J pentru bistabilul B0.
68
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 * 0 1 *
01 * 1 0 *
11 * * * *
10 * * * *
K 0 = B2 B1 + B2 B1
Fig. 4.3.2_6. Diagrama lui K pentru bistabilul B0.
B1B0
B3B2 00 01 11 10
00 0 1 1 1
01 0 0 0 1
11 0 * * *
10 0 * * *
B1B0
B3B2 00 01 11 10
00 0 1 * *
01 0 0 * *
11 0 * * *
10 0 * * *
J1 = B2 B0
Fig. 4.3.2_8. Diagrama lui J pentru bistabilul B1.
B1B0
B3B2 00 01 11 10
00 * * 0 0
01 * * 1 0
11 * * * *
10 * * * *
K1 = B2 B0
Fig. 4.3.2_9. Diagrama lui K pentru bistabilul B1.
69
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 0 0 0 1
01 1 1 1 1
11 0 * * *
10 0 * * *
B1B0
B3B2 00 01 11 10
00 0 0 0 1
01 * * * *
11 * * * *
10 0 * * *
J 2 = B1 B0
Fig. 4.3.2_11. Diagrama lui J pentru bistabilul B2.
B1B0
B3B2 00 01 11 10
00 * * * *
01 0 0 0 0
11 1 * * *
10 * * * *
K 2 = B3
Fig. 4.3.2_12. Diagrama lui K pentru bistabilul B2.
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 1 0 0 0
11 1 * * *
10 0 * * *
70
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 1 0 0 0
11 * * * *
10 * * * *
J 3 = B2 B1 B0
Fig. 4.3.2_14. Diagrama lui J pentru bistabilul B3.
B1B0
B3B2 00 01 11 10
00 * * * *
01 * * * *
11 0 * * *
10 1 * * *
K 3 = B2
Fig. 4.3.2_15. Diagrama lui K pentru bistabilul B3.
A mai rămas să determinăm ecuaţiile ieşirilor, ieşiri care sunt: IN, ÎC, DD
şi UP. Întocmim, pentru fiecare dintre acestea, câte o “diagramă a ieşirii”
–vezi figurile 4.3.2_16 - 4.3.2_19-.
71
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 0 1 0 0
01 0 0 0 0
11 0 * * *
10 0 * * *
IN = B2 B1 B0
Fig. 4.3.2_16. Diagrama ieşirii IN.
B1B0
B3B2 00 01 11 10
00 0 0 1 0
01 0 1 0 1
11 1 * * *
10 0 * * *
IC = B2 B1 B0 + B2 B1 B0 + B3 B2 B1 + B2 B1 B0
B1B0
B3B2 00 01 11 10
00 0 0 0 1
01 1 0 1 0
11 0 * * *
10 1 * * *
DD = B2 B1 B0 + B2 B1 B0 + B3 B2 + B3 B2 B1 B0
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 1 * * *
10 1 * * *
UP = B3
Fig. 4.3.2_19. Diagrama ieşirii UP.
72
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
73
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
MUL
B3 0 0 0 0 0 0 0 0 1 1 0
B2 0 0 0 0 1 1 1 1 1 0 0
B1 0 0 1 1 1 1 0 0 0 0 0
B0 0 1 1 0 0 1 1 0 0 0 0
IN
ÎC
DD
UP
74
CLK
ÎNM
J Q J Q J Q J Q
C B3 C B2 C B1 C B0
UP
77
IN
ÎC
schemă
similară DD
celei
pentru ÎP
79
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
F A Q K M
' ' ' ' ' ' ' '
x0 x−1 x− 2 x−3 y0 y −1 y − 2 y −3
IN
DD
COR
ÎP
COR
4
z 4
cin selectat
IN ÎP DD COR
+ 4 cu “1”
4 4 M
U 4
BC 0000
X
selectat cu “0”
CLK MUL
80
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
81
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
82
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
83
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
S0 0000 0100
S4
0 ÎP
MUL
1 0101
0001 S5
S1
DD
IN
F 0, 0110
A(0:3) 0, S6
Q(0:3) x’,
ÎP
M(0:3) y’;
0111
0010 S7
S2
DD
ÎP
A(0:3) z(0:3), 1000
F F + M(0)Q(3); S8
// z(0:3) = A(0:3) + Q(3)*M(0:3)
ÎP
0011 A(0:3) z(0:3),
S3 F F + M(0)Q(3);
// z(0:3) = A(0:3) + Q(3)*M(0:3)
DD
K Q(3), 1001
Q(3) Q(2), S9
Q(0) A(3), DD
A(3) A(2), K Q(3),
Q(3) Q(2),
A(0) F;
Q(0) A(3),
A(3) A(2),
A(0) F;
1010
S10
ÎP, COR
A(0:3) z(0:3),
F F + M(0)Q(3);
// z(0:3) = A(0:3) - K*M(0:3)
IN = B3 B2 B1 B0
Fig. 4.3.3_4. Diagrama ieşirii IN.
85
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 0 0 0 1
01 1 0 0 1
11 * * * *
10 1 0 * 1
IP = B1 B0 + B2 B0 + B3 B0
Fig. 4.3.3_5. Diagrama ieşirii ÎP.
B1B0
B3B2 00 01 11 10
00 0 0 1 0
01 0 1 1 0
11 * * * *
10 0 1 * 0
DD = B1 B0 + B2 B0 + B3 B0
Fig. 4.3.3_6. Diagrama ieşirii DD.
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 * * * *
10 0 0 * 1
COR = B3 B1
Fig. 4.3.3_7. Diagrama ieşirii COR
COR
DD
ÎP
IN
CLK
J Q J Q J Q J Q
C B3 C B2 C B1 C B0
K R Q K R Q K R Q K R Q
RES
MUL
87
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
CLK
MUL
B0
B1
B2
B3
RE S
IN
IP
DD
COR
88
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
89
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
90
91
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
atunci:
n −1 −i ' n −1 −i '
___________________
P = 0 p p ... p
' ' '
−1 − 2 = y x = 2 y −i 2 x −i =
'
−( 2n − 2)
' '
i =1 i =1
−2 −3 − ( 2 n−2 )
= 2 ( x−1 y−1 ) + 2 ( x−1 y−2 + x−2 y−1 ) + ... + 2
' ' ' ' ' '
( x−' ( n−1) y−' ( n−1) ) (4.3.3_5)
iar:
______________________
P ' = p 0' p −' 1 p −' 2 ... p −' ( 2 n −2) (4.3.3_6)
cu:
p0' = x0' y0' (4.3.3_7)
p−' 1 = c−' 2 (4.3.3_8)
p−' 2 = x−' 1 y−' 1 + c−' 3 (4.3.3_9)
p−' 3 = x−' 1 y−' 2 + x−' 2 y−' 1 + c−' 4 (4.3.3_10)
p−' ( 2 n−2) = x−' ( n−1) y−' ( n−1) (4.3.3_11)
91
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
z z z
93
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
x' 1
Evident, în primul caz '
şi, în consecinţă, bitul de pondere 2-1 al
y 2
x' 1
câtului va fi 0, iar în cazul al doilea '
şi, în consecinţă, bitul de
y 2
pondere 2-1 al câtului va fi 1. Distincţia între cele două cazuri se va face în
practică prin testarea semnului expresiei 2 x ' - y ' .
94
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
START
___ ___________________
x = x0' x−' 1 ...x−' ( 2 n−1 ) : reprezentarea semn-mărime pe 2n biţi a deîmpărţitului,
'
x’ 2x’
// se face x’ egal cu modulul deîmpărţitului
deîmpărţitul
q0' = x0' y0'
i=1
q−i' = 1
DA
x’ 0
NU
q−i' = 0
x’ x’ + y’
i= i+1
DA
i n-1
NU
___ __________________
q = q0' q−' 1 ...q−' ( n−1 ) : câtul, în reprezentare semn-mărime
'
___ ___________________
x = x0' x−' 1 ...x−' ( 2 n−1 ) : restul, în reprezentare semn-mărime
'
STOP
95
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
selectat registrul
registrul restului, A registrul câtului, Q M cu 1 împărţitorului, M
' ' ' ' ' ' ' ' U ' ' ' '
x0 x−1 x− 2 x−3 AQ(3) x−4 x−5 x −6 x −7 X “1” y0 y −1 y − 2 y −3
1
selectat
IN
PD cu 0
DS
ÎS
ÎA
“0”
4
z
selectat cu “1”
- DAS 4 4
4 4 M
IN PD DS ÎS ÎA 1 2
U 4 0000
X
BC 2 selectat cu “0”
CLK DIV
98
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
S0 0000 S6 0110
DIV 0 DS
1 0111
0001 S7
S1
ÎS
IN
A(0:3).Q(0:3) x’sm pe 8 biţi ,
S8 1000
M(0:3) y’sm pe 4 biţi ;
S2 0010 ÎA
S9 1001
DS, PD
Q(3) A(0)M(0),
... DS
A(3) Q(0),
A(0) A(1); S10 1010
S3 0011 ÎS
DS S11 1011
Q(3) 1,
...
A(3) Q(0), ÎA
A(0) A(1);
// A(0:3) = pcms a lui 2x’
S4 0100
ÎS
A(0:3) z(0:3),
// z(0:3) = A(0:3) – MUX2(0:3)
// MUX2(0:3) = 0.M(1:3) = y’
S5 0101
ÎA
A(0:3) z(0:3),
//z(0:3) = A(0:3) + MUX2(1:3)
//MUX2(0:3) = fie 0.M(1:3), fie 0000
B1B0
B3B2 00 01 11 10
00 0 0 1 1
01 0 0 0 1
11 * * * *
10 0 1 0 0
DS = B3 B2 B1 + B3 B1 B0 + B3 B1 B0
Fig. 4.4.2_6. Diagrama ieşirii DS.
101
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 1 0 1 0
11 * * * *
10 0 0 0 1
IS = B2 B1 B0 + B2 B1 B0 + B3 B1 B0
Fig. 4.4.2_7. Diagrama ieşirii ÎS
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 0 1 0 0
11 * * * *
10 1 0 1 0
IA = B3 B1 B0 + B2 B1 B0 + B3 B1 B0
Fig. 4.4.2_8. Diagrama ieşirii ÎA
IN = B3 B2 B1 B0 (4.4.2_2)
PD = B3 B2 B1 B0 (4.4.2_3)
DS = B3 B2 B1 + B3 B1 B0 + B3 B1 B0 (4.4.2_4)
IS = B2 B1 B0 + B2 B1 B0 + B3 B1 B0 (4.4.2_5)
IA = B3 B1 B0 + B2 B1 B0 + B3 B1 B0 (4.4.2_6)
102
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
ÎA
schemă ÎS
cu
porţi
DS
PD
IN
CLK
J Q J Q J Q J Q
C B3 C B2 C B1 C B0
K R Q K R Q K K
R Q R Q
RES
DIV
103
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
S0 S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11
CLK
DIV
B0
B1
B2
B3
RE S
IN
PD
DS
ÎS
ÎA
104
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Nr. crt. B3B2B1B0 A Q M Operaţia
0 0000 xxxx xxxx xxxx START linia 1
1 0001 xxxx xxxx xxxx IN linia 2
2 0010 1000 1110 0011 DS, PD linia 3
3 0011 0001 1101 0011 DS linia 4
4 0100 0011 - 1011 0011 ÎS linia 5
0011
5 0101 0000 + 1011 0011 ÎA linia 6
0000
6 0110 0000 1011 0011 DS linia 7
7 0111 0001 - 0111 0011 ÎS linia 8
0011
8 1000 1110 + 0111 0011 ÎA linia 9
0011
9 1001 0001 0110 0011 DS linia 10
10 1010 0010 - 1101 0011 ÎS linia 11
0011
11 1011 1111 + 1101 0011 ÎA linia 12
0011
12 1100 0010 1100 0011 NIMIC linia 13
13 0000 0010 1100 0011
105
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Nr. crt. B3B2B1B0 A Q M Operaţia
0 0000 xxxx xxxx xxxx START linia 1
1 0001 xxxx xxxx xxxx IN linia 2
2 0010 1000 1110 0011 DS, PD linia 3
3 0011 0001 1101 0011 DS linia 4
4 0100 0011 - 1011 0011 ÎS linia 5
0011
5 0101 0000 + 1011 0011 ÎA linia 6
0000
6 0110 0000 1011 0011 DS linia 7
7 0111 0001 - 0111 0011 ÎS linia 8
0011
8 1000 1110 + 0111 0011 ÎA linia 9
0011
9 1001 0001 0110 0011 DS linia 10
10 1010 0010 - 1101 0011 ÎS linia 11
0011
11 1011 1111 + 1101 0011 ÎA linia 12
0011
12 1100 0010 1100 0011 NIMIC linia 13
13 0000 0010 1100 0011
105
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Rezultă:
1 , daca 1 0
R1 = (4.4.3_3)
1 + y ' , daca 1 0
şi:
21 − y ' = 21 − y ' , daca Δ1 0
2 = 2 R1 − y ' = (4.4.3_4)
2(1 + y ' ) − y ' = 21 + y ' , daca 1 0
2 , daca 2 0
R2 =
2 + y ' , daca 2 0
...
2 i −1 − y ' , daca Δ i −1 0
i = 2 Ri −1 − y ' = (4.4.3_5)
2 i −1 + y ' , daca Δ i −1 0
106
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
START
___ ___________________
x = x0' x−' 1 ...x −' ( 2 n −1 ) : reprezentarea semn-mărime pe 2n biţi a deîmpărţitului,
'
x’ 2x’
// se face x’ egal cu modulul deîmpărţitului
deîmpărţitul
q0' = x0' y0'
i=0
i= i+1
q−i' = 1
NU DA
x’ 0
q−i' = 0
NU NU
i < n-1 i < n-1
DA DA
x 2x + y’
’ ’
x 2x - y’
’ ’
NU
x’ 0
DA
x’ x’ + y’
___ __________________
q ' = q0' q −' 1 ...q −' ( n −1 ) : câtul, în reprezentare semn-mărime
___ ___________________
x = x0' x −' 1 ...x−' ( 2 n −1 ) : restul, în reprezentare semn-mărime
'
STOP
107
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
registrul
deîmpărţitului, AQ
selectat registrul
registrul restului, A registrul câtului, Q împărţitorului, M
M cu 1
' ' ' ' ' ' ' ' U ' ' ' '
x0 x−1 x− 2 x−3 AQ(3) x−4 x−5 x −6 x −7 X “1”
y0 y −1 y − 2 y −3
selectat
IN
PD cu 0
DS
ÎS
ÎA
4 “0”
COR
z
- sUM/SCĂZ 4
4 4
IN PD DS ÎS ÎA COR
BC
CLK DIV
Fig. 4.4.3_2. Schema bloc a împărţitorului fără refacerea resturilor.
110
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
111
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
S0 0000 S5 0101
DIV 0 DS
1 0110
0001 S6
S1
ÎS / ÎA
IN
A(0:3).Q(0:3) x’sm pe 8 biţi , 0111
M(0:3) y’sm pe 4 biţi ; S7
S2 0010 DS
S8 1000
DS, PD
Q(3) A(0)M(0),
... ÎS / ÎA
A(3) Q(0),
A(0) A(1); A(0) 0
S3 0011 1
S9 1001
DS
Q(3) 1, ÎA
... A(0:3) z(0:3),
A(3) Q(0), //z(0:3) = A(0:3) + 0.M(1:3)
A(0) A(1);
// A(0:3) = pcms a lui 2x’
S4 0100
1 A(0) 0
ÎA ÎS
A(0:3) z(0:3), A(0:3) z(0:3),
//z(0:3) = A(0:3) + 0.M(1:3) // z(0:3) = A(0:3) – 0.M(1:3)
112
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 S0 S1 S3 S2
01 S4 S5 S7 S6
11 * * * *
10 S8 S9 * *
Fig. 4.4.3_4. Diagrama codificării stărilor.
B1B0
B3B2 00 01 11 10
00 0 1 0 0
01 0 0 0 0
11 * * * *
10 0 0 * *
IN = B3 B2 B1 B0
Fig. 4.4.3_5. Diagrama ieşirii IN.
B1B0
B3B2 00 01 11 10
00 0 0 0 1
01 0 0 0 0
11 * * * *
10 0 0 * *
PD = B2 B1 B0
Fig. 4.4.3_6. Diagrama ieşirii PD.
B1B0
B3B2 00 01 11 10
00 0 0 1 1
01 0 1 1 0
11 * * * *
10 0 0 * *
DS = B2 B0 + B2 B1
Fig. 4.4.3_7. Diagrama ieşirii DS.
113
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 A(0) 0 0 A(0)
11 * * * *
10 A(0) 0 * *
_______ _______
IS = A( 0 ) B2 B0 + A( 0 ) B3 B1 B0
Fig. 4.4.3_8. Diagrama ieşirii ÎS.
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 A(0) 0 0 A(0)
11 * * * *
10 A(0) 1 * *
IA = A( 0 ) B2 B0 + A( 0 ) B3 + B3 B0
Fig. 4.4.3_9. Diagrama ieşirii ÎA.
B1B0
B3B2 00 01 11 10
00 0 0 0 0
01 0 0 0 0
11 * * * *
10 0 1 * *
COR = B3 B0
Fig. 4.4.3_10. Diagrama ieşirii COR.
IN = B3 B2 B1 B0 (4.4.3_7)
PD = B2 B1 B0 (4.4.3_8)
DS = B2 B0 + B2 B1 (4.4.3_9)
_____ _____
IS = A( 0 ) B2 B0 + A( 0 ) B3 B1 B0 (4.4.3_10)
IA = A( 0 ) B2 B0 + A( 0 ) B3 + B3 B0 (4.4.3_11)
COR = B3 B0 (4.4.3_12)
114
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
PD
IN
CLK
J Q J Q J Q J Q
C B3 C B2 C B1 C B0
K R Q K R Q K K
R Q R Q
RES
DIV
115
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
CLK
DIV
B0
B1
B2
B3
RE S
IN
PD
DS
COR
116
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
Nr. crt. B3B2B1B0 A Q M Operaţia
0 0000 xxxx xxxx xxxx START linia 1
1 0001 xxxx xxxx xxxx IN linia 2
2 0010 1000 1110 0011 DS, PD linia 3
3 0011 0001 1101 0011 DS linia 4
4 0100 0011 - 1011 0011 ÎS linia 5
0011
5 0101 0000 1011 0011 DS linia 6
6 0110 0001 - 0111 0011 ÎS linia 7
0011
7 0111 1110 0110 0011 DS linia 8
8 1000 1100 + 1101 0011 ÎA linia 9
0011
9 1001 1111 + 1100 0011 ÎA linia 10
0011
10 0000 0010 1100 0011 NIMIC linia 11
11 0000 0010 1100 0011
117
CAP. 4. DESPRE PROCESOR. UNITATEA ARITMETICO-LOGICĂ
118
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
5
DESPRE PROCESOR. UNITATEA DE REGISTRE
5.1. Introducere
119
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
Registrele A, B, şi C
Registrul F
120
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
121
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
ŞI, SAU etc.), iar la altele inclusiv operaţiile de transfer simplu dintr-un loc
în altul. Bistabilele registrului F poartă numele de fanioane. Ele sunt notate
cu Z, S, C, V şi P.
Fanionul Z arată dacă rezultatul ultimei operaţii este nul sau nenul. Când
rezultatul este nul, atunci Z=1, când rezultatul este nenul, atunci Z=0.
Fanionul S arată dacă rezultatul ultimei operaţii este negativ sau nenegativ
(adică: pozitiv sau zero). Când rezultatul este negativ, atunci S=1, când
rezultatul este nenegativ, atunci S=0.
Fanionul P arată dacă rezultatul ultimei operaţii are un număr par sau un
număr impar de biţi cu valoarea “1”. Când rezultatul are un număr par de biţi
cu valoarea “1”, atunci P=1, când rezultatul are un număr impar de biţi cu
valoarea “1”, atunci P=0. Se face precizarea că şi convenţia inversă de
poziţionare a fanioanelor P poate fi întâlnită.
Registrul SP
ş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
întâi, încărcarea registrului SP cu adresa cea mai de sus a respectivei zone, iar
apoi respectarea cu stricteţe a următoarei proceduri:
A. la scriere:
1. se decrementează SP cu o unitate
2. se scrie la adresa din SP octetul superior din perechea de doi octeţi 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 octeţi ce
trebuie depusă în stivă
B. la citire:
1. se citeşte de la adresa din SP octetul inferior din perechea de doi octeţi
ce trebuie descărcată din stivă
2. se incrementează SP cu o unitate
3. se citeşte de la adresa din SP octetul superior din perechea de doi octeţi
ce trebuie descărcată din stivă
4. se incrementează SP cu o unitate
Registrele B1, B2 şi B3
Registrele B1, B2 şi B3 sunt registre auxiliare, de uz exclusiv intern. B1
joacă 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 ieşirile cu trei stări logice. Activarea respectivelor ieşiri
se face cu ajutorul semnalelor OB_B2, respectiv OB_B3, care înseamnă: “on
the bus B2”, respectiv “on the bus B3”.
Registrele 0G şi 1G
Registrele 0G şi 1G sunt, de fapt, pseudoregistre, de uz exclusiv intern.
Rolul lor este acela de a pune pe magistrala pe care se vehiculează datele,
atunci când sunt selectate cu semnalele OB_0G, respectiv OB_1G, un octet
de valoare zero, respectiv un octet de valoare unu, necesari în implementarea
unora dintre instrucţii.
123
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
cuvânt lung
cuvânt
octet
31 16 15 87 0 D0
31 16 15 87 0 D1
31 16 15 87 0 D2
31 16 15 87 0 D3
31 16 15 87 0 D4
31 16 15 87 0 D5
31 16 15 87 0 D6
31 16 15 87 0 D7
31 16 15 0 A0
31 16 15 0 A1
31 16 15 0 A2
31 16 15 0 A3
31 16 15 0 A4
31 16 15 0 A5
31 16 15 0 A6
31 16 15 0 A7
31 16 15 0 A7’
15 87 0 SR
nivel de cuadruplu octet, numit cuvânt lung. Lucrul la nivel de octet vizează
în mod implicit biţii 0-7, în timp ce biţii 8-31 rămân neafectaţi, iar lucrul la
nivel de cuvânt vizează în mod implicit biţii 0-15, în timp ce biţii 16-31
rămân neafectaţi. În limbaj de asamblare, se specifică dacă la un moment se
doreşte lucrul pe octet, cuvânt sau cuvânt lung cu ajutorul unui sufix adăugat
mnemonicelor instrucţiilor. Sufixul este “B” în cazul lucrului pe octet, “W”
în cazul lucrului pe cuvânt şi “L” în cazul lucrului pe cuvânt lung. În toate
cazurile, mnemonicul este separat de sufix printr-un caracter “.”.
Exemple:
Să presupunem că registrul D3 conţine valoarea hexazecimală 11223344.
1. Dacă se doreşte anularea octetului format din biţii 0-7, se execută
instrucţia CLR.B D3, obţinându-se în D3 valoarea hexazecimală
11223300.
2. Dacă se doreşte anularea dublului octet format din biţii 0-15, se
execută instrucţia CLR.W D3, obţinându-se în D3 valoarea
hexazecimală 11220000.
3. Dacă se doreşte anularea întregului conţinut al registrului D3, se
execută instrucţia CLR.L D3, obţinându-se valoarea hexazecimală
00000000.
Fanionul S indică dacă modul de lucru este supervizor –în acest caz S=1-
sau utilizator –în acest caz S=0-.
127
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
15 87 0
AH AL AX
BH BL BX
CH CL CX
DH DL DX
SP
BP
SI
DI
F
128
CAP. 5. DESPRE PROCESOR. UNITATEA DE REGISTRE
Chiar dacă, aşa cum se poate remarca din descrierea de mai sus, fiecare
dintre registrele AX, BX, CX, DX îşi are particularităţile sale –unitatea de
registre a procesorului INTEL 8086 este, evident, una heterogenă-, există un
termen comun pentru referirea lor, şi anume: termenul de “registre de date”.
130
A15-A0
LD_B3
B3
SEL_IRE
SEL_PC
AM
SEL_SP
SEL_BC
SEL_ALU SEL_DB
OCD ADD MUX
… SUB
MRQ LD_IR ALU
XOR
IORQ LD_A
RD OB_A
S
WR ..
.
ACK ADD
RESET RESET Fig. 5.2_1. Blocurile în gri: unitatea de registre
RG
CLK CLK
a procesorului didactic CSAC 2001.
CG
A15-A0
LD_B3
B3
SEL_IRE
SEL_PC
AM
SEL_SP
SEL_BC
OCD ADD
… SUB
MRQ LD_IR ALU
XOR
IORQ LD_A
RD OB_A
S
WR .. F
.
ACK ADD OB_F
RESET RESET LD_F Fig. 5.2_1. Blocurile în gri: unitatea de registre
RG
CLK CLK
a procesorului didactic CSAC 2000.
CG
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
6
DESPRE PROCESOR. UNITATEA DE COMANDĂ
După cum s-a văzut, nucleul unui calculator este constituit din procesor,
memorie şi interfeţe, la nivelul procesorului distingându-se: unitatea
aritmetico-logică, unitatea de registre şi unitatea de comandă.
131
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
4). Instrucţiile se reprezintă prin coduri care sunt fie de lungime fixă, fie de
lungime variabilă.
5). Un cod de instrucţie cuprinde câmpuri prin care se specifică:
• operaţia ce face obiectul instrucţiei
• operandul / operanzii sau informaţii despre locul în care se află
operandul / operanzii
• informaţii despre locul unde trebuie depus rezultatul
6). O instrucţie este urmată în execuţie, în mod implicit, de instrucţia situată
în memorie imediat după ea. În cazul instrucţiilor de salt, de apel de
subrutină şi de revenire din subrutină, instrucţia următoare se determină
de către fiecare dintre ele în mod specific, prin algoritmul înglobat
special în cadrul lor, în acest sens.
7). Programele aflate în rulare sunt “încărcate”, adică: au instrucţiile
amplasate în memorie, în acord cu logica programului, în locaţii de
adrese consecutiv crescătoare sau rezultate din logica internă a
instrucţiilor de salt, de apel de subrutină şi de revenire din subrutină.
132
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Registrul PC
Registrul IR
133
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
134
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
135
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
136
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Etapa de execuţie cuprinde unul sau mai multe cicluri de citire, respectiv
de scriere, vizând memoria sau un port, în mod specific pentru fiecare
instrucţie. Aceste cicluri au ca obiectiv, în principal, citirea operanzilor,
respectiv scrierea rezultatului, dar, uneori, mai înainte de asta, aducerea
informaţiilor privind locul operanzilor şi-sau rezultatului, ce se prezintă
separat de codul operaţiei.
Semnalul OB_A (on the bus A) are rolul de a determina punerea pe liniile
de date ale procesorului a conţinutului registrului A, prin activarea ieşirilor
cu 3 stări ale acestui registru. Este activ pe nivelul ridicat, adică: pe nivelul
de “1”.
________
Semnalul MRQ (“memory request”) are rolul de a mobiliza memoria în
vederea efectuării unei operaţii. Operaţia poate fi de citire sau de scriere,
____ ____
dependent de valoarea logică a semnalelor RD şi WR . Este activ pe nivelul
coborât, adică: pe nivelul de “0”.
_________
Semnalul IORQ (“input-output request”) are rolul de a mobiliza unitatea
de porturi în vederea efectuării unei operaţii. Operaţia poate fi de citire sau
____ ____
de scriere, dependent de valoarea logică a semnalelor RD şi WR . Este activ
pe nivelul coborât, adică: pe nivelul de “0”.
____
Semnalul RD (“read”) are rolul de a specifica memoriei sau unităţii de
________
porturi că operaţia dispusă de procesor prin semnalele MRQ , respectiv
_________
IORQ este una de citire. Este activ pe nivelul coborât, adică: pe nivelul
de “0”.
____
Semnalul WR (“write”) are rolul de a specifica memoriei sau unităţii de
________
porturi că operaţia dispusă de procesor prin semnalele MRQ , respectiv
_________
IORQ este una de scriere. Este activ pe nivelul coborât, adică: pe nivelul de
“0”.
138
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Generatorul de tact
Generatorul de reset
139
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
140
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
a). când val (bit7... bit5) [0012...1102] şi val (bit4 bit3) [002...102]:
7 6 5 4 3 2 1 0
141
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
b). când val (bit7... bit5) [0012...1102] şi val (bit4 bit3) = 112:
7 6 5 4 3 2 1 0
c). când val (bit7... bit5) = 1112 şi val (bit4 bit3) [002...102]
şi val (bit2 ... bit0) [0002...1012]:
7 6 5 4 3 2 1 0
d). când val (bit7 ... bit5) = 1112 şi val (bit4 bit3) [002...102]
şi val (bit2 ... bit0) = 1102:
7 6 5 4 3 2 1 0
e). când val (bit7... bit5) = 1112 şi val (bit4 bit3) = 002
142
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
codul codul
operaţiei operaţiei
111: op = vezi 00111: op= RET
val (bit4 ... bit0)
f). când val (bit7 ... bit5) = 1112 şi val (bit4 bit3) = 112
7 6 5 4 3 2 1 0
g). când val (bit7 ... bit5) = 0002 şi val (bit3 ... bit0) 0000, 1000, 01112:
7 6 5 4 3 2 1 0
h). când val (bit7 ... bit5) = 0002 şi val (bit3 ... bit0) = 11112:
7 6 5 4 3 2 1 0
codul codul
operaţiei operaţiei
000: op = vezi 01111: op= INC BC
val (bit4 ... bit0) 11111: op= DEC BC
i). când val (bit7 bit6 bit5) = 0002 şi val (bit2 bit1 bit0) 001...1102:
143
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
7 6 5 4 3 2 1 0
144
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
145
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
146
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Descriere:
Încarcă x cu y (a se citi: “încarcă un registru sau o locaţie de memorie cu
o valoare specificată prin adresare imediată sau cu o copie a unui octet aflat
într-un registru sau într-o locaţie de memorie”.
Codificare:
Aşa cum rezultă din figura 6.3.2_1, instrucţia LD poate avea 1-4 octeţi, în
funcţie de modurile de adresare pe care le foloseşte. Semnificaţiile octeţilor
sunt următoarele:
a). cazul L= 1 octet
Octetul 1 (unicul) reprezintă codul operaţiei. În plus, în cazul adresărilor “la
registru” şi “indirectă”, tot el indică şi registrul / locaţia de memorie vizat /
vizată prin respectivele adresări.
b). cazul L= 2 octeţi
Octetul 1 reprezintă codul operaţiei. În plus, în cazul adresărilor “la registru”
şi “indirectă”, tot el indică şi registrul / locaţia de memorie vizat / vizată prin
respectivele adresări.
Octetul 2 reprezintă operandul efectiv -adică: pe aa-, cazul L=2 octeţi
conţinând o adresare imediată.
c). cazul L= 3 octeţi
Octetul 1 reprezintă codul operaţiei. În plus, tot el indică şi registrul vizat
prin adresarea “la registru” pe care cazul L=3 octeţi o conţine inevitabil.
Octetul 2 reprezintă partea mai puţin semnificativă a adresei locaţiei de
memorie vizată -adică: pe aaaaL-, cazul L=3 octeţi conţinând o adresare
directă.
Octetul 3 reprezintă partea mai semnificativă a adresei locaţiei de memorie
vizată -adică: pe aaaaH-, cazul L=3 octeţi conţinând o adresare directă.
147
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Descriere:
Adună pe x cu y şi oferă rezultatul în x şi informaţii despre rezultat în F.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia LD este valabil şi
pentru instrucţia ADD.
Descriere:
Scade din x pe y şi oferă rezultatul în x şi informaţii despre rezultat în F.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia LD este valabil şi
pentru instrucţia SUB.
148
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Descriere:
Efectuează operaţia ŞI bit la bit între x şi y şi oferă rezultatul în x şi
informaţii despre rezultat în F.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia LD este valabil şi
pentru instrucţia AND.
Descriere:
Efectuează operaţia SAU bit la bit între x şi y şi oferă rezultatul în x şi
informaţii despre rezultat în F.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia LD este valabil şi
pentru instrucţia OR.
Descriere:
Efectuează operaţia SAU EXCLUSIV bit la bit între x şi y şi oferă
rezultatul în x şi informaţii despre rezultat în F.
149
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia LD este valabil şi
pentru instrucţia XOR.
Descriere:
Incrementează x şi oferă informaţii despre rezultat în F.
Codificare:
Aşa cum rezultă din figura 6.3.2_1, instrucţia INC poate avea fie 1 octet,
fie 3 octeţi, în funcţie de modurile de adresare pe care le foloseşte.
Semnificaţiile octeţilor sunt următoarele:
a). cazul L= 1 octet
Octetul 1 (unicul) reprezintă codul operaţiei. În plus, în cazul adresărilor “la
registru” şi “indirectă”, tot el indică şi registrul / locaţia de memorie vizat /
vizată prin respectivele adresări.
b). cazul L= 3 octeţi
Octetul 1 reprezintă codul operaţiei.
Octetul 2 reprezintă partea mai puţin semnificativă a adresei locaţiei de
memorie vizată -adică: pe aaaaL-, cazul L=3 octeţi conţinând o adresare
directă.
Octetul 3 reprezintă partea mai semnificativă a adresei locaţiei de memorie
vizată -adică: pe aaaaH-, cazul L=3 octeţi conţinând o adresare directă.
Descriere:
Decrementează x şi oferă informaţii despre rezultat în F.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia INC este valabil şi
pentru instrucţia DEC.
9. Instrucţia de deplasare la dreapta (SHR).
150
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Notaţie:
SHR x
unde:
xA, B, C, (BC), (aaaa)
Descriere:
Deplasează la dreapta cu o poziţie biţii lui x şi oferă informaţii despre
rezultat în F. În procesul de deplasare, în rangul de pondere 27 al lui x se
introduce valoarea 0, iar ceea ce a fost în rangul de pondere 20 se transferă în
fanionul C.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia INC este valabil şi
pentru instrucţia SHR.
Descriere:
Deplasează la stânga cu o poziţie biţii lui x şi oferă informaţii despre
rezultat în F. În procesul de deplasare, în rangul de pondere 20 al lui x se
introduce valoarea 0, iar ceea ce a fost în rangul de pondere 27 se transferă în
fanionul C.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia INC este valabil şi
pentru instrucţia SHL.
Descriere:
151
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Descriere:
Scoate într-un port de ieşire x o copie a octetului aflat în y.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia IN este valabil şi
pentru instrucţia OUT.
Descriere:
Depune x în stivă.
Codificare:
Aşa cum rezultă din figura 6.3.2_1, instrucţia PUSH are 1 octet.
Semnificaţiile sale sunt următoarele:
Octetul 1 (unicul) reprezintă codul operaţiei. În plus, tot el indică şi perechea
de registre vizată prin adresarea “la registru” pe care instrucţia o conţine
inevitabil.
152
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Notaţie:
POP x
unde:
x AF, BC
Descriere:
Încarcă x prin descărcarea stivei.
Codificare:
Tot ce s-a spus în privinţa codificării la instrucţia PUSH este valabil şi
pentru instrucţia POP.
Codificare:
Aşa cum rezultă din figura 6.3.2_1, instrucţia JP poate avea fie 1 octet,
fie 3 octeţi, în funcţie de modurile de adresare pe care le foloseşte.
Semnificaţiile octeţilor sunt următoarele:
153
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
154
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Aşa cum rezultă din figura 6.3.2_1, instrucţia CALL poate avea fie 1
octet, fie 3 octeţi, în funcţie de modurile de adresare pe care le foloseşte.
Semnificaţiile octeţilor sunt următoarele:
a). cazul L= 1 octet
Octetul 1 (unicul) reprezintă codul operaţiei. În plus, tot el indică şi faptul că
adresa instrucţiei 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 octeţi
Octetul 1 reprezintă codul operaţiei, iar în cazul instrucţiilor de apel
condiţionat –în plus, condiţia impusă.
Octetul 2 reprezintă partea mai puţin semnificativă a adresei locaţiei de
memorie vizată -adică: pe aaaaL-, cazul L=3 octeţi conţinând o adresare
directă.
Octetul 3 reprezintă partea mai semnificativă a adresei locaţiei de memorie
vizată -adică: pe aaaaH-, cazul L=3 octeţi conţinând o adresare directă.
Evident, în cazurile în care apelul trebuie executat, acest lucru se
realizează prin încărcarea registrului PC cu conţinutul registrului pereche
BC –dacă x = (BC)-, repectiv cu octeţii 2 şi 3 ai instrucţiei –dacă x = (aaaa),
după ce conţinutul său, reprezentând adresa instrucţiei imediat următoare din
punct de vedere topologic, a fost salvat în stivă.
155
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Etapa de execuţie cuprinde unul sau mai multe cicluri de citire, respectiv
de scriere, vizând memoria sau un port, în mod specific pentru fiecare
instrucţie. Aceste cicluri au ca obiectiv, în principal, citirea operanzilor,
respectiv scrierea rezultatului, dar, uneori, mai înainte de asta, aducerea
informaţiilor privind locul operanzilor şi-sau rezultatului, ce se prezintă
separat de codul operaţiei.
156
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Notă:
Pentru înţelegerea a ceea ce urmează, este obligatorie folosirea
schemei procesorului CSAC 2001 –figura 6.2_1- şi schemei memoriei
avută în vedere –figura 2_2-.
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_IR
INC_PC
ciclul fetch
157
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
158
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
LD SP, 0
Notă:
În cele ce urmează, valorile hexazecimale se vor marca asociind
succesiunii cifrelor prin care ele se exprimă sufixul “H”. Se face
convenţia ca atunci când prima cifră a unei valori hexazecimale este o
literă (evident, una din literele A-F), în faţa acesteia să se adauge cifra 0,
pentru a se crea posibilitatea deosebirii succesiunilor de caractere care
reprezintă numere de construcţiile alfanumerice de altă natură.
159
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
160
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_SPL
INC_PC
ciclul exec uţie 1
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_SPH
INC_PC
ciclul exec uţie 2
161
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
Instrucţia “JP (aaaa)” fiind şi ea una pe 3 octeţi, vor urma alte 2 cicluri
de citire, omoloage ciclurilor execuţie 1 şi execuţie 2 de la instrucţia
“LD SP, aaaa”, în cadrul cărora, cu ajutorul semnalelor LD_IREL,
respectiv LD_IREH, se încarcă registrele IREL şi IREH cu informaţia
aflată la adresele 0004H, respectiv 0005H, adică: cu octeţii 2 şi 3 ai
instrucţiei. Întrucât această informaţie reprezintă adresa la care se face saltul,
adică: adresa locaţiei unde se află instrucţia ce trebuie introdusă în rulare
după instrucţia JP, în continuare, se va proceda la transferul succesiv al
conţinuturilor registrelor IREL şi IREH în registrele PCL, respectiv PCH,
în cadrul unui ciclu de lucru desfăşurat exclusiv la nivelul procesorului.
Numim acest ciclu “execuţie 3”.
162
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_IREL
INC_PC
ciclul exec uţie 1
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_IREH
INC_PC
ciclul exec uţie 2
163
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
S0 S1
CLK
OB_IREL
LD_PCL
OB_IREH
LD_PCH
ci clul e xecuţi e 3
OB_A
LD_B1
SEL_BC
LD_B3
MRQ
ACK
RD
ADD
LD_B2
SEL_ALU
LD_F
ci clul e xecuţi e 1
165
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
OB_B2
LD_A
ciclul e xecuţi e 2
166
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_IREL
INC_PC
ciclul exec uţie 1
S0 SW S1
CLK
SEL_PC
LD_B3
MRQ
ACK
RD
LD_IREH
INC_PC
DEC_SP
ciclul exec uţie 2
S0 SW S1
CLK
167
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
SEL_SP
LD_B3
MRQ
ACK
WR
OB_PCH
DEC_SP
ciclul exec uţie 3
S0 SW S1
CLK
SEL_SP
LD_B3
MRQ
ACK
WR
OB_PCL
168
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
S0 S1
CLK
OB_IREL
LD_PCL
OB_IREH
LD_PCH
ci clul e xecuţi e 5
169
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
CLK
SEL_SP
LD_B3
MRQ
ACK
RD
LD_PCL
INC_SP
ciclul exec uţie 1
S0 SW S1
CLK
SEL_SP
LD_B3
MRQ
ACK
RD
LD_PCH
INC_SP
ciclul exec uţie 2
170
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
SEL_PC
LD_B3
MRQ
ACK
RD
LD_IREL
INC_PC
ciclul exec uţie 1
171
CAP. 6. DESPRE PROCESOR. UNITATEA DE COMANDĂ
CLK
SEL_IRE
LD_B3
IORQ
WR
OB_A
172
A15-A0
LD_B3
B3
SEL_IRE
SEL_PC
AM
SEL_SP
SEL_BC
SEL_ALU SEL_DB
OCD ADD MUX
… SUB
MRQ LD_IR ALU
XOR
IORQ LD_A
RD OB_A
S
WR ..
.
ACK ADD
RESET RESET Fig. 5.2_1. Blocurile în gri: unitatea de registre
RG
CLK CLK
a procesorului didactic CSAC 2001.
CG
7. Capabilităţi speciale ale procesoarelor
Procesorul sau Central Processing Unit (CPU) este componenta PC-ului care indeplineste
instructiunile date de sistemul de operare – poate fi considerat creierul calculatorului –
care primeste mesaje si indicatii si le transmite mai departe la celelalte componente care
sunt raspunzatoare de efectuarea lor. Daca vei face editari grafice, creezi muzica,
programezi si compilezi, vizionezi filme HD sau iti plac jocurile cu grafica buna, atunci e
bine sa alegi un procesor quad core, adica cu patru nuclee, fiecare putand sa proceseze
instructiuni individuale.
In continuare iti prezentam principalele caracteristici de care e bine sa tii seama cand vrei
sa faci o noua achizitie, pe care le-am extras analizand pareri despre cele mai bune
procesoare Quad Core Intel.
Pe piata producatorilor de componente pentru PC-uri, Intel este un nume cunoscut, fiind
pionier in multe tehnologii, si aliat cu mari firme precum Microsoft si Apple. In materie
de procesoare este un producator foarte important, detinand o mare parte din piata de
desktop-uri si laptop-uri.
Procesoarele cu patru nuclee Intel pot fi din seria i5 sau i7, care sunt de generatie mai
noua si intra in categoria foarte bune si excelente.
In notatia unui procesor avem specificat brandul (Intel Core), modelul de brand (i5, i7),
un grup de 4 cifre – prima semnifica generatia, cu cat este mai mare este mai nou, iar
urmatoarele trei sunt asa numitele SKU. Cu cat numarul SKU este mai mare cu atat
procesorul este mai performant din modelul din care face parte.
La unele modele dupa grupul de patru cifre mai apare si o litera care inseamna: T – este
optimizat pentru consum redus de energie; S – consum redus de energie fara impact
semnificativ asupra performantelor; K – procesorul este unlocked, adica se poate face
tactarea peste valorile setate de producator; R – grafica de inalta performanta; C –
unlocked si grafica de inalta performanta; X – are multiplicatorul deblocat si este
optimizat pentru performante extreme.
Poti alege procesoare cu frecvente ce beneficiaza de tehnologia Turbo Boost care aduce
performante, stiind sa aprecieze cate nuclee este necesar sa activeze simultan pentru
anumite aplicatii. Se activeaza doar cand sistemul de operare solicita performanta mai
mare procesorului.
Te poti orienta si dupa piese cu tehnologia Hyper Threading: procesorul creeaza nuclee
virtuale. Noile procesoare Quad Core folosesc patru nuclee pe care le pot transforma in 8
sarcini, ideale daca folosesti mai multe aplicatii odata, rulezi programe de editare video,
modelare 3D si altele.
Cand iti alegi procesorul trebuie sa fii atent si sa fie compatibil cu placa de baza, si
anume aceasta sa contina tipul de soclu sau socket pe care il foloseste procesorul dorit.
Memoria cache este si ea importanta, dar nu se poate alege separat de restul elementelor,
si cu cat este mai scump si mai performant un procesor, cu atat are mai multa memorie.
Exista pana la 3 niveluri de memorie cache L1, L2, L3.
Procesoarele pot avea cooler inclus sau nu. Pentru procesoarele de frecventa mare, este
mai indicat sa achizitionezi un ventilator separat, care este mult mai puternic si mai
silentios.
Pentru a putea alege un procesor Quad Core Intel, la un pret bun, iti prezentam in
continuare cateva modele pe care ai posibilitatea sa le comanzi online.
Placa de baza trebui sa aiba socket model 1151 pentru a fi compatibila cu acest procesor.
Are o memorie cache de 8MB, pe doua niveluri, ceea ce asigura rapiditate mare in
procesarea datelor. Frecventa de lucru este de 4200 MHz si poate fi tactata pana la
4500MHz cu ajutorul tehnologiei turbo boost pe care o are inclusa procesorul.
Tehnologia hyper threading asigura multiplicare virtuala a celor patru nuclee pana la opt.
Frecventa de lucru este 3.4 GHz, putand ajunge la 3.8 GHz cu ajutorul tehnologiei Turbo
boost. Memoria cache de 6 MB il recomanda pentru aplicatii de tip office mai
performante, grafica medie si gaming perfomant.
Frecventa de operare este 3 GHz (frecventa maxima la care poate rula un nucleu fiid de
3.5 GHz in modul Turbo), nedeblocat; are 4 nuclee, nu este Hyper Threading – dar poate
rula 4 thread-uri, 6 MB memorie cache, ceea ce confera un timp de raspuns mic si o
performanta foarte buna, fiind recomandat pentru calculatoare de tip desktop ce ruleaza
aplicatii de productivitate si gaming.
Este compatibil cu placile de baza socket 1151, si avand o putere disipata maxima de
65W, coolerul inclus ii asigura racirea corespunzatoare.
Cum arată cel mai puternic calculator din
lume. Face 93.000 de trilioane de calcule pe
secundă
Tweet
Trimite pe email
06.27.2016 | ● Vizualizări: 2300
0 Comentarii
+ zoom
Galerie foto (2)
Inginerii chinezi tocmai au construit cel mai puternic computer de până acum, cu o capacitate de 93
de petaflopi – sau, mai pe înţeles, 93.000 de trilioane de calcule pe secundă.
Ca toate supercomputerele, Sunway TaihuLight este imens, şi este instalat la Centrul Naţional de
Supecomputere din Wuxi, a scris Business Insider.
Ca oricare alt supercomputer, TaihuLight nu este ceva ce ai putea construi cu o şurubelniţă şi două
memorii de la magazinul din colţ. Sunway este alimentat de 10,5 milioane de procesoare adaptate şi
40.690 de noduri, toate construite local.
Se presupune că Sunway TaihuLight va fi folosit pentru sarcini mai utile omului de rând, precum
previziuni meteo sau lucrul cu mari calupuri de date.
Când ne gândim de obicei la calculatoare, ne gândim de obicei la nume mari precum IBM Watson
sau Deep Blue, dar în 2016 China conduce momentan piaţa supercomputerelor. Potrivit BBC, anul
acesta este primul din istorie când China deţine mai multe supercomputere decât Statele Unite.
Top procesoare performante
Petrus Procesoare Actualizat: June 19, 2016 4 Comments
CAMPANIE DE REDUCERI MASIVE, MAINE, LA EMAG! VEZI aici DETALII.
Am tot discutat până acum de placi video, de sisteme gata asamblate, iată că, în acest articol, vom
încerca să facem un top al procesoarelor performante pentru 2016.
În Romania foarte puțini aleg astfel de procesoare pentru jocuri, asa că majoritatea se îndreaptă spre
un procesor mai ieftin. Am discutat despre ele aici.
Este, însă, o nișă importantă de oameni care aleg aceste procesoare pentru producție video, pentru
editare 3d, proiectare și alte activități conexe.
AMD a pierdut lupta pe high end, așa că topul de mai jos va fi cu procesoare Intel. De fapt și de
drept, aceste procesoare de la Intel sunt singurele care beneficiază de memorii RAM DDR4 ce
lucrează în Quad Channel.
Aceste procesoare funcționează cu plăci de bază pe socket 2011. Am discutat despre acestea aici.
• i7-5930K – Face parte din seria Core i7 4th gen si are nucleu Haswell-E. Este tactat la 3.5
GHz si ajunge pana la 3.7 GHz in turbo. În 3D Mark ajunge la un punctaj de 9091.
• i7-5820K – probabil unul din cele mai bune procesoare Intel din punct de vedere al
raportului pret/performanta. În 3D Mark ajunge la un punctaj de 8573.
• i7-5960X – chiar dacă nu este cel mai performant procesor de la Intel, prețul este unul pe
masură. Este tactat la 3 GHz și ajunge la 3.5 GHz in turbo. În 3D Mark ajunge la un punctaj
de 9831.
Chiar dacă în România nu au prea mulți buget pentru a achiziționa așa ceva, în țările mai dezvoltate
există o nișă a entuziaștilor. Iată mai jos un videoclip cu procesorul I7 5930k folosit în jocuri:
Pe lângă procesoarele de mai sus avem și o serie de procesoare desktop. Ne limităm la cele din
Skylake, cele care funcționează cu memorii DDR4. Consider că, în perioada următoare, ofertele vor
fi tot mai diversificate pentru generația aceasta, iar Haswell sau Broadwell vor fi uitate.
• Intel 6600 – noul procesor I5 al celor de la Intel. Este disponibil din vara anului 2015 pe
piață și va înlocui vechiul 4460.
• Intel 6700 – este vârful de gamă pentru home user. Se găsește în 2 variante: cu multiplicator
deblocat(pentru overclock) și cu multiplicator blocat.