Documente Academic
Documente Profesional
Documente Cultură
1
Registre, memorii,
porturi de intrare/iesire
Entitati de stocare a datelor:
registre:
intim legate de UCP
adresate prin nume (ex: AX,BX, R0, R1, SP)
numar redus de registre (1..32)
timp de acces minim !!!
registre:
generale: folosite pt. operatii aritmetice si logice
speciale: au functii determinate (ex: control, stare, pt.
adresare, pt. testare, etc.)
2
Registre, memorii,
porturi de intrare/iesire
Memoria:
interna (principala, operativa):
memorie semiconductoare (EPROM/Flash, SRAM, DRAM)
permite acces aleator (citire/scriere) la nivel de locatie
(cuvant de date);
timp de acces mediu (15ns-70ns), relativ constant
capacitate medie (64ko-2Go)
UCP are acces direct la memoria interna prin intermediul
magistralei sistem
spatiu liniar de adresare locatiile sunt ordonate pe baza de
adresa
spatiul de memorie poate fi structurat pe segmente
la arhitecturile Harvard (ex: microcontroloare, procesoare de
semnal) memorie separata pentru program si pentru date (2
3
spatii de adresare separate)
Registre, memorii,
porturi de intrare/iesire
Memoria externa:
memorie pe suport magnetic (flopy-disck, hard-disck, banda
magnetica), suport optic (CD, DVD) sau semiconductor
(memorii nevolatile, Flash, smart-card, etc.)
accesul UCP la memoria externa se face prin intermediul unei
interfete specializate, conectata pe magistrala
timp de acces relativ mare (10ms-10s), variabil
capacitate f. mare (1Go-1To), teoretic infinita
acces aleatoriu la nivel de bloc (ex: sector) si secvential in
interiorul blocului; la banda magnetica accesul este doar
secvential
memorie structurata pe unitati fizice (ex: sectoare) si logice
(clustere, fisiere, directoare)
nu exista suport la nivelul L.A. pentru accesul la locatiile
memoriei externe; accesul se face prin rutine (drivere)
prefabricate din SO 4
Registre, memorii,
porturi de intrare/iesire
Ierarhii de memorii
memoria cache:
memorie f. rapida, de capacitate mica
transparenta (invizibila) pentru instructiunile L.A.
pastreaza copii ale locatiilor din memoria interna
structurata pe blocuri (linii cache)
memoria virtuala:
extensie a memoriei interne peste memoria externa
doua tehnici de implementare:
segmentarea
paginarea
memorie structurata pe pagini si segmente
controlul memoriei virtuale se face numai in regimuri
supervizor (modul protejat) 5
Registre, memorii,
porturi de intrare/iesire
Porturi de intrare/iesire:
registre continute in interfetele de intrare/iesire, prin care UCP
controleaza transferul de date
tipuri de porturi:
porturi de date: pentru transferul de date; pot fi de intrare,
de iesire sau bidirectionale
porturi de control: registre de iesire prin care se controleaza
functionarea interfetei si a dispozitivului legat la interfata
porturi de stare: registre de intrare prin care se poate testa
starea interfetei si a dispozitivului legat la interfata
accesul la porturi:
prin adresa si prin instructiuni dedicate (ex: IN, OUT); putine
instructiuni au acces direct la porturi de I/E
spatiu separat de adrese pentru memorie si pentru porturi de
I/E (exceptie: microcontroloarele)
6
Metode generice de acces la date
Metoda de acces: modalitatea de specificare (exprimare) a
locatiei instructiunii sau a operandului care urmeaza sa se acceseze
Metode de acces pentru instructiuni:
secventiala: se citeste instructiunea de la adresa urmatoare
PC=PC+lungimea_instructiunii_curente
ex: instructiuni aritmetice si logice
directa: se citeste instructiunea de la adresa specificata in
instructiunea curenta
PC= adresa_directa
ex: instructiuni de salt, apel de rutine
relativa: se citeste instructiunea de la o adresa relativa fata de
adresa curenta (deplasamentul poate fi pozitiv sau negativ)
PC= PC+deplasament
ex: instructiuni de salt, apel de rutine
indirecta: instructiunea curenta specifica adresa adresei
instructiunii urmatoare 7
Metode generice de acces la date
Metode de acces la date:
imediata: valoarea operandului este prezenta in codul instructiunii
ex: MOV AX, 1234H
directa: adresa operandului este specificata in codul instructiunii
ex: MOV AX, [1234H]
registru: operandul se afla intr-un registru intern al UCP
ex: MOV AX,BX
indirecta: instructiunea contine adresa adresei operandului
ex: MOV AX, [SI+1234H]
implicita: codul instructiunii implica utilizarea unui anumit
registru, adresa de memorie sau adresa de adresa de memorie
ex: PUSH AX ; implicit se foloseste SP ca registru de adresare
indexata: se acceseaza succesiv elementele unei structuri de date
de tip tablou
ex: MOV AX, [SI]
8
altele: bazata, relativa, stiva
Instructiuni in cod masina
formatul instructiunilor (lungime+continut):
varianta 1: fara operanzi in codul instructiunii
Cod operatie
operatia nu necesita operanzi sau operanzii sunt specificati implicit
prin codul de operatie
varianta 2: un singur camp de operand in codul instructiunii
Cod operatie Adresa/Data imed.
operatia este unara (un operand) sau al doilea operand este implicit
varianta 3: doua campuri de operanzi (sursa, destinatie)
Cod operatie Adresa operand 1 Adresa op.2/Data imed.
varianta4: trei campuri de operand (operand 1, operand 2,
rezultat)
Cod operatie Adresa operand 1 Adresa op.2/Data imed. Adresa rezultat
9
Executia instructiunilor
Faze de executie:
citire cod instructiune (instruction fatch IF)
decodificare instructiune (instruction decoding Dec)
citire operand (operanzi) (data fatch DF)
executie operatie (execution Ex)
scriere rezultat (write back WB)
Cicluri de transfer:
ciclu de citire instructiune
ciclu de citire operand (optional)
ciclu de scriere rezultat (optional)
=>durata unei instructiuni este determinata (in majoritatea cazurilor)
de numarul de cicluri care trebuie sa se execute
un ciclu = unu sau mai multe perioade de ceas
durata unei perioade de ceas= durata celei mai lungi cai in UCP
(suma intarzierilor produse in circ. combinationale care alcatuiesc 10
calea unui semnal)
Executia instructiunilor
Executie secventiala CPI=5
IF Dec DF Ex WB IF Dec DF Ex WB
Timp: T 2T 3T 4T 5T 6T 7T 8T 9T 10T
Instr. 1 Instr.2
16
Modelul ISA x86 - Adresarea memoriei
modul real: Memoria
1M
15 0 15 0
Adr. segment Adr. offset
Adr. fizica
*16 +
Adr. segment 0
1 2 3 4 0
Consecinte:
5 6 7 8 Adr. offset
-lung. segment = 64Ko
1 7 9 B 8 Adr. fizica
-spatiu de memorie = 1Mo
-nu exista mec. de protectie
17
Modelul ISA x86 - Adresarea memoriei:
modul protejat:
Memoria
4G0
15 0 31 0
Selector Adr. offset
31 0
Adr. fizica
Adresa de segment +
Lungime
Acces 0
Descriptor de segment
Consecinte:
-spatiu de adresare = 4 Go -o mai buna protectie a segmentelor
-dim. segment = 1o .. 4Go -o utilizare mai eficienta a memoriei18
Modelul ISA x86-64 - Adresarea memoriei
Modul long
mod de lucru posibil doar pe procesoarele pe
64 biti; se lucreaza cu registre pe 64 biti
in acest mod nu se poate emula modul real (16
biti) sau virtual 8086
se pot executa programe pe 32 biti si 16 biti
protejat
adresarea memorie fizice pe 40 biti (1Toctet)
adresarea memoriei virtuale pe 48 biti
(256Tocteti)
19
Adresarea memoriei
20
Adresarea memoriei
calculul adresei fizice
La procesoare pe 16 biti
21
Formatul instructiunilor x86