计算机体系结构实验报告——实验一

计算机体系结构实验报告——实验一
计算机体系结构实验报告——实验一

计算机体系结构实验报告——实验一

1.实验目的:

通过本实验,熟悉WinDLX模拟器的操作和使用,了解DLX指令集结构

及其特点。

2.实验内容:

(1)用WinDLX模拟器执行求阶乘程序facts。执行步骤详见“WinDLX

教程”。这个程序说明浮点指令的使用。该程序从标准输入读入一个整数,求其阶

乘,然后将结果输出。该程序中调用了input.s中的输入子程序,这个子程序用于

读入正整数。

(2)输入数据“3”采用单步执行方法,完成程序并通过上述使用WinDLX,总结WinDLX 的特点。

(3)注意观察变量说明语句所建立的数据区,理解WinDLX指令系统。

3.实验程序:

求阶乘程序fact.s

--------------------------------------------------------------------------

;Program begin at symbol main

;requires module INPUT

;read a number from stdin and calculate the factorial(type:double)

;the result is written to stdout

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

.data

Prompt:.asciiz"An integer value>1:"在变量Prompt中存放一个字符串

PrintfFormat:.asciiz"Factorial=%g\n\n"在变量pringformat中存放一个字符串.align2

PrintfPar:.word PrintfFormat printfFormat的地址值

PrintfValue:.space8给PrintValue保留8个字节

.text正文

.global main标号main

main:程序在main开始

;***Read value from stdin into R1说明:从标准输入程序读值到R1

addi r1,r0,Prompt0+Prompt地址值送R1

jal InputUnsigned转输入程序InputUnsigned

;***init values输入的值在R1中

movi2fp f10,r1;R1->D0D0..Count register R1送F10(整形变量变为浮点变量) cvti2d f0,f10F10送F0,F1(单精度变为双精度)

addi r2,r0,1;1->D2D2..result0+1送R2

movi2fp f11,r2R2送F11(整形变量变为浮点变量)

cvti2d f2,f11F11送F2,F3(单精度变为双精度)

movd f4,f2;1->D4D4..Constant1F2,F3送F4,F5

;***Break loop if D0=1说明

Loop:led f0,f4;D0<=1?标号:LOOP IF(F0<=F4)FPS=1ELSE FPS=0

bfpt Finish IF FPS=1转Finish

;***Multiplication and next loop下一个程序段说明

multd f2,f2,f0f2*f0送f2

subd f0,f0,f4F0-F4送f0

j Loop转loop

Finish:;***write result to stdout结束标号写结果到标准输出程序

sd PrintfValue,f2结果值由f2送变量PrintfValue

addi r14,r0,PrintfPar PrintfPar地址值送R14

trap5自陷调用5将结果值输出

;***end

trap0自陷调用0程序结束

该程序中调用了input.s中的输入子程序

;-----------------------------------------------------------------------------;Subprogram call by symbol"InputUnsigned"

;expect the address of a zero-terminated prompt string in R1

;returns the read value in R1

;changes the contents of registers R1,R13,R14

;-----------------------------------------------------------------------------.data

;***Data for Read-Trap

ReadBuffer:.space80输入缓冲区80个字节

ReadPar:.word0,ReadBuffer,80变量ReadPar一个字“0”

;***Data for Printf-Trap

PrintfPar:.space4变量PrintfPar保留4个字节

SaveR2:.space4变量SaveR2保留4个字节

SaveR3:.space4

SaveR4:.space4

SaveR5:.space4

.text

.global InputUnsigned标号InputUnisigned

InputUnsigned:

;***save register contents

sw SaveR2,r2R2送M(SaveR2)

sw SaveR3,r3

sw SaveR4,r4

sw SaveR5,r5

;***Prompt

sw PrintfPar,r1R1送PrintfPar

addi r14,r0,PrintfPar PrintfPar+0送R14

trap5自陷调用5

;***call Trap-3to read line

addi r14,r0,ReadPar ReadPar+0送R14

trap3自陷调用3

;***determine value

addi r2,r0,ReadBuffer ReadBuffer+0送R2

addi r1,r0,00送R1

addi r4,r0,10;Decimal system10送R4

Loop:;***reads digits to end of line标号LOOP

lbu r3,0(r2)M(R2)+0送R3(R2内容为ReadBuffer的地址) seqi r5,r3,10;LF->Exit IF(R3=立即数10)1送R5ELSE0送R5 bnez r5,Finish IF(R5不等于0)转Finish

subi r3,r3,48;??R3-48送R3(48为十六进制30,ASCII码变换) multu r1,r1,r4;Shift decimal R4*R1送R1

add r1,r1,r3R3+R1送R1

addi r2,r2,1;increment pointer R2+1送R2

j Loop转LOOP

Finish:;***restore old register contents标号Finish

lw r2,SaveR2M(SaveR2)送R2

lw r3,SaveR3

lw r4,SaveR4

lw r5,SaveR5

jr r31;Retur R31送PC从子程序返回

4、程序流程图

5、实验步骤及结果

双击Code图标,从左到右依次为代表存储器内容的三栏信息:地址(符号或数字)、命令的十六进制机器代码和汇编命令。

点击主窗口中的Execution开始模拟。按F7键开始执行。这时,窗口中带有地址“$TEXT”的第一行变成黄色。按下F7键,模拟就向前执行一步,第一行的颜色变成橘黄色,下一行变成黄色。这些不同颜色指明命令处于流水线的哪一段。命令“jal InputUnsigned”在IF段,“addi r1,r0,0x1000”在第二段ID。其他方框中带有一个“X”标志,表明没有处理有效信息。

再次按下F7键,代码窗口中的颜色会再改变,红色表明命令处入第三段“intEX”。再按下F7,在代码窗口中,黄色出现在更下面的位置,并且是唯一彩色行。

打开Clock Cycle Diagram窗口。它显示流水线的时空图。

第一条命令正在MEM段,第二条命令在intEX段,第四条命令在IF段。而第三条命令指示为“aborted”。其原因是:第二条命令(jal)是无条件分支指令,但只有在第三个时钟周期,jal指令被译码后才知道,这时,下一条命令movi2fp已经取出,但需执行的下一条命令在另一个地址处,因而,movi2fp的执行应被取消,在流水线中留下气泡。

jal的分支地址命名为“InputUnsigned”。为找到此符号地址的实际值,点击主窗

口中的Memory和Symbols,出现的子窗口中显示相应的符号和对应的实际值。在“Sort”:区域选定“name”,使它们按名称排序,而不是按数值排序。数字后的“G”代表全局符号,“L”代表局部符号。“input”中的“InputUnsigned”是一个全局符号,它的实际值为0x144,用作地址。点击OK按纽关闭窗口。

再一次点击F7,第一条命令(addi)到达流水线的最后一段。对准Clock cycle diagram 窗口中相应命令所在行,然后双击它,弹出一个新窗口。窗口中会详细显示每一个流水段处理器内部的执行动作。这个窗口“Information about...”作为将来的Information窗口。观察完后,点击OK按钮关闭窗口。双击第三行(movi2fp),它只执行了第一段(IF),这是因为出现跳转而被取消。

当通过Code窗口观察代码时,接下来的几条指令几近一样,它们都是sw-操作:将寄存器中的数写入存储器中。重复按F7将很枯燥,因此使用断点加快此过程。

现在,指向Code窗口中包含命令trap0x5的0x0000015c行,此命令是写屏幕的系统调用。单击命令行,然后点击主窗口菜单Code,单击Set Breakpoint(确保命令行仍被标记!),将弹出一个新的“Set Breakpoint”窗口。通过此窗口,你可以选择命令运行到流水线的哪一阶段时,程序停止执行。缺省为ID段。点击OK关闭窗口。

在Code窗口中,trap0x5行上出现了“BID”,它表示当本指令在译码段时,程序中止执行。

现在点击Execution/Run或按F5,模拟就继续运行。会出现一个对话框提示你“ID-Stage:reached at Breakpoint#1”,按"确认"按钮关闭。

点击Clock cycle diagram窗口中的trap0x5行,你将看到模拟正处于时钟周期14。trap0x5行如下所示:

原因是:无论何时遇到一条trap指令时,DLX处理器中的流水线将被清空。在Information窗口(双击trap行弹出)中,在IF段显示消息“3stall(s)because of Trap-Pipeline-Clearing!”。

指令trap0x5已经写到屏幕上,你可以通过点击主窗口菜单条上的Execute/ Display DLX-I/O来查看。

为进一步模拟,点击Code窗口,用箭头键或鼠标向下滚动到地址为0x00000194的那一行(指令是lw r2,SaveR2(r0)),点击此行,点击Code/Set Breakpoint/OK,在这一行上设置一个断点。采用同样的方法,在地址0x000001a4(指令jar r31)处设置断点。现在按F5继续运行。这时,会弹出DLX-Standard-I/O窗口,在信息“An integer value>1:”后鼠标闪烁,键入20然后按Enter,模拟继续运行到断点#2处。

在Clock cycle diagram窗口中,在指令之间出现了红和绿的箭头。红色箭头表示需要一个暂停,箭头指向处显示了暂停的原因。R-Stall(R-暂停)表示引起暂停的原因是RAW。绿色箭头表示定向技术的使用。

双击主窗口中的Register图标。Register窗口会显示各个寄存器中的内容。看一下R1到R5的值。按F5使模拟继续运行到下一个断点处,有些值将发生改变,指令lw从主存中取数到寄存器中。

点击Execute/Multiple Cycles或者按F8键,在新出现的窗口中输入17,然后按Enter键,模拟程序将继续运行17个时钟周期。向上滚动Clock cycle diagram窗口,直到看到指令周期72到78。在EX段,两个浮点操作(multd and subd)分别在不同的部

件上运行,它们都需要多个周期才能结束。因而在它们之后的下一条指令能取指,译码和执行,然后暂停一个周期以允许subd完成MEM段。

按F5使程序完成执行,出现消息“Trap#0occurred”表明最后一条指令trap0已经执行,Trap指令中编号“0”没有定义,只是用来终止程序。双击图标Statistics。Statistics窗口提供各个方面的信息:模拟中硬件配置情况、暂停及原因、条件分支、Load/Store指令、浮点指令和traps。窗口中给出事件发生的次数和百分比,如RAW stalls:17(7.91%of all Cycles)。

Statistics窗口中的各种统计数字:总的周期数(215)和暂停数(17RAW,25 Control,12Trap;54Total),然后关闭窗口。

点击Configuration中的Enable Forwarding使定向无效(去掉小钩),打开断点Breakpoints图标并点击Breakpoints菜单,删除所有断点,然后按F5,键入20后,按Enter,模拟程序一直运行到结束。重新查看静态窗口,控制暂停和Trap暂停仍然是同样的值,而RAW暂停从17变成了53,总的模拟周期数增加到236。

利用这些值,计算定向技术带来的加速比:236/215= 1.098

所以可知DLX

forwarded 比DLX

not forwarded

快9.8%。

6、实验总结:

通过本实验,熟练掌握WinDLX模拟器的操作和使用,清楚WinDLX五段流水线在执行具体程序时的流水情况,熟悉DLX指令集结构及其特点。对于体系结构这门课程的学习和后面的实验很有帮助,对DLX的流水线运行分析,包括流水线单步执行、每个流水段功能、理解流水线停顿、流水线建立和排空、定向技术等内容有了很好的掌握;知道其运行情况,能够

根据程序段分析其运行位置及存储情况,会用内存地址等查看所输入数值的存储,在寄存器中找到相应输入数值,理解其运行断点的含义;我还会观察程序中出现的数据相关、控制相关和结构相关现象,并能找出程序中出现上述现象的指令;对课堂所学知识有了更深入的理解,将所学知识在实践中运用,以便理解更清晰、透彻。

计算机体系结构试题库—简答题

计算机体系结构试题库 简答题(100题) 1.简述CISC结构计算机的缺点。 答: ●在CISC结构的指令系统中,各种指令的使用频率相差悬殊。据统计,有20%的指 令使用频率最大,占运行时间的80%。也就是说,有80%的指令在20%的运行时 间内才会用到。 ●CISC结构指令系统的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制 时间和成本,而且还容易造成设计错误。 ●CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 ●CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 ●在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计 算机体系结构技术(如流水技术)来提高系统的性能。 2.RISC结构计算机的设计原则。 答: A.选取使用频率最高的指令,并补充一些最有用的指令; B.每条指令的功能应尽可能简单,并在一个机器周期内完成; C.所有指令长度均相同; D.只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行; E.以简单有效的方式支持高级语言。 3.影响现代微处理器主频提升的主要原因由哪些? 答:线延迟、功耗。 4.指令集格式设计时,有哪三种设计方法? 答:固定长度编码、可变长编和混合编码)三种设计方法。

5.简述存储程序计算机(冯·诺依曼结构)的特点。 答: (1)机器以运算器为中心。 (2)采用存储程序原理。 (3)存储器是按地址访问的、线性编址的空间。 (4)控制流由指令流产生。 (5)指令由操作码和地址码组成。 (6)数据以二进制编码表示,采用二进制运算。 6.在进行计算机系统设计时,一个设计者应该考虑哪些因素对设计的影响? 答: 在进行计算机系统设计时,设计者应该考虑到如下三个方面因素的影响: ●技术的发展趋势; ●计算机使用的发展趋势; ●计算机价格的发展趋势。 7.简述程序翻译技术的特点。 答: 翻译技术是先把N+1级程序全部变换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。 8.简述程序解释技术的特点。 答: 解释技术是每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。 9.经典体系结构的定义是什么? 计算机体系结构是机器级程序员所看到的计算机的属性,即概念性结构与功能特性。10.“线延迟墙”指的是什么?

计算机系统结构三四章作业及答案

3.1 简述流水线技术的特点。(1) 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。(2) 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。(3) 流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。(4) 流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。(5) 流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。 3.2 解决流水线瓶颈问题有哪两种常用方法?答:细分瓶颈段与重复设置瓶颈段 3.3 有一条指令流水线如下所示: (1 用两给出条指 (1) (24? 变八级流水线(细分) ? 重复设置部件 )(ns 85 1 T n TP 1pipeline -== 3.4 有一个流水线由4段组成,其中每当流过第三段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需的时间都是△t ,问: (1)当在流水线的输入端连续地每△t 时间输入一个任务时,该流水线会发生什么情况? (2)此流水线的最大吞吐率为多少?如果每2△t 输入一个任务,连续处理10个任务时,其实际吞吐率和效率是多少? (3)当每段时间不变时,如何提高流水线的吞吐率?人连续处理10个任务时,其吞吐率提高多少? 解:(1)会发生流水线阻塞情况。

(2) (3)重复设置部件 吞吐率提高倍数= t t ??2310 75 =1.64 3.5 有一条动态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第2段的时间为2△t ,其余各段的时间均为△t ,而且流水线的输出可以直接返回输入端或暂存于相应的流水线寄存器中。现在该流水线上计算 ∏=+4 1 )(i i i B A ,画出时空图,并计算其吞吐率、加速比和效率。 +B 4;再计算由图可见,它在18个△t 时间中,给出了7个结果。所以吞吐率为: 如果不用流水线,由于一次求积需3△t ,一次求和需5△t ,则产生上述7个结果共需(4×5+3×3)△t =29△t 。所以加速比为: 该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得: 3.6 在一个5段流水线处理机上,各段执行时间均为△t,需经9△t 才能完成一个任务,其预约表如下所示。 段23 时间 入 A 1 B 1 A 2 B 2 A 3 B 3 A 4 B 4 A B C D A × B C ×D

吉林大学 计算机系统结构题库 第二章

第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。

计算机体系结构期末考试试题及答案

填空题 1.从2002年以来,计算机性能的年增长率下降到了约30%。其主要原因是:①大功耗问题; ②可以进一步有效地开发的指令级并行性已经很少;③存储器访问速度的提高缓慢。 2. 可移植性是指一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。实现可移植性的常用方法有3种:系列机,模拟和仿真,统一高级语言。 2.通用寄存器型指令集结构计算机在灵活性和提高性能方面有明显的优势。主要体现在①寄存器的访问 速度比存储器快;②对编译器而言,能更加容易有效地分配和使用寄存器;③寄存器可以用来存放变量。 3.MIPS的数据寻址方式只有立即数寻址和偏移量寻址。 4.向量处理机的结构由所采用的向量处理方式决定。有两种典型的结构;存储器-存储器型结构和寄存器-寄存器型结构。 5.Cache-主存层次的工作由硬件实现,对系统程序员是透明的。 6.降低Cache不命中率最直接的方法是增加Cache的容量。不过,这种方法不但会增加成本,而且还可能增加命中时间,这种方法在片外Cache中用得比较多。 7.大多数磁盘阵列的组成可以由以下两个特征来区分:数据交叉存放的粒度、冗余数据的计算方法以及在磁盘阵列中的存放方式。 8.时延和带宽是用来评估互连网络性能的两个基本指标。时延包括通信时延和网络时延。 9.计算机系统可分为SISD、SIMD、MISD和MIMD四类,许多早期并行处理机是SIMD计算机,近年来,MIMD已经成为通用多处理机系统结构的选择。这是因为MIMD具有灵活性,并且MIMD 能充分利用现有微处理器的性价比优势。 判断题 1.从计算机语言的角度,系统结构把计算机系统按功能划分成多级层次结构,其中,第2级是操作系统虚拟机,第3级是汇编语言虚拟机。(错) 2.计算机系统中提高并行性的3种途径中,资源重复是在并行性概念中引入时间因素,加快硬件周转而赢得时间。(错) 3.指令集结构中采用多种寻址方式可能会增加实现的复杂度和使用这些寻址方式的指令的CPI。(对) 4.指令条数多,通常超过200条,是设计RISC的原则之一。(错) 5.根据流水线中各功能段之间是否有反馈回路,可把流水线分为线性流水线和非线性流水线。(对) 6.在多级存储体系中,“主存一辅存”层次的存储管理实现主要由软件实现。(对) 7.失效率和平均访存时间都可评价存储系统的性能,它们都和机器的硬件速度有关。(错) 8.RAID的特点有容量大,速度快、可靠性高,同时保存数据无冗余信息。(对) 9.在多处理机的互连网络中,交叉开关网络属于动态互连网络。(对) 10.机群是一种价格低廉、易于构建、可扩缩性极强的并行计算机系统。(对) 名词解释 1.RISC 精简指令集计算机是一种执行较少类型计算机指令的微处理器 2.请求字优先 调块时,首先向存储器请求CPU所要的请求字。请求字一旦到达,就立即送往CPU,让CPU继续执行,同时从存储器调入该块的其余部分。 3.单一系统映像

信息论与编码实验报告.

本科生实验报告 实验课程信息论与编码 学院名称信息科学与技术学院 专业名称通信工程 学生姓名 学生学号 指导教师谢振东 实验地点6C601 实验成绩 二〇一五年十一月二〇一五年十一月

实验一:香农(Shannon )编码 一、实验目的 掌握通过计算机实现香农编码的方法。 二、实验要求 对于给定的信源的概率分布,按照香农编码的方法进行计算机实现。 三、实验基本原理 给定某个信源符号的概率分布,通过以下的步骤进行香农编码 1、将信源消息符号按其出现的概率大小排列 )()()(21n x p x p x p ≥≥≥ 2、确定满足下列不等式的整数码长K i ; 1)(l o g )(l o g 22+-<≤-i i i x p K x p 3、为了编成唯一可译码,计算第i 个消息的累加概率 ∑ -== 1 1 )(i k k i x p p 4、将累加概率P i 变换成二进制数。 5、取P i 二进制数的小数点后K i 位即为该消息符号的二进制码。 四、源程序: #include #include #include #include #include using namespace std; int main() { int N; cout<<"请输入信源符号个数:";cin>>N; cout<<"请输入各符号的概率:"<

int i,j; for(i=0;i

计算机系统结构网上作业

计算机系统结构作业参考答案 一、 1、试述现代计算机系统的多级层次结构。 计算机系统具有层次性,它由多级层次结构组成。从功能上计算机系统可分为五个层次级别:第一级是设计级。这是一个硬件级,它由机器硬件直接执行。 第二级是一般机器级,也称为机器语言级。它由微程序解释系统.这一级是硬件级。 第三级是操作系统级,它由操作系统程序实现。这些操作系统由机器指令和广义指令组成,这些广义指令是操作系统定义和解释的软件指令。这一级也称混合级。 第四级是汇编语言级。它给程序人员提供一种符号形式的语言,以减少程序编写的复杂性。这一级由汇编程序支持执行。 第五级是高级语言级。这是面向用户为编写应用程序而设置的。这一级由各种高级语言支持。 2、试述RISC设计的基本原则和采用的技术。 答:一般原则: (1)确定指令系统时,只选择使用频度很高的指令及少量有效支持操作系统,高级语言及其它功能 的指令,大大减少指令条数,一般使之不超过100条; (2)减少寻址方式种类,一般不超过两种; (3)让所有指令在一个机器周期内完成; (4)扩大通用寄存器个数,一般不少于32个,尽量减少访存次数; (5)大多数指令用硬联实现,少数用微程序实现; (6)优化编译程序,简单有效地支持高级语言实现。

基本技术: (1)按RISC一般原则设计,即确定指令系统时,选最常用基本指令,附以少数对操作系统等支持最有用的指令,使指令精简。编码规整,寻址方式种类减少到1、2种。 (2)逻辑实现用硬联和微程序相结合。即大多数简单指令用硬联方式实现,功能复杂的指令用微程序实现。 (3)用重叠寄存器窗口。即:为了减少访存,减化寻址方式和指令格式,简有效地支持高级语言中的过程调用,在RISC机器中设有大量寄存嚣,井让各过程的寄存器窗口部分重叠。 (4)用流水和延迟转移实现指令,即可让本条指令执行与下条指令预取在时间上重叠。另外,将转移指令与其前面的一条指令对换位置,让成功转移总是在紧跟的指令执行之后发生,使预取指令不作废,节省一个机器周期。 (5)优化设计编译系统。即尽力优化寄存器分配,减少访存次数。不仅要利用常规手段优化编译,还可调整指令执行顺序,以尽量减少机器周期等。 3、试述全相联映像与直接映像的含义及区别 (1)全相连映像 主存中任何一个块均可以映像装入到Cache中的任何一个块的位置上。主存地址分为块号和块内地址两部分,Cache地址也分为块号和块内地址。Cache的块内地址部分直接取自主存地址的块内地址段。主存块号和Cache块号不相同,Cache块号根据主存块号从块表中查找。Cache保存的各数据块互不相关,Cache必须对每个块和块自身的地址加以存储。当请求数据时,Cache控制器要把请求地址同所有的地址加以比较,进行确认。 (2)直接映像 把主存分成若干区,每区与Cache大小相同。区内分块,主存每个区中块的大小和Cache 中块的大小相等,主存中每个区包含的块的个数与Cache中块的个数相等。任意一个主存块只能映像到Cache中唯一指定的块中,即相同块号的位置。主存地址分为三部分:区号、块号和块内地址,Cache地址分为:块号和块内地址。直接映像方式下,数据块只能映像到Cache中唯一指定的位置,故不存在替换算法的问题。它不同于全相连Cache,地址仅需比较一次。 (3)区别: 全相连映像比较灵活,块冲突率低,只有在Cache中的块全部装满后才会出现冲突,Cache 利用率高。但地址变换机构复杂,地址变换速度慢,成本高。 直接映像的地址变换简单、速度快,可直接由主存地址提取出Cache地址。但不灵活,块冲突率较高,Cache空间得不到充分利用。 4. 画出冯?诺依曼机的结构组成?

计算机体系结构第二章练习题参考解答

第二章 2.13 在一台单流水线多操作部件的处理机上执行下面的程序,每条指令的取指令、指令译码需要一个时钟周期,MOVE、ADD和MUL操作分别需要2个、3个和4个时钟周期,每个操作都在第一个时钟周期从通用寄存器中读操作数,在最后一个时钟周期把运算结果写到通用寄存器中。 k: MOVE R1,R0 ;R1← (R0) k+1: MUL R0,R2,R1 ;R0← (R2)×(R1) k+2: ADD R0,R2,R3 ;R0← (R2)+(R3) (1)就程序本身而言,可能有哪几种数据相关? (2)在程序实际执行过程中,哪几种数据相关会引起流水线停顿? (3)画出指令执行过程的流水线时空图,并计算完成这3条指令共需要多少个时钟周期? 解:(1)就程序本身而言,可能有三种数据相关。若3条指令顺序流动,则k指令对R1寄存器的写与k+1指令对R1寄存器的读形成的“先写后读”相关。若3条指令异步流动,则k指令对R0寄存器的读与k+1指令对R0寄存器的写形成的“先读后写”相关,k+2指令对R0寄存器的写与k+1指令对R0寄存器的写形成的“写—写”相关。 (2)在程序实际执行过程中,二种数据相关会引起流水线停顿。一是“先写后读”相关,k指令对R1的写在程序执行开始后的第四个时钟;k+1指令对R1的读对指令本身是第三个时钟,但k+1指令比k指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟要读R1。不能在同一时钟周期内读写同一寄存器,因此k+1指令应推迟一个时钟进入流水线,产生了流水线停顿。二是“写—写”相关,k+1指令对R0的写对指令本身是第六个时钟,而要求该指令进入流水线应在程序执行开始后的第三个时钟,所以对R0的写是在程序执行开始后的第八个时钟。k+2指令对R0的写对指令本身是第五个时钟,而k+2指令比k+1指令晚一个时钟进入流水线,则在程序执行开始后的第四个时钟,所以对R0的写是在程序执行开始后的第八个时钟。不能在同一时钟周期内写写同一寄存器,因此k+2指令应推迟一个时钟进入流水线,产生了流水线停顿。另外,可分析“先读后写”相关不会产生流水线的停顿。 (3)由题意可认位该指令流水线由六个功能段取指、译码、取数、运一、运二和存数等组成,则程序指令执行过程的流水线时空图如下图所示。若3条指令顺序流动,共需要9个 空间 存数 K存数 K+1存数 K+2存数 运二 K+1运二 运一 K+1运一 K+2运一 取数 K取数 K+1取数 K+2取数 译码 K译码 K+1译码 K+2译码 取指 K取指 K+1取指 K+2取指时间 0 1 2 3 4 5 6 7 8 9

计算机体系结构试题汇总

计算机系统结构 姓名:学号: 一、简答题(每小题10分,共20分) 1.简述使用物理地址进行DMA存在的问题,及其解决办法。 2.从目的、技术途径、组成、分工方式、工作方式等5个方面对同构型多处理机和异构型多处理机做一比较(列表)。 二、(60分)现有如下表达式: Y=a ×X 其中:X和Y是两个有64个元素的32位的整数的向量,a为32位的整数。假设在存储器中,X和Y的起始地址分别为1000和5000,a的起始地址为6000。 1.请写出实现该表达式的MIPS代码。 2.假设指令的平均执行时钟周期数为5,计算机的主频为500 MHz,请计算上述MIPS 代码(非流水化实现)的执行时间。 3.将上述MIPS代码在MIPS流水线上(有正常的定向路径、分支指令在译码段被解析出来)执行,请以最快执行方式调度该MIPS指令序列。注意:可以改变操作数,但不能改变操作码和指令条数。画出调度前和调度后的MIPS代码序列执行的流水线时空图,计算调度前和调度后的MIPS代码序列执行所需的时钟周期数,以及调度前后的MIPS流水线执行的加速比。 4.根据3的结果说明流水线相关对CPU性能的影响。 三、(20分)请分析I/O对于性能的影响有多大?假设: 1.I/O操作按照页面方式进行,每页大小为16 KB,Cache块大小为64 B;且对应新页的地址不在Cache中;而CPU不访问新调入页面中的任何数据。 2.Cache中95%被替换的块将再次被读取,并引起一次失效;Cache使用写回方法,平均50%的块被修改过;I/O系统缓冲能够存储一个完整的Cache块。 3.访问或失效在所有Cache块中均匀分布;在CPU和I/O之间,没有其他访问Cache 的干扰;无I/O时,每1百万个时钟周期中,有15,000次失效;失效开销是30个时钟周期。如果替换块被修改过,则再加上30个周期用于写回主存。计算机平均每1百万个周期处理一页。

信息论与编码实验报告材料

实验报告 课程名称:信息论与编码姓名: 系:专 业:年 级:学 号:指导教 师:职 称:

年月日 目录 实验一信源熵值的计算 (1) 实验二Huffman 信源编码. (5) 实验三Shannon 编码 (9) 实验四信道容量的迭代算法 (12) 实验五率失真函数 (15) 实验六差错控制方法 (20) 实验七汉明编码 (22)

实验一信源熵值的计算 、实验目的 1 进一步熟悉信源熵值的计算 2 熟悉Matlab 编程 、实验原理 熵(平均自信息)的计算公式 q q 1 H(x) p i log2 p i log2 p i i 1 p i i 1 MATLAB实现:HX sum( x.* log2( x));或者h h x(i)* log 2 (x(i )) 流程:第一步:打开一个名为“ nan311”的TXT文档,读入一篇英文文章存入一个数组temp,为了程序准确性将所读内容转存到另一个数组S,计算该数组中每个字母与空格的出现次数( 遇到小写字母都将其转化为大写字母进行计数) ,每出现一次该字符的计数器+1;第二步:计算信源总大小计算出每个字母和空格出现的概率;最后,通过统计数据和信息熵公式计算出所求信源熵值(本程序中单位为奈特nat )。 程序流程图: 三、实验内容 1、写出计算自信息量的Matlab 程序 2、已知:信源符号为英文字母(不区分大小写)和空格输入:一篇英文的信源文档。输出:给出该信源文档的中各个字母与空格的概率分布,以及该信源的熵。 四、实验环境 Microsoft Windows 7

五、编码程序 #include"stdio.h" #include #include #define N 1000 int main(void) { char s[N]; int i,n=0; float num[27]={0}; double result=0,p[27]={0}; FILE *f; char *temp=new char[485]; f=fopen("nan311.txt","r"); while (!feof(f)) { fread(temp,1, 486, f);} fclose(f); s[0]=*temp; for(i=0;i='a'&&s[i]<='z') num[s[i]-97]++; else if(s[i]>='A'&&s[i]<='Z') num[s[i]-65]++; } printf(" 文档中各个字母出现的频率:\n"); for(i=0;i<26;i++) { p[i]=num[i]/strlen(s); printf("%3c:%f\t",i+65,p[i]); n++; if(n==3) { printf("\n"); n=0; } } p[26]=num[26]/strlen(s); printf(" 空格:%f\t",p[26]);

高级计算机体系结构作业汇总(非标准答案)

1.Explain the Concepts Computer Architecture 系统结构 由程序设计者所看到的一个计算机系统的属性。即计算机系统的软硬件界面。 Advanced CA 高级系统结构 新型计算机系统结构。基于串行计算机结构,研究多指令多数据计算机系统,具有并发、可扩展和可编程性。为非冯式系统结构。 Amdahl law Amdahl定律 系统中某部件由于采用某种方式时系统性能改进后,整个系统性能的提高与该方式的使用频率或占的执行时间的比例有关。 SCALAR PROCESSING 标量处理机 在同一时间内只处理一条数据。 LOOK-AHEAD 先行技术 通过缓冲技术和预处理技术,解决存储器冲突,使运算器能够专心与数据的运算,从而大幅提高程序的执行速度。 PVP 向量型并行计算处理机 以流水线结构为主的并行处理器。 SMP 对称多处理机系统 任意处理器可直接访问任意内存地址,使用共享存储器,访问延迟、带宽、机率都是等价的。MPP 大规模并行计算机系统 物理和逻辑上均是分布内存,能扩展至成百上千处理器,采用专门设计和定制的高通信带宽和低延迟的互联网络。 DSM 分布式共享存储系统 内存模块物理上局部于各个处理器内部,但逻辑上是共享存储的。 COW 机群系统 每个节点都是一个完整的计算机,各个节点通过高性能网络相互连接,网络接口和I/O总线松耦合连接,每个节点有完整的操作系统。 GCE 网格计算环境 利用互联网上的计算机的处理器闲置处理能力来解决大型计算问题的一种科学计算。 CISC 复杂指令集计算机

通过设置一些复杂的指令,把一些原来由软件实现的常用功能改用硬件实现的指令系统实现,以此来提高计算机的执行速度。 RISC 精简指令集计算机 尽量简化计算机指令功能,只保留那些功能简单,能在一个节拍内执行完的指令,而把复杂指令用段子程序来实现。 VMM 虚拟机监视器 作为软硬件的中间层,在应用和操作系统所见的执行环境之间。 SUPERCOMPUTER 超级计算机 数百数千甚至更多的处理器组成的能计算普通计算机不能完成的大型复杂问题的计算机。SVM 共享虚拟存储器 存储器虚拟化为一个共享的存储器,并提供单一的地址空间。 MAINFRAME 大型计算机 作为大型商业服务器,一般用于大型事务处理系统,特别是过去完成的且不值得重新编写的数据库应用系统方面。 COMPUTER SYSTEM ON CHIP 片上计算机系统 在单个芯片上集成的一个完整系统。 PARALLEL ARCHITECTURE INTO SINGLE CHIP 单片并行结构 在单个芯片上采用的并行体系结构 MOORE law Moore定律 当价格不变时,集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍。 UMA 一致存储访问 采用集中式存储的模式,提供均匀的存储访问。 NUMA 非一致存储访问 内存模块局部在各个结点内部,所有局部内存模块构成并行机的全局内存模块。 COMA 全高速缓存存储访问 采用分布式存储模式,通过高速缓存提供快速存储访问。 CC-NUMA 全高速缓存非一致性均匀访问 存在专用硬件设备保证在任意时刻,各结点Cache中数据与全局内存数据的一致性。NORMA 非远程存储访问

计算机系统结构第二章自考练习题答案

计算机系统结构第二章自考练习题答案

第二章数据表示与指令系统 历年真题精选 1. 计算机中优先使用的操作码编码方法是( C )。 A. BCD码 B. ASCII码 C. 扩展操作码 D. 哈夫曼编码 2.浮点数尾数基值r m=16,除尾符之外的尾数机器位数为8位时,可表示的规格化最大尾数值为( D )。 A. 1/2 B. 15/16 C. 1/256 D. 255/256 3. 自定义数据表示包括(标志符)数据表示和(数据描述符)两类。 4. 引入数据表示的两条基本原则是:一看系统 的效率是否有提高;二看数据表示的(通

用)性和(利用)率是否高。 5. 简述设计RISC的一般原则。 6. 简述程序的动态再定位的思想。 7. 浮点数表示,阶码用二进制表示,除阶符之外 的阶码位数p=3,尾数基值用十进制表示,除尾符外的尾数二进制位数m=8,计算非负阶、规格化、正尾数时, (1)可表示的最小尾数值;(2)可表示的最大值;(3)可表示的尾数个数。 8. (1)要将浮点数尾数下溢处理成K—1位结 果,则ROM表的单元数和字长各是多少? 并简述ROM表各单元所填的内容与其地址之间的规则。 (2)若3位数,其最低位为下溢处理前的附 加位,现将其下溢处理成2位结果,设

计使下溢处理平均误差接近于零的 ROM表,以表明地址单元与其内容的 关系。 同步强化练习 一.单项选择题。 1. 程序员编写程序时使用的地址是( D )。 A.主存地址B.有效地址C.辅存实地址D.逻辑地址 2. 在尾数下溢处理方法中,平均误差最大的是( B )。 A.舍入法B.截断法C.恒置“1”法D.ROM查表法 3. 数据表示指的是( C )。A.应用中要用到的数据元素之间的结构关系

计算机系统结构期末考试试题及其答案

计算机系统结构期末考试试题及其答案

《计算机系统结构》期末考试试卷A 卷第 2 页 共 24 页 计算机科学系《计算机系统结构》期末考试试卷(A 卷) 2、此试卷适用于计算机科学与技术本科专业。 一 单选题:(10分,每题1分) 1、 ."启动I/O"指令是主要的输入输出指 令,是属于( B ) A.目态指令 B.管态指令 C.目态、管态都能用的指令 D.编译程序只能用的指令 2、 输入输出系统硬件的功能对(B )是透 明的 A.操作系统程序员 B.应用程序员 C.系统结构设计人员 D.机器语言程序设计员 3、 全相联地址映象是指(A ) A.任何虚页都可装入主存中任何实页的位置 B.一个虚页只装进固定的主存实页位置 C.组之间固定,组内任何虚页可装入任何实页位

置 D.组间可任意装入,组内是固定装入 4、( C ) 属于MIMD系统结构 A.各处理单元同时受一个控制单元的管理 B.各处理单元同时受同个控制单元送来的指令 C.松耦合多处理机和多计算机系统 D.阵列处理机 5、多处理机上两个程序段之间若有先写 后读的数据相关,则(B ) A.可以并行执行 B.不可能并行 C.任何情况均可交换串行 D.必须并行执行 6、计算机使用的语言是(B) A.专属软件范畴,与计算机体系结构无关 B.分属于计算机系统各个层次 C.属于用以建立一个用户的应用环境 D.属于符号化的机器指令 7、指令执行结果出现异常引起的中断是 (C ) A.输入/输出中断 B.机器校验中断 C.程序性中断 D.外部中断 《计算机系统结构》期末考试试卷A卷第 3 页共 24 页

《信息论与信源编码》实验报告

《信息论与信源编码》实验报告 1、实验目的 (1) 理解信源编码的基本原理; (2) 熟练掌握Huffman编码的方法; (3) 理解无失真信源编码和限失真编码方法在实际图像信源编码应用中的差异。 2、实验设备与软件 (1) PC计算机系统 (2) VC++6.0语言编程环境 (3) 基于VC++6.0的图像处理实验基本程序框架imageprocessing_S (4) 常用图像浏览编辑软件Acdsee和数据压缩软件winrar。 (5) 实验所需要的bmp格式图像(灰度图象若干幅) 3、实验内容与步骤 (1) 针对“图像1.bmp”、“图像2.bmp”和“图像3.bmp”进行灰度频率统计(即计算图像灰度直方图),在此基础上添加函数代码构造Huffman码表,针对图像数据进行Huffman编码,观察和分析不同图像信源的编码效率和压缩比。 (2) 利用图像处理软件Acdsee将“图像1.bmp”、“图像2.bmp”和“图像 3.bmp”转换为质量因子为10、50、90的JPG格式图像(共生成9幅JPG图像),比较图像格式转换前后数据量的差异,比较不同品质因素对图像质量的影响; (3) 数据压缩软件winrar将“图像1.bmp”、“图像2.bmp”和“图像3.bmp”分别生成压缩包文件,观察和分析压缩前后数据量的差异; (4) 针对任意一幅图像,比较原始BMP图像数据量、Huffman编码后的数据量(不含码表)、品质因素分别为10、50、90时的JPG文件数据量和rar压缩包的数据量,分析不同编码方案下图像数据量变化的原因。 4、实验结果及分析 (1)在VC环境下,添加代码构造Huffman编码表,对比试验结果如下: a.图像1.bmp:

计算机体系结构_第一次作业

计算机体系结构 第一章 1.11 Availability is the most important consideration for designing servers, followed closely by scalability and throughput. a. We have a single processor with a failures in time(FIT) of 100. What is the mean time to failure (MTTF) for this system? b. If it takes 1 day to get the system running again, what is the availability of the system? c. Imagine that the government, to cut costs, is going to build a supercomputer out of inexpensive computers rather than expensive, reliable computers. What is the MTTF for a system with 1000 processors? Assume that if one fails, they all fail. 答: a. 平均故障时间(MTTF)是一个可靠性度量方法,MTTF的倒数是故 障率,一般以每10亿小时运行中的故障时间计算(FIT)。因此由该定义可知1/MTTF=FIT/10^9,所以MTTF=10^9/100=10^7。b. 系统可用性=MTTF/(MTTF+MTTR),其中MTTR为平均修复时间, 在该题目中表示为系统重启时间。计算10^7/(10^7+24)约等于1. c. 由于一个处理器发生故障,其他处理器也不能使用,所以故障率 为原来的1000倍,所以MTTF值为单个处理器MTTF的1/1000即10^7/1000=10^4。 1.14 In this exercise, assume that we are considering enhancing

计算机系统结构-第二章(习题解答)

1. 数据类型、数据表示和数据结构之间是什么关系?在设计一个计算机系统 时,确定数据表示的原则主要有哪几个? 答: 略 2. 假设有A 和B 两种不同类型的处理机,A 处理机中的数据不带标志位,其 指令字长和数据字长均为32位。B 处理机的数据带有标志位,每个数据的字长增加至36位,其中有4位是标志符,它的指令条数由最多256条减少至不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在A 处理机和B 处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 答: 我们可以计算出数据的总数量: ∵ 程序有1000条指令组成,且每条指令平均要访问两个操作数 ∴ 程序访问的数据总数为:1000×2=2000个 ∵ 每个数据平均访问8次 ∴ 程序访问的不同数据个数为:2000÷8=250 对于A 处理机,所用的存储空间的大小为: bit 4000032250321000Mem Mem Mem data n instructio A =?+?=+= 对于B 处理机,指令字长由32位变为了30位(条数由256减少到64),这样,所用的存储空间的大小为: bit 3900036250301000Mem Mem Mem data n instructio B =?+?=+=

由此我们可以看出,由于数据的平均访问次数要大于指令,所以,采用带标志符的数据表示不会增加总的存储空间大小。 3. 对于一个字长为64位的存储器,访问这个存储器的地址按字节编址。假设 存放在这个存储器中的数据中有20%是独立的字节数据(指与这个字节数据相邻的不是一个字节数据),有30%是独立的16位数据,有20%是独立的32位数据,另外30%是独立的64位数据;并且规定只能从一个存储字的起始位置开始存放数据。 ⑴计算这种存储器的存储空间利用率。 ⑵给出提高存储空间利用率的方法,画出新方法的逻辑框图,并计算这种方法 的存储空间利用率。 答: ⑴ 由于全是独立数据,有20%浪费56位(7/8);30%浪费48位(6/8);20%浪费32位(4/8);30%浪费0位(0/8)。 总共浪费:0.2×7/8+0.3×6/8+0.2×4/8+0.3×0/8=0.5 即:存储器的存储空间利用率为50%,浪费率为50%。 ⑵ 方案为:数据从地址整数倍位置开始存储,即,双字地址000结尾,单字地址00结尾,半字地址0结尾,字节地址结尾任意。 可能出现的各种情况如下:

计算机体系结构模拟试题二汇总

模拟试题二 课程名称计算机系统结构适用班级: 考试时间120分钟班级学 号姓名 一、单项选择题(本大题共10小题,每小题2分,共20分。在每小题的四个备选答案中选出一个符合题意的,并将其前面的序号填在题后的括号内。) 1.输入输出系统硬件的功能对()是透明的。 ①操作系统程序员②应用程序员③系统结构设计人员④机器语言程序设计员 2."启动I/O"指令是主要的输入输出指令,是属于() ①目态指令②管态指令③目态、管态都能用的指令④编译程序只能用的指令 3.全相联地址映象是指() ①任何虚页都可装入主存中任何实页的位置 ②一个虚页只装进固定的主存实页位置 ③组之间是固定的,而组内任何虚页可以装入任何实页位置 ④组间可任意装入,组内是固定装入 4.()属于MIMD系统结构。 ①各处理单元同时受同一个控制单元的管理 ②各处理单元同时接受同一个控制单元送来的指令 ③多处理机和多计算机系统 ④阵列处理机 5.在下列方法中,指令并行度不能大于1的是()。 ①超级流水②超标量③超长指令字④标量流水线 6.设16个处理器编号分别为0,1,2,…,15用Cube3互联函数时,第10号处理机与第( )

号处理机相连. ①11 ②8 ③l4 ④2 7.若输入流水线的指令既无局部性相关,也不存在全局性相关,则() ①可获得高的吞吐率和效率②流水线的效率和吞吐率恶化 ③出现瓶颈④可靠性提高 8.对于共享主存的多处理机系统,在各个CPU都带有自己的Cache的情况下,为保证处理机所带Cache的一致性,可采用的方法有() ①写直达法②写回法③播写法④堆栈法 9.下面哪种相关不是流水线顺序流动方式所具有的() ①数据相关②指令相关③先读后写④先写后读 10.下面关于Omega网络和多级立方体网络的说法错误的是() ①Omega网络采用四功能单元 ②Omega网络和多级立方体网络的控制方式是不一样的 ③Omega网络可以实现一个处理单元与多个处理单元的同时连接 ④Omega网络和多级立方体网络的级编号顺序正好相反。 二、填空题(本大题共10小题,每小题1分,共10分。把答案填在题中横线上。) 1.为提高计算机系统的并行性,可通过的技术途径有__________、资源重复和资源共享。 2.按弗林(Michael J.Flynn)的观点,计算机系统可分为SISD、、MISD 和MIMD四大类。 3.为提高访Cache的命中率,Cache的预取算法可以有恒预取法和___________预取法。 4.衡量主存性能的指标是访问时间、存储周期和__________。 5.要实现两条指令在时间上重叠解释,首先是以增加硬件为代价的,其次,还要处理好指令之间可能存在的。 6.互连网络的交换方法主要有线路交换、包交换、线路/包交换,SIMD互连网络多采用交换,多处理机常采用包交换。 7.为同时解释相邻两条或多条指令,常用的控制方式是重叠和____________。 8.数组多路通道与设备之间的数据传送的基本单位是_____。 9.多级互连网络的交换开关控制方式主要有三种,分别是______、单元控制和部分级控制。 10.多处理机系统按照连接的紧密程度主要分两大类,分别是___________和松散耦合多处理

信息论与编码实验报告

实验一 绘制二进熵函数曲线(2个学时) 一、实验目的: 1. 掌握Excel 的数据填充、公式运算和图表制作 2. 掌握Matlab 绘图函数 3. 掌握、理解熵函数表达式及其性质 二、实验要求: 1. 提前预习实验,认真阅读实验原理以及相应的参考书。 2. 在实验报告中给出二进制熵函数曲线图 三、实验原理: 1. Excel 的图表功能 2. 信源熵的概念及性质 ()()[] ()[]())(1)(1 .log )( .) ( 1log 1log ) (log )()(10 , 110)(21Q H P H Q P H b n X H a p H p p p p x p x p X H p p p x x X P X i i i λλλλ-+≥-+≤=--+-=-=≤≤? ?????-===??????∑ 单位为 比特/符号 或 比特/符号序列。 当某一符号xi 的概率p(xi)为零时,p(xi)log p(xi) 在熵公式中无意义,为此规定这时的 p(xi)log p(xi) 也为零。当信源X 中只含有一个符号x 时,必有p(x)=1,此时信源熵H (X )为零。 四、实验内容: 用Excel 和Matlab 软件制作二进熵函数曲线。根据曲线说明信源熵的物理意义。 (一) Excel 具体步骤如下: 1、启动Excel 应用程序。 2、准备一组数据p 。在Excel 的一个工作表的A 列(或其它列)输入一组p ,取步长为0.01,从0至100产生101个p (利用Excel 填充功能)。

3、取定对数底c,在B列计算H(x) ,注意对p=0与p=1两处,在B列对应位置直接输入0。Excel中提供了三种对数函数LN(x),LOG10(x)和LOG(x,c),其中LN(x)是求自然对数,LOG10(x)是求以10为底的对数,LOG(x,c)表示求对数。选用c=2,则应用函数LOG(x,2)。 在单元格B2中输入公式:=-A2*LOG(A2,2)-(1-A2)*LOG(1-A2,2) 双击B2的填充柄,即可完成H(p)的计算。 4、使用Excel的图表向导,图表类型选“XY散点图”,子图表类型选“无数据点平滑散点图”,数据区域用计算出的H(p)数据所在列范围,即$B$1:$B$101。在“系列”中输入X值(即p值)范围,即$A$1:$A$101。在X轴输入标题概率,在Y轴输入标题信源熵。 (二)用matlab软件绘制二源信源熵函数曲线 p = 0.0001:0.0001:0.9999; h = -p.*log2(p)-(1-p).*log2(1-p); plot(p,h) 五、实验结果

相关文档
最新文档