Sunteți pe pagina 1din 6

1. - Adresarea liniară, care presupune accesul 3.

3. Un alt concept este acela al formării unei memoria virtuală intră toate resursele de
în memorie în mod continuu de la adresa 0 la memorii virtuale. Aceasta se defineşte ca memorie ale microcalculatorului, atât cele
adresa 2n-1, unde "n" este numărul de biţi ai fiind totalitatea hărţii memoriei care poate fi interne cât şi cele externe (discuri, bandă etc.),
unei adrese (sau, fizic, numărul de linii ai formată prin concatenarea numărului maxim limitele fîzice fîind transparente utilizatorului.
magistralei de adrese). de segmente, fiecare presupus la dimensiunea Primul reprezentant al familiei Intel care
2. - Adresarea segmentată, în care memoria sa maximă, pe care un utilizator le poate crea foloseşte acest mecanism este 80286. El poate
este divizată logic în porţiuni numite prin folosirea unei adrese virtuale. Această folosi o memorie virtuală de 1GB, deşi
segmente, în interiorul cărora adresarea este ultimă noţiune este o generalizare a adresei memoria fizică direct adresabilă are numai
liniară. Orice localizare în memorie se face logice şi permite programatorului să 16MB. Succesorii familiei, i386, i486 şi
relativ la baza segmentului iar fixarea fizică a localizeze, indirect, o informaţie într-un Pentium pot avea o memorie virtuală de 64TB,
bazei unui segment este transparentă segment a cărui adresă fizică de bază şi în timp ce memoria fizică are "numai" 4GB.
utilizatorului. Am prezentat deja, pentru 8086, dimensiune au fost stabilite anterior. Ceea ce Remarcabil este faptul că Intel 80286 şi
mecanismul segmentelor de dimesiune fixă, este cu adevărat interesant constă în succesorii au mecanismul de gestionare
noţiunea de adresă logică precum şi dimensiunea memoriei virtuale care poate implementat pe cip (Motorola, de pildă,
translatarea ei în adresă fizică. întrece cu mult dimensiunea memoriei fizice foloseşte un cip separat).
(interne) a microcalculatorului. Astfel, în

Calculul
Unitate
adreselor
pentru Unitate de Adres
4. Se observă, că, în comparaţie cu schema bloc funcţională a gestionarea Adres interfaţă cu e
microprocesoruhii standard pe 16 biţi, aici apar în plus Unitatea pentru memoriei magistrala
gestionarea memoriei şi Unitatea pentru tratarea instrucţiunilor. a
Aceasta din urmă este o dezvoltare a blocului din figura 5.1 care se ocupa de reală
formarea cozii de instrucţiuni. Pentru Intel 80286 acest bloc menţine
permanent o coadă de trei instrucţiuni decodificate, pregătite pentru Date
execuţie, instrucţiuni provenite dintr-o coadă de şase instrucţiuni în stare Codur
"brută" stocate în Unitatea de interfaţă cu magistrala (ca în cazul lui Intel
Unitate
8086). Se poate conchide că gradul de paralelism al acţiunilor i
pentru
microprocesorului creşte: acum apar practic patru procesoare care îşi tratarea
desfaşoară concomitent funcţiile specifice. Unitate de
instrucţiunil
execuţie
or

5. Un alt concept este acela de programului la o altă adresă (secvenţă) decât


multiprocesare (concurenţă, multiprogramare, 7. Procesul ("swapping tasks"), constă în cea care urmează instrucţiunii curente.
"multitasking") care se referă la capacitatea trimiterea provizorie în memorie a proceselor
calculatorului de a executa mai multe procese (sau a unor părţi componente dintr-un proces) 10. Analiza dinamică a fluxului de date.
("task-uri") simultan aceasta se realizează prin din memoria internă în cea externă, dacă acel Scopul analizei - determinarea legăturilor
comutarea, secvenţială, de la o secvenţă de proces (sau acea parte din el) nu este în între instrucţiunile programului de datele
instrucţiuni a unui proces (task) la altă execuţie la un moment dat. Schimbarea locului programului şi de registrii microprocesorului
secvenţă aparţinând altui proces şi aşa mai între memoria internă şi cea externă se poate cu optimizarea ulterioară a execuţiei fluxului
departe, apoi se comută din nou la prima face de câte ori este necesar pentru a menţine de instrucţiuni. Scopul principal - încărcarea
secvenţă etc. Precizăm că noţiunea de proces continuu în memoria internă doar strictul maximală a Benzii de asamblare. În acest
(task) folosită aici se referă la o secvenţă de necesar bunei desfaşurări a unei acţiuni. scop, parcurgerea succesivă a instrucţiunilor
acţiuni coerente (eventual organizate ca poate fi nerespectată la intrarea pe banda de
programe de sine stătătoare) care duc la 8. Banda de asamblare - Din unitatea asamblare, însă logica de execuţie a
îndeplinirea unui scop, folosind resursele „prefetch” instrucţiunea se transferă în unitatea programului va fi menţinută.
calculatorului: memorie, timp de procesor, pentru decodificarea instrucţiuni, şi unitatea
memorie externă etc. „prefetch” este liberă şi poate citi următoarea 11. Executarea speculativă. Această
instrucţiune. Deci, în interiorul proprietate caracterizează capacitatea
6. Mecanismul protecţiei. Protecţia are, microprocesorului se află 5 instrucţiuni în microprocesorului de a executa nesuccesiv
pentru toate microprocesoarele de uz general diferite etape de execuţie. instrucţiunile, restabilind ulterior ordinea
evoluate, trei aspecte de bază: Arhitectura scalară – sutn Microprocesoarele iniţială a instrucţiunilor şi ordonând transferul
• Controlul informaţiei (coduri sau diverse ce includ o Bandă de asamblare. rezultatelor executării instrucţiunilor în
tipuri de date); Arhitectura suprascalara - microprocesoare ordinea prevăzută de algoritmul iniţial.
• Izolarea utilizatorilor unul faţă de altul ce includ două şi mai multe benzi de Această posibilitate este asigurată prin
(protecţia "inter-task"); asamblare. divizarea unităţilor "prefetch", execuţie şi
• Izolarea software-ului de sistem de cel de eliminare/restabilire.
aplicaţii (protecţia "intra-task"). 9. Mecanismul predicţiei adreselor
Se impun aici câteva observaţii strict salturilor (BTB) - Definim prin salt procedeul
necesare. de a părăsi secvenţa succesivă de executare a

12. În modelul program al microprocesorului Modelul program include câteva grupe de • Registre extensiilor XMM (date
Intel intră: registre folosite de programe: împachetate, în virgulă mobilă)
• Harta memoriei fizice (Pentium IV – • Registre generali eax/ax/ah/al, хmm0, хmm1, хmm2, хmmЗ,
236 – 1 B); ebx/bx/bh/bl, edx/dx/dh/dl, хmm4, хmm5, хmm6, хmm7;
• Setul de registre generali; еcх/cx/ch/cl, ebp/bp, esi/si, edi/di, • Registre de stare şi control – conţin
esp/sp. Aceste registre conţin, de
• Setul de registre de segment; informaţia despre starea
regulă, operanzi şi/sau rezultate microprocesorului, programului în
• Setul de registre de stare şi control; aferente instrucţiunilor de transfer şi execuţie;
• Setul de registre ai unităţii de calcul prelucrare a datelor;
în virgulă mobilă (coprocesorului);
• Registrul de fanioane eflags/flags;
• Registre segment cs, ds, ss, es, fs, • Registrul indicator de instrucţiuni;
• Setul de registre destinate extensiilor gs. Aceste registre sunt folosite
MMX, reflectaţi pe registrii pentru crearea diviziunilor logice în • Registre de sistem – dedicate
coprocesorului (Pentium MMX); memorie numite segmente; controlului modurilor de funcţionare
microprocesorului.
• Setul de registre destinate extensiilor • Registre coprocesorului st(0), st(l), Grupele de registre de uz general, segment,
MMX în virgulă mobilă (Pentium st(2), st(3), st(4), st(5), st(6), st(7).
registrul indicator de instrucţiuni, registrul de
III); Sunt folosiţi în calcule în virgulă
fanioane ale Pentium III au destinaţii identice
• Stiva. Structură de memorie, mobilă;
cu registrele respective ale i8086, diferând
accesul la care se petrece cu • Registre extensiilor MMX (date numai prin lungimea lor.
instrucţiuni speciale (PUSH, POP). împachetate, întregi) mmx0, mmx1, Grupul de registre segment a fost extins cu
Setul de registre mmx2, mmxЗ, mmx4, mmx5, două registre de date „gs” şi „fs”.
mmx6, mmx7;
În registrul de fanioane au fost introduşi
indicatori noi

Registre de uz general
Spatiul
236 -1 (2 32-1)
31 15 0
ax de
eax adresare
ah al
i 486 / Pentium
bx Pentium PRO /II/III/IV
ebx
bh bl
Stiva
cx
ecx ss: esp
ch cl
dx
edx 0
dh dl
ebp bp cs
ss
esi si Registre de
ds segment
edi di es
esp sp
fs
gs
Registr ele coprocesorului st (7)-st (0)
79 63 0 Registre de stare si control
st (0) mmx 0
st (1) mmx 1 Registrul de fanioane
st(2) mmx 2 eflags flags
st (3) mmx 3 31 15 0
st (4) mmx 4 Registrul indicator de instructiuni
st (5) mmx 5 eip ip
st (6) mmx 6 31 15 0
st (7) mmx 7
Registr ele extensiilor MMX Registre de sistem
(mmx 7-mm 0)
(Pentium MMX /II -IV)
127 0
xmm 0
xmm 1
xmm 2
xmm 3
xmm 4
xmm 5
xmm 6
xmm 7
Registr ele extensiilor MMX in virgula mobila
(Pentium III /IV)

Registrele de uz general Tehnologia MMX prelucrează noi tipuri de biţi la microprocesoarele pe 32 biţi, 16 - la
Structura şi destinaţia registrelor pe 32 biţi este date împachetate în registre pe 64 biţi: 8 Byte, microprocesoarele x86-64). Registrele XMM
analogică IA-32. Au fost adăugate 8 registre 4 cuvinte, 2 cuvinte duble, cuvânt pe 64 biţi. prelucrează următoarele tipuri de date:
de uz general (R8...R15), adresarea a fost Aceste date sunt prelucrate în registrele • 4 numere în virgulă mobilă cu
unificată: adresarea la fiecare din 16 registre se MMX0-MMX7, care reprezintă 64 biţi precizie unitară (32 biţi);
petrece ca la un registru pe 64-, 32-, 16- sau 8 inferiori ai registrelor FPU pe 80 biţi. • 2 numere în virgulă mobilă cu
biţi (se folosesc numai biţii inferiori). Tehnologia 3DNow! extind capacitatea precizie dublă (64 biţi);
RIP, în varianta pe 64 biţi, poate fi utilizat la blocului MMX. Această tehnologie • Numere întregi: 16 Byte, 8
adresarea relativă a datelor. prelucrează date în format FP – 2 cuvinte pe cuvinte, 4 cuvinte duble sau 2
Blocul MMX şi extensiile 3DNow! 32 biţi cu o precizie unitară şi date împachetate cuvinte pe 64biţi (numai în SSE2)
(8 Byte, 4 cuvinte, 2 cuvinte duble, cuvânt pe În procesoarele Pentium III este aplicat setul
Tehnologia MMX este orientată aplicaţiilor 64 biţi). SSE, în Pentium 4 – SSE2 destinat pentru
multimedia, grafica 2D/3D şi comunicaţiilor. Blocul XMM şi extensiile SSE prelucrarea datelor în grafica 3D,
Avantajul principal al MMX constă în Extensiile SSE (Streaming SIMD Extensions) codarea/decodarea video, cifrarea datelor.
prelucrarea concomitentă a unui şir de date cu sunt destinate accelerării prelucrării fluxurilor Apoi a fost aplicată şi extensia SSE3. Blocul
o instrucţiune – conform tehnologiei SIMD mari de date în virgulă mobilă (FP). Extensiile XMM şi seturile SSE1, SSE2, SSE3 sunt
(Single Instruction — Multiple Data). fluxurilor de date sunt realizate pe baza aplicate şi în microprocesoarele AMD.
registrelor blocului XMM (8 registre pe 128

Instrucţiuni de uz general

Instrucţiuni de bază Instrucţiunile modurilor


8086, 80286 pe 64 biţi

Instrucţiuni de sistem

Instrucţiuni x87 Instrucţiuni matematice

Media instrucţiuni pe 128 biţi


Media instrucţiuni pe 64 biţi

Instrucţiuni MMX Extensiile AMD Instrucţiuni


Instrucţiuni MMX SSE

Instrucţiuni Extensii instrucţiuni Instrucţiuni Instrucţiuni


AMD 3DNow! AMD 3DNow! SSE2 SSE3
17.
RF Fanionul reluare (Resume Flag) 16 Se foloseşte la prelucrarea întreruperilor provenite de
la registrul de reglare
VM Fanionul modului virtual 8086 17 Indicatorul funcţionării microprocesorului în mod
(Virtual 8086 Mode) virtual 8086:
1 —microprocesorul funcţionează în modul virtual
8086
0 — microprocesorul funcţionează în modul real
AC Fanionul alinierii 18 Destinat controlului alinierii la adresarea memoriei
(Alignment Check)
VIF Fanionul 19 În modul virtual este analogic fanionului if. Fanionul
Întreruperii vif se foloseşte împreună cu fanionul vip. A fost
Virtuale introdus în Pentium.
(Virtual Interrupt Flag)
VIP Fanionul 20 Se setează în 1 pentru indicarea întreruperii amânate.
Întreruperii Se foloseşte în modul V împreună cu fanionul vif.
Virtuale amânate (Virtual Introdus la Pentium.
Interrupt Pending flag)
ID Fanionul 21 Indică susţinerea instrucţiunii cpuid.
identificării (IDentification flag)

Memoria virtuală pentru Intel 80286 Selectorul se află, ca şi în cazul Aceasta impune dimensiunea maximă a unui
Adresa virtuală, ca şi adresa logică, are adreselor logice, tot într-un registru segment. segment la 216 B = 64kB
pentru utilizator două părţi componente: Noutatea constă în faptul că definirea (cuanta de informaţie în memorie continuă să
• adresa efectivă (sau offsetul ădresei segmentului asociat unui selector nu se mai rămănă octetul). Subliniem că un segment
virtuale); face direct (ca în cazul microprocesorului Intel poate avea orice mărime între 1B şi 64kB.
8086) ci prin mecanismul adresării indirecte. - Selectorul are 16 biţi şi este compus din trei
• selectorul, care înlocuieşte adresa
Toate consideraţiile anterioare sunt entităţi informaţionale:
segment.
valabile pentru toate componentele familiei • un câmp numit INDEX pe 13 biţi;
Adresa efectivă este adresa în interiorul
Intel care realizează gestionarea memoriei. • un "indicator de tabelă" (TI) care ocupă 1 bit;
segmentului şi utilizatorul trebuie să o
Microprocesorul 80286 are următoarele • un câmp de 2 biţi denumit "nivelul de
conceapă ca fiind relativă la baza umri
particularităţi: privilegiu cerut" (RPL). Deci:
segment predefinit. Adresa efectivă este
precizată de modul de adresare aferent
- Adresa virtuală este o adresă pe 32 de biţi: SELECTOR = INDEX ↑TI ↑RPL
AV ≡ adr32 Figura 7.1 prezintă: a) configuraţia adresei
instrucţiunii care o utilizează.
- Adresa efectivă este o adresă pe 16 biţi: AE virtuale şi b) configuraţia selectorului pentru
31 ≡ adr16
15 microprocesorul Intel 80286.

31 15
SELECTOR
0 AE
15
(offset) 3 21
0

INDEX
TI RPL
Tabelele de descriptori guvernează 2. "Tabelele de descriptori locali" (LDT) • Câmpul INDEX este multiplicat cu
interpretarea adreselor virtuale. Orice conţin informaţiile din spaţiul adreselor locale 8 (un descriptor are 8B) şi se obţine
translatare a adreselor virtuale în adrese fizice folosite de unul sau mai multe procese. poziţia relativă faţă de baza tabelei,
face apel implicit la aceste tabele. Există trei identificându-se astfel un descriptor
categorii de tabele de descriptori: Translatarea adresei virtuale din tabelă.
Mecanismul de translatare porneşte de Din descriptor se extrage:
1. "Tabela descriptorilor globali" (GDT) la cele două entităţi informaţionale din adresa a) Adresa fizică a bazei segmentului
destinată să conţină informaţiile pentru o virtuală: ("BAZA") pe 3 octeţi pentru Intel 80286 şi pe
descriere completă a spaţiului adreselor – Selectorul furnizează, la rândul său, 4 octeţi pentru Intel 386/486/Pentium.
globale. Să reţinem că există o singură tabelă următoarele informaţii: b) Dimensiunea segmentului vizat
de acest fel. • Prin intermediul lui TI se identifică ("LIMITA") pe 2 octeţi pentru Intel 80286 şi
tipul de tabelă. pe 20 de biţi pentru Intel 386/486/Pentium.
SELECTOR
AE
15
0
INDEX
T
I
7 Tabela Segme
A
0 nt

+
F
descript LIMIT
ori A
selec
Descript tat
or

de
BA
segme ZA
nt

Baza tabelei de
descriptori

Figura 7.6
Localizarea acestor informaţii în descriptorul de segment va fi precizată în subcapitolul următor.
– Adresa efectivă se adună la BAZA obţinută indirect cu ajutorul selectorului (aşa cum arătam mai sus) obţinându-se astfel adresa fizică (AF) a informaţiei
din segmentul vizat (dimensiunea adresei fizice este, evident, diferită pentru Intel 80286 şi pentru 386/486/Pentium). Concomitent se verifică dacă
dimensiunea prestabilită a segmentului nu este depăşită:
AF ≤ BAZA + LIMITA sau AE ≤ LIMITA
O prezentare generală a mecanismul de translatare este dată în Figura 7.6.

7.6. Registre "cache"

Presupunând că referinţele în memorie se fac mai des decât schimbarea informaţiei din registrele segment şi decât schimbarea procesului activ (deci schimbarea
selectorului din LDTR) s-a recurs la folosirea unor registre ascunse ("cache").

Figura 7.10 prezintă registrele cache ale microprocesorului Intel 80286.

CS segmentelorSELECTOR
Se observă că registrele de program, stivă, de date şi suplimentar, precum şi LDTR au "o prelungire" invizibilă utilizatorului. Aici se află toate
informaţiile necesare din 63 48 47
descriptorul asociat selectorului din registrul respectiv. 40 39 Registre cache
16 15 0
S 63 48 47 40 39
S 16 15 0

D
S
ACCES BAZA seg.selectat
55 SELECTOR LIMITA
39 Registru cache
E 15 0
S
55 39
LDTR 15 0
BAZA LDT
LIMITA LDT
39 15
0
BAZA GDT
GDTR
LIMITA GDT
Figura 7.10

CS Ori15
cate ori este încărcat un registru segment "vizibil" cu un selector, se încarcă şi cei şase octeţi utili
SELECTOR 0 Re gistre ca
che
SS
15 0

DS

ES

FS ATRIBUTE BAZA seg.selectat


LIMITA

LDTR
GS
ATRIBUTE BAZA LDTR
LIMITA LDTR
Figura 7.11
din descriptorul asociat în registru cache respectiv. Aici se află adresa fizică a bazei segmentului vizat, dimensiunea sa precum şi drepturile de acces. Deci toate
informaţiile necesare unei referinţe în memorie sunt stocate în aceste registre care reprezintă o "memorie" pe cip, foarte rapid adresabilă. Adresa fizică se calculează
direct prin suma dintre baza segmentului, aflată în registrul cache, şi adresa efectivă din adresa virtuală specificată conform modului de adresare. Concomitent se pot
face toate verificările necesare (dacă informaţia este în interiorul dimensiunii predefinite a segmentului, dacă segmentul e prezent, ce tip de segment este vizat etc).

Paginarea
Paginarea este procedeul de realizare în memorie a unor blocuri fixe numite pagini, care pot fi utilizate în mecanismul interschimbării proceselor (transferul
blocurilor între memoria internă şi cea externă).
Tehnica paginării este larg folosită şi este aplicată de unitatea de gestionare a memoriei (Memory Management Unit, MMU). Paginarea utilizează directorul şi tabele
de descriptori a paginilor – structuri de date în memoria fizică (operativă). Unitatea MMU divizează adresa lineară în pagini virtuale de o mărime fixă (4KB, 4MB,
2MB). Pe pagini similare este divizat şi spaţiul adreselor fizice.
Există procesoare care crează pagini în memoria fizică, sau, ca în cazul familiei Intel, în memoria virtuală.

Adresa
liniară
(AL)

Figura 7.12
Avantajele paginării pot fi rezumate astfel:
• Un obiect în memorie nu trebuie să fie continuu: pagina poate constitui o nouă "cuantă" de informaţie.
• Mecanismul paginării şi, implicit, întreaga tehnică de a schimba continuu blocuri fixe de informaţii întră memoria internă şi cea externă nu sunt vizibile
utilizatorului.

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