计算机组成原理复习(课件整理版可自学使用)_第1页
计算机组成原理复习(课件整理版可自学使用)_第2页
计算机组成原理复习(课件整理版可自学使用)_第3页
计算机组成原理复习(课件整理版可自学使用)_第4页
计算机组成原理复习(课件整理版可自学使用)_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、本课程在计算机系统中的位置一、课程目标1、结构与原理掌握 建立计算机系统的整机概念; 掌握计算机各部件的组成原理与技术; 了解计算机系统组成与结构的新技术2、分析与计算能力掌握对组成与结构进行性能分析的方法;通过量化计算,加深对组成原理的理解与掌握3、应用与设计能力 通过实验,培养逻辑设计及理论指导实践的能力二、课程内容组织第1章 计算机系统概论 计算机的模型、硬件组成,计算机的工作过程、性能指标第2章 数据的表示和运算 数据的编码及表示,定点及浮点运算方法,ALU结构与组成第3章 存储系统 层次结构,RAM组成,主存、Cache、虚存的组成原理第4章 指令系统 指令功能与指令格式,操作数

2、存放及寻址方式,CISC/RISC第5章 中央处理器 CPU的功能与结构、工作流程,指令执行过程,数据通路组织,CU的结构及组成,微程序控制器技术,指令流水技术计算机软件(指令串及数据)CUALU存储器系统总线I/O设备1I/O接口1I/O设备2I/O接口2I/O设备nI/O接口n第6章 总线 概述,操作步骤,仲裁/定时方式,互连结构第7章 I/O系统 组成,I/O设备,I/O接口,I/O方式(4种)1、学习方法 建立整机概念,将所学知识点融合在一起; 从逻辑设计出发,分析多种方案的利与弊; 通过量化分析,加深对原理的掌握与理解。2、学习效率第1章 计算机系统概论 计算机:按照内部存储的指令序

3、列,对数字化信息进行自动高速处理、存储、传送、控制的装置。 · 指令:指示计算机硬件完成某种功能的明确的命 · 信息:有用的数据,有多种不同类型,其表现手段可以采用数字化形式或模拟量形式; · 运算:包括算术运算和逻辑运算,要求自动与高速; · 处理:对信息进行搜索、识别、变换,甚至联想、思考和推理等等。 计算机的基本功能主要包括 · 数据处理 · 数据存储 · 数据传送 · 控制 数据处理功能 · 运算功能:算术运算功能和逻辑运算,应用于数值计算和非数值计算两个方面 ; 处理对象:数值、字符、图形、图像

4、、声音和视频等。 数据存储功能 主存储器:保存指令和数据; 辅助存储器:以文件的形式保存大量数据信息。 数据传送功能 内部数据流动 :CPU和主存以及CPU内部寄存器与运算器之间的数据流动; 外部数据传送:输入/输出(I/O)和计算机通信。 控制功能 · 控制器:产生各种基本操作信号并按某种时序发出以完成相应功能 ;· 指令编码、指令系统:一台计算机的所有指令集合 。 1.1.1计算机系统的软硬件 *计算机系统的组成: 功能的实现方式 硬件具备数据的存储、传送及处理和过程控制功能 软件表示应用的数据处理及过程控制需求 程序(指令序列,硬件用不同指令表示不同功能) 执行软件实

5、现应用的数据处理及过程控制功能 *计算机系统组成的特性: 软件功能靠硬件实现,硬件性能靠软件反映 *计算机系统结构:机器语言程序员所看到的计算机属性 概念性结构和功能特性 *计算机组成:实现计算机系统结构时所体现的计算机属性 *计算机实现:实现计算机组成时所体现的计算机属性 *相互关系: 计算机系统结构确定软硬件功能分配及其界面特性; 计算机组成逻辑实现系统结构的内容; 计算机实现物理实现计算机组成的内容举例 系统结构 计算机组成 计算机实现乘法功能是否有乘法指令 乘法器还是加法+移位 器件、电路主存系统最大容量、编址方式 速度保证、单体/多体MEM总线带宽 信号线数、时钟、传输方式 

6、7;1.2 计算机系统基本组成一、冯·诺依曼模型计算机*结构与组成: 由运算器、存储器、控制器、输入及输出设备组成, 以运算器为中心;输入设备存储器运算器控制器输出设备注: 数据信息 指令信息 控制信息 状态信息 *数据表示与运算: 指令及数据均用二进制方式表示,运算亦采用二进制方式 *存储程序原理程序存储方式: 指令及数据预先存放(以等同地位)在存储器中; *存储器结构: 由定长单元构成的一维空间,存储器按地址访问; *指令组成: 由操作码及地址码组成;例:若加法运算的操作码用010表示,第01000号与第10000号两个存储单元内容相加的操作可表示为:010 01000 1000

7、0 *存储程序原理程序控制机制: 按程序逻辑顺序、自动地、逐条地取出指令并执行。 · 冯·诺依曼计算机模型。1)计算机由运算器、存储器、控制器和输入/输出五个部件组成;2)存储器以二进制形式存储指令和数据;3)存储程序工作方式;4)五部件以运算器为中心进行组织。二、计算机硬件的基本组成1、计算机硬件的结构 现代计算机均在冯·诺依曼模型基础上进行改进 *采用以存储器为中心的结构: 使数据传送与数据处理并行,有利于提高系统性能 *由多种存储器构成存储系统: 解决速度-容量-价格间的矛盾,有利于提高性能/价格 *采用总线互连形式: 实现部件操作标准化,有利于提高系统的可

8、扩展性2、计算机部件的基本组成(1)存储器 *功能:存储程序和数据、通过读/写操作接收/提供信息 *组成: *完成操作的过程: 读操作接收地址及命令,内部操作; 输出数据 写操作接收地址及命令; 接收数据,内部操作(2)运算器 *功能:实现算术运算及逻辑运算,并暂存运算结果 *组成: *(AC)+YAC的运算过程: (0) (AC)为被加数 (1) 加数YTEMP (2) (AC)(TEMP) (3) ALU结果AC 约定:(X)表示寄存器X中内容,Y表示存储单元Y中内容(3)控制器 *功能:指挥及控制各部件协调地工作,以实现程序执行过程 *程序执行过程: 循环的指令执行过程(取指令及执行指令

9、); 下条指令地址由当前指令产生(按程序逻辑顺序)取指令取指阶段分析指令执行指令执行阶段(4)输入/输出设备 *功能:实现外部-内部信息的输入/输出及格式转换; *种类:键盘、鼠标、显示器、打印机、磁盘等; *连接:通过I/O接口(又称适配器或控制器)与总线连接, I/O接口实现信息传送时的缓冲、中转等功能三、计算机软件的基本组成三、计算机软件的基本组成四、计算机工作过程· 计算机的工作过程就是执行程序的过程。 · 考查指令ADD NUM,R0的执行过程。 图1.4 CPU组成以及和存储器的连接 · 考查指令ADD NUM,R0的执行过程。 程序执行过程 *程序执

10、行的初始条件: (a)程序及数据已存放在主存储器MM中; (b)PC内容已经为即将执行的程序首条指令地址 *程序执行的实现方法: -控制器指挥与控制 取指(PC)MMIR,(PC)+“1”PC; 分析(IR)IDCU; 执行实现指令约定操作(指令转移时重写PC); 循环若无中断执行的要求,转§1.3 计算机系统的性能指标一、计算机系统的性能指标 *系统性能:指在计算机硬件上运行的计算机软件的性能1、硬件性能参数 *机器字长:指CPU一次能处理的二进制位数。 指ALU一次能处理的 n位CPU指机器字长为n个二进制位的CPU; 例如,Core 2 CPU为64位CPU 对系统性能的影响机

11、器字长越长,数据处理性能越好; (应用数据长度机器字长时,需分次运算) 对其它硬件的影响直接影响ALU、REG长度, 间接影响存储字长、数据总线位数 *机器主频:指CPU内部主时钟脉冲的频率,常用f 表示。 主频单位1GHz=1×103MHz=1×106KHz=1×109Hz; 时钟周期CPU内部基本操作的时长,常用TC表示; f 与TC关系倒数关系,即f =1/TC *存储容量:指存储器可存储二进制信息的总位数。 主存容量容量S =存储单元个数×存储字长; 辅存容量容量S =存储块个数×存储块长度; 容量单位1GB=1×210MB=

12、1×220KB=1×230B=8×230bit; 最大主存容量CPU能够访问的主存最大容量,它决定了CPU的地址和数据引脚数量2、系统性能指标 时间是唯一标准,主要有响应时间和吞吐量两个指标。 *响应时间:指一个任务从任务输入到结果输出的总时间, *吞吐量:又称吞吐率,指单位时间内能处理的工作量, 即 吞吐量 = n个任务的总工作量÷n个任务的总时间 特点反映了多任务计算机系统的软硬件总体性能 表示因工作量无统一定义,通常用MIPS及MFLOPS代替 MIPS(每秒百万次指令) MFLOPS(每秒百万次浮点运算)*其他:RAS(可靠性/可用性/可维护),

13、兼容性等二、计算机软件的发展历史1、计算机语言的发展 机器语言汇编语言高级语言应用语言 *高级语言例: FORTRAN、PASCAL、C/C+、Java2、系统软件的发展 *语言处理程序:汇编程序、编译程序、解释程序; *操作系统:DOS、UNIX、Windows; (多道程序、分时/实时、网络、分布式、面向对象) *服务性程序:装配、调试、诊断、排错; *数据库:数据库(网状、层次、关系型)、数据库管理软件; *网络:协议(NetNIOS、TCP/IP等)及实现库三、计算机系统分类按规模及功能分类 超级计算机科学计算等; 大型计算机多用户使用等; 小型计算机办公应用等; 工作站图形处理及分布

14、式计算等; 微型计算机应用广泛; 单片机/嵌入式系统工业控制等第二章 数据的表示和运算 §2.1 数据的编码一、数制及其转换1、进位计数制 *进位计数制:又称进制或数制,是用一组固定的符号和统一的规则来表示数值的方法。有数码、基数和位权3个基本参数 *常用的4种进制: *R进制数表示:(N )R=(kn-1k1k0.k-1k-2k-m)R= 其中,ki0,1,(R-1)(2)十进制数小数转换成R进制数小数 *小数转换规则:乘基取整、上左下右 例3将(0.6875)10分别转换成二、八进制数(3)十进制数转换成R进制数 *转换规则:整数部分、小数部分分别转换后再合并 练习1(19.68

15、75)10=(X)2=(Y)8,X=?Y=?4、二、八、十六进制数相互转换 *隐含规律:2=21,8=23,16=24(1)二进制、八进制数相互转换 *转换规则:从小数点向两边分别转换; 3个二进制数位(不够时补零)等价于1个八进制数位 例4(13.724)8=(001 011.111 010 100)2=(1011.1110101)2 (10011.01)2=(010 011.010)2=(23.2)8 (2)二进制、十六进制数相互转换 *转换规则:从小数点向两边分别转换; 4个二进制数位(不够时补零)等价于1个十六进制数位 例5(2B.E)16=(0010 1011.1110)2=(101

16、011.111)2 (11001.11)2=(0001 1001.1100)2=(19.C)16 二、机器数及其编码 *数值数据: 组成由符号、小数点及数值构成,可缺省符号及小数点 运算符号与数值分开运算;加减法需先比较大小 *机器数:符号数字化的数,通常0/1表示+/-; 如(+101)2(0101)2、(-0.101)2(-.101)2(1.101)2 真值带“+”或“-”符号的数 *机器数的运算方法: 采用手工运算方法,硬件实现很不方便; 如(+x)+(-y)时,先求x-y、再求结果符号、最后求x-y或y-x 采用新运算方法,便于硬件实现(如符号与数值一起运算) 必须使用新的编码方法!

17、*机器数的编码方法:原码、补码、反码、移码等1、原码表示法(原码编码方法) *基本思想:用0/1表示符号+/-,数值位为真值的绝对值 *纯整数原码定义: 设X=±xn-2x0,xi=0或1,则X原=xn-1xn-2x0, *纯小数原码定义: 设X=±0.x-1x-(n-1),则X原=x0.x-1x-(n-1) *原码的特性: X与X原关系 ·X原与X表示值的范围相同, ·+0原-0原; 运算方法符号与数值分开运算(与手工运算一致) 适合于乘除法,加减法较复杂2、补码表示法 *目标:实现符号与数值一起运算(1)有模运算与补数 示例将时针从10点拨向7点,有

18、两种拨法: 倒拨10-3=7;顺拨10+9=7+12=7 *有模运算:运算时只计量小于“模”的部分,多余部分被丢弃 模计量系统的计数范围; 同余若A、B、M满足A=B+kM (k为有符号整数), 则记 AB (mod M),称B和A为模M的同余 *补数:若a、b、M满足a+b=M,称a、b互为模M的补数 运算特征c-a = c-(M-b) = c+b (mod M), 即减去一个数等价于加上这个数的补数 可将减法运算转化为加法运算(2)补码定义 · 一个负数的补码应等于模与该数绝对值之差。即某负数X的补码为: X补 = M + X (mod M) *纯整数补码定义: 设X=±

19、;xn-2x0,xi=0或1,则X补=xn-1xn-2x0,即 说明因X连同符号位共n位,故模为2n 例6+0001补=00001,-0001补=10 0000-0001=11111 +1111补=01111,-1111补=10 0000-1111=10001 正数补码最高位(符号位)为0,负数最高位为1 +0000补=-0000补=00000 数0的补码惟一 练习2若X=-01000、Y=+01000,X补=?Y补=? 例7n=5、X0时,最大X补=01111,Xmax=24-1=+15 X0时,最小X补=10000,Xmin=-24 =-16 补码表示数的个数比原码多1个原码 无 1111

20、 1001 1000 0000 0001 0111补码 1000 1001 1111 0000 0001 0111真值 -2n-1 -(2n-1-1) -1 0 +1 +(2n-1-1) *定点纯小数补码定义: 设X=±0.x-1x-(n-1),则X补=x0.x-1x-(n-1) 例8+0.1011补=0.1011 -0.1011补=2-0.1011=10.0000-0.1011=1.0101(3)补码的特性 XX补 若X为正数,改符号位为0,其余各位不变; 若X为负数,改符号位为1,其余各位取反、末位加1 X补X 若X补最高位为0,改其为正号,其余各位不变; 若X补最高位为1,改其

21、为负号,其余各位取反、末位加1 X原X补 若X原最高位为0,X补=X原; 若X原最高位为1,X补=X原各数值位取反、末位加1 X补X原 若X补最高位为0,X原=X补; 若X补最高位为1,X原=X补各数值位取反、末位加1 *X补与-X补的关系: X补-X补X补的各位取反(含符号位)、末位加1 -X补X补-X补的各位取反(含符号位)、末位加1 练习4 若X=+01001,X原= 0 01001 ,X补= 0 01001 ; 若X=-01010,X原= 1 01010 ,X补= 1 10110 ; 若X原=001010,X= + 01010 ,X补= 0 01010 ; 若X原=101110,X=

22、- 01110 ,X补= 1 10010 ; 若X补=001110,X= +01110 ,-X补= 1 10010 ; 若X补=101110,X= - 10010 ,-X补= 0 10010 ; 若-X补=101011,X补= 0 10101 ,X原= 0 10101 ; 若-X补=001001,X补= 1 10111 ,X原= 1 01001 3、反码表示法 *目标:作为原码与补码相互转换时的一种过渡编码 *纯整数反码定义: 设X=±xn-2x0,xi=0或1,取模=2n-1,则 例14+1101反=01101,-1101反=10010 *纯小数反码定义: 设X=±0.x

23、-1x-(n-1),xi=0或1,模=2-2-(n-1),则 例15+0.1101反=0.1101,-0.1101反=1.0010 *反码与补码关系: 若X为正数,X补=X反;若X为负数,X补=X反+1 原码、补码、反码比较: 机器数的最高位均为符号位(0/1表示正/负); 若真值X为正数,X原=X补=X反; 若真值X为负数,X补=X反+1, X反=X原各位求反(符号位除外); +0补=-0补,补码比原码、反码多表示一个负数4、移码表示法 *目标:实现符号与数值一起编码 数连续时编码连续 *纯整数移码定义: 设X=±xn-2x0,其中xi=0或1,取模=2n,则 X移 = 2n-1+

24、X (mod 2n) = 2n-1 + X -2n-1X2n-1 例16-111移=0001,-001移=0111,±000移=1000, +001移=1001,+111移=1111,-1000移=0000 *移码的特性: 数在数轴上为连续编码(无符号数),便于比较大小; X移=X补符号位取反、其余各位不变三、十进制数编码 *BCD码(Binary Coded Dicimal):又称二-十进制编码,是指用4位二进制编码表示1位十进制数位的编码方式。 *BCD码种类:分有权码和无权码两种,最常用的是8421码。 BCD码缺省指8421码(特殊声明除外)!四、字符及字符串编码1、字符编码

25、 *字符编码:字符在字符集中惟一的数字化代码, 表示字符在字符集中的序号或特征号 *字符编码的类型:有输入码、内码、交换码、字模码4种 *有关字符编码的约定: 字符编码均指交换码的编码! 字符数据均指内码的编码! *常见字符编码(交换码)种类:2、字符串编码 *字符串特性: 由多个字符构成; 所含字符数不固定。 *字符串编码方法: 由各个字符编码组成; 通过特定编码标志字符串的结束,结束编码放在最后 字符集必须包含该字符(如ASCII码中编码为0的字符) 例C语言中字符串“am”可编码为1100001 1101101 000000五、校验码 *冗余校验思想: 用待发数据(M)形成校验信息(P)

26、,M与P一起传送; 用接收数据(M)形成新校验信息(P”),检错并纠错 *术语:校验码由数据位和校验位组成的信息编码; 检错(检验)检查数据在传送过程中有/无错误; 纠错(校正)根据错误位置纠正数据(取反) *常见校验码:奇偶校验码、海明校验码1、 奇偶校验码2、 *编码原理:采用1位校验位,使数据位及校验位中“1”的位数为奇数或偶数个数 *校验方法: 故障字S S=P P”,其中P是接收的、P”是形成的; 检错 若S=0无错误,若S=1有错误; 纠错 无此能力(无法获得错误位置) *校验能力:只能检测奇数个错误,无纠错能力 例3下列接收的校验码01001、10100、10011中,只有一个有

27、奇数位错,请问发送时采用的是奇校验还是偶校验码? *应用:广泛应用于I/O传输的数据校验§2.2 数据的表示 计算机用编码表示数据: 计算机只支持最常用(最基本)的数据类型: 数据表示计算机硬件能够直接识别和引用的数据类型 应用数据数据表示的转换:程序员或编译程序完成一、数值数据的数据表示方法1、数值数据的数学特征 进制可有多种; 符号为“+”或“-”,可以没有符号; 小数点为“”,可隐含表示,小数点位置可任意变化; 数码长度可任意变化; 不会产生运算溢出2、冯·诺依曼模型计算机的硬件特征 指令和数据用二进制表示,采用二进制运算; 二进制中只有0和1,无法表示符号和小数点;

28、 机器字长固定,CPU内部全部采用定长方式处理。3、数值数据的表示方法 *进制问题处理:只支持二进制方式; *符号问题处理: 有符号数用数字表示符号,数据本身无法区分 无符号数符号位置为数值;在指令级进行区分 *小数点问题处理: 点的表示用隐含方式表示; 位置表示约定不同数据类型的位置不同 *数码长度问题处理: 不同数据类型数码长度固定; 便于定长方式处理 同一数据类型可有几种长度; 可提高处理及存储效率 *运算问题处理: 运算方法按数据表示的格式及编码进行相应运算; 数据类型区分由指令操作码区分; 溢出处理硬件检测并发出通知,由软件处理 数值数据的处理方法:包括数据的表示和数据的操作方法二、

29、数的定点表示1、定点表示方法 指约定数据中隐含的小数点位置固定不变。 *定点表示形式:有约定在数值最低位之后和最高位之前两种2、定点数的表示 采用定点表示格式的数称为定点数,通常有几种数码长度。 *定点数的表示范围: (设数码长度为n位)三、数的浮点表示1、浮点表示方法 指约定数据中隐含的小数点位置是可变的。 *浮点表示形式:由尾数和阶组成 格式 表示尾数用定点纯小数表示,阶用定点整数表示2、浮点数的表示 采用浮点表示格式的数称为浮点数,通常有几种数码长度。 *浮点数的表示范围与精度: 假设尾数及阶的基均为2,数值长度分别为m位及e位 例1若浮点表示格式中m10、e4,尾数及阶均为补码编码方式

30、,写出(-54)10的机器码。 解:(-54)10=(-110110)2=-0.11011×2+110, 浮点数机器码为 00110 10010100000 例2若浮点表示格式中尾数为8位(含1位符号位)、阶为5位(含1位符号位),写出下列实数的浮点数及机器码。 例3浮点表示格式同例2,写出下列机器码的浮点数。3、浮点数的规格化 *目的:在现有的浮点数表示格式中,使表示精度最大化。 例4若浮点表示格式中m3、e3、尾数和阶均为原码编码方式,不同表示方法的浮点数精度不同: +101.1=0.1011×23=0.01011×24=0.001011×25 *规

31、格化数的要求:尾数真值的最高位为1,即 1/2|M|1 *规格化的操作: 左规尾数左移一位,阶码减一; 右规尾数右移一位,阶码加一。 应用非规格化数规格化数,可能需多次规格化操作 例5若浮点数尾数及阶的基均为2,回答下列问题: 原码尾数最高数值位为1; 补码尾数最高数值位与符号相反 便于硬件实现4、IEEE 754标准 *表示格式及数码长度: 有单精度、双精度两种格式及长度 *编码方式: 数制M和E均采用二进制方式(即RM=RE=2); 码制M为原码编码的定点纯小数(改进了定点位置), E为移码编码的定点整数(改进了移码值) *阶的码制:采用的是余127码和余1023码 余X码偏移值为X的移码

32、称为余X码, 标准移码:真值=E-28-1=E-128, 余127码: 真值=E-(28-1-1)=E-127; 阶的范围1E254,而0和255另作他用, 即-126阶的真值127 *尾数的码制: (以单精度格式为例) 支持非规格化尾数和规格化尾数两种方式; 非规格化尾数尾数真值=±0.m-1m-23, 机器码M=m-1m-23,尾数精度=23位; 规 格 化尾数规格化的尾数真值=±1.m-2m-24, 机器码M=m-2m-24,尾数精度=24位 *IEEE 754标准浮点表示的特征: (以单精度格式为例) 例5求(-11/128)10的IEEE 754单精度规格化数的机

33、器码 解(-11/128)10 =( -1011)2×2-7 =(-0.1011)2×2-3 =(-1.011)2×2-4=(-1.011)2×2123-127 例6求IEEE 754单精度码为(CC968000)16的浮点数的真值N 解(CC968000)16=1 10011001 00101101000000000000000 N为负数,浮点数为规格化数(110011001254); 阶=(10011001)2(01111111)2 =(00011010)2=(26)10 尾数=(1.00101101)2 =(1.17578125)10 N=(1)1

34、×1.17578125×226=-1.17578125×226 数值数据的表示小结:表示格式有定点和浮点两种,编码方式决定运算器的运算方法,数码长度总是固定的四、非数值数据的数据表示 MEM字长的特征: MEM字长均为2n位(n为常数);便于数据长度的二进制运算 MEM字长种类有二进制位、机器字长、折中长度3类 提高MEM的存储效率: 1、字符数据的表示 指字符的交换码在存储/处理时的表示方式,即字符的内码。2、逻辑数据的表示 *数学特征:值域真、假; 运算与(AND)、或(OR)、非(NOT)等 *数据的表示方法: 数码长度1位n位(n为MEM字长倍数);以提高

35、存储效率 编码方式各位独立编码,1/0可表示真/假 *运算处理方法:可采用所有位同时按位进行与/或/非运算 可获得最大性能一位操作时,软件负责准备数据 例28位逻辑数A和B如何实现第0位的OR操作(结果在A中)? 解:步骤为 C=B AND 01H; A=A OR C§2.3 定点数运算方法一、移位运算1、移位及移位运算 *移位:数值相对于某个位置的移动 例20.0m=2000.0cm,称20相对于小数点左移了2位 *移位操作:有左移、右移2种类型; 二进制数左移或右移n位相当于乘以或除以2n *移位运算:对计算机中机器数的移位操作 运算种类对有符号数,有算术左移、算术右移; 对无符

36、号数,有逻辑左移、逻辑右移 运算参数操作数、移动位数2、逻辑移位运算 *操作数类型:无符号机器数 *运算规则: 机器数整体移位,移出的数丢弃,出现的空位补0 例1某REG内容为00111001,逻辑移位运算结果如下: 练习若(REG)=11001001,逻辑左移1位再右移1位的结果? *溢出判断方法:左移、移丢数码为1时运算溢出3、算术移位运算 *操作数类型:有符号机器数(原码、补码等) *运算规则:符号位不变,数值部分整体移位,空位添补规则如下表(根据编码方式的数学特征添补) *运算实现方法:通常用移位寄存器实现右移移丢数值1仅影响精度 *溢出判断方法:左移移丢数值1时溢出 原码左移、移丢数

37、码为1时溢出; 补码/反码左移、移丢与符号相反的数码时溢出二、定点加减运算1、补码加减运算 (1)补码加减运算规则 *加法:A+B补=A补+B补 *减法:A-B补=A+(-B)补=A补+-B补 (2)补码运算溢出判断方法 *溢出判断:用1位符号位判断 例4若n=4,补码表示范围-8X+7 0110(+6) 1111(-1) 0101(+5) 1011(-5) + 1011(-5) + 1100(-4) + 0100(+4) + 1100(-4) 10001(+1) 11011(-5) 01001(+9) 10111(-9) 即:相同符号数相加、且结果与操作数符号不同时溢出! 设A补=An-1A

38、n-2A0,B补=Bn-1Bn-2B0, Z补=A补+±B补=Zn-1Zn-2Z0 例5设A=-11/16,B=+7/16,A+B补、A-B补是否溢出? 解:A+B补= 1.0101 A-B补= 1.0101 + 0.0111 + 1.1001 = 1.1100 =10.1110 对A+B补,OVR=(1 0)(0 0)=0 不溢出 对A-B补,OVR=(1 0)(1 0)=1 溢出 *溢出判断优化:用结果的符号位及最高数值位进位判断 An-1 An-2 A0+ Bn-1 Bn-2 B0 Zn-1 Zn-2 Z0 Cn-1 Cn-2 *溢出判断:用2位符号位判断 变形补码采用2个符号

39、位的补码A变补=AnAn-1An-2A0, AnAn-1表示符号(00为正数、11为负数) 例6若X=-010,Y=-110,X+Y变补溢出否? 解:X变补=11 110,Y变补=11 010 X+Y变补= 11 110 + 11 010 = 11 000 1 1=0 不溢出(3)补码加减运算所需的硬件配置 *加减法实现思路:加减法统一处理C-1=1,C-1=0,=1=1 加法 A补+B补+0; 减法 A补+-B补=A补+B补+1 *加减法实现思路:加减法统一处理 加法 A补+B补+0; 减法 A补+-B补=A补+B补+1 笔-纸乘法方法 例1. X=1011,Y=1101,X×Y的

40、笔-纸乘法过程: 1. 原码一位乘 用原码实现乘法运算时,符号位与数值位是分开计算的; · 设:X原=xnxn-1¼¼ x1x0,Y原= ynyn-1¼¼y1y0 (其中xn 、yn分别为它们的符号位) · 若 X×Y原=z2nz2n-1¼¼z1z0 (z2n为结果之符号位) 则 z2n= xn Å yn · z2n-1¼¼z1z0 = (xn-1¼¼ x1x0)×(yn-1¼¼y1y0 )类似两个无符号数相乘。 就

41、笔-纸乘法方法,为提高效率而采取的改进措施 每将乘数Y 的一位乘以被乘数得X×yi后,就将该结果与前面所得的结果累加,得到部分积Pi; 将部分积Pi右移一位与X×yi相加;加法运算始终对部分积中的高n位进行; 对乘数中“1”的位执行加法和右移运算,对“0”的位只执行右移运算,而不执行加法运算; 上述乘法运算可以归结为循环地计算下列算式: · 设P0=0 P1= 2-1 (P0+ X×y0) P2= 2-1 (P1+ X×y1) Pi+1= 2-1 (Pi+ X×yi) ( i=0,1,2,3, ¼¼n-1 ) Pn

42、= 2-1 (Pn-1+ X×yn-1) · 显然,X×Y= Pn 对于两个n位无符号数乘法的一种可行的算法: 1)置计数器为n; 2)清除2n位部分积寄存器; 3)检查乘数最右位(初始时为最低位),若为“1”,加被乘数到部分积高n位中; 4)将部分积右移一位; 5)将乘数右移一位; 6)计数器减1,结果不为0,则从3)开始重新执行;若结果为0,则从部分积寄存器读出乘积。 实现这种方法的二个定点数乘法的逻辑电路框图nn 例1 已知 X原= 01101 , Y原= 01011 , · 若 X×Y原= z8z7¼¼z0 则 z8

43、= 0Å0 = 0 · z7z0=1101×1011的计算采用上述乘法流程,实现的具体过程如下:补码乘法例: 已知 X=0.1011,Y= - 0.0001 X补= 01011 , Y补= 11111 X×Y补= 111110101 X补×Y补= 101010101 · 显然,X×Y补¹ X补×Y补 对两个正数来说,它们补码的乘积等于它们乘积的补码。若乘数是负数时,这种情况就不成立了。 Booth(布斯)乘法 A.D.Booth算法思想: · 相乘二数用补码表示,它们的符号位与数值位一起参与乘法

44、运算过程,得出用补码表示的乘法结果。 Booth算法推导: · 已知X补= xnxn-1 x0 , Y补= ynyn-1 y0 ; · 根据补码定义:· 可得出其真值: Y= Y补- 2n+1yn X×Y=X×Y补- 2n+1yn= Xyn2n + yn-1 2n-1 + + y121 + y0 20 - 2n+1yn = X-yn2n + yn-1 2n-1 + + y121 + y0 20= 2n (yn-1 - yn) X + 2n-1 (yn-2 yn-1) X + + 21 (y0 y1) X + 20 (0 y0) X·

45、y-1为增设的一个附加位,初值为0; X×Y补=2n (yn-1 - yn) X + 2n-1 (yn-2 yn-1) X + + 21 (y0 y1) X + 20 (y-1 y0) X补令 X×Y补=X×Y补×2nX×Y补= (yn-1 - yn) X + 2-1 (yn-2 yn-1) X + · 得到如下递推公式 令P0补0,有: P1补=2-1(P0+ (y-1-y0)×X补 P2补=2-1(P1+ (y0- y1)×X补 Pi 补=2-1(Pi-1+ (yi-2-yi-1)×X)补 (i=1

46、n) Pn补=2-1(Pn-1+ (yn-2-yn-1)×X)补 X*Y补=Pn+1补=Pn+ (yn-1-yn)×X补 · (yi-1 yi)X实际上并不做乘法,只要比较相邻两位乘数以决定+X、X或+0。 · 在计算机中,对于定点整数,只要认定小数点在乘积之末,相当于将小数点右移n位。 · 对乘数的连续两位yi和yi-1进行判断若yi yi-1= 01, 则Pi+1补=2-1(Pi + X)补若yi yi-1 =10, 则Pi+1补=2-1 (Pi - X)补若yi yi-1 =00或11, 则Pi+1补=2-1Pi 补 · 一个补码数据的右移

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论