Tema 1. Características de las memorias

Las características más importantes de los diferentes tipos de memoria son la localización, la capacidad, el método de acceso, la organización de los datos en una memoria, el tiempo de acceso y velocidad, y el coste. Las estudiaremos en este apartado.

1.1. Localización de la memoria.

Podemos clasificar los tipos de memoria según su localización dentro del computador. Básicamente, se pueden distinguir: memoria dentro del chip del procesador, memoria interna (memoria en la placa base del computador) y memoria externa.

Dentro del chip del procesador habitualmente están los registros y uno o varios niveles de memoria caché.

La memoria interna corresponde a la memoria principal (memoria RAM del computador) y adicionalmente un nivel de memoria caché o varios.

La memoria externa corresponde a los dispositivos de almacenamiento secundario, como discos duros, unidades ópticas (CD-ROM, DVD, o Blu-ray), unidades de cinta, etc.

1.2. Capacidad de la memoria.

La capacidad (o tamaño de la memoria) hace referencia a la cantidad de información que se puede almacenar. La unidad utilizada para especificar la capacidad de almacenamiento de información es el byte (1 byte = 8 bits), y a la hora de indicar la capacidad, se utilizan diferentes prefijos que representan múltiplos del byte.

En el sistema internacional de medidas (SI) se utilizan prefijos que representan múltiplos y submúltiplos de una unidad; estos prefijos SI corresponden siempre a potencias de 10.

Prefijos SI

Cada prefijo del sistema internacional recibe un nombre diferente y utiliza un símbolo para representarlo. Los prefijos que utilizaremos más habitualmente son:


Ejemplos de prefijos SI

103 bytes = 1.000 bytes = 1 Kilobyte (KB o Kbyte)

106 bytes = 103 KB = 1.000 KB = 1 Megabyte (MB o Mbyte)

109 bytes = 103 MB = 1.000 MB = 1 Gigabyte (GB o Gbyte)

1012 bytes = 103 GB = 1.000 GB = 1 Terabyte (TB o Tbyte)

Ahora bien, en informática, la capacidad de almacenamiento habitualmente se indica en múltiplos que sean potencias de 2; en este caso se utilizan los prefijos definidos por la International Electrotechnical Commission (IEC).

Prefijos IEC

Los prefijos IEC representan múltiplos para las unidades de información bit y byte. Los nombres se han creado añadiendo el término binario a los prefijos SI. Por ejemplo kibi sería la contracción de kilo binario. Los prefijos que utilizaremos más habitualmente son:



Ejemplos de prefijos IEC

210 bytes = 1.024 bytes = 1 KiB (kibibyte)

220 bytes = 1.024 KiB = 1 MiB (mebibyte)

230 bytes = 1.024 MiB = 1 GiB (gibibyte)

240 bytes = 1.024 GiB = 1 TiB (tebibyte)

La industria utiliza mayoritariamente las unidades SI. Por ejemplo, si nos fijamos en las características de un disco duro que se comercialice con 1 TB de capacidad, realmente la capacidad del disco será de 1.000 GB = 1.000.000 MB = 1.000.000.000 KB = 1.000.000.000.000 bytes.

1.3. Métodos de acceso.

Cada tipo de memoria utiliza un método a la hora de acceder a las posiciones de memoria. Hay métodos de acceso diferentes característicos de cada tipo de memoria:

1) Secuencial. Se accede desde la última posición a la que se ha accedido, leyendo en orden todas las posiciones de memoria hasta llegar a la posición deseada. El tiempo de acceso depende de la posición a la que se quiere acceder y de la posición a la que se ha accedido anteriormente.

2) Directo. La memoria se organiza en bloques y cada bloque de memoria tiene una dirección única, se accede directamente al principio de un bloque y dentro de este se hace un acceso secuencial hasta llegar a la posición de memoria deseada. El tiempo de acceso depende de la posición a la que se quiere acceder y de la última posición a la que se ha accedido.

3) Aleatorio. La memoria se organiza como un vector, en el que cada elemento individual de memoria tiene una dirección única. Se accede a una posición determinada proporcionando la dirección. El tiempo de acceso es independiente de la posición a la que se ha accedido y es independiente de la última posición a la que se ha accedido.

Las operaciones básicas utilizadas cuando trabajamos con la memoria son:

  • Operación de lectura: en esta operación hay que proporcionar a la memoria la dirección donde se encuentra la información deseada. La acción que hace la memoria consiste en suministrar la información contenida en la dirección indicada.

  •  Operación de escritura: en esta operación hay que suministrar a la memoria la información que se debe almacenar y la dirección de memoria donde se la quiere almacenar. La acción que se lleva a cabo consiste en registrar la información en la dirección especificada.

4) Asociativo. Se trata de un tipo de memoria de acceso aleatorio donde el acceso se hace basándose en el contenido y no en la dirección. Se especifica el valor que se quiere localizar y se compara este valor con una parte del contenido de cada posición de memoria; la comparación se lleva a cabo simultáneamente con todas las posiciones de la memoria.

1.4. Organización de los datos de una memoria.

En este subapartado solo nos referiremos a la manera de organizar los datos en memorias que se encuentren en el chip del procesador y en la memoria interna. La organización de la memoria externa se lleva a cabo de manera diferente.

Básicamente, los elementos que hemos de tener en cuenta son los siguientes:

1) Palabra de memoria. Es la unidad de organización de la memoria desde el punto de vista del procesador; el tamaño de la palabra de memoria se especifica en bytes o bits. Es el número de bytes máximo que se pueden leer o escribir en un solo ciclo de acceso a la memoria.

Ejemplo

Memoria de 2Kbytes con una palabra de memoria de 2 bytes. Por lo tanto, necesitaremos 10 bits para poder hacer referencia a las 1.024 (210) posiciones de memoria que almacenarán 2 bytes (16 bits) cada una.


2) Unidad de direccionamiento. La memoria interna se puede ver como un vector de elementos, una colección de datos contiguos, en la que cada dato es accesible indicando su posición o dirección dentro del vector.

La unidad de direccionamiento especifica cuál es el tamaño de cada elemento de este vector; habitualmente a la memoria se accede como un vector de bytes –cada byte tendrá su dirección–, aunque puede haber sistemas que accedan a la memoria como un vector de palabras, en los que cada dirección corresponda a una palabra.

El número de bits utilizados para especificar una dirección de memoria fija el límite máximo de elementos dirigibles, el tamaño del mapa de memoria; si tenemos n bits para las direcciones de memoria, el número máximo de elementos dirigibles será de 2n.

3) Unidad de transferencia. En un acceso a memoria se puede acceder a un byte o a varios, con un máximo que vendrá determinado por el número de bytes de una palabra de memoria; es decir, en un solo acceso se leen o escriben uno o varios bytes.

Cuando se especifica la dirección de memoria a la que se quiere acceder, se accede a partir de esta dirección a tantos bytes como indique la operación de lectura o escritura.

En memoria externa, se accede habitualmente a un bloque de datos de tamaño muy superior a una palabra. En discos es habitual transferir bloques del orden de los Kbytes.

Ejemplo

En los procesadores x86 de 32 y 64 bits, la unidad de direccionamiento es de un byte, pero el tamaño de la palabra de memoria es de 4 bytes (32 bits).

Los registros del procesador (accesibles para el programador) habitualmente tienen un tamaño igual al tamaño de la palabra de memoria; por ejemplo, en un procesador de 32 bits (como el Intel 386) el tamaño de los registros era de 32 bits (4 bytes).

Los procesadores x86-64 son procesadores con registros de 64 bits, pero en cambio el tamaño de la palabra de memoria continúa siendo de 32 bits; eso es así para mantener la compatibilidad con procesadores anteriores. No hay que olvidar que la arquitectura x86-64 es una extensión de la arquitectura de 32 bits x86-32.

El tamaño de la palabra de memoria de los procesadores x86 de 32 y 64 bits es de 32 bits (4 bytes) y en un ciclo de memoria se puede acceder a 1, 2 o 4 bytes.

En la arquitectura CISCA el tamaño de palabra es también de 32 bits pero accedemos siempre a una palabra de 4 bytes.

1.4.1. Ordenación de los bytes en memoria.

Aunque normalmente la unidad de direccionamiento de la memoria es el byte, es habitual que se puedan hacer accesos a memoria en múltiplos de byte, hasta el tamaño de la palabra (2, 4, e incluso 8 bytes). En este caso, solo se indica la dirección del primer byte de la palabra y se utilizan dos métodos a la hora de acceder a la palabra:

  • Big-endian: la dirección especificada corresponde al byte de más peso de la palabra.

  • Little-endian: la dirección especificada corresponde al byte de menos peso de la palabra.

Ejemplo

Supongamos una memoria de capacidad reducida (solo 256 bytes) en la que el tamaño de la palabra a la que se puede acceder es de 16 bits (2 bytes). Las direcciones de memoria serán de 8 bits; para acceder a una palabra de memoria se indica solo la dirección del primer byte.


Si indicamos la dirección 00001110 (dirección 14), obtenemos los valores de las posiciones de memoria 14 y 15 así:

1) Little-endian: la dirección 14 corresponde al byte de menos peso de la palabra de 16 bits. Obtenemos el valor:

1111111100000000 (direcciones 15 y 14)

2) Big-endian: la dirección 14 corresponde al byte de más peso de la palabra de 16 bits. En este caso obtenemos el valor:

0000000011111111 (direcciones 14 y 15)

1.5. Tiempo de acceso y velocidad.

En memorias de acceso aleatorio, memoria RAM, el tiempo de acceso (o latencia) es el tiempo que transcurre desde que una dirección de memoria es visible para los circuitos de la memoria hasta que el dato está almacenado (escritura) o está disponible para ser utilizado (lectura). En memorias de acceso no aleatorio (discos) es el tiempo necesario para que el mecanismo de lectura o escritura se sitúe en la posición necesaria para empezar la lectura o escritura.

En memorias de acceso aleatorio, el tiempo de un ciclo de memoria se considera el tiempo de acceso más el tiempo necesario antes de que se pueda empezar un segundo acceso a la memoria.

Finalmente, la velocidad de transferencia es la velocidad a la que se puede leer o escribir un dato de memoria. En las memorias de acceso aleatorio será el inverso del tiempo de ciclo.

1.6. Coste.

Consideramos el coste por unidad de almacenamiento (coste por bit). Podemos observar que existe una relación directamente proporcional entre la velocidad y el coste/bit: a medida que aumenta la velocidad aumenta también el coste/bit. Eso implica que, con un presupuesto fijado, podremos adquirir memorias muy rápidas pero relativamente pequeñas, o memorias más lentas, pero de mucha más capacidad.

Ejemplo de coste

En el año 2010 con 100 € se podía conseguir una memoria RAM de 4GB con un tiempo de acceso de 5ns o un disco magnético de 1 TB (1.000 GB) con un tiempo de acceso de 5 ms (5.000.000 ns), por lo tanto, al mismo coste podemos tenemos una memoria mil veces más grande, pero un millón de veces más lenta.

1.7. Características físicas.

La memoria se puede clasificar según características físicas diferentes; básicamente podemos distinguir dos clasificaciones. La primera distingue entre:
  • Memoria volátil: memoria que necesita una corriente eléctrica para mantener su estado; estas memorias incluyen registros, memoria caché y memoria principal.
  • Memoria no volátil: mantiene el estado sin necesidad de corriente eléctrica, incluye memorias de solo lectura, memorias programables, memoria flash, dispositivos de almacenamiento magnético y óptico.
La segunda clasificación distingue entre:
  • Memoria de semiconductores: es una memoria que utiliza elementos semiconductores, transistores, en su construcción; incluye: registros, memoria caché, memoria principal, memorias de solo lectura, memoria flash.
  • Memoria magnética: utiliza superficies imantadas para guardar la información; dentro de esta categoría se incluyen básicamente discos y cintas magnéticas.
  • Memoria óptica: utiliza elementos de almacenamiento que pueden ser leídos y escritos mediante luz láser; se incluyen dispositivos de CD, DVD, Blu-ray.

Publicar un comentario

0 Comentarios

Close Menu