¿Por qué requerimos RAM?

Antes de comprender la razón para tener una RAM, deberá comprender cómo funciona una CPU.

La CPU se compone de tres elementos: registros, una unidad aritmética y lógica (ALU) y una unidad de control (CU). Vamos a entender lo que cada uno de estos hace:

  1. Registrarse: contiene información (generalmente de hasta 8 bytes) para que la ALU pueda consumirla
  2. ALU: recoge datos de los registros y realiza cálculos o cualquier operación lógica y los vuelve a colocar en los registros.
  3. CU: CU hace muchas cosas … la que es relevante para nuestro contexto es obtener instrucciones y datos de la RAM y ponerlos en registros.

En aras de la simplicidad, asumiremos que estamos viendo un procesador de núcleo único sin cachés y simplificaremos los conceptos que estaban presentes en los años 70

Antes de profundizar en la pregunta real, le pediré que adivine estos números:

  1. La velocidad a la que la CPU (ALU) puede procesar instrucciones y datos y dar el resultado.
  2. La velocidad a la que puede leer e instrucciones desde el disco duro.

¡Te sorprendería descubrir que la diferencia entre esto es realmente enorme! En el orden de la magnitud de 10 ^ 7 o más [1]. Entonces, si imaginamos una computadora hipotética cuya CPU puede ejecutar una instrucción por segundo y no tiene RAM. Tendrá que buscar directamente instrucciones y datos del disco duro.

En pocas palabras, “si la CPU puede ejecutar una instrucción en un segundo, esperará unas dieciséis semanas hasta que las siguientes instrucciones y datos provengan del disco”

¡Esperar 16 semanas es un pecado! Imagina lo que podrías haber logrado si hubieras utilizado correctamente 16 semanas … (pasarías un semestre en la universidad)

Entonces, a la gente se le ocurrió una jerarquía de memoria donde podían almacenar cosas en orden de prioridad decreciente (las cosas que se usan con mucha frecuencia se mantienen cerca de la CPU y las cosas menos usadas se mantienen más lejos de la CPU). Aquí hay una comparación similar para una computadora moderna (aún suponiendo que pueda procesar una instrucción por segundo):

  1. Caché L1 (aproximadamente un segundo para recuperar)
  2. Caché L2 (tarda unos 7 segundos)
  3. Recuperación de RAM (100 segundos)
  4. SSD (aproximadamente 2 días)
  5. Disco duro (aproximadamente 16 semanas)

Esta respuesta aún está incompleta, pero espero que tenga una idea de por qué se requieren RAM y cachés en una computadora.

[1] Números de latencia: se recogen ejemplos del tiempo empleado aquí. Originalmente entregado por Jeff Dean de Google.

¡Las jerarquías de memoria serán mi tema!

Cuando se ejecuta un programa, accede a algunas partes del programa más que a otras, como por ejemplo, bucles; llamadas al kernel, etc. Por lo tanto, si las coloca para que sean más accesibles (en cuanto a la velocidad), las partes de su programa que se ejecutan con frecuencia se ejecutarán más rápido que si se accediera a ellas desde un lugar más lento. ahora el acceso rápido es costoso. por lo que necesita racionar solo la cantidad de memoria de acceso rápido (RAM) que sea necesaria (demasiado y tendrá que reducir las ganancias de rendimiento sobre su inversión). Pero aún necesita almacenamiento masivo para almacenar grandes archivos de datos que no No se accede con tanta frecuencia (¡Leer: archivos multimedia!), por lo que utiliza un medio de almacenamiento masivo de baja velocidad (HDD).

Básicamente, está haciendo un compromiso de rendimiento frente a costo y eligiendo memorias que se adapten al rendimiento de una aplicación frente a la capacidad de almacenamiento.

Los servidores generalmente tienen bases de datos o servicios que se llaman con mucha frecuencia. Por lo tanto, están diseñados para almacenar la mayoría de sus datos en la RAM. También tienen cachés mucho más grandes en sus procesadores. Pero luego, pueden optimizar el costo y usar unidades de cinta y discos duros como medios de respaldo.

Solo para señalar, eliminó la mayor razón técnica de su respuesta deseada.

Hay una publicación intuitiva detallada aquí:
Antes de que me olvide (Tipos de memoria en una computadora)

Hablemos de uno de los factores más importantes para determinar el rendimiento de un dispositivo informático.

La CPU es, sin duda, el componente más poderoso e importante de un sistema informático. He discutido esto en detalle aquí. Sin embargo, al igual que cada hombre es tan bueno como la mujer adecuada necesita que sea, la CPU debe ser compatible con un sistema de memoria bien diseñado.

La CPU es extremadamente rápida y potente. Pero necesita un flujo constante de datos ‘válidos’ y oportunos para funcionar cerca de su máxima eficiencia.

Esto es análogo a decir, un cuchillo de carnicero automatizado. El cuchillo puede ser extremadamente afilado y el lanzamiento extremadamente poderoso. Pero a menos que haya un flujo constante de carne que necesita cortar, se queda allí. No hacer nada o, peor aún, golpear continuamente contra la cinta transportadora y dañarla potencialmente.

La memoria es un sistema electrónico simple, que consta de millones de células individuales. Todas estas celdas tienen direcciones únicas. Almacenan 1 bit de datos, ya sea un ‘1’ o un ‘0’, que aquí se explica un voltaje alto o bajo.

Ahora, al igual que los humanos tienen una memoria a corto y largo plazo, una computadora también tiene 2 tipos de memoria. Una memoria permanente (o larga) (ROM – Memoria de solo lectura y tal vez un disco duro) y un “bloc de notas” a corto plazo llamado memoria RAM (memoria de acceso aleatorio).

La ROM generalmente contiene información que rara vez cambia y necesita ser preservada. Por ejemplo, puede contener un conjunto de instrucciones que la computadora debe realizar cuando se activa (llamada encendido).

La RAM, por otro lado, contiene datos que se generan al realizar diversas tareas (llamadas instrucciones). El bloc de notas debe ser lo suficientemente grande y “bien administrado” para poder almacenar la mayoría de los datos intermedios generados sin tener que borrar algunos y copiarlos de nuevo.

Diré lo que pediste no decir. RAM es mucho más rápido que el disco duro.

La verdad es que puedes usar el disco duro como RAM. Su PC funcionará correctamente. Pero el problema es que si usa el disco duro en lugar de la RAM, su PC será muy, muy lenta.