Documente Academic
Documente Profesional
Documente Cultură
323519761-Atestare2 2
323519761-Atestare2 2
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 programmable interrupt
con.)
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.
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.
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 putere, curent și
temperatură, conform TDP (Thermal Design Power).
Tabelul 5.1
(Alignment
Check)
VIF Fanionul 19 În modul virtual este analogic fanionului if. Fanionul vif se
foloseşte împreună cu fanionul vip. A fost introdus în
Întreruperii
Pentium.
Virtuale
(Virtual
Fanionul 20 Se setează în 1 pentru indicarea întreruperii amânate. Se
VIP
Interrupt Flag) foloseşte în modul V împreună cu fanionul vif. Introdus la
Întreruperii
Pentium.
Virtuale
amânate
ID Fanionul
(Virtual 21 Indică susţinerea instrucţiunii cpuid.
Interrupt
identificării
Pending flag)
(IDentification
flag)
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.
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 efectuat de microprocesor,
gestionarea memoriei cache ş.a. Componenţa lor diferă la diferite microprocesoare, accesul este
privilegiat.
Registre de uz general Registrele blocului FPU/MMX Registrele blocului XMM
63 31 15 0 79 63 0 127 0
RAX eax ah ax al st(0) mmx0 xmm0
RBX ebx bh bx bl st(1) mmx1 xmm1
RCX ecx ch cx cl st(2) mmx2 xmm2
RDX edx dh dx dl st(3) mmx3 xmm3
RBP ebp bp st(4) mmx4 xmm4
RSI esi si st(5) mmx5 xmm5
RDI edi di st(6) mmx6 xmm6
RSP esp sp st(7) mmx7 xmm7
R8 15 0 xmm8
R9 cs xmm9
R10 xmm10
ss xmm11
R11 Registre de
R12 ds segment xmm12
R13 xmm13
es xmm14
R14
R15 fs xmm15
gs
63 31 15 0
RFLAGS eflags flags Registrul de fanioane Registre de sistem
RIP eip ip Registrul idicator de instrucţiuni 8086/x86-64
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
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.
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.
63 31 15 0
RFLAGS eflags flags Registrul de fanioane Registre de sistem
RIP eip ip Registrul idicator de instrucţiuni 8086/x86-64
- Adresarea liniară, care presupune accesul în memorie în mod continuu de la adresa 0 la adresa 2n-
1
, unde "n" este numărul de biţi ai unei adrese (sau, fizic, numărul de linii ai magistralei de adrese).
- Adresarea segmentată, î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ă.
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.
Î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.
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.
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 de 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.
Bitul 3, notat cu E, indică un segment executabil (E=1), adică un segment de program, sau un
segment pentru date (E = 0).
În funcţie de această ultimă clasificare, următorii trei biţi au semnificaţii diferite:
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.
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ă):
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
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).
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.
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
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 tensiuni 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
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ă.
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.
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.
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
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
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.
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 la 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.