Sunteți pe pagina 1din 130

Problems

Cap. 1 Introducere
1. Enumerați și definiți pe scurt cele patru elemente principale ale unui calculator. (a)

a. Procesorul, memoria principală, modulele I/O și magistralele sistem.

2. La ce se referă următoarea definiție: Un sistem de calcul este un ansamblu de resurse


funcţionale fizice (HARDWARE) - Unităţi Centrale de Prelucrare (procesoare), memorie
centrală, dispozitive de introducere şi extragere de date ( intrare / ieşire ) etc. - şi logice
(SOFTWARE DE BAZĂ) - sistem de operare, programe utilitare etc. -, care interacţionează
în scopul satisfacerii unei diversităţi de cerinţe, adesea contradictorii, ale utilizatorilor, privind
introducerea, stocarea, şi regăsirea informaţiei în vederea prelucrării şi /sau transmisiei
acesteia.(a)

a. La un sistem de calcul,

3. La ce se referă următoarea definiție: Un calculator este un dispozitiv electronic, care


operează sub controlul instrucţiunilor memorate în unitatea sa de memorie, care
poate accepta date (intrări), procesa datele aritmetic şi logic şi să memoreze
rezultatul pentru utilizări ulterioare.(a)

a. La un calculator,

4. Care sunt nivelurile de proiectare de la componente la aplicații din punctul de vedere


al ingineriei sistemelor de calcul pentru hardware?

a. Calculator, logic, circuit,

5. Care sunt nivelurile de proiectare de la componente la aplicații din punctul de vedere


al ingineriei sistemelor de calcul pentru Software?

a. Aplicație, sistem, calculator,

6. Care sunt nivelurile de proiectare de la componente la aplicații din punctul de vedere


al ingineriei sistemelor de calcul pentru arhitectura calculatorului?

a. sistem, calculator, logic

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?

a. Calculator, logic, circuit,

8. Care sunt elementele componente pentru următoarele niveluri (nivel) de proiectare


de la componente la aplicații: Logic designer?(a)

a. Porții, bistabile, 1.0.x (necunoscut), puternic, slab, 3s(Z), diagrame logice,


ecuații booleene.

9. Care sunt elementele componente pentru următoarele niveluri (nivel) de proiectare


de la componente la aplicații: Computer designer? (a)

a. Regiștrii ALU, magistrale, octeți, cuvinte, cuvinte duble, diagrame bloc,


diagrame de stare.

10. Care sunt elementele componente pentru următoarele niveluri (nivel) de proiectare
de la componente la aplicații: System designer?(a)

a. Procesoare, memorii, periferice, cuvinte, fișiere, înregistrări, programe,


HDL, limbajul natural.

11. Ce se înțelege prin ISA (Instruction Set Architecture)?(a)

a. ISA definește atributele sistemului de calcul (setul de instrucțiuni, formatul


datelor, modurile de adresare, etc.) aşa cum este văzut acesta de
programator, definind complet funcționarea acestuia.

12. Ce se înțelege prin organizarea calculatoarelor?

a. Se preocupă cu modul în care diferite componente hardware funcţionează,


şi cum sunt ele interconectate pentru a implementa specificaţiile
arhitecturale; organizarea fluxului de date şi a controlului, proiectarea
logică şi implementarea fizică.

13. Ce se înțelege prin structura (arhitectura ) calculatoarelor?


a. Într-un sens, descrie sistemul de calcul la nivel logic, din punctul de vedere
al programatorului.

14. Cu cine se conectează arhitectura unui calculator cu alte niveluri?


a. Dedesubt cu circuite, fire, rețele hardware, iar deasupra cu sistemul de
operare, compilatoare, software de rețea, aplicații utilizator.

2
15. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Implementarea
setului de instrucțiuni (pipeline and instruction paralelism).(a sau f?????)

a. Pipeline, hazard, superscalar, reordonare, predicție, execuție speculativă,


vector, compilare dinamică.

16. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Memoria cache
de nivel 1.

a. Adresare, protecție, manipularea excepțiilor.

17. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Memoria cache
de nivel 2,

a. Coerență, lărgime de bandă, întârziere.

18. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Memoria


dinamică.

a. Tehnologii emergente, magistrale, întrețesere.

19. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Memoria


secundară.

a. Discuri dure, WORM (write-once, read -many), benzi, RAID.

20. Enumerați subiecte din domeniul arhitecturii calculatoarelor pentru: Rețele


multimicroprocesor și interconectare.

a. Memorie partajată, schimb de mesaje, paralelismul datelor, interfețe de


rețea, topologii, rutare, lărgime de bandă, întârziere, siguranță.

21. Exprimați valorile K(kilo), M(mega), G(giga), T(tera) și P(peta) în zecimal și în binar.
Termen Zecimal Binar

K (kilo) 103 210

M (mega) 106 220

G (giga) 109 230

3
T (tera) 1012 240

P (peta) 1015 250

22. Ce definiție a dat Dasgupta pentru arhitectura calculatoarelor?


a. Se definește arhitectura calculatoarelor ca fiind arta, meseria şi ştiinţa
proiectării calculatoarelor.

23. Cine a definit nivelurile exo, endo și micro în arhitectura calculatoarelor?

a. Dasgupta. Exo – punctul de vedere al programatorului. Endo – organizarea


unui calculator la nivel de blocuri constructive, Micro – implementarea
blocurilor la nivel de poartă logică.

24. Fie figura:

Ce punct de vedere reprezintă?

a. Al arhitectului

4
25. Fie figura:

Ce punct de vedere reprezintă?(raspuns corect b,L zice a)

a. Al programatorului,
b. Al implementatorului

5
26. Fie figura:

Ce punct de vedere reprezintă și câte magistrale interne are?

a. Al implementatorului, 3 magistrale.

6
27. Fie figura:

Ce punct de vedere reprezintă și ce face?

a. Al implementatorului, ALU (adunare, scădere, SI,SAU,NEG).

28. Câte generații de calculatoare există?

a. 6.

29. Definiți caracteristicile principale pentru: Generația 0.

a. Electro-mecanice, memorie pe tambur sau cartelă, I/O – cartele


perforate, utilizat la nivel de întreprindere.
30. Definiți caracteristicile principale pentru: Generația 1.

a. Tuburi cu vid, memorie pe cilindru magnetic, I/O – hârtie, bandă


magnetică, utilizat la nivel de hală.

31. Definiți caracteristicile principale pentru: Generația 2.

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ă.

32. Definiți caracteristicile principale pentru: Generația 3.

a. SSI/MSI, memorie ROM,RAM, I/O – disk, tastatură, monitor video, utilizat


la nivel de birou.

33. Definiți caracteristicile principale pentru: Generația 4.

a. LSI/VLSI, memorie DRAM/SRAM, I/O – network, CD, mose, sunet, utilizat


ca descktop/laptop/micro.

34. Definiți caracteristicile principale pentru: Generația 5.

a. ULSI/GSI/ WSI, SOC, memorie SDRAM, Flash, I/O – sezor/ element de


execuție, point/click, utilizat ca invizibil sau înglobat.

35. Cine și unde a construit ENIAC?


a. Mauchly, Eckert, University of Pennsylvania.

36. Ce contribuție are Von Neuman?


a. Definește modul de lucru al unui calculator valabil pentru multe dintre
arhitecturile din zilele noastre.

37. Cine a creat tranzistorul?


a. Bardeen, Shockley, Brattain, Bell Labs.
38. Care este primul calculator comercial?
a. UNIVAC.

39. Ce este IBM 360?

a. Prima “familie” planificată de calculatoare de la IBM.

40. Ce este PDP-8?

a. Primul minicalculator de la DEC.

41. Ce este PDP-11?

a. A doua generație de minicalculatoare pe 16 biți de la DEC, foarte populară.

8
42. Ce este VAX 780?

a. Generația de minicalculatoare pe 32 de biți cu cel mai complex set de


instrucțiuni CISC.

43. Ce este Intel 4004 și când a apărut?

a. Microprocesor pe 4 biți de la Intel, 1971.

44. Ce a inventat M.V. Wilkes?

a. Memoria cache.

45. Care este legea lui Moore?

a. 2X Transistors / Chip Every 1.5 years.

46. Ce afirmație greșită a făcut Bill Gates în 1981?

a. 640K va fi suficient pentru oricine.

47. Ce au realizat Steve Jobs și Steve Wozniak în 1977?

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. David Patterson de la Berkeley și John Hannessy de la Standford.

50. Ce este considerată Ada Lovelace?

a. Prima programatoare.

51. La ce limbaj de programare și-a adus contribuția Grace Hopper?

a. COBOL.

52. Ce se înțelege prin HPC?

a. Calcul de înaltă performanță.

10
53. Ce este acesta?

a. Centru de date produs de SUN.

54. 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:

Cărui microprocesor îi corespunde acest model de programare?

a. M6800

2. Fie figura:

Cărei arhitecturi îi corespunde acest model de programare?

a. VAX11,

13
3. Fie figura:

Cărui microprocesor îi corespunde acest model de programare?

a. PPC G4

4. Ce trebuie să specifice o instrucțiune?

a. Ce să realizeze, unde se găsește operandul sau operanzii, unde


memorează rezultatul, locația următoarei instrucțiuni.

5. Care sunt cele trei clase principale de instrucțiuni?

a. De transfer de date, aritmetice și logice, de salt.

6. Câte clase de instrucțiuni sunt în funcție de numărul de adrese din instrucțiune?


a. 5

14
7. Ce reprezintă figura următoare?

a. O instrucțiune cu 3 adrese.

8. Ce reprezintă figura următoare?

Corect este 0 L zice a <?>


a. O instrucțiune cu 3 adrese.
b. O instrucțiune cu 0 adrese.

15
9. Ce reprezintă figura următoare?

a. Locația operanzilor pentru patru clase de ISA.

10. Ce mod de adresare este prezentat în figura următoare?

a. Imediată.

11. Ce mod de adresare este prezentat în figura următoare?

a. Directă.

12. Ce mod de adresare este prezentat în figura următoare?

a. Indirectă.

16
13. Ce mod de adresare este prezentat în figura următoare?

Directă prin registru.

14. Ce mod de adresare este prezentat în figura următoare?

a. Indirectă prin registru.

15. Ce mod de adresare este prezentat în figura următoare?

a. Cu deplasament (bazată sau cu index).

16. Ce mod de adresare este prezentat în figura următoare?

a. Relativă.

17. Ce reprezintă figura următoare?

a. Modelul de programare SRC.

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.

19. Care sunt caracteristicile SRC inferioare celor corespunzătoare procesoarelor


RISC?
a. Operează numai pe 32 de biţi, nu sunt operaţii pe octet sau jumătate de
cuvânt; instrucţiunile de salt pot sări necondiţionat sau condiţionat în
funcţie dacă valoarea din registrul specificat este = 0, <> 0, >= 0, or < 0;
Se poate sări doar la o adresă specificată de conţinutul unui registru şi
nu se permite un salt direct.

20. Ce tipuri de instrucțiuni sunt prezentate în figura următoare?

a. Type 1, Type 2, Type 3.

21. Care sunt instrucțiunile de încărcare și memorare la procesorul SRC?

a. ld, ldr, la, st,str.

22. Care sunt instrucțiunile aritmetice la procesorul SRC?

a. add, addi, sub, neg.

23. Care sunt instrucțiunile logice și de deplasare la procesorul SRC?

a. and, andi, or, ori, not, shr, sha, shl, shc.

24. Care sunt instrucțiunile de control (salt) la procesorul SRC?

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. 00000000H la 0000FFFFH, FFFF0000H la FFFFFFFFH.

27. Ce gamă de adrese de memorie pot fi specificate cu adresarea relativă?


a. 2^21 -1 înainte 2^21 înapoi.

28. Ce definește expresia RTN abstract (câmpul X)?

a. ii .

29. Ce definește expresia RTN abstract (câmpul X)?

a. ie.

30. Ce definește expresia RTN abstract (câmpul X)?

a. ld(:=op=1).

19
31. Ce definește expresia RTN abstract (câmpul X)?

a. cond:

32. Ce definește expresia RTN abstract (câmpul X)?

a. n.

33. Ce definește expresia RTN abstract (câmpurile X1,X2,X3,X4)?

a. X1 este shr (:= op=26), X2 este shra (:= op=27), X3 este shl (:= op=28),
X4 este shc (:= op=29).

34. Ce reprezintă figura următoare?

a. Multiplexor n căi,

20
35. Ce reprezintă figura următoare?

a. Poartă cu trei stări.

36. Ce reprezintă figura următoare?

a. Setul de regiștrii.
37. Ce reprezintă figura următoare?

a. Adunarea a doi regiștri în RTN abstract

38. Ce reprezintă figura următoare?

a. Adunarea a doi regiștri în RTN concret

39. Ce reprezintă figura următoare?

Corect b acuma na L zice ca ar fi a <?> 


a. Adunarea a doi regiștri în RTN concret
b. Secvența de control pentru adunarea a doi regiștri.

21
40. Ce reprezintă figura următoare?

a. Regiștrii și unitatea aritmetică conectate pe o singură magistrală

22
Capitolul 3: Proiectarea și implementarea
procesorului SRC
1. Ce reprezintă schema din figura următoare?

a. arhitectură SRC la nivel înalt cu o singură magistrală.

2. Ce reprezintă următoarea exprimare a execuției unei instrucțiuni?


(IR ← M[PC]: PC ← PC + 4; instruction_execution);
instruction_execution := ( • • •
xxx (:= op= 12) → R[ra] ← R[rb] + R[rc]:

a. RTN abstract pentru instrucțiunea de adunare.

3. Ce reprezintă următoarea exprimare a execuției unei instrucțiuni?

a. RTN concret pentru instrucțiunea de adunare.

4. Ce instrucțiune este xxx din următoarea exprimare abstract RTN?


xxx (:= op= 13) → R[ra] ← R[rb] + c2<16..0> {2's comp. sign extend} :

a. addi.

23
5. Ce tip de RTN și pentru ce instrucțiune este secvența următoare?

a. addi RTN concret.

6. Ce reprezintă și ce instrucțiuni (xxx și yyy) sunt descrise în figura următoare?

a. RTN abstract și concret pentru instrucțiunile ld și st.

7. Ce reprezintă și ce instrucțiune (xxx ) este descrisă în figura următoare?

a. RTN abstract și concret pentru instrucțiunea br.

24
8. Ce reprezintă biții c3<2..0> din instrucțiunea de salt.

a. Condiția de salt.

9. Ce reprezintă și ce instrucțiune (xxx ) este descrisă în figura următoare?

a. RTN abstract și concret pentru instrucțiunea instrucțiunea de deplasare la


dreapta.

10. Ce fel de bistabil este cel din figura următoare?

a. Bistabil de tip D cu zăvorâre (latch).

11. Ce fel de bistabil este cel din figura următoare?

a. Bistabil de tip D activ pe front.

25
12. Ce reprezintă schema din figura următoare?

a. Setul de regiștrii și semnalele de control aferente SRC.

13. Ce rol are semnalul BAout 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?

a. Validează scrierea de pe magistrala internă în orice registru.

15. Ce rol are semnalul Rout din figura următoare?

a. Validează citirea de pe magistrala internă din orice registru.

27
16. Ce rol are semnalul Gra din figura următoare?

a. Validează depunerea adresei dată de câmpul ra din codul instrucțiunii la


intrarea decodificatorului de regiștrii.

17. Ce reprezintă și când se evaluează expresia?

a. Calcului adresei efective; în momentul execuției.

28
18. Ce reprezintă schema din figura următoare?

a. Schema de generare a constantelor c1, și c3 și semnalele de control


aferente SRC.

19. Ce rol are semnalul c2out din figura următoare?

a. Validează depunerea pe magistrala internă de date a biților <0..21> și


forțează copierea bitului (extensia de semn) 21 pe biții <22..31>.

29
20. Ce rol are semnalul c2out din figura următoare?

a. Validează depunerea pe magistrala internă de date a biților <0..16> și


forțează copierea bitului (extensia de semn) 16 pe biții <17..31>.

21. Ce reprezintă schema din figura următoare?

a. Interfața dintre SRC (regiștrii MD și MA) și memorie

30
22. Ce rol are semnalul MDrd din figura următoare?

a. Validează scrierea datei de pe magistrala de date data<31..0> în registrul


MD de date.

23. Ce rol are semnalul MDbus din figura următoare?

a. Validează scrierea datei de pe magistrala internă de date, CPU bus, în


registrul MD de date.
31
24. Ce rol are semnalul MAin din figura următoare?

a. Validează scrierea datei de pe magistrala internă de date, CPU bus, în


registrul MA de adrese.

25. Ce rol are semnalul Done din figura următoare?

a. Indică procesorului că operația cerută s-a executat.

32
26. Ce reprezintă schema din figura următoare?

a. Unitatea aritmetico-logică și semnalele de control aferente SRC pentru un


bit.

27. Ce rol are semnalul INC4 din figura următoare?

a. Forțează constanta 4 pe intrarea x1 din ALU.


28. Ce reprezintă coloana din dreapta tabelului?

a. Secvențele de control

29. Pentru ce anume sunt secvențele de control din partea dreaptă a tabelului următor?

a. Extragerea codului instrucțiunii.


33
30. La ce instrucțiune se referă secvențele din tabelul următor?

a. add.

31. La ce instrucțiune se referă secvențele din tabelul următor?

b. addi.

32. La ce instrucțiune se referă secvențele din tabelul următor?

c. st.

33. Ce reprezintă schema din figura următoare?

a. Numărătorul pentru instrucțiunile de deplasare.

34
34. Ce rol are semnalul LD din schema din figura următoare?

a. Încarcă valoarea de decrementat care reprezintă numărul de deplasări.

35. La ce instrucțiune se referă secvențele din tabelul următor?

a. shr.

36. La ce semnal se referă expresiile?

a. cond.

35
37. Ce reprezintă schema din figura următoare?

a. Schema de evaluare a condițiilor de salt pentru instrucțiunea branch.

38. La ce instrucțiune se referă secvențele din tabelul următor?

a. Br

39. Ce reprezintă schema din figura următoare? La ce folosește?

a. Perioada minimă a ceasului. Pentru evaluarea frecvenței maxime a


procesorului.

36
40. Ce reprezintă schema din figura următoare?

a. Unitatea de control.

41. Ce reprezintă schema din figura următoare?

a. Modul de sintetizare a semnalelor unității de control.

42. Ce reprezintă schema din figura următoare?

a. Schema de salt pentru numărătorul unității de control în cazul execuției


instrucțiunilor de deplasare.

37
43. Ce reprezintă schema din figura următoare?

a. Logica de generare a semnalelor START și STOP și a celor de sincronizare


cu memoria.

44. Ce reprezintă schema din figura următoare?

a. O microarhitectură cu două magistrale.

45. Ce reprezintă secvențele din tabelul următor?

a. RTN-ul concret și secvențele de control pentru un SRC cu două magistrale,


pentru add.

46. Dacă CPI pentru un procesor scade de la 8 la 7 care este creșterea de


performanță?

a. 14%

38
47. Ce reprezintă schema din figura următoare?

a. O microarhitectură cu trei magistrale.

48. Ce reprezintă secvențele din tabelul următor?

a. RTN-ul concret și secvențele de control pentru un SRC cu trei magistrale,


pentru add.

49. Presupuneți că CPI scade de la 8 la 4 în timp ce durata ceasului crește cu 10%.


Care este creșterea de viteză în acest caz?
a. 82%.

50. Ce situație descrie următoarea secvență RTN?

39
a. RTN concret care descrie Reset-ul pe durata execuției instrucțiunii add.

51. Ce este reprezentat în figura următoare?

a. Vectorul pentru întreruperi.

52. Ce reprezintă următoarea secvență RTN?

a. Modificarea interpretării instrucțiunii la SRC în prezența întreruperilor.

53. Ce reprezintă secvențele din tabelul următor?

a. RTN concret pentru extragerea instrucțiunii în prezența întreruperilor.

54. Ce reprezintă schema din figura următoare?

a. Schema de decodificare pentru porturile de intrare/ ieșire.

40
55. Ce reprezintă schema din figura următoare?

a. Interfața dintre procesorul SRC și o imprimantă.


56. Ce face următorul program?

a. Trimite un caracter la un dispozitiv de ieșire prin testare în buclă.

57. Ce face următorul program?

41
a. Trimite 80 de caractere la un dispozitiv de ieșire prin testare în buclă.

58. Ce face următorul program?

a. Pria prin testare în buclă caractere de la 32 de dispozitive de intrare.

59. Ce reprezintă schema din figura următoare?

a. Logica simplificată pentru întreruperi de la nivelul dispozitivului.

42
60. Ce reprezintă schema din figura următoare?

a. Logica pentru întreruperi de la nivelul procesorului SRC pentru interfațarea


cu dispozitivele I/O.

43
Capitolul 4: MIPS
1. Ce numere echivalente și ce semnificație dedicată au registrele $a0-$a3?
b. 4-7 registre pentru argumente.

2. Ce numere echivalente și ce semnificație dedicată au registrele $v0-$v1?


a. 2-3, valori returnate.

3. Ce numere echivalente și ce semnificație dedicată au registrele $s0-$s7?

a. 16-23 registre de salvare.

4. Ce numere echivalente și ce semnificație dedicată au registrele $t0-$t7?

a. 8-15 registre temporare.

5. Ce este reprezentat în figura următoare?

a. Formatul instrucțiunii MIPS de tip R.

6. Ce semnificație are câmpul shamt din figura următoare?

a. Contorul de deplasări pentru instrucțiunile de deplasare.

7. Ce semnificație are câmpul funct din figura următoare?

a. Codul funcției care însoțește opcodul.

8. Ce realizează instrucțiunea lb $t0,1($s3)?

a. Încarcă un octet din memorie de la adresa (s3+1) în registrul t0.

9. Există instrucțiunea cu mnemonica lb la procesorul SRC?

a. Nu.
b. Da.

44
10. Ce este reprezentat în figura următoare?

a. Formatul instrucțiunii MIPS de tip I.

11. Ce se reprezintă în figura următoare?

a. Calculul adresei de salt pentru instrucțiunea branch.

12. Care este distanța instrucțiunii branch la MIPS.

a. -215 la +215-1

13. Ce execută instrucțiunea slt $t0, $s0, $s1?

a. Dacă $s0 < $s1 atunci $t0 = 1, altfel $t0 = 0.

14. Ce este reprezentat în figura următoare?

a. Formatul instrucțiunii MIPS de tip J.

15. Ce se reprezintă în figura următoare?

45
a. Calculul adresei de salt pentru de salt necondiționat.
16. Ce execută instrucțiunea jal etichetă?

a. Salvează PC+4 în registrul ra și salt la PC+4+etichetă.

17. Ce execută instrucțiunea jr $ra?

a. Salt la conținutul registrului $ra .

18. Ce execută instrucțiunea lui $t0, 0xAAAA

a. Încărcă valoarea hexa 0xAAAA în jumătatea superioară a registrului $t0.

19. Fie instrucțiunile


lui $t0, 1010101010101010b
or $t0,$t0,1010101010101010b
Ce rezultat regăsim în $t0?

a. 0xAAAAAAAA.

20. Ce tip de adresare este prezentat în figura următoare?

a. Adresare registru.

21. Ce tip de adresare este prezentat în figura următoare?

a. Adresare cu bază.

22. Ce tip de adresare este prezentat în figura următoare?

a. Adresare imediată.

46
23. Ce tip de adresare este prezentat în figura următoare?

a. Adresare relativă la PC.

24. Ce tip de adresare este prezentat în figura următoare?

a. Adresare pseudo-directă.

25. Care este etajul 1 din arhitectura MIPS?

a. De extragere a instrucțiunii.

26. Care este etajul 2 din arhitectura MIPS?

a. De decodificare și citire a regiștrilor.

27. Care este etajul 3 din arhitectura MIPS?

a. De execuție (ALU).

28. Care este etajul 4 din arhitectura MIPS?

a. De acces la memoria de date.

29. Care este etajul 5 din arhitectura MIPS?

a. De scriere a rezultatului în registru.

47
30. Ce se reprezintă în figura următoare?

a. Setul de regiștrii.
31. Fie figura:

Ce rol are semnalul RegWr?

a. Validează scrierea în registru a rezultatului.

32. Fie figura:

Ce rol are semnalul ALUctr?

48
a. Selectează operația pentru ALU.

33. Fie figura:

Care este rolul multiplexorului comandat de semnalul RedDst?

a. De a selecta adresa pentru registrul destinație Rd pentru instrucțiunile de


tip R și adresa pentru registrul destinație Rt pentru instrucțiunile de tip I.

49
34. Fie schema:

Pentru ce instrucțiune este valabilă?

a. lw.
35. Fie schema:

Pentru ce instrucțiune este valabilă?

b. sw.

50
36. Fie schema:

Ce rol are semnalul nPC_sel?

a. De a selecta ca adresa următoarei instrucțiuni fie PC+4, fie adresa rezultată


în urma execuției instrucțiunii br.

37. Fie schema:

Pentru ce instrucțiune sunt active semnalele?

a. ori.

51
38. Fie schema:

Pentru ce instrucțiune sunt active semnalele? ( load ) ????????


a. addi

39. Fie schema:

Pentru ce instrucțiune sunt active semnalele?

a. sw.

40. Ce semnal de control are ecuația logică:


add+sub?

a. RegDst

52
41. Ce semnal de control are ecuația logică:
ori+lw+sw?

a. ALUSrc

42. Ce semnal de control are ecuația logică:


lw?

a. MemtoReg

43. Ce semnal de control are ecuația logică:


add+sub+ori+lw?

b. RegWrite

44. Ce semnal de control are ecuația logică:


sw?

a. MemWrite

45. Ce semnal de control are ecuația logică:


beq?

a. nPCsel RegDst

46. Ce semnal de control are ecuația logică:


jump?

a. Jump

47. Ce semnal de control are ecuația logică:


lw+sw?

a. ExtOp

48. Ce semnal de control are ecuația logică:


sub + beq (presupunând că semnalele de control ALU sun 0 add, 01:SUB, 10: OR)?

a. ALUctr[0]

53
49. Ce semnal de control are ecuația logică:
or?

a. ALUctr[1]

50. Ce semnal de control are ecuația logică:


= ~op5  ~op4  ~op3  ~op2  ~op1  ~op0,

a. rtype

51. Ce semnal de control are ecuația logică:


~op5  ~op4  op3  op2  ~op1  op0

a. ori

52. Ce semnal de control are ecuația logică:


op5  ~op4  ~op3  ~op2  op1  op0

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:

Pentru ce instrucțiune sunt active semnalele?

a. jmp

59. Fie schema:

Ce rol are semnalul jump?

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:

Dacă MemToReg = x și ALUctr = ‘sub’ este sub sau beq?

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

a. 1 0 0 (Reg) 0 Add 1 (ALU) 0

b. 1 1 1 (Imm) 0 Add 1 (Mem) 0

57
2. Fie instrucțiunile:

Care resurse (blocuri realizează o sarcină utilă pentru aceste instrucțiuni?

a. Resursele care realizează o funcție utilă pentru aceste instrucțiuni sunt:


a. Toate cu excepția unităților Data Memory și branch Add

b. Toate cu excepția unităților Add și a portului de citire a regiștrilor

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

a. Branch Add Data Memory

b. Branch Add, al doilea port de citire Nu este cazul


a regiștrilor

58
4. Fie figura 4.2.

Figura 4.2

Diferitele întârzieri ale blocurilor componente sunt prezentate în tabelul următor:

Care este calea critică pentru instrucțiunea AND (MIPS)?

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

Diferitele întârzieri ale blocurilor componente sunt prezentate în tabelul următor:

Care este calea critică pentru instrucțiunea LD (MIPS)?

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

6. Fie figura 4.2.

Figura 4.2

Diferitele întârzieri ale blocurilor componente sunt prezentate în tabelul următor:

Care este calea critică pentru instrucțiunea BEQ (MIPS)?

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ă.

b. Prima cale (prin regiștri) este mai lungă.

7. Î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

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.

b. Această instrucțiune utilizează memoria de instrucțiuni, unul dintre porturile

62
existente pentru citirea regiștrilor, calea care pasează valoarea imediată către
ALU, și portul de scriere în regiștri.

8. Î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 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.

b. Trebuie extins ALU existent pentru a face și deplasările.

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.

10. Fie următoarele blocuri logice:

Blocuri logice

64
a. I-Memory mică, având cuvinte pe 8 biți

b. Unitate mică de regiștri cu doi regiștri 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.

b. Ambele, dar predominante sunt bistabilele; acestea au o logică care să le


selecteze și să permită operațiile de citire și de scriere.

11. Fie următoarele blocuri logice:

Blocuri logice

a. I-Memory mică, având cuvinte pe 8 biți

b. Unitate mică de regiștri cu doi regiștri pe 8 biți.

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

a. I-Memory mică, având cuvinte pe 8 biți

b. Unitate mică de regiștri cu doi regiștri pe 8 biți.

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
.

13. Fie următoarele semnale de control:

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.

a.
a.

68
b.

14. Fie următoarele semnale de control:

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. Presupuneți că toate porțile au întârzieri egale, care este
lungimea în porți a căii critice pentru implementarea expresiei?

a.
a. 4

b. 4

15. Fie următoarele semnale de control:

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.

16. Se dau următoarele întârzieri pentru porțile logice.

70
Fie circuitele:
a.

b.

Care este lungimea căii critice pentru cele două circuite?

a.
a. Există patru porți OR pe calea critică cu un total de timp de întârziere de 136ps.

b. Calea critică constă din OR,XOR,OR și OR pentru un total de 510ps.

17. Se dau următoarele întârzieri pentru porțile logice.

Fie circuitele:

71
a.

b.

a. Care este costul acestor circuite?


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.
a. Costul este de 2 porți AND și 4 OR dintr-un total de 16

b. Costul este de 1 poartă AND, 4 OR și 1 XOR dintr-un total de 12

18. Se dau următoarele întârzieri pentru porțile logice.

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

a. 16 22(+2 porți OR) (22-16)/22 = 27%

b. 12 14(+1 poartă AND) (14-12)/14 = 14%

19. Fie operațiile ALU:

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.

20. Fie operațiile ALU:

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.

21. Fie următoarele instrucțiuni MIPS:

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

22. Fie următoarele instrucțiuni MIPS:

Care este valoarea cuvântului instrucțiune?

75
a.
Binar Hexazecimal

a. 100011 00110 00001 8CC10028


0000000000101000

b. 000101 00001 00010 1422FFFF


1111111111111111

23. Fie următoarele instrucțiuni MIPS:

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

b. Necunoscut deoarece RegDest este Nu


x

24. Diferitele instrucțiuni necesită activarea diferitelor semnale de control din calea de
date. Fie semnalele de control:

din figura 4.24:

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:

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ă 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

b. MemRead = = I31 AND NOT I29


RegWrite = (NOT I28 AND NOT I27) OR (I31 and I29)

27. Fie cuvintele instrucțiune:

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

28. Fie cuvintele instrucțiune:

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

29. Fie cuvintele instrucțiune:

Care este noua adresă din PC după execuția acestor instrucțiuni?

a.
Noul PC Calea

a. PC+4 PC – Add(PC+4)- branch MUX – jump MUX


- PC

b. Dacă $1 și $3 nu sunt egale, PC + 4 PC – Add(PC+4)- branch MUX sau PC -


Dacă Dacă $1 și $3 sunt egale PC +4 +4 Add(PC+4) – Add(adună offsetul) – branch
x 12 MUX. După branch MUX se merge prin
jump MUX în PC.

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

b. 3 sau 0 -3 X 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

b. -16 și -3 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

33. Fie următoarele întârzieri date de etajele unei linii pipeline:

Care este perioada ceasului întru-un procesor cu pipeline și unul fără?

a.
Cu pipeline Cu un singur ciclu

a. 500 ps 1650 ps

b. 200ps 800 ps

34. Fie următoarele întârzieri date de etajele unei linii pipeline:

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

35. Fie următoarele întârzieri date de etajele unei linii pipeline:

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

36. Presupunem că instrucțiunile executate de procesor sunt împărțite după cum


urmează:

Presupunând că nu sunt blocaje sau hazard, care este utilizarea (% din cicli utilizați)
memoriei de date?

a.
a. 25%

b. 45%

37. Presupunem că instrucțiunile executate de procesor sunt împărțite după cum


urmează:
84
Presupunând că nu sunt blocaje sau hazard, care este utilizarea (% din cicli utilizați)
portului de scriere în regiștri?
a.
a. 65%

b. 60%

38. Fie următoarea secvență de instrucțiuni:

Indicați dependențele și tipul lor.


a.
Secvența de instrucțiuni Dependențe

a. I1: lw $1,40($6) RAW pe $1 de la I1 to I3

I2: add $6,$2,$2 RAW pe $6 de la I2 to I3

I3: sw $6,50($1) WAR pe $6 de la I1 to I2 and I3

b. I1: lw $5,-16($5) RAW pe $5 de la I1 to I2 and I3

I2: sw $5,-16($5) WAR pe $5 de la I1 and I2 to I3

I3: add $5,$5,$5 WAW pe $5 de la I1 to I3

39. Fie următoarea secvență de instrucțiuni:

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)

add $6,$2,$2 Delay I3 to avoid RAW hazard on $1 from


nop I1

sw $6,50($1)

b. lw $5,-16($5)
Delay I2 to avoid RAW hazard on $5 from
nop I1
nop

sw $5,-16($5) Note: no RAW hazard from on $5 from I1


now
add $5,$5,$5

40. Fie următoarea secvență de instrucțiuni:

Presupuneți că există o unitate de avansare completă. Indicați hazardul și adăugați


instrucțiuni nop pentru a-l elimina.

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)

nop Delay I2 to avoid RAW hazard on $5 from


I1
sw $5,-16($5)
Value for $5 is forwarded from I2 now
add $5,$5,$5
Note: no RAW hazard from on $5 from I1
now

41. Fie următoarea secvență de instrucțiuni:

.
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

a. 2400 ps 2800 ps 0,86

b. 1800 ps 2000 ps 0,90

42. Fie următoarea secvență de instrucțiuni:

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)

nop Nu se poate utiliza avansarea ALU-ALU ($5


încărcat din memorie)
nop

sw $5,-16($5)

add $5,$5,$5

43. Fie următoarea secvență de instrucțiuni:

.
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. 2400 ps 2880 ps 0,83

b. 1800 ps 1980 ps 0,91

44. Fie următoarele instrucțiuni MIPS:

O dată cu execuția acestor instrucțiuni, ce a fost păstrat în fiecare registru localizat


între două etaje pipeline?

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.

45. Fie următoarele instrucțiuni MIPS:

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

b. $5 $5 (de două ori)

46. Fie următoarele instrucțiuni MIPS:

Ce fac aceste instrucțiuni în etajele EX și MEM?

a.
EX MEM

a. 40 + $6 Încarcă o valoare din memorie

b. $5 + $5 Nimic

47. Fie secvențele de program:

Prezentați o diagramă de execuție pipeline pentru a treia iterație a acestor bucle, de la


ciclu în care se extrage prima instrucțiune a următoarei iterații. Prezentați toate
instrucțiunile care sunt în pipeline pe durata acestor cicli (nu numai aceia de la iterația a
treia).

a.

90
EX MEM

a. 2:add $5,$5,$8 WB

2:add $6,$6,$8 MEM WB

2:sw $1,20($5) EX MEM WB

2:beq $1,$0,Loop ID EX MEM WB

3:lw $1,40($6) IF ID EX MEM WB

3:add $5,$5,$8 IF ID EX MEM

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

add $2,$2,$4 EX MEM WB

beq $2,$0,Loop ID EX MEM WB

add $1,$2,$3 IF ID EX 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

48. Fie secvențele de program:

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%

49. Fie secvențele de program:

Ce este memorat în registrul IF/ID la începutul ciclului în care se extrage prima


instrucțiune din iterația a treia a acestor bucle.

a. Adresa primei instrucțiuni a celei de a treia iterație (PC+4 pentru beq de la


iterația precedentă) și cuvântul instrucțiune pentru beq de la iterația precedentă.

50. Să presupunem că instrucțiunile executate de un procesor pipeline au următoarele


procente de execuție:

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%

51. Să presupunem că instrucțiunile executate de un procesor pipeline au următoarele


procente de execuție:

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%

52. Să presupunem că instrucțiunile executate de un procesor pipeline au următoarele


procente de execuție:

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ă

a. 500 ps 140 ps 3.57 %

b. 730 ps 230 ps 3.17 %

54. Fie următoarea secvență de instrucțiuni:

Găsiți toate dependențele de date din aceste secvențe de instrucțiuni.


94
a.
Secvența de RAW WAR WAW
instrucțiuni
a. I1: lw $1,40($2) ($1) I1 to I3 ($2) I1 to I2 ($1) I1 to I3

I2: add $2,$3,$3 ($2) I2 to I3, I4

I3: add $1,$1,$2 ($1) I3 to I4

I4: sw $1,20($2)

b. I1: add $1,$2,$3 ($1) I1 to I2 ($2) I1, I2, I3 to ($1) I1 to I3


I4
I2: sw $2,0($1) ($1) I3 to I4
($1) I1, I2 to I3
I3: lw $1,4($2)

I4: add $2,$2,$1

55. Fie următoarea secvență de instrucțiuni:

Găsiți toate hazardurile în această secvență de instrucțiuni pentru un pipeline cu 5 etaje


cu și fără avansare.

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)

I4: add $2,$2,$1

56. Fie următoarea secvență de instrucțiuni:

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

I2: sw $2,0($1) ($1) I3 to I4

I3: lw $1,4($2)

I4: add $2,$2,$1

57. Fie următoarele două instrucțiuni:

96
Ce tip de excepție poate genera fiecare dintre aceste instrucțiuni?

a.
Instrucțiunea 1 Instrucțiunea 2

a. Overflow (EX) Invalid target address (EX)

b. Invalid data address (MEM) No exceptions

58. Presupunem că handler-ii pentru întreruperi sunt localizați la următoarele adrese:

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

59. Fie următoarele instrucțiuni și excepțiile asociate:

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. EX IF.Flush = ID.Flush = EX.Flush = 1, PCSel = Exc

b. MEM IF.Flush = ID.Flush = EX.Flush = MEM.Flush = 1, PCSel =


Exc

This exception is detected in MEM, so we added


MEM.Flush

60. Poate fi complet eliminat posibilul hazard dat de instrucțiunea LD?

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:

Care este secvența de evenimente pentru un ciclul de citire?

5. Fie interfața cu memoria principală prezentată în figura următoare:

Care este secvența de evenimente pentru un ciclul de scriere?

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:

Care este memoria cea mai rapidă?


CPU
10. Fie ierarhia de memorie din figura următoare:

Care este memoria cea mai lentă?


Tape memory
11. Fie ierarhia de memorie din figura următoare:

Care este memoria cu acces secvențial?


Tape memory
12. Ce reprezintă figura următoare?

This “static” RAM cell is unrealistic.


13. Ce capacitate are memoria din figura următoare (nr. cuvinte x nr biți/ cuvânt)?

100
A 4x8 2D Memory Cell Array
14. Ce capacitate are memoria din figura următoare (nr. cuvinte x nr biți/ cuvânt)?

A 64Kx1 bit static RAM (SRAM) chip


15. Câți pini are chipul în care se poate încapsula memoria din figura următoare?

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?

A 6 Transistor static RAM cell

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*/.

21. Ce tip de ciclu este reprezentat în figura următoare?

Static RAM Read Timing

102
22. Ce tip de ciclu este reprezentat în figura următoare?

Static RAM Write Timing


23. Ce este reprezentat în figura următoare?

A Dynamic RAM (DRAM) Cell


24. Fie figura:

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

26. Ce tip de ciclu este reprezentat în figura următoare?

Typical DRAM Write operation

27. Ce este reprezentat în figura următoare?

A CMOS ROM Chip


28. Care dintre tipurile de memorie ROM este mai ieftină? Dar mai scumpă?
Mask programed-ieftine, EEPROM-scumpa
29. Fie blocul de memorie:

Care este mărime cuvântului de memorie dacă p = 8 și s = 4?

104
32
30. Fie blocul de memorie:

Care este capacitatea blocului de memorie dacă m = 10, k = 5, s= 8?


5 biti de adresa 2^5 cipuri, 2^10 cuvinte fiecare cip
31. Fie blocul de memorie:

Care este capacitatea blocului de memorie dacă m = 10, k = 5, q = 5 și s= 8?


2^m+q+k s-bit word

32. Fie blocul de memorie:

Care este capacitatea blocului de memorie dacă m = 10, kc = 5, kr = 5 și w= 8?

105
2^m+kc+kr+w
33. Ce este prezentat în figura următoare?

A Memory Module interface


34. Ce este prezentat în figura următoare?

DRAM module with refresh control


35. Care dintre module este cu interleaving?

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

37. Fie blocul de memorie:

Maparea memoriei
a. Ce tip de decodificare este?

b. În care modul se află adresa 0xd400 FFFF.


In nici un modul
c. În care modul se află adresa 0xd500 FFFF.
In nici un modul
d. În care modul se află adresa 0xd600 FFFF.
In nici un modul
e. În care modul se află adresa 0xd700 FFFF.
In nici un modul
f. În care modul se află adresa 0xd802 FFFF.
Modulul A
g. În care modul se află adresa 0xda02 ab0f.
Modulul A
h. În care modul se află adresa 0x2400 FFFF.
Modulul B
i. În care modul se află adresa 0x2500 FFFF.
Modulul B
j. În care modul se află adresa 0x2600 FFFF.
Modulul B
k. În care modul se află adresa 0x2700 FFFF.
Modulul B
l. În care modul se află adresa 0xe400 FFFF.
In nici un modul
m. În care modul se află adresa 0xc500 FFFF.
In nici un modul
n. În care modul se află adresa 0xa600 FFFF.
In nici un modul
o. În care modul se află adresa 0x7700 FFFF.
In nici un modul
p. În care modul se află adresa 0x8802 FFFF1.
Adresa gresita. In nici un modul
q. În care modul se află adresa 0x1 a020 ab0f.
107
Adresa gresita. In nici un modul
r. În care modul se află adresa 0x1a02 ab0f.
Adresa gresita. In nici un modul
38. O memorie cache asociativă are un timp de acces de 40 ns, în comparație cu timpul de tip
miss care este de 90 ns. Fără cache, timpul de acces la memorie este de 70 ns. Executând un
set de programe de test (benchmarks) cu și fără cahe se obține o creștere de viteză de 1,4.
Care este raportul aproximativ de potrivire (hit ratio)?
39. O memorie principală de 16 MB are o meorie cache de 32 KB cu mapare directă cu 8 biți per
linie.
a. Câte linii sunt în cache?
b. Arătați cum este partiționată adresarea memoriei principale.
40. Un sistem de memorie are o memorie principală de 32 de MB și 64 KB de memorie cache.
Blocurile din cache au mărimea de 16 octeți. Prezentați câmpurile din adresa de memorie
dacă memoria cache este:
a. Asociativă
b. Mapată direct
c. Asociativă pe seturi cu 8 căi.
41. Ce se prezintă în figura următoare?

Associative mapped caches


42. Ce se prezintă în figura următoare?

Associative cache mechanism

108
43. Ce se prezintă în figura următoare?

The direct mapped cache


44. Ce se prezintă în figura următoare?

Direct Mapped Cache Operation


45. Ce se prezintă în figura următoare?

2-Way Set Associative Cache


46. Ce se prezintă în figura următoare?

109
TLB Structure and Operation
47. Ce se prezintă în figura următoare?

Operation of the Memory Hierarchy

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

10. Fie figura următoare: Ce rol au semnalele BE0


– BE3?
When asserted, indicates that location zero in the selected dword is being addressed and that the
byte to be read or written will be transferred over data path 0 (D[7:0]).
When asserted, indicates that location one in the selected dword is being addressed and that the
byte to be read or written will be transferred over data path 1 (D[15:8]).
When asserted, indicates that location two in the selected dword is being addressed and that the
byte to be read or written will be transferred over data path 2 (D[23:16]).
When asserted, indicates that location three in the selected dword is being addressed and that the
byte to be read or written will be transferred over data path 3 (D[31:24]).
11. Ce se prezintă în figura următoare?

illustrates the 386's register set.


Ce se prezintă în figura următoare?

12. Ce rol are registrul CR1?


CR1 is reserved and has never been implemented in any of the IA32 processors.
13. Ce rol are registrul CR2?
32 bits wide. Assuming that the processor is operating in Protected Mode (CR0[PE] = 1) and that
Paging is enabled (CR0[PG] = 1), when a memory access is attempted wherein the target page is
not currently present in memory (i.e., it resides on a mass storage device, or access to the target
page is not permitted), the processor automatically records the offending memory address in
CR2.
112
14. Ce rol are registrul CR3?
32 bits wide. Assuming that the processor is operating in Protected Mode (CR0[PE] = 1) and that
Paging is enabled (CR0[PG] = 1), when a memory access is attempted wherein the target page is
not currently present in memory (i.e., it resides on a mass storage device, or access to the target
page is not permitted), the processor automatically records the offending memory address in
CR2.
15. Ce se prezintă în figura următoare?

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?

24. Ce este EIP?


Extended Instruction Pointer (EIP) Register"
The Code Segment (CS) register identifies the start address of the area of memory that contains
the currently executing program, while the 32-bit EIP register identifies the exact location within
the code segment that the next instruction of the currently executing program will be fetched
from.
25. Ce se prezintă în figură?

Task State Segment, or TSS


26. Ce este TSS?
A multitasking OS creates a special data structure in memory for each task (i.e., program) that
will be executed. The processor and/or OS uses this data structure (the Task State Segment, or
TSS).
27. Cum se localizează TSS?
The TR tells the processor where the task's TSS resides in memory.
The 16-bit TR identifies which entry in the memory-based GDT (Global Descriptor Table)
contains the start address and length of the TSS for the currently executing task.
28. Ce rol are registrul LDTR?
The Local Descriptor Table Register (LDTR) contains the segment descriptors that define the
start address, length, and access rights for the segments that are accessible only by the currently
executing task.
114
29. Ce rol are registrul GDTR?
The Global Descriptor Table Register (GDTR) is only used when the processor is operating in
Protected Mode.
It points to the GDT in memory. The GDT contains the following:
The segment descriptors that define the start address, length, and access rights for memory
segments that are accessible by multiple tasks.
Descriptors that point to the TSS data structures associated with each of the tasks that the OS is
currently executing.
Descriptors that point to Local Descriptor Tables (LDTs) associated with each of the tasks that
the OS is currently executing.
30. Ce rol are registrul IDTR?
IDTR Points To the Interrupt Table.In order for this to work, the processor obviously must know
the startaddress of the Interrupt Descriptor Table (the IDT).
31. Ce se prezintă în figura următoare?

IDT in mod real


32. Ce se prezintă în figura următoare?

IDT in mod protejat


33. Ce se prezintă în figura următoare?

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?

Partea vizibila a registrului de segment. Contine elementele de mai sus.


14. Ce se prezintă în figura următoare?

Partea invizibila a registrului segment. Registrul cache de segment.


15. Ce se prezintă în figura următoare?

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?

Code segment descriptor format


24. Ce se prezintă în figura următoare? Cum ați dedus?

Data segment descriptor format


25. Ce particularități are segmentul de stivă?
Stack segments must be designated as read/write. The subject of expand-up versus expand-down
stacks .
26. Fie figura:

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.

Table 7-3. Types of System Segments

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.

29. Ce reprezintă CPL, RPL și DPL?


Intrebare 27
30. Ce se înțelege printr-un segment de cod cu conformare? Dar fără conformare?
Non-Conforming (you must match me). A code segment with C = 0 is a non-conforming code
segment. Code in a non-conforming code segment can only be jumped to or called by programs
whose CPL matches the target code segment's DPL (i.e., CPL = DPL).
Conforming (I'll lower myself to your level). A code segment with C = 1 is a conforming code
segment. Code in a conforming code segment can be jumped to or called by programs whose
120
CPL is the same as or less privileged than the target segment's DPL. Furthermore, the
processor then executes the code in the conforming code segment at the same privilege level as
that of the program that called it. In other words, the code in the conforming code segment
"conforms to" or assumes the privilege level of the program that called it. The CPL remains the
same as that of the calling program. A Call Gate is a special form of OS descriptor and may
reside in either the GDT or LDT. It may not reside within the Interrupt Descriptor Table (IDT).
A Call Gate is used to transfer control to a procedure whose privilege level is the same as or
more privileged than the calling program
31. Ce se prezintă în figura următoare?

32 biti call gate descriptor format


32. Ce rol au porțile de tip CALL.
a separate gateway to control access to each procedure within the code segment. Each gateway
would contain the entry point of its associated procedure and would limit access to the procedure
based on the privilege level of the caller. It would reject access attempts by any program whose
privilege level does not match its criteria and permit access attempts by programs that meet the
criteria. These gateways are referred to as Call Gates
33. Ce se prezintă în figura următoare?

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.

4. Câte intrări are PDE (Page Directory Entry)?


The Paging Unit's Page Directory contains 1024d 32-bit entries (Page Directory Entries, or
PDEs),

5. Câte intrări are PTE (Page Table Entry)?


Each Page Table, in turn, contains up to 1024d 32-bit entries, each of which defines the physical
location of a 4KB page of information either:in physical memory (by specifying its 4KB-aligned
base address), or its location on a mass storage device.

6. Cât spațiu de memorie gestionează PTE?


Intrebarea 5

7. Care este mărimea unei pagini normale?


Since each Page Directory Entry (PDE) is four bytes long

8. Cum se activează paginarea?


When the processor's Paging Unit is enabled, the memory address generated by the currently
executing program is called the linear address. From the Paging Unit's point of view, the 4GB
linear space available to the currently executing program is subdivided into 4KB (4096d
locations) pages. When the page size is divided into the overall size of linear space, 4GB, there
are 1M (220) linear pages.

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?

Page directory, page tables and pages


11. Cum știm că o pagină este în memorie? Ce poate să conțină intrarea dacă pagina nu este în
memorie?
Each entry contains a Page Table Present bit that indicates if the respective Page Table is
currently present in memory.If the page isn't present in memory, the upper part of the Page
Table entry (bits [31:1]) can contain a mass storage address.

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.

14. Ce se prezintă în figura următoare?

Page table lookup mechanism


15. Ce se prezintă în figura următoare?

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

18. Ce se prezintă în figura următoare?

Page table entry format


19. Cum se calculează adresa fizică pe baza unei PTE?
When P = 1, the target physical page is in memory. It starts at the 4KB-aligned base address
indicated in the PTE's base address field. The Paging Unit creates the exact 32-bit address of the
physical location in the page as follows:The upper 20 bits are obtained from the PTE's base
address field.The lower 12 bits are supplied directly by the lower 12 bits of the 32-bit linear
address.This 32-bit address is the address used in the resultant FSB memory transaction.

20. Ce se prezintă în figura următoare?

Translation lookaside buffer TLB


21. Ce rol are TLB?
The TLB is a very fast lookaside cache that sits off to the side and compares the upper 20 bits of
the linear address (i.e., the target linear page number) to the PTEs stored in its cache.
If there isn't a match, the Paging Unit (which is much slower than the TLB) is permitted to
proceed with the two memory reads to obtain the PDE and PTE.

22. Cum se anunță schimbarea conținutului unei PTE cu echivalent în TLB?


Task switch. When a task switch occurs, the processor saves its current register set contents in
the TSS of the old task and then loads its register set with the values from the new task's TSS. As
a result, CR3 is loaded with a new Page Directory base address and all TLB entries are
124
invalidated (eliminating all PTEs cached from the old set of Page Tables).OS programmer loads
a new value into CR3. When a privilege level 0 program is executing, the programmer may
choose to switch to a new set of mappings. This is accomplished by creating a new Page
Directory and set of Page Tables and then loading CR3 with the base address of the new Page
Directory. All TLB entries are invalidated (eliminating all PTEs cached from the old set of Page
Tables).

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.

26. Unde sunt afectați biții A și D?


If the Page Fault occurs due to a page not present or a page privilege access violation
(insufficient privilege or writes are not permitted), the A and D bits are affected in the PDE, but
not in the PTE..

27. Când sunt afectați biții A și D în PTE?


The PTE's A and D bits are only affected if the page access succeeds
28. Ce se prezintă în figură?

Page fault error code format


29. Ce este reprezentat în figura următoare?

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?

PCD an PWT bits added to PDE


34. Ce se prezintă în figura următoare?

PCD an PWT bits added to PTE


35. La ce procesor apar paginile de 4 MB?
Pentium® processor
36. Cum se validează modul de lucru cu pagini pe 4 MB?
Assuming that CR4[PSE] = 1, the OS sets up a 4MB page by creating a PDE (a Page Directory
Entry) with the format shown in Figure 21-9 on page 503:PDE[31:22] contains the upper 10 bits
of a 4MB page in physical memory. The processor assumes that the lower 22 bits are all zero.
PDE[7] is the PS (Page Size) bit. It must be set to 1.

126
37. Ce se prezintă în figura următoare?

4 MB Page adress translation


38. Ce este modul PAE-36?
With the advent of the Pentium® Pro processor, a new feature was introduced that permits the
supplied 32-bit virtual memory address to be mapped to a physical memory location that is
either below or above the 4GB address boundary anywhere within the 64GB addressable
address space. This feature is referred to as PAE-36 Mode (Physical Address Extension 36-bit).
39. Cum se activează modul PAE-36?
PAE-36 Mode is enabled by setting CR4[PAE] = 1Note that the processor must also be
operating in Protected Mode—CR0[PE] = 1, with Paging enabled—CR0[PG] = 1.

40. Ce se prezintă în figura următoare?

CR3 contains pointer to PDPT


41. Câți octeți au intrările în PDPT, PD și PD?
27 biti....???
42. Ce se prezintă în figura următoare?

CR3 format with PAE36 Mode enabled


127
43. Ce se prezintă în figura următoare?

PDPT entry format


44. Ce se prezintă în figura următoare?

PDE pointing to a 4 KB Page table

45. Ce se prezintă în figura următoare?

Linear adress translated to a 2MB phisycal page


46. Ce se prezintă în figura următoare?

PDE pointing to a 2 MB phisycal page


47. 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?

PTE pointing to a 4 KB physical page


49. Când s-au introdus paginile globale?
The TLB misses that occur after a task switch occurs negatively affects performance at the start
of the new task.
50. Care este rolul paginilor globale?

51. Ce este PSE-36?


Un mod in care The programmer can determine whether or not a processor supports PSE-36
Mode by executing a CPUID request type 1 and checking EDX[17] to see if it is set to one.
52. Ce se prezintă în figura următoare?

PDE points to a 4 MB page below or above the 4 gb adress boundary

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

S-ar putea să vă placă și