Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de Computadors
Emilio Castillo
Jos Mara Cela
Montse Fernndez
David Lpez
Joan Manuel Parcerisa
Angel Toribio
Rubn Tous
Jordi Tubella
Gladys Utrera
http://creativecommons.org/licenses/by-nc-sa/2.5/es/
o envie una carta a
Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Usted es libre de:
copiar, distribuir y comunicar pblicamente la obra
hacer obras derivadas
Bajo las condiciones siguientes:
Reconocimiento. Debe reconocer los crditos de la obra de la manera especificada por el autor
o el licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace
de su obra).
No comercial. No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada,
slo puede distribuir la obra generada bajo una licencia idntica a sta.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los trminos de la licencia de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los
derechos de autor
Nada en esta licencia menoscaba o restringe los derechos morales del autor.
Advertencia: Este resumen no es una licencia. Es simplemente una referencia prctica para entender
el Texto Legal (la licencia completa).
Los derechos derivados de usos legtimos u otras limitaciones reconocidas por ley no se ven afectados
por lo anterior.
Lectura prvia
Considerem que el subsistema de memria dun computador consta duna memria principal
(MP) i duna memria cache (MC). Tamb considerem en aquest punt que la MP permet
emmagatzemar tot lespai adreable pel processador mentre que la MC emmagatzema un
subconjunt daquest espai adreable. Daltra banda, sabem que el temps daccs a MP s
ms elevat (ms dun ordre de magnitud) respecte al temps daccs a MC. Daltra banda,
tamb coneixem que el cost per byte de fabricar la MP s ms baix que el cost de fabricar la
MC. Lobjectiu en incorporar el nivell de memria cache en un computador s disminuir el
temps mitj daccs a memria.
A continuaci es resumeixen els diferents aspectes arquitectnics que considerem en el
disseny duna memria cache.
Mida de la MC. La MC sorganitza en blocs que contenen un cert nombre de paraules. El
producte del nombre de blocs pel nombre de paraules per bloc estableix la capacitat de la
MC quant a dades emmagatzemables de lespai adreable pel processador.
Algorisme demplaament. Especifica en quina entrada de la MC subica el bloc de MP que
cont la paraula de memria que accedeix el processador.
- 61 -
Estructura de Computadors
Poltica descriptura. Estableix com es gestionen les escriptures a memria. Duna banda
cal decidir si conv copiar a la MC el bloc de MP quan lescriptura provoca una fallada i
daltra banda cal mantenir la coherncia de les dues memries (MC i MP). La combinaci
daquests dos aspectes ens dna les segents alternatives:
Model de temps.
A continuaci es descriu el model de temps que es considera per servir una referncia a
memria, diferenciant si es tracta duna lectura o duna escriptura i si laccs provoca un
encert o una fallada a la MC. A ms, el model contempla totes les poltiques descriptura
estudiades.
A nivell general cal considerar que el temps de servei duna referncia a memria s el temps
en determinar si la referncia s un encert o una fallada a memria cache i servir la
referncia en cas dencert (th) ms el temps de penalitzaci per resoldre la referncia en
accedir al segent nivell de la jerarquia de memria (tp):
taccs = th + tp
Laccs a les etiquetes per comprovar si la referncia s un encert i el servei de la referncia
en cas dencert es realitzen seqencialment durant el temps th: en la primera meitat daquest
temps es fa laccs a les etiquetes i en la segona meitat es fa la lectura o escriptura a
memria cache.
Per aquelles configuracions de memria cache amb poltica descriptura immediata es
considera lexistncia dun buffer descriptura amb llargada ilimitada on queden
- 62 -
Estructura de Computadors
emmagatzemades les escriptures pendents de portar a MP. Tamb es considera que cap
referncia a memria entra en conflicte amb escriptures pendents en aquest buffer. Cal
adonar-se que el contingut daquest buffer es porta a MP en paral.lel amb lexecuci de les
instruccions que vnen a continuaci de laccs a memria.
A continuaci es mostra una taula amb el temps de penalitzaci (tp) associat a una referncia
segons sigui lectura/escriptura; encert/fallada i segons la memria cache contempli una
poltica descriptura immediata sense assignaci/retardada amb assignaci:
Immediata
amb assignaci
Immediata
sense assignaci
Retardada
amb assignaci
Lectura - Encert
Lectura - Fallada
tblock + th1
tblock + th1
03
03
tp
Escriptura - Encert
Escriptura - Fallada
tblock + th
Es porta el bloc modificat a MP; es porta el nou bloc de MP guardant-lo a lentrada que es
- 63 -
Estructura de Computadors
Enunciats de la sessi
En la realitzaci daquesta sessi de laboratori considerarem un computador que disposa dun
processador de 32 bits, com s ara el MIPS, i que el seu sistema de memria, adreable a
nivell de byte, t una memria cache que gestiona de forma independent les instruccions i les
dades. Noms analitzarem les referncies a paraules dins la memria cache de dades. Aquesta
memria cache ser parametritzable pel que fa referncia a lalgorisme demplaament: correspondncia directa, completament associatiu i associatiu per conjunts i pel que fa referncia
a la seva mida: nombre de blocs que cont i nombre de paraules per bloc (compte que no
podem indicar el nombre de bytes per bloc). Tamb cal considerar de forma general per totes
les activitats daquesta sessi que les variables globals que contenen els programes analitzats
estan sempre emmagatzemades a memria a partir de ladrea 0x10010000.
2) Quin s lndex (en hexadecimal) del bloc de memria cache que correspon a
aquesta referncia?
- 64 -
Estructura de Computadors
move
la
move
li
$t1,
$t2,
$t0,
$t3,
$zero
vector
$zero
100
bge
lw
addu
addiu
addiu
b
$t0,
$t4,
$t1,
$t2,
$t0,
for
$t3, fi
0($t2)
$t1, $t4
$t2, 4
$t0,1
# sum=0
# i=0
for:
for (i=0; i<100; i++)
sum += vector[i];
}
fi:
Figura 5.1: Programa que fa el recorregut seqencial dun vector, en alt nivell i en
assemblador MIPS.
Adrea
Bloc MC
Encert /
Fallada
1
2
3
4
5
6
7
8
9
10
- 65 -
Estructura de Computadors
Per verificar lexercici 5.2, i daqu en endavant per analitzar el funcionament de la memria
cache, farem servir el mdul "Data Cache Simulator" del MARS, que es troba a lopci
"Tools" del seu men. Carrega aquest mdul i observa que sobre una nova finestra. En
aquesta finestra es poden canviar els parmetres de disseny a la part anomenada "Cache Organization". A la part anomenada "Cache Performance" obtindrem dades estadstiques del comportament de la memria cache en lexecuci dun programa: les referncies a memria que es
produeixen durant la seva execuci, el nombre dencerts, el nombre de fallades, i la taxa
dencerts. Inicialment, cal prmer el bot "Connect to MIPS" per poder usar aquest mdul.
El fitxer s5a.s cont el programa de la figura 5.1. Carrega aquest programa al MARS, assemblal i posa en marxa el mdul "Data Cache Simulator". Executa completament el programa i
verifica si la taxa dencerts que has contestat a lexercici 5.2 s la que indica el simulador.
Completa lexercici 5.3 abans de continuar:
Exercici 5.3: Contesta les segents preguntes:
1) Si dupliquem la mida de la cache en base a duplicar el nombre de blocs que
cont, hi haur alguna variaci en la taxa dencerts obtinguda? Per qu?
Modifica el programa del fitxer s5a.s invertint lordre del recorregut i guardal amb el nom
s5a2.s. Verifica amb el simulador la taxa dencerts de lexercici 5.4.
- 66 -
Estructura de Computadors
En cas de fallada de cache cal afegir una penalitzaci addicional: tp = tblock + th.
Consisteix en el temps per copiar el bloc de MP a cache: tblock = 10 cicles
ms el temps per llegir/escriure de nou la paraula a la memria cache: th = 1 cicle
Suposem que per al programa de la figura 5.1 hem mesurat que CPIideal =2 (s el CPI si tots
els accessos a cache sn encerts). Quin s el guany en el rendiment del programa en el sistema amb cache de dades respecte dun sistema sense cache de dades?
Nota1: Per calcular el nmero dinstruccions executades, tingueu en compte que algunes lnies dassemblador sn macros
que sexpandeixen a ms duna instrucci; que el test del salt del bucle sexecuta una vegada ms que la resta dinstruccions; i que sexecuten 3 instruccions del fitxer startup.s, 1 al principi del programa i 2 ms al final del programa.
Podeu usar les eines "Instruction Statistics" i "Instruction Counter" del simulador MARS.
Nota2: A fi de calcular el temps dexecuci del sistema sense cache coneixent el CPIideal del mateix sistema per amb
cache caldr considerar que el temps daccs a memria s taccs = tMP i modelitzar-lo com si fos un sistema amb cache en
qu tots els accessos fallen (m=100%) i amb una penalitzaci per fallada tp = tMP - th.
(en ns.) =
(en ns.) =
- 67 -
Estructura de Computadors
Exercici 5.6: Considerant que la memria cache aplica una poltica descriptura immediata
amb assignaci, que t 32 blocs, i que els blocs sn de 4 paraules, digues:
1) Per a cada una de les 4 iteracions del bucle exterior omple la taula amb la segent
informaci: (a) una llista dels elements vec[x] que saccedeixen (anota sols
lndex); (b) per cada element, si s una referncia de lectura (R) o descriptura (W)
i si genera un encert (h) o a una fallada (m) a la cache.
Iteraci i=0
vec[]
R/W
Iteraci i=1
h/m
vec[]
R/W
Iteraci i=2
h/m
vec[]
R/W
Iteraci i=3
h/m
vec[]
R/W
h/m
encerts
Iteraci i=1
accessos
encerts
Iteraci i=2
accessos
encerts
Iteraci i=3
accessos
- 68 -
encerts
Estructura de Computadors
El fitxer s5b.s cont la traducci del programa de la figura 5.2. Verifica la taxa dencert calculada a lexercici anterior carregant al simulador aquest fitxer, assemblant-lo, configurant correctament el mdul "Data Cache Simulator", i executant el programa.
Completa el segent exercici abans de continuar:
Exercici 5.7: Indica com canviaria la taxa dencerts si hagussim considerat una poltica
descriptura immediata sense assignaci. dem per al cas duna poltica descriptura
retardada amb assignaci? Raona les respostes.
Un cop vist el comportament de la memria cache durant lexecuci del programa, volem abstraure aquest comportament per entendre com es comportar amb vectors ms grans. Completa el segent exercici abans de continuar:
Exercici 5.8: Suposem que el vector a ordenar tingus 64 elements:
1) Considerant la mateixa geometria de la cache de lexercici 5.6, quantes
fallades es produirien?
Modifica el programa del fitxer s5b.s (copiant-lo amb el nom s5b2.s) perqu el vector tingui
64 elements: canvia la declaraci (per a aquest experiment no importa que no sinicialitzin els
elements del vector), i tamb el nombre diteracions dels dos bucles.
Verifica amb el simulador que les respostes donades a lexercici 5.8 siguin correctes.
- 69 -
Estructura de Computadors
El fitxer s5c.s cont la traducci del programa de la figura 5.3 a assemblador MIPS. Verifica
amb el simulador la resposta donada en lexercici anterior.
Completa el segent exercici abans de continuar:
Exercici 5.10: Aquest exercici pretn que pensis una manera de millorar la taxa dencerts
de lanterior programa fent petites modificacions a la declaraci de dades: essent conscient
de la geometria que t la cache (16 blocs de 4 paraules cadascun), omple les 2 caselles que
hi ha a continuaci, que formen part de la declaraci dels vectors del programa de la figura
5.3, per tal que la taxa dencerts sigui 0,75.
.data
A:
.space 512
B:
.space 512
C:
.space 512
Copia el fitxer s5c.s en un nou fitxer s5c2.s, i escriu-hi les modificacions que has proposat a
lexercici anterior. Verifica amb el simulador si sobt la taxa dencerts de 0,75.
- 70 -
Estructura de Computadors
Ara analitzarem quin seria el rendiment del programa de la figura 5.3 en una memria cache
associativa. En primer lloc ho farem per a una cache completament associativa. Completa el
segent exercici:
Exercici 5.11: Considerant una memria cache completament associativa (de 16 blocs de
4 paraules cadascun), calcula quina s la taxa dencerts que obtindrem en lexecuci del
programa de la figura 5.3.
Al simulador pots especificar el nombre de blocs que t cada conjunt (el grau de lassociativitat) al camp "Set size". Malauradament, el simulador noms tracta graus dassociativitat que
sn potncies de 2. Verifica la resposta amb el simulador, ajustant lassociativitat al valor que
saproximi ms a la teva resposta.
- 71 -
Estructura de Computadors
Figura 5.4: Programa que realitza el producte duna matriu per un vector.
Correspondncia
directa
Associativa
de grau 2
Associativa
de grau 4
8 blocs
16 blocs
32 blocs
64 blocs
128 blocs
- 72 -
Associativa
de grau 8
Completament
Associativa
Estructura de Computadors
Loptimitzaci que volem aplicar est basada en aprofitar la localitat temporal de les referncies al vector V2. Fixat que aquest vector es llegeix tot sencer, una vegada per cada fila que
tractem de la matriu M. El que pretenem s que els accessos al vector corresponguin nicament a aquells elements que caben en un bloc de la cache que, en el cas que considerem, sn 4.
Aix, en lloc de multiplicar tota una fila de la matriu M per tot el vector V2 volem fer el tractament de 4 en 4 elements1: s a dir, que dividirem la matriu en blocs de 4 columnes i farem
primer totes les operacions involucrades amb els elements del primer bloc (iterant totes les
seves files) abans de passar al bloc segent. Completa el segent exercici abans de continuar:
Exercici 5.13: El codi que hi ha a continuaci correspon a una versi optimitzada del
programa de la figura 5.4, on shi ha aplicat loptimitzaci anomenada "tiling". Lndex k
itera els 4 blocs de la matriu (amb 4 columnes per bloc). Completa les caselles buides amb
les sentncies dalt nivell que contenen els accessos a les estructures de dades.
int V1[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int M[16][16], V2[16];
main()
{
int i,j,k,tmp;
for (k=0; k<4; k++)
for (i=0; i<16; i++)
{
tmp = 0;
for (j=0; j<4; j++)
{
tmp +=
+= tmp;
}
}
1.
- 73 -
Estructura de Computadors
Escriu el programa de lexercici anterior en un fitxer nou, i anomenal s5d2.s. Verifica amb el
simulador que s correcte, comprovant que el resultat que sobt al vector V1 coincideix amb
lobtingut al programa original del fitxer s5d.s.
Determina amb el simulador la taxa dencerts que sobt executant el programa optimitzat:
Capacitat
de la cache
Correspondncia
directa
Associativa
de grau 2
Associativa
de grau 4
Associativa
de grau 8
Completament
Associativa
8 blocs
16 blocs
32 blocs
64 blocs
128 blocs
Quina s la diferncia entre la millor taxa dencerts daquesta versi i la de la versi no optimitzada?
- 74 -