Академический Документы
Профессиональный Документы
Культура Документы
Muestrecomoplanificarauncompiladorlasiguientesecuenciade
instruccionesparaunprocesadorVLIWcon3unidadesdeejecucin.
Supongaquetodaslasoperacionestienenunalatenciadedosciclosy
cualquierunidaddeejecucinpuedeejecutarcualquiertipodeinstruccin.
ADDr1,r2,r3
SUB r16, r14, r7
SUBr16,r14,r7
LDr2,(r4)
LDr14,(r15)
MULr5,r1,r9
ADD 9 10 11
ADDr9,r10,r11
SUBr12,r2,r14
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
Solucin:
Palabra1
ADDr1,r2,r3
LDr2,(r4)
Palabra 2
Palabra2
NOP
Palabra3
MULr5,r1,r9
SUBr12,r2,r14
NOP
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
LDr14,(r15)
Enlasiguientetablasemuestracomosepodranplanificarlasoperaciones.
ObsrvesequelaoperacinLDr14,(r15)sehacolocadoenlainstruccin
anterioralaoperacinSUBr16,r14,r7apesardequelaoperacinSUB
apareceantesenelfragmentodecdigooriginalydequeleedelregistrode
destino en el que la operacin LD almacenar el dato Ya que las
destinoenelquelaoperacinLDalmacenareldato.Yaquelas
instruccionesVLIWnosobreescribenlosregistroshastaquenose
completan,elvalorprevioder14permanecerhastadosciclosdespusde
quelaoperacinLDsehayaemitido,permitiendoquelaoperacinSUB
puedaleerelvaloranteriorder14ygenereunresultadocorrecto.Al
planificarlasoperacionesfueradeordenydeestaforma,sehalogradoque
elfragmentodeprogramaocupemenosinstruccionesVLIW.Demanera
similar, la operacin ADD r9, r10, r11 se ha planificado antes que la
similar,laoperacinADDr9,r10,r11sehaplanificadoantesquela
operacinMULr5,r1,r9,aunqueestasdosoperacionespodranhaberse
colocadoenlamismainstruccinsinincrementarelnmerodeinstrucciones
necesariasparacodificarelfragmentodeprograma.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
Ejemplo:
********
Muestrecomouncompiladorplanificaraelcdigodelproblemadela
diapositiva156,parasuejecucinenunprocesadorVLIWconelmismo
nmerodeunidadesdeejecucinylasmismaslatenciasdelasoperaciones
especificadas en el problema original Al contrario que en los problemas de
especificadasenelproblemaoriginal.Alcontrarioqueenlosproblemasde
losprocesadoressuperescalares conejecucinfueradeorden,debera
suponerqueelcompiladoranalizatodoslosposiblesordenamientosde
operacionesparaencontrarlamejorplanificacin.Estoreflejaelhechode
queelcompiladorpuedededicarmstiempoytenerunavisinmsglobal
delprogramaparaencontrarlamejorplanificacindeloqueusualmente
realizaelhardwaredelossuperescalares entiempodeejecucin.
ADDr1,r2,r3
, ,
SUBr5,r4,r5
LDr4,(r7)
MULr4,r4,r4
ST (r7) r4
ST(r7),r4
LDr9,(r10)
LDr11,(r12)
ADDr11,r11,r12
MULr11,r11,r11
ST(r12),r11
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
SUBr4,r5,r5
LDr4,(r7)
Palabra2
l b
ADDr1,r2,r3
NOP
NOP
NOP
NOP
NOP
Palabra3
MULr4,r4,r4
ADDr11,r1,r12
Palabra4
ST(r7),r4
MULr11,r11,r11
Palabra5
ST(r2),r11
NOP
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
LDr9,(r10)
LDr11,(r12)
Palabra1
NOP
NOP
NOP
NOP
D
Desenrolladodebucles
ll d d b l
Engeneral,lasiteracionesdeunbuclesuelencontenerpocoparalelismo,debido
especialmente a dependencias de control y si existen dependencias de datos
especialmenteadependenciasdecontroly,siexistendependenciasdedatos,
estassemultiplican.Unatcnicaquepermitedisminuirestasituacinesla
llamadaDesenrolladodebucles.
Porejemplo,undesenrollodebuclesenlenguajeC:
for(i=0;i<100;i++)
{
a[i]=b[i]+c[i];
}
for(i=0;i<100;i+=2)
{
a[i]=b[i]+c[i];
a[i+1]=b[i+1]+c[i+1];
}
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
UNIDADIV
ADMINISTRACIN DE MEMORIA
ADMINISTRACINDEMEMORIA
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
Jerarquadememoria
q
Incrementotamao
Incrementovelocidad
Incrementocostoporbit
P
Procesador
d
Registros
Cachprimaria
L1
Cachsecundaria
L2
Memoriaprincipal
Memoria
Secundaria
DiscoMagntico
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
Lalongituddelneadeunacacheseltamaodelbloquedecach(el
tamaodelgrupodedatosquesonllevadosysacadosdelacachen
respuestaaunfallodelamisma).Laslneasdelacachestnalineadas(las
direccionesdelprimerbyteenunalneacachessiempreunmltiplodela
longitud de la lnea)
longituddelalnea).
Estosimplificaelprocesodedeterminarsihaocurridoonounfallode
cache,puestoquelosbitsmenossignificativosdeladireccindeterminan
quebytedeunadireccinreferencianlalneaquelacontiene,ysolamente
losbitsmssignificativossenecesitanenviaralamatrizdeetiquetaspara
determinarsihaexistidounacierto.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
10
Ejemplo:
Enunacachecon64bytesdelongituddelnea,Cuntosbitsseutilizanpara
determinarquebytedentrodelalneacacheindicaladireccin?
Solucin:
Ellog2 de64es6,porlotantolos6bitsmenossignificativosdeladireccin
determinanelbytededireccindentrodeunalneadecache.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
11
Ejemplo:
Supongamosunacachede1KB,conlneasde64bytes.Determinecuantas
lneashabraenlacache.Yconlneasde32bytes.Culopcinconviene
ms?,porqu?
Solucin:
Unacachde1,024bytespuedecontener16lneas,mientrasquesisereduceel
tamaodelneasa32bytes,elnmerodelneasaumentaa32.Entrems
pequealalneamscorrespondenciastendrnconlaDRAM,peromenosopcin
l l
d i t d
l DRAM
i
aencontrarelvalordeseado.Sinembargo,silalneaesdemasiadogrande,el
tiempodesustitucinaumentaconsiderablemente.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
12
Lasmemoriascachegeneralmentecontienenunamatrizdeetiquetasyuna
matrizdedatos.Lamatrizdeetiquetascontienelasdireccionesdelosdatos
existentesenlacache,mientraslamatrizdedatoscontienelosdatos
mismos.Larazndeestadivisineslareduccindeltiempodeaccesoala
i
L
d
t di i i
l
d i d l ti
d
l
cache,puestoquelamatrizdeetiquetasgeneralmentecontienemuchos
menosbitsquelamatrizdedatosysepuedeporlotantoaccederaellams
rpidamente.Adems,estetipodearreglopermiterealizarenparalelola
p
,
p
g p
p
determinacindeacierto/fallo,reduciendoeltiempodeaccesoglobal.
Enlascaches,losdatosylasinstruccionessuelenmemorizarseencaches
separadas de datos e instrucciones la cual a veces de denomina como
separadasdedatoseinstrucciones,lacualavecesdedenominacomo
arquitecturaHarvard,lacualpermitealprocesadorcaptarsimultneamente
datoseinstruccionesdeambascachesrespectivamente.Cuandolacache
contienetantodatoscomoinstrucciones,selellamacacheunificada.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
13
Ejemplo:
Siunacachtienelneasde64bytes,Cuantotiemposenecesitapara
captarunalneadecachesilamemoriaprincipalnecesita20ciclospara
responderacadapeticindememoriaydevuelve2bytesdedatosen
respuestaacadapeticin?
Solucin:
Debidoaquelamemoriaprincipaldevuelve2bytesdedatosenrespuestaacada
Debido
a que la memoria principal devuelve 2 bytes de datos en respuesta a cada
peticin,senecesitan32peticionesdememoriaparacaptarunalnea.A20ciclos
porpeticin,lacaptacindeunalneadecachenecesita640ciclos.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
14
Mapeodirecto
FuncionesdeMapeo(correspondencia)
Mapeoasociativo
Mapeoasociativoporconjuntos
FIFO(FirsInFirstOut)
(
)
LIFO(LastIntFirsOut)
FuncionesdeSustitucin
LRU(LeastRecentlyUsed)
LFU(LeastFrequentlyUsed)
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
15
OrganizacindeCacheconcorrespondenciadirecta
s+w
Cache
Etiqueta
Datos
DireccindeMemoria
Etiqueta
s r
Lnea
Memoria
Principal
W0
W1
L0
Palabra
B0
...
s r
...
W2
W3
s
Compa
racin
Li
W(4j)
W(4j+1)
W(4j+2)
Bj
W(4j+3)
...
...
(fallodecache)
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
16
CorrespondenciaDirecta
Direccin
Etiqueta Lnea+Palabra
FFFC
FFF8
Datos
11223344
FF
Etiqueta
01
FF
0008
0004
0000
12345678
FFFC
FFF8
00
01
00
01
0008
0004
0000
FFFC
FFF8
0002
0001
0000
87654321
11235813
13579246
(14bits)
11235813
Cachede16Kpalabras
00
W(4j+2)
W(4j+1)
W(4j)
Nmerode
lnea
3FFF
3FFE
Datos
12345678
11223344
DireccindeMemoriaPrincipal
0008
0004
0000
87654321
13579246
MemoriaPrincipalde
16MBytes
Etiqueta
8
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
Lnea
14
Palabra
2
17
OrganizacindeCachetotalmenteasociativa
s+w
Cache
Etiqueta
Datos
DireccindeMemoria
Etiqueta
Memoria
Principal
W0
W1
L0
W2
W3
Palabra
...
...
B0
w
s
...
Lj
Comparacin
W(4j)
W(4j+1)
W(4j+2)
Bj
W(4j+3)
...
...
Lm1
(fallodecache)
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
18
CorrespondenciaAsociativa
Direccin
Datos
FFFFFC
FFFFF8
FFFFF4
24682468
11223344
33333333
Etiqueta
FFFFFC
000000
FFFFF4
1633A0
16339C
163398
87654321
16339C
FFFFF8
Datos
24682468
12345678
33333333
87654321
11223344
Nmerode
lnea
3FFF
3FFE
3FFD
0001
0000
(14bits)
(22bits)
Cachede16Kpalabras
000008
000004
000000
DireccindeMemoriaPrincipal
12345678
MemoriaPrincipalde
16MBytes
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
Etiqueta
Palabra
22
2
19
OrganizacindeCacheasociativaporconjuntos
s+w
Cache
Etiqueta
DireccindeMemoria
Conjunto
Etiqueta
Memoria
Principal
F0
B0
F1
...
s d
Palabra
Datos
B1
Conjunto0
...
Fkk 1
fk
...
s+w
...
Comparacin
Fk+i
Bj
Conjunto1
...
...
(aciertodecache)
F2k 1
(fallodecache)
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
20
Etiqueta
Conjunto
+
Palabra
7FFC
7FF8
CorrespondenciaAsociativadedosvas
Datos
24682468
11223344
1FF
Etiqueta
001
1FF
0008
0004
0000
Datos
12345678
11223344
Nmero
de lnea
delnea
1FFF
1FFE
Datos
24682468
001
7777777
....
Etiqueta
1FF
12345678
7FFC
7FF8
000
001
000
001
0008
0004
0000
7FFC
7FF8
87654321
11235813
13579246
0002
0001
0000
(13bits)
11235813
77777777
Cachede16Kpalabras
000
DireccindeMemoriaPrincipal
0008
0004
0000
87654321
13579246
MemoriaPrincipalde
16MBytes
Etiqueta
Conjunto
Palabra
13
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
21
Ejemplo:
Enunacacheconmapeodirectoconunacapacidadde16KByunalongitud
delneade32bytes,cuantosbits,deunaoperacindereferenciaa
memoria,seutilizanparadeterminarelbytedentrodeunalneadecachey
cuantosbitsseutilizanparaseleccionarlalneadecachequepuede
contener el dato?
contenereldato?
Solucin:
Log2 de32es5,portantosenecesitan5bitsparadeterminarelbytedentrodela
de 32 es 5 por tanto se necesitan 5 bits para determinar el byte dentro de la
lneadecachequeestsiendoreferenciado.Conlneasde32bytes,existen512
lneasenlacachede16KB,porlotantosenecesitan9bitsparaseleccionarla
lneaquepuedecontenerladireccin(log2 512=9)
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
22
Ejemplo:
Cuntosconjuntoshayenunacacheasociativaporconjuntos,dedosvas,
con32KBdecapacidadylneasde64bytesycuantosbitsdedireccinse
utilizanparaseleccionarunconjuntoenestacache?,Qupasaraenelcaso
deunacacheasociativaporconjuntosdeochovasconlamismacapacidady
longitud de lnea?
longituddelnea?
Solucin:
Unacachede32KBcon64bytesporlneacontiene512lneasdedatos.Enuna
Una
cache de 32 KB con 64 bytes por lnea contiene 512 lneas de datos En una
cacheasociativaporconjuntosdedosvas,cadaconjuntocontiene2lneas,por
lotantohay256conjuntosdecache.Log2 (256)=8,porlotantoseutilizan8bits
deladireccinparaseleccionarelconjuntoquemapealadireccin.Enunacache
asociativaporconjuntosdeochovasexisten64conjuntosyutiliza6bitsdela
direccinparaseleccionarunconjunto.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
23
AlgoritmosdeSustitucin
FIFO(FirstInFirstOut):Elprimeroenentrareselprimeroensalir
LIFO(LastInFirstOut):Elltimoenentrareselprimeroensalir
LRU(LeastRecentlyUsed):Elmenosrecientementeusado
LFU (Least Frequently Used): El menos frecuentemente usado
LFU(LeastFrequentlyUsed):Elmenosfrecuentementeusado
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
24
Alactualizarlosdatosenlamemoriacachporpartedelprocesador,debeobservarsequetambinqueden
actualizados en la memoria principal
actualizadosenlamemoriaprincipal.
ProtocoloWritetrhough:Seescribeenlalocalidaddecachyenlalocalidaddememoriaalmismo
tiempo.
ProtocoloWriteback:Atravsdeunabandera(bitdemodificacin),sesealizasiunregistrofue
modificadoporelprocesador.Despuscuandosesustituyalalneadecachseactualizarenla
memoriaprincipal.
Cuandoelprocesadorbuscaundatoquenoseencuentraenlamemoriacach,ocurreunmissread.Existendos
formasderealizarlatransferencia.
ProtocoloLoadtrhough:Cuandosetransfiereeldatodesdelamemoriahastalacach,seenvaal
mismotiempoalprocesador,ahorrandotiempoperoaexpensasdemayorcomplejidadenla
circuitera.
ProtocoloLoadback:Setransfiereeldatodesdelamemoriaprincipalhastalacachydespus se
envaestedatohastaelprocesador.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
25
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
26
MemoriaVirtual
Enlosiniciosdelossistemascomputacionales,lamemoriaRAM(principal)
erasuficienteparacontenerelprogramacompletoqueseejecutara;sin
embargo poco a poco esta dej de ser suficiente para los grandes programas
embargo,pocoapocoestadejdesersuficienteparalosgrandesprogramas
requeridos.UnaformadesolucionarelproblemaesmediantelaMemoria
Virtual,esdecir,hacerparecerqueexistememoriafsicasuficientepara
conteneryejecutarelprograma(oprogramas),encuestin.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
27
Programa
Espaciode
direcciones
virtuales
virtuales
(referenciadaspor
unprograma)
Discoduro
Memoriaprincipal
Pginaendisco
Espaciofsicode
direcciones(datos
enmemoria)
Pginafsica
Pginaendisco
Pginafsica
Marcode
pgina
PginaVirtual
PginaVirtual
Pginanosituadaenelmapadelamemoria
principal.Sercopiadaalamemoriaprincipal
cuandoseutilice.
PginaVirtual
Pginaendisco
Memoriavirtual
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
28
Bsquedadelas
direccionesvirtuales
enlatabladepginas
Obtenerladireccin
fsica
Completarla
referenciaamemoria
Direccinen
Direccin
en
elmapade
memoria
Direccinno
enelmapade
memoria
Fallodepgina
Cargarlapginadesde
eldisco
Actualizarlatablade
pginas
Traduccindedirecciones
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
29
Nmerodepgina
virtual(VPN)
VPNyPPNpuedentener
longitudesdiferentes
Nmerodepgina
fsica(PPN)
Nmerodepgina
virtual(VPN)
Desplazamiento
Losdesplazamientosdelas
direccionesfsicasylas
direccionesvirtualestienen
elmismotamao
Desplazamiento
Nmero de pgina
Nmerodepgina
fsica(PPN)
Desplazamiento
Nmerodepgina
fsica(PPN)
Desplazamiento
Direccionesvirtualesyfsicas
Conversindedireccionesvirtualesafsicas
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
30
Ejemplo:
Enunsistemacondireccionesvirtualesde64bitsydireccionesfsicasde43
bits(similaralosprimerosprocesadoresde64bits),Cuntosbitsse
necesitanparaelVPNyparaelPPNsilaspginastienenuntamaode8KB?
Solucin:
Ellog
El
log2 (8KB)=13,porlotantosenecesitan13bitsparaelcampode
(8 KB)=13 por lo tanto se necesitan 13 bits para el campo de
desplazamientodelasdireccionesfsicasylasdireccionesvirtuales.Porlotanto,
senecesitan51bits(6413),paraelnmerodepginavirtualy30bitsparael
nmerodepginafsica.
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
31
Bitde
modificacin
Bitdevalidez
Nmerodepginafsica
PPNparalapginavirtual0
Tabladepginasdeunnivel
PPNparalapginavirtual1
PPNparalapginavirtual2
PPNparalapginavirtual3
PPNparalapginavirtual4
PPNparalapginavirtual5
PPNparalapginavirtual6
PPNparalapginavirtual7
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
32
Nmerodepgina
virtual(VPN)
Desplazamiento
Nmerodepginafsica(PPN)
Bit d
Bitde
Bit d
Bitde
modif valid
icaci ez
n
UsodeunaVPNpara
seleccionarelelementode
la tabla
latabla
Comprobacindelbitde
validezdelelementopara
versilapginaestubicada
en la memoria principal
enlamemoriaprincipal
Traduccindedireccionesutilizandolatabla
depginas
Nmerodepgina
(
)
fsica(PPN)
Desplazamiento
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
33
Acierto
Bsquedadelas
direccionesvirtuales
enlatabladepginas
Chequearla
traduccinenelTLB
Fallo
Obtenerladireccin
fsica
Completarla
referenciaamemoria
Direccin
mapeada
Direccinno
mapeada
Fallodepgina
Cargarlapginadesde
eldisco
Actualizarla
tabladepginas
TraduccindedireccionesconTLB
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
34
Bitde
Bit
de
modificacin
Nmerodepgina
virtual(VPN)
Bit de validez
Bitdevalidez
Nmerodepgina
fsica(PPN)
Elemento de TLB
ElementodeTLB
ArquitecturadeComputadoras
M.enC.JessGarcaRuiz
35