Práctica Memoria Cache: cache Unificado = un solo cache para

Anuncio
Práctica Memoria Cache:
cache Unificado = un solo cache para datos e instrucciones=> se generan conflictos estructurales
AMAT IF =t aciertoTasa fallo⋅t fallo
AMAT MEM =1 AMAT IF => se agrega un ciclo por cada acceso a memoria (conflicto estructural)
AMAT =
AMAT IF  fracls⋅AMAT MEM
1 frec ls
cache Harvard=Cache dividido, datos e instrucciones elimina conflictos estructurales
AMAT MEM =t acierto , INST Tasa fallo , INST⋅t fallo , INST
AMAT MEM =t acierto , DATOS Tasa fallo , DATOS⋅t fallo , DATOS
AMAT =
AMAT IF  fracls⋅AMAT MEM
1 frec ls
CPI =CPI base AMAT IF – t acierto , INST  frecls∗ AMAT MEM – t acierto , DATOS 
Ejercicios:
1Se tiene un benchmark con 30% load/store, originalmente se había calculado un CPI de 3, sin
embargo se habia olvidado considerar una memoria real que no contiene toda la información.
a) t acierto=2[ciclos ], t fallo=200 [ciclos] y la frecuencia de fallo es de 5% (cache unificada)
i)
Calcule AMAT
ii)
Calcule nuevo CPI
b) Se tiene el mismo caso anterior pero ahora se considera cache Harvard lo que da una taza de
error de 10% en datos y 2% en instrucciones.
i)
Calcule AMAT
ii)
Calcule nuevo CPI
2En el procesador anterior se decide utilizar una estructura Harvard. Sin embargo unos
ingenieros lograron optimizar el uso de la memoria cache de manera que el tiempo acierto se reduce a 1
ciclo para instrucciones, sacrificando en fallo de datos que aumenta a 250 ciclos. Paralelamente los
ingenieros unificadores lograron disminuir la frecuencia de fallo a la mitad (2.5%) para la arquitectura
unificada incrementando en 2 ciclos el tiempo de acierto y el tiempo de fallo. Que implementación
conviene?
3Obtenga la frecuencia de fallos necesaria en arquitectura unificada para obtener el mismo CPI
que con arquitectura Harvard, considere que ambas arquitecturas tienen los mismos tiempos de acierto
y de fallo (pero distintas tazas).
Soluciones:
1ta=2;tf=200;
Tfu=5/100;
%Taza fallo unificado
Tfd=10/100;
%Taza fallo datos
Tfi=2/100;
%Taza fallo instrucciones
fls=30/100;
%frecuencia load y store
CPIb=3;
%unificado:
AMAT_IFu=ta+Tfu*tf;
AMAT_MEMu=1+AMAT_IFu;
disp('Pregunta 1:')
disp('---unificado---')
AMATu=(AMAT_IFu+fls*AMAT_MEMu)/(1+fls)
CPIu=CPIb+(AMAT_IFu-ta)+fls*(AMAT_MEMu-ta)
%harvard:
AMAT_IFh=ta+Tfi*tf;
AMAT_MEMh=ta+Tfd*tf;
disp('---Harvard---')
AMATh=(AMAT_IFh+fls*AMAT_MEMh)/(1+fls)
CPIh=CPIb+(AMAT_IFh-ta)+fls*(AMAT_MEMh-ta)
2-
tau=4;tai=1;tad=2;
tfu=202;tfi=200;tfd=250;
Tfu=2.5/100;
%Taza fallo unificado
Tfd=10/100;
%Taza fallo datos
Tfi=2/100;
%Taza fallo instrucciones
fls=30/100;
%frecuencia load y store
CPIb=3;
%unificado:
AMAT_IFu=tau+Tfu*tfu;
AMAT_MEMu=1+AMAT_IFu;
AMATu=(AMAT_IFu+fls*AMAT_MEMu)/(1+fls);
CPIun=CPIb+(AMAT_IFu-tau)+fls*(AMAT_MEMu-tau);
%harvard:
AMAT_IFh=tai+Tfi*tfi;
AMAT_MEMh=tad+Tfd*tfd;
AMATh=(AMAT_IFh+fls*AMAT_MEMh)/(1+fls);
CPIhn=CPIb+(AMAT_IFh-ta)+fls*(AMAT_MEMh-ta);
disp('Pregunta 2:')
if(CPIun<min([CPIu CPIh CPIhn]))
disp('La nueva implementación de la cache unificada es la mejor')
elseif (CPIhn<min([CPIu CPIh CPIun]))
disp('La nueva implementación de la cache Harvard es la mejor')
elseif (CPIh<min([CPIu CPIhn CPIun]))
disp('La primera implementación de la cache Harvard es la mejor')
elseif (CPIu<min([CPIh CPIhn CPIun]))
disp('La primera implementación de la cache Unificada es la mejor')
end
3)
CPI base  AMAT IF , U – t acierto , U  f ls⋅ AMAT MEM , U – t acierto, U =CPI base  AMAT IF , M –t acierto , M  f ls⋅ AMAT MEM , M – t acierto , M 
t aciertoT fu⋅t falla −t acierto  f ls⋅t aciertoT fu⋅t falla −t acierto 1=t aciertoT fhI⋅t falla −t acierto  f ls⋅t acierto T fhM⋅t falla −t acierto 
T fu⋅t falla  f ls⋅T fu⋅t falla1=T fhI⋅t falla  f ls⋅T fhM⋅t falla 
T fu⋅t falla  f ls⋅T fu⋅ f ls⋅ f ls =t falla⋅T fhi  f ls⋅T fhM 
T fu⋅t falla  f ls 1=t falla⋅T
T fu =
fhi
 f ls⋅T fhM − f ls
t falla⋅T fhi  f ls⋅T fhM − f ls
t falla  f ls 1
Descargar