Una dirección de memoria es una ubicación, en la memoria de una computadora, de una “palabra” particular de datos. Al igual que una dirección de calle identifica de manera única un edificio, una dirección de memoria identifica de manera única un valor de memoria.
Las direcciones de memoria comienzan desde cero y aumentan hasta el tamaño de la memoria. Por ejemplo, en una computadora de 8 bits con 4K de memoria, las direcciones se ejecutarían de cero a 4095. (4 kibibytes son 2 ^ 12 bytes. Sí, kibibytes es la unidad SI correcta para la memoria. Kilobytes se usa para no volátiles almacenamiento.) Esta disposición era típica de las primeras CPU de ocho bits como las CPU 8048 u 8051 que tienen un bus de direcciones más grande que un bus de datos.
Por lo general, las direcciones de memoria están limitadas al tamaño del bus de direcciones físicas de la CPU. Aquí es donde escuchas CPU de 32 bits o 64 bits. Una CPU de 32 bits puede direccionar alrededor de 4.200 millones de bytes de datos, mientras que, en teoría, una CPU de 64 bits puede direccionar hasta 18 quintillones de bytes de datos.
- ¿Cuáles son las aplicaciones de la teoría de autómatas en simulación y modelado?
- ¿Reemplazarán el aprendizaje automático y la ciencia de datos ecuaciones diferenciales y modelos matemáticos para problemas del mundo real?
- ¿Cómo se puede conectar una bomba a la CPU de una computadora y / o computadora portátil?
- Cómo inventar nuevos algoritmos
- ¿Las computadoras podrán programarse en el futuro?
En realidad, la mayoría de las CPU modernas no tienen tanta memoria física conectada a ellas. Sin embargo, las CPU modernas también tienen acceso a “memoria virtual” y tablas de paginación que permiten reasignar la memoria virtual a la memoria física.
Esto se vuelve un poco complicado, pero generalmente significa que una CPU puede hacer que la memoria parezca ilimitada y continua para un programa de usuario cuando en realidad está fragmentada tanto en la memoria física como en la memoria virtual basada en disco. Esto se logra a través de una tabla de paginación que reasigna la dirección solicitada de un programa a una dirección física o virtual potencialmente totalmente diferente.
Además, una de las otras respuestas indica que una dirección solo puede tener el tamaño de bit de un procesador. Esto no es cierto: el ejemplo más obvio es la CPU 8086 utilizada en las primeras PC, que era un procesador de 16 bits, donde 16 bits solo pueden acceder a 2 ^ 16 bytes, o 65.536 bytes, pero esas máquinas pueden acceder a hasta 1 mibibyte, 2 ^ 20 bytes, debido a algo llamado registro ES que agregó 4 bytes adicionales de direccionamiento, creando 16 “64K segmentos” en la memoria.
Otro ejemplo es la CPU 8051 que mencioné en la parte superior que tenía un bus de datos de 8 bits, pero un bus de direcciones de 16 bits para que pudieran acceder hasta 64k de RAM o ROM.
Como puede ver, el direccionamiento de memoria en su forma más simple es bastante simple, pero se ha convertido en una parte bastante compleja de la informática. Ni siquiera pregunte sobre memoria protegida o fallas de página …