La memoria de la computadora almacena información, como datos y programas, para su uso inmediato en la computadora . [2] El término memoria es a menudo sinónimo de los términos RAM , memoria principal o almacenamiento primario . Los sinónimos arcaicos de memoria principal incluyen núcleo (para memoria de núcleo magnético) y almacenamiento . [ 3]
La memoria principal funciona a una velocidad alta en comparación con el almacenamiento masivo , que es más lento pero menos costoso por bit y tiene mayor capacidad. Además de almacenar programas abiertos y datos que se procesan activamente, la memoria de la computadora sirve como caché de almacenamiento masivo y búfer de escritura para mejorar el rendimiento tanto de lectura como de escritura. Los sistemas operativos toman prestada capacidad de RAM para el almacenamiento en caché siempre que no sea necesaria para el software en ejecución. [4] Si es necesario, los contenidos de la memoria de la computadora se pueden transferir al almacenamiento; una forma común de hacer esto es a través de una técnica de administración de memoria llamada memoria virtual .
La memoria de computadora moderna se implementa como memoria semiconductora , [5] [6] donde los datos se almacenan dentro de celdas de memoria construidas a partir de transistores MOS y otros componentes en un circuito integrado . [7] Hay dos tipos principales de memoria semiconductora: volátil y no volátil . Ejemplos de memoria no volátil son la memoria flash y la memoria ROM , PROM , EPROM y EEPROM . Ejemplos de memoria volátil son la memoria dinámica de acceso aleatorio (DRAM) utilizada para el almacenamiento primario y la memoria estática de acceso aleatorio (SRAM) utilizada principalmente para la caché de la CPU .
La mayoría de las memorias de semiconductores están organizadas en celdas de memoria, cada una de las cuales almacena un bit (0 o 1). La organización de la memoria flash incluye tanto un bit por celda de memoria como una celda de varios niveles capaz de almacenar varios bits por celda. Las celdas de memoria se agrupan en palabras de longitud de palabra fija , por ejemplo, 1, 2, 4, 8, 16, 32, 64 o 128 bits. Se puede acceder a cada palabra mediante una dirección binaria de N bits, lo que hace posible almacenar 2 N palabras en la memoria.
A principios de la década de 1940, la tecnología de memoria permitía a menudo una capacidad de unos pocos bytes. La primera computadora digital programable electrónica , la ENIAC , que utilizaba miles de tubos de vacío , podía realizar cálculos sencillos que implicaban 20 números de diez dígitos decimales almacenados en los tubos de vacío.
El siguiente avance significativo en la memoria de las computadoras llegó con la memoria de línea de retardo acústica , desarrollada por J. Presper Eckert a principios de la década de 1940. Mediante la construcción de un tubo de vidrio lleno de mercurio y conectado en cada extremo con un cristal de cuarzo, las líneas de retardo podían almacenar bits de información en forma de ondas de sonido que se propagaban a través del mercurio, con los cristales de cuarzo actuando como transductores para leer y escribir bits. La memoria de línea de retardo estaba limitada a una capacidad de hasta unos pocos miles de bits.
En 1946 se crearon dos alternativas a la línea de retardo: el tubo Williams y el tubo Selectron , ambos utilizaban haces de electrones en tubos de vidrio como medio de almacenamiento. Utilizando tubos de rayos catódicos , Fred Williams inventó el tubo Williams, que fue la primera memoria de computadora de acceso aleatorio . El tubo Williams podía almacenar más información que el tubo Selectron (el Selectron estaba limitado a 256 bits, mientras que el tubo Williams podía almacenar miles) y era menos costoso. Sin embargo, el tubo Williams era frustrantemente sensible a las perturbaciones ambientales.
A finales de los años 40 comenzaron los esfuerzos para encontrar una memoria no volátil . La memoria de núcleo magnético permitía recuperar la memoria después de una pérdida de energía. Fue desarrollada por Frederick W. Viehe y An Wang a finales de los años 40 y mejorada por Jay Forrester y Jan A. Rajchman a principios de los años 50, antes de comercializarse con la computadora Whirlwind I en 1953. [8] La memoria de núcleo magnético fue la forma dominante de memoria hasta el desarrollo de la memoria de semiconductores MOS en los años 60. [9]
La primera memoria semiconductora se implementó como un circuito flip-flop a principios de la década de 1960 utilizando transistores bipolares . [9] La memoria semiconductora hecha a partir de dispositivos discretos fue enviada por primera vez por Texas Instruments a la Fuerza Aérea de los Estados Unidos en 1961. En el mismo año, el concepto de memoria de estado sólido en un chip de circuito integrado (IC) fue propuesto por el ingeniero de aplicaciones Bob Norman en Fairchild Semiconductor . [10] El primer chip IC de memoria semiconductora bipolar fue el SP95 introducido por IBM en 1965. [9] Si bien la memoria semiconductora ofrecía un rendimiento mejorado sobre la memoria de núcleo magnético, siguió siendo más grande y más cara y no desplazó a la memoria de núcleo magnético hasta fines de la década de 1960. [9] [11]
La invención del transistor de efecto de campo de metal-óxido-semiconductor ( MOSFET ) permitió el uso práctico de los transistores de metal-óxido-semiconductor (MOS) como elementos de almacenamiento de celdas de memoria . La memoria MOS fue desarrollada por John Schmidt en Fairchild Semiconductor en 1964. [12] Además de un mayor rendimiento, la memoria semiconductora MOS era más barata y consumía menos energía que la memoria de núcleo magnético. [13] En 1965, J. Wood y R. Ball del Royal Radar Establishment propusieron sistemas de almacenamiento digital que utilizan celdas de memoria CMOS (MOS complementarios), además de dispositivos de potencia MOSFET para la fuente de alimentación , acoplamiento cruzado conmutado, interruptores y almacenamiento de línea de retardo . [14] El desarrollo de la tecnología de circuito integrado MOS de compuerta de silicio (MOS IC) por Federico Faggin en Fairchild en 1968 permitió la producción de chips de memoria MOS . [15] La memoria NMOS fue comercializada por IBM a principios de la década de 1970. [16] La memoria MOS superó a la memoria de núcleo magnético como la tecnología de memoria dominante a principios de la década de 1970. [13]
Los dos tipos principales de memoria de acceso aleatorio volátil (RAM) son la memoria de acceso aleatorio estática (SRAM) y la memoria de acceso aleatorio dinámica (DRAM). La SRAM bipolar fue inventada por Robert Norman en Fairchild Semiconductor en 1963, [9] seguida por el desarrollo de la SRAM MOS por John Schmidt en Fairchild en 1964. [13] La SRAM se convirtió en una alternativa a la memoria de núcleo magnético, pero requiere seis transistores para cada bit de datos. [17] El uso comercial de la SRAM comenzó en 1965, cuando IBM presentó su chip SRAM SP95 para el System/360 Model 95. [ 9]
Toshiba introdujo las celdas de memoria DRAM bipolares para su calculadora electrónica Toscal BC-1411 en 1965. [18] [19] Si bien ofrecía un rendimiento mejorado, la DRAM bipolar no podía competir con el precio más bajo de la memoria de núcleo magnético dominante en ese momento. [20] La tecnología MOS es la base de la DRAM moderna. En 1966, Robert H. Dennard en el Centro de Investigación Thomas J. Watson de IBM estaba trabajando en la memoria MOS. Mientras examinaba las características de la tecnología MOS, descubrió que era posible construir condensadores y que almacenar una carga o ninguna carga en el condensador MOS podría representar el 1 y el 0 de un bit, mientras que el transistor MOS podría controlar la escritura de la carga en el condensador. Esto lo llevó al desarrollo de una celda de memoria DRAM de un solo transistor. [17] En 1967, Dennard presentó una patente para una celda de memoria DRAM de un solo transistor basada en la tecnología MOS. [21] Esto condujo al primer chip IC DRAM comercial, el Intel 1103 en octubre de 1970. [22] [23] [24] La memoria de acceso aleatorio dinámico sincrónico (SDRAM) debutó más tarde con el chip Samsung KM48SL2000 en 1992. [25] [26]
El término memoria también se utiliza a menudo para referirse a la memoria no volátil, incluida la memoria de solo lectura (ROM) hasta la memoria flash moderna . La memoria de solo lectura programable (PROM) fue inventada por Wen Tsing Chow en 1956, mientras trabajaba para la División Arma de la corporación estadounidense Bosch Arma. [27] [28] En 1967, Dawon Kahng y Simon Sze de Bell Labs propusieron que la puerta flotante de un dispositivo semiconductor MOS podría usarse para la celda de una ROM reprogramable, lo que llevó a Dov Frohman de Intel a inventar EPROM (PROM borrable) en 1971. [29] EEPROM (PROM borrable eléctricamente) fue desarrollada por Yasuo Tarui, Yutaka Hayashi y Kiyoko Naga en el Laboratorio Electrotécnico en 1972. [30] La memoria flash fue inventada por Fujio Masuoka en Toshiba a principios de la década de 1980. [31] [32] Masuoka y sus colegas presentaron la invención de la memoria flash NOR en 1984, [33] y luego la memoria flash NAND en 1987. [34] Toshiba comercializó la memoria flash NAND en 1987. [35] [36] [37]
Los avances tecnológicos y las economías de escala han hecho posible los llamadoscomputadoras con memoria muy grande (VLM).[37]
La memoria volátil es la memoria de la computadora que requiere energía para mantener la información almacenada. La mayoría de las memorias volátiles de semiconductores modernas son RAM estática (SRAM) o RAM dinámica (DRAM). [a] La DRAM predomina en la memoria del sistema de escritorio. La SRAM se utiliza para la memoria caché de la CPU . La SRAM también se encuentra en pequeños sistemas integrados que requieren poca memoria.
La SRAM conserva su contenido mientras la alimentación esté conectada y puede utilizar una interfaz más simple, pero comúnmente utiliza seis transistores por bit . La RAM dinámica es más complicada para la interconexión y el control, necesita ciclos de actualización regulares para evitar la pérdida de su contenido, pero utiliza solo un transistor y un capacitor por bit, lo que le permite alcanzar densidades mucho más altas y costos por bit mucho más económicos. [2] [23] [37]
La memoria no volátil puede retener la información almacenada incluso cuando no está encendida. Algunos ejemplos de memoria no volátil son la memoria de solo lectura , la memoria flash , la mayoría de los tipos de dispositivos de almacenamiento magnético de computadoras (por ejemplo, unidades de disco duro , disquetes y cintas magnéticas ), discos ópticos y los primeros métodos de almacenamiento de computadoras, como el tambor magnético , la cinta de papel y las tarjetas perforadas . [37]
Las tecnologías de memoria no volátil en desarrollo incluyen RAM ferroeléctrica , celda de metalización programable , RAM magnética de torque de transferencia de espín , SONOS , memoria de acceso aleatorio resistiva , memoria de pista de carreras , Nano-RAM , 3D XPoint y memoria milpiés .
Una tercera categoría de memoria es la semivolátil . El término se utiliza para describir una memoria que tiene una duración no volátil limitada después de que se corta la energía, pero luego se pierden los datos. Un objetivo típico al utilizar una memoria semivolátil es proporcionar el alto rendimiento y la durabilidad asociados con las memorias volátiles y, al mismo tiempo, brindar algunos beneficios de la memoria no volátil.
Por ejemplo, algunos tipos de memoria no volátil experimentan desgaste cuando se escriben. Una celda desgastada tiene mayor volatilidad pero, por lo demás, sigue funcionando. Las ubicaciones de datos que se escriben con frecuencia pueden, por tanto, dirigirse para utilizar circuitos desgastados. Mientras la ubicación se actualice dentro de un tiempo de retención conocido, los datos siguen siendo válidos. Después de un período de tiempo sin actualización, el valor se copia a un circuito menos desgastado con una retención más prolongada. Escribir primero en el área desgastada permite una alta tasa de escritura y, al mismo tiempo, evita el desgaste de los circuitos no desgastados. [38]
Como segundo ejemplo, una memoria RAM STT puede volverse no volátil mediante la construcción de celdas grandes, pero al hacerlo se eleva el costo por bit y los requisitos de energía y se reduce la velocidad de escritura. El uso de celdas pequeñas mejora el costo, la energía y la velocidad, pero conduce a un comportamiento semivolátil. En algunas aplicaciones, la mayor volatilidad se puede gestionar para brindar muchos de los beneficios de una memoria no volátil, por ejemplo, eliminando la energía pero forzando una reactivación antes de que se pierdan los datos; o almacenando en caché los datos de solo lectura y descartando los datos almacenados en caché si el tiempo de apagado excede el umbral no volátil. [39]
El término semivolátil también se utiliza para describir el comportamiento semivolátil construido a partir de otros tipos de memoria, como nvSRAM , que combina SRAM y una memoria no volátil en el mismo chip , donde una señal externa copia datos de la memoria volátil a la memoria no volátil, pero si se corta la energía antes de que se produzca la copia, los datos se pierden. Otro ejemplo es la RAM respaldada por batería , que utiliza una batería externa para alimentar el dispositivo de memoria en caso de pérdida de energía externa. Si se corta la energía durante un período prolongado de tiempo, la batería puede agotarse, lo que resulta en la pérdida de datos. [37]
La gestión adecuada de la memoria es fundamental para que un sistema informático funcione correctamente. Los sistemas operativos modernos cuentan con sistemas complejos para gestionar correctamente la memoria. Si no se hace así, pueden producirse errores o un rendimiento lento.
La gestión inadecuada de la memoria es una causa común de errores y vulnerabilidades de seguridad, incluidos los siguientes tipos:
La memoria virtual es un sistema en el que el sistema operativo administra la memoria física , generalmente con la ayuda de una unidad de administración de memoria , que forma parte de muchas CPU modernas . Permite utilizar varios tipos de memoria. Por ejemplo, algunos datos se pueden almacenar en la RAM mientras que otros se almacenan en un disco duro (por ejemplo, en un archivo de intercambio ), que funciona como una extensión de la jerarquía de caché . Esto ofrece varias ventajas. Los programadores de computadoras ya no necesitan preocuparse por dónde se almacenan físicamente sus datos o si la computadora del usuario tendrá suficiente memoria. El sistema operativo colocará los datos utilizados activamente en la RAM, que es mucho más rápida que los discos duros. Cuando la cantidad de RAM no es suficiente para ejecutar todos los programas actuales, puede resultar en una situación en la que la computadora pasa más tiempo moviendo datos de la RAM al disco y viceversa que realizando tareas; esto se conoce como thrashing .
La memoria protegida es un sistema en el que cada programa tiene un área de memoria para utilizar y no puede salir de ese rango. Si el sistema operativo detecta que un programa ha intentado alterar una memoria que no le pertenece, el programa se termina (o se restringe o redirige de otro modo). De esta manera, solo se bloquea el programa infractor y los demás programas no se ven afectados por el mal comportamiento (ya sea accidental o intencional). El uso de memoria protegida mejora en gran medida tanto la confiabilidad como la seguridad de un sistema informático.
Sin una memoria protegida, es posible que un error en un programa altere la memoria utilizada por otro programa. Esto hará que ese otro programa se ejecute en una memoria dañada con resultados impredecibles. Si la memoria del sistema operativo está dañada, todo el sistema informático puede bloquearse y ser necesario reiniciarlo . A veces, los programas alteran intencionalmente la memoria utilizada por otros programas. Esto lo hacen los virus y el malware para apoderarse de las computadoras. También puede ser utilizado benignamente por programas deseables que tienen como objetivo modificar otros programas, como los depuradores , por ejemplo, para insertar puntos de interrupción o ganchos.
un tamaño de chip de poco menos de 10 mm² y se vendía por unos 21 dólares.
La primera DRAM sincrónica comercial, la Samsung KM48SL2000 de 16 Mbit, emplea una arquitectura de banco único que permite a los diseñadores de sistemas realizar fácilmente la transición de sistemas asincrónicos a sincrónicos.
[...] Windows Server Enterprise admite la agrupación en clústeres de hasta ocho nodos y configuraciones de memoria muy grande (VLM) de hasta 32 GB en sistemas de 32 bits y 2 TB en sistemas de 64 bits.
{{cite web}}
: CS1 maint: multiple names: authors list (link){{cite web}}
: CS1 maint: multiple names: authors list (link)