DICCIONARIO DE INFORMÁTICA Y TECNOLOGÍA
  ¿Qué significa Dirección de memoria? - Información sobre Dirección de memoria

Definición de Dirección de memoria

Alegsa.com.ar
Diccionario tecnología
Memorias
Dirección de memoria
Leandro Alegsa (Contacto) 2016-07-18
Anuncios

En computación, la dirección de memoria es un identificador para una ubicación única de la memoria primaria, con las cuales una CPU u otros dispositivos puede almacenar, modificar o recuperar datos de la misma.

Las direcciones de memoria son un número fijo de dígitos, siendo un número entero sin signo. Por lo general, las direcciones de memoria se expresan en base hexadecimal para facilitar su lectura. Por ejemplo, una dirección de memoria en un procesador 32 bits podría en binario 1011 0111 1011 1010 1100 0011 1100 0111, lo que en hexadecimal sería B7BAC3C7.

En la mayoría de las computadoras modernas cada dirección de memoria apunta a un solo byte de almacenamiento (el byte es la unidad de memoria mínima a la que se puede acceder), lo que es llamado direccionamiento por bytes. Algunos microprocesadores son diseñados para direccionamiento por palabras, en estos casos las unidades de almacenamiento mínimas son más grandes que un byte.

Una dirección de memoria absoluta (explícita o específica), indica con precisión la ubicación en memoria sin el uso de ninguna referencia intermedia.

En inglés: memory address.


Tipos de direcciones de memoria: dirección física y dirección lógica o virtual

Tanto la memoria física como la memoria virtual emplean direccionamiento o direcciones de memoria para acceder a sus datos.

En la memoria física, la dirección de memoria permite acceder a la memoria RAM real (es decir, los chips RAM insertados a la placa madre), y la dirección de memoria virtual hace referencia a un espacio del disco duro que simula memoria RAM (el llamado archivo de paginación en algunos sistemas operativos o memoria virtual).

Para más información ver: dirección lógica de memoria y memoria virtual.


Unidades de resolución de memoria: históricas y actuales

La mayoría de las computadoras modernas son direccionables por byte, como se dijo anteriormente, eso significa que cada dirección identificará un byte (de 8 bits) de almacenamiento. Los datos que son demasiado grandes para ser almacenados en un único byte residirán en múltiples bytes, ocupando una secuencia consecutiva de direcciones.

Existen computadoras direccionables por palabra, donde la unidad mínima de direccionamiento es la palabra del procesador. Por ejemplo, en las minicomputadoras Data General Nova (lanzadas en 1969) o las computadoras Texas Instruments TMS9900 (de 1976) empleaban palabras de 16 bits. También hubo computadoras mainframe de 36 bits que empleaban direccionamiento de palabra de 18 bits, como por ejemplo la PDP-10 (desarrolladas entre 1966 y 1982), dando un espacio de direcciones de 2^18 palabras de 36 bits, aproximadamente 1 MB de almacenamiento.

La eficiencia del direccionamiento de memoria depende del tamaño de bit del bus usado para las direcciones: mientras más bits se emplean, más direcciones están disponibles para la computadora. Por ejemplo, una máquina de direccionamiento de byte de 8 bits con un bus de direcciones de 20 bits (ejemplo: Intel 8086) puede direccionar 2^20 (1.048.576) ubicaciones de memoria (1 MB de memoria). Mientras que un bus de 32 bits (ejemplo: Intel 80386) direcciona 2^32 (4.294.967.296) ubicaciones (lo que equivale a un espacio de direcciones de 4 GB).

En contraste, una máquina de direccionamiento de palabra de 36 bits con un bus de direcciones de 18 bits direcciona sólo 2^18 (262.144) ubicaciones de 36 bits (9.437.184 bits), equivalente a 1.179.648 bytes de 8 bits, o 1152 KB o 1,125 MB (algo más que un 8086).

Algunas computadoras antiguas (computadoras decimales) eran direccionables a dígitos decimales. Por ejemplo, las computadoras IBM 1620 de 1959.


Longitud de palabra versus longitud de dirección

La longitud de palabra es una característica dada a una determinada arquitectura de computadora. Denota el número de dígitos que la CPU puede procesar por vez. Los procesadores modernos, incluyendo sistemas embebidos, usualmente tienen un tamaño de palabra de 8, 16, 24, 32 o 64 bits; la mayoría de las computadoras de propósito general (PCs) usan 32 o 64 bits actualmente. También se han incluido otros tamaños en computadoras del pasado como 8, 9, 10, 12, 18, 24, 36, 39, 40, 48 y 60 bits.

A menudo, cuando nos referimos a longitud de palabra en computadoras modernas, también estamos describiendo el tamaño del espacio de direcciones en esa computadora. Por ejemplo, una computadora que dice "32 bits" también usualmente permite direcciones de memoria de 32 bits; una computadora de 32 bits direccionable a byte puede direccionar 2^32 = 4.294.967.296 bytes de memoria (o 4 GB). Esto permite a una dirección de memoria ser eficientemente almacenada en una palabra.

De todas maneras esto no siempre es verdadero:

Las computadoras pueden tener direcciones de memoria más grandes o más pequeñas que su longitud de palabra. Por ejemplo, muchos procesadores de 8 bits, como el MOS Technology 6502 de 1975, soportan direcciones de 16 bits, si no, se habrían limitado a tener apenas 256 bytes de direccionamiento de memoria.

Los procesadores de 16 bits Intel 8088 e Intel 8086 soportan direccionamiento de 20 bits vía segmentación, permitiéndoles acceso a 1 MB en lugar de 64 KB de memoria. Todos los procesadores Intel Pentium desde el Pentium Pro incluyen PAE (Physical Address Extensions o extensión de dirección física) que soporta mapeo de direcciones físicas de 36 bits a direcciones virtuales de 32 bits.

En teoría, las modernas computadoras de 64 bits de direccionamiento de byte pueden direccionar 2^64 bytes (16 exabytes), pero en la práctica la cantidad de memoria está limitada por la CPU, el controlador de memoria o el diseño del circuito impreso (por ejemplo, número de conectores físicos de memoria).


Contenido de cada ubicación de memoria

Cada ubicación de memoria en un programa de computadora almacenado guarda un número binario o un número decimal de algún tipo. Su interpretación, como datos de algún tipo de dato o como una instrucción y su uso serán determinados por las instrucciones que los recibe y manipula.

Los primeros programadores combinaban instrucciones y datos en palabras como forma de ahorrar memoria, cuando esta era realmente cara: la antigua computadora Manchester Mark 1 (de 1948) tenía un espacio en sus palabras de 40 bits para almacenar algunos pocos bits de datos (su procesador ignoraba una pequeña sección de bits justo en el medio de una palabra) y esta pequeña sección era utilizada muchas veces como almacenamiento de datos adicional.

Los programas autoreplicantes (como los virus informáticos) se tratan a sí mismos como datos y a veces como instrucciones. El código que se automodifica (llamado también código mutante) está mayormente en desuso en la actualidad, ya que su evaluación y mantenimiento resulta desproporcionadamente difícil para ahorrar simplemente unos pocos bytes; además puede dar resultados incorrectos e inesperados debido a los supuestos del compilador o del procesador sobre el estado de la máquina; aún así todavía se utiliza deliberadamente con gran cuidado.


Espacio de direcciones en programación de aplicaciones

En el entorno multitarea moderno, un proceso de aplicación por lo general tiene en su espacio de direcciones (o espacios) pedazos de memoria de los siguientes tipos:

- Código máquina, que incluye: el propio código del programa (históricamente conocido como segmento de código) y bibliotecas compartidas.

- Datos, que incluye: datos inicializados (segmento de datos); variables sin inicializar (pero asignadas); pila de llamada; heap; memoria compartida y archivo mapeado en memoria (memory-mapped file).

Algunas partes del espacio de direcciones pueden no ser mapeadas en lo absoluto.


Esquemas de direccionamiento

Un programa de computadora puede acceder a una determinada dirección dada explícitamente (en programación de bajo nivel es usualmente llamada dirección absoluta o dirección específica, y en lenguajes de alto nivel es conocida como tipo de dato puntero). Pero un programa también puede usar direcciones relativas que especifica una ubicación en relación con algo más (la dirección base). Existen muchas más modos de direccionamiento indirecto.

Mapear direcciones lógicas a memoria física o virtual también agrega varios niveles de indirección.






¿Mejoramos la definición?
Puntos: 5 (3 votos)






Respondemos tus consultas o comentarios a continuación:


¿Dudas? ¿necesita más información? Escriba y responderemos a tu email: clic aquí



 




Diccionario de informática
  Búsqueda por letras:
A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0,9
 
Búsqueda por categorías
: Almacenamiento - Aplicaciones - Audio - Compresión - Desarrollo web - Discos ópticos - Inteligencia Artificial - Memorias - Microprocesadores - Seguridad informática - Sistemas de archivos - Terminología de programación - UNIX - Windows - ver categorías

 
Búsqueda por palabras:





Preguntas

No hay ningún comentario todavía

Todos los derechos reservados © 1998 - 2016 - ALEGSA - Santa Fe, Argentina.
Políticas del sitio web - Contacto - Publicidad