36
Introducción a MIPS

04 MIPS_Basico

Embed Size (px)

Citation preview

Page 1: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 1/36

Introducción a MIPS

Page 2: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 2/36

Universidad de Sono Arquitectura de Computadoras 2

MIPSMIPS (Microprocessor without Interlocked Pipeline

Stages) es una familia de microprocesadoresRISC desarrollados por MIPS Technologies.

RISC (Reduced Instruction Set rchitecture) esuna estrategia de dise!o de CP"s donde cadainstrucción tiene una sola función # se e$ecuta demanera r%pida.

&s lo contrario de CISC (Comple' Instruction Setrchitecture) donde cada instrucción hacemuchas funciones.

Page 3: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 3/36

Universidad de Sono Arquitectura de Computadoras 3

RISCCISC&$emplos de RISC inclu#en lpha RC RM

*R MIPS P+RISC PIC PowerPC Super,and SPRC.

&$emplos de CISC inclu#en las familias

Motorola -/// e Intel /'-.

Page 4: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 4/36

Universidad de Sono Arquitectura de Computadoras 4

MIPS&l primer MIPS fue desarrollado en 010 por 2ohn 3. ,enness# en Stanford "ni4ersit#.

Principio de regularidad. Todas lasinstrucciones ocupan 5 6#tes (78 6its).

Principio de simplicidad. Instruccionessencillas. Solo ha# 7 formatos de instrucción.

"sados entre otros en algunas consolas de4ideo$uego de 9intendo # Son# # sistemasempotrados como ruteadores Ciscodispositi4os :indows C& gatewa#s etc.

Page 5: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 5/36

Universidad de Sono Arquitectura de Computadoras 5

ritm;tica MIPS Todas las instrucciones aritm;ticas tienen 7

operandos

&l orden de los operandos es <$a (primero eloperando destino)

&$emplo=

C= > ? @ CMIPS= add As/ As0 As8

(las 4aria6les son asociadas por el compilador)

Page 6: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 6/36

Universidad de Sono Arquitectura de Computadoras 6

ritm;tica MIPS3a simplicidad fa4orece la regularidad.

C= > ? @ C @ B& > D +

MIPS= add At/ As0 As8

add As/ At/ As7su6 As5 AsE As/

3os operandos de las instrucciones aritm;ticasde6en ser registros.

Page 7: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 7/36Universidad de Sono Arquitectura de Computadoras 7

FRegistrosG"n registro es una memoria integrada en la

CP". Tienen poca capacidad 5 6#tes (78 6its) en

MIPS pero de acceso mu# r%pido.

Se usan para guardar 4alores temporales #

resultados de operaciones aritm;ticas.

Page 8: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 8/36Universidad de Sono Arquitectura de Computadoras 8

Registros 4s. Memoria3os operandos de las instrucciones

aritm;ticas de6en ser registros.

Solo ha# 78 registros disponi6les en MIPS.&l compilador asocia las 4aria6les con los

registros.

FH los programas con muchas 4aria6lesG

3as 4aria6les se guardan en la memoriaprincipal.

Page 9: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 9/36Universidad de Sono Arquitectura de Computadoras 9

Registros 4s. Memoria3a ma#ora de las CP"s modernas mue4en las

4aria6les de la memoria principal a losregistros operan so6re ellos # regresan elresultado a la memoria.

esto se le conoce como arJuitecturaloadstore.

MIPS emplea arJuitectura loadstore.

Page 10: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 10/36Universidad de Sono Arquitectura de Computadoras 10

KrganiLación de la

memoriaMIPS usa byte addressing el ndice apunta a

un 6#te de memoria.

0

1

2

3

45

8 bits of data

8 bits of data

8 bits of data

8 bits of data

8 bits of data

8 bits of data

...

Page 11: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 11/36

Universidad de Sono Arquitectura de Computadoras 11

KrganiLación de la

memoria3as pala6ras son de 5 6#tes (78 6its).

3os registros son de 5 6#tes (78 6its).

3a memoria est% alineada. 3as pala6rasde6en comenLar en direcciones Jue sonmltiplo de 5.

0

4

8

12

...

Datos 32 bits

Datos 32 bits

Datos 32 bits

Datos 32 bits

Page 12: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 12/36

Universidad de Sono Arquitectura de Computadoras 12

KrganiLación de la

memoriaMIPS se puede con<gurar por hardware como

6ig+endian o littleNendian.

Se usan 78 6its para direccionar la memoria.3a memoria tiene=878 6#tes con dirección desde / hasta 878 N 0.

87/ pala6ras con dirección desde / hasta 878 N 5.

¿Qué signifcan los 2 bits menossignifcativos de una dirección de palabra?

Page 13: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 13/36

Universidad de Sono Arquitectura de Computadoras 13

Instrucciones de referencia

a memoriaInstrucciones lw (load word) # sw (store

word).

t0 ! "emoria#s3 $ 32%

t0 ! s2 $ t0

"emoria#s3 $ 32% ! t0

C& A#8% ! ' $ A#8%

"()S& *+ ,t0- 32,s3/add ,t0- ,s2- ,t0s+ ,t0- 32,s3/

s2 va*or de 's3 direccin A#0%t0 va*or de A#8%

Ojo:

*+ e* destino va primero.s+ e* destino va seundo.

Page 14: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 14/36

Universidad de Sono Arquitectura de Computadoras 14

Kperandos de memoria&n las instrucciones de memoria a la constante

se le llama ofset  # al registro Jue se suma parao6tener la dirección se le llama registro base.

Por e$emplo=

lw At/ 78(As7) Ato > MemoriaOAs7 @ 78

sw At/ 78(As7) MemoriaOAs7 @ 78 > At/

78 es el oQset.&l registro 6ase es As7.

Page 15: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 15/36

Universidad de Sono Arquitectura de Computadoras 15

&n resumen=MIPSCarga pala6ras pero direcciona 6#tes.Puede ser 6ig+endian o little+endian.

ritm;tica usa solamente registros.

Instrucción Signi<cado

add As0 As8 As7 As0 > As8 @ As7

su6 As0 As8 As7 As0 > As8 N As7lw As0 0//(As8) As0 > MemoriaOAs8@0//sw As0 0//(As8) MemoriaOAs8@0// > As0

Page 16: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 16/36

Universidad de Sono Arquitectura de Computadoras 16

&l primer e$emplo

swap(int v[], int k)

{ int temp;

temp = v[k]

v[k] = v[k+1];

v[k+1] = temp;} swap:

 muli $2, $5, 4

add $2, $4, $2

lw $15, ($2)

lw $1!, 4($2)sw $1!, ($2)

sw $15, 4($2)

"# $1

Page 17: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 17/36

Universidad de Sono Arquitectura de Computadoras 17

&l primer e$emploswap:

1 muli $2, $5,

2 add $2, $,

$2! lw $15, "#$2

 lw $1%, #$2

5 sw $1%, "#$2

% sw $15, #$2

& 'r $!1

swap:

1 $2 ( $5 ) * $5 tiene el valor de + 

2 $2 ( $ $2 * $ apunta a v-"., $2apunta a v-+.

! $15 ( /em-$2". * $15 tiene el valor dev-+.

 $1% ( /em-$2. * $1% tiene el valor dev-+1.

5 /em-$2". ( $1% * $1% se guarda en

v-+.% /em-$2. ( $15 * $15 se guarda env-+1.

& 'r $!1 * return

Page 18: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 18/36

Universidad de Sono Arquitectura de Computadoras 18

&l primer e$emplohora en seudo+C con apuntadoresswap (int 4O int k)

 

A5 > 4O/ inicialiLaAE > kA8 > AE 5 0 + A8 es (4Ok + 4O/)A8 > A5 @ A8 8 + A8 apunta a 4OkA0E > (A8 @ /) 7 + A0E tiene el 4alor de 4Ok

A0- > (A8 @ 5) 5 + A0- tiene el 4alor de 4Ok@0(A8 @ /) > A0- E + A0- se guarda en 4Ok(A8 @ 5) > A0E - + A0E se guarda en 4Ok@0U

Page 19: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 19/36

Universidad de Sono Arquitectura de Computadoras 19

&l primer e$emplo H ahora en C normal=

swap (int 4O int k)

int t0 > 4Ok

int t8 > 4Ok @ 0

4Ok > t8

4Ok @ 0 > t0

U

Page 20: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 20/36

Universidad de Sono Arquitectura de Computadoras 20

3engua$e de m%Juina&l lengua$e de m%Juina es lengua$e 6inario.

&l hardware solo entiende 6its.

&l ensam6lador traduce cada instrucción delengua$e ensam6lador a lengua$e de m%Juina.

Por e$emplo la instrucción

add At/ As0 As8

se traduce a//////0///00//0//0//0/////0/////

Page 21: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 21/36

Universidad de Sono Arquitectura de Computadoras 21

3engua$e de m%Juina//////0///00//0//0//0/////0///// sedescompone en=

////// es el opcode del add.

0///0 es el nmero del registro As0.

0//0/ es el nmero del registro As8.

/0//0 es el nmero del registro At/.

///// son 6its de relleno (donVt care).

0///// es el código de la suma de registros.

Page 22: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 22/36

Universidad de Sono Arquitectura de Computadoras 22

3engua$e de m%Juina&n general la instrucción

add destino fuente0 fuente8

genera el código m%Juina

//////QQfgggggddddd'''''0/////

donde0. ////// es el código del add.

8. QQf es el nmero del registro fuente 0

7. ggggg es el nmero del registro fuente 85. ddddd es el nmero del registro destino

E. ''''' son donVt care

-. 0///// es el código de la suma de registros.

Page 23: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 23/36

Universidad de Sono Arquitectura de Computadoras 23

Dormatos de instrucción,a# 7 formatos de instrucción=

Dormato R. Todos los operandos son registros.Dormato I. ,a# un operando inmediato

(nmero).

Dormato 2. 3a instrucción es un 6rinco ($ump).

Page 24: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 24/36

Universidad de Sono Arquitectura de Computadoras 24

Dormatos de instrucción&$emplos=

Dormato R.add At/ As0 As8 At/ > As0 @ As8

Dormato I.

addi At/ As0 C At/ > As0 @ C Onmero de

0- 6itsDormato 2.

 $ C 6rinca a C Odirección de 0-6its

Page 25: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 25/36

Universidad de Sono Arquitectura de Computadoras 25

Instrucciones de controlInstrucciones de toma de decisión.

lteran el Wu$o de control.

&n otras pala6ras cam6ian la siguienteinstrucción Jue ser% e$ecutada.

Page 26: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 26/36

Universidad de Sono Arquitectura de Computadoras 26

Instrucciones de control&n MIPS ha# dos instrucciones de 6rincocondicional=

0. 6eJ As At C 6rinca a la dirección C si As >>At.

8. 6ne As At C 6rinca a la dirección C si As X>At.

Page 27: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 27/36

Universidad de Sono Arquitectura de Computadoras 27

Instrucciones de control&$emplo=

C= if (i >> $)h > i @ $

MIPS= 6ne At0 At8 30 At0= 4alor de iAt8= 4alor de $

add At/ At0 At8 At/= 4alor de h

30= Y

Page 28: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 28/36

Universidad de Sono Arquitectura de Computadoras 28

Instrucciones de control&n MIPS ha# tres instrucciones de 6rinco incondicional=

0.  $ C 6rinca a la dirección C

8.  $r Ar 6rinca a la dirección guardada en Ar

7.  $al C llama al procedimiento Jue comienLa en C

la dirección de regreso se guarda en A70

es decir se regresa con $r A70

Page 29: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 29/36

Universidad de Sono Arquitectura de Computadoras 29

Instrucciones de control&$emplo=

C= if (i X> $)

h > i @ $elseh > i N $

MIPS= 6ne As0 As8 30 As0 > i As8 > $

su6 As/ As0 As8 As/ > h $ 38 6rinca al <nal

30= add As/ As0 As8 As/ > h38= Y

Page 30: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 30/36

Universidad de Sono Arquitectura de Computadoras 30

Instrucciones de control&$emplo=

C foo ()

Y4oid foo ()YU

MIPS= $al foo 6rinca a foo guarda la dirección deY regreso en el registro 70foo= Y $r A70 regresa al programa principal

Page 31: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 31/36

Universidad de Sono Arquitectura de Computadoras 31

Instrucciones de controlMIPS tiene 6eJ (6rinca si es igual) # 6ne (6rincasi no es igual). FH si la condición es if (i Z $)G

&'iste la instrucción slt (set if less than)=

slt At/ At0 At8

slt es eJui4alente en seudo C a

At/ > (At0 Z At8)

At/ 4ale 0 si At0 es menor Jue At8 # 4ale / enotro caso.

slt se usa $unto con 6eJ o 6ne para condiciones if(i Z $).

Page 32: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 32/36

Universidad de Sono Arquitectura de Computadoras 32

Instrucciones de control&$emplo=

C= if (i Z $)

h > i @ $elseh > i N $

MIPS= slt As7 As0 As8 As0 > i As8 > $ As7 > i Z $

6eJ As7 ALero 30 ALero siempre 4ale /add As/ As0 As8 then h > i @ $ $ 38 6rinca al <nal30= su6 As/ As0 As8 else h > i + $38= Y

Page 33: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 33/36

Universidad de Sono Arquitectura de Computadoras 33

Instrucciones de control&$emplo=

C=if (i Z> $)h > i @ $

elseh > i N $

MIPS= 6eJ As0 As8 37 6rinca si As0 >> As8slt As7 As0 As8 checa su As0 Z As8

6eJ As7 ALero 30 ALero siempre 4ale /37= add As/ As0 As8 then As/ > As0 @ As8 $ 38 6rinca al <nal30= su6 As/ As0 As8 else As/ > As0 + As838= Y

Page 34: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 34/36

Universidad de Sono Arquitectura de Computadoras 34

Resumen0nstrucción ignifcado

add As0As8As7As0 > As8 @ As7

su6 As0As8As7As0 > As8 N As7

lw As00//(As8) As0 > MemoriaOAs8@0//

sw As00//(As8) MemoriaOAs8@0// > As0

6ne As5AsE3 Sig. instr. es 3 si As5 X> AsE6eJ As5AsE3 Sig. instr. es 3 si As5 > AsE

 $ 3 Sig. instr. es 3

 $al 3 3lama al procedimiento 3

Page 35: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 35/36

Universidad de Sono Arquitectura de Computadoras 35

Constantes3as instrucciones con formato I (inmediato)tienen una constante en su tercer operando.

3as constantes est%n limitadas a 0- 6its consigno.

Por e$emplo=

addi A81 A81 5 A81 > A81 @ 5

slti A A0 0/ A > A0 Z 0/andi A81 A81 - A81 > A81 -

ori A81 A81 /'DD A81 > A81 [ /'DD

Page 36: 04 MIPS_Basico

7/24/2019 04 MIPS_Basico

http://slidepdf.com/reader/full/04-mipsbasico 36/36

U i id d d S A it t d C t d 36

Constantes Se pueden tener constantes de 78 6its perosolo si se almacenan en un registro.

Se necesitan dos instrucciones (o una seudo

instrucción como se 4er% despu;s)=0. lui A' C guarda C en los 0- 6its mas

signi<cati4os del registro A'

8. ori A' C guarda C en los 0- 6its menos

signi<cati4os del registro A' &n lugar de ori se puede usar=

addi A' ALero C