Download RAM son las siglas de random access memory o

Document related concepts
no text concepts found
Transcript
RAM son las siglas de random access memory o memoria de acceso aleatorio, es un tipo de memoria que permite almacenar y/o
extraer información (Lectura/Escritura), accesando aleatoriamente; es decir, puede acceder a cualquier punto o dirección del mismo y
en cualquier momento (no secuencial).
La memoria RAM, se compone de uno o más chips y se utiliza como memoria de trabajo para guardar o borrar nuestros programas y
datos. Es un tipo de memoria temporal que pierde sus datos cuando el computador se queda sin energía.
Hay dos tipos básicos de memoria RAM:
1. RAM dinámica (DRAM)
2. RAM estática (SRAM)
Los dos tipos de memoria RAM se diferencian en la tecnología que utilizan para guardar los datos, la memoria RAM dinámica es la
más común.
La memoria RAM dinámica necesita actualizarse miles de veces por segundo, mientras que la memoria RAM estática no necesita
actualizarse, por lo que es más rápida, aunque también más cara. Ambos tipos de memoria RAM son volátiles, es decir, que pierden
su contenido cuando se apaga el equipo.
Tipos de memoria RAM
VRAM
Siglas de Vídeo RAM, una memoria de propósito especial usada por los adaptadores de vídeo. A diferencia de la convencional
memoria RAM, la VRAM puede ser accedida por dos diferentes dispositivos de forma simultánea. Esto permite que un monitor pueda
acceder a la VRAM para las actualizaciones de la pantalla al mismo tiempo que un procesador gráfico suministra nuevos datos.
VRAM permite mejores rendimientos gráficos aunque es más cara que la una RAM normal.
SIMM
Siglas de Single In line Memory Module, un tipo de encapsulado consistente en una pequeña placa de circuito impreso que almacena
chips de memoria, y que se inserta en un zócalo SIMM en la placa madre o en la placa de memoria. Los SIMMs son más fáciles de
instalar que los antiguos chips de memoria individuales, y a diferencia de ellos son medidos en bytes en lugar de bits.
Hay de dos tipos de 30 y de 72 pines. Los de 30 vienen en capacidades de 256K y 1Mb y ya casi no se usan. Los de 72 vienen en
versiones de 4, 8, 16, 32 . Su principal desventaja: trabajan en pares.
DIMM
Siglas de Dual In line Memory Module, un tipo de encapsulado, consistente en una pequeña placa de circuito impreso que almacena
chips de memoria, que se inserta en un zócalo DIMM en la placa madre y usa generalmente un conector de 168 contactos. No se
pueden mesclar DIMM y SIMM.
DIP
Siglas de Dual In line Package, un tipo de encapsulado consistente en almacenar un chip de memoria en una caja rectangular con dos
filas de pines de conexión en cada lado.
RAM Disk
Se refiere a la RAM que ha sido configurada para simular un disco duro. Se puede acceder a los ficheros de un RAM disk de la misma
forma en la que se acceden a los de un disco duro. Sin embargo, los RAM disk son aproximadamente miles de veces más rápidos que
los discos duros, y son particularmente útiles para aplicaciones que precisan de frecuentes accesos a disco.
Dado que están constituidos por RAM normal. los RAM disk pierden su contenido una vez que la computadora es apagada. Para usar
los RAM Disk se precisa copiar los ficheros desde un disco duro real al inicio de la sesión y copiarlos de nuevo al disco duro antes de
apagar la máquina. Observe que en el caso de fallo de alimentación eléctrica, se perderán los datos que hubiera en el RAM disk. El
sistema operativo DOS permite convertir la memoria extendida en un RAM Disk por medio del comando VDISK, siglas de Virtual
DISK, otro nombre de los RAM Disks.
Memoria Caché ó RAM Caché
Un caché es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal
como un dispositivo de almacenamiento de alta velocidad independiente. Hay dos tipos de caché frecuentemente usados en las
computadoras personales: memoria caché y caché de disco. Una memoria caché, llamada también a veces almacenamiento caché ó
RAM caché, es una parte de memoria RAM estática de alta velocidad (SRAM) más que la lenta y barata RAM dinámica (DRAM)
usada como memoria principal. La memoria caché es efectiva dado que los programas acceden una y otra vez a los mismos datos o
instrucciones. Guardando esta información en SRAM, la computadora evita acceder a la lenta DRAM.
Cuando un dato es encontrado en el caché, se dice que se ha producido un impacto (hit), siendo un caché juzgado por su tasa de
impactos (hit rate). Los sistemas de memoria caché usan una tecnología conocida por caché inteligente en el cual el sistema puede
reconocer cierto tipo de datos usados frecuentemente. Las estrategias para determinar qué información debe de ser puesta en el caché
constituyen uno de los problemas más interesantes en la ciencia de las computadoras. Algunas memorias caché están construidas en la
arquitectura de los microprocesadores. Por ejemplo, el procesador Pentium II tiene una caché L2 de 512 Kbytes.
El caché de disco trabaja sobre los mismos principios que la memoria caché, pero en lugar de usar SRAM de alta velocidad, usa la
convencional memoria principal. Los datos más recientes del disco duro a los que se ha accedido (así como los sectores adyacentes)
se almacenan en un buffer de memoria. Cuando el programa necesita acceder a datos del disco, lo primero que comprueba es la caché
del disco para ver si los datos ya estan ahí. La caché de disco puede mejorar drásticamente el rendimiento de las aplicaciones, dado
que acceder a un byte de datos en RAM puede ser miles de veces más rápido que acceder a un byte del disco duro.
SRAM
Siglas de Static Random Access Memory, es un tipo de memoria que es más rápida y fiable que la más común DRAM (Dynamic
RAM). El término estática viene derivado del hecho que necesita ser refrescada menos veces que la RAM dinámica.
Los chips de RAM estática tienen tiempos de acceso del orden de 10 a 30 nanosegundos, mientras que las RAM dinámicas están por
encima de 30, y las memorias bipolares y ECL se encuentran por debajo de 10 nanosegundos.
Un bit de RAM estática se construye con un — como circuito flip-flop que permite que la corriente fluya de un lado a otro basándose
en cual de los dos transistores es activado. Las RAM estáticas no precisan de circuitería de refresco como sucede con las RAMs
dinámicas, pero precisan más espacio y usan más energía. La SRAM, debido a su alta velocidad, es usada como memoria caché.
DRAM
Siglas de Dynamic RAM, un tipo de memoria de gran capacidad pero que precisa ser constantemente refrescada (re-energizada) o
perdería su contenido. Generalmente usa un transistor y un condensador para representar un bit Los condensadores debe de ser
energizados cientos de veces por segundo para mantener las cargas. A diferencia de los chips firmware (ROMs, PROMs, etc.) las dos
principales variaciones de RAM (dinámica y estática) pierden su contenido cuando se desconectan de la alimentación. Contrasta con
la RAM estática.
Algunas veces en los anuncios de memorias, la RAM dinámica se indica erróneamente como un tipo de encapsulado; por ejemplo “se
venden DRAMs, SIMMs y SIPs”, cuando deberia decirse “DIPs, SIMMs y SIPs” los tres tipos de encapsulado típicos para almacenar
chips de RAM dinámica.
También algunas veces el término RAM (Random Access Memory) es utilizado para referirse a la DRAM y distinguirla de la RAM
estática (SRAM) que es más rápida y más estable que la RAM dinámica, pero que requiere más energía y es más cara
SDRAM
Siglas de Synchronous DRAM, DRAM síncrona. Este tipo de memoria se conecta al reloj del sistema y está diseñada para ser capaz
de leer o escribir a un ciclo de reloj por acceso, es decir, sin estados de espera intermedios. SDRAM entrelaza dos o más matrices de
memoria interna de tal forma que mientras que se está accediendo a una matriz, la siguiente se está preparando para el acceso.
SDRAM-II es tecnología SDRAM más rápida. También conocido como DDR DRAM o DDR SDRAM (Double Data Rate DRAM o
SDRAM), permite leer y escribir datos a dos veces la velocidad bús.
FPM
Siglas de Fast Page Mode, memoria en modo paginado, el diseño más comun de chips de RAM dinámica. El acceso a los bits de
memoria se realiza por medio de coordenadas, fila y columna. Antes del modo paginado, era leido pulsando la fila y la columna de las
líneas seleccionadas. Con el modo pagina, la fila se selecciona solo una vez para todas las columnas (bits) dentro de la fila, dando
como resultado un rápido acceso. La memoria en modo paginado tambien es llamada memoria de modo Fast Page o memoria FPM,
FPM RAM, FPM DRAM. El término “fast” fué añadido cuando los más nuevos chips empezaron a correr a 100 nanoseconds e
incluso más.
EDO
Siglas de Extended Data Output, un tipo de chip de RAM dinámica que mejora el rendimiento del modo de memoria Fast Page
alrededor de un 10%. Al ser un subconjunto de Fast Page, puede ser substituida por chips de modo Fast Page.
Sin embargo, si el controlador de memoria no está diseñado para los más rápidos chips EDO, el rendimiento será el mismo que en el
modo Fast Page.
EDO elimina los estados de espera manteniendo activo el buffer de salida hasta que comienza el próximo ciclo.
BEDO (Burst EDO) es un tipo más rápido de EDO que mejora la velocidad usando un contador de dirección para las siguientes
direcciones y un estado ‘pipeline’ que solapa las operaciones.
PB SRAM
Siglas de Pipeline Burst SRAM. Se llama ‘pipeline’ a una categoría de técnicas que proporcionan un proceso simultáneo, o en
paralelo dentro de la computadora, y se refiere a las operaciones de solapamiento moviendo datos o instrucciones en una ‘tuberia’
conceptual con todas las fases del ‘pipe’ procesando simultáneamente. Por ejemplo, mientras una instrucción se está ejecutándo, la
computadora está decodificando la siguiente instrucción. En procesadores vectoriales, pueden procesarse simultáneamente varios
pasos de operaciones de coma flotante
La PB SRAM trabaja de esta forma y se mueve en velocidades de entre 4 y 8 nanosegundos.
Nomenclatura
La expresión memoria RAM se utiliza frecuentemente para describir a los módulos de memoria utilizados en los computadores
personales y servidores. En el sentido estricto, esta memoria es solo una variedad de la memoria de acceso aleatorio: las ROM,
memorias Flash, caché (SRAM), los registros en procesadores y otras unidades de procesamiento también poseen la cualidad de
presentar retardos de acceso iguales para cualquier posición. Los módulos de RAM son la presentación comercial de este tipo de
memoria, que se compone de circuitos integrados soldados sobre un circuito impreso independiente, en otros dispositivos como las
consolas de videojuegos, la RAM va soldada directamente sobre la placa principal.
Historia
Integrado de silicio de 64 bits sobre un sector de memoria de núcleo magnético (finales de los 60).
4MiB de memoria RAM para un computador VAX de finales de los 70. Los integrados de memoria DRAM están agrupados arriba a
derecha e izquierda.
Módulos de memoria tipo SIPP instalados directamente sobre la placa base.
Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético, desarrollada entre 1949 y 1952 y usada en muchos
computadores hasta el desarrollo de circuitos integrados a finales de los años 60 y principios de los 70. Esa memoria requería que
cada bit estuviera almacenado en un toroide de material ferromagnético de algunos milímetros de diámetro, lo que resultaba en
dispositivos con una capacidad de memoria muy pequeña. Antes que eso, las computadoras usaban relés y líneas de retardo de varios
tipos construidas para implementar las funciones de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio por parte de Intel con el integrado
3101 de 64 bits de memoria y para el siguiente año se presentó una memoria DRAM de 1024 bytes, referencia 1103 que se constituyó
en un hito, ya que fue la primera en ser comercializada con éxito, lo que significó el principio del fin para las memorias de núcleo
magnético. En comparación con los integrados de memoria DRAM actuales, la 1103 es primitiva en varios aspectos, pero tenía un
desempeño mayor que la memoria de núcleos.
En 1973 se presentó una innovación que permitió otra miniaturización y se convirtió en estándar para las memorias DRAM: la
multiplexación en tiempo de la direcciones de memoria. MOSTEK lanzó la referencia MK4096 de 4096 bytes en un empaque de 16
pines, mientras sus competidores las fabricaban en el empaque DIP de 22 pines. El esquema de direccionamiento se convirtió en un
estándar de facto debido a la gran popularidad que logró esta referencia de DRAM. Para finales de los 70 los integrados eran usados
en la mayoría de computadores nuevos, se soldaban directamente a las placas base o se instalaban en zócalos, de manera que
ocupaban un área extensa de circuito impreso. Con el tiempo se hizo obvio que la instalación de RAM sobre el impreso principal,
impedía la miniaturización, entonces se idearon los primeros módulos de memoria como el SIPP, aprovechando las ventajas de la
construcción modular. El formato SIMM fue una mejora al anterior, eliminando los pines metálicos y dejando unas áreas de cobre en
uno de los bordes del impreso, muy similares a los de las tarjetas de expansión, de hecho los módulos SIPP y los primeros SIMM
tienen la misma distribución de pines.
A finales de los 80 el aumento en la velocidad de los procesadores y el aumento en el ancho de banda requerido, dejaron rezagadas a
las memorias DRAM con el esquema original MOSTEK, de manera que se realizaron una serie de mejoras en el direccionamiento
como las siguientes:
Módulos formato SIMM de 30 y 72 pines, los últimos fueron utilizados con integrados tipo EDO-RAM.
 FPM-RAM (Fast Page Mode RAM)
Inspirado en técnicas como el "Burst Mode" usado en procesadores como el Intel 486, se implantó un modo direccionamiento en el
que el controlador de memoria envía una sola dirección y recibe a cambio esa y varias consecutivas sin necesidad de generar todas las
direcciones. Esto supone un ahorro de tiempos ya que ciertas operaciones son repetitivas cuando se desea acceder a muchas
posiciones consecutivas. Funciona como si deseáramos visitar todas las casas en una calle: después de la primera vez no sería
necesario decir el número de la calle únicamente seguir la misma. Se fabricaban con tiempos de acceso de 70 ó 60 ns y fueron muy
populares en sistemas basados en el 486 y los primeros Pentium.
 EDO-RAM (Extended Data Output RAM)
Lanzada en 1995 y con tiempos de accesos de 40 o 30 ns suponía una mejora sobre su antecesora la FPM. La EDO, también es capaz
de enviar direcciones contiguas pero direcciona la columna que va utilizar mientras que se lee la información de la columna anterior,
dando como resultado una eliminación de estados de espera, manteniendo activo el búffer de salida hasta que comienza el próximo
ciclo de lectura.
 BEDO-RAM (Burst Extended Data Output RAM)
Fue la evolución de la EDO RAM y competidora de la SDRAM, fue presentada en 1997. Era un tipo de memoria que usaba
generadores internos de direcciones y accedía a más de una posición de memoria en cada ciclo de reloj, de manera que lograba un
desempeño un 50% mejor que la EDO. Nunca salió al mercado, dado que Intel y otros fabricantes se decidieron por esquemas de
memoria sincrónicos que si bien tenían mucho del direccionamiento MOSTEK, agregan funcionalidades distintas como señales de
reloj.
Tecnologías de memoria
La tecnología de memoria actual usa una señal de sincronización para realizar las funciones de lectura-escritura de manera que
siempre esta sincronizada con un reloj del bus de memoria, a diferencia de las antiguas memorias FPM y EDO que eran asíncronas.
Hace más de una década toda la industria se decantó por las tecnologías síncronas, ya que permiten construir integrados que funcionen
a una frecuencia superior a 66 MHz.
Tipos de DIMMs según su cantidad de Contactos o Pines:
 72-pin SO-DIMM (no el mismo que un 72-pin SIMM), usados por FPM DRAM y EDO DRAM
 100-pin DIMM, usados por printer SDRAM
 144-pin SO-DIMM, usados por SDR SDRAM
 168-pin DIMM, usados por SDR SDRAM (menos frecuente para FPM/EDO DRAM en áreas de trabajo y/o servidores)
 172-pin MicroDIMM, usados por DDR SDRAM
 184-pin DIMM, usados por DDR SDRAM
 200-pin SO-DIMM, usados por DDR SDRAM y DDR2 SDRAM
 204-pin SO-DIMM, usados por DDR3 SDRAM
 240-pin DIMM, usados por DDR2 SDRAM, DDR3 SDRAM y FB-DIMM DRAM
 244-pin MiniDIMM, usados por DDR2 SDRAM
Memorias RAM con tecnologías usadas en la actualidad.
SDR SDRAM
Artículo principal: SDR SDRAM.
Memoria síncrona, con tiempos de acceso de entre 25 y 10 ns y que se presentan en módulos DIMM de 168 contactos. Fue utilizada
en los Pentium II y en los Pentium III , así como en los AMD K6, AMD Athlon K7 y Duron. Está muy extendida la creencia de que se
llama SDRAM a secas, y que la denominación SDR SDRAM es para diferenciarla de la memoria DDR, pero no es así, simplemente se
extendió muy rápido la denominación incorrecta. El nombre correcto es SDR SDRAM ya que ambas (tanto la SDR como la DDR) son
memorias síncronas dinámicas. Los tipos disponibles son:
 PC66: SDR SDRAM, funciona a un máx de 66,6 MHz.
 PC100: SDR SDRAM, funciona a un máx de 100 MHz.
 PC133: SDR SDRAM, funciona a un máx de 133,3 MHz.
RDRAM
Artículo principal: RDRAM.
Se presentan en módulos RIMM de 184 contactos. Fue utilizada en los Pentium IV . Era la memoria más rápida en su tiempo, pero
por su elevado costo fue rápidamente cambiada por la económica DDR. Los tipos disponibles son:
 PC600: RIMM RDRAM, funciona a un máximo de 300 MHz.
 PC700: RIMM RDRAM, funciona a un máximo de 356 MHz.
 PC800: RIMM RDRAM, funciona a un máximo de 400 MHz.
 PC1066: RIMM RDRAM, funciona a un máximo de 533 MHz.
DDR SDRAM
Artículo principal: DDR SDRAM.
Memoria síncrona, envía los datos dos veces por cada ciclo de reloj. De este modo trabaja al doble de velocidad del bus del sistema,
sin necesidad de aumentar la frecuencia de reloj. Se presenta en módulos DIMM de 184 contactos en el caso de ordenador de
escritorio y en módulos de 144 contactos para los ordenadores portátiles. Los tipos disponibles son:
 PC1600 o DDR 200: funciona a un máx de 200 MHz.
 PC2100 o DDR 266: funciona a un máx de 266,6 MHz.
 PC2700 o DDR 333: funciona a un máx de 333,3 MHz.
 PC3200 o DDR 400: funciona a un máx de 400 MHz.
 PC4500 o DR4 400: funciona a una máx de 500 MHz
DDR2 SDRAM
Módulos de memoria instalados de 256 MiB cada uno en un sistema con doble canal.
Artículo principal: DDR2 SDRAM.
Las memorias DDR 2 son una mejora de las memorias DDR (Double Data Rate), que permiten que los búferes de entrada/salida
trabajen al doble de la frecuencia del núcleo, permitiendo que durante cada ciclo de reloj se realicen cuatro transferencias. Se
presentan en módulos DIMM de 240 contactos. Los tipos disponibles son:
 PC2-4200 o DDR2-533: funciona a un máx de 533,3 MHz.
 PC2-5300 o DDR2-667: funciona a un máx de 666,6 MHz.
 PC2-6400 o DDR2-800: funciona a un máx de 800 MHz.
 PC2-8600 o DDR2-1066: funciona a un máx de 1066,6 MHz.
 PC2-9000 o DDR2-1200: funciona a un máx de 1200 MHz
DDR3 SDRAM
Artículo principal: DDR3 SDRAM.
Las memorias DDR 3 son una mejora de las memorias DDR 2, proporcionan significantes mejoras en el rendimiento en niveles de
bajo voltaje, lo que lleva consigo una disminución del gasto global de consumo. Los módulos DIMM DDR 3 tienen 240 pines, el
mismo número que DDR 2; sin embargo, los DIMMs son físicamente incompatibles, debido a una ubicación diferente de la muesca.
Los tipos disponibles son:
 PC3-6400 o DDR3-800: funciona a un máx de 800 MHz.
 PC3-8500 o DDR3-1066: funciona a un máx de 1066,6 MHz.
 PC3-10600 o DDR3-1333: funciona a un máx de 1333,3 MHz.
 PC3-12800 o DDR3-1600: funciona a un máx de 1600 MHz.
 PC3-14900 o DDR3-1866: funciona a un máx de 1866,6 MHz.
 PC3-17000 o DDR3-2133: funciona a un máx de 2133,3 MHz.
 PC3-19200 o DDR3-2400: funciona a un máx de 2400 MHz.
 PC3-21300 o DD3-2666: funciona a un máx de 2666,6 MHz.
Módulos de la memoria RAM
Formato SO-DIMM.
Los módulos de memoria RAM son tarjetas de circuito impreso que tienen soldados integrados de memoria DRAM por una o ambas
caras. La implementación DRAM se basa en una topología de Circuito eléctrico que permite alcanzar densidades altas de memoria
por cantidad de transistores, logrando integrados de cientos o miles de megabits. Además de DRAM, los módulos poseen un integrado
que permiten la identificación de los mismos ante el computador por medio del protocolo de comunicación SPD.
La conexión con los demás componentes se realiza por medio de un área de pines en uno de los filos del circuito impreso, que
permiten que el modulo al ser instalado en un zócalo apropiado de la placa base, tenga buen contacto eléctrico con los controladores
de memoria y las fuentes de alimentación. Los primeros módulos comerciales de memoria eran SIPP de formato propietario, es decir
no había un estándar entre distintas marcas. Otros módulos propietarios bastante conocidos fueron los RIMM, ideados por la empresa
RAMBUS.
La necesidad de hacer intercambiable los módulos y de utilizar integrados de distintos fabricantes condujo al establecimiento de
estándares de la industria como los JEDEC.
 Módulos SIMM: Formato usado en computadores antiguos. Tenían un bus de datos de 16 ó 32 bits
 Módulos DIMM: Usado en computadores de escritorio. Se caracterizan por tener un bus de datos de 64 bits.
 Módulos SO-DIMM: Usado en computadores portátiles. Formato miniaturizado de DIMM.
Relación con el resto del sistema
Diagrama de la arquitectura de un ordenador.
Dentro de la jerarquía de memoria la RAM se encuentra en un nivel después de los registros del procesador y de las cachés en cuanto
a velocidad. Los módulos de memoria se conectan eléctricamente a un controlador de memoria que gestiona las señales entrantes y
salientes de los integrados DRAM. Las señales son de tres tipos: direccionamiento, datos y señales de control. En el módulo de
memoria esas señales están divididas en dos buses y un conjunto misceláneo de líneas de control y alimentación, Entre todas forman
el bus de memoria que conecta la RAM con su controlador:
 Bus de datos: Son las líneas que llevan información entre los integrados y el controlador. Por lo general están agrupados en
octetos siendo de 8,16,32 y 64 bits, cantidad que debe igualar el ancho del bus de datos del procesador. En el pasado, algunos
formatos de modulo, no tenían un ancho de bus igual al del procesador. En ese caso había que montar módulos en pares o en
situaciones extremas, de a 4 módulos, para completar lo que se denominaba banco de memoria, de otro modo el sistema no
funciona. Esa fue la principal razón para aumentar el número de pines en los módulos, igualando al ancho de bus de
procesadores como el Pentium a 64 bits, a principios de los 90.
 Bus de direcciones: Es un bus en el cual se colocan las direcciones de memoria a las que se requiere acceder. No es igual al
bus de direcciones del resto del sistema, ya que está multiplexado de manera que la dirección se envía en dos etapas. Para
ello el controlador realiza temporizaciones y usa las líneas de control. En cada estándar de módulo se establece un tamaño
máximo en bits de este bus, estableciendo un límite teórico de la capacidad máxima por módulo.
 Señales misceláneas: Entre las que están las de la alimentación (Vdd, Vss) que se encargan de entregar potencia a los
integrados. Están las líneas de comunicación para el integrado de presencia que sirve para identificar cada módulo. Están las
líneas de control entre las que se encuentran las llamadas RAS (row address strobe) y CAS (column address strobe) que
controlan el bus de direcciones, por último están las señales de reloj en las memorias sincrónicas SDRAM.
Algunos controladores de memoria en sistemas como PC y servidores se encuentran embebidos en el llamado "North Bridge" o
"Puente Norte" de la placa base. Otros sistemas incluyen el controlador dentro del mismo procesador (en el caso de los procesadores
desde AMD Athlon 64 e Intel Core i7 y posteriores). En la mayoría de los casos el tipo de memoria que puede manejar el sistema está
limitado por los sockets para RAM instalados en la placa base, a pesar que los controladores de memoria en muchos casos son
capaces de conectarse con tecnologías de memoria distintas.
Una característica especial de algunos controladores de memoria, es el manejo de la tecnología canal doble (Dual Channel), donde el
controlador maneja bancos de memoria de 128 bits, siendo capaz de entregar los datos de manera intercalada, optando por uno u otro
canal, reduciendo las latencias vistas por el procesador. La mejora en el desempeño es variable y depende de la configuración y uso
del equipo. Esta característica ha promovido la modificación de los controladores de memoria, resultando en la aparición de nuevos
chipsets (la serie 865 y 875 de Intel) o de nuevos zócalos de procesador en los AMD (el 939 con canal doble , reemplazo el 754 de
canal sencillo). Los equipos de gama media y alta por lo general se fabrican basados en chipsets o zócalos que soportan doble canal o
superior, como en el caso del zócalo (o socket, en inglés) 1366 de Intel, que usaba un triple canal de memoria, o su nuevo LGA 2011
que usa cuádruple canal.
Detección y corrección de errores
Existen dos clases de errores en los sistemas de memoria, las fallas (Hard fails) que son daños en el hardware y los errores (soft
errors) provocados por causas fortuitas. Los primeros son relativamente fáciles de detectar (en algunas condiciones el diagnóstico es
equivocado), los segundos al ser resultado de eventos aleatorios, son más difíciles de hallar. En la actualidad la confiabilidad de las
memorias RAM frente a los errores, es suficientemente alta como para no realizar verificación sobre los datos almacenados, por lo
menos para aplicaciones de oficina y caseras. En los usos más críticos, se aplican técnicas de corrección y detección de errores
basadas en diferentes estrategias:
 La técnica del bit de paridad consiste en guardar un bit adicional por cada byte de datos y en la lectura se comprueba si el
número de unos es par (paridad par) o impar (paridad impar), detectándose así el error.
 Una técnica mejor es la que usa ECC, que permite detectar errores de 1 a 4 bits y corregir errores que afecten a un sólo bit.
Esta técnica se usa sólo en sistemas que requieren alta fiabilidad.
Por lo general los sistemas con cualquier tipo de protección contra errores tiene un costo más alto, y sufren de pequeñas
penalizaciones en desempeño, con respecto a los sistemas sin protección. Para tener un sistema con ECC o paridad, el chipset y las
memorias deben tener soporte para esas tecnologías. La mayoría de placas base no poseen dicho soporte.
Para los fallos de memoria se pueden utilizar herramientas de software especializadas que realizan pruebas sobre los módulos de
memoria RAM. Entre estos programas uno de los más conocidos es la aplicación Memtest86+ que detecta fallos de memoria.
Memoria RAM registrada
Es un tipo de módulo usado frecuentemente en servidores, posee circuitos integrados que se encargan de repetir las señales de control
y direcciones: las señales de reloj son reconstruidas con ayuda del PLL que está ubicado en el módulo mismo. Las señales de datos se
conectan de la misma forma que en los módulos no registrados: de manera directa entre los integrados de memoria y el controlador.
Los sistemas con memoria registrada permiten conectar más módulos de memoria y de una capacidad más alta, sin que haya
perturbaciones en las señales del controlador de memoria, permitiendo el manejo de grandes cantidades de memoria RAM. Entre las
desventajas de los sistemas de memoria registrada están el hecho de que se agrega un ciclo de retardo para cada solicitud de acceso a
una posición no consecutiva y un precio más alto que los módulos no registrados. La memoria registrada es incompatible con los
controladores de memoria que no soportan el modo registrado, a pesar de que se pueden instalar físicamente en el zócalo. Se pueden
reconocer visualmente porque tienen un integrado mediano, cerca del centro geométrico del circuito impreso, además de que estos
módulos suelen ser algo más altos.4
Durante el año 2006 varias marcas lanzaron al mercado sistemas con memoria FB-DIMM que en su momento se pensaron como los
sucesores de la memoria registrada, pero se abandonó esa tecnología en 2007 dado que ofrecía pocas ventajas sobre el diseño
tradicional de memoria registrada y los nuevos modelos con memoria DDR3.
2.
Desarrollada por Toshiba. Los diseñadores rompieron explícitamente con las prácticas del pasado, afirmando que enfocaba
"ser un reemplazo de los discos duros", más que tener el tradicional uso de la ROM como una forma de almacenamiento primario no
volátil. En 2007, NAND ha avanzado bastante en su meta, ofreciendo un rendimiento comparable al de los discos duros, una mejor
tolerancia a los shocks físicos, una miniaturización extrema (como por ejemplo memorias USB y tarjetas de memoria MicroSD), y un
consumo de potencia mucho más bajo.
Uso para almacenamiento de software
Memoria de solo lectura conteniendo el BIOS de una vieja placa madre.
Los ordenadores domésticos a comienzos de los años 1980 venían con todo su sistema operativo en ROM. No había otra alternativa
razonable ya que las unidades de disco eran generalmente opcionales. La actualización a una nueva versión significa usar un soldador
o un grupo de interruptores DIP y reemplazar el viejo chip de ROM por uno nuevo. Actualmente los sistemas operativos en general ya
no van en ROM. Todavía los ordenadores pueden dejar algunos de sus programas en memoria ROM, pero incluso en este caso, es más
frecuente que vaya en memoria flash. Los teléfonos móviles y los asistentes personales digitales (PDA) suelen tener programas en
memoria ROM (o por lo menos en memoria flash).
Uso para almacenamiento de datos
Como la ROM no puede ser modificada (al menos en la antigua versión de máscara), solo resulta apropiada para almacenar datos que
no necesiten ser modificados durante la vida de este dispositivo. Con este fin, la ROM se ha utilizado en muchos ordenadores para
guardar tablas de consulta, utilizadas para la evaluación de funciones matemáticas y lógicas. Esto era especialmente eficiente cuando
la unidad central de procesamiento era lenta y la ROM era barata en comparación con la RAM. De hecho, una razón de que todavía se
utilice la memoria ROM para almacenar datos es la velocidad, ya que los discos siguen siendo más lentos. Y lo que es aún más
importante, no se puede leer un programa que es necesario para ejecutar un disco desde el propio disco. Por lo tanto, la BIOS, o el
sistema de arranque oportuno del PC normalmente se encuentran en una memoria ROM.
No obstante, el uso de la ROM para almacenar grandes cantidades de datos ha ido desapareciendo casi completamente en los
ordenadores de propósito general, mientras que la memoria Flash ha ido ocupando este puesto.
Velocidad
Velocidad de lectura
Aunque la relación relativa entre las velocidades de las memorias RAM y ROM ha ido variando con el tiempo, desde el año 2007 la
RAM es más rápida para la lectura que la mayoría de las ROM, razón por la cual el contenido ROM se suele traspasar normalmente a
la memoria RAM, desde donde es leída cuando se utiliza.
Velocidad de escritura
Para los tipos de ROM que puedan ser modificados eléctricamente, la velocidad de escritura siempre es mucho más lenta que la
velocidad de lectura, pudiendo requerir voltaje excepcionalmente alto, movimiento de jumpers para habilitar el modo de escritura, y
comandos especiales de desbloqueo. Las memorias Flash NAND logran la más alta velocidad de escritura entre todos los tipos de
memoria ROM reprogramable, escribiendo grandes bloques de celdas de memoria simultáneamente, y llegando a 15 MB/s. La RAM
Tiene una capacidad Maxima de 128 MB UCV.
3.
Una PROM común se encuentra con todos los bits en valor 1 como valor por defecto de las fábricas; el quemado de cada
fusible, cambia el valor del correspondiente bit a 0. La programación se realiza aplicando pulsos de altos voltajes que no se
encuentran durante operaciones normales (12 a 21 voltios). El término Read-only (solo lectura) se refiere a que, a diferencia
de otras memorias, los datos no pueden ser cambiados (al menos por el usuario final).
Historia
La memoria PROM fue inventada en 1956 por Wen Tsing Chow, trabajando para la División Arma, de la American Bosch Arma
Corporation en Garden City, Nueva York. La invención fue concebida a petición de la Fuerza Aérea de los Estados Unidos, para
conseguir una forma más segura y flexible para almacenar las constantes de los objetivos en la computadora digital del MBI Atlas
E/F.
La patente y la tecnología asociadas fueron mantenidas bajo secreto por varios años mientras el Atlas E/F era el principal misil de
Estados Unidos. El término "quemar", refiriéndose al proceso de grabar una PROM, se encuentra también en la patente original,
porque como parte de la implementación original debía quemarse literalmente los diodos internos con un exceso de corriente para
producir la discontinuidad del circuito. Las primeras máquinas de programación de PROMs también fueron desarrolladas por
ingenieros de la División Arma bajo la dirección del Sr. Chow y fueron ubicados el laboratorio Arma de Garden City, y en la jefatura
del Comando estratégico aéreo de las Fuerzas Aéreas.
EPROM y EEPROM
Wen Tsing Chow y otros ingenieros de la División Arma continuaron con este suceso diseñando la primera Memoria de Solo
Lectura No destruible' (Non-Destructive Read-Only Memory, NDRO) para aplicarlo a misiles guiados, fundamentado en una base
de doble abertura magnética. Estas memorias, diseñadas originalmente para mantener constantes de objetivos, fueron utilizadas para
sistemas de armas de MBIs y MMRBMs.
La principal motivación para este invento fue que la Fuerza Aérea Estadounidense necesitaba reducir los costes de la fabricación de
plaquetas de objetivos basadas en PROMs que necesitaban cambios constantes a medida que llegaba nueva información sobre
objetivos del bloque de naciones comunistas. Como estas memorias son borrables, programables y re-programables, constituyen la
primera implementación de una producción de memorias EPROM y EEPROM, de fabricación anterior al 1963.
Debe observarse que los términos modernos de estos dispositivos, PROM, EPROM y EEPROM, no fueron creados hasta un tiempo
después de que las aplicaciones de misiles nucleares guiados hayan estado operacionales. Las implementaciones originales de Arma
se refieren a las PROMs como "matriz de almacenamiento de constantes"; y a las EPROMs y EEPROMs simplemente eran
denominadas "memorias NDRO".
Las modernas implementaciones comerciales de las PROM, EPROM y EEPROM basadas en circuitos integrados, borrado por luz
ultravioleta, y varias propiedades de los transistores, aparecen unos 10 años después. Hasta que esas nuevas implementaciones fueron
desarrolladas, fuera de aplicaciones militares, era más barato fabricar memorias ROM que utilizar una de las nuevas caras tecnologías
desarrolladas y fabricados por los contratistas de misiles de las fuerzas aéreas.
De todas formas, en misiles, naves espaciales, satélites y otras aplicaciones de mucha confiabilidad, siguen en uso muchos de los
métodos de la implementación original de los '50.
EEPROM o E²PROM son las siglas de Electrically Erasable Programmable Read-Only Memory (ROM programable y borrada
eléctricamente). Es un tipo de memoria ROM que puede ser programada, borrada y reprogramada eléctricamente, a diferencia de la
EPROM que ha de borrarse mediante un aparato que emite rayos ultravioleta. Son memorias no volátiles.
Las celdas de memoria de una EEPROM están constituidas por un transistor MOS, que tiene una compuerta flotante (estructura
SAMOS), su estado normal esta cortado y la salida proporciona un 1 lógico.
Aunque una EEPROM puede ser leída un número ilimitado de veces, sólo puede ser borrada y reprogramada entre 100.000 y un
millón de veces.
Estos dispositivos suelen comunicarse mediante protocolos como I²C, SPI y Microwire. En otras ocasiones, se integra dentro de chips
como microcontroladores y DSPs para lograr una mayor rapidez.
La memoria flash es una forma avanzada de EEPROM creada por el Dr. Fujio Masuoka mientras trabajaba para Toshiba en 1984 y
fue presentada en la Reunión de Aparatos Electrónicos de la IEEE de 1984. Intel vio el potencial de la invención y en 1988 lanzó el
primer chip comercial de tipo NOR.
Memoria flash
La historia de la memoria flash siempre ha estado muy vinculada con el avance del resto de las tecnologías a las que presta sus
servicios como routers, módems, BIOS de los PC, wireless, etc. Fue Fujio Masuoka en 1984, quien inventó este tipo de memoria
como evolución de las EEPROM existentes por aquel entonces. Intel intentó atribuirse la creación de esta sin éxito, aunque si
comercializó la primera memoria flash de uso común.
Entre los años 1994 y 1998, se desarrollaron los principales tipos de memoria que conocemos hoy, como la SmartMedia o la
CompactFlash. La tecnología pronto planteó aplicaciones en otros campos. En 1998, la compañía Rio comercializó el primer
‘Walkman’ sin piezas móviles aprovechando el modo de funcionamiento de SmartMedia. Era el sueño de todo deportista que hubiera
sufrido los saltos de un discman en el bolsillo.
En 1994 SanDisk comenzó a comercializar tarjetas de memoria (CompactFlash) basadas en estos circuitos, y desde entonces la
evolución ha llegado a pequeños dispositivos de mano de la electrónica de consumo como reproductores de MP3 portátiles, tarjetas de
memoria para vídeo consolas, capacidad de almacenamiento para las PC Card que nos permiten conectar a redes inalámbricas y un
largo etcétera, incluso llegando a la aeronáutica espacial. El espectro es grande.
Generalidades
Económicamente hablando, el precio en el mercado cumple la ley de moore. En el año 2011, el coste por MB en los discos duros son
muy inferiores a los que ofrece la memoria flash y, además los discos duros tienen una capacidad muy superior a la de las memorias
flash.
Ofrecen, además, características como gran resistencia a los golpes, bajo consumo y por completo silencioso, ya que no contiene ni
actuadores mecánicos ni partes móviles. Su pequeño tamaño también es un factor determinante a la hora de escoger para un
dispositivo portátil, así como su ligereza y versatilidad para todos los usos hacia los que está orientado.
Sin embargo, todos los tipos de memoria flash sólo permiten un número limitado de escrituras y borrados, generalmente entre 10.000
y un millón, dependiendo de la celda, de la precisión del proceso de fabricación y del voltaje necesario para su borrado.
Este tipo de memoria está fabricado con puertas lógicas NOR y NAND para almacenar los 0s ó 1s correspondientes. Actualmente (0808-2005) hay una gran división entre los fabricantes de un tipo u otro, especialmente a la hora de elegir un sistema de ficheros para
estas memorias. Sin embargo se comienzan a desarrollar memorias basadas en ORNAND.
Los sistemas de ficheros para estas memorias están en pleno desarrollo aunque ya en funcionamiento como por ejemplo JFFS
originalmente para NOR, evolucionado a JFFS2 para soportar además NAND o YAFFS, ya en su segunda versión, para NAND. Sin
embargo, en la práctica se emplea un sistema de ficheros FAT por compatibilidad, sobre todo en las tarjetas de memoria extraible.
Otra característica ha sido la resistencia térmica de algunos encapsulados de tarjetas de memoria orientadas a las cámaras digitales de
gama alta. Esto permite funcionar en condiciones extremas de temperatura como desiertos o glaciares ya que el rango de temperaturas
soportado abarca desde los -25 °C hasta los 85 °C.
Las aplicaciones más habituales son:
 El llavero USB que, además del almacenamiento, suelen incluir otros servicios como radio FM, grabación de voz y, sobre
todo como reproductores portátiles de MP3 y otros formatos de audio.
 Las PC Card
 Las tarjetas de memoria flash que son el sustituto del carrete en la fotografía digital, ya que en las mismas se almacenan las
fotos.
Existen varios estándares de encapsulados promocionados y fabricados por la mayoría de las multinacionales dedicadas a la
producción de hardware.
Acceso a bajo nivel
Flash, como tipo de EEPROM que es, contiene una matriz de celdas con un transistor evolucionado con dos puertas en cada
intersección. Tradicionalmente sólo almacenan un bit de información. Las nuevas memorias flash, llamadas también dispositivos de
celdas multi-nivel, pueden almacenar más de un bit por celda variando el número de electrones que almacenan.
Estas memorias están basadas en el transistor FAMOS (Floating Gate Avalanche-Injection Metal Oxide Semiconductor) que es,
esencialmente, un transistor NMOS con un conductor (basado en un óxido metálico) adicional localizado o entre la puerta de control
(CG – Control Gate) y los terminales fuente/drenador contenidos en otra puerta (FG – Floating Gate) o alrededor de la FG
conteniendo los electrones que almacenan la información.
Memoria flash de tipo NOR
Cableado y estructura en silicio de la memoria flash NOR
En las memorias flash de tipo NOR, cuando los electrones se encuentran en FG, modifican (prácticamente anulan) el campo eléctrico
que generaría CG en caso de estar activo. De esta forma, dependiendo de si la celda está a 1 ó a 0, el campo eléctrico de la celda existe
o no. Entonces, cuando se lee la celda poniendo un determinado voltaje en CG, la corriente eléctrica fluye o no en función del voltaje
almacenado en la celda. La presencia/ausencia de corriente se detecta e interpreta como un 1 ó un 0, reproduciendo así el dato
almacenado. En los dispositivos de celda multi-nivel, se detecta la intensidad de la corriente para controlar el número de electrones
almacenados en FG e interpretarlos adecuadamente.
Para programar una celda de tipo NOR (asignar un valor determinado) se permite el paso de la corriente desde el terminal fuente al
terminal sumidero, entonces se coloca en CG un voltaje alto para absorber los electrones y retenerlos en el campo eléctrico que
genera. Este proceso se llama hot-electrón injection. Para borrar (poner a “1”, el estado natural del transistor) el contenido de una
celda, expulsar estos electrones, se emplea la técnica de Fowler-Nordheim tunnelling, un proceso de tunelado mecánico – cuántico.
Esto es, aplicar un voltaje inverso bastante alto al empleado para atraer a los electrones, convirtiendo al transistor en una pistola de
electrones que permite, abriendo el terminal sumidero, que los electrones abandonen el mismo. Este proceso es el que provoca el
deterioro de las celdas, al aplicar sobre un conductor tan delgado un voltaje tan alto.
Es necesario destacar que las memorias flash están subdivididas en bloques (en ocasiones llamados sectores) y por lo tanto, para el
borrado, se limpian bloques enteros para agilizar el proceso, ya que es la parte más lenta del proceso. Por esta razón, las memorias
flash son mucho más rápidas que las EEPROM convencionales, ya que borran byte a byte. No obstante, para reescribir un dato es
necesario limpiar el bloque primero para después reescribir su contenido.
Memorias flash de tipo NAND
Cableado y estructura en silicio de la memoria flash NAND
Las memorias flash basadas en puertas lógicas NAND funcionan de forma ligeramente diferente: usan un túnel de inyección para la
escritura y para el borrado un túnel de ‘soltado’. Las memorias basadas en NAND tienen, además de la evidente base en otro tipo de
puertas, un coste bastante inferior, unas diez veces de más resistencia a las operaciones pero sólo permiten acceso secuencial (más
orientado a dispositivos de almacenamiento masivo), frente a las memorias flash basadas en NOR que permiten lectura de acceso
aleatorio. Sin embargo, han sido las NAND las que han permitido la expansión de este tipo de memoria, ya que el mecanismo de
borrado es más sencillo (aunque también se borre por bloques) lo que ha proporcionado una base más rentable para la creación de
dispositivos de tipo tarjeta de memoria. Las populares memorias USB o también llamadas Pendrives, utilizan memorias flash de tipo
NAND.
Comparación de memorias flash tipo NOR y NAND
Para comparar estos tipos de memoria se consideran los diferentes aspectos de las memorias tradicionalmente valorados.
 La densidad de almacenamiento de los chips es actualmente bastante mayor en las memorias NAND.
 El coste de NOR es mucho mayor.
 El acceso NOR es aleatorio para lectura y orientado a bloques para su modificación.
 En la escritura de NOR podemos llegar a modificar un solo bit. Esto destaca con la limitada reprogramación de las NAND
que deben modificar bloques o palabras completas.
 La velocidad de lectura es muy superior en NOR (50-100 ns) frente a NAND (10 µs de la búsqueda de la página + 50 ns por
byte).
 La velocidad de escritura para NOR es de 5 µs por byte frente a 200 µs por página en NAND.
 La velocidad de borrado para NOR es de 1 ms por bloque de 64 KB frente a los 2 ms por bloque de 16 KB en NAND.
 La fiabilidad de los dispositivos basados en NOR es realmente muy alta, es relativamente inmune a la corrupción de datos y
tampoco tiene bloques erróneos frente a la escasa fiabilidad de los sistemas NAND que requieren corrección de datos y
existe la posibilidad de que queden bloques marcados como erróneos e inservibles.
En resumen, los sistemas basados en NAND son más baratos y rápidos pero carecen de una fiabilidad que los haga eficientes, lo que
demuestra la necesidad imperiosa de un buen sistema de ficheros. Dependiendo de qué sea lo que se busque, merecerá la pena
decantarse por uno u otro tipo.
Estandarización
El grupo Open NAND Flash Interface (ONFI) ha desarrollado una interfaz estandarizada a bajo nivel para chips de memoria NAND.
Esto permite la interoperabilidad entre dispositivos NAND de diferentes fabricantes. El ONFI versión 1.0 1 fue lanzado el 28 de
diciembre de 2006. Especifica:
 Una interfaz física estándar (Pinout) para memorias NAND.
 Un set de comandos estándar para leer, escribir y borrar chips NAND.
 Un mecanismo para auto-identificación (comparable a la función de detección de presencia de módulos de memoria
SDRAM)
El grupo ONFI es apoyado por la mayoría de los fabricantes de memorias flash NAND, incluyendo Hynix, Intel, Micron Technology,
y Numonyx, así como por los principales fabricantes de dispositivos que incorporan chips de memoria flash NAND. 2
Un grupo de proveedores, incluyendo Intel, Dell, y Microsoft formaron el grupo de trabajo NVM Express (Non-Volatile Memory
Host Controller Interface). El objetivo del grupo es proporcionar software estándar e interfaces de programación hardware para los
subsistemas de memoria no volátil, incluido el dispositivo "flash cache", conectado al bus PCI Express.
Tarjetero flash
Un tarjetero flash es un periférico que lee o escribe en memoria flash. Actualmente, los instalados en ordenadores (incluidos en una
placa o mediante puerto USB), marcos digitales, lectores de DVD y otros dispositivos, suelen leer varios tipos de tarjetas.
Sistemas de ficheros flash
Diseñar un sistema de ficheros eficiente para las memorias flash se ha convertido en una carrera vertiginosa y compleja, ya que,
aunque ambos (NOR y NAND) son tipos de memoria flash, tienen características muy diferentes entre sí a la hora de acceder a esos
datos. Esto es porque un sistema de ficheros que trabaje con memorias de tipo NOR incorpora varios mecanismos innecesarios para
NAND y, a su vez, NAND requiere mecanismos adicionales, innecesarios para gestionar la memoria de tipo NOR.
Un ejemplo podría ser un recolector de basura. Esta herramienta está condicionada por el rendimiento de las funciones de borrado
que, en el caso de NOR es muy lento y, además, un recolector de basura NOR requiere una complejidad relativa bastante alta y limita
las opciones de diseño del sistema de ficheros. Comparándolo con los sistemas NAND, que borran mucho más rápidamente, estas
limitaciones no tienen sentido.
Otra de las grandes diferencias entre estos sistemas es el uso de bloques erróneos que pueden existir en NAND pero no tienen sentido
en los sistemas NOR que garantizan la integridad. El tamaño que deben manejar unos y otros sistemas también difiere sensiblemente
y por lo tanto es otro factor a tener en cuenta. Se deberá diseñar estos sistemas en función de la orientación que se le quiera dar al
sistema.
Los dos sistemas de ficheros que se disputan el liderazgo para la organización interna de las memorias flash son JFFS (Journaling
Flash File System) y YAFFS (Yet Another Flash File System), ExFAT es la opción de Microsoft.
Antecedentes de la memoria flash
Las memorias han evolucionado mucho desde los comienzos del mundo de la computación. Conviene recordar los tipos de memorias
de semiconductores empleadas como memoria principal y unas ligeras pinceladas sobre cada una de ellas para enmarcar las memorias
flash dentro de su contexto.
Organizando estos tipos de memoria conviene destacar tres categorías si las clasificamos en función de las operaciones que podemos
realizar sobre ellas, es decir, memorias de sólo lectura, memorias de sobre todo lectura y memorias de lectura/escritura.
 Memorias de sólo lectura.
o ROM: (Read Only Memory): Se usan principalmente en microprogramación de sistemas. Los fabricantes las suelen
emplear cuando producen componentes de forma masiva.
o PROM: (Programmable Read Only Memory): El proceso de escritura es electrónico. Se puede grabar
posteriormente a la fabricación del chip, a diferencia de las anteriores que se graba durante la fabricación. Permite
una única grabación y es más cara que la ROM.
 Memorias de sobre todo lectura.
o EPROM (Erasable Programmable Read Only Memory): Se puede escribir varias veces de forma eléctrica, sin
embargo, el borrado de los contenidos es completo y a través de la exposición a rayos ultravioletas (de esto que
suelen tener una pequeña ‘ventanita’ en el chip).
o EEPROM (Electrically Erasable Programmable Read Only Memory): Se puede borrar selectivamente byte a byte
con corriente eléctrica. Es más cara que la EPROM.
o Memoria flash: Está basada en las memorias EEPROM pero permite el borrado bloque a bloque y es más barata y
densa.
 Memorias de Lectura/Escritura (RAM)
o DRAM (Dynamic Random Access Memory): Los datos se almacenan como en la carga de un condensador. Tiende
a descargarse y, por lo tanto, es necesario un proceso de refresco periódico. Son más simples y baratas que las
SRAM.
o SRAM (Static Random Access Memory): Los datos se almacenan formando biestables, por lo que no requiere
refresco. Igual que DRAM es volátil. Son más rápidas que las DRAM y más caras.
Futuro
El futuro del mundo de la memoria flash es bastante alentador, ya que se tiende a la ubicuidad de las computadoras y
electrodomésticos inteligentes e integrados y, por ello, la demanda de memorias pequeñas, baratas y flexibles seguirá en alza hasta
que aparezcan nuevos sistemas que lo superen tanto en características como en coste. En apariencia, esto no parecía muy factible ni
siquiera a medio plazo ya que la miniaturización y densidad de las memorias flash estaba todavía lejos de alcanzar niveles
preocupantes desde el punto de vista físico. Pero con la aparición del memristor el futuro de las memorias flash comienza a opacarse.
El desarrollo de las memorias flash es, en comparación con otros tipos de memoria sorprendentemente rápido tanto en capacidad
como en velocidad y prestaciones. Sin embargo, los estándares de comunicación de estas memorias, de especial forma en la
comunicación con los PC es notablemente inferior, lo que puede retrasar los avances conseguidos.
La apuesta de gigantes de la informática de consumo como AMD y Fujitsu en formar nuevas empresas dedicadas exclusivamente a
este tipo de memorias como Spansion en julio de 2003 auguran fuertes inversiones en investigación, desarrollo e innovación en un
mercado que en 2005 sigue creciendo y que ya registró en 2004 un crecimiento asombroso hasta los 15.000 millones de dólares
(después de haber superado la burbuja tecnológica del llamado boom punto com) según el analista de la industria Gartner, que avala
todas estas ideas.
Es curioso que esta nueva empresa, concretamente, esté dando la vuelta a la tortilla respecto a las velocidades con una técnica tan
sencilla en la forma como compleja en el fondo de combinar los dos tipos de tecnologías reinantes en el mundo de las memorias flash
en tan poco tiempo. Sin duda se están invirtiendo muchos esfuerzos de todo tipo en este punto.
Sin embargo, la memoria flash se seguirá especializando fuertemente, aprovechando las características de cada tipo de memoria para
funciones concretas. Supongamos una Arquitectura Harvard para un pequeño dispositivo como un PDA; la memoria de instrucciones
estaría compuesta por una memoria de tipo ORNAND (empleando la tecnología MirrorBit de segunda generación) dedicada a los
programas del sistema, esto ofrecería velocidades sostenidas de hasta 150 MB/s de lectura en modo ráfaga según la compañía con un
costo energético ínfimo y que implementa una seguridad por hardware realmente avanzada; para la memoria de datos podríamos
emplear sistemas basados en puertas NAND de alta capacidad a un precio realmente asequible. Sólo quedaría reducir el consumo de
los potentes procesadores para PC actuales y dispondríamos de un sistema de muy reducidas dimensiones con unas prestaciones que
hoy en día sería la envidia de la mayoría de los ordenadores de sobremesa. Y no queda mucho tiempo hasta que estos sistemas tomen,
con un esfuerzo redoblado, las calles.
Cualquier dispositivo con datos críticos empleará las tecnologías basadas en NOR u ORNAND si tenemos en cuenta que un fallo
puede hacer inservible un terminal de telefonía móvil o un sistema médico por llegar a un caso extremo. Sin embargo, la electrónica
de consumo personal seguirá apostando por las memorias basadas en NAND por su inmensamente reducido costo y gran capacidad,
como los reproductores portátiles de MP3 o ya, incluso, reproductores de DVD portátiles. La reducción del voltaje empleado
(actualmente en 1,8 V la más reducida), además de un menor consumo, permitirá alargar la vida útil de estos dispositivos
sensiblemente. Con todo, los nuevos retos serán los problemas que sufren hoy en día los procesadores por su miniaturización y altas
frecuencias de reloj de los microprocesadores.
Los sistemas de ficheros para memorias flash, con proyectos disponibles mediante CVS (Concurrent Version System) y código
abierto permiten un desarrollo realmente rápido, como es el caso de YAFFS2, que, incluso, ha conseguido varios patrocinadores y hay
empresas realmente interesadas en un proyecto de esta envergadura.
La integración con sistemas inalámbricos permitirá unas condiciones propicias para una mayor integración y ubicuidad de los
dispositivos digitales, convirtiendo el mundo que nos rodea en el sueño de muchos desde la década de 1980. Pero no sólo eso, la
Agencia Espacial Brasileña, por citar una agencia espacial, ya se ha interesado oficialmente en este tipo de memorias para integrarla
en sus diseños; la NASA ya lo hizo y demostró en Marte su funcionamiento en el Spirit (rover de la NASA, gemelo de Opportunity),
donde se almacenaban incorrectamente las órdenes como bien se puede recordar. Esto sólo es el principio. Y más cerca de lo que
creemos. Intel asegura que el 90% de los PC, cerca del 90% de los móviles, el 50% de los módems, etc., en 1997 ya contaban con este
tipo de memorias.
Memoria flash como sustituto del disco duro
En la actualidad TDK está fabricando discos duros con memorias flash NAND de 32 Gb con un tamaño similar al de un disco duro de
2,5 pulgadas, similares a los discos duros de los portátiles con una velocidad de 33,3 Mb/s. El problema de este disco duro es que, al
contrario de los discos duros convencionales, tiene un número limitado de accesos. Samsung también ha desarrollado memorias
NAND de hasta 32 Gb.
Apple presentó el 20 de octubre del 2010 una nueva versión de la computadora portátil MacBook Air en el evento denominado ‘De
vuelta al Mac’ (Back to the Mac), en su sede general de Cupertino, en California (Estados Unidos). Una de las características más
resaltantes de este nuevo equipo es que no tiene disco duro, sino una memoria flash, lo que la hace una máquina más rápida y ligera.
Según David Cuen, un especialista consultado por la BBC Mundo, “la memoria flash es una apuesta interesante pero arriesgada. La
pregunta es: ¿está el mercado preparado para deshacerse de los discos duros? Apple parece pensar que sí”. 3
La expansión de la memoria flash es prácticamente infinita. El 7 de enero de 2013, Kingston lanzó una memoria flash (DataTraveler
HyperX Predator 3.0) con una capacidad máxima de 1 TB.4
Memoria flash como RAM
A partir de 2012, hay intentos de utilizar la memoria flash como memoria principal del ordenador, DRAM. De momento es más lenta
que la DRAM convencional, pero utiliza hasta diez veces menos energía, y también es significativamente más barata. 5 La fuente
muestra una foto del dispositivo que se parece a una tarjeta PCI-Express, soportada por el driver correspondiente.
Emulador
De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda
DOSBox, emulador que permite ejecutar una shell similar al sistema DOS.
En informática, un emulador es un software que permite ejecutar programas o videojuegos en una plataforma (sea una arquitectura de
hardware o un sistema operativo) diferente de aquella para la cual fueron escritos originalmente. A diferencia de un simulador, que
sólo trata de reproducir el comportamiento del programa, un emulador trata de modelar de forma precisa el dispositivo de manera que
este funcione como si estuviese siendo usado en el aparato original.
Un uso popular de los emuladores es el de imitar la experiencia de los videojuegos de máquinas recreativas o videoconsolas en
computadoras personales, o el poder ser jugados en otras videoconsolas. La emulación de videojuegos de sistemas antiguos
(abandonware) en las modernas computadoras personales y videoconsolas de hoy día resulta generalmente más cómoda y práctico que
en los dispositivos originales. Sin embargo, puede ser requerido a los creadores de emuladores una licencia de software para escribir
programas originales que dupliquen la funcionabilidad de la ROM y BIOS del hardware original, lo que comúnmente se conoce como
high-level emulation o emulación de alto nivel.
En sentido teórico, la tesis de Church-Turing implica que cualquier ambiente funcional puede ser emulado dentro de cualquier otro.
En la práctica, esto puede resultar realmente difícil, particularmente cuando el comportamiento exacto del sistema emulado no está
documentado y debe ser deducido mediante ingeniería inversa. Tampoco se habla en la tesis sobre las diferencias en sincronización; si
el emulador no actúa tan rápidamente como el hardware original, el software de emulación va a ir más lento que si fuese el hardware
original.
Estructura
La mayoría de los emuladores solo emulan una determinada configuración arquitectura de hardware - si el sistema de explotación ( o
sistema operativo) también se requiere para emular cierto programa entonces ha de ser emulado también. Tanto el sistema de
explotación como el programa deben ser interpretados por el emulador, como si estuviese ejecutándose en el equipo original. Aparte
de la interpretación del lenguaje de la máquina emulada, es preciso emular el resto del equipo, como los dispositivos de entrada y
salida, de forma virtual: si escribir en una región específica de la memoria debe influir en el contenido en pantalla, por ejemplo, esto
también debe ser emulado.
En vez de una emulación completa del equipo, una compatibilidad superficial puede ser suficiente. Esto traduce las llamadas del
sistema emulado a llamadas del sistema anfitrión.
Los desarrolladores de programas para máquinas con sistemas computarizados y consolas de videojuego comúnmente utilizan
emuladores especialmente exactos llamados simuladores antes de ejecutarlos en el equipo real. Esto permite que el programa pueda
ser producido y probado antes de que la versión final del equipo para el cual se está desarrollando sea producida en grandes
cantidades, de esta forma puede ser probado sin tener que copiar el programa en el equipo, de modo que puedan ser eliminados
errores en un nivel bajo sin tener los efectos colaterales de un depurador.
Típicamente, un emulador se divide en módulos que corresponden de forma precisa a los subsistemas del equipo emulado. Lo más
común, es que un emulador este compuesto por los siguientes módulos:

o Un emulador de la unidad central de procesamiento.
o Un módulo para el subsistema de memoria.
o Varios emuladores para los dispositivos de entrada y salida.
Lo más común es que los buses no sean emulados, por razones de simplicidad y rendimiento, y para que los periféricos virtuales se
comuniquen directamente con la UCP y los subsistemas de memoria.
Simulador de CPU
El simulador de la unidad central de procesamiento (CPU) es a menudo la parte más compleja de un emulador. Muchos emuladores
son escritos utilizando simuladores de CPU "preempaquetados", para así poder realizar una emulación fiel y eficiente de una máquina
específica.
El simulador de CPU más simple sería un intérprete informático, que sigue el flujo de ejecución del código de programación emulado
y, por cada instrucción de código de la máquina emulada, ejecuta en el procesador en que se carga, instrucciones semánticamente
equivalentes a las originales.
Esto es posible asignando una variable a cada registro y flag de la CPU emulada. La lógica de la CPU simulada puede ser más o
menos traducida directamente a algoritmos de software, creando una reimplementación del software que básicamente refleja la
implementación original del hardware.
El ejemplo siguiente ilustra el modo en que la simulación de CPU por un intérprete. En este caso, las interrupciones se revisan
después de la ejecución de cada instrucción, aunque este comportamiento no es usual en los emuladores en la realidad, por razones de
rendimiento.
void Execute(void) {
if(Interrupt!=INT_NONE) {
SuperUser=TRUE;
WriteMemory(++StackPointer, ProgramCounter);
ProgramCounter=InterruptPointer;
}
switch(ReadMemory(ProgramCounter++)) {
// Handling of every valid instruction
default:
Interrupt=INT_ILLEGAL;
}
}
Los intérpretes son muy populares en el caso de los simuladores de CPU, ya que son más sencillos de implementar que otras
soluciones alternativas de mejor rendimiento, y su velocidad es más que adecuada para emular computadoras de hace más de una
década en máquinas modernas.
Aun así, la penalización de velocidad inherente en la interpretación puede ser un problema al emular computadores cuya velocidad de
procesador está en el mismo orden de magnitud que la máquina huésped. Hasta no hace tantos años, la emulación en tales situaciones
era considerada impracticable.
Lo que permite el rompimiento de esta restricción son las técnicas avanzadas de recompilación dinámica. Una translación simple a
priori del código del programa emulado al código que corre en la arquitectura original es usualmente imposible por varias razones:
 el código puede ser auto modificable
 no existe una forma que distinga de forma confiable los segmentos de información (que no deben ser traducidos) de los
segmentos de texto (segmentos de código)
 no existe forma de comunicarse con el sistema operativo emulado para que el emulador reconozca los nuevos códigos
cargados (por ejemplo del disco)
Varias formas de recompilación dinámica, incluyendo la popular técnica de compilación en tiempo de ejecución (compilación JIT),
trata de bordear estos temas esperando hasta que el proceso de control de flujo se mueva hasta donde esta la parte donde está
localizado el código sin traducir, y es solo entonces {"en tiempo de ejecución") cuando los bloques traducidos del código al código
anfitrión pueden ser ejecutados.
El código traducido se mantiene en el código caché, y el código original no se pierde ni es afectado; de esta forma, incluso los
segmentos de data pueden ser trasladados por el recompilador, resultando solo en un gasto de tiempo de traslado.
Dispositivos de entrada y salida
La mayoría de los emuladores, como dicho anteriormente, no emulan el sistema principal bus; cada dispositivo de entrada y salida es
tratado a menudo como un caso especial, y no existe una interfaz constante para los periféricos virtuales.
Esto puede resultar en una ventaja en el funcionamiento, proveyendo que cada módulo de entrada y salida pueda ser adaptado a las
características del dispositivo emulado; diseños basados en un estándar, entradas y salidas unificadas por medio de API pueden sin
embargo proveer modelos más simples, y además tienen la ventaja adicional de permitir de forma "automática" la utilización de
servicios plugins para proveer dispositivos virtuales de terceros en el emulador.
Las entradas y salidas unificadas por medio de API no necesariamente reflejan la estructura del bus del hardware real: el diseño del
bus está limitado por varios parámetros eléctricos y la necesidad del manejo de programación paralela que la mayoría de las veces
puede ser ignorada en la implementación del software.
Aún los emuladores que tratan cada dispositivo como un caso especial poseen una infraestructura básica en común para ello:
 manejando interruptores, por medio de procedimientos que fijen banderas legibles por el simulador del CPU siempre que un
interruptor sea levantado, permitiendo al CPU virtual "convertir los interruptores (virtuales)".
 escribiendo y leyendo de la memoria física, por medio de dos procedimientos similares mientras este lidia con la memoria
lógica (contrario a este último, el anterior puede comúnmente ser echado a un lado, y en su lugar se emplean las referencias
directas al arreglo de memoria)
Sistema de ROM
NeoRAGEx, emulador a base de imágenes ROM.
Los emuladores arrancan imágenes ROM, o sea el contenido de los cartuchos, disquetes o cintas que se usaban con los sistemas
antiguos. Físicamente en las PC las ROM son archivos binarios que se pueden cargar en la memoria. Es decir, el emulador es un
programa que hace las funciones de una consola, por ejemplo la Game Boy Advance o una PDA, y la ROM es un archivo que hace de
cartucho, CD-ROM, o cinta, por ejemplo Mario Bros..
Virtualización
También hay una vertiente en la emulación que puede ser realizada por virtualización, consistente en crear una capa de abstracción,
pero ejecutando instrucciones en una máquina del mismo tipo, y da como resultados obtener una computadora dentro de otra.
Ejemplos de esto son:
 VMware
 Microsoft Virtual PC
 Bochs
 VirtualBox
Emulador de videoconsola
Artículo principal: Emulador de videoconsola.
Los emuladores de videoconsolas son un tipo de emuladores diseñados para emular una o varias videoconsolas y así poder jugar un
videojuego diseñado para ser jugado en ésta(s). Los emuladores múltiples suelen emular consolas con características similares (por
ejemplo MEKA emula todas las consolas de Sega de 8 bits y la Colecovision)