计算机系统结构结构相关实验报告,计算机系统结构实验报告(中南民族大学).docx...

本文档详细介绍了使用DLX架构进行矩阵相乘的程序设计及流水线分析。实验内容包括理解DLX流水线的各个阶段、参数调整对性能的影响以及程序调试。作者通过编写矩阵相乘程序,掌握了DLX的汇编语言和调试技巧,并分析了向量使用对程序运行速度的提升。实验过程中,重点讨论了参数传递、系统自陷和向量运算的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系:

业:

级:

课程名称:

计算机系统结构

号:

名:

指导教师:

- 0 -

班级

班级

年级

学号

专业

计算机科学与技

姓名

题目

名称

矩阵相乘

题目

内容

1. 掌握 DLX 的流水线运行分析,包括流水线单步执行、每个流水段功能、理解流 水线停顿、流水线建立和排空、定向技术。掌握调整 DLX 参数,如内存大小、功能 单元个数、延迟,分析对程序运行的影响。

2. 编写计算矩阵相乘的程序,掌握调试方法。

图一.运行结果

(使用%4d 来控制输出的齐)

- 1 -

实验

图二.寄存器

图三.流水线

- 2 -

实验

图四.内存代码

图五.内存查看

- 3 -

实验

图六.内存查看结果

图七.内存修改

- 4 -

实验

图八.内存修改结果

图九.向量使用结果

图十.未使用向量的结果

- 5 -

开始输入矩阵A 的行数输

开始

输入矩阵A 的行数

输入矩阵A的

列数和B的行 数

输入矩阵B的 列数

读入A矩阵元 素

输出A矩阵元 素

读入B矩阵元 素

输出B矩阵元 素

计算AXB矩 阵,得C矩阵

输出C矩阵

图十一.程序流程

- 6 -

f1=A的行数,f2=A 的列数和B的行 数,f3=B

f1=A的行数,f2=A 的列数和B的行 数,f3=B的列数

A的元素个数

R4=f1*f2,R2=A矩 阵首地址, R6=f1,R8=f2

输入A矩阵的元素

R4--

输出A矩阵同一行 的元素,R6--

R11=0,R4=0,R5=0

计算A矩阵和B矩阵 的结果C矩阵

R6=0

R5++

把R11存入C矩阵,

位置为R4,R4+1,

R6+1

Temp=temp+ A矩阵R10位置的元 素*B矩阵R7位置的

元素,R10+1

R10为当前行的元 素位置,R9为当前 行最后一个元素的

位置

R5控制行,R6控制 列

输入A元素流程

R5>f1?

R1=f6,R10=R5*R1

输出A矩阵流程

输出C矩阵

Y

结束

R6=0? Y

N

输入换行,R8--,

R6=f2

R7=0,R11=0,

R9=(R5+1)*f1

R8=0?

Y

R10>R9?

同上输入B矩阵和 输出B矩阵

同上输入B矩阵和 输出B矩阵

开始

N

N

R4=0?

N

N

R6>f3?

图十二.算法设计图

- 7 -

实验

实验结果分析:

本次实验中,学会使用 DLX 软件,对于其汇编代码有一个整体上的 认识。具体有如下几个小点:

熟悉 DLX 的仿真硬件系统结构,包括寄存器、计算功能单元、指令系 统、流水线。

熟悉 DLX 仿真软件的功能,包括主要的功能界面。

掌握 DLX 应用程序的编程和调试技术。

掌握 DLX 的流水线运行分析,包括流水线单步执行、每个流水段功能、 理解流水线停顿、流水线建立和排空、定向技术。

掌握调整 DLX 参数,如内存大小、功能单元个数、延迟,分析对程序 运行的影响

通过编写矩阵相乘来检验掌握的程度,对与在其中出现的问题进行 分析,和解决。能通过单步执行来调试程序,找出出错点和逻辑错误点, 并加以改正。

在实验中,几个重点难点。首先是从主程序中跳 InputUnsigned 函 数中,对于参数的传递要有一个清楚的认识。其次是,对于系统自陷 trap 要有一个认识,如 trap 0 是结束、trap 3 是输入和 trap 5 是输出,当然 也有传递的参数也是重点分别是 r1 和 r14。

对于向量的使用也有一个初步的认识,当使用向量时,程序的流水线 明显比不适用向量快的多,结果的截图也很清楚的说明了这个问题。

- 8 -

程序

.data

;*** Prompts for input ;输入提示部分

: .space 64

: .space 64

: .space 64

Prompt1: .asciiz "输入 A 矩阵的行:"

Prompt2: .asciiz "输入 A 矩阵的列和 B 矩阵的列: " Prompt3: .asciiz "输入 B 矩阵的列:"

Prompt4: .asciiz "输入 A 矩阵元素 r:"

Prompt5: .asciiz "输入 A 矩阵元素:"

;*** Data for printf-Trap ;输出数据设置部分

PrintfFormat: .asciiz "%d "

.align 2

PrintfPar: .word PrintfFormat

PrintfValue: .space 4

Print

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值