1. Explicați schema structurată a microprocesorului Pentium.
Pentium are 2 benzi de asamblare: „u” pipeline, care execută orice instrucțiune și „v” pipeline, care poate executa doar instrucțiuni simple în virgulă mobilă. Reguli complicate determină dacă instrucțiunile sunt compatibile, astfel încît să poată fi executate paralel. Pentium folosește 2 memorii cache de 8 kB, pentru cele mai frecvente coduri și date. Astfel se elimină necesitatea de a accesa permanent memoria calculatorului. De asemenea microprocesorul are un buffer pentru decodificarea
anticipată a instrucțiunilor. Astfel sunt sesizate eventualele salturi înainte ca instrucțiunea să fie trimise în banda de asamblare. Transmiterea din memoria cache se efectueaza pe o magistrala de 256 biți, ceea ce permite aducerea unor secvențe de instrucțiuni cu o viteză mai mare decît viteza de procesare. Pentium utilizează predicția salturilor (BTB), care stochează informația despre ultimele 256 de salturi. Registrele generale sunt de 32 biți, dar magistralele sunt de 128 și 256 de biți pentru a mări viteza transferurilor interne. Magistrala externă a fost extinsă la 64 de biți. Procesorul dispune de tehnologia TLB (Translation Lookaside Buffer), care translatează adresa liniară în fizică. Pentium dispune și de un controler avansat de întreruperi (APIC – advanced advanced programmable interrupt con.)
2. Explicați mecanismul predicției adreselor salturilor (BTB).
Mecanismul predicției salturilor este un concept întiîlnit la majoritatea arhitecturilor performante de calculatoare și a microprocesoarelor de viteză ridicată. Acest concept permite procesoarelor permite decodificarea instrucțiunilor de după cele de salt pentru a nu goli calea de date în banda de asamblare la execuția instrucțiunilor de salt. Unitatea de extragere și decodificare a instrucțiunilor utilizează un algoritm de predicție optimizat pentru anticiparea direcției fluxului de instrucțiuni prin nivele multiple de salturi, apeluri la proceduri și reveniri din proceduri. 3. Explicați analiza dinamică a fluxului de date
Analiza dinamică a fluxului de date implică analiza în timp real a fluxului datelor prin procesor pentru a determina dependența datelor și a registrelor și pentru a detecta posibilitatea execuției instrucțiunilor într -o ordine diferită de cea specificată în program. Unitatea de expediere și execuție a instrucțiunilor poate monitoriza simultan mai multe instrucțiuni și poate executa aceste instrucțiuni într -o ordine în care se optimizează utilizarea unităților multiple de execuție ale micro arhitecturii, menținînd în același timp integritatea datelor asupra cărora se operează. Această ordine de execuție asigură ocuparea unităților de execuție chiar și atunci cînd apar dependențe între datele instruncțiunilor. 4. Explicați execuția speculativă
Execuția speculativă se referă la posibilitatea de a executa instrucțiuni aflate înaintea instrucțiunii adresate de contorul de program și de a furniza rezultatele în ordinea șirului inițial de instrucțiuni. Pentru ca execuția speculativă să fie posibilă, microarhitectura familiei de procesoare P6 separă expedierea și execuția instrucțiunilor de producerea rezultatelor. Unitatea de expediere și execuție a instrucțiunilor utilizează analiza fluxului de date pentru a executa toate instrucțiunile din rezervorul de instrucțiuni și de memora rezultatele în registre temporare. Unitatea de retragere a instrucțiunilor caută apoi instrucțiunile care au fost executate și dacă se găsesc de acestea, unitatea de retragere depune rezultatele în memorie sau în registrele microarhitecturii și le retrage din coada de instrucțiuni.
yper-t hr eading. 5. Explicați tehnologia H yper-t
În microprocesor a fost implementată tehnologia Hyper-threading, ce permite execuția a două fluxuri de instrucțiuni de un singur nucleu fizic. Sistemul de operare, ce susține tehnologia Hyper-threading, determină existența a două procesoare logice (Logical procesor). Fizic, fiecărui procesor logic îi sunt alocate setul său de regiştri și un controler de întreruperi (APIC), iar restul componentelor ale procesorului sunt utilizate în comun. Potrivit Intel, utilizarea acestei tehnologii, majorează viteza de execuție cu 15-30%. Următoarele elemente structurale implementate:
adoptarea unei arhitecturi Hyper Pipeline cu 20 de segmente de procesare a instrucţiunilor (dublu faţă de varianta P6), fapt ce a majorat frecvența procesorului – de la 1,4 Ghz (3,2 Ghz în Pentium 4 Extreme Edition); Edition); a fost extinsă memoria cache L2 - 512 KB și L3 – pînă la 2МB ( Pentium 4 Extreme Edition),
iar transferurile între între memoriile cache au ajuns la la o rată de transfer de 48 GB/s; a fost introdusă o memorie cache pentru microinstrucțiuni, volum 12000 microinstrucțiuni; setul de instrucțiuni instrucțiuni SSE2 a fost fost extins prin adăugarea adăugarea a 144 instrucţiuni instrucţiuni SIMD noi şi extinderea lăţimii datelor prelucrate la 128 biţi (16 octeţi prelucraţi în paralel); a fost majorată rata de transfer între microprocesor și controlerul memoriei la 3,2 GB/s (La P6 – maximum 1,06 GB/s). proces tehnologic utilizat de 130 nm.
6. Explicați Tehnologia Macro Fusion
Tehnologia Macro Fusion constă în fuziunea a două instrucțiuni x86 (și cîteva microinstrucțiuni x86 – Fusion) într -una singură. Unele perechi de instrucțiuni (de exemplu compararea și de salt condiționat) la decodificare pot fi fuzionate și utilizate ulterior ca o singură microinstrucțiune. Fără utilizarea tehnologiei Macro Fusion, procesorul (cu 4 UE) poate decodifica pînă la 4 instrucțiuni. Macro Fusion permite fuzionarea a două dintre ele. Astfel, microprocesorul poate decodifica 5 instrucțiuni. 7. Explicați Tehnologia Turbo Boost
Tehnologia Turbo Boost permite automat ca nucleele procesorului să poată funcționa cu o frecvență mai înaltă decît cea nominală, doar dacă procesorul lucrează în cadrul limitelor de limitelor de putere, curent și temperatură, conform TDP (Thermal Design Power). 8. Descrieți modelul program IA-32.
Registre de uz general 31
15
Spatiul de adresare
0 ax
eax
ah
al
i486/Pentium
bx
ebx
bh
Pentium PR O/II/III/IV
bl Stiva
cx
ecx
ch
ss:esp
cl dx
edx
dh
ebp
0
dl cs
bp
esi
2 36-1 ( 2 32-1)
ss
si
edi
di
esp
sp
ds
Registre de segment
es fs gs
Registrele coprocesorului st(7)-st(0) 79 63 0 mmx0 st(0) mmx1 st(1) st(2) mmx2 mmx3 st(3) mmx4 st(4) mmx5 st(5) st(6) mmx6 mmx7 st(7)
Registre de stare si control Registrul de fanioane eflags flags 15 31 0 Registrul indicator de instructiuni eip ip 31 15 0 Registre de sistem
Registrele extensiilor MMX (mmx7-mm0) (Pentium MMX/II-IV) 127
0 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7
Registrele extensiilor MMX in virgula mobila (Pentium III /IV)
Figura 5.1 Modelul program IA-32 Tabelul 5.1
RF
Fanionul reluare 16 (Resume Flag)
VM
Fanionul
registrul de reglare 17
modului virtual
1 —microprocesorul funcţionează în modul virtual 8086
8086 Mode) Fanionul alinierii (Alignment Check)
Indicatorul funcţionării microprocesorului în mod virtual 8086:
8086 (Virtual
AC
Se foloseşte la prelucrarea întreruperilor provenite de la
18
Destinat controlului alinierii la adresarea memoriei
VIF
Fanionul
19
Întreruperii
În modul virtual este analogic fanionului if. Fanionul vif se foloseşte împreună cu fanionul vip. A fost introdus în Pentium.
Virtuale
VIP
Fanionul
20
Se setează în 1 pentru indicarea întreruperii amânate. Se foloseşte în modul V împreună cu fanionul vif. Introdus la
Întreruperii
Pentium.
Virtuale
amânate Fanionul
ID
21
Indică susţinerea instrucţiunii cpuid.
identificării (IDentification
?9. Descrieți modelul program AMDx86-64 (Intel EM64T).
Operanzii folosiţi de microprocesoare operează cu date de diferite tipuri:
Numere întregi (cu sau fără semn) mărime de Byte, cuvânt (16 biţi), cuvânt dublu (DWord, 32
biţi), cuvânt din 4 Byte (QWord, 64 biţi), cuvânt din10 Byte (TB, 80 biţi) şi cuvânt din 16 Byte (DQWord, 128 biţi); Biţi, câmpuri de biţi, şiruri de biţi; Numere în virgulă mobilă (FP) mărime 32, 64, 80 biţi. Posibilitatea de a folosi operanzi lungi (64 şi 128 biţi) a apărut în microprocesoarele cu extensiile MMX şi XMM. Maximal de rapid microprocesorul procesează datele ce se află în regiştrii săi interni. Componenţa regiştrilor la care au acces aplicaţiile este prezentată în figura 5.2. Notaţiile regiştrilor pe 64 biţi încep cu litera R. Microprocesoarele includ un set de regiştri de sistem ce nu sunt folosite de aplicaţii (în figură nu sunt prezentaţi). La ei se referă regiştrii de adrese de sistem, regiştrii de control, regiştrii pentru reglări şi testări. Un şir din aceşti regiştri sunt specifici (Model-Specific Registers, MSR), ce sunt destinate controlului reglărilor, monitorizării productivităţii, controlului efec tuat de microprocesor, gestionarea memoriei cache ş.a. Componenţa lor diferă la diferite microprocesoare, accesul este privilegiat.
Registre de uz general 63 31 15 0 eax ah ax al RAX ebx bh bx bl RBX ecx ch cx cl RCX edx dh dx dl RDX RBP ebp bp esi si RSI RDI di edi esp sp RSP R8 R9 R10 R11 R12 R13 R14 R15
Registrele blocului FPU/MMX 79 63 mmx0 st(0) mmx1 st(1) st(2) mmx2 mmx3 st(3) mmx4 st(4) mmx5 st(5) st(6) mmx6 mmx7 st(7) 15
0
127
Registrele blocului XMM
0 cs ss ds
0
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15
Registre de segment
es fs gs
15 63 31 0 Registrul de fanioane flags RFLAGS eflags eip ip RIP Registrul idicator de instrucţiuni
Registre de sistem 8086/x86-64
Figura 5.2 Regiştrii microprocesoarelor х86 -64
10. Definiți modurile de funcționare a microprocesoarele pe 32 biţi.
Microprocesoarele pe 32 biţi pot funcţiona în unul din următoarele moduri:
Modul de adresare reală (real address mode), sau modul real (real mode), compatibil cu modul 8086. În acest mod este posibilă adresarea până la 1 MByte de memorie fizică.
Modul virtual protejat de adresare (protected virtual address mode), sau modul protejat
(protected mode). În acest mod microprocesorul conectează mecanismele de segmentare şi paginare. Mecanismul segmentării permite accesarea la un spaţiu de memorie virtuală până la 64 TByte. Practic este folosit numai mecanismul paginării care asigură accesul fiecărei sarcini (task) la 4 GByte memorie virtuală. Implicit, adresele şi operanzii sunt pe 32 biţi. În modul protejat microprocesorul poate executa instrucţiuni, inaccesibile în modul real, un şir de instrucţiuni de transfer a controlului, prelucrare a întreruperilor sunt executate în mod diferit de modul real. Modul virtual 8086 (Virtual 8086 Mode, V86) este un mod deosebit al modului protejat,
în care microprocesorul funcţionează ca 8086 (adresele şi datele pe 16 biţi). Pe un microprocesor, în acest mod, pot fi executate în paralel câteva sarcini cu resurse izolate. Totodată adresarea spaţiului fizic de memorie este gestionat de mecanismele de segmentare şi paginare. Încercările de a executa instrucţiuni nepermise, ieşirea după limitele spaţiului de memorie şi a spaţiului de intrare/ieşire permis sunt controlate de sistemul de protecţie. Mai efectiv este modul virtual extins 8086 (Enhanced Virtual 8086 Mode, EV86) în care virtualizarea întreruperilor este optimizată. În modul de gestiune a sistemului (System Management Mode, SMM) microprocesorul accesează un spaţiu de memorie izolat de alte moduri. Acest mod este folosit în scopuri de control şi reglare. De exemplu, invizibil sunt executate funcţiile de control asupra alimentării, se emulează adresările la dispozitive inexistente (emularea tastaturii şi mouse -lui PS/2 pentru usb
11.Definiți modurile de funcționare a microprocesoarele pe 64 biţi.
Pentru microprocesoarele х86-64 modurile enunţate sunt grupate şi grupa are denumire legacy mode, dar a mai fost introdus un nou mod long mode cu două submoduri: Modul pe 64 biţi (64-bit mode) – acest mod susţine adresarea virtuală pe 64 biţi şi extensiile registrelor pe 64 biţi. În acest mod este folosit numai modelul plat de memorie (un segment comun pentru cod, date şi stivă). Implicit adresa este pe 64 biţi, a operanzilor – 32 biţi, dar cu prefixul (REX) pot fi definiţi operanzi pe 64 biţi. A fost introdus un nou mod de adresare – relativ la indicatorul de instrucţiuni. Acest mod este folosit de sistemele de operare (SO) pe 64 biţi la lansarea aplicaţiilor pe 64 biţi – este setat de SO pentru segmentul de cod a unei sarcini; Modul de compatibilitate (compatibility mode) permite SO să execute aplicaţii pe 32 şi 16 biţi.
12.Explicaţi structura și destinația blocului FPU (coprocesor) din modelul program al microprocesoarelor x86-64.
Registrele blocului FPU sunt destinaţi executării operaţiilor aritmetice, calcului principalelor funcţii matematice (trigonometrice, exponente, logaritmi) ş.a. În diferite generaţii de microprocesoare acest bloc era numit FPU (Floating Point Unit- unitatea de prelucrare în virgulă mobilă) , NPX (Numeric Processor extension – extensie numerică a procesorului) sau coprocesor. Coprocesorul prelucrează 7 tipuri de date: numere întregi pe 16, 32, 64 biţi; numere în virgulă mobilă pe 32, 64, 80 biţi (format FP) şi 18 numere în cod binar -zecimal (BCD). Aplicarea coprocesorului accelerează considerabil viteza de calcul.
Registre de uz general 63 31 15 0 eax ah ax al RAX ebx bh bx bl RBX ecx ch cx cl RCX edx dh dx dl RDX RBP ebp bp esi si RSI RDI di edi esp sp RSP R8 R9 R10 R11 R12 R13 R14 R15
Registrele blocului FPU/MMX 79 63 mmx0 st(0) mmx1 st(1) st(2) mmx2 mmx3 st(3) mmx4 st(4) mmx5 st(5) st(6) mmx6 mmx7 st(7) 15
0 cs ss ds
Registre de segment
es fs
0
127
Registrele blocului XMM
0
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15
gs 15 63 31 0 eflags Registrul de fanioane flags RFLAGS eip ip RIP Registrul idicator de instrucţiuni
Registre de sistem 8086/x86-64
13. Explicaţi structura și destinația blocului MMX din modelul program al microprocesoarelor x86-64.
Tehnologia MMX este orientată aplicaţiilor multimedia, grafica 2D/3D şi comunicaţiilor. Avantajul principal al MMX constă în prelucrarea concomitentă a unui şir de date cu o instrucţiune – conform tehnologiei SIMD (Single Instruction — Multiple Data). Tehnologia MMX prelucrează noi tipuri de date împachetate în registre pe 64 biţi: 8 Byte, 4 cuvinte, 2 cuvinte duble, cuvânt pe 64 biţi. Aceste date sunt prelucrate în registrele MMX0-MMX7, care reprezintă 64 biţi inferiori ai registrelor FPU pe 80 biţi.
14.Explicaţi structura și destinația blocului XMM şi extensiilor SSE din modelul program al microprocesoarelor x86-64.
Extensiile SSE (Streaming SIMD Extensions) sunt destinate accelerării prelucrării fluxurilor mari de date în virgulă mobilă (FP). Extensiile fluxurilor de date sunt realizate pe baza registrelor blocului XMM (8 r egistre pe 128 biţi la microprocesoarele pe 32 biţi, 16 - la microprocesoarele x8664).
Registrele XMM prelucrează următoarele tipuri de date: 4 numere în virgulă mobilă cu precizie unitară (32 biţi); 2 numere în virgulă mobilă cu precizie dublă (64 biţi); Numere întregi: 16 Byte, 8 cuvinte, 4 cuvinte duble sau 2 cuvinte pe 64biţi (numai în SSE2) În procesoarele Pentium III este aplicat setul SSE, în Pentium 4 – SSE2 destinat pentru prelucrarea datelor în grafica 3D, codificarea/decodificarea video, cifrarea datelor. Apoi a fost aplicată şi extensia SSE3, iar în procesaorele moderne și SSE4.2. Blocul XMM şi seturile SSE1, SSE2, SSE3 sunt aplicate şi în microprocesoarele AMD
15. Definiți noţiunea "adresarea segmentată". Există deci două modalităţi principial diferite de a trata memoria:
- Adresarea liniară, care presupune accesul în memorie în mod continuu de la adresa 0 la adresa 2 1 , unde "n" este numărul de biţi ai unei adrese (sau, fizic, numărul de linii ai magistralei de adrese).
n-
în care memoria este divizată logic în porţiuni numite segmente, în interiorul cărora adresarea este liniară. Orice localizare în memorie se face relativ la baza segmentului iar fixarea fizică a bazei unui segment este transparentă utilizatorului. Am prezentat deja, pentru 8086, mecanismul segmentelor de dimesiune fixă, noţiunea de adresă logică precum şi translatarea ei în adresă fizică. - Adresarea segmentată,
16. Explicați conceptul de memorie virtuală. Conceptul de memorie virtuală se bazează pe ideea separării memoriei logice a utilizatorului de cea fizică și extinderea memoriei logice prin stocare imaginii sale pe hard disc. Fiecare program la
execuție, nu este obligatoriu să fie stocat întreg în memoria RAM, ci doar o secvență de cod și date, executate la un moment dat. Apare, în mod firesc, ideea de a extinde spațiul de memorie logică, care poate fi realizat cu mult mai mare decât memoria fizică. Acesta este principiul de bază al organizării memoriei virtuale. 17. Explicaţi conceptul "multitasking".
Un alt concept este acela de multiprocesare (concurenţă, multiprogramare, "multitasking") care se referă la capacitatea calculatorului de a executa mai multe procese ("task -uri") simultan aceasta se realizează prin comutarea, secvenţială, de la o secvenţă de instrucţiuni a unui proces (task) la altă secvenţă aparţinând altui proces şi aşa mai departe, apoi se comută din nou la prima secvenţă etc. Tot acest mecanism este transparent utilizatorului care are impresia desfaşurării simultane a mai multor procese (aceasta poate însemna, eventual, mai mulţi utilizatori, sau un singur utilizator care
are nevoie de mai multe procese simultan). Ideea nu trebuie să surprindă: este firesc ca într -un sistem cu o memorie virtuală de mari dimensiuni (la Pentium ajunge la 64TB), organizată logic într o multitudine de segmente, să fie loc pentru mai multe procese. 18. Menţionaţi trei aspecte ale mecanismului protecţiei.
Controlul informaţiei (coduri sau diverse tipuri de date); Izolarea utilizatorilor unul faţă de altul (protecţia "inter -task"); Izolarea software-ului de sistem de cel de aplicaţii (protecţia "intra-task").
19. Explicaţi procedeul "swapping tasks".
Segmentarea memoriei şi multiprocesarea încurajează un procedeu de a rula procese ce au nevoie de resurse importante de memorie, în memorii fizice cu mult mai reduse. Acest deziderat se realizează prin procedeul denumit interschimbarea locului proceselor ("swapping tasks"), care constă în trimiterea provizorie în memorie a proceselor (sau a unor părţi componente dintr-un proces) din memoria internă în cea externă, dacă acel proces (sau acea parte din el) nu este în execuţie la un moment dat. Schimbarea locului între memoria internă şi cea externă se poate face de câte ori este necesar pentru a menţine continuu în memoria internă doar strictul necesar bunei desfaşurări a unei acţiuni. 20. Structura adresei virtuale pentru PentiumIV.
Adresa virtuală pentru pentium IV, ca şi adresa logică, are pentru utilizator două părţi componente:
adresa efectivă (sau offsetul ădresei virtuale); selectorul, care înlocuieşte adresa segment.
Adresa efectivă este adresa în interiorul segmentului şi utilizatorul trebuie să o conceapă ca fiind relativă la baza unui segment predefinit. Adresa efectivă este precizată de modul de adresare aferent instrucţiunii care o utilizează. Selectorul se află, ca şi în cazul adreselor logice, tot într -un registru segment. Noutatea constă în faptul că definirea segmentului asociat unui selector nu se mai face direct (ca în cazul microprocesorului Intel 8086) ci prin mecanismul adresării indirecte. Microprocesorul
are următoarele particularităţi:
-
Adresa virtuală este o adresă pe 48 de biţi: AV ≡ adr48
-
Adresa efectivă este o adresă pe 32 biţi: AE ≡ adr32
Aceasta impune dimensiunea maximă a unui segment la 232 B = 4 GB.
21.Explicați schema generării adresei fizice în microprocesoarele pe 32 biţi, în mod protejat.
În mod protejat adresa de bază se încarcă din descriptor, ce se află într -un tabel de descriptori, selectat de selectorul ce se află în registrul de segment utilizat. Adresa fizică este formată după translatarea adresei lineare cu ajutorul unităţii de paginare. Adresa se plasează pe magistrala externă a procesorului. Când unitatea de paginare este deconectată adresa fizică coincide cu cea lineară. Unitatea de paginare activată translatează adresa lineară în cea fizică ce localizează pagini de 4 KByte (2 sau 4 MB). Unitate de paginare poate fi activată numai în modul protejat.
22.Explicați schema generării adresei fizice în microprocesoarele cu extensii pe 64 biţi, în mod pe 64 biţi.
În modul pe 64 biţi segmentarea nu se foloseşte : aplicaţiile operează cu adrese virtuale lineare. Din registrele de segment procesorul utilizează numai registrele CS, FS şi GS. În descriptorul indicat de CS sunt utilizate numai atributele: indicatorul modului pe 64 biţi, implicit mărimea operandului şi nivelul de privilegii.
În microprocesoarele cu extensii pe 64 biţi, adresa lineară este limitată la 48 biţi, iar adresa fizică până la 52 biţi.
23.Explicaţi structura descriptorului (Pentium) (fig). Descriptorul constituie elementul de bază în definirea
infomiaţiilor legate de segmentarea şi gestionarea memoriei virtuale precum şi de mecanismul protecţiilor proceselor. Descriptorii sunt folosiţi pentru o coerenţă maximă în descrierea celor mai diferite entităţi informaţionale. Astfel, există următoarcle tipuri de descriptori: a) Descriptorii segmentelor care permit identificarea segmentelor uzuale de lucru (de programe şi/sau de date). b) Descriptorii speciali de control care sunt, la rândul lor, de mai multe feluri: 1) Descriptorii segmentelor de sistem, segmente care sunt folosite de microprocesor în mecanismul gestionării memoriei.
2) Descriptorii "segmentelor de stare a proceselor" prin care se poate implementa
mecanismul multiprocesării. 3) Descriptorii "porţilor" (Gate) folosiţi în mai multe tipuri de acţiuni:
protecţia multi-nivel, multiprocesarea, răspunsul la cererile de întreruperi.
Cei 8B ai descriptorului au următoarele semnificaţii:
Octeţii 0, 1 şi nibble-ul inferior ai octetului 6, conţin 20 biţi din
LIMITA segmentului selectat.
Octeţii 2, 3, 4 şi 7 conţin 32 biți din BAZA (adresa fizică a bazei) segmentului selectat. Octetul 5 şi nibble-ul superior ai octetului 6, este câmpul ATRIBUTE, cu diverse informaţii despre segment pe care le vom detalia în continuare. În ceea ce priveşte câmpul ATRIBUTE, notăm următoarele semnificaţii (începând cu octetul 5);
Bitul 7, notat cu P, are rolul de a indica dacă segmentul este "prezent" în memoria fizică (P = 1) sau nu (P = 0). Biţii 6 şi 5 formează "Nivelul de privilegiu al descriptorului" (DPL) şi este folosit în mecanismul protecţiei multi-nivel. Bitul 4, notat cu S, este folosit, aşa cum arătam deja, pentru a distinge între segmentele normale de lucru (S=1) sau segmentele speciale d e sistem (S=0). În acest ultim caz, configuraţia nibble-ului inferior este 0010 (informaţie prezentată succint cu codificarea tip = 2) care indică faptul că descriptorul defineşte în spaţiul adreselor globale o LDT.
Pentru segmentele obişnuite, semnificaţia biţilor inferiori este:
Bitul 3, notat cu E, indică un segment pentru date (E = 0).
segment executabil (E=1), adică un segment de program, sau un
În funcţie de această ultimă clasificare, următorii trei biţi au semnificaţii diferite: a) Pentru segmentele de program:
notat cu C, este folosit de mecanismul protecţiei multi-nivel pentru a introduce o excepţie în modul de acces al acestui tip de segment. Bitul 1, notat cu R, indică, pentru R = 1 că segmentul poate fi şi citit nu numai executat. Bitul 0, notat cu A, semnifică "accesat". Ne vom opri puţin mai în detaliu asupra acestui bit, deoarece microprocesoarele Intel îl folosesc în cadrul unui procedeu cu o aplicabilitate mult mai generală. Procedeul poartă numele de Strategia "LRU- Least Recently Used” " ("cel mai puţin utilizat") şi ajută sistemul de operare să decidă ce segment este mai puţin utilizat pentru a fi trimis în memoria externă a calculatorului, în aşteptare. Astfel A este setat ori de câte ori se face referire la descriptorul care îl conţine; periodic A este resetat de sistemul de operare, orice resetare efectivă incrementând un contor. Segmentul al cărui contor asociat este minim va fi ales ca "victimă" pentru a aştepta în memoria externă.
Bitul 2,
b) Pentru segmentele de date:
Bitul 2, notat acum
cu ED (prescurtarea de la "expanded down"), indică dacă segmentul de date este folosit ca stivă. - pentru ED= 0 - segment de date; - pentru ED=1 - stivă.
Bitul 1, notat acum cu W, indică, pentru W = 1, dacă segmentul de date poate fi şi "înscris" nu numai citit. Bitul 0, notat cu A, are aceeaşi semnificaţie ca şi pentru segmentele de program, fiind folosit
în cadrul "Strategiei LRU". Se impun câteva observaţii:
Dimensiunea adresei fizice a bazei segmentului indică o locaţie în harta memoriei fizice de 4 GB.
Câmpul LIMITA indică o dimensiune maximă de 220 = l M cuante de informaţie. Numai că această cuantă poate fi octetul sau pagina (în dimensiune fixă de 4 kB).
Acest tip de organizare a memoriei este indicat de bitul 7 al octetului 6, bit notat cu G ("granularitate"). Pentru G = 1, Pentium foloseşte mecanismul paginării. Se observă că în cazul granularităţii pe octet segmentele au maximum 1 MB, iar în cazul granularităţii pe pagină, segmentele ating dimensiunea maximă de 4 GB.
Ceilalţi trei biţi din octetul 6 au următoarele semnificaţii:
Bitul 6, notat cu D/B (D pentru date şi B pentru coduri), indică pentru D/B = 1 că se lucrează cu operanzi pe 32 de biţi, cu toate modurile de adresare care îi sunt caracteristice. Pentru D/B = 0, se lucrează cu operanzi pe 16 biţi şi cu segmente de maximum 64 kB. Bitul 5 este 0 pentru compatibilitate cu descendenţii familiei Intel. Bitul 4, notat cu AVL este la dispoziţia utilizatorului ("disponibil").
24. Explicaţi mecanismul translatării adresei virtuale (Pentium) pentru spaţiile adreselor globale (TI=0) (fig).
Mecanismul de translatare porneşte de la cele două entităţi informaţionale din adresa virtuală (selector și adresa efectivă): Selectorul furnizează, la rândul său, următoarele informaţii: 1) Prin intermediul lui TI se identifică tipul de tabelă. 2) Câmpul INDEX este multiplicat cu 8 (un descriptor are 8B) şi se obţine poziţia relativă faţă de baza tabelei, identificându-se astfel un descriptor din tabelă.
Din descriptor se extrage: a) Adresa fizică a bazei segmentului ("BAZA") pe 4 octeţi. b) Dimensiunea segmentului vizat ("LIMITA") pe 20 de biţi.
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. Concomitent se verifică dacă dimensiunea prestabilită a segmentului nu este depăşită:
AE LIMITA
Mecanismul translatării adresei virtuale (TI=1) este dat în Figura 6.6. Stabilirea bazei tabelei de descriptori depinde de tipul de
tabelă: în spaţiul adreselor globale sau locale. În spaţiul adreselor globale, GDT are o modalitate mai simplă de definire: fiind unică, baza şi lungimea sa sunt stocate într -un registru intern al microprocesorului: "Registrul tabelei de descriptori globali" (GDTR). Accesul la acest
registru este asigurat de instrucţiuni privilegiate, astfel încât un utilizator obişnuit să nu poată avea acces la redefinirea acestei tabele (reamintim că GDT este folosită de toate procesele, inclusiv de sistemul de operar e).
25. Explicaţi mecanismul paginării (folosind adresa liniară) aplicat la Pentium (fig).
Mecanismul paginării (pagini pe 4K) are următoarele elemente esenţiale:
Se utilizează două nivele de adresare indirectă cu memoria, astfel încât, până să se ajungă la pagina propriu-zisă, se face o referinţă într -un "director" din care se selectează o "tabelă a paginilor".
Toate obiectele din memorie implicate (directorul şi tabelele) sunt tratate la rândul lor ca nişte pagini speciale; deci au toate mărimea fixă de 4 kB. Se păstrează astfel principiul coerenţei informaţiei în memorie (ca şi în cazul segmentelor). Atât directorul cât şi tabelele de pagini au structură uniformă fiind formate din 1 k "elemente" de câte 4 octeţi. Senmificaţia informaţiei din aceste elemente va fi detaliată în cadrul acestui subcapitol. Ne limităm să menţionăm acum că aici se găseşte adresa bazei tabelei şi respectiv a paginii selectate.
Orice adresă a bazei unei tabele sau a unei pagini este dată pe 20 de biţi, aceştia constituind partea mai semnificativă a adresei fizice vizate. Toate blocurile în memorie sunt "aliniate" din 4 kB în 4 kB, deci, automat cei mai puţin semnificativi 12 biţi ai adreselor fizice ale bazelor sunt 0. Adresa fizică a bazei directorului se află într -unul din registrele de control ale microprocesorului CR3 (Page Directory Physical Base Address) (desigur şi aici cei mai puţin semnificativi 12 biţi ai adresei sunt 0).
26. Explicaţi mecanismul memoriei “cache” (TLB) ( fig). Problema timpului necesar pentru accesul într -o pagină
din memorie se rezolvă folosind principiul general al memoriei asociative cache. Pentru a elimina stările suplimentare impuse de mecanismul paginării, unitatea care se ocupă de aceasta conţine o astfel de memorie, adresabilă prin conţinut, denumită TLB ("translation lookaside buffer"). Principiul este prezentat în figura 6.10. Memoria conţine cele mai frecvent utilizate 32 de elemente din director şi tabelele paginilor. De câte ori este necesar accesul într -o pagină, se verifică întâi TLB. Dacă aici se găseşte elementul vizat
(ceea ce se numeşte "cache hit"), translatarea se face citind adresa corespunzătoare din TLB, fără timpii adiţionali de calcul şi căutare în tabele succesive. Reactualizarea TLB se face ori de câte ori nu se gaseşte elementul cerut ("cache miss"). Evident TLB este complet reînnoit când CR3 este încărcat cu o nouă adresă de bază a directotiilui. Intel ne asigură că în 98% dintre referinţele în memorie, mecanismul de translatare este înlocuit cu simpla citire a adresei din TLB.
27. Destinaţia „Chipset”. Chipset-ul constă din 2 circuite, fiecare cu destinație specială, notate - puntea de nord (North bridge) şi puntea de sud (South bridge). Chipset-ul conține diferite controllere ce interconectează
componentele de pe placa de sistem. Pe placa de bază modernă Intel QM77, puntea de nord este incorporată în circuitul microprocesorului. 28.Explicați principiul de funcționare a controllerului D MA (fig). Controllerul DMA (DMA-direct memory access, acces direct la memorie) este un dispozitiv ce
asigură accesul direct la RAM a perifericelor, neutilizând registrii interni ai microprocesorului. Cererea de acces este formulată pe un terminal specializat denumit, de regulă, "BUSRQ" (cerere de magistrală). Are prioritatea maximă şi răspunsul aşteaptă doar terminarea ciclului maşină curent.
Microprocesorul "îngheaţă" întreaga activitate internă; magistralele sale trec în "impedanţă înaltă" iar controlul transferului de informație este preluat de controllerul DMA. Acesta facilitează transferul informaţiei direct între memorie şi echipamente periferice 29.Definiţi noţiunea “interfaţă”. Cuplarea echipamentelor periferice la un sistem de calcul presup une adaptarea semnalelor specifice
fiecărui echipament periferic la semnalele de pe magistrală si reglarea fluxului de date de intrare/iesire între calculator si periferic şi aceste funcţii sunt efectuate de interfeţe. 30. Destinaţia tunelului în arhite ctura HT. Tunel (Tunnel) – dispozitiv cu 2 interfeţe HT; ele pot
forma un lanţ (daisy chain), organizând o magistrală logică. Lanţul de dispozitive se conectează la host (microprocesorul cu Host bridge), ce asigură configurarea tuturor dispozitivelor şi gestionează funcţionarea HT.
31. Descrieţi tehnologia Hyper Transport (topologia, tunel, „cave”, structura magistralei HT).
Tehnologia (arhitectura) HyperTransport (HT) a fost proiectată ca alternativă arhitecturii bazate pe magistrale şi punţi. Principala inovaţie – înlocuirea conectării prin intermediul magistralelor a dispozitivelor periferice prin conectarea punct-la-punct (point-to-point) ce presupune transferuri de
date concomitent în ambele direcţii între 2 noduri (Prin această tehnologie se majorează considerabil viteza de transfer a datelor.Puntea de bază (host bridge) asigură legătura cu nucleul sistemului – microprocesorul şi memoria. Controllerele perifericelor, ce necesită rate înalte de transfer de date sunt realizate în formă de tuneluri HT (HT Tunnel). Caracteristicile principale ale tunelului sunt:
Interfaţa HyperTransport pe 16 biţi (Side A) oferă o rată maximală de transfer (lăţime de bandă) – până la 6,4 GB/s; Interfaţa HyperTransport pe 8 biţi (Side B) oferă o rată maximală de transfer – până la 1,6 GB/s.
32. Magistrala PCI (Configurarea; comentați diagrama transferului de date pe magistrala PCI).
Dispozitivul PCI poate fi multifuncţional, adică constă din mai multe funcţii. Fiecărei funcţii se atribuie un spaţiu de configurare de 256 bytes (Standardul PCI determină pentru fiecare slot spaţiu de configurare de pînă la 256 registre (pe 8 bits), ce nu se referă la spaţiul de memorie şi nici la spaţiul de intrare/ieşire). Accesul la acestea registre se petrece în faze speciale ale magistralei Configuration Read şi Configuration Write. Numărul funcţiei (function number), în tranzacţiile de configurare este transmis pe liniile AD[10:8] (liniile AD[0:7] adresează registrii din interiorul dispozitivului PCI). Deci dispozitivul poate încorpora pînă la 8 funcţii. La configurare se adresează funcţia cu numărul “0”. La o magistrală PCI pot fi conectate cîteva dispozitive fiecare cu numărul său (device number). În sistemă pot fi cîteva magistrale PCI, fiecare cu numărul său (PCI bus number). Magistralele se numerotează consecutiv.
33. Magistrala serială PCI Express (topologia, structura legăturii punct la punct, ”data stripping”, protocolul).
Topologia unui sistem bazat pe magistrala PCI Express conţine un comutator şi mai multe conexiuni punct la punct cu dispozitivele de I/E. Nivelul fizic are la bază o legătură punct la punct formată din două canale de comunicaţie simplex, unul pentru transmisie şi unul pentru recepţie. Legătura fizică de bază (Figura 7.10) utilizează 4 conexiuni între două dispozitive, semnalele transmise fiind diferenţiale şi având tensiun i reduse (LVDS - Low Voltage Differential Signaling).
Nivelul legăturii de date adaugă numere de secvenţă şi coduri CRC acestor pachete pentru a asigura un transfer fiabil. Semnalul de ceas este codificat împreună cu datele pentru a obţine rate de transfer ridicate.
Figura 7.10 – Structura legăturii puct la punct
34. Structura magistralei ATA (IDE).
Standardul ATA prevede opţiunea de funcţionare a sistemului cu două unităţi conectate în lanţ. Prima unitate (unitatea 0) este numită master , iar unitatea a doua (unitatea 1) este numită slave. O unitate poate fi desemnată fie ca master , fie ca slave, prin aşezarea unui jumper sau comutarea unui microîntrerupător. Cablul utilizat (Figura 7.13) pentru conectarea unităţilor IDE este un cablu cu 40 de fire, prevăzut cu trei conectori. De obicei, cablul pleacă de la conectorul IDE către o unitate, şi apoi în continuare spre a doua unitate (dispunere în lanţ). La unul din capete cablul este legat fie la conectorul pentru interfaţa IDE de pe placa de bază, fie la o placă adaptoare pentru interfaţa IDE, care este amplasată într -unul din conectorii plăcii de bază.
35. Structura magistralei SATA.
Magistrala constă din 7 fire (figura 7.14), dintre care 4 sunt informaţionale şi 3 pentru conectare la masă (Ground). O pereche de fire se foloseşte pentru transferuri, iar alta pentru recepţia datelor. Informaţia se codifică după metoda NRZ (Non Return to Zero).
36. Caracterizați magistrala SCSI.
Interfaţa SCSI (Small Computer System Interface) SCSI nu este o interfaţă de disc, ci o interfaţă la nivelul sistemelor, formată dintr -o magistrală care acceptă mai multe echipamente. Unul din aceste echipamente, adaptorul cu sistemul gazdă, funcţionează ca o punte între magistrala SCSI şi magistrala sistemului. Magistrala SCSI nu comunică direct cu echipamentele periferice, cum sunt unităţile de discuri, ci cu controllerul care este inclus în aceste unităţi. O singură magistrală SCSI poate accepta până la 8 sau 16 unităţi fizice, numite unităţi SCSI, dintre care una este adaptorul SCSI. Unităţile fizice pot fi unităţi de discuri fixe, unităţi de bandă, unităţi CD-ROM, scanere, imprimante. Majoritatea sistemelor pot accepta până la patru adaptoare SCSI la sistemul gazdă, fiecare din acestea permiţând cuplarea a până la şapte echipamente periferice, conectate în lanț. SCSI este o interfaţă destinată în special staţiilor de lucru şi serverelor cu performanţe ridicate.
La prima versiune a interfeţei SCSI, frecvenţa de ceas a magistralei era de 5 MHz, iar rata maximă de transfer era de 5 MB/s. La versiunile actuale ale acestei interfeţe, frecvenţa de ceas a magistralei este de 80 MHz sau 160 MHz, iar ratele maxime de transfer sunt de 320 MB/s, respectiv 640 MB/s.
Pe lângă aceste versiuni paralele ale interfeţei SCSI, a fost elaborată şi o versiune serială a interfeţei. Această interfaţă SCSI serială, numită Serial Attached SCSI, va înlocui treptat interfaţa SCSI paralelă. Atât tehnologia SCSI paralelă, cât şi cea serială, sunt promovate de organizaţia SCSI Trade Association. Există două tipuri principale de interfeţe electrice SCSI: normale şi diferenţiale. 37. Caracterizați magistrala serială SCSI (SAS). Serial Attached SCSI (SAS) reprezintă versiunea serială a interfeţei SCSI. Aceasta utilizează un
protocol serial punct la punct şi setul standard de comenzi SCSI. Interfaţa serială SAS oferă compatibilitate cu unităţile de discuri SATA de generaţia a doua, care se pot conecta la plăci de bază SAS. Totuşi, unităţile de discuri SAS nu se pot conecta la plăci de bază SATA. Interfaţa SAS este o arhitectură punct la punct, cu fiecare echipament conectat direct la un port SCSI în loc de a fi conectat la o magistrală partajată. Interfaţa SAS utilizează semnale diferenţiale, codificarea 8b/10b a datelor şi cifrarea datelor pentru reducerea interferenţelor electromagnetice. Se pot combina până la patru porturi cu aceeaşi adresă într -un port de lăţime mai mare, care permite transferuri de date cu până la 24 Gbiţi/s. 38. Definiţi noţiunea hub (USB). hub (usb) Cablul de comunicaţie constă din 4 fire: două sunt de date si două pentru alime ntare (5V si 0V). USB asigură schimbul de date între host-calculatorul şi diferite echipamente periferice.
Distribuirea vitezei de transfer a magistralei între echipamentele periferice sunt planificate de HOST şi se realizează de el cu ajutorul indicatoar elor (token). Magistrala permite conectarea, configurarea, folosirea şi deconectarea dispozitivelor în timpul lucrului hostulu Un hub reprezinta un multiplicator a conectoarelor. Hub-urile asigură puncte de conectare suplimentarea dispozitivelor la magistrală
39. Definiţi noţiunea ”compound device”. (compound device...dispozitive care combina si imbina citeva functii si cabluri) Ca dispozitive (Device) USB pot fi hub-uri (distribuitoare), funcţii sau dispozitive ce îmbină şi huburi şi funcţii (compound device, figura 7.17). Hub-urile asigură puncte de conectare suplimentare a
dispozitivelor la magistrală. Funcţiile USB sunt nişte sisteme, de exemplu mouse ce susţine USB. Dispozitive care combină câteva funcţii, (compound device, figura mai jos) de exemplu, keyboard cu trackball încorporat. Elementele
principale ale unui sistem care utilizează magistrala USB sunt dispozitivele USB, cablurile USB şi programele de sistem. Dispozitivele de pe magistrala USB sunt conectate fizic la calculatorul gazdă utilizând o topologie sub formă de stea , după cum se ilustrează în Figura 7.17.
Figura 7.17 – Topologia fizică
40. Topologia magistralei USB pe nivele. Topologia magistralei pe nivele
Figura 7.18 – Topologia magistralei pe nivele Centrul magistralei USB este însăşi host-controlerul, care este conectat cu hub de rădăcină (root hub), de regula, prin unul din două porturi ale sale
41. Divizarea sistemului USB pe trei nivele.
Sistema USB se divizează pe trei nivele cu anumite reguli de interacţiune. Dispozitivul USB conţine interfaţa (USB Bus Interface), componentele logice (USB Logical Device) şi funcţia (function). Hostul tot este divizat în trei părţi - interfaţa (USB Host Controller), de sistem (USB System) şi soft-ul dispozitivului (Client SW). Fiecare parte are o destinaţie predefinită, interacţiunile logice şi reale între nivele sunt prezentate în fig 7.21.
Figura 7.21 - Interacţiunea componentelor USB
42. Definiţi noţiunea Canal (Pipe) și ”endpoint” la USB.
Fiecare dispozitiv USB conţine un set de puncte finale (Endpoint), cu care host-controlerul realizează schimb de informaţie. Endpoint se caracterizează cu următorii parametri:
frecvenţa de acces la magistrală; lăţimea de bandă a canalului; numărul Endpoint cerinţe la prelucrarea erorilor mărimea maximală a pachetelor transferate
tipul transferului
direcţia transferului (pentru transferul izocronic Fiecare tranzacţie, constă din 3 pachete şi începe în momentul în care controlerul USB transmite, pe baza unei planificări, un pachet antet (Token) care descrie tipul tranzacţiei, direcţia acesteia, adresa dispozitivului USB şi numărul punctului terminal. Sursa tranzacţiei transmite apoi un pachet de date (Data) conţinând datele care trebuie transferate, sau poate indica faptul că nu are date de transmis prin faptul că pachetul de date nu conţine informaţii utile. Destinaţia răspunde, în general, cu un pachet de confirmare (Handshake) indicând dacă transferul s-a efectuat cu succes sau dacă punctul terminal nu este disponibil. Succesiunea pachetelor în tranzacţii este prezentată în fig. 7.32
Figura 7.32 - Succesiunea pachetelor
43. Magistrala USB (Funcţii şi hub-uri; trei nivele ale sistemului USB; modelul de transfer a datelor; structura tranzacțiilor din 3 pachete).
Arhitectura USB permite patru tipuri de transferuri de date: de control, de întrerupere, de date voluminoase şi izocrone. Transferuri pe magistrala USB
Fiecare transfer pe magistrală este iniţiat de Host controler. Controlerul formează cadre în care sunt plasate transferurile către fiecare dispozitiv conectat la magistrala USB. Pentru sincronizarea întregului sistem USB, calculatorul gazdă transmite câte un pachet SOF (Start-of-Frame) la fiecare interval de timp corespunzător începutului unui cadru sau micro-cadru. Un cadru reprezintă un interval de timp de 1 ms ± 0,0005 ms şi este definit pentru magistrala USB cu viteza normală (12 Mbiţi/s). Un micro -cadru reprezintă un interval de timp de 125 μs ± 0,0625 μs şi este definit pentru magistrala USB cu viteza ridicată (480 Mbiţi/s). Un pachet SOF constă dintr -un câmp de sincronizare, un câmp PID şi un câmp de 11 biţi reprezentând numărul cadrului, după cum se ilustrează . După pachetul SOF urmează transferul către primul dispozitiv conectat l a magistrala USB(pachetele IN/OUT, DATA, HANDSHAKE, ca pe fig. 7.33), apoi se petrece schimbul de date
cu dispozitivul doi(pachetele IN/OUT, DATA, HANDSHAKE), până nu este apelat ultimul dispozitiv conectat la magistrală. Dispozitivele lente pot fi apelate şi peste câteva cadre. În următorul cadru interogarea dispozitivelor se repetă. În cazul magistralei USB cu viteza ridicată, numărul cadrului va fi acelaşi pentru opt pachete SOF consecutive, pe durata unei perioade de 1 ms.
44. Magistrala USB (Funcţii şi hub-uri; tipurile de transfer a datelor; formatul pachetelor; structura transferului de cadre pe magistrala USB). Ca dispozitive (Device) USB pot fi hub-uri (distribuitoare), funcţii sau dispozitive ce îmbină şi hub-uri şi funcţii (compound device, figura 7.17). Hub-urile asigură puncte de conectare
suplimentare a dispozitivelor la magistrală. Funcţiile USB sunt nişte sisteme, de exemplu mouse ce susţine USB. Dispozitive care combină câteva funcţii, (compound device, figura mai jos) de exemplu, keyboard cu trackball încorporat. O funcţie este un dispozitiv USB care poate transmite şi/sau recepţiona date sau informaţii de control pe magistrală. Acest dispozitiv trebuie să răspundă la cererile de tranzacţie transmise de calculatorul gazdă. O funcţie este implementată în mod obişnuit ca un periferic separat conectat printr-un cablu la un port al unui hub. Un singur dispozitiv fizic poate conţine însă funcţii multiple. De exemplu, o tastatură şi un trackball pot fi combinate într -un singur dispozitiv fizic. În cadrul unui asemenea dispozitiv compus, funcţiile individuale sunt ataşate la un hub, iar acest hub intern este conectat la magistrala USB.
Fiecare funcţie conţine informaţii de configuraţie care descriu posibilităţile sale şi resursele necesare. Aceste informaţii sunt transmise calculatorului gazdă ca răspuns la o tranzacţie de control. Înaintea utilizării unei funcţii, aceasta trebuie configurată de calculatorul gazdă. Această configurare presupune alocarea unei lăţimi de bandă în cadrul magistralei USB şi selectarea opţiunilor specifice de configuraţie.