Arquitectura e Ingeniería de Computadores



Documentos relacionados
Procesadores segmentados. El DLX.

Arquitectura de Computadores

Arquitectura t de Computadores

EC - Bibliografía EC -

Pipeline (Segmentación)

Pipelining o Segmentación de Instrucciones

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

MICROPROCESADOR. Multiciclo

UNIDAD 5: Mejora del rendimiento con la segmentación.

Microarquitectura: DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE MICROARQUITECTURA: FLUJO DE DATOS Y CONTROL DEL MICROPROCESADOR

Arquitectura t de Computadores Clase 10: Diseño del microprocesador monociclo pt.2

Arquitectura Segmentada: Conceptos básicosb

Estructura de Computadores

Qué es Pipelining? Es una técnica de implementación en la que se superpone la ejecución de varias instrucciones.

Plataformas de soporte computacional: arquitecturas avanzadas,

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Tema 4: Diseño de un microprocesador

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso Introducción a la segmentación de Instrucciones.

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

Diseño de la ruta de datos y la unidad de control

UNIDAD 4: El procesador: Camino de los datos y Control.

Ejercicios. 5.2 [5] < 5.3> Este ejercicio es similar al 5.1, pero ahora considere los fallos causados por permanecer en 1 (la señal es siempre 1).

Arquitecturas RISC. Arquitectura de Computadoras y Técnicas Digitales - Mag. Marcelo Tosini Facultad de Ciencias Exactas - UNCPBA

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

Procesador Segmentado

Ingeniería Informática. Ampliación de Estructura de Computadores. Curso

Pipeline o Segmentación Encausada

Introducción a paralelismo a nivel de instrucción

Tema 2. Diseño del repertorio de instrucciones

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

PRACTICA 2 Ejercicio 2

Arquitectura de Computadores Problemas (hoja 2). Curso

3. SEGMENTACIÓN DEL CAUCE

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

COMPUTADORES SEGMENTADOS (DLX)

Capítulo 4 Gestión de memoria

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

op rs rt inmediato 6 bits 5 bits 5 bits Tipo J: Salto incondicional op

Entorno de Ejecución del Procesador Intel Pentium

PIPELINING: Antes de adentrarnos en el tema, veremos una analogía de un pipeline:

Fundamentos de los Computadores Grado en Ingeniería Informática (hasta final del diseño monociclo)

Arquitectura de Computadores II Clase #16

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Organización Básica de un Computador y Lenguaje de Máquina

Planificación estática

- La implementación es responsable de: Los ciclos de reloj por instrucción (CPI). La duración del ciclo de reloj.

Arquitectura de Computadores

Apellidos Nombre Grupo. Arquitectura e Ingeniería de Computadores. Examen Final (Teoría parte primer cuatrimestre). 18/06/2012

Carga de la instrucción / Decodificación y carga de registros (Figura 37) Instrucciones de salto condicional (Figura 40)

Diseño Procesador Monociclo

Arquitectura de Computadores

Procesadores Superescalares: Paralelismo Implícito a Nivel de Instrucción

Temporización monociclo. Componentes de la ruta de datos. Ensamblaje de la ruta de

Arquitectura de Computadores II Clase #5

Tutorías con Grupos Reducidos (TGR) Sesión 2: Paralelismo a Nivel de Instrucción

Estructura y Tecnología de Computadores. Módulo G. Estructura del procesador. Tema 16. Diseño de la ruta de datos y la unidad de control

Sesión 11 Implementación de sentencias condicionales

Departamento de Automática

1. Objetivo y evolución de los procesadores ILP.

16/04/2012. Introducción. Construyendo el Datapath. Esquema de implementación Simple. Unidad de Control. Arquitectura de Computadoras Primavera 2012

Arquitectura de Computadoras. Clase 4 Segmentación de Instrucciones

Capítulo 4 Procesos con estructuras de repetición

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

La Unidad de Control y el Camino de Datos

Tema 7: Esquema del Funcionamiento de una Computadora. Escuela Politécnica Superior Ingeniería Informática Universidad Autónoma de Madrid

SEGMENTACIÓN EN LA EJECUCIÓN DE INSTRUCCIONES

Capitulo V Administración de memoria

Segmentación de instrucciones

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Arquitectura de Computadores

Definición de prestaciones

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Organización de Computadoras. Turno Recursantes Clase 8

SOLUCION Examen final IC parte B

Tarea 4.2 Memoria Virtual

La memoria principal. Los subsistemas de E/S. Los buses del sistema

Centro de Capacitación en Informática

Lo que definimos como CPU (Central Process Unit) o Unidad Central de Proceso, está estructurado por tres unidades operativamente diferentes:

Ensamblador. Interrupciones. Dentro de una computadora existen dos clases de interrupciones:

PARTE II: Programación en ensamblador

Tema 1: PROCESADORES SEGMENTADOS

TEMA 3. EL PROCESO DE COMPILACIÓN, DEL CÓDIGO FUENTE AL CÓDIGO MÁQUINA

ARQUITECTURA DE COMPUTADORAS

FUNDAMENTOS DE COMPUTADORES 18 de junio de Examen parcial del 2º cuatrimestre.

Circuitos Digitales II y Laboratorio Electrónica Digital II y Laboratorio

ELO311 Estructuras de Computadores Digitales. Pipeline (Segmentación)

Arquitectura de Computadores Problemas (hoja 2). Curso

Arquitectura Von Neumann

Ejercicios para el 3er parcial

Forwarding versus Stalling

Unidad 1: Conceptos generales de Sistemas Operativos.

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

Ilustrar el mecanismo de llamadas al sistema para solicitar servicios al sistema operativo.

18. Camino de datos y unidad de control

Computación I Representación Interna Curso 2011

GUIA RÁPIDA UNIDAD DE DEVICENET CJ1W-DRM21 ESTE MANUAL CONTIENE: 1.- CARACTERÍSTICAS. 2.- NOMENCLATURA Y FUNCIONES. 3.- ÁREAS CIO Y DM.

Segmentación: Mejora del rendimiento. IEC UTM Moisés E. Ramírez G. Segmentación

ARITMÉTICA EN PUNTO FLOTANTE

Examen de Arquitectura de Computadores 2 22 de febrero del 2011

Transcripción:

Arquitectura e Ingeniería de Computadores Tema 2 Procesadores Segmentados Curso 2-22

Contenidos Introducción: Recordatorio MPIS-DLX Excepciones y control Segmentación Riesgos: Estructurales, de datos y de control Segmentación del procesador. Diseño del control Diseño del control con riesgos Excepciones: una segunda mirada Operaciones multi-ciclo Un Ejemplo: MIPS R4 Bibliografía o o o Apéndice A [HePa7] Capítulos 4 y 5 de [SiFK97] Simulador WinDLX AIC Tema 2 F. Tirado / R. Hermida (2-2) 2

Arquitectura MIPS (DLX) Recordatorio Todas las instrucciones del repertorio del MIPS tienen 32 bits de anchura, repartidas en 3 formatos de instrucción diferentes: 3 26 2 6 6 Tipo R: op rs rt rd shamt funct aritmético-lógicas 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits Tipo I: 3 26 2 6 con memoria op rs rt inmediato salto condicional 6 bits 5 bits 5 bits 6 bits 3 26 Tipo J: salto incondicional op dirección 6 bits 26 bits El significado de los campos es: op: identificador de instrucción rs, rt, rd: identificadores de los registros fuentes y destino shamt: cantidad a desplazar (en operaciones de desplazamiento) funct: selecciona la operación aritmética a realizar inmediato: operando inmediato o desplazamiento en direccionamiento a registro-base dirección: dirección destino del salto AIC Tema 2 F. Tirado / R. Hermida (2-2) 3

Ruta de datos ( multiciclo ) Recordatorio PCWrite IorD MemWrite IRWrite RegDst AWrite SrcA op OutWrite RegWrite Control de PC ADDR DW Memoria DR IR Instrucción [25-2] Instrucción [2-6] Instrucción [5-] RA RB RW busw Banco de registros busa busb A B 4 2 3 Zero out MemRead MDR MDRWrite Instruc. [5-] MemtoReg Extensión de signo <<2 BWrite SrcB AIC Tema 2 F. Tirado / R. Hermida (2-2) 4

Recordatorio Diagrama de estados del controlador multiciclo Búsqueda de instrucción IR Memoria( PC ) PC PC + 4 Decod. REG A BR( rs ) B BR( rt ) Ejecución out A funct B 7 op = lw out A + SignExt( inmed ) 2 5 out A + SignExt( inmed ) A - B 9 Zero = Zero = Acceso a memoria 3 MDR Memoria( out ) 6 Memoria( out ) B Write-back BR( rd ) out 8 BR( rt ) MDR 4 Total 8 PC PC + 4 SignExt( inmed ) AIC Tema 2 F. Tirado / R. Hermida (2-2) 5

Recordatorio Microprogramación Implementa la instrucciones mediante un procesador simple que las interpreta ( microprograma ) Es una buena alternativa para implementar repertorios de instrucciones complejos ( CISC) Penaliza el tiempo de ejecución. Hay que leer la memoria de control cada ciclo Existe otra alternativa? Podrían los compiladores generar directamente microinstrucciones? La mayoría de los programas utilizan instrucciones simples. Los microprogramas podían almacenarse en RAM? Esta memoria RAM podría ser una cache de microinstrucciones Conclusión: Eliminar la interpretación mediante un microprograma y compilar directamente a un lenguaje maquina equivalente a las microinstrucciones. Juego de instrucciones simple ( RISC ) AIC Tema 2 F. Tirado / R. Hermida (2-2) 6

Excepciones y control Dos tipos Interrupciones Se producen a causa de sucesos externos al procesador. Son asíncronas a la ejecución del programa. Se pueden tratar entre instrucciones Traps Se producen por causas internas. Overflow, errores, fallos de pagina Son síncronas con la ejecución del programa La condiciones deben ser almacenadas. El programa debe ser abortado o continuado desde esa instrucción Requerimientos Tratamiento dentro del control Salvar el estado ( CP y la causa ) Stack 68k, x86 Registros específicos CPE, Causa AIC Tema 2 F. Tirado / R. Hermida (2-2) 7

Nuevo diagrama de estados Excepciones y control Búsqueda de instrucción Decod. REG PCE PC-4 PC Dir_Excp causa 2 overflow IR Memoria( PC ) PC PC + 4 A BR( rs ) B BR( rt ) Instrucción no definida PCE PC-4 PC Dir_Excp causa Ejecución out A funct B 7 op = lw out A + SignExt( inmed ) 5 2 out A + SignExt( inmed ) 9 Zero = A - B Zero = Acceso a memoria 3 MDR Memoria( out ) 6 Memoria( out ) B Write-back BR( rd ) out 8 BR( rt ) MDR 4 PC PC + 4 SignExt( inmed ) interrupción PCE PC PC Dir_Excp AIC Tema 2 F. Tirado / R. Hermida (2-2) 8

Segmentación Etapas de una instrucción (Load) Ciclo Ciclo2 Ciclo3 Ciclo4 Ciclo5 Ifetch Reg/Dec Ejecu Mem Escri Ifetch ( búsqueda). Lee una instrucción desde la memoria Reg/dec. Decodifica la instrucción y lee registros Ejecuta. Calcula dirección de memoria Mem. Lee el dato de la memoria Escri. Escribe el dato en el registro Segmentación IFetch Reg/d Ejecu Mem Escri IFetch Reg/d Ejecu Mem Escri Tiempo IFetch Reg/d Ejecu Mem Escri IFetch Reg/d Ejecu Mem Escri Programa IFetch Reg/d Ejecu Mem Escri IFetch Reg/d Ejecu Mem Escri AIC Tema 2 F. Tirado / R. Hermida (2-2) 9

Segmentación Monociclo, multiciclo, segmentado Clk Monociclo Ciclo Ciclo2 Load Store No usado Ciclo Ciclo2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8 Ciclo9 Ciclo Clk Multiciclo Load Ifetch Reg Exec Mem Wr Store Ifetch Reg Exec Mem R-type Ifetch Segmentado Load Ifetch Reg Exec Mem Wr Store Ifetch Reg Exec Mem Wr R-type Ifetch Reg Exec Mem Wr Ejemplo instrucciones Monociclo 45ns/ciclo x = 45 ns Multiciclo ns/ciclo x 4.6 CPI x =46 ns Segmentado ns x (CPIx+4 llenado) =4 ns AIC Tema 2 F. Tirado / R. Hermida (2-2)

Riesgos Segmentación Situaciones que impiden que cada ciclo se inicie la ejecución de una nueva instrucción Tipos: Estructurales. Se producen cuando dos instrucciones tratan de utilizar el mismo recurso en el mismo ciclo. De datos. Se intenta utilizar un dato antes de que este preparado. Mantenimiento del orden estricto de lecturas y escrituras. De control. Intentar tomar una decisión sobre una condición todavía no evaluada. Los riesgos se deben detectar y resolver AIC Tema 2 F. Tirado / R. Hermida (2-2)

Riesgos estructurales. Segmentación Objetivo: Ejecutar sin conflicto cualquier combinación de instrucciones Mem escri.. Ejecu Mem escri Reg Ejecu Mem Ifetch Reg Ejecu Ifetch Reg.. Memoria. Leer una instrucción. Leer o escribir un operando Registros. Dos lecturas, una escritura. Calculo de operando, dirección, condición, actualización de PC AIC Tema 2 F. Tirado / R. Hermida (2-2) 2

Segmentación: Riesgos estructurales Nueva Ruta de datos del DLX para ejecución segmentada (idea inicial) IF:Búsqueda de instrucción ID: Decodificación/ Lectura de Reg EX: Ejecución/ Calculo de Dir MEM: Acceso a Memoria WB Escribe Reg Sumador <<2 PC +4 Sumador ADDR Memoria instrucciones DR RA RB RW busw Banco de registros busa busb Zero ADDR DW Memoria datos DR Con la duplicación de recursos hecha no deben aparecer riesgos estructurales Extensión de signo AIC Tema 2 F. Tirado / R. Hermida (2-2) 3

Segmentación : Riesgos de datos Se produce cuando por la segmentación, el orden de LECTURA de los operandos y la ESCRITURA de resultados se modifica respecto al especificado por el programa. Se produce un riesgo si existe dependencia entre instrucciones que se ejecutan concurrentemente. Si a = b + c. Sj c = a + e. Sk a = d + e Dominio: operandos de la instrucción Rango: resultado de la instrucción Situaciones: i precede a j D( i ) D( j ) φ no RIESGO D( i ) R( j ) φ riesgo EDL (WAR) R( i ) D( j ) φ riesgo LDE (RAW) R( i ) R( j ) φ riesgo EDE (WAW) AIC Tema 2 F. Tirado / R. Hermida (2-2) 4

Riesgos. D( i ) R( i+? ) φ Riesgos de datos EDL (WAR) R( i ) R( i+? ) φ EDE (WAW) o Se leen los registros en el final de la segunda etapa o Todos las instrucciones escriben en la ultima etapa o Todas las instrucciones tienen igual duración Tiempo (ciclos) Inst i Inst i+ Im Reg Dm Reg Im Reg Dm Reg Inst i+2 Im Reg Dm Reg AIC Tema 2 F. Tirado / R. Hermida (2-2) 5

Riesgos de datos Riesgo R( i ) D( i+? ) φ LDE (RAW) Tiempo(ciclos) 2 3 4 5 6 7 8 i add r,r2,r3 Im Reg Dm Reg i+ sub r4, r,r3 Debe esperar dos ciclos i+2 and r6, r,r7 Debe esperar un ciclo i+3 or r8, r,r9 Puede progresar? i+4 xor r, r,r Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Cuando esta listo el operando? AIC Tema 2 F. Tirado / R. Hermida (2-2) 6

Riesgo R( i ) D( i+? ) φ Riesgos de datos LDE (RAW). Cortocircuito. Enviar el dato a las etapas que lo necesitan, cuanto esta listo Tiempo(ciclos) 2 3 4 5 6 7 8 i add r,r2,r3 Im Reg Dm Reg i+ sub r4, r,r3 Im Reg Dm Reg i+2 and r6, r,r7 Im Reg Dm Reg i+3 or r8, r,r9 Im Reg Dm Reg i+4 xor r, r,r Im Reg Dm Reg Se pueden ejecutar todas las instrucciones sin problemas AIC Tema 2 F. Tirado / R. Hermida (2-2) 7

Riesgos de datos Riesgo R( i ) D( i+? ) φ Caso del Load LDE (RAW). Tiempo(ciclos 2 3 4 5 6 7 8 lw r,(r2) Im Reg Dm Reg sub r4,r,r3 Im Reg Dm Reg No se puede resolver con el cortocircuito La instrucción dependiente del Load debe esperar un ciclo AIC Tema 2 F. Tirado / R. Hermida (2-2) 8

Riesgos de control Se debe evaluar la condición y obtener el nuevo valor del PC La evaluación de la condición y el calculo del nuevo PC se realizan en la etapa de ejecución Si el salto se toma, el destino del salto se carga en PC en la etapa Mem Tiempo (ciclos) 2 3 4 5 6 7 8 Add r,r2,r3 Genera la condición Im Reg Mem Reg Beq r, loop Im Reg Mem Reg Load Im Reg Mem Reg Solución esperar tres ciclos para la instrucción que sigue al salto Im Reg Mem Reg AIC Tema 2 F. Tirado / R. Hermida (2-2) 9

Riesgos de control Solución: Desplazar el calculo de la dirección y la evaluación de la condición a la etapa ID Tiempo (ciclos) 2 3 4 5 6 7 8 Add r,r2,r3 Genera la condición Im Reg Mem Reg Beq r, loop Im Reg Mem Reg Load Im Reg Mem Reg Solo se espera un ciclo para la instrucción que sigue al salto Im Reg Mem Reg AIC Tema 2 F. Tirado / R. Hermida (2-2) 2

Riesgos de control Reinterpretar el comportamiento de los saltos: Salto retardado Se efectúa después de la siguiente instrucción La instrucción siguiente al salto se ejecuta siempre Tiempo (ciclos) Add r,r2,r3 Genera la condición Im Reg Mem Reg Beq r, loop Im Reg Mem Reg cualquier instrucción no dependiente del salto Im Reg Mem Reg Load Im Reg Mem Reg Si es posible encontrar una instrucción ciclos de penalización AIC Tema 2 F. Tirado / R. Hermida (2-2) 2

Segmentación del procesador Nueva Ruta de datos del DLX para ejecución segmentada IF:Búsqueda de instrucción ID: Decodificación/ Lectura de Reg EX: Ejecución/ Calculo de Dir MEM: Acceso a Memoria WB Escribe Reg ADDR Memoria instrucciones DR RA RB RW busw Banco de registros busa busb Zero Extensión de signo +4 Sumador <<2 Sumador IF/ID ID/EX EX/MEM MEM/WB PC ADDR DW Memoria datos DR AIC Tema 2 F. Tirado / R. Hermida (2-2) 22

Diseño del control Ejecución de instrucciones: diagrama RT IR <- Mem[PC]; PC < PC+4; A <- R[rs]; B< R[rt] Tipo R Lw Sw Beq S < A funct B; S < A + SigExt( Inme); S < A + SigExt( Inme); Evaluar Cond PCSalto < PC+SX R[rd] < S; M < Mem[S] Mem[S] <- B If Cond PC < PCSalto R[rd] < M; Recordatorio rs = Ins[25-2] rt = Ins[2-6] rd = Ins[5-] Inme = Ins[5-] AIC Tema 2 F. Tirado / R. Hermida (2-2) 23

Diseño del control Las instruciones: Load (lw) y tipo-r Load. Tiene 5 fases y cada una utiliza una de las etapas Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Clock lw Ifetch Reg/Dec Ejecu Mem Escri lw Ifetch Reg/Dec Ejecu Mem Escri Tipo-R. Tiene 4 fases y no usa la memoria de datos Clock Ciclo Ciclo2 Ciclo 3 Ciclo4 Tipo-R Conflicto Clock lw Ifetch Reg/Dec Ejecu Escri Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Ifetch Reg/Dec Ejecu Mem Escri Tipo-R Ifetch Reg/Dec Ejecu Escri Solo una puerta en el bloque de registros AIC Tema 2 F. Tirado / R. Hermida (2-2) 24

Diseño del control Importante. como evitarlo? Cada etapa del procesador puede usarse en cada ciclo por una sola instrucción. Cada instrucción debe usar cada etapa del procesador en la misma fase de ejecución. Solución. Introducir una etapa (Mem) que no hace nada. Clock Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Ciclo6 lw Ifetch Reg/Dec Ejecu Mem Escri Tipo-R Ifetch Reg/Dec Ejecu Mem Escri Store 4 etapas con actividad. Branch cuatro etapas activas Clock Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Sw, Beq Ifetch Reg/Dec Ejecu Mem Escri Sw Beq AIC Tema 2 F. Tirado / R. Hermida (2-2) 25

Diseño del control Ejecución de instrucciones: Diagrama RT modificado IR <- Mem[PC]; PC < PC+4; A <- R[rs]; B< R[rt] Tipo R Lw Sw Beq S < A funct B; S < A + SigExt( Inme); S < A + SigExt( Inme); B < B Evaluar Cond PCSalto < PC[ID/EX]+SX S < S M < Mem[S] Mem[S] <- B If Cond PC < PCSalto R[rd] < S; R[rd] < M; AIC Tema 2 F. Tirado / R. Hermida (2-2) 26

Diseño del control Ruta de datos del DLX con las ordenes de control necesarias PcSrc PC +4 Sumador ADDR Memoria instrucciones DR El Pc y los diferentes registros de desacoplo (IF/ID..) se deben cargar en cada ciclo, por tanto no necesitan orden especifica RA RB RW busw Banco de registros Extensión de signo busa busb <<2 Sumador IF/ID ID/EX EX/MEM MEM/WB PCSalto IR Ins. [5-] Ins. [2-6] Ins. [5-] Reg Write A B AluScr 6 SX Control ctr op Reg Dst 3 Branch S B Zero ADDR DW Memoria datos MemWrite DR MemRead MentoReg M S AIC Tema 2 F. Tirado / R. Hermida (2-2) 27

Diseño del control Señales de control Control de la op funct op ctr (lw) (sw) XXXXXX (beq) (add) (sub) (tipo-r) (and) (or) (slt) El control de la alu se determina por op (que depende del tipo de instrucción) y el campo de función en las instrucciones de tipo-r instrucción Control principal WB M EX WB M Control principal op RegDst Src op MemRead MemWrite Branch RegWrite MemtoReg (lw) (sw) X X (beq) X X (tipo-r) WB EX: Ejecución/ Calculo de Dir MEM: Acceso a Memoria WB Escribe Reg Control segmentado estacionario en los datos IF/ID ID/EX EX/MEM MEM/WB AIC Tema 2 F. Tirado / R. Hermida (2-2) 28

Diseño del control Ruta de datos del DLX con las ordenes de control y control estacionario en los datos PC +4 Sumador ADDR Memoria instrucciones DR IF/ID RA RB RW busw Control principal Reg Write Banco de registros busa busb ID/EX <<2 Sumador AluScr EX/MEM Zero Branch ADDR DW Memoria datos MemWrite DR PcSrc MEM/WB MentoReg Ins. [5-] Ins. [2-6] Extensión de signo 6 Control op MemRead Ins. [5-] Reg Dst AIC Tema 2 F. Tirado / R. Hermida (2-2) 29

Diseño del control Qué facilita el control segmentado? Todas las instrucciones con igual duración Pocos formatos diferente de instrucción Accesos a memoria solo en load y stores Qué dificulta el control segmentado? Riesgos estructurales. Conflictos de recursos Riesgos de datos. Solo LDE Riesgos de control El diseño anterior no tenia en cuenta los riesgos de datos y los riesgos de control los eliminaba con saltos retardados Implementación del cortocircuito Caso del load Mejora en el comportamiento de los saltos. AIC Tema 2 F. Tirado / R. Hermida (2-2) 3

Diseño del control con riesgos Riesgos de datos R( i ) D( i+? ) φ LDE (RAW). Cortocircuito. Enviar el dato a las etapas que lo necesitan, cuanto esta listo Tiempo(ciclos) i add r,r2,r3 i+ sub r4, r,r3 i+2 and r6, r,r7 i+3 Lw r, (r2) i+4 sub r4, r,r3 Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Im Reg Dm Reg Dos caminos de datos: Desde salida (EX/MEM) a entrada Desde la salida de la memoria (MEM/WB) a entrada Información necesaria: Registro a escribir en ultima etapa ( Rd en Tipo-R y Rt en Lw) Registros que se leen en segunda etapa ( Rs y Rt ) AIC Tema 2 F. Tirado / R. Hermida (2-2) 3

Diseñando el control con riesgos Riesgos de datos LDE: Implementación del cortocircuito Cortocircuitos de datos Información de control del cortocircuito ID/EX Indica si se escribe Reg WB EX/MEM Instrucción Control M WB MEM/WB ID: Decodificación/ Lectura de Reg RA RB RW busw Banco de registros busa busb EX A Ex.IR[5:] B Rs Rt Rt Rd EX: Ejecución/ Calculo de Dir Corto A Corto B AluScr M MEM: Acceso a Memoria ADDR DW Memoria datos EX/MEM Rd DR WB WB Escribe Reg MEM/WB Rd Unidad Cortocircuito AIC Tema 2 F. Tirado / R. Hermida (2-2) 32

Diseño del control con riesgos Riesgos de datos LDE: Caso del load Tiempo(ciclos) lw sub r,(r2) r4,r,r3 Im Reg Dm Reg Im Reg Dm Reg Se debe esperar un ciclo a pesar del cortocircuito Tiempo(ciclos) lw r,(r2) Im Reg Dm Reg sub r4,r,r3 Im Reg Burbuja Dm Reg AIC Tema 2 F. Tirado / R. Hermida (2-2) 33

Diseño del control con riesgos Riesgos de datos LDE: Caso del load Solución SW : Anticipar el Load en la planificación de instrucciones que hace el compilador a := b + c d := e - f Antes: LW LW ADD SW LW LW SUB SW Rb,b Rc,c Ra,Rb,Rc a,ra Re,e Rf,f Rd,Re,Rf d,rd Despues: LW LW LW ADD LW SW SUB SW Rb,b Rc,c Re,e Ra,Rb,Rc Rf,f a,ra Rd,Re,Rf d,rd % de load que provocan un ciclo de parada sin planificar planificado tex 25 65 spice 4 42 gcc 23 54 2 4 6 8 AIC Tema 2 F. Tirado / R. Hermida (2-2) 34

Diseño del control con riesgos Solución HW: Detección de riesgos y parada del procesador un ciclo Detector de riesgos Debe actuar en ID impidiendo la carga y lectura de una nueva instrucción Condiciones : Que la instrucción en EX sea un load PC No cargar Memoria de instrucciones No cargar Detector de riesgos Rt Instrucción RA RB Control ID: Decodificación/ Lectura de Reg RW busw Banco de registros bus A busb ID/EX WB M E X Rs Rt Rt Rd EX: Ejecución/ Calculo de Dir AluScr Registros fuentes de la instrucción siguiente Rs y Rt Registro destino del load Rt EX/MEM WB M MEM: Acceso a Memoria ADDR DW Memoria datos DR MEM/WB WB WB Escribe Reg Unidad Cortocircuito AIC Tema 2 F. Tirado / R. Hermida (2-2) 35

Diseño del control con riesgos Riesgos de control Solución: Desplazar el calculo de la dirección y la evaluación de la condición a la etapa anterior Tiempo (ciclos) Add r,r2,r3 Genera la condición Im Reg Mem Reg Beq r, loop Im Reg Mem Reg Parada Burbuja Burbuja Burbuja Burbuja Burbuja Solo se espera un ciclo para la instrucción que sigue al salto (Branch delay slot) Im Reg Mem Reg AIC Tema 2 F. Tirado / R. Hermida (2-2) 36

Diseño del control con riesgos Mejora del comportamiento de los saltos. Solo un ciclo de parada Calculo de la dirección. Operandos disponibles ( Pc y desplazamiento) Calculo de la condición. Unidad de detección de cero IF:Busqueda de instrucción ID: Decodificación/ Lectura de Reg EX: Ejecución/ Calculo de Dir MEM: Acceso a Memoria WB Escribe Reg Mover bloque HW +4 Sumador <<2 Sumador IF/ID ID/EX EX/MEM MEM/WB PC ADDR Memoria instrucciones DR RA RB RW busw Banco de registros bus A busb Zero Extensión de signo ADDR D W Memoria datos D R AIC Tema 2 F. Tirado / R. Hermida (2-2) 37

Saltos retardados Delay slot = ciclo de reloj. La instrucción siguiente al salto se ejecuta siempre IF:Busqueda de instrucción ID: Decodificación/ Lectura de Reg EX: Ejecución/ Calculo de Dir +4 Sumador ADDR Memoria instrucciones DR RA RB RW busw Banco de registros bus A busb Extensión de signo IF/ID <<2 Sumador ID/EX Cuando se ejecuta un salto, todas las señales de control que se cargan en ID/EX deben valer PC =? Branch AIC Tema 2 F. Tirado / R. Hermida (2-2) 38

Predicción estática Predecir que el salto no se toma: Si la predicción es falsa, la instrucción siguiente se aborta (se cambia por NOP) IF:Busqueda de instrucción ID: Decodificación/ Lectura de Reg EX: Ejecución/ Calculo de Dir Sumador <<2 ADDR Memoria instrucciones DR RA RB RW busw Banco de registros bus A busb Extensión de signo +4 IF/ID Sumador ID/EX Problema de Forwarding: Usar circuito similar al de las dependencias LDE PC =? NOP Branch AIC Tema 2 F. Tirado / R. Hermida (2-2) 39

EL CPI ideal es Pérdida de rendimiento Hay perdidas de rendimiento por las paradas del pipe CPI real = CPI ideal + Penaliz. media por instrucción = # tipos de instr + Penaliz i= i Frec i Caso de los saltos. Un programa tipico 3% de saltos o CPI = + ( x.3 ) =.3 Nº Instrucciones x nº de etapas 5 Speedup = = = 3.84 Nº instrucciones x CPI.3 o Se pierde un 24 % respecto al caso ideal: Speedup real / Speedup ideal =3.84 / 5 =.76 AIC Tema 2 F. Tirado / R. Hermida (2-2) 4

Interrupciones, Excepciones, Fallos Excepciones o Síncronas asincronas o Solicitadas por el programa - generadas por el programa o Dentro de instrucciones - entre instrucciones o Continuar terminar Problema: El solapamiento en la ejecución de las instrucciones dificulta el saber si una instrucción puede cambiar el estado de la maquina sin peligro Cualquier instrucción en el pipeline puede provocar una excepción El sistema debe resolver la excepción y recomenzar la ejecución. El sistema debe recuperar el estado previo a la excepción Excepciones problemáticas: ( un ejemplo fallo de página) o Ocurren en el medio de una instrucción o Deben ser recomenzables Interrupciones externas ( I/O) o Vaciar el pipeline y entrar no operaciones (NOPs) o Almacenar el PC con la dirección de interrupción AIC Tema 2 F. Tirado / R. Hermida (2-2) 4

Excepciones Excepciones en el DLX IF ID Ex MEM WB Fallo de pagina de instrucción; Acceso no alineado; Violación de protección Instrucción ilegal Excepción aritmética Fallo de pagina de datos; Acceso no alineado; Violación de protección Ninguna Excepciones (fallo de pagina). Reinicio o Introducir una instrucción de trap en IF o Anular las escrituras de la instrucción que produce la excepción y las posteriores o Salvar el PC( se debe conservar hasta MEM) de la instrucción que produjo la excepción y pasar a la rutina de gestión Excepciones precisas: o Todas las instrucciones anteriores completas o La que produce la interrupción y las siguientes como si no hubieran empezado AIC Tema 2 F. Tirado / R. Hermida (2-2) 42

Excepciones: aparición fuera de orden Tiempo TLB Datos IFetch Dcd Exec Mem WB Inst Ilegal Inst TLB Overflow Flujo del programa IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB IFetch Dcd Exec Mem WB Muchas excepciones simultaneas Fallo de pagina en MEM y otras excepciones en el resto. Se atiende el fallo de pagina y se recomienza la siguiente instrucción. Problema: Fallo de pagina en MEM, instrucción ilegal en reg./de y fallo de pagina en IF. La excepción de la segunda y tercera aparece antes! Solución: Vector de estado, un bit por cada etapa donde es posible excepción Cada excepción se marca en un vector de estado asociado con la instrucción, y se impide la escritura. El vector se chequea al final de MEM inicio de WB) Excepciones precisas (se atienden por orden) AIC Tema 2 F. Tirado / R. Hermida (2-2) 43

Saltos retardados: Compilador Se puede mejorar el rendimiento introduciendo una instrucción no dependiente del salto en la burbuja Fundamento de los saltos retardados: Ejecutar instrucciones independientes del salto durante los ciclos de retardo Estas instrucciones se ejecutarán siempre (tanto si el salto es tomado como si no) El compilador debe encargarse de elegir adecuadamente las instrucciones que se planifican en los ciclos de retardo (a) mejor solución siempre trabajo útil (b) y (c) la instrucción elegida no debe modificar la semántica (aunque se ejecute indebidamente). AIC Tema 2 F. Tirado / R. Hermida (2-2) 44

Saltos retardados: benchmarks Tex, Spice, Gcc: En media el 8 % de las posiciones rellenas son útiles (barra verde / barra azul). El resto son NOP En Gcc el 22% de las instrucciones son saltos CPI = + ( -.48) x.22 =. tex 5 6 % de veces en que se rellena el slot con una instrucción spice 45 53 % de veces en que el Slot es utilizado de forma efectiva gcc 48 58 2 4 6 8 AIC Tema 2 F. Tirado / R. Hermida (2-2) 45

Resumen Procesador segmentado Todas las instrucciones tienen igual duración Rendimiento ideal, una instrucción por ciclo CPI= Riesgos estructurales y de datos EDE y EDL se resuelven por construcción Riesgso LDE en instrucciones tipo-r se solucionan con el cortocircuito. Riesgos LDE en instrucciones de load implican paradas del procesador. Ayuda del compilador planificando las instrucciones. Riesgos de control. Paradas y saltos retardados con ayuda del compilador. 4 2 Muy importante: Las instrucciones empiezan y terminan en orden 8 6 4 Paradas por saltos Paradas por LW 2 compress eqntott espresso. gcc li Que ocurre si las instrucciones tienen diferentes duración? Instrucciones de aritmética en punto flotante AIC Tema 2 F. Tirado / R. Hermida (2-2) 46

Operaciones multiciclo Es el caso típico de las operaciones en punto flotante Estructura de etapas de procesador: Es necesario HW adicional para la fase de ejecución Problemas o Riesgos estructurales o Mayor penalización de los riesgos LDE o Problemas con la finalización fuera de orden Solapamiento operaciones enteras y PF o No hay problemas operandos independientes AIC Tema 2 F. Tirado / R. Hermida (2-2) 47

Riesgos estructurales Operaciones multiciclo Unidad Funcional Latencia (de uso) Intervalo de Iniciación entera FP add 3 FP multiplica 6 FP división 24 24 Replicación o segmentación de las unidades de PF La división no suele estar segmentada. Detección del riesgo y parada de procesador AIC Tema 2 F. Tirado / R. Hermida (2-2) 48

Operaciones multiciclo Riesgos LDE (RAW) Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Ciclo6 Ciclo7 Ciclo8 Ciclo9 Ciclo Ciclo Ciclo 2 Ciclo 3 Ciclo4 Ciclo5 Ciclo6 LD F4,-- Ifetch Reg/Dec Ejecu Mem Escri MULTD F,F4,F6 Ifetch Reg/Dec Stall Ejecu Ejecu2 Ejecu3 Ejecu4 Ejecu5 Ejecu6 Ejecu7 Mem Escri ADDD F2,F,F8 Ifetch Stall Reg/Dec Stall Stall Stall Stall Stall Stall Ejec Ejec2 Ejec3 Ejec4 Men SD F2,-- Stall Ifetch Stall Stall Stall Stall Stall Stall Reg/Dec Stall Stall Stall Ejec Mayor impacto en el rendimiento o La gran duración de las instrucciones implica más ciclos de detención o Es necesaria una planificación más cuidadosa de las instrucciones Lógica de cortocircuito más compleja o Muchas más comparaciones o Bloqueo cuando el cortocircuito no vale para resolver el riesgo LDE AIC Tema 2 F. Tirado / R. Hermida (2-2) 49

Finalización fuera de orden Operaciones multiciclo Clock Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Ciclo6 Ciclo7 Ciclo8 Ciclo9 Ciclo Ciclo Multd Ifetch Reg/Dec Ejecu Ejecu2 Ejecu3 Ejecu4 Ejecu5 Ejecu6 Ejecu7 Mem Escri Addd Ifetch Reg/Dec Ejecu Ejecu2 Ejecu3 Ejecu4 Mem Escri Tipo-R Ifetch Reg/Dec Ejecu Mem Escri Tipo-R Ifetch Reg/Dec Ejecu Mem Escri Las instrucciones acaban en orden distinto al lanzamiento Problemas o Conflictos por escritura simultanea en registros (riesgo estructural) o Aparición de riesgos EDE o Problema con las excepciones Muy importante Las instrucciones empiezan en orden y terminan fuera de orden AIC Tema 2 F. Tirado / R. Hermida (2-2) 5

Operaciones multiciclo Conflictos por escritura simultánea en registros Problemas si el bloque de registros tiene un único puerto de escritura riesgo Solución: o Detener, en la etapa Reg/Dec, las instrucciones que produzcan conflicto: Si la instrucción en Reg/Dec necesita escribir en registros en el mismo ciclo que una instrucción ya emitida, la primera se detiene un ciclo. Se puede usar un registro de desplazamiento para indicar cuándo usarán el bloque de registros las instrucciones ya lanzadas. o Detener las instrucciones conflictivas al final de Ejecu Necesidad de establecer prioridades de acceso: dar mayor prioridad a la unidad con mayor latencia Lógica de chequeo de detenciones en dos puntos AIC Tema 2 F. Tirado / R. Hermida (2-2) 5

Aparición de riesgos EDE Operaciones multiciclo Ciclo Ciclo2 Ciclo 3 Ciclo4 Ciclo5 Ciclo6 Ciclo7 Ciclo8 Ciclo9 Ciclo ADDD F2,F4,F6 Ifetch Reg/Dec Ejecu Ejecu2 Ejecu3 Ejecu4 Men Escri ADDD F4,F4,F LD F2,-- Ifetch Reg/Dec Ejecu Ejecu2 Ejecu3 Ejecu4 Mem Escri Ifetch Reg/Dec Ejecu Mem Escri LD F2,(R2) escribe en F2 antes que ADDD F2,F4,F6 error Tratamiento de riesgos EDE WAW: o o o Situación poco común: Instrucción ADDD F2,F4,F6 inútil. Puede ocurrir con instrucciones que ocupen un hueco de retardo Si la segunda ADDD lee F2 riesgo LDE que elimina el EDE Riesgos EDL(WAR) No aparecen porque las lecturas de registros son en orden etapa Reg/Dec) o Detener en Reg/Dec la instrucción que produce el riesgo (LD en el ejemplo) o Eliminar la escritura de la primera instrucción (ADDD en el ejemplo) Situaciones poco comunes. No implica demasiado problema cualquiera de las aproximaciones AIC Tema 2 F. Tirado / R. Hermida (2-2) 52

Un ejemplo: MIPS R4 Más segmentación 8 etapas o o o o o o o o IF: Primera mitad de búsqueda de instrucción. Inicia el acceso a cache de instrucciones. Actualización del PC. IS:{ Segunda mitad de búsqueda de instrucción. Completa el acceso a cache. Reg/Dec: Comprobación de acierto en cache. Decodificación y búsqueda de registros. Chequeo de riesgos. EX: Ejecución; operación de la, calculo de dirección efectiva, evaluación de condición de salto y cálculo de destino (puede durar varios ciclos) DF: Inicio de la búsqueda de datos DS: Segunda mitad de la búsqueda de datos TC: Chequeo de etiquetas, determinación de acierto en la cache WB: Postescritura Los datos se encuentran disponibles al final de DS, aunque no se ha comprobado el acierto en la cache AIC Tema 2 F. Tirado / R. Hermida (2-2) 53

Un ejemplo: MIPS R4 Más penalización en cargas y saltos Dos ciclos de latencia en los Load con cortocircuito IF IS IF RF IS IF EX RF IS IF DF EX RF IS IF DS DF EX RF IS IF TC DS DF EX RF IS IF WB TC DS DF EX RF IS IF Tres ciclos de IF latencia en saltos (la condición se evalúa en EX) Salto retardado de un ciclo y 2 ciclos de predict-not-taken IS IF RF IS IF EX RF IS IF DF EX RF IS IF DS DF EX RF IS IF TC DS DF EX RF IS IF WB TC DS DF EX RF IS IF (*) Continúa la ejecución en cq caso (**) Se abortan en caso de que el salto se tome (*) (**) (**) AIC Tema 2 F. Tirado / R. Hermida (2-2) 54

Un ejemplo: MIPS R4 Operaciones en PF o o o o o Tres unidades funcionales: divisor, multiplicador y sumador en punto flotante Diferentes unidades son usadas para completar una operación Operaciones con duración entre 2 ciclos (para una negación) y 2 ciclos (para una raíz cuadrada) Segmentadas con un total de 8 estados Descripción de las etapas de las unidades en PF Etapas Unidad Descripción A FP adder Etapa de suma de mantisas D FP divider Etapa de división E FP multiplier Etapa de test de excepciones M FP multiplier ª etapa del multiplicador N FP multiplier 2ª etapa del multiplicador R FP adder Etapa de redondeo S FP adder Etapa de desplazamiento U Etapa de desempaquetado AIC Tema 2 F. Tirado / R. Hermida (2-2) 55

Un ejemplo: MIPS R4 Operaciones en PF: Implementación Instr PF 2 3 4 5 6 7 8 Add, Subtract U S+A A+R R+S Multiply U E+M M M M N N+A R Divide U A R D 28 D+A D+R, D+R, D+A, D+R, A, R Square root U E (A+R) 8 A R Negate U S Absolute value U S FP compare U A R Comportamiento de las unidades de PF Latencia Intervalo de inicialización Add, Subtract 4 3 Multiply 8 4 Divide 36 35 Square root 2 Negate 2 Absolute value 2 FP compare 3 2 AIC Tema 2 F. Tirado / R. Hermida (2-2) 56

Un ejemplo: MIPS R4 CPI Rendimiento No se alcanza el rendimiento ideal CPI= : 4.5 4 3.5 3 2.5 2.5.5 o o o o Load stalls ( o 2 ciclos) Saltos (2 ciclos + slots no rellenos) FP stalls (resultados): riesgo de LDE (latencia) FP stalls ( estructurales): Hw FP muy escaso (paralelismo) eqntott espresso gcc li doduc nasa7 ora spice2g6 su2cor tomcatv Base Load stalls Branch stalls FP result stalls FP structural stalls AIC Tema 2 F. Tirado / R. Hermida (2-2) 57