Pablo Huerta Pellitero Carlos Sánchez de La Lama

Slides:



Advertisements
Presentaciones similares
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
Advertisements

El procesador: la ruta de datos y el control (II Parte)
Composición Interna de un Procesador
Unidad aritmético lógica
UNIDAD 3: SISTEMAS COMBINACIONALES Y SECUENCIALES UNIDAD 3: SISTEMAS COMBINACIONALES Y SECUENCIALES ING. GERARDO A. LEAL, MSC Unidad 3: Sistemas Combinacionales.
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
La placa base, también conocida como placa madre o tarjeta madre, es una tarjeta de circuito impreso a la que se conectan los componentes que constituyen.
1 UNIDAD 2: LÓGICA COMBINACIONAL © ILCEO: ING. MIGUEL ANGEL PEREZ SOLANO Analiza, desarrolla y resuelve minimización de funciones lógicas utilizando diferentes.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
INTRODUCCION A LOS SISTEMAS DE COMPUTO ARQUITECTURA VON NEUMAN Ing. David Gonzalez.
FUNCIONAMIENTO BÁSICO
L. S. C. A. Raúl Monforte Chulin
Organización de computadoras
ARQUITECTURA BÁSICA DE UN ORDENADOR
Microprocesador Estructura interna.
Tratamiento de Datos Capitulo Dos.
Pipeline: Peligros de datos
El procesador Diseño del control.
5. Análisis y diseño de sistemas secuenciales (I)
UNIDAD CENTRAL DE PROCESO CPU.
Pipelining Datapath y control.
Datapath para las instrucciones aritméticas y lógicas
Datapath para las instrucciones de brinco
EL CPU.
Informática 1 Año. Trabajo Practico. Tema: Definiciones
Titulación: Grado en Ingeniería de Computadores
8. Diseño del Procesador Fundamentos de los Computadores
Datapath para las instrucciones de carga y almacenamiento (load/store)
HARDWARE POR: JOEL CASTAÑEDA 1ºA.
ARQUITECTURA DE HARD WARE COMPONENTES EN BLOQUES DEL PROCESADOR
Computadora La computadora es una máquina capaz de realizar y controlar a gran velocidad cálculos y procesos complicado que requieren una toma rápida de.
Componentes básicos de una computadora
Creando un solo datapath
Estructura de Computadores (EUI: 2º ITIS) Tema 4: Diseño del procesador (parte II)1 Diseño de la Unidad de Control Multiciclo: Microprogramación Introducción.
Laura Melissa Anaya López 10-3
¿Qué es una computadora?
Centro educativo independiente tizayocan Saúl Cervantes Pérez
JAVIER ANDRES MARTÀ MARTINEZ CODIGO 37772
PICOBLAZE RESUMEN.
Tema 2. Sistemas Secuenciales básicos
TECNOLOGÍA DE EQUIPOS INFORMÁTICOS
CIRCUITOS SECUENCIALES
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
El microprocesador o simplemente procesador, es el circuito integrado central más complejo de un sistema informático; a modo de ilustración, se le suele.
HERRAMIENTAS DE PROGRAMACIÓN
Modelo de Von Neumman U.A.C.M Alejandra Andrade.
INNOVACION TECNOLOGICA ELECTRONICA ESTUDIANTIL EN CIENCIAS
PROCESADOR DIGITAL ESPECIALIZADO
Ing. Diego Barragán Guerrero Máquinas de estado con VHDL.
.La Computadora. La computadora es una maquina capaz de realizar y controla a gran velocidad cálculos y procesos complicados que requieren una toma.
8. Diseño del Procesador Fundamentos de los Computadores
ARQUITECTURA DEL COMPUTADOR Ing. Diana E. López.
Arquitectura de Computadoras Conferencia 2 Circuitos Combinacionales
PICOBLAZE RESUMEN.
Empecemos por el principio
1 TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S.
Funciones: Manejar todas las operaciones de acceso, lectura y escritura a cada una de las posiciones de la memoria principal donde se almacenan las instrucciones.
Arquitectura de Computadores de Computadores. Organización y Arquitectura La Arquitectura: se refiere a los atributos que tienen un impacto directo en.
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
El procesador Datapath y control.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
5.Análisis y diseño desistemas secuenciales (III) Fundamentos de los Computadores Grado en Ingeniería Informática.
1 ALU (Unidad aritmético lógica) Registros Unidad de control I/O y buses internos (usualmente 3 estados) I/O y buses internos Los buses I/O son de tres.
Gestión del sistema de entrada / salida
1 MEMORIAS Fundamentos de Informática Ingeniería Técnica Diseño Industrial.
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Concepto Clasificación Hardware Como procesa datos Sistemas de los Procesos de Datos (Dispositivos) Software (Conceptos, tipos, clasificación, fuentes)
Transcripción de la presentación:

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

Í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

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”

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

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

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

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

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.

Contador de unos: datapath

Contador de unos: datapath

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 “00000000”

Contador de unos: datapath El banco de registros tiene 8 registros de 8 bits. El registro 0 siempre tiene almacenado el valor “00000000”.

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

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

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.

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:

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:

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

Contador de unos: Unidad de control

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

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;

Contador de unos: Unidad de control Asignación de variables a los registros del Banco de Registros. R0 00000000 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

Contador de unos: Unidad de control Se utilizan máquinas de Moore para evitar bucles combinacionales

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

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

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

Procesadores de propósito general 27

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