Beruflich Dokumente
Kultur Dokumente
Trabajo Prctico de
Arquitectura de
Sistemas Operativos
Tema: Memorias
Alumnos: Solis Esteban, Piant Martin, Castellari Emma, Higa Sebastian
UTN-FRBA
Tecnicatura Superior En Programacin
24/10/2012
Memoria (informtica):
En informtica, la memoria (tambin llamada almacenamiento) se refiere a parte de los
componentes que integran una computadora. Son dispositivos que retienen datos
informticos durante algn intervalo de tiempo. Las memorias de computadora
proporcionan una de las principales funciones de la computacin moderna, la retencin o
almacenamiento de informacin. Es uno de los componentes fundamentales de todas las
computadoras modernas que, acoplados a una unidad central de procesamiento CPU,
implementa lo fundamental del modelo de computadora de Arquitectura de Von
Neumann, usado desde los aos 1940.
En la actualidad, memoria suele referirse a una forma de almacenamiento de estado slido
conocido como memoria RAM (memoria de acceso aleatorio, RAM por sus siglas en ingls
random access memory) y otras veces se refiere a otras formas de almacenamiento
rpido pero temporal. De forma similar, se refiere a formas de almacenamiento masivo
como discos pticos y tipos de almacenamiento magntico como discos duros y otros tipos
de almacenamiento ms lentos que las memorias RAM, pero de naturaleza ms
permanente. Estas distinciones contemporneas son de ayuda porque son fundamentales
para la arquitectura de computadores en general.
Adems, se refleja una diferencia tcnica importante y significativa entre memoria y
dispositivos de almacenamiento masivo, que se ha ido diluyendo por el uso histrico de los
trminos "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 trmino
tradicional "almacenamiento" se usa como subttulo por conveniencia.
Jerarqua de almacenamiento
Los componentes fundamentales de las computadoras de propsito general son la CPU, el
espacio de almacenamiento y los dispositivos de entrada/salida. La habilidad para
almacenar las instrucciones que forman un programa de computadora y la informacin
que manipulan las instrucciones es lo que hace verstiles a las computadoras diseadas
segn la arquitectura de programas almacenados
Una computadora digital representa toda la informacin usando el sistema binario. Texto,
nmeros, imgenes, sonido y casi cualquier otra forma de informacin puede ser
transformada en una sucesin de bits, o dgitos binarios, cada uno de los cuales tiene un
valor de 1 0. La unidad de almacenamiento ms comn es el byte, igual a 8 bits. Una
determinada informacin puede ser manipulada por cualquier computadora cuyo espacio
de almacenamiento sea suficientemente grande como para que quepa el dato
correspondiente o la representacin binaria de la informacin. Por ejemplo, una
computadora con un espacio de almacenamiento de ocho millones de bits, o un megabyte,
puede ser usada para editar una novela pequea.
Se han inventado varias formas de almacenamiento basadas en diversos fenmenos
naturales. No existen ningn medio de almacenamiento de uso prctico universal y todas
las formas de almacenamiento tienen sus desventajas. Por tanto, un sistema informtico
contiene varios tipos de almacenamiento, cada uno con su propsito individual.
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. Tcnicamente, es el sistema
ms rpido de los distintos tipos de almacenamientos de la computadora, siendo
transistores de conmutacin integrados en el chip de silicio del microprocesador
(CPU) que funcionan como "flip-flop" electrnicos.
La memoria cach es un tipo especial de memoria interna usada en muchas CPU
para mejorar su eficiencia o rendimiento. Parte de la informacin de la memoria
principal se duplica en la memoria cach. Comparada con los registros, la cach es
ligeramente ms lenta pero de mayor capacidad. Sin embargo, es ms rpida,
aunque de mucha menor capacidad que la memoria principal. Tambin es de uso
comn la memoria cach multi-nivel - la "cach primaria" que es ms pequea,
rpida y cercana al dispositivo de procesamiento; la "cach secundaria" que es ms
grande y lenta, pero ms rpida y mucho ms pequea que la memoria principal.
La memoria principal contiene los programas en ejecucin y los datos con que
operan. Se puede transferir informacin muy rpidamente entre un registro del
microprocesador y localizaciones del almacenamiento principal. En las
computadoras modernas se usan memorias de acceso aleatorio basadas en
electrnica del estado slido, que est directamente conectada a la CPU a travs de
buses de direcciones, datos y control.
Almacenamiento secundario
La memoria secundaria requiere que la computadora use sus canales de entrada/salida
para acceder a la informacin y se utiliza para almacenamiento a largo plazo de
informacin persistente. Sin embargo, la mayora 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. (A esta
utilizacin del almacenamiento secundario se le denomina memoria virtual). La memoria
secundaria tambin se llama "de almacenamiento masivo". Un disco duro es un ejemplo de
almacenamiento secundario.
Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor
capacidad que la memoria primaria, pero es mucho ms lenta. En las computadoras
modernas, los discos duros suelen usarse como dispositivos de almacenamiento masivo. El
tiempo necesario para acceder a un byte de informacin dado almacenado en un disco
duro de platos magnticos es de unas milsimas de segundo (milisegundos). En cambio, el
tiempo para acceder al mismo tipo de informacin en una memoria de acceso aleatorio
(RAM) se mide en mil-millonsimas de segundo (nanosegundos).
Esto ilustra cuan significativa es la diferencia entre la velocidad de las memorias de estado
slido y la velocidad de los dispositivos rotantes de almacenamiento magntico u ptico:
los discos duros son del orden de un milln de veces ms lentos que la memoria
(primaria). Los dispositivos rotantes de almacenamiento ptico (unidades de CD y DVD)
son incluso ms lentos que los discos duros, aunque es probable que su velocidad de
acceso mejore con los avances tecnolgicos.
Por lo tanto, el uso de la memoria virtual, que es cerca de un milln de veces ms lenta que
memoria verdadera, ralentiza apreciablemente el funcionamiento de cualquier
computadora. Muchos sistemas operativos implementan la memoria virtual usando
trminos como memoria virtual o "fichero de cach". La principal ventaja histrica de la
memoria virtual es el precio; la memoria virtual resultaba mucho ms barata que la
memoria real. Esa ventaja es menos relevante hoy en da. An as, muchos sistemas
operativos siguen implementndola, a pesar de provocar un funcionamiento
significativamente ms lento.
Almacenamiento terciario
La memoria terciaria es un sistema en el que un brazo robtico montar (conectar) o
desmontar (desconectar) un medio de almacenamiento masivo fuera de lnea (vase el
siguiente punto) segn lo solicite el sistema operativo de la computadora. La memoria
terciaria se usa en el rea del almacenamiento industrial, la computacin cientfica en
grandes sistemas informticos 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 lnea
El almacenamiento fuera de lnea es un sistema donde el medio de almacenamiento puede
ser extrado fcilmente 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 propsito los disquetes, discos pticos y las
memorias flash, incluyendo las unidades USB. Tambin hay discos duros USB que se
pueden conectar en caliente. Los dispositivos de almacenamiento fuera de lnea usados en
el pasado son cintas magnticas en muchos tamaos y formatos diferentes, y las bateras
extrables 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 informacin a travs de una red informtica.
Discutiblemente, el almacenamiento de red permite centralizar el control de informacin
Volatilidad de la informacin
Direccionamiento de la informacin
En la memoria de localizacin direccionable, cada unidad de informacin accesible
individualmente en la memoria se selecciona con su direccin de memoria
numrica. En las computadoras modernas, la memoria de localizacin
direccionable se suele limitar a memorias primarias, que se leen internamente por
programas de computadora ya que la localizacin direccionable es muy eficiente,
pero difcil de usar para los humanos.
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 automtico, conocido como telar de
Jacquard.2 Herman Hollerith desarroll la tecnologa 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 tecnologa
de la tarjeta perforada como una potente herramienta para el procesamiento de datos
empresariales y produjo una lnea extensiva de mquinas de registro que utilizaban papel
perforado para el almacenamiento de datos y su procesado automtico. En el ao 1950, las
tarjetas IBM y las unidades mquinas de registro IBM se haban vuelto indispensables en
la industria y el gobierno estadounidense. Durante los aos 1960, las tarjetas perforadas
fueron gradualmente reemplazadas por las cintas magnticas, aunque su uso fue muy
comn hasta mediados de los aos 1970 con la aparicin de los discos magnticos. La
informacin se grababa en las tarjetas perforando agujeros en el papel o la tarjeta. La
lectura se realizaba por sensores elctricos (ms tarde pticos) donde una localizacin
particular poda estar agujereada o no.
Para almacenar informacin, los tubos Williams usaban un tubo de rayos catdicos y los
tubos Selectrn usaban un gran tubo de vaco. 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
Selectrn era caro.
La memoria de lnea de retardo usaba ondas sonoras en una sustancia como poda ser el
Mercurio para guardar informacin. La memoria de lnea de retardo era una memoria
dinmica voltil, ciclo secuencial de lectura/escritura. Se usaba como memoria principal.
La memoria de cambio de fase usa las fases de un material de cambio de fase para
almacenar informacin. Dicha informacin se lee observando la resistencia elctrica
variable del material. La memoria de cambio de fase sera una memoria de
lectura/escritura no voltil, de acceso aleatorio podra ser usada como memoria primaria,
secundaria y fuera de lnea. La memoria hologrfica almacena pticamente la informacin
dentro de cristales o fotopolmeros. Las memorias hologrficas pueden utilizar todo el
volumen del medio de almacenamiento, a diferencia de las memorias de discos pticos,
que estn limitadas a un pequeo nmero de superficies en capas. La memoria hologrfica
podra ser no voltil, de acceso secuencial y tanto de escritura nica como de
lectura/escritura. Puede ser usada tanto como memoria secundaria como fuera de lnea.
La memoria molecular almacena la informacin en polmeros que pueden almacenar
puntas de carga elctrica. La memoria molecular puede ser especialmente interesante
como memoria principal.
Recientemente se ha propuesto utilizar el spin de un electrn como memoria. Se ha
demostrado que es posible desarrollar un circuito electrnico que lea el spin del electrn y
lo convierta en una seal elctrica.
Un chip de memoria
Ejemplo: Cmo construir una memoria de 16 Kdwords (32 bits) si slo tenemos
Un sistema de memoria
Tipos de memorias
Modelo simplificado
Modelo ms real
Un parmetro importante
El tiempo de acceso:
EPROMs industriales
NOVRAMs
EEPROMs
Un chip SRAM
DRAMs
PROCESOS AUTOMATICOS
Comparacin SRAM / DRAM
Memorias FLASH
MEMORIAS DE SEMICONDUCTORES
Este tipo de memoria se emplea actualmente, con carcter universal, como memoria
principal de los computadores.
Todas las memorias que se van a tratar en este apartado son de direccionamiento
cableado, o sea, de acceso aleatorio o RAM. Sin embargo, dentro de estas memorias se ha
desarrollado otra terminologa que resulta un poco confusa, pues repite trminos
empleados con otro sentido. Se puede establecer la siguiente clasificacin:
lctura y escritura(RAM)
Estticas.
Dinmicos o con refresco.
Slo lectura
ROM (Read Only Memory)
PROM (Programmable Read Only Memory)
EPROM (Erasable Programmable Read Only Memory)
EEPROM (Electricaly Erasable Read Only Memory )
Las memorias de semiconductores se presentan en pastillas integradas que contienen una
matriz de memoria, un decodificador de direcciones, los transductores correspondientes y
el tratamiento lgico de algunas seales de control.
Dado que estn constituidos por RAM normal. los RAM disk pierden su contenido una vez
que la computadora es apagada.
MEMORIA CACHE O RAM CACHE
Un cach es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un
rea reservada de la memoria principal como un dispositivo de almacenamiento de alta
velocidad independiente. Hay dos tipos de cach frecuentemente usados en las
computadoras personales: memoria cach y cach de disco. Una memoria cach, llamada
tambin a veces almacenamiento cach RAM cach, es una parte de memoria RAM
esttica de alta velocidad (SRAM) ms que la lenta y barata RAM dinmica (DRAM) usada
como memoria principal.
La memoria cach es efectiva dado que los programas acceden una y otra vez a los mismos
datos o instrucciones. Guardando esta informacin en SRAM, la computadora evita acceder
a la lenta DRAM.
Cuando un dato es encontrado en el cach, se dice que se ha producido un impacto (hit),
siendo un cach juzgado por su tasa de impactos (hit rate). Los sistemas de memoria cach
usan una tecnologa conocida por cach inteligente en el cual el sistema puede reconocer
cierto tipo de datos usados frecuentemente.
El cach de disco trabaja sobre los mismos principios que la memoria cach, pero en lugar
de usar SRAM de alta velocidad, usa la convencional memoria principal. Los datos ms
recientes del disco duro a los que se ha accedido se almacenan en un buffer de memoria.
Cuando el programa necesita acceder a datos del disco, lo primero que comprueba es la
cach del disco para ver si los
datos ya estn ah. La cach de disco puede mejorar drsticamente el rendimiento de las
aplicaciones, dado que acceder a un byte de datos en RAM puede ser miles de veces ms
rpido que acceder a un byte del disco duro.
Tipos de Memoria CACHE
De acuerdo con el modo de traduccin de las direcciones de memoria principal a
direcciones de memoria cache, estas se clasifican en los siguientes tipos:
De correspondencia directa.
De asociacin completa.
De asociacin de conjuntos.
De correspondencia vectorizada.
Memoria cache de correspondencia directa.
Se establece una correspondencia entre el bloque K de la memoria principal y el bloque k,
modulo n, de la cache, siendo n el numero de bloques de la memoria cache.
Este tipo simple y econmico, por no requerir comparaciones asociativas en las
bsquedas. De todas formas, en sistemas multiprocesador pueden registrarse graves
"fast" fu aadido cuando los ms nuevos chips empezaron a correr a 100 nanoseconds e
incluso ms.
3. EDO (Extended Data Outpout)
Un tipo de chip de RAM dinmica que mejora el rendimiento del modo de memoria Fast
Page alrededor de un 10%. Al ser un subconjunto de Fast Page, puede ser substituida por
chips de modo Fast Page.
Sin embargo, si el controlador de memoria no est diseado para los ms rpidos chips
EDO, el rendimiento ser el mismo que en el modo Fast Page.
EDO elimina los estados de espera manteniendo activo el buffer de salida hasta que
comienza el prximo ciclo.
4. BEDO (Burst EDO)
Es un tipo ms rpido de EDO que mejora la velocidad usando un contador de direccin
para las siguientes direcciones y un estado 'pipeline' que solapa las operaciones.
5. PB SRAM (Pipeline Burst SRAM)
Se llama 'pipeline' a una categora de tcnicas que proporcionan un proceso simultneo, o
en paralelo dentro de la computadora, y se refiere a las operaciones de solapamiento
moviendo datos o instrucciones en una 'tubera' conceptual con todas las fases del 'pipe'
procesando simultneamente. Por ejemplo, mientras una instruccin se est ejecutando, la
computadora est decodificando la siguiente instruccin. En procesadores vectoriales,
pueden procesarse simultneamente varios pasos de operaciones de coma flotante
La PB SRAM trabaja de esta forma y se mueve en velocidades de entre 4 y 8 nanosegundos.
TAG RAM
Este tipo de memoria almacena las direcciones de cualquier dato de memoria DRAM que
hay en la memoria cach. Si el procesador encuentra una direccin en la TAG RAM, va a
buscar los datos directamente a la cach, si no, va a buscarlos directamente a la memoria
principal.
Cuando se habla de la CACHEABLE MEMORY en las placas para Pentium con los chipsets
430FX, 430VX, 430HX y 430TX de Intel, nos referimos a la cantidad de TAG RAM, es decir,
la cantidad de datos de memoria que se pueden almacenar en la cach. Una de las
desventajas del chipset 430TX frente al chipset 430HX es que solo se pueden almacenar
los datos de 64 MB de memoria RAM, con lo cual, en ciertos casos, en las placas con este
chipset se produce un descenso del rendimiento de memoria al tener instalados ms de 64
MB de memoria RAM en el equipo. Por ello, a pesar de la modernidad del diseo, en los
servidores o las estaciones grficas quizs sera ms conveniente utilizar una placa base
con el chipset 430HX de Intel.
MEMORIA ROM
Estas letras son las siglas de Read Only Memory (memoria de solo lectura) y eso es
exactamente lo que es, una memoria que se graba en el proceso de fabricacin con una
informacin que est ah para siempre, para lo bueno y lo malo. No podemos escribir en
ella pero podemos leer cada posicin la veces que queramos. Se trata de la memoria
interna de la mquina, que el procesador lee para averiguar el qu, el cundo y el cmo de
una multitud de tareas diferentes; por ejemplo: lee las diversas instrucciones binarias que
se necesitan cada vez que se teclea un carcter por el teclado, o cada vez que se tiene que
presentar algo en pantalla.
En la ROM est almacenado tambin el programa interno que nos ofrece la posibilidad de
hablar con el ordenador en un lenguaje muy similar al ingls sin tener que rompernos la
cabeza con el lenguaje de mquina (binario). Todas estas cosas suman tanta informacin
que es muy probable que la memoria ROM de un ordenador tenga una capacidad de 8K a
16K, un nmero suficientemente grande para que este justificado asombrarse ante la
cantidad de informacin necesaria para llenar tal cantidad de posiciones, especialmente
cuando sabemos que los programas ROM estn escritos por expertos en ahorrar memoria.
Ello sirve para poner de manifiesto la gran cantidad de cosas que pasan en el interior de
un ordenador cuando ste est activo.
La memoria ROM presenta algunas variaciones: las memorias PROM, EPROM y EEPROM.
MEMORIA PROM
Para este tipo de memoria basta decir que es un tipo de memoria ROM que se puede
programar mediante un proceso especial, posteriormente a la fabricacin.
PROM viene de PROGRAMABLE READ ONLY MEMORY (memoria programable de solo
lectura ).Es un dispositivo de almacenamiento solo de lectura que se puede reprogramar
despus de su manufactura por medio de equipo externo . Los PROM son generalmente
pastillas de circuitos integrados.
Caractersticas principales de rom y prom:
Solo permiten la lectura.
Son de acceso aleatorio
Son permanentes o no voltiles: la informacin no puede borrarse
Tienen un ancho de palabra de 8 bits, con salida triestado.
MEMORIA EPROM
La memoria EPROM ( la E viene de ERASABLE -borrable-) es una ROM que se puede
borrar totalmente y luego reprogramarse, aunque en condiciones limitadas. Las EPROM
son mucho ms econmicas que las PROM porque pueden reutilizarse.
MEMORIA EEPROM
An mejores que las EPROM son las EEPROM ( EPROM elctricamente borrables) tambin
llamadas EAROM (ROM elctricamente alterables), que pueden borrarse mediante
impulsos elctricos, sin necesidad de que las introduzcan en un receptculo especial para
exponerlos a luz ultravioleta.
Las ROM difieren de las memorias RAM en que el tiempo necesario para grabar o borrar
un byte es cientos de veces mayor, a pesar de que los tiempos de lectura son muy
similares.
Concepto de memoria
La memoria es el componente del ordenador que almacena la informacin que ste posee,
es decir, sus datos y programas. Es como un bloc de notas que mantiene la informacin
mientras estamos trabajando con ella.
La memoria del ordenador est organizada en unidades de bytes, cada uno compuesto por
8 bits.
No importa el tipo de informacin estemos almacenando; estar codificada en una
estructura particular de bits, que ser interpretada de la forma adecuada al tipo de datos
Modo de acceso
Segn el mtodo utilizado para localizar la informacin tenemos:
a) Acceso aleatorio: En las memorias de acceso aleatorio se accede directamente al byte o
posicin deseada, en un tiempo independiente de la direccin a la que se quiere acceder,
por ejemplo las memorias RAM son de acceso aleatorio.
b) Acceso secuencial: En las memorias de acceso secuencial se llega a la posicin deseada a
travs de una secuencia de posiciones, que depende de donde est la informacin en el
momento en el que se quiere acceder a ella, por ejemplo para acceder a una informacin
en una cinta magntica es necesario recorrer la cinta hasta encontrar la informacin
deseada.
Tiempo de acceso
Se denomina tiempo de acceso al que transcurre entre el instante en que se enva una
operacin de acceso a memoria y el instante en que se dispone de la primera informacin
buscada.
Segn el tiempo de acceso se puede hablar de memorias rpidas o lentas, pero como eso
no es demasiado preciso, es mejor citar el tiempo de acceso, que se mide normalmente en
nanosegundos.
Capacidad
Es la cantidad de informacin que puede almacenar una memoria.
Dado que la informacin se almacena en el sistema binario, la capacidad se mide en bytes.
Se utiliza el byte porque es el menor tamao de informacin, a la que se puede acceder en
una operacin de acceso a memoria, ya que cada posicin de memoria almacena un byte.
Aunque a la hora de hablar de la capacidad de memoria, se utilizan mltiplos de l (KByte,
MByte, GByte, TByte).
Tipos de memorias: RAM y ROM
Actualmente el tipo de memorias que se emplean con carcter universal, son las memorias
de semiconductores. La primera memoria comercial de semiconductor tena una
capacidad de 64 bits y fue fabricada por IBM en 1968. Poco ms tarde, en 1972,
aparecieron los primeros ordenadores de IBM con memoria principal de semiconductores.
Los elementos semiconductores utilizados hasta ahora para realizar estas memorias son el
Silicio (Si) y el Germanio (Ge), pero en la actualidad se est tambin utilizando el
Arseniuro de Galio (AsGa).
En el caso de las memorias de semiconductores, cada punto de memoria est formado por
un dispositivo electrnico denominado transistor, en el que hay dos estados de
funcionamiento bien diferenciados: el estado de corte y el de saturacin. Cuando el
transistor est en estado de corte no deja pasar prcticamente nada a su travs, y a la
salida del transistor apenas se obtiene corriente, es lo que llamamos "0 lgico". Cuando
est en estado de saturacin, deja que la corriente circule por l libremente y lo que
obtenemos a la salida es un mximo de corriente que denominamos "1 lgico".
Jerarqua de la memoria
Actualmente la velocidad de los procesadores no ha parado de aumentar, mientras que la
velocidad de la memoria lo ha hecho en una cuanta mucho menor. La solucin al
problema que plantea esto, es hacer que el procesador espere por la memoria, aunque as
se desaprovecha la velocidad del mismo. Para resolverlo se ha buscado otra solucin, que
consiste en poner una pequea cantidad de memoria rpida y cara (SRAM), llamada
memoria cach, y una cantidad mayor de memoria lenta y barata (DRAM), llamada
memoria principal, y que el procesador mantenga una copia de los datos que ms utiliza
en la memoria cach.
Para que el esquema anterior funcione, es preciso que exista un controlador de cach,
encargado de vigilar las peticiones de datos del procesador a la memoria. Parte de la
memoria cach se emplear para guardar las direcciones de los datos y el resto para los
datos. El controlador compara la direccin de memoria pedida por la CPU con las que
contiene la cach, y si el dato est en la misma, da la orden para leer de la cache , en caso
contrario, el dato se lee de la memoria principal, empleando los estados de espera que
sean necesarios, y se copia en la memoria cach, para que cuando lo necesite la CPU se
encuentre con ms rapidez. Para poder hacer esto, el controlador de cach lleva la cuenta
de qu datos de la cach se han utilizado ltimamente, e introduce el nuevo dato en lugar
del menos utilizado recientemente.
Con este sistema y tamaos adecuados de memoria principal y memoria cach (por
ejemplo
16Mb de memoria principal y 256Kb de memoria cach) se puede conseguir que el 90%
de las veces, el dato solicitado por el procesador est en la memoria cach y lograr con un
coste reducido, un sistema que tiene el 90% de velocidad que el equivalente con memoria
rpida completo.
Los procesadores modernos funcionan interiormente a mayor velocidad que la que
emplean en su comunicacin con la memoria, por ejemplo un Pentium a 200Mz, funciona a
200MHz internamente, pero se comunica con la memoria externa (sea principal o cach) a
slo 66MHz. En estas condiciones el rendimiento del procesador se ve mermado por el de
la memoria, aunque sea rpida. Por ello, se incluye una pequea cantidad de memoria
cach interna en el procesador (en el caso del Pentium 16Kb, 8Kb para datos y otros 8Kb
para cdigo) que funciona a la misma velocidad que l mismo. En ese caso la cach interna
al procesador se llama cach de nivel 1 (abreviadamente L1) y la externa de nivel 2 (o L2).
La siguiente generacin, por ejemplo el Pentium II, avanza incluso un poco ms incluyendo
la memoria cach L2 dentro del procesador, lo que permite que la velocidad de
comunicacin de la misma con el procesador, sea ms elevada que la del bus del sistema
(por ejemplo 200MHz en lugar de 100MHz).
En el extremo opuesto tambin se pueden conseguir mejoras. Supongamos que tenemos
un ordenador con 16Mb de memoria principal y queremos usar un programa que requiere
16Mb de memoria (entre datos y cdigo), pero el sistema operativo emplea 4Mb de
memoria.
Aparentemente no se puede, pero hay una tcnica para conseguirlo. Se trata de emplear
parte de la memoria auxiliar como si fuera memoria RAM, la parte de los datos o el
programa que menos se use se escribe en disco, y cuando se necesite, se lleva otra vez a
memoria, escribiendo en su lugar en el disco los datos menos usados que estaban en la
memoria. Con este sistema el rendimiento se degrada, ya que el tiempo medio de acceso
de un disco es de milisegundos, frente a los nanosegundos del tiempo de acceso a la
memoria, pero al menos, se puede utilizar el programa, cosa de otro modo imposible,
Adems, salvo que se requiera mucha ms memoria de la disponible fsicamente, el
rendimiento no disminuye tanto, por ejemplo, si tenemos un procesador de textos que
tiene un mdulo que permite corregir la ortografa, mientras no lo utilicemos no hace falta
que est fsicamente en memoria, de modo que si el programa necesita 16Mb de RAM, es
posible que las opciones que estemos usando usen slo 8Mb, el resto se puede dejar en
disco hasta que sea necesario.
Resumiendo, para conseguir un elevado rendimiento de un procesador hace falta
jerarquizar la memoria: tener una pequea cantidad de memoria muy rpida (aunque sea
muy cara), una cantidad pequea de memoria rpida y cara, una cantidad relativamente
grande de memoria lenta y barata y, adems, un espacio de disco mayor que la memoria,
que ser mucho ms lento que la misma, pero de coste tambin mucho ms reducido por
bit. Con este sistema se obtiene un rendimiento menor que si toda la memoria necesaria
fuera muy rpida, pero a un coste mucho menor.
Funcionamiento de la memoria
La forma en que est organizada una memoria principal es la siguiente: est dividida en N
palabras, donde N es generalmente una potencia de 2, y a cada palabra se le asigna una
direccin, o posicin en la memoria. Cada palabra tiene el mismo nmero de bits, llamados
longitud de palabra. Dicha longitud es tambin una potencia de 2, puede ser 8, 16, 32, etc.
Por compatibilidad con los procesadores anteriores las posiciones de memoria se suelen
numerar siempre de 8 en 8 bits, con independencia de que el procesador pueda acceder
directamente a 16 bits, o ms.
Las direcciones, o nmeros de direccin en la memoria, van consecutivamente. Se suelen
expresar en hexadecimal partiendo de 00....000 y llegando hasta la direccin ms grande
posible que ser la FF....FFF. El procesador puede leer o escribir una palabra en cada
posicin de memoria.
Es muy importante entender la diferencia entre el contenido de una direccin de memoria
y la direccin en s misma. La memoria es como un gran gabinete con muchos cajones, los
cuales corresponden a las direcciones de memoria. En cada cajn hay una palabra y la
direccin de cada palabra se escribe en la parte externa del cajn. Para obtener el
contenido de un cajn debemos saber cual es, es decir debemos tener la direccin, pero el
contenido es lo que hay dentro del cajn que no tiene nada que ver con su direccin.
Los chips de memoria tienen exteriormente un conjunto de patas con los que pueden ser
conectados al resto de componentes del ordenador. Se pueden dividir en tres grupos
fundamentales:
a) Bus de direcciones: Este conjunto de patas contiene la direccin en forma de nmero
binario del dato que se busca, se conectan a otro conjunto de patas similares que tiene el
procesador, cuando ste quiere leer un dato coloca en el bus de direcciones la direccin
del dato y espera a que la memoria se lo enve por el bus de datos que se explica a
continuacin.
b) Bus de datos: Estas patas se conectan al bus de datos del procesador y por ellas circulan
los datos entre ambos. Por ejemplo, si un chip de memoria contiene un bus de datos de 1
bit (es decir una sola pata) en cada celda de memoria de ese chip se puede almacenar slo
un bit; si el procesador accede a la memoria de 8 en 8 bits, ser preciso poner 8 chips
similares y conectar el bus de datos de cada uno a cada una de las 8 patas del bus de datos
del procesador, as cada dato de 8 bits que maneje el procesador tendr cada uno de sus
bits en un chip distinto.
c) Seales de control: Sirven para controlar el proceso, por ejemplo una de ellas llamada
W / R sirve para que la memoria sepa si el procesador quiere leer o escribir.
Para permitir ampliar posteriormente la memoria, normalmente el ancho del bus de
direcciones del procesador es mayor que el ancho del bus de direcciones de los chips de
memoria, en ese caso las lneas superiores del bus de direcciones del procesador tienen
que pasar por un decodificador, que se encarga de seleccionar el chip correcto que
contiene el dato. Por ejemplo supongamos que el procesador tiene un bus de direcciones
de 16 bits y que empleamos para la memoria chips con un bus de direcciones de 14 bits y
1 bit para el bus de datos. El procesador puede acceder a 64Kb, mientras que los chips de
memoria tienen capacidad de slo 16Kbits, juntando 8 chips obtenemos 16Kb y con 4
grupos de 8 chips llenamos los 64Kb, en ese caso los 14 bits bajos del bus de direcciones se
conectan a los 14 bits del bus de direcciones de todos los chips. Los 2 bits altos del bus de
direcciones se conectan al decodificador que saca 4 seales, una cuando dichos bits son 00,
otra cuando son 01, otra para 10 y finalmente otra para 11. Cada una de las seales del
decodificador va a parar a una pata, llamada chip select, de los 8 chips de cada grupo, cada
chip est seleccionado slo cuando recibe la seal chip select.
Leyendo de la memoria
Cuando el procesador quiere acceder a un dato, es decir, para leer un dato de la memoria,
realiza la siguiente secuencia:
1. Coloca la direccin del dato en el bus de direcciones.
2. Coloca en la pata W / R un 0 para indicar que desea leer.
3. Espera un tiempo prefijado a que la memoria coloque en el bus de datos el dato en
cuestin.
4. Lee el dato del bus de datos y da por concluida la secuencia.
Como se ha dicho arriba las posiciones de memoria se numeran en bytes, sin embargo el
procesador puede acceder a datos de tamao mayor, por ejemplo de 16 bits, hay dos
posibles alternativas para esta situacin, una es colocar en la parte baja del nmero ledo
el contenido de la posicin baja de memoria y en la parte alta el de la posicin alta, por
ejemplo si la posicin de memoria 1234 contiene el nmero 56 y la posicin 1235 contiene
el 78, al leer un dato de 16 bits de 1234 se obtiene 7856 (todos los nmeros estn en
hexadecimal). ste es el comportamiento de los procesadores de Intel, pero existen otros,
por ejemplo la familia 68000 de Motorola, que emplean el inverso, es decir en el caso
anterior un procesador 68000 leera de memoria el dato 5678.
Escribiendo en memoria
Cuando el procesador transfiere un dato hacia la memoria, es decir, cuando se escribe en
la memoria, se produce la siguiente secuencia:
1. Coloca la direccin del dato en el bus de direcciones.
2. Coloca en la pata W / R un 1 para indicar que desea escribir.
3. Coloca el dato en el bus de datos.
4. Espera un tiempo prefijado a que la memoria lea el dato del bus de datos y almacene
dicho valor en la direccin pedida, pasado ese tiempo da por concluida la operacin.
El esquema para escribir datos multibyte es el mismo que emplea a la hora de leer, por
tanto al escribir un dato de 16 bits y posteriormente volverlo a leer se obtiene el mismo
valor, con independencia del orden en que se guarde en memoria (bajo-alto o alto-bajo),
ya que se emplea el mismo orden a la hora de leerlo.