Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
Fundamentos de Informática 2008-09
I.T.Industrial. Electricidad
PRÁCTICA 2-3 Arquitectura Von Neumann. Principios básicos de funcionamiento de un Computador Material:
PC Software simulador de un Computador Von Neumann
Duración: 2 horas
DESARROLLO DE LA PRÁCTICA
La siguiente figura muestra el esquema de un computador Von Neumann.
1
Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
Fundamentos de Informática 2008-09
I.T.Industrial. Electricidad
JUEGO DE INSTRUCCIONES MÁQUINA Instrucciones tamaño palabra (todas de 16 bits) CPU con 8 registros de propósito general de 16 bits cada uno Tamaño palabra CPU = 16bits Bus de datos de 16 bits Tamaño palabra de memoria = 16bits Bus de direcciones de 16 bits
Nomenclatura utilizada Rd Rs Ri Rd/s Rx:
Tres bits que codifican el registro destino de una operación. Tres bits que codifican el registro fuente (origen) de una operación. Tres bits que codifican el registro índice para direccionamiento indirecto. Tres bits que codifican un registro que es a la vez fuente y destino de una operación. Tres bits que codifican el registro que contiene la dirección de destino para saltos indirectos. 000 001 010 .. 110 111
R0 R1 R2 -R6 R7
Instrucciones de movimiento o transferencia de datos Código de Instr.
Descripción
Mnemónico
00 000 00 001 00 010 00 011 00 100 00 101 00 110 00 111
Instrucción nula Transferencia entre registros Leer de memoria Escribir en memoria Inicializa parte baja registro Inicializa parte alta registro Apila el contenido del registro Rs. Desapila un valor en el registro Rd.
NOP MOV Rd, Rs MOV Rd, [Ri] MOV [Ri], Rs MOVL Rd, Inm_8 MOVH Rd, Inm_8 PUSH Rs POP Rd
00000000000 Rd Rs 00000 Rd Ri 00000 Ri Rs 00000 Rd Inm_8 Rd Inm_8 Rs 00000000 Rd 00000000
Operación Rd ß Rs Rd ß M(Ri) M(Ri) ß Rs RdL ßInm8 bits RdHßInm8 bits
Instrucciones Aritmético-Lógicas De tres operandos 01 000 Rd Rs1 Rs2 00 01 001 Rd Rs1 Rs2 00 01 010 Rd Rs1 Rs2 00 01 011 Rd Rs1 Rs2 00 01 100 Rd Rs1 Rs2 00
ADD Rd, Rs1, Rs2 SUB Rd, Rs1, Rs2 OR Rd, Rs1, Rs2 AND Rd, Rs1, Rs2 XOR Rd, Rs1, Rs2
Rd ßRs1 + Rs2 Rd ßRs1 - Rs2 RdßRs1 OR Rs2 RdßRs1 AND Rs2 RdßRs1 XOR Rs2
COMP Rs1, Rs2
Rs1 - Rs2
De dos operandos 01 101 Rs1 Rs2 000 00
2
Fundamentos de Informática 2008-09
Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
I.T.Industrial. Electricidad
De un operando 100 00 Rd/s 00000000 100 01 Rd/s 00000000 100 10 Rd/s 00000000 100 11 Rd/s 00000000
NOT Rd/s INC Rd/s DEC Rd/s NEG Rd/s
Rd/s = Rd/s + 1 d/s = Rd/s - 1 Compl.a 2 de Rd/s
Interrupciones Código instrucción
Descripción
Mnemónico
101 00 00000000000 Pone a cero el flag de máscara de interrupción 101 01 00000000000 Pone a uno el flag de máscara de interrupción. 101 10 000 Inm_8 Genera la interrupción software con vector de interrupción Inm_8. 101 11 00000000000 Retorno de interrupción (bien sea hard . o softw).
Operación
CLI STI
IF = 0 IF = 1
INT Inm_8 IRET
Apila SR, PC ; PC = Inm_8 Desapila PC y SR
Operación
Instrucciones de control de flujo Saltos incondicionales Código de Instr.
Descripción
Mnemónico
11 00 0 000 Inm_8 11 00 1 Rx 00000000
Realiza un salto relativo Realiza un salto indirecto absoluto a la posición de memoria contenida en el registro Rx.
JMP Inm_8
PC = PC + Ex_16(Inm_8)
JMP Rx
PC = Rx
Saltos condicionales Código instrucción
Descripción
11 11 0 Cond Inm_8 cond :
Mnemónico BR_Cond Inm_8
000 001 010 011 100 101 110 111
Operación Si cond. cierta: PC = PC + Ex_16(Inm_8)
CF = 1 CF = 0 OF = 1 OF = 0 ZF = 1 ZF = 0 SF = 1 SF = 0
Llamadas y retornos a procedimientos Código instrucción
Descripción
Mnemónico
Operación
11 01 0 000 Inm_8
Salto relativo a un procedimiento.
CALL Inm_8
11 011 Rx 00000000
Salto indirecto absoluto a un procedimiento.
CALL Rx
11 10 0 00000000000
Retorno de procedimiento
RET
Apila PC PC=PC+Ex_16(Inm_8) Apila PC PC = RX Desapila PC 3
Fundamentos de Informática 2008-09
Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
I.T.Industrial. Electricidad
REFERENCIA DE TECLAS (normal)
Ejecutar ciclo de reloj a ciclo de reloj dentro de una instrucción máquina Ejecutar instrucción máquina completa
DESARROLLO DE LA PRÁCTICA: 1.- Instrucciones Máquina. Codificación y Decodificación A) Trabajo a realizar sobre papel
1.1.- ¿Cuál es el código expresado en binario y hexadecimal de las siguientes instrucciones de transferencia de datos? binario hex MOVL R1, 0AH MOVH R1, FF H
; R1L ß 0A H ; R1H ß FF H
___________ ___________
______ ______
1.2.- ¿Cuál es el código expresado en binario y hexadecimal de la siguiente instrucción aritmética?
ADD R3,R1,R2
; R3 ß R1+R2
binario
hex
_____________
______
1.3.- Se sabe que el siguiente nº hexadecimal 1C60H representa la codificación de una instrucción máquina . a) Pasarla a binario
____________________________________
b) ¿Qué instrucción es?
______________________
c) ¿Cuántos operandos tiene?
_______________________
B) Trabajo a realizar sobre el simulador
1.4.- Verificar con el simulador los resultados del apartado anterior.
4
Fundamentos de Informática 2008-09
Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
I.T.Industrial. Electricidad
2.- Ejecución de Instrucciones Máquina. Registros Específicos y Generales A) Trabajo a realizar sobre papel
2.1.- Traducir a lenguaje máquina de la MS (hexadecimal) el siguiente programa (Observar que algunas ya las hemos hecho en el apartado anterior): hex MOVL R1, 0A H MOVH R1, FF H ADD R3,R1,R2 MOV [R4], R3
; R1L ß 0A ; R1H ß FF ; R3 ß R1+R2 ; M(R4) ß R3
______ ______ ______ ______
2.2.- ¿Qué hacen las instrucciones anteriores?
¿Se modifica algún registro?. En caso afirmativo di cual o cuales.
¿Se modifica el contenido de alguna posición de memoria? En caso afirmativo di cual o cuales
B) Trabajo a realizar sobre el simulador
2.3.- Introducir en memoria principal a partir de la dirección 0300H el programa anterior 2.4.- Inicializar el registro R2 con 1 y R4 con el valor 0110H 2.5.- Ejecutar (con F8) una a una las 4 instrucciones del programa y rellenar el siguiente cuadro:
PC MDR MAR IR R1 R2 R3 R4
estado inicial
después de I1
después de I2
después de I3
después de I4
…………… …………… …………… …………… …………… …………… …………… ……………
…………… …………… …………… …………… …………… …………… …………… ……………
…………….. …………….. …………….. …………….. …………….. …………….. …………….. ……………..
…………….. …………….. …………….. …………….. …………….. …………….. …………….. ……………..
………….. ………….. ………….. ………….. ………….. ………….. ………….. …………..
5
Fundamentos de Informática 2008-09
Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
I.T.Industrial. Electricidad
2.6.- Al ejecutar el programa anterior se modifica el contenido de una posición de memoria: - dirección _____________ - nuevo contenido ____________
3.-Ejecución de Instrucciones Máquina: Ciclos de Reloj, Microoperaciones y Señales de Control 3.1.- Para la instrucción máquina MOVL R1, 0A H (1ª inst. del apartado 2.1) escribir a mano la secuencia de microoperaciones y la activación de las señales de control que tienen lugar durante todo el ciclo de instrucción. Hay que fijarse bien en la estructura de la ruta de datos: Ciclos de reloj
microoperaciones
señales de control
T1
MAR ß PC, TMPSß PC+1, READ
T2 T3
PC ß TMPS, esperar a memoria IR ßMDR
PC_IB, IB_MAR, TMPE_CLR, CARRY_IN, ADD, ALU_TMPS, READ TMPS_IB, IB_PC MDR_IB, IB_IR
T4
_____________________
____________________________
¿Cuántos ciclos de reloj tarda en ejecutarse?
______________
3.2.- Verificar el ejercicio anterior con el simulador (con F7) 3.3- Repetir lo mismo para la instrucción 3 (ADD R3,R1,R2). (Opción F7) Ciclos de reloj
microoperaciones
Verificarlo con el simulador
señales de control
T1
MAR ß PC, TMPSß PC+1, READ
T2 T3
PC ß TMPS, esperar a memoria IR ßMDR
PC_IB, IB_MAR, TMPE_CLR, CARRY_IN, ADD, ALU_TMPS, READ TMPS_IB, IB_PC MDR_IB, IB_IR
T4
_____________________
____________________________
T5
_____________________
____________________________
_____________________
____________________________
_____________________
____________________________
¿Cuántos ciclos de reloj tarda en ejecutarse?
______________
6
Fundamentos de Informática 2008-09
Departamento de Sistemas Informáticos (Campus de Albacete) Universidad de Castilla La Mancha
I.T.Industrial. Electricidad
3.4.-La siguiente secuencia de señales de control corresponden a una instrucción máquina Paso 1 Paso 2 Paso 3 Paso 4 Paso 5
PC_IB, IB_MAR, TMPE_CLR, CARRY_IN, ADD, ALU_TMPS, READ TMPS_IB, IB_PC MDR_IB, IB_IR R7_IB, TMPE_CLR, CARRY_IN, ADD, ALU_SR, ALU_TMPS TMPS_IB, IB_R7, FIN
Identifica la instrucción de que se trata y completa la tabla siguiente. Verifícalo con el simulador. Código de la instrucción
Descripción
Mnemónico
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
3.5.-Si el reloj de esta CPU tiene una frecuencia de 2 Gigaherzios ¿Cuánto tiempo tarda en ejecutarse la instrucción anterior?
7