¿Por qué necesitamos registros en la computadora cuando tenemos RAM?

Por lo general, se necesita el doble de ciclos de CPU para obtener un byte de RAM que para acceder a un registro interno. Si desea incrementar un registro, como dice un contador, generalmente se necesita un ciclo de CPU en una CPU moderna, pero para incrementar una ubicación de RAM, primero se debe buscar, luego incrementar y luego guardar nuevamente, lo que requiere dos o tres ciclos En el caso de las operaciones aritméticas, como la adición de dos variables, la recuperación debe realizarse dos veces, por lo que lleva aún más tiempo.

Se han diseñado microprocesadores que utilizan la RAM para los registros. El que viene a la mente es el Texas TMS9900, que fue una implementación de un chip de una arquitectura de minicomputadora. Fue uno de los primeros microprocesadores de 16 bits y tenía poca competencia en el mercado cuando se lanzó. Fue un éxito (¡no!) Que probablemente nunca hayas oído hablar de él.

Las operaciones con datos en una computadora no ocurren por arte de magia. Son el resultado de un complejo sistema de cableado y puertas lógicas.

Los registros de una CPU están conectados a la unidad aritmética y lógica para que se puedan realizar operaciones en ellos. Esto implica un sistema de cableado con circuitos de retroalimentación, que puede hacer cambios en los registros dependiendo de los datos que ya están en ellos, y de los datos en otros registros.

Para realizar estas operaciones directamente en la memoria principal, sería necesario poder conectar todas y cada una de las ubicaciones de RAM en este cableado.

Hay dos formas de hacer esto:

La forma más fácil sería mantener la lógica en la CPU y leer y escribir la memoria a través del bus de memoria como parte de la operación. Sin embargo, esto ralentizaría enormemente la operación, ya que los impulsos eléctricos tendrían que viajar más lejos (y sí, a las velocidades actuales de la computadora, la distancia realmente importa. En un tic del reloj de un procesador de 3.0 GHz, un impulso eléctrico en silicio viaja aproximadamente) 3 y 1/3 cm.

En segundo lugar, se encontraría con los mismos problemas que impiden que las interfaces paralelas tengan las mismas velocidades que las interfaces seriales modernas: todos los impulsos deben llegar al mismo tiempo, por lo que todos los cables hacia y desde una ubicación de memoria particular tendrían que ser exactamente la misma longitud. Además, la velocidad de procesamiento tenderá a estar limitada por las trazas más largas necesarias para llegar a una ubicación de memoria.

Por lo tanto, en este caso, la computadora se volvería mucho, mucho más lenta. Es por eso que los sistemas modernos no solo tienen registros, sino también uno o más niveles de memoria caché.

La segunda posibilidad sería esencialmente convertir la RAM en una CPU, colocando el cableado y las puertas lógicas necesarias para la ALU en cada unidad de RAM. Por supuesto, esto aumentaría enormemente el costo de la computadora y crearía muchos más puntos posibles de falla dentro del sistema … y aún así probablemente resultaría en que cada unidad individual sea mucho, mucho más lenta que las CPU actuales.

Un registro de CPU es un área pequeña de memoria de trabajo dentro de la CPU, que le permite hacer todo el trabajo que necesita hacer con los datos que tiene disponibles de inmediato. Una de las funciones de la CPU es cambiar los datos dentro o fuera de la RAM, y lo hace copiando esos datos dentro o fuera del espacio de registro.

Imagine una habitación con una mesa de trabajo, donde tenga espacio para colocar algunas herramientas y varias hojas de tela, y muchas estanterías con espacio para almacenar rollos de tela de todo tipo y color. El espacio en la mesa es el espacio de registro de la CPU: solo puede tener algunas cosas a la vez, y esas son las cosas con las que está trabajando activamente en ese momento. Cuando hayas terminado de cortar o coser las telas que tienes allí, las recoges y las colocas en uno de los estantes (un lugar en la RAM), tal vez para recuperarlas más tarde cuando las necesites. Luego agarras otro rollo de un estante diferente y lo llevas a la mesa para medir y cortar.

Tenga en cuenta que la CPU en sí misma tiene solo un conjunto bastante pequeño de instrucciones y una pequeña cantidad de espacio con el que puede trabajar en un solo ciclo de reloj. Las CPU modernas son simplemente extremadamente rápidas y pueden realizar MUCHAS operaciones en un segundo, pero si examinara el trabajo que realizan ciclo por ciclo, en realidad no son mucho más complejas que las CPU más antiguas y lentas en términos de lo hacen y cómo lo hacen. El mismo concepto de registro antiguo sigue siendo fundamental para el funcionamiento actual de las CPU.

Los registros funcionan de la misma manera que las ubicaciones de almacenamiento en la RAM. Es decir, tienen un comportamiento de acceso aleatorio. Por esta razón, la pregunta es razonable.

Los registros podrían implementarse en RAM. Sin embargo, este enfoque no se utiliza porque los accesos a la RAM son más lentos que los accesos a los registros. Hay dos razones para esto:

  1. La RAM se implementa como una gran variedad de ubicaciones de memoria y lleva tiempo direccionar (es decir, seleccionar) una ubicación específica. Por otro lado, los registros se implementan como ubicaciones únicas y, por este motivo, son mucho más rápidos de acceder.
  2. La RAM se encuentra (con mayor frecuencia) en un chip separado que el procesador. Se consume tiempo al cruzar los límites del chip. Esta vez es bastante sustancial.

Los registros generalmente tienen muchos puertos (¡ok al menos más de uno!), Esto es útil porque si desea ejecutar una operación (digamos a = b * c) necesita en el mismo instante leer b AND c. La memoria solo tiene un puerto de acceso, por lo que debe esperar para realizar la multiplicación, pero si tiene “b” y “c” almacenados en los “registros”, puede leerlos simultáneamente y ejecutarlos inmediatamente después de la operación sin esperar a tener ambos valores.

Además, los recuerdos son más lentos que los registros, por lo que necesita un caché intermedio, pero un caché es similar a una memoria en lo que respecta a su pregunta.

¡Velocidad!

Los registros son normalmente una parte de la CPU, por lo que están físicamente más cerca de donde tiene lugar el cálculo / comparación. La CPU tiene una jerarquía de almacenamiento que le proporciona el código / datos necesarios y cada nivel de la jerarquía tiene un equilibrio entre tamaño y costo.

Antes de que otros comiencen a corregir mis números, permítanme decir que la siguiente es una guía muy aproximada de la jerarquía de almacenamiento.

  • Registros: 1k con velocidad de acceso de 1,000Gb por segundo
  • Caché de CPU: 1Mb con velocidad de acceso de 100Gb por segundo
  • RAM: 8 Gb con velocidad de acceso de 10 Gb por segundo
  • SSD: 256 Gb con velocidad de acceso de 1 Gb por segundo
  • Disco duro (HDD): 1,000GB con velocidad de acceso de 500Mb por segundo

Entonces, si diseñó una CPU para tener registros mínimos y confiar en la RAM para suministrar código / datos, la PC funcionaría aproximadamente 100 veces más lento.

Los registros son mucho más rápidos.

Y la CPU funciona directamente en la RAM.

Con ambos registros y RAM, podemos reunir lo mejor de ambos mundos, registrar pequeñas cantidades de memoria muy rápida, RAM, gigantescas cantidades de memoria muy lenta.

Porque los registros son de 100 a 1000 veces más rápidos que la RAM.

More Interesting

¿Por qué debería usar Java, dado que consume mucha RAM?

¿Puedo jugar a Assassin's Creed Syndicate con i7 6500u, 8 gb RAM, AMD Radeon R5 M335 4 GB?

¿Debo actualizar mi CPU o RAM en una MacBook Pro de 13 pulgadas utilizada para la creación de medios?

Tengo una computadora portátil HP con las siguientes especificaciones: i7 de 5a generación, 16 GB de RAM, NVIDIA de 4 GB y gráficos dedicados de 840 m. ¿Puedo jugar juegos pesados ​​con él?

Cómo calcular cuánta RAM necesitará para realizar una acción dentro de la base de datos

¿Qué tipo de servidor podría construir usando una torre vieja con 512 MB de RAM?

¿Cuál es la diferencia entre la RAM en una memoria USB y la memoria SSD en una memoria USB?

Android (sistema operativo): si Android intenta almacenar en caché la mayor cantidad de datos posible en la RAM, ¿por qué hay aplicaciones que limpian la RAM?

¿Hay algún lenguaje de programación que comprima sus datos cuando se almacenan en la RAM?

¿Cuál es la diferencia entre DDR3, DDR4 y DDR5?

¿Los teléfonos inteligentes realmente necesitan 6 u 8 GB de RAM?

¿Cuáles son algunas reseñas del DIMM DDR2 de 4 GB?

Estoy planeando comprar un Asus Zenfone 2 (2 GB de RAM, modelo FHD). ¿Es una buena elección?

¿No es cierto que si NO estamos especialmente interesados ​​en los juegos, una computadora para juegos es probablemente una pérdida de dinero ya que 8 GB de RAM con Linux MATE es perfectamente adecuada y si uno agrega un SSD rápido incluso con KDE, Gnome, Unity?

Cómo resolver un retraso en FIFA 15