arquitectura del mips: introducción -...

Post on 26-Apr-2018

217 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Arquitectura del MIPS: Introducción

Montse Bóo Cepeda

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

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).

3

Esquema de contenidos

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

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.

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

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

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

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

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

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.

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

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

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

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

15

Concepto de programa almacenado

. . .

Procesador Memoria

dirección Datos

...

01234

...

PalabraByte (8bits)

Registros

load (lw)

save (sw)

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

17

Sistemas de almacenamiento de datos.

Registros

Memoria Principal

Cache

Disco magnético

Cinta magnética Disco óptico

CapacidadCoste por bitTiempo de acceso

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

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, …

20

Organización de la memoria• Ejemplos

Byte6464PowerPC 750Byte323268020Byte321668000Byte3264PentiumByte3232486Byte1688088Byte16168086

Unidad direccionable

Longitud registros

Bus datos

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

22

Direcciones de memoria

Palabra 0

Palabra 1

……

Palabra 2

32 bits

Dirección (dec)

0

1

2

A nivel de palabra

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…

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

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

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

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

28

Big Endian, Litte Endian

32 bits

12

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

BIG ENDIAN

345678

Byte 0Byte 1Byte 2Byte 3

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

top related