Arquitectura del MIPS: Introducción -...

29
Arquitectura del MIPS: Introducción Montse Bóo Cepeda Este trabajo está publicado bajo licencia Creative Commons Attribution- NonCommercial-ShareAlike 2.5 Spain.

Transcript of Arquitectura del MIPS: Introducción -...

Page 1: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

Arquitectura del MIPS: Introducción

Montse Bóo Cepeda

Este trabajo está publicado bajo licencia Creative Commons Attribution-NonCommercial-ShareAlike 2.5 Spain.

Page 2: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

2

Estructura del curso

1. Evolución y caracterización de los computadores.2. Arquitectura del MIPS: Introducción.3. Tipo de datos.4. El repertorio de instrucciones.5. Aritmética del computador.6. El camino de datos.7. Sección de control.8. El camino de datos multiciclo.9. Sección de control multiciclo.10. Entrada/Salida (I/O).

Page 3: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

3

Esquema de contenidos

1. Repertorio de instrucciones MIPS2. Programa almacenado3. Sistemas de almacenamiento de datos

Page 4: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

4

Introducción: La visión del programador

• El funcionamiento de la CPU está determinado por las instrucciones que ejecuta.

• El conjunto de instrucciones distintas que puede ejecutar se denomina repertorio de instrucciones

• En los computadores actuales las instrucciones se presentan como números y se almacenan en memoria (programa almacenado)

• El lenguaje utilizado por el ordenador se denomina lenguaje máquina. El lenguaje ensamblador es una representación simbólica más cercana al humano.

Page 5: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

5

Visión software: Jerarquía de traducción

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

lw $t0, 0($2)lw $t1, 4($2)sw $t1, 0($2)sw $t0, 4($2)

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

Lenguaje de altonivel

Lenguaje ensamblador(MIPS)

Lenguaje máquina

Compilador C

Ensamblador MIPS

TEMP = V(K)V(K) = V(K+1)V(K+1) = TEMP

Compilador Fortran

Page 6: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

6

Ejecución de un programa

0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111

...

Memoria

programa & datos

I / O

Camino de datos

ControlCarga – Decodificación – Ejecución

Page 7: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

7

Instrucciones

• Cada instrucción máquina debe especificar:• Código de operación• Referencia a operandos fuente• Referencia a operandos resultado• Referencia a la siguiente instrucción

• Los operandos fuente y resultado pueden estar en alguna de las siguientes localizaciones:• Memoria • Registro de la CPU• Dispositivo de E/S

Page 8: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

8

Representación de las instrucciones

Operación Ref. operando 1 Ref. operando 2

• Dentro del computador cada instrucción se representa por una secuencia de bits

• La instrucción se divide en campos correspondientes a los elementos constitutivos de la misma (código de operación, operandos, etc.)

• La descripción en campos y bits se denomina formato de instrucción

Page 9: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

9

Operaciones del repertorio de instrucciones

• Aritméticas• Lógicas• Transferencia de datos• De control de flujo

• Instrucciones de bifurcación o salto• Instrucciones de salto condicional• Instrucciones de llamada a subrutina

• De control del sistema• De E/S

Page 10: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

10

Repertorio de instrucciones escogido: MIPS

• Arquitectura MIPS R2000/R3000• Pionera de las arquitecturas RISC• Muy sencilla y uniforme• Creada en Stanford (John Hennessy)• Utilizada por NEC, Nintendo, Silicon Graphics y

Sony.

Page 11: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

11

Lenguaje MIPS

Instrucciones: • Aritméticas

• add, sub, mult, div• Lógicas

• and, or, ssl (shift left), srl (shift right)• Transferencia de datos

• lw (load), sw (store), lui• Saltos

• Condicionales: beq, bne, slt• No condicionales: j, jr, jal

Page 12: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

12

MIPS: Ejemplo de sencillezSUMA de dos variables en registros $s1 y $s2, resultado en registro $t0.

add $t0, $s1, $s2 # $t0 = $s1 + $s2

• Longitud de instrucción fija: 32 bits• La arquitectura MIPS realiza la mayor parte de los cálculos

con datos almacenados en registros• MIPS es sencilla y eficiente

• El acceso a memoria se hace a través de operaciones de carga/almacenamiento (transferencia de datos)

En MIPS son nombres de registros

Page 13: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

13

Registros en el MIPS• 32 registros de 32 bits

Reservado por el ensamblador$at1

Dirección de retorno$ra31Puntero de bloque de activación$fp30Puntero de pila$sp29Puntero global$gp28Reservado para núcleo de SO$k0-$k126-27Temporales$t8-$t924-25Salvados$s0-$s716-23Temporales$t0-$t78-15Argumentos$a0-$a34-7Para resultados y evaluación de expresiones$v0-$v12-3

Valor constante 0$zero0

Uso convencionalNombreNúmero

Page 14: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

14

Concepto de programa almacenado• Las instrucciones son representadas como números.• Los programas están almacenados en memoria

• Pueden ser leídos/escritos como números.

• La memoria: Contiene instrucciones y datos. • Las instrucciones son cargadas automáticamente

(control). • Los datos son transferidos explícitamente entre

memoria y procesador y viceversa INSTRUCCIONES DE TRANSFERENCIA DE

DATOS

Page 15: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

15

Concepto de programa almacenado

. . .

Procesador Memoria

dirección Datos

...

01234

...

PalabraByte (8bits)

Registros

load (lw)

save (sw)

Page 16: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

16

¿Dónde están los operandos?:

Los operandos pueden estar:• En la instrucción:

• Rápido y simple.• Sólo para constantes

• En la memoria principal:• Direccionamiento implica muchos bits.• Acceso lento

• En los registros de la CPU:• Hay pocos registros: el direccionamiento implica pocos bits• Acceso rápido

Page 17: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

17

Sistemas de almacenamiento de datos.

Registros

Memoria Principal

Cache

Disco magnético

Cinta magnética Disco óptico

CapacidadCoste por bitTiempo de acceso

Page 18: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

18

Memorias de acceso aleatorio

Eléctrico (nivel

bloque)

Flash

Eléctrico (nivel byte)

ElectricallyErasable PROM

(EEPROM)Eléctrico

Luz UV (chip)

Lectura(reprogramable)

Erasable PROM (EPROM)

Eléctrico (fusibles)Programmable ROM (PROM)

No volátil

Proceso fabricaciónNo posibleLectura

Read OnlyMemory (ROM)

VolátilEléctricoEléctricoLec/EscRandom Access Memory (RAM)

VolatilidadModo de escrituraBorradoPropósitoTipo de memoria

Page 19: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

19

Organización de la memoria• Organizando una memoria de 96 bits:

0123456789

1011

8 bits

01234567

12 bits

012345

16 bits

Palabra: 1, 8, 12, 16, 32, …

Page 20: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

20

Organización de la memoria• Ejemplos

Byte6464PowerPC 750Byte323268020Byte321668000Byte3264PentiumByte3232486Byte1688088Byte16168086

Unidad direccionable

Longitud registros

Bus datos

Page 21: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

21

Direcciones de memoria

Byte 0

Byte 1

……

Byte N-1

Byte 2

8 bits

Dirección (dec)

0

1

2

N-1

A nivel de byte

Tamaño memoria: N bytes

Page 22: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

22

Direcciones de memoria

Palabra 0

Palabra 1

……

Palabra 2

32 bits

Dirección (dec)

0

1

2

A nivel de palabra

Page 23: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

23

Direcciones de memoria

Palabra 0

Palabra 1

……

Palabra 2

32 bits

Dirección (dec)

0

4

8

A nivel de palabracon numeración en bytes

MIPS…

Page 24: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

24

Direcciones de memoria

8 bits

Dirección (dec)

0

1

2

A nivel de palabracon numeración en bytes

MIPS…

Byte 0

Byte 1

Byte N

Byte 2

Byte 33

Palabra 0

Page 25: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

25

Direcciones de memoria

A nivel de palabracon numeración en bytes

MIPS

4n

4n+1

4n+2

4n+3

...

...

4n+4

4n+5

4n+6

4n+7

4n+8

4n+9

4n+10

4n+11

Palabra n

Palabra n+1

Palabra n+3

8 bits

Page 26: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

26

Big Endian, Litte Endian

• Orden de almacenamiento en memoria de los bytesdentro de una palabra

• Big Endian: El byte más significativo en la dirección más baja

• Little-Endian: El byte más significativo en la dirección más alta

Page 27: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

27

Big Endian, Litte Endian

8 bits

Direcc. (dec)

84

85

86

12

34

56

7887

Dato: 12345678 (hex)Dirección: 84(dec)

84

85

86

78

56

34

1287

…Direcc. (dec)

8 bits

BIG ENDIAN LITTLE- ENDIAN

Page 28: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

28

Big Endian, Litte Endian

32 bits

12

Dato: 12345678 (hex)Dirección: 84(dec)

BIG ENDIAN

345678

Byte 0Byte 1Byte 2Byte 3

Page 29: Arquitectura del MIPS: Introducción - QueGrande.orgquegrande.org/apuntes/ETIS-USC/1/ESC1/teoria/07-08/tema_2.pdf · formato de instrucción. 9 ... • Instrucciones de salto condicional

29

Big Endian, Litte Endian

32 bits

12

Dato: 12345678 (hex)Dirección: 84(dec)

LITTLE ENDIAN

Simula3ms34 56 78

Byte 0Byte 1Byte 2Byte 3