Documente Academic
Documente Profesional
Documente Cultură
Cap. 1 Introducere
1. Enumerați și definiți pe scurt cele patru elemente principale ale unui calculator. (a)
a. La un sistem de calcul,
a. La un calculator,
1
7. Care sunt nivelurile de proiectare de la componente la aplicații din punctul de vedere
al ingineriei sistemelor de calcul pentru organizarea calculatorului?
10. Care sunt elementele componente pentru următoarele niveluri (nivel) de proiectare
de la componente la aplicații: System designer?(a)
2
15. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Implementarea
setului de instrucțiuni (pipeline and instruction paralelism).(a sau f?????)
16. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Memoria cache
de nivel 1.
17. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Memoria cache
de nivel 2,
21. Exprimați valorile K(kilo), M(mega), G(giga), T(tera) și P(peta) în zecimal și în binar.
Termen Zecimal Binar
3
T (tera) 1012 240
a. Al arhitectului
4
25. Fie figura:
a. Al programatorului,
b. Al implementatorului
5
26. Fie figura:
a. Al implementatorului, 3 magistrale.
6
27. Fie figura:
a. 6.
7
a. Tranzistoare, memorie magnetică pe ferite, I/O – imprimantă,
teleimprimator, terminal cu bandă de hârtie,tambur, utilizat ca
mainframe la nivel de cameră.
8
42. Ce este VAX 780?
a. Memoria cache.
a. Microcalculatorul Apple.
48. La microcalculatorul Apple din 1977 cine era mai rapid, procesorul sau memoria?
a. Memoria
9
49. Cine sunt cei doi?
a. Prima programatoare.
a. COBOL.
10
53. Ce este acesta?
a. Cell BE,
11
55. Ce este acesta?
a. I8088.
12
Capitolul 2: Arhitecturi, Limbaje de
asamblare şi logică digitală
Review Questions
1. Fie figura:
a. M6800
2. Fie figura:
a. VAX11,
13
3. Fie figura:
a. PPC G4
14
7. Ce reprezintă figura următoare?
a. O instrucțiune cu 3 adrese.
15
9. Ce reprezintă figura următoare?
a. Imediată.
a. Directă.
a. Indirectă.
16
13. Ce mod de adresare este prezentat în figura următoare?
a. Relativă.
17
18. Care sunt caracteristicile SRC egale cu a procesoarelor RISC?
a. Proiectare load-store; sunt suportate doar câteva moduri de adresare;
instrucțiunile UAL sunt de tipul cu trei regiștrii; toate instrucțiunile sunt
pe 32 de biți.
a. br, brl.
18
25. Ce definește expresia RTN abstract (câmpul X)?
a. disp<31..0>.
26. Ce set de celule de memorie pot fi adresate prin adresare directă (deplasament
cu rb=0)?
a. ii .
a. ie.
a. ld(:=op=1).
19
31. Ce definește expresia RTN abstract (câmpul X)?
a. cond:
a. n.
a. X1 este shr (:= op=26), X2 este shra (:= op=27), X3 este shl (:= op=28),
X4 este shc (:= op=29).
a. Multiplexor n căi,
20
35. Ce reprezintă figura următoare?
a. Setul de regiștrii.
37. Ce reprezintă figura următoare?
21
40. Ce reprezintă figura următoare?
22
Capitolul 3: Proiectarea și implementarea
procesorului SRC
1. Ce reprezintă schema din figura următoare?
a. addi.
23
5. Ce tip de RTN și pentru ce instrucțiune este secvența următoare?
24
8. Ce reprezintă biții c3<2..0> din instrucțiunea de salt.
a. Condiția de salt.
25
12. Ce reprezintă schema din figura următoare?
a. Forțează citirea unei valori 0 pe magistrala internă când este selectat R0.
26
14. Ce rol are semnalul Rin din figura următoare?
27
16. Ce rol are semnalul Gra din figura următoare?
28
18. Ce reprezintă schema din figura următoare?
29
20. Ce rol are semnalul c2out din figura următoare?
30
22. Ce rol are semnalul MDrd din figura următoare?
32
26. Ce reprezintă schema din figura următoare?
a. Secvențele de control
29. Pentru ce anume sunt secvențele de control din partea dreaptă a tabelului următor?
a. add.
b. addi.
c. st.
34
34. Ce rol are semnalul LD din schema din figura următoare?
a. shr.
a. cond.
35
37. Ce reprezintă schema din figura următoare?
a. Br
36
40. Ce reprezintă schema din figura următoare?
a. Unitatea de control.
37
43. Ce reprezintă schema din figura următoare?
a. 14%
38
47. Ce reprezintă schema din figura următoare?
39
a. RTN concret care descrie Reset-ul pe durata execuției instrucțiunii add.
40
55. Ce reprezintă schema din figura următoare?
41
a. Trimite 80 de caractere la un dispozitiv de ieșire prin testare în buclă.
42
60. Ce reprezintă schema din figura următoare?
43
Capitolul 4: MIPS
1. Ce numere echivalente și ce semnificație dedicată au registrele $a0-$a3?
b. 4-7 registre pentru argumente.
a. Nu.
b. Da.
44
10. Ce este reprezentat în figura următoare?
a. -215 la +215-1
45
a. Calculul adresei de salt pentru de salt necondiționat.
16. Ce execută instrucțiunea jal etichetă?
a. 0xAAAAAAAA.
a. Adresare registru.
a. Adresare cu bază.
a. Adresare imediată.
46
23. Ce tip de adresare este prezentat în figura următoare?
a. Adresare pseudo-directă.
a. De extragere a instrucțiunii.
a. De execuție (ALU).
47
30. Ce se reprezintă în figura următoare?
a. Setul de regiștrii.
31. Fie figura:
48
a. Selectează operația pentru ALU.
49
34. Fie schema:
a. lw.
35. Fie schema:
b. sw.
50
36. Fie schema:
a. ori.
51
38. Fie schema:
a. sw.
a. RegDst
52
41. Ce semnal de control are ecuația logică:
ori+lw+sw?
a. ALUSrc
a. MemtoReg
b. RegWrite
a. MemWrite
a. nPCsel RegDst
a. Jump
a. ExtOp
a. ALUctr[0]
53
49. Ce semnal de control are ecuația logică:
or?
a. ALUctr[1]
a. rtype
a. ori
a. lw
53. Ce semnal de control are ecuația logică:
op5 ~op4 op3 ~op2 op1 op0
a. sw
54. Ce semnal de control are ecuația logică:
~op5 ~op4 ~op3 op2 ~op1 ~op0
a. beq
55. Ce semnal de control are ecuația logică:
= ~op5 ~op4 ~op3 ~op2 op1 ~op
a. jump
56. Ce semnal de control are ecuația logică:
rtype func5 ~func4 ~func3 ~func2 ~func1 ~func0
a. add
57. Ce semnal de control are ecuația logică:
rtype func5 ~func4 ~func3 ~func2 func1 ~func0
a. sub
54
58. Fie schema:
a. jmp
a. Când este activ selectează adresa din codul instrucțiunii jump expandată
cu doi de 0 în partea inferioară și cu cei patru biți mai semnificativi ai PC-
ului.
55
60. Fie schema:
a. beq.
56
Capitolul 5: MIPS - Pipeline
1. Fie instrucțiunile:
Figura 4.2
Care sunt valorile semnalelor generate de unitatea de control din figura 4.2 pentru
aceste instrucțiuni?
a.
Valorile pentru semnale sunt:
RegWrite MemRead ALUMux MemWrite ALUOp RegMux Branch
57
2. Fie instrucțiunile:
3. Fie instrucțiunile:
Care blocuri produc ieșiri dar ieșirile lor nu sunt utilizate pentru aceste instrucțiuni?
CE resurse nu produc ieșiri pentru aceste instrucțiuni?
a.
Ieșiri care nu sunt utilizate Resurse fără ieșiri
58
4. Fie figura 4.2.
Figura 4.2
a.
Calea cea mai lungă pentru instrucțiunea AND este să citească instrucțiunea, să
citească regiștr, să treacă prin ALUMux, să realizeze operația ALU, să treacă prin
Mux-ul care controlează scrierea datelor în registrul destinație (I-Mem, Regs, Mux,
ALU, Mux).
a. Controlul este mai rapid ca regiștri, și ca urmare calea critică este I-Mem, Regs,
Mux, ALU, Mux
b. Controlul este mai rapid ca regiștri, și ca urmare calea critică este I-Mem, Regs,
Mux, ALU, Mux
59
5. Fie figura 4.2.
Figura 4.2
a.
O cale lungă este aceea prin care se citește instrucțiunea, se citesc regiștri, se
utilizează Mux pentru a selecta valoarea imediată ca al doilea operand, se utilizează
LU (pentru calculul adresei), se accesează D-Mem, și se utilizează Mux pentru a
selecta registrul ce preia data din memorie, și ca urmare avem: I-Mem, Regs, Mux,
ALU, D-Mem, Mux.
a. Controlul este mai rapid ca regiștri, și ca urmare calea critică este I-Mem, Regs,
ALU, D-Mem, Mux
60
b. Controlul este mai rapid ca regiștri, și ca urmare calea critică este I-Mem, Regs,
ALU, Mux
Figura 4.2
a.
Instrucțiunea are două căi lungi, una care calculează adresa și una care determină
condiția de salt. Căile de calcul a PC-ului pentru ambele situații (sare sau nu sare),
sunt mai scurte decât evaluarea condiției de salt
61
a. Prima cale (prin regiștri) este mai lungă.
Figura 4.2
Fie instrucțiunile:
Care dintre blocurile existente (dacă există vreunul) pot fi folosite de aceste instrucțiuni?
a.
a. Această instrucțiune utilizează memoria de instrucțiuni, ambele porturi existente
pentru citirea regiștrilor, ALU, și portul de scriere în regiștri.
62
existente pentru citirea regiștrilor, calea care pasează valoarea imediată către
ALU, și portul de scriere în regiștri.
Figura 4.2
Ce blocuri funcționale noi (dacă există vreunul) trebuie să le adăugăm pentru aceste
instrucțiuni?
a.
a. Încă un port de citire din regiștri (pentru a citi Rx), și un al doilea ALU pentru a
aduna Rx la Rs+Rt, sau o a treia intrare la ALU existent.
63
9. În tabelul următor se prezintă două noi instrucțiuni pentru o arhitectură MIPS cu un
singur ciclu ca aceea implementată în figura 4.2.
Figura 4.2
Ce semnale noi sunt necesare (dacă există vreunul) la unitatea de control pentru a fi
executate aceste instrucțiuni?
a.
a. Trebuie un semnal de control care să-i spună noului ALU ce să facă, sau dacă
extindem ALU existent trebuie să adăugăm o operație add3 nouă.
b. Trebuie să modificăm semnalele de control ale ALU pentru a suporta operația SLL
în ALU.
Blocuri logice
64
a. I-Memory mică, având cuvinte pe 8 biți
Aceste blocuri conțin doar circuite logice, doar bistabile, sau ambele?
a.
a. Ambele, dar predominante sunt bistabilele; acestea au o logică care să le
selecteze și să permită operațiile de citire și de scriere.
Blocuri logice
Arătați cum se pot implementa aceste blocuri. Utilizați numai elemente AND, OR, NOT
și D.
a.
65
a
.
b
.
66
12. Fie următoarele blocuri logice:
Blocuri logice
Arătați cum se pot implementa aceste blocuri. Utilizați numai elemente AND, OR, NOT
cu doar două intrări și elemente de tip D.
a.
a
.
67
b
.
a.
a.
68
b.
a.
a. 4
b. 4
a. Implementați logica pentru semnalul Control signal 1. Circuitul trebuie implementat direct pe
expresie (fără optimizări sau reorganizări), utilizând porți NOT și porți OR, AND sau XOR cu
două intrări.
69
Atunci când sunt implementate expresii logice multiple, este posibilă reducerea
costului implementării prin utilizarea unor semnale în mai mult de o expresie.
Repetați exercițiul a, dar implementați ambele semnale de control, Control signal
1 și Control signal 2, încercând să partajați circuitele între expresii ori de câte ori
este posibil.
a.
a.
b.
70
Fie circuitele:
a.
b.
a.
a. Există patru porți OR pe calea critică cu un total de timp de întârziere de 136ps.
Fie circuitele:
71
a.
b.
a.
a. Costul este de 2 porți AND și 4 OR dintr-un total de 16
Fie circuitele:
72
a.
b.
Ce fracțiune de cost a fost salvată pentru cele două circuite ca urmare a faptului că cele
două funcții folosesc porți în comun?
a.
Costul combinat Costul separat Cât s-a salvat
Proiectați un circuit cu un bit de intrare și un bit de ieșire care realizează serial aceste
operații, începând cu bitul cel mai puțin semnificativ. În cadrul implementării seriale,
circuitul procesează operanzii de intrare bit cu bit, generând biții de ieșire unul câte
unul. Pe lângă datele de intrare circuitul are un ceas de intrare și o intrare de Start care
este setată pe 1 numai în primul ciclu al operării. Puteți utiliza pentru proiectare bistabili
de tip D și porți NOT, AND, OR, sau XOR.
73
a.
a.
b.
Proiectați un circuit cu doi biți de intrare și doi biți de ieșire care realizează serial aceste
operații, începând cu cei doi biți mai puțin semnificativi. În cadrul implementării seriale,
circuitul procesează operanzii de intrare câte doi biți o dată, generând doi biți de ieșire.
Pe lângă datele de intrare circuitul are un ceas de intrare și o intrare de Start care este
setată pe 1 numai în primul ciclu al operării. Puteți utiliza pentru proiectare bistabili de
tip D și porți NOT, AND, OR, sau XOR.
a.
a.
74
b.
Care este numărul de registru care alimentează intrarea “Read register 1” a fișierului
(setului) de registrii? Este acest registru efectiv citit? Ce se întâmplă cu intrarea “Read
register 2”?
a.
Read register 1 Citit efectiv? Read register2 Citit efectiv?
a. 6 DA 1 Da (dar nu este
utilizat)
b. 1 DA 2 Da
75
a.
Binar Hexazecimal
Care este numărul de registru care alimentează intrarea “write register input” a
fișierului (setului) de regiștri ? Este acest registru efectiv scris?
a.
Write register Este scris efectiv?
a. 1 Da
24. Diferitele instrucțiuni necesită activarea diferitelor semnale de control din calea de
date. Fie semnalele de control:
76
Figura 4.24
Care este valoarea acestor două semnale pentru instrucțiunile de mai sus?
a.
Control signal 1 Control signal 2
a. RegDest = 0 MemRead = 1
b. RegWrite = 0 MemRead = 0
25. Diferitele instrucțiuni necesită activarea diferitelor semnale de control din calea de
date. Fie semnalele de control:
77
din figura 4.24:
Figura 4.24
Pentru calea de date din figura 4.24, trasați diagrama logică pentru partea din unitatea
de control care implementează doar primul semnal. Presupuneți că se vor implementa
doar instrucțiunile lw, sw, beq, add, și j.
a.
a. RedDest = NOT I31 (bitul 31 al instrucțiunii)
b. RegWrite = (NOT I28 AND NOT I27) OR (I31 and NOT I29)
78
26. Diferitele instrucțiuni necesită activarea diferitelor semnale de control din calea de
date. Fie semnalele de control:
Figura 4.24
Pentru calea de date din figura 4.24, trasați diagrama logică pentru partea din unitatea
de control care implementează ambele semnale. Presupuneți că se vor implementa
doar instrucțiunile lw, sw, beq, add, și j.
79
a.
a. RedDest = NOT I31 (bitul 31 al instrucțiunii)
MemRead = I31 AND NOT I29
Care sunt ieșirile blocurilor de extensie a semnului și a unității “Shift left 2” pentru
aceste cuvinte instrucțiune?
a.
Sign-extended Jump’s shift left
a. 00000000000000000000000000010000 0001000011000000000001000000
b. 00000000000000000000000000001100 0000100011000000000000110000
Care sunt valorile intrărilor de control pentru ALU pentru aceste instrucțiuni?
a.
ALUOp[1-0] Instruction[5-0]
80
a. 00 010000
b. 01 001100
a.
Noul PC Calea
30. Presupunem că datele din memorie sunt pe 0 iar regiștri procesor au următoarele
valori:
Fie instrucțiunile:
Pentru fiecare Mux, arătați valorile datelor de ieșire pe durata execuției acestor
instrucțiuni și cu aceste valori în regiștri.
81
a.
WrReg Mux ALU Mux Mem/ALU Mux Branch Mux Jump Mux
a. 3 16 0 PC+4 PC+4
31. Presupunem că datele din memorie sunt pe 0 iar regiștri procesor au următoarele
valori:
Fie instrucțiunile:
Care sunt datele de intrare pentru ALU și cele două unități de adunare?
a.
ALU Add(PC+4) Add(Branch)
a. 2 și 16 PC și 4 PC+4 și 16x4
32. Presupunem că datele din memorie sunt pe 0 iar regiștri procesor au următoarele
valori:
Fie instrucțiunile:
82
Care sunt valorile pentru toate intrările unității “Registers”?
a.
Read Read Write Register Write Data RegWrite
Register1 Register1
a. 2 3 0 0 1
b. 1 3 x(3 sau 0) x 0
a.
Cu pipeline Cu un singur ciclu
a. 500 ps 1650 ps
b. 200ps 800 ps
Care este întârzierea totală a instrucțiunii lw într-un procesor cu pipeline și unul fără?
a.
83
Cu pipeline Cu un singur ciclu
a. 2500 ps 1650 ps
b. 1000ps 800 ps
Dacă putem împărți un etaj al căii de date pipeline în două noi etaje, fiecare cu o
latență egală cu jumătate din acea a etajului original, care etaj l-ați împărți și care
este noua perioadă de ceas a procesorului?
a.
Etajul de împărțit Noul ciclu de ceas
a. MEM 400 ps
b. IF 190 ps
Presupunând că nu sunt blocaje sau hazard, care este utilizarea (% din cicli utilizați)
memoriei de date?
a.
a. 25%
b. 45%
b. 60%
85
Presupuneți ca nu există o unitate de avansare în acest procesor pipeline. Indicați
hazardul și adăugați instrucțiuni nop pentru al elimina.
a.
Secvența de instrucțiuni Dependențe
a. lw $1,40($6)
sw $6,50($1)
b. lw $5,-16($5)
Delay I2 to avoid RAW hazard on $5 from
nop I1
nop
a.
Secvența de instrucțiuni Dependențe
a. lw $1,40($6)
add $6,$2,$2
No RAW hazard on $1 from I1 (forwarded)
sw $6,50($1)
86
b. lw $5,-16($5)
.
Presupunem următorii cicli de ceas:
Care este timpul total de execuție a acestor secvențe de instrucțiuni fără avansare și cu
avansare completă? Care este creșterea în viteză obținută prin adăugarea unei unități
de avansare completă față de un pipeline care nu are avansare?
a.
Fără avansare Cu avansare Creșterea în viteză datorată
avansării
87
.
Presupunem următorii cicli de ceas:
Adăugați instrucțiuni nop acestui cod pentru a elimina hazardul dacă există doar
avansare ALU-ALU.
a.
Secvența de instrucțiuni Dependențe
a. lw $1,40($6)
add $6,$2,$2
Nu se poate utiliza avansarea ALU-ALU ($1
nop încărcat din memorie)
sw $6,50($1)
b. lw $5,-16($5)
sw $5,-16($5)
add $5,$5,$5
.
Presupunem următorii cicli de ceas:
88
Care este timpul total de execuție a acestor secvențe de instrucțiuni utilizând doar
avansare ALU-ALU? Care este creșterea în viteză față de un pipeline fără avansare?
a.
Fără avansare Cu avansare Creșterea în viteză datorată
avansării
a.
IF/ID – PC+4, cuvântul instrucțiune.
ID/EX – toate semnalele de control pentru etajele EX, MEM, WB, PC+4, cele două
valori citite din regiștrii, valoarea pe 16 din partea inferioară a cuvântului instrucțiune,
extinsă cu semnul, Rd și Rt.
EX/MEM - toate semnalele de control pentru etajele MEM și WB, PC+4 + offset,
Rezultatul din ALU, și valoarea ieșirii Zero, valoarea care a fost citită din cel de-al
doilea registru în etajul ID, și numărul registrului destinație.
MEM/WB – semnalele de control pentru WB, valoarea citită din memorie (sau o
valoare aleatoare dacă nu a existat o citire din memorie), rezultatul din ALU și
numărul registrului destinație.
Care regiștrii trebuie să fie citiți și care registru este actual citit?
89
a.
Necesar a fi citit Actual citit
a. $6 $6, $1
a.
EX MEM
b. $5 + $5 Nimic
a.
90
EX MEM
a. 2:add $5,$5,$8 WB
3:add $6,$6,$8 IF ID EX
3:sw $1,20($5) IF ID
3:beq $1,$0,Loop IF
b. sw $0,0($1) WB
sw $0,4($1) MEM WB
sw $0,0($1) IF ID EX MEM
sw $0,4($1) IF ID EX
add $2,$2,$4 IF ID
beq $2,$0,Loop IF
91
Cât de des (ca procent din toți cicli) avem ciclu în care toate cele cinci etaje pipeline
realizează o sarcină utilă?
a.
Cicli per buclă Cicli în care toate % din cicli în care toate
etajele realizează o etajele realizează o sarcină
sarcină utilă. utilă
a. 5 1 20 %
b. 5 2 40%
Care este procentul în cicli de ceas pentru care sumatorul pentru salturi din etajul EX
generează o valoare care este utilizată dacă presupunem că un există nici un blocaj al
benzii de asamblare și 60% din toate salturile condiționate sunt adevărate?
a.
92
a. 15%
b. 9%
Cât de des (procent din cicli de ceas ai procesorului) sunt utilizate cele trei porturi
ale setului de regiștrii în același ciclu procesor, dacă presupunem că nu există
blocaje ale benzii?
a.
a. 50%
b. 30%
Cât de des (procent din cicli de ceas ai procesorului) este utilizată memoria de date,
dacă presupunem că nu există blocaje ale benzii?
a.
a. 25%
b. 55%
53. Fiecare etaj din figura 4.33 introduce o întârziere. În plus, și regiștrii pipeline
introduși între etaje introduc întârzieri. Fie următoarele întârzieri:
93
Figura 4.33.
Care este creșterea de viteză a arhitecturii pipeline față de arhitectura cu un ciclu, dacă
presupunem că nu există blocaje ale benzii?
a.
Un singur ciclu Pipeline Crelterea în viteză
I4: sw $1,20($2)
a.
Secvența de Cu avansare Fără avansare
instrucțiuni
a. I1: lw $1,40($2) ($1) I1 to I3
($2) I2 to I3, I4
I2: add $2,$3,$3 ($1) I3 to I4
I3: add $1,$1,$2
I4: sw $1,20($2)
b. I1: add $1,$2,$3 ($1) I3 to I4 ($1) I1 to I2
95
I2: sw $2,0($1) ($1) I3 to I4
I3: lw $1,4($2)
Pentru a reduce durata ciclului de ceas, se presupune că se divide etajul MEM în două
etaje. Repetați punctul b pentru acest pipeline cu 6 etaje.
a.
Secvența de Cu avansare Fără avansare
instrucțiuni
a. I1: lw $1,40($2) ($1) I1 to I3 ($1) I1 to I3
($2) I2 to I3, I4
I2: add $2,$3,$3 ($1) I3 to I4
I3: add $1,$1,$2
I4: sw $1,20($2)
b. I1: add $1,$2,$3 ($1) I1 to I4 ($1) I1 to I2
I3: lw $1,4($2)
96
Ce tip de excepție poate genera fiecare dintre aceste instrucțiuni?
a.
Instrucțiunea 1 Instrucțiunea 2
Dacă a doua instrucțiune din tabelul următor este extrasă imediat după instrucțiunea
din primul tabel, care este adresa handler-ului pentru excepție?
a.
a. 0xFFFFF000
b. 0x00000010
97
Figura 4.66.
Determinați valorile semnalelor de control din figura 4.66 asociate excepției pe care
această instrucțiune le trece prin etajele pipeline, pentru fiecare etaj din pipeline.
a.
Instrucțiunea 1 Instrucțiunea 2
a. NU
98
Cap. 6 Subsistemul de memorie
1. Definiți sistemul de memorie.
Prin sistemul de memorie se înţelege ansamblul format din mediul de memorare şi circuitele
electronice anexe ce îi asigură funcţionarea.
2. Definiți locația de memorie.
Se numeşte locaţie de memorie o succesiune de biţi care pot fi recunoscuţi şi adresaţi
individual.
3. Definiți cuvântul de memorie.
Un şir de biţi succesivi a căror număr depinde, în principal, de caracteristicile U.C.P-ului se
numeşte cuvânt. Mărimea cuvântului poate fi fixă sau variabilă. Mărimile uzuale sunt: 8, 16 , 32
, 64 .
4. Fie interfața cu memoria principală prezentată în figura următoare:
99
6. I8086 are 16 linii de adresă. Ce memorie fizică poate accesa direct (în octeți)?
220biti 2^17 octeti
7. Procesoarele Pentium au 32 de linii de adresă. Ce memorie fizică pot accesa direct (în
octeți)?
2^32 biti 2^29octeti
8. O dată cu Pentium Pro numărul de linii de adresă a crescut de la 32 la 36. Ce memorie fizică
pot accesa direct (în octeți)?
2^36biti 2^33 octeti.
9. Fie ierarhia de memorie din figura următoare:
100
A 4x8 2D Memory Cell Array
14. Ce capacitate are memoria din figura următoare (nr. cuvinte x nr biți/ cuvânt)?
22
16. Ce capacitate are memoria din figura următoare (nr. cuvinte x nr biți/ cuvânt)?
A 16Kx4 SRAM
17. Câți pini are chipul în care se poate încapsula memoria din figura următoare?
101
24
18. Ce este reprezentat în figura următoare?
19.
a. Care este reprezentarea în memorie a valorii 0xABCD pe un sistem de calcul pe 16
biți de tip little endian și respectiv big endian?
1010101111001101
b. Dar pe un sistem de calcul pe 32 de biți?
00 little endian 01 big endian
20. Care va fi reprezentarea little endian și big endian în memorie pentru char d[7]; /* ‘1’, ‘2’,
‘3’, ‘4’, ‘5’, ‘6’, ‘7’ byte array*/.
102
22. Ce tip de ciclu este reprezentat în figura următoare?
a. Ce reprezintă?
DRAM Chip organization
b. Ce capacitate are memoria?
2^20
c. Câți pini sunt necesari fără demultiplexare, dar cu multiplexare?
17 fara 27 cu
25. Ce tip de ciclu este reprezentat în figura următoare?
103
Typical DRAM Read operation
104
32
30. Fie blocul de memorie:
105
2^m+kc+kr+w
33. Ce este prezentat în figura următoare?
Primul
36. Să se precizeze numărul de cipuri, de rânduri și de coloane pentru un bloc de memorie de
capacitate 128M x 32, dacă pentru implementare folosim:
a. Cipuri de capacitate 64M x 8;
8cipuri 2 randuri 4 coloane
b. Cipuri de capacitate 32M x 4;
32cipuri 4 randuri 8 coloane
c. Cipuri de capacitate 16M x 16;
16 cipuri 8 randuri 2 coloane
d. Cipuri de capacitate 16M x 32;
106
8 cipuri 8randuri 1coloana
Maparea memoriei
a. Ce tip de decodificare este?
108
43. Ce se prezintă în figura următoare?
109
TLB Structure and Operation
47. Ce se prezintă în figura următoare?
110
Cap. 7 IA32 – Introducere – Modul de lucru real
1. Ce reprezintă procesoarele IA32?
The term IA32 processors refers to all Intel® x86 processors starting with the first 32-bit
processor, the 386, and ending with the Pentium® 4 and Pentium® M processors. The author
makes this distinction because, while some Intel® documentation also includes the 8088 and
8086 processors in the IA32 category, they were not 32-bit processors
2. Cum este lungimea instrucțiunilor pentru IA32?
The IA32 instructions are variable length instructions and, depending on the type of instruction
and the number of special prefixes that precede the instruction, can be anywhere from one to 15
bytes in length.
3. Începând cu Pentium Pro ce se întâmplă cu instrucțiunile IA 32 înainte de execuția lor?
execuţia dinamică a instrucţiunilor prin mecanismele de branch prediction şi speculative
execution permit execuţia instrucţiunilor în orice ordine.
4. Ce este FSB?
Front Side Bus (FSB) Interface Unit which then reads the instructions from
system memory.
5. Ce reprezintă figura?
I7 board
6. Ce rol are QPI (QuickPath Interconnect )?
QuickPath Interconnect replacement for the front-side bus.
7. Ce este X58?
Intel has its own X58 board, of course—the latest in a series of attempts to effectively cater
to overclockers and PC enthusiasts.
8. Ce este SLI?
(Scalable Link Interface) A multi-GPU interface from NVIDIA for connecting two or four
NVIDIA display adapters together for faster graphics rendering on one monitor or two monitors.
SLI machines require adjacent PCI Express slots, NVIDIA's Media and Communications
Processor (MCP) on the motherboard and identical SLI-certified NVIDIA display adapters. Such
adapters come with an SLI connector that connects one card with the other. See multi-GPU and
CrossFire.
9. Ce se prezintă în figura următoare?
111
An Overview of the 386 Internal Architecture
EFlags Register
16. Care sunt regiștri GPR?
General Purpose Registers EAX, EBX, ECX and EDX EBP. ESI and EDI ESP.
17. Ce rol au regiștri EAX,EBX,ECX,EDX?
These are general purpose data registers, but it should be noted that, when executing some
instructions, one or more of them may be used to supply input parameters for the instruction.
18. Ce rol are registrul EBP?
The Extended Base Pointer register can be used to access data items in memory-based data
structures (including the area of memory designated as the stack for the currently executing
program).
19. Ce rol au regiștri EDI și ESI?
When executing string operations, these two registers are preloaded with the start addresses of
the source and destination buffers.
20. Ce rol are registrul ESP?
The processor uses the register pair consisting of the SS (Stack Segment) register and the
Extended Stack Pointer (ESP) register to identify the location currently pointed to in the area of
memory designated as the stack for the currently executing program.
21. Care sunt regiștri de segment?
The segment registers are used to identify the following regions (or segments) of memory:
The data segments that hold the data variables and/or constants that the currently executing
program operates upon.
The stack segment that is used as scratchpad memory by the currently executing program (and,
for certain operations, by the processor).
The code segment that contains the currently executing program.
22. Ce rol au în modul real? Dar în modul protejat?
When the processor is operating in Real Mode, the upper 16 bits of ESP are not used and the
lower 16 bits (referred to as the SP register) points to the current location in stack memory.
When the processor is operating in Protected Mode, the full 32-bit ESP points to the current
location in stack memory.
If the processor is operating in Real Mode, each 16-bit segment register contains the base address
of the respective memory region and the length of the segment = 64KB. If the processor is
operating in Protected Mode, the 16-bit value in each segment register identifies an entry in
either the Global or Local Descriptor Table.
113
The table entry selected by the segment register's contents identifies the respective segment's
start address, its length, its access rights, and identifies whether or not it's a special OS, kernel-
related segment
23. Pentru ce segmente sunt alocați?
Registri de debug
115
Cap. 8 I386 – Protected Mode - Part 1
1. Ce este modul de lucru protejat?
Memory Protection. IO Protection. Privilege Levels. Virtual Memory Paging. Virtual 8086 Mode
(also referred to as VM86 mode, or VM mode). Task Switching. Interrupt Handling
2. Ce se definește pentru un segment în modul de lucru protejat?
A start address anywhere in the 4GB memory address space that can be addressed by the
processor. A segment length ranging from one byte to 4GB. The privilege level that the currently
executing program must equal or exceed to gain access to this segment of memory. Define the
segment as read-only, execute-only or read/writable. Define the segment as a special segment
used only by the OS, or as a code or data segment to be used by a task. Whether or not the
segment has been accessed since it was created. Whether or not the segment of information is
currently resident in memory (it may be out on a mass storage device).
3. Ce poate realiza Paging Unit?
Paging Unit can redirect a memory access to either: a physical address in memory other than the
address generated by the currently executing program, or a page of data on a mass storage device
4. Cum se realizează protecția IO în modul de lucru protejat?
By setting this two-bit field in the EFlags register image of a task's TSS to the appropriate
privilege level (a value between zero and three), the OS can ensure that only tasks with a
privilege level that meets or exceeds that indicated in the EFlags[IOPL] field are permitted to
communicate directly with IO devices. An IO access attempt by a task with a privilege level less
than the IOPL results in a General Protection exception. In other words, it's not permitted.
5. Ce se înțelege prin nivelurile privilegiate (Privilege Levels)?
Nivelurile care sunt date de ia32 cand ruleaza in modul protected.
6. Câte niveluri privilegiate sunt și care este mai prioritar?
4 nivele. Level 0 cel mai prioritar
7. Cum se alocă nivelurile de prioritate?
Level zero is the highest privilege level. Typically, only the OS kernel will run with privilege
level zero. This permits it to perform any operation.
Level one is the next privilege level. It is typically assigned to high-priority device drivers and
OS services. It could also be assigned to debuggers to protect them from alteration by low-
priority device drivers and applications programs.
Level two is typically assigned to lower-priority device drivers.
Level three is the lowest priority and is typically assigned to applications programs. This
prevents them from performing actions that would be injurious to the OS, debuggers, device
drivers, or each other
8. Ce este modul Virtual 8086?
Because programs written for DOS behave as if they own the entire machine, IA32 processors
(starting with the 386) implement a mode known as Virtual 8086 (VM86) Mode. When
operating in VM86 mode, the processor traps out to a program referred to as a Virtual Machine
Monitor (VMM) whenever the task attempts to perform an action inimical to the OS or the other
116
currently-suspended programs. The VMM emulates the action required by the task in a fashion
that is friendly to the OS and other programs.
9. Cum realizează IA32 comutarea taskurilor?
The IA32 processors provide automated mechanisms to handle the suspension of one task and
the initiation of another. The OS creates a Task State Segment (TSS) for each task to be run. In a
task's TSS, the OS programmer defines the following characteristics of the task: The initial
settings of the processor's registers. The task's IO Permission Bit Map. The task is launched by
telling the processor the start address of its TSS. The processor then loads its register set from the
TSS and begins execution of the program. When it's time to suspend a task and to start or resume
another task, the processor first stores the current state of most of its registers in the TSS of the
task being suspended. It then loads most of its registers from the TSS associated with the next
task and begins or resumes its execution
10. Cum se realizează gestiunea întreruperilor în modul protejat?
In Protected Mode, the OS must restrict entry to some routines that can be called using the INT
nn instruction. In addition, the OS programmer may wish to handle some interrupts or exceptions
by suspending the current task and switching to another task designed to handle the event (rather
than just jumping to an interrupt or exception service routine within the same task).
11. Ce este un descriptor de segment?
segment descriptors are a part of the segmentation unit, used for translating a logical address to a
linear address. Segment descriptors describe the memory segment referred to in the logical
address. The segment descriptor (8 bytes long in 80286) contains the following fields:A segment
base address, The segment limit which specifies the segment limit, Access rights byte containing
the protection mechanism information, Control bits
12. Ce se încarcă în regiștri de segment în modul protejat?
In Protected Mode, the value loaded into a segment register is referred to as the segment
selector, illustrated in the upper part. The Requestor Privilege Level (RPL) field, Bit [2] (the
Table Indicator, or TI bit) of the segment register selects either the Global Descriptor Table
(GDT) or the Local Descriptor Table (LDT).The Index field is used to select an entry (i.e., a
segment descriptor) in the indicated table.
13. Ce se prezintă în figura următoare și ce semnificație au câmpurile definite?
117
Registrul de segment
16. Câte tabele GDT și LDT sunt în sistem?
Poate fi doar un GDT si mai multe LDT
17. Care regiștri permit accesul la GDT și LDT? Care este diferența dintre ei?
It then adds this offset to the respective table's base address (supplied by either the GDT
register—GDTR, or the LDT register—LDTR), yielding the start address of the selected segment
descriptor in the specified table. The processor then performs a memory read to fetch the 8-byte
descriptor from memory and places it into the invisible part of the specified segment register
18. Ce este IDT? Câte sunt în sistem?
Interrupt Descriptor Table (IDT). There is only one IDT. The entries in the IDT describe
interrupt and exception handlers and their respective access rights
19. Ce se prezintă în figura următoare?
GDT
20. Ce tipuri de descriptori poate să conțină GDT?
One Task State Segment (TSS) descriptor for each task. One or more Local Descriptor Table
(LDT) descriptors.Descriptors for shared code or data/stack segments of memory that may be
accessed by multiple tasks. Procedure Call Gates used to control access to programs. Task Gates
used to switch to other tasks
21. Ce tipuri de descriptori poate să conțină GDT?
Idem 20
22. Ce se prezintă în figura următoare?
118
Segment selector
23. Ce se prezintă în figura următoare? Cum ați dedus?
a. Ce reprezintă?
Exemple data segment descriptor
b. Ce granularitate are?
0
c. Ce mărime are SP-ul?
1
d. Este disponibil spre utilizare?
Available to use by system software
e. Este segmentul prezent în memorie?
da
f. Este expandabil în jos?
nu
g. Poate fi scris?
da
h. Care este adresa de bază?
119
00083EA0h
i. Care este limita?
FFFFFFF0h
27. Ce reprezintă DPL și care este regula de acces la acest segment bazată e DPL?
The RPL, CPL and DPL are involved in the privilege check.The 16-bit value loaded into the
respective data segment register is accepted if the lesser-privileged of the RPL and CPL has the
same privilege level or is more privileged than the target data segment descriptor's DPL. Another
way of stating it is—a program can only access data in a segment with the same or a lesser
privilege level.
28. Care sunt segmentele sistem?
Type
Field Description
3 2 1 0
0 0 0 0 Reserved.
0 0 0 1 This descriptor resides in the GDT and describes an available 16-bit, 286 TSS (Task State Segment).
0 0 1 0 This descriptor resides in the GDT and describes a Local Descriptor Table (LDT).
0 0 1 1 This descriptor resides in the GDT and describes a busy (bit 1 = 1) 16-bit, 286 TSS.
0 1 0 0 This descriptor resides in the GDT or an LDT and describes a 16-bit, 286 Call Gate. It may not reside in the IDT.
0 1 0 1 This descriptor resides in the GDT, an LDT, or the IDT and describes a Task Gate.
0 1 1 0 This descriptor resides in the IDT and describes a 16-bit, 286 Interrupt Gate.
Type Field
Description
3 2 1 0
0 1 1 1 This descriptor resides in the IDT and describes a 16-bit, 286 Trap Gate.
1 0 0 0 Reserved
1 0 0 1 This descriptor resides in the GDT and describes an available 32-bit, post-286 TSS.
1 0 1 0 Reserved
1 0 1 1 This descriptor resides in the GDT and describes a busy 32-bit, post-286 TSS.
1 1 0 0 This descriptor resides in the GDT or an LDT and describes a 32-bit, post-286 Call Gate. It may not reside in the IDT.
1 1 0 1 Reserved
1 1 1 0 This descriptor resides in the IDT and describes a 32-bit, post-286 Interrupt Gate.
1 1 1 1 This descriptor resides in the IDT and describes a 32-bit, post-286 Trap Gate.
Call gates and code segments descriptors, code segments and called procedures
121
Cap. 9 I386 – Protected Mode - Part 2
1. Ce identifică, pentru unitatea de paginare, cei mai semnificativi 10 biți ai adresei liniare pe
32 de biți (generată de unitatea de segmentare)?
The upper 10 bits of the address identifies the page group and selects one of the 1024d Page
Directory Entries (PDEs). The selected PDE points to the Page Table that keeps track of the
physical location of each of the 1024d pages that comprise the target page group
2. Ce identifică, pentru unitatea de paginare, cei 10 din mijloc ai adresei liniare ai adresei liniare
pe 32 de biți (generată de unitatea de segmentare)?
The middle 10 bits of the address identifies one of the 1024d pages within the selected page
group. It selects the entry within the Page Table (Page Table Entry, or PTE) that identifies the
location of the target 4KB page
3. Ce identifică, pentru unitatea de paginare, cei mai puțin semnificativi 12 biți ai adresei liniare
pe 32 de biți (generată de unitatea de segmentare)?
The lower 12 bits of the linear address become the lower 12 bits of the physical memory address.
This part of the linear address is never translated. It identifies the target location within the
4096d locations that comprise the targeted 4KB page.
122
9. Unde se memorează adresa de bază (adresa PD – page directory) pentru mecanismul de
paginare?
After creating the tables in memory, the OS stores the physical base address of the Page
Directory in CR3.
10. Ce se prezintă în figura următoare?
12. Care este mărimea unei intrări PDE (Page Directory Entry)?
4 bytes
13. Cum se calculează adresa de bază a unei PT (Page Table )?
Since each Page Directory Entry (PDE) is four bytes long, the Paging Unit multiplies the index
by four to create the offset into the Page Directory. It then adds the resulting offset to the Page
Directory Base Address (from CR3) to create the start address of the PDE in physical memory.
123
Page directory entry format
16. Ce se întâmplă dacă P=0 în intrarea PDE selectată?
Pagina nu este prezenta in memorie
17. Unde se memorează adresa liniară care a generat o excepție de tip Page Fault?
The processor latches the linear address into CR2, the Page Fault Address register
23. Există mecanisme de protecție la nivelul paginării? Dacă da, care sunt acestea?
The page level protection check is performed based on the more restrictive of the two U/S bit
settings.
24. Care mecanism de protecție U/S este luat în considerație, cel din PTE sau cel din PDE?
The U/S bit in the PDE defines the privilege level necessary to access any page within the page
group, while a PTE's U/S bit setting defines the privilege level necessary to access any location
within a specific page in the group.
25. Care mecanism de protecție R/W este luat în considerație, cel din PTE sau cel din PDE?
Whether a page is restricted to read accesses or permits both reads and writes is defined by the
state of the R/W bit in both the PDE and PTE.
PCD (Page Cache Disable) and PWT (Page Write Through) Bits added to CR3
30. Când apar biții PCD, PWT și WP?
PCD- Caching from the Page Directory is disabled.
PWT-Caching from the Page Directory is enabled and a write-through policy is to be used.
125
By setting CR0[WP] and marking the shared pages as read-only, a Page Fault exception is
generated when the currently executing program (no matter its privilege level) attempts to write
to the page.
31. Ce rol are bitul PCD?
These two bits tell the processor whether or not it's permissible to cache entries from the Page
Table and, if so, whether to use a write-through (WT) or a write back (WB) policy within the
table.
32. Ce rol are bitul PWT?
Intrebare 31
33. Ce se prezintă în figura următoare?
126
37. Ce se prezintă în figura următoare?
128
Linear adress bits 20-12 select PTE in the selected page table
48. Ce se prezintă în figura următoare?
129
53. Ce este PAT?
Using a 2-bit field to define the page's memory type imposes an obvious limit of no more than
four possible memory types to choose from (in reality, PCD and PWT only permit three memory
types). The PAT feature addresses this issue.
130