计算机体系结构课程实验
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Computer Architecture --- Pipeline 4
实验原理(2/4)
流水线中的相关问题
结构相关
硬件资源不够
数据相关
RAW / WAR / WAW
控制相关
条件分支或跳 转指令
Computer Architecture --- Pipeline 5
实验原理(3/4)
Computer Architecture --- Pipeline 14
Pipeline 窗口
DLX执行指令的流水线是一个5段流水线, 包括取指段(IF)、译码段(ID)、执 行段(EX)、访存段(MEM)和写回段 (WB)。
Computer Architecture --- Pipeline
Computer Architecture --- Pipeline 6
实验原理(4/4)
流水线性能评价
加速比 吞Biblioteka Baidu率
效率
Computer Architecture --- Pipeline
7
实验平台——WinDLX
Computer Architecture --- Pipeline
8
实验平台
15
Code 窗口
Code窗口显示的内容是两个程序(fact.s 和input.s)加载到内存中的情况。从左 到右依次为:地址 (符号或数字)、命令 的十六进制机器代码和汇编命令。
Computer Architecture --- Pipeline
16
Clock Cycle Diagram 窗口
Computer Architecture --- Pipeline 27
检查方式
查看代码 查看运行 解释各种相关发生的情况及优化手段 查看统计信息
Computer Architecture --- Pipeline
28
谢 谢
2019-3-16
2019-3-16
29
WinDLX的使用步骤
安装 配置
浮点段配置 存储器配置
代码载入 程序推进 机器状态的查看
Computer Architecture --- Pipeline 9
模拟
WinDLX模拟器安装
WinDLX包含windlx.exe和windlx.hlp文件。同 时,还需要一些扩展名为.s的汇编代码文件。 本次实验课将使用fact.s和input.s这两个汇编代 码文件。
计算机体系结构课程实验
——
流水线篇
2019-3-16
2019-3-16
1
主要内容
实验目的 实验原理 实验平台
WinDLX
实验内容 实验步骤 实验要求
Computer Architecture --- Pipeline 2
实验目的
通过该模拟实验,进一步掌握和巩固的
流水线基本知识;
WinDLX的安装非常简单,只要将WinDLX1.3文 件夹拷贝到一个不含中文路径的目录下即可, 假设将其拷贝到D盘下,然后双击执行里面的 windlx.exe,就可进入Windlx模拟器。
Computer Architecture --- Pipeline 10
开始和配置WinDLX
为了初始化模拟器, 点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX” 对话框。然后点击窗口中的“确认”按 钮即可。
在流水线各种资源配置下观察程序运行状 态。
Computer Architecture --- Pipeline 24
实验内容(2/2)
观察程序中出现的数据/控制/结构相关,指出导致上述 现象的指令组合
考察增加定向(forwarding)部件对性能的影响 观察转移指令在转移成功和转移不成功时候的流水线 开销
Computer Architecture --- Pipeline
18
Breakpoint窗口
当重复按F7执行代码很枯燥时,我们可 以通过设置断点来加快此过程。该窗口 详细的显示了我们设置的断点的信息。
Computer Architecture --- Pipeline
19
Register窗口
一般地,指令(code)均被导入 $CODE (起始地址为0x100)
指令
访存类、寄存器操作、算术类、逻辑类、控制流转移
WinDLX的Trap机制
Computer Architecture --- Pipeline 22
DLX汇编的例子
DLX的汇编语法(2/2)
例子 adder1: adder2: result: .data .word 7 .word 16 .space 4 .text .global main lw r2, adder1 lw r3, adder2 add r1, r2, r3 sw result, r1
初步掌握在特定体系结构下的汇编代码 的编写和优化; 培养运用所学知识解决实际问题的能力。
Computer Architecture --- Pipeline 3
实验原理(1/4)
流水线执行过程
指令1
指令2
指令3
指令4
IF(取指) ID(译码) EX(执行) MEM(访存) WB(写回) 执行时间
定向技术 在发生数据相关时,等待前面计算结果的指令并不一 定真的马上就用到该计算结果,如果能够将该计算结 果从其产生的地方直接送到其他指令需要它的地方, 就可以避免暂停。 循环展开 是一种牺牲程序的尺寸来加快程序的执行速度的优化 方法。可以由程序员完成,也可由编译器自动优化完 成。循环展开通过将循环体代码复制多次实现。循环 展开能够增大指令调度的空间,减少循环分支指令的 开销。循环展开可以更好地实现数据预取技术。
Computer Architecture --- Pipeline
21
DLX的汇编语法
DLX的汇编语法(1/2)
伪指令
.data [address] .text [address] 而数据(data)则被导入$DATA (起 .global label 始地址为0x1000) .word word1,word2,… .space size .double 常数、运算符…………
它显示流水线的时空图。
Computer Architecture --- Pipeline
17
Clock Cycle Diagram 窗口
在Clock cycle diagram 窗口中,有时候 还可以看到在指令之间出现了红和绿的 箭头。红色箭头表示需要一个暂停,箭 头指向处显示了暂停的原因。R-Stall (R-暂停)表示引起暂停的原因是RAW。 绿色箭头表示定向技术的使用。
Computer 0 Architecture --- Pipeline; finish trap 23
main:
实验内容(1/2)
3×3矩阵乘法
编写矩阵积源程序;
手工优化。 例如:
lw r3, adder1 add r1, r2, r3 add r5, r6, r7 lw r3, adder1 add r5, r6, r7 add r1, r2, r3
Computer Architecture --- Pipeline 13
装载测试程序
点击 fact.s 点击 select 按钮 点击 input.s 点击 select按钮 点击 load按钮 选择文件的顺序很关键,它决定了文件在存储 器中出现的顺序。对话框中会显示信息“File(s) loaded successfully. Reset DLX?”,点击“是” 按钮确认。这样,文件就已被装入到主存储器 中了。
Computer Architecture --- Pipeline
11
开始和配置WinDLX
WinDLX可以在多种配置下工作。可以改 变流水线的结构和时间要求、存储器大 小和其他几个控制模拟的参数。
Computer Architecture --- Pipeline
12
装载测试程序
在开始模拟之前,至少应装入一个程序到主存。 我们选fact.s为例,fact.s 计算一个整型值的阶 乘;它的运行还需要一个辅助文件input.s, input.s中包含一个子程序,它读标准输入(键 盘)并将值存入DLX处理器的通用寄存器R1中。 按如下步骤操作,可将这两个文件装入主存。 为此,选择File / Load Code or Data,窗口中 会列出目录中所有汇编程序。按如下步骤操作, 可将这两个文件装入主存。
Computer Architecture --- Pipeline 26
实验要求
实验报告要求包括:
1.
程序源代码
2.
实验结果、实验分析、优化过程、性能分析
简单谈谈自己对流水线技术的认识
3.
提交形式: 实验源代码 + 实验报告(Word编辑) 文件夹命名格式:学号1_姓名1 (例如:04060006_邓明堂)
手工优化程序(没有分支延迟槽)
分析程序的吞吐率、加速比和效率
Computer Architecture --- Pipeline 25
实验步骤
学习WinDLX软件使用; 学习DLX汇编程序的编写; 编写3×3矩阵乘法汇编源程序; 将程序在WinDLX上运行调试; 观察程序中出现的数据/控制/结构相关; 优化代码(在有定向功能和无定向功能两种情况下), 尽量消除相关引起的暂停; 对优化后的代码重新模拟,并观察优化效果; 分析实验结果,书写实验报告。
DLX的全部寄存器及其内容。
Computer Architecture --- Pipeline
20
Statistics窗口
Statistics 窗口提供各个方面的信息:模 拟中硬件配置情况、暂停及原因、条件 分支、 Load/Store指令、浮点指令和 traps。窗口中给出事件发生的次数和百 分比,如RAW stalls:17(7.91 % of all Cycles)。
实验原理(2/4)
流水线中的相关问题
结构相关
硬件资源不够
数据相关
RAW / WAR / WAW
控制相关
条件分支或跳 转指令
Computer Architecture --- Pipeline 5
实验原理(3/4)
Computer Architecture --- Pipeline 14
Pipeline 窗口
DLX执行指令的流水线是一个5段流水线, 包括取指段(IF)、译码段(ID)、执 行段(EX)、访存段(MEM)和写回段 (WB)。
Computer Architecture --- Pipeline
Computer Architecture --- Pipeline 6
实验原理(4/4)
流水线性能评价
加速比 吞Biblioteka Baidu率
效率
Computer Architecture --- Pipeline
7
实验平台——WinDLX
Computer Architecture --- Pipeline
8
实验平台
15
Code 窗口
Code窗口显示的内容是两个程序(fact.s 和input.s)加载到内存中的情况。从左 到右依次为:地址 (符号或数字)、命令 的十六进制机器代码和汇编命令。
Computer Architecture --- Pipeline
16
Clock Cycle Diagram 窗口
Computer Architecture --- Pipeline 27
检查方式
查看代码 查看运行 解释各种相关发生的情况及优化手段 查看统计信息
Computer Architecture --- Pipeline
28
谢 谢
2019-3-16
2019-3-16
29
WinDLX的使用步骤
安装 配置
浮点段配置 存储器配置
代码载入 程序推进 机器状态的查看
Computer Architecture --- Pipeline 9
模拟
WinDLX模拟器安装
WinDLX包含windlx.exe和windlx.hlp文件。同 时,还需要一些扩展名为.s的汇编代码文件。 本次实验课将使用fact.s和input.s这两个汇编代 码文件。
计算机体系结构课程实验
——
流水线篇
2019-3-16
2019-3-16
1
主要内容
实验目的 实验原理 实验平台
WinDLX
实验内容 实验步骤 实验要求
Computer Architecture --- Pipeline 2
实验目的
通过该模拟实验,进一步掌握和巩固的
流水线基本知识;
WinDLX的安装非常简单,只要将WinDLX1.3文 件夹拷贝到一个不含中文路径的目录下即可, 假设将其拷贝到D盘下,然后双击执行里面的 windlx.exe,就可进入Windlx模拟器。
Computer Architecture --- Pipeline 10
开始和配置WinDLX
为了初始化模拟器, 点击File 菜单中的 Reset all 菜单项,弹出一个“Reset DLX” 对话框。然后点击窗口中的“确认”按 钮即可。
在流水线各种资源配置下观察程序运行状 态。
Computer Architecture --- Pipeline 24
实验内容(2/2)
观察程序中出现的数据/控制/结构相关,指出导致上述 现象的指令组合
考察增加定向(forwarding)部件对性能的影响 观察转移指令在转移成功和转移不成功时候的流水线 开销
Computer Architecture --- Pipeline
18
Breakpoint窗口
当重复按F7执行代码很枯燥时,我们可 以通过设置断点来加快此过程。该窗口 详细的显示了我们设置的断点的信息。
Computer Architecture --- Pipeline
19
Register窗口
一般地,指令(code)均被导入 $CODE (起始地址为0x100)
指令
访存类、寄存器操作、算术类、逻辑类、控制流转移
WinDLX的Trap机制
Computer Architecture --- Pipeline 22
DLX汇编的例子
DLX的汇编语法(2/2)
例子 adder1: adder2: result: .data .word 7 .word 16 .space 4 .text .global main lw r2, adder1 lw r3, adder2 add r1, r2, r3 sw result, r1
初步掌握在特定体系结构下的汇编代码 的编写和优化; 培养运用所学知识解决实际问题的能力。
Computer Architecture --- Pipeline 3
实验原理(1/4)
流水线执行过程
指令1
指令2
指令3
指令4
IF(取指) ID(译码) EX(执行) MEM(访存) WB(写回) 执行时间
定向技术 在发生数据相关时,等待前面计算结果的指令并不一 定真的马上就用到该计算结果,如果能够将该计算结 果从其产生的地方直接送到其他指令需要它的地方, 就可以避免暂停。 循环展开 是一种牺牲程序的尺寸来加快程序的执行速度的优化 方法。可以由程序员完成,也可由编译器自动优化完 成。循环展开通过将循环体代码复制多次实现。循环 展开能够增大指令调度的空间,减少循环分支指令的 开销。循环展开可以更好地实现数据预取技术。
Computer Architecture --- Pipeline
21
DLX的汇编语法
DLX的汇编语法(1/2)
伪指令
.data [address] .text [address] 而数据(data)则被导入$DATA (起 .global label 始地址为0x1000) .word word1,word2,… .space size .double 常数、运算符…………
它显示流水线的时空图。
Computer Architecture --- Pipeline
17
Clock Cycle Diagram 窗口
在Clock cycle diagram 窗口中,有时候 还可以看到在指令之间出现了红和绿的 箭头。红色箭头表示需要一个暂停,箭 头指向处显示了暂停的原因。R-Stall (R-暂停)表示引起暂停的原因是RAW。 绿色箭头表示定向技术的使用。
Computer 0 Architecture --- Pipeline; finish trap 23
main:
实验内容(1/2)
3×3矩阵乘法
编写矩阵积源程序;
手工优化。 例如:
lw r3, adder1 add r1, r2, r3 add r5, r6, r7 lw r3, adder1 add r5, r6, r7 add r1, r2, r3
Computer Architecture --- Pipeline 13
装载测试程序
点击 fact.s 点击 select 按钮 点击 input.s 点击 select按钮 点击 load按钮 选择文件的顺序很关键,它决定了文件在存储 器中出现的顺序。对话框中会显示信息“File(s) loaded successfully. Reset DLX?”,点击“是” 按钮确认。这样,文件就已被装入到主存储器 中了。
Computer Architecture --- Pipeline
11
开始和配置WinDLX
WinDLX可以在多种配置下工作。可以改 变流水线的结构和时间要求、存储器大 小和其他几个控制模拟的参数。
Computer Architecture --- Pipeline
12
装载测试程序
在开始模拟之前,至少应装入一个程序到主存。 我们选fact.s为例,fact.s 计算一个整型值的阶 乘;它的运行还需要一个辅助文件input.s, input.s中包含一个子程序,它读标准输入(键 盘)并将值存入DLX处理器的通用寄存器R1中。 按如下步骤操作,可将这两个文件装入主存。 为此,选择File / Load Code or Data,窗口中 会列出目录中所有汇编程序。按如下步骤操作, 可将这两个文件装入主存。
Computer Architecture --- Pipeline 26
实验要求
实验报告要求包括:
1.
程序源代码
2.
实验结果、实验分析、优化过程、性能分析
简单谈谈自己对流水线技术的认识
3.
提交形式: 实验源代码 + 实验报告(Word编辑) 文件夹命名格式:学号1_姓名1 (例如:04060006_邓明堂)
手工优化程序(没有分支延迟槽)
分析程序的吞吐率、加速比和效率
Computer Architecture --- Pipeline 25
实验步骤
学习WinDLX软件使用; 学习DLX汇编程序的编写; 编写3×3矩阵乘法汇编源程序; 将程序在WinDLX上运行调试; 观察程序中出现的数据/控制/结构相关; 优化代码(在有定向功能和无定向功能两种情况下), 尽量消除相关引起的暂停; 对优化后的代码重新模拟,并观察优化效果; 分析实验结果,书写实验报告。
DLX的全部寄存器及其内容。
Computer Architecture --- Pipeline
20
Statistics窗口
Statistics 窗口提供各个方面的信息:模 拟中硬件配置情况、暂停及原因、条件 分支、 Load/Store指令、浮点指令和 traps。窗口中给出事件发生的次数和百 分比,如RAW stalls:17(7.91 % of all Cycles)。