domingo, 7 de octubre de 2012

MEMORIA



MEMORIA (JORGE LUJAN)

Jerarquía de memoria
Niveles de la jerarquía de memoria.
Nivel 0: Registros
Nivel 1: Memoria caché
Nivel 2: Memoria Principal
Nivel 3: Disco duro
Registros
Es una memoria de alta velocidad y poca capacidad, esta integrada en el microprocesador y permite guardar y acceder a valores muy usados, por lo general en operaciones matemáticas. Los registros se miden por lo general por el número de bits que almacena. 
Tipos de registros
De datos. Usados para guardar números enteros.
De memoria. Usados para guardar exclusivamente direcciones de memoria.
De propósito general. Pueden guardar tanto datos como direcciones.
De punto flotante. Usados para guardar datos en formato de punto flotante.
De propósito específico. Guardan información específica del estado del sistema.
Memoria caché
Es una memoria rápida y pequeña, situada entre la memoria principal y el microprocesador, especialmente diseñada para contener información que se utiliza con frecuencia en un proceso con el fin de evitar accesos a otras memorias, reduciendo considerablemente el tiempo de acceso al ser más rápida que el resto de la memoria principal.
La memoria caché es una memoria en la que se almacena un serie de datos para su rápido acceso. La memoria caché de un microprocesador es de tipo volátil (del tipo RAM), pero de una gran velocidad. Su objetivo es almacenar una serie de instrucciones y datos a los que el microprocesador accede continuamente, con el fin de que estos accesos sean instantáneos.
La operación básica de caché es: Cuando la CPU necesita accesar memoria, se revisa la caché. Si se encuentra la palabra en cache, se lee de la memoria rápida. Si la palabra direccionada de la CPU no se encuentra en caché, se accesa la memoria principal para leer la palabra. Después, se transfiere un bloque de palabras que contiene la que se acaba de accesar, de la memoria principal a la memoria caché. El tamaño de bloque puede variar de una palabra a cerca de 16 palabras adyacentes a la que se acceso. En esta manera, se trasfieren algunos datos caché para quelas futuras referencias a memoria encuentren la palabra requerida en la memoria rápida caché. Hay tres tipos diferentes de memoria caché para microprocesadores
Caché de 1er nivel (L1)
Integrada en el núcleo del microprocesador, trabajando a la misma velocidad que este. La cantidad de memoria caché L1 varía de un microprocesador a otro, estando normalmente entra los 64KB y los 256KB. Esta memoria suele a su vez estar dividida en dos partes dedicadas, una para instrucciones y otra para datos.
Caché de 2º nivel (L2)
Integrada en el microprocesador, no directamente en el núcleo, es algo más lenta que la caché L1.La caché L2 suele ser mayor que la caché L1, pudiendo llegara superar los 2MB.Utilización está más encaminada a programas que al sistema.
Caché de 3er nivel (L3)
Es un tipo de memoria caché más lenta que la L2, muy poco utilizada en la actualidad. En un principio esta caché estaba incorporada a la placa base, no al microprocesador, y su velocidad de acceso era bastante más lenta que una caché de nivel 2 o 1, ya que si bien sigue siendo una memoria de una gran rapidez (muy superior a la RAM, y mucho más en la época en la que se utilizaba),depende de la comunicación entre el microprocesador y la placa base.


Composición interna
La memoria caché está estructurado por celdas, donde cada celda almacena un byte. La entidad básica de almacenamiento la conforman las filas, llamados también líneas de caché. Cuando se copia o se escribe información de la RAM por cada movimiento siempre cubre una línea de caché. La memoria caché tiene incorporado un espacio de almacenamiento llamado Tag RAM, que indica a qué porción de la RAM se halla asociada cada línea de caché, es decir, traduce una dirección de RAM en una línea de caché concreta
Memoria principal
Son circuitos integrados capaces de almacenar información digital, a los que tiene acceso el microprocesador del equipo de computación. Poseen una menor capacidad de almacenamiento que la memoria secundaria, pero una velocidad millones de veces superior. La memoria principal esta divida en:
Memoria ROM
Memoria de sólo lectura (Read Only Memory) son utilizadas como medio de almacenamiento de datos en las computadoras. En ella no se puede escribir y conserva intacta la información almacenada, incluso en el caso de que se interrumpa la corriente (memora no volátil).La ROM suele almacenar la configuración del sistema o el programa de arranque de la computadora. Uso principal reside en la distribución de programas que estén estrechamente ligados al soporte físico de la computadora, y que seguramente no necesita actualización. La memoria RAM normalmente es más rápida para lectura que la mayoría de las memorias ROM, por lo tanto el contenido ROM se suele traspasar normalmente a la memoria RAM cuando se utiliza
El software de la ROM se divide en dos partes
Rutina de arranque
Realiza el chequeo de los componentes de la computadora por ejemplo circuitos controladores de video, de acceso a memoria, el teclado, unidades de disco. Se encarga de determinar cuál es el hardware que está presente y de la puesta a punto de la computadora. Mediante un programa de configuración, el SETUP, lee una memoria llamada CMOS RAM (RAM de Semiconductor de óxido metálico). Ésta puede mantener su contenido durante varios años, aunque la computadora está apagada, con muy poca energía eléctrica suministrada por una batería, guarda la fecha, hora, la memoria disponible, capacidad de disco rígido, si tiene disquetera o no. Se encarga en el siguiente paso de realizar el booteo(arranque): lee un registro de arranque 'BR' (Boot Record) del disco duro o de otra unidad (como CD, USB, etc), donde hay un programa que carga el sistema operativo a la RAM. A continuación cede el control a dicho sistema operativo y el ordenador queda listo para trabajar.
Rutina BIOS
Sistema básico de entrada salida (Basic inputoutput system): permanece activa mientras se está usando la PC. Permite la activación de los periféricos de entrada/salida: teclado, monitor, etc.
Memoria RAM
La memoria de acceso aleatorio, o memoria de acceso directo (Random Access Memory).Se compone de uno o más chips y se utiliza como memoria de trabajo para programas y datos. Es un tipo de memoria temporal que pierde sus datos cuando se queda sin energía (al apagar la computadora),por lo cual es una memoria volátil. Se trata de una memoria de semiconductor en la que se puede tanto leer como escribir información. Se utiliza normalmente como memoria temporal para almacenar resultados intermedios y datos similares no permanentes. Se dicen "de acceso aleatorio" o "de acceso directo" porque los diferentes accesos son independientes entre sí.
La RAM se dividen en:
Estáticas: mantiene su contenido inalterado mientras esté alimentada.
Dinámica: la lectura es destructiva, es decir que la información se pierde al leerla, para evitarlo hay que restaurar la información contenida en sus celdas, operación denominada refresco.
Memoria virtual
Es un concepto que permite al software usar más memoria principal que la que realmente posee el ordenador. Muchas aplicaciones requieren el acceso a más información (código y datos) que la que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal cuando sea necesario. Aunque la memoria virtual podría estar implementada por el software del sistema operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría para el microprocesador
Operación básica
Cuando se usa Memoria Virtual, o cuando una dirección es leída o escrita por la CPU, una parte del hardware dentro de la computadora traduce las direcciones de memoria generadas por el software(direcciones virtuales) en:
•La dirección real de memoria (la dirección de memoria física): la referencia a la memoria es completada, como si la memoria virtual no hubiera estado involucrada: el software accede donde debía y sigue ejecutando normalmente.
•Una indicación de que la dirección de memoria deseada no se encuentra en memoria principal (llamado excepción de memoria virtual): el sistema operativo es invocado para manejar la situación y permitir que el programa siga ejecutando o aborte según sea el caso. La memoria virtual es una técnica para proporcionar la simulación de un espacio de memoria mucho mayor que la memoria física de una máquina. Esta "ilusión" permite que los programas se ejecuten sin tener en cuenta el tamaño exacto de la memoria física
La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real y el resto almacenado en el disco, y puede ser referenciado fácilmente
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los sistemas operativos actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener más procesos en la memoria. Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cómo gestionar este esquema


Bus
Conjunto de líneas de señal que enlaza la CPU, la memoria y los periféricos de Entrada y Salida, permitiendo la transferencia de información entre ellos. El funcionamiento a través de un dispositivo debe obtener el uso del bus y transferir el dato a través del bus, todo ello siguiendo un determinado protocolo
Ciclo de bus. Tiempo necesario para realizar una transferencia elemental de un dato entre dos dispositivos
Anchura del bus. Numero de líneas de datos en el bus
Anchura de banda del bus. Parámetro que expresa el máximo numero de elementos de información (bytes) que se pueden transmitir por el bus en unidad de tiempo
Protocolo del bus. Pautas que tienen que seguir los dispositivos conectados al bus para lograr una comunicación correcta
Jerarquía de buses
o   Bus interno. Comunicación interna dentro de la CPU
o   Bus del procesador. Fundamentalmente, comunicación entre la CPU y la cache externa
o   Bus local. Buses para la conexión procesador DRAM y dispositivos de E/S con altas prestaciones. Pueden ser buses de carácter general, como el PCI, o dedicados como IDE, SCSI, AGP, USB
o   Bus de expansión. Conexión entre dispositivos de E/S con menores prestaciones como los módems, fax, puerto serie, etc.
o   Bus del sistema. Conexión entre distintos sistemas procesador que forman un mismo sistema.


Protocolos de transmisión
o   Protocolo síncrono. Fácil de implementar, pero con poca flexibilidad (dispositivos con diferentes velocidades). Buses cortos. Mayor ancho de banda.
o   protocolo asíncrono. Permite adaptar la transferencia a la velocidad del dispositivo, compagina dispositivos lentos y rápidos.
EJEMPLO DE ALGUNOS BUSES COMERCIALES
o   Bus ISA, EISA, MCA. Industry Standard Architecture, Extended Chanel Adapter, Micro Chanel Adapter
o   Bus PCI. Peripheral Component Interconnect
o   Bus AGP. Accelerated Graphics Port
o   Bus IDE. Integrated Drive Electronics
o   Bus SCSI. Small Computer System Interface
o   Bus SATA. Serial ATA
o   Bus Serial Attached SCSI
o   Buses USB (Universal Serial Bus)
o   Bus PCMCIA. Personal Computer Memory Card International Association
o   Bus VME. Versa Module Europe



UNIDAD CENTRAL DE PROCESAMIENTO
También llamada CPU, la unidad central de procesamiento se encarga de realizar todos los cálculos matemáticos que se requieren para que un ordenador pueda funcionar correctamente.
La unidad central de procesamiento esta compuesta de esta manera:
Memoria
Unidad aritmética lógica
Unidad o procesador de control
Memoria
Se almacenan datos y programas, hay dos operaciones que se hacen en la memoria y son leer y escribir, entonces se dice que es donde almacena, se lee y se escribe. Es un conjunto de células numeradas y dos registros especiales con los que realiza su trabajo.
UNIDAD ARITMETICA LOGICA
Esta unidad opera los datos que recibe siguiendo las indicaciones por la unidad de control. Esta unidad puede realizar operaciones aritméticas lógicas, por ejemplo el de realizar la suma. La forma en que realiza la suma es la siguiente:
1.       Se debe tener el código de operación que indique la operación a efectuar en este caso el código de suma
2.       Dirección de la celula en la que se encuentra almacenado el primer sumando
3.       Dirección del segundo sumando
4.       Dirección de la celula en la que se almacena el resultado
Instrucciones para efectuar la suma.
1.       Cargar el primer operando en el acumulador
2.       Sumar el segundo operando con el contenido del acumulador
3.       Cargar el contenido del acumulador en la dirección del resultado
Unidad de control
La unidad de control es el autentico cerebro que controla y coordina el funcionamiento de la computadora. A raíz de la interpretación delas instrucciones que integran el programa esta unidad genera el conjunto de ordenes elementales necesarias para que se realice la tarea necesitada.
Pasos para la unidad de control.
1.       Se extrae de la memoria principal la instrucción a ejecutar esa información es almacenada en el contador de instrucciones, la información que se almacena es la próxima instrucción a ejecutar en el registro de instrucción propiamente dicha.
2.       Una vez conocido el código de la operación la unidad de control ya sabe que circuitos de la ALU deben de intervenir pueden establecerse las conexiones eléctricas necesarias a través del secuenciador
3.       Extrae de la memoria principal los datos necesarios para ejecutar la instrucción en proceso
4.       Ordena la ALU que efectúa las operaciones el resultado de este es depositado en el acumulador de la ALU
5.       Si la instrucción a proporcionado nuevos datos estos son almacenados en la memoria principal  
6.       Incrementa en una unidad el contenido del contador de instrucciones a ejecutar

DMA
Acceso directo a memoria (DMA) permite a cierto tipo de componentes del ordenador acceder a la memoria del sistema para leer o escribir independientemente de la CPU principal. Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas graficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicies la transferencia, la transferencia se lleva acabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna mas rápida. Tal operación no ocupa el procesador y como resultado puedes ser planificado para efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieras muchos recursos.
 


Bibliografía
Acceso directo a la memoria http://es.scribd.com/doc/76550644/dma
Conexión entre subsistemas http://es.scribd.com/doc/96604304/Buses
 




No hay comentarios:

Publicar un comentario