Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porPilar Ortiz Duarte Modificado hace 7 años
1
Pablo Huerta Pellitero Carlos Sánchez de La Lama
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
2
Í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
3
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” M. Morris Mano “Diseño Digital”
4
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
5
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
6
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
7
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á: 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 cuenta = 0; mascara = 1; dato = din_i; while (dato_no_es_cero) { temp = dato && mascara; cuenta = cuenta + Temp; dato >> 1; } dout_o = cuenta; 7
8
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_r1_i, enable_r1_i, address_r2_i, enable_r2_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.
9
Contador de unos: datapath
10
Contador de unos: datapath
11
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 NoCero tiene una salida que vale 1 si la salida del multiplexor es distinta de “ ”
12
Contador de unos: datapath
El banco de registros tiene 8 registros de 8 bits. El registro 0 siempre tiene almacenado el valor “ ”.
13
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 Not A 1 A and B A A or B A – 1 A + B A – B A + 1
14
Contador de unos: datapath
El desplazador puede realizar cuatro operaciones diferentes en función del valor de la entrada shift_i. shift_i (0) shift_i (1) Operación No cambia 1 Desplazamiento izquierda Desplazamiento derecha Cambia cuartetos
15
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.
16
Contador de unos: datapath
Ejemplos de operaciones que puede realizar la ruta de datos: Leer el dato de entrada y guardarlo en el registro R1: Hacer la operación AND entre el registro R2 y el registro R5, y pasar el resultado a la salida de la ruta de datos:
17
Contador de unos: datapath
Ejemplos de operaciones que puede realizar la ruta de datos (continuación) : Desplazar el contenido del registro R1 hacia la derecha: Sumar el contenido del registro R1 con el registro R2 y almacenar el resultado en el registro R3:
18
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 1s 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 1s 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 1s de word_i y que ese valor puede leerse en dout_o
19
Contador de unos: Unidad de control
20
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
21
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;
22
Contador de unos: Unidad de control
Asignación de variables a los registros del Banco de Registros. R0 R1 dato R2 mascara R3 cuenta R4 temp Algoritmo y operaciones que debe realizar la ruta de datos: 1. cuenta = 0; -- R3 = R0 + R0 2. mascara = 1; -- R2 = R0 + 1 3. dato = din_i; -- R1 = din_i while (not_zero_o = 1) { 4. temp = dato && mascara; -- R4 = R1 and R2 5. cuenta = cuenta + Temp; -- R3 = R3 + R4 6. dato >> 1; -- R1 = ( (R1 + R0) >>1 ) }; dout_o = cuenta; -- Habilitar el triestado pasando R3 + R0
23
Contador de unos: Unidad de control
Se utilizan máquinas de Moore para evitar bucles combinacionales
24
Contador de unos: Unidad de control
start_i , not_zero_o 0 , 0 0 , 1 1 , 0 1 , 1 PS NS S0 S1 S2 S3 S7 S4 S5 S6 Tabla de estados y tabla de salidas
25
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
26
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
27
Procesadores de propósito general
27
28
Procesadores de propósito general
JUMP R2 Saltar a la posición almacenada en R2 R2 -> ADDR DMEM_READ DATA -> PC CMEM_READ ADD [R1], #3 Sumar el dato apuntado por R1 y el valor 3 y dejar el resultado en la posicion apuntada por R1 R1 -> ADDR DMEM_READ DATA -> A #3 -> B A + B -> DATA (ALU_ADD) DMEM_WRITE PC -> A A + 1 -> PC (ALU_INC) CMEM_READ
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.