1 / 132

Capítulo 5

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

Download Presentation

Capítulo 5

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 5 El Procesador

  2. 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, ...

  3. 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

  4. Capítulo 5 — El procesador Una Visión del CPU

  5. Capítulo 5— El procesador Multiplexores • No se pueden colocar buses juntos • Usar multiplexores

  6. Capítulo 5 — El procesador Control (beq, j)

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. Capítulo 5 — El procesador FETCH: Búsqueda de instrucciones Se incrementa por 4 para la siguiente instrucción Registro de 32-bits

  14. 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

  15. 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

  16. 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

  17. 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

  18. Capítulo 5 — El procesador Instrucciones de salto condicional Sólo re-enrutar alambres Se replica el bit de signo

  19. 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

  20. Capítulo 5 — El procesador Instrucciones tipo: R/lectura/escritura

  21. Capítulo 4 — El procesador Camino de datos completo

  22. 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

  23. 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

  24. 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

  25. Capítulo 5 — El procesador Camino de datos con control

  26. Capítulo 5 — El procesador Instrucción tipo-R

  27. Capítulo 5 — El procesador Instrucción de lectura

  28. Capítulo 5 — El procesador Instrucción Salta si es igual

  29. 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

  30. Capítulo 5 — El procesador Camino de datos con saltos añadidos

  31. 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

  32. 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

  33. 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

  34. 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

  35. Capítulo 4 — El procesador Desempeño del segmentado Ciclo-unico (Tc= 800ps) Segmentado (Tc= 200ps)

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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!

  43. 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

  44. 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

  45. 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

  46. 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

  47. Capítulo 4 — El procesador MIPS con predicción no realizada Predicción correcta Predicción incorrecta

  48. 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

  49. 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

  50. 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

More Related