MICROPROGRAMACIÓN

25
Departamento de Informática. Curso 2 005-2006 1 MICROPROGRAMACIÓN LECCIÓN 11 DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACIÓN

description

LECCIÓN 11 DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACIÓN. MICROPROGRAMACIÓN. RUTA DE DATOS. Estructura en triple bus. ESQUEMA DE LA RUTA DE DATOS. DETALLE DE LA RUTA DE DATOS. UNIDAD ARITMÉTICO-LÓGICA. DESPLAZADOR. SEÑALES DE CONTROL NECESARIAS. - PowerPoint PPT Presentation

Transcript of MICROPROGRAMACIÓN

Page 1: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 1

MICROPROGRAMACIÓN

LECCIÓN 11DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACIÓN

Page 2: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 2

RUTA DE DATOS

Estructura en triple bus

Page 3: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 3

ESQUEMA DE LA RUTA DE DATOS

Page 4: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 4

DETALLE DE LA RUTA DE DATOS

Page 5: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 5

UNIDAD ARITMÉTICO-LÓGICA

Page 6: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 6

DESPLAZADOR

Page 7: MICROPROGRAMACIÓN

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

Page 8: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 8

FORMATO DE MICROINSTRUCCIÓN

Page 9: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 9

CODIFICACIÓN DEL CAMPO DE SALTOS

Page 10: MICROPROGRAMACIÓN

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.

Page 11: MICROPROGRAMACIÓN

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

Page 12: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 12

HARDWARE DE LA UNIDAD DE CONTROL

Page 13: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 13

EL MULTIPLEXOR MMUX

Page 14: MICROPROGRAMACIÓN

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.

Page 15: MICROPROGRAMACIÓN

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.

Page 16: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 16

CONJUNTO DE INSTRUCCIONES

Page 17: MICROPROGRAMACIÓN

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)

Page 18: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 18

CONTENIDO DE LA MEMORIA DE CONTROL

Page 19: MICROPROGRAMACIÓN

Departamento de Informática. Curso 2005-2006 19

TABLA DE SALTOS

Page 20: MICROPROGRAMACIÓN

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)

Page 21: MICROPROGRAMACIÓN

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)

Page 22: MICROPROGRAMACIÓN

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)

Page 23: MICROPROGRAMACIÓN

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;

Page 24: MICROPROGRAMACIÓN

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

Page 25: MICROPROGRAMACIÓN

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