MICROPROGRAMACIÓN
description
Transcript of MICROPROGRAMACIÓN
Departamento de Informática. Curso 2005-2006 1
MICROPROGRAMACIÓN
LECCIÓN 11DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACIÓN
Departamento de Informática. Curso 2005-2006 2
RUTA DE DATOS
Estructura en triple bus
Departamento de Informática. Curso 2005-2006 3
ESQUEMA DE LA RUTA DE DATOS
Departamento de Informática. Curso 2005-2006 4
DETALLE DE LA RUTA DE DATOS
Departamento de Informática. Curso 2005-2006 5
UNIDAD ARITMÉTICO-LÓGICA
Departamento de Informática. Curso 2005-2006 6
DESPLAZADOR
Departamento de Informática. Curso 2005-2006 7
SEÑALES DE CONTROL NECESARIAS
16 señales de habilitación de registros al bus A 16 señales de habilitación de registros al bus B 16 señales de carga de los registros desde el bus C. 2 señales de carga de los registros MAR y MBR 2 señales de lectura y escritura en memoria R y W. 3 señales de selección de función del desplazador 4 señales de selección de función de la ALU. 2 señales de carga de los buffer A y B 1 señal de control del multiplexor 1 señal de habilitación del bus C
Departamento de Informática. Curso 2005-2006 8
FORMATO DE MICROINSTRUCCIÓN
Departamento de Informática. Curso 2005-2006 9
CODIFICACIÓN DEL CAMPO DE SALTOS
Departamento de Informática. Curso 2005-2006 10
CAMPO DE DIRECCIÓN SIGUIENTE
El campo de siguiente dirección tiene que permitir acceder a cualquier posición de la memoria de control. Podemos suponer que la memoria de control sea de 1 Kpalabra y por tanto que el tamaño de este campo es de 10 bits.
Por tanto el tamaño mínimo de la palabra de microinstrucción será de 40 bits.
Departamento de Informática. Curso 2005-2006 11
HARDWARE DE CONTROL
Reloj que fija la temporización del sistema y que se puede dividir en subciclos que gobiernan las distintas fases en la ejecución de una microinstrucción.
Memoria de control de 1024x48 bits con un registro de dirección de memoria RDC de10 bits y un registro buffer de memoria RMC de 48 bits.
Secuenciador que gobierna la ejecución del microprograma en función de: Las señales de estado N,Z,C Una señal que indique cuando se va a cargar el
código de operación de la instrucción que está almacenado en IR en el registro RMC
Las señales de condición contenidas en la microinstrucción en curso
Departamento de Informática. Curso 2005-2006 12
HARDWARE DE LA UNIDAD DE CONTROL
Departamento de Informática. Curso 2005-2006 13
EL MULTIPLEXOR MMUX
Departamento de Informática. Curso 2005-2006 14
FASES EN LA EJECUCIÓN DE UNA MICROINSTRUCCIÓN
Carga de la siguiente microinstrucción a ejecutar en el registro de datos RMC.
Sacar el contenido de los registros a los buses A y B y cargar su contenido en los registros buffer A y B.
Esperar a que la salida de la ALU y el desplazador se estabilice ( o sea que termine la operación) y en su caso que se cargue el registro de dirección de memoria MAR.
Almacena el resultado en el banco de registros y en su caso en el registro de datos de memoria MBR.
Departamento de Informática. Curso 2005-2006 15
FASES EN LA EJECUCIÓN DE UNA INSTRUCCIÓN
Búsqueda de la instrucción ( MAR PC , LECTURA, PC PC + 1)
Decodificación que implica la carga en RDC (registro de dirección de memoria de control) de la dirección de inicio del microprograma correspondiente a esa instrucción.
Ejecución del microprograma y vuelta a la búsqueda de instrucción.
Departamento de Informática. Curso 2005-2006 16
CONJUNTO DE INSTRUCCIONES
Departamento de Informática. Curso 2005-2006 17
FASE DE BÚSQUEDA Y DECODIFICACIÓN
MAR PC ; LECTURA ( RD =1 ; Bus B ← PC ; cargar el MAR )
PC PC + 1 ; LECTURA (RD=1 ; Bus A ← PC ; Bus B ← 1 ; Sumar; Habilitar C; PC ← Bus C)
IR MBR ( MUXA ← 1; ALU = dejar pasar A ; Habilitar C ; IR ← Bus C)
FIR ← 1 ( Con esto cargamos el código de operación en el registro RDC)
Departamento de Informática. Curso 2005-2006 18
CONTENIDO DE LA MEMORIA DE CONTROL
Departamento de Informática. Curso 2005-2006 19
TABLA DE SALTOS
Departamento de Informática. Curso 2005-2006 20
INSTRUCCIONES DE CARGA
Ejecución de LODD n A IR and OMASK (bus A ← IR ; Bus B ← OMASK
; ALU = and ; habilitar C ; A ← Bus C) MAR A ; Lectura ( bus B ← A ; MAR = 1; R = 1) Lectura ( dura dos ciclos R = 1) AC MBR (MUX = 1; ALU = A ; habilitar C; AC
Bus C)Ejecución de LODI n AC ← IR and OMASK ( bus A ← IR ; Bus B ←
OMASK ; ALU = and ; habilitar C AC ← Bus C; COND = salto incondicional; dir = busqueda)
Departamento de Informática. Curso 2005-2006 21
INSTRUCCIONES DE SUMA
Ejecución de ADDD n A IR and OMASK (bus A ← IR ; Bus B ←
OMASK ; ALU = and ; habilitar C ; A ← Bus C) MAR A ; Lectura ( bus B ← A ; MAR = 1; R =
1) Lectura ( dura dos ciclos R = 1) AC MBR + AC (MUX = 1; Bus B AC ; ALU
= suma ; habilitar C; AC Bus C)Ejecución de ADDI n A IR and OMASK ; (bus A ← IR ; Bus B ←
OMASK ; ALU = and ; habilitar C ; A ← Bus C) AC AC + A ( Bus A A; Bus B AC ;
ALU = suma ; habilitar C; AC Bus C)
Departamento de Informática. Curso 2005-2006 22
INSTRUCCIÓN DE RESTA
Ejecución de SUBD n Como no tenemos en la ALU la operación de
restar hacemos A-B = A + B’ + 1 A IR and OMASK (bus A ← IR ; Bus B ← OMASK
; ALU = and ; habilitar C ; A ← Bus C) MAR A ; Lectura ( bus B ← A ; MAR = 1; R = 1) AC AC + 1 ; Lectura (R=1 ; Bus A ← AC ; Bus
B ← 1 ; Sumar; Habilitar C; AC ← Bus C) A MBR’ (MUX = 1 ; ALU = complementar ;
habilitar C ; A Bus C) AC A + AC ( Bus A AC ; Bus B A; ALU =
suma ; habilitar C; AC Bus C)
Departamento de Informática. Curso 2005-2006 23
INSTRUCCIONES DE MANEJO DE LA PILA
Ejecución de PUSH SP SP-1 ( Bus A SP ; Bus B -1 ; ALU =
sumar ; habilitar C ; SP Bus C) MAR SP ; MBR AC; Escritura (Bus B SP ; MAR buffer B; Bus A AC ;
ALU = deja pasar A ; MBR Salida del desplazador; W)
Terminar la escritura con salto a búsquedaEjecución de POP MAR SP ; Lectura ; SP SP +1; Lectura; PC MBR;
Departamento de Informática. Curso 2005-2006 24
INSTRUCCIONES DE SALTO
Ejecución de JNEG x La instrucción dice “Si AC <0 entonces PC x “. Para
poder saber si AC es negativo, tenemos que pasar su contenido por la ALU y posicionar el bit N. Nos quedará el siguiente microprograma:
AC AC ; Si N = 1 salta a la etiqueta JMP ; en otro caso salta a búsqueda
Ejecución de JZERx AC AC ; Si Z = 1 salta a la etiqueta JMP ; en otro caso
salta a búsquedaEjecución de JCAR x Si C = 1 salta a la etiqueta JMP ; en otro caso salta a
búsquedaEjecución de JMP x PC IR and OMASK
Departamento de Informática. Curso 2005-2006 25
INSTRUCCIÓN DE LLAMADA A SUBRUTINA
Ejecución de CALL x SP SP – 1; MAR SP ; MBR PC ; Escritura; Escritura; PC IR and OMASK