PUERTA | PUERTA-CS-2006 | Pregunta 41

Una CPU tiene un caché con un tamaño de bloque de 64 bytes. La memoria principal tiene k bancos, cada banco tiene c bytes de ancho. Los fragmentos de c − bytes consecutivos se mapean en bancos consecutivos con ajuste. Se puede acceder a todos los bancos k en paralelo, pero se deben serializar dos accesos al mismo banco. Un acceso a un bloque de caché puede implicar múltiples iteraciones de accesos a bancos paralelos dependiendo de la cantidad de datos obtenidos al acceder a todos los k bancos en paralelo. Cada iteración requiere decodificar los números de banco para acceder en paralelo y esto toma. k/2 ns La latencia de un acceso bancario es de 80 ns. Si c = 2 y k = 24, la latencia de recuperar un bloque de caché que comienza en la dirección cero de la memoria principal es:
(A) 92 ns
(B) 104 ns
(C) 172 ns
(D) 184 ns

Respuesta: (D)
Explicación: Explicación:

Tamaño del bloque de caché = 64 B
Número de bancos de memoria principal K = 24
Tamaño de cada banco C = 2 bytes
, es decir, cada banco en la memoria es de 2 bytes y hay 24 de esos bancos. Entonces, en una iteración podemos obtener 2*24 = 48 bytes y obtener 64 bytes requiere 2 iteraciones.
Por lo tanto, el tiempo necesario para el acceso paralelo T = tiempo de decodificación + tiempo de latencia.
T = (K/2)+latencia
= 12+80 = 92 ns
Pero C=2 para accesos
=2*92=184ns
(ya que en cada iteración necesitamos seleccionar los bancos y el tiempo de decodificación del banco (k/2) es independiente del número de bancos a los que vayamos a acceder)

Esta solución es aportada por Nitika Bansal .
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *