250 likes | 428 Views
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.
E N D
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