Optimización de la Arquitectura de Memoria y Pipeline en Sistemas Informáticos

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

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

Jerarquía de Memoria

Concepto

Una jerarquía de memoria consiste en L niveles. La memoria del nivel i (Mi) tiene componentes caracterizados por: el tamaño Si, el tiempo promedio de acceso Ti, y el costo por bit Ci. Un nivel i puede contener varios módulos Mij, no iguales pero sí muy parecidos en función y atributos Si, Ti, Ci.

La Jerarquía de Memoria se organiza de manera que Ci+1 < Ci, Si+1 > Si y Ti+1 > Ti. Generalmente, el espacio de direcciones del nivel i es un subconjunto del de i+1, aunque la dirección Ak en i no es necesariamente Ak en i+1. La información en i suele estar en i+1, aunque la de i puede estar más actualizada (problema de consistencia de datos).

Objetivos

  • Corresponder la velocidad de la CPU con la tasa de transferencia del elemento más bajo de la jerarquía.
  • Obtener un rendimiento adecuado a un costo razonable (equilibrar la relación costo/rendimiento).
  • Lograr la velocidad de la memoria más rápida al costo de la más lenta.
  • Simular una memoria grande, rápida y económica.
  • Lograr la mayor tasa de acierto en el nivel superior (entendiendo que un fallo implica la búsqueda en los niveles inferiores).

Pipeline

Requerimientos Básicos de Hardware

  • Agregar buffers interetapas (latches) para posibilitar un funcionamiento sincrónico.
  • Duplicar o modificar los recursos que se usen en más de una etapa para evitar colisiones y permitir el solapamiento (cada etapa tiene su hardware dedicado).
  • Agregar buffers adicionales para almacenar valores que se requerirán más adelante en el pipeline.

Riesgos (Hazards)

Son situaciones que desvían el pipeline del CPI ideal (1). Generalmente se detectan en la etapa de decodificación. Existen 3 tipos:

  • Estructural: Se produce si alguna combinación de instrucciones no puede aceptarse debido a un conflicto de recursos (duplicar, pipelinear, desvirtualizar).
  • Datos: Se da si no hay independencia de rango-dominio entre las instrucciones (Forwarding, Estático y Dinámico).
  • Control: Aparecen a partir de instrucciones que cambian el flujo secuencial de las mismas (Estático (4), Dinámico (BPB, BTB, Folding)).

Memoria Principal

Después de la caché, la memoria principal es el próximo nivel descendente en la jerarquía. Satisface las demandas de la caché y sirve como interfaz de E/S.

Se pueden distinguir dos atributos en cuanto a rendimiento:

  • Tiempo de acceso
  • Velocidad de transferencia

El que media entre el requerimiento y la disponibilidad del dato es el tiempo de ciclo.

El tiempo de ciclo condiciona el throughput. Para mejorarlo:

  • Palabras más anchas
  • Interleaving de memoria

Comportamiento del Programa (Paginación vs. Segmentación)

Palabras por direccionamiento:
1/2
Visible al programador:
No/Sí
Espacios lineales:
1/Muchos
Puede exceder el tamaño de la MP:
Sí/Sí
Reemplazo del Bloque:
Trivial/Difícil
Inventada para:
Simular grandes memorias/Proveer múltiples espacios
Uso de memoria ineficiente:
Fragmentación interna/Fragmentación externa
Eficiencia en la transferencia a memoria secundaria:
Sí/No siempre
Compartición (Sharing):
Complejo/Más o menos realizable
Manejo de espacio lógico:
Limitado/Muy bueno

Entradas relacionadas: