La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 4: Unidad de Control

Presentaciones similares


Presentación del tema: "Tema 4: Unidad de Control"— Transcripción de la presentación:

1 Tema 4: Unidad de Control
Operaciones elementales Estructura de un computador elemental Ejemplo de un computador elemental Temporización de las señales de control Ejecución de instrucciones Diseño de la unidad de control Cableada Microprogramada Nanoprogramación Arranque del computador En este tema se tratarán: El concepto de operaciones elementales y los tipos que existen La estructura de un computador elemental basado en la Arquitectura von Neumman Se mostrará un ejemplo de un computador elemental simplificado, haciendo énfasis en los diferentes elementos que lo forman: Memoria principal, Banco de registros, Unidad aritmético-lógica, Unidad de direccionamiento y Unidad de control Para cada uno de los elementos anteriores se mostrará su funcionamiento y las señales de control que los gobiernan El concepto de temporización de las señales de control Ejemplos de ejecución de instrucciones máquina por un computador elemental, viendo en cada caso las operaciones elementales y las señales de control involucradas. El concepto de cronograma Aunque en este tema se aborda también el diseño de la Unidad de Control y el arranque del computador Tema 4: Unidad de Control Arquitectura de Computadores

2 Bibliografía General Hennessy, John L. y Patterson, David A. Arquitectura de computadores. Un enfoque cuantitativo. Mc Graw Hill, 1993 De Frutos Redondo, J.A. y Rico López, R. Arquitectura de computadores. S. P. de la Universidad de Alcalá, 1995 Stallings, W. Organización y Arquitectura de Computadores (4ª edición). Prentice Hall, 1.996 Complementaria: De Miguel Anasagasti, P. y otros. Problemas de estructura de computadores. Paraninfo, 1993 Tema 4: Unidad de Control Arquitectura de Computadores

3 Operaciones elementales (I)
La unidad de control tiene como función básica la ejecución de la secuencia siguiente: Tomar la instrucción apuntada por el contador de programa de la memoria principal (fase de fetch) Decodificar la instrucción leída Actualizar debidamente el contador de programa La Unidad de Control es el órgano encargado de generar las señales de control que gobernarán el resto de los elementos del computador. La Unidad de Control tiene como función básica la ejecución de la secuencia siguiente de pasos para llevar a cabo la ejecución de una instrucción máquina Tomar la instrucción apuntada por el contador de programa de memoria principal y llevarla a la Unidad de Control Decodificar la instrucción leída. Momento en el que se sabe qué instrucción es, cuánto ocupa, que operandos emplea y dónde se dejará el resultado Ejecutar la instrucción teniendo en cuenta que puede ser necesario leer operandos que se encuentren en memoria o dejar el resultado de la instrucción en memoria Actualizar el contador de programa para que apunte a la siguiente instrucción. Esta instrucción puede ser la inmediatamente siguiente u otra si se tratase de una instrucción de bifurcación, Esta secuencia la ejecutara ininterrumpidamente para cada instrucción máquina de un programa y para cada conjunto de programas Para realizar esta secuencia la Unidad de Control genera una serie de señales de control en función de la información disponible en: La propia instrucción. Esta información será tenida en cuenta al decodificar la instrucción El registro de estado. La Unidad de Control debe examinar el registro de estado para poder ejecutar las instrucciones. Como ejemplo típico podemos citar las instrucciones de salto condicional, pero también otras como las instrucciones de cadena o de suma y resta con acarreo del i80x86 Señales de E / S. Por ejemplo las señales generadas por un sistema de entrada-salida mediante interrupciones o por acceso directo a memoria, etc. Por último, se debe indicar que todo lo anteriormente expuesto está gobernado por un contador de periodos Ejecutar la instrucción Tema 4: Unidad de Control Arquitectura de Computadores

4 Operaciones elementales (II)
La ejecución de cada instrucción requiere realizar una serie de pequeños pasos mediante señales de control; estos pasos se llaman operaciones elementales Las operaciones elementales que puede realizar todo sistema computador se clasifican en los grupos siguientes: Operaciones de transferencia Mover información de un elemento de almacenamiento a otro Operaciones de proceso La información origen pasa a través de un operador Cada una de las fases de ejecución de una instrucción máquina requiere que se lleven a cabo una serie de tareas en cada uno de los diferentes periodos. Cada periodo está marcado por un ciclo de reloj. En cada periodo se generarán una serie de señales de control que conducirán a una serie de pasos elementales, denominados operaciones elementales. Por ejemplo, la fase de búsqueda de la instrucción requeriría los pasos siguientes: Llevar el contenido del contador de programa al registro de direcciones de memoria. Leer la posición indicada de memoria. Llevar el dato leído al registro de instrucción de la Unidad de Control. A su vez, cada paso de los anteriores se puede descomponer en otros más simples. Por ejemplo, el paso 1 podría descomponerse en: Llevar el contenido del contador de programa al bus de direcciones Cargar el registro de direcciones de memoria con el contenido del bus de direcciones A cada uno de los pasos anteriores se le denomina operación elemental y conlleva la generación de un número determinado de señales de control como veremos a lo largo del tema. Las operaciones elementales pueden clasificarse en dos tipos: Operaciones elementales de transferencia. Mueven información de un elemento de almacenamiento a otro Operaciones elementales de proceso. La información origen pasa a través de un operador, como por ejemplo, un sumador Lo que es importante resaltar es que las operaciones elementales comienzan en uno o varios elementos de almacenamiento y terminan necesariamente en otro de almacenamiento, ya que entre ciclo y ciclo de reloj no se mantiene la información en los buses que unen los diferentes elementos. Todas las operaciones elementales, ya sean de transferencia o de proceso comienzan en un elemento de almacenamiento y terminan en otro Tema 4: Unidad de Control Arquitectura de Computadores

5 Operaciones elementales (III) Operación elemental de transferencia
Registro A Registro B Registro C LA LB LC TB TC Bus de Datos Registro A TA LB Registro B reloj Ta La Tb Lb Tc Lc Operación de transferencia: MOV RegB, RegA Volcar el contenido del Registro A al Bus de Datos Cargar el contenido del Bus de Datos en Registro B En este ejemplo se muestra una operación de transferencia. La instrucción en ensamblador que se desea realizar es MOV RegB, RegA. Dicha instrucción realiza la siguiente función RegB  RegA Tal y como se observa en la figura, existen tres registros: RegA, RegB y RegC unidos al Bus de Datos del que leen la información mediante las señales La, Lb y Lc respectivamente o al que vuelcan su contenido abriendo el buffer triestado con las señales Ta, Tb y Tc. Si deseamos llevar la información del RegA al RegB deberemos: Volcar el contenido del RegA al Bus de Datos, para lo que se deberá activar la señal Ta Una vez que se ha volcado el contenido del RegA en el Bus de Datos, esta información estará disponible a la entrada de todos los elementos conectados a él. Como únicamente deseamos cargar el RegB se activará únicamente la señal Lb de carga de registro Tema 4: Unidad de Control Arquitectura de Computadores

6 Operaciones elementales (IV) Operación elemental de proceso
Registro A Registro B Registro C LA LB LC TC Bus de Datos ALU ALU SelOp Registro A LA Registro B LB Operación de proceso: XOR RC, RA, RB Llevar el Registro A a la ALU Llevar el Registro B a la ALU Escoger la operación XOR Cargar el resultado en el Registro C SelOp LC Registro C Xor SelOp reloj La Lb Tc Lc En este ejemplo se muestra una operación de proceso. La instrucción en ensamblador que se desea realizar es XOR RegC, RegA, RegB Dicha instrucción realiza la siguiente función RegC  RegAxor RegB Tal y como se observa en la figura, los registros: RegA, RegB están unidos directamente al operador XOR. El otro registro, RegC, se encuentra a la salida del Operador ALU y al Bus de Datos. Cuenta con una señal de carga de registro Lc y con otra TC que abre el buffer triestado al Bus de Datos Si deseamos llevar a cabo dicha operación deberemos: Llevar el contenido de los registros RegA y RegB al Operador ALU (se encuentran unidos directamente) Elegir y realizar la operación Xor Para almacenar el resultado en RegC se deberá activar la señal de carga Lc Tema 4: Unidad de Control Arquitectura de Computadores

7 Estructura de un computador elemental
Estudiaremos las señales de control que genera una Unidad de Control por medio del empleo de una máquina simplificada que siga la arquitectura de Von Neumann CPU UNIDAD ARITMÉTICA MEMORIA PRINCIPAL UNIDAD DE CONTROL DE E/S PERIFÉRICO UNIDAD ARITMÉTICA MEMORIA PRINCIPAL REGISTROS PERIFÉRICO UNIDAD DE E/S La principal característica de la Arquitectura von Neumann es que trata con el concepto de programa almacenado. La Arquitectura von Neumann consta de: Memoria principal en la que se almacenan los datos y el código del programa Banco de registros que puede ser incluido en la ALU Unidad aritmético-lógica encargada de realizar las operaciones aritméticas y lógicas Unidad de direccionamiento para actualizar el contador de programa y que puede formar parte de la propia Unidad de Control Unidad de Control, el órgano encargado de generar las señales de control necesarias para gobernar el resto de los elementos del computador Unidad de Entrada-Salida, a través de la que se conectan los periféricos al computador Buses de datos, direcciones y control para interconectar los diferentes elementos del computador En nuestro computador elemental prescindiremos de la Unidad de Entrada-Salida para simplificar la carga conceptual del mismo UNIDAD DE CONTROL CP Tema 4: Unidad de Control Arquitectura de Computadores

8 Ejemplo de un computador elemental (I) Memoria principal (I)
El bloque de memoria principal constará de los elementos siguientes: Pastilla o pastillas de memoria RAM Memoria Principal Señales de control Wr Mem Rd Registro de direcciones Ldir Reg Dir Bus de Direcciones Buffer bidireccional al bus de datos Buffer Bidireccional Bus de Datos La memoria principal es el elemento clave de la Arquitectura von Neumann ya que proporciona el elemento en el que almacenar los datos y programas. La memoria principal consta de: Módulo o módulos de memoria RAM. Tal y como se vio en el tema 5 de Sistemas de Memoria de la asignatura EC, la memoria RAM puede estar formada por diferentes módulos para lograr la capacidad total deseada. Registro de direcciones. Es el elemento que permite almacenar la dirección de memoria de la que se desea leer o en la que se quiere escribir. Estará conectada al Bus de Direcciones. Se cargará activando la señal Ldir. Buffer bidireccional. Conectado al bus de datos es el elemento mediante el cual se envían los datos a, y desde, memoria. Este elemento está conectado al Bus de Datos. Otra alternativa para implementar este elemento hubiera podido ser un registro de datos tal y como se ve en [DeMi00]. Señales de control. Son generadas por la Unidad de Control para gobernar los diferentes elementos. Se explicarán más extensamente a continuación. Las señales de control generadas por la Unidad de Control para gobernar los diferentes elementos de la memoria son en este computador elemental: Mem. Señal para iniciar un ciclo de memoria, la duración de esta señal debe coincidir con la duración del periodo básico de reloj Rd. Señal que especifica ciclo de lectura. En nuestro computador elemental se ha supuesto que emplea dos ciclos de reloj completos, pero en la realidad depende del tiempo de lectura de la memoria empleada Wr. Señal que especifica ciclo de escritura. En nuestro computador elemental se ha supuesto que emplea dos ciclos de reloj completos, pero en la realidad depende del tiempo de escritura de la memoria empleada Ldir. Señal de flanco que carga en el registro de direcciones la información disponible en el bus de direcciones. En nuestro computador elemental, las señales Mem, Rd y Wr son activas por nivel y la señal Ldir por flanco de bajada. Tema 4: Unidad de Control Arquitectura de Computadores

9 Ejemplo de un computador elemental (II) Memoria principal (II)
Cronograma del ciclo de lectura Memoria Principal Wr Mem Rd Buffer Bidireccional Memoria Principal Wr Mem Rd Buffer Bidireccional Bus de Datos Ldir Reg Dir Bus de Direcciones Mem Bus de Datos Wr Mem Rd reloj Bus de Direcciones Ldir Reg Dir Ldir Reg Dir Memoria Principal Mem Bus de Direcciones Ldir Buffer Bidireccional Bus de Datos Rd Wr Dirección a leer Tema 4: Unidad de Control Arquitectura de Computadores

10 Ejemplo de un computador elemental (III) Memoria principal (III)
Cronograma del ciclo de escritura Memoria Principal Wr Mem Rd Buffer Bidireccional Bus de Datos Ldir Reg Dir Bus de Direcciones Mem Memoria Principal Mem Ldir Rd Wr Wr Mem Memoria Principal Wr Mem Rd Bus de Datos Ldir Reg Dir Bus de Direcciones Buffer Bidireccional Wr Mem Rd Ldir Reg Dir Ldir Reg Dir Memoria Principal Buffer Bidireccional Buffer Bidireccional Bus de Datos Dirección a escribir Dato a escribir Tema 4: Unidad de Control Arquitectura de Computadores

11 Ejemplo de un computador elemental (IV) Banco de registros (I)
El banco de registros está formado por los siguientes elementos: 2 puertas de salida Salida A Salida B a la ALU 8 registros de propósito general Banco de Registros (8 registros) Señales de control Dir. A Dir. B Lr de la Unidad de Control 1 puerta de entrada Pta. Entr. Bus de datos El banco de registros incluirá los registros de propósito general que son visibles al usuario, es decir, que se pueden acceder desde el ensamblador o desde el lenguaje máquina. En el computador elemental definido, nuestro banco de registros contará con 8 registros. Asimismo, el banco de registros contará con dos puertas de salida A y B lo que permitirá realizar la lectura simultánea de dos registros. Para seleccionar qué registro se elige de entre los ocho disponibles y por que puerta saldrá se cuenta con dos señales de 3 bits Dir A y Dir B. Ambas salidas se encuentran conectas a la Unidad Aritmético-lógica. Nuestro banco de registros contará con una única puerta de entrada conectada al Bus de Datos. Precisará de la señal Dir A para indicar el registro que será escrito y la señal de carga Lr. Finalmente, se tienen las señales de control que se expondrán a continuación Las señales de control generadas por la Unidad de Control para gobernar los diferentes elementos del banco de registros en nuestro computador elemental serán: Dir A. Señal para indicar el registro que se presentará a la salida A del banco de registros. También es empleada para seleccionar el registro que se sobreescribirá con el contenido del Bus de Datos a través de la puerta de entrada Dir B. Señal para indicar el registro que se presentará a la salida B del banco de registros. Lr. Señal de flanco que hará que se cargue el registro indicado por Dir A con el contenido del Bus de Datos a través de la puerta de entrada Las señales Dir A y Dir B son activas por nivel, cada una cuenta con 3 bits y la señal Lr es activa por flanco de bajada en nuestro computador elemental Tema 4: Unidad de Control Arquitectura de Computadores

12 Ejemplo de un computador elemental (V) Banco de registros (II)
Lectura del banco de registros. Registros D y E simultáneamente Banco de Registros (8 registros) Dir. A Dir. B Lr de la Unidad de Control Salida A Salida B a la ALU Salida A Salida B a la ALU Reg. D Reg. E RD RE Dir. A Dir. B Lr B. Dat Dir. A Dir. B de la Unidad de Control Banco de Registros (8 registros) Reg. E Reg. D Pta. Entr. Bus de datos Lr Tema 4: Unidad de Control Arquitectura de Computadores

13 Ejemplo de un computador elemental (VI) Banco de registros (III)
Escritura en el banco de registros. Registro D Pta. Entr. Bus de datos Banco de Registros (8 registros) Dir. A Dir. B Lr de la Unidad de Control Salida A Salida B a la ALU Banco de Registros (8 registros) Dir. A Dir. B Lr de la Unidad de Control Salida A Salida B a la ALU Dir. A Dir. B Lr B. Dat RD Lr Reg. D Reg. D dat Pta. Entr. Bus de datos Pta. Entr. Dato a escribir Bus de datos Tema 4: Unidad de Control Arquitectura de Computadores

14 Ejemplo de un computador elemental (VII) Unidad aritmético-lógica (I)
La unidad aritmético-lógica consta de los siguientes elementos: de B Operador con 4 señales de control Operador [S0, S3] de B de A de CP Bus de Datos 2 multiplexores de 4 entradas y 1 salida Mux. X Mux. Y [X0, X1] [Y0, Y1] Registro acumulador Acumulad. Lac La salida del registro acumulador, puede transferirse a diferentes elementos La Unidad Aritmético-lógica, tal y como vimos en el tema anterior, es el órgano del computador encargado de realizar las operaciones aritméticas y lógicas bajo las órdenes de la Unidad de Control. En nuestro computador elemental estará formada por los siguientes elementos: La unidad aritmética está formada por varios operadores combinacionales de cuatro bits. Este operador podrá realizar 16 operaciones diferentes seleccionadas mediante las señales de control S0-S3: Operaciones aritméticas: ADD, SUB, MUL, DIV, SAL, SAR, NEG, ROL, ROR e INC. Operaciones lógicas: AND, OR, NOT, XOR, SHL y SHR El operador contará con dos dos multiplexores X e Y conectado, cada uno de ellos, a una de las entradas del operador y que permitirá al operador trabajar con datos diferentes. Los multiplexores estarán gobernados por las señales X0, X1 para el X e Y0, Y1 para el Y. De esta manera el multiplexor X permite elegir entre: El contenido del bus de Datos El contenido del registro acumulador La salida B del banco de registros El multiplexor Y permite escoger entre: La salida A del banco de registros El contador de programa Un registro Acumulador, conectado a la salida del operador que puede ser cargado con el resultado de la operación mediante la señal Lac y que puede volcarse al Bus de Datos mediante la señal DT, o al Bus de Direcciones mediante la señal AT. Este registro es transparente al usuario, es decir, no es accesible desde ensamblador o código máquina. Las señales de control necesarias para manejar los diferentes elementos y que se explicarán detalladamente a continuación. Las señales de control generadas por la Unidad de Control para gobernar los diferentes elementos de la Unidad Aritmético-lógica son en este computador elemental: X0, X1. Señal que permite determinar qué operando se presenta en la entrada X del multiplexor. Los posibles son: Bus de Datos, Registro Acumulador y Salida B del banco de registros Y0, Y1. Señal que permite determinar qué operando se presenta en la entrada Y del multiplexor. Los posibles son: Salida B del banco de registros, Salida A del banco de registros y contador de programa S0 a S3. Señal que especifica la operación deseada entre las 16 posibles: ADD, SUB, MUL, DIV, SAL, SAR, NEG, ROL, ROR, INC, AND, OR, NOT, XOR, SHL y SHR Lac. Señal de flanco que carga en el registro acumulador el resultado del operador DT. Señal que vuelca el contenido del registro acumulador al Bus de Datos AT. Señal que vuelca el contenido del registro acumulador al Bus de Direcciones Bus de Direcciones AT DT Señales de control Tema 4: Unidad de Control Arquitectura de Computadores

15 Ejemplo de un computador elemental (VIII) Unidad aritmético-lógica (II)
Sumar al contenido de la Salida B del banco de registros con el B.Dat Bus de Datos Mux. X Mux. Y [X0, X1] [Y0, Y1] DT Bus de Direcciones AT de B de A de CP Operador [S0, S3] Acumulad. Lac Dato a sumar Salida B del BR Bus de Direcciones AT Mux. X Mux. Y [X0, X1] [Y0, Y1] de B de A de CP Operador [S0, S3] Acumulad. Lac S.B dat + Mux. X Mux. Y [X0, X1] [Y0, Y1] Operador [S0, S3] Acumulad. Lac [X0,X1] [Y0,Y1] [S0,S3] Lac DT Bus de Datos Tema 4: Unidad de Control Arquitectura de Computadores

16 Ejemplo de un computador elemental (IX) Unidad de direccionamiento (I)
Bus de Datos CP Lcp Bus de Direcciones La unidad de direccionamiento se encarga de generar las direcciones ya sean de memoria o de puertos de E/S a la ALU El CP debe actualizarse cada vez que se ejecuta una instrucción Tcp La actualización vendrá dado por la información disponible en el bus de datos La Unidad de Direccionamiento es la encargada de ir generando las direcciones de memoria a las que se hace referencia durante la ejecución de un programa. La generación de estas direcciones debe contemplar tanto la secuencia normal de ejecución de un programa como los saltos y bifurcaciones, las llamadas a procedimientos y a los servicios de interrupción. La Unidad de Direccionamiento está estrechamente relacionada con el Contador de Programa (CP) y deberá calcular su valor de forma adecuada, bien mediante su conexión con el Bus de Datos, por ejemplo, un salto condicional o el resultado de incrementar el CP en el tamaño de la instrucción. Para este último caso, nuestro computador elemental emplea la ALU. Finalmente, la Unidad de Direccionamiento debe permitir que el CP vuelque su contenido en el Bus de Direcciones. A continuación se explicarán las señales de control que genera la Unidad de Control para manejar los diferentes elementos. Las señales de control generadas por la Unidad de Control para gobernar los diferentes elementos de la Unidad de Direccionamiento de este computador elemental serán: Lcp. Señal de flanco que permite cargar en el CP el contenido presente en el Bus de Datos Tcp. Señal que vuelca el contenido del CP al Bus de Direcciones En este computador elemental, la señal Tcp es activa por nivel y la señal Lcp por flanco de bajada. Tema 4: Unidad de Control Arquitectura de Computadores

17 Ejemplo de un computador elemental (X) Unidad de direccionamiento (II)
Bus de Datos CP Lcp Bus de Direcciones Volcar el contenido de CP al bus de direcciones Lcp Tcp Tcp Tcp a la ALU Tcp Tema 4: Unidad de Control Arquitectura de Computadores

18 Ejemplo de un computador elemental (XI) Unidad de control (I)
La UC genera todas las señales que forman el bus de control Consta de los elementos siguientes: Unidad de Control Bus de Datos señales de control Reg. Ins. Li Registro de instrucciones Puerto de salida Dit Desp/DI Registro contador de fases Cnt. F Reset Oscil reloj R. Flags Lflags Registro de estado Dir. A Dir. B La Unidad de Control es el órgano del computador que se encarga de generar todas las señales de control para gobernar todos los elementos del computador, incluso las que ella misma precise. El conjunto de señales generadas por la Unidad de Control forman el llamado Bus de Control. La Unidad de Control se encuentra formada por: Registro de instrucción, es la entrada por la que se almacena el código máquina correspondiente a la instrucción a ejecutar. Se carga por medio de la señal Li. Puerto de salida, por el que la Unidad de Control pone en el Bus de Datos los desplazamientos y datos inmediatos, realizando la extensión de signo si fuese necesario. Para ello activa la señal DIT. Registro contador de fases y periodos, se va incrementando con los pulsos de un oscilador o reloj maestro. Permite diferenciar los correspondientes periodos y fases de las instrucciones, necesarios para realizar las operaciones elementales. Mediante la señal de Reset se puede poner a cero, lo que permite iniciar la cuenta de los periodos de cada instrucción. Registro de estado, en el que se almacenan las señales de estado generadas por la Unidad Aritmético-lógica. La carga se hace mediante varias señales de flanco que permiten realizar una actualización selectiva de parte de este registro, dependiendo de la instrucción ejecutada. Dado que la conexión con la ALU no es sencilla, se ha simplificado haciendo que al activar la señal de Lflags se actualicen todos los bits del registro de estado. Señales de control, que se verán detenidamente a continuación y entre las que destacan dos buses de 3 bits, que permiten seleccionar las salidas A y B del banco de registros mediante la activación de las señales DIR A y DIR B. La Unidad de Control requiere también una serie de señales de control para su funcionamiento Li. Señal de flanco que permite cargar una instrucción en el buffer de instrucciones a través del registro de instrucción desde el Bus de Datos. DIT. Señal que permite volcar al Bus de Datos los datos inmediatos y los desplazamientos de los direccionamientos relativos que sean necesarios para la ejecución de las instrucciones. Lflags. Señal de flanco que permite modificar, de manera simplificada, el registro de estado Reset. Señal de flanco que pone a cero el contador de fases lo que hace que se comience la cuenta de los periodos de la siguiente instrucción En el computador elemental, la señal DIT son activas por nivel y las señales Li, Lflags y Reset por flanco de bajada. Tema 4: Unidad de Control Arquitectura de Computadores

19 Ejemplo de un computador elemental (XII) Unidad de control (II)
Carga en el registro de instrucción del código máquina de la instrucción Unidad de Control Bus de Datos señales de control Dit Desp/DI Reg. Ins. Li Cnt. F Reset Oscil reloj Dir. A Dir. B R. Flags Lflags Unidad de Control Bus de Datos señales de control Dit Desp/DI Reg. Ins. Li Cnt. F Reset Oscil reloj Dir. A Dir. B R. Flags Lflags Código máquina Instrucción Li Reg. Ins. Li Dir. A Dir. B Dit Reset Tema 4: Unidad de Control Arquitectura de Computadores

20 Ejemplo de un computador elemental (XIII)
Reset Li Bus de Datos Bus de Direcciones Memoria Principal Ldir Reg Dir Wr Mem Rd Buffer Bidireccional Mux. X [X0, X1] Mux. Y [Y0, Y1] DT AT Acumulador Lac Operador [S0, S3] CP Lcp Tcp Banco de Registros (8 registros) Pta. Entrada Dir. B Dir. A Lr Salida B Salida A Unidad de Control Dit Desp /D.I. señales de control reloj Oscilador C. Fases Reg. Estado Lflags Reg. Instr. Banco de Registros (8 registros) Pta. Entrada Dir. B Dir. A Lr Salida B Salida A CP Lcp Tcp Mux. X [X0, X1] Mux. Y [Y0, Y1] DT AT Acumulador Lac Operador [S0, S3] Memoria Principal Ldir Reg Dir Wr Mem Rd Buffer Bidireccional Bus de Datos Bus de Direcciones Unidad de Control Dit Desp /D.I. señales de control reloj Oscilador C. Fases Reset R. Estado Lflags Reg. Instr. Li En las transparencias anteriores hemos visto cada uno de los componentes de este computador elemental (memoria principal, banco de registros, ALU, unidad de direccionamiento y Unidad de Control) basado en la Arquitectura von Neumann. Tal y como comentamos, se ha hecho la simplificación de prescindir del Sistema de Entrada-Salida y de las señales asociadas. No obstante se verá en el Tema 6: Sistema de Entrada-Salida. La arquitectura que hemos presentado determina el modo en que el repertorio de instrucciones, los modos de direccionamiento, el número de ciclos de reloj que ocupa la ejecución de cada instrucción. En concreto, veremos que la instrucción que sobre la que trabajaremos emplea 11 periodos para completar su ejecución. Tema 4: Unidad de Control Arquitectura de Computadores

21 Ejecución de instrucciones (I) Ejecución de SUB D, [E + 1234h] (I)
Instrucción a ejecutar: SUB D, [E h] D  D - Memoria ( E h) Instrucción aritmética con direccionamiento directo relativo a registro Reg Cód. operación SUB D E 7 8 11 12 15 16 31 desplazamiento El formato de la instrucción es el siguiente y ocupa una palabra: Para continuar con el estudio del tema, veremos como se ejecuta una instrucción en nuestro computador elemental, definiremos las operaciones elementales que son necesarias a la hora de ejecutar cada una de las fases de la instrucción máquina. La instrucción que hemos escogido es, en lenguaje ensamblador, SUB D, [E+1234h]. Dicha instrucción realiza la operación siguiente: D = D – Memoria( E h) Uno de los operandos emplea un direccionamiento relativo a registro, tal y como vimos en el Tema 6: Lenguaje máquina y ensamblador de la asignatura EC. Finalmente, hemos supuesto que nuestra instrucción ocupa una palabra de 32 bits, siendo éste el tamaño supuesto para los registros, buses y posiciones de memoria. Como se definen los formatos de instrucción y la información que deben contener se vio en el Tema 6: Lenguaje máquina y ensamblador de la asignatura EC y en el Tema 2: Repertorio de instrucciones y Arquitectura de Computadores de la asignatura AC en la que se trató, además, cómo influyen en la arquitectura final de la máquina. Tema 4: Unidad de Control Arquitectura de Computadores

22 Ejecución de instrucciones (II) Ejecución de SUB D, [E + 1234h] (II)
CP Lcp CP Lcp Salida A Salida B Ldir Reg Dir Ldir Reg Dir Memoria Principal Mem Tcp Tcp Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase de Fetch (I) Periodo 1 Reg. Instr. Li A lo largo de las transparencias siguientes se mostrará en rojo, en la animación, los elementos que intervienen en cada uno de los ciclos de reloj. Hay que tener en cuenta que las operaciones elementales que pueden realizarse en cada ciclo de reloj deben comenzar en uno o varios elementos de almacenamiento y terminar en otro elemento de almacenamiento, ya que la información existente en los buses se perderá entre ciclo y ciclo de reloj. La primera fases en la ejecución de las instrucciones e la Fase de Búsqueda de la Instrucción o Fase de Fetch. Para poder realizarla debemos, en un primer momento direccionar el contador de programa. De la siguiente forma: CP  Bus de Direcciones. Cargar el registro de direcciones con el contenido del bus de direcciones Se debe resaltar que, una vez esté el contenido del CP en el bus, TODOS los elementos conectados al Bus de Direcciones tendrán esa información disponible, siendo resposabilidad de la Unidad de Control el generar las señales de control necesarias para que sea el Registro de Direcciones y no otro elemento quien obtenga el valor del CP. Con lo que finalmente, en el registro de direcciones tendremos la posición de memoria de la que deseamos leer la instrucción. Si nos fijamos, se trata de una operación elemental de transferencia. Comienza en un elemento de almacenamiento (CP) y termina en otro (Registro de Direcciones). No se ha pasado la información a través de ningún operador. Solamente se ha establecido un camino entre el origen y el destino de la operación. Aunque veamos que también se ponen en rojo las señales involucradas en estas operaciones elementales, no les prestaremos atención hasta que tratemos la temporización de las señales. C. Fases Reset reloj Oscilador Direccionar el contador de programa Unidad de Control CP  Bus de Direcciones Reg. Estado Lflags Cargar R. Dir. con el contenido del B.Dir señales de control Tema 4: Unidad de Control Arquitectura de Computadores

23 Ejecución de instrucciones (III) Ejecución de SUB D, [E + 1234h] (III)
CP Lcp Salida A Salida B Pta. Entrada Pta. Entrada Ldir Reg Dir Memoria Principal Memoria Principal Mem Mem Tcp Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Buffer Bidireccional Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase de Fetch (II) Periodos 2-3 Reg. Instr. Li Reg. Instr. Li Continuemos con la fase de Fetch. Hemos indicado la dirección de memoria de la que se desea leer la instrucción, pero no se ha leído aún. Por lo tanto tendremos que leer la instrucción, y para ello: Iniciar ciclo de memoria Leer, que durará dos ciclos de reloj tal y como henos comentado Cargar en el buffer de instrucciones la instrucción leída desde el Bus de Datos a través del registro de instrucción. Conviene resaltar que todos los elementos conectados al Bus de Datos podrán acceder al código máquina de la instrucción y que es trabajo de la Unidad de Control generar las señales de control necesarias para que reciba la instrucción el registro de instrucción y no otro elemento del computador. C. Fases Reset reloj Oscilador Leer la instrucción de memoria principal Unidad de Control Inicio ciclo memoria, leer Reg. Estado Lflags Cargar R. Inst. con el contenido del B.Dat señales de control Tema 4: Unidad de Control Arquitectura de Computadores

24 Ejecución de instrucciones (IV) Ejecución de SUB D, [E + 1234h] (IV)
CP Lcp Salida A Salida B Ldir Reg Dir Memoria Principal Mem Tcp Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase Decodificación Periodo 4 Reg. Instr. Li Una vez que tenemos el código máquina de la instrucción en el buffer de instrucciones, debemos decodificar la cadena de ceros y unos que hemos leído de memoria. En esa cadena, tendremos información sobre qué instrucción es, con qué operandos y modos de direccionamiento trabaja. Además, una vez decodificada sabremos el tamaño que ocupa la instrucción ya que conoceremos el formato de instrucción que emplea. C. Fases Reset reloj Oscilador La Unidad de Control emplea un ciclo de reloj en la decodificación de la instrucción leída Unidad de Control Reg. Estado Lflags señales de control Tema 4: Unidad de Control Arquitectura de Computadores

25 Ejecución de instrucciones (V) Ejecución de SUB D, [E + 1234h] (V)
CP Lcp Salida A Salida B Pta. Entrada Memoria Principal Mem Tcp Ldir Reg Dir Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Operador [S0, S3] Dir. A Dir. B Wr Acumulador Lac Acumulador Lac Rd Buffer Bidireccional Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase actualizar CP (I) Periodo 5 Reg. Instr. Li A continuación, realizaremos la fase de actualización del CP. Una vez que hemos decodificado la instrucción conoceremos su tamaño y por lo tanto podremos incrementar el CP de manera adecuada. En nuestro ejemplo, la instrucción ocupa una única palabra, si hubiésemos propuesto una instrucción de más de una palabra, se debería ir incrementando para traer el resto de la instrucción. Por lo tanto tendremos que hacer pasar al CP por la ALU y para ello: El CP atacará la entrada Y del Mux Y. Seleccionaremos la operación de incremento Y cargaremos el resultado en el Registro Acumulador Además, si observamos la operación elemental realizada, se trata de una operación elemental de proceso, ya que el CP (elemento de almacenamiento) pasa a través de un operador (un sumador de la ALU) y terminan en el Registro Acumulador (otro elemento de almacenamiento) C. Fases Reset reloj Oscilador Incrementar en uno el CP Unidad de Control Seleccionar operando (CP) y operar (Inc) Reg. Estado Lflags Cargar Acumulador con el resultado señales de control Tema 4: Unidad de Control Arquitectura de Computadores

26 Ejecución de instrucciones (VI) Ejecución de SUB D, [E + 1234h] (VI)
CP Lcp CP Lcp Salida A Salida B Pta. Entrada Pta. Entrada Ldir Reg Dir Memoria Principal Mem Tcp Acumulador Lac Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Acumulador Lac Rd Buffer Bidireccional Lr AT DT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase actualizar CP (II) Periodo 6 Reg. Instr. Li Bien, hemos actualizado de manera adecuada el CP, pero su nuevo valor todavía se encuentra en el Registro Acumulador y no en el Registro Contador de Programa. Por lo tanto tendremos que llevar el contenido del Registro Acumulador al CP y para ello: El acumulador pone su contenido en el Bus de Datos. El CP carga el contenido del Bus de Datos. Nuevamente la única operación que hemos realizado ha sido la de establecer un camino entre el registro acumulador y el CP por lo que se trataría de una operación elemental de transferencia. C. Fases Reset reloj Oscilador Cargar el nuevo valor del CP Unidad de Control Acumulador  Bus de Datos Reg. Estado Lflags Cargar el CP con el contenido del Bus de Datos señales de control Tema 4: Unidad de Control Arquitectura de Computadores

27 Ejecución de instrucciones (VII) Ejecución de SUB D, [E + 1234h] (VII)
CP Lcp Salida A Reg. E Salida B Dit Desp /D.I. Ldir Reg Dir Memoria Principal Mem Tcp Salida A Banco de Registros (8 registros) Mux. X [X0, X1] Mux. X [X0, X1] Mux. Y [Y0, Y1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase de Ejecución (I) Periodo 7 Reg. Instr. Li Bien, una vez que hemos leído y decodificado la instrucción y se ha actualizado el contador de programa, deberemos ejecutar la instrucción propiamente dicha. Tal y como comentamos al principio de la misma, uno de los operandos emplea un modo de direccionamiento relativo a registro. Es por ello por lo que tendremos que calcular la dirección efectiva de memoria en la que se encuentra dicho operando para poder llevar a cabo la instrucción. El modo de direccionamiento relativo a registro, tal y como vimos en el Tema 3: Lenguaje máquina y ensamblador de la asignatura de EC consiste en que la posición del operando fuente o destino se encuentra en memoria, dándose dicha posición de manera relativa a un registro, es decir, se estará direccionando la posición de memoria: Memoria( Registro + Desplazamiento) Para calcular la dirección del operando fuente deberemos realizar los pasos siguientes: La Unidad de Control pone el desplazamiento en el Bus de Datos. La entrada X de la ALU será seleccionada por el Mux X y será el Bus de Datos. La Unidad de Control elegirá el registro E del Banco de Registros y lo colocará en la salida A del mismo. La entrada Y de la ALU será seleccionada por el Mux Y y será la salida A del BR. Realizaremos la suma de ambos operandos. Cargaremos el resultado en el registro acumulador. C. Fases Reset reloj Oscilador Calcular la dirección del operando fuente Unidad de Control UC:1234h en B. Datos; Reg. E con Dir.A Reg. Estado Lflags Seleccionar operandos y operar (suma) Cargar Acumulador con el resultado señales de control Tema 4: Unidad de Control Arquitectura de Computadores

28 Ejecución de instrucciones (VIII) Ejecución de SUB D, [E + 1234h] (VIII)
CP Lcp Salida A Salida B Ldir Reg Dir Ldir Reg Dir Memoria Principal Mem Tcp Acumulador Lac AT Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase de Ejecución (II) Periodo 8 Reg. Instr. Li Una vez calculada la dirección de memoria en la que se encuentra el operando fuente deberemos direccionarla para poder leerlo. Para direccionar el operando fuente deberemos establecer un camino entre el acumulador y el registro de direcciones: El acumulador pone el contenido en el Bus de Direcciones. El registro de Direcciones se carga con el contenido del Bus de Direcciones. C. Fases Reset reloj Oscilador Direccionar el operando fuente Unidad de Control Acumulador  Bus de direcciones Reg. Estado Lflags Cargar R. Dir. con el contenido del B.Dir señales de control Tema 4: Unidad de Control Arquitectura de Computadores

29 Ejecución de instrucciones (IX) Ejecución de SUB D, [E + 1234h] (IX)
CP Lcp Salida A Reg. D Salida A Salida B Ldir Reg Dir Memoria Principal Memoria Principal Mem Mem Tcp Banco de Registros (8 registros) Mux. X [X0, X1] Mux. X [X0, X1] Mux. Y [Y0, Y1] Mux. Y [Y0, Y1] Rd Buffer Bidireccional Rd Operador [S0, S3] Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Acumulador Lac Rd Pta. Entrada Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase de Ejecución (III) Periodos 9-10 Reg. Instr. Li Una vez direccionado el operando deberemos leer dicho operando y realizar la operación especificada en la instrucción Para ello deberemos: Iniciar ciclo de memoria Leer, que durará dos ciclos de reloj tal y como henos comentado, quedando el operando fuente en el Bus de Datos La entrada X de la ALU será seleccionada por el Mux X y será el Bus de Datos. La Unidad de Control elegirá el registro D del Banco de Registros y lo colocará en la salida A del mismo. La entrada Y de la ALU será seleccionada por el Mux Y y será la salida A del BR. Realizaremos la resta de ambos operandos. Cargaremos el resultado en el registro acumulador. Modificaremos el registro de estado convenientemente, según haya sido el resultado de la operación. Leer operando fuente y realizar operación C. Fases Reset reloj Oscilador Inicio ciclo de memoria y leer Unidad de Control La UC selecciona Reg. D con Dir.A Reg. Estado Lflags Reg. Estado Lflags Selecc. Oper., restar, cargar Ac y mod. Flags señales de control Tema 4: Unidad de Control Arquitectura de Computadores

30 Ejecución de instrucciones (X) Ejecución de SUB D, [E + 1234h] (X)
CP Lcp Salida A Reg. D Salida A Salida B a la ALU Memoria Principal Mem Tcp Ldir Reg Dir Acumulador Lac Banco de Registros (8 registros) Banco de Registros (8 registros) Reg. D Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Acumulador Lac Rd Buffer Bidireccional Pta. Entrada Lr Lr AT DT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Fase de Ejecución (IV) Periodo 11 Reg. Instr. Li Una vez realizada la operación deberemos llevar el resultado de la misma, sita en el registro acumulador, al registro destino, por lo que estableceremos el camino adecuado: La Unidad de Control elegirá el registro D del Banco de Registros. El acumulador volcará su contenido al Bus de Datos. Cargaremos el registro escogido con el contenido del Bus de Datos. Finalmente hemos de poner el contador de fase a cero para indicar el final de la ejecución de la instrucción en curso. Guardar res. en reg. D y pasar a sig. Ins. C. Fases Reset C. Fases Reset reloj Oscilador UC pone Reg. D en Dir.A Unidad de Control Acumulador  B. Datos Reg. Estado Lflags Cargar Banco de Registros y poner el Contador de Fases a cero señales de control Tema 4: Unidad de Control Arquitectura de Computadores

31 Temporización de las señales de control
El comportamiento de un computador es síncrono. Está gobernado por un reloj Cada una de las fases de ejecución de una instrucción se realiza en un número determinado de periodos de reloj De manera análoga, dentro del computador, las tareas elementales vistas hasta ahora no se realizan en cualquier momento, sino síncronamente en los tiempos establecidos por los periodos de un reloj. Es por ello, que dependiendo de la instrucción se empleen más o menos ciclos de reloj, lo que influye en el rendimiento del computador, tal y como hemos visto en el Tema 1: Arquitectura de computadores, rendimiento y coste de esta asignatura. Además, las diferentes operaciones elementales se realizan activando o desactivando las señales de los diferentes elementos del computador. Eso si, en los periodos de reloj correspondientes. Entonces, para nosotros, un cronograma será un diagrama en el que se mostrará la activación o desactivación de las señales de control correspondientes a la ejecución de cada una de las fases de ejecución de un instrucción máquina. En el cronograma se representarán las diferentes señales de control en vertical y el tiempo en que se activan o desactivan en horizontal, siguiendo los periodos del reloj. Cronograma es el diagrama de las señales que se activan en cada ciclo de reloj correspondiente a cada una de las fases de ejecución de la instrucción Tema 4: Unidad de Control Arquitectura de Computadores

32 Cronograma (I) Ejecución de SUB D, [E + 1234h] (I)
Tcp Ldir Señales asociadas Fase de Fetch Periodo 1 Direccionar el contador de programa CP  Bus de Direcciones Cargar Reg. Direcciones con el contenido del B.Dir reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset D E C O D I F I C A C I Ó N Periodos 2-3 Leer la instrucción de memoria principal Inicio ciclo memoria, leer Cargar R. Ins. con el contenido del B.Dat Mem Rd Li En las transparencias que siguen a continuación revisaremos las operaciones elementales realizadas en cada una de las fases de ejecución indicando cuáles son las señales de control que deben activarse o desactivarse en cada periodo. Se mostrarán entre llaves las operaciones elementales correspondientes a cada periodo de reloj (o periodos en el caso una lectura de, o escritura en, memoria) Fase de Fetch. CP  Bus de Direcciones. Tcp Cargar el registro de direcciones con el contenido del bus de direcciones. Ldir Iniciar ciclo de memoria Mem Leer, que durará dos ciclos de reloj tal y como henos comentado. Rd Cargar en el buffer de instrucciones la instrucción leída desde el Bus de Datos a través del registro de instrucción. Li Fase de decodificación. Se supone que la UC emplea un ciclo de reloj en decodificar la instrucción leída y que no se generan señales de control durante la misma Fase Decodificación. Periodo 4 La UC emplea un ciclo de reloj en la decodificación de la instrucción leída Tema 4: Unidad de Control Arquitectura de Computadores

33 Cronograma (II) Ejecución de SUB D, [E + 1234h] (II)
<Y0,Y1=CP> <S0,S3=Inc> Lac Señales asociadas reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset CP I Fase actualizar el CP Periodo 5 Incrementar en uno el CP Seleccionar CP y operar (incrementar) Cargar Acumulador con el resultado Periodo 6 Cargar el nuevo valor del CP Acumulador  Bus de Datos Cargar el CP con el contenido del Bus de Datos DT Lcp Fase de actualización del contador de programa: El CP atacará la entrada Y del Mux Y. <Y0, Y1 = CP> Seleccionaremos la operación de incremetar Mux Y, <S0 a S3 = +> Y cargaremos el resultado en el Registro Acumulador. Lac El acumulador pone su contenido en el Bus de Datos. DT El CP carga el contenido del Bus de Datos. Lcp Tema 4: Unidad de Control Arquitectura de Computadores

34 Cronograma (III) Ejecución de SUB D, [E + 1234h] (III)
DIT <Dir A = E> <X0,X1=BD> <Y0.Y1=E> <S0,S3=+> Lac Señales asociadas reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset BD E + Fase de Ejecución Periodo 7 Calcular la dirección del operando fuente UC:1234h en B. Datos y Reg. E en Dir.A Seleccionar operandos y operar (suma) Cargar Acumulador con el resultado Periodo 8 Direccionar el operando fuente Acumulador  Bus de direcciones Cargar Reg. Direcciones con el contenido del B.Dir Fase de ejecución (calcular y direccionar el operando fuente): La Unidad de Control pone el desplazamiento en el Bus de Datos. Dit La entrada X de la ALU será el Bus de Datos. <X0, X1 = BD> La Unidad de Control elegirá el registro E del BR en la salida . <DIR A = E> La entrada Y de la ALU será la salida A del BR. <Y0,Y1 = SAL A> Realizaremos la suma de ambos operandos. <S0 a S3 = +> Cargaremos el resultado en el registro acumulador. Lac El acumulador pone el contenido en el Bus de Direcciones. AT El registro de Direcciones se carga con el contenido del Bus de Direcciones. Ldir AT Ldir Tema 4: Unidad de Control Arquitectura de Computadores

35 Cronograma (IV) Ejecución de SUB D, [E + 1234h] (IV)
Mem, Rd <Dir A = D> <X0,X1=BD> <Y0,Y1=D> <S0,S3=-> Lac Lflags Señales asociadas reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset BD D - D Fase Ejecución (cont) Periodos 9-10 Leer el operando fuente y realizar operac. Inicio ciclo de memoria y leer La UC pone Reg. D con Dir.A Selec.Oper, restar, cargar Ac y mod.Flags Periodo 11 Guardar resultado en reg. D y poner C. Fases a cero UC pone Reg. D en Dir.A Acumulador  B. Datos Cargar B.R. y poner C. Fases a cero Fase de ejecución (realizar la operación y poner a cero el contador de fases): Iniciar ciclo de memoria. Mem Leer, que durará dos ciclos de reloj. Rd La entrada X de la ALU será el Bus de Datos. <X0, X1 = BD> La Unidad de Control elegirá el registro D del BR en la salida A. <DIR A = D> La entrada Y de la ALU será la salida A del BR. <Y0, Y1 = DIR A> Realizaremos la resta de ambos operandos. <S0 a S3 = - > Cargaremos el resultado en el registro acumulador. Lac Modificaremos el registro de estado. Lflags La Unidad de Control elegirá el registro D del BR. <DIR A = D> El acumulador volcará su contenido al Bus de Datos. DT Cargaremos el registro con el contenido del Bus de Datos. Lr Finalmente hemos de poner el contador de fase a cero. Reset <Dir A = D> DT Lr Reset Tema 4: Unidad de Control Arquitectura de Computadores

36 Cronograma (V) Ejecución de SUB D, [E + 1234h] (V)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset D E C O D I F I C A C I Ó N CP I BD E + BD D - D En la transparencia se muestra el cronograma completo para la ejecución de la instrucción: SUB D, [E h ]. Como se ve, emplea 11 periodos en su ejecución. Tema 4: Unidad de Control Arquitectura de Computadores

37 Generación de las señales de control (I) Ejecución de SUB D, [E + 1234h] (I)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset CP Lcp Tcp Ldir Reg Dir Salida A CP Lcp Salida B Tcp Ldir Reg Dir Memoria Principal Mem Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Reg. Instr. Li C. Fases Reset reloj Oscilador Unidad de Control Las transparencias siguientes sintetizan todo lo visto hasta ahora. En ellas se muestra, para cada fase de ejecución, los elementos involucrados en la misma y las señales de control que se activan en el cronograma de la parte derecha. Reg. Estado Lflags señales de control Fase de Fetch Periodo 1 Direccionar el contador de programa Tema 4: Unidad de Control Arquitectura de Computadores

38 Generación de las señales de control (II) Ejecución de SUB D, [E + 1234h] (II)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Salida A CP Lcp Memoria Principal Rd Buffer Bidireccional Mem Pta. Entrada Salida B Pta. Entrada Tcp Ldir Reg Dir Memoria Principal Reg. Instr. Li Mem Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Reg. Instr. Li C. Fases Reset reloj Oscilador Unidad de Control Reg. Estado Lflags señales de control Fase de Fetch (cont.) Periodos 2-3 Leer la instrucción de memoria principal Tema 4: Unidad de Control Arquitectura de Computadores

39 Generación de las señales de control (III) Ejecución de SUB D, [E + 1234h] (III)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Salida A CP Lcp Salida B Tcp Ldir Reg Dir Memoria Principal Mem D E C O D I F I C A C I Ó N Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Reg. Instr. Li C. Fases Reset reloj Oscilador Unidad de Control Reg. Estado Lflags señales de control Fase Decodificación Periodo 4 La UCl emplea un ciclo de reloj en la decodificación de la instrucción leída Tema 4: Unidad de Control Arquitectura de Computadores

40 Generación de las señales de control (IV) Ejecución de SUB D, [E + 1234h] (IV)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Salida A CP Lcp Salida B Pta. Entrada [S0, S3] Operador Acumulador Lac Mux. Y [Y0, Y1] Mux. X [X0, X1] CP + Tcp Ldir Reg Dir Memoria Principal Mem Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Acumulador Lac Buffer Bidireccional Rd Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Reg. Instr. Li C. Fases Reset reloj Oscilador Unidad de Control Reg. Estado Lflags señales de control Fase actualizar el CP Periodo 5 Incrementar en uno el CP Tema 4: Unidad de Control Arquitectura de Computadores

41 Generación de las señales de control (V) Ejecución de SUB D, [E + 1234h] (V)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset DT Pta. Entrada CP Lcp Acumulador Lac Salida A CP Lcp Salida B Pta. Entrada Tcp Ldir Reg Dir Memoria Principal Mem Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Acumulador Lac Buffer Bidireccional Rd Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Reg. Instr. Li C. Fases Reset reloj Oscilador Unidad de Control Reg. Estado Lflags señales de control Periodo 6 Fase actualizar CP (II) Cargar el nuevo valor del CP Tema 4: Unidad de Control Arquitectura de Computadores

42 Generación de las señales de control (VI) Ejecución de SUB D, [E + 1234h] (VI)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Dit Desp /D.I. Operador [S0, S3] Acumulador Lac Mux. Y [Y0, Y1] Mux. X [X0, X1] Salida A Reg. E BD E + Bus de Datos Bus de Direcciones Memoria Principal Ldir Reg Dir Wr Mem Rd Buffer Bidireccional Mux. X [X0, X1] Mux. Y [Y0, Y1] Acumulador Lac Operador [S0, S3] Banco de Registros (8 registros) Pta. Entrada Dir. B Dir. A Lr Salida B Salida A CP Lcp Unidad de Control Dit Desp /D.I. señales de control reloj Oscilador C. Fases Reset Reg. Estado Lflags Reg. Instr. Li DT AT Tcp Fase de Ejecución Periodo 7 Calcular la dirección del operando fuente Tema 4: Unidad de Control Arquitectura de Computadores

43 Generación de las señales de control (VII) Ejecución de SUB D, [E + 1234h] (VII)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Salida A CP Lcp Salida B Ldir Reg Dir Acumulador Lac AT Tcp Ldir Reg Dir Memoria Principal Mem Banco de Registros (8 registros) Mux. X [X0, X1] Mux. Y [Y0, Y1] Rd Operador [S0, S3] Dir. A Dir. B Wr Buffer Bidireccional Acumulador Lac Rd Pta. Entrada Lr AT DT Bus de Datos Dit Desp /D.I. Bus de Direcciones Reg. Instr. Li C. Fases Reset reloj Oscilador Unidad de Control Reg. Estado Lflags señales de control Periodo 8 Fase de Ejecución (II) Direccionar el operando fuente Tema 4: Unidad de Control Arquitectura de Computadores

44 Generación de las señales de control (VIII) Ejecución de SUB D, [E + 1234h] (VIII)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Bus de Datos Bus de Direcciones Memoria Principal Ldir Reg Dir Wr Mem Rd Buffer Bidireccional Mux. X [X0, X1] Mux. Y [Y0, Y1] DT Acumulador Lac Operador [S0, S3] Banco de Registros (8 registros) Pta. Entrada Dir. B Dir. A Lr Salida B Salida A CP Lcp Unidad de Control Dit Desp /D.I. señales de control reloj Oscilador C. Fases Reset Reg. Instr. Li AT Tcp Reg. Estado Lflags Salida A Reg. D Operador [S0, S3] Acumulador Lac Mux. Y [Y0, Y1] Mux. X [X0, X1] Reg. Estado Lflags BD D - Memoria Principal Rd Buffer Bidireccional Mem Fase de Ejecución (III) Periodos 9-10 Leer el operando fuente y realizar operación Tema 4: Unidad de Control Arquitectura de Computadores

45 Generación de las señales de control (IX) Ejecución de SUB D, [E + 1234h] (IX)
reloj Tcp Ldir Mem Rd Wr Li Dit X0,X1 S0...S3 Lac Dir. A Y0,Y1 LFlags DT AT Lcp Lr Reset Acumulador Lac DT Banco de Registros (8 registros) Reg. D Salida A Lr C. Fases Reset D Bus de Direcciones Memoria Principal Ldir Reg Dir Wr Mem Rd Buffer Bidireccional Mux. X [X0, X1] Mux. Y [Y0, Y1] DT AT Acumulador Lac Operador [S0, S3] Banco de Registros (8 registros) Pta. Entrada Dir. B Dir. A Lr a la ALU Salida B Salida A CP Lcp Tcp Unidad de Control Buffer instruc. Dit Desp /D.I. señales de control reloj Oscilador Reg. Estado Lflags Reg. Instr. Li Bus de Datos C. Fases Reset Periodo 11 Guardar resultado en reg. D y poner C. Fases a cero Fase de Ejecución (IV) Tema 4: Unidad de Control Arquitectura de Computadores

46 Ideas principales Operaciones elementales: transferencia y proceso
Partes y el funcionamiento de un computador elemental Operaciones elementales de la ejecución de una instrucción en un computador elemental Diseño de cronogramas asociados a la ejecución de instrucciones para un computador elemental a partir de las operaciones elementales Operaciones elementales: transferencia y proceso Partes y el funcionamiento de un computador elemental Operaciones elementales de la ejecución de una instrucción en un computador elemental Al terminar este tema somos capaces de: Comprender qué son las operaciones elementales. Comprender las partes que conforman un computador elemental así como su funcionamiento. Aplicar los conocimientos anteriores a la identificación de las operaciones elementales necesarias para la ejecución de una instrucción máquina por un computador elemental. Comprender el concepto de temporización de las señales de control Comprender el concepto de cronograma Aplicar los conocimientos anteriores al diseño de cronogramas que se correspondan con la ejecución de instrucciones máquina en un computador elemental, a partir de la identificación de las operaciones elementales necesarias. Diseño de cronogramas asociados a la ejecución de instrucciones para un computador elemental a partir de las operaciones elementales Tema 4: Unidad de Control Arquitectura de Computadores


Descargar ppt "Tema 4: Unidad de Control"

Presentaciones similares


Anuncios Google