Post on 07-Oct-2018
1
MAQUINA RUDIMENTARIAMAQUINA RUDIMENTARIAUN COMPUTADORUN COMPUTADOR
PEDAGÓGICOPEDAGÓGICO
Enrique Pastor LlorensDept de Arquitectura de Computadores
UPC
La Máquina Rudimentaria 2U CP
VisiónVisión General de la General de la PresentaciónPresentación
IntroducciónIntroducción al al Computador Pedagógico Computador Pedagógico
‘ ‘MAQUINA RUDIMENTARIA’MAQUINA RUDIMENTARIA’
• Desarrollado por un equipo de profesores del Departamento deArquitectura de Computadores entre los años 1995--98.
• Se pretende diseñar de un computador simple para unaasignatura de primer ciclo que incluya:
• Conceptos básicos sobre arquitectura
• Lenguaje máquina• Lenguaje ensamblador y proceso de ensamblado• Compuesto de circuitos digitales simples
• Análisis detallado de su funcionamiento
2
La Máquina Rudimentaria 3U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria• Lenguaje Máquina• Unidad de Proceso• Unidad de Control• Lenguaje Ensamblador• Entorno de Simulación• Documentación
La Máquina Rudimentaria 4U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria
3
La Máquina Rudimentaria 5U CP
ArquitecturaArquitectura de la MR de la MR
Computador de tipo von Neuman• Unidad de Proceso
• Palabra de 16 bits: números en complemento a 2• ALU: suma, resta, desplazamientos y AND lógica
• Flags de condición: negativo (N) y cero (Z)
• Banco de registros con 8 elementos
• Unidad de Control• Máquina de estados finitos
• Memória• Capacidad: 256 palabras de 16 bits
La Máquina Rudimentaria 6U CP
ArquitecturaArquitectura de la MR de la MR• Entrada / Salida no disponible• Buses de Interconexión
• Direcciones: 8 bits
• Datos: 16 bits
• Una señal de control
• Implementación• Registros
• Multiplexores, decodificadores
• Sumadores, restadores, incrementadores• Lógica combinacional y secuencial
4
La Máquina Rudimentaria 7U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria
• Lenguaje Máquina
La Máquina Rudimentaria 8U CP
Lenguaje MáquinaLenguaje Máquina• Lenguaje Máquina de tipo RISC• Instrucciones de longitud fija• Máxima ortogonalidad• Tipos de instrucciones
• Aritmético-lógicas
• Acceso a memória• Saltos
• Modos de direccionamiento restringidos• Registro e inmediato en aritméticas
• Base más desplazamiento para load y store
• Absoluto en los saltos
5
La Máquina Rudimentaria 9U CP
Aritmético LógicasAritmético Lógicas• Seis instrucciones que permiten realizar:
• Suma, resta,
• Desplazamiento aritmético y AND-lógica
• Operandos en el Banco de Registros• Números de 16 bits en complemento a 2
• Rango [-32768, +32767]
• Inmediato: 5 bits en complemento a 2• Rango [-16, 15]
• Flags de condición negativo (N) y cero (Z)• Actualizados después de cada operación
La Máquina Rudimentaria 10U CP
Aritmético LógicasAritmético Lógicas
Modo Registro - Registro:SUMA Rd := Rf1 + Rf2RESTA Rd := Rf1 - Rf2DESPLAZAMIENTO Rd := Rf1 >> 1AND LOGICA Rd := Rf1 AND Rf2
Modo Registro - Inmediato:SUMA Rd := Rf1 + inmediatoRESTA Rd := Rf1 - inmediato
6
La Máquina Rudimentaria 11U CP
Aritmético LógicasAritmético Lógicas
11 Rd Rf1 Rf2 1110015 13 10 7 4 2 0
CO Rd Rf1 Rf2 OP0015 13 10 7 4 2 0
Instrucciones aritmeticasModo registro - registro
11 Rd Rf1 Rf2 1000015 13 10 7 4 2 0
11 Rd Rf1 Rf2 1010015 13 10 7 4 2 0
11 Rd Rf1 Rf2 1100015 13 10 7 4 2 0
SUMA
RESTA
DESPLAZAMIENTO
AND
La Máquina Rudimentaria 12U CP
Aritmético LógicasAritmético Lógicas
CO Rd Rf1 Inmediato OP15 13 10 7 2 0
Instrucciones aritmeticasModo registro - inmediato
11 Rd Rf1 Inmediato 00015 13 10 7 2 0
11 Rd Rf1 Inmediato 00115 13 10 7 2 0
SUMA
RESTA
7
La Máquina Rudimentaria 13U CP
AccesoAcceso a a memória memória
• Dos instrucciones de acceso a memória:• LOAD : lectura de memória
• STORE: escritura en memória
• La dirección de memória se calcula como:• Una dirección base: número natural de 8 bits
• Un desplazamiento: almacenado en un registro índice
• El dato es leido o escrito en un registro del banco deregistros
• Instrucción LOAD modifica los flags de condición
La Máquina Rudimentaria 14U CP
AccesoAcceso a a Memória Memória
Modo Base más Desplazamiento:LOAD Rd := M[ dir_base + Ri ]STORE M[ dir_base + Ri ] := Rf
CO Rd/Rf Ri Dir_base15 13 10 7 0
Instrucciones acceso amemoria
00 Rd Ri Dir_base15 13 10 7 0
01 Rf Ri Dir_base15 13 10 7 0
LOAD
STORE
8
La Máquina Rudimentaria 15U CP
InstruccionesInstrucciones de de Salto Salto• Siete instrucciones de salto• La condición es evaluada previamente por otra
instrucción (p.e. aritmética)• La instrucción de salto analiza los flags de condición
N y Z.• menor, mayor, igual, distinto
• menor o igual, mayor o igual
• incondicional
• La dirección de la instrucción destino se especificade forma absoluta (8 bits)
La Máquina Rudimentaria 16U CP
InstruccionesInstrucciones de de Salto SaltoCO COND 000 Dir_destino
15 13 10 7 0
Instrucciones de salto
10 000 000 Dir_destino Incondicional
10 001 000 Dir_destino Igual
10 010 000 Dir_destino Menor
10 011 000 Dir_destino Menor o igual
10 110 000 Dir_destino Mayor
10 101 000 Dir_destino Mayor o igual
10 100 000 Dir_destino Distinto
10 111 000 Dir_destino Halt
9
La Máquina Rudimentaria 17U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria• Lenguaje Máquina
• Unidad de Proceso
La Máquina Rudimentaria 18U CP
UnidadUnidad de de Proceso Proceso
Elementos de la UP:
• Instrucción en ejecución• Secuenciamiento implícito• Banco de registros• Unidad Aritmético-lógica• Condición de salto• Cálculo de direcciones
10
La Máquina Rudimentaria 19U CP
InstrucciónInstrucción en en Ejecución Ejecución
IR
Ld_IR (UC)
Mout
M@
16
8
ME
MO
RIA
L/EL/E (UC)
La Máquina Rudimentaria 20U CP
Secuenciamiento ImplícitoSecuenciamiento Implícito
PC
Ld_PC (UC)
M@8
ME
MO
RIA+1
8
11
La Máquina Rudimentaria 21U CP
Secuenciamiento ImplícitoSecuenciamiento Implícito
PC
Ld_PC (UC)
M@8
ME
MO
RIA
+18
IR
8
8
PC/@ (UC)
La Máquina Rudimentaria 22U CP
BancoBanco de de Registros Registros
R216
R5
R4
R3
R1
R6
R7
R016
16
16
16
16
16
16
16
SL 3
SE 3
E
Dout
Din
12
La Máquina Rudimentaria 23U CP
Unidad AritméticoUnidad Aritmético--LógicaLógica
Sumador Restador Desplazador AND
A B
C0C1
C2
O
16
N Z
La Máquina Rudimentaria 24U CP
Unidad AritméticoUnidad Aritmético--LógicaLógica
6/
5I
5I��5L
5I�
1818
�
�
�
�
�
�
&&55II
5G5G � 6(
((5G5G (
%$1&2
'(
5(*,67526
'LQ
'RXW
$/8
5=
51
$ %
��
5$
23���
23(5$5
��
13
La Máquina Rudimentaria 25U CP
Unidad AritméticoUnidad Aritmético--LógicaLógica
6/
5I
5I��5L
5I�
1818
�
�
�
�
�
�
&&55II
5G5G � 6(
((55GG (
%$1&2
'(
5(*,67526
'LQ
'RXW
$/8
5=
51
$ %
��
5$
23���
23(5$5
��
,5(;7
23�
&2�
��
La Máquina Rudimentaria 26U CP
EvaluaciónEvaluación de la de la Condición Condición
COND Cond Salto000 1 BR
001 Z BEQ010 N BL011 N+Z BLE
100 HALT101 no Z BNE110 no N BGE
111 no N+Z BG
RZCond
3
Evaluaciónde la
condición
RN
COND (IR13-11)
14
La Máquina Rudimentaria 27U CP
CálculoCálculo de de Direcciones Direcciones
%$1&2
'(
5(*,67526
'RXW
0(025,$
,5
5#
3&
0#
��
�
0RXW
0LQ
�� �
�
�
�
��
3&�#
/�(
6/
5I
5I��5L
5I�
1188
�
�
�
�
&&55II
55GG� 6(
((55GG (
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'( /$
&21',&,21
&RQG
81,'$''(&21752/
0(025,$
$/8
5=
51
$ %
&21'��
5$
,5
(;7
5#
3&
0#
��
�
0RXW
0LQ
23���
23(5$5
23�
&2�
��
��
�
�
�
�
��
3&�#
/�(
&2�
�
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
15
La Máquina Rudimentaria 29U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria• Lenguaje Máquina• Unidad de Proceso
• Unidad de Control
La Máquina Rudimentaria 30U CP
UnidadUnidad de Control de Control
• Diseñada mediante el uso de máquinas de estadosfinitos, siguiendo el modelo de Moore.
• Dos versiones de complejidad progresiva:• UC no optimizada, cada fase en un estado.
• UC optimizada, cada estado implementa diversas fases.
• Posterior síntesis como ejercicio práctico.
16
La Máquina Rudimentaria 31U CP
UnidadUnidad de Control de Control
)(7&+
)
'(&
'(
$'5�
$'
/32
32
(&6
(&
$'5�
$'
%5$1&+
%
/62(
62(
/2$'
6725(
/
6
XXX
XXX
XXX
XXX
0XX
00X
01X
XXX
XXX
XXX
11X
10X
XX1XX0 6$/72
/2$'
6725(
$5,70(7,&$6
(CO Cond)
La Máquina Rudimentaria 32U CP
UnidadUnidad de Control de Control
)(7&+
)
'(&2
'
$5,7
$
%5$1&+
%
/2$'
6725(
/
6
XXX
XXX
XXX
XXX
00X
01X
11X
101
XXX6$/72
/2$'
6725(
$5,70(7,&$6
(CO Cond)
17
6/
5I
5I��5L
5I�
18
18
����
&5I
&5I
5G
5G
�6(
(5G
(5G
(
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'(/$
&21',&,21
&RQG
81,'$' '( &21752/
0(025,$
$/8
5=
51
$%
&21'
��
5$
,5
(;7
R@3&
0#
��
�
0RXW
0LQ
23
���
23(5$5
23
�
&2
�
��
���
�
�
�
��
3&�#
/�(
&2
� �
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
fetchfetch
6/
5I
5I��5L
5I�
18
18
����
&5I
&5I
5G
5G
�6(
(5G
(5G
(
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'(/$
&21',&,21
&RQG
81,'$' '( &21752/
0(025,$
$/8
5=
51
$%
&21'
��
5$
,5
(;7
R@3&
0#
��
�
0RXW
0LQ
23
���
23(5$5
23
�
&2
�
��
���
�
�
�
��
3&�#
/�(
&2
� �
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
decodeco
18
6/
5I
5I��5L
5I�
18
18
����
&5
&5II
5G
5G
�6(
(5(5GG
(
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'(/$
&21',&,21
&RQG
81,'$' '( &21752/
0(025,$
$/8
5=
51
$%
&21'
��
5$
,5
(;7
R@3&
0#
��
�
0RXW
0LQ
23
���
23(5$5
23
�
&2
�
��
���
�
�
�
��
3&�#
/�(
&2
� �
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
aritarit
6/
5I
5I��5L
5I�
18
18
����
&5
&5II
5G
5G
�6(
(5(5GG
(
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'(/$
&21',&,21
&RQG
81,'$' '( &21752/
0(025,$
$/8
5=
51
$%
&21'
��
5$
,5
(;7
R@3&
0#
��
�
0RXW
0LQ
23
���
23(5$5
23
�
&2
�
��
���
�
�
�
��
3&�#
/�(
&2
� �
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
loadload
19
6/
5I
5I��5L
5I�
18
18
����
&5
&5II
5G
5G
�6(
(5(5GG
(
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'(/$
&21',&,21
&RQG
81,'$' '( &21752/
0(025,$
$/8
5=
51
$%
&21'
��
5$
,5
(;7
R@3&
0#
��
�
0RXW
0LQ
23
���
23(5$5
23
�
&2
�
��
���
�
�
�
��
3&�#
/�(
&2
� �
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
storestore
6/
5I
5I��5L
5I�
18
18
����
&5
&5II
5G
5G
�6(
(5(5GG
(
%$1&2
'(
5(*,67526
'LQ
'RXW
(9$/8$&,21
'(/$
&21',&,21
&RQG
81,'$' '( &21752/
0(025,$
$/8
5=
51
$%
&21'
��
5$
,5
(;7
R@3&
0#
��
�
0RXW
0LQ
23
���
23(5$5
23
�
&2
�
��
���
�
�
�
��
3&�#
/�(
&2
� �
/GB5$
/GB,5
/GB3&
/GB5#
/GB5=
/GB51
3&�#
&5I
(5G
23(5$5
branchbranch
20
La Máquina Rudimentaria 39U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria• Lenguaje Máquina• Unidad de Proceso• Unidad de Control
• Lenguaje Ensamblador
La Máquina Rudimentaria 40U CP
Lenguaje EnsambladorLenguaje Ensamblador• Instrucciones• Directivas
• Reserva de memória• Asignación• Inicio y fin de programa
• Etiquetas• Macros• Proceso de ensamblado• Ejemplo
21
La Máquina Rudimentaria 41U CP
InstruccionesInstrucciones
Aritméticas:ADDI Rf, #num, Rd
SUBI Rf, #num, Rd
ADD Rf1, Rf2, RdSUB Rf1, Rf2, Rd
ASR Rf1, Rd
AND Rf1, Rf2, Rd
Acceso a memória:LOAD dir_base(Ri), Rd
STORE dir_base(Ri), Rd
Salto:BR dir_absoluta
BEQ dir_absoluta
BL dir_absolutaBLE dir_absoluta
BNE dir_absoluta
BGE dir_absoluta
BG dir_absolutaHALT
La Máquina Rudimentaria 42U CP
DirectivasDirectivas
Reserva de memória:.dw n1 {, n2, … , nN }.rw n
Asignación:identificador = expresión
Inicio y fin de programa:.begin identificador
.end
22
La Máquina Rudimentaria 43U CP
EtiquetasEtiquetas
Definición:etiqueta : instrucción o directiva
Utilización:Instrucciones de acceso a memória
Instrucciones de saltoDirectiva de inicioCreación de expresiones
La Máquina Rudimentaria 44U CP
MacrosMacros
Creación de pseudo-instruccionesDeclaración:
.def nombre { argumento {, argumento }}{ cuerpo de la macro }.enddef
Argumentos:$dn : el operando es una dirección de memória
$in : el operando es una constante inmediata$n: el operando es un registro
23
La Máquina Rudimentaria 45U CP
ProcesoProceso de de Ensamblado Ensamblado
Ensamblado en dos fases:• Pre-ensamblado
Expansión de macros y creación de la tabla desímbolos
> pren programa macrosprograma.mr + macros.mr => programa.asm
• Post-ensambladoCreación del código máquina ejecutable
> posten programaprograma.asm => programa.cod
La Máquina Rudimentaria 46U CP
EjemploEjemplo:: Fichero Fichero de Macros de Macros.DEF CMP $1,$2
SUB $1,$2,R0.ENDDEF.DEF CMP $1,$i2
SUBI $1,$i2,R0.ENDDEF.DEF CLR $1
ADD R0, R0, $1.ENDDEF.DEF MOV $1, $2
ADD $1,R0, $2.ENDDEF.DEF MOV $i1,$2
ADDI R0,$i1,$2.ENDDEF
.DEF MOV $d1, $2
LOAD $d1, $2.ENDDEF
.DEF MOV $d1,$d2,$3
LOAD $d1,$3STORE $3,$d2
.ENDDEF
.DEF INC $1ADDI $1, #1, $1
.ENDDEF
.DEF DEC $1SUBI $1, #1, $1
.ENDDEF
24
La Máquina Rudimentaria 47U CP
EjemploEjemplo:: Programa Ensamblador Programa Ensamblador.BEGIN ini
;Calculo del factorial de un numero;N: .DW 4
FACT: .RW 1INI: LOAD N(R0), R1
MOV R1, R3CLR R4
;producto de los elementos del factorialM1: CMP R1, #1
BLE FM1MOV R1, R2
;producto de numeros mediante sumas
M2: CMP R2, #1BLE FM2ADD R4, R3, R4
DEC R2
BR M2FM2: MOV R4, R3
CLR R4DEC R1BR M1
FM1: STORE R3, FACT(R0)
.END
La Máquina Rudimentaria 48U CP
EjemploEjemplo: Pre-: Pre-ensambladoensamblado.BEGIN inin: .DW 4fact: .RW 1ini: load n(R0),R1 ;mov R1,R3
add R1,R0,R3 ;end mov R1,R3
;clr R4
add R0,R0,R4 ;end clr R4
m1: ;cmp R1,#1
subi R1,#1,R0 ;end cmp R1,#1
ble fm1 ;mov R1,R2
add R1,R0,R2 ;end mov R1,R2
m2: ;cmp R2,#1
subi R2,#1,R0 ;end cmp R2,#1
ble fm2 add R4,R3,R4 ;dec R2
subi R2,#1,R2 ;end dec R2
br m2fm2: ;mov R4,R3
add R4,R0,R3 ;end mov R4,R3 ;clr R4
add R0,R0,R4 ;end clr R4
……...
25
La Máquina Rudimentaria 49U CP
IndiceIndice
• Arquitectura de la Máquina Rudimentaria• Lenguaje Máquina• Unidad de Proceso• Unidad de Control• Lenguaje Ensamblador
• Entorno de Simulación
La Máquina Rudimentaria 50U CP
EntornoEntorno de de simulación simulación
Simulador de la Máquina Rudimentaria:• Simulador gráfico en entorno Windows• Lenguaje ensamblador• Plegado y desplegado de las macros• Unidad de proceso / Unidad de control
Ejecución:• Ciclo a ciclo• Instrucción a instrucción• Inserción de break-points• Generación de trazas mediante cronogramas
31
La Máquina Rudimentaria 62U CP
DocumentaciónDocumentación• “La Máquina Rudimentaria”. CPET, Diciembre 1995
• “Apuntes de la Máquina Rudimentaria”.
CPET, Octubre 1996, Febrero 1997, Noviembre 1997 (2a Ed.).
• “Problemas de la Máquina Rudimentaria”.
CPET, Febrero 1997, Noviembre 1997 (2a Ed.).
• “La Máquina Rudimentaria, un Procesador Pedagógico”.
III Jornadas de Enseñanza Universitaria de Informática, Junio
1997.
• “Fundamentos de Computadores”.
R. Hermida, A del Corral, E. Pastor y F. Sánchez, Ed. Síntesis,
Enero 1998.