Segmentación de cauce

Documentos relacionados
Pipeline (Segmentación)

Pipeline o Segmentación Encausada

Arquitectura de Computadores

6. PROCESADORES SUPERESCALARES Y VLIW

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

Introducción a la arquitectura de computadores

Arquitectura Segmentada: Conceptos básicosb

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

Procesadores superescalares. Introducción

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

El nivel ISA (II)! Conjunto de Instrucciones

Arquitectura de Computadores

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

Plataformas de soporte computacional: arquitecturas avanzadas,

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

Arquitectura de Computadoras. Clase 5 Posibles soluciones a atascos

Procesadores segmentados. El DLX.

Pipelining o Segmentación de Instrucciones

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

Paralelismo en monoprocesadores. Procesadores VLIW

TEMA 4. ARQUITECTURA IA-64

Conceptos de Arquitectura de Computadoras Curso 2015

3 - Arquitectura interna de un up

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

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

Autor: Longinos Recuero Bustos

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

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

Tema 5: Memorias. Espacio reservado para notas del alumno

Convenciones. Introducción. Unidades principales en la implementación. El procesador: camino de datos y control. Tipos de elementos:

Estructura de Computadores

Arquitectura de Computadores II Clase #3

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

Instituto Tecnológico de Morelia

Arquitectura de Computadores II Clase #7

Area Académica: Sistemas Computacionales. Tema: Elementos de diseño de memoria caché

Organización del Computador I Verano. Memoria Virtual Basado en el capítulo 5 del libro de Patterson y Hennessy

Tema 5 Diseño del Set de Instrucciones (ISA) Arquitectura de Computadoras

Arquitectura de Computadores II Clase #16

Tema 5 Repertorios de instrucciones: Modos de direccionamiento y formato

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

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

CICLOS DEL PROCESADOR

SISTEMAS OPERATIVOS Arquitectura de computadores

FUNCIONAMIENTO DEL ORDENADOR

Estructura del Computador

Resolución de los Ejercicios de la Hoja 4

1. Introducción a la Arquitectura de Computadoras

Tema: Microprocesadores

El Diseño de un Lenguaje Máquina

CPU MEMORIAS CACHE. Memorias caché. Memoria caché = memoria de tamaño pequeño y acceso rápido situada entre la CPU y la memoria principal.

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

Introducción PROCESADOR SUPERESCALAR. Paralelismo. Grado m: en cada ciclo se buscan/decodifican m instrucciones. supes

202 PROBLEMAS DE ARQUITECTURA DE COMPUTADORES

Tecnologías y Arquitecturas

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Tema 6 (II) Jerarquía de Memoria

PRACTICA 2 Ejercicio 2

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

MICROPROCESADOR. Multiciclo

Memoria. Organización de memorias estáticas.

Práctica 4 - Arquitectura CPU

COMPUTADORES SEGMENTADOS (DLX)

Ensamblador. Introducción. Dpto. Física y Arquitectura de Computadores. Universidad Miguel Hernandez

Organizacion del Computador

Entorno de Ejecución del Procesador Intel Pentium

ESTRUCTURA BÁSICA DE UN ORDENADOR

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

Clasificación del procesador según el número de referencias a memoria.

Organización del Computador 1 Memoria Cache

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

Memoria Virtual. Memoria Virtual

Unidad I: Organización del Computador. Ing. Marglorie Colina

Arquitectura de Computadores

TEMA II: ALMACENAMIENTO DE LA INFORMACIÓN

ADMINISTRACION DE LA MEMORIA. En memoria 1 solo proceso Desventajas:

Tema 2. Diseño del repertorio de instrucciones

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

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

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

Predicción Dinámica - 1. Arquitectura de Computadores

Estructura del Computador

Tema 2. Arquitectura de CPU avanzadas 15/03/2011

Análisis general de un Microprocesador

Construyendo Programas más Complejos

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Explotación del paralelismo a nivel de instrucción

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Arquitectura de Computadoras. Anexo Clase 8 Buses del Sistema

UNIVERSIDAD TECNICA FEDERICO SANTA MARIA DEPARTAMENTO DE ELECTRONICA ELO311 Estructuras de Computadores Terecer Certamen

Ejercicios de Arquitectura de Computadoras

Paralelismo en monoprocesadores. Procesadores Superescalares

EVOLUCIÓN DE LOS PROCESADORES

Soluciones a los problemas impares. Tema 5. Memorias. Estructura de Computadores. I. T. Informática de Gestión / Sistemas

INDICE 1. Operación del Computador 2. Sistemas Numéricos 3. Álgebra de Boole y Circuitos Lógicos

Arquitecturas RISC v.2014

Tema 4: Diseño de un microprocesador

LECCIÓN 14: DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACION

1) Se dispone de un computador de 32 bits con la siguiente estructura:

Transcripción:

Segmentación de cauce 11ª Semana Bibliografía: [HAM03] Cap.8 Organización de Computadores. Hamacher, Vranesic, Zaki. McGraw-Hill 2003 Signatura ESIIT/C.1 HAM org [STA8] Sec.12.4 Organización y Arquitectura de Computadores, 7ª Ed. Stallings. Pearson Educación, 2008. Signatura ESIIT/C.1 STA org 1

Guía de trabajo autónomo (4h/s) Lectura Cap.8 Hamacher Sección 12.4 Stallings Bibliografía: [HAM03] Cap.8 Organización de Computadores. Hamacher, Vranesic, Zaki. McGraw-Hill 2003 Signatura ESIIT/C.1 HAM org [STA8] Sec.12.4 Organización y Arquitectura de Computadores, 7ª Ed. Stallings. Pearson Educación, 2008. [ Signatura ESIIT/C.1 STA org 2

Segmentación de cauce Concepto de segmentación Ejemplo de segmentación Aceleración Riesgos Influencia en el repertorio de instrucciones Funcionamiento superescalar 3

Concepto de segmentación Procesador sin segmentar i1 i2 i3 i4 P Secuencia de instrucciones T i1 P i2 P i3 P i4 P T T T T 4T Tiempo 4

Concepto de segmentación Es posible incrementar la velocidad de procesamiento, al margen de mejoras tecnológicas, sin incrementar el número de procesadores? SOLUCIÓN Segmentación de cauce (pipelining) 5

Concepto de segmentación SOLUCIÓN Segmentación de cauce (pipelining) 6

Concepto de segmentación SEGMENTACIÓN EN UNA FÁBRICA DE AUTOMÓVILES Cadena de montaje 7

Concepto de segmentación Soldadura chasis Galvanizado (3,3 h) anticorrosión Pintura (4 h) Acoplamiento (7 h) motor Montaje (1,5 h) accesorioscontrol de (4,4 h) calidad 22 horas (1,5 h) SEGMENTACIÓN EN UNA FÁBRICA DE AUTOMÓVILES Subdividir el proceso en n etapas, permitiendo el solapamiento en la fabricación de automóviles 8

Concepto de segmentación S i : etapa de segmentación i-ésima R i : registro de segmentación de la etapa i-ésima Entrada R 1 R 2 R 3 R 4 Salida S 1 S 2 S 3 S 4 Reloj SEGMENTACIÓN EN UN PROCESADOR Subdividir el procesador en n etapas, permitiendo el solapamiento en la ejecución de instrucciones 9

Concepto de segmentación Las instrucciones entran por un extremo del cauce, son procesadas en distintas etapas y salen por el otro extremo. Entrada R 1 R 2 R 3 R 4 Salida S 1 S 1 S 2 S 3 S 4 S 2 S 3 S 4 Reloj T T/4 T/4 T/4 T/4 Cada instrucción individual se sigue ejecutando en un tiempo T... T c...pero hay varias instrucciones ejecutándose simultáneamente 10

Segmentación de cauce Concepto de segmentación Ejemplo de segmentación Aceleración Riesgos Influencia en el repertorio de instrucciones Funcionamiento superescalar 11

Ejemplo de segmentación Búsqueda de instrucción Decodificación de instrucción / Ejecución / Lectura de registros Cálculo de direcciones Acceso a memoria Escritura de resultados 4 Suma Suma << 2 RFnt1 M u x PC Dirección de lectura Instrucción Memoria de Instrucciones RFnt2 RDst Salida 2 Datos Registros Ext. signo Salida 1 M u x Cero ALU Lectura de datos Dirección Memoria de Datos Datos M u x 12

IF (Instruction Fetch) ID (Instruction Decode and register fetch) EX (EXecute and effective address calculation) MEM (MEMory access) WB (Write back) 4 Suma Suma << 2 RFnt1 M u x PC Dirección de lectura Instrucción Memoria de Instrucciones RFnt2 RDst Salida 2 Datos Registros Ext. signo Salida 1 M u x Cero ALU Lectura de datos Dirección Memoria de Datos Datos M u x Reloj 13

Ejemplo de segmentación Cada etapa del cauce debe completarse en un ciclo de reloj Fases de captación y de memoria Si acceden a memoria principal, el acceso es varias veces más lento La caché permite acceso en un único ciclo de reloj El periodo de reloj se escoge de acuerdo a la etapa más larga del cauce 14

Segmentación de cauce Concepto de segmentación Ejemplo de segmentación Aceleración Riesgos Influencia en el repertorio de instrucciones Funcionamiento superescalar 15

Aceleración R 1 R 2 R 3 R 4 S 1 S 1 S 2 S 3 S 4 S 2 S 3 S 4 Reloj Instrucc. i1 S 1 S 2 S 3 S 4 T T/4 i2 S 1 S 2 S 3 S 4 i3 S 1 S 2 S 3 S 4 i4 S 1 S 2 S 3 S 4 Segmentado i1 i2 i3 i4 P T/4 T/4 T/4 T/4 T/4 T/4 T/4 P T T T T 4T P No segmentado P Tiempo 16

Aceleración R 1 R 2 R 3 R 4 S 1 S 1 S 2 S 3 S 4 S 2 S 3 S 4 Reloj T T/4 S 1 i1 i2 i3 i4 Etapas S 2 S 3 S 4 i1 i2 i3 i4 i1 i2 i3 i4 i1 i2 i3 i4 Segmentado No segmentado Proc. no seg. i1 i2 i3 i4 T/4 T/4 T/4 T/4 T/4 T/4 T/4 Tiempo T T T T 4T 17

Aceleración R 1 R 2 R 3 R 4 S 1 S 2 S 3 S 4 Reloj Aceleración en el ejemplo = k instrucciones Aceleración ideal n etapas = T Tiempo máquina no-segmentada Tiempo máquina segmentada = kt nkt (n 1+k)T/n = (n+k 1)T 4T 7T/4 = n k La aceleración ideal coincide con el número de etapas de segmentación 18

Aceleración R 1 R 2 R 3 R 4 S 1 S 2 S 3 S 4 Reloj T Causas que disminuyen la aceleración Coste de la segmentación Duración del ciclo de reloj impuesto por etapa más lenta T c > T/n Riesgos (hazards) Bloqueo del avance de instrucciones 19

Segmentación de cauce Concepto de segmentación Ejemplo de segmentación Aceleración Riesgos Influencia en el repertorio de instrucciones Funcionamiento superescalar 20

Riesgos Riesgo Situación que impide la ejecución de la siguiente instrucción del flujo del programa durante el ciclo de reloj designado Obliga a modificar la forma en la que avanzan las instrucciones hacia las etapas siguientes Reducción de las prestaciones logradas por la segmentación 21

Riesgos Supongamos las siguientes etapas: F: búsqueda (fetch) de instrucción. D: decodificación de instrucción / lectura de registros. E: ejecución / cálculo de direcciones M: acceso a memoria. W: escritura (write) de resultados. 22

Riesgos 4 Suma Suma RFnt1 << 2 M u x PC Dirección de lectura Instrucción Memoria de Instrucciones RFnt2 RDst Salida 2 Datos Registros Ext. signo Salida 1 M u x Cero ALU Lectura de datos Dirección Memoria de Datos Datos M u x Reloj F D E M W 23

Riesgos estructurales Conflicto por el empleo de recursos, dos instrucciones necesitan un mismo recurso. Ej. 1: lectura de dato + captación suponiendo una única memoria para datos e instrucciones. lw r4,20(r1) F D E M W and r7,r2,r5 F D E M W or r8,r6,r2 F D E M W add r9,r2,r2 F D E M W lw r4,20(r1) F D E M W and r7,r2,r5 F D E M W or r8,r6,r2 F D E M W add r9,r2,r2 - F D E M W 24

Riesgos estructurales Ej. 2: ejecución de una operación con más de un ciclo en E. add rx,rx,rx F D E M W mul rd,rs,rs F D E E E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W mul rd,rs,rs F D E E E M W add rx,rx,rx F D - - E M W add rx,rx,rx F - - D E M W add rx,rx,rx F D E M W 25

Riesgos estructurales Ej. 3: fallo de caché al captar una instrucción. add rx,rx,rx F D E M W sub rx,rx,rx F F F F D E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W sub rx,rx,rx F F F F D E M W add rx,rx,rx - - - F D E M W add rx,rx,rx F D E M W add rx,rx,rx F D E M W 26

Riesgos estructurales Para reducir el efecto de los fallos de caché se suelen captar instrucciones antes de que sean necesarias (precaptación) y se almacenan en una cola de instrucciones. F Unidad de captación Cola de instrucciones D Unidad de decodificación E Unidad de ejecución M Unidad de memoria W Unidad de actualización 27

Riesgos (por dependencias) de datos Acceso a datos cuyo valor actualizado depende de la ejecución de instrucciones precedentes. sub r2,r1,r3 F D E M W and r7,r2,r5 F D E M W or r8,r6,r2 F D E M W add r9,r2,r2 F D W M W sub r2,r1,r3 F D E M W and r7,r2,r5 F D - - D E M W or r8,r6,r2 F - - - D E M W add r9,r2,r2 F D W M W 28

Riesgos (por dependencias) de datos El nuevo r2 está a la salida de la ALU al terminar E. Si r2 se envía de nuevo a la ALU se elimina el retardo (register forwarding). 4 Suma Suma RFnt1 << 2 M u x PC Dirección de lectura Instrucción Memoria de Instrucciones RFnt2 RDst Salida 2 Datos Registros Ext. signo Salida 1 M u x Cero ALU Lectura de datos Dirección Memoria de Datos Datos M u x F D E M W Reloj 29

Riesgos (por dependencias) de datos Las dependencias de datos las descubre el hardware al decodificar las instrucciones. Alternativamente puede resolverlas el compilador: sub r2,r1,r3 F D E M W nop nop nop Ventajas: Hardware más simple Reorganizar instrucciones para hacer trabajo útil en lugar de NOP Inconveniente: Aumenta el tamaño del código F D E M W F D E M W F D E M W and r7,r2,r5 F D E M W 30

Riesgos de control Consecuencia de la ejecución de instrucciones de salto. Salto incondicional: br L1 F D E M W and r2,r1,r4 F D E - - sub r5,r6,r7 F D - - - or r8,r1,r6 F - - - - L1:add r6,r1,r4 F D E M W Se pierden 3 ciclos (huecos de retardo de salto*), ya que tras captar la instrucción br, hasta después del 4º ciclo (es decir, pasados otros 3 ciclos) no se conoce la dirección de salto. *branch delay slot 31

Riesgos de control Importante averiguar la dirección de salto lo antes posible, por ej. en la etapa de decodificación: br L1 F D E M W and r2,r1,r4 F - - - - sub or r5,r6,r7 r8,r1,r6 L1:add r6,r1,r4 F D E M W Se pierde 1 ciclo, ya que tras captar la instrucción br, después del 2º ciclo ya se conoce la dirección de salto. 32

Riesgos de control Salto condicional: beq r2,r3,l1 F D E M W and r2,r1,r4 F D E M W sub r5,r6,r7 F D E M W or r8,r1,r6 F D E M W L1:add r6,r1,r4 F D E M W Si se produce el salto se pierden 3 ciclos. Si no se produce el salto, no se pierden ciclos. 33

Riesgos de control Degradación de prestaciones debida a los saltos. Supongamos algún mecanismo hardware que permita descartar la ejecución de las instrucciones siguientes si se produce el salto. b: nº de ciclos desperdiciados cuando se produce el salto. p b : probabilidad de que se ejecute una instrucción de salto (entre 0,15 y 0,30 normalmente) p t : probabilidad de que realmente se produzca el salto cuando se ejecuta una instrucción de salto p e = p b p t : probabilidad efectiva de que se produzca un salto CPI: nº de ciclos de reloj por instrucción (suponer CPI = 1 sin saltos) CPI = (1 p b ) (1) + p b [ p t (1 + b) + (1 p t ) (1) ] = 1 + p b p t b = 1 + p e b 34

Riesgos de control Fb: fracción de máximas prestaciones (relación entre el nº de ciclos CPI si no hubiera saltos y el nº de ciclos CPI con saltos) F b = 1 1 + p e b La degradación crece rápidamente al crecer p e (más rápidamente a medida que b es mayor) 35

Salto retardado (delayed branch) En lugar de desperdiciar las etapas posteriores a la de salto, una o más instrucciones parcialmente completadas se completarán antes de que el salto tenga efecto. El compilador busca instrucciones anteriores lógicamente al salto que pueda colocar tras el salto. Si el salto es condicional, las instrucciones colocadas detrás no deben afectar a la condición de salto. Antes: mov r1,#3 jmp etiq nop Después: jmp etiq mov r1,#3 36

Salto retardado (delayed branch) Otra posibilidad es colocar la(s) instrucción(es) destino de un salto tras el salto. Antes: call subr nop... subr: mov r3,#100 Esto no funcionaría para saltos condicionales Después: call subr+4 mov r3,#100... subr: mov r3,#100 No podemos subir una instrucción que sólo tiene que ejecutarse algunas veces (cuando el salto se produce) a una posición donde siempre se ejecuta. 37

Annulling branch Un salto de este tipo ejecuta la(s) instrucción(es) siguiente(s) sólo si el salto se produce, pero la(s) ignora si el salto no se produce. Con un salto de este tipo, el destino de un salto condicional sí puede colocarse tras el salto. Antes: bz else nop ; código then... else: mov r3,#100 Después: bz,a else+4 mov r3,#100 ; código then... else: mov r3,#100 38

Predicción de saltos Intentar predecir si una instrucción de salto concreta dará lugar a un salto (branch taken) o no (branch not taken). Si los resultados de las instrucciones de salto condicional fueran aleatorios, comenzar a ejecutar las instrucciones siguientes al salto desperdiciaría ciclos en la mitad de las ocasiones. Se pueden minimizar las pérdidas de ciclos inútiles si para cada instrucción de salto se puede predecir con un acierto > 50% si el salto se producirá o no. Se pueden hacer predicciones distintas si el salto es hacia direcciones menores o mayores. Tipos de predicción: Estática: se toma la misma decisión para cada tipo de instrucción Dinámica: cambia según la historia de ejecución de un programa 39

Predicción dinámica de saltos ST: Muy probable saltar LT: Probable saltar LNT: Probable no saltar SNT: Muy probable no saltar BT Branch taken (BT) BNT SNT LNT BNT LNT LT BT BNT BNT BT BT Branch not taken (BNT) Algoritmo de dos estados (1 bit para cada instrucción) LT BNT ST Algoritmo de cuatro estados (2 bits para cada instrucción) BT 40

Segmentación de cauce Concepto de segmentación Ejemplo de segmentación Aceleración Riesgos Influencia en el repertorio de instrucciones Funcionamiento superescalar 41

Modos de direccionamiento Es deseable que un operando no necesite más de un acceso a memoria Constante Registro Indirecto a través de registro Indexado (EA= reg. + desp., o EA = reg. + reg.) Es deseable que sólo puedan acceder a memoria las instrucciones de carga y almacenamiento 42

Modos de direccionamiento Modo de direc. complejo, 2 accesos a memoria lw r4,(20(r1)) F D E M M W and r7,r2,r5 F D E - M W Modo de direc. más simple, 1 acceso a memoria lw r3,20(r1) F D E M W lw r4,(r3) F D E M W and r7,r2,r5 F D E M W Idéntica duración, pero hardware más sencillo 43

Códigos de condición Las dependencias que introducen los bits de condición dificultan al compilador reordenar el código (deseable para evitar riesgos). En el ejemplo siguiente, la decisión de saltar se produce tras la etapa E de la instrucción cmp Es deseable elegir en cada instr. si afecta o no a los cód. de condición, para reordenar el código: Antes: Después: add r1,r2 cmp r3,r4 cmp r3,r4 add r1,r2 jz etiq jz etiq Al reordenar el código, se puede tomar la decisión de salto un ciclo antes, y desperdiciar un ciclo menos tras el salto 44

Segmentación de cauce Concepto de segmentación Ejemplo de segmentación Aceleración Riesgos Influencia en el repertorio de instrucciones Funcionamiento superescalar 45

Funcionamiento superescalar Procesamiento segmentado Una instrucción tras otra Rendimiento ideal: una instrucción por ciclo Procesamiento superescalar Varias instrucciones en paralelo Necesidad de varias unidades funcionales Emisión múltiple: se puede comenzar a ejecutar más de una instrucción por ciclo de reloj Rendimiento: más de una instrucción por ciclo Es fundamental poder captar instrucciones rápidamente: conexión ancha con caché + cola de instrucciones 46

Funcionamiento superescalar Ej.: Procesador con dos unidades de ejecución: F Unidad de captación Cola de instrucciones D Unidad de emisión E Unidad de coma flotante M Unidad de memoria W Unidad de actualización E Unidad de enteros 47

Funcionamiento superescalar El efecto negativo de los riesgos es más pronunciado. El compilador puede reordenar instrucciones para evitar riesgos. fadd rx,rx,rx F D E 1 E 2 E 3 M W add rx,rx,rx F D E M W fsub rx,rx,rx F D E 1 E 2 E 3 M W sub rx,rx,rx F D E M W Las instrucciones pueden emitirse en orden y finalizar de forma desordenada (ej. add finaliza antes que fadd) Múltiples problemas y soluciones, que se verán en Arquitectura de Computadores 48

Core i7 (Nehalem) 4 cores/chip Segmentación: 16 etapas Superescalar: 4 instrucciones en paralelo Caches: L1: 32KB I + 32KB D L2: 256KB L3: 8MB, compartida por los 4 cores Múltiples unidades funcionales http://www.bit-tech.net/hardware/cpus/2008/11/03/intel-core-i7-nehalem-architecture-dive/5 49