Documente Academic
Documente Profesional
Documente Cultură
3
Tema: Studierea arhitecturii procesorului central i a memoriei
interne a unui sistem de calcul.
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.. Memoria unui sistem de calcul este locul
unde procesorul gsete programele i datele atunci cnd i ndeplinete sarcinile. Memoria este
centrul activitii, locul unde este pstrat tot ceea ce este folosit la un moment dat.
Prin parcurgerea acestei edine de aplicaii, studentul se va familiariza cu arhitecturile a trei
procesoare produse de firma Intel, va dobndi cunotine despre organizarea memoriei principale n
sistemele IBM PC.
Breviar teoretic
1. 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
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:
0 - cele dou instruciuni trebuie s fie simple;
1 - ntre cele dou instruciuni trebuie s nu existe dependene (hazarduri) RAW sau WAR.
2
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.
3
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 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 microoperaii 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
1
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 microinstruciuni. 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.
Dup cum reiese i din diagrama de mai sus, CPU acceseaz memoria conform unei ierarhii
stricte. Indiferent dac provine de pe discul dur (hard-disk) sau de la intrare (tastatur), cea mai mare
parte din informaie ajunge mai nti n RAM. Apoi CPU depoziteaz poriuni de informaii de care
va avea nevoie frecvent ntr-o memorie CACHE, i pstreaz anumite instruciuni n registre.
Toate componentele din computer, cum ar fi CPU, hard-diskul i sistemul de operare, lucreaz
mpreun ca o echip, iar memoria este una dintre cele mai importante componente ale acestei
echipe. Din momentul n care deschidem calculatorul i pn l nchidem, CPU folosete tot timpul
memoria.
S considerm un scenariu simplu:
1. Se pornete calculatorul;
2. Calculatorul ncarc date din ROM i efectueaz power-on self-test (POST), pentru a fi
sigur de funcionarea normal a tuturor componentelor hardware. Ca o parte a acestui test,
controlerul de memorie verific toate adresele de memorie cu o operaie rapid de citire/scriere,
pentru a fi sigur c nu exist nici o eroare n cipurile de memorie;
3. Computerul ncarc Basic Input/Output System (BIOS) din ROM. BIOS-ul asigur
informaiile eseniale despre dispozitive de stocare, secvena de boot, securitate, componentele Plug
and Play;
4. Computerul ncarc sistemul de operare (OS) de pe hard-disk n RAM-ul sistemului. n
general, componentele importante ale OS sunt pstrate n RAM atta timp ct calculatorul este
pornit. Acest fapt permite CPU accesul imediat la OS, ceea ce mbuntete performana i
funcionalitatea ntregului sistem;
5. Cnd se deschide o aplicaie, ea se ncarc n RAM. Pentru a nu umple RAM-ul, multe
aplicaii ncarc doar prile eseniale, i ulterior pe celelalte;
6. Dup ce se ncarc o aplicaie, orice fiier deschis pentru a fi utilizat n aplicaia respectiv
se ncarc n RAM;
3. Cipuri de memorie
Memoriile dintr-un sistem de calcul se mpart n dou categorii:
1 - RAM Random Access Memory sunt accesibile att pentru citire ct i pentru scriere;
0 - ROM Read Only Memory memorii accesibile numai pentru citire.
2
Memoriile RAM pstreaz informaiile nscrise numai att timp ct sunt alimentate i
se confund adeseori cu memoria calculatorului. Aceast memorie se numete Random Access
deoarece orice celul de memorie se poate accesa direct dac se cunoate linia i coloana
elementului. Rezult c RAM-ul are o organizare matriceal. Opusul memoriei RAM este SAM
serial access memory n care accessul se face secvenial. SAM-ul este folosit pentru bufferele de
memorie unde datele sunt pstrate n ordinea n care sunt folosite.
Cele mai cunoscute module de memorii RAM sunt:
1. SRAM (static RAM), sunt construite intern folosind tranzistoare, de obicei patru pn la 6
pentru fiecare celul. Aceste memorii sunt foarte rapide dar au un cost ridicat, care determin
utilizarea acestora numai n cipuri de dimensiuni mici. Aceste cipuri sunt folosite de obicei n
construcia memoriei cache de nivel 1 (nivel intermediar ntre UCP i memoria principal).
2. DRAM (dynamic RAM) sunt realizate sub forma unui vector de celule, o celul fiind
alctuit dintr-o capacitate mic i dou tranzistoare. Capacitile pot fi ncrcate i descrcate,
permind memorarea valorilor de 0 i 1. Datorit tendinei capacitilor de a se descrca,
memoriile DRAM necesit o logic extern de generare a unui semnal periodic de remprosptare
(refresh). Acest dezavantaj este ns compensat de preul lor sczut. Memoria DRAM este accesat
prin intermediul a 2 adrese, una de linie, strobat de semnalul RAS (row access strobe), i una de
coloan, strobat de semnalul CAS (column access strobe). De obicei, adresele de linie i coloan se
decodific din adresa liniar furnizat de procesor.
3. FPM DRAM (fast page mode DRAM) ofer posibilitatea accesrii datelor n rafal (burst) :
dac se aceseaz date de pe aceeai linie, adresa de linie trebuie furnizat la nceput, strobat de
RAS; n continuare, se dau adresele de coloan strobate de pulsuri pe linia CAS. n acest fel, pentru
date contigue, timpul de acces scade. De obicei, un transfer dureaz 5-3-3-3 cicluri de tact, adic
primele date sunt disponibile n 5 cicluri, iar urmtoarele de pe aceeai linie n cte 3 cicluri. Aceste
memorii au o rat maxim de transfer cu memoria cache de nivel 2 (L2 cache) de 176 MB/s
(megaoctei / secund).
4. EDO DRAM (extended data out DRAM) este asemntor cu FPM DRAM, cu deosebirea c
urmtorul ciclu de citire/scriere poate ncepe n timp ce memoria nc pstreaz la ieire datele de la
ciclul anterior. Este cu 5% mai rapid dect memoria FPM DRAM ajungnd la o vitez maxim de
264 MB cu L2 cache.
5. SDRAM (synchronous DRAM) spre deosebire de celelalte tipuri de memorie discutate,
memoria SDRAM este sincron, adic att semnalele de intrare i ieire, ct i operaiile interne sunt
sincronizate cu un semnal de tact. Acest lucru permite conectarea la magistrala sincron a sistemului
i paralelizarea de tip pipeline a operaiilor interne. Viteza maxim de transfer cu L2 cache este de
aproximativ 528MB/s i echipeaz majoritatea staiilor de lucru.
6. DDR SDRAM (double data rate SDRAM) folosete pentru eantionarea semnalelor de
intrare i pentru operaiile interne att frontul cresctor, ct i cel descresctor al semnalului de tact.
n acest fel, rata de transfer aproape se dubleaz fa de SDRAM.
7. RDRAM (Rambus DRAM) - folosete o magistral de date foarte rapid (400MHz)
denumit Rambus channel. Transferul se face pe ambele fronturi ale semnalului de tact, ca la DDR
SDRAM, ajungndu-se la rate de transfer de 1600MB/s pe o magistral de 16 bii.
8. DDR2 SDRAM ofer avantajul operrii la frecven de tact dubl fa de DDR SDRAM,
datorit construciei interne (400, 533, 667 MHz). Astfel, se pot obine rate de transfer de ordinul
8533 MB/s la 533MHz.
Cipurile i conectorii folosii pentru memoria RAM au evoluat de-a lungul ultimilor ani.
Primele cipuri erau proprietate, adic diferii productori de calculatoare realizau plci de memorie
care funcionau numai cu acele sisteme specifice fabricantului. Apoi a aprut standardul SIMM
(Single In-line Memory Module). Acest standard utilizeaz un conector de 30 de pini i are
dimensiuni de 3,5 inches pe 0,75 inches (aproximativ 9 cm pe 2 cm). La cele mai multe calculatoare,
SIMM-urile se instaleaz n perechi de capacitate i vitez egal, deoarece limea magistralei este
mai mare dect un singur SIMM. De exemplu, trebuie instalate 2 SIMM-uri de 8 MB pentru a obine
16 MB de memorie RAM. Fiecare SIMM ar trimite 8 bii de date, n timp ce sistemul poate lucra cu
16 bii n acelai timp. Cipurile SIMM de mai trziu sunt puin mai mari (4,25 inches pe 1 inch, sau
11 cm pe 2,5 cm) i folosesc un conector de 72 de pini pentru a mri capacitatea de adresare,
asigurnd accesarea a 256 MB de RAM.
Pe msur ce procesoarele au evoluat, industia a adoptat un nou standard denumit DIMM
(Dual In-line Memory Module). Cu un conector de 168 de pini i o mrime de 5,4/1 inch (14/2,5
cm), DIMM variaz ca i capacitate ntre 8 MB i 128 MB per modul i poate fi instalat i singur, n
locul perechilor. Cele mai multe module de memorie pentru calculatoare opereaz la 3,3 voli n
timp ce sistemele Mac folosesc 5 voli. Un nou standard, RIMM (Rambus In-line Memory
Module), este comparabil ca mrime i configuraie cu DIMM, dar folosete o magistral special
pentru a mri considerabil viteza.
Numeroase tipuri de calculatoare notebook folosesc plci de memorie proprietare, dar unii
productori folosesc RAM-ul bazat pe configuraia Small Outline Dual In-line Memory Module
(SODIMM). Cardurile SODIMM sunt mici, de aprox. 2/1 inch (5/2,5 cm) i au 144 de pini.
Capacitatea variaz ntre 16 MB i 256 MB per modul. Un fapt interesant privind calculatoarele
Apple iMac este c acestea folosesc SODIMM n locul DIMM-urilor tradiionale.
Memoria ROM este construit din circuite integrate programabile. Datele nregistrate ntr-o
memorie ROM nu se pierd atunci cnd tensiunea de alimentare este oprit. Iniial datele erau
nscrise la fabricarea memoriei prin expunerea unui material fotosensibil printr-o masc ce conine
ablonul de bii dorit. Datorit acestui neajuns au fost dezvoltate mai multe tipuri care s permit
nscrierea acestora cu ajutorul unor dispozitive speciale:
1. PROM (Programmable ROM) este o memorie ROM ce se poate nscrie o singur dat, la
faa locului; ele sunt alctuite dintr-o matrice de sigurane care sunt arse prin aplicarea unei tensiuni
ridicate;
2. EPROM (Erasable PROM) sunt memorii PROM care utilizeaz unde ultraviolete pentru
tergere; aceste memorii pot fi terse i apoi rescrise (sunt reutilizabile);
3. EEPROM (Electrically Erasable PROM) sunt memorii EPROM care pot fi terse sau
nscrise folosind impulsuri de curent electric;
4. Memoriile flash sunt asemntoare memoriilor EPROM, doar c au un timp de acces mult
mai mic (aproximativ 100ns); durata lor de via este de aproximativ 10000 de cicluri de scriere.
n sistemele IBM PC memoriile ROM sunt folosite pentru programele BIOS care trebuie s
asigure pornirea sistemului de calcul precum i interfaarea cu celelalte componente ale sistemului.
BIOS-ul are mai multe sarcini, dar cea mai important este aceea de a ncrca sistemul de operare.
Cnd calculatorul este pus sub tensiune i microprocesorul ncearc s execute prima sa instrucie,
trebuie s ia aceast instrucie de undeva. Nu o poate lua din sistemul de operare deoarece acesta
este localizat pe hard-disk, i microprocesorul nu o poate lua de acolo fr nite instruciuni
prealabile, care s-i spun cum s fac acest lucru. BIOS asigur aceste instruciuni. Alte funcii ale
BIOS-ului sunt:
1. Power-on self-test pentru celelalte componente hardware ale sistemului;
2. Activeaz alte cipuri BIOS de pe diferitele plci instalate pe calculator.
De exemplu, controllerele SCSI i plcile grafice au propriul lor BIOS.
3. Asigur un set de rutine low-level, pe care sistemul de operare le folosete pentru a se
interfaa cu diferite dispozitive hardware. Aceste rutine determin denumirea de BIOS. Ele au grij
de componente precum tastatura, monitorul, porturile paralele i seriale, mai ales atunci cnd
calculatorul buteaz.
4. Opereaz setri pentru hard-disk, ceas, etc.
BIOS este un software special care face legtura ntre componentele hardware majore i
sistemul de operare. De regul este depozitat ntr-un cip flash pe placa de baz, dar uneori cipul este
un alt tip de ROM.
4. Organizarea memoriei
Din punct de vedere fizic, memoria principal este organizat ca un set de locaii de memorare
numerotate consecutiv ncepnd cu 0. Numerele asociate locaiilor reprezint adrese fizice, iar
mulimea adreselor fizice constituie spaiul de adrese fizice. Spaiul de adrese fizice poate fi diferit
de spaiul de adrese al unui procesor.
Din punct de vedere logic, memoria principal reprezint o parte a memoriei virtuale asociat unui
program. Conceptul memoriei virtuale const n separarea spaiului de adrese fizice de spaiul de
adrese logice. Astfel un program utilizeaz adrese logice n locul adreselor fizice. Procesul de
convertire al adreselor logice (virtual) n adrese fizice se numete mapare sau translatare.
Separarea adreselor de locaiile de memorie permite mrirea spaiului de adresare gestionat de un
program peste dimensiunea spaiului fizic real, precum si distribuirea unui program n spaiul de
memorie sub forma unor blocuri, fapt care permite o optimizare a utilizrii resurselor de calcul.
Sistemele cu memorie virtual se mpart n dou categorii:
1 - cu paginare utilizeaz blocuri de dimensiune fix, numite pagini;
2 - cu segmentare utilizeaz blocuri de dimensiune variabil, numite segmente.
Adresarea paginat este caracterizat de o adres de dimensiune fix compus din dou
cmpuri: unul pentru numrul paginii i unul pentru deplasare n cadrul paginii. n cazul adresrii
segmentate, sunt necesare dou cuvinte de adres: unul pentru un numr de segment i unul pentru
deplasare in interiorul segmentului.
Translatarea adreselor logice n adrese fizice se face cu un mecanism de mapare a memoriei,
care folosete un tabel care asigur corespondena ntre spaiul virtual si cel fizic n termeni
individuali pagin/bloc.
Un tabel de pagini este o zon de memorie care conine o list de pagini i blocurile asociate.
Accesul la acest tabel este indicat de un registru special (PTOR Page Table Origin Register) care
conine adresa sa de nceput. Cnd se lanseaz n execuie un program , se ncarc PTOR cu adresa
de nceput a tabelului de pagin corespunztor. Aceast funcie este realizat de ctre sistemul de
operare n starea supervizor. Sistemul de operare determin ce blocuri de memorie sunt disponibile
i le organizeaz n pagini, dup care ncarc paginile respective din memoria extern.
Componentele sistemului de operare care realizeaz aceste funcii se numesc
disc (auxiliary storage manager).
5. Gestionarea memoriei
Spaiul de memorie, ntr-un calculator compatibil IBM PC care ruleaz sistemul de operare
DOS este mprit astfel:
1 - Zona de memorie convenional (de baz);
2 - Zona de memorie superioar (UMA);
3 - Zona de memorie nalt (HMA);
4 - Memoria expandat (EMS);
5 - Memoria extins (XMS).
Zona de memorie convenional ocup primii 640Ko de memorie (ntre adresele 00000h
9FFFFh). Spaiul de memorie este mprit n blocuri de 64Ko. Memoria de baz este rezervat
pentru componentele sistemului de operare, driverele de echipamente externe i pentru programele
utilizator. Spaiul de memorie convenional este utilizat dup cum urmeaz:
1 - tabela vectorilor de ntrerupere 0000:0000h0030:00FFh aici sunt plasate rutinele de tratare
a ntreruperilor; pot fi tratate maxim 256 de ntreruperi;
2 - zona de date BIOS 0040:0000h0050:00FFh conine informaii despre sistem, cum ar fi de
exemplu tipul de hardware prezent ;
3 - nucleul sistemului de operare aici se gsesc ncrcate fiierele IO.SYS i MSDOS.SYS,
bufferele pentru operaiile cu discul fix, programe rezidente n memorie i drivere;
4 - procesorul de comenzi DOS aici se ncarc fiierul command.com;
5 - zona de memorie liber (zona de memorie utilizator) zona n care sunt ncrcate programele
utilizator; ea ocup spaiul rmas ntre procesorul de comenzi DOS i adresa 9000:FFFFh.
n tabelul urmtor sunt indicate cteva din informaiile aflate n zona de date BIOS:
Adresa
0040:0000h
0040:0002h
0040:0004h
0040:0006h
0040:0008h
0040:000Ah
0040:000Ch
0040:000Eh
0040:0010h
0040:0013h
Dimensiune (n octei)
2
2
2
2
2
2
2
2
2
2
Descriere
Adresa de baz a primului port serial RS-232 COM1
Port serial COM2
Port serial COM3
Port serial COM4
Adresa de baz a primului port paralel LPT1
Port paralel LPT2
Port paralel LPT3
Port paralel LPT4
Lista de echipamente active (vezi tabelul 2)
Dimensiunea memorie de baz n Ko
Semnificaie
Indic prezena discului fix
Indic prezena coprocesorului matematic
Dimensiunea memoriei ROM: 00=rezervat, 01=16Ko, 10=32Ko, 11=64Ko sau mai mult
Modul video: 00=rezervat, 01=40 coloane color, 10=80 coloane color, 11=TTL monocrom
Numrul de uniti de dischet instalate: 00=1, 01=2, 10=3, 11=4
Indic prezena DMA
Numrul de porturi seriale RS-232: 000=0,,111=7
Indic prezena adaptorului pentru jocuri (joystick)
Indic prezena imprimantei seriale
Numrul de porturi paralele: 00=0,,11=3
Mersul lucrarii