¿Cuál es la relación entre RAM y la CPU?

Sin más contexto, hay varias formas de interpretar esa pregunta.

Algunos son:

  • ¿Cómo funcionan juntos una CPU y RAM para ejecutar una aplicación?
  • ¿Cómo se comunican la CPU y la RAM (dado que funcionan a diferentes frecuencias de reloj)?
  • ¿Existe una cantidad específica de RAM que sea óptima según la arquitectura de la CPU?
  • ¿Existe un límite en la cantidad de RAM basada en la arquitectura de la CPU?

Hay incluso más formas posibles de interpretar eso en función de la definición de “CPU”. Para esta pregunta, ¿se limita la “CPU” a un núcleo de procesamiento individual de una CPU moderna? ¿O es lo que puede recoger en el paquete de la CPU? Este último puede tener 1, 2, 4 o más núcleos, cierta cantidad de caché L2 y L3 integrada (que es un tipo especial de RAM) y todo el hardware para comunicarse con los otros componentes del sistema (como RAM).

Voy a elegir el primero para mi respuesta y limitarlo a un núcleo individual. Tocaré el segundo también sin demasiados detalles.

La CPU en el nivel más bajo tiene la capacidad de obtener una “palabra” de datos de la memoria o almacenar una palabra de datos en la memoria (donde una palabra es típicamente de 32 o 64 bits). Una “palabra” podría ser una instrucción que es parte de una aplicación ejecutable o datos que la aplicación está manipulando. La CPU puede realizar operaciones aritméticas (por ejemplo, agregar estas dos palabras juntas) en palabras de datos u operaciones de control (por ejemplo, si esta palabra es mayor que esta otra palabra, obtenga instrucciones [más palabras] de aquí, de lo contrario obtenga instrucciones de allí) en palabras de instrucción. En cualquier caso, los datos se almacenan internamente en la CPU durante el tiempo que se necesitan. (A propósito, voy a evitar hablar de registros dentro de la CPU).

Una CPU tiene una cantidad muy limitada de almacenamiento de palabras. Solo tiene espacio para contener las palabras con las que está ejecutando el control u operando aritméticamente más un poquito más. Todo el almacenamiento interno de la CPU tiene que funcionar a la velocidad de la CPU. Tener mucho espacio para instrucciones / datos a esta velocidad dentro del núcleo es costoso. Debido a esto, la mayoría de las instrucciones de una aplicación (es decir, el programa en sí) y los datos se almacenan en uno o más tipos de RAM: memoria caché L1, L2 (y a menudo L3) y módulos de RAM del sistema tradicional que hoy en día generalmente consisten en uno o más DIMM. La última es la RAM que un usuario compraría e instalaría en una placa base.

La rapidez con que se pueden transferir palabras entre la CPU y la RAM depende de sus velocidades relativas, pero es seguro decir que las CPU actuales funcionan mucho más rápido de lo que la RAM puede recuperar o almacenar palabras. Para aliviar un poco ese problema, un núcleo de CPU típico de hoy también incluirá cierta cantidad de caché L1. Puede pensar en L1 Cache como RAM, aunque implementada de manera diferente a la RAM del sistema, que funciona a casi la velocidad de la CPU. Hubo un tiempo en que el caché L1 funcionaba cerca de las velocidades de la CPU, pero los aumentos de velocidad (frecuencia) de la CPU han superado los tiempos de acceso a la RAM (es decir, la capacidad de buscar y almacenar), por lo que ya no es el caso.

Aún así, en comparación con la RAM del sistema, el caché L1 es increíblemente rápido. Sin embargo, también es costoso y complica la arquitectura del núcleo al agregar calor, aumentar las trazas del circuito (líneas) y aumenta la posibilidad de defectos de fabricación (debido al mayor número de transistores y trazas para soportarlo). En cambio, se utilizan cachés L2 más grandes, pero más lentos e incluso más grandes e incluso más lentos (y los cachés L4 también están ganando popularidad). L2 es más rápido que L3, pero más lento que L1. Todos, sin embargo, son mucho más rápidos que la RAM del sistema en DIMM. También son mucho más caros de producir en comparación con la RAM del sistema.

Ignoré muchos detalles porque son disertaciones sobre ellos mismos:

  • Precarga de datos del núcleo de la CPU, predicción de bifurcación, etc.
  • Arquitectura asociativa de caché y etiquetado
  • Cómo la CPU sabe dónde encontrar / almacenar datos, ya que puede estar en cachés L1, L2 o L3 o RAM del sistema. (Incluyendo aciertos / errores de caché y algoritmos de reemplazo de caché).
  • El caché L1 generalmente se divide en secciones separadas para datos y palabras de instrucción
  • Exactamente donde se guardan las memorias caché L2 y L3 (como en el caso de que se mantengan en un paquete central frente a compartidas entre núcleos)

Conceptualmente, puede pensar que la relación entre RAM y CPU es similar a la relación entre un escritorio y la persona que lo usa. El escritorio (RAM) es un espacio de trabajo donde la persona (CPU) deposita el papeleo y otras cosas que necesita tener a su alcance inmediatamente para hacer su trabajo de manera eficiente. Aumentar la cantidad de RAM es análogo a comprar un escritorio más grande: tiene más espacio para distribuir esa documentación importante que necesita mirar, o en cualquier caso.

Al igual que comprar un escritorio más grande, también hay un límite para el beneficio. No necesita tener todo el valor de un archivador de documentos distribuidos en su escritorio para realizar su trabajo diario, por lo que no es realmente beneficioso tener un escritorio lo suficientemente grande como para hacerlo. Es lo mismo con la RAM. En algún momento, agregar más RAM a un sistema ya no aumentará el rendimiento, porque el trabajo que realiza su CPU no lo requiere.

También hay varias capas de caché en la CPU que cumplen la misma función, pero son incluso más rápidas que la RAM, aunque solo pueden contener una pequeña fracción de la información. Por lo tanto, solo la información absoluta de mayor prioridad se almacena allí en lugar de RAM. Tiendo a pensar en el caché en la CPU como análogo al trozo de papel que estás leyendo en ese instante en tu escritorio. Tal vez la analogía no sea perfecta, pero creo que hace que la relación sea más fácil de visualizar.

En términos simples, si la CPU es su boca, entonces el carnero es sus manos que usa para alimentar alimentos (instrucciones) a su boca (CPU).

La unidad central de procesamiento es donde se ejecutan las instrucciones (sumas, restas, etc.) en los datos de entrada. Estos datos se almacenan en el disco duro para un almacenamiento a largo plazo y persistente. Pero dado que acceder al disco duro es un proceso lento y una CPU puede ejecutar literalmente miles de millones de instrucciones por segundo, los datos se deben alimentar a la CPU a velocidades comparables. Aquí es donde entra la RAM porque ofrece un acceso a datos mucho más rápido. Tan pronto como ejecutas un programa, su contenido se carga en la RAM desde el disco duro y luego es capturado por la CPU.

Solo para su información, a continuación se muestra el orden de los dispositivos de almacenamiento con respecto a su tiempo de acceso. De más rápido a más lento de izquierda a derecha

Memoria caché de la CPU

Si lee algún libro sobre algún tema relacionado con la informática, si se menciona la palabra simple ‘memoria’ se refiere a ‘RAM’.

En la imagen a continuación, cuando baja, el tamaño aumenta, pero la velocidad disminuye.

Simplemente, cuando se trata de algunos datos, como un juego simple, o editando un archivo, ese archivo se almacena en la RAM para que la CPU pueda obtener datos de él más rápido que si se trata del disco duro, por ejemplo …

La CPU no puede confiar en los registros que contiene porque son muy pequeños.

Esa es la vista del paisaje con ignorar muchos problemas.

La memoria (memoria de acceso aleatorio) es un activo para que la CPU (unidad central de procesamiento) complete sus tareas. Si la CPU es una pistola de clavos, la RAM son clavos.

A medida que la CPU procesa tareas, ejecuta aplicaciones, necesita / usa memoria. Si no hay suficiente memoria para completar una tarea activa, la CPU puede mover algunos datos en la memoria a los que no se ha accedido recientemente al disco. Esto libera memoria para uso activo.

La CPU utiliza la memoria como recurso para completar sus tareas, respondiendo al teclado, las solicitudes de LAN y las aplicaciones en ejecución.

Cuando abre un programa, su procesador solicita la RAM para recuperarlo de su disco duro para interactuar con él. Una vez que ha recuperado el programa, el procesador manipula los datos. Cuanto más rápida sea la velocidad de RAM, más rápido se recuperará y manipulará el programa. Cuanto mayor sea su capacidad de RAM, más programas podrá ejecutar simultáneamente.

En general amigable, pero si alguno se cae, espere un gran choque. Sin tener una RAM demasiado técnica, generalmente es un área de almacenamiento temporal donde los programas y los datos asociados se cargan desde un dispositivo de almacenamiento (generalmente un disco duro) para ser ejecutado (ejecutado) por la CPU. La RAM es un componente crítico de una computadora sin que nada más pueda funcionar.

  • RAM – Memoria de acceso aleatorio, almacena su programa
  • CPU: Unidad central de procesamiento, obtiene las instrucciones (código / programa) de la RAM y las ejecuta.

La RAM contiene datos e instrucciones para un programa, y ​​la CPU obtiene instrucciones de la RAM, las decodifica, las ejecuta y luego las vuelve a escribir en la RAM.

La CPU depende de la existencia de RAM para su funcionamiento, sin embargo, la RAM no necesita una CPU para realizar su tarea. Aclamaciones.