¿Puedo decir que los registros de la CPU son los determinantes finales que deciden el espacio de memoria virtual que tiene un programa / proceso?

No. Debido a que puede paginar la memoria dentro y fuera del espacio de direcciones. Busque Extensiones de ventanas de direcciones en Windows para ver un ejemplo. O cualquier computadora vieja de 8 bits con 128KiB (o 512KiB … o 4MiB para el caso) de memoria.

Para aclarar:

En este caso, paginación significa seleccionar qué región de memoria tener en el mapa de memoria de una mayor cantidad de memoria. Por ejemplo, puede tener 4 MB de memoria accesibles para una computadora de 8 bits. Tiene un bus de direcciones de 16 bits (digamos que es una CPU Z80 antigua) y puede acceder a 64 KB a la vez. Sin embargo, si divide esa región de dirección en 4 partes (bits superiores 00, 01, 10, 11), y usa esas líneas de dirección en combinación con 4 registros IO (flipflops de 8 bits) para almacenar qué líneas de dirección adicionales usar cuando los dos superiores son 00, 01, 10 y 11, puede expandir el área de memoria direccionable a costa de tener que manejar el hecho de que la CPU solo puede manejar direcciones de 16 bits, y que cada vez que necesita cambiar regiones necesita actualizar el valor del puerto.

Esto todavía existe en algunas formas hoy en día con las Extensiones de ventana de dirección en los sistemas Windows.

Esto solía llamarse paginación, pero es un término un poco sobrecargado (como muchos términos en tecnología). Generalmente es anterior al uso generalizado de MMU. También ha sido llamado “superposiciones” y “cambio de banco” por varias personas en el pasado. No tiene nada que ver con la memoria virtual o el intercambio de páginas, aunque la memoria virtual y el intercambio de páginas evolucionaron a partir de esta práctica.

Hay muchos ejemplos, algunos dados en otras respuestas que señalan que las páginas pueden intercambiarse desde un espacio de memoria extendido. Esto puede no ser lo que usted entiende por el término “memoria virtual”. Sin embargo, el ejemplo de Intel merece una cuenta más completa porque implementa memoria virtual real con registros más pequeños.

El 80186 era un procesador de 16 bits con nada más que registros de 16 bits. Sin embargo, su espacio de direcciones era de 1 megabyte. Utilizó una técnica de gestión de memoria rudimentaria (y muy irritante para el programa) que multiplicó un “registro de segmento” por dieciséis antes de agregarle la dirección de desplazamiento a la que estaba accediendo el programa. No había registros de 20 bits en la CPU, pero el bus de direcciones tenía 20 bits de ancho.

El 80286 tenía exactamente el mismo número y tamaño de registros, pero también implementó una técnica de administración de memoria virtual verdadera (aunque imposiblemente difícil de usar) que usaba esos mismos registros de segmento para hacer referencia a una tabla de direcciones de segmento. Mientras que el 80186 había agregado una dirección de segmento multiplicada al desplazamiento, utilizaba el registro de segmento para indexar una tabla de direcciones de segmento. De esta manera, teóricamente podría tener un verdadero espacio de direcciones virtuales de 1 gigabyte. En la práctica, habría sido tortuoso intentar llegar tan alto, pero podría serlo y se usó como verdadera memoria virtual, incluido el intercambio en el disco.

En cualquier CPU con un bus de direcciones de n bits, debe haber al menos un registro con n bits que alimente ese bus de direcciones. El programador no puede acceder a ese registro, por lo que no puede contarse como un “registro de CPU” en su pregunta. Sin embargo, dado que el 80286 podría implementar un espacio de memoria virtual con 30 bits de dirección, y dado que su bus de dirección física tenía solo 24 bits, su espacio de dirección virtual no se limitaba al tamaño de ningún registro en la CPU. Si quería ser pedante al respecto, por supuesto, utilizaba dos registros concatenados juntos y los tamaños de los mismos determinaban el espacio de direcciones virtuales, pero uno podría inventar arquitecturas que concatenaran tres, cuatro o un número indefinido de registros y ubicaciones de memoria.

Por lo tanto, la respuesta a su pregunta debe ser un “no” definitivo.

segmentación de memoria x86 – Wikipedia

El tamaño del registro de dirección determina cuánta memoria puede ver un programa de computadora … a la vez. Pero es absolutamente posible que una computadora tenga algún tipo de banco de memoria, o incluso una administración de nivel superior.

En 1984 trabajé para Commodore Computers en el proyecto Commodore 128. El Commodore 128 fue el seguimiento del Commodore 64, y como su nombre lo indica, tiene 128 KB de memoria normal. Pero aquí está la cosa … el procesador 8502 en esa computadora (una versión más nueva del viejo 6502 usado en Comodores, Apples, Ataris, incluso Nintendo en un punto) tiene una dirección de 16 bits … eso es suficiente para alcanzar 64KiB de memoria.

Así que teníamos un dispositivo externo que llamamos Administración de memoria. La dirección del 8502 entró en la MMU y controló dos bancos de RAM de 64 KB, algo de memoria asignada de E / S y más de 48 KB de ROM. La MMU permitió varias configuraciones de memoria, cada una de solo 64 KB en total, pero permitió RAM, ROM, etc., según sea necesario. Y entonces tenemos una máquina de 128KiB … solo 64KiB a la vez.

En el Intel 80286, también tenían un registro de direcciones de 16 bits, todavía un límite de memoria de 64 KB. Pero tiene una MMU mucho más sofisticada que admite la gestión de memoria a través de registros de página. Esto incluso se integró en el conjunto de instrucciones de la CPU principal, por lo que fue bastante eficiente cambiar las configuraciones de memoria.

Una vez que Intel fue al 80386 y obtuvo registros de direcciones reales de 32 bits, para el direccionamiento 4GiB, la gestión de memoria paginada desapareció … un poco. Dado que los chips fueron diseñados para ejecutar código antiguo, tenían que tener el soporte de la página para el código 80286 antiguo. Como tenían que tener ese hardware de todos modos, en el modo completo de 32 bits, podría configurarlo para páginas de 32 bits. No es terriblemente útil en piezas de consumo, que solo tenían un bus de direcciones de 32 bits. Pero algunos de los chips de gama alta en el día en realidad tenían una dirección física de 36 bits, para 64 GB de espacio total de memoria.

No, IBM i se ejecuta en procesadores POWER, que son de 64 bits. Dirige la memoria a 128 bits (teóricos), la gestión de la memoria está algo abstraída de lo que una máquina IBM i puede abordar.

Luego tienes procesadores como el 6502 de 8 bits, que podría tener programas que se dirigen a más de 256 bytes.

More Interesting

Me acabo de enterar de una violación de datos en un foro en el que me registré en 2013. ¿Qué debo hacer?

¿Qué es DirectX y por qué lo necesita mi PC?

¿Puedo usar una computadora portátil híbrida 2 en 1 para programar?

¿Cuál es la diferencia entre un entorno de computación en la nube y un entorno de sistema operativo interactivo multiusuario de mainframe?

¿Por qué las computadoras / teléfonos inteligentes se vuelven más lentas con el tiempo? ¿Es solo una ilusión que gradualmente con el tiempo llegas a pensar que están funcionando lentamente en comparación con cuando los compraste originalmente, incluso si borras todos los datos y comienzas de nuevo? ¿O en realidad se vuelven más lentos? ¿O tal vez el cerebro humano aprende a procesar más rápido?

¿Es mejor llevar una MacBook o una computadora portátil a una reunión de negocios?

Cómo borrar los datos de una computadora y comenzar de nuevo

Si cada transistor en una CPU moderna fuera reemplazado por un viejo tubo de vacío, ¿cuánta energía tomaría esa CPU?

¿Qué cosas hay en la placa base?

Cuando se almacena un bit en la memoria de la computadora, ¿cómo determina su ubicación su ubicación? ¿No tendrá que recordar su ubicación, y ahora tiene una nueva información para almacenar? ¿Cómo terminará esto?

¿Qué tipo de error hay si mi computadora portátil Dell muestra la luz de bloqueo numérico y el bloqueo de mayúsculas y la luz de bloqueo de desplazamiento se mantiene encendida cuando se inicia?

¿Alguna vez se ha preguntado qué sucede con los vehículos, las computadoras, las armas, etc., que los militares ya no necesitan?

¿Alguien cambia de Mac a PC?

¿Qué es un apagón y cómo puede afectar su computadora?

¿Cómo podemos eliminar la necesidad de un ventilador de refrigeración dentro de una computadora?