Click here to load reader

SEGMENTACIÓN Y PROCESADORES SEGMENTADOS - · PDF fileSEGMENTACIÓN Y PROCESADORES SEGMENTADOS 2.1 - SEGMENTACIÓN - Introducción - Segmentación - Paralelismo 2.1.1 - Introducción

  • View
    246

  • Download
    0

Embed Size (px)

Text of SEGMENTACIÓN Y PROCESADORES SEGMENTADOS - · PDF fileSEGMENTACIÓN Y PROCESADORES...

  • SEGMENTACIN Y PROCESADORES SEGMENTADOS

    2.1 - SEGMENTACIN

    - Introduccin - Segmentacin - Paralelismo

    2.1.1 - Introduccin a la segmentacin

    - Clasificacin

    2.1.2 - Diseo del control de entradas

    - Tabla de reserva - Latencia - Secuencia de iniciaciones - Secuencia del MAL - Diagrama de estados - Vector de colisin inicial (VCI) - Como obtener el diagrama de estado - Diagrama de estados simplificado (o modificado) - A partir del completo - Generacin directa - Anlisis del diagrama de estados - Subconjunto de ciclos simples ---> Gready - Modificacin de la tabla de reserva

    2.1.3 - Hardware de control

    - Datos siempre disponibles - Datos no siempre disponibles

    3 - PROCESADORES SEGMENTADOS

  • 3.1 - Introduccin a los procesadores segmentados - Objetivo - Notacin - Problemas - Riesgos estructurales

    - Riesgos de datos - Riesgos de control - Problemas de procesadores segmentados - Medida de las prestaciones de un procesador - Rendimiento

    - Velocidad de la CPU - Mtricas comerciales - Ganancia y aceleracin - Ley de Amdahl - Problemas de la segmentacin - Riesgos estructurales - Riesgos de datos - Tipos de dependencias de datos - RAW

    - WAR- WAW- RAR- Soluciones

    - Riesgos de control

    3.2 - Procesadores segmentados lineales

    - Caractersticas - Arquitectura DLX - Lenguaje mquina del DLX - Segmentacin en etapas - Estudio de los riesgos estructurales - DATA PATH segmentado - Estudio de los riesgos de datos - Cortocircuito para segmentar RAW - Estudio de riesgos de control

    3.3 - Procesadores segmentados con operaciones multiciclo

    - Multiciclo simplificado - Multiciclo general - Extensin L.M. - Data path - Sincronizacin entre enteros/punto flotante - Riesgos estructurales - Riesgos de datos3.4 - Procesadores con ordenacin dinmica de instrucciones

  • - Procesadores con anticipacin - Implementaciones

    - Scoreboard ---> CDL 6600- Algoritmo de control

    - Tomasulo ----> IBM 360/91

  • TEMA 2 - UNIDADES FUNCIONALES SEGMENTADAS

    2.1 - SEGMENTACIN

    2.1.1 - INTRODUCCIN A LA SEGMENTACIN

    - La segmentacin (pipelining) es una tcnica de implementacin por la cual sesolapa la ejecucin de multiples instrucciones.

    - Tcnica clave para hacer CPU rpidas.

    - Ejem: Lnea de montaje de automviles:

    ETAPA 1 ETAPA 2 ETAPA 3 ETAPA 4

    CARROCERIA MOTOR PINTURA ACCESORIOS

    ENTRADA

    --> Tiempo por etapa

    - Sin segmentar T6coches = 6 . 4 = 24

    - Segmentada T6coches = 1.4 + 5 =9

    - Objetivo: Segmentar una funcin ----> Explotar el paralelismo a nivel temporal(solapamiento).

    - Evaluar en cada momento, varias funciones con diferentes datos de entrada. Esto solotiene sentido si:

    - Evaluamos la funcin muchas veces con diferentes datos de entrada. - Independencia entre las diferentes evaluaciones.

    Ejemplo: Diagrama Espacio-Tiempo

    E1 X Y ZE2 X Y ZE3 X Y Z

    -------> tiempo Ei: Etapasx,y,z: Datos de entrada

    Es necesario un flujo continuo de datos, sino la segmentacin no sirve para nada:

  • E1 X YE2 X YE3 X Y

    Solo segmentamos funciones muy usadas:

    - Ejecucin de una instruccin ---> Procesadores segmentados

    - Multiplicacin de 2 nmeros en coma flotante ----> Coprocesadores matemticos

    Pasos a seguir:

    1.- Descomposicin en subfunciones. 2.- Secuencia de evaluacin (posible paralelismo). 3.- Implementacin de las subfunciones con hardware especfico ---> ETAPAS. 4.- Interconexin y aislamiento de las etapas con registros. Aadir control.

    OPERACIN SUBOPERACIN

    Unidad Funcional

    U . F. E 1 E 2 E 3

    REGISTROS

    T

    RENDIMIENTO

    Un procesador rinde ms cuando es ms rpido ------> menor tiempo

    medida de rendimiento -----> Tiempo

    Definiremos:

    - Tiempo de ciclo: Tc = max (ti) - Tiempo de evaluacin de una funcin = n de etapas * Tc - T : Tiempo de evaluacin de una funcin sin segmentar

    Objetivo:

    - Ti = Tj i,j El tiempo de ciclo ser el de la peor etapa. No sirve de nada mejorar una etapa sino sepueden mejorar igual todas.

    - Minimizar TiFactores que reducen el rendimiento:

  • - Factores tecnolgicos: -Tiempo de carga de los registros ----> Ti > T -Desplazamiento del reloj (clok skew) (*)

    - Factores de diseo y utilizacin: -Particin en etapas inadecuadas -Riesgo por dependencia de datos, surgen cuando una instruccin depende de los

    resultados de una instruccin anterior de forma que ambas no podrn ejecutarse de forma solapada.

    (*) Clock skew: El clock debera llegar a todas las etapas en el mismo instante perodebido a diferentes factores fsicos (cableado,carga,drivers....) se produce undesplazamiento temporal en la llegada del clock a cada etapa.

    Riesgos estructurales

    Surgen del conflicto de los recursos, cuando el hardware no puede soportar todas lascombinaciones posibles de instrucciones en ejecuciones solapadas simultneamente.

    Ejem: pedir a una ALU que realice el clculo de una direccin efectiva y una resta almismo tiempo.

    Control de entradas inadecuadas

    Surge de la segmentacin de saltos y otras instrucciones que cambian el PC.

    Ejemplos:

    - Sumador segmentado: CPA (Sumador con propagacin de Carry)

    F A F A F A F A

    - Descomponer en etapas. Separar con registros

  • F A

    F A

    F A

    F A

    Calcular el tiempo que se tarda, para cada caso, en realizar 1 suma sabiendo que eltiempo de propagacin de una puerta lgica de 2 entradas es " " y el de un registro" L".

    F A

    a b Ci00 01 11 10

    a b

    0 1

    1

    1 1 1

    a b Ci S Ci+10 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

    S = a + b + Ci

    Ci+1 = ab + aCi + bCi = ab + Ci(a + b)

    Ci

    SCi+1

  • a bCi

    Z

    Z

    Z

    3 Z

    - Sumador sin segmentar: TNS = 3 * 4

    - Sumador segmentado: TS = (3 + L) 4

    Si queremos realizar 100 sumas:

    - TNS = (3 * 4) 100 = 1200

    - TS = (3 + L) 4 + 99(3 + L) = (12 + 297) + (99 + 4) L = 309 + 103 L

    Si suponemos = L

    - TNS (100) = 1200 Aceleracin = TNS / TS = 1200 /412 3 veces - TS (100) = 412

    * Ejemplo 2:

    - Tenemos una mquina no segmentada con 5 pasos de ejecucin cuya duraciones son50ns, 50ns, 60ns y 50ns. Suponer que debido al tiempo de preparacin y aldesplazamiento del reloj (clock Skew), segmentar la mquina aade 5ns de gasto encada etapa de ejecucin. Calcular la aceleracin que conseguimos con la segmentacin en la frecuencia deejecucin de las instrucciones.

    -Solucin:

    - No segmentada: Tiempo medio de instruccin = 50 + 50 +60 + 50 +50 = 260ns - Segmentada: El reloj debe ir a la velocidad de la etapa ms lenta y debe tener en

    cuenta el gasto -----> 60 + 5 = 65ns

  • 50 50 60 50 50 50 50 60 50 50 50 50 60 50 50

    Instruccin i Instruccin i+1 Instruccin i +2

    260 260 260

    Instruccin i

    Instruccin i+1

    Instruccin i+2

    60 60 60 60 60

    60 60 60 60 60

    60 60 60 60 60

    65 65 65 65 65

    A =T medio por inst. no seg.

    T medio por inst. seg.=

    260

    65= 4

    CLASIFICACIN DE LA SEGMENTACIN:

    - Versatilidad

    - UNIFUNCIN ----> Sumador - MULTIFUNCIN ----> Procesador

    - Utilizacin

    - ESTTICA : Slo un tipo de operacin en un instante. - DINMICA: Diferentes operaciones en ejecucin a la vez.

    Nosotros estudiaremos:

    SEGMENTACIN MULTIFUNCIN ESTTICA

  • 2.1.2 - DISEO DEL CONTROL DE ENTRADA

    OBJETIVO: Pretendemos optimizar la productividad entendindose por productividad(throughput).

    th = 1 / tc recordar que tc ----> tiempo de ciclo

    tiempo en evaluar una funcin tc = ---------------------------------------

    n de etapas

    Si n de etapas aumenta -----> tc disminuye -----> th aumenta

    Ejemplo:

    50 50 50

    50 50 50

    50 50 50

    50 50 50 25 25 25 25 25 25

    25 25 25 25 25 25

    25 25 25 25 25 25

    25 25 25 25 25 25

    tc = 25tc= 50

    150 150

    Cada 50ns tengo un resultado Cada 25ns tengo un resultado

    Esto se consigue realizando una poltica de "scheduling" ---> control o planificacin deiniciaciones (principio de la evaluacin de una funcin).

    Hiptesis a considerar:

    1.- El tiempo de ejecucin de cada etapa es mltiplo del tiem

Search related