Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-

Slides:



Advertisements
Presentaciones similares
Procesadores Superescalares
Advertisements

El modelo de Von Neumann
Arquitectura de Computadores I
TEMA 3 ILP, Panificación dinámica, Predicción de saltos, Especulación
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Scheduling dinámico Scoreboarding.
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
PROCESADORES SUPERESCALARES
Predicción de saltos.
Departamento de Ingeniería de Sistemas Universidad de Antioquia
Departamento de Ingeniería de Sistemas Universidad de Antioquia
PROCESADORES SUPERESCALARES Y VLIW
Arquitectura de Computadores
Pipelines: Riesgos.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
El procesador: la ruta de datos y el control (II Parte)
SEGMENTACIÓN DEL CAUCE
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
EMISION MULTIPLE DE INSTRUCCIONES
Composición Interna de un Procesador
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
ISA (Instruction Set Architecture)
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
Tema 10: Gestión de Memoria
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Unidad 2: Organización del CPU
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
INGENIERIA DE COMPUTADORES II
Unidad 9: Pipelines Complejos
Tema 4. Condiciones para el paralelismo: Dependencias
Programación en los procecesadores Intel® Multi Core.
Instrucciones: FORMATO DE INSTRUCCIONES
Unidad 2: Segmentación 2.7. Dependencias de Datos Docente: Ing. José Díaz Chow.
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Segmentación No Lineal
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Soporte HW para Administración de Memoria Cecilia Hernández
Scheduling dinámico Algoritmo de Tomasulo.
Organización de Computadoras
Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento-
Funcionamiento de la CPU
Organización del Computador I Verano Excepciones Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004Profesora Borensztejn.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Diseño de la Unidad de Control Multiciclo: Microprogramación
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas,
Tema 2: Lenguaje máquina
Tema 2. CPU: Introducción
Organización del Computador
Departamento de Ingeniería de Sistemas Universidad de Antioquia
“Organización y Arquitectura de Computadores” William Stallings
Sistemas Operativos Avanzados
Cap. 6: Pipelining. Encauzamiento de procesadores
RENDIMIENTO DEL COMPUTADOR
PROCESADORES SUPERESCALARES
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
Santiago Restrepo Rodríguez
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Hiperpipeline Superescalares Arquitectura de Computadoras 2012.
Scheduling dinámico: algoritmo de Tomasulo
Scheduling dinámico: algoritmo de Tomasulo
Transcripción de la presentación:

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Tema 9. Planificación dinámica de instrucciones II: Algoritmo de Tomasulo 1 LUIS ENRIQUE MORENO LORENTE RAÚL PÉRULA MARTÍNEZ ALBERTO BRUNETE GONZALEZ DOMINGO MIGUEL GUINEA GARCIA ALEGRE CESAR AUGUSTO ARISMENDI GUTIERREZ JOSÉ CARLOS CASTILLO MONTOYA Departamento de Ingeniería de Sistemas y Automática Organización de Computadores

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Paralelismo a nivel de instrucción (ILP) en SW o HW. Paralelismo al nivel de bucle es más fácil de ver. Las dependencias del paralelismo SW definidas por programa se convierten en riesgos si el HW no puede resolverlas. Dependencias SW: sofisticación del compilador determina si el compilador puede desenrollar bucles. Las dependencias de Memoria son las más difíciles de determinar. HW explotando el ILP. Funciona bien cuando no se pueden conocer las dependencias en run time. El código para una máquina se ejecuta bien en otras. Idea clave del Scoreboard: permitir a las instrucciones detrás de una burbuja que prosigan (Decode => Issue instr & read operands). Permitir la ejecución out-of-order => finalización out-of-order (completion). Etapa ID verifica los riesgos estructurales & dependencias de datos. 2 REVISIÓN: SUMARIO

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Limitaciones del scoreboard: No hay hardware para forwarding. Limitado a instrucciones en bloques básicos (secuencias de código sin saltos) (ventanas pequeñas). Pequeño número de unidades funcionales (riesgos estructurales), especialmente unidades enteras/load store. No se emite en caso de riesgo estructural. Se espera por los riesgos WAR. Previene los riesgos WAW. No permite que dos instrucciones terminen el mismo ciclo. No permite manejar unidades funcionales segmentadas. Mejoras Una mejora fácil de introducir es permitir que el algoritmo pueda manejar unidades funcionales segmentadas. 3 SCOREBOARD RESUMEN

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Desarrollado para el IBM 360/91 3 años después del CDC 6600 (1966) Objetivo: Obtener altas prestaciones sin utilizar compiladores especiales Diferencias entre IBM 360 & CDC 6600 ISA IBM tiene sólo 2 especificadores de registro/instr vs. 3 en el CDC 6600 IBM tiene 4 FP registros vs. 8 en CDC 6600 ¿Por qué estudiarlos? Conducen al Alpha 21264, HP 8000, MIPS 10000, Pentium II, PowerPC 604, … 4 ALGORITHMO DE TOMASULO

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Control & buffers distribuidos con Unidades Funcionales(FU) en vez del control y buffers centralizado utilizado en scoreboard; Los buffers de las FU se denominan “estaciones de reserva”; contienen los operandos pendientes. Los Registros en las instrucciones son reemplazados por valores o punteros a las estaciones de reserva(RS); esto se denomina renombrado de registros; Evita los riesgos WAR, WAW. Hay más estaciones de reserva que registros, por lo que pueden realizar optimizaciones que los compiladores no pueden. Los resultados de las FU van a las RS, pero no a través de los registros, el Common Data Bus es el que difunde los resultados a todas las FUs. Load y Stores, se tratan como FUs con RSs también. Instrucciones Enteras pueden adelantar a los branches, permitiendo las operaciones FP más allá de los bloques básicos en la cola de FP. 5 TOMASULO VS. SCOREBOARD

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. 6 FP adders Add1 Add2 Add3 FP multipliers Mult1 Mult2 From Mem FP Registers Reservation Stations Common Data Bus (CDB) To Mem FP Op Queue Load Buffers Store Buffers Load1 Load2 Load3 Load4 Load5 Load6 TOMASULO: ORGANIZACIÓN Esquema original

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. Op—Operación a realizar en la unidad (e.g., + or –) Vj, Vk—Valores de los operandos fuente Buffers de Store tienen un campo V, resultado a ser almacenado Qj, Qk—Estaciones de Reserva producen los registros fuente (el valor a escribir) Nota: No hay flags de ready como en Scoreboard; Qj,Qk=0 => ready Los buffers de Store sólo tienen Qi para la estación de reserva RS que produce el resultado Busy—Indica si la estación de reserva or FU esta ocupada Register result status—Indica qué unidad funcional escribirá en cada registro, si es que hay alguno. En blanco cuando no hay ninguna instrucción pendiente que vaya a escribir ese registro. 7 COMPONENTES DE LAS ESTACIONES DE RESERVA

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. 1.Issue —obtiene la instrucción de la cola de Op (si no hay cola del buffer) Si la estación de reserva está libre (no hay riesgo estructural), el control emite la instr & envía los operandos (renombrando los registros). 2.Ejecución —opera sobre los operandos (EX) Cuando ambos operandos están disponibles entonces se ejecuta; Si no están disponibles, se observa el Common Data Bus por el resultado 3.Escritura del resultado —finaliza la ejecución (WB) Escribe en el Common Data Bus para todas las unidades que esperan; marca la estación de reserva como disponible Normal data bus: data + destino ( “ go to ” bus) Common data bus: data + fuente ( “ come from ” bus) 64 bits de datos + 4 bits de dirección fuente de la U.Funcional Escribe si casa con la U. Funcional esperada (produce el resultado) Realiza el broadcast 8 8 ETAPAS DEL ALGORITMO DE TOMASULO

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. 9 IFID FP Mult FP Add Wb Ex FU1 Ex FU2 IS RS FPmult RS FPadd FP Div RS FPdiv Ex FU3 Bus Común de Datos Cache Instr Banco Reg Integer ALU MEM Ex int RS Int Cache Datos CAUCE DLX CON TOMASULO

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. RESUMEN ALGORITMO 10 *Image from J. L. Hennesy and D. Patterson “Computer Arquitecture: A Quantitative Approach”

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. ESTRUCTURA DE DATOS BÁSICA PARA DLX 11 Instr. IfIdIsExWb i1 i2 i3 i4 Instr. status Reg …. r1r1 r2r2 r4r4 r3r3 rmrm Register Result status Clock BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO 12 Instr. IfIdIsExW ld f6,34+,r2 ld f2,45+,r3 multd f0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 1 13 Instr. IfIdIsExW ld f6,34+,r21 ld f2,45+,r3 multd f0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No 1

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 1) 14 Instr ld f6,34+,r2 If ld f2,45+,r3 multd f0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 2 15 Instr. IfIdIsExW ld f6,34+,r212 ld f2,45+,r32 multd f0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No 2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 2) 16 Instr ld f6,34+,r2 IfId ld f2,45+,r3 If multd f0,f2,f4 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 3 17 Instr. IfIdIsExW ld f6,34+,r2123 ld f2,45+,r323 multd f0,f2,f43 subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 Yes 2 No 3 +34r2 EnRs1 Ld

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 3) 18 Instr ld f6,34+,r2 IfIdIs ld f2,45+,r3 IfId multd f0,f2,f4 If subd f8,f6,f2 divd f10,f0,f6 addd f6,f8,f2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 4 19 Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r3234 multd f0,f2,f434 subd f8,f6,f24 divd f10,f0,f6 addd f6,f8,f2 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 Yes 1 Yes 2 No 4 +34r2 EnRs2 Ld +45r3 EnRs1

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 4) 20 Instr ld f6,34+,r2 IfIdIsEx ld f2,45+,r3 IfIdIs multd f0,f2,f4 IfId subd f8,f6,f2 If divd f10,f0,f6 addd f6,f8,f2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 5 21 Instr. IfIdIsExW ld f6,34+,r21235 ld f2,45+,r multd f0,f2,f4345 subd f8,f6,f245 divd f10,f0,f65 addd f6,f8,f2 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 Yes 0 Yes 1 No Yes 3o No 5 +34r2 EnRs2 Ld +45r3 EnRs1 Mulf4 EnRs2 MuRs1

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 5) 22 Instr ld f6,34+,r2 IfIdIsExM ld f2,45+,r3 IfIdIsEx multd f0,f2,f4 IfIdIs subd f8,f6,f2 IfId divd f10,f0,f6 If addd f6,f8,f2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 6 23 Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r32346 multd f0,f2,f4345 subd f8,f6,f2456 divd f10,f0,f656 addd f6,f8,f26 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 0 Yes 2o No Yes 3o No 6 f6 EnRs2 Sub Ld+45r3 Mulf4 EnRs2 MuRs1 EnRs2 AdRs2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 6) 24 Instr ld f6,34+,r2 IfIdIsExMW ld f2,45+,r3 IfIdIsExM multd f0,f2,f4 IfIdIs o subd f8,f6,f2 IfIdIs divd f10,f0,f6 IfId addd f6,f8,f2 If

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 7 25 Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f divd f10,f0,f6567 addd f6,f8,f267 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 0 Yes 1 No Yes 2 No Yes 4o No 7 f6Sub Ld+45r3 Mul f4 MuRs1AdRs1 Div MuRs1 f6 DvRs1 f2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 7) 26 Instr ld f6,34+,r2 IfIdIsExMW ld f2,45+,r3 IfIdIsExMW multd f0,f2,f4 IfIdIsoEx m subd f8,f6,f2 IfIdIsEx a divd f10,f0,f6 IfIdIs addd f6,f8,f2 IfId

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 8 27 Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f24568 divd f10,f0,f6567 addd f6,f8,f2678 Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 0 Yes 2o Yes 1 No Yes 4o No 8 f6Sub Mulf4 MuRs1 AdRs1 Div MuRs1 f6 DvRs1 f2 Addf2 AdRs1 AdRs2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 8) 28 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m subd f8,f6,f2 IfIdIsEx a divd f10,f0,f6 IfIdIso addd f6,f8,f2 IfIdIs

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO 9 29 Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f43459 subd f8,f6,f divd f10,f0,f6567 addd f6,f8,f Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 1 Yes 0 No Yes 4o No 9 f8 Mulf4 MuRs1 Div MuRs1 f6 DvRs1 f2 Addf2 AdRs2

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 9) 30 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m subd f8,f6,f2 IfIdIsEx a W divd f10,f0,f6 IfIdIsoo addd f6,f8,f2 IfIdIsEx d

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f divd f10,f0,f addd f6,f8,f Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 0 No Yes 3 No 10 f4 Divf6 DvRs1 Addf2 AdRs2 f8 f0

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 10) 32 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m W subd f8,f6,f2 IfIdIsEx a W divd f10,f0,f6 IfIdIsooEx d addd f6,f8,f2 IfIdIsEx a

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f divd f10,f0,f addd f6,f8,f Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 2 No 11 Divf6 DvRs1 f0

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 11) 34 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m W subd f8,f6,f2 IfIdIsEx a W divd f10,f0,f6 IfIdIsooEx d addd f6,f8,f2 IfIdIsEx a W

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f divd f10,f0,f addd f6,f8,f Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 1 No 11 Divf6 DvRs1 f0

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 11) 36 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m W subd f8,f6,f2 IfIdIsEx a W divd f10,f0,f6 IfIdIsooEx d addd f6,f8,f2 IfIdIsEx a W

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f divd f10,f0,f addd f6,f8,f Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No Yes 0 No 13 Divf6 DvRs1 f0

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 13) 38 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m W subd f8,f6,f2 IfIdIsEx a W divd f10,f0,f6 IfIdIsooEx d addd f6,f8,f2 IfIdIsEx a W

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. DLX CON TOMASULO: EJEMPLO → CICLO Instr. IfIdIsExW ld f6,34+,r ld f2,45+,r multd f0,f2,f subd f8,f6,f divd f10,f0,f addd f6,f8,f Instr. status Clock Reg …. r0r0 r1r1 r3r3 r2r2 rmrm Register Result status …. f0f0 f2f2 f6f4fnfn f8 f10 BusyOp Uf Entera Rs1 VjVkQjQk Uf FP Add Rs1 Uf FP Div Rs1 Uf FP Mult Rs1 Functional Unit status Uf Entera Rs2 Uf FP Add Rs2 Uf FP Mult Rs2 Uf FP Div Rs2 No 14 f4

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EJEMPLO → CRONOGRAMA (CICLO 14) 40 Instr ld f6,34+,r2 IfIdIsEx i MW ld f2,45+,r3 IfIdIsEx i MW multd f0,f2,f4 IfIdIsoEx m W subd f8,f6,f2 IfIdIsEx a W divd f10,f0,f6 IfIdIsooEx d W addd f6,f8,f2 IfIdIsEx a W

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. TOMASULO VS. SCOREBOARD (IBM 360/91 V. CDC 6600) 41 Unidades funcionales segmentadasMultiples Unidades Funcionales (6 load, 3 store, 3 +, 2 x/÷)(1 load/store, 1 +, 2 x, 1 ÷) tamaño de ventana: 14 instrucciones5 instrucciones No se emite si existe riesgo estructuraligual WAR: el renombrado los evitadetiene la finalización WAW: el renombrado los evitadetiene la finalización Los resultados se difunden desde las UFRegistros de Write/read Control: estaciones de reserva (distribuido)scoreboard central

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. TOMASULO: INCONVENIENTES Complejidad Retardos de 360/91, MIPS 10000, Alpha 21264, IBM PPC 620. Muchas cargas de registros asociativos por ciclo. Prestaciones limitadas por el Common Data Bus. Cada CDB debe ir a múltiples unidades funcionales. Alta capacitancia, alta densidad de cableado. El número de unidades funcionales que pueden ser completados en un ciclo está limitado a una. Múltiples CDBs => más lógica en UF para los stores asociativos. Interrupciones no-precisas. 42

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. EL ALGORITMO DE TOMASULO OFRECE DOS GRANDES VENTAJAS (1) La lógica de detección de riesgos está distribuida Estaciones de reserva distribuidas y bus común de datos (CDB) Si múltiples instrucciones esperan por un único resultado, y cada instrucción tiene otro operando, entonces las instrucciones pueden ser activadas simultáneamente emitiendo este resultado por el bus común de datos Si se usase un banco de registros centralizado, las unidades tendrían que leer los resultados del banco de registros cuando los buses estuviesen disponibles (2) La eliminación de las detenciones por riesgos WAW y WAR Renombrado de registros en las estaciones de reserva Almacenar operandos en las estaciones de reserva tan pronto como están disponibles. 43

Este obra se publica bajo unalicencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España.licencia de Creative Commons Reconocimiento- NoComercial-CompartirIgual 3.0 España. TOMASULO: SUMARIO Estaciones de reserva: renombrado en un conjunto mayor de registros + buffers de operandos fuente. Previene que los registros sean cuellos de botella. Evita los riesgos WAR, WAW del Scoreboard. Permite desenrollado de bucles en in HW. No está limitado a bloques básicos (secuencia de código sin saltos) (unidades enteras se adelantan, más allá de los branches). Ayuda en las “cache misses” también. Últimas contribuciones. Planificación dinámica. Renombrado de registros. Desambiguación Load/store. 360/91 descendientes: Pentium II; PowerPC 604; MIPS R10000; HP-PA 8000; Alpha