Documente Academic
Documente Profesional
Documente Cultură
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.
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
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
_________________________________________________________________________
256
Unitate de control
Generator Generator
de adrese de adrese Unitate virgul flotant
(U pipeline) (V pipeline) (FPU)
Control
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
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?