¿Cómo escribe la CPU la información en RAM?

10

Mi pregunta es, ¿cómo escribe la CPU datos en RAM?

Por lo que entiendo, las CPU modernas usan diferentes niveles de caché para acelerar el acceso a ram. La RAM recibe un comando de información y luego envía una ráfaga de datos a la CPU que almacena los datos requeridos (y un montón de datos adicionales que estaban cerca de la dirección que la CPU quería) en el caché de nivel más alto, la CPU luego pregunta progresivamente las diferentes cachés para enviar fragmentos de datos cada vez más pequeños por los niveles de cachés hasta que estén en el caché de nivel 1 que luego se lee directamente en un registro de CPU.

¿Cómo funciona este proceso cuando la CPU escribe en la memoria? ¿La computadora retrocede los niveles de caché (en orden inverso en comparación con la lectura)? Si es así, ¿qué pasa con la sincronización de la información en los diferentes cachés con la memoria principal? Además, ¿cómo es la velocidad de una operación de escritura en comparación con una operación de lectura? ¿Qué sucede si escribo continuamente en la RAM, como en el caso de un tipo de depósito?

Gracias por adelantado,

-Despertado

Editar: Todavía no he recibido una respuesta que pueda aceptar por completo. Quiero saber especialmente sobre la parte de sincronización de la escritura RAM. Sé que escribimos en el caché L1 directamente desde la CPU y que los datos se reducen a los niveles de caché a medida que sincronizamos los diferentes niveles de cachés y, finalmente, la RAM principal se sincroniza con el caché de nivel más alto. Sin embargo, lo que me gustaría saber es CUÁNDO las cachés se sincronizan y sincronizan con la RAM principal y qué tan rápidas son sus velocidades en relación con los comandos de lectura.

Tamara Wijsman
fuente

Respuestas:

11

Ah, esta es una de esas preguntas simples que tienen respuestas realmente complejas. La respuesta simple es, bueno, depende de cómo se realizó la escritura y qué tipo de almacenamiento en caché hay. Aquí hay una introducción útil sobre cómo funcionan los cachés .

Las CPU pueden escribir datos de varias maneras. Sin almacenamiento en caché, los datos se almacenan inmediatamente en la memoria y la CPU espera a que finalice la escritura. Con el almacenamiento en caché, la CPU generalmente almacena los datos en el orden del programa, es decir, si el programa escribe en la dirección A y luego en la dirección B, la memoria A se escribirá antes que la memoria B, independientemente del almacenamiento en caché. El almacenamiento en caché solo afecta cuando se actualiza la memoria física, y esto depende del tipo de almacenamiento en caché utilizado (consulte el enlace anterior). Algunas CPU también pueden almacenar datos de manera no temporal, es decir, las escrituras se pueden reordenar para aprovechar al máximo el ancho de banda de la memoria. Entonces, escribir en A, luego B, luego (A + 1) podría reordenarse para escribir en A, luego A + 1 en una sola ráfaga, luego B.

Otra complicación es cuando hay más de una CPU presente. Dependiendo de la forma en que esté diseñado el sistema, las escrituras de una CPU no serán vistas por otras CPU porque los datos todavía están en la primera caché de CPU (la caché está sucia). En múltiples sistemas de CPU, hacer que el caché de cada CPU coincida con lo que está en la memoria física se denomina consistencia del caché. Hay varias formas en que esto se puede lograr.

Por supuesto, lo anterior está dirigido a los procesadores Pentium. Otros procesadores pueden hacer cosas de otras maneras. Tomemos, por ejemplo, el procesador Cell de la PS3. La arquitectura básica de una CPU de celda es un núcleo PowerPC con varios núcleos de celda (en la PS3 hay ocho celdas, una de las cuales siempre está desactivada para mejorar los rendimientos). Cada celda tiene su propia memoria local, una especie de caché L1 que nunca se escribe en la RAM del sistema. Los datos se pueden transferir entre esta RAM local y la RAM del sistema utilizando transferencias DMA (Acceso directo a memoria). La celda puede acceder a la RAM del sistema y la RAM de otras celdas utilizando lo que parecen ser lecturas y escrituras normales, pero esto solo desencadena una transferencia de DMA (por lo que es lenta y realmente debería evitarse). La idea detrás de este sistema es que el juego no es solo un programa,

En resumen, escribir en la RAM solía ser muy simple en los días en que la velocidad de la CPU coincidía con la velocidad de la RAM, pero a medida que la velocidad de la CPU aumentó y se introdujeron los cachés, el proceso se volvió más complejo con muchos métodos diferentes.

Skizz

Skizz
fuente
2

Sí, es retroceder los niveles de caché y guardar en la memoria, pero la nota importante es que en el sistema de procesamiento múltiple, la caché se comparte entre 2 o más procesadores (núcleo) y los datos deben ser consistentes, esto se hizo haciendo caché compartida para todos los multiprocesadores o caché diferente, pero guarde la coherencia mediante el uso de la sección Crítica (si los datos en un caché cambiaron, lo obligan a escribir en la memoria y actualizar otro caché)

Am1rr3zA
fuente