FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
PROBLEMAS. LA UNIDAD DE CONTROL.
Figura 1. BUS DE DIRECCIONES BUS DE DATOS MULTIPLEXOR X MULTIPLEXOR Y OPERADOR X Y ACUMULADOR CONTADOR DE PROGRAMA CP MEMORIA PRINCIPAL MEM MR MW ALE MR SALIDA A SALIDA B BANCO DE REGISTROS 16 registros 4 bits 4 bits DIRECCIN A DIRECCIN B LR PUERTA DE ENTRADA REGISTRO DE ESTADO (flags) BUFFER DE INSTRUCCIONES seales de control UNIDAD DE CONTROL SALIDA DE DESPLAZAMIENTOS O DATOS INMEDIATOS ENTRADA DE INSTRUCCIONES CONTADOR DE FASES DIRECCIONES DE REGISTROS OSCILADOR reloj [X0, X1] [Y0, Y1] [S0,...S3] ACUMULADOR LAC DT AT DBT LPC PCT DIRECCIN A DIRECCIN B LI IT RESET LFlags Figura 2. 1. Sea el computador elemental de la figura 1. La instruccin ADD A, B tiene el cronograma de la figura 2 en dicho computador elemental.
a) optimizar la temporizacin de seales para incrementar la velocidad de procesamiento. b) discutir qu cambios habra que introducir en el hardware para aumentar la velocidad de procesamiento. DIRECCIN B DIRECCIN A seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 LFlags RESET LR DT AT LPC puerto A registro B puerto B registro A registro A suma
2. Dibuja el cronograma correspondiente a la ejecucin de la instruccin JZ ETIQUETA (saltar si cero a la posicin ETIQUETA) en el computador de la figura 1.
3. Dibuja el cronograma correspondiente a SUB [DIRECCION], B.
4. Disear una unidad de direccionamiento para el computador de la figura 1 que mejore su rendimiento.
5. Disear 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.
SOLUCIN A LOS PROBLEMAS. Ing telecomunicaciones. Primer Curso HOJA 3-1
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
1. a) sin cambiar el hardware: 1. ya que no hay conflicto entre las seales de control, el periodo 7 se puede superponer al 6:
seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 LFlags RESET LR DT DIRECCIN A AT LPC puerto A registro B puerto B registro A registro A suma
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 todava).
seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 LFlags RESET LR DT DIRECCIN A AT LPC puerto A registro B puerto B registro A registro A suma
3. suponiendo que: - bus de datos y direcciones es de 16 bits. Ing telecomunicaciones. Primer Curso HOJA 3-2
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
- memoria organizada en palabras de 16 bits. - tamao estandar de instrucciones = 16 bits. El incremento del contador de programa (CP) se puede realizar simultaneamente con la fase de fetch. La fase de fetch de la siguiente instruccin no se puede superponer ms ya que en el periodo 6 se est usando el bus de datos (habra conflicto entre las seales DT y MR). seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 LFlags RESET LR DT DIRECCIN A AT LPC puerto A registro B puerto B registro A registro A suma
b) cambiando el hardware: Eliminando el ACUMULADOR a la salida de la ALU consigo: - realizar la actualizacin del CP en un solo periodo. - realizar la suma y carga del registro en un solo periodo. seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 LFlags RESET LR DT DIRECCIN A AT LPC puerto A registro B puerto B registro A suma
Ing telecomunicaciones. Primer Curso HOJA 3-3
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
2. Hacemos la suposicin 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. - tamao 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 instruccin de salto condicional tiene dos cronogramas dependiendo de que se cumpla o no la condicin. La comprobacin de cumplimiento de la condicin se hace durante la fase de decodificacin de la instruccin. En esta fase la UNIDAD DE CONTROL compara la condicin con el registro de estado y determina el estado de un bit. Este bit formar parte normalmente del cdigo de operacin de la instruccin de salto. El estado de este bit puede dar lugar a dos cdigos de operacin diferentes y por tanto a dos cronogramas distintos. Estos cronogramas son los dados a continuacin:
seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 LFlags RESET LR DT DIRECCIN A AT LPC
NO SALTA
Ing telecomunicaciones. Primer Curso HOJA 3-4
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
Ing telecomunicaciones. Primer Curso HOJA 3-5
seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 LFlags RESET LR DT DIRECCIN A AT LPC
SALTA
Observese como en ambos casos se realiza una primera actualizacin del CP que apunta a la siguiente instruccin. Si se ha de realizar el salto se produce una reactualizacin del CP. Parece lgico que se haga una sola actualizacin del CP despus de evaluar el cumplimiento de la condicin pero se puede demostrar que es mejor apuntar en primera instancia a la instruccin consecutiva...
Las instrucciones de salto condicional siempre se dan por parejas, es decir, tenemos una condicin y su contraria siempre. Por ejemplo, tenemos saltar si cero y saltar si no cero, etc. El buen programador utilizar la instruccin de salto de forma que se cumpla con mayor probabilidad la condicin 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 instruccin ya que se asume en la primera actualizacin del CP.
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
3. La instruccin 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 instruccin podra ser:
cdigo de operacin registro DIRECCION 0 7 8 11 12 28
Las operaciones elementales a realizar son: cargar instruccin actualizar CP decodificacin de la instruccin leer operandos (direccionar el de memoria y pasar a la ALU ambos) restar guardar resultado
direccionar el operando de memoria:
- la UC pone DIRECCION en el bus de datos - se transfiere el contenido del bus de datos al de direcciones - se carga el registro de direcciones
IT
DBT ALE (desactivar) realizar resta: volcar contenido de memoria en bus datos
pasar operandos a ALU
restar
- ciclo de memoria de lectura
- seleccin en X del operando del bus de datos - la UC genera DIRECCIN A para apuntar al registro B - seleccin de operando Y y operacin
- no requiere operacin elemental (registro de direccin de memoria permanece cargado). - transferancia al bus de datos - ciclo de memoria de escritura
DT MEM MW actualizar estado: LFlags poner a 0 el contador de fases:
RESET
Ing telecomunicaciones. Primer Curso HOJA 3-6
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
Ing telecomunicaciones. Primer Curso HOJA 3-7
seales MEM ALE MR MW reloj PCT LI IT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN B tiempo periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 LFlags RESET DBT DT DIRECCIN A AT LPC periodo 8 periodo 9 periodo 10 bus datos salida A resta registro B periodo 4: decodificacin. periodo 5: carga de direccin. periodo 6 y 7: volcado de memoria, seleccin de operandos y operacin y carga del acumulador con el resultado. periodo 8: escritura del resultado en memoria. FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
4. La mejora del rendimiento pasa por disear una unidad de direccionamiento que cuente con un operador de suma propio. Uno de los posibles diseos sera el de la figura:
+ CP LPC BUS DE DATOS AT DT BUS DE DIRECCIONES bus/+
La seal 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 ms un desplazamiento.
Ing telecomunicaciones. Primer Curso HOJA 3-8
FUNDAMENTOS DE COMPUTADORES PROBLEMAS CAPTULO 4 Y 5
5. El diseo debe ajustarse a las siguientes especificaciones: - 4 instrucciones cdigo de operacin de 2 bits. - 64 palabras de memoria direccin 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 instruccin tiene un campo de cdigo de operacin (2 bits) y un operando de 6 bits. - no hay banco de registros.
DE DIRECCIONES DE MEMORIA REGISTRO 6 bits (MAR) ACUMULADOR 8 bits 64 palabras x 8 bits direcciones de 6 bits RAM 6 bits 6 bits 8 bits 6 bits 8 bits 8 bits ALU TRANSFERENCIA DE ALU CS R/W (IPC) (TPC) (TIR) (CS) (TA) (TM) TRANSFERENCIA DE BUS (TB) TRANSFERENCIA DE ACUMULADOR (TAC) 6 bits (PC) REGISTRO CONTADOR DE PROGRAMA INCREMENTO DE PC (IPC) TRANSFERENCIA DE PC (TPC) TRANSFERENCIA DE IR (TIR) (TA) TRANSFERENCIA DE MEMORIA (TM) (TB) (TAC) (R/W) . 0 1 2 3 4 5 0 1 . SELECCIN DE OPERACIN UNIDAD ARITMTICO-LGICA REGISTRO DE INSTRUCCIONES 8 bits (IR) OPERACIN DIRECCIN CONTROLADOR 2 bits TRANSFERENCIA DE PC TRANSFERENCIA DE IR TRANSFERENCIA DE BUS TRANSFERENCIA DE ACUMULADOR TRANSFERENCIA DE ALU TRANSFERENCIA DE MEMORIA INCREMENTO DE PC CHIP SELECT LECTURA/ESCRITURA SELECCIN DE OPERACIN UNIDAD DE CONTROL