Resumen SD2 2 Parcial

19
Sistemas Digitales 2 Capítulo 6: Tópico Avanzados de Diseño de Procesadores La segmentación es una técnica que mejora el troughput (caudal de trabajo o de información que fluye a través de un sistema) de un sistema de cómputo sin necesidad de réplica masiva de HW. Segmentación idea básica: Fundamentos de la segmentación Motivación es incrementar en troughput. Se debe dividir el sistema en varias etapas con buffers entre las mismas. Se solapa la ejecución de cada tarea en el proceso Pipeline: son el conjunto de etapas con sus respectivos buffers. Limitaciones: Restricciones de temporización y de distribución de reloj. Estas restricciones las impone: o Los retardos mínimo y máximo de la lógica combinacional o El retardo mínimo de establecimiento de los latches.

description

fjldsajflsdkjfla

Transcript of Resumen SD2 2 Parcial

  • 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.

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

    = +

    =1

    +

    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 sub-

    cmputos 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 Ninguno de los clculos que residen en un determinado instante en el conducto

    depende de ningn otro dentro de l.

    o 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 sub-

    cmputos 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 Traduce la direccin de la direccin lgica de la CPU a una direccin fsica donde la

    informacin se encuentra realmente almacenada.

    o Administracin de memoria como mover la informacin

    o Multiprogramacin que hacer mientras se espera.

    o 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) IBM/Moto 601 (bits)

    w Tamao de palabra de CPU

    16 16 64

    m Bits en una direccin lgica

    20 20 32

    s Bits de la unidad mnima direccionables

    8 8 8

    b Tamao del bus de datos

    8 16 64

    2^m Capacidad de la memoria en palabras (wd) de tamao s

    2^20 2^20 2^32

    (2^m)*s Capacidad de la memoria en bits

    (2^20)x8 (2^20)x8 (2^32)x8

    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 Definicin Unidad Significado

    ta Tiempo de acceso tiempo Tiempo para acceder a una palabra

    tc Tiempo de ciclo tiempo Tiempo desde el inicio del acceso al acceso siguiente

    k Tamao del bloque palabras Nmero de palabras por bloque

    b Ancho de banda Por tiempo Tasa de transmisin de palabras

    Tl latencia tiempo Tiempo de acceso a la primera palabra de una secuencia de palabras

    Tbl=bloque Tiempo de bloque tiempo Tiempo para acceder a un entero de palabras

    Tl + k/b Tiempo de acceso

    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 Costo Programabilidad Tiempo de Prog. T. de Borrado

    Programado por mscara

    Muy barato En fbrica Una semana aprox. N/A

    PROM Barato Una vez, por el usuario

    Segundos N/A

    EPROM Moderado Muchas veces Segundos 20 min.

    Flash EPROM Caro Muchas veces 100 us. 1 seg. Bloque grande

    EEPROM Muy caro Muchas veces 100 us. 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.