计算机组成原理实验指导.docx
- 文档编号:11588255
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:77
- 大小:1.16MB
计算机组成原理实验指导.docx
《计算机组成原理实验指导.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验指导.docx(77页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验指导
计算机组成原理实验指导
计算机组成与系统结构实验
软件学院专业教研室
实验一:
带符号数的表示方法
理论知识
一.原码表示
规则:
机器数的最高一位表示符号,“0”表示正号;“1”表示负号,后面各位用数的绝对值表示。
整数原码的定义:
[X]原为机器数的原码,X为真值,n为整数的位数。
小数原码的定义为:
[X]原为机器数的原码,X为真值。
性质:
原码最高位表示数的符号(0正号,1负号)。
对定点小数,有:
0的原码不唯一:
.定点小数[+0]原=0.0…0
[-0]原=1.0…0
.整数[+0]原=00…0
[-0]原=10…0
二.补码表示
整数的补码:
[X]补为整数X的补码,X为任意整数,n为整数的位数。
小数的补码:
[X]补是小数X的补码,X为任意小数,2为模数。
性质
1)0的补码唯一
整数0[+0]补=00…0
[-0]补=2n+1-00…0=2n+1=00…0(mod2n+1)
小数0[+0]补=0.00…0
[-0]补=2-0.00…0=2=0.00…0(mod
2)设[X]补=XSXn-1Xn-2…X1X0,XS是补码的符号位,XS=0时,X为正;XS=1时,X为负。
补码的表示范围是:
.正整数2n>X≥0
.负整数0≥X≥-2n
整数X的补码可以写成:
[X]补=2n+1·XS+X
三.反码表示
整数反码的定义
或[X]反=X(mod2n+1-1)
小数反码的定义为:
或[X]反=X(mod2-2-n)
性质:
(1)0的反码不唯一,
整数0
[+0]反=00…0
[-0]反=(2n+1-1)+(-00…0)=11…1(mod2n+1-1)
小数0
[+0]反=0.00…0
[-0]反=2-2-n-0.00…0=1.1…1(mod2-2-n)
(2)反码与补码的关系
根据定义,当X为正数时,[X]补=[X]反;
当X为负整数时,[X]补=[X]反+1;
当X为n位负小数时,[X]补=[X]反+2-n
实验要求:
根据以上的理论知识,用VisualC++编写一个求一个字节的整数和小数的原码,反码,补码程序。
在数据位中加入几个校验位,将数据代码的码距均匀地拉大,并把数据的每个二进制位分配在几个奇偶校验组中。
当某一位出错后,就会引起有关的几个校验位的值发生变化,不但可以发现错误,还能指出是哪一位出错,为进一步自动纠错提供依据。
1.确定长度:
2k≥n+k+1(信息为n位,校验位为k位)
2.通过信息位组成海明校验位
若数据位n=7,则校验位k=4,故海明码的总位数为11。
它们的排列关系可表示为:
海明码位号:
H11H10H9H8H7H6H5H4H3H2H1
海明码:
D7D6D5P4D4D3D2P3D1P2P1
3.校验位校验任务的分配.
根据海明码的编码规则,每一位海明码都有多个校验位,且被校验的每一位的位号等于参与校验的几个校验位的位号之和。
占据各权位上的校验位按权组成的8421码,正好等于海明码的位号,即海明码的位号Hi正好等于要校验它的校验位所占权位权值之和。
例:
设有一个7位信息码位0110001,求它的海明码。
解:
n=7,根据海明不等式,可求得校验位最短长度k=4。
其海明码先表示如下:
海明码位号:
H11H10H9H8H7H6H5H4H3H2H1
海明码:
011P4000P31P2P1
按偶校验写出校验方程为:
H1⊕H3⊕H5⊕H7⊕H9⊕H11=0(P1=H1)
H2⊕H3⊕H6⊕H7⊕H10⊕H11=0(P2=H2)
H4⊕H5⊕H6⊕H7=0(P3=H4)
H8⊕H9⊕H10⊕H11=0(P4=H8)
可得:
P1=0、P2=0、P3=0、P4=0,所以0110001的海明码为01100000100。
实验要求:
利用visualc++写一程序,能够对7位二进制数据,要按奇/偶校验编码,并产生其对应的海明码编码。
要求界面友好,并画出奇偶校验的编码和校验逻辑图。
实验三、加法器
理论知识
一.补码加减运算规则
公式:
[X+Y]补=[X]补+[Y]补
[X-Y]补=[X]补+[-Y]补
例:
X=0.101101,Y=-0.110100,求[X+Y]补
解:
[X]补=0.101101,[Y]补=1.001100
[X+Y]补=[X]补+[Y]补
=0.101101+1.001100
=1.111001
溢出及处理:
补码加减运算可能产生溢出,为判断溢出,采用变形补码形式.
判断溢出的原则:
以两位符号位表示数的符号。
当两符号位不同时,溢出;两符号位相同时,无溢出。
无论是否溢出,最高符号位代表真正的符号。
变形补码的加减法:
两个符号位都看作数值位参加运算,最高符号位产生的进位丢掉。
二、基本的二进制加法/减法器
基本加法器:
半加器和全加器。
.半加器在完成两数相加时,不考虑低位进位。
.全加器用来完成两个二进制数相加,并且同时考虑低位的进位。
通常:
Ai表示被加数的第i位
Bi表示加数的第i位
Ci为第i-1位向第i位产生的进位
Ci+1为第i位向第i+1位产生的进位
Si为第i位产生的和
全加器的表达式为:
内部逻辑图:
利用全加器实现两数和或差
1)串行加法:
从低位开始,每步只完成一位运算的加法。
行加法器:
需要一个全加器和一个进位触发器,高位运算只等低位运算完成后才能进行,速度较慢。
2)并行加法器:
可在同一时刻完成n位数的运算。
采用变形补码表示一个机器数,则符号位需2位,需要n+2个加法器。
.运算速度比串行进位加法器高很多,用足够多的硬件设备换。
实验要求:
利用Visualc++定义一个全加器类或函数,然后完成能够计算两个8位数相的串行加法器。
(减法又如何实现?
并行加法器又如何实现?
)。
实验四、乘法器
理论知识
一、原码一位乘法
算法描述
设[X]原=Xs.Xn-1Xn-2…Xi…X1X0=Xs.Xv
[Y]原=Ys.Yn-1Yn-2…Yi…Y1Y0=Ys.Yv
乘积[Z]原=Zs.Zv=(XsYs).(Xv×Yv)
运算步骤:
1)从乘数的最低位开始,用乘数B的每个二进制位去乘被乘数A,若B的某个二进制位为1,则位积A;如为0,则位积0。
2)B的各位分别乘以A的所得的位积,因为位权不同,逐次向左移位,即按一定位数错开,这样逐位进行下去,直到乘数各位都乘完为止。
.3)把移位对准的各次位积相加起来即得结果。
缺点:
1)将多个数一次相加,机器难以实现。
2)乘积位数增长了一倍,即2n,而机器字长只有n位。
改进:
(a)把一次求和的操作,变成逐步累加求部分积的操作.
(b)将求积过程中逐位按权左移位积的操作,改为位积不动,而是上次部分积右移的操作.
二、原码一位乘法逻辑结构原理图
工作原理:
1) 乘法开始,“启动”信号使控制触发器Cx置“1”,于是开启时序脉冲T。
2) 当乘数寄存器R1最末位为“1”时,部分积Zi和被乘数X在加法器中相加,其结果输出至R0的输入端。
3)一旦控制脉冲T到来,控制信号LDR0使部分积右移一位,R1也在控制信号LDR1作用下右移一位,且计数器i计数一次。
4)当计数器i=n时,计数器的溢出信号使触发器Cx置“0”,关闭时序脉冲T,乘法宣告结束。
将R0和R1连接起来,乘法结束时乘积的高n位部分在R0,低n位部分在R1,R1中原来的乘数Y由于移位而全部丢失。
实验要求:
根据原码一位乘法逻辑结构原理图,利用VisualC++写一程序,来实现4位*4位的原码一位乘法。
(要求模拟脉冲,乘法开始的状态,以及每一次脉冲到来后,每一个寄存器的变化情况清楚地显示出来)。
实验五、浮点算术运算方法
理论知识
1)浮点加减法运算
设两个浮点数x和y分别为:
x=Sx·2Ex
y=Sy·2Ey
其中,Ex、Ey分别是x和y的阶码,Sx和Sy是x、y的尾数。
它们都是规则化的数,即其尾数绝对值总小于1(用补码表示,允许为1)。
浮点加减运算的步骤如下:
1.对阶:
小阶向大阶看齐
求阶差:
△E=Ex-Ey
若△E=0,表示Ex=Ey,不需要对阶
若△E>0,表明Ex>Ey
若△E<0,表明Ex 对于Ex≠Ey的这种情况,需要对阶。 采用“小阶向大阶看齐”的方法,即小阶的尾数右移△E位,小阶的阶码增加△E与大阶相等。 2.尾数求和(差) 对阶后,按定点加减运算求两数的尾数之和。 3.规格化 1)对于定点小数,其规格化为: 00.1xx…x 11.0xx…x(原码表示法) 2)负数的补码表示,规格化有所不同。 规格化的尾数应满足: S>0时1/2≤S<1 对于S<0,用补码: -1/2>S≥-1 [-1/2]补=11.100…0,为了便于判别是否是规格化数,不把-1/2列为规格化数,把-1列入规格化数。 ∵[-1]补=11.00…0 ∴补码规格化的浮点数应有两种形式: 00.1xx…x 11.0xx…x 补码规格化: A)若和或差的尾数两符号位相等且与尾数第一位相等,则需向左规格化。 即将和或差的尾数左移,每移一位,和或差的阶码减一,直至尾数第一位与尾符不等时为止。 B)若和或差的尾数两符号位不等,即01.xx…x或10.xx…x形式,表示尾数求和(差)结果绝对值大于1,向左破坏了规格化。 此时应该将和(差)的尾数右移1位,阶码加1,即进行向右规格化。 4.舍入 1)“0舍1入”法,即右移时丢掉的最高位为0,则舍去;是1,则将尾数的末位加1(相当于进入)。 2)“恒置1”法,即不管移掉的是0还是1,都把尾数的末位置1。 例: x=0.1101×1001,y=-(0.1010)×1011,求x+y 1)对阶: 假定两数在计算机中采用补码制,则 [x]补=0001,00.1101Ex=0001 [y]补=0011,11.0110Ey=0011 阶差: △E=Ex-Ey=0001+1101=1110=-2,则Ex 则[x]补=0011,00.0011,对阶完毕。 2)尾数求和(差) 对阶后: [Sx]补=00.0011,[Sy]补=11.0110 则[Sx]补+[Sy]补=11.1001 ∴[x+y]补=0011,11.1001 3)规格化 和的尾数的两符号位相等,但小数点后的第一位也与符号位相等,不是规格化数,需要进行左规,即向左规格化,规格化的数结果: [x+y]补=0010,11.0010 实验要求: 利用VisualC++,写一程序,要求实现两个浮点数的加法,其中浮点数的阶码为3位(1位为符号),尾数为5位(1位为符号)。 (要求详细展示计算的步骤。 ) 实验六、存储器与存储系统 理论知识 一、主存储器技术指标 存储容量: 1)存储容量是指一个功能完备的存储器所能容纳的二进制信息总量,即可存储多少位二进制信息代码。 2)存储容量=存储字数×字长 3)要求: 大容量。 存储器速度 存储器取数时间(MemoryAccessTime): 从存储器读出/写入一个存储单元信息或从存储器读出/写入一次信息(信息可能是一个字节或一个字)所需要的平均时间。 存储器存取周期(MemoryCycleTime): 存储器进行一次完整的读写操作操作所需要的全部时间,称为存取周期。 数据传输率 单位时间可写入存储器或从存储器取出的信息的最大数量,称为数据传输率或称为存储器传输带宽bM。 bM=W/tM 存储周期的倒数1/tM,W表示存储器一次读取数据的宽度,即位数。 可靠性 用平均无故障时间MTBF来衡量。 1)对于破坏性读出的存储器: 设立缓冲寄存器 2)断电后信息会丢失: 备用电源的方法或采用中断的技术转储 3)动态存储: 定期刷新 价格 是衡量经济性能的重要指标。 设C是存储容量为S位的整个存储器以元计算的价格,可定义存储器成本c为: c=(C/S)元/位. 二、主存储器原理图 三、位扩展组成的8KRAM 位扩展组成的8KRAM 四、字扩展 字扩展法组成64KRAM 五.字位扩展法组成RAM 实验要求: 利用VisualC++编写一个程序,来模拟实现存储器的读写过程。 要求给出相应的信号表示。 熟练掌握存储器的扩展。 用flash模拟内存字位扩展后的存储器读取过程。 存储器的组织映象 基本知识 一、Cache存储器的地址映象 1、概念 1)地址映象: 为了把信息放到Cache中,必须应用某种函数把主存地址映象到Cache中定位。 2)地址变换(地址变换): 在信息按这种映象关系装入Cache后,执行程序时,将主存地址变换成Cache地址。 直接映象: 主存空间被分为2m个页,其页号分别为0、1、...i...2m-1,每页大小为2b个字,Cache存储空间被分为2c个页(页号为0、1、...j...2c-1),每页大小同样为2b个字,(c 全相联映象 1)主存中的每一页面可以映象到Cache中的任何一个页面位置上,也允许采用任何替换算法从被占满的Cache中替换掉任何一个旧页面。 2)主存地址 3)优点: 灵活 4)缺点: 访问速度太慢,因为要与所有标记全部比较一遍,才能确定是否命中;成本太高。 组相联映象 A)将Cache分为2n个组,每组包含2r个页面,Cache共有2c=2n+r个页面。 其映象关系为: j=(imod2n)×2r+k(0≤k≤2r-1) 例,设n=3位,r=1位,考虑主存字块15可映象到Cache的哪一个字块中。 可得: j=(imod2n)×2r+k=(15mod23)×21+k=7×2+k=14+k 因为0≤k≤2r-1=1,所以: k=0或1 代如后得j=14(k=0)或15(k=1)。 所以主存模块15可映象到Cache字块14或15。 在第7组。 B)主存地址 C)组间是直接映象,组内是全相联映象。 小结: 上述三种映象技术有一定的内在联系: 当r=0时,就是直接映象;当r=c时,就是全相联映象。 实验要求 要求写一程序或设计一动画,来演示存储器组织的三种映象方式。 实验七、CPU 理论知识 CPU的基本组成 1.寄存器组 寄存器: CPU在处理信息的过程中,用来暂时存放各种信息。 (1)通用寄存器组 用户可通过编程访问的寄存器,在指令系统中为它们分配了相应的编号。 指令中以寄存器号来指示。 通用寄存器通过编程,可以实现多种功能,如提供操作数,存放运算结果,用作地址指针,作基址寄存器、变址寄存器等。 (2)暂存器 暂存器对编程者来说是透明的,即在程序中不会出现。 作用: 暂时存放CPU处理过程中的临时信息,避免破坏通用寄存器的内容。 例如: 实现从内存的单元A传送数据到另一个单元B。 从单元A读出的数据先送到CPU中的一个暂存器,然后再从暂存器送入单元B。 (3)指令寄存器IR 作用: 用来存放当前正在执行的指令。 控制器根据其内容(操作码以及地址信息)产生所需要的各种微命令。 为了提高计算机的处理速度,现代计算机一般将指令寄存器扩充为指令队列(指令栈)。 形成了指令流水线处理方式. 指令流水线: 一次预取多条指令,增加指令间执行的衔接速度和并行处理能力。 (4)程序计数器PC 也叫指令计数器或指令指针。 作用: 指示指令在存储器中的存放位置。 程序顺序执行时,每当从主存中取出一条指令后,PC内容就自动增量计数,指向下一条指令。 程序发生转移时,将转移地址送入PC,使其指向转移目的地的指令地址。 (5)程序状态字寄存器PSW 作用: 记录现行程序的运行状态和指示程序的工作方式。 PSW包括特征状态位和方式控制位两部分。 特征位: 进位位C、溢出位V、零值位Z、符号位S、奇偶位P等。 方式控制位: 跟踪位I、中断允许位I、程序优先级字段、工作方式字段等。 (6)地址寄存器MAR 作用: CPU访问主存时,暂时存放所访问单元地址。 CPU取指令时,先将PC的内容送入MAR,再由MAR将指令的存放地址送往主存译码。 CPU存取数据时,将数据的存放地址先送到MAR,再送往主存进行地址译码。 (7)数据缓冲寄存器MBR 作用: 存放CPU与主存之间交换的数据。 由CPU写入主存的数据先送入MBR,主存地址译码找到指定单元后,再将数据从MBR送入到该单元。 从主存中读出的数据,先送入MBR,然后再送到指定的CPU内部某寄存器。 MAR和MBR是连接CPU与主存的桥梁,它们可使CPU与主存之间的数据通路变得比较单一。 这两个寄存器不能编程访问,即对用户透明。 2.运算器的组织 3.控制器组成 实验要求: 根据所学的CPU知识,模拟一段程序的运行过程 A=3; B=4; S=a+b; Cout< 注意控制器的应该如何向其他部件发出控制信号,CPU内寄存器的变化情况和内存的访问情况。 (要求用FLASH演示出来或用其他的动画工具演示实验结果。 ) 实验八、输入输出系统 理论知识 1.输入输出(I/O)系统概述 输入输出系统指外部设备(输入输出设备和辅助存储器)及其与主机(CPU和存储器)之间的控制部件。 后者称之为设备控制器,如磁盘控制器、打印机控制器等,也称为设备适配器或接口。 作用: 控制并实现主机与外部设备之间的数据传送。 I/O设备的编址: 为了CPU便于对I/O设备进行寻址和选择,必须给众多的I/O设备进行编址,也就是给每一台设备规定一些地址码,称为设备号或设备代码。 I/O地址分配表: 输入输出设备 占用地址数 地址码(16进制) 硬盘控制器 16 320~32FH 软盘控制器 8 3F0~3F7H 单色显示器/并行打印机 16 3B0~3BFH 彩色图形显示器 16 3D0~3DFH 异步通信控制器 8 3F8~3FFH I/0接口的基本功能: 1)实现主机和外围设备之间的数据传送控制。 2)实现数据缓冲,达到主机同外围设备之间的速度匹配。 3)接受主机的命令,提供设备接口的状态,并按照主机的命令控制设备 I/O接口类型: 1)按数据传送的宽度分为并行接口和串行接口。 .并行接口: 设备和接口是将一个字节(或字)的所有位同时传送。 .串行接口: 设备和接口间的数据是一位一位串行传送的。 接口要完成数据格式的串—并变换。 2)按数据传送的控制方式分成程序控制输入输出接口,程序中断输入输出接口和直接存储器存取(DMA)接口等。 I/O设备数据传送控制方式 1)程序直接控制方式 程序直接控制(programeddirectcontrol)方式就是完全通过程序来控制主机和外围设备之间的信息传送。 2.程序中断传送方式 程序中断传送(programinterrupttransfer)方式中,在程序中安排一条指令,发出START信号启动外围设备,然后机器继续执行程序。 当外围设备完成数据传送的准备后,便向CPU发“中断请求”(INT)信号。 CPU接到请求后若可以停止正在运行的程序,在一条指令执行完后,转去执行“中断服务程序”,完成传送数据工作。 传送完毕返回原来的程序。 3.直接存储器存取方式 直接存储器存取(directmemoryaccess,简称DMA)方式: 在外围设备和主存之间开辟直接的数据传送通路。 在正常工作时,所有工作周期均用于执行CPU的程序。 当外围设备完成输入或输出数据的准备工作后,占用总线一个工作周期,和主存直接交换数据。 该周期过后,CPU又继续控制总线,执行原程序。 DMA的特点: 除在数据块传送的起始和结束时需用中断分别进行前处理和后处理外,无需CPU的频繁干预。 主存储器被并行工作的CPU和I/O子系统所共享。 缺点: 对外围设备的管理和某些操作的控制仍需由CPU承担。 DMA控制器组成 DMA的组成: 1.设备寄存器 DMA控制器中的寄存器: 1)主存地址寄存器(MAR) 2)外围设备地址寄存器(ADR) 3)字数计数器(WC) 4)控制与状态寄存器(CSR) 5)数据缓冲寄存器(DBR) 2.中断控制逻辑 负责申请CPU对DMA进行预处理和后处理 3.DMA控制逻辑 设备码选择电路,DMA优先排队电路,产生DMA请求的线路。 4.DMA接口与主机和I/O设备两个方向的数据线、地址线和控制信号线以及有关收发与驱动线路。 DMA数据传送过程 4.I/O通道控制(I/Ochannelcontrol)方式 “通道”: 能独立地执行用通道命令编写的输入输出控制程序,产生相应的控制信号送给由它管辖的设备控制器,继而完成复杂的输入输出过程。 通道是一种通用性和综合性都较强的输入输出方式,代表了现代计算机组织向功能分布方向发展的初始发展阶段。 5.外围处理机方式 输入输出处理机通常称作外围处理机(peripheralprocessorunit,简称PPU)。 外围处理机基本上独立于主机工作。 在某些大型计算机系统中,设置多台外围处理机,分别承担I/O控制、通信、维护、诊断等任务。 实验要求: 1)按中断优先次序,从高到底的中断源的编号为: 3—>4—>6—>5—>2—>1,在CPU执行某用户程序过程中,有了中断源2,和4请求,在CPU执行4请求时,又有5,6中断请求,在执行5请求时,又有3请求,请画出CPU处理各中断请求的过程。 (利用动画环境模拟中断执行过程,要求准确的信号表示) 2)根据DMA的数据传输过程,写程序演示数据传输过程,并以动画演示数据传输过程,要求准确的信号表示。 IBMPC机的指令系统和寻址方式 计算机完成的任何功能,都是通过执行一系列指令来实现的,因而每种计算机都有一组指令集提供给用户使用,这组指令集合就称为计算机的指令系统。 什么是寻址方式? 计算机指令中,为了取得操作数的地址(目的取得操作数的内容)而进行的寻找该操作数物理地址的方式。 计算机的大部分计算都需要数据参加,这些参加某一指令计算的数据就叫该指令的操作数。 汇编语言的指令格式如下: 操作码操作数1,操作数2,操作数3,…,操作数n 操作码: 指示计算机要进行的某种指令操作,在汇编语言中,操作指令采用助记符的形式来表示操作指令,即操作码。 操作数: 不同的操作码需要不同的操作数数量,大部分操作码需要的操作数不超过3个,也有的指令不需要操作数。 操作数的类型也是多种多样,它可以是常数、可以是存储单元、可以是地址、甚至可以某中指令操作码等等。 汇编语言中很多操作码需带有两个操作数,就把前面的操作数称为目的操作数、后面的操作数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 指导