La memoria caché es una clase de memoria RAMestática (SRAM) de acceso aleatorio y alta velocidad, situada entre el CPU y la RAM; se presenta de forma temporal y automática para el usuario, que proporciona acceso rápido a los datos de uso más frecuente.
La ubicación de la caché entre el microprocesador y la RAM, hace que sea suficientemente rápida para almacenar y transmitir los datos que el microprocesador necesita recibir casi instantáneamente.
La memoria caché es rápida, unas 5 ó 6 veces más que la DRAM (RAM dinámica), por eso su capacidad es mucho menor. Por eso su precio es elevado, hasta 10 ó 20 veces más que la memoria principal dinámica para la misma cantidad de memoria.
La utilización de la memoria caché se describe a continuación:
Acelerar el procesamiento de las instrucciones de memoria en la CPU.
Los ordenadores tienden a utilizar las mismas instrucciones y (en menor medida), los mismos datos repetidamente, por ello la caché contiene las instrucciones más usadas.
Por lo tanto, a mayor instrucciones y datos la CPU pueda obtener directamente de la memoria caché, tanto más rápido será el funcionamiento del ordenador.
Funcionamiento de la memoria caché
La memoria caché se carga desde la RAM con los datos y/o instrucciones que ha buscado la CPU en las últimas operaciones. La CPU siempre busca primero la información en la caché, lo normal es que va encontrar ahí la mayoría de las veces, con lo que el acceso será muy rápido. Pero si no encuentra la información en la caché, se pierde un tiempo extra en acudir a la RAM y copiar dicha información en la caché para su disponibilidad.
Como estos fallos ocurren con una frecuencia relativamente baja, el rendimiento mejora considerablemente, ya que la CPU accede más veces a la caché que a la RAM. En el siguiente diagrama se describe un proceso cuando la CPU requiere operación de lectura de una instrucción, para ello se presentan dos casos:
Una forma de entender el funcionamiento de la memoria caché consiste en la analogía de un videoclub, equipado con un mostrador y una habitación capaz de almacenar cientos de vídeos. Ante la petición de cada cliente, el dependiente deberá acudir hasta el almacén, buscar la película solicitada, volver al mostrador y entregar la cinta al cliente.
Ante la devolución de una cinta, el dependiente debe caminar hacia el almacén y guardar dicha cinta en el lugar apropiado. Esta forma de trabajo no es nada eficiente, ya que implica demasiados desplazamientos y, por tanto, la atención al cliente es lenta. Suponemos ahora que el dependiente dispone de un pequeño archivador de 20 vídeos sobre el mostrador. Cuando un cliente devuelve una cinta, el dependiente coloca la cinta directamente en el archivador, en lugar de caminar hacia el almacén.
Si se va repitiendo dicho proceso, el dependiente dispondrá continuamente de las veinte últimas películas devueltas en el archivador. Cuando se acerque un cliente y pida una película, el dependiente buscará primero en el archivador, y sólo si no la encuentra allí se desplazará hacia el almacén. Este método funciona, sobre todo porque la mayor parte de las películas devueltas serán las de estreno, que al mismo tiempo son las más solicitadas.
La memoria caché también se puede comparar con el cinturón de herramientas de un trabajador, donde guarda las herramientas y las piezas que se necesitan con mayor frecuencia. En este último ejemplo, la memoria principal es como un cinturón de herramienta portátil y el disco duro es como un camión grande para representarlo así.
Tipos de caché
A parte de la caché con respecto a la memoria RAM, en un PC existen muchos otros sistemas de caché, como:
Memoria RAM como caché: Las unidades de almacenamiento (discos duros, discos flexibles, etc.) y otros muchos periféricos utilizan la memoria RAM como sistema de caché, una zona de la RAM contiene la información que se ha buscado últimamente en dichos dispositivos, de forma que basta con acceder a la RAM para recuperarla.
Disco duro como caché: Se emplea al disco duro como caché a dispositivos aún más lentos (unidades CD-ROM). Estos sistemas de caché suelen estar gobernados mediante software, que se suele integrar en el sistema operativo. La caché de disco almacena direcciones concretas de sectores, almacena una copia del directorio y en algunos casos almacena porciones o extensiones del programa o programas en ejecución.
Los navegadoresWeb utilizan el disco duro como caché, al solicitar una página Web, el navegador acude a Internet y comprueba la fecha de la misma. Si la página no ha sido modificada, se toma directamente del disco duro, con lo que la carga es muy rápida. En caso contrario se descarga desde Internet y se actualiza la caché, con un cierto tiempo de espera. En el caso de los navegadores Web, el uso del disco duro es más que suficiente, ya que es extremadamente más rápido que el acceso a Internet.
Los llamados modos de direccionamiento son las diferentes maneras de especificar en informática un operando dentro de una instrucción (lenguaje ensamblador). Cómo se especifican e interpretan las direcciones de memoria según las instrucciones.
Pueden ser:
Inmediato: En la instrucción está incluido directamente el operando.
ejemplo:MOV A,#17H
Directo: El campo de operando en la instrucción contiene la dirección en memoria donde se encuentra el operando.
ejemplo:MOV A,17H
Indirecto: El campo de operando contiene una dirección de memoria, en la que se encuentra la dirección efectiva del operando.
ejemplo:MOV A,@17H
Absoluto: El campo de operando contiene una dirección en memoria, en la que se encuentra la instrucción.
De registro: Sirve para especificar operandos que están en registros.
ejemplo:MOV A,R0
Indirecto mediante registros: El campo de operando de la instrucción contiene un identificador de registro en el que se encuentra la dirección efectiva del operando.
ejemplo:MOV A,@R0
De desplazamiento: Combina el modo directo e indirecto mediante registros
De pila: Se utiliza cuando el operando está en memoria y en la cabecera de la pila.
Es la colección de interfaces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta. El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red.
En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.
Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica.
El bus es un sistema digital que transfiere datos entre los componentes de un computador o entre computadores. Están formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados.
La función del Bus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando datos entre dispositivos de distintos ordenes: desde dentro de los mismos circuitos integrados, hasta equipos digitales completos que forman parte de supercomputadoras.
La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de manejar las señales y entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de direcciones o señales de control.
Primera Generación
Los primeros computadores tenían 2 sistemas de buses, uno para la memoria y otro para los demás dispositivos. La CPU tenia que acceder a dos sistemas con instrucciones para cada uno, protocolos y sincronizaciones diferentes.
La empresa DEC notó que el uso de dos buses no era necesario si se combinaban las direcciones de memoria con los de los periféricos en un solo espacio de memoria (mapeo), de manera que la arquitectura se simplificaba ahorrando costos de fabricación en equipos fabricados en masa, como eran los primeros minicomputadores.
Los primeros microcomputadores se basaban en la conexión de varias tarjetas de circuito impreso a un bus Backplane pasivo que servía de eje al sistema. En ese bus se conectaba la tarjeta de CPU que realiza las funciones de arbitro de las comunicaciones con las demás tarjetas de dispositivo conectadas; las tarjetas incluían la memoria, controladoras de diskette y disco, adaptadores de vídeo. La CPU escribía o leía los datos apuntando a la dirección que tuviera el dispositivo buscado en el espacio único de direcciones haciendo que la información fluyera a través del bus principal.
Entre las implementaciones mas conocidas, están los buses Bus S-100 y el Bus ISA usados en varios microcomputadores de los 70's y 80's. En ambos, el bus era simplemente una extensión del bus del procesador de manera que funcionaba a la misma frecuencia. Por ejemplo en los sistemas con procesador Intel 80286 el bus ISA tenia 6 u 8 Mhz de frecuencia dependiendo del procesador.[1]
Segunda generación
El hecho de que el bus fuera pasivo y que usara la CPU como control, representaba varios problemas para la ampliación y modernización de cualquier sistema con esa arquitectura. Además que la CPU utilizaba una parte considerable de su potencia en controlar el bus. Desde que los procesadores empezaron a funcionar con frecuencias más altas, se hizo necesario jerararquizar los buses de acuerdo a su frecuencia: se creó el concepto de bus de sistema (conexión entre el procesador y la RAM) y de buses de expansión, haciendo necesario el uso de un Chipset para conectar todo el sistema.
El bus ISA utilizado como backplane en el PC IBM original pasó de ser un bus de sistema a uno de expasión, dejando su arbitraje a un integrado del chipset e implementando un bus a una frecuencia más alta para conectar la memoria con el procesador.
En cambio, el bus Nubus era independiente desde su creación, tenía un controlador propio y presentaba una interfaz estandar al resto del sistema, permitiendo su inclusión en diferentes arquitecturas. Fue usado en diversos equipos, incluyendo algunos de Apple y se caracterizaba por tener un ancho de 32 bits y algunas capacidades Plug and Play (autoconfiguración), que lo hacían muy versátil y adelantado a su tiempo. Entre otros ejemplos de estos buses autónomos, están el AGP y el bus PCI.
Tercera generación
Los buses de tercera generación se caracterizan por tener conexiones punto a punto, a diferencia de los buses arriba nombrados en los que se comparten señales de reloj, y otras partes del bus. Esto se logra reduciendo fuertemente el número de conexiones que presenta cada dispositivo usando interfaces seriales. Entonces cada dispositivo puede negociar las características de enlace al inicio de la conexión y en algunos casos de manera dinámica, al igual que sucede en las redes de comunicaciones. Entre los ejemplos más notables, están los buses PCI-Express, el Infiniband y el HyperTransport.
Tipos de Buses
Existen dos grandes tipos clasificados por el método de envió de la información: bus paralelo o serial. Hay diferencias en el desempeño y hasta hace unos años se consideraba que el uso apropiado dependía de la longitud física de la conexión: para cortas distancias el bus paralelo,para largas el serial.
Bus paralelo
Es un bus en el cual los datos son enviados por bytes al mismo tiempo, con la ayuda de varias líneas que tienen funciones fijas. La cantidad de datos enviada es bastante grande con una frecuencia moderada y es igual al ancho de los datos por la frecuencia de funcionamiento. En los computadores ha sido usado de manera intensiva, desde el bus del procesador, los buses de discos duros, tarjetas de expansión y de vídeo, hasta las impresoras.
Bus serie
En este los datos son enviados, bit a bit y se reconstruyen por medio de registros o rutinas de software. Está formado por pocos conductores y su ancho de banda depende de la frecuencia. Es usado desde hace menos de 10 años en buses para discos duros, tarjetas de expansión y para el bus del procesador.
La memoria (también llamada almacenamiento) se refiere a los componentes de una computadora, dispositivos y medios de almacenamiento que retienen datos informáticos durante algún intervalo de tiempo. Las memorias de computadora proporcionan unas de las principales funciones de la computación moderna, la retención o almacenamiento de información. Es uno de los componentes fundamentales de todas las computadoras modernas que, acoplados a una unidad central de procesamiento.
Propósitos del almacenamiento
Los componentes fundamentales de las computadoras de propósito general son la unidad aritmético-lógica (ALU), la unidad de control, espacio de almacenamiento y los dispositivos de entrada/salida. Si se elimina el almacenamiento, el aparato sería una simple calculadora en lugar de un computadora. La habilidad para almacenar las instrucciones que forman un programa de computadora y la información que manipulan las instrucciones es lo que hace versátiles a las computadoras diseñadas según la arquitectura de programas almacenados
Una computadora digital representa toda la información usando el sistema binario. Texto, números, imágenes, sonido y casi cualquier otra forma de información puede ser transformada en una sucesión de bits, o dígitos binarios, cada uno de los cuales tiene un valor de 1 ó 0. La unidad de almacenamiento más común es el byte, igual a 8 bits. Una determinada información puede ser manipulada por cualquier computadora cuyo espacio de almacenamiento es suficientemente grande como para que quepa el dato correspondiente o la representación binaria de la información. Por ejemplo, una computadora con un espacio de almacenamiento de ocho millones de bits, o un megabyte, puede ser usado para editar una novela pequeña.
Se han inventado varias formas de almacenamiento basadas en diversos fenómenos naturales. No existen ningún medio de almacenamiento de uso práctico universal y todas las formas de almacenamiento tienen sus desventajas. Por tanto, un sistema informático contiene varios tipos de almacenamiento, cada uno con su propósito individual, como se muestra en el diagrama.
Almacenamiento primario
La memoria primaria está directamente conectada a la CPU de la computadora. Debe estar presente para que la CPU funcione correctamente. El almacenamiento primario consiste en tres tipos de almacenamiento:
Los registros del procesador son internos de la CPU. Contienen información que las unidades aritmético-lógicas necesitan llevar a la instrucción en ejecución. Técnicamente, son los más rápidos de los almacenamientos de la computadora, siendo transistores de conmutación integrados en el chip de silicio del microprocesador (CPU) que funcionan como "flip-flop" electrónicos.
La memoria caché es un tipo especial de memoria interna usada en muchas CPU para mejorar su eficiencia o rendimiento. Parte de la información de la memoria principal se duplica en la memoria caché. Comparada con los registros, la caché es ligeramente más lenta pero de mayor capacidad. Sin embargo, es más rápida, aunque de mucha menor capacidad que la memoria principal. También es de uso común la memoria caché multi-nivel - la "caché primaria" que es más pequeña, rápida y cercana al dispositivo de procesamiento; la "caché secundaria" que es más grande y lenta, pero más rápida y mucho más pequeña que la memoria principal.
La memoria principal contiene los programas en ejecución y los datos con que operan. La unidad aritmético-lógica puede transferir información muy rápidamente entre un registro del microprocesador y localizaciones del almacenamiento principal, también conocidas como "direcciones de memoria". En las computadoras modernas se usan memorias de acceso aleatorio basadas en electrónica del estado sólido, que está directamente conectada a la CPU a través de un "bus de memoria" y de un "bus de datos".
Almacenamiento secundario
La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la información y se utiliza para almacenamiento a largo plazo de información persistente. Sin embargo, la mayoría de los sistemas operativos usan los dispositivos de almacenamiento secundario como área de intercambio para incrementar artificialmente la cantidad aparente de memoria principal en la computadora. La memoria secundaria también se llama "de almacenamiento masivo".
Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor capacidad que la memoria primaria, pero es mucho más lenta. En las computadoras modernas, los discos duros suelen usarse como dispositivos de almacenamiento masivo. El tiempo necesario para acceder a un byte de información dado almacenado en un disco duro es de unas milésimas de segundo (milisegundos). En cambio, el tiempo para acceder al mismo tipo de información en una memoria de acceso aleatorio (RAM) se mide en mil-millonésimas de segundo (nanosegundos).
Esto ilustra cuan significativa es la diferencia entre la velocidad de las memorias de estado sólido y la velocidad de los dispositivos rotantes de almacenamiento magnético u óptico: los discos duros son del orden de un millón de veces más lentos que la memoria (primaria). Los dispositivos rotantes de almacenamiento óptico (unidades de CD y DVD) son incluso más lentos que los discos duros, aunque es probable que su velocidad de acceso mejore con los avances tecnológicos.
Por lo tanto, el uso de la memoria virtual, que es cerca de un millón de veces más lenta que memoria “verdadera”, ralentiza apreciablemente el funcionamiento de cualquier computadora. Muchos sistemas operativos implementan la memoria virtual usando términos como memoria virtual o "fichero de caché". La principal ventaja histórica de la memoria virtual es el precio; la memoria virtual resultaba mucho más barata que la memoria real. Esa ventaja es menos relevante hoy en día. Aun así, muchos sistemas operativos siguen implementándola, a pesar de provocar un funcionamiento significativamente más lento.
Almacenamiento terciario
La memoria terciaria es un sistema en el que un brazo robótico montará (conectará) o desmontará (desconectará) un medio de almacenamiento masivo fuera de línea (véase el siguiente punto) según lo solicite el sistema operativo de la computadora. La memoria terciaria se usa en el área del almacenamiento industrial, la computación científica en grandes sistemas informáticos y en redes empresariales. Este tipo de memoria es algo que los usuarios de computadoras personales normales nunca ven de primera mano.
Almacenamiento fuera de línea
El almacenamiento fuera de línea es un sistema donde el medio de almacenamiento puede ser extraído fácilmente del dispositivo de almacenamiento. Estos medios de almacenamiento suelen usarse para transporte y archivo de datos. En computadoras modernas son de uso habitual para este propósito los disquetes, discos ópticos y las memorias flash, incluyendo las unidades USB. También hay discos duros USB que se pueden conectar en caliente. Los dispositivos de almacenamiento fuera de línea usados en el pasado son cintas magnéticas en muchos tamaños y formatos diferentes, y las baterías extraíbles de discos Winchester.
Almacenamiento de red
El almacenamiento de red es cualquier tipo de almacenamiento de computadora que incluye el hecho de acceder a la información a través de una red informática. Discutiblemente, el almacenamiento de red permite centralizar el control de información en una organización y reducir la duplicidad de la información. El almacenamiento en red incluye:
Las redes de computadoras son computadoras que no contienen dispositivos de almacenamiento secundario. En su lugar, los documentos y otros datos son almacenados en un dispositivo de la red.
Características de las memorias
La división entre primario, secundario, terciario, fuera de línea se basa en la jerarquía de memoria o distancia desde la unidad central de proceso. Hay otras formas de caracterizar a los distintos tipos de memoria.
Volatilidad de la información
La memoria volátil requiere energía constante para mantener la información almacenada. La memoria volátil se suele usar sólo en memorias primarias.La memoria RAM es una memoria volatil, ya que pierde informacion en la falta de energia electrica.
La memoria no volátil retendrá la información almacenada incluso si no recibe corriente eléctrica constantemente. Se usa para almacenamientos a largo plazo y, por tanto, se usa en memorias secundarias, terciarias y fuera de línea.
Memoria dinámica es una memoria volátil que además requiere que periódicamente se refresque la información almacenada, o leída y reescrita sin modificaciones.
Habilidad para acceder a información no contigua
Acceso aleatorio significa que se puede acceder a cualquier localización de la memoria en cualquier momento en el mismo intervalo de tiempo, normalmente pequeño.
Acceso secuencial significa que acceder a una unidad de información tomará un intervalo de tiempo variable, dependiendo de la unidad de información que fue leída anteriormente. El dispositivo puede necesitar buscar (posicionar correctamente el cabezal de lectura/escritura de un disco), o dar vueltas (esperando a que la posición adecuada aparezca debajo del cabezal de lectura/escritura en un medio que gira continuamente).
Habilidad para cambiar la información
Las memorias de lectura/escritura o memorias cambiables permiten que la información se reescriba en cualquier momento. Una computadora sin algo de memoria de lectura/escritura como memoria principal sería inútil para muchas tareas. Las computadora modernas también usan habitualmente memorias de lectura/escritura como memoria secundaria.
La memorias de sólo lectura retienen la información almacenada en el momento de fabricarse y la memoria de escritura única (WORM) permite que la información se escriba una sola vez en algún momento tras la fabricación. También están las memorias inmutables, que se utilizan en memorias terciarias y fuera de línea. Un ejemplo son los CD-ROMs.
Las memorias de escritura lenta y lectura rápida son memorias de lectura/escritura que permite que la información se reescriba múltiples veces pero con una velocidad de escritura mucho menor que la de lectura. Un ejemplo son los CD-RW.
Direccionamiento de la información
En la memoria de localización direccionable, cada unidad de información accesible individualmente en la memoria se selecciona con su dirección de memoria numérica. En las computadoras modernas, la memoria de localización direccionable se suele limitar a memorias primarias, que se leen internamente por programas de computadora ya que la localización direccionable es muy eficiente, pero difícil de usar para los humanos.
En las memorias de sistema de archivos, la información se divide en Archivos informáticos de longitud variable y un fichero concreto se localiza en directorios y nombres de archivos "legible por humanos". El dispositivo subyacente sigue siendo de localización direccionable, pero el sistema operativo de la computadora proporciona la abstracción del sistema de archivos para que la operación sea más entendible. En las computadora modernas, las memorias secundarias, terciarias y fuera de línea usan sistemas de archivos.
En las memorias de contenido direccionable (content-addressable memory), cada unidad de información legible individualmente se selecciona con una valor hash o un identificador corto sin relación con la dirección de memoria en la que se almacena la información. La memoria de contenido direccionable pueden construirse usando software o hardware; la opción hardware es la opción más rápida y cara.
Capacidad de memoria
Memorias de mayor capacidad son el resultado de la rápida evolución en tecnología de materiales semiconductores. Los primeros programas de ajedrez funcionaban en máquinas que utilizaban memorias de base magnética. A inicios de 1970 aparecen las memorias realizadas por semiconductores, como las utilizadas en la serie de computadoras IBM 370.
La velocidad de los computadores se incrementó, multiplicada por 100.000 aproximadamente y la capacidad de memoria creció en una proporción similar. Este hecho es particularmente importante para los programas que utilizan tablas de transposición: a medida que aumenta la velocidad de la computadora se necesitan memorias de capacidad proporcionalmente mayor para mantener la cantidad extra de posiciones que el programa está buscando.
Se espera que la capacidad de procesadores siga aumentando en los próximos años; no es un abuso pensar que la capacidad de memoria continuará creciendo de manera impresionante. Memorias de mayor capacidad podrán ser utilizadas por programas con tablas de Hash de mayor envergadura, las cuales mantendrán la información en forma permanente.
Minicomputadoras: se caracterizan por tener una configuración básica regular que puede estar compuesta por un monitor, unidades de disquete, disco, impresora, etc. Su capacidad de memoria varía de 16 a 256 kbytes.
Macrocomputadoras: son aquellas que dentro de su configuración básica contienen unidades que proveen de capacidad masiva de información, terminales (monitores), etc. Su capacidad de memoria varía desde 256 a 512 kbytes, también puede tener varios megabytes o hasta gigabytes según las necesidades de la empresa.
Microcomputadores y computadoras personales: con el avance de la microelectrónica en la década de los 70 resultaba posible incluir todos los componente del procesador central de una computadora en un solo circuito integrado llamado microprocesador. Ésta fue la base de creación de unas computadoras a las que se les llamó microcomputadoras. El origen de las microcomputadoras tuvo lugar en los Estados Unidos a partir de la comercialización de los primeros microprocesadores (INTEL 8008, 8080). En la década de los 80 comenzó la verdadera explosión masiva, de los ordenadores personales (Personal Computer PC) de IBM. Esta máquina, basada en el microprocesador INTEL 8008, tenía características interesantes que hacían más amplio su campo de operaciones, sobre todo porque su nuevo sistema operativo estandarizado (MS-DOS, Microsoft Disk Operating Sistem) y una mejor resolución óptica, la hacían más atractiva y fácil de usar. El ordenador personal ha pasado por varias transformaciones y mejoras que se conocen como XT(Tecnología Extendida), AT(Tecnología Avanzada) y PS/2...
EL ABACO; quizá fue el primer dispositivo mecánico de contabilidad que existió. Se ha calculado que tuvo su origen hace al menos 5000 años y su efectividad ha soportado la prueba del tiempo.
LA PASCALINA; Se le llamo Pascalina y funcionaba como maquinaria a base de engranes y ruedas.
LA LOCURA DE BABBAGE, Charles Babbage (1793-1871), visionario inglés y catedrático de Cambridge, hubiera podido acelerar el desarrollo de las computadoras si él y su mente inventiva hubieran nacido 100 años después. Adelantó la situación del hardware computacional al inventar la "máquina de diferencias", capaz de calcular tablas matemáticas. En 1834, cuando trabajaba en los avances de la máquina de diferencias Babbage concibió la idea de una "máquina analítica".
LA PRIMERA TARJETA PERFORADA; El telar de tejido, inventado en 1801 por el Francés Joseph-Marie Jackard (1753-1834), usado todavía en la actualidad, se controla por medio de tarjetas perforadas.
Pioneros de la computación
ATANASOFF Y BERRY Una antigua patente de un dispositivo que mucha genté creyó que era la primera computadora digital electrónica, se invalidó en 1973 por orden de un tribunal federal, y oficialmente se le dió el credito a John V. Atanasoff como el inventor de la computador a digital electrónica. El Dr. Atanasoff, catedrático de la Universidad Estatal de Iowa, desarrolló la primera computadora digital electrónica entre los años de 1937 a 1942. Llamó a su invento la computadora Atanasoff-Berry, ó solo ABC (Atanasoff Berry Com puter). Un estudiante graduado, Clifford Berry,fue una útil ayuda en la construcción de la computadora ABC.
La ENIAC construida para aplicaciones de la Segunda Guerra mundial, se terminó en 30 meses por un equipo de científicos que trabajan bajo reloj. La ENIAC, mil veces más veloz que sus predecesoras electromecánicas, irrumpió como un importante descubrimiento en la tecnología de la computación. Pesaba 30 toneladas y ocupaba un espacio de 450 mts cuadrados, llenaba un cuarto de 6 m x 12 m y con tenía 18,000 bulbos, tenía que programarse manualmente conectándola a 3 tableros que contenían más de 6000 interruptores. Ingresar un nuevo programa era un proceso muy tedioso que requería días o incluso semanas. A diferencia de las computadoras actuales que operan con un sistema binario (0,1) la ENIAC operaba con uno decimal (0,1,2..9) La ENIAC requería una gran cantidad de electricidad. La leyenda cuenta que la ENIAC, construida en la Universidad de Pensilvania, bajaba las luces de Filadelfia siempre que se activaba. La imponente escala y las numerosas aplicaciones generales de la ENIAC señalaron el comienzo de la primera generación de computadoras.
Generaciones de computadoras
Primera Generación de Computadoras
(de 1951 a 1958) Las computadoras de la primera Generación emplearon bulbos para procesar información. Los operadores ingresaban los datos y programas en código especial por medio de tarjetas perforadas. El almacenamiento interno se lograba con un tambor que giraba rápida mente, sobre el cual un dispositivo de lectura/escritura colocaba marcas magnéticas. Esas computadoras de bulbos eran mucho más grandes y generaban más calor que los modelos contemporáneos.
Segunda Generación
(1959-1964) Transistor Compatibilidad limitada El invento del transistor hizo posible una nueva generación de computadoras, más rápidas, más pequeñas y con menores necesidades de ventilación. Sin embargo el costo seguia siendo una porción significativa del presupuesto de una Compañia. Las computadoras de la segunda generación también utilizaban redes de nucleos magnéticos en lugar de tambores giratorios para el almacenamiento primario. Estos núcleos contenían pequeños anillos de material magnético, enlazados entre sí, en los cuales pod podrian almacenarse datos e instrucciones
Tercera Generación
(1964-1971) circuitos integrados Compatibilidad con equipo mayor Multiprogramación Minicomputadora Las computadoras de la tercera generación emergieron con el desarrollo de los circuitos integrados (pastillas de silicio) en las cuales se colocan miles de componentes electrónicos, en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. Antes del advenimiento de los circuitos integrados, las computadoras estaban diseñadas para aplicaciones matemáticas o de negocios, pero no para las dos cosas.
La organización de una computadora digital y su arquitectura están íntimamente relacionadas; sin embargo, son dos conceptos diferentes que muchas veces se toman como sinónimo.
La organización de una computadora digital se refiere a las unidades lógicas que la componen (como la Unidad Central de Proceso, la Unidad de Memoria y la Unidad de Entrada/ Salida), las funciones que realizan, su operación y la forma en que se relacionan y se comunican unas con otras.
La arquitectura de las computadoras se enfoca en la forma de construir cada una de estas unidades lógicas para que realicen las funciones especificadas por su organización, así como la manera en que estas unidades van a comunicarse para interactuar entre ellas.
1.2.- Arquitectura.
Una computadora digital, en su forma mas simple, consta de una Unidad Central de Proceso, una Unidad de Memoria y una Unidad de Entrada/ Salida. Estas unidades están interconectadas mediante un conjunto de líneas de comunicación que recibe el nombre de BUS.
La Unidad Central de Proceso (CPU) internamente contiene la Unidad de Control (CU), la Unidad Aritmética/ Lógica (ALU) y varios registros. Están arquitectura básica se muestra en forma esquemática en la figura. 1.1.
1.2.1.- Unidad de Memoria.
La unidad de memoria esta organizada como un conjunto de celdas, conocidas también como palabras, cada una de las cuales pueden almacenar un dato o una instrucción. Las celdas de la memoria tienen asociada una dirección única. Las direcciones de memoria están asignadas en forma secuencial empezando con la dirección “0”.
Pueden realizarse dos tipos de operaciones sobre la unidad de memoria. Estas operaciones son lectura de memoria y escritura a memoria. Para esto, la unidad de memoria tiene varias líneas las cuales se conecta al BUS.
Un conjunto de líneas sirven para especificar la dirección de una celda, otro conjunto sirve para transferir el dato que se desea leer o escribir en esa celda y otras líneas se usan para indicar el tipo de operación que se desea realizar. Existen, además, otras líneas que se utilizan para controlar y sincronizar la operación de la memoria con el resto de la computadora digital.
Una operación de lectura de la unidad de memoria permite obtener el dato o código de instrucción que se encuentra almacenado en una celda particular de la memoria. Cuando se desea leer un dato o una instrucción de una celda especifica, las líneas de dirección deben tener la dirección de la celda de memoria cuyo contenido se desea obtener, la línea de lectura se activa (indicando este tipo de operación) y las líneas de sincronización controlan el inicio de la operación.
Cuando la unidad de memoria termina de realizar la operación de lectura, coloca en las líneas de transferencia de datos una copia del contenido de la celda de memoria cuya dirección se especificó mediante la línea de dirección. El contenido de la celda de memoria no se modifica.
Una operación de escritura a la unidad de memoria permite almacenar un dato o una instrucción en una celda en particular de la unidad de memoria. El dato o instrucción que contiene la celda de memoria antes de realizar la operación de escritura será reemplazado con el dato o instrucción que se desea almacenar en dicha celda, perdiéndose el contenido original.
Para realizar este tipo de operación sobre la memoria, las líneas de dirección deben tener la dirección de la celda en la cual se desea almacenar el dato o la instrucción, que se desea guardar y las líneas de transferencia de datos deben tener el dato o instrucción que se desea guardar y la línea de escritura se activa. Cuando se inicia la operación mediante las líneas de sincronización, la unidad de memoria almacena el dato o la instrucción en la celda de memoria especificada.
1.2.2.- Unidad Central de Proceso (CPU).
La función de la unidad central de proceso es ejecutar instrucciones para procesar datos y controlar toda la operación de la computadora digital. Para realizar las funciones de control, la unidad central de proceso cuenta precisamente con una unidad de control (CU) que es la que se encarga de coordinar la ejecución de las instrucciones y la transferencia de datos entre las diferentes unidades de la computadora.
Para realizar las operaciones aritméticas y lógicas, la unidad central de proceso contiene la unidad aritmética y lógica (ALU).
1.2.3.- Registros.
La unidad central de proceso también cuenta con una serie de registros utilizados para ciertos propósitos. Un registro es una celda similar a una de las celdas de memoria y puede almacenar un dato o una instrucción, dependiendo del registro de que se trate.
1.2.4.- Unidades de Entrada/ Salida.
Para que un usuario de una computadora digital pueda ver y analizar los resultados de un programa, es necesario que se envíen a algún dispositivo periférico como una pantalla de video o una impresora. Cada dispositivo periférico debe tener asignada una dirección única para poder identificarlo.
La forma en que estos datos serian enviados al dispositivo es similar a la forma en que se guardarían en la unidad de memoria.
Dentro del bus existen líneas que indican si la operación de lectura o escritura debe ser realizar por la unidad de memoria o por la unidad de entrada/ salida.
1.3.- Interconexión de BUS.
Un BUS es una vía de comunicación que conecta a dos o más dispositivos. Una característica clave del bus es que es un medio de transmisión compartido. Múltiples dispositivos se conectan al bus y están disponible una señal transmitida por cualquier dispositivo para la recepción de todos los otros dispositivos conectados al bus. Si dos dispositivos transmiten durante el mismo periodo de tiempo, sus señales se transplantan y su información será engañosa (basura). Por lo tanto, solo dispositivo puede transmitir con éxito a la vez.
1.3.1.- Estructura de Bus.
Aunque hay diferentes diseños de bus, las líneas de cualquier bus pueden clasificarse en tres grupos de función (fig. 1.2): datos, dirección y líneas de control. Además existen líneas de distribución de potencia que suministran energía a los módulos conectados.
Laslíneas de datos proporcionan un camino para mover los datos entre los módulos del sistema. Estas líneas se llaman en conjunto, el “BUS DE DATOS”. El bus de datos consta de por ejemplo 8, 16, o 32 líneas separadas, a este número de líneas se hacen referencia como la “anchura del bus de datos”.
Como cada línea puede llevar sólo un bit a la vez, el número de líneas determina el número de bits que pueden transferir a un tiempo. La anchura del bus de datos es un factor clave para determinar la ejecución general del sistema.
Por ejemplo, si el bus de datos es de 8 bits de ancho y cada instrucción es de 16 bits de longitud, entonces la CPU debe acceder dos veces el módulo de memoria durante cada ciclo de instrucción.
Las líneas de dirección se utilizan para designar el origen o el destino de los datos en el bus de datos. Por ejemplo, si la CPU desea leer una palabra de datos (8,16,32 bits) de la memoria, coloca la dirección de la palabra deseada en la línea de dirección.
Las líneas de control se utilizan para controlar el acceso y el uso de los datos y las líneas de dirección. Puesto que los datos y las líneas de dirección se comparten por todos los componentes, debe existir un medio para controlar su uso. Las señales de control transmiten tanto el comando como la información de temporización entre módulos del sistema. Las señales de temporización indican la validez de los datos y de la información de dirección. Las señales de comando especifican las operaciones a efectuarse. Es común que las líneas de control incluyan:
Lectura de memoria: Causa que se coloquen en el bus los datos de la localidad direccionada.
Escritura a E/S: Causa que los datos que están en el bus salgan hacia el puerto de E/S direccionando.
Lectura de E/S: Causa que se coloquen en el bus los datos del puerto de E/S direccionar.
Solicitud de interrupción: Indica que una interrupción esta pendiente.
Reloj: Se utiliza para sincronizar operaciones.
Reinicializar: Inicializa todos los módulos.
En el aspecto físico, en bus del sistema es un número de conductores eléctricos paralelos. Estos conductores son líneas de metal grabadas en una tarjeta o tablero ( tarjeta con circuito impreso).
El bus se extiende a través de todos los componentes del sistema, cada uno de los cuales se conecta a algunos o todas las líneas del bus.
1.3.2.- Tipos de buses.
Las líneas de buses pueden separarse en dos tipos genéricos: “dedicadas” y “multiplexadas”. Una línea de bus dedicada se asigna permanentemente ya sea a una función o a un subconjunto físico de componentes de la computadora.
Un ejemplo de dedicación funcional es el uso de líneas de dirección y de datos separados dedicados, lo cual es común para muchos buses. Sin embargo, la información de datos y de dirección puede transmitirse sobre el mismo conjunto de líneas usando una línea de control de dirección valida.
A este método de usar las mismas líneas para múltiples propósitos se le conoce como multiplexeo en tiempo.
La ventaja del multiplexeo en tiempo es el uso de muy pocas líneas, lo cuál ahorra espacio y, casi siempre, costo. La desventaja es que se necesita circuitería más compleja dentro de cada módulo. También hay una disminución potencial en el desempeño ya que ciertos sucesos que comparten las mismas líneas no pueden tener lugar en paralelo.
Dedicación física se refiere al uso de múltiples buses, cada uno de los cuáles conecta solo un subconjunto de módulos. Un ejemplo característico es el uso de un bus de E – S para interconectar todos los módulos de E – S; este bus se conecta al bus principal por medio de algún tipo de módulo adaptador de E – S. La ventaja potencial de la dedicación física es un rendimiento alto, debido a que hay menos contención de bus. Una desventaja, sin embargo, es el incremento en el tamaño y costo del sistema.
1.4 La memoria.
La memoria es aquella parte del sistema computacional que se utiliza para el almacenamiento y la recuperación subsiguiente de datos e instrucciones.
1.4.1.- Características de los sistemas de memoria.
El tema de la memoria de la computadora se hace más manejable si clasificamos los sistemas de memoria de acuerdo con sus características clave. Las más importantes se listan en la tabla 1.2.
Iniciemos con el aspecto más visible de la memoria: su localización. Hay tanto memoria interna como externa para la computadora. La memoria interna se considera equivalente con frecuencia a la memoria principal. La memoria externa consiste en dispositivos periféricos de almacenamiento, tales como disco y cinta, que son accesibles a la CPU vía controladores de E – S.
Una característica obvia de la memoria es su capacidad. Para la memoria interna, esto se expresa de manera característica en términos de bytes (un byte = 8 bits) o palabras. Las longitudes comunes de palabra son 8, 16 y 32 bits. La capacidad de la memoria externa se expresa típicamente en términos de bytes.
Un concepto relacionado es el de la unidad de transferencia. Para la memoria interna, la unidad de transferencia es igual al número de líneas de datos dentro y fuera del módulo de memoria. Esto es con frecuencia igual a la longitud de palabra, pero puede no ser así. Para esclarecer éste punto, considere los tres conceptos relacionados con la memoria interna:
Palabra: Es la unidad “natural” de organización de la memoria. El tamaño de la palabra es casi siempre igual al número de bits que se utilizan para representar un número y para la longitud de instrucción.
Unidades direccionables: En varios sistemas, la unidad direccionable es la palabra. Sin embargo algunos sistemas permiten el direccionamiento a nivel byte. De cualquier modo, la relación entre la longitud “A” de una dirección y el número “N” de unidades direccionables es 2A = N.
Unidad de transferencia: Para la memoria principal, éste es el número de bits que se leen de o se escriben en la memoria en una sola vez. La unidad de transferencia no necesita ser igual a una palabra o una unidad direccionable. Para la memoria externa, los datos se transfieren a menudo en unidades mucho más grandes que una palabra, se habla entonces de bloques.
Una de las distinciones más agudas entre tipos de memoria es el método de acceso a las unidades de datos. Pueden distinguirse tres tipos:
Acceso Secuencial: La memoria está organizada en unidades de datos, llamadas registros. El acceso debe hacerse en una secuencias lineal específica. Información de direccionamiento almacenada se utiliza para separar los registros y auxiliar en el proceso de recuperación. Se utiliza un mecanismo compartido de lectura – escritura, y este debe ser motivo de su posición actual a la posición deseada, pasando y desechando cada registro intermedio. De éste modo, el tiempo para accesar un registro arbitrario es altamente variable. Las unidades de cinta, son de acceso secuencial.
Acceso Directo: Al igual que en el acceso secuencial, el acceso directo implica un mecanismo compartido de lectura – escritura. Sin embargo, los bloques o registros individuales tienen una dirección única que se basa en la localización física. De nuevo, el tiempo de acceso, es variable. Las unidades de disco, son de acceso directo.
Acceso Aleatorio: Cada localidad direccionable en la memoria tiene un mecanismo único de direccionamiento, interalambrado físicamente. El tiempo para accesar una localidad dada es independiente de la secuencia de accesos anteriores y es constante. Así, cualquier localidad puede ser seleccionada de manera aleatoria y accesarse y direccionarse en forma directa. Los sistemas de memoria principal son de acceso aleatorio.
Desde el punto de vista del usuario, las dos características más importantes de la memoria son capacidad y desempeño. Se usan tres parámetros de desempeño:
Tiempo de acceso: Para la memoria de acceso aleatorio, es el tiempo que le toma el efectuar una operación de lectura o escritura, es decir, el tiempo desde el instante en que una dirección se presenta a la memoria hasta el instante en que se han almacenado los datos o están disponibles para su uso. Para la memoria de acceso no aleatorio, el tiempo de acceso es el tiempo que le lleva el colocar al mecanismo de lectura – escritura en la localidad deseada.
Tiempo del ciclo de memoria: Éste concepto se aplica primeramente a la memoria de acceso aleatorio y consiste en el tiempo de acceso más cualquier tiempo adicional que se necesita , antes de que comience un segundo acceso.
Razón de transferencia: Ésta es la razón a la cuál pueden transferirse datos hacia o desde una unidad de memoria. Para la memoria de acceso aleatorio, es igual a1 / (tiempo de ciclo). Para la memoria de acceso no aleatorio, se mantiene la siguiente relación:
TN = TA + (N/R)
Donde:
TN = Tiempo promedio para leer o escribir N bits.
TA = Tiempo promedio de acceso.
N= Número de bits.
R= Razón de transferencia, en bits por segundo (bps).
Una variedad de tipos físicos de memoria se han empleado. Los dos más comunes en la actualidad, son la memoria de semiconductor, que utiliza la tecnología LSI o VLSI, y la memoria de superficie magnética, que se utiliza para el disco y la cinta.
Varias características físicas de almacenamiento de datos son importantes. En una memoria volátil, la información decae en forma natural o se pierde cuando la potencia eléctrica se apaga. En una memoria no volátil, la información una vez registrada permanece sin deterioro hasta que se cambia de manera deliberada. No se necesita potencia eléctrica para retener la información. Las memorias de superficie magnética son no volátiles. La memoria de semiconductor puede ser volátil o no volátil. La memoria no borrable no puede ser alterada, excepto mediante la destrucción de la unidad de almacenamiento. La memoria de semiconductor de este tipo se conoce como memoria de solo lectura (ROM, read – only – memory). Por necesidad, una memoria práctica no borrable también debe ser no volátil.
Para la memoria de acceso aleatorio, la organización es un asunto clave de diseño. Por organización se da a entender el arreglo físico de los bits para formar palabras.
1.4.2.- Memoria principal de semiconductor.
Tipos de memoria de semiconductor de acceso aleatorio.
Todos los tipos de memoria que se estudiarán son de acceso aleatorio. Es decir, las palabras individuales de la memoria se accesan en forma directa por medio de la lógica de direccionamiento interalambrada.
La tabla 1.3 lista los principales tipos de memoria de semiconductor. Él más común se conoce como memoria de acceso aleatoria (RAM, Random Access Memory), Esto es, claro esta, un error en el uso del término, pues todos los tipos enlistados son de acceso aleatorio.
Una característica que distingue a la RAM es que permite tanto leer desde la memoria como escribir con facilidad y rapidez información nueva en la memoria. Tanto la lectura como la escritura se logran mediante el uso de señales eléctricas.
La otra característicadistintiva de la RAM es que es volátil. Una RAM debe contar con un suministro de energía constante. Si el suministro de energía se interrumpe, los datos se pierden. Por ello, la RAM solo se puede usar como medio de almacenamiento temporal.
La tecnología de la RAM se ha dividido en dos: estática y dinámica. Una RAM dinámica se compone de celdas que almacenan datos bajo la forma de cargas en capacitores. La presencia o ausencia de cargaen un capacitor se interpreta como un 1 o un 0 binario. Como los capacitores tienen una tendencia natural a descargarse, las RAM dinámicas necesitan refrescado de cargas periódico para actualizar el almacenamiento de datos.
En una RAM estática, los valores binarios se almacenan al usar configuraciones con compuertas lógicas (flip – flop´s). Una RAM estática alojará los datos, siempre y cuando se le suministre energía.
La RAM estática y dinámica son volátiles. Una celda de memoria dinámica es más simple y por ello más pequeña que una celda de memoria estática. Por eso, una RAM dinámica es más densa (celdas más pequeñas = más celdas por unidad de área) y menos costosa que la RAM estática correspondiente. Por otra parte, la RAM dinámica requiere el apoyo de circuitos de refrescado. Por último, las RAM estáticas, en general, son en cierta forma más veloces que las dinámicas.
Existen varios tipos de chips de RAM dinámica. El tipo más antiguo que continua en uso es la DRAM FPM. (Modo de página rápida, Fast Page Mode) internamente, la organización es una matriz de bits; el hardware presenta una dirección de renglón y luego recorre las direcciones de columna.
La DRAM FPM esta siendo reemplazada gradualmente por la DRAM EDO (salida de datos extendida, Extended Data Output), que permite iniciar una segunda referencia a la memoria antes de que la anterior se haya completado.
Este sencillo uso de conductos nos hace que una sola referencia a la memoria sea más rápida, pero si mejora el ancho de banda de la memoria, que produce las palabras por segundo.
Tanto los chips FPM como los EDO son asíncronos, lo que significa que las líneas de dirección y de datos no están controladas por un mismo reloj. En contraste, la SDRAM (DRAM sincrónica) es un híbrido de RAM estática y dinámica y es controlado por un solo reloj sincrónico.
La SDRAM se usa a menudo en las caches grandes y podría ser la tecnología preferida para las memorias principales en el futuro.
En contraposición de la RAM, está la memoria de solo lectura (ROM, Read Only Memory). Como su nombre lo sugiere, una ROM contiene un patrón permanente de datos que no se pueden cambiar. Aunque es posible leer una ROM, en su operación normal, no es posible escribir nuevos datos en ella.
Los datos de una ROM se insertan durante su fabricación, básicamente, exponiendo un material fotosensible a través de una máscara que contiene un patrón de bits deseado. La única forma de modificar el programa de una ROM es cambiar el chip.
Las ROM son mucho más económicas que las RAM, cuando se producen en grandes cantidades, pues así el costo de elaborar una máscara se diluye. Sin embargo, estas memorias son inflexibles, por que no pueden modificarse después de su fabricación, no hay espacio para errores, si un bit es incorrecto, todo el lote de la ROM se debe desechar.
Una alternativa menos cara es usar la PROM ( ROM Programable). Una PROM es parecida a una ROM, excepto que puede programarse (una vez) en el campo, lo que elimina el retraso por surtido.
Muchas PROM contienen una matriz de diminutos fusibles. Un fusible específico puede quemarse seleccionando su renglón y columna y aplicando después un voltaje alto a una terminal especial del chip.
Al igual que la ROM, la PROM no es volátil y solo se puede escribir en ella una vez. En la PROM el proceso de escritura se ejecuta de manera eléctrica y lo puede llevar a cabo un consumidor o un distribuidor después de la fabricación del chip original. Se requiere equipo especial en el proceso de escritura o de “programación”. Las PROM proporcionan flexibilidad así como ventajas. La ROM es conveniente para altos volúmenes de producción.
Otra variante de la memoria de solo lectura es la memoria de lectura – principalmente, que es útil en aplicaciones donde las operaciones de lectura son mucho más frecuentes que las de escritura y en las que se requiere almacenamiento no volátil. Hay tres formas comunes de memoria de lectura – principalmente: EPROM, EEPROM y memoria flash.
En la memoria de solo lectura programable y borrable en forma óptica (EPROM, erasable programmable read – only – memory) se lee y se escribe de manera eléctrica, al igual que la PROM. Sin embargo, antes de efectuar una operación de escritura, todas las celdas de almacenamiento se deben borrar hasta alcanzar el mismo estado inicial; para ello, se expone el circuito integrado (que posee una ventana de vidrio) a una radiación ultravioleta. Éste proceso de borrado se puede realizar varias veces, cada borrado quizá tarde algunos minutos en llevarse a cabo. Así, la EPROM se puede alterar en múltiples ocasiones y, al igual que la ROM y la PROM, almacena los datos de manera indefinida. Para cantidades comparables de almacenamiento, la EPROM resulta má cara que la PROM; pero tiene la ventaja de la capacidad de actualización múltiple.
La memoria de solo lectura programable y borrable eléctricamente (EEPROM, electricallyerasable programmable read – only – memory). Es unan memoria de lectura principalmente en la cuál se puede escribir en cualquier momento, sin tener que borrar el contenido anterior; solo el byte o los bytes diseccionados se actualizan. La EEPROM es más cara y menos densa que la EPROM, por lo que soporta menos bits por chip.
Una de las formas más reciente de memoria de semiconductor es la memoria flash (denominada así por la velocidad a la que se puede volver a programar). Introducida por primera vez a principios de la década de los ochentas, la memoria flash ocupa un sitio intermedio entre la EPROM y la EEPROM, tanto en costo como en funcionalidad. Al igual que la EEPROM, la memoria flash usa una tecnología de borrado eléctrico. Una memoria flash completa se puede borrar en algunos segundos, por lo que es mucho más veloz que la EEPROM. Además , es posible borrar bloques de memoria en vez de un chip completo. Sin embargo, la memoria flash no proporciona borrado a nivel de byte. Como la EPROM, la memoria flash sólo usa un transistor por bit y por ello logra la densidad alta (en comparación con la EEPROM) de la EPROM.