Índice Índice ............................................................................................................................... 1 Jerarquía de memorias .................................................................................................. 2 Principio de localidad ............................................................................................... 4 Localidad Temporal .............................................................................................. 4 Localidad Espacial ................................................................................................. 4 Localidad de Referencia........................................................................................ 4 Registros ...................................................................................................................... 4 Memoria caché ........................................................................................................... 5 Objetivos memoria Cache:.................................................................................... 6 Operación de caché:............................................................................................... 7 Desempeño de una memoria caché .................................................................... 7 Desempeño de una memoria caché .................................................................... 7 Memoria principal ..................................................................................................... 7 1. Read Only Memory (ROM) .......................................................................... 7 2. Random Access Memory (RAM)................................................................. 8 Disco Duro .................................................................................................................. 9 Características de un disco duro ......................................................................... 9 Menoría virtual ........................................................................................................ 10 Conclusión ................................................................................................................ 12 Bibliografía................................................................................................................ 13 1 Jerarquía de memorias Registros Memoria Caché Memoria Principal Discos Se conoce como jerarquía de memoria a la organización piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basándose en el principio de cercanía de referencias. 2 Los puntos básicos relacionados con la memoria pueden resumirse en: Cantidad Velocidad Coste La cuestión de la cantidad es simple, cuanto más memoria haya disponible, más podrá utilizarse. La velocidad óptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre cálculo y cálculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible. Como puede esperase los tres factores compiten entre sí, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son válidas: A menor tiempo de acceso mayor coste A mayor capacidad menor coste A mayor capacidad menor velocidad. Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria más rápida. 3 Los niveles que componen la jerarquía de memoria habitualmente son: Nivel 0: Registros Nivel 1: Memoria caché Nivel 2: Memoria principal Nivel 3: Disco duro (con el mecanismo de memoria virtual) Principio de localidad Por qué funciona un sistema jerárquico? ● Localidad de referencia – Localidad Temporal ● Se hace referencia a la misma dirección de memoria repetidamente durante un cierto tiempo – Localidad Espacial ● Durante ese mismo tiempo se hace referencia a direcciones vecinas. ● Observaciones empíricas – Significativo! – Aún un espacio pequeño de almacenamiento local (8KB) con frecuencia satisface >90% de las referencias a un conjunto de datos o de instrucciones que ocupe varios MB Localidad Temporal (localidad en el tiempo): si se hace referencia a un objeto (instrucción o dato), existirá la tendencia de que sea referido nuevamente en un próximo momento. Localidad Espacial (localidad en el espacio): Si un objeto es referido, habrá la tendencia de que los objetos cercanos a él también sean referidos en un próximo momento. Localidad de Referencia: Durante el curso de ejecución de un programa, las referencias a memoria tienden a agruparse. Ejemplo. Lazos (loops) Registros - Registros de procesador: Estos registros interaccionan continuamente con la CPU (porque forman parte de ella). Los registros tienen un tiempo de acceso muy pequeño y una capacidad mínima, normalmente igual a la palabra del procesador (1 a 8 bytes). - Registros intermedios: Constituyen un paso intermedio entre el procesador y la memoria, tienen un tiempo de acceso muy breve y muy poca capacidad. 4 Memoria caché Son memorias de pequeña capacidad. Normalmente una pequeña fracción de la memoria principal. Y pequeño tiempo de acceso. Este nivel de memoria se coloca entre la CPU y la memoria central. Hace algunos años este nivel era exclusivo de los ordenadores grandes pero actualmente todos los ordenadores lo incorporan. Dentro de la memoria caché puede haber, a su vez, dos niveles denominados caché on chip, memoria caché dentro del circuito integrado, y caché on board, memoria caché en la placa de circuito impreso pero fuera del circuito integrado, evidentemente, por razones físicas, la primera es mucho más rápida que la segunda. Existe también una técnica, denominada Arquitectura Harvard, en cierto modo contrapuesta a la idea de Von Newmann, que utiliza memorias caché separadas para código y datos. Memoria caché es un banco de memoria especial, a diferencia de la caché de disco, que es una parte de la memoria RAM del ordenador. Es una memoria muy rápida, de tipo RAM estática (SRAM), cuyos chips tienen un tiempo de acceso entre cinco y seis veces menor que la RAM dinámica (DRAM), que se utiliza habitualmente como memoria principal. Su precio es mucho mayor que el de la RAM. Existen dos niveles de memoria caché: la L1 o interna, un banco de memoria que está dentro del chip de la CPU, y la L2 o externa, que puede estar dentro de ese chip o en un chip aparte. La L2 alimenta a la L1 y puede acelerar la ejecución de determinadas aplicaciones, pero no de otras, ya que depende de su diseño. 5 Capacidad de 8KB a 2MB, tiempos de acceso de 2 a 20 nanosegundos y tipo de acceso palabra. Objetivos memoria Cache: Lograr que la velocidad del sistema de memoria sea lo más rápida posible, consiguiendo al mismo tiempo una gran capacidad al precio de las memorias menos costosas. Mantener el tiempo de acceso promedio a la memoria pequeño. Reducir el ancho de banda entre memoria principal y procesador. 6 Operación de caché: La dirección generada por el procesador es comparada por los datos que están almacenadas en la caché, si el dato esta presente, el procesador lo lee desde la caché, si el dato no esta presente, se trasfiere de la memoria principal a la caché. Desempeño de una memoria caché Desempeño de una memoria caché La caché reduce la latencia promedio de la memoria – Si el valor requerido está en la caché se le llama “acierto” – El valor requerido y no encontrado se carga después de una “falla” – La jerarquía de memoria está diseñada para minimizar la latencia promedio Memoria principal La 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. En las computadoras son utilizados dos tipos de estos dispositivos: 1. Read Only Memory (ROM), memoria de solo lectura, almacena códigos de programa grabados en fábrica, a veces protegidos por derechos de autor. El CI donde se almacena el BIOS de la computadora, es una memoria ROM. 7 a) ROM programadas por máscara, cuya información se graba en fábrica y no se puede modificar. b) PROM, o ROM programable una sola vez. c) EPROM (erasable PROM) o RPROM (reprogramable ROM), cuyo contenido puede borrarse mediante rayos ultravioletas para regrabarlas. d) EAROM (electrically alterable ROM) o EEROM (electrically erasable ROM), que son memorias que está en la frontera entre las RAM y las ROM ya que su contenido puede regrabarse por medios eléctricos, estas se diferencian de las RAM en que no son volátiles. En ocasiones a este tipo de memorias también se las denomina NYRAM (no volátil RAM). e) Memoria FLASH, denominada así por la velocidad con la que puede reprogramarse, utilizan tecnología de borrado eléctrico al igual que las EEPROM. Las memorias flash pueden borrar-e enteras en unos cuantos segundos, mucho más rápido que las EPROM. 2. Random Access Memory (RAM), memoria de acceso aleatorio, almacena datos que pueden ser escritos y borrados atendiendo a los procesos de computación. "Aleatorio" indica que sus localidades pueden ser accedidas directamente, dando rapidez a los procesos; a diferencia de las memorias secuenciales, en las que para llegar a una posición hay que pasar antes por las posiciones previas. El microprocesador direcciona las posiciones de la RAM para poder acceder a los datos almacenados en ellas y para colocar los resultados de las operaciones. El bloque RAM, los de ROM y los discos de almacenamiento masivo de datos conforman el subsistema de memoria de una CPU. - Extensiones de memoria central: Son memorias de la misma naturaleza que la memoria central que amplían su capacidad de forma modular. El tiempo de similar, a lo sumo un poco mayor, al de la memoria central y su capacidad puede ser algunas veces mayor. - Memorias de masas o auxiliares: Son memorias que residen en dispositivos externos al ordenador, en ellas se archivan programas y datos para su uso posterior. También se usan estas memorias para apoyo de la memoria central en caso de que ésta sea insuficiente (memoria virtual). Estas memorias suelen tener gran capacidad pero pueden llegar a tener un tiempo de acceso muy lento. Dentro de ellas también se pueden establecer varios niveles de jerarquía. 8 Disco Duro Es una unidad fija de almacenamiento magnético de la información. Es un disco metálico (normalmente de aluminio) recubierto con una capa de material magnetizable por sus dos caras (usualmente níquel u oxido de hierro). Pueden existir varios discos ensamblados de forma concéntrica. Cada disco está dividido de forma lógica en pistas, sectores y clusters. Pistas: Son círculos concéntricos, en los cuales se divide a nivel lógico un disco. Cilindros: Formados por el número total de pistas que ocupan la misma región en todos los platos. Sectores: Constituye las unidades mínimas de información a nivel de las cuales se realiza la lectura o escritura en un disco duro (256, 512 ó 1024 bytes). Cluster: Agrupación de varios sectores para formar una unidad de asignación. Características de un disco duro Las características que se deben tener en cuenta en un disco duro son: Tiempo medio de acceso: Tiempo medio que tarda en situarse la aguja en el cilindro deseado; es la suma de la Latencia y el Tiempo medio de Búsqueda. Tiempo medio de Búsqueda (seek): Es la mitad del tiempo que tarda la aguja en ir de la periferia al centro del disco. Latencia: Tiempo que tarda el disco en girar media vuelta, que equivale al promedio del tiempo de acceso (tiempo medio de acceso). Una vez que la aguja del disco duro se sitúa en el cilindro el disco debe girar hasta que el dato se sitúe bajo la cabeza; el tiempo en que esto ocurre es, en promedio, el tiempo que tarda el disco en dar medio giro; por este motivo la latencia es diferente a la velocidad de giro, pero es aproximadamente proporcional a ésta. Tiempo de acceso máximo: Tiempo máximo que tarda la aguja en situarse en el cilindro deseado. Es el doble del Tiempo medio de acceso. 9 Tiempo pista a pista: Tiempo de saltar de la pista actual a la adyacente. Tasa de transferencia: Velocidad a la que puede transferir la información al ordenador. Puede ser velocidad sostenida o de pico. Caché de pista: Es una memoria de estado sólido, tipo RAM, dentro del disco duro de estado sólido. Los discos duros de estado sólido utilizan cierto tipo de memorias construidas con semiconductores para almacenar la información. El uso de esta clase de discos generalmente se limita a las supercomputadoras, por su elevado precio. Interfaz: Medio de comunicación entre el disco duro y el ordenador. Puede ser IDE/ATA, SCSI, SATA, USB o Firewire. Velocidad de rotación: Número de revoluciones por minuto del/de los plato/s. Ejemplo: 7200rpm. Menoría virtual Como la memoria virtual se mapea a la memoria física. La Memoria virtual es un concepto que permite al software usar más memoria principal que la que realmente posee el computador. La mayoría de los computadores tienen cuatro tipos de memoria: registros en la CPU, la memoria cache (tanto dentro como fuera del CPU), la memoria física (generalmente en 10 forma de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro que es mucho más lento, pero también más grande y barato. Muchas aplicaciones requieren el acceso a más información (código y datos) que la que puede ser mantenida en memoria física. Esto es especialmente cierto cuando el sistema operativo permite múltiples procesos y aplicaciones corriendo 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. Hay varias formas de hacer esto. Una opción es que la aplicación misma sea responsable de decidir qué información será guardada en cada sitio (segmentación), y de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implementación de cada programa, es que es muy probable que los intereses sobre la memoria de dos o varios programas generen conflictos entre sí: cada programador podría realizar su diseño tomando en cuenta que es el único programa corriendo en el sistema. La alternativa es usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo hace uso de la memoria principal y la secundaria para hacer parecer que la computadora tiene mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a los procesos. La cantidad de memoria máxima que se puede hacer ver que existe tiene que ver con las características del procesador. Por ejemplo, en un sistema de 32 bits, el máximo es 232, lo que da aproximadamente 4000 Megabytes (4 Gigabytes). Todo esto hace el trabajo del programador de aplicaciones mucho más fácil, al poder ignorar completamente la necesidad de mover datos entre los distintos espacios de memoria. Aunque la memoria virtual podría ser implementada por software del sistema operativo, en la práctica casi universalmente se usa una combinación de hardware y software, dado el esfuerzo extra que implicaría ello para el procesador. 11 Conclusión La jerarquía de memoria trata de obtener mejores resultado de manera que los procesos sean más rápidos aumentando el rendimiento de memoria del sistema, esto quiere decir que el usuario tenga menor tiempo de espera al ejecutar varios procesos, se intenta que este rendimiento sea lo mas parecido posible al del nivel más rápido. Como el nivel más rápido de todo el sistema después del procesador es la memoria caché, el diseño de las otras partes del sistema de memoria, tales como la memoria principal y la virtual, debe realizarse de tal forma que aumente el rendimiento de la misma, para ello se buscan organizaciones de las distintas partes de la jerarquía que permitan reducir la penalización y el tiempo de acierto de la caché esto se debe Gracias a un principio llamado cercanía de referencias, es factible utilizar una mezcla de los distintos tipos de referencias y lograr un rendimiento cercano al de la memoria más rápida. 12 Bibliografía http://es.wikipedia.org/wiki/Jerarqu%C3%ADa_de_memoria http://www.mailxmail.com/curso/informatica/arquitecturaordenadores/c apitulo5.htm http://www.dirinfo.unsl.edu.ar/~arquill/material/octava%20_teor%EDa.p df http://bioinfo.uib.es/~joemiro/teach/infAl/ciclo4/guardia.PDF http://iteso.mx/~miguelbaz/cursos/arqcomp200508/presentaciones/memorganization.pdf 13