Optimización de Memoria Caché en Procesadores Nios II/f: Evaluación de Rendimiento

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,21 KB

Evaluación del Rendimiento en el Procesador Nios II/f

En el desarrollo de esta práctica se ha empleado el procesador Nios II/f, justificado por ser la única variante que incorpora memoria caché independiente tanto para datos como para instrucciones. El experimento consiste en ejecutar [número de iteraciones, ej. 50000] iteraciones accediendo a un vector V. Este planteamiento nos permite registrar y comparar los tiempos de ejecución en dos escenarios distintos: cuando todo el conjunto de datos cabe perfectamente en la caché y cuando se produce un desbordamiento de la misma.

Determinación de la Capacidad de la Caché

Analizando la tabla de resultados, concretamente fijándonos en la fila correspondiente a la Pauta [valor de la pauta inicial, normalmente 1], se deduce que la capacidad de la caché es de [tamaño de la caché identificada, ej. 512] B. Esto se evidencia porque, hasta alcanzar esa cantidad de información, duplicar el volumen de datos simplemente duplica el tiempo de ejecución de forma proporcional. Es decir, no hay penalizaciones por accesos a la memoria principal porque el vector completo entra en la caché.

Por el contrario, al subir el tamaño de los datos a [tamaño de los datos donde desborda, ej. 1024] B, se supera la capacidad de almacenamiento. Como consecuencia, la instrucción ldb empieza a generar fallos de caché continuos, forzando accesos a la memoria externa. Esto se refleja como una ruptura de la proporcionalidad en esa misma Pauta, ya que el tiempo crece mucho más del doble respecto a la ejecución anterior, cumpliéndose la condición de desbordamiento:

tCPU(X) > 2 * tCPU(1/2 X)

Cálculo del Tamaño de Bloque y Localidad Espacial

Respecto al tamaño de bloque de la caché, los datos indican que es de [tamaño del bloque identificado, ej. 4] B. Para llegar a esta conclusión, observamos el comportamiento aislando una columna donde el vector ya no cabe en caché (por ejemplo, la columna de [tamaño de los datos donde desborda, ej. 1024] B).

  • Comportamiento con pauta baja: Si utilizamos una pauta de salto inferior al tamaño del bloque, solo el primer acceso a ese bloque genera un fallo, aprovechando el resto de los bytes cargados.
  • Incremento de la pauta: Al ir incrementando la pauta (pasando a P=2, P=4...), desperdiciamos cada vez más los datos contiguos traídos de memoria, lo que hace que el tiempo total de ejecución vaya subiendo progresivamente.
  • Punto de saturación: En el momento en que la pauta iguala o supera el tamaño del bloque (es decir, cuando Pauta = [tamaño del bloque identificado, ej. 4] B), saltamos de bloque en bloque sin aprovechar en absoluto la localidad espacial.

Esto se traduce en un 100% de fallos. A partir de este punto en la columna, dado que la cantidad de accesos (E) se mantiene constante y todos fallan sistemáticamente, el tiempo de ejecución (tCPU) deja de aumentar y se estabiliza de forma constante.

Entradas relacionadas: