FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 PROBLEMAS. LA UNIDAD DE CONTROL. CONTADOR DE PROGRAMA LPC SALIDA A SALIDA B [Y0, Y1] [X0, X1] 4 bits CP BANCO DE REGISTROS 16 registros 4 bits MULTIPLEXOR X MULTIPLEXOR Y X Y MEMORIA PRINCIPAL OPERADOR DIRECCIÓN B DIRECCIÓN A [S0,...S3] MEM MR MW ALE LAC ACUMULADOR ACUMULADOR PUERTA DE ENTRADA MR DT AT LR PCT DBT BUS DE DATOS BUS DE DIRECCIONES RESET SALIDA DE DESPLAZAMIENTOS O DATOS INMEDIATOS LI IT ENTRADA DE INSTRUCCIONES CONTADOR DE FASES reloj OSCILADOR DIRECCIÓN B UNIDAD DE CONTROL LFlags DIRECCIÓN A REGISTRO DE ESTADO (flags) DIRECCIONES DE REGISTROS BUFFER DE INSTRUCCIONES señales de control Figura 1. Figura 2. • 1. Sea el computador elemental de la figura 1. La instrucción ADD A, B tiene el cronograma de la figura 2 en dicho computador elemental. señales reloj PCT ALE MEM MR MW a) optimizar la temporización de señales para incrementar la velocidad de procesamiento. b) discutir qué cambios habría que introducir en el hardware para aumentar la velocidad de procesamiento. LI IT X0, X1 puerto B Y0, Y1 puerto A S0, ...S3 suma LAC DIRECCIÓN A registro A DIRECCIÓN B registro B registro A DT AT LPC LR • 2. Dibuja el cronograma correspondiente a la ejecución de la instrucción JZ ETIQUETA (saltar si cero a la posición ETIQUETA) en el computador de la figura 1. LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 tiempo • 3. Dibuja el cronograma correspondiente a SUB [DIRECCION], B. • 4. Diseñar una unidad de direccionamiento para el computador de la figura 1 que mejore su rendimiento. • 5. Diseñar un computador elemental que cumpla las siguientes condiciones: - es capaz de ejecutar 4 instrucciones. - tiene una memoria de 64 palabras de 8 bits. - la ALU trabaja con operandos de 8 bits. - la ALU almacena la salida en un registro ACUMULADOR. - un operando de la ALU siempre es el ACUMULADOR. - el otro operando de la ALU proviene de la memoria. - el contador de programa (CP) solo se puede incrementar en la unidad. • SOLUCIÓN A LOS PROBLEMAS. Ing telecomunicaciones. Primer Curso HOJA 3-1 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 • 1. a) sin cambiar el hardware: 1. ya que no hay conflicto entre las señales de control, el periodo 7 se puede superponer al 6: señales reloj PCT ALE MEM MR MW LI IT X0, X1 puerto B Y0, Y1 puerto A S0, ...S3 suma LAC DIRECCIÓN A registro A DIRECCIÓN B registro B registro A DT AT LPC LR LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 tiempo 2. en el periodo 7 se puede comenzar una nueva fase de fetch ya que no se usa el bus de direcciones (en el periodo 6 se está usando todavía). señales reloj PCT ALE MEM MR MW LI IT X0, X1 puerto B Y0, Y1 puerto A S0, ...S3 suma LAC DIRECCIÓN A registro A DIRECCIÓN B registro B registro A DT AT LPC LR LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 tiempo 3. suponiendo que: - bus de datos y direcciones es de 16 bits. Ing telecomunicaciones. Primer Curso HOJA 3-2 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 - memoria organizada en palabras de 16 bits. - tamaño estandar de instrucciones = 16 bits. El incremento del contador de programa (CP) se puede realizar simultaneamente con la fase de fetch. señales reloj PCT ALE MEM MR MW LI IT X0, X1 puerto B Y0, Y1 puerto A S0, ...S3 suma LAC DIRECCIÓN A registro A DIRECCIÓN B registro B registro A DT AT LPC LR LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 tiempo La fase de fetch de la siguiente instrucción no se puede superponer más ya que en el periodo 6 se está usando el bus de datos (habría conflicto entre las señales DT y MR). b) cambiando el hardware: Eliminando el ACUMULADOR a la salida de la ALU consigo: - realizar la actualización del CP en un solo periodo. - realizar la suma y carga del registro en un solo periodo. señales reloj PCT ALE MEM MR MW LI IT X0, X1 puerto B Y0, Y1 puerto A S0, ...S3 suma LAC DIRECCIÓN A registro A DIRECCIÓN B registro B DT AT LPC LR LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 tiempo Ing telecomunicaciones. Primer Curso HOJA 3-3 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 • 2. Hacemos la suposición propuesta en el problema anterior en el punto 3: - bus de datos y direcciones es de 16 bits. - memoria organizada en palabras de 16 bits. - tamaño estandar de instrucciones = 16 bits. De forma que el incremento del contador de programa (CP) se pueda realizar simultaneamente con la fase de fetch. La instrucción de salto condicional tiene dos cronogramas dependiendo de que se cumpla o no la condición. La comprobación de cumplimiento de la condición se hace durante la fase de decodificación de la instrucción. En esta fase la UNIDAD DE CONTROL compara la condición con el registro de estado y determina el estado de un bit. Este bit formará parte normalmente del código de operación de la instrucción de salto. El estado de este bit puede dar lugar a dos códigos de operación diferentes y por tanto a dos cronogramas distintos. Estos cronogramas son los dados a continuación: señales reloj PCT ALE MEM MR MW LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIÓN A DIRECCIÓN B DT AT LPC LR LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 tiempo NO SALTA Ing telecomunicaciones. Primer Curso HOJA 3-4 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 señales reloj PCT ALE MEM MR MW LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIÓN A DIRECCIÓN B DT AT LPC LR LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 tiempo SALTA Observese como en ambos casos se realiza una primera actualización del CP que apunta a la siguiente instrucción. Si se ha de realizar el salto se produce una reactualización del CP. Parece lógico que se haga una sola actualización del CP después de evaluar el cumplimiento de la condición pero se puede demostrar que es mejor apuntar en primera instancia a la instrucción consecutiva... Las instrucciones de salto condicional siempre se dan por parejas, es decir, tenemos una condición y su contraria siempre. Por ejemplo, tenemos saltar si cero y saltar si no cero, etc. El buen programador utilizará la instrucción de salto de forma que se cumpla con mayor probabilidad la condición que no produce salto. De esta forma se incrementa la velocidad total de procesamiento. Dada la forma de trabajar de estas instrucciones, los desplazamientos que llevan incluidos en su formato han descontado la longitud de la propia instrucción ya que se asume en la primera actualización del CP. Ing telecomunicaciones. Primer Curso HOJA 3-5 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 • 3. La instrucción SUB [DIRECCION], B representa una resta donde uno de los operandos está en memoria. El modo de direccionamiento es directo absoluto: [DIRECCION] - B → [DIRECCION] El formato de la instrucción podría ser: 0 7 8 código de operación 11 12 registro 28 DIRECCION Las operaciones elementales a realizar son: • cargar instrucción • actualizar CP • decodificación de la instrucción • leer operandos (direccionar el de memoria y pasar a la ALU ambos) • restar • guardar resultado direccionar el operando - la UC pone DIRECCION en el bus de memoria: de datos - se transfiere el contenido del bus de datos al de direcciones - se carga el registro de direcciones realizar resta: • volcar contenido de memoria en bus datos - ciclo de memoria de lectura IT DBT ALE (desactivar) MEM MR • pasar operandos a ALU - selección en X del operando del bus X0, X1 de datos - la UC genera DIRECCIÓN A para 4 bits apuntar al registro B - selección de operando Y y operación Y0, Y1 y S0, ...S3 - carga del acumulador • restar guardar resultado: • direccionar memoria • escribir en memoria - no requiere operación elemental (registro de dirección de memoria permanece cargado). - transferancia al bus de datos - ciclo de memoria de escritura actualizar estado: poner a 0 el contador de fases: Ing telecomunicaciones. Primer Curso LAC (desactivar) DT MEM MW LFlags RESET HOJA 3-6 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 señales reloj PCT ALE MEM MR MW LI IT X0, X1 bus datos Y0, Y1 salida A S0, ...S3 resta LAC DIRECCIÓN A registro B DIRECCIÓN B DT AT LPC DBT LFlags RESET periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 periodo 9 periodo 10 tiempo • periodo 4: decodificación. • periodo 5: carga de dirección. • periodo 6 y 7: volcado de memoria, selección de operandos y operación y carga del acumulador con el resultado. • periodo 8: escritura del resultado en memoria. Ing telecomunicaciones. Primer Curso HOJA 3-7 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 • 4. La mejora del rendimiento pasa por diseñar una unidad de direccionamiento que cuente con un operador de suma propio. Uno de los posibles diseños sería el de la figura: + LPC AT bus/+ CP DT BUS DE DATOS BUS DE DIRECCIONES La señal bus/+ controla el operador de forma que realice sumas o deje pasar a la salida el contenido del bus de datos (operando de la derecha). De esta forma podemos actualizar el CP con un valor del bus de datos o con el contenido anterior del CP más un desplazamiento. Ing telecomunicaciones. Primer Curso HOJA 3-8 FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPÍTULO 4 Y 5 • 5. El diseño debe ajustarse a las siguientes especificaciones: - 4 instrucciones ⇒ código de operación de 2 bits. - 64 palabras de memoria ⇒ dirección de 6 bits (bus de direcciones). - operandos de 8 bits ⇒ bus de datos de 8 bits. - no se pueden sumar desplazamientos al CP solo se puede incrementar en la unidad. - cada instrucción tiene un campo de código de operación (2 bits) y un operando de 6 bits. - no hay banco de registros. . REGISTRO CONTADOR DE PROGRAMA INCREMENTO DE PC (IPC) 6 bits (PC) 6 bits TRANSFERENCIA DE PC (TPC) REGISTRO DE DIRECCIONES DE MEMORIA CS RAM 6 bits 64 palabras x 8 bits 6 bits direcciones de 6 bits (MAR) R/W TRANSFERENCIA DE IR (TIR) 6 bits TRANSFERENCIA DE BUS (TB) REGISTRO DE INSTRUCCIONES 8 bits (IR) OPERACIÓN 1 8 bits 8 bits DIRECCIÓN 0 5 4 3 2 1 0 TRANSFERENCIA DE MEMORIA (TM) TRANSFERENCIA DE ACUMULADOR (TAC) UNIDAD DE CONTROL 2 bits CONTROLADOR ALU SELECCIÓN DE OPERACIÓN 8 bits TRANSFERENCIA DE ALU (TA) TRANSFERENCIA DE ACUMULADOR TRANSFERENCIA DE ALU (TA) (TM) TRANSFERENCIA DE MEMORIA TRANSFERENCIA DE PC (TPC) TRANSFERENCIA DE IR (TIR) TRANSFERENCIA DE BUS (TB) INCREMENTO DE PC (IPC) CHIP SELECT (CS) LECTURA/ESCRITURA (R/W) (TAC) SELECCIÓN DE OPERACIÓN ACUMULADOR 8 bits UNIDAD ARITMÉTICO-LÓGICA . Ing telecomunicaciones. Primer Curso HOJA 3-9