Memoria M. en C. Erika Vilches Parte 1 Clasificación por sus Características • Memoria interna → Principal (RAM y ROM), registros, memoria de la unidad de control, cache. • Memoria externa: Dispositivos periféricos de almacenamiento (discos, cintas, etc.) • Capacidad • Memorias internas → expresada en términos de bytes o palabras. Longitudes de palabra comunes: 8, 16 y 32 bits. • Memorias externas → expresada en términos de bytes • Unidad de transferencia → Para memorias internas, es igual al número de líneas de entrada/salida de datos del módulo de memoria. Conceptos Relacionados a la Memoria Interna • Palabra → Unidad “natural” de organización de memoria. • Unidades direccionables → Puede ser la palabra o a nivel de bytes. La relación entre la longitud A de una dirección y el número N de unidades direccionables es 2^A = N. • Unidad de transferencia • Memoria principal → El número de bits que se leen o escriben en memoria a la vez. • Memoria externa → Los datos que se transfieren en unidades más grandes llamadas bloques. Métodos de Acceso • Secuencial → El acceso debe realizarse con una secuencia lineal específica. El tiempo necesario para acceder a un registro dado es muy variable. Ejemplo: Cintas • Directo → Los registros o bloques tienen una dirección única basada en su dirección física. El acceso es directo a una vecindad dada. El tiempo de acceso es variable. Ejemplo: Unidades de disco • Aleatorio (random) → Cada posición direccionable de memoria tiene un único mecanismo de acceso cableado físicamente. El tiempo para acceder a una posición dada es constante e independiente de la secuencia de accesos previos. Ejemplo: Memoria principal y algunos sistemas de caché • Asociativa → Del tipo de acceso aleatorio que permite hacer una comparación de posiciones de bits dentro de una palabra buscando que coincidan con unos valores dados, y hacer esto para todas las palabras simultáneamente. Una palabra se recupera basándose en una porción de su contenido en lugar de su dirección. Cada posición tiene su propio mecanismo de direccionamiento. El tiempo de recuperación de un dato es constante, independiente de la posición o de los patrones de acceso anteriores. Ejemplo: Memorias caché. Desempeño • • Tiempo de acceso (latencia) • Acceso aleatorio: El tiempo que tarda en realizarse una operación de escritura o de lectura. • Para memorias de otro tipo: El tiempo que se tarda en situar el mecanismo de lectura/escritura en la posición deseada. Tiempo de ciclo de memoria → El tiempo de acceso y algún tiempo más que se requiere antes de que pueda iniciarse un segundo acceso a memoria. • Velocidad de transferencia → La velocidad a la que se pueden transferir datos a, o desde, una unidad de memoria. Para memorias de acceso aleatorio coincide con el inverso del tiempo de ciclo. Características Físicas • Volátiles → La información desaparece cuando se desconecta la alimentación. • No volátiles → La información, una vez grabada, permanece sin deteriorarse hasta que se modifique intencionalmente. No necesita la fuente de alimentación para retener la información. • Las memorias de superficie magnética son no volátiles. • Las memorias semiconductoras pueden ser volátiles o no volátiles. • Las memorias no borrables no pueden modificarse, salvo que se destruya la unidad de almacenamiento → Memorias de solo lectura (ROM, Read Only Memory). Las memorias de este tipo son no volátiles. Organización • Disposición o estructura física en bits para formar palabras. Restricciones de Diseño • ¿Cuánta capacidad? ¿Qué tan rápida? ¿A qué precio? • Tamaño → Si consigues cierta capacidad, probablemente se desarrollaran aplicaciones que la utilicen. • Rapidez → Debe seguir al procesador (desempeño óptimo). • Costo → Debe ser razonable con relación a los otros componentes. Siempre se cumple: • A menor tiempo de acceso, mayor el costo por bit. • A mayor capacidad, menor el costo por bit. • A mayor capacidad, mayor tiempo de acceso. Dilema del diseñador • El diseñador desearía utilizar tecnologías que proporcionen gran capacidad, sin embargo... • Para satisfacer el desempeño requerido, el diseñador necesita memorias costosas, de capacidad relativamente baja, y con tiempos de acceso reducidos. • La solución a este dilema → Utilizar una jerarquía de memoria. • Cuando se desciende en la jerarquía: a) Disminuye el costo por bit. b) Aumenta la capacidad. c) Aumenta el tiempo de acceso. d) Disminuye la frecuencia de accesos a la memoria por parte del procesador. Localidad de las Referencias • A la condición d) se le llama localidad de las referencias • Durante la ejecución de un programa, las referencias a memoria por parte del procesador, tienden a estar agrupadas (ciclos iterativos, subrutinas...) • Cada vez que se entra en un ciclo o subrutina, hay repetidas referencias a un conjunto pequeño de instrucciones (localidad temporal). • Las operaciones con tablas o matrices conllevan accesos a un conjunto de palabras de datos agrupadas (localidad espacial, direcciones cercanas). • En periodos de tiempo largos, las agrupaciones cambian, pero en periodos cortos el procesador trabaja principalmente con agrupaciones fijas de referencias a memoria. • Hit → El dato está en algún bloque en el nivel superior (ejemplo: Bloque X) Hit Rate: Fracción de los accesos a memoria que son hit Hit Time: Tiempo para acceder el nivel superior que consiste en: tiempo de acceso de RAM + Tiempo para determinar hit/miss Miss: el dato necesita ser traído de un bloque en el nivel bajo (Bloque Y) Miss Rate = 1 - (Hit Rate) Miss Penalty: Tiempo para reemplazar un bloque en el nivel superior+ Tiempo para llevar el bloque al procesador Hit Time << Miss Penalty • •