martes, 13 de octubre de 2009

Memoria Cache

La palabra procede de la voz inglesa cache ("escondite secreto para guardar mercancías, habitualmente de contrabando") y esta a su vez de la francesa cache, ( "escondrijo o escondite"). A menudo, en español se escribe erróneamente con tilde sobre la "e" por pensarse que se trata de la misma palabra que "caché" ("distinción o elegancia" o "cotización de un artista"), proveniente de un étimo también francés, pero totalmente distinto: cachet, ("sello" o "salario"). En la literatura especializada en Arquitectura de Computadores (como, entre otros, las traducciones de los libros de William Stallings, Andrew S. Tanenbaum, John L. Hennessy y David A. Patterson) se emplea siempre la palabra sin tilde

En cache es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente. Hay dos tipos de cache frecuentemente usados en las computadoras personales: memoria cache y cache de disco.

* Una memoria cache, llamada también a veces almacenamiento cache o RAM cache, es una parte de memoria RAM estática de alta velocidad (SRAM) más que la lenta y barata RAM dinámica (DRAM) usada como memoria principal. La memoria cache es efectiva dado que los programas acceden una y otra vez a los mismos datos o instrucciones. Guardando esta información en SRAM, la computadora evita acceder a la lenta DRAM.


Cuando un dato es encontrado en la cache, se dice que se ha producido un impacto (hit), siendo un cache juzgado por su tasa de impactos (hit rate). Los sistemas de memoria cache usan una tecnología conocida por cache inteligente en el cual el sistema puede reconocer cierto tipo de datos usados frecuentemente. Las estrategias para determinar qué información debe de ser puesta en el cache constituyen uno de los problemas más interesantes en la ciencia de las computadoras. Algunas memorias cache están construidas en la arquitectura de los microprocesadores. Por ejemplo, el procesador Pentium II tiene una cache L2 de 512 Kbytes.

El cache de disco trabaja sobre los mismos principios que la memoria cache, pero en lugar de usar SRAM de alta velocidad, usa la convencional memoria principal. Los datos más recientes del disco duro a los que se ha accedido (así como los sectores adyacentes) se almacenan en un buffer de memoria.

Cuando el programa necesita acceder a datos del disco, lo primero que comprueba es la cache del disco para ver si los datos ya están ahí. La cache de disco puede mejorar drásticamente el rendimiento de las aplicaciones, dado que acceder a un byte de datos en RAM puede ser miles de veces más rápido que acceder a un byte del disco duro.

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 cómputo 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.
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 tenía 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.
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.
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 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 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.
El Front Side Bus de los procesadores Intel es un bus de este tipo y como cualquier bus presenta unas funciones en líneas dedicadas:
• Las Líneas 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 Líneas de Control son las encargadas de enviar señales de arbitraje entre los dispositivos. Entre las más importantes están las líneas de interrupción, DMA y los indicadores de estado.
• Las Líneas 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.

Memorias

Una computadora puede leer y escribir información en un disco duro mucho más rápido que en el disco flexible.

La memorización consiste en la capacidad de registrar sea una cadena de caracteres o de instrucciones (programa) y tanto volver a incorporarlo en determinado proceso como ejecutarlo bajo ciertas circunstancias.
El computador dispone de varios dispositivos de memorización:
• La memoria ROM
• La memoria RAM
• Las memorias externas. Un aspecto importante de la memorización es la capacidad de hacer ese registro en medios permanentes, básicamente los llamados "archivos" grabados en disco.
• El acumulador

Unidades de Memoria
• BIT: puede tener valore de 0 y 1, es decir sistema binario
• BYTE: son 8 Bits.
• KILOBYTE (KB) = 2 **10 bytes
• MEGABYTE (MB) = 2 ** 10 Kilobyte = 2 ** 20 Bytes
• GIGABYTE (GB) = 2** 10 Megabyte = 2** 30 Bytes
• TERABYTE (TB) =2**10 Gigabyte = 2**40 Bytes
La memoria principal o RAM
Acrónimo de Random Access Memory, (Memoria de Acceso Aleatorio) es donde el ordenador guarda los datos que está utilizando en el momento presente. Se llama de acceso aleatorio porque el procesador accede a la información que está en la memoria en cualquier punto sin tener que acceder a la información anterior y posterior. Es la memoria que se actualiza constantemente mientras el ordenador está en uso y que pierde sus datos cuando el ordenador se apaga.
Es una memoria dinámica, lo que indica la necesidad de "recordar" los datos a la memoria cada pequeños periodos de tiempo, para impedir que esta pierda la información. Eso se llama Refresco. Cuando se pierde la alimentación, la memoria pierde todos los datos. "Random Access", acceso aleatorio, indica que cada posición de memoria puede ser leída o escrita en cualquier orden. Lo contrario seria el acceso secuencial, en el cual los datos tienen que ser leídos o escritos en un orden predeterminado.

TIPOS DE MEMORIAS RAM
DRAM: acrónimo de "Dynamic Random Access Memory", o simplemente RAM ya que es la original, y por tanto la más lenta.

FPM (Fast Page Mode): a veces llamada DRAM, puesto que evoluciona directamente de ella, y se usa desde hace tanto que pocas veces se las diferencia. Algo más rápida, tanto por su estructura (el modo de Página Rápida) como por ser de 70 ó 60 ns. Es lo que se da en llamar la RAM normal o estándar.

EDO o EDO-RAM: Extended Data Output-RAM. Evoluciona de la FPM. Permite empezar a introducir nuevos datos mientras los anteriores están saliendo (haciendo su Output), lo que la hace algo más rápida (un 5%, más o menos). La memoria EDO permite mover un bloque completo de memoria a la caché interna del procesador para un acceso más rápido por parte de éste.

SDRAM: Sincronic-RAM. Es un tipo síncrono de memoria, que, lógicamente, se sincroniza con el procesador, es decir, el procesador puede obtener información en cada ciclo de reloj, sin estados de espera, como en el caso de los tipos anteriores. Sólo se presenta en forma de DIMMs de 168 contactos; es la opción para ordenadores nuevos.
SDRAM funciona de manera totalmente diferente a FPM o EDO. DRAM, FPM y EDO transmiten los datos mediante señales de control, en la memoria SDRAM el acceso a los datos esta sincronizado con una señal de reloj externa.



Dispositivos de Almacenamiento Secundario
Los Floppy drives: Por mala y anticuada que sea una computadora, siempre dispone de al menos uno de estos aparatos. Su capacidad es totalmente insuficiente para las necesidades actuales, pero cuentan con la ventaja que les dan los muchos años que llevan como estándar absoluto para almacenamiento portátil.
Unidades de disco Ls-120: es una unidad diseñada para la lectura y escritura en disquetes de 3 ½ pulgadas de gran capacidad de almacenamiento (120 MB) en especial para archivos y programas modernos mas amplios. La tecnología del LS -120 utiliza una interfase IDE que graba en pistas de alta densidad, las cuales son leídas por un rayo láser en cabezas de alta precisión.
Discos duros
Pertenecen a la llamada memoria secundaria o almacenamiento secundario. Al disco duro se le conoce con gran cantidad de denominaciones como disco duro, rígido (frente a los discos flexibles o por su fabricación a base de una capa rígida de aluminio), fijo (por su situación en la computadora de manera permanente), Winchester (por ser esta la primera marca de cabezas para disco duro).

Historia de las computadoras

Primera generación (1936-1953)
*Se usan redes mecánicos para conmutar
*las ultimas empezaron a usar bulbos.
*la estructura del procesador era BIT serie
*se relumbraba todo el equipo.

Segunda generación (1952-1963)
*Uso de memorias de núcleo de ferrita
*uso del lenguaje de programación como el Cobol, Frotan
*Se usan los transistores.

Tercera generación (1962-1972)
*Aparecen los circuitos integrados
*Circuitos impresos multicapas
*Se cambian las memorias de núcleo d ferrita por dispositivos de estado sólido.
*Se empiezan a usar los sistemas operativos.

Cuarta generación (1972- actualidad)
*usan tecnología ISI
*C.I de alta densidad
*Son más comerciales
*Aparece la PC

Las primeras computadoras se programaban recableandose, esto equivalía a reconstruir toda la computadora cuando se requería un nuevo programa. La programación de la computadora cambio lo anterior radicalmente, a diferencia de las primeras computadoras Von Neuman propuso que el programa como sus datos fueran almacenados en la memoria del computador.