Sunteți pe pagina 1din 9

Arhitectura calculatoarelor compatibile IBM PC

1. Obiectivele lucrrii:
Sistemele de calcul au avut, n ultimii ani, o evoluie exploziv datorat n primul rnd
evoluiei din domeniul electronicii i tehnologiilor actuale. Cele mai rspndite calculatoare de
pe pia se bazeaz pe procesoare produse de firma Intel. Din acest motiv pe parcursul acestei
edine, studentul se va familiariza cu arhitecturile calculatoarelor IBM PC, studiind trei
procesoare produse de firma Intel.

2. Introducere
Calculatorul numeric a fost conceput iniial ca un instrument de lucru pentru
matematicieni i fizicieni pentru a uura efectuarea unor calcule laborioase. Dup anul 1945,
considerat ca fiind anul de natere al calculatorului electronic, evoluia calculatoarelor a fost
marcat de lrgirea domeniului de aplicaii i de o evoluie tehnologic impresionant datorit
apariiei procesoarelor.

3. Arhitectura unui sistem de calcul


Componentele principale ale unui sistem de calcul , conform descrierii lui von
Neumann, sunt (fig. 1):
- unitatea central de procesare (ALU);
- unitatea de control;
- memoria;
- echipamentele intrare/ieire.

Fig. 1. Modelul von Neumann al unui sistem de calcul


2 Arhitectura Calculatoarelor Lucrarea 1
_________________________________________________________________________
Toate calculatoarele personale sunt dezvoltate pe baza arhitecturii von Neumann. Acest
model se poate simplifica, rezultnd modelul bazat pe magistral prezentat n fig. 2.

Fig. 2. Modelul bazat pe magistral al unui calculator digital


Procesoarele Intel Pentium sunt procesoare superscalare care pot executa mai multe
instruciuni ntr-un ciclu, mbinnd att caracteristici CISC ct i RISC, primele fiind ns
predominante. Anumite instruciuni sunt complet cablate i pot fi executate ntr-o singur
perioad de tact (caracteristic RISC), n timp ce altele sunt microprogramate i pot necesita mai
multe perioade de tact pentru execuie (caracteristic CISC). De asemenea, procesoarele Intel au
cteva moduri de adresare, cteva formate de instruciune i puine registre (caracteristic CISC).

4. Procesorul 80486
Procesorul 80486 este un procesor pe 32 de bii bazat pe o arhitecur pipeline (band de
asamblare). Aceast band de asamblare are rolul de a crete numrului de instruciuni executate
ntr-un interval de timp. Execuia unei instruciuni a fost mprit n 5 pri distincte, fiecare
executat de o unitate funcional. n fiecare perioad a ceasului este preluat o instruciune i,
dei pentru executarea acesteia sunt necesare cteva perioade de ceas, datorit executrii aproape
simultane a mai multor instruciuni se realizeaz efectul executrii cte unei instruciuni n
fiecare perioad a ceasului.

PF D1 D2 EX WB

Fig.3. Structura benzii de asamblare a procesorului 80486


Structura pipeline este organizat pe 5 uniti (nivele):
- PF aducere n avans a instruciunii (Prefetch)
- D1 decodificare instruciune (Decode 1)
- D2 generare adres (Decode 2)
- EX execuie (Execute)
- WB memorare rezultat n registru (Write Back)
Pentru a alimenta n permanen unitatea de execuie rapid, n procesorul 80486 a fost
inclus o memorie cache de mare vitez. Conceptul cache folosete dou caracteristici
importante ale execuiei programelor: n primul rnd, programele tind s utilizeze datele i
instruciunile situate unele lng altele, iar n al doilea rnd, programele tind s refoloseasc n
mod repetat aceleai blocuri de date. innd cont de aceste caracteristici, sunt pstrate ntr-o
unic memorie rapid blocurile de date care urmeaz s fie utilizate. Memoriiile cache sunt
foarte utile, deoarece datele i intruciunile necesare se afl n peste 95% din cazuri n memoria
Arhitectura Calculatoarelor Lucrarea 1 3
_________________________________________________________________________
cache. O alt noutate a procesorului 80486 fa de precedentele este includerea pe cip a
coprocesorului matematic.

5. Procesorul Pentium
Procesorul Pentium conine dou memorii cache separate pentru instruciuni i pentru
date, fiecare avnd capacitatea de 8Ko, o zon tampon de predicie dinamic a salturilor (branch
target buffer), dou buffer-e de aducere n avans a instruciunilor (prefetch) i o memorie de
microprogram (ROM). Memoria de microprogram conine secvenele de microinstruciuni
aferente instruciunilor complexe.
Cache-urile de instruciuni i date sunt asociative la nivel de set (two-way set-
associative). Un set conine dou linii (asociativitate=2) i fiecare linie conine 32 de octei.
Fiecare cache are propriul registru TLB (Translation Lookaside Buffer) pentru translatarea
adreselor logice n adrese fizice. Seturile TLB conin 4 linii (asociativitate=4). Ambele cache-uri
utilizeaz algoritmul LRU (Least Recent Used Line) pentru evacuarea unei linii din cache.
Procesorul Pentium este construit n jurul a dou benzi de asamblare (structuri pipeline)
ntregi, denumite U i V, i una n virgul mobil (flotant). Structura U este o structur
complet care poate procesa att instruciuni n virgul fix ct i n virgul mobil. Structura V
poate procesa doar instruciuni n virgul fix i cteva instruciuni simple n virgul mobil,
cum ar fi instruciunea exchange n virgul mobil. Instruciunile simple sunt cablate i pot fi
executate ntr-o singur perioad de tact. Instruciunile ce nu pot fi considerate simple sunt cele
aritmetico-logice, de tip memorie-registru sau registru-memorie, pentru execuia crora sunt
necesare dou sau mai multe cicluri de ceas.
Primele dou nivele (PF i D1) sunt partajate. Pe nivelul PF se realizeaz extragerea
instruciunilor din cache-ul de instruciuni sau din memorie. Pe nivelul D1, dou instruciuni
secveniale vor fi decodificate n paralel i se va decide dac vor fi lansate simultan sau nu n
execuie, n funcie de o serie de condiii cum ar fi:
- cele dou instruciuni trebuie s fie simple;
- ntre cele dou instruciuni trebuie s nu existe dependene (hazarduri) RAW sau
WAR.
Pe nivelul D2 se calculeaz adresele operanzilor din memorie dac acetia exist. Pe
nivelul EX se execut operaia i, dac este necesar, se acceseaz cache-ul de date. Pe ultimul
nivel (WB) rezultatul instruciunii este memorat n registrul destinaie.

4 buffere External
U-pipe
bus
D2 EX WB

PF D1

D2 EX WB

V-pipe
Fig.4. Structura benzilor de asamblare la procesorul Pentium
Dependenele apar atunci cnd instruciunile utilizeaz aceleai resurse (registre, zone de
memorie), caz n care se numesc dependene de date, sau cnd apar salturi condiionate, caz n
4 Arhitectura Calculatoarelor Lucrarea 1
_________________________________________________________________________
care se numesc dependene de control. Dependenele de date pot fi de tipurile WAR, WAW i
RAW.
Dependenele WAR (write after read scriere dup citire) apar atunci cnd o instruciune
trebuie s modifice o locaie de memorie, dar trebuie s atepte ca toate instruciunile anterioare
ce necesit vechea locaie s o citeasc.
Dependenele WAW (write after write scriere dup scriere) apar atunci cnd mai multe
instruciuni modific aceeai locaie. Modificrile trebuie fcute n ordinea indicat de programul
secvenial.
n cazul dependenelor RAW (read after write citire dup scriere) o instruciune poate
citi o anumit valoare numai dup ce aceasta a fost furnizat de o instruciune ce o scrie.
La nivelul benzilor de asamblare instruciunile n cod main sunt descompuse n micro-
operaii care se execut n paralel. Rezultatul este apoi asamblat i trimis n exterior. n cazul
execuiei unui salt condiionat procesorul execut faza de fetch de la una din cele dou adrese
disponibile, urmnd ca ulterior s verifice corectitudinea saltului. Aceast presupunere pentru
adresa int a saltului se numete speculaie. Dac nu s-a anticipat corect adresa de salt atunci
banda pipeline este golit i se face un nou fetch de la adresa corect.
Anticiparea direciei unui salt se face pe baza execuiilor anterioare ale saltului, care sunt
memorate ntr-o tabel de predicie (Branch Target Buffer). Aceasta conine 256 de intrri
organizate n 4 blocuri (four-way set associative). Fiecare intrare conine adresa instruciunii de
salt (branch), adresa de salt i istoria acestei instruciuni. Cnd o instruciune de salt este
decodificat n faza D1, procesorul caut n BTB pentru a determina dac acesta conine o intrare
alocat instruciunii n cauz sau nu. Dac ciclul BTB va fi un insucces (miss), procesorul
prezice c saltul nu se va executa. Dac ciclul BTB se ncheie cu succes (hit), istoria
nregistrat n locaia BTB aferent va fi utilizat pentru a prezice dac instruciunea va provoca
sau nu saltul condiionat. Dac se prezice c saltul nu se va executa, procesorul continu cu
extragerea instruciunilor de pe ramura secvenial; n caz contrar extragerea instruciunilor se va
face de la adresa specificat n instruciunea analizat. Corectitudinea prediciei este evaluat la
nceputul fazei WB.
n procesarea instruciunilor microprocesorul Pentium aplic dou strategii: in-order
issue i respectiv in-order completion. Cnd o instruciune este procesat n structura U i o a
doua n structura V, ambele prsesc nivelul D2 i intr n EX n acelai moment de timp. Dup
intrarea n EX, dac instruciunea din U va fi temporar oprit, atunci i instruciunea din V va fi
temporar oprit (cele dou instruciuni avanseaz n sincronism). Dac ns instruciunea din V
este temporar oprit atunci instruciunea din U avanseaz n execuie deoarece este prima din
cadrul perechii respective. n fine, dac instruciunea din U i ncheie faza EX naintea
instruciunii din structura V, urmtoarea instruciune din structura U nu va putea intra n nivelul
EX pn cnd i instruciunea din structura V i ncheie faza EX (urmtoarea pereche atac
simultan nivelul EX).
Pentru execuia instruciunilor n virgul mobil sunt necesare 3 cicluri (fa de numai
unul pentru instruciunile simple). Aceste instruciuni traverseaz un pipeline cu 8 nivele:
- PF aducere n avans a instruciunii
- D1 decodificare instruciune
- D2 generare adres
- EX extragere operand
- X1 execuie 1
- X2 execuie 2
- WF scrie rezultat n registru flotant
- ER raportare eroare
Primele 5 nivele sunt partajate cu structurile U i V (instruciunile cu operanzi ntregi
utilizeaz nivelul 5, X1, pe post de unitate WB).
Arhitectura Calculatoarelor Lucrarea 1 5
_________________________________________________________________________

Branch TLB Cache


target Adresa Instruciuni
buffer prefetch 8KB

256

Buffer de prefetch Memorie de


microprogram
Instruction Decodificare ROM
pointer instruciune

Verificare cod branch


i adres de salt

Unitate de control

Generator Generator
de adrese de adrese Unitate virgul flotant
(U pipeline) (V pipeline) (FPU)

Control

Set registre generale Set registre FPU


(operanzi ntregi)
ALU ALU
(U pipeline) (V pipeline)
Add
Reea deplasare (+)
(Barrel shifter)
Divide
(/)

32 32
Multiply
Cache (*)
32 32
Instruciuni
32 TLB 8KB 32

64
Bus date
Page
Unit Bus 32
Unit Bus adrese

Bus control
32 Bus
64 Bus date

Fig. 5. Arhitectura intern a procesoarelor Pentium


6 Arhitectura Calculatoarelor Lucrarea 1
_________________________________________________________________________

6. Procesorul Pentium MMX


Principala noutate a procesorului Pentium MMX fa de Pentium o constituie tehnologia
MMX care accelereaz instruciunile multimedia prin procesarea datelor n paralel. Aceast
tehnologie aduce un set de 57 de instruciuni noi precum i date pe 64 de bii. Exist i opt
registre pe 64 de bii denumite MM0 MM7. Tehnologia MMX a adugat i stagii suplimentare
n arhitectura benzilor de asamblare, a fost adugat o unitate, notat F, dup PF care realizeaz
o analiz gramatical a instruciunii extrase. ntre unitatea F i unitatea de decodare D1 se afl o
coad de ateptare n care se pot pstra pn la 4 micro-instruciuni.
Tehnologia MMX este reprezentat de un set de instruciuni care mresc viteza cu care se
efectueaz operaile ntregi. Registrele MMX sunt de fapt aceleai cu cele utilizate de FPU
(floating point unit), dar sunt accesate i utilizate diferit. Acest fapt este cunoscut sub denumirea
de unificarea registrelor. Deoarece ele sunt partajate, instruciunile FPU i MMX nu pot fi
executate n acelai timp. De asemenea, nu este posibil executarea instruciunilor FPU pe date
MMX, din moment ce aceste date sunt valori ntregi. MMX are capacitatea de a crete
performana prin executarea a multiple calcule pe o singur pies de date. Programatorii recurg
la aceast caracteristic frecvent atunci cnd pentru diferite calcule au nevoie de o multitudine de
date. n mod normal, dac trebuie executat o serie de operaii pe date individuale, se folosete
un registru ca AL. Este imposibil ncrcarea a 4 octei de date ntr-un registru de 32 de bii, i
considerarea acestuia ca un vector de 4 octei. n comparaie, tehnologia MMX, permite
ncrcarea a pn la 8 octei de date ntr-un registru i tratarea fiecruia ca o parte de dat
individual. Data poate fi de asemenea considerat ca format din 4 cuvinte, 2 dublu-cuvinte sau
64 bii. Termenul SIMD (single instruction, multiple data) este utilizat pentru a descrie modul n
care MMX poate procesa informaii diferite utiliznd o singur instruciune.

7. Procesorul Pentium PRO


Procesorul Pentium PRO se bazeaz tot pe o arhitectur superscalar, mbuntit fa de
arhitectura Pentium, denumit arhitectur de execuie dinamic. Execuia dinamic const n
descompunerea unei (macro)instruciuni n instruciuni direct executabile de ctre unitatea de
execuie, i executarea lor n paralel. Spre exemplu, instruciunea ADD EAX,[MEM] este
decodat n dou micro-instruciuni: una care citete operandul din memorie i una care face
adunarea.
Banda de asamblare este format din 12 nivele (fig. 6) care sunt divizate dup cum
urmeaz:
In-order front end:
o Se face predicia noii instruciuni,
o Se extrage instruciunea din memorie,
o Se decodific instruciunea n micro-instruciuni,
o Se redenumesc registrele externe procesorului pentru a elimina
dependenele,
o Se aloc unitatea de execuie i se memoreaz starea pentru fiecare micro-
instruciune n ROB (reorder buffer) n ordinea original din program.
Out-of-Order execution:
o Trimitere i executare micro-instruciune,
o Memorare temporar a rezultatelor n ROB.
In-order retirement:
o Scriere rezultate n registrele externe,
o Memorare date permanent dac este necesar,
o tergere micro-operaie din ROB.
Arhitectura Calculatoarelor Lucrarea 1 7
_________________________________________________________________________

Fig. 6,a. Banda de asamblare a procesorului Fig.6,b. Arhitectura intern a procesorului


Pentium PRO Pentium PRO
Procesorul extrage instruciunile citind un double-word (32 bii) de la adresa indicat de
registrul IP (instruction pointer). Cei 32 de bii sunt transformai n cuvinte (16 bii) i trimii
decodorului. Procesorul extrage instruciunile secvenial pn apare o instruciune de salt. Dac
aceast instruciune de salt a fost prezis anterior bufferul BTB (branch target buffer) ntoarce
adresa urmtoarei instruciuni. Dac nu a fost prezis corect sau e prima dat cnd apare se
folosete algoritmul de predicie din nou.
n fiecare ciclu de ceas, trei macro-instruciuni pot fi decodate. Dac aceste instruciuni
sunt complexe sau sunt mai mari de 7 octei decodarea este limitat. Procesorul Pentium PRO
posed trei decodoare de instruciune denumite D0, D1 i D2. Primul decodor este capabil s
decodeze o macro-instrciune care este format din cel mult patru micro-instruciuni ntr-un ciclu
de ceas. Celelalte dou decodoare sunt capabile s decodeze numai macro-instruciuni formate
din cte o singur micro-instruciune pe ciclu. Macro-instruciunile formate din mai mult de
patru micro-instruciuni necesit mai multe cicluri de ceas. Cnd D0 decodific o instruciune
complex, celelalte decodoare (D1 i D2) nu lucreaz.
Urmeaz apoi redenumirea registrelor accesibile programului, care sunt suportate de
unitatea de execuie. Acest lucru se face pentru a elimina dependenele false care apar datorit
folosirii aceluiai registru pentru efectuarea unor operaii distincte. Procesorul posed un numr
de 40 registre ascunse (nu pot fi accesate prin instruciuni), denumite r0-r39. Spre exemplu,
considerm c avem urmtoarea secven de instruciuni:
mov eax,17 ; aceast instruciune iniializeaz registrul eax cu o valoare
; registrul eax este mapat intern spre exemplu pe registrul r1
add mem1,eax ; instruciune care folosete valoarea curent a registrului eax
; este o dependen adevrat i registrul eax este mapat
; intern tot pe registrul r1
mov eax,3 ; iniializeaz registrul eax cu o nou valoare
; nu este o dependen adevrat,
; registrul eax in aceast instruciune este mapat cu un alt
; registru intern, spre exemplu r2
add mem2,eax ; analog instruciunii numrul 2, eax este mapat de aceast
; dat tot cu registrul r2
8 Arhitectura Calculatoarelor Lucrarea 1
_________________________________________________________________________
Dup aceast redenumire a registrelor, micro-instruciunilor li se aloc cte o unitate de
execuie. Aceast informaie mpreun cu poziia din program i starea de executare este
memorat n ROB. Dac instruciunile sunt independente, n sensul c datele uneia nu depind de
datele celorlalte sunt trimise ctre unitatea de execuie specific imediat ce aceasta este
diponibil. Instruciunile care depind de datele alteia sunt oprite i ateapt datele de la
instruciunea anterioar.
Port Uniti de execuie Observaii
0 Integer ALU Unit. - Execut instruciuni cu numere ntregi (Ex. INC EAX);
Floating-Point Unit - Execut toate instr. n virgul mobil cu excepia FDIV (Ex. FMUL ST0);
Floating-Point Unit - Execut toate instr. n virgul mobil (Ex. FDIV ST0, FADD ST0);
Address generator - Calculeaz adresele (Ex. LEA EAX,[EBX*4]).
1 Integer ALU Unit - Execut att instruciuni cu numere ntregi ct i instruciuni de salt (Ex.
DAA, JMP label).
2 Load Unit - Proceseaz adresele de memorie pentru instruciuni load (Ex. Mov
EAX,[mem])
3 Store Address Unit - Proceseaz adresele de memorie pentru instruciuni store (Ex. Mov
[mem],EAX)
4 Store Data Unit - Proceseaz datele pentru instruciuni store (Ex. Mov [mem],EAX)

Imediat ce datele sunt disponibile, micro-instruciunea este trimis ctre o unitate de


execuie a unuia dintre porturile conectate la ROB. n fiecare ciclu se pot executa n paralel pn
la 5 micro-instruciuni. Odat ce micro-instruciunea este executat, rezultatele sunt trimise la
ROB unde se face memorarea rezultatelor.
Procesorul Pentium PRO conine 8KB de memorie cache asociativ pentru instruciuni i
8KB de memorie cache pentru date. Memoria cache pentru date poate fi accesat simultan pentru
o instruciune load i o instruciune store att timp ct datele sunt n blocuri diferite.
Tabela de predicie (Branch Target Buffer) a procesorului Pentium PRO are 512 intrri.
n plus, Pentium PRO conine o tabel de ntoarcere (Return Stack Buffer) care anticipeaz
adresa de ntoarcere dintr-o procedur.
Procesorul Pentium PRO este bazat pe procesorul Pentium, deci nu are instruciunile
MMX de la Pentium MMX.

8. Procesorul Pentium II
Memoria cache a procesorului Pentium II este de 32 KB, din care 16 KB pentru
instruciuni i 16 KB pentru date. Memoria cache de date poate fi accesat simultan de cele dou
benzi de asamblare att timp ct datele se afl n zone diferite. n cazul unui cache miss (datele
nu se afl n mmoria cache), este nevoie de minim 10 perioade pentru aducerea datelor din
memoria principal.
Spre deosebire de Pentium Pro, Pentium II dispune i de tehnologia MMX, introdus cu
Pentium MMX.
Arhitectura Calculatoarelor Lucrarea 1 9
_________________________________________________________________________

Fig.7. Exemplu operaie MMX de adunare ntre 2 operanzi Fig.8. Arhitectura intern a
care conin fiecare 8 octei de date procesorului Pentium II
Port Uniti de execuie Observaii
0 Integer ALU Unit. -
Floating-Point Unit -
Floating-Point Unit -
Address generator -
Packed ALU - Operaii aritmetice i logice cu date MMX (Ex. PAND MM0,MM1),
Packed Multiply - Operaii de multiplicare cu date MMX (Ex. PMULHW MM0,MM1).
1 Integer ALU Unit - Identic cu Pentium Pro,
Packed ALU - Operaii aritmetice i logice cu date MMX (Ex. PAND MM0,MM1),
Packed Shift - Operaii de deplasare cu date MMX (Ex. PSRLQ, PACKSSWB),
2 Load Unit -
3 Store Address Unit -
4 Store Data Unit -

9. Probleme propuse
1) Se consider o secven de 6 macro-instruciuni formate dintr-un numr de 4,1,1,2,1,6
micro-instruciuni. Considernd c avem la dispoziie un procesor Pentium PRO realizai o
diagram de funcionare a fiecrui decodor (D0, D1 i D2) pe fiecare ciclu de tact.
2) Se consider c avem dou imagini cu rezoluia de 1024x768 pixeli, fiecare pixel este
pstrat ntr-un octet de memorie. Se dorete crearea unei imagini noi, formate prin
adunarea pixel cu pixel a celor dou imagini. Aceast operaie se execut pe dou
procesoare diferite: prima dat pe un procesor 80486 la care se tie c operaia de adunare
necesit 1 ciclu de tact; n cazul al doilea se folosete un procesor Pentium II cu tehnologie
MMX la care se cunoate c operaia de adunare pe date de 64 bii dureaz tot 1 ciclu de
tact. Cte cicluri de tact sunt necesare pentru fiecare procesor pentru a executa operaiile
necesare?

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