lunes, 16 de noviembre de 2009

ARQUITECTURA IA-64

Arquitectura Intel Itanium

Intel Itanium, antes conocida como IA-64 (Intel Architecture-64), es una arquitectura de 64 bits desarrollada por Intel en cooperación con Hewlett-Packard para su línea de procesadores Itanium e Itanium 2. Usa direcciones de memoria de 64 bits y está basada en el modelo EPIC[1] (Explicitly Parallel Instruction Computing, procesamiento de instrucciones explícitamente en paralelo).
Los procesadores Intel Itanium 2 representan el diseño de producto más complejo del mundo con más de 1.700 millones de transistores. Esto permite obtener sólidas capacidades de virtualización, mejorar la confiabilidad y niveles de rendimiento líderes del mercado.
A diferencia de productos de los pocos fabricantes* de procesadores RISC que siguen operando, la serie de procesadores Intel Itanium 2 ofrece libertad al usuario final a través de una amplia gama de opciones de software con más de 8.000 aplicaciones en producción. Los servidores y sistemas de cómputo de alto desempeño basados en el procesador Itanium ofrecen soporte de misión crítica para Windows, Linux, Unix y otros sistemas operativos.
• Los últimos pentiums, son en realidad máquinas RISC que emulan a una máquina CISC por temas de retrocompatibilidad.

miércoles, 7 de octubre de 2009

MEMORIAS SEMICONDUCTORAS

ORGANIZACION: Elemento basico de una memoria semiconductor es la celda de memoria y comparten ciertas propiedades.

-Presentan 2 estados stables con lo que representa 1 o 0.
-Puede escribir en ella para fijar su estado.
-Se pueden leer para detectar su estado.

Los tipos de memoria pueden ser de acceso aleatorio (RAM) o solo lectura (ROM). La RAM es una memoria volatil y debe estar siempre alimentada. Hay 2 tipos de RAM que son:

-DRAM (RAM Dinamica): La tecnologia RAM dinamica esta hecha con celdas que almacenan los datos como cargas electricas en condensadores. Como los condensadores tienden a descargarselas RAM dinamicas requieren refrescos periodicos para mantener memorizados sus datos.
-SRAM (RAM Estatica): La RAM estatica es un dispositivo digital. Una RAM estatica retendra sus datos en cuanto se mantenga alimentada.

ramonrb_06@hotmail.com

martes, 6 de octubre de 2009

MEMORIA CACHE

El Caché es una tecnología basada en el subsistema de memoria de la computadora. Su objetivo principal es acelerar la computadora a un bajo costo.
El Caché facilita a la computadora ejecutar tareas más fácilmente.

Para entender lo básico del Caché, hagámoslo con un ejemplo muy sencillo, donde interviene un bibliotecario.

Imaginemos que el bibliotecario está detrás del mostrador. Su función es proporcionar los libros que se le piden. Para hacer más sencilla la explicación digamos que un usuario no puede tomar los libros por si solo: se le deben pedir al bibliotecario, mismo que buscará en todos los estantes relacionados con lo que queremos. Supongamos ahora que el bibliotecario no posee un caché.

Llega el primer usuario y pide un libro de Historia Universal. El bibliotecario va hacia los estantes, toma el libro, regresa al mostrador y le da el libro al usuario. Cuando el usuario lo devuelve, el bibliotecario lo deposita en el estante. Regresa al mostrador y atiende al siguiente usuario. Digamos que el próximo lector pide el mismo libro de Historia Universal. El bibliotecario debe repetir el proceso. ¿Existirá alguna manera en la cual el bibliotecario no invierta tanto tiempo y pueda proporcionar los libros más populares rápidamente?

En efecto, hay una forma. Debemos ponerle un caché al bibliotecario. Por ejemplo, que tuviese una mochila en la espalda en donde pudiese guardar 10 libros, los más populares.

Con este nuevo concepto, al iniciar el día el bibliotecario tiene la mochila vacía. El primer cliente llega y pide el libro de Historia Universal. Todo sigue igual: el bibliotecario va a los estantes, toma el libro y se lo da al lector. Ahora el lector lo devuelve. Pero la historia cambia. En lugar de que el bibliotecario lo ponga en un estante, lo coloca en su mochila y espera al siguiente lector (claro, si tiene espacio disponible en la mochila). Otro lector llega y pide el mismo libro. Ahora el bibliotecario lo busca en su mochila y lo tiene a la mano, dándoselo de inmediato al usuario.

¿Y qué pasa si el siguiente usuario pide un libro que no está en el caché (la mochila)? En este caso el bibliotecario sería menos eficiente con un caché que si él, ya que le toma tiempo verificar que no trae el libro en la mochila. Sin embargo, uno de los retos en el diseño de chachés es que no sean tan grandes de forma que no impacten el funcionamiento del equipo. SI el bibliotecario tiene un caché de 10 libros será muy rápida la localización, pero si el caché fuera de 200 libros, eso equivale a buscar en una pequeña biblioteca.

Con el ejemplo anterior se pueden detectar varios detalles de la memoria Caché.

1.- La tecnología Caché es usar un tipo de memoria más rápida pero más pequeña, para acelerar el acceso a una mayor memoria que es más lenta.

2.- Cuando se usa un caché se debe verificar si lo que se pide está en el caché. Si la búsqueda es positiva, entonces se aceleran muchos procesos de la computadora. Si la respuesta es negativa, entonces se debe buscar en todo el espacio disponible.

3.- Todo Caché es mucho menor en tamaño que la memoria a la cual acelera.

4.- Puede haber múltiples capas de caché. En el ejemplo usado la mochila del bibliotecario es caché de primer nivel. Un segundo nivel sería un estante con los 100 textos más pedidos.

5.- Existen cachés para memoria RAM, discos duros y otros dispositivos de almacenamiento, como las cintas.

6.- La consulta de información en Internet, por ejemplo, es almacenada en un caché, que consiste en copias de las páginas WWW que se han visitado. Si el caché es muy grande se tiene la ventaja de no bajar toda la información de una página visitada continuamente, porque mucho de su contenido reside aún en la computadora local. Sin embargo, tiene un efecto contrario, y es que si el caché es tan grande y se visita una página nueva, el sistema puede tardar mucho en buscarla en su caché, para de todas formas tener que bajarla del servidor remoto.

En conclusión, una buena y eficiente memoria caché es sinónimo de equilibrio.

ramonrb_06@hotmail.com

DIRECCIONAMIENTO

MODOS DE DIRECCIONAMIENTO

Tiene 12 modos de direccionamiento básicos. Estos pueden clasificarse en 5 grupos:
1. Direccionamientos accesando dato inmediato y registro de datos (modos inmediato y de registro).
2. Direccionamiento accesando datos en memoria (modo memoria)
3. Direccionamiento accesando puertos E/S. (modo E/S)
4. Direccionamiento relativo
5. Direccionamiento implícito.

1. DIRECCIONAMIENTO ACCESANDO DATO Y REGISTRO INMEDIATO
1.1 Direccionamiento de registro.

Especifica el operando fuente y el operando destino. Los registros deben ser del mismo tamaño. ej. MOV DX, CX
MOV CL, DL.

1.2 Direccionamiento inmediato.

Un dato de 8 o 16 bits se especifica como parte de la instrucción. p.ej. MOV CL, 03H. Aquí el operando fuente está en modo inmediato y el destino en modo registro.

2. DIRECCIONAMIENTO ACCESANDO DATOS EN MEMORIA
2.1 Direccionamiento directo.

La dirección efectiva (EA) de 16 bits se toma directamente del campo de desplazamiento de la instrucción. El desplazamiento se coloca en la localidad siguiente al código de operación. Esta EA o desplazamiento es la distancia de la localidad de memoria al valor actual en el segmento de datos (DS) en el cual el dato está colocado. Ej. MOV CX, START. START puede definirse como una localidad de memoria usando las pseudoinstrucciones DB o DW.

2.2 Direccionamiento de registro indirecto.

La dirección efectiva EA está especificada en un registro apuntador o un registro índice. El apuntador puede ser el registro base BX o el apuntador base BP; el registro índice puede ser el Indice Fuente (SI) o el Indice Destino (DI).
Ej. MOV (DI),BX.

2.3 Direccionamiento base

EA se obtiene sumando un desplazamiento (8 bits con signo o 16 bits sin signo) a los contenidos de BX o BP. Los segmentos usados son DS y SS. Cuando la memoria es accesada, la dirección física de 20 bits es calculada de BX y DS, por otra parte, cuando la pila es Accesada, la dirección es calculada de BP y SS.
Ej. MOV AL, START (BX). el operando fuente está en modo base, y la EA se obtiene sumando los valores de START y BX.

2.4 Direccionamiento indexado.

EA se calcula sumando un desplazamiento (8 o 16 bits) a los contenidos de SI o DI. Ej. MOV BH,START (SI).

2.5 Direccionamento base indexado.

EA se calcula sumando un registro base (BX o BP), un registro índice (DI o SI), y un desplazamiento (8 o 16 bits).
Ej. MOV ALPHA (SI)(BX),CL.
Este direccionamiento proporciona una forma conveniente para direccionar un arreglo localizado en la pila.

2.6 Direccionamiento (cadena?)

Este modo usa registros índice. La cadena de instrucciones automáticamente asume que SI apunta al primer byte o palabra del operando destino. Los contenidos de SI y DI son incrementados automáticamente (poniendo a 0 DF mediante la instrucción CLD) o decrementados (poniendo a 1 DF mediante la instrucción STD) para apuntar al siguiente byte o palabra. El segmento del operando fuente es DS y puede ser encimado.
El segmento del operando destino debe ser ES y no puede ser encimado. Ej. MOVS BYTE.

3. DIRECCIONAMIENTO ACCESANDO PUERTOS (E/S)

Hay dos tipos de direccionamiento usando puertos: directo e indirecto.
En el modo directo, el número de puerto es el operando inmediato de 8 bits, lo cual permite accesar puertos numerados del 0 al 255. Ej. OUT 05H,AL.
En el modo indirecto, el número de puerto se toma de DX, permitiendo así 64K puertos de 8 bits o 32K puertos de 16 bits.
Las transferencias E/S de 8 y 16 bits deben hacerse vía AX y AL, respectivamente.

4. DIRECCIONAMIENTO RELATIVO.

En este modo el operando se especifica como un desplazamiento de 8 bits con signo, relativo al PC. Ej. JNC START. Si C=0, entonces el PC se carga con PC+el valor de START.

5. DIRECCIONAMIENTO IMPLICITO.

DISPOSITIVOS DE ENTRADA/SALIDA

En computación, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), 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.
Es importante notar que la designación de un dispositivo, sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos son una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada.
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.

Dispositivos de entrada y salida

• Entrada:

o Teclado
o Ratón
o Joystick
o Lápiz óptico
o Micrófono
o Webcam
o Escáner
o Escáner de código de barras
o Pantalla táctil

• Salida:

o Monitor
o Altavoz
o Auriculares
o Impresora
o Plotter
o Proyector

• Entrada/salida:

o Unidades de almacenamiento
o CD
o DVD
o Módem
o Fax
o USB

BUSES

BUSES
En Arquitectura de computadores , 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.
En los primeros computadores electrónicos, todos los buses eran de tipo paralelo, de manera que la comunicación entre las partes de computador se hacía por medio de cintas o muchas pistas en el circuito impreso, en los cuales cada conductor tiene una función fija y la conexión es sencilla requiriendo únicamente puertos de entrada y de salida para cada dispositivo.
La tendencia en los últimos años es el uso de buses seriales como el USB, Firewire para comunicaciones con periféricos y el reemplazo de buses paralelos para conectar toda clase de dispositivos, incluyendo el microprocesador con el chipset en la propia placa base. Son conexiones con lógica compleja que requieren en algunos casos gran poder de computo en los propios dispositivos, pero que poseen grandes ventajas frente al bus paralelo que es menos inteligente.
Existen diversas especificaciones de bus que definen un conjunto de características mecánicas como conectores, cables y tarjetas, además de protocolos eléctricos y de señales.

Funcionamiento
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.
Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas, crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y puede funcionar a alta velocidad.
Todos los buses de computador tiene funciones especiales como las interrupciones y las DMA que permiten que un dispositivo periferico acceda a una CPU o a la memoria usando el minimo de recursos.

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. Ademas que la CPU utilizaba una parte considerable de su potencia en controlar el bus. Desde que los procesadores empezaron a funcionar con frecuencias mas altas, se hizo necesario jerararquizar los buses de acuerdo a su frecuencia: se creo 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 paso 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 versatil y adelantado a su tiempo. Entre otros ejemplos de estos buses autonomos, estan el AGP y el bus PCI.es algo que sirve para trasladar información
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 numero 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 mas notables, estan los buses PCI-Express, el Infiniband y el HyperTransport.
Tipos de Bus
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 lineas 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.
El Front Side Bus de los procesadores Intel es un bus de este tipo y como cualquier bus presenta unas funciones en lineas dedicadas:
• LasLineas de Dirección son las encargadas de indicar la posición de memoria o el dispositivo con el que se desea establecer comunicación.
• Las Lineas de Control son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más importantes están las lineas de interrupción, DMA y los indicadores de estado.
• Las Lineas de Datos trasmiten los bits, de manera que por lo general un bus tiene un ancho que es potencia de 2.
Un bus paralelo tiene conexiones físicas complejas, pero la lógica es sencilla, que lo hace útil en sistemas con poco poder de computo. En los primeros microcomputadores, el bus era simplemente la extensión del bus del procesador y los demás integrados "escuchan" las linea de direcciones, en espera de recibir instrucciones. En el PC IBM original, el diseño del bus fue determinante a la hora de elegir un procesador con I/O de 8 bits (Intel 8088), sobre uno de 16 (el 8086), porque era posible usar hardware diseñado para otros procesadores, abaratando el producto.
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.

lunes, 28 de septiembre de 2009

MEMORIAS

En informática, 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 (CPU por su acrónimo en inglés, Central Processing Unit), implementa lo fundamental del modelo de computadora de Von Neumann, usado desde los años 1940.
En la actualidad, memoria suele referirse a una forma de almacenamiento de estado sólido conocido como Memoria RAM (memoria de acceso aleatorio, RAM por sus siglas en inglés Random Access Memory) y otras veces se refiere a otras formas de almacenamiento rápido pero temporal. De forma similar, se refiere a formas de almacenamiento masivo como Discos ópticos y tipos de almacenamiento magnético como discos duros y otros tipos de almacenamiento más lentos que las memorias RAM, pero de naturaleza más permanente. Estas distinciones contemporáneas son de ayuda porque son fundamentales para la arquitectura de computadores en general.
Además, se refleja una diferencia técnica importante y significativa entre memoria y dispositivos de almacenamiento masivo, que se ha ido diluyendo por el uso histórico de los términos "almacenamiento primario" (a veces "almacenamiento principal"), para memorias de acceso aleatorio, y "almacenamiento secundario" para dispositivos de almacenamiento masivo. Esto se explica en las siguientes secciones, en las que el término tradicional "almacenamiento" se usa como subtítulo por conveniencia.

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, terciario y fuera de línea
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.
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 (ver 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.
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:
• El almacenamiento asociado a red es una memoria secundaria o terciaria que reside en una computadora a la que otra de éstas puede acceder a través de una red de área local, una red de área extensa, una red privada virtual o, en el caso de almacenamientos de archivos en línea, internet.
• 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 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...

Tecnologías, dispositivos y medios
Memorias Magnéticas
Las memorias magnéticas usan diferentes patrones de magnetización sobre una superficie cubierta con una capa magnetizada para almacenar información. Las memorias magnéticas son no volátiles. Se llega a la información usando uno o más cabezales de lectura/escritura. Como el cabezal de lectura/escritura solo cubre una parte de la superficie, el almacenamiento magnético es de acceso secuencial y debe buscar, dar vueltas o las dos cosas. En computadoras modernas, la superficie magnética será de alguno de estos tipos:
• Disco magnético
• Disquete, usado para memoria fuera de línea
• Disco duro, usado para memoria secundario
• Cinta magnética, usada para memoria terciaria y fuera de línea.
En las primeras computadoras, el almacenamiento magnético se usaba también como memoria principal en forma de memoria de tambor, memoria de núcleo, memoria en hilera de núcleo, memoria película delgada, memoria de Twistor o memoria burbuja. Además, a diferencia de hoy, las cintas magnéticas se solían usar como memoria secundaria.

Memoria de semiconductor
La memoria de semiconductor usa circuitos integrados basados en semiconductores para almacenar información. Un chip de memoria de semiconductor puede contener millones de minúsculos transistores o condensadores. Existen memorias de semiconductor de ambos tipos: volátiles y no volátiles. En las computadoras modernas, la memoria principal consiste casi exclusivamente en memoria de semiconductor volátil y dinámica, también conocida como memoria dinámica de acceso aleatorio o más comunmente RAM, su acrónimo inglés. Con el cambio de siglo, ha habido un crecimiento constante en el uso de un nuevo tipo de memoria de semiconductor no volátil llamado memoria flash. Dicho crecimiento se ha dado, principalmente en el campo de las memorias fuera de línea en computadoras domésticas. Las memorias de semiconductor no volátiles se están usando también como memorias secundarias en varios dispositivos de electrónica avanzada y computadoras especializadas y no especializadas.

Memorias de disco óptico
Las memorias en disco óptico almacenan información usando agujeros minúsculos grabados con un láser en la superficie de un disco circular. La información se lee iluminando la superficie con un diodo láser y observando la reflexión. Los discos ópticos son no volátil y de acceso secuencial. Los siguientes formatos son de uso común:
• CD, CD-ROM, DVD: Memorias de simplemente solo lectura, usada para distribución masiva de información digital (música, vídeo, programas informáticos).
• CD-R, DVD-R, DVD+R: Memorias de escritura única usada como memoria terciaria y fuera de línea.
• CD-RW, DVD-RW, DVD+RW, DVD-RAM: Memoria de escritura lenta y lectura rápida usada como memoria terciaria y fuera de línea.
• Blu-ray: Formato de disco óptico pensado para almacenar vídeo de alta calidad y datos. Para su desarrollo se creó la BDA, en la que se encuentran, entre otros, Sony o Phillips.
• HD DVD
Se han propuesto los siguientes formatos:
• HVD
• Discos cambio de fase Dual

Memorias de discos magneto ópticos
Las Memorias de disco magneto óptico son un disco de memoria óptica donde la información se almacena en el estado magnético de una superficie ferromagnética. La información se lee ópticamente y se escribe combinando métodos magnéticos y ópticos. Las memorias de discos magneto ópticos son de tipo no volátil, de acceso secuencial, de escritura lenta y lectura rápida. Se usa como memoria terciaria y fuera de línea.
Otros métodos iniciales


Las tarjetas perforadas fueron utilizados por primera vez por Basile Bouchon para el control de telares textiles en Francia.1 En 1801 el sistema de Bouchon fue perfeccionado por Joseph Marie Jacquard, quien desarrolló un telar automático, conocido como telar de Jacquard.2 Herman Hollerith desarrolló la tecnología de procesamiento de datos de tarjetas perforadas para el censo de Estados Unidos de 1890 y posteriormente fundó la Tabulating Machine Company, una de las precursoras de IBM. IBM desarrolló la tecnología de la tarjeta perforada como una potente herramienta para el procesamiento de datos empresariales y produjo una línea extensiva de máquinas de registro que utilizaban papel perforado para el almacenamiento de datos y su procesado automático. En el año 1950, las tarjetas IBM y las unidades máquinas de registro IBM se habían vuelto indispensables en la industria y el gobierno estadounidense. Durante los años 1960, las tarjetas perforadas fueron gradualmente reemplazadas por las cintas magnéticas, aunque su uso fue muy común hasta medidados de los años 1970 con la aparición de los discos magnéticos. La información se grababa en las tarjetas perforando agujeros en el papel o la tarjeta. La lectura se realizaba por sensores eléctricos (más tarde ópticos) donde una localización particular podía estar agujereada o no.
Para almacenar información, los tubos Williams usaban un tubo de rayos catódicos y los tubos Selectrón usaban un gran tubo de vacío. Estos dispositivos de memoria primaria tuvieron una corta vida en el mercado ya que el tubo de Williams no era fiable y el tubo de Selectron era caro.
La memoria de línea de retardo usaba ondas sonoras en una sustancia como podía ser el Mercurio para guardar información. La memoria de línea de retardo era una memoria dinámica volátil, ciclo secuencial de lectura/escritura. Se usaba como memoria principal.

Otros métodos propuestos
La memoria de cambio de fase usa las fases de un material de cambio de fase para almacenar información. Dicha información se lee observando la resistencia eléctrica variable del material. La memoria de cambio de fase sería una memoria de lectura/escritura no volátil, de acceso aleatorio podría ser usada como memoria primaria, secundaria y fuera de línea. La memoria holográfica almacena ópticamente la información dentro de cristales o fotopolímeros. Las memorias holográficas pueden utilizar todo el volumen del medio de almacenamiento, a diferencia de las memorias de discos ópticos, que están limitadas a un pequeño número de superficies en capas. La memoria holográfica podría ser no volátil, de acceso secuencial y tanto de escritura única como de lectura/escritura. Puede ser usada tanto como memoria secundaria como fuera de línea.
La memoria molecular almacena la información en polímeros que pueden almacenar puntas de carga eléctrica. La memoria molecular puede ser especialmente interesante como memoria principal.
Recientemente se ha propuesto utilizar el spin de un electrón como memoria. Se ha demostrado que es posible desarrollar un circuito electrónico que lea el spin del electrón y lo convierta en una señal eléctrica.