ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Arquitectura de Computadoras Práctica 3. Simulador MIPS


Enviado por   •  5 de Mayo de 2018  •  Tarea  •  868 Palabras (4 Páginas)  •  229 Visitas

Página 1 de 4

Arquitectura de Computadoras
Práctica 3.  Simulador MIPS

Objetivos

Visualizar, a través del simulador WinMIPS, el funcionamiento de una arquitectura pipeline relativamente simple.

Identificar el impacto que tienen los saltos y saltos condicionales sobre la ejecución del procesador.

Introducción

Con un editor convencional (por ejemplo, notepad), edite el siguiente programa y guárdelo como prueba1.s

; Arquitectura de computadoras

; Programa de demostración.

.data

i:        .word32 0

j:        .word32 0

.text

        daddi R2,R0,0;

        daddi r3, R0, 0;

        daddi r5,R0,10 ;

WHIL:        slt R6, R2, R5

        beqz R6, ENDW

        daddi r3, r3, 5

        sw R3, j(r0)

        daddi r2,r2,1

        sw        r2,i(r0)

        j WHIL

ENDW:        nop

        halt

Este programa corresponde al programa en C:

int main() {

        int i= 0; int j= 0;

        while ( i < 10 ) {

                j = j+5;

                i = i +1;

        }

}

Abra una ventana de comandos y compruebe que el programa es sintácticamente correcto mediante la instrucción:

C:> asm prueba1.s

Ejecute el simulador.  Desde el menú file, cargue el programa prueba1.s y córralo paso a paso (F7)

Primera parte

  1. ¿Qué registros se utilizan para almacenar las variables i, j?
  2. ¿Para qué se utiliza la instrucción slt R6, R2, R5?  ¿Qué ocurre si se intercambian los últimos dos registros de la instrucción?
  3. ¿Qué valores tienen i y j al final de la ejecución del programa?
  4. Modifique el programa anterior para que las variables y el código se almacenen a partir de las direcciones 100 y 200 de sus  respectivos segmentos de datos y código

Segunda parte

Escriba un programa que almacene las primeras 10 potencias de 2 en un arreglo de 10 elementos.  El tamaño de los elementos es de 32 bits.

  1. Utilice un algoritmo para calcular las potencias de 2 mediante multiplicación
  2. Ahora utilice un algoritmo basado en corrimientos a la izquierda
  3. Compare los tiempos de ejecución para cada caso.  ¿Cuál es la principal fuente de la diferencia en los tiempos de ejecución¡

Tercera parte – Loop unrolling

Considere el siguiente programa:

 

LOOP:        lw r10,0(r1); Leer un elemento de un vector

daddi r10,r10,4 ; Sumar 4 al elemento

sw r10,0(r1); Escribir el nuevo valor

daddi r1,r1,-4 ; Actualizar la var. índice

bne r1,r0,LOOP ; Fin de vector?

El cual corresponde al código:

FOR I := N DOWNTO 1 DO

A[I] := A[I]+4;

END

Existen tres dependencias de datos (RAW) que no permiten ninguna reordenación del código (por parte del compilador) para evitar las paradas que aparecerán en el pipeline durante su ejecución.

...

Descargar como (para miembros actualizados) txt (5 Kb) pdf (96 Kb) docx (14 Kb)
Leer 3 páginas más »
Disponible sólo en Clubensayos.com