Resumen SD2 2 Parcial

download Resumen SD2 2 Parcial

of 19

  • date post

    11-Sep-2015
  • Category

    Documents

  • view

    5
  • download

    0

Embed Size (px)

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 Siste