计算机网络怎么做内积,计算机体系结构(实验 3 使用 MIPS 指令实现求两个数组的点积 )...

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

7a0d0580436480b8636ff06a096331a3.png

采用静态调度方法重排指令序列,减少相关,优化程序

源代码

.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

4d76fc4e217634c9c18193cac68620e3.png

本文地址:https://blog.youkuaiyun.com/qq_43587354/article/details/107332160

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值