计算机组成原理第4章数值的机器运算资料
计算机组成原理数据的机器运算课件
小于2,不进位; (0*0)+(0*1)+(5*8)+(4*8)=0+0+40+32=7 2,大于等于2,需要进位,72/2=36,余数为0;因
二进制数的除法运算
总结词
二进制数的除法运算与十进制数的除法运算类似,通过连续相减来实现。
图像和视频数据的表示
像素表示
图像由像素组成,每个像素包含颜色 信息,如RGB值。
位图格式
视频编码
视频由连续的图像帧组成,采用视频 编码标准如H.264进行压缩存储和传 输。
图像以位图格式存储,每个像素占据 一定数量的位数,以表示颜色信息。
02
数据的机器运算
二进制数的加法运算
总结词
二进制数的加法运算遵循逢二进一的原则,与十进制数的加法运算类似,但进位方式不同。
常见的算法优化包括使用快速排序、 归并排序等排序算法,使用哈希表、 二叉树等数据结构,以及使用多线程 、并行计算等技术。
05
数据运算的实践应用
加密解密算法的实现
加密算法
使用特定的数学函数和密钥,将 明文转换为密文,以保护数据的 机密性和完整性。常见的加密算 法包括对称加密(如AES)和非
对称加密(如RSA)。
寄存器
总结词
寄存器是计算机中用于存储数据和指令的临时存储单元。
详细描述
寄存器是计算机中用于存储数据和指令的临时存储单元,它由若干个触发器组成 ,每个触发器可以存储一位二进制数。寄存器的主要作用是作为CPU和内存之间 传输数据的中介,同时也可以用来暂存计算过程中的中间结果。
计算机组成原理:4-4 数值的机器运算
例1:若某次运算的中间结果为 [X+Y]浮=00,111, 10.1011 则应对其进行向右规格化操作:
尾数为: 11.0101 , 阶码加1: 01 000 (溢出)
例2:若某次运算的中间结果为 [X+Y]浮=11,001, 00.0011
则应对其进行向左规格化操作: 尾数为: 00.1100 , 阶码减2:
右移一位, 得z4 YnYn+1=01, 加[X]补 最后一步不移位
第四章 数值的机器运算
4.0 逻辑电路基础 4.1 基本算术运算的实现 4.2 定点加减运算 4.3 带符号数的移位和舍入操作 4.4 定点乘法运算 4.5 定点除法运算 4.6 规格化浮点运算 4.7 十进制加法器 4.9 运算器的基本组成与实例
原码除法运算2——恢复余数法
它直接作减法来试探——
若余数为正,表示够减,该位商上“1”;
若余数为负,表示不够减,该位商上“0”,并要恢复 原来的被除数(或余数)。
[X]补 ÷ [Y]补
C—存商数
[X]补→A, [Y]补→B,0→C
A-B→A
N 1→Cn
A <0? Y 0→Cn A+B→A
此法由于要恢复余数,使除法的步数不固定,控制比较 复杂。因此,原码恢复余数法在计算机中一般很少采用。
为了防止溢出, 必须有|X|<|Y|.
Y
[X]补与 [Y]补同号
N
[X]补 − [Y]补 [Ri]补
[X]补 + [Y]补 [Ri]补
Y
[R]补与 [Y]补同号
N
商‘1’ 2[Ri ]补 − [Y]补 [Ri+1]补
商‘0’ 2[Ri]补 + [Y]补 [Ri+1]补
计算机组成原理第4章习题参考答案
计算机组成原理第4章习题参考答案第4章数值的机器运算4-2.某加法器采⽤组内并⾏,组间并⾏的进位链,4位⼀组,写出进位信号C6逻辑表达式。
[解] 组间并⾏的进位链,产⽣的最低⼀组的进位输出为:C4=G1*+P1*C0 (其中:G1*=G4+P4G3+P4P3G2+P4P3P2G1;P1*=P4P3P2P1)然后在组内产⽣进位信号C6:C6=G6+P6C5=G6+P6G5+P6P5C44-4.已知X和Y,使⽤它们的变形补码计算出X+Y,并指出结果是否溢出。
(1)X=0.11011,Y=0.11111(2)X=0.11011,Y=-0.10101(3)X=-0.10110,Y=-0.00001(4)X=-0.11011,Y=0.11110[解](1)[X]补=0.11011,[Y]补=0.1111100.11011 [X]补+00.11111 [Y]补01.11010 [X+Y]补结果正溢出!(2)[X]补=0.11011,[Y]补=1.0101100.11011 [X]补+11.01011 [Y]补00.00110 [X+Y]补结果不溢出!X+Y=0.00110(3)[X]补=1.01010,[Y]补=1.1111111.01010 [X]补+11.11111 [Y]补11.01001 [X+Y]补结果不溢出!X+Y=-0.10111(4)[X]补=1.00101,[Y]补=0.1111011.00101 [X]补+00.11110 [Y]补00.00011 [X+Y]补结果不溢出!X+Y=0.000114-5.已知X和Y,使⽤它们的变形补码计算出X-Y,并指出结果是否溢出。
(1)X=0.11011,Y=-0.11111(2)X=0.10111,Y=0.11011(3)X=0.11011,Y=-0.10011(4)X=-0.10110,Y=-0.00001[解](1)[X]补=0.11011,[Y]补=1.00001, [-Y]补=0.1111100.11011 [X]补+00.11111 [-Y]补01.11010 [X-Y]补结果正溢出!(2)[X]补=0.10111,[Y]补=0.11011, [-Y]补=1.0010100.10111 [X]补+11.00101 [-Y]补11.11100 [X-Y]补结果不溢出!X-Y=11.11100(3)[X]补=0.11011,[Y]补=1.01101, [-Y]补=0.1001100.11011 [X]补+00.10011 [-Y]补01.01110 [X-Y]补结果正溢出!(4)[X]补=1.01010,[Y]补=1.11111,[-Y]补=0.0000111.01010 [X]补+00.00001 [-Y]补11.01011 [X-Y]补结果不溢出!X-Y=-0.101014-6.已知:X=0.1011,Y=-0.0101求:[X/2]补 ,[X/4]补 ,[-X]补 ,[Y/2]补 ,[Y/4]补 ,[-Y]补,[2Y]补[解] 由[X]补=0.1011,[Y]补=1.1011 得:[X/2]补=0.0101,[X/4]补=0.0010,[-X]补=1.0101[Y/2]补=1.1101,[Y/4]补=1.1110,[-Y]补=0.0101,[2Y]补=1.01104-7. 设下列数据长8位,包括⼀位符号位,采⽤补码表⽰,分别写出每个数右移或左移两位之后的结果(1)0.1100100 (2) 1.0011001 (3) 1.1100110 (4)1.0000111[解] (1)右移两位后为 0.0011001 左移两位后为1.0010000(溢出)或0.0010000 (2)右移两位后为 1.1100110 左移两位后为0.1100100(溢出)或1.1100100(3)右移两位后为1.1111001 左移两位后为 1.0011000(4)右移两位后为 1.11000001 左移两位后为0.0011100(溢出)或1.00111004-8.分别⽤原码乘法和补码乘法计算X×Y.(1) X=0.11011,Y=-0.11111(2) X=-0.11010,Y=-0.01110[解]原码乘法:(1)|X|=0.11011 → B, |Y|=0.11111 →C,0→A5=1,+ |X|00.1101100.01101 1 0 1 1 1 1 部分积右移1位5=1,+ |X|01.0100000.10100 0 1 0 1 1 1 部分积右移1位5=1,+ |X|01.0111100.10111 1 0 1 0 1 1 部分积右移1位5=1,+ |X|01.1001000.11001 0 1 0 1 0 1 部分积右移1位5=1,+ |X|01.1010000.11010 0 0 1 0 1 0 部分积右移1位所以, |X×Y|=0.1101000101X×Y=-0.1101000101(2) |X|=0.11010 → B, |Y|=0.01110 → C, 0→A 5=0,+ 000.0000000.00000 0 0 0 1 1 1 部分积右移1位5=1,+ |X|00.1101000.01101 0 0 0 0 1 1 部分积右移1位5=1,+ |X|01.0011100.10011 1 0 0 0 0 1 部分积右移1位5=1,+ |X|01.0110100.10110 1 1 0 0 0 0 部分积右移1位5=0,+ 000.1011000.01011 0 1 1 0 0 0 部分积右移1位所以, |X×Y|=0.010*******X×Y=+0.010*******补码乘法:(1)[X]补=0.11011 → B, [Y]补=1.00001 → C, 0 → A [-X]补说明 + [-X]补5C 6=10,+ [-X]补11.0010111.10010 1 1 0 0 0 0 1 部分积右移1位+ [X]补5C 6=01,+ [X]补00.0110100.00110 1 1 1 0 0 0 0 部分积右移1位5C 6=00,+ 000.0011000.00011 0 1 1 1 0 0 0 部分积右移1位5C 6=00,+ 000.0001100.00001 1 0 1 1 1 0 0 部分积右移1位5C 6=00,+ 000.0000100.00000 1 1 0 1 1 1 0 部分积右移1位+ [-X]补 5C 6=10,+ [-X]补所以, [X×Y]补=1.0010111011X×Y =-0.1101000101(2)[X]补=1.00110 → B, [Y]补=1.10010 → C, 0→A [-X]补说明5C 6=00,+ 01位+ [-X]补 00.11010 C 5C 6=10,+ [-X]补00.1101000.01101 0 0 1 1 0 0 1 部分积右移1位+ [X]补 11.00110 C 5C 6=01,+ [X]补11.1001111.11001 1 0 0 1 1 0 0 部分积右移1位+ 0 00.00000 C 5C 6=00,+ 011.1100111.11100 1 1 0 0 1 1 0 部分积右移1位+ [-X]补 00.11010 C 5C 6=10,+[-X]补00.1011000.01011 0 1 1 0 0 1 1 部分积右移1位+ 0 5C 6=11,+ 000.01011所以, [X×Y]补=0.010*******X×Y = 0.010*******4-10.分别⽤原码和补码加减交替法计算X/Y 。
(计算机组成原理)第4章 运算方法与运算器-fjw-1
0,1011 + 1,1100
0,0111
[X+Y]补 = 0, 0111
0,1011 + 0,0100
0,1111
[X-Y]补 = 0, 1111
7
2、补码加减运算的溢出判断
❖ 当运算结果超出机器数的表示范围时,称为溢出。计 算机必须具备检测运算结果是否发生溢出的能力,否 则会得到错误的结果。
❖ 对于加减运算,可能发生溢出的情况:同号(两数) 相加,或者异号(两数)相减。
❖ (2)双符号位判溢方法 ▪ X和Y采用双符号位补码参加运算,正数的双符号 位为00,负数的双符号位为11;当运算结果的两 位符号Sf1 Sf2不同时(01或10),发生溢出。 ▪ V= Sf1 ⊕ Sf2= Xf ⊕Yf ⊕Cf⊕ Sf ▪ Sf1 Sf2=01,则正溢出;Sf1 Sf2=10,则负溢出。
一 原码乘法及实现 二 补码乘法及实现 三 阵列乘法器
19
一、原码乘法及实现
❖ 由于计算机的软硬件在逻辑上具有一定的等价性,因 此实现乘除法运算,可以有三种方式:
❖ Ⅰ.用软件实现。
▪ 硬件上:设计简单,没有乘法器和除法器。 ▪ 指令系统:没有乘除指令,但有加/减法和移位指
令 ▪ 实现:乘除运算通过编制一段子程序来实现 ▪ 算法:程序中运用串行乘除运算算法,循环累加、
Xf 符号位
X1 X2
Xf 符号位
X1 X2
Xn
0
Xn
14
补码的算术移位举例
❖ 例:设X=0.1001,Y=-0.0101,求 ▪ [X]补= 0?.1001 ▪ [2X]补= ?1.0010(溢出) ▪ [X/2]补=?0.0100 ▪ [Y]补= 1?.1011 ▪ [2Y]补= ?1.0110 ▪ [Y/2]补=?1.1101
第4章 数值的机器运算
哈尔滨学院2014年秋季学期单元测试试卷课程名称:计算机组成原理单元名称:第四章数值的机器运算一、填空题1.影响并行加法器速度的关键因素是。
2.A、B均为8位二进制数,A=F0H,B=E0H,则A+B= ,A-B= 。
C4.两个补码数相加,采用1位符号位,当时,表示结果溢出。
A.符号位有进位B.符号位进位和最高数位进位异或结果为0C. 符号位为1D.符号位进位和最高数位进位异或结果为15.在双符号位判断溢出的方案中,出现正溢时,双符号位应当为。
A. 00B. 01C. 10D. 116.在定点机中执行算术运算时会产生溢出,其原因是。
A.主存容量不够 B.操作数过大C.操作数地址过大D.运算结果无法表示7. 当定点运算发生溢出时,应进行。
A. 向左规格化B.向右规格化91112.X、C.n+1 D. n+213.原码加减交替除法又称为不恢复余数法,因此。
A.不存在恢复余数的操作B.当某一步运算不够减时,做恢复余数的操作C.仅当最后一步余数为负时,做恢复余数的操作D.当某一步余数为负时,做恢复余数的操作14.在加法器、寄存器的基础上增加部分控制电路实现除法时,用B寄存器存放。
A.被乘数和被除数B.被乘数和除数C. 乘数和被除数D.乘数和除数15.若浮点数用补码表示,判断运算结果是否是规格化数的方法是。
16.20.计算机中的累加器。
A .没有加法器功能,也没有寄存器功能B.没有加法器功能,有寄存器功能C. 有加法器功能,没有寄存器功能D.有加法器功能,也有寄存器功能21.一个C 语言程序在一台32位机器上运行。
程序中定义了3个变量x 、y 和z ,其中x 和z 为int 型,y 为short 型。
当x=127、y=-9时,执行赋值语句z=x+y 后,x 、y 和z 的值分别是A .H z H FFF y FH x 00000076,9,0000007===B .H FFFF z H FFF y FH x 0076,9,0000007===C. H FFFF z H FFF y FH x 0076,7,0000007===D .H z H FFF y FH x 00000076,7,0000007===222325A. y x +B. y x +-C. y x -D. y x --三、判断题1.进位信号串行传递的加法器称为串行加法器。
计算机组成原理-第4章_指令系统
7. 段寻址方式(Segment Addressing)
方法:E由段寄存器的内容加上段内偏移地址而形成。
应用:微型机采用段寻址方式,20位物理地址为16位 段地址左移四位加上16位偏移量。
分类:① 段内直接寻址; ② 段内间接寻址; ③ 段间直接寻址; ④ 段间间接寻址;
9 堆栈寻址方式
堆栈:是一组能存入和取出数据的暂时存储单元。
*** 指令字长度
概念 指令字长度(一个指令字包含二进制代码的位数) 机器字长:计算机能直接处理的二进制数据的位数。 单字长指令 半字长指令 双字长指令
多字长指令的优缺点
优点提供足够的地址位来解决访问内存任何单元的寻址问题 ; 缺点必须两次或多次访问内存以取出一整条指令,降低了CPU的运 算速度,又占用了更多的存储空间。
*** 指令系统的发展与性能要求
*** 指令系统的发展
指令:即机器指令,要计算机执行某种操作的命令。
指令划分:微指令、机器指令和宏指令。
简单
复杂
指令系统:一台计算机中所有指令的集合;是表征
计算机性能的重要因素。
系列计算机:基本指令系统相同、基本体系结构相同 的一系列计算机。
*** 对指令系统性能的要求
(2)立即数只能作为源操作数,立即寻址主要用来给寄存 器或存储器赋初值。以A~F开头的数字出现在指令中时,前 面要加0。
(3)速度快(操作数直接在指令中,不需要运行总线周期)
(4)立即数作为指令操作码的一部分与操作码一起放在代 码段区域中。
(5)指令的长度(翻译成机器语言后)较长,灵活性较差。
【例】MOV AX, 10H 执行后(AX)=? 其中:这是一条字操作指令,源操作数为立即寻址 方式,立即数为0010H,存放在指令的下两个单元。
计算机组成原理:4-2 数值的机器运算
( 小数点不动 !)
左移 ——绝对值扩大
右移—— 绝对值缩小
在计算机中,移位与加减配合,能够实现
乘除运算。
逻辑移位
逻辑移位——无符号数的移位。
逻辑左移:低位添 0,高位移丢。
0 逻辑右移:高位添 0,低位移丢。
0
例:
01010011
逻辑左移 10100110
逻辑右移 00101001
算术移位
较大正数相加 产生进位,影
响符号位
解: [X]补= 0 , 1 0 1 0 + [Y]补= 0 , 1 0 0 1 1,0011
设字长为5
例2:X=-1010 Y=-1011 求 X+Y
解: [X]补= 1, 0 1 1 0
+ [Y]补= 1, 0 1 0 1 0,1011
较大的负数对应较 小的正数补码,相 加无进位,符号位
例: X=-0.1100 Y=-0.1000,求 X+Y=? 解:设字长为5.
[X]补=11. 0100 + [Y]补=11. 1000
10. 1100 结果说明:
负数绝对值太大了对应的补码小,最高数据位向前无进位, 而符号位向前有进位; 两个符号位:10,表示负上溢
双符号位法溢出逻辑表达式为:V=Sf1⊕ Sf2
在模2意义下,任意两数的补码之和等于该两数之和 的补码。 这是补码加法的理论基础。
特点:
不需要事先判断符号,符号位与数值位一起参加 运算,符号位相加后若有进位,则舍去该进位数字。
补码加法运算举例
例: X=+0.1010, Y=+0.0011,求 X+Y 解: 设字长为5.
[X]补=0. 1 0 1 0 + [Y]补=0. 0 0 1 1
计算机组成原理第4章
本章学习要求
• 掌握:定点补码加法和减法运算方法 • 理解:3种溢出检测方法 • 理解:补码移位运算和常见的舍入操作方法 • 了解:串行加法器与并行加法器 • 理解:进位产生和进位传递 • 掌握:定点原码、补码乘法运算方法 • 掌握:定点原码、补码加减交替除法运算方法 • 理解:浮点加减乘除运算 • 理解:逻辑运算 • 了解:运算器的基本结构及浮点协处理器
第4章 数值的机器运算
设操作数信号为4、3、2、1、(最低 位信号为1)。向最低位进位的信号为C0、 Gi、Pi 分别是各位的进位产生函数和进位 传递函数。
(1)完善第4位先行进位信号的逻辑表达 式。 C4=G4+P4G3+……
(2)基于操作数,试述表达式中各项的 实际含义。
第4章 数值的机器运算
[-Y]补=[[Y]补]变补
第4章 数值的机器运算
2.补码减法(续)
“某数的补码表示”与“变补”是两个不 同的概念。一个负数由原码转换成补码时,符 号位是不变的,仅对数值位各位变反,末位加 “1”。而变补则不论这个数的真值是正是负, 一律连同符号位一起变反,末位加“1”。[Y]补 表示的真值如果是正数,则变补后[-Y]补所表示 的真值变为负数,反之亦然。
第4章 数值的机器运算
16位单级先行进位加法器
S1 6~S1 3
S1 2~S9
S8~S5
S4~S1
C16 4位CLA C12 4位CLA C8 4位CLA C4 4位CLA
加法器
加法器
加法器
加法器
C0
A1 6~A1 3
A1 2~A9
B1 6~B1 3
B1 2~B9
A8~A5 B8~B5
《计算机组成原理第4章数值的机器运算
3.移位功能的实现 3.移位功能的实现 在计算机中, 在计算机中 , 通常移位操作由移位寄存 器来实现, 器来实现,但也有一些计算机不设置专门的移 位寄存器,而在加法器的输出端加一个移位器。 位寄存器,而在加法器的输出端加一个移位器。 移位器是由与门和或门组成的逻辑电路( 移位器是由与门和或门组成的逻辑电路(实际 是一个多路选择器) 可以实现直传( 是一个多路选择器 ) , 可以实现直传 ( 不移 左斜一位送(左移一位) 位)、左斜一位送(左移一位)和右斜一位送 右移一位)的功能。 (右移一位)的功能。
10
3.补码加减运算规则
⑴参加运算的两个操作数均用补码表示; 参加运算的两个操作数均用补码表示; 符号位作为数的一部分参加运算; ⑵符号位作为数的一部分参加运算; 若做加法, 则两数直接相加, 若做减法, ⑶ 若做加法 , 则两数直接相加 , 若做减法 , 则 将被减数与减数的机器负数相加; 将被减数与减数的机器负数相加; ⑷运算结果仍用补码表示
第4章数值的机器运算
运算器是计算机进行算术运算和逻辑运 算的主要部件, 算的主要部件,运算器的逻辑结构取决于机器 的指令系统、数据表示方法和运算方法等。 的指令系统、数据表示方法和运算方法等。本 章主要讨论数值数据在计算机中实现算术运算 和逻辑运算的方法, 和逻辑运算的方法,以及运算部件的基本结构 和工作原理。 和工作原理。
8
4.2.2 补码加减运算
1.补码加法 补码加法 两个补码表示的数相加,符号位参加运算, 两个补码表示的数相加,符号位参加运算,且两 数和的补码等于两数补码之和, 数和的补码等于两数补码之和,即: [X+Y]补=[X]补+[Y]补
2.补码减法 补码减法
根据补码加法公式可推出: 根据补码加法公式可推出: [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 从补码减法公式可以看出,只要求得[-Y] 补 , 就 从补码减法公式可以看出 , 只要求得 可以变减法为加法。 不管Y的真值为正或为负 的真值为正或为负, 可以变减法为加法 。 不管 的真值为正或为负 , 已知 [Y]补求[-Y]补的方法是:将[Y]补连同符号位一起求反, 的方法是: 连同符号位一起求反, 末尾加“ 被称为[Y] 的机器负数, 末尾加 “ 1” 。 [-Y]补 被称为 补 的机器负数 , 由 [Y] 补 的过程称为对[Y] 变补(求补) 求[-Y]补的过程称为对 补变补(求补),表示为 [-Y]补=[[Y]补]变补 9
4计算机组成原理(第四章)
23
算术逻辑部件ALU
实现Ai+Bi 选择S3~S0=1011 、M=1
Fi=( Ai+Bi )⊕0= Ai+Bi
实现AiBi 选择S3~S0=1110 、M=1
控制信号与选择器输出关系
S3 S2 Xi
S1 S0 Yi
0 0 1 0 0 Ai 0 1 Ai+Bi 0 1 AiBi
1 0 Ai+Bi 1 0 AiBi
■ 2■因逻辑相同,能直接用4位先行进位电路(CLA)生成这些信
号
16
多级先行进位
组内进位信号能同时产生、组间进位信号也能同时产生,由此 可构成多级并行进位逻辑。16位2级先行进位加法器如下图:
17
多级先行进位
二级先行进位的实现思路(16位为例): 4位一组分成4组,组内实现先行进位,为一级先行进位;其 电路称为成组先行进位电路; 让一级进位链多产生两个辅助函数Gi*和Pi*,并作为高一级 先行进位的输入,该高一级进位为二级先行进位; 组间进位信号C4.C8、C12、C16,根据其逻辑关系式由二级进 位链来产生;(注:一级和二级进位链用同一电路) 再将组间进位信号C4.C8、C12、C16输入一级加法电路,与操 作数一起产生和的输出。
15
多级先行进位
四个组内的最高进位C16.C12、C8、C4可以分别表示为
:C4 = G1* + P1* C0 C8 = G2* + P2* C4 C12 = G3* + P3* C8 C16 = G4* + P4* C12
■ 1■这4组进位结构与前述4位先行进位逻辑完全相同,组 间进位信号只与最低进位C0有依赖关系, 所以能同时 产生
控制参数不同,得到的组合函数也不同,就能实现多种算术和逻 辑运算——ALU。
计算机组成原理之数值机器运算培训教程
计算机组成原理
数值的
机器运算
2009.9
北京理工大学计算机科学技术学院
第4章
计算机组成原理
运算器是计算机进行算术运算和
逻辑运算的主要部件,运算器的逻辑 结构取决于机器的指令系统、数据表 示方法和运算方法等。本章主要讨论 数值数据在计算机中实现算术运算和 逻辑运算的方法,以及运算部件的基 本结构和工作原理。
Ai Bi
2009.9
北京理工大学计算机科学技术学院
4.1 基本算术运算的实现
计算机组成原理
全加器的逻辑表达式为
Si=Ai⊕Bi⊕Ci-1 Ci=AiBi+(Ai⊕Bi)Ci-1 2.串行加法器与并行加法器
在串行加法器中,只有一个全加器, 数据逐位串行送入加法器进行运算。
如果操作数长n位,加法就要分n次进 行,每次只能产生一位和。
2009.9
北京理工大学计算机科学技术学院
4.1 基本算术运算的实现
计算机组成原理
ty
6
4
ห้องสมุดไป่ตู้
2
C16
C12
C8
C4
C1 C0 Ci
2009.9
北京理工大学计算机科学技术学院
4.1 基本算术运算的实现
四位CLA加法器
S4~S1
计算机组成原理
四位BCLA加法器
G1 P1 S4~ S1
∴Ci=Gi+PiCi-1
2009.9
北京理工大学计算机科学技术学院
4.1 基本算术运算的实现
计算机组成原理
把n个全加器串接起来,就可进行两个 n位数的相加。串行进位又称行波进位,每 一级进位直接依赖于前一级的进位,即进 位信号是逐级形成的。
计算机组成原理第4章浮点数运算方法ppt课件
jy]移 (mod 2n+1) 则直接可得移码形式。
同理,当作除法运算时,商的阶码可用下式完成: [jx]移+[-jy]补 = [jx - jy]移
11
5. 溢出判断
在浮点规格化中已指出,当尾数之和(差)出现 01.××…×或10.××…×时,并不表示溢出,只有 将此数右规后,再根据阶码来判断浮点运算结果是否 溢出。
若机器数为补码,尾数为规格化形式,并假设阶符取 2位,阶码取7位,数符取2位,尾数取n位,则它们能 表示的补码在数轴上的表示范围如下图。
浮 点 数 加 减 运 算 流 程 图
16
浮点加减法运算
1. 大型计算机和高档微型机中,浮点加减法运算是由 硬件完成的。低档的微型机浮点加减法运算是由软 件完成的,但无论用硬件实现或由软件实现加减法 运算,基本原理是一致的。
2. 浮点加减法运算要经过对阶、尾数求和、规格化、 舍入和溢出判断五步操作。其中尾数运算与定点加
23
2. 尾数运算
(1)浮点乘法尾数运算 (2)浮点除法尾数运算
24
(1)浮点乘法尾数运算
预处理:检测两个尾数中是否有一个为0, 若有一个为0,乘积必为0,不再作其他操 作;如果两尾数均不为0,则可进行乘法运 算。
相乘:两个浮点数的尾数相乘可以采用定 点小数的任何一种乘法运算来完成。
规格化:相乘结果可能要进行左规,左规 时调整阶码后如果发生阶下溢,则作机器 零处理;如果发生阶上溢,则作溢出处理。
计算机组成原理计算机的运算方法(共56张PPT)精选全文
10 0001 0000
0000
0001
……
……
1001
1010
0
00110000
1
00110001
……
9
00111001
A
16 0001 0110
1111
F
由于ASCII码低四位与BCD码相同,转换方便。 ASCII码左移四位得BCD码, BCD码前加0011得ASCII码。
一般采用二进制运算的计算机中不采用BCD码,矫正不方便。 商用计算机中采用BCD码,专门设置有十进制运算电路。
八进制数与十六进制数之间,可将二进制数作为中介进行转换。
、数值的处理(数制转换)
3) BCD码(十进制):P214-215
如果计算机以二进制进行运算和处理时,只要在输入输出处理时进
行二 / 十进制转换即可。
但在商业统计中,二 / 十进制转换存在两个问题:
(1)转换占用实际运算很大的时间; (2)十进制的,无法用二进制精确表示;
例:将(0. 1)10转换成二进制数 ( 要求5位有效位) 。
结果
0.1×2
最高位 0 .2×2
… 0 .4×2
0 .8×2
1 .6×2
1 .2×2
0 .4×2
直到乘积的小数部分为0,
或结果已满足所需精度要求为止.
0 .8×2
最低位 1 .6000
可能永远乘不完,小数部分不为0, 意味存在一点误差。
2 105
余数
结果
2 52
1
2 26
0
2 13
0
26
1
23
0
21
1
0
1
直到商等于0为止
计算机组成原理第四章ppt文档
4.2
D I/O 读/写
三、随机存取存储器 ( RAM )
1. 静态 RAM (SRAM)
静态RAM用触发器工作原理存储信息,信息 读出后,仍保持其原状态,不需要再生。
电源掉电时,原存储信息丢失,故属于易失性 半导体存储器。
基本单元单元由6个MOS管组成。
(1) 静态 RAM 基本电路
位线A´
A´
5)与静态RAM比,集成度高,功耗低。
(1) 动态 RAM 基本单元电路
读选择线
T2
T1
T3 Cg
01
V DD
T4 预充电信号
10
无有电流 数据线
T
01
Cs
写选择线
字线
写数据线
读数据线
读出与原存信息相反
读出时数据线有电流 为 “1”
写入与输入信息相同
பைடு நூலகம்
写入时CS充电 为 “1” 放电 为
(2) 动态 RAM 刷新
A
T5
T1 ~ T4
T6
行地址选择
T7
T8
列地址选择 写放大器
写放大器
位线A
T 1 ~ T 4 触发器 T 5 、T 6 行开关
T 7 、T 8 列开关
T 7 、T 8 一列共用
读放 DOUT
A 触发器原端
DIN 写选择
读选择
A´ 触发器非端
(2) 静态 RAM 芯片举例
A9
A8
......
A0
WE
16×8矩阵
15,0 … 15,7
0 …… 7 位线
读/写控制电路
D0
…… D 7
(2) 重合法 (1K×1位)
计算机组成原理第四章指令系统[一]
例如:Intel8086 中的立即寻址指令.
MOV Ax,2000H; 将立即数2000H存入累加器AX中
2.存储器直接寻址(Memory direct addressing):指令的地
4.1 指令格式
1.指令格式
操作码 地址码
• 操作码(Operation code):指明该指令执行 什么性质的操作,不同的指令有不同的操作 码.其位数反映了机器操作种类,即机器允许 的指令条数.
• 地址码:指明操作数所在的地址(Source operand reference),结果存放的地址(Result operand reference)以及下一条指令的地址 (Next instruction reference).
• 变长指令字结构:一个指令系统中,各种指令字 长度随功能而异.CISC采用变长指令字结构. 优点:使用灵活,充分利用指令的每一位,指令平均 长度短,码点冗余少,易于扩展; 缺点:指令格式不规整,取指令时需要多次访存,从 而导致不同指令的执行时间不同,硬件控制系统 复杂.
2.地址码结构
设计指令的地址码格式时需解决:
XXXX XXXX 0000 1 1 01 1110 1110 1110 1111 1111 1111 1111
YYYY YYYY YYYY YYYY 0000 0001 1111 0000 1110 1111 1111
ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ
ZZZZ 0000 1111
指令格式为:
设Data为操作数
计算机组成原理课件第四章计算机中的算术运算
例:[X]补=0.1101,[Y]补=0.1011,求X*Y=?
解: 部分积
乘数
说明
00.0000 + 11.0011
0. 1 0 1 1 0
YYnnY+1n=+10=10, 加[-X]补
11.0011 → 11.1001 + 00.0000
1. 0 1 0 1 1
右移一位
YnY n+1=11, 加0
当计数器i=n+1时,封锁LDR1和L
DR0控制信号,使最后一步不移位。
原码两位乘法
◦ 两位乘法即从乘数的最低位开始每次取两位乘数与被乘数 相乘得到一次部分积。
◦ Yi-1yi=00,相当于0×x,部分积加0,右移两位 ◦ Yi-1yi=01,相当于1×x,部分积加|x|,右移两位 ◦ Yi-1yi=10,相当于2×x,部分积加2|x|,右移两位 ◦ Yi-1yi=11,相当于3×x,部分积加3|x|,右移两位
采用双符号位的判断方法
每个操作数的补码符号用两个二进制数表示,称为 变形补码,用“00”表示正数,“11”表示负数,左边第 一位叫第一符号位,右边第一位称为第二符号位,两个 符号位同时参加运算,如果运算结果两符号位相同,则 没有溢出发生。如果运算结果两符号位不同,则表明产 生了溢出。“10”表示负溢出,说明运算结果为负数, “01”表示正溢出,说明运算结果为正数。
Zf=Xf+Yf=0+0=0 [Z]原=0 . 10001111 X*Y=0.10001111
原码一位乘法的逻辑电路图
R0存放部分积,R2存放被乘数,R1存放 乘数。
一、 R0清零,R2存放被乘数,R1存放乘数。 乘法开始时,“启动”信号时控制CX置1, 于是开启时序脉冲T,