circuitos digitales ii introducción al procesador mips semana no. 2 semestre 2011-2 prof. eugenio...

39
Circuitos Digitales Circuitos Digitales II II Introducción al procesador MIPS Introducción al procesador MIPS Semana No. 2 Semana No. 2 Semestre 2011-2 Semestre 2011-2 Prof. Eugenio Duque Pérez Prof. Eugenio Duque Pérez [email protected] Prof. Gustavo Patiño A. (prof. en comisión) Prof. Gustavo Patiño A. (prof. en comisión) [email protected] Departamento de Ingeniería Electrónica Departamento de Ingeniería Electrónica Facultad de Ingeniería Facultad de Ingeniería

Upload: sosimo-bega

Post on 06-Feb-2015

6 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Circuitos Digitales IICircuitos Digitales II

Introducción al procesador MIPSIntroducción al procesador MIPSSemana No. 2Semana No. 2

Semestre 2011-2Semestre 2011-2

Prof. Eugenio Duque PérezProf. Eugenio Duque Pé[email protected]

Prof. Gustavo Patiño A. (prof. en comisión)Prof. Gustavo Patiño A. (prof. en comisión)[email protected]

Departamento de Ingeniería ElectrónicaDepartamento de Ingeniería Electrónica

Facultad de IngenieríaFacultad de Ingeniería

Page 2: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Recordando de la última clase…

Page 3: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Qué es un computador ?

La verdad un computador luce más como esto….

Page 4: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Tendencias – Tipos de Computadores

Page 5: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Los cinco componentes de cualquier computador

Con: o registros para almacenar

variables, yo modos de direccionamiento para

accesar la memoria.

Page 6: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Los primeros programadores se comunicaban con los computadores usando números binarios.

El crecimiento en la complejidad de las aplicaciones exigió nuevas notaciones que fueran traducidas a números binarios (ensamblador).

Lenguaje ensamblador : Exige del programador “pensar” como la máquina.

Esto, a su vez, exigió el desarrollo de nuevas notaciones más poderosas y expresivas (HLL) a fin de aprovechar todo el potencial que iba ofreciendo cada nueva máquina.

Abstracción: Evolución de los lenguajes

Page 7: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Arquitectura del Conjunto de Instrucciones (ISA)

Page 8: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Evolución del conjunto de instrucciones La tendencia hasta el comienzo de la década de los 80’s

estaba basada en una filosofía CISC (Complex Instruction Set Computers) para diseño del conjunto de instrucciones. Su conjunto se compone de muchas instrucciones. Posee instrucciones complejas que realizan la tarea de un

conjunto de instrucciones más sencillas. (p.e una instrucción de lazo).

Posee muchos formatos de instrucción y modos de direccionamiento.

Posee diferentes clases de registros.

Page 9: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Evolución del conjunto de instrucciones (…cont) Desde el comienzo de la década de los 80s, la

tendencia en el diseño de las nuevas ISAs ha estado basada en la filosofía RISC (Reduced Instruction Set Computers). Principios de esta filosofía:

La simplicidad favorece la regularidad Todas las instrucciones son del mismo tamaño. Todas las instrucciones del mismo tipo siguen el mismo

formato.

Page 10: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Evolución del conjunto de instrucciones (…cont)

Principios de la filosofía RISC (…cont) : En cuanto más pequeño, más rápido.

Refiriéndose a un menor número de instrucciones. Un número relativamente bajo de tipos de registros.

Un buen diseño demanda (exige) compromiso. Algunos pocos formatos de instrucción para manejar

necesidades especiales. Haga que el caso más común sea rápido.

Las instrucciones que son ejecutadas más frecuentemente o las características más utilizadas necesitan ser optimizadas en la arquitectura del HW.

Especificación de pipeling (operación multi-ciclo), ejecución en un solo ciclo, tecnología de compilación, etc.

Page 11: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Procesador MIPSProcesador RISC de propósito

general.

Page 12: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

El ISA del MIPS

MIPS: Compañía semiconductora que construyó uno de las primeras arquitecturas RISCs del mercado. Fundada por J. Hennessy.

El MIPS prevalece en un mayor número de aplicaciones, en su mayoría embebidas, en donde se usa como el núcleo del procesador de un System on Chip (SoC).

Page 13: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Breve historia del MIPS

Page 14: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Ejecución de una aplicación

Page 15: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

C vs el ISA del MIPS-I

Page 16: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Porque tiene Registros ?

Memory-memory ISA Todas la variables de un HLL son declaradas en

memoria. No es posible operar directamente sobre los operandos

ubicados memoria. Beneficios de los registros

En cuanto más pequeño, más rápido. Múltiple acceso concurrente. Nombres más cortos.

Load-Store ISA Las operaciones aritmética sólo usan operandos

basados en registros. Los datos son cargados en registros, se opera sobre

ellos, y el resultado se lleva de vuelta a la memoria. Característica de todos los conjuntos de instrucciones

RISC.

Page 17: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

CPU 32 32-bit General Purpose Registers – GPRs (r0 –

r31). r0 tiene un valor fijo de cero. Dos registros de 32-bit (Hi & Lo) para retener el

resultado de una división o multiplicación entera. Un registro de 32 bits para el contador del programa

(PC). FPU : Procesador de punto flotante (coprocesador).

32 32-bit floating point registers –FPRs (f0 –f31). Cinco registros de control.

Registros del MIPS

Page 18: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Identificación de los Registros Los registros son identificados por un $<num> Por convención, es común darles nombres:

$zero : contiene el valor cero, físicamente definido. $v0, $v1 : usados para resultados y evaluación de

expresiones. $a0 - $a3 : usados para argumentos. $s0, $s1, ... $s7 : usados para almacenar valores. $t0, $t1, ... $t9 : usados para almacenar valores

temporales. Hay más registros que serán definidos posteriormente

cuando sean necesarios. Los compiladores usan esta convención de nombres

para simplificar la tarea de linking.

Page 19: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

El registro 1 es reservado para uso del programa ensamblador, y los registros 26-27 para uso del sistema operativo.

Política de uso de las convenciones

Page 20: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

MIPS opera sobre : Enteros de 32 bits (sin signo o en complemento a dos). Números reales de 32 bits (punto flotante de precisión

simple). Números reales de 64 bits (punto flotante de doble

precisión). Los bytes o half words cargados en los GPRs son o cero

o expandidos por signo a fin de completar los 32 bits. Solamente unidades de 32 bits pueden ser cargados en

los FPRs. Los números reales de 64 bits requieren dos FPRs

consecutivos para ser almacenados.

Tipos de datos del MIPS

Page 21: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Ejemplo en C

Una función sencilla en C : sum_pow2=2b+c

Page 22: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Operadores aritméticos

Considere la línea 5: una operación suma en C.

a= b + c; Asuma que las variables están en los registros $2,$3,$4

respectivamente. Entonces, usando estos registros, el operador add queda

como:

add $2, $3, $4 # a= b + c Igualmente, el operador sub se usa para representar una

resta en el MIPS.

sub $2, $3, $4 # a = b – c Recordemos que a, b, y c se están refiriendo a ubicaciones

en la memoria.

Page 23: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Operaciones complejas

Qué ocurre con operaciones más complejas ?

a = b + c + d - e;

Es necesario dividirla en instrucciones más simples. Asociando a,b,c,d,e a los registros : $s0,……,$s4 respectivamenteadd $t0, $s1, $s2 # $t0=b + c

add $t1, $t0, $s3 # $t1=$t0 + d

sub $s0, $t1, $s4 # a = $t1 - e

Page 24: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Constantes

A menudo se desea poder especificar de manera explicita un operando en la instrucción (operando inmediato)

dst = src1 + 5

Para esos casos, use la instrucción addi.

addi dst, src1, inmediato

El inmediato es un valor de 16 bits con signo definido entre -215 y 215-1; o de signo-extendido de 32 bits.

Considere el código en C:

a++;

En este caso, se usa el operador addi:

Addi $s0, $s0, 1 # a = a + 1

Page 25: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Números con signo y sin signo Dado un b[n-1;0] en un registro o en

memoria Valor sin signo:

Valor con signo (en complemento a dos)

Page 26: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Desborde aritmético (Overflow)

Page 27: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Resumen: Aritmética simple en el MIPS

Page 28: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Overflow Detection MIPS detects Overflow with an exception, also called interrupt on many

computers.

An exception or interrupt is an unscheduled procedure call.

The address that generated the exception is saved in a EPC(Exception

Program Counter) register, and the computer jumps to a predefined

address for running the corresponding exception routine.

Es necesario dividirla en instrucciones más simples :add $t0, $s1, $s2 # $t0=b + c

add $t1, $t0, $s3 # $t1=$t0 + d

sub $s0, $t1, $s4 # a = $t1 - e

Page 29: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Organización de la memoria

0 8 bits de datos

1 8 bits de datos

2 8 bits de datos

3 8 bits de datos

4 8 bits de datos

5 8 bits de datos

6 8 bits de datos

Vista como una gran arreglo de una sola dimensión, donde cada registro posee una dirección.

Una dirección de memoria es un índice en el arreglo.

“Direccionamiento por byte” significa que un índice apunta a un byte de la memoria.

Page 30: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Para el MIPS, una palabra (word) es de 32 bits, o sea, 4 bytes.

232 bytes con direcciones de byte desde 0 hasta 232-1.230 words con direcciones de byte 0, 4, 8,…. 232-4.Las palabras (words) son alineadas.

Organización de la memoria (…cont)

0 32 bits de datos

4 32 bits de datos

8 32 bits de datos

12 32 bits de datos

16 32 bits de datos

Page 31: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Transferencia de datos de memoria Motivación:

Los operandos para todas las operaciones lógicas y aritméticas deben estar contenidos en registros.

Para operar sobre datos alojados en la memoria principal, es necesario primero copiar los mismos a los registros.

Las instrucciones para transferencias de datos son usadas para mover datos desde y hacia la memoria.

Una operación de carga (load) mueve datos desde una ubicación de memoria hacia un registro,

Una operación de almacenamiento (store) mueve datos desde un registro hacia una ubicación de memoria.

Page 32: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Instrucciones de transferencias de datos : load Las instrucciones de transferencias de datos tienen

tres partes: Nombre del operador (especificando también tamaño

de la transferencia). Registro de destino. Registro de la dirección base y la constante offset.

lw dst, offset (base)

El valor offset es una constante con signo.

Page 33: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Acceso a memoria

Todo el acceso a memoria ocurre a través de cargas y almacenamientos.

Pueden ser del tipo word, half-word y bytes. Las cargas y almacenamientos de punto flotante están

ligadas a los registros FP. Modo de direccionamiento basado en desplazamiento.

Page 34: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Ejemplo de carga de datos

Considere el ejemplo :a= b + *c ; /* Recordar que c es

una variable que almacena la dirección de otra variable * : valor apuntado por .. &: address de.. */

Use la instrucción lw para cargar. Asuma que a($s0), b($s1), c($s2)

Page 35: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Acceso de arreglos

en realidad, los arreglos son punteros a la dirección base en memoria. Ejemplo: La dirección del elemento A[0].

En estos casos se usa el valor de offset para indicar el índice del arreglo.

Recuerde que las direcciones apuntan a los bytes a fin de multiplicar por el tamaño real del elemento. Considere el arreglo de enteros, donde pow2 es la dirección de

base. Así, cada entero requiere 4 bytes. Como ejemplo de un dato que se quiera accesar considere el índice

5, o sea: pow2[5]. Entonces, la dirección de memoria de ese dato es :

pow2 + 5*4

Page 36: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Diagrama del arreglo en memoria

Page 37: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Ejemplo de arreglo

Considere el ejemploa= b+ pow2[7];

Use la instrucción lw con offset. Asuma que $s3 = 1000, dirección base del arreglo

lw $t0, 28($s3) # $t0 = memory[ 1000 + 7*4]

add $s0, $s1, $t0 # a = b + pow2[7]

Page 38: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Ejemplo de un arreglo complejo

Considere la línea 7 del ejemplo de sum_pow2()ret = pow2[a];

Primero, encuentre el offset correcto. De nuevo asuma que $s3 = 1000.

sll $t0, $s0, 2 # $t0 = 4*a : shift left by 2

add $t1, $s3, $t0 # $t1 = pow2 +4*a

lw $v0, 0($t1) # $v0 = Memory [$t1]

Page 39: Circuitos Digitales II Introducción al procesador MIPS Semana No. 2 Semestre 2011-2 Prof. Eugenio Duque Pérez eaduque@udea.edu.co Prof. Gustavo Patiño

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Departamento de Ing. Electrónica Circuitos Digitales II Universidad de Antioquia

2011-2

Bibliography

Computer Organization & Design, 3rd Edition. The hardware/software Interface. David Patterson & J. Hennessy

MIPS general information.

MIPS architecture – Wikipedia. Mhtml document

MIPS manuals MIPS Quick tutorial.mhtml. MIPS Instruction Reference.mhtml MipsReference.pdf Spim_Instruction_Set.pdf