Capítulo 5 El procesador Félix García Carballeira Jesús Carretero Pérez José Daniel Sánchez García David Expósito Singh Ediciones Paraninfo 1
Figura 5.1: Componentes básicos de un computador Ediciones Paraninfo 2
Memoria Principal ADDR DATA R W MRdy Bus de direcciones Bus de datos Bus de control A31-A0 D31-D0 A31-A0 D31-D0 Procesador Td C3 IR Señales de control Señales de Interrupción C0 Ta MAR C1 0 1 MBR M1 M2 C2 0 1 PC +4 SELEC SE 5 Size 5 Offset Unidad de control Bus interno T1 T2 T3 RA RB RE LE 5 5 5 T9 A T10 B Banco de registros E MA C4 RT1 0 1 T4 T5 T6 C5 RT2 ALU RT3 00 01 10 11 4 Cop 3 C6 00 0100 00 0001 2 MB T7 SelP 2 0 N Z 3 SR 0 1 I T8 M7 SELEC 11 10 01 U C7 Figura 5.2: Estructura de un procesador elemental Ediciones Paraninfo 3
Figura 5.3: Esquema de un registro y señales necesarias para su utilización Ediciones Paraninfo 4
k k k RA RB RE Banco de registros LE A B carga n Código de operación (Cop) p ALU Registro de estado Acarreo Signo Desbordamiento Cero... Figura 5.4: Estructura de una ALU y su conexión al banco de registros Ediciones Paraninfo 5
Figura 5.5: Buffer triestado y tabla de funcionamiento Ediciones Paraninfo 6
ciclo de reloj ciclo de reloj Reloj Reloj ADDR addr ADDR addr R W DATA data DATA data Operación de lectura Operación de escritura Figura 5.6: Cronograma de acceso a la memoria del procesador de la Figura 5.2 Ediciones Paraninfo 7
Memoria Principal ADDR DATA R W MRdy Bus de direcciones Bus de datos Bus de control A31-A0 D31-D0 A31-A0 D31-D0 Procesador Td C3 IR Señales de control Señales de Interrupción C0 Ta MAR C1 0 1 MBR M1 M2 C2 0 1 PC +4 SELEC SE 5 Size 5 Offset Unidad de control Bus interno T1 T2 T3 RA RB RE LE 5 5 5 T9 A T10 B Banco de registros E MA C4 RT1 0 1 T4 T5 T6 C5 RT2 ALU RT3 00 01 10 11 4 Cop 3 C6 00 0100 00 0001 2 MB T7 SelP 2 0 N Z 3 SR 0 1 I T8 M7 SELEC 11 10 01 U C7 Figura 5.7: Camino de datos para la ejecución de la microoperación MAR PC Ediciones Paraninfo 8
ciclo de reloj Reloj T2 C0 Carga en el flanco de bajada Figura 5.8: Señales de control a activar para la ejecución de la operación elemental MAR PC. El resto de señales permanecen inactivas Ediciones Paraninfo 9
Figura 5.9: Ciclo de instrucción con tratamiento de interrupciones Ediciones Paraninfo 10
Figura 5.10: Interrupciones vectorizadas Ediciones Paraninfo 11
IR SR Figura 5.11: Entradas y salidas de la unidad de control Ediciones Paraninfo 12
Memoria Principal ADDR DATA R W Mrdy Bus de direcciones Bus de datos Bus de control A31-A0 D31-D0 A31-A0 D31-D0 Procesador C0 Ta MAR Td C1 0 1 MBR M1 M2 C2 0 1 PC +4 C3 RA RE RB CO R R dir IR 16 Señales de control Unidad de control S0 S1.. S5 clear Bus interno T1 T2 T3 T9 T10 C4 RT1 T4 T5 T6 C5 RT2 T7 SR T8 C7 RA RB RE LE 5 5 5 A B Banco de registros MA 0 1 ALU (+) 0 1 MB 3 0 1 0 N Z M7 E C6 RT3 Figura 5.12: Esquema del computador que ejecuta las instrucciones add, lw, sw y bz Ediciones Paraninfo 13
IR Rd Rd Rf IR IR R+R0 12 Rf IR Rd Figura 5.13: Máquina de estados correspondiente al procesador de la Figura 5.12, que ejecuta las instrucciones add, lw, sw y bz Ediciones Paraninfo 14
Z I1 I0 S0 S1 S2 S3 S4 S5 CO T2 Ta R W C1 M2 C2 T1 C3 T6 LE C7 M7 Clear T3 T9 M1 Td Figura 5.14: Ejemplo de circuito que implementa la unidad de control para las instrucciones add, lw, sw y bz Ediciones Paraninfo 15
C0 C1 C2 C3 C4 C5 C6 C7 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 LE MA MB1 MB0 M1 M2 M7 R W Ta Td ufetch0 ufetch1 ufetch2 uadd0 ulw0 uw1 ulw2 usw0 usw1 usw3 ubz0 ubz1 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 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 1 0 1 0 0 0 0 1 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 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 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 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 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 fetch add lw sw bz Figura 5.15: Formato de microinstrucción y microprogramas para el procesador de la Figura 5.12, que ejecuta las instrucciones add, lw, sw y bz Ediciones Paraninfo 16
IR SR Señales de control Figura 5.16: Esquema de una unidad de control microprogramada Ediciones Paraninfo 17
Memoria de control +1 1 0 0 µfetch0 µdir 0000 1 0 0 µfetch1 0001 CO ROM 00 0011 01 0100 10 0111 11 1010 0 ( fetch) 00 01 10 11 M1 A M0 µdir 0 0 1 µfetch2 0 0 0 µadd0 1 0 0 µlw0 1 0 0 µlw1 0 0 0 µlw2 1 0 0 µsw0 1 0 0 µsw1 0 0 0 µsw2 1 1 0 0 0 0 0 µbz0 0 0 0 µbz1 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 µdir de salto µinstrucción A B B 10 01 00 2 Z 1 0 µdir de salto 4 Figura 5.17: Ejemplo de unidad de control microprogramada con secuenciamiento implícito para el procesador de la Figura 5.12, que ejecuta las instrucciones add, lw, sw y bz Ediciones Paraninfo 18
Figura 5.18: Esquema del procesador de los Problemas 5.4 y 5.5 Ediciones Paraninfo 19
Figura 5.19: Formato de instrucciones del Problema 5.6 Ediciones Paraninfo 20
Figura 5.20: Formato instrucciones del Problema 5.7 Ediciones Paraninfo 21
Figura 5.21: Contenido de la memoria del ejercicio 5.7 Ediciones Paraninfo 22
Figura 5.22: Esquema de unidad de control microprogramada del Problema 5.8 Ediciones Paraninfo 23
Registro de instrucción Figura 5.23: Esquema de la unidad de control microprogramada del Problema 5.10 Ediciones Paraninfo 24
Figura 5.24: Esquema de la CPU del problema propuesto 5.2 Ediciones Paraninfo 25
Figura 5.25: Esquema de la CPU del problema propuesto 5.3 Ediciones Paraninfo 26
Figura 5.26: Esquema del procesador de los Problemas 5.4 y 5.5 Ediciones Paraninfo 27