martes, 25 de febrero de 2014

Memoria




Memoria

Una memoria de computadora es un conjunto de pequeñas celdas numeradas. Más aún: cada una de esas celdas puede almacenar sólo entidades binarias (dígitos o símbolos que toman uno de dos valores discretos 0 o 1). Así, utilizando apropiadamente esas celdas es posible guardar fácil -pero exclusivamente- la información X en la celda Y. Sin embargo, la celda Y no puede almacenar otra información en el mismo instante de tiempo.
Dicho de otra forma, la memoria de una computadora es completamente localizada. Por supuesto, el número de celdas es muy grande. Una memoria de computadora es muy sistemática, muy ordenada, de ahí su eficiencia; pero al mismo tiempo es muy rígida. Eso significa que para tener acceso a una información se requiere saber exactamente en qué lugar preciso está almacenada. Así, es necesario dar a la máquina instrucciones del tipo: ``Leer la información que se encuentra almacenada en la celda 32767 y copiarla a la celda 26567''.
El uso de la memoria es para agilizar el flujo de información hacia el CPU. En otras palabras es como decir desde el disco duro al CPU hay mucha más distancia y mucho más tiempo es perdido mientras busca en el disco duro y manda al CPU para ser procesado, mientras que si la información que está en el disco es cargada a la memoria de allí el CPU puede accesar más rápidamente la información que ha sido pedida. También se puede decir que el uso de la memoria es agilizar la compilación de información.
La memoria tiene como función primordial almacenar temporalmente (en el caso del RAM) información del disco para ser ejecutada por el CPU, de una manera más ágil y veloz.

Tipos de Memoria
·         Memorias con paridad consiste en añadir a cualquier de los tipos anteriores un chip que realiza una operación con los datos cuando entran en el chip y otra cuando salen. Si el resultado ha variado, se ha producido un error y los datos ya no son fiables. Dicho así, parece una ventaja; sin embargo, el ordenador solo avisa de que el error se ha producido, no lo corrige. Es mas, estos errores son tan improbables que la mayor parte de los chips no los sufren jamás aunque estén funcionando durante años; por ello, hacen que todas las memorias se fabrican sin paridad.
·         Primaria:
·         RAM: abreviatura para random access memory, en español vendría siendo memoria de acceso randomico. Este tipo de memoria se considera volátil ya que cada vez que la computadora es apagada esta memoria es totalmente eliminada y puesta en 0. Hay muchos tipos de RAM, como por ejemplo:
·         DRAM: Dinamic - RAM, o RAM a secas, ya que es “la original”, y por tanto la más lenta. Este tipo de memoria fue usada desde la época del 386, su velocidad de refresco típica es de 80 ó 70 nanosegundos, tiempo este que tarda en vaciarse para poder dar entrada a la siguiente seria de datos. Por ello, es más rápida la de 70ns que la de 80ns. Físicamente, aparece en forma de DIMMs o de SIMMs, siendo estos últimos de 30 contactos.
·         Fast Page(FPM): a veces llamado DRAM, puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo más rápida, tanto por su estructura (el modo de página rápida) como por ser de 70 ó 60 nanosegundos.
Usada hasta con los primeros Pentium, físicamente aparece como SIMMs de 30 ó 72 contactos.
·         EDO: o EDO - RAM, extended data output - RAM. Evoluciona de la Fast Page; permite empezar a introducir nuevos datos mientras los anteriores estan saliendo, lo que la hace algo más rapida. Muy común en los Pentium MMX y AMD K6, con refrescos de 70, 60 ó 50nonasegundos. Se instala sobre todo en SIMMs de 72 contactos, aunque existe en forma de DIMMs de 168 contactos.
·         SDRAM: Sincronic - RAM. Funciona de manera sincronizada con la velocidad de la placa, para lo que debe ser rápidisima, de unos 25 a 10 nonasegundos. Solo se presenta en forma de DIMMs de 168 contactos; es usada en los Pentium II de menos de 350MHz y en los Celeron.
·         PC100: SDRAM de 100MHz. Memoria SDRAM capaz de funcionar a esos 100MHz, que utilizan los AMD K6-2, Pentium II 350MHz y micros más modernos; teóricamente se trata de unas especificaciones mínimas que se deben cumplir para funcionar correctamente a dicha velocidad, aunque no todas las memorias vedidas como “de 100MHz” las cumplen
·         PC133: SDRAM de 133MHz. La más moderna. Es el mismo principio de la PC100.
·         BEDO: (Burst - EDO) una evolución de la EDO, que envía ciertos datos en “ráfagas”. Poco extendida, compite en prestaciones con al SDRAM.
·         ECC: memoria con corrección de errores. Puede ser cualquier tipo, aunque sobre todo EDO - ECC o SDRAM - ECC. Detecta errores de datos y los corrige; para aplicaciones realmente criticas. Usadas en servidores y mainframes.
·         Memoria de Vídeo: para tarjetas gráficas. De menor a mayor rendimiento pueden ser: DRAM -> FMP -> EDO -> VRAM -> WRAM -> SDRAM ->SGRAM.
·         Secundario
·         Memoria Cache:
Aunque siempre hablamos de caches de hardware o software, lo cierto es que se trata de una palabra mal utilizada puesto que proviene del inglés cash (de hecho, en círculos especializados se habla de memorias cache, sin acento). Pero dejando aparte las puntualizaciones lingüísticas, nos limitaremos a definir su función. La memoria caché es una memoria de tipo estático (SRAM), rápida pero cara, que se sitúa entre el procesador y la memoria principal. Su misión principal consiste en acelerar los accesos del procesador a aquellos datos que necesita, ya que su tiempo medio de acceso es sensiblemente inferior al de una RAM normal. Cuando el procesador intenta acceder a un dato que no se encuentra en dicha memoria, se produce lo que se conoce como fallo de caché, fallo que ha de ser subsanado trasladando un bloque adecuado de información desde la memoria principal a la caché. La decisión de qué bloque hemos de retirar, cuándo hemos de actualizar la información, etc., dan lugar a las denominadas políticas de reemplazo y actualización. Pero a la hora de hablar de este tipo de memorias se suele distinguir entre caché de primer nivel y caché de segundo (ésta última es a la que habitualmente nos referimos cuando decimos que un equipo tiene tantos kilobytes de caché). La de primer nivel es la que se encuentra integrada dentro del propio microprocesador y resulta, lógicamente, más efectiva que la de segundo nivel, ya que dispone de una vía directa de 128 bits en el interior del chip. En las máquinas actuales, pensar en menos de 256 Kbytes de memoria caché es desaprovechar las posibilidades del equipo. Las tarjetas madres se venden habitualmente con dicha memoria ya instalada, por lo que es otro detalle a tener en cuenta. En el caso de los Pentium, resulta cada vez más habitual encontrarse con cantidades de 512 Kbytes de cache. Un último detalle a tener en cuenta es que existen dos tipos de caché: write-through y write-back. No entraremos en detalle acerca de las mismas, pero basta con saber que la segunda resulta más efectiva que la primera (aunque su implementación también es más compleja, lo que suele redundar en un mayor coste económico).
¿Para qué sirve?
Para empezar, digamos que la caché no es sino un tipo de memoria de la computadora; por tanto, en ella se guardarán datos que la PC necesita para trabajar. ¿Pero no era eso la RAM?, Te preguntarás. Bueno, en parte sí. A decir verdad, la memoria principal de la computadora (la RAM con sus famosos 8, 16, 32, 64, 128... "megas") y la memoria caché son básicamente iguales en muchos aspectos; la diferencia está en el uso que se le da a la caché. Debido a la gran velocidad alcanzada por los microprocesadores desde el 386, la RAM de la computadora no es lo suficientemente rápida para almacenar y transmitir los datos que el microprocesador (o "micro") necesita, por lo que tendría que esperar a que la memoria estuviera disponible y el trabajo se ralentizaría. Para evitarlo, se usa una memoria muy rápida, estratégicamente situada entre el micro y la RAM: la memoria caché.
La memoria caché es muy rápida
¿Cuánto es "muy rápida"? Bien, unas 5 o 6 veces más que la RAM. Esto la encarece bastante, claro está, y ése es uno de los motivos por los cuales su capacidad es mucho menor que el de la RAM: un máximo cercano a 512 kilobytes (512 Kb), es decir, medio "mega", frente a 16 ó 32 megas de RAM. Además, este precio elevado la hace candidata a falsificaciones y engaños.
Pero la caché no sólo es rápida; además, se usa con una opera en ocasiones con un número reducido de datos, pero que tiene que traer y llevar a la memoria en cada operación. Si situamos en medio del camino de los datos una memoria intermedia que almacene los datos más usados, los que casi seguro necesitará el micro en la próxima operación que realice, se ahorrará mucho tiempo del tránsito y acceso a la lenta memoria RAM; esta es la segunda utilidad de la caché.
El tamaño de la caché
Leído lo anterior pensarás: cuanto más grande, mejor. Cierto, pero no; o más bien, casi siempre sí. Aunque la caché sea de mayor velocidad que la RAM, si usamos una caché muy grande, el micro tardará un tiempo apreciable en encontrar el dato que necesita. Esto no sería muy importante si el dato estuviera allí, pero ¿y si no está? Entonces habrá perdido el tiempo, y tendrá que sumar ese tiempo perdido a lo que tarde en encontrarlo en la RAM.
Por tanto, la caché actúa como un resumen o "atajo" de los datos de la RAM, y todos sabemos que un resumen de 500 páginas no resulta nada útil. Se puede afirmar que, para usos normales, a partir de 1 MB (1024 Kb) la caché resulta ineficaz, e incluso pudiera llegar a ralentizar el funcionamiento de la computadora. El tamaño idóneo depende del de la RAM.
RAM(MB)
Cache(Kb)
1 a 4
128 ó 256
4 a 12
256
12 a 32
512
Mas de 32
512 ó 1024
La caché interna o L1
La caché a la que nos hemos referido hasta ahora es la llamada "caché externa" o de segundo nivel (L2). Existe otra, cuyo principio básico es el mismo, pero que está incluida en el interior del micro; de ahí lo de interna o de primer nivel (L1). Esta caché funciona como la externa, sólo que está más cerca del micro, es más rápida y más cara, además de complicar el diseño del micro, por lo que su tamaño se mide en pocas decenas de kilobytes. Se incorporó por primera vez en los micros 486, y por aquel entonces era de 8 Kb (aunque algunos 486 de Cyrix tenían sólo 1 Kb). La importancia de esta caché es fundamental; por ejemplo, los Pentium MMX son más rápidos que los Pentium normales en aplicaciones no optimizadas para MMX, gracias a tener el doble de caché interna.
La caché de los Pentium II / III y Celeron
Puede que hayas oído hablar de que el Pentium III (y sus antecesores extintos Pentium Pro y Pentium II ) tienen 512 Kb de caché interna; esto es inexacto, cuando no una "confusión interesada" por parte de Intel y los vendedores. Los Pentium II y III tienen 32 Kb de caché interna, y 512 Kb de caché dentro del cartucho SEC pero externa al encapsulado del microchip. Los que casi pueden presumir de tener una gran caché interna son los Celeron Mendocino (no los antiguos Celeron, que carecían de caché L2 en absoluto). Estos micros tienen 128 Kb de caché L2 integrada en el propio encapsulado del micro y la hacen funcionar a la misma velocidad que éste, de forma que no llega a ser tan rápida como la caché L1 pero sí lo bastante como para permitirles competir con los Pentium II pese a tener sólo la cuarta parte de caché. Digamos, en fin, que los Pentium II y III y los Celeron Mendocino tienen una caché interna y una semi-externa, lo cual no es poco mérito en absoluto; pero las cosas son como son, mal que le pese a los magos de la publicidad.
Tecnologías usadas en la caché
Aunque en general no se puede elegir qué memoria caché adquirir con la computadora, puesto que se vende conjuntamente con la placa base (o con el micro, si es un Pentium III, un Mendocino...), conviene tener claros unos cuantos conceptos por si se diera el caso de tener varias opciones a nuestra disposición.
Ante todo, el tipo de memoria empleada para fabricar la caché es uno de los factores más importantes. Suele ser memoria de un tipo muy rápido (como por ejemplo SRAM o SDRAM) y con características especiales, como burst pipeline: transmitir datos "a ráfagas" (burst). La velocidad de la caché influye en su rendimiento, como es obvio. Las cachés se mueven en torno a los 10 nanosegundos (ns) de velocidad de refresco; es decir, que cada 10 ns pueden admitir una nueva de datos. Por tanto, a menor tiempo de refresco, mayor velocidad.
 

No hay comentarios:

Publicar un comentario