Upload
niko-lawson
View
216
Download
0
Embed Size (px)
Citation preview
7/24/2019 04 MIPS_Basico
http://slidepdf.com/reader/full/04-mipsbasico 1/36
Introducción a MIPS
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.
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 /'-.
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.
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)
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.
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.
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.
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.
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
...
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
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?
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.
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.
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
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
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
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
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
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/////
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.
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.
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).
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
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.
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.
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
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
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
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
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 $).
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
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
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
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
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