PREVIO #4 MEMORIA DIRECCIONABLE POR CONTENIDO (CAM) 1.- Explique ¿cuáles son las diferencias entre una memoria SRAM y una CAM?
Existen varias diferencias, entre las cuales destacan: - Una memoria SRAM es parte de una celda de la memoria CAM, es decir, una celda de la memoria CAM está formada por una celda SRAM y un circuito comparador. - Por tal motivo, las memorias CAMs son más caras que las RAMs - Las memorias CAM vienen siendo una aplicación directa de las memorias de lectura-escritura de acceso aleatorio (RAMs). - En cuanto el funcionamiento, una memoria CAM al i gual que la SRAM tiene las mismas funciones (Lectura y/o escritura de datos), pero además, ésta puede hacer operaciones de búsqueda o comparación (ésta (ésta última realizada a través de hardware), cuyo cuyo tiempo de respuesta sea crítico o instantáneo. - Las memorias CAM funcionan al revés que las memorias RAM, ROM, etc. Es decir, al ingresar datos a la memoria CAM, ésta regresará la dirección asociada a la información proporcionada. 2.- Explique las ventajas que presenta la operación de búsqueda en una memoria CAM.
Las ventajas de la operación de búsqueda en una memoria CAM, son que: - En las memorias SRAM solamente se puede llegar a la información, si se conoce la dirección de la localidad donde está almacenada, en cambio en una memoria CAM no es necesario saber la dirección de la información, si no que basta con darle cierta información (conjunto de datos) llamada clave o llave, para que la memoria CAM pueda realizar a continuación una operación de búsqueda, la cual se realiza en forma simultánea simultánea en todas todas sus localidades, indicándonos en qué localidad o localidades se encuentra guardada dicha información, pudiéndose realizar a continuación una operación de lectura o escritura semejante a una RAM. - Por lo anterior, una memoria CAM funciona al revés revés en comparación a las memorias convencionales (RAM, ROM, etc.), al ingresar datos a la memoria CAM, ésta regresará la dirección asociada a la información proporcionada. - Debido a que la operación de búsqueda se realiza a nivel hardware, en forma simultánea en todas las localidades de la memoria, ocasiona que el tiempo que emplea en la misma sea muy pequeño, siendo una caracterización de las m emorias CAM. - Por lo tanto las memorias CAM se utilizan en aplicaciones en donde se requieren que los tiempos de respuesta de búsquedas sean muy pequeños y la cantidad de datos datos no sea muy grande. 3.- Explique ¿qué se requiere para llegar a la información en las memorias RAM y ROM?
S e requiere conocer la dirección de la localidad donde está almacenada la información a la que se quiere llegar o acceder. 4.- Explique ahora ¿cómo se puede llegar a una información específica en una memoria CAM?
En una memoria CAM no es necesario saber la dirección de la información, si no que basta con darle cierta información (conjunto de datos) llamada clave o llave, para que la memoria CAM pueda realizar a continuación una operación de búsqueda, la cual se realiza en forma simultánea en todas sus localidades, indicándonos en qué localidad o localidades se encuentra guardada dicha información, pudiéndose realizar a continuación una operación de lectura o escritura semejante a una RAM. Es decir se requiere proporcionar en la entrada la palabra que se está buscando, y si se encuentra se obtendrá la dirección especifica en donde se encuentra la palabra. Cada palabra activa de memoria es comparada en paralelo durante la búsqueda. 5.- Defina los seis bloques que deben formar a una memoria CAM.
El diagrama de bloques de la memoria CAM sería el que se muestra en la figura.
Figura. Diagrama de bloques de una memoria CAM.
Bloque A. Bloque de direccionamiento: Este bloque tiene como función el decodificar la dirección que se le da a la memoria CAM para poder seleccionar una palabra de memoria y realizar sobre ella una operación de lectura o escritura, como si fuera una RAM común y corriente. Bloque B. Bloque de habilitación de entrada de datos: Este bloque tiene como función el habilitar ciertas líneas o campos que queremos utilizar como datos o llaves. Bloque C. Bloque 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 número total de celdas será de M x N, donde M es el número de palabras y N es el número de bits por palabra. Bloque D. Bloque correspondiente al resultado de la búsqueda o comparación: Este bloque tiene como función el indicar en que palabra de la memoria fue encontrada la llave que se le dio como entrada para efectuar una búsqueda o comparación. La salida de este bloque puede estar dada de dos maneras: En la primera de ellas, el bloque puede tener M líneas de salida, donde M es el número de palabras con que cuenta la memoria. Puede suceder el caso de que en una operación de búsqueda, la llave que le fue dada, sea encontrada en dos o más palabras de memoria, por lo cual estarían activadas varias líneas de salida del mismo, este tipo de salida es conveniente únicamente cuando el número de palabras son muy pocas. En la segunda, el bloque puede presentar un conjunto de líneas de salida, por medio de las cuales nos indicaría la dirección de la localidad donde fue encontrada la llave, ahora bien si se encontró más de una vez, entonces además de la d irección mencionada, se contaría con una línea de salida que serviría como una bandera que al estar habilitada nos indicaría que la llave fue encontrada en otra u otras localidades y así sucesivamente si se encontró en varias de ellas. Bloque E. Bloque de salida de datos: Este bloque tiene como función el proporcionarnos los datos de salida en alguna operación de lectura normal, también recibe el nombre de buffer de salida y está integrado por N líneas de salida, donde N es el número de bits por palabra. Bloque F. Bloque de control: Éste realiza todo lo necesario para coordinar y llevar el buen funcionamiento de la memoria. Presenta a su entrada líneas de control como puede ser una línea de entrada (L/E o Lect/Esc o Lectura_búsqueda / Escritura), por medio de la cual se indica a la memoria la operación que se realizará, así como líneas de alimentación y referencia.