Sunteți pe pagina 1din 12

Baruch Zoltan Francisc

ARHITECTURA CALCULATOARELOR

ARHITECTURA
CALCULATOARELOR

Dr. ing. Baruch Zoltan Francisc


Universitatea Tehnic din Cluj-Napoca
Catedra de Calculatoare

Editura TODESCO
Cluj-Napoca, 2000

Recenzeni:

Prof. dr. ing. Iosif IGNAT


Prof. dr. ing. Vasile-Teodor DDRLAT

CUPRINS
PREFA .................................................................................... xi
1. INTRODUCERE ........................................................................ 1
1.1. CALCULATOARE NUMERICE .......................................................................................1
1.2. PROGRAMAREA CALCULATOARELOR NUMERICE ........................................................1
1.3. MODELUL UNUI CALCULATOR NUMERIC ....................................................................3
1.4. STRUCTURA MAINII FIZICE ........................................................................................5
1.4.1. Unitatea central de prelucrare ...................................................................................... 6
1.4.1.1. Unitatea aritmetic i logic ............................................................................. 6
1.4.1.2. Registrele ......................................................................................................... 7
1.4.1.3. Unitatea de comand i control ........................................................................ 7
1.4.2. Unitatea de memorie...................................................................................................... 8
1.4.3. Unitatea de intrare/ieire................................................................................................ 8
1.4.4. Interconexiuni................................................................................................................ 9

2. BAZELE ARITMETICE ALE CALCULATOARELOR............. 10


2.1. SISTEME DE NUMERAIE ...........................................................................................10
2.2. CONVERSIA BAZEI DE NUMERAIE ............................................................................12
2.2.1. Conversia numerelor ntregi ........................................................................................ 12
2.2.2. Conversia numerelor fracionare.................................................................................. 13
2.2.3. Conversia binar-zecimal ............................................................................................ 15

2.3. OPERAII ARITMETICE CU NUMERE FR SEMN........................................................17


2.3.1. Adunarea...................................................................................................................... 17
2.3.2. Scderea....................................................................................................................... 17
2.3.3. nmulirea .................................................................................................................... 18
2.3.4. mprirea .................................................................................................................... 18

2.4. REPREZENTAREA NUMERELOR N CALCULATOR .......................................................19


2.5. REPREZENTAREA NUMERELOR N VIRGUL FIX ......................................................20
2.5.1. Reprezentarea numerelor cu semn ............................................................................... 20
2.5.2. Reguli de deplasare a numerelor cu semn.................................................................... 23
2.5.3. Operaii cu numere reprezentate n virgul fix........................................................... 24
2.5.3.1. Adunarea numerelor reprezentate n C2......................................................... 24
2.5.3.2. Scderea numerelor reprezentate n C2 .......................................................... 25

2.6. REPREZENTAREA NUMERELOR N VIRGUL MOBIL .................................................26


2.6.1. Principii ....................................................................................................................... 26
2.6.2. Reprezentarea numerelor n formatul IEEE 754 .......................................................... 29

2.7. CODURI ....................................................................................................................34


2.7.1. Coduri binar-zecimale.................................................................................................. 34
2.7.2. Coduri detectoare de erori ........................................................................................... 37

vi

Arhitectura calculatoarelor
2.7.3. Coduri corectoare de erori ........................................................................................... 38
2.7.4. Coduri alfanumerice .................................................................................................... 40
2.7.4.1. ASCII............................................................................................................. 40
2.7.4.2. Unicode i ISO/IEC 10646 ............................................................................ 41

3. CIRCUITE LOGICE DIGITALE............................................... 46


3.1. ELEMENTE DE ALGEBR BOOLEAN ........................................................................ 46
3.1.1. Operatori booleeni i funcii booleene......................................................................... 46
3.1.2. Postulatele algebrei booleene ...................................................................................... 47
3.1.3. Teoremele fundamentale ale algebrei booleene........................................................... 49

3.2. PORI LOGICE .......................................................................................................... 50


3.3. FORMELE CANONICE ALE FUNCIILOR BOOLEENE .................................................... 52
3.4. MINIMIZAREA FUNCIILOR BOOLEENE ..................................................................... 56
3.4.1. Metoda algebric ......................................................................................................... 56
3.4.2. Metoda diagramelor Karnaugh .................................................................................... 57
3.4.2.1. Reprezentarea funciilor prin diagrama Karnaugh ......................................... 57
3.4.2.2. Minimizarea funciilor prin diagrama Karnaugh............................................ 58
3.4.2.3. Minimizarea funciilor incomplet definite ..................................................... 63

3.5. CIRCUITE LOGICE COMBINAIONALE ....................................................................... 64


3.5.1. Convertoare de cod...................................................................................................... 64
3.5.2. Decodificatoare ........................................................................................................... 66
3.5.2.1. Decodificator de adres.................................................................................. 67
3.5.2.2. Decodificator din cod BCD n zecimal .......................................................... 68
3.5.2.3. Utilizarea decodificatoarelor pentru implementarea funciilor logice ............ 70
3.5.3. Codificatoare ............................................................................................................... 71
3.5.4. Multiplexoare .............................................................................................................. 75
3.5.5. Demultiplexoare .......................................................................................................... 79
3.5.6. Circuite logice programabile ....................................................................................... 82
3.5.6.1. Memorii ROM ............................................................................................... 83
3.5.6.2. Reele logice programabile ............................................................................ 87
3.5.6.3. Circuite FPGA ............................................................................................... 91

3.6. CIRCUITE LOGICE SECVENIALE .............................................................................. 94


3.6.1. Prezentare general a circuitelor secveniale ............................................................... 94
3.6.2. Circuite basculante bistabile........................................................................................ 99
3.6.2.1. Bistabilul RS asincron.................................................................................. 100
3.6.2.2. Bistabilul RS sincron ................................................................................... 104
3.6.2.3. Bistabilul JK sincron.................................................................................... 105
3.6.2.4. Bistabilul D sincron ..................................................................................... 108
3.6.2.5. Bistabilul T sincron...................................................................................... 109
3.6.2.6. Bistabile de tip Master-Slave ....................................................................... 110
3.6.2.7. Circuite basculante bistabile integrate.......................................................... 111
3.6.3. Sinteza circuitelor secveniale ................................................................................... 112
3.6.4. Registre ..................................................................................................................... 114
3.6.4.1. Registre de memorare .................................................................................. 114
3.6.4.2. Registre de deplasare ................................................................................... 115
3.6.4.3. Registre serie-paralel ................................................................................... 116
3.6.4.4. Registre universale....................................................................................... 117

Cuprins

vii

3.6.5. Numrtoare .............................................................................................................. 117


3.6.5.1. Numrtoare asincrone................................................................................. 118
3.6.5.2. Numrtoare sincrone .................................................................................. 122

4. UNITATEA CENTRAL DE PRELUCRARE........................ 126


4.1. STRUCTURA UCP ...................................................................................................126
4.2. REGISTRE ...............................................................................................................128
4.2.1. Registre utilizator ...................................................................................................... 128
4.2.2. Registre de control i de stare .................................................................................... 128

4.3. MEMORIA STIV .....................................................................................................130


4.4. EXECUIA INSTRUCIUNILOR .................................................................................130
4.4.1. Subciclul de extragere................................................................................................ 131
4.4.2. Subciclul de execuie ................................................................................................. 132
4.4.3. Subciclul de ntrerupere............................................................................................. 136
4.4.4. Operaii de I/E ........................................................................................................... 137

4.5. PROCESOARELE INTEL ............................................................................................138


4.5.1. Prezentare general a procesoarelor Intel .................................................................. 138
4.5.2. Microarhitectura procesoarelor din familia P6 .......................................................... 143
4.5.2.1. Prezentare general a microarhitecturii ........................................................ 143
4.5.2.2. Prezentare detaliat a microarhitecturii ........................................................ 145

5. SETURI DE INSTRUCIUNI................................................. 150


5.1. ELEMENTELE UNEI INSTRUCIUNI MAIN .............................................................150
5.2. LIMBAJE DE ASAMBLARE ........................................................................................151
5.3. NUMRUL DE ADRESE ALE INSTRUCIUNILOR ........................................................152
5.4. TIPURI DE INSTRUCIUNI ........................................................................................154
5.4.1. Transferuri de date..................................................................................................... 154
5.4.2. Instruciuni aritmetice ................................................................................................ 155
5.4.3. Instruciuni logice ...................................................................................................... 155
5.4.4. Instruciuni de salt i apel .......................................................................................... 157
5.4.4.1. Instruciuni de salt........................................................................................ 157
5.4.4.2. Instruciuni de apel....................................................................................... 158
5.4.5. Instruciuni de control al sistemului........................................................................... 160
5.4.6. Instruciuni de I/E ...................................................................................................... 160

5.5. MODURI DE ADRESARE ...........................................................................................160


5.5.1. Adresarea imediat .................................................................................................... 161
5.5.2. Adresarea direct ....................................................................................................... 161
5.5.3. Adresarea indirect .................................................................................................... 162
5.5.4. Adresarea registrelor.................................................................................................. 163
5.5.5. Adresarea indirect prin registru................................................................................ 163
5.5.6. Adresarea cu deplasament ......................................................................................... 164
5.5.6.1. Adresarea relativ......................................................................................... 164
5.5.6.2. Adresarea bazat .......................................................................................... 165
5.5.6.3. Adresarea indexat ....................................................................................... 165

viii

Arhitectura calculatoarelor
5.5.7. Adresarea stivei ......................................................................................................... 166

5.6. FORMATUL INSTRUCIUNILOR ............................................................................... 166


5.6.1. Lungimea instruciunilor ........................................................................................... 167
5.6.2. Alocarea biilor.......................................................................................................... 167
5.6.3. Instruciuni cu lungime variabil ............................................................................... 168

6. UNITATEA ARITMETIC I LOGIC.................................. 170


6.1. CIRCUITE PENTRU ADUNAREA A DOU CIFRE BINARE ............................................ 170
6.2. OPERAII CU NUMERE N VIRGUL FIX................................................................. 173
6.2.1. Adunarea ................................................................................................................... 173
6.2.1.1. Sumatorul serie ............................................................................................ 174
6.2.1.2. Sumatorul paralel......................................................................................... 175
6.2.2. nmulirea binar ....................................................................................................... 176
6.2.2.1. Metoda nmulirii directe ............................................................................. 176
6.2.2.2. Metoda Booth .............................................................................................. 182
6.2.2.3. nmulirea pe grupe de cifre ......................................................................... 187
6.2.3. mprirea binar ....................................................................................................... 190
6.2.3.1. Principiul mpririi binare........................................................................... 190
6.2.3.2. Metode de mprire binar .......................................................................... 192
6.2.3.3. Metoda refacerii restului parial ................................................................... 192
6.2.3.4. Metoda fr refacerea restului parial........................................................... 196

6.3. OPERAII CU NUMERE N VIRGUL MOBIL ........................................................... 199


6.3.1. Adunarea i scderea n virgul mobil ..................................................................... 200
6.3.2. nmulirea i mprirea n virgul mobil ................................................................. 204
6.3.3. Consideraii de precizie ............................................................................................. 206

7. UNITATEA DE COMAND I CONTROL ........................... 208


7.1. MICRO-OPERAII.................................................................................................... 208
7.1.1. Subciclul de extragere ............................................................................................... 210
7.1.2. Subciclul de indirectare ............................................................................................. 211
7.1.3. Subciclul de execuie................................................................................................. 212
7.1.4. Subciclul de ntrerupere............................................................................................. 213
7.1.5. Ciclul de instruciune................................................................................................. 213

7.2. CONTROLUL UCP .................................................................................................. 214


7.2.1. Cerine funcionale pentru unitatea de comand........................................................ 214
7.2.2. Semnale de control .................................................................................................... 215
7.2.3. Exemplu de unitate de comand ................................................................................ 217

7.3. ORGANIZAREA INTERN A UCP............................................................................. 219


7.4. IMPLEMENTAREA UCC .......................................................................................... 220
7.4.1. UCC care utilizeaz un bistabil pe stare .................................................................... 220
7.4.2. UCC care utilizeaz un decodificator ........................................................................ 221
7.4.3. Uniti de comand microprogramate........................................................................ 222
7.4.3.1. Principiul UCC microprogramate ................................................................ 222
7.4.3.2. Structura unei UCC microprogramate.......................................................... 225
7.4.3.3. Secvenierea microinstruciunilor ................................................................ 227

Cuprins

ix

8. UNITATEA DE MEMORIE .................................................... 232


8.1. CARACTERISTICILE SISTEMELOR DE MEMORIE .......................................................232
8.2. IERARHIA DE MEMORII............................................................................................235
8.3. MEMORII SEMICONDUCTOARE ................................................................................237
8.3.1. Tipuri de memorii semiconductoare .......................................................................... 237
8.3.2. Organizarea memoriilor semiconductoare ................................................................. 239

8.4. MEMORIA STIV .....................................................................................................242


8.4.1. Tipuri de memorii stiv.............................................................................................. 242
8.4.1.1. Stiva implementat n memorie.................................................................... 242
8.4.1.2. Stiva cablat ................................................................................................. 243
8.4.1.3. Stiva parial cablat ...................................................................................... 244
8.4.2. Calculatoare orientate pe stiv ................................................................................... 244
8.4.2.1. Notaia polonez pentru expresiile aritmetice .............................................. 245
8.4.2.2. Evaluarea expresiilor postfixate ................................................................... 246

8.5. MEMORIA CACHE ...................................................................................................247


8.5.1. Principiul memoriei cache ......................................................................................... 247
8.5.2. Caracteristici ale memoriei cache .............................................................................. 251
8.5.2.1. Dimensiunea ................................................................................................ 251
8.5.2.2. Funcia de mapare ........................................................................................ 251
8.5.2.3. Metoda de nlocuire a blocurilor .................................................................. 255
8.5.2.4. Tehnica de scriere ........................................................................................ 255

9. UNITATEA DE I/E................................................................. 256


9.1. STRUCTURA UNITII DE I/E ..................................................................................256
9.2. TIPURI DE ECHIPAMENTE PERIFERICE .....................................................................257
9.3. MODULE DE I/E ......................................................................................................258
9.3.1. Funciile modulelor de I/E ......................................................................................... 258
9.3.2. Structura unui modul de I/E....................................................................................... 260

9.4. INTERFAA EXTERN .............................................................................................261


9.5. METODE DE TRANSFER A DATELOR ........................................................................261
9.5.1. Transferul programat ................................................................................................. 262
9.5.1.1. Principiul transferului programat ................................................................. 262
9.5.1.2. Comenzi de I/E............................................................................................. 263
9.5.1.3. Instruciuni de I/E......................................................................................... 263
9.5.2. Transferul prin ntreruperi ......................................................................................... 265
9.5.3. Transferul prin acces direct la memorie..................................................................... 267
9.5.4. Transferul prin canale de I/E ..................................................................................... 270
9.5.4.1. Principiul transferului prin canale de I/E...................................................... 270
9.5.4.2. Comunicaia dintre UCP i canalul de I/E.................................................... 272

BIBLIOGRAFIE ........................................................................ 275

PREFA

Cartea de fa trateaz arhitectura calculatoarelor numerice, deci studiul proiectrii acelor pri ale calculatoarelor care sunt vizibile pentru programatori. Cartea are
dou obiective principale. Primul este de a prezenta fundamentele necesare pentru nelegerea structurii calculatoarelor numerice. Astfel, sunt prezentate att bazele aritmetice,
ct i bazele logice ale acestor calculatoare. Al doilea obiectiv este de a descrie la un
nivel accesibil fiecare unitate component a unui calculator numeric. Aceast abordare
permite utilizarea crii i de ctre cei care nu dispun de cunotine prealabile n domeniul reprezentrii informaiei i cel al circuitelor logice digitale.
Capitolul 1 conine o introducere n studiul calculatoarelor numerice. Este prezentat modelul unui calculator numeric ca o ierarhie de maini virtuale pe mai multe
nivele. Din aceast ierarhie se descrie mai detaliat structura mainii fizice, care cuprinde
unitatea central de prelucrare, unitatea de memorie, unitatea de intrare/ieire i interconexiunile dintre aceste uniti.
Capitolul 2 prezint bazele aritmetice ale calculatoarelor numerice: sisteme de
numeraie, conversia bazei de numeraie, operaiile aritmetice elementare, reprezentarea
numerelor n virgul fix i n virgul mobil. Este descris formatul standard IEEE 754
pentru reprezentarea numerelor n virgul mobil. Sunt introduse diferite tipuri de coduri, printre care i codul alfanumeric Unicode, care este un standard internaional pentru reprezentarea caracterelor n diferite limbi (standardul ISO/IEC 10646).
Capitolul 3 prezint elemente de algebr boolean i principalele circuite logice digitale. Sunt prezentate principalele funcii booleene, postulatele i teoremele fundamentale ale algebrei booleene, formele canonice ale funciilor booleene i minimizarea acestora, att prin metoda algebric, ct i prin metoda diagramelor Karnaugh. Sunt
descrise circuitele combinaionale uzuale: convertoare de cod, codificatoare, decodificatoare, multiplexoare, demultiplexoare. Pe lng aceste circuite uzuale, se prezint i
unele circuite programabile importante, cum sunt memoriile ROM, reelele logice programabile i circuitele FPGA, exemplificnd i implementarea funciilor logice cu
aceste circuite. n continuarea capitolului se prezint conceptele circuitelor logice secveniale, se descriu diferitele tipuri de circuite basculante bistabile i se ilustreaz sinteza circuitelor secveniale utiliznd aceste circuite. Se descriu apoi diferite tipuri de registre i de numrtoare.
Capitolul 4 este dedicat unitii centrale de prelucrare. Este prezentat structura
acestei uniti, diferitele categorii de registre i se introduce memoria stiv. Sunt descrise operaiile executate de unitatea central pentru execuia unei instruciuni. Ca exemple
de uniti centrale din lumea real, sunt prezentate procesoarele Intel. Dup trecerea n

xii

Arhitectura calculatoarelor

revist a diferitelor procesoare Intel, n care se urmrete evoluia acestora, se descrie


microarhitectura procesoarelor din familia P6 (Pentium Pro, Pentium II i Pentium III).
Capitolul 5 prezint fundamentele arhitecturii seturilor de instruciuni. Se prezint elementele unei instruciuni main, se introduc limbajele de asamblare i se
exemplific utilizarea acestor limbaje pentru cazurile n care exist o adres, dou adrese sau trei adrese pe instruciune. n continuare se prezint categoriile tipice de instruciuni ale diferitelor calculatoare i cele mai utilizate moduri de adresare.
Capitolul 6 detaliaz unitatea aritmetic i logic. Se descriu principiile operaiilor cu numere n virgul fix i circuitele necesare executrii acestor operaii. Astfel,
pentru operaia de adunare se prezint sumatorul serie i cel paralel. Pentru nmulirea
binar, se prezint circuitele necesare pentru metoda nmulirii directe, metoda Booth i
metoda nmulirii pe grupe de cifre. n seciunea dedicat mpririi binare, se prezint
circuitele de mprire prin metoda refacerii restului parial i prin metoda fr refacerea
restului parial. n ultima parte a capitolului se descriu principiile operaiilor elementare
cu numere n virgul mobil, algoritmii acestor operaii i circuitele pentru implementarea acestor algoritmi.
Capitolul 7 prezint unitatea de comand i control. Se introduce mai nti noiunea de micro-operaie, iar apoi se exemplific micro-operaiile necesare n diferitele
subcicluri ale execuiei unei instruciuni, utiliznd o notaie simbolic simpl. Se prezint funciile pe care trebuie s le realizeze unitatea de comand, semnalele de control
necesare realizrii acestor funcii i un exemplu de unitate de comand. n continuare se
descriu diferite metode de implementare ale unitilor de comand: metoda care utilizeaz un bistabil pe stare, metoda care utilizeaz un decodificator i metoda de implementare microprogramat.
Capitolul 8 descrie unitatea de memorie. Se prezint mai nti principalele caracteristici ale sistemelor de memorie i ierarhia de memorii utilizat la calculatoarele
actuale. Deoarece memoriile semiconductoare sunt cele mai utilizate, se prezint diferite
tipuri de memorii semiconductoare i organizarea acestora. n continuare se descriu
diferite tipuri de memorii stiv i aplicaii ale acestor memorii la calculatoarele orientate
pe stiv. n seciunea dedicat memoriei cache, se prezint principiul acestei memorii,
caracteristicile sale, diferite funcii de mapare utilizate pentru alocarea blocurilor de
memorie i metode de nlocuire a acestor blocuri.
Capitolul 9 prezint unitatea de intrare/ieire. Se prezint structura acestei uniti, diferite tipuri de echipamente periferice, funciile i structura modulelor de intrare/ieire. n continuare se descriu principiile diferitelor metode de transfer a datelor:
transferul programat, transferul prin ntreruperi, transferul prin acces direct la memorie
i transferul prin canale de intrare/ieire.
Cartea Arhitectura calculatoarelor poate fi utilizat de diferite categorii de
cititori. Fiind scris la un nivel accesibil, ea poate fi utilizat nu numai de studenii seciei de Calculatoare, ci i de studenii de colegiu din cadrul seciei de Tehnic de Calcul
sau Informatic Tehnic. Cartea poate fi utilizat de asemenea i de studenii altor secii,
cum sunt cele de Automatic, Electronic i Telecomunicaii sau Mecanic Fin.
Autorul