La jerarquía de memoria se refiere a los diferentes tipos de memoria disponibles en un sistema. Estos diferentes tipos de memoria se colocan en una pirámide Mientras más abajo en la jerarquía de memoria se encuentra el tipo de memoria, más lenta y barata es, pero hay mayor cantidad de ella en un sistema.
Una jerarquía de memoria normalmente consta de muchos niveles, pero en cada momento se gestiona entre dos niveles adyacentes. El nivel superior (el más cercano al procesador) es más pequeño y más rápido que el nivel inferior.
La mínima unidad de información que puede estar presente o no presente en la jerarquía de dos niveles se denomina bloque. El tamaño de un bloque puede ser fijo o variable. Si es fijo, el tamaño de memoria es un múltiplo de ese tamaño de bloque.
El éxito o fracaso de un acceso a un nivel superior se designa como acierto o fallo: un acierto (hit) es un acceso a memoria que se encuentra en nivel superior, mientras que un fallo (miss) significa que no se encuentra en ese nivel. La frecuencia de aciertos es la fracción de accesos a memoria encontrados en el nivel superior. La frecuencia de fallos es la fracción de accesos a memoria no encontrados en el nivel superior.
Como el rendimiento es la principal razón para tener una jerarquía de memoria, la velocidad de aciertos y fallos es importante. El tiempo de acierto es el tiempo para acceder al nivel superior de la jerarquía de memoria, que incluye el tiempo para determinar si el acceso es un acierto o un fallo.
Penalización de fallo es el tiempo para sustituir un bloque a nivel superior por el bloque correspondiente al nivel más bajo, más el tiempo en proporcional este bloque al dispositivo que lo ha pedido. La penalización de fallos se divide además en dos componentes: tiempo acceso (el tiempo para acceder a la primera palabra de un bloque en un fallo) y el tiempo de transferencia (el tiempo adicional para transferir las restantes palabras del bloque).
El tiempo de acceso está relacionado con la latencia del nivel más bajo de memoria, mientras que el tiempo de transferencia está relacionado con el ancho de banda entre las memorias del nivel superior y nivel inferior. La dirección de memoria está dividida en piezas que acceden a cada parte de la jerarquía. La elección de la estructura del bloque es la parte de orden superior de la dirección, que identifica un bloque en ese nivel de la jerarquía.
La dirección del desplazamiento del bloque es la parte de orden inferior de la dirección e identifica un elemento en un bloque. El tamaño de la dirección del desplazamiento del bloque es log2(tamaño del bloque); el tamaño de la dirección de la estructura del bloque es entonces el tamaño de la dirección completa en este nivel menos el tamaño de la dirección de desplazamiento de bloque.