1.32k likes | 1.55k Views
Capítulo 5. El Procesador. Introducción. §4.1 Introducción. Factores de desempeño del CPU Cantidad de instrucciones Determinados por la ISA y el compilador CPI y tiempo de ciclo Determinados por el Hardware del CPU Se examinarán la implementación de 2 arquitecturas MIPS
E N D
Capítulo 5 El Procesador
Capítulo 5 — El procesador Introducción §4.1 Introducción • Factores de desempeño del CPU • Cantidad de instrucciones • Determinados por la ISA y el compilador • CPI y tiempo de ciclo • Determinados por el Hardware del CPU • Se examinarán la implementación de 2 arquitecturas MIPS • Una versión simplificada • Una versión segmentada más real • Un subconjunto simple • Referencia a memoria: lw, sw, lb, sb • Aritmética/lógica: add, sub, and, or, slt, ... • Transferencia de control: beq, j, ...
Capítulo 5 — El procesador Ejecución de instrucciones • PC búsqueda de instrucciones • Números de registros archivo de registros, leer registros • Dependiendo de la clase de instrucción • Usar ALU para calcular • Resultados aritméticos • Direcciones de memoria para lectura/escritura • Acceder datos de memoria para lectura/escritura • PC PC + 4
Capítulo 5 — El procesador Una Visión del CPU
Capítulo 5— El procesador Multiplexores • No se pueden colocar buses juntos • Usar multiplexores
Capítulo 5 — El procesador Control (beq, j)
Capítulo 5 — El procesador Diseño lógico básico • La información se codifica en binario • Nivel de voltaje bajo = 0, Nivel alto = 1 • Un alambre por bit • Datos multi-bit codificados en buses multi-alambres • Elementos combinatorios • Opera sobre datos • La salida es una función de la entrada • Elementos de estado (secuencial) • Almacenar información
Capítulo 5 — El procesador A Y B A A Mu x I0 Y + Y Y I1 ALU B B S F Elementos combinatorios • Compuerta AND • Y = A & B • Sumador • Y = A + B • Unidad aritmética/lógica • Y = F(A, B) • Multiplexor • Y = S ? I1 : I0
Capítulo 5 — El procesador D Q Clk Clk D Q Elementos secuenciales • Registros: almacenar datos en un circuito • Utiliza una señal de reloj para determinar cuando actualizar un valor almacenado • Disparado por flancos: actualizar cuando la señal de reloj cambia de 0 a 1
Capítulo 5 — El procesador Clk D Q Write Write D Clk Q Elementos secuenciales • Registros con control de escritura • Sólo se actualiza con los flancos del reloj cuando la entrada de control es 1 • Utilizado cuando un valor almacenado se requiere posteriormente
Capítulo 5 — El procesador Metodología de sincronización • La lógica combinatoria transforma los datos durante los ciclos de reloj • Entre los flancos del reloj • Entrada desde los elementos de estado, salida a un elemento de estado • Periodos más largos determinan periodos más largos del reloj
Capítulo 5 — El procesador Construyendo el camino de datos • Camino de datos • Elementos que procesan datos y direcciones en el CPU • Registros, ALUs, mux’s, memorias, … • Se construirá un camino de datos del MIPS de manera incremental • Se refinará la visión del diseño
Capítulo 5 — El procesador FETCH: Búsqueda de instrucciones Se incrementa por 4 para la siguiente instrucción Registro de 32-bits
Capítulo 5 — El procesador 0 35 or 43 4 rs rs rs rt rt rt rd dirección dirección shamt funct 31:26 31:26 31:26 25:21 25:21 25:21 20:16 20:16 20:16 15:11 10:6 15:0 15:0 5:0 Tipos de Instrucciones MIPS OPCODE Tipo-R Lectura/Escritura Saltos
Capítulo 5 — El procesador Tipo-R • Se leen dos registros operadores • Se realizan operaciones aritméticas/lógicas • Escribir el resultado en un registro
Capítulo 5 — El procesador Lectura/Escritura a Memoria • Leer los registros operadores • Calcular la dirección utilizando un corrimiento de 16-bits • Usar la ALU, pero con un corrimiento con extensión de signo • Lectura: Leer la memoria y actualizar el registro • Escritura: Escribir el valor del registro a la memoria
Capítulo 4 — El procesador Instrucciones de salto condicional • Registros operadores de lectura • Comparar operadores • Usar la ALU, restar y verificar la salida a cero • Calcular la dirección de destino • Desplazamiento de extensión de signo • Corrimiento a la izquierda dos lugares (desplazamiento de una palabra) • Sumar al PC + 4 • Calculado previamente por la búsqueda de la instrucción
Capítulo 5 — El procesador Instrucciones de salto condicional Sólo re-enrutar alambres Se replica el bit de signo
Capítulo 4 — El procesador Composición de elementos • El primer corte del camino de datos realiza una instrucción en un ciclo de reloj • Cada elemento del patrón de datos puede sólo hacer una función a la vez • De esta manera, se necesita separar en dos memorias las instrucciones y los datos • Usar multiplexores donde las fuentes de datos alternos sean utilizadas por diferentes instrucciones
Capítulo 5 — El procesador Instrucciones tipo: R/lectura/escritura
Capítulo 4 — El procesador Camino de datos completo
Capítulo 5 — El procesador Control de la ALU • La ALU se usa para • Lectura/escritura: F = suma • Salto: F = resta • Tipo-R: F depende del campo funct
Capítulo 5 — El procesador Control de la ALU • Asumiendo una operación de la ALU (ALUOp) derivado del código de operación (opcode) • La lógica combinatoria deriva el control de la ALU
Capítulo 5 — El procesador 0 4 35 or 43 rs rs rs rt rt rt rd Dirección dirección shamt funct 31:26 31:26 31:26 25:21 25:21 25:21 20:16 20:16 20:16 15:11 10:6 15:0 15:0 5:0 La unidad de control principal • Las señales de control se derivan de las instrucciones Tipo-R Lectura/Escritura Salto opcode siemprelee lee, exceptopara lectura Escribir para tipo-R y Lect_MEM Extension de signo
Capítulo 5 — El procesador Camino de datos con control
Capítulo 5 — El procesador Instrucción tipo-R
Capítulo 5 — El procesador Instrucción de lectura
Capítulo 5 — El procesador Instrucción Salta si es igual
Capítulo 5— El procesador 2 direccion 31:26 25:0 saltos incondicionales • Jump utiliza direccionamiento de palabras • Actualiza el PC con la concatenación de • Los 4 bits mas significativos del PC anterior • Dirección de salto de 26-bits y • 00 • Necesita una señal de control decodificado del opcode Jump
Capítulo 5 — El procesador Camino de datos con saltos añadidos
Capítulo 5 — El procesador Temas de desempeño • Retardos más largos determinan el periodo del reloj • Patrón crítico: instrucción de lectura • Instrucción de memoria archivo de registros ALU memoria de datos archivo de registro • No es fácil variar periodos para diferentes instrucciones • Se pueden violar principios de diseño • Hacer el caso común el más rápido • Se mejorará el desempeño por medio de segmentación
Capítulo 5 — El procesador Segmentación de tareas • Lavandería segmentada: ejecución traslapada • El paralelismo mejora el desempeño • Cuatro cargas: • Velocidad= 8/3.5 = 2.3 • Sin parar: • Velocidad= 2n/0.5n + 1.5 ≈ 4= numero de etapas
Capítulo 4 — El procesador Segmentado del MIPS Cinco etapas: un paso por etapa • IF: Lectura de la instrucción desde la memoria • ID: Decodificación de la instrucción y lectura del registro • EX: Ejecutar la operación o calcular la dirección • MEM: Escribir el operador a la memoria • WB: Escribir el resultado de nuevo al registro
Capítulo 4 — El procesador Desempeño del segmentado • Asumir el tiempo por etapa es • 100ps para lectura y escritura de registros • 200ps para otras etapas • Comparar el patrón de datos segmentado con el patron de datos de un sólo ciclo
Capítulo 4 — El procesador Desempeño del segmentado Ciclo-unico (Tc= 800ps) Segmentado (Tc= 200ps)
Capítulo 4 — El procesador Velocidad del segmentado • Si todas las etapas están balanceadas • i.e., todas toman el mismo tiempo • Tiempo entre instruccionessegmentado= Tiempo entre instruccionessin_segmetado Número de etapas • Si no están balanceadas, la velocidad es menor • Velocidad debido al incremento de producción (throughput) • Latencia (tiempo por cada instrucción) no decrece
Capítulo 4 — El procesador Segmentado y diseño de la ISA • ISA del MIPS diseñada para segmentado • Todas las instrucciones son de 32-bits • Fácil de buscar y decodifiar en un ciclo • ver x86: Instrucciones de 1- to 17-bytes • Formato con pocas instrucciones y regulares • Puede decodificar y leer registros en un paso • Lectura/escritura de direccionamiento • Pueden calcular direcciones en la 3ra etapa, accesos a memoria en la 4ta etapa • Alineación de los operadores de memoria • Acceso de memoria toma sólo un ciclo
Capítulo 4 — El procesador Peligros (riesgos) • Situaciones que previenen el comienzo de la siguiente instruccion en el siguiente ciclo • Peligro en la estructura • Un recurso que se requiere está ocupado • Peligros de datos • Se necesita esperar por las instrucciones previas para completar su lectura/escritura de datos • Peligro de Control • El decidir sobre las acciones de control depende de la instrucción previa
Capítulo 4 — El procesador Peligros de la estructura • Hay conflicto para el uso de un recurso • En el MIPS segmentado con una memoria simple • Lectura/escritura requiere el acceso a los datos • La búsqueda de instrucciones podría estancarse para ese ciclo • Se podría causar una “burbuja” segmentada De ahí, los patrones de datos requieren separar la memoria de instrucciones/datos • O separar las caches de instrucciones/datos
Capítulo 4 — El procesador Peligros de datos • Para que una instrucción sea completada se necesita del dato de una instruccion previa • add $s0, $t0, $t1sub $t2, $s0, $t3
Capítulo 4 — El procesador Adelantado (bypassing) • Utilizar el resultado cuando este es calculado • No hay que esperar por el para que sea almacenado en un registro • Requiere conexiones extras en el patrón de datos
Capítulo 4 — El procesador Peligro de datos uso-lectura • No se puede siempre estar en el puesto delantero • Si el valor no se calcula cuando se necesita • ¡No se puede ir adelante en el tiempo!
Capítulo 4 — El procesador Programación del código para evitar puestos • Reordenar codigo para evitar el uso de carga de resultados en la siguiente instrucción • Código C para A = B + E; C = B + F; lw $t1, 0($t0) lw $t2, 4($t0) add $t3, $t1, $t2 sw $t3, 12($t0) lw $t4, 8($t0) add $t5, $t1, $t4 sw $t5, 16($t0) lw $t1, 0($t0) lw $t2, 4($t0) lw $t4, 8($t0) add $t3, $t1, $t2 sw $t3, 12($t0) add $t5, $t1, $t4 sw $t5, 16($t0) Estancado Estancado 13 ciclos 11 ciclos
Capítulo 4 — El procesador Peligros de control • Los brincos determinan el flujo de control • La busqueda de la siguiente instrucción depende del brinco resultante • El segmentado no siempre busca la instruccioón correcta • Aún trabajando sobre la etapa ID del brinco • En segmentado en el MIPS • Se necesita comparar los registros y calcular el objetivo al inicio en el segmentado • Añadir hardware para hacer ID
Capítulo 4 — El procesador Estancado en un brinco • Esperar hasta la respuesta del brinco que se ha determinado antes de la búsqueda de la siguiente instrucción
Capítulo 4 — El procesador Predicción de un brinco • Segmentados más grandes no pueden determinar la respuesta del brinco de manera afirmativa • La penalizacioón del estancamiento se vuelve inaceptable • Predicción del resultado de un brinco • Unicamente estar en estancamiento si la predicción es erronea • Segmentado en el MIPS • No se puede predecir brincos que no se han realizado • Buscar la instrucción después del brinco, sin retardo
Capítulo 4 — El procesador MIPS con predicción no realizada Predicción correcta Predicción incorrecta
Capítulo 4 — El procesador Predicción de brinco más realista • Predicción de brinco estadística • Basado en comportamiento de brincos típicos • Ejemplo: brincos de bucle e instrucciones tipo-if • Predecir brincos tomados hacia atrás • Predecir brincos hacia adelante no realizados • Predicción de brincos dinámicos • El hardware mide el comportamiento de brincos reales • e.g., grabar la historia reciente de cada brinco • Asumir el que comportamiento futuro continuará una tendencia • Cuando sea equivocado, estar en puesto cuando se velve a buscar, y actualizar la historia
Capítulo 4 — El procesador Resumen del segmentado La gran imagen • El segmentado mejora el desempeño por medio del incremento de la producción (throughput) de instrucciones • Ejecutar mútilples instrucciones en paralelo • Cada instrucción tiene la misma latencia • Hay peligros • Estructura, datos, control • El conjunto de instrucciones diseña complejidad de efectos de la implementación del segmentado
Capítulo 4 — El procesador Patrón de datos segmentado del MIPS §4.6 Control de datos segmentado y control MEM El flujo derecha a izquierda lleva a peligros WB