Está en la página 1de 19

Sistemas Digitales 2

Captulo 6: Tpico Avanzados de Diseo de Procesadores

La segmentacin es una tcnica que mejora el troughput (caudal de trabajo o de


informacin que fluye a travs de un sistema) de un sistema de cmputo sin necesidad de
rplica masiva de HW.

Segmentacin idea bsica:

Fundamentos de la segmentacin

Motivacin es incrementar en troughput.


Se debe dividir el sistema en varias etapas con buffers entre las mismas.
Se solapa la ejecucin de cada tarea en el proceso
Pipeline: son el conjunto de etapas con sus respectivos buffers.

Limitaciones:

Restricciones de temporizacin y de distribucin de reloj.


Estas restricciones las impone:
o Los retardos mnimo y mximo de la lgica combinacional
o El retardo mnimo de establecimiento de los latches.

o La red de distribucin de reloj.


Compromisos: se deben considerar el costo/desempeo de la implementacin.
=+
=

G: costo de la implementacin no segmentada


k: etapas, o profundidad de la segmentacin
L: costo de agregar un latch en cada etapa
T: latencia del diseo no segmentado
S: retardo adicional por
agregar el latch

+
=
1

Existen dos tipos de conductos segmentados:


1. Aritmticos.
2. De instrucciones.
Ideales de la segmentacin:
1. Sub-cmputos Uniformes: el cmputo a realizarse puede dividirse igualitariamente en subcmputos de latencia uniforme. Asume que:
o No existe ineficiencia al dividir el clculo original en mltiples intermedios
o No existe retardo adicional causado por los buffers entre etapas y los
requerimientos de distribucin de reloj.
2. Cmputos Idnticos: el mismo cmputo se realizara repetidamente sobre una gran
cantidad de conjuntos de datos de entrada. Asume que:
o Todas las etapas estn ocupadas todo el tiempo.
3. Cmputos independientes: todas las repeticiones de un mismo cmputo son mutuamente
independientes. Asume que:

o
o

Ninguno de los clculos que residen en un determinado instante en el conducto


depende de ningn otro dentro de l.
Normalmente el clculo dependa de un resultado que debi concretarse
anteriormente.

Problemas en la aplicacin de los ideales en la realidad.


1. Sub-cmputos uniformes
Problema: fragmentacin interna
2. Cmputos Idnticos:
Problema: fragmentacin externa
3. Cmputos independientes
Problema: dependencia entre instrucciones.
Diseo del conducto de segmentacin para instrucciones.

Se persiguen los 3 ideales


El procesamiento de la instruccin es el cmputo a realizar
La latencia del procesamiento de una instruccin se conoce como ciclo de instruccin.
La latencia de cada etapa del conducto de segmentacin se conoce como ciclo de mquina.
El objetivo:
o Dividir el cmputo representado en el ciclo de instruccin en una secuencia de subcmputos a realizarse en el conducto. O sea, mapear el ciclo lgico de instruccin a
los ciclos fsicos de la mquina. Recordando los ideales de segmentacin
Segn cada ideal debe atenderse que:
1. Sub-cmputos uniformes: el dividir el ciclo de instruccin en mltiples ciclos de mquina se
denomina cuantificacin de etapa.
o Minimizar fragmentacin interna
o Desafo: el balanceo de etapas
2. Cmputos Idnticos: diversidad de instrucciones afecta la unificacin de los recursos de
hardware de cada etapa.
o Minimizar la fragmentacin externa
o Se debe soportar el procesamiento de todas las instrucciones de la ISA,
minimizando las etapas ociosas para cada instruccin.
3. Cmputos independientes:
o Incorporar mecanismos de deteccin de dependencia entre instrucciones
o No violar las dependencias
o Detener conducto de ser necesario
o El detenimiento del conducto de segmentacin es una forma de fragmentacin
externa dinmica.
o Minimizar los detenimientos
El impacto de la ISA en la Segmentacin de Instrucciones

En los procesadores el acceso a memoria es el sub-cmputo de mayor latencia. Para


optimizar la segmentacin, los modos de direccionamiento que involucren accesos a
memoria en s mismos deben eliminarse. La implementacin de caches es fundamental.
Una de las motivaciones primarias de las RISC es unificar los requerimientos de recursos de
los diferentes tipos de instruccin.
La homogenizacin de los tipos de instruccin para una implementacin segmentada es
mucho ms limpia y eficiente en los procesadores RISC.
El minimizar las detenciones del conducto es uno de los desafos ms interesantes. Los
modos de direccionamiento complejos y/o los que incluyan acceso a memoria dificultan y
hasta pueden imposibilitar la deteccin adecuada de las dependencias.
Los formatos de instrucciones sencillos y simtricos facilitan la decodificacin de las
instrucciones y la deteccin de dependencias.
Tanto la deteccin como la aplicacin de las dependencias pueden hacerse en forma
dinmica en tiempo de ejecucin o en forma esttica en tiempo de compilacin
Esto depende de la interfaz Dinmica- Esttica(ISA)

Diseo de procesadores segmentados.


1. Sub-cmputos uniformes balancear etapas
Sub-cmputos tpicos en un ciclo de instruccin
1.1. Cuantificacin de etapas: Se empieza por dividir en forma
genrica el ciclo de instruccin. Existen dos opciones
a. Opcin 1: agrupas los sub-cmputos de menor latencia en
etapas para balancearlas con los sub-cmputos de mayor
duracin, con esto se obtiene una granularidad gruesa de los
procesos. Ej.: IF e ID en la misma etapa
b. Opcin 2: dividir los sub-cmputos de mayor latencia en
varios ms cortos, granularidad de proceso ms fina.
1.2. Requisitos de HW: un diseo real debe optimizar
costo/desempeo. Cada instruccin dentro del conducto debe
ser atendida. Cada etapa agrega HW adicional. Los costos ms
altos se dan en el HW de memoria
2. Cmputos idnticos unificar tipos de instruccin
Para cada tipo de instruccin, las etapas innecesarias son una ineficiencia a la que llamamos
fragmentacin externa. Un juego de instrucciones puede hacer las siguientes operaciones:
a. Aritmticas/lgicas
b. Movimiento de datos
c. Secuencias instrucciones(control de flujo)
Obs: en las RISC modernas las instrucciones caen en una de las tres clasificaciones siguientes:

a. ALU
b. Load/Store
c. Saltos
Coalescencia de los requisitos de HW: pasos para la unificacin
a. Analizar las secuencias de sub-cmputos de cada tipo de instruccin y determinar los
recursos requeridos
b. Encontrar tipos de instruccin similares y combinar los sub-cmputos comunes en una
misma etapa del conducto
c. Cambiar o reordenar los sub-cmputos, si existe tal flexibilidad, sin violar la semntica de la
instruccin, a fin de facilitar combinacin de etapas en el futuro.
3. Cmputos independientes minimizar detenimiento en conductos
En un conducto de instrucciones es comn que una instruccin depende de otra. Adems de
que la manera de programar comnmente es en forma secuencial.
Al aplicar la segmentacin se corren riesgos (hazzards) de violar los dos principios anteriormente
citados.
Riesgos de la segmentacin.
Son todas aquellas situaciones que impiden la ejecucin de la siguiente instruccin. Se clasifican en:
1. Estructurales: un recurso de Hw ocupado
Conflicto por el uso de un recurso
En caso de una sola memoria:
o Load/store requieren acceso a datos
o una bsqueda de instruccin deber detenerse durante ese ciclo lo que causa una
burbuja en el conducto
Por lo tanto los datapaths segmentados requieren de memorias separadas de instruccin
y datos; o cahes separados
2. De datos: se necesita esperar que una instruccin anterior termine de read/write sus datos.
Clasificacin:
a. Lectura despus de escritura (RAW): surge una dependencia de flujo, donde una
instruccin utiliza los datos producidos por una instruccin previa.
b. Escritura despus de lectura (WAR): se da a partir de una anti-dependencia, donde una
instruccin escribe un nuevo valor sobre otro que an debe ser utilizado por una
instruccin previa
c. Escritura despus de escritura(WAW): se debe a una dependencia de salida, donde dos
instrucciones paralelas escriben en el mismo registro y deben hacerlo segn el orden en
que fueron programadas
Deteccin de riesgos y distancia de dependencia.

a. Paso anticipado (forwarding): consiste en utilizar el resultado de una instruccin ni bien


este se genere dentro del conducto. Obs: no espera que el resultado se almacene en un
registro y requiere de conexiones adicionales dentro del datapath. Puede crear
detenimiento por riego de datos.
b. Los datos puede ser pasados como ltimo hasta la etapa que los utiliza
3. De control: la decisin de control del flujo del programa depende de una instruccin previa no
concluida.
Branch delay slot: el detenimiento a la espera del resultado de la evaluacin del salto no es
aceptable en la mayora de los casos. Normalmente se establece que cierta cantidad de
instrucciones posteriores a un salto se ejecutaran a pesar de este. Son ciclos de reloj expresados
en cantidad de instrucciones que son ejecutadas hasta que el salto se realiza realmente.

Captulo 7. Diseo del Sistema de Memoria


Componentes de la memoria:

Celdas RAM y arreglos de celdas


RAM Esttica ms cara pero menos compleja.
Decodificadores rbol y Matriz necesarios para chips RAM grandes.
RAM dinmica menos compleja, pero requiere del refresco.
o Organizacin del chip
o Temporizacin
o Productos RAM comerciales: SDRAM y DDR RAM
ROM Memoria de solo lectura

Placas de Memoria:

Los arreglos de chips dan ms direcciones y/o palabras ms largas.


Arreglos 2D y 3D de chips.

Mdulos de memoria

Sistemas grandes se pueden beneficiar de particionar la memoria:


o Separar el acceso por componentes del sistema
o Acceso rpido a mltiples palabras

La jerarqua de memoria: desde rpidas y caras, hasta lentas y baratas.


Ejemplo: Registros->Cache>Memoria Principal->Disco
Primero se consideran solo dos niveles adyacentes en la jerarqua
El Cach: Rpido y Caro
Tipos: Mapeado Directo, Asociativo, Asociativo por Conjunto

Memoria Virtual:
o Hace a la jerarqua transparente

o
o
o
o

Traduce la direccin de la direccin lgica de la CPU a una direccin fsica donde la


informacin se encuentra realmente almacenada.
Administracin de memoria como mover la informacin
Multiprogramacin que hacer mientras se espera.
El TLB ayuda en acelerar el proceso de traduccin de direcciones.

Interfaz CPU Memoria Principal


Lectura:
1. CPU carga MAR, indica Read y REQUEST
2. Memoria principal transmite la palabra a MDR
3. La memoria principal indica COMPLETE.
Escritura:
1. CPU carga MAR y MDR, indica Write y REQUEST
2. El valor en MDR es escrito en la direccin dada por MAR.
3. Memoria principal indica COMPLETE.

Algunas Propiedades de las Memorias


Smbolo

Definicin

Intel 8088 (bits)

Intel 8086 (bits)

Tamao de palabra de
CPU
Bits en una direccin
lgica
Bits de la unidad
mnima direccionables
Tamao del bus de
datos
Capacidad de la
memoria en palabras
(wd) de tamao s
Capacidad de la
memoria en bits

16

16

IBM/Moto 601
(bits)
64

20

20

32

16

64

2^20

2^20

2^32

(2^20)x8

(2^20)x8

(2^32)x8

m
s
b
2^m

(2^m)*s

Almacenamiento Big y Little Endian


Little Endian: Es la parte menos significativa de la palabra la que se almacena en la direccin ms
baja.
Big Endian: Es la parte ms significativa de la palabra la que se almacena en la direccin ms baja.

Parmetros de Rendimiento de la Memoria


Smbolo
ta
tc

Definicin
Tiempo de acceso
Tiempo de ciclo

Unidad
tiempo
tiempo

k
b
Tl

Tamao del bloque


Ancho de banda
latencia

palabras
Por tiempo
tiempo

Tbl=bloque
Tl + k/b

Tiempo de bloque
Tiempo de acceso

tiempo

Significado
Tiempo para acceder a una palabra
Tiempo desde el inicio del acceso al acceso
siguiente
Nmero de palabras por bloque
Tasa de transmisin de palabras
Tiempo de acceso a la primera palabra de
una secuencia de palabras
Tiempo para acceder a un entero de palabras

La jerarqua de memoria, costo y rendimiento

Independientemente de la tecnologa, todas las celdas de memoria deben poseer 4 funciones:

Select
DataIn
DataOut
R/W

Registro de 8 bits como un arreglo RAM en 1D

Decodificadores

Los decodificadores de 2 niveles son limitados en tamao por el fan -in de las compuertas.
La mayora de las tecnologas soportan un fan -in ~8.
Cuando los decodificadores requieren de un fan-in >8, se requieren niveles adicionales de
puertas.
Los decodificadores en rbol y matriz son dos formas de disea decodificadores de gran
fan-in.

Decodificador rbol de 3 a 8 lneas construido de puertas de 2 entradas.

Temporizacin de lectura de una SRAM


Tiempo de acceso desde el direccionamiento: tiempo requerido por el arreglo RAM para
decodificar la direccin y proveer el valor al DataBus.
Temporizacin de escritura de la SRAM
Tiempo de escritura: tiempo que los datos deben permanecer vlidos para decodificar la direccin
la direccin y almacenar el valor en las celdas de memoria.

Celda RAM dinmica (DRAM)


El capacitor se descarga en 4-15 ms. Se refresca el capacitor al leer el valor en la lnea de bit,
amplificando el valor del capacitor.
Escribir: colocar el valor en la lnea de bit y establecer la lnea de palabra.
Leer: precargar la lnea de bit, establecer la lnea de palabra y leer el valor en la lnea de bit con el
amplificador sense/amp.
La necesidad de refrescar las celdas de almacenamiento de los chips DRAM complica el diseo del
sistema DRAM.
Organizacin del Chip DRAM

Las direcciones son multiplexadas en tiempo sobre el bus de direcciones utilizando RAS y
CAS como habilitacin de filas y columnas.
CAS se utiliza normalmente como CS.

Anlisis de pinout:

Sin multiplexacin de direcciones: 27 pines incluyendo Vcc y GND.


Con multiplexacin: 17 pines incluyendo Vcc y GND.

Refrescar Datos y Acceso a la Fila

El refresco se concreta usualmente con un ciclo solo RAS. La direccin de fila es colocada
en la lnea de direccin y RAS es activado. Esto refresca toda la fila, si CAS no se activa. La
ausencia de CAS indica al chip que un refresco de fila es solicitado, y por ende ningn dato
es colocado en las lneas externas de datos.
Muchos chips utilizan CAS antes de RAS para indicar el refresco. El chip posee un
contador interno, y en cualquier caso donde CAS se active antes de RAS se refresca la fila
apuntada por el contador y est se incrementa.
La mayora de los fabricantes DRAM proveen de Controladores DRAM que encapsulan
las funciones de refresco, entre otras.
Los Modo Pgina, Modo Nibble y Modo Columna Esttica permiten un acceso rpido a la
fila entera que ha sido leda en los latches de cada columna.
Video RAMS, VRAMS, sincroniza una fila entera dentro de un registro de corrimiento
donde puede ser rpidamente leda, bit por bit, para un monitor.

Tipos de ROM
Tipo
Programado por
mscara
PROM

Costo
Muy barato

Programabilidad
En fbrica

Tiempo de Prog.
Una semana aprox.

T. de Borrado
N/A

Barato

Segundos

N/A

EPROM
Flash EPROM

Moderado
Caro

Una vez, por el


usuario
Muchas veces
Muchas veces

Segundos
100 us.

EEPROM

Muy caro

Muchas veces

100 us.

20 min.
1 seg. Bloque
grande
10 ms, byte

Placas de Memoria y Mdulos

Existe una necesidad de memorias ms grandes y amplias que un solo chip.


Los chips se organizan en placas.
o Las placas pueden no ser placas en trminos fsicos, sino puede tratarse de un
arreglo de chips presentes en la placa madre.
Una placa o un conjunto de estas hacen a un mdulo de memoria.
Mdulos de memoria:
o Satisfacer al procesador Requisitos de interfaz de memoria principal.
o Pueden tener capacidades de refresco DRAM
o Pueden expandir la capacidad del total de la memoria principal
o Pueden ser intercaladas para proveer un acceso ms rpido a bloques de palabras.

Estructura gral. de un chip de memoria

Interface de Mdulo Memoria


Debe proveer:

Seales de Escritura y Lectura.


Listo: indicar que la memoria est lista para recibir comandos.
Direccin - a ser enviada con el comando R/W.
Datos - enviados con la seales W, o disponible luego de R y que Listo se haya indicado.

Seleccin de mdulo - necesario cuando existe ms de un mdulo.


Generador de seales de control: Para SRAM, solo habilitar los datos en Lectura, proveer
listo en lectura/escritura.

Para DRAM tambin proveer CAS, RAS, R/W, multiplexacin de direcciones, generar refresco,
seal de listo.
Organizacin de Mdulos de Memoria

Temporizacin de Mltiples Mdulos en un Bus


Si el tiempo de transmisin sobre el bus, tb, es < al ciclo de mdulo, tc, es posible muliplexar en
tiempo la informacin transmitida a varios mdulos;
Esto permite que palabras sucesivas se almacenen en mdulos sucesivos
Rendimiento del Sistema de Memoria
Para todos los accesos:

Transmisin de direccin a memoria


Transmisin de informacin de control a memoria (R/W, Request, etc)
Decodificacin de direccin en memoria

Para una Lectura:

Retornar los datos de la memoria


Transmisin de la seal COMPLETE

Para una Escritura:

Transmisin de datos a la memoria (usuarlmente en simultneo con la direccin)


Almacenamiento de los datos en las celdas de memoria
Transmisin de la seal COMPLETE

Temporizacin de RAM Esttica y Dinmica

Ejemplo de Temporizacin de SRAM (tiempo largo)


Valores aproximados de temporizacin para una lectura de una SRAM:

Encendido de los drivers del Addr bus: 40 ns


Propagacin en el bus: 10ns
Decodificacin de seleccin de placa: 20 ns
Tiempo para propagar la seleccin a otra placa: 30 ns
Seleccin de Chip: 20 ns

TIEMPO DE PROPAGACIN PARA DIRECCIN Y COMANDO HASTA LLEGAR AL CHIP: 120 ns

Tiempo de lectura en chip de memoria: 80 ns


Retardo de seal del chip hasta el bus de datos de la placa de memoria: 30 ns
Retardo de propagacin y drivers: 50 ns

TIEMPO TOTAL DE ACCESO DE LECTURA: 280 ns


Moraleja: Chips de 70ns no necesariamente proveen un tiempo de acceso de 70ns.

Localidad Temporal: propiedad de la mayora de los programas tal que dada una locacin
referenciada en memoria, es probable que la misma sea referenciada nuevamente pronto.
Localidad Espacial: si una dada locacin en memoria es referenciada, aquellas locaciones
numricamente cercanas a ella sern probablemente referenciadas pronto.
Conjunto de Trabajo: conjunto de locaciones en memoria referenciadas en un periodo fijo de
tiempo o ventana de tiempo.

Latencia: tiempo para acceder la primera palabra


Ancho de banda: nmero de palabras transmitidas entre niveles
Tamao de bloque Cach: 16-64 bytes
Tamao de bloque Disco: 1-4 Kb
Direccin primaria: la direccin de un dato en el primer nivel.
Direccin secundaria: direccin de un dato en el segundo nivel.
Ejemplo de direcciones:

Dir. de memoria principal: entero sin signo


Dir. de disco: nro. de pista, nro. de sector, offset de palabra en sector.

Maneras de formar la direccin

Tasa de Acierto: h = nmero de aciertos/nmero total de solicitudes


Tasa de Fallo: 1 tasa de acierto
tp: tiempo de acceso a memoria primaria
ts: tiempo de acceso a memoria secundaria
Tiempo de acceso: ta = h*tp + (1-h)*ts
Pgina: comnmente, un bloque de disco.
Error de pgina: sinnimo de error
Paginacin bajo demanda: pginas son movidas de disco a memoria princ. Solo cuando una
palabra de la pgina es requerida por el procesador.
Decisiones de colocacin y reemplazo de bloques: se deben tomar cada vez que bloque es
movido.
Decisiones en el diseo de una jerarqua de 2 niveles

Procedimiento de traduccin entre dir. del sistema a dir. primaria o sec, etc.
Tamao de Bloque: eficiencia y taza de fallo se veran afectados.
Despacho de Procesador en caso de fallo procesador espera o bien es
multiprogramado.
Colocacin en nivel primariodirecto, asociatio, o combinacin. Discutido luego.
Poltica de reemplazocual bloque se reemplaza en caso de fallo.
Acceso directo al nivel secundarioen rgimen cach, puede el procesador acceder
directamente la memoria principal?
Escribir a travs puede el procesador escribir directamente en memoria principal
ante un fallo de cache?

Lectura a travs puede el procesador leer de la memoria principal en casi de fallo de


cache mientras el cach se actualiza?
Bypass de lectura o escritura puede cierta lectura o escritura infrecuente ser
satisfecha por un acceso directo al nivel secundario (ej. Mem. principal) sin un
movimiento de bloque?

Memoria Virtual: es una jerarqua de memoria, usualmente consistente por lo menos de una
memoria principal y disco, en donde el procesador expide todas las referencias a memoria como
direcciones efectivas en un espacio de direccionamiento plano.
Acceder al disco puede requerir muchos ciclos de reloj, por tanto, una vez que el procesador
solicita la tarea, pasa a otra tarea mientras los datos son extrados.
Multiprogramacin: se comparte el procesador entre programas independientes que residen en la
memoria principal y por ende estn disponibles para ejecucin. Ayuda a mantener al procesador
ocupado.
El sistema Cach

Involucra la insercin de una o ms memorias de alta velocidad entre la memoria


principal y la CPU.
Los bloques cach son los tems de intercambio entre niveles.
El cach es normalmente transparente al programador.
Las operaciones de cache deben manejarse en el hardware. Por qu?
Los bloques cach van ms o menos desde 16 bytes hasta 256 bytes.

Funcin Mapeo Cach: responsable de las operaciones cach

Estrategia de colocacin: donde colocar el bloque entrante en el cach.


Estrategia de reemplazo: cual bloque debe reemplazarse en caso de fallo.
Poltica de lectura y escritura: cmo manejar lectura y escrituras en caso de fallo.

Tipos de Funciones de Mapeo:

Asociativo: cualquier bloque de la mem. principal puede colocarse en cualquier lugar del
cach. Todas las ubicaciones son buscadas en simultneo.
o Ventaja: El ms flexible de todoscualquier bloque de mem. prin. Puede colocarse
en cualquier lugar del cach.
o Desventajas:
Memoria Tag o de nros. de bloque muy grande.
La necesidad de buscar la memoria entera simultneamente implica
mucho hardware.

Directo: simplifican el HW permitiendo que cada bloque de mem. prin. se ubique solo en
un lugar del cach. Todos los bloques de un determinado conjunto de mem. princ.
pueden ir solo en una ubicacin del cach, correspondiente a su nro. de conjunto o
grupo.
o Operacin:
1. Decodificar el nr de grupo de la direccin de mem. prin. entrante para
seleccionar el grupo
2. Si Acierto Y Vlido
3. Entonces pasar el valor de la memoria Tag o nro de bloque.
4. Comparar el nro. de bloque del cach contra el proveniente de la
direccin.
5. Si es un acierto, pasar el valor contenido en el cach.
6. Y utilizar el campo de palabra para extraer la palabra requerida.
o Si dos bloques del mismo grupo son referenciados frecuentemente, el cache se
agitar. Es decir, los bloques en conflicto sern ingresados y expulsados del cach
repetidamente. Esto causar una degradacin del rendimiento.

Asociativo por Conjunto de Bloque: posee 256 grupos de dos lneas cada uno.

Polticas de Escritura y Lectura en caso de Acierto:

Escritura a travsactualiza ambas, MP y Cach, en cada escritura.


Escritura Diferida actualiza solo el cach. Actualizacin de memoria solo al removerse el
bloque.
Bit Sucio se coloca en 1 despus de la primera escritura indicando que el bloque debe
escribirse nuevamente en memoria al ser removido.

Polticas de Escritura y Lectura en caso de Fallo:

Fallo en Lectura traer bloque de la mem. princ.


Anticipar la palabra al momento de ser trada o,
Esperar a que la lnea entera de cach se llene y repetir la solicitud.

Fallo en Escritura

Asignar y Escribir traer el bloque al cach y luego escribir en l.


No asignar y Escribir escribir la palabra en la mem. princ. sin traer al bloque al cach.

Estrategias de Reemplazo de Bloques

No necesaria en cach de mapeo directo.


Menos Usados Recientemente(LRU)
o Controlar el uso con un contador. Cada vez que un bloque se accede
Borrar el contador del bloque accedido
Incrementar los contadores con valores menores al accedido.
Dejar todos los dems sin cambios.

o Cuando el conjunto esta lleno, remover la lnea cuya cuenta sea mayo
Reemplazo aleatorio reemplazar un bloque aleatoriamente.
o Incluso el reemplazo aleatorio es una estrategia bastante eficaz.

Rendimiento del Cach


Recuerde el tiempo de acceso: ta= h tp+ (1-h) ts, para los niveles primario y sec.
Para tp=> cach y ts=> memoria principal,
ta= h tC+ (1-h) tM
Definimos S, como el aumento en la velocidad como S= Tsin/Tconpara un determinado proceso,
donde Tcon es el tiempo que se toma sin la mejora, cach en este caso, y Tcon es el tiempo
tomado con la mejora.
Teniendo el modelo del cach y la memoria, tiempos de acceso y tiempo de carga de linea del
cach, se puede calcular la mejora si se conoce la tasa de acierto.
Memoria Virtual
La Unidad de Administracin de Memoria es responsable de mapear las direcciones lgicas a
direcciones fsicas que son representadas por el cach y la memoria principal.
Acerca de las direcciones:

Direccin Efectiva una direccin computada por el procesador mientras ejecuta un


programa. Sinnimo de Direccin Lgica
o El trmino direccin efectiva es utilizado desde un punto de vista interior a la CPU
y direccin lgica desde el exterior.
Direccin Virtual la direccin generada de la direccin lgica por la unidad de
administracin de memoria (MMU)
Direccin Fsica la direccin que se presenta a la unidad de memoria.

Direcciones Virtuales:
Las direcciones lgicas provistas por la CPU se traducen a una direccin virtual en la MMU.
Frecuentemente el espacio de direcciones virtuales es mayor al de direcciones lgicas,
permitiendo el mapeo de programas a un espacio de direcciones virtuales mayor.
Ejemplo Real: La PowerPC 601

El CPU PowerPC 601 genera direcciones lgicas de 32 bits.


La MMU traduce estas a direcciones de 52 bits, antes de la traduccin final a direcciones
fsicas.
A pesar de que cada proceso esta limitados a 32 bits, la memoria principal puede contener
varios de estos procesos.

Ventajas del Direccionamiento Virtual

Simple. Cada unidad programtica puede compilarse en su propio espacio de memoria,


empezando en direccin 0 y potencialmente extenderse ms all de la cantidad de
memoria fsica real presente en el sistema.
o No es necesario realojar direcciones en el momento de carga.
o No es necesario fragmentar el programa para acomodarlo.
Uso costo efectivo de la memoria fsica.
o El almacenamiento primario puede ser complementado con el almacenamiento
secundario ms barato (disco). (La MMU trae las porciones de programa a la
memoria principal a medida que estas son requeridas.
Control de Acceso. Como cada referencia a memoria es traducida, pueden verificarse los
privilegios de lectura, escritura y ejecucin en forma simultnea.
o Esto permite controlar el acceso y seguridad en los niveles ms fundamentales.
o Esto puede servir para evitar que programas defectuosos o intrusos afecten a
otros usuarios del sistema.