Professional Documents
Culture Documents
ŢIUNI INTRODUCTIVE
Periferic 1
Periferic 2
UC UM U I/E
Periferic n
Magistrală (BUS)
ă
Nivelul 5 Limbaj de asamblare
Interpretare
Nivelul 3 Arhitectura setului de instrucţiuni
Microprogram executat
Nivelul 2 Microarhitectură direct de hard
Translatare Interpretare
1.3.2.1. Microprogramarea
Memoria cache a fost o idee simplă dar foarte eficientă care a mărit
de zece ori viteza de calcul a unui sistem.
Unitate de Memorie
control
Unitate
Dispozitiv logică Dispozitiv
de intrare şi de ieşire
aritmetică
Procesor
C S
SR
UC UP MM
C C C
Arhitectura calculatoarelor 19
FD1
UP1 MM!
FD2
UP2 MM2
FI
UC
FDn
UPn MMn
IM CU
PU
DM
Arhitectura calculatoarelor 21
(orizontal)
IM
CU
PU DM
IM
CU PU
PU DM
22 Sorin Adrian Ciureanu
(orizontal)
(vertical)
CU
PU PU PU
DM DM DM
PU + DM
Capitolul 2
UNITATEA CENTRALĂ
Registru Registru
acumulator tampon
Σ Sumator
26 Sorin Adrian Ciureanu
S1 S2 S3 S4 S5
(a)
S1 1 2 3 4 5 6 7 8 9 10 11
S2 1 2 3 4 5 6 7 8 9 10
S3 1 2 3 4 5 6 7 8 9
S4 1 2 3 4 5 6 7 8
S5 1 2 3 4 5 6 7
Timpi de t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11
execuţie a
segmentelo
r
(b)
Fig.2.2. Schema unei benzi de asamblare cu 5 segmente; (a) schema de
funcţionare; (b)diagrama temporară a execuţiei segmentelor.
S2 S3 S4 S5
S1
S2 S3 S4 S5
UAL
S1 S2 S3 lLOAD S5
STORE
VIRGULĂ
FLOTANTĂ
Instrucţiune
OPERAND
Câmp operand
MOV R 20000
Se transferă valoarea 20000 în registrul R.
b)Adresare directă
Operandul se găseşte la o adresă care există în instrucţiune
Arhitectura calculatoarelor 35
Câmp adresă
ADRESĂ
OPERAND
MOV R 100
100 20000
În câmpul de adresă al instrucţiunii se află o adresă (100) la care
există operandul.
c) Adresare indirectă
În câmpul de adresă al instrucţiunii se află o adresă. La acea adresă
se află operandul. Numărul de direcţionări depinde de fiecare calculator în
parte.
Câmp adresă
ADRESĂ
Adesă Operand
MOV R 100
100 200
200 20000
La adresa 100 din câmpul instrucţiunii se află altă adresă, 200, iar la
această adresă se află operandul.
a) Adresare indexată
La adresarea indexată participă un registru numit registru INDEX.
Adresa operandului este:
Adresa operand = valoareCÂMP ADRESĂ + valoareREGISTRU INDEX
MOV R 100
RINDEX 600
100 700
Adresa calculată: 600 + 700 = D00
D00 20000
Bus
INDEX
memorie
ADRMEM
U
M M
E
RI M
PC
A T
RG
RG 1
RG 2
Σ
SUMATO
R RG 16
IC
Z
-registrul M, care are rolul de a reţine datele scrise sau citite din
unitatea de memorie (32 biţi);
-registrul RI, care are rolul de a stoca instrucţiunea pe toată durata
execuţiei sale;
-registrul PC, care are rolul de a reţine adresa următoarei instrucţiuni
din program;
-registrul ADRMEM, care adresează memoria, atât la scriere cât şi la
citire; de asemenea, prin ADRMEM se adresează şi cele 16 registre generale
(RG), dar pe bus-ul local nu pe cel al memoriei;
Arhitectura calculatoarelor 37
ADRMEM ADRMEM
M UM M UM
citire scriere
Adresele de registre generale sunt primele 16 adrese de memorie, adrese
rezervate exclusiv pentru RG, neputând fi utilizate ca adrese de memorie;
-!6 registre generale (RG) adresate pe bus-ul local al UC-ului;
-registrul INDEX , care participă la calculul adresei în mod indexat;
-4 indicatori de condiţie (ZC) cu următoarele semnificaţii:
Z arată două situaţii
Compararea între registrele A şi T
Z=1 → A=T
Z=0 → A≠T
Conţinutul acumulatorului este zero (Z=1)
S S=1 rezultat negativ (în A)
D D=1 depăşire
C C=1 transport
-BUS-ul local, un bus foarte rapid în interiorul UC-ului;
-BUS-ul de memorie, un bus mai lent care face legătura UC↔UM;
Convenţional, o adresă este o adresă de octet. Un cuvânt este pe 32
biţi, deci pe 4 octeţi.
Adresele din PC vor evolua cu 4, următoarea adresă de instrucţiune
fiind PC+4.
Adresele celor 16 registre generale sunt:
RG 1 0 RG 5 10 RG 9 20 RG 13 30
RG 2 4 RG 6 14 RG 10 24 RG 14 34
RG 3 8 RG 7 18 RG 11 28 RG 15 38
RG 4 C RG 8 1C RG 12 2C RG 16 3C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
M → RI
PC → PC + 4
Arhitectura calculatoarelor 39
În continuare, să vedem care sunt comenzile pentru diferite
instrucţiuni care lucrează în diferite tipuri de adrese.
1)
COD 0001
MNEMONIC ADD
MS 00 - imediat
SURSA 02A
MD 00 - imediat
DESTINAŢIA - 05B
Adresa instrucţiunii 100
Instrucţiunea este
000A805B
Comenzi:
ifetch: PC → ADRMEM 100
ADRMEM
M ← UMEM 000A805B
CITIRE
M → RI 000A805B
PC → PC + 4 104
2)
COD 0001
MNEMONIC MOV R5 ABCDEF01
MS 01 - direct
SURSA RG5 10
MD 01 - direct
DESTINAŢIA - RG16 3C
Adresa instrucţiunii 200
Instrucţiunea este 0404103C
Comenzi:
ifetch: PC → ADRMEM 200
ADRMEM
M ← UMEM 0404103C
M → RI 0404103C
40 Sorin Adrian Ciureanu
PC → PC + 4 204
RI7-18 → ADRMEM 10
ADRMEM
M ← RG5 ABCDEF01
RI21-32 → ADRMEM 3C
ADRMEM
M ← RG16 ABCDEF01
3)
COD 0010
MNEMONIC CMP
MS 10 - indirect
SURSA 800 800 F00
MD 10 - indirect 900 E00
DESTINAŢIA - 900 F00 ABCDEF01
Adresa instrucţiunii 200 E00 ABCDEF01
Instrucţiunea este 1A002900
Comenzi:
ifetch: PC → ADRMEM 200
ADRMEM
M ← UMEM 1A002900
M → RI 1A002900
PC → PC + 4 204
20biţi
16 biţi
8biţi 8biţi
Ax AH AL
Σ
Bx BH BL Registre de offset
date
CH CL CS
Cx
DH DL DS
Dx
DI ES
SJ SS
Registre de
BP adrese IP
SP
Decodificare
operaţie
ALU Comandă
Coadă de aşteptare
Instrucţiuni (Q)
F
Registru
flaguri
UE UI
b)Structura UI
UI conţine componentele date în continuare.
1)Blocul de interfaţă între bus-uri, care face transferurile UE.
Are următoarele cicluri:
Arhitectura calculatoarelor 43
-cicluri de scriere memorie sau I/E (UC→MEM , I/E)
-cicluri de citire memorie sau I/E (UC←MEM , I/E)
2)Coada de aşteptare a codurilor de instrucţiuni (Q), care:
-este încărcată de către UI cu coduri de instrucţiune, numai în
momentele de timp când UE nu are transferuri de date;
-este inactivă dacă este plină sau se cer transferuri pe bus;
-este ştearsă complet dacă instrucţiunea este de salt.
3)Blocul de calcul al adreselor fizice, care include:
-registrele de segment ce conţin componenta segment a adresei
locaţiei de memorie accesată;
-registrul indicator al instrucţiunii curente (IP) cu componenta offset
a adresei instrucţiunii curente;
-unitate de deplasare-adunare pentru calculul adresei fizice din
componentele segment şi offset .
a)Registre de date
b)Registre de adresare
2.5.2.3. Registrele IP şi F
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 OFFSET
COD
OPERAŢIE D W MOD REG R/M
deplasament
MEMORIE
AE
+ AF
OPERAND
AS
50 Sorin Adrian Ciureanu
BX AE Memorie
BP
SI AF OPERAND
+
DI
AS
2.5.5.3.Adresare indexată
SI
AE
DI +
Memorie
AF OPERAND
+
AS
Arhitectura calculatoarelor 51
V[5 ]
Deplasament V[4 ]
V[3 ]
V[2 ]
+
V[1 ]
V[0 ]
Registru index
2.5.5.4.Adresare imediată
AE
COD OP SI AE sursă
DI AE destinaţie
Unitate
Procesor virgulă de interfaţă
fixă cu
Unitate magistrala
cache
Procesor virgulă
mobilă
REZERVOR
DE
INSTRUCŢIUNI
De la BIU
(Basic Interface Unit)
L1 I CACHE NEXT IP
Bloc de memorie a
adresei de salt
DECODIFICARE
DE Secvenţîator de
microinstrucţiuni
INSTRUCŢIUNI
Alocator de registre
alias
Spre rezervorul
de miscroinstrucţiuni
58 Sorin Adrian Ciureanu
Staţie de
rezervare
UEI UEF UE-
Port 0 MMX
Port 2 UGA
i Citire operanzi
UGA
Port 3, 4 Scriere operanzi
D Cache
Staţie de
rezervare UIM (unitate de interfaţă cu memoria)
Rezervor de
instrucţiuni
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
OP S DEST SOURCE 1 I SOURCE 2
CODE C M
C M
IF RD ALU MEM WB
IF RD ALU MEM WB
IF RD ALU MEM WB
IF RD ALU MEM WB
Un IF RD ALU MEM WB
ciclu
maşi
nă
64 Sorin Adrian Ciureanu
1 / S1 32
/ S2 SET /
5 REG 32 ALU
D
PC . D IN
adr
mux 2:1
S1+S2
/ M
19 Ext. / E
S2 semn 32 M
/ mux D
Adr 13 2:1 D
MEM in
I
5 DEST
Arhitectura calculatoarelor 65
CLK
Data in reg.
I1 LOAD R1 MEM
!F RD ALU MEM WB 1 R1
x
R2
x
R3
x Rn
I1 LOAD R1 memorie
!F RD ALU MEM WB 0 R1
x R2
x R3
I2 ADD R1 + R2 → R1
x Rn
Restartare procesare
68 Sorin Adrian Ciureanu
R3
SUB pt. R4
!F RD ALU MEM WB
READ WRITE
REGISTRU 2 REGISTRU
READ DATA IN
REGISTRU 1
MUX 2:1 R5
A B
ALU DIF
R SUM
TAMPOANE ALU
R2 + R3
b) Hazardul WAR
Apare atunci când o instrucţiune scrie o destinaţie înainte ca aceasta
să fie citită pe post de sursă de către o instrucţiune anterioară. Poate avea loc
dacă într-o structură pipeline există o fază de citire posterioară unei faze de
scriere. De exemplu, modurile de adresare indirectă cu predecrementare pot
introduce acest hazard şi de aceea nici nu sunt implementate în
calculatoarele RISC.
Aceste hazarduri de tip WAR mai pot apărea şi datorită execuţiei
instrucţiunilor în afara ordinii lor normale din program, în aşa numita
execuţie „Out of Order”. Această procesare este impusă de necesitatea
creşterii performanţei şi se poate realiza atât prin mijloace hardware cât şi
software.
c)Hazardul WAW
Apare atunci când o instrucţiune scrie un operand înainte ca acesta să
fie scris de o instrucţiune anterioară, scrierile fiind făcute într-o ordine
eronată.
Hazardul WAW poate apărea în structurile care au mai multe niveluri
de scriere sau care permit unei instrucţiuni să fie procesată chiar dacă o
instrucţiune anterioară este blocată.
Modul de adresare indirect cu postincrementare poate introduce
acest hazard, fapt pentru care acest mod de adresare nu este implementat în
maşina RISC. De asemenea, hazardul WAW poate apărea în cazul execuţiei
„Out of Order” a instrucţiunilor cu aceeaşi destinaţie.
Hazardurile WAW, ca şi cele WAR de altfel, nu reprezintă hazarduri
reale, ci mai degrabă conflicte de nume. Ele pot fi eliminate de către
compilator (scheduler) prin redenumirea resurselor utilizate de program. De
aceea se mai numesc autodependente, cele WAW, şi dependente de ieşire
cele WAR.
Exemple:
I1 MULF Ri Rj Rk Rj * Rk → Rj
I2 ADD Rj Rp Rm Rp+Rm → Rj
În acest caz poate să apară hazard WAR deoarece instrucţiunea I1
fiind o instrucţiune de coprocesor (cu virgulă mobilă) se va încheia în
execuţie după I2 care este o instrucţiune de procesor (cu operanzi întregi)
Pentru că numărul de niveluri aferent structurii pipeline a coprocesorului
este mai mare decât numărul de nivele aferent procesorului, instrucţiunile
I1 şi I2 se termină „Out of Order” (I2 înaintea lui I1). Secvenţa care elimină
hazardul WAR, reorganizată prin software este:
Arhitectura calculatoarelor 71
MULF Ri Rj Rk
ADD Rx Rp Rm
MOV Rj Rx
I0 ADD R3 R1 R2
I1 LD R9 A(R7)
I2 ADD R4 R3 R2
I3 ADD R5 R4 R6
I4 LD R4 A(R6)
I5 LD R2 A(R4)
I I I
0
R3 1 4
R4
R4
IR4 I
2 5
I
3
I0 ADD R3 R1 R2
I1 LD R9 A(R7)
I4 LD R4 A(R6)
I2 ADD R4 R3 R2
I3 ADD R5 R4 R6
I0 ADD R3 R1 R2
I1 LD R9 A(R7)
I2 ADD R4 R3 R2
I3 ADD R5 R4 R6
I4 LD R4 A(R6)
NOP
I5 LD R2 A(R4)
Hazardul WAR între I3 şi I4 ar putea fi eliminat prin redenumirea
registrului R4 în instrucţiunea I4 . deoarece hazardurile WAR şi WAW nu
reprezintă conflicte reale ci doar conflicte de nume. Considerând un
procesor cu mai multe registre fizice decât logice, precedenţele impuse de
aceste hazarduri pot fi eliminate uşor prin redenumirea registrelor logici cu
cei fizici. Principiul constă în existenţa unei liste a registrelor active, adică
folosite momentan, şi o altă listă cu registrele libere. Fiecare schimbare a
conţinutului unui registru logic prin program se va face asupra unui
registru fizic disponibil în lista registrelor libere registru care va fi trecut în
lista registrelor active. In acest caz secvenţa se va rescrie astfel:
I0 ADD R3a R1a R2a
I1 LD R9a A(R7a)
I2 ADD R4a R3a R2a
I3 ADD R5a R4a R6a
I4 LD R4b A(R6a)
I5 LD R2b A(R4b)
I0 I1 I4 I2 I3 I5
I1 IF RD ALU MEM WB
I2
IF RD ALU MEM WB
k [ (n-k) instr.
I instr. adiţionale
ADR 1
ADR 2
(n-k) instr.
„originale”
ADR M
ADR M=ADR+
1+2(n-k)
C N
START:
C (C-1)
NU DA
C=
0
76 Sorin Adrian Ciureanu
NU
Prezice DA
00 Prezice DA
01
DA
DA NU
Prezice NU NU Prezice NU NU
11 10
DA
ID EX MEM RR
Lect ID EX MEM RR
4 4 ID EX MEM RR
instr. ID EX MEM RR
ID EX MEM RR
Lect ID EX MEM RR
4 4 ID EX MEM RR
instr. ID EX MEM RR
Cache de instrucţiuni
Coadă de instrucţiuni
Cache de date
Cache de scriere
Coadă de scriere
Cache preîncărcare
Memorie Memorie
date instrucţiuni
OPCODE BUS
STORE
BUFFERS
Staţii
3 2
de
2 1 Spre
rezer
1 memorie
vare
(SR)
2 unităţi de
3 unităţi de execuţie
execuţie (MUL)
(ADD)
Arhitectura calculatoarelor 85
CDB
Bufere SB
CÂMP SB1 SB2 SB3
Qi MUL1 MUL2
BUSY DA DA NU
ADR [R1] [R1]-8
V
Bufere LB
CÂMP LB1 LB2 LB3
ADR [R1] [R1]-8
BUSY DA DA NU
V
Cache de
instrucţiuni
Set de Buffer de
registre reordonare
Decodificator
●
● ● ●
● ● ●
SR 2xSR SR SR SR
CDB
ADR DATA
D-CACHE
Arhitectura calculatoarelor 91
Capitolul 3
UNITATEA DE MEMORIE
3.1. MEMORIA FIZICĂ
Memorie
principală Memorie
Procesor registre
secundară
generale (RAM)
(hard disc)
Memoria
cache
92 Sorin Adrian Ciureanu
τa
Arhitectura calculatoarelor 93
B
E
Col 2(n-2)/2
Col 1
Col 2
n/2
Linia 1
Registru Linia 2
RAS adresă
linie Linia 3
Linia 2(n-2)/2
n/2 n/2
Registru
adrese adresă Multiplexor / Demultiplexor
coloană
CAS
W /R
96 Sorin Adrian Ciureanu
RAS
Adresă (Row
rând Address
Strob)
Adresă CAS
coloană (Column
Address
Strob)
Fig.3.4. Decodificarea adresei în memoria RAM dinamică (DRAM) cu
celule de dimensiunea unui cuvânt.
REFRESH
CONTOR
CKE
Blocuri de
CLK memorie
CS
Registre 512x8 512x8
WE de
M adresare şi
CAS decodare
Magistrala U 512x8 512x8
RAS
adrese X
intrare / ieşire
Poartă
Magistrala
A
de date
A Control ieşire
adrese blocuri
A
intrare
Controler
REGISTRU REGISRU
COLOANE COLOANE
Arhitectura calculatoarelor 99
Main
Language [English]
Supervisor Password [Disabled]
User Password [Disabled]
Halt On [All Errors]
Instaled Memory & 96 MB
Advanced
Boot
Power
.
Memoria extinsă
1M
640+32k
On
Memorie înaltă
640k
Memorie de bază
Ok
110 Sorin Adrian Ciureanu
1 2 3 k k+1 n pagini
Capitolul 4
UNITATEA DE INTRARE/IEŞIRE
Unitatea centrală şi memoria principală comunică cu alte surse şi
destinaţii de informaţie. Unitatea de intrări / ieşiri cuprinde toate aspectele
legate de procesarea acestor interacţiuni. Principalul său rol este de a lega
sistemul de calcul cu lumea externă prin intermediul perifericelor (ecran,
tastatură, discuri, benzi magnetice, reţele etc.). Cea mai mare parte a
interfeţelor cu exteriorul ordinatorului nu sunt pur numerice ci cuprind
dispozitive electromecanice sau electronice analogice.
Părţile hard ale unui sistem de intrare/ieşire, a cărui schemă este dată
în figura 4.1., sunt:
-controlerul;
-perifericul propriu-zis.
Controlerul, un ansamblu de circuite numerice de control, este
alcătuit dintr-o serie de registre de comenzi şi de date. Pentru un periferic
112 Sorin Adrian Ciureanu
simplu, ca tastatura sau imprimanta, există un singur registru de comenzi şi
unul de date. Pentru hard disc există mai multe registre de comenzi şi unul
de date. Lungimea registrelor este funcţie de arhitectura calculatorului;
obişnuit este de 16 biţi.
Secvenţa de lucru pentru o operaţie de intrare/ieşire este următoarea:
Când UC detectează o operaţie de intrare/ieşire, transmite principalii
parametri ai operaţiei pe care îi depune, prin intermediul busului, în
registrele de comenzi şi date; în continuare, controlerul, pe baza datelor din
registre, sintetizează comenzi pentru periferic, comenzi pe care le pune în
interfaţa controler/periferic. Dacă este o operaţie de scriere, pune
informaţiile şi pe liniile de date. Perifericul, pe baza acestor comenzi,
execută operaţia şi returnează, pe interfaţa cu controlerul, răspunsurile la
această operaţie şi eventualele erori. Controlerul le preia, le pune în
registrele de comenzi şi date, şi le transmite la UC.
CONTROLER PERIFERIC
UC
Registru comenzi 1
Registru comenzi 2
Dispozitiv
Registru comenzi n de
comandă
UC/Mem
Registru de date
GO IE RDY
ready wait
signal
4.1.2.2. Drivere
Desfacerea
parametrilor
DA NU
Parame
tri valizi
Translaţie eroare
Termeni abstracţi→termeni
concreţi
NU DA
Ready
dispoziti
v
periferic
Dispozitiv
Lansarea operaţiei efective
periferic
Blocare
driver
(wait)
Operaţie terminată
Trezire Dispozitiv
driver periferic
(signal)
Citire/scrie
Citire Scriere
re
translaţie
bloc 1123→
Blocar
e
driver
(wait)
trezire
driver Citire date de pe sect. 2 şi
(signal 3, cap2, cilindru 40.
)
Eveniment ce Program
duce la apariţia Instruct.1
unei întreruperi Instruct.2
Instruct.3
Salvarea stării
curente a
programului
Apelarea Execuţia
rutinei de rutinei de
tratare a întrerupere
întreruperii
4.2.5.1. Fişiere
Numărul 14
înregistrării
logice 15 Următoarea
înregistrare
16 logică ce
urmează a fi
17 citită
18
19
20 Memoria
principală
21
Înregistrarea Zonă
22 logică 18 tampon
a) 23
24
25
Numărul 15
înregistrării
logice 16 Următoarea
înregistrare
17 logică ce
urmează a fi
18 citită
19
20
21 Memoria
principală
b) 22
Înregistrarea Zonă
23 logică 18 tampon
24
25
(a) (b)
25.10 5
-dischetă: 2,5%
100.10 6
5.10 7
-disc: 50%
100.10 6
Bus adrese
Cereri de
UC INTA Controler de întrerupere
întreruperi
INT
Bus date
α1 α2
cap 7
cap 6
cap 5
Motor pas
cu pas
pentru cap 4
căruciorul
cu capete cap 3
cap 2
cap1
cap 0
Cărucior cu
capete Motor de rotaţie a
platanelor
Nivelele 2 şi 3
Dacă pe nivelele 0 şi 1 se lucra pe bază de benzi de sectoare, pe
nivelele 2 şi 3 se lucrează pe bază de cuvinte sau octeţi. Un disc pe nivelul
2 poate lucra cu coduri Haning detectoare de erori iar cele de pe nivelul 3 cu
paritate la fiecare grup.
Nivelele 4 şi 5
Se lucrează cu benzi de sectoare. Pe nivelul 4 se fac scrieri/citiri
independente iar pe nivelul 5 informaţia de paritate este împrăştiată pe toate
discurile.
Etichetă tipărită
Direcţia de mişcare
Lentile
Fotodetector Prizmă
Diodă cu laser
în infraroşu
4.4.1.4. DVD-uri
Arhitectura calculatoarelor 149
Progresul tehnologiei a făcut posibilă crearea de discuri optice de
foarte mare capacitate. Ele s-au numit iniţial Disc Video Digital (Digital
Video Disc), DVD. Denumirea oficială actuală este Disc Versatil Digital
(Digital Versatil Disc), tot DVD. DVD-urile au acelaşi proiect ca şi CD-
urile. Îmbunătăţirile constau în:
-cavităţi mai mici (0,4 microni faţă de 0,8 microni pentru CD-uri);
-spirala mai strânsă (o,76 microni faţă de 1.6 microni pentru CD-uri)
-un laser roşu (la o,65 microni faţă de 0,78 microni pentru CD-uri).
În felul acesta s-a ajuns la o capacitate mărită de şapte ori, la 4,7 GB. De
asemenea un DVD funcţionează la 1,4MB/secundă, faţă de 150KB/secundă
la CD-uri. Un dezavantaj este folosirea laserului roşu. Pentru citirea CD-
urilor şi CD-ROM-urile existente va fi nevoie de un al doilea laser sau o
conversie optică sofisticată. S-ar putea ca acest lucru să nu fie posibil.
Pentru mărirea capacităţii au fost definite patru formate:
1-O singură faţă, un singur strat (4,7 GB).
2-O singură faţă, două straturi (8,5 GB).
3-Două feţe, un singur strat (9,4 GB).
4- Două feţe, două straturi (17 GB).
Cerinţele pieţei vor hotărî care va rezista.
Substrat policarbonic 1
Strat semi-
Disc reflectorizant
1
Strat
reflectorizant
(Al)
Strat adeziv
Strat
reflectorizant
Disc (Al)
2 Strat semi-
reflectorizant
Substrat policarbonic 2
Fig. 4.19. Disc DVD cu două feţe a câte două straturi. Disc 1 de 0,6mm.
Disc 2 de 0,6mm.
Tehnologia cu două straturi depune un strat reflectorizant la bază,
acoperit de un strat semi reflectorizant. În funcţie de focalizarea laserului, se
reflectă dintr-un strat sau din celălalt. Stratul de dedesubt are nevoie de
150 Sorin Adrian Ciureanu
cavităţi şi soluri ceva mai mari, pentru a prezenta siguranţă în funcţionare,
astfel încât capacitatea sa este mai mică decât cea a stratului superior.
Discurile cu două feţe sunt obţinute din lipirea spate în spate a două discuri
de 0,6 mm cu o singură faţă. Pentru a asigura o grosime standard pentru
toate variantele, un disc cu o singură faţă este un disc de grosime 0,6mm
lipit de un substrat neinscripţionat. Structura unui disc cu două feţe a câte
două straturi este dată în figura 4.19.
Dacă DVD-ul va fi un mare succes, DVD-recordable
(inscripţionabil) şi DVD-rewritable (reinscripţionabil) vor fi în scurt timp
produse pe scară largă. Succesul DVD-ului nu este însă garantat, deoarece
companiile de televiziune prin cablu au un plan destul de diferit pentru
distribuirea filmelor-video (la cerere, prin cablu) şi bătălia este abia la
început.
4.4.2.1. Tastatura
4.4.2.3. Imprimanta
Capitolul 5
MAGISTRALE
Transferurile de informaţie între procesor, memorie şi diferiţii
controlori de I/E se efectuează prin dispozitive de comunicare numite
magistrale sau busuri. Un bus cuprinde, în general, trei subansambluri:
-liniile de adresă care selecţionează unităţile receptoare;
-liniile de date;
-liniile de control.
Un bus intern, din interiorul procesorului, este un ansamblu de fire
electrice pasive. El nu poate fi comandat decât de un dispozitiv odată.
Pentru un bus extern procesorului se pune problema unei funcţionabilităţi.
În acest capitol va fi vorba de busurile externe şi despre funcţionarea lor.
Busurile externe nu au un control centralizat natural. Fiecare dispozitiv,
(spre exemplu un procesor sau un disc) poate dori să ia un bus. O tranzacţie
la un bus are două etape:
-arbitrajul între mai multe potenţiale cereri;
-transferul de date.
Ansamblul de mecanisme de arbitraj şi transfer se numeşte
protocolul busului. Procesorul este conectat cu lumea exterioară printr-un
bus al cărui protocol este specific procesorului. Busurile de I/E
interconectează dispozitivele de I/E la busul procesor. Aceste sisteme de
busuri pot accepta dispozitive de construcţie variate, cu viteze şi latenţe
diferite. Protocolul lor este definit public prin standarde.
5.1. ARBITRAJ
Atribuire
i-1 i I+1
Arbitru Cerere
Bus ocupat
Cer. Arb. Adr. Dec. Sfârşit Cer. Arb. Adr. Dec. Sfârşit
com
Adrese Ad Ad
A B
Date D0 D1 D2 D3 D0
A A A A B
1
REQ
2 3 4
3 7
Ac.
6 7 8
DD
GNT#
GNT#
GNT#
REQ#
REQ#
REQ#
REQ#
Dispozitiv
Dispozitiv
Dispozitiv
Dispozitiv
PCI
PCI
PCI
PCI
Arbitru
PCI
Ciclu magistrală
Citire Inactiv Scriere
T1 T2 T3 T4 T5 T6 T7
Φ
Magistrala este liberă
RAME
IRDY
DEVSEL
IRDY
Timpul (ms)
0 1 2 3
Inactiv
SOF SOF
Pachete de Pachete de la
date de la dispozitiv
dispozitiv
Cablul constă din patru fire: două pentru date, unul pentru
alimentare (5volţi) şi unul pentru masă. Sistemul de semnalare transmite un
0 ca tranziţie a tensiunii şi un 1 ca absenţă a unei tranziţii de tensiune, astfel
Arhitectura calculatoarelor 171
că atât timp cât durează 0-urile se generează un flux de pulsuri. Când se
conectează un nou dispozitiv I/E, hub-ul rădăcină detectează acest
eveniment şi întrerupe sistemul de operare. Apoi sistemul de operare
interoghează dispozitivul, ce este şi cât din banda USB necesită. Dacă
sistemul de operare decide că banda de trecere este suficientă pentru
dispozitiv, el asociază noului dispozitiv o adresă unică (1-127) şi încarcă
această adresă şi alte informaţii în registrele de configurare din dispozitiv. În
acest mod, noi dispozitive pot fi adăugate imediat., fără nici o altă
informaţie din partea utilizatorului şi fără să se instaleze noi plăci ISA sau
PCI. Plăcile neiniţializate pornesc de la adresa 0, astfel că ele pot fi adresate.
Pentru a face cablarea mai uşoară, multe dispozitive USB conţin hub-uri
încorporate, pentru a accepta dispozitive suplimentare USB. De exemplu un
monitor poate avea două socluri de hub pentru a amplasa difuzoare stânga şi
dreapta.
Din punct de vedere logic, sistemul USB poate fi văzut ca un set de
canale de biţi, de la hub-ul central la dispozitivele I/E. Fiecare dispozitiv
împarte canalul său în cel mult 16 subcanale, pentru diferite tipuri de date
(audio, video..) . Pe fiecare canal datele merg de la hub-ul central la
dispozitiv sau invers. Nu există trafic între două dispozitive I/E.
La exact fiecare 1,00±0,05 ms, hub-il emite un nou cadru pentru a
menţine toate dispozitivele sincronizate. Un cadru este asociat cu un canal
de biţi şi constă din pachete, primul fiind de la hub-ul rădăcină către
dispozitiv. Următoarele pachete din cadru pot, de asemenea, să fie în această
direcţie sau pot merge înapoi de la dispozitiv la hub.
În figura 5.6. se prezintă o secvenţă de patru cadre.. În cadrele 0 şi 2
nu se efectuează nimic, astfel că este necesar doar un pachet SOF (Start of
Frame), de început de cadru. Acest pachet este trimis totdeauna în toate
dispozitivele. Cadrul 1 este o interogare, de exemplu o cerere ca un
dispozitiv de scanare să returneze biţii pe care i-a găsit în imaginea pe care o
scanează. Cardul 3 constă din datele ce se transmit la un dispozitiv, de
exemplu la o imprimantă.
USB suportă patru tipuri de cadre: control, izocron, transfer de
cantităţi mari de date (bulk) şi întrerupere:
-cadrele de control sunt utilizate pentru a configura dispozitive, a le
transmite comenzi şi a le interoga despre starea lor;
-cadrele izocrone sunt pentru dispozitive în timp real cum ar fi
microfoane, difuzoare şi telefoane care au nevoie să transmită sau să
accepte date la intervale de timp precise; ele au o întârziere predictibilă dar
nu permit retransmisia în cazul unei erori;
172 Sorin Adrian Ciureanu
-cadrele de transfer de cantităţi mari de date sunt pentru transferuri
mari sau de la dispozitive fără cerinţe de timp real, cum ar fi imprimantele;
-cadrele de întrerupere sunt necesare deoarece USB nu suportă
întreruperi; de exemplu, în loc să avem o tastatură care să genereze o
întrerupere ori de câte ori se apasă o tastă, sistemul de operare o poate
interoga la fiecare 50 ms pentru a prelua tastele apăsate până atunci.
Un cadru constă din unul sau mai multe pachete, câteva, posibil, în
fiecare direcţie. Există patru tipuri de pachete:
-pachete de control (token) care sunt de la rădăcină la un dispozitiv
şi au rol de control al sistemului (de exemplu SOF, IN, AUT, SETUP);
-pachete de date (DATA) care sunt utilizate pentru a transmite până
la 64 de octeţi de informaţie în orice direcţie; ele constau din 8 biţi de
sincronizare (SYN), un tip de pachet de 8 (PYD), sarcina adică datele de
transmis (PAYLOAD) şi CRC-ul(Cyclic Redundancy Code) de 16 biţi
pentru a detecta erori;
-pachete de negociere care sunt de trei tipuri, ACK (pachetul anterior
a fost bine recepţionat), NAK (s-a detectat o eroare CRC şi STALL ( vă rog
aşteptaţi, acum sunt ocupat);
-pachete speciale.
La fiecare 1ms trebuie transmis un cadru de la hub-ul rădăcină, chiar
dacă nu este nimic de făcut. Cadrele 0 şi 2 ( figura 5.6.) constau doar dintr-
un pachet SOF, indicând că nu s-a făcut nimic.
Cadrul 1 este o interogare, astfel că el începe cu transmiterea
pachetelor SOF şi IN de la calculator la dispozitivele I/E, urmate de un
pachet DATA de la dispozitiv la calculator. Pachetul ACK spune
dispozitivului că datele au fost recepţionate. În cazul unei erori către
dispozitiv se va transmite un NAK şi pachetul se va retransmite în cazul
transferurilor de cantităţi mari de date ( dar nu şi în cazul datelor izocrone).
Cadrul 3 este similar ca structură cu cadrul 1, cu excepţia faptului
fluxul de date este de la calculator la dispozitiv.
BIBLIOGRAFIE
CUPRINS
Pg.
1 NOŢIUNI INTRODUCTIVE………………………………………………... 3
1.1. SCHEMA DE BAZĂ A UNUI CALCULATOR……………………. 3
1.2. SCHEMA NIVELELOR CONCEPTUALE ALE UNUI
CALCULATOR………………………………………………………. 5
1.3. SCURT ISTORIC AL DEZVOLTĂRII CALCULATOARELOR... 7
1.3.1. Influenţa progresului tehnologic asupra dezvoltării
calculatoarelor………………………………………………... 7
1.3.1.1. Generaţia zero. Calculatoare mecanice…………… 7
1.3.1.2. Generaţia întâi. Maşini cu tuburi electronice……. 9
1.3.1.3. Generaţia a doua. Calculatoare cu tranzistori…….. 10
1.3.1.4. Generaţia a treia. Calculatoare cu circuite integrate 11
1.3.1.5. Generaţia a patra. V.L.S.I………………………... 13
1.3.1.6. Generaţia a cincia………………………………… 13
1.3.2. Concepţii noi în evoluţia calculatoarelor……………………. 15
1.3.2.1. Microprogramarea……………………………….. 15
1.3.2.2. Inventarea sistemului de operare………………… 15
1.3.2.3. Memoria Cache…………………………………… 15
1.4. TIPURI DE ARHITECTURI ALE CALCULATOARELOR
NUMERICE…………………………………………………………… 16
1.4.1. Arhitectura von Neumann…………………………………… 16
1.4.2. Maşina Turing………………………………………………. 17
1.5. CLASIFICAREA CALCULATOARELOR…………………………. 18
1.5.1. Taxonomia Flynn……………………………………………. 18
1.5.2. Taxonomia Wang…………………………………………….. 20
1.5.3. Taxonomia Shore…………………………………………….. 20
1.5.4. Clasificare comercială………………………………………... 23
1.6. TRENDUL ACTUAL ÎN ARHITECTURA CALCULATOARELOR 23
2 UNITATEA CENTRALĂ………………………………………………….. 25
2.1. STRUCTURA UNITĂŢII CENTRALE…………………………….. 25
2.2. CARACTERISTICILE UNITĂŢII CENTRALE…………………… 27
2.2.1. Lungimea cuvântului………………………………………… 27
2.2.2. Frecvenţa ceasului…………………………………………… 27
2.2.3. Numărul de instrucţiuni executate în unitatea de timp………. 28
2.2.4. Gradul de paralelism………………………………………… 28
2.2.4.1. Paralelism la nivel de instrucţiuni (pipeline)…….. 29
2.2.4.2. Paralelism la nivel de procesor…………………… 32
2.3. SETUL DE INSTRUCŢIUNI………………………………………... 32
2.3.1. Tipuri de instrucţiuni………………………………………… 33
2.3.2. Formatul unei instrucţiuni…………………………………… 33
2.3.3. Modul de adresare…………………………………………… 34
2.4. UNITATE CENTRALĂ CABLATĂ………………………………… 35
Arhitectura calculatoarelor 177
2.5. UNITATE CENTRALĂ CU MICROPROCESOR…………………. 41
2.5.1. Schema generală a unui procesor…………………………… 41
2.5.2. Registrele microprocesorului………………………………… 43
2.5.2.1 Registre generale…………………………………. 43
2.5.2.2. Registre segment…………………………………. 45
2.5.2.3. Registre IP şi F……………………………………. 46
2.5.3. Adresarea memoriei. Segmentarea………………………….. 47
2.5.4. Formatul instrucţiunii……………………………………….. 48
2.5.5. Moduri de adresare………………………………………….. 49
2.5.5.1 Adresare directă…………………………………… 49
2.5.5.2. Adresare indirectă…………………………………. 50
2.5.5.3 Adresare indexată…………………………………. 50
2.5.5.4. Adresare imediată…………………………………. 51
2.5.5.5. Adresarea porturilor de I/E……………………….. 51
2.5.6. Procesoare 286………………………………………………. 52
2.5.7. Procesoare 386………………………………………………. 53
2.5.8. Procesoare 486………………………………………………..53
2.5.9. Procesoare PENTIUM………………………………………. 54
2.5.9.1. Microarhitectura familiei de procesoare PENTIUM 55
2.5.9.2. Unitatea de extragere şi decodificare a
instrucţiunilor………………………………………56
2.5.9.3. Unitatea de dispecerizare şi execuţie……………… 57
2.5.9.4. Unitatea de retragere……………………………….59
2.6. UNITATE CENTRALĂ DE TIP RISC……………………………... 60
2.6.1. CISC versus RISC……………………………………………. 60
2.6.2. Setul de instrucţiuni…………………………………………... 61
2.6.3. Principiul de procesare pipeline într-un procesor RISC……… 62
2.6.4. Structura unui procesor RISC…………………………………64
2.6.5. Problema hazadurilor în procesoarele RISC…………………. 65
2.6.5.1. Hazarduri structurale……………………………….65
2.6.5.2. Hazarduri de date…………………………………..66
2.6.5.3. Hazarduri de ramificaţie…………………………... 72
2.7 PROCESOARE SUPERSCALARE…………………………………. 76
2.7.1. Principiul arhitecturii superscalare…………………………. 76
2.7.2. Hazarduri în arhitectura superscalară………………………… 79
2.7.2.1. Hazarduri structurale. Dependenţa de resurse……. 79
2.7.2.2. Hazarduri de date…………………………………. 79
2.7.2.3. Hazarduri de control………………………………. 81
2.7.3. Arhitectura superscalară TOMASULO………………………. 83
2.7.4. Arhitectura tipică a unui procesor superscalar………………...89
3 UNITATEA DE MEMORIE……………………………………………….. 91
3.1. MEMORIA FIZICĂ…………………………………………………… 91
3.2 CLASIFICAREA CIRCUITELOR DE MEMORIE………………… 93
3.2.1. Clasificarea după volatilitate…………………………………..93
3.2.2. Clasificarea după modul de păstrare a informaţiilor…………..94
3.2.2.1. Memoria RAM statică…………………………….. 94
3.2.2.2. Memoria RAM dinamică………………………….. 94
3.2.3. Structura unităţii de memorie………………………………….95
178 Sorin Adrian Ciureanu
3.2.4.Tipuri de circuite de memorie…………………………………96
3.2.4.1. Circuite FPM DRAM………………………………97
3.2.4.2 Circuite EDO DRAM……………………………... 97
3.2.4.3. Circuite BEDO DRAM…………………………….97
3.2.4.4. Circuite S DRAM…………………………………. 98
3.2.4.5. Circuite SGRAM………………………………….. 99
3.2.4.6. Circuite WRAM……………………………………99
3.2.5. Ierarhii de memorie…………………………………………..99
3.2.5.1. Memorii SET UP………………………………….. 100
3.2.5.2. Memorii BIOS…………………………………….. 102
3.2.5.3. Set de registre generale……………………………. 102
3.2.5.4. Memoria CACHE…………………………………. 103
3.2.5.5. Memoria RAM……………………………………..109
3.2.5.6. Memoria virtuală…………………………………...110
4 UNITATEA DE INTRARE/IEŞIRE……………………………………… 111
4.1. SCHEMA UNUI SISTEM DE INTRARE/IEŞIRE……………………111
4.1.1. Structura hard a unui sistem de I/E……………………………111
4.1.2. Structura soft a unui sistem de I/E……………………………. 112
4.1.2.1. Rutine de tratare a întreruperilor…………………...113
4.1.2.2. Drivere…………………………………………….. 114
4.1.2.3. Programe sistem independente de dispozitive…… 117
4.1.2.4. Primitive de nivel utilizator……………………….. 118
4.2. TRANSFER DE DATE ÎNTR-O UNITATE DE I/E……………… 118
4.2.1. Transfer prin program………………………………………… 118
4.2.2. Transfer prin întreruperi……………………………………… 119
4.2.3. Transfer direct prin DMA…………………………………….. 120
4.2.4. Transfer prin procesor de I/E…………………………………. 121
4.2.5. Instrucţiuni virtuale de I/E……………………………………. 122
4.2.5.1. Fişiere………………………………………………123
4.2.5.2. Implementarea instrucţiunilor de I/E……………… 125
4.2.5.3. Instrucţiuni pentru gestionarea cataloagelor……… 128
4.3. PROCESAREA INTRĂRILOR/IEŞIRILOR…………………………. 129
4.3.1. Mecanismul întreruperilor……………………………………. 130
4.3.2. Întreruperi şi excepţii…………………………………………. 132
4.3.2.1. Situaţii excepţionale……………………………… 132
4.3.2.2. Gestiunea întreruperilor…………………………… 134
4.4. PERIFERICE DE I/E…………………………………………………..136
4.4.1. Memorii externe……………………………………………….137
4.4.1.1. Principii fizice de stocare a informaţiei…………… 137
4.4.1.2. Hard discuri………………………………………...139
4.4.1.3. CD-ROM-uri……………………………………….144
4.4.1.4. DVD-uri……………………………………………147
4.4.2. Periferice care nu stochează informaţia………………………. 149
4.4.2.1. Tastatura……………………………………………149
4.4.2.2. Sistemul de afişaj…………………………………..149
4.4.2.3. Imprimanta…………………………………………152
5 MAGISTRALE………………………………………………………………. 157
5.1. ARBITRAJ…………………………………………………………….. 157
Arhitectura calculatoarelor 179
5.2. TRANSFER DE DATE………………………………………………... 159
5.2.1. Magistrală sincronă……………………………………………159
5.2.2. Magistrală asincronă………………………………………….. 160
5.3. EXEMPLE DE MAGISTRALE……………………………………….. 161
5.3.1. Magistrala ISA………………………………………………...162
5.3.2. Magistrala PCI………………………………………………... 162
5.3.2.1. Ameliorarea performanţelor…………………….. 163
5.3.2.2. Adresarea magistralei PCI………………………… 164
5.3.2.3. Semnalele magistralei PCI…………………………165
5.3.2.4. Tranzacţii pe magistrala PCI……………………….167
5.3.3. Magistrala USB………………………………………………..168
BIBLIOGRAFIE……………………………………………………………………173