¿Qué componente de software gestiona la caché de la CPU?

9

Los cachés de la CPU se utilizan mediante la explotación de la localidad temporal y espacial. Mi pregunta es quién es responsable de administrar estos cachés. ¿Es este sistema operativo el que identifica un patrón de acceso particular y luego administra (es decir, almacena los datos en) la memoria caché, utilizando llamadas de función del sistema operativo de bajo nivel?

gpuguy
fuente
Si las cachés fueran administradas por software, las CPU no harían nada en el tiempo; Además, ¿no sería una trampa 22?
Raphael

Respuestas:

8

El caché de la CPU maneja todos y cada uno de los accesos a la memoria, que es demasiado rápido para estar bajo control del software. Está completamente integrado en el hardware, ya sea en el chip de la CPU o en la placa base.

vonbrand
fuente
12

Los cachés de la CPU están operativos desde el momento en que se enciende la CPU. Ni el BIOS ni un sistema operativo son estrictamente hablando "necesarios" para controlar los cachés. El BIOS y el sistema operativo pueden cambiar la configuración de la memoria caché en la CPU, pero no controlan el funcionamiento normal, todo esto está integrado en la propia CPU.

uli
fuente
Algunos procesadores por defecto tienen habilitado el almacenamiento en caché; algo predeterminado para tenerlo deshabilitado. Tener un caché habilitado puede permitir que un procesador se comporte de manera algo controlada incluso cuando no hay RAM (por ejemplo, el procesador puede emitir un pitido al parlante varias veces); tenerlo deshabilitado inicialmente evitará la necesidad de deshabilitarlo antes de cambiar cualquier opción de configuración de memoria.
supercat
3

Depende totalmente de su plataforma de hardware (por ejemplo, Nios® II proporciona algunas instrucciones para administrar cachés). Debe leer las instrucciones y el lenguaje ensamblador . Algunos procesadores le proporcionan algunas instrucciones para administrar la memoria caché en algún nivel. por ejemplo, WBINVD proporciona reescritura y vaciado de cachés internas; iniciar la reescritura y el vaciado de cachés externos (o INVD ).

Reza
fuente