You are on page 1of 12

LABORATORIO DISPOSITIVOS DE ALMACENAMIENTO Y DE ENTRADA/SALIDA.

PRCTICA # 11.

MEMORIA DIRECCIONABLE POR CONTENIDO (CAM).


OBJETIVO DE LA PRCTICA.

Comprender el principio de funcionamiento y la estructura interna de las memorias direccionables por contenido.

INTRODUCCIN. La memoria direccionable por contenido es tambin conocida como memoria CAM por sus siglas en ingls (Content Addressable Memory). Las memorias direccionables por contenido, vienen siendo una aplicacin directa de las memorias de lectura-escritura de acceso aleatorio (RAMs). En stas solamente se puede llegar a la informacin, si se conoce la direccin de la localidad donde est almacenada, en cambio en una memoria CAM no es necesario saber la direccin de la informacin, si no que basta con darle cierta informacin (conjunto de datos) llamada clave o llave, para que la memoria CAM pueda realizar a continuacin una operacin de bsqueda, la cual se realiza en forma simultnea en todas sus localidades, indicndonos en que localidad o localidades se encuentra guardada dicha informacin, pudindose realizar a continuacin una operacin de lectura o escritura semejante a una RAM. En otras palabras, la memoria CAM funciona al revs en comparacin a las memorias convencionales (RAM, ROM, etc.), al ingresar datos a la memoria CAM, sta regresar la direccin asociada a la informacin proporcionada. Las operaciones que puede realizar una memoria direccionable por contenido son: lectura, escritura y bsquedas. Cabe hacer la aclaracin que las bsquedas o comparaciones que efecta una memoria CAM son realizadas a travs de hardware, es decir la operacin se realiza en forma simultnea en todas las localidades de la memoria, dando como resultado que el tiempo que emplea en la misma sea muy pequeo, siendo esto una caracterstica de las memorias CAMs.

En otras palabras, las memorias CAM se utilizan en aplicaciones en donde se requieren que los tiempos de respuesta de bsquedas sean muy pequeos y la cantidad de datos no sea muy grande. Algunos ejemplos de aplicaciones en donde se utilizan las memorias CAMs, son entre otros: - En un switch de una red de computadoras, para enviar un paquete de datos al puerto de salida correcto, es necesario comparar la direccin destino de los datos recibidos con la tabla de direccionamiento almacenada en su interior, de tal manera de poder realizar el enrutamiento correcto de dicho paquete a su puerto o direccin destino en el menor tiempo posible. - En la memoria cache de algunos procesadores. En una estructura de una computadora, normalmente el CPU trabaja junto a la memoria cache, seguido de la memoria principal y la memoria secundaria. La memoria cache est construida en el mismo chip que el CPU, por lo que pueden comunicarse casi instantneamente, mientras que la memoria principal est integrada por una memoria RAM dinmica, la cual se encuentra separada de stas, por lo tanto la velocidad de comunicacin entre stas es menor. Por otro lado, la memoria cache est integrada por una memoria CAM y una memoria RAM esttica, la primera guarda direcciones y la segunda guarda los datos asociados a ellas. Esto hace que las instrucciones que estn guardadas en la memoria cache se ejecuten ms rpidamente, debido a que le toma un solo instante a la memoria CAM saber si contiene o no la direccin, cuando la contiene ocasiona que la RAM esttica coloque su contenido en el bus de datos. - En una compresin de datos, se debe eliminar la redundancia que se encuentra en la informacin, el uso de una memoria CAM en el empleo de un algoritmo en la compresin de datos, aumenta considerablemente el rendimiento del mismo, ya que la CAM por sus caractersticas propias nos da el resultado en una sola operacin, independientemente del tamao de la lista de bsqueda. - En una red de rea local LAN o en una red de rea amplia WAN, la memoria CAM sirve como un filtro de direcciones IP permitidas para tener o no acceso a un servicio determinado. A continuacin se ver como es una celda CAM a diferentes niveles, como est organizada internamente la informacin, as como el diagrama de bloques de estas memorias. En general, una celda de una memoria CAM est compuesta por una celda SRAM y un comparador, tal como se puede apreciar en la figura 1.

Figura 1. Celda CAM. Por tal motivo, las memorias CAMs son ms caras que las RAMs, se utilizan en equipos que requieren adems de las operaciones comunes de lectura y escritura, la necesidad de llevar a cabo comparaciones o bsquedas, cuyo tiempo de respuesta sea crtico o instantneo.

En la figura 2, se muestra una celda CAM a nivel compuertas lgicas.

Figura 2. Celda CAM a nivel compuertas lgicas. En la figura 3, se muestra una celda CAM a nivel transistor, recuerde que una celda CAM est integrada por una celda RAM esttica ms un comparador, por lo que la celda SRAM estara integrada por los seis primeros transistores, T1, T2, T3 y T4 formaran el flip - flop y los otros dos, T5 y T6 son los que permiten la entrada/salida de informacin cuando es seleccionada la celda. Finalmente los transistores T7, T8 y T9 que estn en la parte de abajo de la celda corresponden al bloque comparador.

Figura 3. Celda CAM a nivel transistor.

La informacin almacenada en las memorias CAM puede estar organizada de dos maneras: - Dos campos. Un campo contiene solamente la llave y el otro la informacin asociada a la llave, vase figura 4.

Llave

Informacin

asociada

la llave

Figura 4. La informacin en la CAM est almacenada en dos campos.

Esta forma es la ms usada y por tal motivo se les conoce tambin a las CAMs con el nombre de memorias asociativas. - Varios campos. La informacin almacenada es a la vez la llave y la misma informacin, vase figura 5. Campo 1 Campo 2 Campo 3 . . . Campo n

Figura 5. La informacin en la memoria CAM est almacenada en varios campos.

En este tipo de organizacin existen varios campos, cualquier campo puede ser la llave o incluso puede ser una combinacin de varios de ellos, con lo cual la bsqueda de informacin se vuelve ms especfica. Lo anterior implica que cada campo tenga una lnea para su habilitacin. Como se dijo anteriormente, en este tipo de organizacin no existe un campo especfico de llave, sino que nosotros debemos especificar cul o cules sern los campos que queremos que acten como tales. Si se necesitara utilizar como llave a otro campo, entonces se habilitara a ese campo, si se necesitara tener como llave a dos campos, entonces debemos de habilitar a esos dos campos y as sucesivamente.

El diagrama de bloques de la memoria CAM sera el que se muestra en la figura 6.

Figura 6. Diagrama de bloques de una memoria CAM. Como se puede observar, el bloque marcado con la letra A, es el bloque de direccionamiento. Este bloque tiene como funcin el decodificar la direccin que se le da a la memoria CAM para poder seleccionar una palabra de memoria y realizar sobre ella una operacin de lectura o escritura, como si fuera una RAM comn y corriente. El segundo bloque identificado como B es el de habilitacin de entrada de datos. Este bloque tiene como funcin el habilitar ciertas lneas o campos que queremos utilizar como datos o llaves. El bloque C sera el de almacenamiento, el cual est compuesto por un conjunto de celdas que integran la matriz de almacenamiento. Cada celda puede guardar un uno o un cero, el nmero total de celdas ser de M x N, donde M es el nmero de palabras y N es el nmero de bits por palabra. El cuarto bloque marcado con la letra D sera el correspondiente al resultado de la bsqueda o comparacin.

Este bloque tiene como funcin el indicar en que palabra de la memoria fue encontrada la llave que se le dio como entrada para efectuar una bsqueda o comparacin. La salida de este bloque puede estar dada de dos maneras: En la primera de ellas, el bloque puede tener M lneas de salida, donde M es el nmero de palabras con que cuenta la memoria. Puede suceder el caso de que en una operacin de bsqueda, la llave que le fue dada, sea encontrada en dos o ms palabras de memoria, por lo cual estaran activadas varias lneas de salida del mismo, este tipo de salida es conveniente nicamente cuando el nmero de palabras son muy pocas. En la segunda, el bloque puede presentar un conjunto de lneas de salida, por medio de las cuales nos indicara la direccin de la localidad donde fue encontrada la llave, ahora bien si se encontr ms de una vez, entonces adems de la direccin mencionada, se contara con una lnea de salida que servira como una bandera que al estar habilitada nos indicara que la llave fue encontrada en otra u otras localidades y as sucesivamente si se encontr en varias de ellas. El quinto bloque sera el de la letra E que corresponde al bloque de salida de datos. Este bloque tiene como funcin el proporcionarnos los datos de salida en alguna operacin de lectura normal, tambin recibe el nombre de buffer de salida y est integrado por N lneas de salida, donde N es el nmero de bits por palabra. El ltimo bloque es el bloque de control identificado con la letra F. ste realiza todo lo necesario para coordinar y llevar el buen funcionamiento de la memoria. Presenta a su entrada lneas de control como puede ser una lnea de entrada (L/E o Lect/Esc o Lectura_bsqueda / Escritura), por medio de la cual se indica a la memoria la operacin que se realizar, as como lneas de alimentacin y referencia.

En la figura 7, se muestra una memoria CAM la cual tiene una organizacin de dos palabras, cada una de dos bits, por lo tanto la capacidad total de sta ser de 4 bits y su organizacin como se mencion anteriormente es de 2 X 2.

Figura 7. Memoria CAM con una organizacin de 2 X 2.

Desarrollo: Arme y compruebe el buen funcionamiento de la memoria CAM mostrada en la figura 7. Realice varias operaciones de lectura, escritura y bsquedas o comparaciones, siguiendo los siguientes pasos: Para una operacin de escritura: La lnea de control Lect/Esc a un voltaje alto. Poner la direccin de la palabra donde se quiere escribir. Poner los datos que se quieren escribir y las respectivas lneas de habilitacin a voltaje alto. La lnea de control Lect/Esc a un voltaje bajo. (En este instante el flip flip toma el dato a guardar) La lnea de control Lect/Esc a un voltaje alto. Para una operacin de lectura: La lnea de control Lect/Esc a un voltaje alto. Poner la direccin de la palabra que se quiere leer. Las lneas de entrada de datos D2 y D1 y las de habilitacin H2 y H1 no importan. La informacin almacenada se puede leer en las lneas de salida S2 y S1. No tomar en consideracin las salidas X0 y X1. Para una operacin de bsqueda: La lnea de control Lect/Esc a un voltaje alto. Los datos o llave que deseo buscar en las lneas D2 y D1. Las respectivas lneas de habilitacin H2 y H1 a voltaje alto. Como se trata de una operacin de bsqueda, no se deben tomar en consideracin las lneas de salida S2 y S1. Observar el resultado de la bsqueda o comparacin en las lneas de salida X0 y X1. [Un voltaje alto, significa que el dato que le estoy dando a la CAM, se encuentra guardado en la palabra respectiva. Un voltaje bajo, significa que el dato que le estoy dando a la CAM, no se encuentra guardado en la palabra respectiva] Posteriormente llame al instructor del laboratorio y muestre el buen funcionamiento de la memoria.

MATERIAL. 2 3 4 1 1 2 6 Circuitos integrados 7473 Circuitos integrados 7411 Circuitos integrados 7408 Circuito integrado 7401 Circuito integrado 7432 Circuitos integrados 7404 Resistencias de 330 ohms y cuatro diodos emisores de luz. Hojas de especificaciones de los circuitos integrados utilizados (Patigramas).

Se agradece la colaboracin en la elaboracin de esta prctica a las tcnicas acadmicas: Lic. Juana Galvn Hernndez y Lic. Dolores Rosalva Milln Njera

You might also like