Documentos de Académico
Documentos de Profesional
Documentos de Cultura
de Computadores
CAPITULO CUARTO
CONTENIDO
4.1. Operaciones elementales. 4.1.1. Operaciones de transferencia. 4.1.2. Operaciones de proceso. 4.2. Estructura de un computador elemental y seales de control. 4.2.1. Memoria principal. 4.2.2. Banco de registros. 4.2.3. Unidad aritmtico-lgica. 4.2.4. Unidad de direccionamiento. 4.2.5. Unidad de control. 4.3. Temporizacin de las seales de control. 4.4. Ejecucin de instrucciones. 4.4.1. Ejecucin de ADD A, B. 4.4.2.Ejecucin de MOV A, [B+DESPLAZAMIENTO]. 4.5. Diseo de la unidad de control. 4.6. Unidad de control cableada. 4.7. Unidad de control microprogramada. 4.7.1. Estructura bsica de la unidad de control microprogramada. 4.7.2. Secuenciamiento en la unidad de control microprogramada. 4.7.3. Codificacin de las microinstrucciones. 4.7.4. Microbifurcaciones condicionales. 4.8. Arranque del computador. 2 Cuatrimestre. Juana Mara Lpez. Hoja 2
OBJETIVO
Objetivo del captulo: -Mostrar como se van desarrollando las instrucciones internamente. -Describir el rgano capaz de que este funcionamiento sea posible: La unidad de control. Estructura de computador sencilla. Uso de cronogramas. Mayor hincapi en estructura de computadores que en diseo digital. No se consideran las unidades de Entrada / salida.
INTRODUCCION
Funcin bsica de la U.C.: ejecucin de esta secuencia..
tomar la instruccin (a la que apunta el CP) de la memoria principal y llevarla a la unidad de control (fase de fetch). incrementar el CP. decodificar la instruccin . ejecutar la instruccin.
anmalas
se
Informacin que utiliza: la propia instruccin. el registro de estado. seales de E/S (interrupciones, reset, etc.).
INTRODUCCION (CONT)
Informacin adicional del contador de programa.C.P. Para automatizar el paso a la siguiente instruccin. C.O., direccionamiento, localizar operandos, mandarlos a la ALU si necesario y almacenar resultado. Informacin del registro de estado. Rupturas de secuencia: programadas y automticas. Cada ejecucin en pequeos pasos: -suma de base ms desplazamiento. -lectura del operando. -incremento del CP. -ejecucin de operacin aritmtica.... La unidad de control genera las seales necesarias.
INTRODUCCION (CONT+)
Trabajamos a nivel RTL (Register Transfer Logic). Concepto de ruta de datos: rganos encargados de transferir, memorizar y procesar las informaciones de la memoria principal. La unidad de control es la unidad ms "inteligente".
OPERACIONES ELEMENTALES
Se clasifican en los dos grupos siguientes: -Operaciones de transferencia. -Operaciones de proceso.
LA
REGISTRO A
LB
REGISTRO B
LC
REGISTRO C
TA
TB
TC
BUS DE DATOS
Operaciones de transferencia requieren dos elementos de memoria (registros). Registro origen- registro destino. Transferencia a un bus (seal de activacin de salida triestado). Para la estabilizacin de la informacin seales de "nivel" (de permiso o de transferencia) . Seales de nivel sincronizadas con un reloj de impulsos peridicos. 2 Cuatrimestre. Juana Mara Lpez. Hoja 7
TA LC tiempo
L[Registro] = load Registro T[Registro] = Transfer Registro Se debe esperar a que los datos se estabilicen en el bus de datos. El dato debe estar presente en el bus todo el tiempo que sea necesario para que se copie en el registro destino. Regla : Seales que establecen caminos=> De nivel. Almacenan informacin => De flanco.
OPERACIONES DE PROCESO
La informacin origen se hace pasar a travs de un operador en su camino hacia el destino. Operaciones didicas o mondicas. Ejemplo de operacin A<= A+ D
LA
REGISTRO A
LB
REGISTRO B
LC
REGISTRO C
LD
REGISTRO D
mux.
mux.
OPERADOR
LC
ALU
MEMORIA
seales de control
UNIDAD DE CONTROL
Vamos a prescindir del bloque de E/S para simplificar el estudio. Hay que aadir un banco de registros que podra incluirse en el bloque de la ALU y una unidad de direccionamiento para actualizar el contador de programa que forma parte de la unidad de control.
MEMORIA PRINCIPAL.
El bloque de memoria principal consta de los siguientes elementos: pastilla/s de memoria RAM. registro para mantener la direccin dada por el bus de direcciones. buffer bidireccional para la conexin al bus de datos. seales de control. Se puede ver la interconexin entre los distintos elementos. Desde un punto de vista hardware el registro puede ser un 7495 o cualquier registro equivalente y el buffer bidireccional un 74245.
registro
MEMORIA PRINCIPAL
MEM MR MW
ALE
buffer bidireccional
MR
indica la direccin del buffer; si el nivel es alto los datos se vuelcan al bus; si es bajo se lee el bus.
tiempo
tiempo
La duracin de la seales MR y MW depende de la memoria, es decir, de sus tiempos de lectura y escritura. La duracin de MEM ser la mnima posible, es decir, la correspondiente al periodo bsico de la mquina.
BANCO DE REGISTROS.
El banco de registros consta de los siguientes elementos: 16 registros de propsito general accesibles al usuario desde el ensamblador o lenguaje mquina. 2 puertas de salida que permiten leer 2 registros simultneamente. la seleccin de ambos registros se efecta mediante 2 conjuntos de direcciones de 4 bits (DIRECCIN A y DIRECCIN B) que provienen directamente de la unidad de control. 1 puerta de entrada que permite cargar un registro desde el bus de datos; se direcciona con el bloque DIRECCIN A y la carga se efecta mediante la correspondiente seal de control (LR). En la figura se puede observar la interconexin entre estos elementos.
PUERTA DE SALIDA A
PUERTA DE SALIDA B
4 bits
4 bits
DIRECCIN A
DIRECCIN B
PUERTA DE ENTRADA
LR
de la unidad de control
de la unidad de control
Cuando se carga un dato en un registro este mismo dato aparece en la puerta de salida A una vez cumplido el tiempo de retardo correspondiente.
Unidad Aritmtico-Lgica.
Elementos que la componen: Un Operador: con 4 seales de control para seleccin de operacin.(S0,....S3) Dos multiplexores: cada uno con 3 entradas y una salida que hace de entrada al operador. Control: multiplexor_1(X0,X1) y multiplexor_2(Y0,Y1). Un acumulador: registro intermedio. Su contenido puede ser volcado a : -operando X. -bus de datos. -bus de direcciones.
[X0, X1]
MULTIPLEXOR X
MULTIPLEXOR Y
[Y0, Y1]
OPERADOR
[S0, ...S3]
ACUMULADOR
LAC
DT AT
BUS DE DATOS
BUS DE DIRECCIONES
Significado Selecciona la operacin a realizar. Selecciona uno entre 3 operandos. Selecciona uno entre 3 operandos. carga el acumulador con la salida del operador.
DT
nivel
data transfer
Transfiere
el
contenido
del
Unidad de Direccionamiento.
-Genera la siguiente instruccin a ejecutar en la secuencia del programa. -Necesario que integre el CP y un sumador. -Necesaria la posibilidad de transferencia con los buses. -Supondremos igual anchura en ambos buses y en los registros. -Ver en el grfico un ejemplo de solucin de esta unidad y sus posibilidades de transferencia y clculo.
CONTADOR DE PROGRAMA LPC CP
de B
de B de A
MULTIPLEXOR X
MULTIPLEXOR Y
[Y0, Y1]
OPERADOR
ACUMULADOR
LAC
DT AT
PCT
BUS DE DATOS
BUS DE DIRECCIONES
Unidad de Control.
Genera las seales de control que constituyen el bus de control. Contiene registros auxiliares para su misin: Buffer de Instrucciones: Almacena cdigo mquina formado por una o varias instrucciones. Puerto de entrada de instrucciones: Activado por la seal LI, se carga con una instruccin que pasa al buffer. Puerto de salida: Transfiere al bus de datos, datos inmediatos o desplazamientos, gobernado por la seal DIT. Registro de estado: Contiene los flags. Se cargan los bits selectivamente segn seales provenientes de la ALU activas por flanco. Registro contador de fases: Cuenta las fases del reloj del sistema y se encarga as de la temporizacin. Dos buses de 4 bits: Son de salida de la unidad de control y sirven para generar la direccin de seleccin de registro de la ALU.
DIT
SALIDA DE DESPLAZAMIENTOS O DATOS INMEDIATOS
RESET
reloj
LI
ENTRADA DE INSTRUCCIONES
CONTADOR DE FASES
OSCILADOR
DIRECCIN A
UNIDAD DE CONTROL
LFlags
DIRECCIN B
DIRECCIONES DE REGISTROS
seales de control
CP
SALIDA A
SALIDA B
4 bits
[X0, X1]
BANCO DE REGISTROS 16 registros 4 bits MULTIPLEXOR X MULTIPLEXOR Y
[Y0, Y1] X Y
MEMORIA PRINCIPAL
[S0,...S3]
MEM MR MW
DIRECCIN A
DIRECCIN B
OPERADOR
ALE
ACUMULADOR ACUMULADOR
PUERTA DE ENTRADA
LAC DT
MR
LR
AT
PCT
BUS DE DATOS BUS DE DIRECCIONES
DIT
RESET
SALIDA DE DESPLAZAMIENTOS O DATOS INMEDIATOS
LI
ENTRADA DE INSTRUCCIONES
IT
CONTADOR DE FASES
reloj
OSCILADOR
DIRECCIN B
UNIDAD DE CONTROL
LFlags
DIRECCIN A
seales de control
Ejecucin de una instruccin. FASES: Fetch (bsqueda de una instruccin). Decodificacin y bsqueda de operandos. Operacin. Almacenar resultado.
El n de ciclos de reloj vara segn las instrucciones. Depende de : Modo de direccionamiento. Tipo de operacin.
reloj
fase de fetch
busqueda de operandos
operacin
almacenar resultado
EJECUCION DE
Formato de la instruccin:
cdigo de operacin ADD 0 7 8 registro A
ADD A, B
registro B 11 12 15
ACCIN
OPERACIN ELEMENTAL
SEAL CONTROL
DE
traer instruccin (fetch): direccionar - CP bus direcciones - cargar registro de direcciones PCT ALE (desactivar) leer instruccin - ciclo de memoria - lectura - cargar instruccin en la MEM MR
Unidad
LI (desactivar)
de control (UC)
decodificar la instruccin y esto es igual a un retardo) sumar CP+2 - la UC entrega el 2 al bus de datos seleccin de operandos y de X0,X1 e Y0, Y1 y S0, ...S3 (periodo de reloj) DIT
operacin (simultneamente)
LAC (desactivar)
cargar nuevo CP
DT LPC (desactivar)
Realizar suma: dar direcciones del banco de registros - la UC genera Direccin al decodificar la instruccin sumar -seleccin de operandos y operacin
AyB
4 + 4 bits X0,X1 e Y0, Y1 y S0, ...S3
LAC (desactivar)
LFlags RESET
fase de fetch
tiempo
operacin
COMENTARIOS AL CRONOGRAMA:
Dos accesos a memoria necesarios si el bus de datos es de un byte. Periodo 4: decodificacin de la instruccin. Periodos 5 y 6 de actualizacin de CP. Posible ahorro con sumador distinto.
Optimizacin de ADD A, B.
seales reloj PCT ALE MEM MR MW LI DIT X0, X1 Y0, Y1 S0, ...S3 LAC DIRECCIN A DIRECCIN B DT AT LPC LR LFlags RESET
periodo 1 periodo 2 periodo 3 periodo 4 periodo 5 periodo 6 periodo 7 periodo 8 registro A registro B registro A bus datos CP suma puerto B puerto A suma
tiempo
EJECUCION DE MOV A, [B+DESPLAZAMIENTO] Instruccin de transferencia con direccionamiento directo relativo a registro. Operacin: [B+ Desplazamiento] --> A Formato de la instruccin:
cdigo de operacin MOV 0 7 8 registro A 11 12 registro B 15 16
desplazamiento 31
ACCIN
OPERACIN ELEMENTAL
SEAL CONTROL
DE
traer instruccin (fetch): direccionar - CP bus direcciones - cargar registro de direcciones PCT ALE (desactivar) leer instruccin - ciclo de memoria - lectura - cargar instruccin en la MEM MR
Unidad
LI (desactivar)
de Control (UC)
(retardo de un periodo)
de DIT
operacin (simultneamente) X0,X1 e Y0, Y1 y S0, ...S3 - carga del acumulador LAC - transferencia bus de datos - carga del nuevo CP (desactivar) DT LPC (desactivar)
cargar nuevo CP
Desplazamiento
datos
al bus de DIT
A
operandos y
guardar resultado: volcar al bus de datos el operando fuente - transferencia al bus de direcciones del contenido del Acumulador - cargar registro de direcciones AT ALE (desactivar) - ciclo de memoria - lectura MEM MR
cargar registro
LR (desactivar) RESET
CP
suma
tiempo
UNIDAD DE CONTROL
SEALES DE CONTROL
ESTADO
E/S
Mtodos de diseo de la unidad de control. Unidad de control mediante lgica cableada. Unidad de control microprogramada. Cableada Mtodo de diseo lgico. (diseo digital) Circuito ms rpido. Ms laborioso de disear. (Mtodos CAD). Muy difcil de modificar. Compensa slo en algunas mquinas. Mtodos tpicos: De la tabla de estados. De clulas de retardo. Del contador secuenciador.
Consiste en el almacenamiento de las palabras de control en memoria. Palabra de control = conjunto de seales de control para un periodo de reloj (= microinstruccin). Ejemplo: microinstrucciones de ADD A, B
MICROINSTRUCCIONES seal de control
MEM MR MW ALE MR LR S0...S3 X0, X1 Y0, Y1 LAC DT AT LPC DBT PCT LI DIT DIR. A DIR. B LFlags RESET
0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 fetch
0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 1 1
CP & instruccin
para la ejecucin de una instruccin. Microcdigo: conjunto de microprogramas que ejecutan las instrucciones. En la tabla se ven los microprogramas de fetch (1,2 y 3), actualizacin del CP (5 y 6) y el de ejecucin de la instruccin propiamente dicha (4, 7 y 8). Se tratan igual seales de flanco y nivel. Ventajas: Fcil de depurar ( estn en ROM). Instrucciones complejas-> basta reservar ms memoria.
Diferentes juegos de instrucciones cambiando los microprogramas. Emulacin de mquinas.
4096 palabras x 150 bits / palabra = 614400 bits= 600 Kb 2.Unir cada instruccin con su microprograma. 3.Secuencia del microprograma. Los problemas son: tamao, codificacin y secuenciamiento.
Secuenciamiento en la U. C. Microprogramada
Solucin inmediata:
cdigo de operacin contador de fases
De esta manera, los microprogramas correspondientes a cada instruccin se encuentran a partir de la posicin dada por:
cdigo de operacin
000......0000
Resultado:
instruccin 1 instruccin 2 32 posiciones microprograma de la instruccin 1
Secuenciamiento Explcito.
Cada microinstruccin incluye la direccin de la siguiente. Los cdigos de operacin apuntan al comienzo del microprograma. Cada microinstruccin incluye: campo de direccin, seales de control y un bit que indica si es la ltima. Ventaja: microinstrucciones repetidas. Inconveniente: exceso de memoria. 4096 microins. x 12 bits = 48 Kbits adicionales.
direccin
0 0 0 0 0 0 0 POSICIONES CORRESPONDIENTES A LOS CDIGOS DE OPERACIN
seales de control
MUX.
indica que es la ltima microinstruccin del microprograma (el multiplexor tomar el siguiente cdigo de operacin)
direccin
seales de control
12 bits
ROM
0 0 0 0 0 0 1
0 0 0
0 0 0 0 1 0 1
ltima microinstruccin
00010001100001010001
Microprogramacin horizontal: no usa codificacin. Formatos largos pero rpidas. Microprogramacin vertical: alta codificacin. Menor tamao de memoria pero mayor lentitud
para decodificacin.
LR DIR. A DIR. B
MEM MR MW ALE
LPC
Codificacin de campos de las microinstrucciones Se codifican fcilmente las seales excluyentes (slo una
de ellas puede estar activa a un tiempo). Ejemplo: seales que vuelcan datos en un bus.
acceso bus de datos MR DT DIT
Codificacin
00 01 10 11
MR DT DIT --
Solapamiento de campos.
Hay instrucciones donde nunca se activan algunas seales. Ejemplo: en una instruccin de salto nunca se accede a memoria. Se solapa el campo no utilizado con uno que se utiliza. Hay un bit que controla a que campo pertenecen las seales. Ejemplo: en instruccin de salto, el campo no utilizado se solapa con la direccin de salto.
Microbifurcaciones condicionales.
Las instrucciones de salto condicional tienen dos microprogramas posibles. Microsalto o microbifurcacin: una microinstruccin debe poder elegir entre dos caminos alternativos. El mecanismo depende del tipo de secuenciamiento:
Secuenciamiento explcito: Se dan dos direcciones que difieren en un slo bit. Ese bit es el resultado de la comparacin con la
condicin: 1 si se cumple y 0 si no se cumple.
bit de condicin dos direcciones posibles: - "direccin" 0 - "direccin" 1
seales de control
8 bits
seales de control
12 bits
ROM
MUX
0 0 0 0 0 0 1
ltima microinstruccin
0 0 0 0 0 0 0 1 0
1
direccin/E-S
condicin seales de control
decodificador
Arranque del computador. Los componentes hardware toman un estado aleatorio. Se empezara a ejecutar un programa desconocido al
azar.
El programa cargador se encarga de las siguientes tareas: Rutinas de comprobacin del computador. Rutinas de configuracin (perifricos, puertos,
interrupciones,..) Carga de vectores de interrupcin. Carga del sistema operativo. Carga de controladores de dispositivos.