Memoria de la computadora: ¿Qué es una dirección?

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.

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 …

Es como con casas en una calle. Tienes casas, y cada casa tiene un número que dice dónde está en la calle.

Con RAM, tiene una ubicación de memoria (casa) y tiene una dirección (número de calle).

Cuando envía una carta a una casa, coloca la dirección en el sobre.

Cuando envía datos para almacenarlos en la RAM, le indica a la CPU la dirección del byte (s) para almacenarlos.

Es realmente un concepto fácil.

El número de una ranura de memoria por la cual puede buscar (o escribir) el contenido almacenado en la ranura. Por ejemplo, memoria de impresión [25] o memoria [25] = 1.