Monday, January 09, 2006

Tipos basicos de memoria RAM

Los tipos basicos de memoria ram
Es posible obtener memorias semiconductoras en una amplia gama de velocidades. Sus tiempos de ciclo varían desde unos cuantos cientos de nanosegundos, hasta unas cuantas decenas de nanosegundos. Cuando se presentaron por primera vez, a fines de la década de 1960, eran mucho más costosas que las memorias de núcleo magnético que reemplazaron. Debido a los avances de la tecnología de VLSI (Very Large Scale Integration – integración a muy gran escala), el costo de las memorias semiconductoras ha descendido en forma notable.
Existen dos tipos de memoria RAM: la SRAM o RAM estática; y la DRAM o RAM dinámica.

RAM estática o SRAM
El almacenamiento en RAM estática se basa en circuitos lógicos denominados flip-flop, que retienen la información almacenada en ellos mientras haya energía suficiente para hacer funcionar el dispositivo (ya sean segundos, minutos, horas, o aún dias). Un chip de RAM estática puede almacenar tan sólo una cuarta parte de la información que puede almacenar un chip de RAM dinámica de la misma complejidad, pero la RAM estática no requiere ser actualizada y es normalmente mucho más rápida que la RAM dinámica (el tiempo de ciclo de la SRAM es de 8 a 16 veces más rápido que las SRAM). También es más cara, por lo que se reserva generalmente para su uso en la memoria de acceso aleatorio(caché).

RAM dinámica o DRAM
Supongamos que nuestro programa debe manipular estructuras de datos de longitud desconocida. Un ejemplo simple podría ser el de un programa que lee las líneas de un archivo y las ordena. Por tanto, deberemos leer un número indeterminado de líneas, y tras leer la última, ordenarlas. Una manera de manejar ese ``número indeterminado'', sería declarar una constante MAX_LINEAS, darle un valor vergonzosamente grande, y declarar un array de tamaño MAX_LINEAS. Esto, obviamente, es muy ineficiente (y feo). Nuestro programa no sólo quedaría limitado por ese valor máximo, sino que además gastaría esa enorme cantidad de memoria para procesar hasta el más pequeño de los ficheros.
La solución consiste en utilizar memoria dinámica. La memoria dinámica es un espacio de almacenamiento que se solicita en tiempo de ejecución5.4. De esa manera, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas. El medio para manejar la memoria que otorga el sistema operativo, es el puntero, puesto que no podemos saber en tiempo de compilación5.5dónde nos dará huecos el sistema operativo (en la memoria de nuestro PC).
Las RAM dinámicas almacenan la información en circuitos integrados que contienen condensadores, que pueden estar cargados o descargados. Como éstos pierden su carga en el transcurso del tiempo, se debe incluir los circuitos necesarios para "refrescar" los chips de RAM cada pocos milisegundos, para impedir la pérdida de su información. Algunas memorias dinámicas tienen la lógica del refresco en la propia pastilla, dando así gran capacidad y facilidad de conexión a los circuitos. Estas pastillas se denominan casi estáticas. Mientras la RAM dinámica se refresca, el procesador no puede leerla. Si intenta hacerlo en ese momento, se verá forzado a esperar. Como son relativamente sencillas, las RAM dinámicas suelen utilizarse más que las RAM estáticas, a pesar de ser más lentas.

No comments: