Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de...

46
Estructura de Computadores Estructura de Computadores 11/Feb/2019

Transcript of Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de...

Page 1: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de Computadores

Estructura de Computadores

11/Feb/2019

Page 2: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresPresentacion

Objetivos

I Conocer la jerarquıa de niveles de un computadorI Conocer la arquitectura (ISA) de un procesador RISCI Saber representar y operar con numeros reales y enterosI Saber como se almacenan y acceden datos estructuradosI Saber traducir programas de alto nivel a lenguaje

ensambladorI Conocer la estructura y el funcionamiento de la memoria

cacheI Entender el funcionamiento basico de la memoria virtualI Conocer los conceptos de excepcion e interrupcionI Adquirir competencias transversales (sostenibilidad)

Page 3: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresPresentacion

Temario

1. Introduccion2. Ensamblador MIPS y tipos de datos basicos3. Traduccion de programas4. Matrices5. Aritmetica de enteros y coma flotante6. Memoria cache7. Memoria virtual8. Excepciones e interrupciones

Page 4: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresPresentacion

RecursosI Sesiones de teorıa/problemas

I lunes y miercoles de 8:00 a 10:00 (A4002)I Sesiones de laboratorioI Bibliografıa

I D. Patterson and J. L. Hennessy. “Estructura y Diseno deComputadores: La Interfaz Hardware/Software”, 2011.

I Recursos online:I http://docencia.ac.upc.edu/FIB/grau/EC/I https://raco.fib.upc.edu/I Problemas, apuntes, practicas, examenes de anos anteriores...I Transparencias: http://jarnau.site.ac.upc.edu/EC/

I ConsultasI [email protected] Despacho C6-115

Page 5: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresPresentacion

Calendario de sesiones de teorıa/problemas - Grupo 10

Dıa Tema Dıa Tema Dıa Tema

11/2/19 Tema 1-2 18/3/19 Tema 1 y 3 6/5/19 Tema 6

13/2/19 Tema 2 20/3/19 Tema 1 6/5/19 Examen parcial

18/2/19 Tema 2 25/3/19 Tema 5 8/5/19 Tema 6

20/2/19 Tema 2 27/3/19 Tema 5 13/5/19 Tema 7

25/2/19 Tema 3 1/4/19 Tema 5 15/5/19 Tema 7

27/2/19 Tema 3 3/4/19 Tema 5 20/5/19 Tema 7

4/3/19 Tema 3 8/4/19 Tema 5 22/5/19 Tema 8

6/3/19 Tema 3 10/4/19 Tema 6 27/5/19 Tema 8

11/3/19 Tema 4 24/4/19 Tema 6 29/5/19 Repaso

13/3/19 Tema 4 29/4/19 Tema 6 3/6/19 Ex. Lab

11/6/19 de 8h a 11h - Examen final

Page 6: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresPresentacion

Sesiones de laboratorio

Grupo Sesion 0 Sesion 1 Sesion 2 Sesion 3 Sesion 4 Sesion 5 Aula

11 19/02 05/03 19/03 02/04 23/04 07/05 A5S105

12 22/02 08/03 22/03 05/04 26/04 17/05 C6S306

13 26/02 12/03 26/03 09/04 30/04 14/05 A5S108

I Sesion 0: IntroduccionI Sesion 1: Ensamblador MIPS y tipos de datos basicosI Sesion 2: Traduccion de programasI Sesion 3: Tipos de datos estructuradosI Sesion 4: Codificacion en coma flotanteI Sesion 5: Memoria cache

Page 7: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresPresentacion

Evaluacion

I 0.2*max(EP,EF) + 0.6*EF + 0.2*(EL*0.85 + EC*0.15)I EP = Examen Parcial (8/11/18)I EF = Examen Final (10/1/19)I EL = Examen de Laboratorio (20/12/18)I EC = Evaluacion Continua de Laboratorio

I Evaluacion continua en cada sesion de laboratorioI Estudio previo e individualI Actividades por parejas durante la sesion presencial

Page 8: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Tema 1. Introduccion

Page 9: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

¿Cual fue el primer dispositivo de computo?

Page 10: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

¿Como se realizan los calculos?

Abaco

Movimiento de fichas

Page 11: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

¿Como se realizan los calculos?

Abaco Computador Digital Moderno

Movimiento de fichas Movimiento de electrones

Page 12: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Abaco vs Computador Digital

Mecanico ElectronicoManual Automatico/Programable

Escaso almacenamiento Gran almacenamiento (TBytes)Lento Muy rapido (TFLOPS)

I Computador digitalI Dispositivo electronico capaz de almacenar y procesar

informacion de forma automaticaI Pero el usuario no puede interaccionar con los electrones de

forma directa...

Page 13: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Niveles de abstraccion

Interfaz de usuarioMenus, iconos, botones, copia/pega...

Lenguaje de alto nivelC/C++, Java, Fortran, Python... (Pro2)

Lenguaje maquinaMIPS, x86, ARM, RISC-V... (EC)

HardwarePuertas logicas, multiplexores, biestables... (IC)

Page 14: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Interfaces entre nivelesI Application Binary Interface (ABI)

I Funciones del sistema operativo (llamadas al sistema)I Instruction Set Architecture (ISA)

I Interfaz entre el hardware y el softwareI Describe los aspectos del procesador visibles al programador en

lenguaje maquina:I Juego de instrucciones, modos de direccionamiento,

excepciones, modelo de memoria...I Ejemplos: MIPS, x86, ARM, RISC-V

Page 15: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Traduccion entre niveles

I Lenguaje de alto nivelI AbstractoI PortableI Rapido de escribir

I Lenguaje ensambladorI Representacion textural

de instrucciones

I Lenguaje maquinaI Representacion hardwareI Dıgitos binarios (bits)I Datos e instrucciones

Page 16: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Compilacion vs Interpretacion

I CompilacionI Traduccion del programa entero una sola vez (estatico)I Programa generado es muy rapidoI Recompilacion para cada ISA y/o ABI (no portable)I Ejemplos: C/C++, Fortran, Pascal...

I InterpretacionI Traduccion dinamica en tiempo de ejecucionI La ejecucion es mas lentaI PortabilidadI Ejemplos: Java, Python...

I Los lenguajes interpretados son mucho mas productivos,portables y seguros... pero son demasiado lentos paraaplicaciones donde el rendimiento es crıtico

Page 17: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 1. Introduccion

Problema

I Tenemos un computador MIPS. ¿Como podemos ejecutar unprograma escrito en Java si solo disponemos del siguientesoftware?I Compilador de C a x86 (escrito en x86)I Traductor binario de x86 a MIPS (escrito en MIPS)I Interprete de Java (escrito en C)

Page 18: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Tema 2. Ensamblador MIPS y tipos de datos basicos

Page 19: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

CISC vs RISC

I Complex Instruction Set Computer (CISC)I Juego de instrucciones grande y complejoI Instrucciones de longitud variableI Cada instruccion se decodifica en multiple microoperacionesI Ejemplos: x86

I Reduced Instruction Set Computer (RISC)I Juego de instrucciones pequeno y sencilloI Instrucciones de longitud fijaI Formatos de instruccion y modos de direccionamiento sencillosI Ejecutadas directamente por hardwareI Ejemplos: MIPS, ARM, RISC-V

Page 20: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

MIPS

I Microprocessor without Interlocked Pipeline StagesI Disenado en 1981-1985 por Henessy y PattersonI Juego de instrucciones sencillo (RISC)I Distintas implementaciones comerciales

I Routers de Cisco y LinksysI Modems ADSLI Controladoras de impresora laserI Playstation (PSX, PS2 y PSP)I Nintendo 64

I Ampliamente utilizado para la docenciaI Muchos de los conceptos son muy similares en otros ISAs RISCI MIPS32: ISA utilizado en la asignatura (teorıa y laboratorio)

Page 21: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

La Memoria

I Vector de bytesI Cada byte se identifica por una direccion

Page 22: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Palabra (Word)

I Dato que tiene el tamano nativo de la arquitecturaI Normalmente, tamano de palabra = tamano de registroI MIPS32: 32 bits (4 bytes)I Ejemplos: 0xAABBCCDD, 0x44332211I ¿Como se almacenan los bytes de una palabra en memoria?

Page 23: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Endianness

I Little-endian: byte de menor peso en la direccion mas baja

I Big-endian: byte de mayor peso en la direccion mas baja

Page 24: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Declaracion de variables

I Variables globalesI Pueden ser accedidas desde cualquier funcionI Se mantienen en memoria durante toda la ejecucion del

programaI Se almacenan en una direccion de memoria fija

I Variables localesI Solo se pueden acceder dentro del bloque donde se declaranI Se crean al inicio de la ejecucion del bloque y dejan de existir

cuando finalizaI Se reserva espacio de almacenamiento de forma dinamica

(memoria o registro)

Page 25: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Declaracion de variables

I Lenguaje C

i n t a = 0 x44332211 ;

i n t main ( v o i d ) {i n t i = 7 ;

}

I Ensamblador MIPS

. dataa : . word 0 x44332211

. t e x tmain :

l i $t0 , 7

Page 26: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Tamano de las variables

Tamano Lenguaje C Ensamblador MIPS1 byte char / unsigned char .byte2 bytes short / unsigned short .half4 bytes int / unsigned int .word8 bytes long long / unsigned long long .dword

Page 27: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Alineacion en memoria

u n s i g n e d c h a r a ;s h o r t b = 1 3 ;c h a r c = −1, d = 1 0 ;i n t e = 0x10AA00FF ;l o n g l o n g f = 0 x7766554433221100 ;

. dataa : . b y t e 0b : . h a l f 13c : . b y t e −1d : . b y t e 10e : . word 0x10AA00FFf : . dword 0 x7766554433221100

Page 28: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejercicio

I Traduce a MIPS la siguiente declaracion de variables en C eindica el contenido de la memoria.

c h a r a = 0xFF ;c h a r b = 0xEE ;c h a r c = 0xDD ;u n s i g n e d l o n g l o n g d = 0 x7766554433221100 ;s h o r t e = 0xABCD ;u n s i g n e d i n t f = 0 x40302010 ;

Page 29: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Declaracion de vectorI Declaracion con inicializacion

s h o r t vec [ 5 ] = {2 , −1, 3 , 5 , 0} ;

. datavec : . h a l f 2 , −1, 3 , 5 , 0

I Declaracion sin inicializacion (alineacion explıcita)c h a r a ;i n t v [ 1 0 0 ] ;

. dataa : . b y t e 0

. a l i g n 2 # A l i n e a r a m u l t i p l o de 4v : . s p a c e 400 # V e c t o r de 100 e n t e r o s

Page 30: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Modos de direccionamiento

I Forma en la que se especifica un operando en una instruccionI MIPS soporta cinco modos de direccionamiento:

I Modo registroI Modo inmediatoI Modo memoriaI Modo pseudodirectoI Modo relativo al PC

Page 31: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Operandos en modo registro

I El operando reside en un registroI La instruccion especifica el identificador del registroI Suma: addu rd, rs, rtI Resta: subu rd, rs, rtI MIPS incluye 32 registros de 32 bits

Page 32: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Registros

Numero Nombre Descripcion

$0 $zero Contiene el valor 0 (solo lectura)$1 $at Registro temporal para pseudoinstrucciones

$2-$3 $v0-$v1 Resultados de subrutinas$4-$7 $a0-$a3 Parametros de una subrutina

$8-$15 $t0-$t7 Temporales$16-$23 $s0-$s7 Seguros (se preservan al llamar a una subrutina)$24-$25 $t8-$t9 Temporales$26-$27 $k0-$k1 Reservados para el SO

$28 $gp Global pointer$29 $sp Stack pointer$30 $fp Frame pointer$31 $ra Return address

Page 33: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Operandos en modo inmediato

I El operando se codifica en la propia instruccionI Valor de 16 bits en Ca2I ¿Como se convierte en un valor de 32 bits?

I Extension de signoI Extension de ceros

addiu rt, rs, imm16 rt = rs + SignExt(imm16)lui rt, imm16 rt31..16 = imm16

rt15..0 = 0x0000ori rt, rs, imm16 rt = rs OR ZeroExt(imm16)

Page 34: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejercicio

I Dada la siguiente sentencia en C:

f = (g + h) - (i - 100);

I Suponiendo que f, g, h, i son variables locales enterasalmacenadas en los registros $t0, $t1, $t2, $t3respectivamente, ¿cual sera su traduccion a lenguajeensamblador MIPS?

Page 35: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Operandos en modo memoria

I Solo las instrucciones de tipo load y store admiten unoperando que resida en memoriaI MIPS es una arquitectura load-store

I Hay que cargar los datos de memoria en registros para poderutilizarlos en instrucciones aritmetico-logicas

I Lectura/escritura de palabras en memoria:

lw rt, off16(rs) rt = MW[rs + SignExt(off16)] Load wordsw rt, off16(rs) MW[rs + SignExt(off16)] = rt Store word

Page 36: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejemplo

I Traducir a MIPS la siguiente asignacion de valores enteros(words) en C, suponiendo que g y h ocupan $t1, $t2 y que ladireccion base de A esta en $t3:

g = h + A [ 8 ] ;

lw $t0 , 32( $t3 ) # $t0 = A [ 8 ]addu $t1 , $t2 , $t0 # g = h + $t0 ;

Page 37: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejercicio

I Traduce a MIPS la siguiente asignacion de valores enteros(words) en C, suponiendo que h ocupa $t2 y que la direccionbase de A esta en $t3:

A [ 1 2 ] = h + A [ 8 ] ;

Page 38: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Acceso a halfword o byte - Enteros con signo

I Load halfword: lh rt, off16(rs)I Copia un halfword (2 bytes) de la memoria a los 16 bits de

menor peso del registro rtI Realiza extension de signo (extiende el bit 15)

I Store halfword: sh rt, off16(rs)I Copia a memoria los 2 bytes de menor peso de rt

I Load byte: lb rt, off16(rs)I Copia 1 byte de memoria a los 8 bits de menor peso del

registro rtI Realiza extension de signo (extiendo el bit 7)

I Store byte: sb rt, off16(rs)I Copia a memoria el byte de menor peso del registro rt

Page 39: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejercicio

I Suponiendo que $t2 contiene la direccion 0x10010000 y queel contenido de la memoria es el que se muestra en la partederecha, indica el resultado de cada instruccion y el contenidofinal de la memoria:

1. lb $t1, 1($t2)

2. lb $t1, 2($t2)

3. lh $t1, 0($t2)

4. lh $t1, 2($t2)

5. sb $t1, 1($t2)

Page 40: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Acceso a halfword o byte - Naturales

I Load halfword unsigned: lhu rt, off16(rs)I Copia un halfword (2 bytes) de la memoria a los 16 bits de

menor peso del registro rtI Realiza extension de ceros

I Load byte unsigned: lbu rt, off16(rs)I Copia 1 byte de memoria a los 8 bits de menor peso del

registro rtI Realiza extension de ceros

Page 41: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejercicio

I Suponiendo que $t2 contiene la direccion 0x10010000 y queel contenido de la memoria es el que se muestra en la partederecha, indica el resultado de cada instruccion:

1. lbu $t1, 2($t2)

2. lhu $t1, 2($t2)

Page 42: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Acceso a doble palabra (dword)

I ¿Como se accede a un dato de 64 bits (long long) en laarquitectura MIPS de 32 bits?

. datax : . dword 0 x7766554433221100

. t e x tmain :

# $t2 c o n t i e n e l a d i r e c c i o n de memoria de xlw $t0 , 0( $t2 )lw $t1 , 4( $t2 )

Page 43: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Restriccion de alineacion

I Las direcciones utilizadas en las instrucciones lw y sw han deser multiplos de 4

I Las direcciones utilizadas en las instrucciones lh, lhu y shhan de ser multiplos de 2

I En caso contrario se produce una excepcion por direccion noalineada y el programa termina

Page 44: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Pseudoinstrucciones o macros

I Simplifican operaciones comunes para las que no existe unainstruccion en MIPS

I Facilitan el desarrollo, la lectura y la depuracion del codigoI En el momento de ser ensamblada se traduce a una o varias

instrucciones MIPS

move $t1 , $t2 # addu $t1 , $t2 , $ z e r o

l i $t1 , 100 # a d d i u $t1 , $zero , 100

l i $t1 , 0 x0030D900 # l u i $at , 0 x0030# o r i $t1 , $at , 0xD900

Page 45: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Pseudoinstrucciones o macros

I Simplifican operaciones comunes para las que no existe unainstruccion en MIPS

I Facilitan el desarrollo, la lectura y la depuracion del codigoI En el momento de ser ensamblada se traduce a una o varias

instrucciones MIPS

. datay : . word 42 # D i r e c c i o n de y = 0 x10010024

. t e x tl a $t0 , y # l u i $at , 0 x1001

# o r i $t0 , $at , 0 x0024

Page 46: Estructura de Computadores¨ncies/Sesión 01... · I Conocer la estructura y el funcionamiento de la memoria cache ... I Interfaz entre el hardware y el software I Describe los aspectos

Estructura de ComputadoresTema 2. Ensamblador MIPS y tipos de datos basicos

Ejercicio

I Traduce a MIPS el siguiente programa en C:

s h o r t v [ 3 ] = {−31, 43 , 7 7} ;i n t sum ;

i n t main ( v o i d ) {sum = v [ 0 ] + v [ 1 ] + v [ 2 ] − 9 1 ;

}