文档视界 最新最全的文档下载
当前位置:文档视界 › 北邮计算机系统结构实验报告

北邮计算机系统结构实验报告

高级计算机系统结构

实验报告

实验二指令流水线相关性分析

实验三DLX处理器程序设计

实验四代码优化

实验五循环展开

专业计算机科学与技术

班级2015

姓名

学号2015

实验二指令流水线相关性分析

1. 实验目的:

通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。

2. 实验设备环境:

2.1 WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序;

2.2 CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来;

2.3 模拟器还提供了对流水线操作的统计功能;

2.4 该模拟器对理解流水线和RISC处理器的特点很有帮助;

2.5 所有浮点运算部件的延时都设定为4个周期;

3. 实验原理:

指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。

3.1数据相关

定义:原有先后顺序的两条指令(I1,I2)在对共享变量(位置)进行读、写时,指令流水线中实际完成的读、写顺序与原有顺序不一致,导致流水线输出错误。

三类数据相关:写读(WR)相关

读写(RW)相关

写写(WW)相关

解决方法技术:

1.使某些流水线指令延迟、停顿一或多个周期。

2.双端口存储器:如果指令和数据放在同一个存储器。

3.设置两个存储器:一个数据存储,一个为指令存储器。

4.软件优化编译:通过指令重新排序,消除数据相关。

5.定向技术:又称旁路技术或专用通路技术,是使后续指令提前得

到前指令的运算结果(适合ALU类指令)

3.2结构相关

定义:如果某指令在流水线重叠执行过程中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关

解决方法技术:

1.延迟技术:使某些指令延迟、停顿一或多个时钟周期

2.双端口存储器:允许同时读两个数据或指令

3.设置双存储器(哈弗结构):一个数据存储,一个指令存储。

4软件优化编译:通过指令重新排序消除结构相关。

3.3控制相关

定义:控制相关是指因程序执行转移类指令而引起的冲突相关。包括无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序方向,造成流水线断流。

解决方法技术:

1、静态分支技术

➢静态转移预测技术(猜测法)

➢延迟转移

➢提前形成条件码,生成转移目标地址

➢改进循环程序

2、动态分支预测技术

➢转移历史表BHT。

➢转移目标缓冲栈(BTB)

➢转移目标指令缓冲栈BTIB

4. 实验步骤:

4.1 观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。

按要求,初始化WinDLX ,将所有浮点运算部件的延时都设定为4周期;载入fact.s和input.s先总体上观察数据/结构/控制相关。

装入后点击F5运行,在结果分析中发现无结构相关,有数据相关和控制相

关。

4.1.1数据相关分析

可知第0*0000012c条指令subd f0,f0,f4对f0进行了读写操作,写回发生在

MEM阶段,led f0,f4指令在ID时刻要读取f0,f4的信息,可知关于f0两条指令发生了写读相关(WR)。

如上图所示,此时由于指令subd f0,f0,f4,在MEM时才写回f0,为保证程序的正确运行,led f0,f4的ID取数阶段顺延至MEM完成后才进行,这样导致了流水线的断流,影响了程序的运行效率。

4.1.2控制相关分析

可知第0*00000130条指令jfact.Loop为循环指令,指令在EX时刻才能判别指令是否发生转移,此时发生了控制相关。如下所示,此时指令跳转成功,故顺序取出的指令必须中断,并且转向取出转移到的指令。

jfact.Loop在EX时发现跳转成功,则在EX阶段马上结束指令顺序取出的指令sd PrintfValue(r0),f0,转而执行led f0/4指令的取指阶段ID。由于此控制相关使得流水线断流一个时钟周期。

4.2考察增加浮点运算部件对性能的影响。

4.2.1不附加部件

在载入fact.s和input.s后,对程序进行初始化设置,使得浮点数运算时延均设为4。按F5运行程序,要求输入时,输入12,以后的运算也均输入12。

Statistics 窗口中的各种统计数字:总的周期数(200) 其中控制相关暂停17(8.5%)数据相关暂停12.0(6.0%)。

4.2.2附加forward部件

在Configuration 菜单中的设置,它们是:Symbolic addresses, Absolute Cycle Count 和。点击Enable Forwarding相应菜单项后,在它的旁边将显示一个小钩。

在定向技术存在的情况下Statistics 窗口中的各种统计数字:总的周期数158其中控制相关暂停17(10.76%)数据相关暂停12.0(7.59%)。

在定向技术不存在时候,控制相关暂停和数据相关暂停仍然是同样的值,总的模拟周期数增加到200。所以定向技术带来的加速比:

200 / 158 = 1.266

DLXforwarded比DLXnot forwarded 快26.6%。

4.2.3增加浮点运算部件

点击Floating Point Stages,进入后按下图的方式进行选择:

运算结果如下:

Statistics 窗口中的各种统计数字:总的周期数(200) 其中控制相关暂停17(8.5%)数据相关暂停12.0(6.0%)与不增加部件的数据一样。

4.3转移指令的影响

可知条件分支指令总共有15条,其中有两条转移成功(13.33%),有13条转移不成功。

转移不成功的指令就顺序执行,故不会影响程序的运行,不会导致流水线断流;而转移成功的指令会导致流水线的断流,经分析可知,两次断流都会导致一个周期的流水线断流。

5. 实验结论:

在流水线中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关,而解决流水线相关的途径之一是设置双存储器(哈弗

结构):一个数据存储,一个指令存储。实际上,本身实现DLX指令的硬件设备已经考虑到了这一点,本身已有两个存储器,一个为数据存储器,一个为指令存储器。故本身就解决了部分结构相关问题。并且fact.s中的指令并不会导致其他资源冲突,故无法体现资源相关。

试验中多加入浮点数部件,运行效率等没有变化。通过观察指令的运行情况,因为不会发生结构相关(硬件资源冲突),在流水线中的部件线性使用,故加入部件也不会对结果有直接的影响。

6. 实验心得:

通过本次实验,我熟悉了指令执行的每个阶段的任务,对时空图的理解也更深了一步,对流水线中的三种相关性问题有了认识,同时通过此实验学习到了解决这些相关问题的方法,从而对课上所学的知识有了更系统的认识。

实验三DLX处理器程序设计1. 实验目的

学习使用DLX汇编语言编程,进一步分析相关现象。

2. 代码清单及注释说明

;file add_vector.s

;完成两双精度浮点一维向量的加法(或乘除法)运算

.data

;修改此处代码可设置向量的长度以及对应向量数据

;向量长度>=16

VectorLength: .word 16

Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Prompt: .asciiz "ResultVector ="

PrintFormat: .asciiz " %f"

.align 2

PrintPrompt: .word Prompt

PrintPar: .word PrintFormat

;为结果向量分配一个数据大小的内存空间

Result: .space 4

.text

main: ;r0初始为0,加上符号地址Prompt得到打印内容的首地址,存入r14 I1: addi r14,r0,PrintPrompt

trap 5

;将向量长度存入r16

I2: lw r16,VectorLength

;向量第一个数据偏移地址为0

I3: addi r2,r0,0

Loop: ;循环将两向量对应位置的数据相加

I4: ld f10,Vector1(r2)

I5: ld f12,Vector2(r2)

I6: cvti2d f0,f10

I7: cvti2d f2,f12

I8: addd f4,f2,f0

I9: sd Result,f4 ;将一次相加的结果f4存入Result内存空间中

I10: addi r14,r0,PrintPar ;打印目前为止的结果向量

trap 5

;为下一次循环做准备

I11: addi r2,r2,4

I12: subi r16,r16,1

I13: bnez r16,Loop

;

trap 0

;系统中断,输出结果

3. 程序相关性分析结果

初始化WinDLX ,将所有浮点运算部件的延时都设定为4周期;载入add_vector.s

按F5运行,总体观察相关性。

无结构相关,有控制相关和数据相关。

3.1观察程序中出现的数据/控制/结构相关。指出程序中出现上述现象的指令组合。

●I3和I4,I5 --- 数据WR相关(r2),I4和I5需要I3存入r2的运算结果

值。

●I4和I6,I5和I7 --- 数据WR相关,I6/I7需要I4/I5的结果值。

●I6, I7和I8 --- 数据WR相关(f0,f2),I8需要I6和I7的结果值。

●I8和I9 --- 数据WR相关(f4),I9需要I8的结果值。

●I9和I10 --- 结构相关。译码部件只有一个,I9使用未结束,I10需等

待。

●I12和I13 --- 数据WR相关,I13需要I12的结果值进行判断是否继续

循环。

3.2 考察增加浮点运算部件对性能的影响。

●浮点运算部件分别只有一个的情况

浮点运算部件各自增加一个的情况

由上面可以看出,增加浮点运算部件并没有提高流水线的性能。

原因是本程序中并没有并行执行的浮点运算。

3.3 考察forward部件对性能的影响。

停用forward部件

由上面可以看出,使用forwarding技术很大程度上提高了流水线的性能。

加速比= 413/315 = 1.311

3.4 观察转移指令在转移成功和转移不成功时候的流水线开销。

转移成功:

转移失败:

由上面可以看出,当转移成功时,已经进入取指阶段的指令被放弃,转入转移的目标指令的取指操作,这就造成了流水线的断流;若转移失败,已经进入取指阶段的指令继续进入译码阶段,流水线不断流。

实验四代码优化

1. 实验目的

学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。

2. 实验原理

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

3. 优化程序代码清单及注释说明

;Program begin at symbol

;requires module INPUT

;read two vectors from stdin and calculate the sum

;(type: double,vectorLength 16)

;the result is written to stdout

;---------------------------------------------------------------------

.data

VectorLength: .word 16

Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

Printf1: .asciiz "Vector ="

Printf2: .asciiz " %f"

.align 2

PrintPrompt: .word Printf1

PrintPar: . word Printf2

Result: .space 4

.text

main: ;**** Print prompt "Vector ="

addi r14,r0,PrintPrompt

trap 5

addi r2,r0,0

lw r20,VectorLength

Loop:

ld f10,Vector1(r2)

ld f12,Vector2(r2)

addi r2,r2,4

cvti2d f0,f10

cvti2d f2,f12

subi r20,r20,1

addd f4,f2,f0 ;add D2=D0+D1

;**** Finish,write result into stdout

sd Result,f4

addi r14,r0,PrintPar

trap 5

;addi r2,r2,4

;subi r20,r20,1

bnez r20,Loop

;**** End

trap 0

4.实验分析:

优化前:

优化后:

结论:

可以从图中看出代码优化后总的时钟周期从315减少到299,减少了16个时钟周期。数据相关从20.32%减少到了16.05%,减少了4.27%。控制相关从4.76%上升到5.02%。总体上,优化后的代码的效率相对于优化前的代码的效率有了比较大的提升。

4.1. 观察程序中的数据/控制/结构相关及指令组合

4.1.1. 数据相关及指令组合

1)截图及分析

第5个时钟周期,指令addd f4,f2,f0 和指令sd result(r0),f4存在数据相关,指令sd result(r0),f4的intEX阶段延迟至指令addd f4,f2,f0的intEX阶段完成后执行。

2)相关指令组合

addd f4,f2,f0

sd result(r0),f4

4.1.2. 控制相关及指令组合:

1)截图及分析

bnez r20,Loop是循环判断指令,在其译码之后才发现不需要执行trap 0x0,因此trap 0x0在第14个时钟周期被取消。

3)相关指令组合

bnez r20,Loop

trap 0x0

4.1.3. 结构相关及指令组合

1)截图及分析

在上图中,蓝圈中stall是因为结构相关。因为上一条指令sd Result(r0),f4与addi r14,r0,0x1098发生了数据相关,指令sd Result(r0),f4为了避免冲突,把

ID段加长了3个时钟周期。导致了和addi r0,r2,0x4产生了结构相关,因为addi r0,r2,0x4无法正常进入ID段,二必须等到指令sd Result(r0),f4离开ID段。2)相关指令组合

sd Result(r0),f4

addi r14,r0,0x1098

4.2. 考察增加浮点运算部件对性能的影响

1)结果截图

浮点运算部件的数量都为1时:

浮点运算部件都为2时:

计算机系统结构实验报告

计算机系统结构实验报告 一.流水线中的相关 实验目的: 1. 熟练掌握WinDLX模拟器的操作和使用,熟悉DLX指令集结构及其特点; 2. 加深对计算机流水线基本概念的理解; 3. 进一步了解DLX基本流水线各段的功能以及基本操作; 4. 加深对数据相关、结构相关的理解,了解这两类相关对CPU性能的影响; 5. 了解解决数据相关的方法,掌握如何使用定向技术来减少数据相关带来的暂停。 实验平台: WinDLX模拟器 实验内容和步骤: 1.用WinDLX模拟器执行下列三个程序: 求阶乘程序fact.s 求最大公倍数程序gcm.s 求素数程序prim.s 分别以步进、连续、设置断点的方式运行程序,观察程序在流水线中的执行情况,观察CPU中寄存器和存储器的内容。熟练掌握WinDLX的操作和使用。 2. 用WinDLX运行程序structure_d.s,通过模拟找出存在资源相关的指令对以及导致资源相关的部件;记录由资源相关引起的暂停时钟周期数,计算暂停时钟周期数占总执行周期数的百分比;论述资源相关对CPU性能的影响,讨论解决资源相关的方法。 3. 在不采用定向技术的情况下(去掉Configuration菜单中Enable Forwarding选项前的勾选符),用WinDLX运行程序data_d.s。记录数据相关引起的暂停时钟周期数以及程序执行的总时钟周期数,计算暂停时钟周期数占总执行周期数的百分比。 在采用定向技术的情况下(勾选Enable Forwarding),用WinDLX再次运行程序data_d.s。重复上述3中的工作,并计算采用定向技术后性能提高的倍数。 1. 求阶乘程序 用WinDLX模拟器执行求阶乘程序fact.s。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶乘,然后将结果输出。 该程序中调用了input.s中的输入子程序,这个子程序用于读入正整数。 实验结果: 在载入fact.s和input.s之后,不设置任何断点运行。 a.不采用重新定向技术,我们得到的结果

北邮大三下 计算机系统结构实验报告 实验一到五 WINDLX模拟器

北京邮电大学 实验报告 课程名称计算机系统结构 计算机学院 2011211311班 薛玥(2011211432)

目录 实验一 WINDLX模拟器安装及使用 (3) .实验准备 (3) .实验环境 (4) .实验步骤 (5) .实验内容及要求 (5) .实验过程 (5) .实验总结 (11) 实验二指令流水线相关性分析 (12) .实验目的 (12) .实验环境 (12) .实验步骤 (12) .实验过程 (12) .实验总结 (19) 实验三DLX处理器程序设计 (20) .实验目的 (20) .实验环境 (20) .实验步骤 (20) .实验过程 (20) A.向量加法代码及性能分析 (20) B.双精度浮点加法求和代码及结果分析 (26) .实验总结 (31) 实验四代码优化 (32) .实验目的 (32) .实验环境 (32) .实验原理 (32) .实验步骤 (32) .实验过程 (32) .实验总结+实习体会 (37) 实验五循环展开 (38) .实验目的 (38) .实验环境 (38) .实验原理 (38) .实验步骤 (38) .实验过程 (38) 矩阵乘程序代码清单及注释说明 (38) 相关性分析结果 (43) 增加浮点运算部件对性能的影响 (43) 增加forward部件对性能的影响 (43) 转移指令在转移成功和转移不成功时候的流水线开销 (43) .实验总结+实习体会+课程建议 (43)

实验一 WINDLX模拟器安装及使用 ·实验准备 1.了解DLX的基本结构和原理 DLX是一种典型的Load/Store型指令集结构。它具有一套简单的Load/Store 指令集;它注重指令流水效率;它简化指令的译码;它高效支持编译器。 2.了解DLX中的寄存器 DLX中有32个通用寄存器(GPRs),分别将其命名为R0,R1...R31。每个通用寄存器长度为32位。另外,DLX中有32个浮点寄存器(FPRs),分别将其命名为F0,F1 (31) 3.了解DLX数据类型 DLX提供了多种长度的整型数据和浮点数据。对整型数据而言,有8位,16位,32位多种长度;对浮点而言,有32位单精度浮点数和64位双精度浮点数。浮点数据表示采用的是IEEE754标准。DLX操作都是对32位整型数据及32或64位浮点数据进行的。 4.了解DLX的寻址方式和数据传送 DLX提供了寄存器寻址,立即寻址,偏移寻址和寄存器间接寻址四种寻址方式。寄存器寻址字段的大小为5位,用来标识32个通用寄存器或浮点寄存器。 5.了解DLX的指令格式 因为DLX只有四种寻址方式,所以将其寻址方式编码在操作码中。为了简化指令译码,并充分发挥流水线的效率,所有DLX指令的字长均是32位,其中用6位表示操作码。DLX中各种类型指令的格式如下图所示:

北邮计算机系统结构实验报告

高级计算机系统结构 实验报告 实验二指令流水线相关性分析 实验三DLX处理器程序设计 实验四代码优化 实验五循环展开 专业计算机科学与技术 班级2015 姓名 学号2015

实验二指令流水线相关性分析 1. 实验目的: 通过使用WINDLX模拟器,对程序中的三种相关现象进行观察,并对使用专用通路,增加运算部件等技术对性能的影响进行考察,加深对流水线和RISC处理器的特点的理解。 2. 实验设备环境: 2.1 WinDLX模拟器可以装入DLX汇编语言程序,然后单步、设置断点或者连续执行该程序; 2.2 CPU的寄存器、流水线、I/O和存储器都可以使用图形的方式表示出来; 2.3 模拟器还提供了对流水线操作的统计功能; 2.4 该模拟器对理解流水线和RISC处理器的特点很有帮助; 2.5 所有浮点运算部件的延时都设定为4个周期; 3. 实验原理: 指令流水线中主要有结构相关、数据相关、控制相关。相关影响流水线性能。 3.1数据相关 定义:原有先后顺序的两条指令(I1,I2)在对共享变量(位置)进行读、写时,指令流水线中实际完成的读、写顺序与原有顺序不一致,导致流水线输出错误。 三类数据相关:写读(WR)相关 读写(RW)相关 写写(WW)相关 解决方法技术: 1.使某些流水线指令延迟、停顿一或多个周期。

2.双端口存储器:如果指令和数据放在同一个存储器。 3.设置两个存储器:一个数据存储,一个为指令存储器。 4.软件优化编译:通过指令重新排序,消除数据相关。 5.定向技术:又称旁路技术或专用通路技术,是使后续指令提前得 到前指令的运算结果(适合ALU类指令) 3.2结构相关 定义:如果某指令在流水线重叠执行过程中,硬件资源满足不了指令重叠执行的要求,会产生资源冲突或竞争,称为流水线结构相关 解决方法技术: 1.延迟技术:使某些指令延迟、停顿一或多个时钟周期 2.双端口存储器:允许同时读两个数据或指令 3.设置双存储器(哈弗结构):一个数据存储,一个指令存储。 4软件优化编译:通过指令重新排序消除结构相关。 3.3控制相关 定义:控制相关是指因程序执行转移类指令而引起的冲突相关。包括无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序方向,造成流水线断流。 解决方法技术: 1、静态分支技术 ➢静态转移预测技术(猜测法) ➢延迟转移 ➢提前形成条件码,生成转移目标地址 ➢改进循环程序 2、动态分支预测技术 ➢转移历史表BHT。 ➢转移目标缓冲栈(BTB)

计算机系统结构课程实验报告实验一:存贮层次模拟器 (1)

计算机系统结构实验报告册 实验一:存贮层次模拟器 【实验目的】 使学生清楚认识虚拟存贮层次结构,熟练掌握常用的几种存储地址映象与变换方法,以及FIFO、LRU等替换算法的工作全过程。 要求用程序实现任意地址流在存储层次上的命中情况,实验结束后提交源程序和实验说明书。 【实验内容】 在模拟器上实现在任意地址流下求出在cache —主存—辅存三层存贮层次上的命中率。 【实验仪器设备】

计算机(装有常用编程环境,如C、VC++等) 【实验步骤】 1.Cache—主存:映像方式可以选择全相联、直接映象、组相联方式;替换算法一般使用LRU 算法。 2.要求Cache大小、主存容量、块大小以及组数等可以输入修改。 3.求出命中率;显示替换的全过程;任选一种高级语言来做。 4.要有简洁、易于操作的界面。 【实验仪器设备】 计算机(装有常用编程环境,如C、VC++等) 【源程序】 # include # include # include struct CacheStruct { int blocknum; int count; }; void All_LinkLRU(CacheStruct cs[],int bottom,int stream[],int k,int result[20][20]) { int j=0,m=0,max=0,location=0,hitnum=0; cout<

计算机系统结构WinDlx实验报告

计算机组成与系统结构 课程设计 题目:流水线指令设计及页面置换算 法在WinDLX软件中的应用 学校: 专业: 学号: 姓名: 指导教师:*** 2011 年 6 月22 号

目录 1、实验一.....................2 1.1实验目的.......................2 1.2实验平台.......................2 1.3 预备知识.......................2 1.4实验内容和步骤....................2 1.5实验程序.......................4 1.6 实验报告要求.....................6 2、实验二.........................9 2.1 实验目的.......................9 2.2 实验平台.......................10 2.3 预备知识.......................10 2.4 实验内容和步骤....................10 2.5 实验程序.......................10 2.5.1 源程序.....................11 2.5.2 程序分析.....................11 2.5.3 结果截图.....................11 2.6 实验报告要求.....................12 3、实验三.........................13 3.1 实验目的.......................13 3.2 实验平台.......................13 3.3 预备知识.......................13 3.4 实验内容和步骤....................13 3.5 实验程序.......................13 3.5.1 源程序......................14 3.5.2 没有采用定向技术分析...............14 3.5.3 采用定向技术分析.................14 3.5.4 结果截图.....................15 3.6 实验报告要求.....................15 4、实验四.........................16 4.1 实验目的.......................16 4.2 实验平台......................16 4.3 预备知识.......................16 4.3.1 调页策略.....................16 4.3.2 页面置换算法...................17 4.4 实验内容和步骤....................18 4.5 实验程序.......................19 4.5.1 源程序......................19 4.5.2 程序流程图....................22 4.5.3 结果截图.....................23 4.6 实验报告要求.....................23 5、实验总结........................236、参考资料.......................23

北邮计算机组成原理课程设计 代码与实验报告

北京邮电大学课程设计报告 注:评语要体现每个学生的工作情况,可以加页。 计算机组成原理课程设计实验报告 采用硬布线控制器的顺序模型处理器设计与调试

一、实验目的 (1)融会贯通计算机组成原理各章节教学内容,通过知识的综合应用,加深对CPU各模块工作原理及相互联系的认识,建立清晰的整机概念。 (2)掌握硬布线控制器的设计方法。 (3)学习运用可编程逻辑技术进行逻辑设计和调试的基本步骤和方法 (4)学习运用VHDL语言,用编写编译下载程序到altera芯片运行。 (5)培养科学研究的独立工作能力,获得工程设计与组装调试的实践经验 二、实验设备 TEC-8实验系统一台 PC计算机一台 逻辑笔一只 USB下载器一根 三、设计与调试任务 (1)设计一个硬连线控制器,和TEC-8模型计算机的数据通路结合在一起,构成一个完整的CPU,该CPU要求:能够完成控制台操作:启动程序运行、读存储器、写存储器、读寄存器、写寄存器;能够执行表中的指令,完成规定的操作。 (2)在Quarts下对硬布线控制器设计方案进行编辑和编译。 (3)将编译后的硬布线控制器下载到TEC-8实验台上的EPM7128中,使其成为一个硬布线控制器。 (4)根据指令系统,编写检测硬布线控制器正确性的测试程序,并用测试程序对硬布线控制器在单拍方式下进行调试,直到成功。 四、实验原理 (1)硬布线控制器基本原理 硬布线控制器是一种把控制部件看作产生专门固定时序控制信号的逻辑电路,这种逻辑电路是一种由门电路和触发器构成的复杂树形逻辑网络。当执行不同机器指令时,通过激活一系列彼此很不相同的控制信号来实现对指令的解释。 每个微操作控制信号C是一系列输入量的逻辑函数,即用组合逻辑来实现 C=f(Im,Mi,Tk,Bj) Im是机器指令操作码译码器的输出信号,Mi是节拍电位信号,Tk是节拍脉冲信号,Bj表示来自执行部件的反馈信息,是状态条件信号。 在TEC-8实验系统中,节拍脉冲信号Tk,(T1~T3)已经直接输送给数据通路。4位指令操作码IR4~IR7直接成为Im的一部分;SWC、SWB、SWA可以看做是Im的另一部分。Mi是时序发生器产生的节拍信号W1~W3;Bi包括ALU产生的进位信号C、结果为0信号Z等。 (2)硬布线控制器逻辑模块图

计算机系统结构实验二

整个实验过程的思路: 1、初始化虚拟存储空间。 定义void DataInput()用来申请物理块BlockNum和页面数DataMax 2、产生一个随机调用页面的序列。 void DataInput()还可以随机成生调用页面序列 3、实现各种页面替换算法。 void FIFO(); // FIFO 先进先出算法函数 void Optimal(); // Optimal优化替换算法函数 void LRU(); // LRU近期最少使用算法函数 4、计算各种页面替换算法的命中率。 void DataOutput()用来显示数据和命中率 主要变量和函数: const int DataMax=100; const int BlockNum = 10; int DataShow[BlockNum][DataMax]; // 用于存储要显示的数组 bool DataShowEnable[BlockNum][DataMax]; // 用于存储数组中的数据是否需要显示int Data[DataMax]; // 保存数据 int Block[BlockNum]; // 物理块 int count[BlockNum]; // 计数器 int N ; // 页面个数 int M;//最小物理块数 int ChangeTimes; void DataInput(); // 输入数据的函数 void DataOutput();//输出数据的函数 void FIFO(); // FIFO 先进先出算法函数 void Optimal(); // Optimal优化替换算法函数 void LRU(); // LRU近期最少使用算法函数 二、实验中的几点注意事项: 1.虚拟存储空间的大小要合适。 2.根据能够存储页面的多少确定随机调用页面的序列。 五、主要代码: void FIFO() { int i,j; bool find; int point; int temp; // 临时变量 ChangeTimes = 0; for(j=0;j

计算机体系结构实验报告3篇

计算机体系结构实验报告 第一篇:计算机体系结构概述 计算机体系结构是计算机学科中的一个重要分支,它研 究的是计算机的硬件组成和工作原理,包括计算机的处理器、存储器、输入输出设备、总线等。计算机体系结构的研究可以帮助我们理解计算机的工作原理,优化计算机的性能,提升计算机的能力。 计算机体系结构可以分为两个方面:指令集体系结构和 微体系结构。其中,指令集体系结构是指计算机的操作系统能够直接识别和执行的指令集合,它们是应用程序的编程接口;而微体系结构是指通过硬件实现指令集合中的指令,在底层支持指令集合的操作。指令集体系结构和微体系结构是密切相关的,因为指令集体系结构会影响微体系结构的设计和实现。 目前,计算机体系结构主要有三种类型:单处理器体系 结构、多处理器体系结构和分布式计算体系结构。其中,单处理器体系结构是指所有的指令和数据都存放在同一台计算机中,这种体系结构的优点是操作简单、易于管理,但是主频存在瓶颈,无法很好地发掘多核的性能优势;多处理器体系结构是指多个计算机共享同一块物理内存,因此可以方便地实现负载均衡和任务协作,但是存在通信延迟和数据一致性问题;分布式计算体系结构则是指通过互联网将多个计算机连接成一个网络,可以在全球范围内共享计算资源,但是通信成本和数据安全问题需要考虑。 总之,计算机体系结构是计算机学科中的重要分支,它

研究计算机的硬件组成和工作原理,帮助我们理解计算机的工作原理,优化计算机性能,提升计算机能力。 第二篇:计算机指令集体系结构 计算机指令集体系结构,简称ISA(Instruction Set Architecture),是指计算机能够识别和执行的指令集合。 ISA是计算机指令的编程接口,定义了一组指令和地址模式, 以及寄存器和内存的组织方式,它是计算机软件和硬件协同工作的关键接口之一。 ISA可以分为两类:精简指令集体系结构(RISC,Reduced Instruction Set Computer)和复杂指令集体系结构(CISC,Complex Instruction Set Computer)。RISC体系 结构的指令集比较简单,有限的指令集合可以通过硬件实现得更快,这种体系结构的优点是简单、可扩展、节省资源;CISC 体系结构则更加强调指令的多功能性,指令集更加丰富,可以直接处理较为高级的数据结构,但是也因此所需硬件资源更多。 ISA的另一个重要方面是地址模式,它决定了指令操作数与寄存器和内存之间的映射关系。地址模式可以分为寄存器模式、立即数模式、直接寻址模式、间接寻址模式和相对寻址模式等多种模式,不同模式可以让程序员更加方便的编写程序,也可以让计算机更加高效地执行这些指令。 目前,主流的ISA有x86、ARM、MIPS等,它们在不同应 用领域各有所长。x86体系结构是最古老、最常用的体系结构 之一,广泛应用于个人计算机和服务器等领域;ARM体系结构 则主要应用于移动设备和嵌入式系统,因为它的功耗更低、体积更小、性能更高;而MIPS体系结构则在高性能计算和网络 设备等领域占有重要地位。 总之,计算机指令集体系结构是计算机软件和硬件协同

计算机组成原理实验报告

《计算机组成与系统结构》 实验指导书 计算机与信息工程系 2013年7月 目录 实验概述 .......................................................... 实验项目一专用寄存器(1)........................................... 实验项目二通用寄存器.............................................. 实验项目三专用寄存器(2)........................................... 实验项目四数据输出/移位门......................................... 实验项目五微程序计数器............................................ 实验项目六运算器.................................................. 实验项目七程序计数器.............................................. 实验项目八存储器读写.............................................. 实验项目九微程序存储器读写........................................ 实验项目十中断.................................................... 实验项目十一模型计算机设计........................................ 实验概述 一、实验目的 1.加深对讲授内容的理解,通过实验来掌握计算机系统原理。熟练地掌握计算机中每个部件的电路设计 方法并完成调试和分析结果。 2.熟悉所用的仿真软件。学会使用仿真软件上机调试电路。 3.通过使用实验箱实验来观察系统运行结果。 二、实验准备工作 1.熟悉所用的实验箱和计算机的性能和使用方法。 2.复习和掌握与本次实验有关的教学内容。 3.每个实验之前设计好实验所需电路。 三、实验报告 实验报告应包括以下内容:实验目的、实验内容、运行结果、对运行结果的分析以及本次实验所取得的经验。 四、实验任务与时间安排

北邮数电上实验报告

北京邮电大学 数字电路与逻辑设计实验 学院: 班级: 姓名: 学号: 班内序号:

实验一Quartus II原理图输入法设计 一、实验目的: (1)熟悉Quartus II原理图输入法进行电路设计和仿真。 (2)掌握Quartus II 图形模块单元的生成与调 (3)熟悉实验板的使用 二、实验所用器材: (1)计算机 (2)直流稳压电源 (3)数字系统与逻辑设计实验开发板 三、实验任务要求 (1)用逻辑门设计实现一个半加器,仿真验证其功能,并生成新的半加器图形模块单元。 (2)用(1)中生成的半加器模块和逻辑门设计实现一个全加器,仿真验证其功能,并下载到实验板测试,要求用拨码开关设定输入信号,发光二极管显示输出信号。 (3)用VHDL语言实现全加器。 四、实验原理图和实验波形图 1、全加器实验原理图。

2、全加器实验波形图。 五、仿真波形分析 由仿真波形可以看出,当a,b,ci有两个或者两个以上为1时,产生进位,即co输出为1,而输出s则是当a,b,ci输入偶数个1时为0,奇数个1时为1,满足实验原理,仿真波形正确。

实验三VHDL组合逻辑电路设计 一、实验目的: (1)熟悉Quartus II原理图输入法进行电路设计和仿真。 (2)掌握Quartus II 图形模块单元的生成与调 (3)熟悉实验板的使用 二、实验所用器材: (1)计算机 (2)直流稳压电源 (3)数字系统与逻辑设计实验开发板 三、实验任务要求 (1)用VHDL语言设计将8421计数器,分频器和数码管译码器连接使用,实现在指定数码管滚动显示0-9,其余数码管不亮,并带有清零功能,并下载到实验板显示计数结果。 四、实验VHDL代码和仿真波形图 (1)VHDL代码 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity xianshi is port( clk,clr:in std_logic;

计算机操作系统实验课实验报告

实验报告 实验课程: 计算机操作系统学生姓名:XXX 学号:XXXX 专业班级:软件 2014年12月25日

目录 实验一熟悉Windows XP中的进程和线程 (3) 实验二进程调度 (7) 实验三死锁避免—银行家算法的实现 (16) 实验四存储管理 (22)

实验一熟悉Windows XP中的进程和线程 一、实验名称 熟悉Windows XP中的进程和线程 二、实验目的 1、熟悉Windows中任务管理器的使用。 2、通过任务管理器识别操作系统中的进程和线程的相关信息。 3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。 三、实验结果分析 1、启动操作系统自带的任务管理器: 方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。 2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并

完成下表: 表一:统计进程的各项主要信息 3、启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。 再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是任务管理器无法结束进程, 原因是该系统是系统进程。 4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开 的所有窗口最小化,看看你的计算机系统起来什么样的变化桌面上图标菜单都消失了、得到的结论 explorer.exe是管理桌面图标的文件(说出explorer.exe进程的作用)。 5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看 进程“explorer.exe”的各项信息,并填写下表:

《计算机系统实验》实验报告

北京服装学院商学院 实验报告 实验名称:计算机系统实验 学生姓名: 班级学号: 指导教师:刘辉 实验日期: 20-09-13至20-09-21 一、实验名称 计算机操作系统安装、系统优化及系统安全实验

二、实验目的 1.熟悉计算机的体系结构 2.学习计算机操作系统的安装和系统的优化 3. 学习安全处理、系统备份以及简单组网技术 三、实验内容 1.计算机的体系结构认识 2. 操作系统安装和系统优化 3. 系统安全处理和系统备份 4. 简单组网技术及实践 四、实验环境 硬件:北校区计算机系统实验室计算机 软件:Windows XP 、Ghost等软件 五、实验过程和结果

实验一、计算机的体系结构认识 一. 计算机的基本组成部件及作用 答:《1》.显示器————————输出设备:显示电脑的工作过程《2》鼠标,键盘————————输入设备:向电脑输入有用的命令,让它去为我们工作 《3》主机(机箱)————主要部分 ①CPU——————中央处理器,是电脑运算和控制的核心,电 脑处理数据的能力和速度主要取决于CPU ②主板——————决定你这台电脑性能的重要零件之一 ③南桥北桥——————连接各个部件,使他们能工作 ④内存——————存放当前待处理的信息和常用信息的半导 体芯片 ⑤电源——————提供电 ⑥显卡——————将主机的输出信息转换成字符、图形和颜色 等信息,传送到显示器上显示。 ⑦声卡——————可以把来自话筒、收录音机、激光唱机等设 备的语音、音乐等声音变成数字信号交给电脑处理,并以文件 形式存盘,还可以把数字信号还原成为真实的声音输出 ⑧网卡——————又叫网络适配器是用来连接到网络的,它只 是一个信号收发的设备 ⑨硬盘———————外存储器之一,用来储存各种音视频资料 ⑩软盘——————移动的外储存器(现在基本已经淘汰) ⑪光驱——————读写光碟内容的机器 ⑫散热器(风扇)——————给机箱内部件散热(主要是CPU)二. 计算机的组成结构图

北邮大三计算机体系结构实验三DLX处理器程序设计

实验三 DLX处理器程序设计 1.实验目的 学习简单编译优化方法,观察采用编译优化方法所带来的性能的提高。 2.实验原理 采用静态调度方法重排指令序列,减少相关,优化程序。 3、实验内容和要求 自编一段汇编代码,完成一维向量加法运算,并输出结果。观察程序中出现的数据/控制/结构相关。(注:使用一维数组表示一维向量。) 4.1向量加法代码清单及注释说明 1、向量加法设计源代码 .data VectorLength: .word 16 Vector1: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 Vector2: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ;声明向量长度以及声明向量1、2 Printf1: .asciiz "Vector =" Printf2: .asciiz " %f" .align 2 PrintPrompt: .word Printf1 PrintPar: .word Printf2 Result: .space 4 ;存放打印数据的空间申请 .text main: addi r14,r0,PrintPrompt trap 5 lw r20,VectorLength addi r2,r0,0 Loop: ld f10,Vector1(r2) ld f12,Vector2(r2) ;循环体中读入向量 cvti2d f0,f10 cvti2d f2,f12 addd f4,f2,f0 ;加法运算 Finish:;**** Finish,write result into stdout sd Result,f4

北邮计网实践实验报告

北邮计网实践实验报告 北邮计网实践实验报告范文 计算机网络技术是一门需要动手实践才能真正掌握知识的学科,多参加实践,多动手,可以学到更多知识。下面是爱汇网店铺为大家整理的北邮计网实践实验报告范文,供大家阅读! 北邮计网实践实验报告范文篇1 开学第一周我们就迎来了计算机网络实训,这门课程与上学期所学的计算机网络相对应,给了我们一个更深刻理解和掌握所学知识的机会。 实训的内容包括了网线的压制,虚拟机的使用,服务器的安装,dhcp,dns,iis,ftp,web等基本内容,使我们对网络的组建、运作有个初步的了解。 实训第一阶段的内容包括压制网线。eia/tia-568标准规定了两种rj45接头网线的连接标准(并没有实质上的差别),即eia/tia-568a和eia/tia-568b。568a类线的顺利为:绿白,绿,橙白,蓝,蓝白,橙,棕白,棕。568b类线的顺利为:橙白,橙,绿白,蓝,蓝白,绿,棕白,棕。直通线两端是相同的,(即568a568a,568b568b),交叉线两端烈性不同(568a568b)。交叉线通常用于同类设备之间的互联,如pc綪c、hub綡ub;直通线通常用于pc机与hub之间的互联。目前,很多交换机之间也可以使用直通线进行互联。可以使用专门的网线测试器,测试网线连通性(即通过网线测试器测试网线的每根芯是否连通)。对于直通线,测试时两端的指示灯都应该按照从1至8的顺利依次发亮;对于交叉线,应是13、26、44、55、77、88。如果没有网线测试器,可以将其连入网络,测试其可用性:对于交叉线,可以直接连接两台pc机;对于直通线,可以将两台pc机通过两根网线分别连接到一台hub上进行测试。 虽然以前自己也压过,但是通过实训更熟练了,也终结出了一些技巧和教训,比如在剥线的时候要拧一下,排好线以后要剪平,插下去才能保证每一根都接触得到。

计算机硬件组成实验报告

计算机硬件组成实验报告 一、PC机硬件系统的组成: 计算机的硬件是指组成计算机的各种物理设备,也就是我们所看得见、摸得着的实际物理设备,如CPU、存储器、软盘驱动器、硬盘驱动器、光盘驱动器、主机板、各种卡及整机中的主机、显示器、打印机、绘图仪、调制解调器等等。 硬件系统分为三种典型结构: 单总线结构: 即用一组系统总线将计算机系统的各部分连接起来,各部分之间可以通过总线交换信息。这种结构的优点是易于扩充新的I/O设备,并且各种I/O设备的寄存器和主存器的存储单元可以统一编址,使CPU访问I/O设备更方便灵活;其缺点是同一时刻只能允许挂在总线上的一对设置之间互相传送信息,也即分时使用总线,这就限制了信息传送的吞吐量,这种结构一般用在微型计算机和小型计算机中。 双总线结构: 为了消除信息传送的瓶颈,常设置多组总线,最常见的是在主存和CPU之间设置一组专用的高速存储总线。这种结构的优点是控制线路简单,对I\O总线的传送速率要求低;其缺点是CPU的工作效率较低,因为I/O设备与主存之间的信息交换要经过CPU进行。以存储器为中心的双总线结构中,主存储器可通过存储总线与CPU交换信息,同时还可以通过系统总线与I/O设备交换信息,这种结构的优点是信息传送速率高;其缺点是需要增加硬件的投资。 采用通道的大型系统结构: 为了扩大系统的功能和提高系统的效率,在大、中型计算机系统中采用通道结构,在这种结构中,一台主机可以连接多个通道,一个通道可以连接一台或多台I/O控制器,一台I/O控制器又可以连接一台或者多台I/O设备,所以它具有较大的扩展余地,另外由通道来管理和控制I/O设备,减轻了CPU负担,提高了整个系统的效率。 硬件系统的组成部分介绍: 电源: 电源是电脑中不可缺少的供电设备,它的作用是将220V交流电转换为电脑中使用的5V、12V、3.3V直流电,其性能的好坏,直接影响到其他设备工作的稳定性,进而会影响整机的稳定性。手提电脑在自带锂电池情况下,为手提电脑提供有效电源。 主板:在整合型主板中常把声卡、显卡、网卡部分或全部集成在主板上。 主板是电脑中各个部件工作的一个平台,它把电脑的各个部件紧密连接在一起,各个部件通

计算机系统基础实验报告

计算机系统基础实验报告 随着计算机技术的发展,如今计算机系统已成为一门重要学科,它影响着社会各个领域的发展。计算机系统主要研究软件和硬件的基础支持、操作系统和编程技术、网络技术、安全技术等,并且被广泛应用于各个方面,如机器学习、社交网络、大数据等,是目前经济和社会发展的核心驱动力。 因此,深入地研究计算机系统的基础理论和原理,有助于更好地掌握计算机系统及其应用,加强社会发展的大背景中计算机系统的地位,发挥计算机系统在解决实际问题中的价值。 第二部分:实验目的 本次实验旨在深入探索计算机系统的基础原理,加强对计算机系统的理解,学习和熟悉计算机系统的基本架构,以及相关的安全技术。实验过程中,学习者们将设计、实现、运行相关实验,以便收获信息,反思一般原理,更好地理解安全技术等思想。 第三部分:实验内容 通过本次实验,学习者将学习和实践以下内容: (1)计算机系统架构:包括CPU、内存、输入设备、输出设备、存储器、网络技术、操作系统、软件等基础技术的概念、组件的认识和工作原理; (2)深入研究主流系统架构,如PC机系统、Android系统、 Linux 系统等; (3)深入研究计算机系统的软硬件基本原理,如内存管理、安

全和存储技术; (4)理解和掌握主流操作系统的基本构造、设计方法和操作原理; (5)掌握基本编程技术,以及网络传输和安全技术; (6)掌握网络通信协议、网络通信安全技术和防火墙技术等。 第四部分:实验仪器 本次实验主要使用: (1)计算机硬件:如电脑、网卡、显卡、存储器等; (2)软件:操作系统(如Windows系统、Linux系统等); (3)调试和测试工具:如hex编辑器、调试软件、系统测试软件等; (4)安全工具:如病毒检测、系统审计、安全审核等; (5)网络设备:如防火墙、路由器等。 第五部分:实验过程 本次实验的具体可分为以下几个步骤: (1)计算机系统架构:了解和掌握计算机系统的基本架构,包括CPU、内存、输入设备、输出设备、存储器、网络技术、操作系统、软件等; (2)主流系统架构:深入攻克PC、Android、Linux等主流系统架构,深入了解系统操作和应用原理; (3)系统安全:学习计算机系统安全技术,如存储器管理,安全检查,网络通信协议,防火墙技术等;

北邮操作系统消费者与生产者实验报告

操作系统实验课程报告 课题: 消费者与生产者实验 姓名张涛 学院计算机学院 班级2011211311 学号2011211419 2013年12月14日

1.实验目的: 1)理解线程同步的思想和方法,学会用线程同步解决临界区问题,本次实验解决生产者消费者问题 2了解windows系统或linux系统下中信号量的使用方法。 2.实验预备内容 (1)阅读Linux的sched.h源码文件,加深对进程管理概念的理解。 这个文件长达2616行,这里截取第1221~1548行抄录在实验报告最后,即结构体task_struct,地位相当于PCB。 下面对几个比较重要的参数,结合本人的了解以及网上查阅的资料做一点解释。 中括号内的数字为代码行号,下同。 volatile long state:【1222】进程状态字,表示进程当前的状态(运行、就绪、等待、僵死、暂停、交换),分别对应已定义好的常量; TASK_RUNING:正在运行或可运行状态; TASK_INTERRUPTIBLE:可打断睡眠状态; TASK_UNINTERRUPTIBLE:不可打断睡眠状态; TASK_ZOMBLE:僵死状态; TASK_STOPPED:暂停状态; 交换状态。 void *stack:【1223】进程所使用的栈空间; unsigned int flags:【1225】进程标志(创建、关闭、跟踪、被跟踪、内核dump等),同样对应已定义好的常量; unsigned int rt_priority:【1237】表示本进程的实时优先级; const struct sched_class *sched_class、struct sched_entity se:【1239,1240】分别是调度类和调度实体,这两个结构包含了用于任务调度的完整的信息(进程信息、调度策略等); unsigned int policy:【1260】进程的调度策略标志,有三种调度标志: SCHED_OTHER :普通进程的调度策略,基于优先权的轮转法; SCHED_FIFO:实时进程的调度策略,基于先进先出的算法; SCHED_RR:实时进程的调度策略,基于优先权的轮询法。 struct list_head tasks:【1274】任务队列,为一双向循环链表; int pdeath_signal:【1282】父进程终止时产生的信号; pid_t pid:【1294】进程标识符,操作系统每创建一个新的进程就要为这个新进程分配一个进程控制块(PCB),系统内核通过pid区分这些进程的; struct task_struct *real_parent:【1307】本进程的父进程的PCB; struct list_head children:【1312】本进程的子进程列表; struct list_head ptraced:【1321】本进程正在使用ptrace监视的进程列表; struct thread_struct thread:【1375】本进程下属的线程集; struct signal_struct *signal、struct sighand_struct *sighand:【1383,1384】分别是进程运行时产生的信号以及信号处理模块。 (2)阅读Linux的pthread.h源码文件,分析线程的创建过程。

相关文档
相关文档 最新文档