Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Dana K. Urribarri AC 2016 1 Arquitectura de Computadoras para Ingeniería (Cód. 7526) 1° Cuatrimestre 2016 Dra. Dana K. Urribarri DCIC - UNS Dana K. Urribarri AC 2016 2 Unidad de Control ● Provee las señales de control para la operación y coordinación de las componentes del procesador. ● El principal propósito de la Unidad de Control es decodificar las instrucciones y generar las señales que permitan realizar la operación deseada. Dana K. Urribarri AC 2016 3 Interacción entre la Unidad de Control y la Unidad de Procesamiento de Datos ● La Unidad de Control (UC) indica la Unidad de Procesamiento de Datos (UPD) una secuencia de comandos. ● La UPD manipula los datos de acuerdo a lo indicado por la UC. UC UPD Output data Input data Señales de control Señales de estado Señales de entrada (externas) Señales de salida (externas) B u s d e C o n t r o l Dana K. Urribarri AC 2016 4 Tareas de la UC 1) Traer la instrucción de memoria (FETCH) 2) Decodificar de la instrucción (DECODE) 3) Ejecutar la instrucción (EXECUTE) Generar todas señales de control necesarias para indicarle a la UPD qué procesamiento aritmético- lógico debe realizar. Dana K. Urribarri AC 2016 5 Funciones de la UC La UC cumple dos funciones importantes: ● Secuenciamiento de las instrucciones: ¿Cómo se transfiere el control del procesador de una instrucción a otra? ● Interpretación de la instrucción: ¿Cómo se activan las señales de control que hacen que la UPD ejecute la instrucción? Dana K. Urribarri AC 2016 6 Secuenciamiento de instrucciones Program Counter (PC) ● Dirección de la próxima instrucción a ejecutar. ● Si A debe leerse de memoria de a un word, entonces el PC se incrementa automáticamente en 1 cada vez que se obtiene un word. ● Cuando se termina de leer la instrucción A, el PC apunta al primer word de B. Funciones de la UC A B X X+k Dana K. Urribarri AC 2016 7 Secuenciamiento de instrucciones Branch (condicional o incondicional) ● Permite transferir el control entre instrucciones no consecutivas. ● Implícita o explícitamente especifican la dirección X de la siguiente instrucción. ● Modifican el PC PC ← X Funciones de la UC Dana K. Urribarri AC 2016 8 Secuenciamiento de instrucciones Transferencia de control entre (sub)programas ● Llamada a subrutina Transferencia temporaria del control de A a B, iniciado por A ● Interrupción Transferencia temporaria del control de A a B, iniciado por B o un dispositivo asociado a B En la pila del sistema se almacena: ● La dirección de retorno ● Posibles parámetros de A a B ● Variables locales a B Funciones de la UC Dana K. Urribarri AC 2016 9 Interpretación de la instrucción ● La UC interpreta la instrucción para determinar qué señales de control debe transmitir. ● Estas señales de control se transmiten a través de líneas de control. ● Se distinguen 4 grupos de señales de control: UC UPD Output data Input data Señales de control Señales de estado Señales de entrada (externas) Señales de salida (externas) B u s d e C o n t r o l Funciones de la UC Dana K. Urribarri AC 2016 10 Interpretación de la instrucción ● Señales de control Objetivo principal de la UC. Señales que controlan la operación de la UPD UC UPD Output data Input data Señales de control Señales de estado Señales de entrada (externas) Señales de salida (externas) B u s d e C o n t r o l Funciones de la UC Dana K. Urribarri AC 2016 11 Interpretación de la instrucción UC UPD Output data Input data Señales de control Señales de estado Señales de entrada (externas) Señales de salida (externas) B u s d e C o n t r o l ● Señales de estado Permiten que la UC tome decisiones basadas en los datos. Le permiten a la UPD indicar errores en el procesamiento de los datos (x ej. overflow). Funciones de la UC Dana K. Urribarri AC 2016 12 Interpretación de la instrucción Las señales externas se usan para sincronizar con otros controladores. ● Señales de entrada (externas) Señales que recibe la UC a través del bus de control (señales de start, stop y temporizado). ● Señales de salida (externas) Incluye señales de control a la memoria y señales de control a los módulos de I/O UC UPD Output data Input data Señales de control Señales de estado Señales de entrada (externas) Señales de salida (externas) B u s d e C o n t r o l Funciones de la UC Dana K. Urribarri AC 2016 13 Implementación de la Unidad de Control Dana K. Urribarri AC 2016 14 Implementación de la UC La UC tiene típicamente dos partes: – Una parte combinacional que carece de estado (por ej. para las decodificaciones, diseño único-ciclo) – Otra parte secuencial para el secuenciamiento de las instrucciones y para el control principal de un diseño múltiple-ciclo. ● ROM ● PLA ● Contador ● Microprogramación Dana K. Urribarri AC 2016 15 Implementación de la UC La UC tiene típicamente dos partes: – Una parte combinacional que carece de estado (por ej. para las decodificaciones, diseño único-ciclo) – Otra parte secuencial para el secuenciamiento de las instrucciones y para el control principal de un diseño múltiple-ciclo. ● ROM ● PLA ● Contador ● Microprogramación Control Cableado Dana K. Urribarri AC 2016 16 Implementación de la UC La UC tiene típicamente dos partes: – Una parte combinacional que carece de estado (por ej. para las decodificaciones, diseño único-ciclo) – Otra parte secuencial para el secuenciamiento de las instrucciones y para el control principal de un diseño múltiple-ciclo. ● ROM ● PLA ● Contador ● Microprogramación Control Microprogramado Dana K. Urribarri AC 2016 17 Control cableado Implementación de la UC Dana K. Urribarri AC 2016 18 Ejemplo ● Tenemos una ALU de la cual nos interesan las siguientes operaciones: Implementación de la UC Control de la ALU Función 0000 AND 0001 OR 0010 suma 0110 resta 0111 menor que Dana K. Urribarri AC 2016 19 Ejemplo ● Las siguientes 4 instrucciones utilizan la ALU: – R-type: Operaciones registro a registro, dos fuentes y uno destino. Tienen el siguiente formato: Implementación de la UC Instrucción Operación R-type cualquiera load suma store suma Branch on equal resta Opcode R S R T R D ... Funct 6 bits 5 bits 5 bits 5 bits ... 6 bits Dana K. Urribarri AC 2016 20 UC Combinacional ● Procesador único-ciclo Implementación de la UC Dana K. Urribarri AC 2016 21 ● La UC computa las señales de control basándose en el opcode y en el campo funct de la instrucción. ● La mayoría de la información de control proviene del opcode ● Diseño simplificado. Dos bloques. UC Combinacional Implementación de la UC Dana K. Urribarri AC 2016 22 3:0 Estructura interna de la UC combinacional para el Procesador único-ciclo Implementación de la UC Dana K. Urribarri AC 2016 23 UC Combinacional Main decoder Salidas a partir del opcode. Incluye una señal de 2 bits ALUOp para el siguiente bloque. Implementación de la UC ALUOp 1:0 Significado 00 suma 01 resta 10 mirar campo funct 11 N/a 3: 0 3:0 Dana K. Urribarri AC 2016 24 UC Combinacional Main Decoder: Tabla de verdad: – Entradas: 6 bits del opcode de cada instrucción – Salidas: ● 6 señales de control ● 2 bits de ALUOp Implementación de la UC Instrucción Opcode RegWrite RegDst ALUSrc Branch MemWrite MemToReg ALUOp R-type 000000 1 1 0 0 0 0 10 load 100011 1 0 1 0 0 1 00 store 101011 0 X 1 0 1 X 00 branch 000100 0 X 0 1 0 X 01 Dana K. Urribarri AC 2016 25 UC Combinacional Main Decoder Implementación de la UC Dana K. Urribarri AC 2016 26 UC Combinacional ALU Decoder A partir de la señal ALUOp y el campo funct, computa la operación de entrada a la ALU (ALUControl) Implementación de la UC 3: 0 3:0 Dana K. Urribarri AC 2016 27 ALU Decoder: Tabla de verdad UC Combinacional Implementación de la UC ALUOp Campo Funct Operación ALUOp1 ALUOp0 F5 F4 F3 F2 F1 F0 0 0 X X X X X X 0010 0 1 X X X X X X0110 1 0 X X 0 0 0 0 0010 1 X X X 0 0 1 0 0110 1 0 X X 0 1 0 0 0000 1 0 X X 0 1 0 1 0001 1 X X X 1 0 1 0 0111 Dana K. Urribarri AC 2016 28 UC Combinacional ALU Decoder Implementación de la UC Dana K. Urribarri AC 2016 29 Control del Pipeline Procesador en Pipeline Implementación de la UC – UC Combinacional FETCH DECODE EXECUTE MEMORY WB Dana K. Urribarri AC 2016 30 Control del Pipeline ● Tiene las mismas señales de control que el procesador único-ciclo. ● Utiliza la misma UC ● Las señales de control se activan en la etapa DECODE pero se utilizan en las etapas siguientes. Implementación de la UC – UC Combinacional Dana K. Urribarri AC 2016 31 Control del Pipeline ● Se extienden los registros interetapas para que incluyan la información de control. Implementación de la UC – UC Combinacional Dana K. Urribarri AC 2016 33 Control del Pipeline ● Además de registros interetapas, agrega multiplexores y lógica de control para resolver hazards y forwarding. Implementación de la UC – UC Combinacional Dana K. Urribarri AC 2016 34 UC con una Máquina de estados ● Procesador múltiple-ciclo Implementación de la UC Dana K. Urribarri AC 2016 35 UC con una Máquina de estados Opcode Estado Salidas Entradas Señales de control Lógica de control Nuevo estado Implementación de la UC Dana K. Urribarri AC 2016 36 Estructura interna de la UC combinada para un Procesador múltiple-ciclo Implementación de la UC 3:0 Dana K. Urribarri AC 2016 37 Estructura interna de la UC combinada para un Procesador múltiple-ciclo Circuito combinacional Implementación de la UC 3:0 Dana K. Urribarri AC 2016 38 Estructura interna de la UC combinada para un Procesador múltiple-ciclo Circuito secuencial Implementación de la UC 3:0 Dana K. Urribarri AC 2016 39 UC con una Máquina de estados El comportamiento de la UC se puede representar con una tabla de estados: ● Si corresponde al estado interno de la máquina ● Ij corresponde al opcode de la instrucción j ● Si,j corresponde al estado que pasa la máquina estando en el estado Si mientras ejecuta Ij ● zi,j corresponde a las señales de control cuando ejecutando Ij se está en el estado Si. ● Para n estados se necesitan P bits, P = éLog2 né ● Para m opcodes se necesitan Q bits, Q = éLog2 mé Estado I1 I2 ... Im S 1 S 1,1 , z 1,1 S 1,2 , z 1,2 ... S 1,m , z 1,m S 2 S 2,1 , z 2,1 S 2,2 , z 2,2 ... S 2,m , z 2,m ... S n S n,1 , z n,1 S n,2 , z n,2 ... S n,m , z n,m Implementación de la UC Dana K. Urribarri AC 2016 40 UC con una Máquina de estados Con una ROM Si tenemos ● 20 bits de salidas (4 bits del siguiente estado, 2 bits de ALUOp y 16 bits de señales de control) ● 10 bits de entrada (6 bits de opcode y 4 bits del estado actual) ● Una única ROM de 210 x 20 = 20 Kbits ● Muchas combinaciones serán don't care. Mejores resultados usando más de una ROM. Implementación de la UC z 1 z 2 ... zr Estado0 Estado1 ... EstadoP {0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X} ... ... ... ... {0,1,X} {0,1,X} ... {0,1,X} {0,1,X} {0,1,X} ... {0,1,X} n × m ≈ 2P+Q entradas r salidas de control P bits para el prox. estado Dana K. Urribarri AC 2016 41 UC con una Máquina de estados Con un PLA ● Codifica únicamente los términos producto necesarios. ● Reduce la cantidad de almacenamiento requerido para control. ● Tamaño proporcional a: (#entradas + #salidas) x #terminos producto Implementación de la UC Dana K. Urribarri AC 2016 42 UC con una Máquina de estados Con un PLA ● 10 entradas 20 salidas 17 términos producto Tamaño: (10+20) 17 = 510 Implementación de la UC Dana K. Urribarri AC 2016 43 UC con una Máquina de estados Tamaño con 2 PLAs ● 4 entradas 16 salidas 10 términos producto Tamaño: (4 + 16) 10 = 200 ● 10 entradas 4 salidas 10 términos producto Tamaño: (10+4) 10 = 140 Implementación de la UC Dana K. Urribarri AC 2016 44 UC con una Máquina de estados Con un contador ● Usa un contador para calcular el próximo estado ● Debe contemplan saltos a próximos estados no consecutivos: – Basándose en el opcode – Inicio próxima instrucción Implementación de la UC Dana K. Urribarri AC 2016 45 UC con una Máquina de estados ROM 1 ROM 2 Implementación de la UC AddrCtl Acción 0 Estado 0 1 ROM 1 2 ROM 2 3 Estado incrementado Dana K. Urribarri AC 2016 46 Microprogramación Implementación de la UC Dana K. Urribarri AC 2016 47 Microprogramación ● La implementación de la UC como una máquina de estados usando un contador podría verse como una computadora. ● El concepto de microprogramación fue propuesto por M.V. Wilkes en 1951 y utilizaba un decoder y una ROM compuesta por una matriz de diodos. Implementación de la UC Dana K. Urribarri AC 2016 48 Microprogramación ● Microoperación: Pasos elementales en los que se puede dividir la ejecución de una instrucción: – Incrementar el PC – Transferencia registro a registro – Suma en la ALU – ... ● Microinstrucción: conjunto de microoperaciones que ocurren en un momento de tiempo. ● Microprograma (o firmware): Secuencia de microinstrucciones. Implementación de la UC Dana K. Urribarri AC 2016 49 Microprogramación Implementación de la UC ● Durante un ciclo, se activa una fila de la matriz con un pulso. ● Genera las señales donde haya un diodo presente. ● La parte izquierda genera las señales de control. ● La parte derecha genera la próxima dirección. Memoria de control Dirección M ic ro in st ru cc io ne s Dana K. Urribarri AC 2016 50 Microprogramación Implementación de la UC ● La próxima dirección será el opcode del IR o la dirección proveniente de la matriz (dependiendo de las señales de control) Memoria de control Dirección M ic ro in st ru cc io ne s Dana K. Urribarri AC 2016 51 Microprogramación ● Por cada microoperación, la UC debe generar un conjunto predefinido de señales de control. ● Las señales de control pueden valer 1 (activada) o 0 (desactivada). ● Cada microoperación puede representarse como un patrón diferente de 1s y 0s. ● Este patrón se llama palabra de control (control word). ● Las microinstrucciones se organizan en una memoria. Implementación de la UC Dana K. Urribarri AC 2016 52 Formato de la microinstrucción Todas las microinstrucciones tiene tres campos importantes: ● Palabra de control ● Dirección de la (posible) próxima microinstrucción ● Bits de condición Implementación de la UC - Microprogramación Palabra de control Bits de condición Dirección Dana K. Urribarri AC 2016 53 Formato de la microinstrucción La longitud de la microinstrucción está relacionada a: 1) El número de microoperaciones que activa simultáneamente (grado de paralelismo) 2) El grado de codificación de la información de control. En función del tamaño de la microinstrucción: ● Microprogramación vertical ● Microprogramación horizontal Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 54 Microprogramación vertical – Formato corto de microinstrucción. – En cada ciclo puede activarse un número muy limitado de microoperaciones (x ej. 1). – Alto grado de codificación de la información de control. Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 55 Microprogramación horizontal – Formato largo de microinstrucción. – En cada ciclo puede activarse un gran número de microoperaciones. – Poca codificación de la información de control. El concepto de VLIW desciende de la microprogramación horizontal Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 56 Codificación de la información de control 210 13 Campos de Control Líneas de Control Sin codificación Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 57 Codificación de la información de control 3 Campos de Control Líneas de Control 210 Decoder 2Decoder 1 Decoder 0 Único Campo de Control Líneas de Control Decoder Codificaciónmedia Codificación completa Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 58 Interpretación de la microinstrucción 1) Activar o desactivar las líneas de control siguiendo el patrón especificado por la palabra de control. Esto ejecuta una o más microoperaciones. 2) Si la condición indicada por los bits de condición es: i. Falsa: La próxima microinstrucción a ejecutar es la microinstrucción consecutiva. ii. Verdadera: La próxima microinstrucción a ejecutar es la indicada en el campo de dirección. Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 59 Funcionamiento 1) La lógica de secuenciamiento dispara una operación de lectura en la memoria de control. Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 60 Funcionamiento 2) La palabra cuya dirección se especifica en el Control Address Register (CAR) se almacena en el Control Buffer Register (CBR) Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 61 Funcionamiento 3) El contenido del CBR genera señales de control e información sobre la próxima dirección. Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 62 Funcionamiento 4) A partir de la información sobre la próxima instrucción del CBR y flags de la ALU, la lógica de control carga la próxima dirección en el CAR. i. Cargar la instrucción consecutiva (+1 al CAR) ii. Carga el campo de dirección del CBR en el CAR, basándose en la condición de salto de la microinstrucción. iii.Carga el CAR en función de del opcode del IR. Implementación de la UC - Microprogramación Dana K. Urribarri AC 2016 63 Funcionamiento Implementación de la UC - Microprogramación Decodifica el opcode del IR en una dirección de la memoria de control. Decodifica los campos de control de la microinstrucción. Se usa solo en Microprogramación vertical. Dana K. Urribarri AC 2016 64 Comparación Dana K. Urribarri AC 2016 65 Ventajas y desventajas Control cableado – Lógica compleja para el secuenciamiento de las micro-operaciones – Costoso de mantener y actualizar + Es más rápido Dominante en arquitecturas RISC por el formato más simple de instrucciones. Control microprogramado + Diseño simplificado + Más económico + Menos propenso a errores – A tecnología comparable, es más lento. Dominante en arquitecturas CISC. Implementación de la UC Dana K. Urribarri AC 2016 66 Bibliografía ● Capítulo 7. David Money Harris & Sarah L. Harris. Digital Design and Computer Architecture, Elsevier. 2013, 2da Ed. ● Capítulos 19 y 20. William Stallings. Computer Organization and Architecture. Designing for Performance. Pearson. 2013, 9na Ed. ● Apéndice D. David A. Patterson & John L. Hennessy. Computer Organization and Design. The Hardware/Software Interface. Elsevier Inc. 2014, 5ta Ed. ● Suplementaria – J. Hennessy & D. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers INC. 2011, 5ta Ed. – J. Hayes, Computer Architecture and Organization. McGraw-Hill 1978 Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66
Compartir