31
1 MAQUINA RUDIMENTARIA MAQUINA RUDIMENTARIA UN COMPUTADOR UN COMPUTADOR PEDAGÓGICO PEDAGÓGICO Enrique Pastor Llorens Dept de Arquitectura de Computadores UPC La Máquina Rudimentaria 2 U C P Visión Visión General de la General de la Presentación Presentación Introducción Introducción al al Computador Pedagógico Computador Pedagógico MAQUINA RUDIMENTARIA’ MAQUINA RUDIMENTARIA’ Desarrollado por un equipo de profesores del Departamento de Arquitectura de Computadores entre los años 1995--98. Se pretende diseñar de un computador simple para una asignatura 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

MAQUINA RUDIMENTARIA UN COMPUTADOR …docencia.ac.upc.edu/eines/MR/DOCUMENTOS/... · 1 MAQUINA RUDIMENTARIA UN COMPUTADOR PEDAGÓGICO Enrique Pastor Llorens Dept de Arquitectura de

  • Upload
    hatuong

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

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

26

27

28

29

30

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.