Anda di halaman 1dari 22

Arhitectura calculatoarelor

Curs 3
Structura unitatii centrale

Unitatea aritmetica si logica (ALU)


Pornim de la un exemplu de proiectare

Structura ALU

Numaratorul de adrese

Acumulatorul si registrul de conditii

Registrul de instructiuni

Registre-acumulator multiple

Memorie RAM externa arhitectura


Harvard

Memorie RAM externa Arhitectura


Von Neumann

Fazele executiei unei instructiuni


Extragerea instructiunii din memoria de
program (fetch)
Decodificarea identificarea operatiei si a
operanzilor
Extragerea operanzilor (din registrele
interne sau din ROM/RAM)
Executia propriu-zisa
Stocarea rezultatului (intr-un registru
intern sau direct in RAM)

Structura generala a unei


instructiuni

Moduri de adresare a operanzilor


Notatii:
A continutul campului adresa operand
din corpul instructiunii
AE Adresa efectiva
(M) continutul locatiei M

Adresarea imediata
Campul Adresa operand, din corpul
instructiunii, contine chiar operandul
Corolar pentru ca instructiunile se iau
din memoria de program (ROM) rezulta ca
operanzii adresati imediat sunt intotdeuna
constante.
Exemplu (HC11): LDAA
#$A5

Adresarea directa

Adresarea indirecta

Adresarea indexata
AE=(X)
X este un registru special denumit
registru index. X e un registru de 16 biti
Optional se poate specifica un
deplasament care se aduna la X pentru a
obtine valoarea adresei efective
Exemplu:
LDAA
5,X
Se incarca acumulatorul A de la adresa
(X)+5

CISC si RISC
CISC Complex Instructions Set
Computer
RISC Reduced Instructions Set
Computer
CISC e de obicei asociat cu arhutectura
Von Neumann
RISC e de obicei asociat cu arhitectura
Harvard

Conceptul de STIVA (Stack) si


Stack Pointer-ul
Stiva este o zona de memorie RAM adresata
indexat, folosind un registru index special
denumit Stack Pointer (SP).
La majoritatea procesoarelor SP este
decrementat automat la fiecare operatie de
depunere in stiva, si incrementat la extragere.
Corolar: SP se initializeaza cu ultima adresa de
RAM
Accesul la stiva este LIFO
Exista instructiuni speciale pentru accesul la
stiva (PUSH, PULL)

Exemple de utilizare a stivei


Pentru salvarea adresei de intoarcere in
programul principal la apelarea unei
subrutine
Pentru salvarea curenta a continutului
unor registre
Pentru salvarea starii masinii in cazul
recunoasterii unei intreruperi.

Conceptul de intrerupere
Intreruperile sunt un mecanism prin care se permite unei
unitati de prelucrare a datelor sa reactioneze la
evenimente externe, asincrone fata de executia
programului curent.
E nevoie de un semnal hardware care sa indice aparitia
evenimentului extern
Se salveaza starea CPU
Se executa o rutina de tratare a intreruperii (ISR
Interrupt Service Routine)
Se restaureaza starea si se reia executia programului
principal din punctul unde a fost intrerupt.
Daca apar mai multe intreruperi simultan, se vor trata
dupa o ordine de prioritati predefinita (hardcoded).

Recapitulare Structura interna a


CPU
ALU
Registrul numarator de program PC
Registrul de adrese. Se incarca fie cu continutul
PC, fie cu adresa operandului. Continutul lui e
scos pe magistrala de adrese a sistemului.
Registrul de instructiuni este incarcat din
memoria de program in ciclul de fetch si mentine
opcode-ul pe toata durata executiei
Acumulatorul (unul sau mai multe)

Structura interna a CPU continuare

Un numar de registre de uz general


Unul sau mai multe registre index
Un registru SP index pentru stiva
Un registru de conditii sau de stare
contine bitii de conditie (ZVCN) care se
testeaza in cazul salturilor conditionate.