Tema 5. Segmentación: conceptos básicos

Documentos relacionados
Pipeline (Segmentación)

Plataformas de soporte computacional: arquitecturas avanzadas,

Arquitectura Segmentada: Conceptos básicosb

Introducción a la arquitectura de computadores

Procesadores segmentados. El DLX.

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

TEMA 2: PARALELISMO INTERNO EN SISTEMAS COMPUTADORES SEGMENTACION

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

OBJETIVOS ALGUNAS CONSIDERACIONES SOBRE WINDLX

ARQUITECTURA SPARC: FORMATO DE INSTRUCCIÓN

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

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

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

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

Diseño del procesador MIPS R2000

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

TEMA 3. PLANIFICACIÓN (SCHEDULING) DE INSTRUCCIONES Arquitectura de Sistemas Paralelos 1. pág 2. direcc MEM

COMPUTADORES SEGMENTADOS (DLX)

Arquitectura del CPU. Organización del Computador 1 Verano 2016

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Pipeline o Segmentación Encausada

Ejercicios del tema 4. El procesador

Ejercicios del Tema 3. Fundamentos de la programación en ensamblador

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

El nivel ISA (II)! Conjunto de Instrucciones

Arquitectura de Computadores. Tema 11. Pipelining Avanzado

Procesador. Memoria. Ejemplo de un Procesador: MU0. Instrucciones. Direcciones. Registros. Datos. Instrucciones y datos SETI Tr.

Organización del Computador I Verano. MIPS (2 de 2) Basado en el capítulo 2 del libro de Patterson y Hennessy

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

Arquitectura de Computadoras

Instituto Tecnológico de Morelia

Arquitectura de Computadores

Arquitectura de Computadores II Clase #3

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

MICROPROCESADOR. Multiciclo

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Arquitectura de Computadores. Tema 4 PROCESADORES SEGMENTADOS

CICLOS DEL PROCESADOR

Tema: Microprocesadores

Paralelismo en monoprocesadores. Procesadores VLIW

Tema 11. Riesgos de control y predicción de saltos

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

TEMA 3 PLANIFICACIÓN O REORDENAMIENTO (SCHEDULING) DE INSTRUCCIONES ÍNDICE

Tema 4: Diseño de un microprocesador

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

Centro Asociado Palma de Mallorca. Tutor: Antonio Rivero Cuesta

Estructura del Computador

Circuitos Digitales II y Laboratorio Fundamentos de Arquitectura de Computadores

Autor: Longinos Recuero Bustos

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

Entorno de Ejecución del Procesador Intel Pentium

TEMA 4. ARQUITECTURA IA-64

MICROPROCESADOR RISC SINTETIZABLE EN FPGA PARA FINES DOCENTES

Arquitectura de Computadores

Arquitecturas RISC v.2014

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

6. PROCESADORES SUPERESCALARES Y VLIW

Pipelining o Segmentación de Instrucciones

Organización de computadoras. Clase 4. Universidad Nacional de Quilmes. Lic. Martínez Federico

ESTRUCTURA Y TECNOLOGÍA A DE COMPUTADORES

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

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

Compiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón

Arquitectura e Ingeniería de Computadores

Tema 4 (II) El procesador

ARQUITECTURA DEL REPERTORIO DE INSTRUCCIONES

Estructura de Computadores

Organización de Computadoras. Clase 7

El Diseño de un Lenguaje Máquina

Arquitectura t de Computadores

GUÍA DE APRENDIZAJE ARQUITECTURA DE COMPUTADORES

La Máquina de Acceso Aleatorio (Random Access Machine)

4.1 Ejecución de instrucciones en el nivel de Microprogramación

Diseño Procesador Monociclo

Fecha de Introducción. Velocidad de reloj. Anchura del bus. Número de transistores. (microns) Memoria direccionable.

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

Programación de Sistemas. Unidad 1. Programación de Sistemas y Arquitectura de una Computadora

Procesadores superescalares. Introducción

UNIVERSIDAD TECNOLÓGICA DE LA MIXTECA. Ingeniería en Electrónica EL MICROCONTROLADOR PIC16F84 PRESENTA: M. C. Felipe Santiago Espinosa

4.5 Microprogramación para simplificar el diseño del control

ESTRUCTURA BÁSICA DE UN ORDENADOR

Procesadores Vectoriales

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

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

Conceptos básicos de procesadores

Procesador Segmentado

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

SISTEMAS OPERATIVOS Arquitectura de computadores

ASIGNATURA: Arquitectura de Computadores

Arquitectura de Computadores

Explotación del paralelismo a nivel de instrucción

PROGRAMA de Organización de Computadoras

ISA (Instruction Set Architecture) Arquitectura del conjunto de instrucciones

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

Velocidades Típicas de transferencia en Dispositivos I/O

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

Estructura de Computadores Tema 1. Introducción a los computadores

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

ELO311 Estructuras de Computadores Digitales. Operaciones MIPS para Control de flujo

Transcripción:

Tema 5. Segmentación: conceptos básicos Organización de Computadores 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 1

CONCEPTO El concepto básico de la segmentación es el de la división del trabajo Aparece por vez primera en la industria del automóvil, en la producción del Ford T. En este contexto se denomino producción en cadena. La mayoría de los sectores industriales con alta producción manufacturera u3lizan la producción en cadena para abaratar los costes de producción. Algo similar ocurre en el campo de los computadores, aunque históricamente es algo posterior. 2

COMPUTADORES SEGMENTADOS Ejecutan billones de instrucciones, por lo que su productividad (throughput) es lo que importa Entre las caracterís3cas deseables (MIPS - DLX): RISC - > Simple. Todas las instrucciones tengan la misma longitud, Los registros estén localizados siempre en la misma posición del formato de instrucción (formato fijo de instrucción). Que sólo haya operandos de memoria en los loads y stores. Sólo estas instrucciones acceden a memoria. 3

UN RISC "TÍPICO" Formato de instrucción fijo de 32- bit (3 formatos) 32 Registros de propósito general (GPR) de 32- bit (R0 con3ene cero, DP se toman en pares) Instrucciones aritmé3cas reg- reg de 3- direcciones Un único modo de direccionamiento en los load/store: reg base + desplazamiento no hay direccionamientos indirectos Condiciones de salto simples Saltos retardados Ejemplos: SPARC, MIPS, HP PA- Risc, DEC Alpha, IBM PowerPC, CDC 6600, CDC 7600, Cray- 1, Cray- 2, Cray- 3 4

MIPS: REPERTORIO DE INSTRUCCIONES 5

SEGMENTACION DE UN PROCESADOR Queremos dividir en varias etapas las operaciones que se realizan en el flujo de datos de la máquina de forma que: El 3empo en cada etapa sea aproximadamente el mismo Cada etapa sea u3lizada como mucho una vez en cada instrucción (cauce lineal) Los registros puedan diseñarse con claridad, para mantener la información de estado de las instrucciones entre las operaciones. Que no haya demasiadas etapas como para que el 3empo perdido en los latch llegue a predominar Que haya suficientes etapas como para que se consiga una ganancia significa3va en las prestaciones 6

SEGMENTACION DEL PROCESADOR DLX Para este procesador simple, se estructurará en 5 etapas: Etapa IF (Instruction fetch): búsqueda de la instrucción Etapa ID (Instruction decode and register fetch): descodificación de la instrucción y búsqueda de operandos en los registros. Etapa EX (Execution): ejecución de las operaciones en la ALU Etapa MEM (Memory access): acceso a memoria. Etapa WB (Write back): escritura de los resultados en los registros. Recuerde que: Es un proc. RISC (simplicidad del juego de instr.) Acceso a las caches en un ciclo Dos caches: una de instrucciones y una de datos Integradas en el cauce 7

RUTA DE DATOS BÁSICA DLX (5 ETAPAS) Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back PC 4 Add Instr. Memory MUX PC Instr Rs1 Rs2 Rd Imm Reg File Sign Extend PC AIR 1 AIR 2 ImR MUX MUX Zero? ALU PC CR AOR SVR Data Memory PC LMDR ARR MUX RD RD RD WB Data Imagen de Wikipedia, 2014 8

TEMPORIZACIÓN DEL CAUCE Memoria de instrucciones Instrucción i+2 Instrucción i+1 Instrucción i Latch Latch Lógica Lógica Lógica Paso 1 Paso 2 Paso 3 Resultados Reloj 9

TEMPORIZACIÓN: SEÑALES 10

FLUJO DE LOS DATOS EN EL CAUCE SEGÚN EL TIPO DE INSTRUCCIÓN (I) PC2 = PC; PC=PC+4 11

FLUJO DE LOS DATOS EN EL CAUCE SEGÚN EL TIPO DE INSTRUCCIÓN(II) 12

DLX: FASE DE BÚSQUEDA DE INSTRUCCIÓN (IF) Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back PC 4 Add Instr. Memory MUX Imagen de Wikipedia, 2014 PC Instr Se busca la instrucción a la que apunta el PC en la caché de instrucciones. Zero? Se incrementa el PC en 4. Rs1 Rs2 Rd Imm Se lleva al registro de instrucción. Reg File Sign Extend PC Se lleva el PC al latch de interfaz entre etapas. Se lleva de nuevo al PC. AIR 1 AIR 2 ImR MUX MUX ALU PC CR Salvo que una instrucción previa de transferencia de control salto requiera su modificación, el mul3plexor elije en este caso la dirección obje3vo del salto. AOR SVR Data Memory PC LMDR ARR MUX RD RD RD 13

DLX: FASE DE DESCODIFICACIÓN Y LECTURA DE OPERANDOS (ID) Se descodifica la instrucción en la 1ª mitad del PC Instr Instr. Decode Reg. Fetch Rs1 Rs2 Rd Imm Reg File Sign Extend PC AIR 1 AIR 2 ImR RD ciclo. Se leen los registros en la 2ª mitad. Dependiendo del 3po de instr. se realiza lo siguiente en la 2ª mitad del ciclo: Registro- registro (aritmé3cas/lógicas) Se leen los registros Rs1 y Rs2 del banco de registros y se llevan a los reg. de entrada a la ALU (AIR1 y AIR2). El registro des3no se lleva a RD Referencia a memoria (load/store) Se lee el registro base de la dirección de memoria y se lleva al reg de entrada a la alu 1 (Air 1). Se ex3ende el signo al desplazamiento y se lleva al inmediate register (IMR). Si es un store se lee el registro a almacenar en memoria y se lleva al r. de entrada a la alu 2 (AIR2). Transferencia de control (branch) Se ex3ende el signo al desplazamiento y se lleva al inmediate register (IMR). Se lee el registro que determina la dirección base del salto y se lleva al reg de entrada a la ALU (AIR1). Imagen de Wikipedia, 2014 14

DLX: FASE DE EJECUCIÓN (EX) PC AIR 1 AIR 2 ImR RD Execute Addr. Calc MUX MUX Zero? ALU PC CR AOR SVR RD La ALU ejecuta la operación sobre los datos situados en : Los reg de entrada a la alu (Air 1y Air 2) (arit./log) El PC y el Imr (direc. de salto rela3va a PC) El Air 1 y el Imr (direc de salto rela3va a reg o direc de memoria) Dependiendo del 3po de instr. : Registro- registro (aritmé3cas/lógicas) El reg de salida de Alu con3ene el resultado de la operación sobre los registros Rs1 y Rs2, y se lleva al reg de salida de resultados (AOR). Referencia a memoria (load/store) El reg de salida de Alu con3ene la dirección efec3va de memoria (a leer o escribir), y se lleva al reg de salida de resultados (AOR). Si es una instr store, el contenido del Air 2 (reg a almacenar en mem) se lleva al store value reg (SVR). Transferencia de control (branch) El reg de salida de Alu con3ene la dirección efec3va del salto, y se lleva al reg de salida de resultados (AOR). Se determina si la condición de salto se verifica o no y se lleva al condi3on reg (CR). Imagen de Wikipedia, 2014 15

DLX: FASE DE ACCESO A MEMORIA / FINAL. DE SALTO (MEM) PC CR AOR SVR RD Memory Access Data Memory PC LMDR ARR RD Se realizan operaciones sólo en el caso de instrucciones load, store y branch: Dependiendo del 3po de instr.: Registro- registro (aritmé3cas/lógicas) El reg de salida de alu (AOR) se transfiere la alu result register (ARR). Referencia a memoria (load/store) Load: se lee el dato de la caché de datos (AOR con3ene la dirección efec3va) y lo leído se sitúa en el load memory data reg (LMDR). Store: se escribe en la memoria (AOR con3ene la dirección efec3va) el dato contenido en el SVR en la caché de datos. Transferencia de control (branch) Tanto para los saltos incondicionales como para los condicionales tomados se modifica el PC de la etapa inicial IF por el contenido del registro de salida de la alu AOR. Para los saltos condicionales no tomados, el PC no se modificará. En el mux de la etapa IF se elije el PC+4. Imagen de Wikipedia, 2014 16

DLX: FASE DE ESCRITURA DEL RESULTADO (WB) PC ARR LMDR RD MUX Write Back Durante esta fase el resultado de la ejecución de una instrucción registro- registro o load a memoria es almacenado en el banco de registros de la etapa ID. Los registros se escriben en la 1ª mitad del ciclo. Esta operación se realiza durante la 1ª mitad del ciclo. Dependiendo del 3po de instr. : Registro- registro (aritmé3cas/lógicas) El alu result register (ARR) se escribe en el banco de registros (en el registro RD) de la etapa ID. Referencia a memoria (load) El dato que está en el load memory data reg (LMDR) se escribe en el banco de registros (en el registro RD) de la etapa ID. Imagen de Wikipedia, 2014 17

INFORMACIÓN DE CONTROL EN DLX Instruction Fetch Instr. Decode Reg. Fetch Execute Addr. Calc Memory Access Write Back 4 Add MUX Descodif. Op Op Op PC Instr. Memory PC Instr Rs1 Rs2 Rd Imm Reg File Sign Extend PC AIR 1 AIR 2 ImR MUX MUX Zero? ALU PC CR AOR SVR Data Memory PC LMDR ARR MUX RD RD RD WB Data Imagen adaptada de Wikipedia, 2014 18

CRONOGRAMA (IDEAL) DE UNA EJECUCIÓN SEGMENTADA Un funcionamiento ideal de cauce originaría el cronograma anterior. 19

DISEÑO DEL CAUCE Cada etapa del cauce debe ser independiente, por lo que resulta imprescindible la existencia de registros entre las etapas con objeto de mantener: Los valores de los datos Las señales de control, que incluyen: Campos de la instrucción descodificada Señales de control de los MUX Señales de control de la ALU Este 3po de estructura de control se denomina estacionaria en datos La información de control se mueve internamente por el cauce a la vez que los datos que se van u3lizando u obteniendo en la ejecución de la instrucción. 20

PROBLEMA DEL BANCO DE REGISTROS En el diseño se ha separado en dos el acceso a la memoria Existe una cache de instrucciones en la etapa IF, de donde se leen las instrucciones Existe una cache de datos en la etapa MEM, donde se leen y escriben los datos Esto no resulta posible con el banco de registros, ya que 3ene que ser leído y escrito El problema se origina en que la lectura se realiza en la etapa ID y la escritura en la etapa WB Solución: separar en dos subfases los ciclos y realizar ambas operaciones en subfases diferentes La escritura en el registro se hace en la 1ª mitad del ciclo de la etapa WB La lectura de los registros se hace en la 2ª mitad del ciclo de la etapa ID La primera mitad de la etapa ID se utiliza para descodificar la instrucción 21

EJEMPLO DE SOLAPAMIENTO ld r1, 8 (r2) IF ID Ex M Wb Escritura: r1 Banco de registros Lectura: r1 add r5, r1, r3 IF ID Ex M Wb 22

PROBLEMA DE LA CACHÉ DE DATOS Memory Access En el diseño que se ha realizado del cauce se ha separado en dos registros el acceso de datos a la memoria caché de datos. PC PC Si la operación es de lectura de la caché de datos, en la etapa MEM, se usa el registro de direccionamiento de la memoria AOR, y se dejan los datos leídos en el LMDR. CR AOR SVR RD Data Memory LMDR ARR RD MUX Si la operación es de escritura, la dirección en la que se va a escribir está en el registro AOR, y el dato que se va a escribir está contenido en el SVR. El problema se origina en que a diferencia de la caché de instrucciones donde hay un único registro de direccionamiento de memoria y un registro de datos para leer o escribir en ella, en la de datos, si sólo hubiese un registro para acceder a la caché, cuando se realiza una lectura seguida de una escritura en la caché habría un conflicto de recursos en el mismo. Imagen de Wikipedia, 2014 23

EJEMPLO DE SOLAPAMIENTO EN LA CACHÉ DE DATOS ld r1, 8 (r2) IF ID Ex M Wb Escritura: Memà Memory data register Mem. caché de datos sd r5, 16( r3) IF ID Ex M Wb Escritura:Rsourceà Memory data register Se lee de la caché de datos el reg r1 Se escribe en la caché de datos el reg r5 Conflicto de recursos Si el registro de datos de memoria es único, se solapan el dato leído y el que se quiere escribir 24

SEGMENTACIÓN DE LAS INSTRUCCIONES Ejecución secuencial Ejecución segmentada Descodificación Desocupado 25

CPU CON EJECUCIÓN EN UN SOLO CICLO (SIN SEGMENTAR) IFetch I.Decode/Reg. fetch Execute/Addr. Memory Access Write back Imagen de Pazerson, 1997 26

EJEMPLO: EJECUCIÓN DE UNA INSTRUCCIÓN ADD Imagen de Pazerson, 1997 27

EJEMPLO: EJECUCIÓN DE UNA INSTRUCCIÓN LOAD Imagen de Pazerson, 1997 28

EJEMPLO: EJECUCIÓN DE UNA INSTRUCCIÓN STORE Imagen de Pazerson, 1997 29

EJEMPLO: EJECUCIÓN DE UNA INSTRUCCIÓN DE SALTO Imagen de Pazerson, 1997 30

SEÑALES DE CONTROL 31

UNIDAD SEGMENTADA: ESTRUCTURA Imagen de Pazerson, 1997 32

UNIDAD SEGMENTADA: ESTRUCTURA + CONTROL Imagen de Pazerson, 1997 33

EJEMPLO: CICLO 1 Imagen de Pazerson, 1997 34

EJEMPLO: CICLO 2 Imagen de Pazerson, 1997 35

EJEMPLO: CICLO 3 Imagen de Pazerson, 1997 36

EJEMPLO: CICLO 4 Imagen de Pazerson, 1997 37

EJEMPLO Ejemplo de cronograma de ejecución. Orden progr. Tiempo (ciclos de reloj) lw r10, 9 (r1) sub r11, r2, r3 add r12, r4, r5 or r13, r6, r7 1 2 3 4 5 6 7 8 Escritura: r10 IF ID Ex M Wb Escritura: r11 IF ID Ex M Wb Escritura: r12 Escritura: r13 IF ID Ex M Wb IF ID Ex M Wb 38

EJEMPLO Supongamos que las mul3plicaciones en punto flotante necesitan 7 ciclos en la etapa de ejecución y que las sumas en punto flotante necesitan 4. Si estamos en un cauce segmentado cuál sería el grafo de dependencias y cronograma de ejecución del siguiente código? bucle: 1 LD F0, 0(R2) 2 LD F4, 0(R3) 3 MULTD F0,F0,F4 4 ADDD F2,F0,F2 5 ADDI R2,R2 #8 6 ADDI R3,R3,#8 7 SUB R5,R4,R2 8 BNEZ R5, bucle 9 LD F0,0(R2) 39

EJEMPLO bucle: 1 LD F0, 0(R2) f4 2 r3 6 2 LD F4, 0(R3) 3 MULTD F0,F0,F4 4 ADDD F2,F0,F2 5 ADDI R2,R2 #8 f0 f0 1 f0 r2 5 r2 r2 6 ADDI R3,R3,#8 7 SUB R5,R4,R2 8 BNEZ R5, bucle 9 LD F0,0(R2) 4 f0 3 7 r5 f0 f0 9 f0 8 40

EJEMPLO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 bucle LD F0, 0(R2) F D X M W LD F4, 0(R3) F D X M W MULTD F0,F0,F4 F - - D X X X X X X X M W ADDD F2,F0,F2 F - - - - - - - - D X X X X M W ADDI R2,R2 #8 F D X M W ADDI R3,R3,#8 F D X M W SUB R5,R4,R2 F - D X M W BNEZ R5, bucle F - - D X M W LD F0,0(R2) F - - F D X M W 41

REFERENCIAS [Wikipedia, 2014] Procesador MIPS, hzp://es.wikipedia.org/wiki/mips_(procesador) [Pazerson, 1997 ]David A. Pazerson, John L. Hennessy (1997) Computer Organiza3on & Design: The Hardware/So ware Interface, Second Edi3on. Morgan Kaufmann. 42