Exámen - 2012/02 - Problema 1 - Parte b

Exámen - 2012/02 - Problema 1 - Parte b

de Ignacio Rafael Ferreira Urrutia -
Número de respuestas: 11

Buenas, tengo una duda con este ejercicio, como por cada linea de cache hay 2^3 bytes y los elementos de cada matriz son contiguos, si voy a buscar a cache primero se produce un miss y luego 2^3-1 hits por el tamaño de la linea, y esto pasa cuatro veces porque cada matriz tiene 2^5 bytes, luego CANT_MATRICES veces.

Entonces me queda que el hit rate es  \frac{(2^3-1)}{2^3} \Rightarrow \frac{(2^3-1)+(2^3-1)+(2^3-1)+(2^3-1)}{2^3+2^3+2^3+2^3}=\frac{2^2(2^3-1)}{2^5}= \frac{7}{8} = 0.875 , estaría mal?

Se supone que siempre que se va a buscar a cache se trae un byte no una palabra? como sería el acceso a la caché al ejecutar la siguiente instruccion: ADD AX,ES:[MATRICES+SI+BX]?

Primero se busca en caché la parte baja y luego la alta en dos accesos a caché distintos o como sería?

Saludos

En respuesta a Ignacio Rafael Ferreira Urrutia

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Federico Rivero -

Estimado:

Al ejecutar ADD AX,ES:[MATRICES+SI+BX] se leen 16 bits de memoria porque AX es un registro de 16 bits.. Es decir, se ensamblará en una instrucción de máquina que cargue 16 bits en una única lectura (esto es posible porque el bus de [editado]datos del 8086 es de 16 bits).

Saludos,

         Federico

En respuesta a Federico Rivero

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Ignacio Rafael Ferreira Urrutia -
Claro, lo que entendí bien es como funcionaria el tema de la caché en la instrucción, esa instrucción se cuenta como un único acceso a la caché aunque el tag,conjunto,byte refieran a un único byte? como sería la "dirección" de tag, conjunto, byte en ese caso de 16?


Se toma como que se lee de caché 16 bits en un solo acceso también como si fuera otra memoria? no se si me explico

Saludos


En respuesta a Ignacio Rafael Ferreira Urrutia

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Federico Rivero -

Ok, sí, ahora entendí a lo que te referís. Lo que sucede es que el CPU le presenta la dirección inicial de los 16 bits, y le indica al sistema de memoria que desea leer 16 bits, contabilizándose como un único acceso.

Esto podría ser diferente en caso de un acceso no alineado. Por ejemplo, si se desean leer 2 bytes a partir del último byte de un bloque, logrando que el acceso sea a dos bloques diferentes. Ese caso es más complejo pero no lo consideramos en el curso (sí se profundiza en la asignatura electiva Aspectos Avanzados de Arquitectura de Computadoras).

Saludos, 

           Federico

En respuesta a Federico Rivero

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Aldo Martin Plazzotta Aguilera -

" (esto es posible porque el bus de direcciones del 8086 es de 16 bits). "

Yo pensaba que el bus de direcciones era de 20 bits, pues se direccionan 2^20 direcciones.

Me surge la duda ¿donde se calcula la dirección final de 20 bits segmento*16 + offset ?

Yo pensaba que este calculo lo hacia el CPU y los 20 bits viajaban por el bus hasta memoria.

Alguien me puede explicar. Gracias


En respuesta a Aldo Martin Plazzotta Aguilera

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Federico Rivero -
Estimado:


Me equivoqué, quise decir que el bus de datos es de 16 bits. Edito la respuesta anterior para no generar más confusión.

Saludos,

      Federico

En respuesta a Federico Rivero

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Ignacio Rafael Ferreira Urrutia -

Entonces, si entendí bien al ejecutar la instrucción ADD AX,ES:[MATRICES+SI+BX] si hay una memoria caché, se genera un pedido a la memoria caché a través del bus de direcciones segmentado de 20 bits con el valor de ES*16+SI+BX incluyendo en el pedido que se busca traer un WORD.

Si se encuentra en la memoria caché el contenido de la dirección, la caché pone en el bus de datos de 16 bits el contenido de la memoria en esa posición, como se toma que siempre en los accesos de 16 bits los 2 bytes están siempre en la misma línea de caché se cuenta como un único acceso?

Saludos


En respuesta a Ignacio Rafael Ferreira Urrutia

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Federico Rivero -
En respuesta a Federico Rivero

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Rodrigo Ignacio Garcia Laborde -

Buenas,

Hay algo que no me queda del todo claro en la solucion de este ejercicio. Por que es que se hace mov CL, 5? no entiendo a que corresponde ese 5.

Gracias!

Adjunto dudaArq.PNG
En respuesta a Rodrigo Ignacio Garcia Laborde

Re: Exámen - 2012/02 - Problema 1 - Parte b

de Gustavo Brown -

El mov CL,5 junto con el shl BX,CL hacen que el valor del BX se multiplique por 32 (correr 5 lugares a la izquierda BX).

Como cada matriz tiene 4x4 elementos de 2 bytes cada uno, cada matriz ocupa 32 bytes.

En definitiva en el código DX está indicando el número de matriz actual que esta calculando (la variable i), lo copia a BX y lo multiplica por 32. Eso indica el desplazamiento respecto de la base del arreglo para la matrix i-esima.

Saludos,
  Gustavo