Titulacin Grado en Ingeniera de Computadores Asignatura Tecnologa

  • Slides: 28
Download presentation
Titulación: Grado en Ingeniería de Computadores Asignatura: Tecnología de Computadores Bloque 4: Modelo clásico

Titulación: Grado en Ingeniería de Computadores Asignatura: Tecnología de Computadores Bloque 4: Modelo clásico de computador Tema 10: Estructura de un computador sencillo Pablo Huerta Pellitero Carlos Sánchez de La Lama

Unidad de Control y Rutas de Datos ÍNDICE • Bibliografía • Sistemas digitales complejos

Unidad de Control y Rutas de Datos ÍNDICE • Bibliografía • Sistemas digitales complejos • Procesador de propósito específico: contador de unos § Ruta de datos § Unidad de control • Procesadores de propósito general 2

Unidad de Control y Rutas de Datos BIBLIOGRAFÍA • Román Hermida, Ana Mº del

Unidad de Control y Rutas de Datos BIBLIOGRAFÍA • Román Hermida, Ana Mº del Corral, Enric Pastor, Fermín Sánchez “Fundamentos de Computadores” Editorial Síntesis • Thomas L. Floyd “Fundamentos de Sistemas Digitales” Editorial Prentice Hall • Daniel D. Gajski “Principios de Diseño Digital” Editorial Prentice Hall • M. Morris Mano “Diseño Digital” Editorial Prentice Hall 3

Unidad de Control y Rutas de Datos Sistemas Digitales Complejos • Sería posible realizar

Unidad de Control y Rutas de Datos Sistemas Digitales Complejos • Sería posible realizar cualquier�sistema digital complejo utiizando exclusivamente una máquina de estados. § Ejemplo: multiplicación binaria § Problema: la complejidad de la máquina de estados depende (exponencialmente) del tamaño de los datos • Solución: separamos el manejo de los datos de la ejecución del algoritmo § Tendremos unidades, con un ancho apropiado a los datos, realizando operaciones aritmético/lógicas, almacenando valores, … § Tendremos �una unidad de control que dependerá únicamente del algoritmo a ejecutar, no de los datos • Este modelo abstrae la inmensa mayoría de los sistemas digitales de complejidad media/alta • Separamos nuestro sistema en § Ruta de datos (datapath) § Unidad de control 4

Unidad de Control y Rutas de Datos • Las rutas de datos (datapaths) se

Unidad de Control y Rutas de Datos • Las rutas de datos (datapaths) se utilizan en las implementaciones de procesadores y ASICs para realizar cálculos complejos y manipular datos. • Una ruta de datos consta de elementos combinacionales (desplazadores, multiplexores, ALUs, etc) y secuenciales (registros). • Disponen de varias entradas de control que permiten escoger el modo de funcionamiento de los distintos componentes internos. • También pueden tener salidas de control para señalizar sucesos o resultados parciales de alguno de sus componentes internos. 5

Unidad de Control y Rutas de Datos • La ruta de datos debe tener,

Unidad de Control y Rutas de Datos • La ruta de datos debe tener, al menos § Unidades operacionales para aquellas operaciones que requieras nuestro algoritmo • ALU • Desplazadores § Buses de interconexión • Tiene que haber un camino desde la salida de las unidades operacionales hasta su entrada nuevamente § Elementos de memoria • Como mínimo es necesario dividir los bucles combinacionales • Hay que poder almacenar todos los datos requeridos por nuestro algoritmo • Determinadas rutas de datos muy concretas pueden no cumplir todos estos requisitos, pero no las consideraremos aquí 6

Unidad de Control y Rutas de Datos Contador de unos • Vamos a estudiar

Unidad de Control y Rutas de Datos Contador de unos • Vamos a estudiar el diseño de un computador de propósito espcífico, capaz de contar el número de unos que hay en un determinado número binario • El algoritmo que realizará será: cuenta = 0; mascara = 1; dato = din_i; while (dato_no_es_cero) { temp = dato && mascara; cuenta = cuenta + Temp; dato >> 1; } dout_o = cuenta; • La ruta de datos deberá ser capaz de § Realizar las operaciones: ADD (o INC), AND, SHR § Almacenar 4 valores intermedios § Detectar si un valor es cero 7

Unidad de Control y Rutas de Datos Contador de unos: datapath • La ruta

Unidad de Control y Rutas de Datos Contador de unos: datapath • La ruta de datos que vamos a utilizar como ejemplo consta de: § § § Un multiplexor de 2 a 1. Una unidad comparadora con “ 0”. Un banco de registros con 8 registros de 8 bits. Una unidad aritmeticológica con 8 modos de operación. Un desplazador con 4 modos de operación. Un buffer triestado de salida. • Para controlar todos esos componentes, la ruta de datos dispone de varias entradas y salidas de control. § enable_in_i: controla el multiplexor de entrada. § not_zero_o: indica si el resultado de la última operación es = o != de cero. § address_w_i, enable_w_i, address_r 1_i, enable_r 1_i, address_r 2_i, enable_r 2_i: controlan la lectura y escritura en el banco de registros. § opcode_i: controla el modo de operación de la ALU. § shift_i: controla el modo de operación del desplazador. § enable_out_i: habilita el buffer triestado de salida. 8

Contador de unos: datapath Unidad de Control y Rutas de Datos 9

Contador de unos: datapath Unidad de Control y Rutas de Datos 9

Unidad de Control y Rutas de Datos Contador de unos: datapath 10

Unidad de Control y Rutas de Datos Contador de unos: datapath 10

Unidad de Control y Rutas de Datos Contador de unos: datapath • El multiplexor

Unidad de Control y Rutas de Datos Contador de unos: datapath • El multiplexor permite escoger si a la entrada del banco de registros llega el dato de entrada din_w_i o el resultado de la operación actual de la ruta de datos. • La unidad No. Cero tiene una salida que vale 1 si la salida del multiplexor es distinta de “ 0000” 11

Unidad de Control y Rutas de Datos Contador de unos: datapath • El banco

Unidad de Control y Rutas de Datos Contador de unos: datapath • El banco de registros tiene 8 registros de 8 bits. El registro 0 siempre tiene almacenado el valor “ 0000”. 12

Unidad de Control y Rutas de Datos Contador de unos: datapath • La unidad

Unidad de Control y Rutas de Datos Contador de unos: datapath • La unidad aritmético lógica puede realizar 8 operaciones diferentes en función del valor de la entrada opcode_i. Opcode_i(2) Opcode_i(1) Opcode_i(0) Operación de la ALU 0 0 0 Not A 0 0 1 A and B 0 1 0 A 0 1 1 A or B 1 0 0 A– 1 1 0 1 A+B 1 1 0 A–B 1 1 1 A+1 13

Unidad de Control y Rutas de Datos Contador de unos: datapath • El desplazador

Unidad de Control y Rutas de Datos Contador de unos: datapath • El desplazador puede realizar cuatro operaciones diferentes en función del valor de la entrada shift_i (0) shift_i (1) Operación 0 0 No cambia 0 1 Desplazamiento izquierda 1 0 Desplazamiento derecha 1 1 Cambia cuartetos 14

Unidad de Control y Rutas de Datos Contador de unos: datapath • El buffer

Unidad de Control y Rutas de Datos Contador de unos: datapath • El buffer triestado de salida permite o no que el resultado de la última operación salga por la salida de datos de la ruta de datos, en función de la entrada de control enable_out_i. 15

Unidad de Control y Rutas de Datos Contador de unos: datapath • Ejemplos de

Unidad de Control y Rutas de Datos Contador de unos: datapath • Ejemplos de operaciones que puede realizar la ruta de datos: § Leer el dato de entrada y guardarlo en el registro R 1: § Hacer la operación AND entre el registro R 2 y el registro R 5, y pasar el resultado a la salida de la ruta de datos: 16

Unidad de Control y Rutas de Datos Contador de unos: datapath • Ejemplos de

Unidad de Control y Rutas de Datos Contador de unos: datapath • Ejemplos de operaciones que puede realizar la ruta de datos (continuación) : § Desplazar el contenido del registro R 1 hacia la derecha: § Sumar el contenido del registro R 1 con el registro R 2 y almacenar el resultado en el registro R 3: 17

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control •

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control • El circuito completo que vamos a construir va a tener las siguientes entradas y salidas: § Entradas de control: reset_i, clk_i y start_i • reset_in es una señal activa alta que pone valores iniciales conocidos en los elementos de memoria del sistema • clk_in: es el reloj de sincronización del sistema • start_i es una señal de 1 bit activa alta que ordena el comienzo de la operación del sistema § Entrada de datos: din_i • din_i es una señal de 8 bits que contiene el dato del que se quiere conocer cuantos 1 s contiene. Debe tener su valor estable antes de que se active la señal start_i § Salida de datos: dout_o • dout_o es una señal vectorial de 8 bits que indicará el número de 1 s que contiene din_i § Salida de control: stop_o • stop_o es una señal de 1 bit activa alta que indica que se ha calculado el número de 1 s de word_i y que ese valor puede leerse en dout_o 18

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control 19

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control 19

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control •

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control • Funcionamiento del sistema: § Con la activación de reset_i se ponen a su valor inicial los elementos del circuito. A partir de ahí, se espera hasta la llegada de la señal de start_i (activa alta) para que arranque el sistema. En el siguiente ciclo se captura el valor dispuesto en el puerto din_i § Se deja que actúe el sistema – n ciclos – y una vez que el circuito ha calculado el resultado, éste se coloca en el puerto de salida (dout_o) y se indica que el valor está accesible, activando a valor alto la señal de stop_o 20

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control •

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control • Algoritmo que ejecuta el sistema: 1. cuenta = 0; 2. mascara = 1; 3. dato = din_i; while (dato_no_es_cero) { 4. temp = dato && mascara; 5. cuenta = cuenta + Temp; 6. dato >> 1; }; 7. dout_o = cuenta; 21

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control •

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control • Asignación de variables a los registros del Banco de Registros. R 0 0000 R 1 dato R 2 mascara R 3 cuenta R 4 temp • Algoritmo y operaciones que debe realizar la ruta de datos: 1. 2. 3. cuenta = 0; -- R 3 = R 0 + R 0 mascara = 1; -- R 2 = R 0 + 1 dato = din_i; -- R 1 = din_i while (not_zero_o = 1) { 4. temp = dato && mascara; -- R 4 = R 1 and R 2 5. cuenta = cuenta + Temp; -- R 3 = R 3 + R 4 6. dato >> 1; -- R 1 = ( (R 1 + R 0) >>1 ) }; dout_o = cuenta; -- Habilitar el triestado pasando R 3 + R 0 22

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control Se

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control Se utilizan máquinas de Moore para evitar bucles combinacionales 23

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control •

Unidad de Control y Rutas de Datos Contador de unos: Unidad de control • Tabla de estados y tabla de salidas start_i , not_zero_o 0, 0 0, 1 1, 0 1, 1 PS NS NS S 0 S 0 S 1 S 1 S 2 S 2 S 2 S 3 S 3 S 3 S 7 S 4 S 4 S 5 S 5 S 5 S 6 S 6 S 6 S 7 S 4 S 7 S 0 S 0 24

Unidad de Control y Rutas de Datos Procesadores de propósito general • Debido a

Unidad de Control y Rutas de Datos Procesadores de propósito general • Debido a su complejidad, los mecanismos de control de los microprocesadores pueden ser de varias clases § Aquí introduciremos el microprocesador multi-ciclo sin pipeline, por ser el que más claramente reproduce la estructura vista hasta ahora § El resto de los mecanismos de control �pueden verse como mejoras LOS CAMBIOS DE ESTADO DEPENDEN DEL ESTADO DEL DATAPATH Y DE OTROS ESTÍMULOS EXTERNOS: INSTRUCCIONES • El estado del datapah normalmente se detecta mediante las flags de la ALU 25

Unidad de Control y Rutas de Datos Procesadores de propósito general • Las instrucciones

Unidad de Control y Rutas de Datos Procesadores de propósito general • Las instrucciones se almacenan en un registro temporal § IR (Instruction Register) § DIR (Decoded Instruction Register) • Determinados bits de esos registros IR o DIR producen transiciones en la máquina de estados de la unidad de control • Partes de la instrucción pueden ir a la ruta de datos 26

Unidad de Control y Rutas de Datos Procesadores de propósito general 27

Unidad de Control y Rutas de Datos Procesadores de propósito general 27

Unidad de Control y Rutas de Datos Procesadores de propósito general • JUMP R

Unidad de Control y Rutas de Datos Procesadores de propósito general • JUMP R 2 § 1. 2. 3. 4. • § Saltar a la posición almacenada en R 2 -> ADDR DMEM_READ DATA -> PC CMEM_READ ADD [R 1], #3 1. 2. 3. 4. 5. 6. 7. 8. 9. Sumar el dato apuntado por R 1 y el valor 3 y dejar el resultado en la posicion apuntada por R 1 -> ADDR DMEM_READ DATA -> A #3 -> B A + B -> DATA (ALU_ADD) DMEM_WRITE PC -> A A + 1 -> PC (ALU_INC) CMEM_READ