¿Cómo lee la CPU los datos de la RAM?

1

En una computadora de propósito general (como una PC normal), ¿cómo lee CPU el RAM , asumiendo que primero lee desde el Cache ?

Suponiendo que cache es un caché asociativa de conjuntos n-way . Una vez más, tendríamos L1 Cache y L2 Cache .

  1. Por lo general, CPU lee un block de los datos del RAM . Así que estos blocks pueden ser varios words . ¿Esto no cuesta mucho tiempo / ciclos de reloj? ¿Cómo es / puede hacerse esto más eficiente? (No se trata de usar el caché aquí, sino de la transferencia de datos)

  2. RAM es bastante más lento que el CPU , ¿cómo el CPU sigue siendo eficiente?

pregunta Neil Patrao

2 respuestas

2

Hay rendimiento y latencia.

En núcleos lentos muy simples, el caché se ejecuta a la misma velocidad que la CPU y puede proporcionar datos en 1 ciclo, por lo que los datos están disponibles de inmediato sin demoras. Cuando hay una falta de caché, los datos se toman de la memoria principal y la latencia inicial puede ser de más de 10 ciclos. Lo bueno es que una vez que los primeros datos están disponibles, los siguientes datos se pueden obtener rápidamente, de ahí la idea de transferencias de ráfagas y rellenos de caché. La CPU solo necesita un byte o una palabra de 32 bits, pero 32 o 64 bytes se transfieren a la vez de la memoria al caché.

En las CPU más avanzadas, las que tienen L1, L2, DRAM y reloj gigahertz, incluso el contenido de la caché L1 no se puede obtener inmediatamente. Para la instrucción, existen mecanismos para predecir el flujo de instrucción y obtener instrucciones de antemano: obtener continuamente direcciones consecutivas, a menos que la instrucción sea una rama, una llamada, ... Para los datos, es más complejo. Mediante la canalización, algunas CPU pueden tener varias transferencias de datos pendientes antes de detenerse. La solución actual real para mitigar las latencias largas es la ejecución fuera de orden, la CPU hace el mayor trabajo posible, incluso ejecutando instrucciones que no están en orden de programa, para ocultar la larga latencia de instrucciones como la lectura y escritura de datos.

    
respondido por el TEMLIB
1
  1. Sí. Al utilizar una RAM más eficiente, como la memoria que admite el modo de ráfaga.

  2. Al usar caché, que es una RAM más rápida, junto con un controlador de memoria que continúa leyendo desde la RAM mientras la CPU está ocupada ejecutando lo que está en el caché.

respondido por el Ignacio Vazquez-Abrams

Lea otras preguntas en las etiquetas