viernes, 5 de octubre de 2012

Unidad de Memoria (Cesar)



Concepto.- Una unidad de memoria es un conjunto de registros de almacenamiento conjuntamente con circuitos asociados para la transferencia de información. Los registros de almacenamiento en una unidad de memoria se llaman registros de memoria de donde se saca la información para su procesamiento.
Una unidad de memoria almacena información en grupos de n bits llamados palabras, que pueden representar instrucciones, datos, operando, grupo de caracteres alfanuméricos o cualquier información codificada binariamente, y cada una de estas se almacena en un registro de memoria.
Se pueden aplicar dos señales de control a un registro de memoria una de lectura y otra de escritura.

                                Fig 1. Unidad de memoria con señales de control y sus registros importantes
Fuente: Morris M. (1994), Arquitectura de computadoras, Juárez: México, Editorial Prentice Hall Hispanoamericana S.A.

Una unidad de memoria tiene 3 registros importantes:
MAR (Memory Address Register).- Registro de direcciones de memoria
MRB (Memory Buffer Register).- Registro separador de memoria
Registro de memoria direccionado por MAR.


Fig. 2 Valores iniciales de los registros MBR, MAR
Fuente: Morris M. (1994), Arquitectura de computadoras, Juárez: México, Editorial Prentice Hall Hispanoamericana S.A.
En los años 90 surge el concepto de jerarquía de memoria, por la implementación de memoria caché a las placas madres de los PC.
Jerarquía de memoria


Fig. 3 Pirámide de Jerarquía de memoria 


CPU Registros.- Son los que se encuentran en la cima de la pirámide de la jerarquía de memoria, son los más rápidos y están integrados dentro de la CPU, para realizar operaciones básicas. Existen varios con funcionabilidad específica como ser: Acumulador, contador de instrucciones, palabra de estado, etc.
Memoria Caché.- La memoria caché aparece en la década de los 90s como respuesta a la necesidad de igualar la velocidad del procesador y las memorias o por lo menos hacer que la diferencia entre estas no sea tan grande, aparece en el procesador 386 de Intel. Es una memoria de gran velocidad que puede encontrarse integrada en el procesador (caché interna, L1) o de primer nivel, en la tarjeta madre (caché de segundo nivel o caché externa, L2) esta segunda es más lenta que la primera.
Su función es la de guardar datos e instrucciones más usadas Cuando el procesador intenta leer una palabra de la memoria, primero revisa si esta palabra está en la memoria caché, si lo está la palabra es llevada al procesador, caso contrario la memoria caché se llena de información de un bloque de la memoria principal con un número fijo de palabras y luego enviada al procesador.
·         Caché de primer nivel L1.- Suele estar dividido en dos partes una para datos y la otra para instrucciones que es consecuencia de la segmentación del procesador, se accede primero a la caché de instrucciones para extraer el código a ejecutar y luego se accede a la caché de datos para procesar estos.

·         Caché de segundo nivel L2.- Nació porque la memoria caché de primer nivel resultaba insuficiente. Es más grande que la caché de primer nivel pero menos rápida, en esta caché no existe la división de datos e instrucciones, todos estos se guardan en conjunto. La caché de segundo nivel está integrada en la placa madre.


Fig. 4 Cache L1 y L2 y su ubicación en la tarjeta madre


Optimizaciones
1.       Caché no bloqueante.- Es la caché a la que se puede seguir accediendo aun cuando esta tiene fallos. Se incorporaron a las PCs juntamente con las caches de segundo nivel.
2.       Caché segmentada.- La caché interna esta segmentada en 2 etapas y la externa en 4. En la primera etapa se realiza la consulta del dato a busca en L1, en la segunda etapa se extrae el dato si es encontrado, caso contrario se manda una petición a L2.
3.       Caché con lectura anticipada.- Tiene por objetivo acelerar la lectura de los datos por parte del procesador en caso de no encontrarse en la caché, haciendo simultaneo la recepción del bloque que lo contiene y el envío del dato al procesador. Se tiene dos técnicas para realizar estas acciones:
·         Early restart (reinicio prematuro).- Espera a que llegue la palabra del bloque de información para reenviarla al procesador, evitando el tiempo de espera para que se complete la transferencia del bloque.
·         Critical Word first (primero la palabra critica).- Obliga al siguiente nivel de caché a enviar el dato requerido y luego enviar el bloque completo   
4.       Caché victima.- Es una pequeña caché L2 de tamaño reducido, que guarda los datos desechados más recientemente por L1 antes de ser enviados a la memoria principal.
5.       Caché de tercer nivel (L3).- Todavía poco conocida, realizaría su aparición masiva en caso de que la diferencia entre la memoria principal y la memoria caché agrandaran. Su funcionamiento sería igual que como los anteriores dos niveles de caché, siendo que para las memorias más alejadas del procesador, su tamaño crece pero su velocidad disminuye. El procesador AMD Phenom II ya tiene integrado un caché L3 de 6Mb.
Tipos de conexión de la memoria caché.- Existen dos tipos de conexión de la memoria caché a la CPU:
·         Serie­.- La CPU solo está conectada a la memoria caché, por lo que todas las peticiones que realice se las hace mediante esta, evitando usar el bus del sistema. Si la petición se encuentra ya en la caché la respuesta será en pocos nanosegundos, porque no se usa el bus del sistema, los dispositivos de entrada y salida pueden trabajar tranquilamente permitiendo el paralelismo. La principal desventaja de esta conexión es que cuando la información requerida por la CPU no se encuentra en la memoria caché, ésta tiene que mandar la petición a la memoria principal produciendo una latencia en la respuesta.  


Fig. 5 Modo de funcionamiento de conexión de cache en serie con la CPU.

Fuente: Pino T. I. V. – Jimenez C. J. (2007), La memoria caché en Universidad José Carlos Mariátegui, Arquitectura de computadoras (pp. 2-15 cap. 5), Perú,  Universidad José Carlos Mariátegui

·         Paralelo.- Depende del bus del sistema, cuando la CPU realiza una petición la hace simultáneamente a la caché y a la memoria principal, cuando la información requerida se encuentra en la caché, avisa a la memoria principal para que no continúe la búsqueda, pero si no está en la memoria caché, la búsqueda continua en la memoria principal. A diferencia de la conexión en serie, la caché acá puede ser opcional, si se desea se conecta sino no.

Fig. 6 Modo de funcionamiento de conexión de cache en paralelo con la CPU


Fuente: Pino T. I. V. – Jimenez C. J. (2007), La memoria caché en Universidad José Carlos Mariátegui, Arquitectura de computadoras (pp. 2-15 cap. 5), Perú,  Universidad José Carlos Mariátegui

La memoria caché para poder guardar etiquetas de contenido usa una memoria llamada asociativa, esta puede direccionar palabras por contenido (realizan la búsqueda de información en la operación suministrando a la memoria información para ver si la esta tiene dicha información en alguna de sus posiciones, no realiza la búsqueda por direcciones) y realizar búsquedas en paralelo (realizan comparaciones con todas las palabras en la memoria)
Las memorias caché tienen un tiempo de acceso por debajo de los 30 nanosegundos. Una lógica de control constituida por multiplexores intenta averiguar a qué datos de la memoria principal se va a acceder en los ciclos siguientes; justo antes de necesitarlos estos datos son guardados en la memoria caché para su posterior uso.
La eficiencia de la memoria caché depende de su organización asociativa. El nivel de eficiencia se mide por su lógica de control y su predicción de información a usar, por lo tanto a mejor lógica de control se tendrá una mejor eficiencia.
Memoria principal.-  Son los microcircuitos que se encuentran en la placa madre y puede almacenar definitiva o temporalmente instrucciones, datos, resultados de las operaciones y microprogramas.
Las memorias principales se clasifican en:
·         Memoria ROM (Read Only Memory).- Por sus siglas en inglés, es una memoria de solo lectura, no permite escritura por los medios tradicionales de escritura de la computadora, esta memoria es no volátil (no se borra información si no está alimentada). Se graban programas a estas memorias al momento de su creación y el usuario no puede modificar.
La memoria ROM generalmente viene en DIP (Dual In-line Package)o empaquetamiento de doble línea.
En la tarjeta principal existe la memoria ROM-BIOS (Basic Input and Output System) que como su nombre lo indica es el programa básico de entradas y salidas.
La memoria ROM se divide en:
1.       PROM (Programmable Read Only Memory).- Memoria de solo lectura programable. Estas memorias se las adquiere de sus fabricantes y los usuarios graban programas en ellos con máquinas especiales, una vez grabado, ya no se puede modificar.
2.       EPROM (Erasable Programmable Read Only Memory).- Es una memoria de solo lectura programable y borrable. Para borrar los programas que tiene esta memoria es necesario exponerla a la luz ultravioleta por un tiempo.
3.       EEPROM (Electrically Erasable Programmable Read Only Memory).- Memoria de solo lectura programable y borrable por impulsos eléctricos, los periféricos que usan la tecnología plug and play usan esta memoria para guardar configuración cuando los detectan por primera vez, cuando el sistema operativo se apaga y se vuelve a encender, lee esta memoria y reconoce los periféricos.


Fig. 7 Memoria ROM y su ubicación en la tarjeta madre


·         Memoria RAM (Random Access Memory).- Memoria de acceso aleatorio, es una memoria donde se pueden almacenar datos de forma temporal y luego ser leídas, pueden ser varias veces reescritas. Es una memoria volátil (se pierde la información que guarda si no está alimentada con energía eléctrica). Esta memoria es más rápida que cualquier dispositivo de memoria secundaria ya que no tiene partes móviles, en esta memoria se cargan los programas que se van a ejecutar  y los datos a procesar. Esta memoria se clasifica de acuerdo a su modo de trabajo en:
1.       RAM Dinámica o DRAM (Dynamic Random Access Memory).- A este tipo de memoria le es necesario tener un refresco de su información a sus capacitores cada determinado tiempo, es decir, regrabar la información que guarda, esta operación es automática. Mientras se está en proceso de refrescamiento no se puede tener acceso a la información por eso es que esta memoria es más lenta que la RAM estática, pero consume menos potencia.
·         EDORAM (Extended Data Out Random Access Memory).- Es un tipo de memoria RAM dinámica con la diferencia de que esta memoria, guarda los datos más tiempo que la DRAM, es decir, no necesita refrescamiento tan seguido.
·         Existen otras tecnologías con las memorias RAM como ser: VRAM (Video RAM), WRAM (Window RAM), MDRAM (Multibank RAM), SGRAM (Synchronous Graphics RAM).
2.       RAM Estatica o SRAM (Static Random Access Memory).- No necesita refrescamiento de datos, sus datos permanecen guardados en la memoria mientras exista suministro de energía. Debido a que no necesito refresco, siempre está disponible para el procesador, haciendo de esta memoria más rápida que una DRAM, por lo tanto es más cara, ocupa más espacio y gasta más potencia

Fig. 8 Memoria RAM


Memoria Virtual.- Es una técnica de gestión que nos brinda la capacidad de abrir archivos temporales en el disco duro trabajando como una extensión de la memoria RAM.
Las principales ventajas de usar memoria virtual son:
¨       Permite abrir más programas y no llenar la RAM fácilmente
¨       Puesto que cada programa no ocupa todo su espacio en RAM, se puede elevar el                índice de multiprogramación mejorando la eficiencia
Se tienen dos tipos de gestión de memoria virtual:
§  Paginación.- El programa se divide en bloques de tamaño igual llamados páginas
§  Segmentación.- El programa se divide en bloques de distinto tamaño llamados segmentos  que agrupan elementos afines o funcionalmente dependientes: datos, subrutinas, etc.
Protección de sistema con memoria virtual.- Puesto que cada programa en ejecución tiene su propia tabla de páginas el procesador necesita saber la dirección de la tabla, y para eso las computadoras disponen de un registro base de la tabla de páginas, haciendo que cada proceso tenga su propio espacio de direcciones virtuales. Este mecanismo protege a la memoria y los procesos no dejando que se invadan unos a otros.


Fig. 9 Protección de sistema con memoria virtual, mismo numero de pagina pero diferentes direcciones de tabla

Fuente: García C. F. – Carretero P. J. – García S. J. D. – Expósito S. D. (2009), Problemas resueltos de estructura de computadores, Madrid: España, Editorial Parainfo S. A.
Memoria Secundaria.- Se encuentran en la parte baja de la pirámide de la jerarquía de la memoria, su velocidad es mucho más lenta en comparación a las demás memorias, pero su capacidad de almacenamiento es muy grande. El dispositivo más representativo de la memoria secundaria es el Disco duro
¨       Disco Duro.- Es una unidad de almacenamiento permanente no volátil de gran capacidad donde se guardan los archivos de los programas, emplea un método de grabación de datos magnético, está compuesto por platos o discos que tienen un mismo eje. Cada plato tiene un cabezal para lectura y/o escritura de datos.
La mayoría de los discos duros son fijos, es decir, se encuentran de forma permanente dentro del case o torre, también existen discos duros removibles 


Fig. 10 Disco Duro con sus diferentes partes 



Bibliografía
v  Candela S – Garcia C. R. – Quesada A. – Santana F. J. – Santos J. M. (2007), Fundamentos de Sistemas Operativos: teoría y ejercicios resueltos, Madrid: España, Editorial Parainfo S.A.
v  Duran R. L. (2007), El gran libro del pc interno, Barcelona: España, Editorial Marcombo
v  Ujaldón M. M. (2003), Arquitectura del PC: Volumen I: Microprocesadores, Málaga: España, Editorial Megamultimedia S.L.
v  Pino T. I. V. – Jimenez C. J. (2007), La memoria caché en Universidad José Carlos Mariátegui, Arquitectura de computadoras (pp. 2-15 cap. 5), Perú,  Universidad José Carlos Mariátegui
v  Chu Y. (1975), Organización y microprogramación del ordenador, Barcelona: España, Editorial Reperté S.A.
v  Berral M. I. (2010), Equipos microinformáticos, Madrid: España, Editorial Parainfo S.A.
v  Morris M. (1994), Arquitectura de computadoras, Juárez: México, Editorial Prentice Hall Hispanoamericana S.A.
v  Orozco G. M. A. – Chávez A. M. L – Chávez A. J. (2006), Informática uno, México, Thompson Editores
v  García C. F. – Carretero P. J. – García S. J. D. – Expósito S. D. (2009), Problemas resueltos de estructura de computadores, Madrid: España, Editorial Parainfo S. A.


By: Cesar M. Cabrera Vasquez















No hay comentarios:

Publicar un comentario