欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

计算机体系结构(实验 3 使用 MIPS 指令实现求两个数组的点积 )

程序员文章站 2022-04-02 11:24:38
文章目录1.实验目的(2)实验平台(3)实验步骤(4)实验原理(5)源代码1.实验目的(1)通过实验熟悉实验 1 和实验 2 的内容(2)增强汇编语言编程能力(3)学会使用模拟器中的定向功能进行优化(4)了解对代码进行优化的方法(2)实验平台本系统必须在32位机下运行,请自行下载虚拟机安装实验平台采用指令级和流水线操作级模拟器 MIPSsim。(3)实验步骤(1)自行编写一个计算两个向量点积的汇编程序,该程序要求可以实现求两个向量点积计算后的结果。向量的点积:假设有两个 n 维向...

1.实验目的

(1)通过实验熟悉实验 1 和实验 2 的内容
(2)增强汇编语言编程能力
(3)学会使用模拟器中的定向功能进行优化
(4)了解对代码进行优化的方法

(2)实验平台

本系统必须在32位机下运行,请自行下载虚拟机安装
实验平台采用指令级和流水线操作级模拟器 MIPSsim。

(3)实验步骤

(1)自行编写一个计算两个向量点积的汇编程序,该程序要求可以实现求两个向量点
积计算后的结果。
向量的点积:假设有两个 n 维向量 a、b,则 a 与 b 的点积为:
两个向量元素使用数组进行数据存储,要求向量的维度不得小于 10
(2)启动 MIPSsim。
(3)载入自己编写的程序,观察流水线输出结果。
(4)使用定向功能再次执行代码,与刚才执行结果进行比较,观察执行效率的不同。
(5)采用静态调度方法重排指令序列,减少相关,优化程序
(6)对优化后的程序使用定向功能执行,与刚才执行结果进行比较,观察执行效率的
不同。
注意:不要使用浮点指令及浮点寄存器!!
使用 TEQ $r0 $r0 结束程序!!
4.实验原理
本次实验通过MIPS语句实现对应的功能,通过代码在指令级和流水线操作级模拟器MIPSsim上执行,根据加载的文档代码中对应操作的通用寄存器,来观察执行的结果是否正确;然后通过观察统计一栏中汇总的执行周期总数,来判断优化和定向前后执行的效率高低,并判断静态调度的情况。

(4)实验原理

本次实验通过MIPS语句实现对应的功能,通过代码在指令级和流水线操作级模拟器MIPSsim上执行,根据加载的文档代码中对应操作的通用寄存器,来观察执行的结果是否正确;然后通过观察统计一栏中汇总的执行周期总数,来判断优化和定向前后执行的效率高低,并判断静态调度的情况。


(5)源代码

.text main: 
ADDIU $r1,$r0,array1
 ADDIU $r2,$r0,array2 
ADDIU $r3,$r0,10 
ADDIU $r7,$r0,0
 loop: LW $r4,0($r1) 
LW $r5,0($r2) 
MUL $r6,$r4,$r5 
ADD $r7,$r7,$r6   #r7存放的是点积结果
 ADDI $r1,$r1,4
 ADDI $r2,$r2,4 
ADDI $r3,$r3,-1
 BGTZ $r3,loop
 TEQ $r0,$r0

  .data 
array1: .word 3,4,5,6,7,8,9 
array2: .word 3,4,5,6,7,8,9

计算机体系结构(实验 3 使用 MIPS 指令实现求两个数组的点积 )
采用静态调度方法重排指令序列,减少相关,优化程序 
源代码

.text main: 
ADDIU $r1,$r0,array1 
ADDIU $r2,$r0,array2 
ADDIU $r3,$r0,10 
ADDIU $r7,$r0,0 
loop: 
LW $r4,0($r1)
 LW $r5,0($r2)
 MUL $r6,$r4,$r5
 ADDI $r1,$r1,4 
ADDI $r2,$r2,4 
ADDI $r3,$r3,-1 
ADD $r7,$r7,$r6      #此处进行了优化
 BGTZ $r3,loop 
TEQ $r0,$r0 
 .data 
array1: .word 3,4,5,6,7,8,9 
array2: .word 3,4,5,6,7,8,9

计算机体系结构(实验 3 使用 MIPS 指令实现求两个数组的点积 )

本文地址:https://blog.csdn.net/qq_43587354/article/details/107332160