0% encontró este documento útil (0 votos)
14 vistas64 páginas

Cap 4

Cutipa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas64 páginas

Cap 4

Cutipa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CAPÍTULO 04

Alumnos:
Arapa Galdos, David Moisés
Chacón Flores, Rubén
Machaca Pérez

Garci Taco Dennis Alejandro
ACCESO AL SISTEMA DE
MEMORIA

Para que se puedan aprovechar las prestaciones que


ofrece un procesador es necesario que pueda acceder
de forma eficaz a las instrucciones y a los datos
ACCESO AL SISTEMA DE MEMORIA
El acceso al sistema de memoria en una arquitectura de computadoras se refiere al proceso
mediante el cual la CPU interactúa con la memoria para leer o escribir datos. Esto involucra varios
componentes:
1. Memoria principal (RAM): Almacena temporalmente los datos y programas que la CPU necesita
ejecutar.
2. Controlador de memoria: Coordina las solicitudes de acceso a la memoria, asegurando que la
CPU acceda correctamente a las direcciones de memoria solicitadas.
3. Bus de direcciones y de datos: El bus de direcciones transporta la ubicación específica de los
datos en la memoria, mientras que el bus de datos transporta la información leída o escrita.
4. Jerarquía de memoria: Incluye cachés, memoria principal, y almacenamiento secundario. Las
memorias más rápidas (como caché) se utilizan para reducir el tiempo de acceso a datos usados
frecuentemente.
El acceso a la memoria sigue el ciclo de lectura/escritura, donde la CPU solicita una dirección, el
controlador de memoria obtiene o almacena el dato en esa ubicación, y la CPU recibe el dato o
confirma la operación de escritura.
Acceso Eficiente a Memoria en Procesadores Superescalares:

1. Requerimientos de acceso a memoria:


Para que un procesador rinda al máximo, necesita acceder eficientemente a instrucciones y datos en cada
ciclo.
En procesadores superescalares, se capturan varias instrucciones en un solo ciclo, además de acceder a
memoria para leer o escribir datos.
2. Ejemplo de Procesador:
Procesador que capta 4 instrucciones por ciclo.
Frecuencia de operación: 1 GHz (1 ciclo = 1 nanosegundo).
Tamaño de palabra: 32 bits.
Ancho de banda requerido para instrucciones:
4 instrucciones/ciclo x 32 bits = 128 Gbits/s = 16 Gbytes/s.
3. Acceso a datos:
En promedio, cada ciclo genera aproximadamente 1,78 accesos a datos (lectura/escritura).
Por tanto, se requieren otros 8 Gbytes/s para acceder a datos en memoria.
Ancho de banda total: 16 Gbytes/s (instrucciones) + 8 Gbytes/s (datos) = 24 Gbytes/s.
4. Limitaciones de la memoria:

Con buses de 128 bits (16 bytes), la memoria debe entregar datos cada 0,67 nanosegundos para
mantener el ritmo.
Memorias DRAM actuales no pueden cumplir con esta velocidad, ya que su tiempo de acceso es
mayor que el tiempo de ciclo del procesador.

Hay un desajuste entre la velocidad de los procesadores modernos y las capacidades de las memorias
actuales, lo que limita el rendimiento.
Crecimiento Desigual entre Procesadores y Memoria DRAM

1. Crecimiento del rendimiento de los procesadores:


Los procesadores han seguido un crecimiento exponencial conforme a la Ley de Moore.
El rendimiento de los procesadores ha crecido a un ritmo del 55% anual, mientras que en los
años 80 era del 35%.
2. Ritmo de mejora de la memoria DRAM:
A diferencia de los procesadores, el tiempo de acceso a la memoria DRAM (memoria principal)
solo mejora un 10% anual.
Ejemplo comparativo:
Un PC/XT de 1982 con procesador 8088 y un PC con Pentium Pro de 1995.
El Pentium Pro era 900 veces más rápido y tenía 64 veces más memoria, pero el tiempo de
acceso a memoria solo mejoró 10 veces.
3. El "Gap de Memoria":
A partir de los días del 486, la diferencia entre el tiempo de ciclo del procesador y la latencia de
la memoria ha aumentado anualmente en un factor de 6 veces (factor de 5.6).
Esta diferencia creciente entre la velocidad del procesador y la memoria se denomina
discontinuidad o "memory gap".
Prestaciones del sistema de memoria:

Ancho de banda (throughput): Número de bytes transferidos por unidad de


tiempo. Es crucial para mantener el ritmo de los procesadores.

Latencia: Tiempo que transcurre desde que el procesador inicia un acceso a


la memoria hasta que el dato está disponible.

Aunque los procesadores han mejorado drásticamente, la memoria DRAM no


ha seguido el mismo ritmo. Este desajuste, conocido como el gap de memoria,
es un reto continuo en el diseño de sistemas eficientes.
Optimización del Acceso a Memoria

Factores que influyen en el rendimiento de la memoria:


Ancho de banda: Depende del tiempo de ciclo de la memoria, el número de bits transferidos por
acceso y la velocidad y anchura de los buses que conectan el procesador con la memoria.
Latencia: Está determinada por el tiempo de acceso a los chips de memoria y los retardos en la
conexión entre el procesador y la memoria (sincronización, arbitraje de buses).

Estrategias para reducir la latencia:


Implementación de técnicas en el procesador para tolerar los retardos de la memoria:
Planificación dinámica de instrucciones.
Adelantamiento de instrucciones de carga y almacenamiento.
Accesos especulativos a memoria.
Procesamiento multihebra (multithreading).

Mejora en la organización del sistema de memoria:


El sistema de memoria se organiza en una jerarquía de niveles.
Los niveles más cercanos al procesador están hechos con tecnologías más rápidas y costosas
(pero con menor capacidad), como SRAM (memoria caché).
La caché on-chip y off-chip se usa para reducir la latencia de acceso a los datos.
Niveles de caché en procesadores Alpha:
La caché puede tener hasta tres niveles (L1, L2, L3), con tecnologías más rápidas que la memoria
DRAM pero más costosas en términos de hardware y consumo de energía.
Caché separada para datos (D-caché) e instrucciones (I-caché), o unificada en un solo bloque.

Rendimiento del sistema de memoria:


Tres factores determinan el rendimiento:
i. Eficacia de la jerarquía de memoria.
ii. Organización del bus de memoria.
iii. Prestaciones de la memoria DRAM.

Técnicas para mejorar la memoria:


Varios niveles de caché.
Accesos a memoria no bloqueantes.
Entrelazado de memoria.
Sistemas de interconexión de alta velocidad.

Conclusión:
Para equilibrar la diferencia de rendimiento entre el procesador y la memoria (gap de memoria), es necesario
optimizar tanto las estrategias del procesador como la organización de la jerarquía de memoria. El uso de
cachés, buses eficientes y tecnologías como SRAM mejora el acceso y reduce la latencia, mientras que la
DRAM sigue siendo un desafío.
4.
2. CIRCUITOS DE MEMORIA - TIPOS
Clasificación, existen 2 tipos de memorias de semiconductor que
pueden utilizarse para configurar las memorias en el computador.
Celdas
Tipo (circuito que almacena el
estado de 1 bit)

SRAM(Static Random Access Memory) Biestable

DRAM(Dinamic Random Access Memory) 1 transistor-


2. CIRCUITOS DE MEMORIA - COMPARACION
Diferencias entre complejidad, capacidad, consumo ,coste y velocidad

Tipo Complejidad Capacidad Consumo-Coste Velocidad

SRA Mayor(6
Menor Mayor Mayor
M transistores/bit)

DRA Menor(1
Mayor Menor Menor
M transistores/bit)
2. CIRCUITOS DE MEMORIA
Debido a la necesidad de disponer de una memoria principal con
capacidad suficientemente grande y unos costes y niveles
aceptables, la memoria de los computadores se configura a partir
de las memorias DRAM

Configur Misma
Coste por bit Tiempo de acceso
acion capacidad

SRAM x16 chips 8-16 veces mayor menor

DRAM x chips menor 8-16 veces mayor


2. CIRCUITOS DE MEMORIA - DIAGRAMAS DE BLOQUES

Inicialmente los costes


de fabricación estaban
dominados por el
número de terminales
del circuito integrado
de memoria, los pines
para la dirección en
memorias DRAM
estaban multiplexados
(a más cantidad de
celdas en los circuitos
son necesarias más
lineas de direcciones)
2. CIRCUITOS DE MEMORIA - DIAGRAMAS DE BLOQUES

Las DRAM cuentan


con lineas adicionales (
RAS y CAS ) para
identificar el uso que
se hace de las lineas
de dirección.
2. CIRCUITOS DE MEMORIA - DIAGRAMAS DE BLOQUES

La tendencia del uso


de interfaces estándar
hace que se
mantengan estas
lineas adicionales en
las memorias a pesar
de que puede suponer
una limitación
potencial en las
prestaciones del
circuito de memoria
2. CIRCUITOS DE MEMORIA - ESTRUCTURA DE CELDAS

Las memorias DRAM


presentan un protocolo
más complejo para la
lectura y escritura de
datos

Esquema de la estructura de
celdas y circuitos simplificados
que constituyen la interfaz del
chip de memoria
2. CIRCUITOS DE MEMORIA - DIAGRAMA DE TIEMPO
Diagrama de tiempo para las señales de la interfaz del circuito de memoria DRAM
que se intercambian en una lectura.
LECTURA DE
UNA CELDA
DE MEMORIA
2. CIRCUITOS DE MEMORIA - CARGA DE LAS CELDAS

Como la operación de lectura


modifica la carga de las celdas,
los datos de la fila seleccionada
deben volverse a escribir en las
celdas correspondientes.
2. CIRCUITOS DE MEMORIA - CARGA DE LAS CELDAS

Esto se hace en paralelo con el acceso a la columna y


aunque no afecta al tiempo de acceso, limita el tiempo de
ciclo de la señal RAS.
2. CIRCUITOS DE MEMORIA - DIAGRAMA DE TIEMPO
En una operación de escritura la celda se hace pasar a un nuevo estado cuando al
seleccionar dicha celda se conecta a la linea externa adecuada del bus de datos,
siendo el resto del proceso similar a una operación de lectura
2. CIRCUITOS DE MEMORIA - DIAGRAMA DE TIEMPO

Se definen tiempos característicos de una memoria como tras(tiempo de acceso


a una fila), tiempo de precarga(tpr),
2. CIRCUITOS DE MEMORIA - TIEMPO DE CICLO DE CHIP
El tiempo de ciclo(tRC) es la suma del tiempo de acceso y el tiempo de
precarga lo que esta implicado con el ancho de banda que puede
proporcionar un circuito de memoria
2. CIRCUITOS DE MEMORIA - TIEMPO DE CICLO DE CHIP
Si el circuito de memoria esta organizado en palabras de un bit, entonces
el ancho de banda sera 1/tRC.
Entonces si se tiene k circuitos de memoria, cada uno de los cuales
proporcionando 1 bit, el ancho de banda seria k/tRC (bits/s)
Por ejemplo con un tiempo de ciclo de 100 ns, ancho de banda=1/100ns
= 10 Mbits/s( con un único pin de datos).
Si se tiene una memoria de 32 bits de ancho se tendria un ancho de banda
de 320 Mbits/s = 40 Mbytes/s.
2. CIRCUITOS DE MEMORIA - EVOLUCION DEL TRAS
Datos de la evolución de los tiempos de acceso y tiempos de ciclo.
En cuanto a la capacidad de las memorias DRAM desde 1998 se duplica
cada 2 años
La interconexión entre el procesador
(CPU) y la memoria es fundamental para
el rendimiento de un sistema
informático, ya que determina la
velocidad y eficiencia con la que el
procesador puede acceder y manipular
los datos almacenados. Esta relación se
maneja mediante una arquitectura
conocida como jerarquía de memoria,
que incluye varios componentes y
técnicas de interconexión.
Principales Elementos de la Interconexión Procesador – Memoria
1. Buses:
• Bus de datos: Transporta los datos entre el procesador y la memoria. Es bidireccional, ya que tanto el
procesador como la memoria pueden enviar y recibir datos.
• Bus de direcciones: Transporta las direcciones de memoria que el procesador necesita leer o escribir. Es
unidireccional, desde el procesador hacia la memoria.
• Bus de control: Lleva señales de control, como las que indican si se va a realizar una operación de lectura o
escritura.
2. Memoria caché: La memoria caché es una memoria pequeña y rápida situada entre el procesador y la
memoria principal (RAM). Se utiliza para almacenar temporalmente los datos más frecuentemente utilizados,
lo que reduce los tiempos de acceso del procesador.
• Caché L1: Integrada en el procesador, es extremadamente rápida pero de pequeño tamaño.
• Caché L2 y L3: También integradas en la CPU, son más grandes que L1, pero algo más lentas.
Principales Elementos de la Interconexión Procesador – Memoria
3. Memoria principal (RAM): La memoria RAM es más lenta que la caché, pero mucho más grande. El
procesador accede a la RAM cuando los datos no están en la caché. Los accesos a la RAM se gestionan a
través del controlador de memoria.
4. Controlador de memoria: Este componente se encarga de gestionar el flujo de datos entre el procesador y
la memoria RAM. Antiguamente, el controlador de memoria se encontraba en el chipset de la placa base, pero
en los procesadores modernos está integrado directamente en la CPU, mejorando los tiempos de acceso.
5. Bancos de memoria: La RAM se organiza en bancos, y el acceso a diferentes bancos de memoria permite
operaciones más rápidas en paralelo, optimizando el flujo de datos.
Técnicas y Protocolos Utilizados
1. Ancho de banda: Se refiere a la cantidad de datos que pueden transferirse entre la memoria y el procesador
en un intervalo de tiempo determinado. El uso de buses más anchos o más líneas de datos en paralelo puede
aumentar el ancho de banda.
2. Latencia: Es el tiempo que tarda el procesador en acceder a un dato en la memoria. La caché y la memoria
de acceso rápido ayudan a reducir la latencia.
3. Acceso simultáneo: En sistemas multicore, varios núcleos del procesador pueden acceder simultáneamente
a diferentes áreas de la memoria, lo que requiere una coordinación eficiente para evitar colisiones de acceso.
4. DDR (Double Data Rate): Las memorias DDR, como DDR4 o DDR5, permiten transferir datos tanto en el
flanco de subida como en el de bajada de una señal de reloj, duplicando el rendimiento en comparación con
tecnologías más antiguas.
La eficiencia de la interconexión procesador-memoria afecta directamente el rendimiento del sistema, como
tareas que requieren un acceso intensivo a datos, como videojuegos y aplicaciones de inteligencia artificial.
Ancho de Banda Necesario para la CPU

Para mantener el ritmo de procesamiento de instrucciones, la memoria debe proporcionar suficientes datos e
instrucciones por ciclo. Por ejemplo, si un procesador es capaz de captar 4 instrucciones por ciclo y opera a
una frecuencia de 1 GHz (1 nanosegundo por ciclo), y el tamaño de la palabra es de 32 bits (4 bytes), el ancho
de banda necesario para leer estas instrucciones es:

Donde:
• 𝐼𝑃𝐶 es el número de instrucciones que el procesador puede completar por ciclo.
• 𝑇instrucción es la longitud de la instrucción en bytes.
• 𝐹 es la frecuencia del procesador.
Ancho de Banda Necesario para la CPU

Además, si el acceso a 4 instrucciones requiere leer o escribir aproximadamente 2 datos adicionales, el ancho
de banda necesario para los datos es:

Por lo tanto, el ancho de banda total requerido por el procesador sería:

Es decir, el procesador necesitaría un ancho de banda total de 24 Gbytes/s para operar eficientemente.
Relación con la Memoria DDR2

Una memoria DDR2 con un bus de 800 MHz puede proporcionar aproximadamente 12 Gbytes/s de ancho de
banda. Esto es considerablemente menor que los 24 Gbytes/s que requiere el procesador en el ejemplo
anterior. Esta diferencia crea un cuello de botella, donde el procesador no puede recibir datos e instrucciones
a la velocidad que necesita, lo que puede provocar que la CPU quede inactiva esperando a la memoria.

Este problema se resuelve utilizando una jerarquía de memoria. En esta jerarquía, la memoria se organiza en
varios niveles de caché (L1, L2, y a veces L3) que actúan como intermediarios entre la CPU y la memoria
principal. Las cachés son pequeñas pero extremadamente rápidas en comparación con la memoria RAM, por
lo que el procesador puede acceder a ellas más rápidamente.
Latencia y Ancho de Banda en la Memoria

La latencia de la memoria es el tiempo que transcurre desde que el procesador solicita un dato hasta que lo
recibe. La latencia es crítica cuando la CPU necesita acceder a un solo dato o una instrucción. Si la latencia es
alta, la CPU se ve obligada a esperar, lo que reduce su eficiencia.

Por otro lado, el ancho de banda es crucial cuando se accede a grandes bloques de datos, como al cargar una
línea completa de caché desde la memoria principal. En estos casos, lo que importa no es solo el tiempo que
tarda el primer dato en llegar, sino cuántos datos se pueden transferir por unidad de tiempo una vez que se
ha iniciado la transferencia.
Tipos de Cache y Correspondencia de Direcciones

En los sistemas de memoria moderna, existen varios tipos de caché, cada una optimizada para diferentes
patrones de acceso a los datos. Las principales configuraciones de caché son:

1. Caché Directa: Cada línea de memoria principal tiene una única línea asignada en la caché, lo que simplifica
la búsqueda pero puede resultar en más colisiones y reemplazos.
2. Caché Asociativa por Conjuntos: Las líneas de memoria principal pueden almacenarse en cualquier línea
dentro de un conjunto de líneas de la caché, lo que reduce las colisiones. Se organiza en grupos llamados
conjuntos.
3. Caché Completamente Asociativa: Cualquier línea de memoria principal puede almacenarse en cualquier
línea de la caché, lo que ofrece la máxima flexibilidad pero a costa de una mayor complejidad.
Tipos de Cache y Correspondencia de Direcciones

En la Figura 1, se muestran los campos de las direcciones de memoria principal y cómo se dividen en tres
partes: marca, conjunto, y vía. Estos campos determinan cómo se organiza la caché. En una caché asociativa
por conjuntos, el campo "conjunto" indica en qué conjunto de la caché se almacenará la línea de memoria,
mientras que el campo "vía" indica en qué línea específica dentro de ese conjunto se almacenará.
Tiempo Medio de Acceso en la Jerarquía de la Memoria

El tiempo medio de acceso a la memoria depende de la organización de la jerarquía de cachés y de la


probabilidad de que los datos solicitados ya estén en la caché. Para una jerarquía de dos niveles (caché L1 y
memoria principal), el tiempo medio de acceso es:

Donde:
• 𝑎1 es la tasa de aciertos en la caché L1 (probabilidad de que el dato esté en la caché L1).
• 𝑡1 es el tiempo de acceso a la caché L1.
• 𝑡𝑀 es el tiempo de acceso a la memoria principal.
Tiempo Medio de Acceso en la Jerarquía de la Memoria

Para una jerarquía con tres niveles (L1, L2 y memoria principal), la fórmula se complica ligeramente:

Aquí, 𝑎2 y 𝑡2 representan la tasa de aciertos y el tiempo de acceso de la caché L2. En esta fórmula, el acceso
a la caché L1 tiene la máxima prioridad. Si no se encuentra el dato ahí, se pasa a la caché L2, y si tampoco
está en la L2, se recurre a la memoria principal.
Optimización de la Jerarquía de Cache

Una jerarquía de caché eficiente debe cumplir con la condición de que el uso de una caché adicional (L2 o L3)
mejore el rendimiento.

Esto se expresa como:

Esta condición establece que la tasa de aciertos de la caché L2 debe ser suficientemente alta para que el
tiempo adicional que implica acceder a L2 no empeore el rendimiento en comparación con acceder
directamente a la memoria principal.
Reemplazo y Actualización de Líneas en la Caché

Cuando el procesador accede a un dato que no está en la caché (falla de caché), una línea de caché debe
reemplazarse con los datos correctos de la memoria principal. Si la línea que se reemplaza ha sido modificada
(es decir, los datos han cambiado desde que se cargó por primera vez), debe escribirse de nuevo en la
memoria principal antes de ser reemplazada. Este proceso añade tiempo extra al acceso a la memoria, lo cual
se puede calcular de la siguiente manera:

Donde:
• 𝑝reemplazo es la probabilidad de que se deba reemplazar una línea de caché.
• 𝑡línea es el tiempo necesario para escribir una línea en la memoria principal.
Acceso a Memorias DRAM: Proceso y Mejora del Ancho de Banda

En la Figura 2, se ilustra el acceso a una memoria DRAM (memoria


dinámica de acceso aleatorio). La memoria DRAM se organiza en
matrices de celdas, cada una de las cuales almacena un bit de
información. Para acceder a un dato en la DRAM, el controlador de
memoria genera dos direcciones: una para la fila y otra para la
columna en la matriz de celdas.
El controlador primero selecciona la fila de celdas que contiene el
bit deseado, y luego accede a la columna correspondiente. Este
proceso de acceso puede llevar varios ciclos de reloj, lo que
aumenta la latencia de acceso a la DRAM en comparación con otros
tipos de memoria.
Acceso a Memorias DRAM: Proceso y Mejora del Ancho de Banda

Sin embargo, las arquitecturas modernas de DRAM, como DDR (Double Data Rate), DDR2 y DDR3, han
mejorado significativamente el ancho de banda. Estas mejoras no se basan tanto en reducir la latencia, sino en
aumentar el número de datos que se pueden transferir por ciclo de reloj. La Figura 3 ilustra cómo estas
mejoras han permitido transferir líneas completas de caché de manera más eficiente, aprovechando la
localidad espacial de los datos..
Controlador de Memoria y Ciclos de Bus

El controlador de memoria genera las señales necesarias para acceder a la DRAM. Actualmente, suele estar
integrado en el puente norte del chipset. Este controlador se comunica con el procesador mediante un ciclo de
bus, que puede incluir varias señales de datos, direcciones y control.
El ciclo de bus define cuántos ciclos de reloj se necesitan para completar una transacción entre el procesador y
la memoria. El ancho de banda máximo en un ciclo de bus es:

Donde:
• 𝑁bits es el número de bits del bus de datos.
• 𝐹bus es la frecuencia del bus.
• 𝑁ciclos es el número de ciclos de reloj por transacción.
Problema 1: Cálculo del Tiempo de Acceso y Ganancia en Ancho de Banda

En un computador, el bus de memoria principal es de 100 MHz y 64 bits de datos. Si el ciclo de lectura del bus
necesita dos ciclos de reloj, ¿cuál sería el tiempo máximo de acceso que debería tener la memoria para que no
se necesiten introducir estados de espera? Suponga que quiere cargar desde la memoria una línea de caché
constituida por 64 bytes. ¿Cuál es la ganancia en ancho de banda que se obtiene si se utiliza acceso en modo
burst con relación a acceso palabra a palabra si el tiempo de acceso de la memoria es de 45 ns?.
Problema 1: Cálculo del Tiempo de Acceso y Ganancia en Ancho de Banda

Como se necesitan 2 ciclos de reloj por cada lectura en el bus, el tiempo máximo de acceso sería:

Este es el tiempo máximo que puede tener la memoria para que no se requieran ciclos de espera. Sin embargo,
dado que el tiempo de acceso de la memoria es 45 ns, esto implica que será necesario introducir ciclos de
espera para esperar a que la memoria devuelva los datos. La cantidad de ciclos de espera necesarios se calcula
como:

Redondeando al siguiente número entero, se necesitan 5 ciclos de bus para completar el acceso.
Problema 1: Cálculo del Tiempo de Acceso y Ganancia en Ancho de Banda

Parte 2: Ganancia en Ancho de Banda con Modo Burst


El bus tiene 64 bits, es decir, 8 bytes de datos por cada acceso. Como la línea de caché es de 64 bytes, se
necesitarán:

El tiempo total para acceder a 64 bytes palabra a palabra será:

Ahora, si se utiliza el modo burst, solo se necesitan 5 ciclos para la primera palabra y 1 ciclo para cada palabra
restante. El tiempo total para leer los 64 bytes en modo burst será:
Problema 1: Cálculo del Tiempo de Acceso y Ganancia en Ancho de Banda

Parte 2: Ganancia en Ancho de Banda con Modo Burst


El bus tiene 64 bits, es decir, 8 bytes de datos por cada acceso. Como la línea de caché es de 64 bytes, se
necesitarán:

El tiempo total para acceder a 64 bytes palabra a palabra será:

Ahora, si se utiliza el modo burst, solo se necesitan 5 ciclos para la primera palabra y 1 ciclo para cada palabra
restante. El tiempo total para leer los 64 bytes en modo burst será:
Problema 1: Cálculo del Tiempo de Acceso y Ganancia en Ancho de Banda

Parte 3: Ganancia en Velocidad

La ganancia en velocidad al utilizar el modo burst se puede calcular como la relación entre el tiempo de acceso
palabra a palabra y el tiempo de acceso en modo burst:

Esto significa que el modo burst es aproximadamente 3.33 veces más rápido que el acceso palabra a palabra.
Problema 2: Correspondencia Directa y Asociativa en Cachés

Un computador dispone de un procesador de 64 bits y utiliza una memoria caché con correspondencia directa
de 64 Kbytes y una memoria principal de 32 Mbytes.
a) Teniendo en cuenta que cada línea de caché es de 128 bytes, indique la posición de caché que ocupa la
instrucción que se encuentra en la dirección de memoria 0x0110ab48.
b) ¿Y si, con los mismos datos, la memoria caché fuese asociativa por conjuntos de 4 vías?

Desarrollo
Parte a) Correspondencia directa
Problema 2: Correspondencia Directa y Asociativa en Cachés

El número total de líneas en la caché es:


Esto significa que se necesitan 9 bits para identificar una línea en la caché.
La dirección de memoria dada es 0x0110ab48. Descomponemos esta dirección en los diferentes campos:
• Los 7 bits menos significativos indican la posición dentro de la línea.
• Los 9 bits siguientes corresponden a la línea de la caché.
• Los bits restantes forman el campo marca.
En binario, la dirección 0x0110ab48 es:
De acuerdo a lo anterior:
• Marca: Los 9 bits más significativos.
• Línea: Los siguientes 9 bits.
• Desplazamiento: Los 7 bits menos significativos.
RESPUESTA: La línea en caché correspondiente sería 0xAB48.
Problema 2: Correspondencia Directa y Asociativa en Cachés

Parte b) Memoria Caché Asociativa por Conjuntos de 4 Vías


En una caché asociativa por conjuntos de 4 vías, las líneas están agrupadas en conjuntos. Como el número
total de líneas es 512 y hay 4 vías, el número de conjuntos es:

Entonces, los 7 bits siguientes en la dirección indicarán el conjunto, y los 11 bits restantes se usarán como
campo marca. La posición dentro de la caché estará determinada por el estado de ocupación de las líneas y la
política de reemplazo.
En este caso, la dirección será 0x442 para la marca y el conjunto 0xA. La posición en la caché dependerá de la
vía que se asigne.
Problema 3: Posición en Cachés de Niveles L1 y L2

Se dispone de un computador basado en el Pentium II (cachés internas asociativas por conjuntos de 2 vías, de
16 Kbytes para datos y de 16 Kbytes para instrucciones) que dispone de una caché de segundo nivel de 256
Kbytes asociativa por conjuntos de 4 vías, y una memoria principal de 64 Mbytes. Si las líneas de caché son de
32 bytes, indique las posiciones que ocupa en las memorias cachés una instrucción de programa que se
encuentra en la posición de memoria 0x0012aac4.

Desarrollo
Problema 3: Posición en Cachés de Niveles L1 y L2

Con dos vías, el número de conjuntos es:

La dirección 0x0012aac4 se descompone en los siguientes campos:


• 5 bits menos significativos: Desplazamiento dentro de la línea.
• 8 bits siguientes: Conjunto.
• Resto de bits: Marca.
La marca sería 0x95, el conjunto 0x15, y el desplazamiento 0x4.
Problema 3: Posición en Cachés de Niveles L1 y L2

Caché L2 (Asociativa por Conjuntos de 4 Vías)


• Tamaño de caché L2:
• Número de líneas:

Con 4 vías, el número de conjuntos es:

Descomponiendo la dirección:
• 5 bits menos significativos: Desplazamiento.
• 11 bits siguientes: Conjunto.
• Resto de bits: Marca.
La marca es 0x12, el conjunto 0x2AB, y el desplazamiento 0x4.
Problema 4: Cálculo del Tiempo de Acceso Medio y Mejoras

En un computador, la caché interna del procesador tiene un tiempo de acceso de 2.5 ns y una tasa de aciertos
del 80%. La memoria principal tiene un tiempo de acceso de 10 ns. Suponga que dispone de una memoria
caché SRAM con un tiempo de acceso de 5 ns.
a) ¿Qué tasa de fallos debe tener la caché SRAM para que el tiempo de acceso medio a la memoria se reduzca
respecto a la situación anterior?
b) ¿Es posible obtener un tiempo de acceso medio de 3.7 ns?
c) ¿Cuál es el mínimo tiempo de acceso medio que se puede conseguir?
Problema 4: Cálculo del Tiempo de Acceso Medio y Mejoras
Parte a) Tasa de Fallos Necesaria para Reducir el Tiempo de Acceso Medio

Primero, calculamos el tiempo de acceso medio con el sistema actual, donde solo se utiliza la caché interna y la
memoria principal. El tiempo medio de acceso se calcula como:

Donde:
• 𝑎cache interna=0.80es la tasa de aciertos de la caché interna.
• 𝑡cache interna=2.5 ns es el tiempo de acceso a la caché interna.
• 𝑡memoria=10 ns es el tiempo de acceso a la memoria principal.
El tiempo de acceso medio será:
Problema 4: Cálculo del Tiempo de Acceso Medio y Mejoras

Ahora, introducimos la caché SRAM con un tiempo de acceso de 5 ns. Si consideramos que los accesos a la
caché interna ocurren primero, seguido de un acceso a la caché SRAM si hay un fallo en la caché interna, y solo
se accede a la memoria principal si también hay un fallo en la SRAM, el tiempo de acceso medio se calcula
como:

Donde:
Problema 4: Cálculo del Tiempo de Acceso Medio y Mejoras

Para que el tiempo de acceso medio nuevo sea menor que el tiempo de acceso medio anterior (4.0 ns),
planteamos la siguiente condición:

Esto implica que cualquier tasa


de aciertos en la SRAM mayor
que 0 reducirá el tiempo de
acceso medio, lo que sugiere que
la introducción de la SRAM es
siempre beneficiosa.
Problema 4: Cálculo del Tiempo de Acceso Medio y Mejoras
Parte b) ¿Es posible obtener un tiempo de acceso medio de 3.7 ns?

Esto significa que la tasa de aciertos de la caché SRAM debe ser al menos 30% para lograr un tiempo de
acceso medio de 3.7 ns. Es factible si la SRAM tiene una tasa de aciertos adecuada.

Parte c) Mínimo Tiempo de Acceso Medio


Problema 5: Tasa de Aciertos y Tiempo Medio de Acceso a Memoria

En un computador, el bus tiene una frecuencia de 200 MHz, y la memoria principal un tiempo de acceso de 30
ns, que, tras el primer acceso, puede proporcionar (o recibir) una palabra por ciclo en los accesos burst. El
procesador superescalar de 1 GHz dispone de una caché interna con líneas de 4 palabras.
En los programas, por término medio, un 30% de las instrucciones necesitan leer o escribir un dato (una
palabra) en memoria. La tasa de aciertos de la caché interna es del 90%, y en un 20% de los accesos a datos
se necesita reemplazar el bloque en caso de que se haya producido un fallo.
a) ¿Cuál es el tiempo medio de acceso a la memoria?
b) ¿Cuántas instrucciones por ciclo se pueden ejecutar, por término medio, en el procesador? ¿Y si la tasa de
aciertos pasa a ser de un 95%?
Problema 5: Tasa de Aciertos y Tiempo Medio de Acceso a Memoria
Parte a) Cálculo del Tiempo Medio de Acceso a la Memoria

Paso 1: Tiempo de Acceso a la Memoria Principal en Modo Burst


El procesador tiene una caché con líneas de 4 palabras. Cuando ocurre un fallo en caché, la memoria principal
debe entregar una línea completa de 4 palabras.
• Frecuencia del bus: 200 MHz, lo que implica un ciclo de 5 ns

• El tiempo de acceso inicial de la memoria es de 30 ns para la primera palabra. Después de la primera


palabra, cada palabra adicional puede ser entregada en 1 ciclo de bus (5 ns por palabra).
El tiempo total para leer las 4 palabras (una línea de caché) es:
Problema 5: Tasa de Aciertos y Tiempo Medio de Acceso a Memoria
Parte a) Cálculo del Tiempo Medio de Acceso a la Memoria

Paso 2: Tiempo Medio de Acceso a la Memoria


La tasa de aciertos de la caché interna es del 90%, por lo que solo en el 10% de los casos es necesario acceder
a la memoria principal.
El tiempo medio de acceso a la memoria, considerando fallos y aciertos en la caché, se puede calcular como:

Por lo tanto, el tiempo medio de acceso a la memoria es de 9.0 ns.


Problema 5: Tasa de Aciertos y Tiempo Medio de Acceso a Memoria
Parte b) Cálculo de las Instrucciones por Ciclo

Paso 1: Cantidad de Instrucciones por Ciclo con una Tasa de Aciertos del 90%
El procesador funciona a una frecuencia de 1 GHz, lo que implica un ciclo de 1 ns.
Para calcular cuántas instrucciones se pueden ejecutar por ciclo, tenemos que tener en cuenta que un 30% de
las instrucciones necesitan acceder a datos en memoria.

Si el 30% de las instrucciones requieren un acceso a datos en memoria, podemos aproximar el número de
instrucciones por ciclo (IPC) de la siguiente manera:
Problema 5: Tasa de Aciertos y Tiempo Medio de Acceso a Memoria
Parte b) Cálculo de las Instrucciones por Ciclo

Paso 2: Tasa de Aciertos del 95%


Si la tasa de aciertos de la caché mejora a 95%, el tiempo medio de acceso a la memoria será:

Con este tiempo de acceso, el número de instrucciones que se pueden ejecutar por ciclo será:

También podría gustarte