Sunteți pe pagina 1din 57

CAP. 3.

STRUCTURA UNUI CALCULATOR


A. Unitatea centrală de prelucrare (CPU) / procesorul

Schema bloc a unui calculator


Etapele în execuţia unei instrucţiuni:
1. încărcarea instrucţiunii din memorie în registrul de instrucţiuni (fetch);
2. actualizarea PC pentru a indica următoarea instrucţiune care va fi executată;
3. decodificarea instrucţiunii din registrul de instrucţiuni;
4. localizarea în memorie a eventualelor date utilizate de instrucţiune;
5. încărcarea datelor (dacă este necesar) în registrele interne ale UC;
6. execuţia propriu-zisă a instrucţiunii;
7. stocarea rezultatelor la destinaţia corespunzătoare;
8. întoarcerea la etapa nr. 1 pentru a executa următoarea instrucţiune.
1
CISC vs. RISC

Evaluarea performanţei UC
 mips (mega instructions per second);
 flops (floating point operations per second): Mflops/Gflops;

 P(t) = Ni  Np  Tc (sec),

unde:
Ni = numărul de instrucţiuni executate în cazul unei aplicaţii date;
Np = numărul mediu de perioade de ceas necesare pentru execuţia unei instrucţiuni;
Tc = durata unei perioade de ceas.
 indicii de performanţă: SPECint, SPECfp.

Organizarea UC

Tipuri de instrucţiuni:
 instrucţiuni registre-memorie;
 instrucţiuni registre-registre;
 instrucţiuni memorie-memorie.

2
Schema unităţii centrale

Principii de proiectare pentru calculatoare moderne (RISC)


1. Toate instrucţiunile sunt executate direct de către hardware;
2. Maximizarea ratei la care sunt generate instrucţiunile;
3. Instrucţiunile trebuie să fie decodate cât mai simplu;
4. Numai instrucţiunile de tip load&store trebuie să facă referinţă la memorie;
5. Trebuie asigurat un număr cât mai mare de registre (cel puţin 32).
3
B. Memoria
 Timpul de acces la o unitate de memorie (tA): timpul necesar localizării unei celule de
memorie pentru transferul de date la/de la locaţia de memorie respectivă.
 Rata de acces (rA): inversa timpului de acces:
1
rA = t [cuv/s].
A

 Timpul de ciclu la o unitate de memorie (tC): timpul minim între două accesări succesive.
 Timpul de revenire (tR): timpul minim necesar pentru inactivarea primei comenzi până la
activarea celei de-a doua:
tR = tC – tA
 Rata de transfer (rT): inversa timpului de ciclu şi reprezintă cantitatea maximă de informaţie
care poate fi transferată la/de la memorie într-o secundă:
1
rT = t [cuv/s].
C

 Costul total al unităţii de memorie (CT) include, pe lângă costul celulelor de memorie
propriu-zise, costul circuitelor de acces la aceste celule.
 Costul unitar (CU) reprezintă costul de memorare a unui cuvânt de informaţie şi se
determină prin raportarea costului total (CT) la capacitatea de memorare (CM):
CT
CU = CM [cost/cuv].
4
Ierarhizarea memoriei (memoria suplimentară: expandată, extinsă şi de arhivare/terţiară)

Memoria volatilă / RAM (Random Access Memory): statică (SRAM) & dinamică (DRAM)

Simbolul memoriei SRAM


5
Memoria SRAM: sincronă / asincronă

Schema bloc a memoriei SRAM


6
Simbolul memoriei DRAM

Moduri de realizare a ciclurilor de împrospătare (refresh):


 ROR (RAS Only Refresh);
 CBR (CAS Before RAS);
 Auto-împrospătare (Auto Refresh).

7
Memoria DRAM: sincronă / asincronă

Schema bloc a memoriei DRAM (LAR/LAC = logica de adresare pe rânduri/coloane)


8
Organizarea locaţiilor de memorie

Modurile (a) Big endian (PowerPC, Motorola 68××, HP); (b) Little endian (IBM, DEC)

Înregistrare Big endian (a); înregistrare Little endian (b); transfer Be-Le (c); transfer & swap (d)
9
Diagrame de citire/scriere din/în memoria SRAM

10
Ciclu de citire din memoria DRAM (refresh prin CAS Before RAS, CBR)

11
Ciclu de scriere în memoria DRAM

12
Ciclu de reîmprospătare a memoriei DRAM (ROR)

Module şi bancuri de memorie, dispunerea bancurilor pe placa de bază


13
Module de memorie: Arhitecturi de memorie:
 Single-sided  Single-channel
 Double-sided  Dual-channel

Două moduri de organizare ale unei memorii de 4 Mb: (a) 512K × 8; (b) 4096K × 1
14
Două moduri de organizare a unei memorii de 512 Mb: (a) 32M × 16; (b) 128M × 4
Temă: după modelul anterior, determinaţi modul de adresare a celor două cipuri de memorie.
15
Formate fizice de memorie

Modul de memorie DIP (Dual In-line Package) / Cipul c Atmel ATmega 168 (28 pini).

Modul de memorie SOJ Modul de memorie TSOP


(Small Outline J-lead) (Thin Small Outine Package).

Modul de memorie PGA (Pin Grid Array)


16
Modul de memorie BGA (Ball Grid Array) / BGA OMAP4430 system-on-a-chip

Modul de memorie LGA (Land Grid Array) / LGA Intel Core i7


17
Modul de memorie SIMM (Single In-line Memory Module) cu 30 de pini

Modul de memorie SIMM cu 72 de pini (single-sided / double-sided)

Modul de memorie SODIMM (Small Outline Dual In-line Memory Module)


18
Modul de memorie SIPP (Single In-line Pin Package)

Modul de memorie DIMM (Double In-line Memory Module):


168 pini SDRAM / 184 pini DDR SDRAM; 3,3V / 5V; buffered / unbuffered; DDR (sus) DDR3 (jos)
19
Modul de memorie XDIMM, pentru memorii XDR DRAM (eXtreme Data Rate DRAM)

Modul de memorie RIMM (Rambus In-line Memory Module)

Formate logice de memorie


 SCRAM (Static Column RAM) – accesul pe coloane
 FPM (Fast Page Mode) – operare în mod pagină
 EDO (Extended Data Out) – variantă rapidă de FPM, în combinaţie cu o memorie cache
 BEDO (Burst Extended Data Out) DRAM – variantă EDO compatibilă cu modul burst/pipeline
20
 SDRAM (Sychronous DRAM) – operează sincron cu p, superscalar/stagii multiple & independente

Structura internă a unei memorii SDRAM de 8 MB, organizate pe 4 blocuri, în mod burst
21
 EDRAM (Enhanced DRAM) – rată mare de umplere a memoriei cache, funcţie de preîncărcare,
timp de aşteptare 0 la scriere, multitasking
 CDRAM (Cached DRAM) – cache pe fiecare cip, independent de DRAM şi adresat separat
 MDRAM (Multibanc DRAM) – date stocate într-un număr de bancuri de memorie separate
 RDRAM (Rambus DRAM) – non-standard, cu un cache RAM static, magistrală de mare viteză,
transferă doi octeţi pe ciclu (1/front), funcţie de preîncărcare, citire rapidă în pachete mici, tip reţea

Cip de memorie RDRAM de 32 bancuri × 1 MB


22
Un banc = matrice DRAM cu 512 linii × 128 dualocţi (1 dualoct = 16 octeţi).
Există doar 16 bancuri deschise simultan, care realizează simultan două operaţii: una de citire şi una de
scriere din/în memorie (fiecare banc împarte cele două amplificatoare adiacente cu bancurile vecine lui).
Data A, Data B = două jumătăţi de dualoct (8 octeţi), care folosesc căi separate în bancul de memorie

O operaţie de citire şi o operaţie de scriere din/în RDRAM


Temă: calculaţi capacitatea de memorie a unui modul RIMM cu 4 cipuri şi 32 de bancuri/cip.
23
Diferenţele dintre sistemele de memorie SDRAM şi RDRAM
24
Elementele de bază ale unui sistem de memorie RDRAM, cu până la cinci domenii pentru
semnalul de ceas, pentru a putea păstra sincronizarea între transferurile de pe magistrală

25
 DDR SDRAM (Double Data Rate Synchronous DRAM) – SDRAM evoluat, cu chipset diferit,
care transferă date pe ambele fronturi (crescător şi descrescător) al semnalului de ceas. Criteriul
de evaluare a performanţei nu mai este frecvenţa de ceas, cu lărgimea de bandă (exprimată în Mb/s).

Sistem de memorie DDR SDRAM cu 3 DIMM-uri a câte 4 bancuri pe 64 de biţi (4 pachete × 16 biţi)
Temă: calculaţi lărgimea de bandă a sistemului de memorie la frecvenţa de 200 / 400 / 600 MHz.
26
 DDR2 SDRAM (Double Data Rate Two Synchronous DRAM) – operează cu magistrala de date
externă de două ori mai repede decât DDR, prin îmbunătăţirea semnalizării magistralei şi prin lucrul
cu celulele de memorie la jumătate din frecvenţa de ceas (un sfert din rata de transfer a datelor).
Metode de creştere a frecvenţei magistralei DDR2:
o îmbunătăţiri la interfaţa electrică (consum mai mic de energie)  200 MHz  533 MHz;
o folosirea tehnologiei on-die termination;
o folosirea unor buffer-e de preîncărcare (4 biţi, faţă de 2 biţi la DDR).
Consecinţe/dezavantaje:
o creşterea întârzierilor la 4  6 cicluri;
o necesitatea încapsulării BGA (module DIMM cu 240 de pini la PC / 200 de pini la notebook).

Diagrama de timp a operaţiei de citire în rafale (burst) la DDR2 SDRAM


tCCD = timpul de ciclu pe coloană/date; RL = lungimea intervalului de latenţă la citire; DO = Data Out
27
 DDR3 SDRAM (Double Data Rate Three Synchronous DRAM) – memorie care operează cu
magistrala I/O la o frecvenţă de 4 ori mai mare decât celulele de memorie.
Avantaje:
o reducerea consumului de energie;
o folosirea tranzistoarelor dual-gate, care reduc scurgerile de curent;
o creşterea lărgimii de bandă, prin folosirea unor buffer-e de preîncărcare cu adâncimea de 8
biţi (faţă de 4 biţi la DDR2)  200 MHz  1066 MHz;
Noutăţi aduse de DDR3:
o folosirea topologiei Fly-By (în locul celei stea), cu o singură legătură directă către toate
componentele DRAM (adresele şi semnalele de control sunt transmise pe aceeaşi cale) 
răspuns mult mai rapid din partea sistemului;
o apariţia unui pin de reset pentru fiecare modul de memorie în parte;
o prezenţa unui senzor de temperatură, care scurtează intervalele de refresh şi reduce
consumul de energie;
o introducerea sistemului XMP (eXtended Memory Profile), care permite realizarea unui
overclocking foarte simplu.
Exemplu: memoria DDR3 la microprocesorul Intel Core i7 (8 bancuri pe cip).
Magistrala de memorie Core i7 operează în mod pipeline (4 tranzacţii simultane) în 3 paşi:
o faza de activare a memoriei – deschide o linie a memoriei DRAM pentru acces;
o faza de citire/scriere a memoriei – accese multiple în linia DRAM deschisă, fie la cuvinte
individuale, fie la cuvinte multiple secvenţiale în modul burst (rafală);
o faza de preîncărcare – închide linia DRAM curentă şi pregăteşte următoarea activare.
28
Diagrama de timp a cererilor de memorie în mod pipeline la interfaţa DDR3 pentru Core i7
Interfaţa memoriei DDR3 la Core i7 are patru căi primare de semnal:
o CK = ceasul magistralei – coordonează întreaga activitate a memoriei sincrone;
o CMD = comanda magistralei – indică activitatea solicitată de memoria unui banc DRAM:
READ cu 2 TCK după ACT, DATA cu 1 TCK după READ, PRCHRG cu min. 2 TCK după DATA
o ADDR = liniile de adresă;
o DATA = liniile de date.
29
 DDR4 SDRAM – f = 2133...4266 MHz, V = 1,05...1,2 V  reducerea consumului de energie.

 DDR5 SDRAM va dubla performanțele în viteză ale DDR4 SDRAM, fiind anunțat pentru 2019.
30
 XDR DRAM (eXtreme Data Rate DRAM) – succesor al RDRAM, pentru sisteme mici, cu
lărgime de bandă ridicată, şi pentru sisteme GPU (Graphical Processing Unit). Avantaje:
o scad costurile de producţie (mai puţine căi de date la aceeaşi lărgime de bandă);
o implementează o lărgime de bandă programabilă (×16) prin controlerul XMS;
o introduce tehnologia FlexPhase, care îmbunătăţeşte în viteză controlerul I/O (XIO);
o introduce tehnologia Dynamic Point-to-Point, care permite extinderea capacităţii;
o asigură patru ieşiri programabile ale generatorului de tact (XCG);
o introduce tehnologia DRSL (Differential Rambus Signaling Level), standard de joasă
tensiune, joasă putere, diferenţial, scalabil, multiGHz, bidirecţional, sincron.
 eDRAM (embedded DRAM) – integrată în acelaşi cip cu p  capacitate şi viteză sporite
 1T-SRAM (1 Transistor Static RAM) – capacitate ridicată, prin reducerea de 6 ori a ariei de
integrare faţă de SRAM standard, cu consum redus, pentru aplicaţii system-on-a-chip

Celula 1T-SRAM şi celula SRAM cu 6 tranzistoare


31
 QDR SRAM (Quad Data Rate Static RAM) – SRAM dual-ported, cu un pin de intrare şi un
pin de ieşire a datelor (similar DDR), cu operaţii de citire şi de scriere simultane (întrețesute),
nu dublează viteza față DDR, dar este cu 100% mai eficient la scriere și citire (prin întrețesere).
Avantaje:
o transferuri de până la 4 cuvinte/ciclu de ceas (4 linii de ceas: K, K#, C, C#), cu latenţă mică;
o ideală pentru reţelistică (router, switch);
o foloseşte tehnologia HSTL (High Speed Transceiver Logic): porturi I/O de viteză mare;
o consum redus de energie, integrare în cipuri FPGA (Field-Programmable Gate Arrays);
o intrarea şi ieşirea se pot defaza, prin folosirea a două generatoare de ceas (K şi K#).

Arhitectura QDR SRAM


32
Operaţia de citire la QDR: R# = pin de citire, QB = quad burst (QB2/4 – 1/2 cicluri)

Operaţia de scriere la QDR: W# = pin de scriere, QB = quad burst (QB2/4 – 1/2 cicluri)
33
 SGRAM (Synchronous Graphics RAM) – similară SDRAM, cu funcţia de a citi/scrie date simultan,
cu funcţii (pini şi registre) speciale pentru adresele grafice ale aplicaţiilor. Derivate: GDDR4/5/6.

Diagrama de timp ciclică pentru memoria SGRAM (burst length = 1, 2, 4, 8 B / 1 pagină)


(semnalele de intrare sunt înregistrate pe frontul crescător al semnalului de ceas XCLK).
 VRAM (Video RAM) – memorie de tip dual-ported, pentru citirea şi scrierea simultană în aplicaţii
video/grafice, cu registre SAM (Serial Access Memory), legate la un port serial DRAM foarte rapid
Temă: calculaţi debitul video la rezoluţia 1920×1080, 24 biţi/pixel, rata de refresh 80 Hz şi rata de cadre 25 fps.
 WRAM (Windows RAM) – memorie VRAM ultrarapidă, dual-ported, cu adresare pe blocuri mari / Samsung
34
Verificarea prin controlul parităţii
 Cip de paritate
 Paritate: pară / impară
 Exemplu. Cipurile paritare pe 8 biţi folosesc un bit de paritate (module pe 9 biţi), iar cele pe 32
de biţi folosesc 4 biţi de paritate (module pe 36 biţi, 8  4 = 32 biţi + 4  1 = 4 biţi de paritate).
 Procedeul EDC (Error Detection Code)
 Procedeul ECC (Error Correction Code)
 Exemplu. Cuvinte de cod de 72 de biţi (64 biţi de date + 8 biţi de control)
 Coduri Hamming EDC/ECC pentru memorii semiconductoare: Hamming grup / Hamming
grup extinse (cu paritate), derivate ale codului Hamming cu matrice de control H având un
număr  egal de biţi de 1 pe linii, pentru o încărcare cât mai echilibrată a sumatoarelor din
circuitele de codare şi decodare (matrice Hsiao)

Metode de acces la memorie


 Paginarea – procedeu de gestiune a memoriei virtuale
 Întreţeserea – poate introduce stări de aşteptare (wait states)

35
Memoria cache
Caracteristici:
 dimensiune mai mică decât cea a memoriei RAM;
 de tip static (SRAM), pentru a evita operaţia de refresh;
 rapidă, cu timp de acces mic: tA  100/fP;
 apropiată de procesor, plasată între CPU şi memoria principală (RAM);
 organizată pe principiul localizării: spaţiale / pe vecinătăţi (cache nears) şi temporale;
 mapată pe blocuri de dimensiune fixă, adresate pe linii (cache lines);
 divizată în cache primar/intern (L1, L3) şi cache secundar/extern (L2, L3);
 performanţa exprimată prin rata de succes (hit rate) şi rata de eşec (miss rate).

Plasarea memoriei cache între CPU şi memoria principală (RAM)


36
Principii de proiectare a memoriei cache:
 dimensiunea: odată cu capacitatea, creşte performanţa, dar scade viteza şi creşte costul;
 dimensiunea liniilor: un cache de 16 KB poate avea 1024 linii × 16 B, 2048 linii × 8 B etc.;
 modul de organizare: mecanismul de urmărire a cuvintelor aflate în fiecare moment în cache;
 instrucţiunile şi datele se află în acelaşi cache (unificat) sau nu (divizat: arhitectura Harvard).

1. microprocesor (cu unitate aritmetică şi logică);


2. cache intern L1 (un bloc de 8 KB pentru instrucţiuni);
3. cache intern L1 (al doilea bloc de 8 KB pentru date);
4. cache extern L2;
5. cip de marcare a zonelor de memorie cache (TAG RAM);
6. memorie principală (RAM).
Exemplu: schema memoriei cache într-un sistem Pentium (arhitectură Harvard)
37
Principiul memoriei cache: dublă interfaţă bidirecţională între CPU şi memoria RAM
38
Maparea memoriei cache: directă, asociativă, asociativă pe seturi, pseudo-asociativă

Diagrama operaţiei de citire a memoriei cache


Temă: refaceţi diagrama UML de mai sus în cazul operaţiei de scriere în memoria cache.
39
Memoria cache cu mapare directă
C = A mod L,
C = nr. liniei din memoria cache; A = adresa din memoria principală; L = nr. de linii din memoria cache
Ex.: L = 128 şi C = A mod128. Bloc + marcaj = [8 octeţi (cuvânt) × 8] (bloc) + 6 (marcaj) = 70 biţi.

Memorie cache cu mapare directă: marcaj/etichetă = tag, linie/index = slot, cuvânt = offset
40
Memoria cache cu mapare asociativă

Memorie cache cu mapare asociativă: marcaj/etichetă = tag, cuvânt = offset


Bloc + marcaj = [8 octeţi (cuvânt) × 8 biţi] (bloc) + 13 biţi (marcaj) = 64 biţi + 13 biţi = 77 biţi
41
Memoria cache cu mapare asociativă pe seturi
L = I  J, K = A mod I, A = adr. din mem. princ., I = nr. seturi, J = nr. linii/set (căi), K = nr. setului

Memorie cache cu mapare asociativă pe seturi (I = 64, J = 2  2-way associative)


Bloc + marcaj = [8 octeţi (cuvânt) × 8 biţi] (bloc) + 7 biţi (marcaj) = 64 biţi + 7 biţi = 71 biţi
Observații. Dacă I = L şi J = 1, maparea asociativă pe seturi  maparea directă
Dacă I = 1 şi J = L, maparea asociativă pe seturi  maparea asociativă
42
Temă. Refaceţi exemplul de mapare asociativă din fig. de mai sus în cazul J = 8 (8-way associative).
Cea mai utilizată organizare asociativă pe seturi: J = 2 (exemplu: cache L1 la AMD Athlon).
Memoria cache cu mapare pseudo-asociativă
Testează fiecare cale posibilă o singură dată, de cele mai multe ori găsind un bloc din prima
testare (cache hit).
Temă. Refaceţi mapările din cele 3 figuri anterioare, pentru RAM = 128 KB, cache = 4 KB, bloc =
16 B, J = 4. Determinaţi în fiecare caz formatul adresei din RAM şi lungimea câmpului bloc+marcaj.

Analize şi comparaţii
Verificarea mai multor locaţii consumă mai multă putere de calul, spaţiu de memorie şi timp.
Regula ,,degetului mare” (thumb) dublează asociativitatea de la maparea directă la cea asociativă
pe două căi şi de la cea asociativă pe două căi la cea pe patru căi etc.  creşte şansa de cache hit.
Metode de alegere între cele două locaţii posibile din memoria cache:
a) Tehnica LSB index: câmpul linie (index) al locaţiei de memorie devine index pentru cache;
b) Tehnica de cheie (hint): o parte din etichetă poate fi folosită pentru a alege una din adresele
cerute, aflate posibil în harta cache (la cache-ul asociativ);
c) Tehnica de cache „oblic” (skewed cache): indexul căii 0 este direct, dar indexul căii 1 este
format cu o funcţie hash, care reduce numărul de conflicte;
d) Tehnica LRU (Least Recently Used): urmăreşte principiul vecinătăţii (cache nears)
într-un cache „non-oblic” (non-skewed), împărţindu-l pe seturi.
Concluzie: asociativitatea completă (full) are un avantaj major faţă de asociativitatea pe seturi.
43
Eficienţa şi localizarea datelor în memoria cache
Principiul localizării (locality principle)
 localizare spaţială: dacă este nevoie de unele date, în curând va fi nevoie probabil de date
aflate în apropierea lor (la adrese vecine) în memorie (principiul vecinătăţii – cache nears);
 localizare temporală: când s-au găsit unele date, adesea acestea vor fi folosite de mai multe ori.
Rata de succes = H (hit rate) şi rata de eşec = M (miss rate):
H=1–M
Timpul mediu de acces la memoria cache (formula probabilităţii totale):
T = TH  H + TM  M

Performanţa memoriei cache, exprimată prin rata de succes în funcţie de raportul cache/RAM
44
Reînnoirea conţinutului memoriilor cache

Algoritmi de înlocuire a blocurilor cache (stabilesc blocurile din cache care sunt înlocuite primele):
 RW (Random Write) – rescriere aleatorie;
 FIFO (First In – First Out): primul intrat – primul ieşit;
 LRU (Least Recently Used) – blocurile folosite cel mai puţin recent (timer în TAG RAM);
 LFU (Least Frequently Used) – blocurile folosite cel mai puţin frecvent (counter în TAG RAM);
 politica circulară (round robin);
 politica setului de lucru (working set);
 politica optimă (optimal / Belady);
 politica ceasului (clock);
Algoritmul cel mai folosit: LRU.

Conectarea memoriei cache la microprocesor


 Conectarea serială (look through);
 Conectarea paralelă (look aside).

45
Diagrama conectării seriale (look through) Diagrama conectării paralele (look aside)
46
Depunerea în memoria principală a rezultatelor din memoria cache
Fiecărui bloc din memoria cache îi sunt asociaţii doi biţi de comandă:
 V – bit de validare
o V = 1: condiţie necesară pentru cache hit;
o V = 0: la menţinerea coerenţei memoriilor cache (multiprocesor) şi la resetare (uniprocesor).
 D – bit dirty data
o D = 0: la încărcarea iniţială a unui bloc în memoria cache;
o D = 1: la prima scriere a blocului încărcat (minimizează evacuările de blocuri în RAM).
Metode de depunere în memorie a rezultatelor:
 Write Through – traseul invers citirii datelor;
 Write Back – scriere în cache (dacă adresa de memorie există în cache) sau în RAM (dacă nu există);
 Posted Write – rezervă un cache buffer pentru memorarea blocului până când se eliberează magistrala.

Schema metodei Write Through Schema metodei Write Back


47
Metode de menţinere a coerenţei memoriilor cache (în sisteme multiprocesor):
 Write Invalidate – toate copiile din celelalte memorii cache sunt invalidate înainte de
modificarea blocului din cache-ul propriu;
 Write Broadcast – CPU pune data de scris pe magistrala comună, spre a fi actualizate toate
copiile din celelalte cache-uri.

Cache hit & cache miss

Tipuri de acces în memoria cache


tip acces situaţie în cache acţiune în cache
citire miss evacuarea blocului şi încărcarea unui bloc nou
citire hit compararea marcajelor/etichetelor (tag)
evacuarea blocului, încărcarea unui bloc nou
scriere miss
şi scrierea datei în bloc
scriere hit scrierea datei în blocul din cache (Write Back)

Efectele situaţiilor de cache miss:


 la citirea instrucţiunilor – cauzează întârzieri pe firele de execuţie (threads);
 la citirea datelor – cauzează întârzieri mai mici decât la citirea instrucţiunilor;
 la scrierea datelor – cauzează întârzieri mici, rezolvate printr-o coadă de aşteptare.
48
Situaţiile de cache miss se împart în trei categorii (cf. Mark D. Hill, Univ. Wisconsin-Madison):
 ratări obligatorii (compulsory misses) – pierderi cauzate de primele referiri la date;
 ratări de capacitate (capacity misses) – pierderi care privesc asociativitatea sau mărimea
blocurilor, cauzate doar de blocurile finite din cache (cache-ul L1 este mereu aproape plin);
 ratările de conflict (conflict misses) – acele pierderi care ar putea fi evitate dacă cache-ul ar
elimina o intrare cu un ciclu mai târziu (acestea pot fi puse într-o hartă de ratări: miss map).

Rata de pierderi (miss rate) în funcţie de capacitatea memoriei cache (scări logaritmice)
49
Tipuri de celule cache
 asincrone: citire în două etape – se depune adresa, apoi se transferă datele (cipuri DIP);
 sincrone: acces în mod burst – o adresă  transfer pentru 4 cuvinte simultan (lipire pe placă);
 pipeline burst cache: registre speciale la ieşire, în care datele citite sunt stocate temporar,
ceea ce face posibilă o nouă adresare simultan cu preluarea datelor din registrele de stocare (latch).

Memorii cache specializate


 cache victimă (victim cache): reţine blocurile şterse din L1 datorită unui conflict/ratări;
 cache de urmărire (trace cache): stochează urmele (traces) instrucţiunilor aduse din memorie
şi decodate  creşte eficienţa instruction fetch şi lărgimea de bandă, reduce consumul de
putere, folosind urmele dinamice (dynamic traces) ale blocurilor de bază (grup de instrucţiuni
neramificate terminate cu ramificaţii), program counter-ul curent şi blocul branch prediction.
 cache multinivel (multilevel cache): L1, L2, L3; unele memorii cache au > 3 niveluri/cip.
 scratch pad: memorie SRAM rapidă, de tip on-chip, pentru aplicaţii de embedded systems,
bazate pe nucleele procesoarelor (ex.: seria IBM BlueGene).
 cache strict inclusiv (integrat): toate datele din L1 trebuie să se regăsească în copie în L2;
 cache exclusiv (divizat): datele se găsesc în cel mult unul dintre L1 sau L2, nu în ambele.
Concluzie: în sisteme file server sau în activităţi multitasking este necesară o memorie cache mare.
50
Studiu de caz: structura nucleului K8 al procesorului AMD Athlon 64 (arhitectură Harvard)
51
Memoria nonvolatilă / ROM & comp.
Variante:
 ROM (Read-Only Memory) – nu poate fi modificată sau ştearsă (produsă în fabrică);
 PROM (Programmable ROM) – poate fi programată o singură dată, prin ardere (fuzibili);
 EPROM (Erasable PROM) – poate fi programată şi ştearsă prin radiaţii UV (azi: în ver. ieftine);
 EEPROM (Electrically EPROM) – poate fi programată prin impulsuri în loc de radiaţii
ultraviolete (ca la EPROM) şi reprogramată pe loc (fără a mai fi scoasă din soclu);
 Memoria flash – variantă de EEPROM, care poate fi ştearsă pe blocuri şi rescrisă pe loc.
Memoria flash vs. discurile mecanice: foarte rapidă şi cu consum mic de putere, dar mai scumpă.

Comparaţie între diferitele tipuri de memorii RAM şi ROM


52
Organizarea memoriei ROM

(a) Memorie ROM cu 8 cuvinte de 4 biţi (b) Tabelul de adevăr asociat


53
Structura internă a unui cip de memorie ROM cu 1024 cuvinte de 8 biţi (1K × 8)
Sistemele software componente ale unei memorii ROM:
1. Sistemul cu program starter (ROM-ul de start) cu următoarele acţiuni:
 execută testele de funcţionalitate ale componentelor ataşate (POST = Power On Self Test);
 iniţializează toate componentele ataşate calculatorului (HW);
 iniţializează tabela vectorilor de întrerupere (TVI);
 verifică alte extensii sau periferice ataşate sistemului de calcul (I/O);
 încarcă în memorie, de pe disc, sistemul de operare (SO).
2. ROM-BIOS (Basic Input Output System) – rutine de gestiune a proceselor, serviciilor & perifericelor
3. ROM-Basic – program opţional, cu nucleul limbajului Basic
4. Extensiile ROM – sistem cu rutinele necesare gestiunii dispozitivelor ataşate.
54
Modul de organizare al memoriei ROM.

55
Funcţiile programelor de pe placa de bază:

 autotestarea la punerea sub tensiune (POST = Power On Self Test);

 rutina de încărcare a SO (bootstrap loader) – iniţiază căutarea SO pe discurile disponibile;

 BIOS – interfaţa soft (programul) de control pentru toate componentele HW ale sistemului:

o meniul Standard CMOS Setup – tipul & parametrii UD, KBD, video, date/time etc.;

o meniul Advanced CMOS Setup – parametri reglabili de maximizare a performanţei:


activare/dezactivare cache intern/extern, parolă de intrare, ordinea de boot a SO etc.;

o meniul Advanced Chip-set Setup – reglaje fine de optimizare: configurarea


magistralelor, a stărilor de aşteptare (wait) ale microprocesorului etc.;

 MMU (Memory Management Unit) – transferă conţinutul memoriei ROM de pe placa de


bază în RAM, activând opţiunile de transfer (shadowing) din BIOS CMOS Features Setup.

56
 FPGA (Field-Programmable Gate Arrays) – cipuri rapid configurabile, cu o logică programabilă
capabilă să formeze orice circuit logic simplu prin încărcarea datelor adecvate. Componente de bază:
o dicţionare Look-Up Tables – LUT – memorii programabile pentru crearea funcţiilor logice;
o interconexiuni programabile.

(a) Structura LUT pentru FPGA;


(b) Configuraţia LUT pentru un numărător pe 3 biţi cu reset: I0,1,2 = I+1, I3 = CLR, I4..7 = 0, O0..3  I0..3
Temă: reconfiguraţi LUT pentru un numărător pe 4 biţi cu reset.
57

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