计算机组成原理第3章 运算器和运算方法
【精品】计算机
7.在浮点加法运算中,完整的操作步骤是对阶。尾数相加、结果规格化、舍入、溢出检查。
8.定点运算器中一般包括ALU、寄存器、对路选择器、移位器和数据通路。
9.ALU的基本逻辑结构是快速进位加法器,它比行波进位加法器优越,具有先行进位逻辑,不仅可以实现高速运算,还能完成逻辑运算。
10.浮点运算器由阶码运算器和尾数运算器组成,它们都是定点运算器,尾数运算器要求能进行加、减、乘、除运算。
18.一条机器指令由一段微指令构成的微程序来解释执行;微指令可由一系列微命令组成。
19.控制部件通过控制线向执行部件发出各种控制命令,通常把这种控制命令叫做微命令。而执行部件接受此控制命令后进行的操作叫做微操作。
20.一条微指令可划分为微命令字段和控制字段;微指令的基本格式可分为水平型和垂直型。
12.虚拟存储器管理的基本方法有页式、段式和段页式三种。
13.在虚拟存储器中,一般采用全相联地址映像方法和LRU更新策略。
14.虚拟存储器中,程序正在执行时,由操作系统完成地址映像。
15.在磁表面存储器中,调频制(FM)记录方式目前主要用于单密度磁盘存储器,改进调频制(MFM)记录方式主要用于双密度磁盘存储器,而在磁带存储器中一般采用调相制(PE)和成组编码(GCR)记录方式。
21.由于数据通路之间的结构关系,微操作可分为相容性和相斥性两种;
在同一微周期中不可能同时出现的微命令,称之为互斥的微命令。
在同一微周期中可以同时出现的微命令,称之为相容的微命令。
22.在微指令的字段编码中,操作控制字段的分段必须遵循的原则包括:
把互斥性的微命令分在同一段内。
一般每个小段要留出一个状态0,表示不操作。
1.-1的补码定点整数表示时为1...1,用定点小数表示时为1...0。
计算机组成原理 [袁春风]chap3_1
15
南京大学计算机系 多媒体技术研究所 袁春风
3.2.3 先行进位ALU
(1)为什么用先行进位方式 行波进位是串行逐级传递的 整个和的生成受到行波进位的影响 因此 现代计算机采用一种先行进位(Carry look ahead)方式 (2)如何产生先行进位 定义两个辅助函数 Gi=aibi…进位生成 Pi=ai⊕bi…进位传递 通常把实现上述逻辑的电路称为进位生成/传递部件 全加逻辑方程 Si=Pi⊕Ci Ci+1=Gi+PiCi (i=0,1,…n) 设n=4,则 C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0 C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0 由上式可知:各进位之间无等待 相互独立并同时产生 通常把实现上述逻辑的电路称为4位CLA部件 由此 根据Si=Pi⊕Ci 可并行求出各位和 通常把实现Si=Pi⊕Ci的电路称为求和部件 CLA加法器由“进位生成/传递部件” “CLA部件”和“求和部件”构成
高位进位逻辑表达式
9
南京大学计算机系 多媒体技术研究所 袁春风
全加和逻辑
10
南京大学计算机系 多媒体技术研究所 袁春风
全加和逻辑 续
11
南京大学计算机系 多媒体技术研究所 袁春风
全加器逻辑图
上述全加器和Sum的延迟为6ty,进位Cout的延迟为 (假定一个与/或门延迟为1ty 异或门的延迟则为
AL BL CL DL CS DS SS ES IP 16位
《计算机组成原理》名词解释
摩尔定律:对集成电路上可容纳的晶体管数目、性能和价格等发展趋势的预测,其主要内容是:成集电路上可容纳的晶体管数量每18个月翻一番,性能将提高一倍,而其价格将降低一半。
主存: 计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取。
控制器:计算机的指挥中心,它使计算机各部件自动协调地工作。
时钟周期:时钟周期是时钟频率的倒数,也称为节拍周期或T周期,是处理操作最基本的时间单位。
多核处理器:多核处理器是指在一枚处理器中集成两个或多个完整的计算引擎(内核)。
字长:运算器一次运算处理的二进制位数。
存储容量: 存储器中可存二进制信息的总量。
CPI:指执行每条指令所需要的平均时钟周期数。
MIPS:用每秒钟执行完成的指令数量作为衡量计算机性能的一个指标,该指标以每秒钟完成的百万指令数作为单位。
CPU时间:计算某个任务时CPU实际消耗的时间,也即CPU真正花费在某程序上的时间。
计算机系统的层次结构:计算机系统的层次结构由多级构成,一般分成5级,由低到高分别是:微程序设计级,机器语言级,操作系统级,汇编语言级,高级语言级。
基准测试程序:把应用程序中使用频度最高的那那些核心程序作为评价计算机性能的标准程序。
软/硬件功能的等价性:从逻辑功能的角度来看,硬件和软件在完成某项功能上是相同的,称为软/硬件功能是等价的,如浮点运算既可以由软件实现,也可以由专门的硬件实现。
固件:是一种软件的固化,其目的是为了加快软件的执行速度。
可靠性:可靠性是指系统或产品在规定的条件和规定的时间内,完成规定功能的能力。
产品可靠性定义的要素是三个“规定”:“规定条件”、“规定时间”和“规定功能”。
MTTF:平均无故障时间,指系统自使用以来到第一次出故障的时间间隔的期望值。
MTTR:系统的平均修复时间。
MTBF:平均故障间隔时间,指相邻两次故障之间的平均工作时间。
可用性:指系统在任意时刻可使用的概率,可根据MTTF、MTTR和MTBF等指标计算处系统的可用性。
补码一位乘法
计算机组成原理第三章运算方法与运算器3.4 补码一位乘法1补码一位乘法的基本方法设[X]补= X0X1X2X3…X n[Y]补= Y0Y1Y2Y3…Y n可证明:[X⋅Y]补= [X]补•( 0.Y1Y2Y3…Yn) –Y0• [X]补进一步展开合并后可得:n[x•y]补=[x] 补•∑(y i+1-y i)2-i (符号位参加运算)i=01补码一位乘法的基本方法[x•y] 补=[x] 补• (y i+1-y i)2-i (符号位参加运算)补码一位乘法的运算规则如下:(1)如果y n+1=y n,部分积加0,部分积算术右移1位;(2)如果y n+1y n=10,部分积加[x]补,部分积算术右移1位;(3)如果y n+1y n=01,部分积加[-x]补,部分积算术右移1位.重复进行n+1步,但最后一步不移位。
包括一位符号位,所得乘积为2n+1位,其中n为数据位位数.1补码一位乘法的基本方法几个特殊问题的处理[x •y] 补=[x] 补• (y i+1-y i )2-i (符号位参加运算) 设[X]补= X 0X 1X 2X 3…X n [Y]补= Y 0Y 1Y 2Y 3…Y n(1)i=n 时,y n+1=?(2)y n+1是哪个寄存器?(3)算术右移的对象有哪些?y n+1=0在乘数寄存器Y 后增加的一位部分积和乘数寄存器均右移2补码一位乘法的举例例1 已知X= +1101 Y=+1011 用补码一位乘法求X⨯Y解:[X]补=01101 [Y]补=01011 [–X]补=10011部分积乘数说明000000 010110Y n+1< Y n部分积+[–X]补+ 110011110011→111001101011结果右移一位,Y n+1= Y n部分积+0+ 000000111001→111100 110101结果右移一位, Y n+1> Y n部分积+[X]补+ 0011010010012补码一位乘法的举例部分积乘数说明→000100 111010将结果右移一位, Y n+1< Y n部分积+[–X]补+ 110011110111→111011 111101将结果右移一位, Y n+1> Y n部分积+[X]补+ 001101001000∴[X⋅Y]补=010001111∴X⋅Y= 010001111。
计算机组成原理第三章运算方法与运算器(含答案)
第三章运算方法与运算器3.1定点数运算及溢出检测随堂测验1、定点运算器可直接进行的运算是() (单选)A、十进制数加法运算B、定点数运算C、浮点数运算D、定点数和浮点数运算2、设计计算机字长为8位,两个十进制数X = -97 ,Y = 63, [x]补- [y]补的结果为()(单选)A、01100000B、11011110C、负溢出D、正溢出3、下列关于定点运算溢出的描述中,正确的是( ) (多选)A、补码数据表时,同号数相加可能发生溢出B、补码数据表时,异号数相减可能发生溢出C、参加运算的两个数,当作为有符号数和无符号数进行加法运算时,不可能两者都溢出D、溢出检测既可用硬件实现,也可用软件实现4、设X为被加(减)数,Y为加(减)数,S为运算结果,均采用补码数据表示,下列关于溢出电路设计的描述中,正确的是()(多选)A、采用单符号位时,直接用X、Y和S的符号位就可设计溢出监测电路B、采用双符号位时,可直接用S的双符号位设计溢出检测电路C、采用单符号位时,可直接用X、Y最高有效数据位运算后的进位位和S的进位设计溢出监测电路D、对无符号数的加/减运算,可利用运算器的进位信号设计溢出检测电路3.2 定点数补码加、减运算器设计随堂测验1、如图所示为基于FA的运算器:为了利用一位全加器FA并配合使用控制信号P,当P= 0/1时实现A、B两个数的加法/减法运算,图中空白方框处电路的逻辑功能应该是()(单选)A、与门B、或门C、异或门D、非门2、如图所示为带溢出检测功能的运算器该电路完成的溢出检测功能是()(多选)A、带符号数的加法溢出检测B、带符号数的加法溢出检测C、无符号数的加法溢出检测D、无符号数减法的溢出检测3、下列关于并行进位的描述中,正确的是()(多选)A、并行进位可以提高运算速度B、并行进位模式下,各进位位采用不同电路各自产生,相互间不再有依存关系C、采用先行进位部件和ALU模块可构建长度可变的并行进位运算器D、并行进位只对加法有效,而对减法无效4、四位并行ALU中有两个特殊的输出端,分别是:G =A3B3+(A3+B3)(A2B2+(A2+B2)(A1B 1+ (A1+B1) A 0B0)) 为进位产生函数,P=(B3+A3) (B2+A2)( A1+B1 ) (A0+B0)为进位传递函数下列关于P、G的描述中,正确的是()(多选)A、设计P和G的目的是为了构建位数更长的并行ALUB、P和G对算术运算和逻辑运算都有意义C、P的作用是将本片ALU的最低进位输入位传递到本片ALU的最高进位输出端D、G的作用是根据参与运算的两个数据产生本片ALU的最高进位输出3.3 原码一位乘法随堂测验1、设计算机字长为8位,X = - 19,对该分别执行算术左移和逻辑左移一位后的结果分别为()(单选)A、11011010 ,11011010B、11110010 ,11110010C、11011000 ,11011000D、11110000 ,111100002、设计算机字长为8位,X = - 19,对该分别执行算术右移和逻辑右移一位后的结果分别为()(单选)A、11111001,11111001B、11111001,01111001C、11110110,01110110D、11110110,111101103、关于原码一位乘法的下列描述中,正确的是()(多选)A、数据取绝对值参加运算B、符号位单独处理C、乘法执行过程中的所有移位都是算术移位D、最后的结果由部分积寄存器和乘数寄存器共同保存4、计算机字长为n位, 下列关于原码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次算术右移和n 次加法运算B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 还是加x的绝对值,取决于此时的YnD、乘法过程中右移部分积是为了使部分积与下次的加数按位对齐3.4 补码一位乘法随堂测验1、16位补码0X 8FA0扩展为32位的结果是() (单选)A、0X 0000 8FA0B、0X FFFF 8FA0C、0X FFFF FFA0D、0X8000 8FA02、计算机字长为n位, 下列关于补码一位乘法操作过程的描述中,正确的是() (多选)A、乘法过程中共执行n 次加法和n-1 部分积右移B、乘法过程中共执行n -1次算术右移和n-1 次加法运算C、乘法过程中,部分积加0 、[x]补还是[-x]补,取决于此时的Yn+1 与Yn的差D、乘法过程中右移部分积的目的是为了使部分积与下次的加数对齐3、关于补码码一位乘法的下列描述中,正确的是()(多选)A、符号位和数据位一起参加运算B、运算开始前,需要在乘数寄存器Y后面补上Yn+1且其初值为0C、乘法执行过程中的对部分积的移位是算术右移D、最后的结果由部分积寄存器和乘数寄存器共同保存3.5 乘法运算器设计随堂测验1、下图为原码一位乘法器原理图正确的是()(单选)A、A: 部分积寄存器B:乘数寄存器C: |X| D: YnB、A: 部分积寄存器B:乘数寄存器C: |X| D: Yn+1C、A: 被乘数寄存器B:乘数寄存器C: |X| D: YnD、A: 被乘数寄存器B:乘数寄存器C: |X| D: Yn+12、下图为补码一位乘法原理图正确的是() (单选)。
计算机组成原理(白中英)
D0
D1
D2
D3
A校验码 B校验码 C校验码 D校验码
系统结构
RAID4
I/O系统
❖ 专用奇偶校验独立存取盘阵列
❖ 数据以块(块大小可变)交叉的方式存于各盘, 奇偶校验信息存在一台专用盘上
数据块
校验码 产生器
A0
A1
A2
A3
B0
B1
B2
B3
C0
C1
C2
C3
D0
D1
D2
D3
A校验码 B校验码 C校验码 D校验码
❖ 只写一次光盘
只写一次光盘(Write Once Only):可以由用户写入 信息,不过只能写一次,写入后不能修改,可以多次读 出,相当于PROM。在盘片上留有空白区,可以把要修 改和重写的的数据追记在空白区内。
❖ 可檫写式光盘
可檫写式光盘(Rewriteable):利用磁光效应存取信 息,采纳特殊的磁性薄膜作记录介质,用激光束来记录、 再现和删除信息,又称为磁光盘,类似于磁盘,可以重 复读写。
RAID6
I/O系统
❖ 双维奇偶校验独立存取盘阵列
❖ 数据以块(块大小可变)交叉方式存于各盘, 检、纠错信息均匀分布在全部磁盘上
系统结构
A0 A1 A2
3校验码 D校验码
B0 B1
2校验码 C校验码
B2
C0
1校验码 B校验码
C1 C2
0校验码 A校验码
D1 D2 D3
校验码 产生器
7.7 光盘存储设备
– 正脉冲电流表示“1”,负脉冲电流表示“0”; – 不论记录“0”或“1”,在记录下一信息前,记录电流
恢复到零电流 – 简洁易行,记录密度低,改写磁层上的记录比较困难,
计算机组成原理实验三运算器
实验三:八位运算器组成实验一:实验目的:1:掌握运算器的组成原理、工作原理;2:了解总线数据传输结构;3:熟悉简单的运算器的数据通路与控制信号的关系;4:完成给定数据的算术操作、逻辑操作;二:实验条件:1:PC机一台;2:MAX+PLUSⅡ软件;三:实验内容(一)1:所用到的芯片74181:四位算术逻辑运算单元;74244:收发器(双向的三态缓冲器)74273:八位D触发器;74374:八位D锁存器;74163:八进制计数器;7449:七段译码器2:实验电路图(1)运算器电路图(A)数据输入电路由两个十六进制计数器连接成16*16=256进制的计数器,可以实现八位的输入。
(B)运算功能选择电路由一个十六进制计数器组成,可以实现16种不同运算的选择。
再加上逻辑运算器上的M位和Cn位的选择,一共可以实现16*3=48种运算功能。
内部由一个74163构成。
内部结构:(C)数码管扫描显示电路由一个扫描电路scan和一个七段译码器7449组成,scan 内部是一个二选一的多路复用器。
scan内部结构:(D)运算器电路图(2)波形仿真图(A)输入两个数A=05H,B=0AH,O5H DR1,0AH DR2,并通过经由74181在总线上显示。
(B )对两个数进行各种数学运算和逻辑运算。
加法运算:输出控制:s4s3s2s1=0001,M=0,CN=0 输出使能:ALU_BUS=0 计算结果:05H+0AH=10H四:实验内容(二)给定A,B两个数,设A=05H,B=0AH,完成几种常见的算术运算和逻辑运算画出运算的波形和仿真图(1)逻辑运算:A and B,A or B,取反/A,A⊙B,A⊕B;(2)算术运算:A加B,A加B(带进位),A减B;(3)复合运算:A加B 减((/A)〃B)加B;(/(A⊙B)减(A⊕B)))加1计算(A加B)减((/A)〃B)后需要重新送入数据B,存入R5并且装载到LDDR2中。
计算机组成原理复习题带答案
计算机组成原理复习题带答案第1章计算机系统概述⼀、选择题1、在下列四句话中,最能准确反映计算机主要功能的是 C。
A、计算机可以存储⼤量信息B、计算机能代替⼈的脑⼒劳动C、计算机是⼀种信息处理机D、计算机可实现⾼速运算2、1946年2⽉,在美国诞⽣了世界上第⼀台电⼦数字计算机,它的名字叫(1)C,1949年研制成功的世界上第⼀台存储程序式的计算机称为(2)。
(1)A、EDVAC B、EDSAC C、ENIAC D、UNIVAC-Ⅰ(2)A、EDVAC B、EDSAC C、ENIAC D、UNIVAC-Ⅰ3、计算机硬件能直接执⾏的只能是B。
A、符号语⾔B、机器语⾔C、汇编语⾔D、机器语⾔和汇编语⾔4、对计算机软、硬件资源进⾏管理,是 A 的功能。
A、操作系统B、数据库管理系统C、语⾔处理程序D、⽤户程序⼆、填空题1、计算机的各⼤部件通过____总线____________连接在⼀起,它是各部件之间传输信息的通道。
2、计算机按内部信息形式可以分为___模拟____________和___数字信号_两类。
3、计算机硬件⼀般由_运算器,控制器_______、__存储器______、_输⼊_______和、____输出____和五⼤部分组成。
4、运算器是⼀个数据加⼯部件,主要完成⼆进制___算术_______运算及__逻辑________运算。
5、运算器的___位数________越多,计算的精度就越⾼,但是所费的电⼦器件也越多,成本越⾼。
三、简答题1、简述计算机的发展过程。
1、第⼀代电⼦管计算机1946年2⽉,诞⽣了世界上第⼀台电⼦数字计算机——ENIAC ,1949年研制成功的世界上第⼀台存储程序式的计算机EDSAC。
2、第⼆代晶体管计算机1947年在贝尔实验室制成第⼀个晶体管,进⼊20世纪50年代全球出现⼀场以晶体管代替电⼦管的⾰命。
3、第三代集成电路计算机4、⼤规模集成电路计算机5、超⼤规模集成电路计算机3、冯.诺依曼计算机的特点是什么?它包括哪些主要组成部分?各部分的功能是什么?1、计算机由运算器、存储器、控制器、输⼊设备和输出设备五⼤部件组成2、指令和数据以同等的地位存放在存储器内,并可以按地址寻访3、指令和数据均⽤⼆进制数表⽰4、指令由操作码和地址组成。
计算机组成原理第三章
• 通信总线
–是指计算机系统之间或计算机 系统与其他系统(如控制仪表 等)之间的通信传输线。 –IDE、SCSI、USB、RS-232
通信总线
系统总线按传输信息不同分类
据总线是双向的
3.2
• 数据总线 ( DB ): 用来传输各功能部件之间的数据,数
数据总线的条数称为数据总线宽度。比如,16位总线,指其 数据总线为16根。
数据传输率 (总线带宽):即单位时间内总线上传输数据的 位数,用MB/s(每秒多少兆字节)表示。 例:总线工作频率33MHz,总线宽度32位,则标准传输 率= 33×32/8=132MB/s。 总线复用:通常地址总线与数据总线在物理上是分开的两种 总线。为提高总线的利用率,将地址总线和数据总线共用一组 物理线,在某一时刻该总线传输地址信号,另一时刻传输数据 信号或命令信号。
3. 总线通信的四种方式
(1)同步通信
3.5
通信双方由统一时标控制数据传送称为同
步通信。
时标通常由CPU的总线控制部件发出,送
到总线上的所有部件;也可以由每个部件各自
的时序发生器发出,但是必须有总线控制部件
发出的时钟信号对它们进行同步。
同步式数据输入传输
T2时刻发出读命令;从 总线上两个部件完 模块按照所指定的地址 T4 时刻开始输入设备不再 CPU 在 T3 时 刻 开 始 , 成一次完整而可靠 和命令进行一系列内部 一直维持到 向数据总线上传送数据, 的传输时间 主模块在 T1时刻 动作,必须在 T3时刻前 T4时刻, 撤消它对数据总线的驱动, 可以从数据线上获取 发出地址信息 找到CPU所需的数据, 从 T4 起,数据总线呈浮空 信息并送到其内部寄 并送到数据总线上 状态 存器中
计算机组成原理与汇编语言3
补码加减运算
注意:求一个数的补码: 正数时,补码和原码相同; 负数时, 对原码除符号位外求反加1。
例1: 1: y = -0.0110 [y]补 = 1.1010 例2: y = 0.0111 [y]补 = 0.0111 [-y]补 = 1.1001 [-y]补 = 0.0110
第三章 数值运算及运算器
例(3):按位清
设:A=10010010,将A最高位清“0” 设:B=01111111 10010010 A ∧ 01111111 B ——————— 00010010 A
第三章 数值运算及运算器
例(4):按位测试
设:A=10010010,测A最高位是否为“1”; 设: B=10000000 10010010 ∧ 10000000 ——————— 10000000 结果不全为“0”,表明被测码的被测位为“1”。 结果为全“0”,表明被测码的被测位为“0”。
第三章 数值运算及运算器
(一)对进位公式的分析 设相加的两个n位操作数为: A=An-1An-2…Ai..A0 B=Bn-1Bn-2…Bi..B0
Ci+1 = AiBi + (Ai⊕Bi) Ci —— 进位逻辑表达式 设:Gi = AiBi —— 进位产生函数(Carry Generate Function)
二、溢出检测
1. 采用一个符号位判断
规则: • 当两个同号数相加,若所得结果符号与两数符号不同, 则表明溢出。 • 设An、Bn分别表示两个操作数的符号; Sn表示结果 的符号, 则有: 溢出=AnBnSn + AnBnSn
63+66=129 0,0111111 + 0,1000010 1,0000001
计算机组成原理课后答案
溢出 7.用原码阵列乘法器、补码阵列乘法器分别计算x*y。 (1)x = 0.11011 y = - 0.11111 (2)x = -0.11111 y = - 0.11011 解:(1)原码阵列
的数据,外存通常指的是磁盘、磁带、光盘存储器等,用于存放暂不运 行的程序和暂不处理的数据。CPU是运算器和控制器的合称,适配器是 指连接主机与外设一个中间电路,也叫接口,其作用相当于一个转换 器,保证外设用与主机要求相适应的形式发送和接收信息。 9.计算机的系统软件包括哪几类?说明它们的用途。 答:计算机的软件包括系统软件和应用软件。系统软件用来简化程序设 计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能 及用途。它可分为四类:(1)各种服务性程序,如诊数据程序、排错 程序、练习程序等;(2)语言程序,如汇编程序、编译程序、解释程 序等;(3)操作系统程序;(4)数据库管理系统(DBMS)。而应用 软件是用户利用计算机来解决某些问题而编制的程序,如工程设计程 序,数据加工程序,自动控制程序,企业管理程序、情报检索程序、科 学计算程序等等。 10.说明软件发展的演变过程。 答:在早期的计算机中,人们是直接用机器语言来编写程序的,这种程 序称为手编程序或目的程序;后来,为了编写程序方便和提高使用效 率,人们使用汇编语言来编写程序,称为汇编程序;为了进一步实现程 序自动化和便于程序交流,使不熟悉具体计算机的人也能很方便地使用 计算机,人们又创造了算法语言,用算法语言编写的程序称为源程序, 源程序通过编译系统产生编译程序,也可通过解释系统进行解释执行; 随着计算机技术的日益发展,人们又创造出操作系统;随着计算机在信 息处理、情报检索及各种管理系统中应用的发展,要求大量处理某些数 据,建立和检索大量的表格,于是产生了数据库管理系统。 11.现代计算机系统如何进行多级划分?这种分级观点对计算机设计 会产生什么影响? 答:现代计算机系统可分为五个层次,第一级是微程序设计级;第二级 是一般机器级;第三级是操作系统级;第四级是汇编语言级;第五级是 高级语言级。其中前二级是硬件系统、后两级是软件系统对硬件系统的 功能扩展,第三级是可以说是软件与硬件的一个交界面。这种分级不是 绝对的,也不是惟一的,比如随着大规模集成电路和固件的发展,硬件 的功能在不断往上层延伸。而且,不同的硬件结构,其层次也不同,如 硬布线控制器的计算机,就没有微程序级。 12.为什么软件能够转化为硬件?硬件能够转化为软件?实现这种转 化的媒介是什么? 答:随着大规模集成电路和计算机系统结构的发展,实体硬件机的功能
计算机组成原理前3章课后习题参考答案解析
白中英第五版计算机组成原理课后习题参考答案第一章计算机系统概述4、冯•诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?答:冯•诺依曼型计算机的主要设计思想是存储程序和程序控制,其中存储程序是指将程序和数据事先存放到存储器中,而程序控制是指控制器依据存储的程序来控制全机协调地完成计算任务。
总体来讲,存储程序并按地址顺序执行,这就是冯•诺依曼型计算机的主要设计思想。
5、什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?答:见教材P8和P10。
7、指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?答:见教材P10。
第二章运算方法和运算器1、写出下列各整数的原码、反码、补码表示(用8位二进制数)。
3、有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示,尾数23位,用补码表示,基数为2,请写出:(1)最大数的二进制表示阶码用移码表示,题中并未说明具体偏移量,故此处按照移码的定义,即采用偏移量为27=128,则此时阶码E的表示范围为0000 0000~1111 1111,即0~255,则在上述条件下,浮点数为最大数的条件如下:所以最大数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111 对应十进制真值为:+(1-2-23)×2127(2)最小数的二进制表示浮点数为最小数的条件如下:所以最小数的二进制表示为:1 1111 1111 0000 0000 0000 0000 0000 000对应十进制真值为:-1×2127(3)规格化数所表示数的范围规格化要求尾数若为补码表示,则符号位和最高有效位符号必须不同。
(A)浮点数为最大正数的条件如下:所以最大正数的二进制表示为:0 1111 1111 1111 1111 1111 1111 1111 1111 111 对应十进制真值为:+(1-2-23)×2127(B)浮点数为最小正数的条件如下:所以最小正数的二进制表示为:0 0000 0000 1000 0000 0000 0000 0000 000 对应十进制真值为:+2-1×2-128=+2-129(C)浮点数为最大负数的条件如下:所以最大负数的二进制表示为:0 0000 0000 0111 1111 1111 1111 1111 111 对应十进制真值为:-(2-1+2-23)×2-128(D)浮点数为最小负数的条件如下:所以最小负数的二进制表示为:0 0000 0000 0000 0000 0000 0000 0000 000 对应十进制真值为:-1×2127所以,规格化数所表示数的范围如下:正数 +2-129~+(1-2-23)×2127负数 -2127 ~-(2-1+2-23)×2-1284、将下列十进制数表示成IEEE754标准的32位浮点规格化数。
计算机组成原理复习2
主存容量
一个主存储器所能存储的全部信息量称 为主存容量。衡量主存容量单位有两种: ① 字节数。这类计算机称为字节编址的计 算机。每1024个字节称为1K字节 (210=1K),(220=1M),(230=1G)。 ② 字数×字长。这类计算机称为字编址的 计算机。如:4096×16表示存储器有4096 个存储单元,每个存储单元字长为16位。
计算机组成原理复习
写出各种寻址方式的有效地址EA 的计算式(PC为程序计数器,A为 形式地址,Rx为变址寄存器): 寻址方式: 例:立即寻址 EA=(PC) 直接寻址 间接寻址 变址寻址 相对寻址
计算机组成原理复习
习题1:执行一条一地址的加法指令共 需要___ B 次访问内存(含取指令)。
A. 1 B. 2 C. 3 D. 4
计算机组成原理复习第第3章章指令系统计算机组成原理复习专业文档某机字长32位指令单字长指令系统中具有二地址指令一地址指令和零地址指令各若干条已知每个地址长12位采用扩展操作码方式问该指令系统中二地址指令一地址指令零地址指令各最多能有多少条
计算机组成原理
陈锦煌
E-mail:554237327@
A. 4K B. 8K C. 16K D. 24K
计算机组成原理复习
习题4:某计算机存储器按字(16位)编址, 每取出一条指令后PC的值自动+1,说明其 指令长度是___ B。
A. 1字节 B. 2字节 C. 3字节 D. 4字节
计算机组成原理复习
习题5:变址寄存器寻址方式中,若变址 寄存器的内容是4E3CH,指令中的形式地 址是63H,则对应的有效地址是___ D。
计算机组成原理复习
计算机的硬件应由运算器、存储器、控制器、输入设 备和输出设备五大基本部件组成。它们各自的功能是: ① 输入设备:把人们编好的程序和原始数据送到计算 机中去,并且将它们转换成计算机内部所能识别和接 受的信息方式。 ② 输出设备:将计算机的处理结果以人或其他设备所 能接受的形式送出计算机。 ③ 存储器:用来存放程序和数据。 ④ 运算器:对信息进行处理和运算。 ⑤ 控制器:按照人们预先确定的操作步骤,控制整个 计算机的各部件有条不紊地自动工作。
计算机组成原理:运算方法和运算器单元测试与答案
一、单选题1、补码加/减法是指()。
A.操作数用补码表示,由数符决定两尾数的操作,符号位单独处理。
B.操作数用补码表示,两尾数相加/减,符号位单独处理;C.操作数用补码表示,连同符号位直接相加,减某数用加某数的机器负数代替,结果的符号在运算中形成;D.操作数用补码表示,符号位和尾数一起参加运算,结果的符号与加/减数相同;正确答案:C2、8位补码10010011等值扩展为16位后,其机器数为()。
A.1000000010010011B.0000000010010011C.1111111110010011D.1111111101101101正确答案:C3、在定点二进制运算器中,减法运算一般通过()来实现。
A.补码运算的二进制减法器B.补码运算的二进制加法器C.补码运算的十进制加法器D.原码运算的二进制减法器正确答案:B4、在双符号位判别溢出的方案中,出现正溢出时,双符号位应当为()。
A.11B.01C.00D.10正确答案:B5、当定点运算发生溢出时,应进行()。
A.向左规格化B.发出出错信息C.舍入处理D.向右规格化正确答案:B6、四片74181 ALU和一片74182 CLA器件相配合,具有如下进位传递功能:()。
A.行波进位B.组内行波进位,组间先行进位C.组内先行进位,组间行波进位D.组内先行进位,组间先行进位正确答案:D7、在串行进位的并行加法器中,影响加法器运算速度的关键因素是()。
A.元器件速度B.门电路的级延迟C.各位加法器速度的不同D.进位传递延迟正确答案:D8、当定点运算发生溢出时,应进行()。
A.向右规格化B.向左规格化C.舍入处理D.发出出错信息正确答案:D9、原码加减交替除法又称为不恢复余数法,因此()。
A.不存在恢复余数的操作B.当某一步运算不够减时,做恢复余数的操作C.当某一步余数为负时,做恢复余数的操作D.仅当最后一步余数为负时,做恢复余数的操作正确答案:D10、4片74181ALU和1片74182CLA相配合,具有()传递功能。
计算机组成原理第3章 运算器和运算方法
第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
计算机组成原理--教学大纲
计算机组成原理教学大纲是计算机专业系统能力培养核心课程。
采用系统观、构造观和工程观的教学设计,研究冯诺依曼计算机各功能部件的工作原理与设计方法,指导大家进行系列组成原理实验,提升智能硬件设计及软/硬协同计算机系统编程能力!提升研究生入学组成原理备考能力。
课程概述“计算机组成原理”是一门理论性、工程性、技术性和实践性都很强的核心专业基础课程,在计算机学科系列课程中处于承上启下的作用。
课程教学目标是通过相关的教学活动,帮助学生理解计算机基本组成部件(包括运算器、控制器、存储器、输入/输出)的结构、工作原理、内部运行机制和设计方法。
加深学生对计算机软、硬件系统的整体化理解,建立硬件/软件协同的整机概念,并有效增强学生的计算机系统设计能力。
课程学习为研究生考试、后续课程(如系统结构,并行编程、嵌入式系统、接口技术)的学习,参加IT企业招聘等都奠定了坚实的基础。
本MOOC 课程具有如下特点:1.面向系统能力培养的教学设计结合课程特点与教学目标,创造性提出基于构造观、系统观、工程观的教学设计。
其中,构造观重在培养软/硬功能部件设计方法,提升部件级的设计能力;系统观强调硬件结构对软件执行正确性及性能的影响,提升学生软硬协同的系统分析与解决问题的能力;工程观训练考虑工程制约因素,选择恰当技术、优化工程的意识,提升系统实现能力。
2.精心设计实验内容结合教学团队多年系统能力培养实践教学经验,参考国际一流计算机专业相关课程的先进经验,引入了易学易用的免费开源虚拟仿真实验平台,本着理论实践一体化、实验目标系统化、课内课外协同化等原则,建立了逐层递进、立足计算机系统、设计型实验为主导的实践教学体系开发了系列原创的课程实验,引导学生从逻辑门电路开始逐步设计运算部件、存储器、数据通路和控制器、流水线冲突冒险机制直至完整的MIPS 流水CPU来深入理解计算机软硬件系统。
授课目标通过该课程的学习,使学生全面、系统地掌握冯·诺依曼结构计算机各组成部件的基本结构、工作原理、内部运行机制和基本设计方法;加深学生对计算机软、硬件系统的整体化理解,建立硬件/软件协同的整机概念,并有效增强学生的计算机硬件素养和软件协同的系统观,有效增强学生的计算机系统设计能力。
计算机组成原理实验-运算器实验报告
当A=10000000,B=00110010时
F=01111111
(5)S3S2S1S0=1101时,F=A加1。例如:
当A=00110101,B=00110101时,F=00 Nhomakorabea10110
当A=11100011,B=00100010时
F=11100100
F=00100000,FC灯亮,表示有进位
(3)S3S2S1S0=1011时,F=A减B。例如:
当A=00110101,B=00110101时,
F=00000000
当A=01011011,B=00111010时
F=00100001
(4)S3S2S1S0=1100时,F=A减1。例如:
当A=00110101,B=00110101时,
计算机组成原理实验运算器实验报告基本运算器实验报告运算器的组成部分运算器实验报告运算器及移位实验计算机组成原理实验运算器运算器的主要功能是运算器的主要功能运算器的功能
1.逻辑运算
(1)S3S2S1S0=0000时,F=A,例如:
当A=00010101,B=01101001时
F=00010101;
当A=01011000时,B=01011110时
当A=11000011,B=00111100时
F=00000000
(4)S3S2S1S0=0011时,F=A+B。例如:
当A=00110101,B=11001010时,
F=11111111
当A=01011011,B=11000101时
F=11011111
(5)S3S2S1S0=0100时,F=/A。例如:
F=00011101
当A=01000111,B=00000101时
计算机组成原理第3章
补码加、减运算举例
【例】已知x =-0.10111,y=-0.10001,求 1/2(x+y) 。 解: ∵[x]变补=11.01001,[y]变补=11.01111, ∴[ 1/2x]变补=11.10101,[ 1/2y]变补=11.10111;[ 1/2x] 变补是对[x]变补右移一位得到的,由于移位时丢掉了最低位1, 所以对[x]变补右移一位得到的结果(11.10100)进行修正, 即在最低位加1,便得到[ 1/2x]变补。 [ 1/2(x+y)]变补= [ 1/2x]变补+[ 1/2y]变补=11.10101+ 11.10111=11.01100 溢出判断:由于结果的双符号位相同,未产生溢出,运算结果正 确
2、补码加、减运算具体实现
补码表示的数的加减运算可以采用同一个电路实现。其核 心部分是全加器(运算电路的延迟时间
则全加器的Si的时间延迟为6T(每级异或门的延迟为3T),Ci+1的 时间延迟为5T。 则:一个n位的行波进位加法器的时间延迟ta为: ta=n×2T+9T
原码一位乘法举例
举例:假定 X=0.1101 Y=0.1011
原码一位乘法实现电路
实现原理框图:
Cj A Af CR 加法器 =1 Cn C Cn 移 位 脉 冲
&
& Bf C f Cn CT Q
启动
时钟脉冲
B
结束
2.2 2、原码两位乘法原理
两位乘数的取值可以有四种可能组合,每种组合对应于以下操作: 00 相当于0×X,部分积Pi右移2位,不进行其它运算; 01 相当于1×X,部分积Pi+ X后右称2位; 10 相当于2×X,部分积 Pi+ 2X后右移2位; 11 相当于3×X,部分积 Pi + 3X后右移2位。 上面出现了 + 1X, + 2X, + 3X 三种情况,+X 容易实现,+2X可把X左移1 位得2X,在机器内通常采用向左斜1位传送来实现。可是+3X一般不能一次完成, 如分成两次进行,又降低了计算速度。解决问题的办法是备: 以 +(4X-X) 来 代替 +3X运算,在本次运算中只执行 -X, 而 +4X 则归并到下一步执行,因为 下一步运算时,前一次的部分积已右移了两位,上一步欠下的 +4X 在本步已 变成 +X。实际线路中要用一个触发器C来记录是否欠下+4X的操作尚未执行, 若是,则1→C。因此实际操作要用Yi-1 Yi C三位的组合值来控制乘法运算操 作,运算规则如表2.12所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
例3 X=-0.1101 Y=-0.1010 求[X+Y]补解: [X]变补 = 11.0011 [Y]变补 = 11.0110结果的两符号位是10,不相同,发生溢出,因第一符号位是1,代表负数,所以称这种溢出为“负溢出”。
总结:判断溢出的原则:当两符号位相同时,正确。
“00”表正数,“11”表负数。
当两符号位不同时,溢出;“01”表正溢出,“10”表负溢出2、利用符号位的进位信号判断原理:设数码位向符号位的进位为C n-1,符号位向更高位的进位为C n 。
则 OF= C n-1 ⊕ C n当 OF为“0”表示无溢出,为“1”表示溢出了。
比如: [X]补=0.1010,[Y]补=0.1001[X]补+[Y]补=1.0011C n-1=1, C n =0 则OF=13根据加数、被加数、和的符号判断当操作数中的加数与被加数符号相同时,若结果的符号与操作数的符号不一致,表示溢出;否则,表示无溢出.3.2.1 补码加减法运算的实现补码运算只需要设置一个加法器。
采用串行进位方式的n位并行加法器的逻辑结构。
n个全加器(FA n-1~FA0),进位信号C i从低位向高位逐位串行传送。
两个n位长的补码A和B,连同C-1一起传送到全加器的输入端,得到n位运算结果S,最高位为符号位。
左上方的半加器用来判定溢出。
如何区分加减运算?M=0时C-1=0实现加法运算M=1时C-1=1实现减法运算3.3定点乘法运算及其实现3.3.1 原码一位乘法(1)运算规则设x=xf x1x2...xn,y=yfy1y2...yn,乘积为P,乘积的符号位为Pf则:Pf=xf⊕y f |P|=|x||y|,求|P|的运算规则:①被乘数和乘数均取绝对值参加运算,符号位单独考虑。
②被乘数取双符号,部分积的长度同被乘数,初值为0。
③从乘数的最低位yn开始判断:yn=1,则部分积加上被乘数|x|,然后右移一位:yn=0,则部分积加上0,然后右移一位。
①重复③判断n次。
(2)逻辑实现和操作流程实现原码一位乘法的硬件逻辑如图所示。
原码一位乘法的操作流程如图所示,图中的i用于计数,它表示循环次数(相加/移位的次数),随着y的右移,yn位总是表示乘数将要被判断的那一位。
3.3.2补码一位乘法补码一位乘法的运算算法是Booth夫妇首先提出来的,所以也称Booth算法,其运算规则如下:①符号位参与运算,运算的数均以补码表示。
②被乘数一般取双符号位参加运算,部分积初值为0。
③乘数可取单符号位以决定最后一步是否需要校正,即是否加[-xl补④乘数末位增设附加位yn+1,且初值为0。
⑤按下表所示进行操作。
⑥按照上述算法进行n+l步操作,但第n+l步不再移位,仅根据y0与yl的比较结果作相应的运算即可。
Y n Y n +1 操 作 0 0 部分积右移一位 0 1 部分积加X 补,右移一位1 0 部分积加-X 补,右移一位 1 1 部分积右移一位(2)逻辑实现和操作流程 3.4 定点除法运算及其实现 3.4.1原码除法运算 1.恢复余数法:(1)对于n 位除数来说,为了保证商数的数码位n 位,必须要求被除数的高端n 位小于除数,否则,商数的小数点前将位1,表示除法运算产生溢出,对于定点除法运算来说这是不能允许的,遇到这种情况,除法运算应终止。
(2)每次上商总是比较一下余数和除数的大小,若余数大于除数时,则商“1”,且将余数减去除数后左移1位得新的余数,若余数小于除数则商“0”,只将余数左移1位得新的余数,上述过程重复进行n 次,共上n 位商数,完成n 位除法运算的全过程。
(3)最后根据符号位单独运算的结果,给商数冠以正确符号,余数的符号位应与被除数相同。
上述操作过程在计算机中实现,需要稍做如下改动:(1)为判定本次除法运算是否产生溢出,首先需要将被除数的高n 位减去除数,若其余数大于“0”,则判定本次运算溢出,立即终止除法运算过程;若余数小于“0”,则应将除数加回去恢复被除数,继续除法运算过程。
(2)每次上商之前总要做一次余数减除数的操作。
若该余数大于或等于“0”,则表示够减,商“0”后将该余数左移一位得新余数;若该余数小于“0”,则表示不够减,商“0”,而且本次减法运算不该做,应将除数加回去,恢复原来的余数后将其左移一位得新余数,“恢复余数法”因此面遇名。
上述手算例子采用原码恢复余数法在计算机中的操作过程如下: 例题1:已知:X =+0.1001,Y=-0.1101,求X/Y=? 解:符号位单独运算:Qf =Xf ⊕Yf =1[∣X ∣]原=[∣X ∣]原 =0.1001, [∣Y ∣]原=[∣Y ∣]原 =0.1101, [-∣Y ∣]原 =1.0011,最后给出结果,冠以正确得符号:商数Q=-0.1011余数R=+0.0001×2-4例题2:已知:X=-0.01010,Y=-0.11001,求X/Y=?从上述操作过程可以看出,恢复余数法存在两个明显的缺点: (1)商“0”时,需要恢复余数,降低了除法运算得速度。
(2)操作步骤不规则,商“0”时只需做3步操作,而商“1”时需要做5步操作。
2.加减交替法“加减交替法”又称做“不恢复余数法”它是由“恢复余数法”改进而来的。
我们先分析恢复余数法的操作过程:第i 次操作是将余数R i 左移一位后减去除数Y 得新的余数R i +1,即R i +1=2R i -Y 。
若R i +1≥0则商“1”,然后进入第i+1次的操作为:2 R i +1-Y若R i+l <0则商“0”,然后需恢复余数,即:完成R i+l +Y=2 R i ,才进入第i+1次操作为: 4R i -Y如果当第i 次操作商“0”时,不恢复余数,而是直接进入第i+1次操作,将小于“0”的余数(R i +1)继续左移一位后“+Y ”,即: 2R i+1+Y=2(2R i -Y)+Y=4R i -Y这样做的结果与恢复余数后的第i+1次操作完全相同。
说明恢复余数的操作并不是必需的。