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