37
Contenido Introducci´ on Memorias Lenguaje de M´ aquina Organizaci´ on B´ asica de un Computador y Lenguaje de M´ aquina Prof. Rodrigo Araya E. [email protected] Universidad T´ ecnica Federico Santa Mar´ ıa Departamento de Inform´ atica Valpara´ ıso, 1 er Semestre 2006 RAE Organizaci´ on B´ asica de un Computador y Lenguaje de M´ aquina

Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Organizacion Basica de un Computador yLenguaje de Maquina

Prof. Rodrigo Araya [email protected]

Universidad Tecnica Federico Santa MarıaDepartamento de Informatica

Valparaıso, 1er Semestre 2006

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 2: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

1 Introduccion

2 Memorias

3 Lenguaje de Maquina

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 3: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Introduccion

La funcion principal de un procesador es cumplir ordenes.

Estas ordenes son entregadas en un lenguaje especial paracada procesador: Lenguaje de maquina.

Las palabras del lenguaje de maquina se denominaninstrucciones, y el vocabulario conjunto de instrucciones.

En este capıtulo nos centraremos en la estructura delcomputador, y en el conjunto de instrucciones.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 4: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Estructura de un computador

Un computador digital tiene 3 bloques principales:

El ProcesadorEl Sistema de MemoriaEl Sistema de Entrada y Salida

Diagrama basico de un CPU

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 5: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Estructura de un computador

Diagrama de bloques de un AMD64:

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 6: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

En un computador existen diversos tipos de memoria (tiempode acceso, costo, tamano).

Estas memorias son jerarquicas:

A medida que se desciende de la piramide, aumenta la latencia,aumenta el tamano, y disminuye el costo de las memorias.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 7: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

Registros: Memoria utilizada directamente por elprocesador.

Memoria Cache: Memoria intermedia, ubicada muy cercade la unidad de procesamiento.

Memoria Principal: Memoria de acceso aleatorio (RAM).Memoria Externa: Memoria de almacenamiento masivo no volatil

(Disco Duro, Medios opticos, cintas, etc.).

Los Registros, Cache y Memoria Principal son consideradosmemorias internas.

Estrategia

Organizar datos y programas en memoria de manera que laspalabras de memoria siempre esten en la memoria mas rapida.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 8: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

Unidad de Transferencia

Otro aspecto importante en las memorias es la Unidad deTransferencia. Esta unidad corresponde a la cantidad de bits quese transfieren desde/hacia el dispositivo de memoria.

Palabra: Es la unidad “natural” de memoria. En unaarquitectura limpia, el tamano de una palabracorresponde, al numero de bits utilizado pararepresentar numeros en un registro, y a la longitud deuna instruccion.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 9: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

Unidad de Transferencia

En Memoria Cache a menudo es igual a la longitud de unapalabra.

En Memoria Principal es igual al numero de bits que se leen oescriben. Generalmente no coincide con el tamano de unapalabra (tıpicamente 8 bits).

En Memoria Externa los datos se transfieren en unidades masgrandes que una palabra.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 10: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

Para cargar un dato de memoria principal en el procesador, esnecesario pasar por la memoria intermedia, Cache.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 11: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

Memoria Cache

Es altamente probable que futuros accesos del procesador amemoria principal, sean a posiciones accedidas recientemente.

Se retienen algunos de los bloques de la Memoria Principal enla Memoria Cache.

El manejo de la memoria cache esta implementado en HW yes de forma automatica.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 12: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

La memoria de cache cuenta ademas con un espacio paraalmacenar una etiqueta que tiene referencia al bloque dememoria principal que se cargo.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 13: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Memorias

La memoria principal es bastante mas grande, y tiene untamano limitado por el direccionamiento.

Se pueden direccionar 2n − 1 “lineas” de memoria principal.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 14: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Lenguaje de Maquina

Para el estudio de arquitectura consideraremos la maquinaMIPS (R3000 y R4000).

MIPS R3000, R4000

Procesador de 32 bits

Tecnologıa RISC.

Su diseno es bastante “limpio” y general, para entender ellenguaje de maquina.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 15: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Lenguaje de Maquina

Lenguaje de Maquina

El Lenguaje de Maquina se escribe utilizando instrucciones.

Existen diversas instrucciones para un procesador, las quepermiten realizar:

Operaciones logicas y aritmeticas.Lectura/Escritura y corrimiento de datos.Saltos y Bifurcaciones.Etc...

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 16: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones

A diferencia de los lenguajes de alto nivel, los operandos delas instrucciones no pueden ser variables.

Para los operandos se utilizan registros.

Todos los registros en MIPS, tienen 32 bits.

El grupo de 32 bits se denomina palabra.

El archivo de registros de MIPS tiene 32 registros.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 17: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones

Registros temporales para variables

Por el momento definiremos los registros que se utilizan comooperandos en las instrucciones:

Por convencion utilizaremos:

Para variables que deben ser preservadas a traves de llamadas:

$s0, $s1, $s2, . . . , $s7

Para variables que no necesitan ser preservadas a traves dellamadas:

$t0, $t1, $t2, . . . , $t9

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 18: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Aritmeticas

En todo computador se deben realizar operacionesaritmeticas, tanto para operar sobre datos, como paradireccionar memoria, realizar bifurcaciones, etc..

Suma y Resta

La suma y la resta en MIPS, se realizan de la siguientemanera:

add a,b,c #a← b + csub a,b,c #a← b − c

Todas las instrucciones aritmeticas tienen 3 operandos.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 19: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Aritmeticas

Ejemplo mas “complicado”

En C

a=b+cd=a-ef=(g+h)-(d+a)

En Lenguaje de maquina:

→ add a,b,c→ sub d,a,e→ ¿...?

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 20: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Aritmeticas

Solucion

Se tienef = (g + h)− (d + a)

Se asume:g →$s1h→$s2d →$s3a→$s4f →$s5

Se Luego:

add $t0, $s1, $s2 #$t0← g + hadd $t1, $s3, $s4 #$t1← d + asub $s5, $t0, $t1 #$f ← (g + h)− (d + a)

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 21: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Los lenguajes de programacion, ademas de manejar variablessimples, son capaces de manejar estructuras mas complejas.

Estructuras de datos como los arreglos, son mantenidos enmemoria principal.

Existen instrucciones que permiten cargar o guardar palabrasdesde la memoria principal a registros del procesador (o viceversa).

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 22: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

La memoria principal esta organizada en bytes. Esto significaque cada direccion apunta hacia un byte.

Como el procesador MIPS tiene registros de 32 bits (unapalabra), se pueden cargar 4 bytes.

Existen 2 organizaciones distintas de ubicar bytes en palabras:

Little Endian.Big Endian.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 23: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Little Endian y Big Endian

El tipo de organizacion de la memoria depende exclusivamentede la arquitectura que se utilice.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 24: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Little Endian y Big Endian

Ambas organizaciones son ampliamente utilizadas, ya que ambastienen sus propias ventajas.

Ejemplos de Little Endian:VAXIntelDEC Risc

Ejemplos de Big Endian:MIPSSPARCIBM 360

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 25: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Para cargar una palabra de memoria principal, a un registrodel procesador, se utiliza la instruccion lw.

Al cargar una palabra, se guardaran 32 bits en el registrocorrespondiente, lo que se traduce a 4 bytes de memoriaprincipal.

Por ejemplo para cargar el valor A[8] en un registro

El valor 8 corresponde al numero de elemento del arreglo.El arreglo A comienza en una direccion de memoria.

Direccion del valor a cargar = direccion de A + 4 ∗ 8

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 26: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Registro Base y offset

En general, para acceder a una posicion de un arreglo dememoria, se debe sumar una constante a una direccion dememoria.

Esta constante corresponde a un offset.

Y la direccion de memoria se denomina registro base.

lw $s1, offset(direccion de registro)

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 27: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

¿Como obtener el valor, si el ındice es una variable?

g = h + A[i ]

No existe una instruccion que tome el offset desde unavariable.

Ejemplo de Arreglo con una variable como ındice

Cual es el codigo assembly para g = h + A[i ]

Se asume que:registro base de A → $s3

g → $s1h → $s2i → $s4

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 28: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Antes de resolver...

Para cargar cualquier palabra de memoria, se necesita sudireccion.

Como los arreglos de memoria se encuentran almacenados enmemoria contigua, es facil calcular la direccion a la cual sedebe acceder, teniendo como referencia el registro base.

Antes de sumar el ındice i a la base del arreglo para obtenersu direccion, es necesario multiplicar el ındice por 4, debido ala forma de direccionar bytes.

La multiplicacion se puede generar:

i + i = 2i , 2i + 2i = 4i

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 29: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Arreglos de Memoria

Solucion del Ejemplo

Primero se debe calcular 4iadd $t1, $s4, $s4 # $t1← 2 ∗ iadd $t1, $t1, $t1 # $t1← 4 ∗ i

Luego para obtener la direccion de A[i ], necesitamos sumar$t1 con la base de A, que esta en $s3add $t1, $t1, $s3 # $t1← direccion de A[i ]

Con esta direccion se puede cargar A[i ] en un registrotemporal.lw $t0, 0($t1) # $t0← A[i ]

Y finalmente el resultadoadd $s1, $s2, $t0 # g ← h + A[i ]

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 30: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones

Formatos de Instruccion

En MIPS, todas las instrucciones son de 32 bits.

Existen 3 diferentes formatos de instruccion:

Tipo RTipo ITipo J

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 31: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Tipo R

Las instrucciones tipo R son de la siguiente forma:

En la figura se muestra como ejemplo la instruccion:add $t0, $s1, $s2

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 32: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Tipo R

Instruccion tipo R

op: codigo de operacion.

rs: primer operando fuente.

rt: segundo operando fuente.

rd: registro destino.

shamt: shift amount (se usa para instrucciones dedesplazamiento).

op: selecciona una variacion especıfica del codigo deoperacion.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 33: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Tipo I

Las instrucciones tipo I son de la siguiente forma:

En la figura se muestra como ejemplo la instruccion:lw $s2, 32($s1)

En este caso, el campo rt se utiliza para la direccion delregistro en que se cargara la palabra.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 34: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones Tipo I

Tambien existe una instruccion para guardar registros enmemoria principal.

La instruccion save word (sw) funciona de la siguientemanera:sw $s2, 32($s1) # $s2← memoria[32 + $s1]

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 35: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Instrucciones

Es un buen principio de diseno tomar compromisos deregularidad de formatos y tamano del codigo de operacion.

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 36: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Pseudo Instrucciones

Muchas instrucciones Assembly no existen en el Lenguaje deMaquina, pero pueden ser generadas con otras instrucciones

Un ejemplo es la instruccion move que permite copiar unregistro en otro. Esta instruccion no existe en la maquinaMIPS.move $s1, $s2 # $s1← $s2

El Assembler MIPS genera:add $s1, $0, $s2 # $s1← $s2 + 0

RAE Organizacion Basica de un Computador y Lenguaje de Maquina

Page 37: Organización Básica de un Computador y Lenguaje de Máquinaalumnos.inf.utfsm.cl/~raraya/arq/material/Capitulo_6.pdfLenguaje de M´aquina Memorias En un computador existen diversos

ContenidoIntroduccion

MemoriasLenguaje de Maquina

Fin...

Fin...

RAE Organizacion Basica de un Computador y Lenguaje de Maquina