Los procesadores actuales son altamente paralelos. Hay dos tendencias principales de diseño: una tiende hacia la implementación de sistemas multiprocesadores con núcleos idénticos que forman un sistema homogéneo y otra que fomenta los sistemas heterogéneos, en los que la arquitectura de los núcleos puede ser diferente, puede funcionar a distintas frecuencias y, además, puede estar especializada (vectorial, GPUs y otros aceleradores).
Para ambos tipos de arquitecturas, dominantes en el mercado actual, la jerarquía de memoria es uno de los componentes más críticos. La jerarquía de memoria dentro del chip se encarga de proporcionar datos a los núcleos con la latencia y el ancho de banda adecuados. Su estructura es compleja: varios niveles privados/compartidos, diferentes políticas de gestión de contenidos, protocolos de coherencia, etc. Al igual que en los núcleos, existe una tendencia a la heterogeneidad en el almacenamiento que busca diferentes objetivos como un gran ancho de banda, una gran capacidad, un bajo consumo o una baja latencia. Esta heterogeneidad se manifiesta tanto en la organización como en la tecnología utilizada en su construcción.
Actualmente estamos trabajando en la mejora del rendimiento, eficiencia, y fiabilidad de la jerarquía de memoria para:
- Multicores
- Aceleradores
- Sistemas de tiempo real