MICROPROGRAMACIÓN
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.
MICROPROGRAMACIÓN
E N D
Presentation Transcript
LECCIÓN 11 DISEÑO DE COMPUTADORES MEDIANTE MICROPROGRAMACIÓN MICROPROGRAMACIÓN Departamento de Informática. Curso 2005-2006
RUTA DE DATOS • Estructura en triple bus Departamento de Informática. Curso 2005-2006
ESQUEMA DE LA RUTA DE DATOS Departamento de Informática. Curso 2005-2006
DETALLE DE LA RUTA DE DATOS Departamento de Informática. Curso 2005-2006
UNIDAD ARITMÉTICO-LÓGICA Departamento de Informática. Curso 2005-2006
DESPLAZADOR Departamento de Informática. Curso 2005-2006
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
FORMATO DE MICROINSTRUCCIÓN Departamento de Informática. Curso 2005-2006
CODIFICACIÓN DEL CAMPO DE SALTOS Departamento de Informática. Curso 2005-2006
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
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
HARDWARE DE LA UNIDAD DE CONTROL Departamento de Informática. Curso 2005-2006
EL MULTIPLEXOR MMUX Departamento de Informática. Curso 2005-2006
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
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
CONJUNTO DE INSTRUCCIONES Departamento de Informática. Curso 2005-2006
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
CONTENIDO DE LA MEMORIA DE CONTROL Departamento de Informática. Curso 2005-2006
TABLA DE SALTOS Departamento de Informática. Curso 2005-2006
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
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
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
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úsqueda Ejecución de POP • MAR SP ; Lectura ; • SP SP +1; Lectura; • PC MBR; Departamento de Informática. Curso 2005-2006
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úsqueda Ejecución de JCAR x • Si C = 1 salta a la etiqueta JMP ; en otro caso salta a búsqueda Ejecución de JMP x • PC IR and OMASK Departamento de Informática. Curso 2005-2006
INSTRUCCIÓN DE LLAMADA A SUBRUTINA Ejecución de CALL x • SP SP – 1; • MAR SP ; MBR PC ; Escritura; • Escritura; PC IR and OMASK Departamento de Informática. Curso 2005-2006