运算方法和运算器
操作方法PPT课件
原码乘法及实现(2)
Ⅱ.用硬件乘法器和除法器实现。 硬件上:设置有并行加法器、移位器和若干循环、计数控制逻辑电路搭成的串行乘除法器。 指令系统:具有乘除法指令。 实现:乘除运算通过微程序一级(硬件+微程序)来实现。 算法:在微程序中依据串行乘除运算算法,循环累加、右移指令→乘法,循环减、左移指令→除法。 运算速度:有所提高,但硬件设计也相对复杂。 适用场合:低性能CPU。
4.1 定点数的加减运算及实现
补码加减运算与运算器
机器数的移位运算
移码加减运算与判溢
十进制加法运算
一
二
三
四
药掇游二梨册惊衰房跃群刺靛勉平坪毋慧缎掘奠慰氧枚生吮荧雷肘寞笆联第3章操作方法第4章 运算方法与运算器
一、补码加减运算与运算器
补码加减运算方法
补码加减运算的溢出判断
二
袄涟孩急疵撩哉位魂狙率氨加路赁渭碑爬恋陌姆哼周侗淌裁接轮脊义浓退第3章操作方法第4章 运算方法与运算器
4.2 定点数的乘法运算及实现
原码乘法及实现
补码乘法及实现
阵列乘法器
一
二
三
金哄逊盟逐丸锻芳嚏戈远是重痉糯赏壬奈撒布伏装峰赞团券辑乾否胃庸甄第3章操作方法第4章 运算方法与运算器
原码乘法及实现(1)
1.0011
0.0011
栽横嫂毡孕搁姬锌蝴结猪沙漂菇谈偿乞碴价厌烩担慢彝矢败炸全驭次臆逻第3章操作方法第4章 运算方法与运算器
补码加减运算举例
例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。 写出补码: [X]补 =0,1011 [Y]补 =1,1100 [-Y]补 =0,0100 计算:
第2章运算方法和运算器74181
第2位向第3位的进位公式为: P=X0X1X2X3
Cn +3 =Y2 + X2 Cn +2 =Y2 +Y 1 X1 +Y0 X1 X2 +X 0 X1 X2 Cn
第3位的进位输出(即整个4位运算进位输出)公式为: C n + 4 = Y 3 + X 3 C n + 3 = Y 3 + Y 2 X 3 + Y 1 X 2 X 3 + Y 0 X 1 X 2 X 3 + X 0 X 1X 2 X 3 C n
i
Y3+Y2X3+Y1X2X3+Y0X1X2X3 =G
2.5.2多功能算术/逻辑运算单元(ALU)续8
3.算术逻辑运算的实现
除了S0-S3四个控制端外,还有一个控制端 M,它使用来控制ALU是进行算术运算还是进行逻 辑运算的。
当M=0时,进行算术操作。M对进位信号没 有任何影响。此时F不仅与本位的被操作数Y和操 作数X有关,而且与本位的进位输出,即C有关。 当M=1时,进行逻辑操作。封锁了各位的进 位输出,即C =0,各位的运算结果F仅与Y和X有关。
定点运算器的组成
4位之间采用先行进位公式,根据式(2.36),每一
位的进位公式可递推如下: 第0位向第1位的进位公式为:
Cn +1 =Y0 +X0 Cn 其中Cn是向第0位(末位)的进位。
第1位向第2位的进位公式为:
Cn + + X1 C Y1 + Y0 X1 +X X X1Cn+Y X X X 设: = Y Y Y 2=Y1G n+ 1= 3+ 2X3+ 1 02X 3 0 1 2 3
将Xi 和Yi代入前面的进位表达式,可简化为: Cn+i+1=Yi+Xi Cn+ i
1 1
0
1 1
Ai
定点运算器的组成
第3章运算方法与运算器
教学内容安排•第一章绪论•第二章数码系统•第三章运算方法和运算器•第四章存储系统•第五章指令系统•第六章中央处理器•第七章输入输出设备•第八章输入输出系统第三章运算方法和运算器• 3.1组成计算机硬件电路的基本逻辑部件• 3.2机器数的加减运算及其实现• 3.3定点乘法及其实现• 3.4定点除法及其实现(了解)• 3.5浮点数的算术运算(了解)• 3.6运算器的组教学重点和难点•基本逻辑运算和逻辑电路•机器数的加减运算•定点原码一位乘第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件逻辑电路的基本概念•表示电路中输入信号与输出信号之间的关系的运算,为逻辑运算•赋以逻辑属性值“0”或“1”的变量,为逻辑变量。
•描述逻辑变量关系的函数(F=f(A,B)),为逻辑函数•实现逻辑函数功能的电路,为逻辑电路•逻辑电路可以做成计算机系统中常用的部件,为逻辑部件。
•逻辑部件分为:组合逻辑部件和时序逻辑电路•描述逻辑函数的值与它的逻辑变量之间关系的表格,称作真值表。
第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件逻辑代数中基本逻辑运算•逻辑与(逻辑乘)•逻辑或(逻辑加)•逻辑非(逻辑求反)•逻辑异或•逻辑同或第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件1.“与”逻辑------实现的电路叫与门只有决定事物结果的全部条件同时具备时,结果才会发生(有一个条件不具备,结果也不会发生)。
闭合1闭合1逻辑表达式第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件2.“或”逻辑------实现的电路叫或门决定事物结果的诸条件中只要有任何一个满足时,结果就发生,这种因果关系叫做逻辑“或”,换句话说,只有所给条件均不具备,结果才不会发生。
第三章运算方法和运算器 3.1组成计算机硬件电路的基本逻辑部件3.“非”(反)逻辑-----实现的电路叫非门(或反相器)如果条件具备了,结果便不会发生;而条件不具备时结果一定发生。
计算机原理第二章运算方法和运算器
算术移位时,符号位保持不变,其 余位进行相应移动。算术左移相当 于乘以2,算术右移相当于除以2并 向下取整。
乘法运算方法
原码一位乘法
将被乘数和乘数均取原码,从乘数的最低位开始逐位判断,若为1则加上被乘 数的原码,若为0则不变。重复此过程直至乘数所有位均判断完毕。
补码一位乘法
将被乘数和乘数均取补码,从乘数的最低位开始逐位判断,若为1则加上被乘数 的补码并考虑进位,若为0则只考虑进位。重复此过程直至乘数所有位均判断完 毕。
节能技术
采用节能技术,如动态电压调整、睡眠模式等, 以降低运算器在空闲或低负载时的功耗。
06
计算机中数的表示和运算 方法扩展
大数表示和运算方法
大数的概念
超出计算机基本数据类型表示范围的整数或浮点数。
大数表示方法
采用多精度表示法,将大数拆分成多个基本数据类型的数进行表示 和存储。
大数运算方法
设计相应的大数运算算法,如大数加法、减法、乘法、除法等。
转换方法
根据机器数的表示方法,通过相应的运算将其转换为真值。
定点数与浮点数
定点数
表示范围与精度
小数点位置固定的数,可表示整数或 小数。
定点数表示范围有限,精度较高;浮 点数表示范围大,但精度相对较低。
浮点数
小数点位置可变的数,由阶码和尾数 两部分组成,可表示大范围的数值。
02
基本运算方法
定点加减法运算
运算流水线设计
在算术逻辑单元(ALU)中采用流 水线技术,将复杂的运算过程分解 为多个简单的运算步骤,提高运算 速度。
超标量流水线设计
在一个周期内同时发射多条指令, 通过多个功能部件并行执行,进一 步提高处理器的性能。
第三章运算方法与运算器(定点数除法)
■ 当上述结果小于0时,商上0,恢复余数,然后左移一位,减除数比较,即:
(2Ri-Y)+Y= 2Ri 2*2Ri -Y = 4Ri –Y
■ 若当结果小于0时,商上0,不恢复余数而直接将余数左移一位,加Y:
2(2Ri-Y)+Y = 2*2Ri -2Y + Y = 4Ri –Y
第三章 3.6 定点数除法
1 00.0011
1
00.0110 0.11
+[–Y]补 11.0101
0 11.1011
0
11.0110 0.110
+[Y]补 00.1011
1 00. 0001 0.1101 1
减Y比较
余数 <0 商上零 左移一位 加Y比较 余数>0,商上1 左移一位 减Y比较 余数>0,商上1 左移一位 减Y比较 余数<0 商上零 左移一位 加Y比较
■重复上述过程直到商达到所需要的位数为止。
第三章 3.6 定点数除法
2
原码恢复余数除法
已知 X=0.1001,Y=- 0.1011,用原码一位除法求X/Y
解:[X]原= 0 .1001 [Y]原= 1.1011
[|X|]补=0.1001 [|Y|] 补=0.1011 [-|Y|]补 =1.0101
最后结果: 商Q = (X0 Y0).1101=1.1101 余数 R = 0.0001 * 2 -4
该方法存在的不足: 运算步数不确定
左移一位 减Y比较
1 余数>0,商上1,移商
第三章 3.6 定点数除法
3
原码加/减交替除法运算方法(不恢复余数法)
■ 设某次余数为Ri,将Ri左移一位减除数进行比较并上商,即:
计算机组成原理第四版第二章
+ [y]补 0. 0 1 0 1 [x+y]补 0. 1 1 1 0
所以x+y=+0.1110
Back
第二章 运算方法和运算器
B 补码减法
➢ 公式:
[x-y]补=[x]补-[y]补=[x]补+[-y]补
➢ 举例
已知 x=+0.1101 , y=+0.0110,求x-y。 解: [x]补=0.1101 [y]补=0.0110 ,[-y]补=1.1010 [x]补 0. 1 1 0 1 + [-y]补 1. 1 0 1 0 [x-y]补 1 0. 0 1 1 1
最大正数,称为“上溢” 或“正溢出”
两个负数相加,结果 小于机器所能表示的最
小负数,称为“下溢” 或“负溢出”
判断方法
举例说明
Back
第二章 运算方法和运算器
溢出检测方法常用以下两种方法:
1.采用双符号位(变形补码)判断方法:
变形补码: “00”表示正数、“11”表负数,两符号位同时参加运算, 运算结果符号出现01或10表明溢出。
发生溢出;而在浮点运算时,运算结果超出尾数的表示范围 却并不一定溢出,只有当阶码也超出所能表示的范围时,才 发生溢出。
Back
3.十进制数串的表示方法
➢ 目前,大多数通用性较强的计算机都能直接 处理十进制形式表示的数据。十进制数串 在计算机内主要有两种表示形式:
➢ 1.字符串形式 ➢ 2.压缩的十进制数串形式
➢ 计算机采用定点数表示时,对于既有整数又有小数的原始数据,需要设 定一个比例因子,数据按其缩小成定点小数或扩大成定点整数再参加运 算,运算结果,根据比例因子,还原成实际数值。若比例因子选择不当, 往往会使运算结果产生溢出或降低数据的有效精度。
c03 运算方法与运算器
3、根据加数、被加数、和的符号判断 (1)当操作数中的加数与被加数符号相同 时,若结果的符号与操作数的符号不一 致,表示溢出;否则,表示无溢出。 (2)当两个符号不同的操作数相加时,肯 定不会产生溢出。 例:[X]补=0.1010,[Y]补=0.1001 [X]补+[Y]补=1.0011(溢出)
练习题及参考答案
3.2 定点乘法运算及其实现
实现乘除法运算的方案: 1、使用乘除运算较多,速度要求高时, 硬件直接实现; 2、一般情况,配臵乘除法选件; 3、而对速度要求不高的机器,用软件 实现.
3.2.1 原码一位乘法
1、手算过程(两个无符号数) 例: +0.1101×-0.1011
× 1 0 0 1 1 0 1 0 0 0
1.已知:X=-0.01111,Y=+0.11001, 求[X]补,[-X]补,[Y]补,[-Y]补,X+Y=? X-Y=? 并判断是否溢出。 2.用补码运算方法求X+Y=?并判断是否溢 出。 (1)X=0.1001,Y=0.1100 (2) X=-0.0100,Y=-0.1001 3.用补码方法求X-Y=?并判断是否溢出。 (1)X=-0.0100,Y=0.1001 (2) X=-0.1011,Y=0.1010
原码一位乘法
例:已知X=+0.1101 Y=-0.1011 求(X ×Y)原 解:[X]原 =0.1101 [Y]原 =1.1011 Zf = Xf Yf = 1 0 =1 则按原码一位乘法运算规则,求[X×Y]原 的数值部分。 最后求得[X×Y]原 = 1.10001111
流 程 图
判断溢出的方法:
例2 X=0.1011 Y=0.1001 求[X+Y]补 解: [X]变补 = 00.1011 [Y]变补 = 00.1001 [X+Y]变补 = 00.1011 + 00.1001 = 01.0100
白中英计算机组成原理第2章_运算方法与运算器 (1)解析
定点整数的表示范围
纯整数的表示范围为(x1x2…xn各位均为0时 最小;各位均为1时最大,x0为符号位) 0≤|x|≤ 2n -1
例如:n=8,最大值编码:11111111 表示: 11111111=100000000-1 =28-1
目前计算机中多采用定点纯整数表示,因此 将定点数表示的运算简称为整数运算
第二章 运算方法和运算器
重点:数据表示 简介:运算方法和运算器 补充:数字逻辑
二进制数
便于计算机存储及物理实现 特点:逢二进一,由0和1两个数码组成,基数
为2,各个位权以2k表示 二进制数:
anan-1…a1a0.b1b2…bm= an×2n+an-1×2n-1+…+a1×21+a0×20 +b1×2-1+b2×2-2+…+bm×2-m 其中ai,bj非0即1
定点小数的表示范围
纯小数的表示范围为(x1x2…xn各位均为0时 最小;各位均为1时最大,x0为符号位) 0≤|x|≤1-2-n
例如,n=8,最大值编码:0.11111111 表示: 0.11111111 =1.0-0.00000001 =1-2-8
非常大和非常小的数
如何用定点数来表示非常大(e.g. 2×10+33 )的数和非常小(e.g. 9×10-28 )的数?
00111010B=3AH,F2H=11110010B
十六进制数的加减运算类似十进制
•逢16进位1,借1当16
23D9H+94BEH=B897H
A59FH-62B8H=42E7H
计算机组成原理
7
真值和机器数
真值:现实中真实的数值 机器数:计算机中用0和1数码组合表达的数值 定点数:固定小数点的位置表达数值的机器数
一个R进制数N可以写成 N=Re×M
经典:计算机组成原理-第2章-运算方法和运算器
第二章:运算方法和运算器
2.1 数据与文字的表示方法 2.2 定点加法、减法运算 2.3 定点乘法运算 2.4 定点除法运算 2.5 定点运算器的组成 2.6 浮点运算方法和浮点运算器
其中尾数域所表示的值是1.M。因为规格化的浮点数的尾数域最
左位(最高有效位)总是1。故这一位经常不予存储,而认为隐藏
在小数点的左边。
64位的浮点数中符号位1位,阶码域11位,尾数域52位,指数偏
移值是1023。因此规格化的64位浮点数x的真值为:
x=(-1)s ×(1.M) × 2E-1023 e=E-1023
[X]反=1.x1x2...xn 对于0,有[+0]反=[-0]反之分:
[+0]反=0.00...0
[-0]反=1.11...1
我们比较反码与补码的公式
[X]反=2-2-n+X
[X]补=2+X
可得到 [X]补=[X]反+2-n
8
若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变 0,然后在最末位(2-n)上加1。
10100.10011=1.010010011*24 e=4 于是得到:S=0,E=4+127=131=10000011, M=010010011 最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000=(41A4C000)164
计算机组成原理第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,代表正数,所以称这种溢出为“正溢出”。
运算方法与运算器
16、若寄存器内容为11111111,若它等于+127,则寄存 器内容为()码;若它等于-1,则为()码。
17、若寄存器内容为00000000,若它等于-128,则寄存 器内容为()码;
18、 若寄存器内容为10000000,若它等于-128,则寄存 器内容为()码;
定点数的乘/除运算; 溢出概念和判别方法;
3、浮点数的表示与运算
(1)浮点数的表示:浮点数的表示范围;IEEE754标 准 (2)浮点数的加/减运算
4、算术逻辑单元ALU
(1)串行加法器和并行加法器 (2)算术逻辑单元ALU的功能和结构
误点疑点解惑(一)
1、真值和机器数的区别 2、模与补码表示法 3、原码和补码的区别 4、定点数的表示范围 5、浮点数的表示范围 6、浮点数规格化 7、移码偏置值的选择 8、定点数与浮点数的比较 9、3种汉字编码的区别 10、十进制数的BCD编码
立
27、补码定点整数10010101右移一位后的值是()
28、补码定点整数0101 0101左移2位后的值是()
29、补码的加减法是指()
30、在补码加减法中,用两位符号位判断溢出,判断规 则是怎样的?
31、补码相加,采用一位符号位,什么情况表示溢出?
32、变补操作的含义是(),如何实现变补操作?
33、原码乘法的运算规则是怎样的?
38、为什么现代计算机都用补码来表示整数?
39、假设有两个整数x和y,x=-68,y=-80,采用补码表示(含1位 符号位),x和y分别存放在寄存器A和B中。另外,还有两个 寄存器C和D。A,B,C,D都是8位寄存器。请回答下列问题(用 十六进制表示二进制序列):
计算机组成原理第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所示。
(计算机原理)第3章运算方法与运算器
比较器
位串比较器和选择器 的实现,包括旁路比 较器和等效比较器的 应用。
控制电路
精度控制电路和后继 累加器的设计和应用, 提高运算精度和性能。
乘法示例
乘法运算的具体示例,讲解乘法 过程和计算结果。
定点数的除法运算
1被除数与除数的转换和余数计算。
2 除法电路
除法电路的设计和实现,包括整除器和余数计算器。
3 除法示例
除法运算的具体示例,讲解除法过程和计算结果。
浮点数的加减法运算
1
浮点数表示
浮点数的格式和表示方法,包括阶码和尾数的位数分配。
逻辑运算
包括布尔运算的实现,逻辑 运算与算术运算的转换,以 及位串比较器和选择器的应 用。
运算器的基本概念和分类
1 基本概念
运算器是一种用于进行算术和逻辑运算的电路,由算术逻辑单元(ALU)和控制单元组成。
2 分类
根据数据长度可分为多位数运算器和单位数运算器;根据功能可分为通用运算器和特殊 运算器。
2
加法运算
浮点数加法的原理和算法,包括对阶、尾数对齐和规格化。
3
减法运算
浮点数减法的原理和算法,包括对阶、尾数对齐和规格化。
浮点数的乘法运算
1 乘法算法
浮点数乘法的原理和算法,包括尾数相乘和阶码相加。
2 乘法电路
浮点数乘法电路的设计和优化,包括乘法器和累加器。
3 乘法示例
浮点数乘法的具体示例,讲解乘法过程和计算结果。
(计算机原理)第3章运算 方法与运算器
学习计算机原理第3章的运算方法与运算器,包括运算方法的分类、运算器的 基本概念和分类,以及不同类型数的加减法、乘法、除法运算,逻辑运算, 和位移运算等。
运算方法分类与特点
白中英计算机组成原理第2章-运算方法与运算器
2024年7月16日星期二
5
2.1 数据与文字的表示方法
2.1.1 数据格式 2.1.2 数的机器码表示 2.1.1 数据格式 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码
2024年7月16日星期二
6
2.1.1 数据格式——定点数
2024年7月16日星期二
3
2.0 数据的类型(1/2)
按数制分:
十进制:在微机中直接运算困难;
二进制:占存储空间少,硬件上易于实现,易于运算;
十六进制:方便观察和使用;
二-十进制:4位二进制数表示1位十进制数,转换简单。 按数据格式分:
真值:没有经过编码的直观数据表示方式,其值可带正负号, 任何数制均可;
-8 1000 0000 -7 1001 0001 -6 1010 0010 …… …… ……
可以比较直观地判断两个数据的大小; 0 0000 1000
浮点数运算时,容易进行对阶操作;
+1 0001 1001
表示浮点数阶码时,容易判断是否下溢; …… …… ……
当阶码为全0时,浮点数下溢。
+7 0111 1111
优点 与真值对应关系简单;
缺点 参与运算复杂,需要将数值位与符号位分开考虑。
2024年7月16日星期二
11
补码表示法的引入(1/3)
要将指向5点的时钟调整到3点整,应如何处理?
5-2=3
2024年7月16日星期二
5+10=3(12自动 丢失。12就是模)
12
补码表示法的引入(2/3)
继续推导: 5-2=5+10(MOD 12) 5+(-2)=5+10(MOD 12) -2=10(MOD 12)
第二章运算方法与运算器(浮点数的加减法,IEEE754标准3264浮点规格化数)
第⼆章运算⽅法与运算器(浮点数的加减法,IEEE754标准3264浮点规格化数)这⼀章,主要介绍了好多种计算⽅法。
下⾯,写⼀点⾃⼰对于有些计算(⼿写计算过程)的见解。
1.原码、反码、补码 原码:相信⼤家都会写,符号位在前⼆进制数值在后,凑够位数即可。
反码:原码符号位不变,其他位全部取反。
补码:反码末位加⼀ / 原码符号位不变,从右往左数第⼀个1及其右边的各位不变,其余位全部取反2.IEEE754的转换 IEEE754标准32/64浮点规格化数形式:X = (-1)S * 1.M * 2E-127(其中,S-阶符,M-尾数,E-阶码) 32位的规格化浮点数:SEM00000...(即⼆进制SEM后⾯补0,写够32位) 以27/64为例: ①化形式:27/64 = + (1.1011)2 * 2-2 ②找SEM:S=0,M=1011,E=(125)10=(01111101)2 ③写结果:00111110 11011000 00000000 00000000 = (3ED800)163.变形补码计算加减法 变形补码没什么稀奇,不过是符号位变成两位⽽已(00为正,11为负),它的价值在于可以作溢出判断(结果00//11表⽰未溢出,01-上溢(所谓上溢符号位还是0),11-下溢(下溢符号位还是1)),就正常求补码(符号位double),放在⼀起加和,做溢出判断,最后别忘了把补码再转换回原码作为最终结果。
x+y: 以x=11011, y=00011为例: ①求补:[11011]补=0011011, [00011]补=0000011 ②加和:011011 + 000011 = 0011110;符号位00,未溢出,故x+y=11110 x-y:(这⾥把减法化为加法,即 x-y = x+(-y),另外[-y]补 = [y]补 从右往左数第⼀个1及其右边的各位不变,其余位全部取反,这次连带符号位也要取反) 以x=11011, y=-11111为例: ①求补:[11011]补=0011011, [-11111]补=1100001,[-y]补=0011111 ②加和:[x]补+[-y]补 = 0011011 + 0011111 = 0111010;符号位01,正溢(上溢);故x-y=+1110104.浮点数加减法(我⽤的是补码计算) 这⾥⾯涉及的东西⽐较多,每⼀步都需要仔细,错⼀步结果就错了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
指数宽(位数)
指数偏移 指数范围 数的范围 有效数宽
8
127 -126 ~ 127 10-38 ~ 1038 23
11
1023 -1022 ~ 1023 10-308 ~ 10308 52
2.1 数据与文字的表示方法
3) 十进制数串的表示方法: ①字符串形式——一个字节存放一个十进制的数位或符号位; ②压缩的十进制数串形式——一个字节存放两个十进制的数位。 2.1.2 数的机器码表示: 为了区别一般书写表示的数和机器中编码表示的数(如原码、 补码、反码、移码),通常将前者称为真值,后者称为机器数或 机器码。 机器数——称符号数字化(0/1对应+/-号)的数称为机器数;
例5—[X]补=01011,X=+1011;[X]补=11011,X=-0ቤተ መጻሕፍቲ ባይዱ01
△ 表示数的个数—[X]补比X多1个
补码 真值 10„00 -2n 10„01 -(2n-1) 11„11 -1 00„00 0 00„01 +1 01„11 +(2n-1)
2.1 数据与文字的表示方法
*真值补码与真值负数补码的关系: 设纯整数[X]补=xn-1xn-2„x0,xi=0或1,则 当X≣0时,X = [X]补,其中xn-1=0, [-X]补 = 1xn-2„x0 +1 = xn-1xn-2„x0 +1 当X<0时,[X]补 = 2n -|X|,其中xn-1=1, [-X]补 =|X|= 2n -[X]补 =11„1-[X]补+1 = xn-1xn-2…x0 +1 △ [X]补→[-X]补— [X]补的各位(含符号位)取反、末位加1; [-X]补→[X]补— [-X]补的各位(含符号位)取反、末位加1。 例6--[X]补=10110,[-X]补=01001+1=01010 练习3—若X=-01001,[X]补=? 若[X]补=101010,X=?[-X]补=?
X
1-X=1+|X|
0≢X<1
-1<X≢0
原码表示法的特性:
①X与[X]原关系— ·[X]原用数字0/1替换X的符号,其余部分不变, ·[+0]原≠[-0]原, ·[X]原与X表示值的范围相同; ②运算方法—符号与数值分开运算(与手工运算一致); ③适合的运算—适合于乘除法,加减法较复杂。
2.1 数据与文字的表示方法
尾数:是纯小数,给出有效数字的位数,决定了浮点数的精度。
指数:也称阶码,是整数定点表示,决定了浮点数的表示范围。
早期表示形式:
1
m
1
n
格式— Es
阶符
E
阶码
Ms
数符
M
尾数
2.1 数据与文字的表示方法
浮点格式在数轴上的特征: 表示范围——假设尾数及阶的基均为2。
负上溢区 负数区
+∞
下溢区 机器零
绝对零
例1—[+1101]原=01101;[-1101]原=11101 例2—设[X]原=1101,则X=-101 例3—设[+X]原=0000,则[-X]原=1000;
即[+0]原≠[-0]原
练习1—若X=-01000,[X]原=? 若[X]原=101010,X=? 例4—[+0.1001]原=0.1001;[-0.1001]原=1.1001 例5—[X]原=1.01,则X=-0.01
2.1 数据与文字的表示方法
3)反码表示法
*目的:作为真值求补码的一种过渡手段。
*纯整数反码定义: 设X=±xn-2„x0,xi=0或1,取模=2n-1,则 X 0≢X<2n-1 [X]反 = (2n-1)+X (mod 2n-1) = (2n-1)+X -2n-1<X≢0 *纯小数反码定义: 设X=±0.x-1„x-(n-1),xi=0或1,模=2-2-(n-1),则 [X]反 = (2-2-(n-1)) + X (mod 2-2-(n-1)) X 0≢X<1 = (2-2-(n-1))+X -1<X≢0 例1—[+0.1101]反=0.1101,[-0.1101]反=1.0010 *反码与补码关系:
真
值——把用+/-表示符号的数称为真值。
2.1 数据与文字的表示方法
1) 原码表示法:
设X=±xn-1„x0,xi=0或1,则[X]原=xnxn-1„x0,
X X原 n 2 X 2n X 2n X 0 0 X 2n
①正数——在数值位前加符号位0;
2.1 数据与文字的表示方法
2) 补码表示法: *目的:实现符号与数值一起运算。 (1)有模运算与补数 举例—将时针从10点拨向7点,有两种拨法: ①倒拨—10-3=7;②顺拨—10+9=7+12=7。 *有模运算:在“模”的范围内的运算。
模—有模运算中被自动丢失的数值,即结果计量范围; 运算特征—只计量小于模的部分,其余部分被丢弃; 同余—若A、B、M满足A=B+kM (k为有符号整数), 则记 A≡B (mod M),称B和A为模M的同余。 *补数:若a、b、M满足a+b=M,称a、b互为模M的补数。( 即a为b模M的补数,b为a模M的补数)
E e 127(单精度) E e 1023(双精度)
2.1 数据与文字的表示方法
浮点数的规格化: 当尾数的值不为0时,尾数域的最高有效位应为1。否则以修 改阶码的同时左右移小数点位置的办法,使其变成规格化数的形 式。因为规格化的浮点数的尾数域最左位总是1,故这一位经常 不予存储,而认为隐藏在小数点的左边。
IEEE754标准的浮点格式: 有32位单精度、64位双精度两种格式和长度。
1
8
32
23
1
11
64
52
数符S
阶码E
尾数M
数符S
阶码E
尾数M
单精度浮点表示格式
双精度浮点表示格式
编码方式: ①数制—M和E均采用二进制方式(RM=RE=2); ②码制—M为定点纯小数表示(做了改进); E为定点纯整数移码表示(做了改进); 移码方法: 浮点数的指数真值e变成阶码E时,需要将e加上一个固定的偏移值。
X 原 =0x n-1 x1x 0
②负数——在数值位前加符号位1;
X 原 =1x n-1 x1x 0
③ 零 ——零的原码有“+0”,“-0”之分;
+0原 =00000 - 0原 =10000
2.1 数据与文字的表示方法
纯小数原码定义: 设X=±0.x-1„x-(n-1),则[X]原=x0.x-1„x-(n-1) [X]原 =
正上溢区 正数区
+∞
总长度不变时,如何提高浮点表示的范围?
方法1—增加阶的长度;方法2—增加尾数的基。
表示精度——①离数轴绝对零越近,精度越高; ②离数轴±∞越近,精度越低。 如何提高浮点表示的精度?
方法1—多种尾数长度(如单精度、双精度表示) 方法2—尾数规格化(使尾数的有效信息最大化)
2.1 数据与文字的表示方法
计算机组成原理
汪 沛
Email: wangpei_zuoye@
2013年
北京林业大学理学院
计算机组成原理
第2章 运算方法和运算器
计算机组成原理
本章结构
1
2 3 4 5 6 数据与文字的表示方法
定点加法、减法运算
定点乘法运算 定点除法运算 定点运算器的组成 浮点运算方法和浮点运算器
2.1 数据与文字的表示方法
2.1 数据与文字的表示方法
△ X→[X]补— 若X为正数,改符号位为0,其余各位不变; 若X为负数,改符号位为1,其余各位取反、末位加1 (即原码除符号位外,其余各位取反、末位加1) 例4—X=+0101,[X]补=00101;X=-0101,[X]补=11011 △ [X]补→X— 若最高位为0,改其为正号,其余各位不变; 若最高位为1,改其为负号,其余各位取反、末位加1
1
数据类型
2
存储和处理 的硬件代价
4
如何表示数据?
数值范围
数值精度
3
2.1 数据与文字的表示方法
2.1.1 数据格式: ①定点格式——数值范围有限,所需处理硬件较简单 ②浮点格式——数值范围很大,所需处理硬件较复杂 1) 定点格式: 约定机器中所有数据的小数点位置固定不变。 ①纯小数——小数点位于符号位和最高数值位之间 ②纯整数——小数点位于最低数值位的右边
Xn Xn-1
符号位
„
数值
X0
Xn Xn-1
符号位
„
数值
X0
纯小数
纯整数(有符号)
范围:
0≢|x| ≢1-2-n 定点数表示的运算
0≤|x| ≤2n-1
→
整数运算
2.1 数据与文字的表示方法
2) 浮点格式: 数的范围和精度分别表示,即小数点位置随比例因子的不同 而在一定范围内可以自由浮动。
十进制 N 10 E M M 尾数 R 基数 任意进制 N R EM E 指数
※正数补码最高位(符号位)为0,负数最高位为1 [+0000]补=[-0000]补=00000 ※数0的补码惟一
练习2—若X=-01000,[X]补=?
2.1 数据与文字的表示方法
例2—n=5、X≣0时,最大[X]补=01111,Xmax=24-1=+15 X<0时,最小[X]补=10000,Xmin=-24 =-16 ※补码表示数的个数比原码多1个
X n+X (mod 2n) = [X]补 = 2 2n + X=2n -|X| 0≢X<2n-1 -2n-1≢X<0
说明—因X的计量范围为-2n-1-1~2n-1-1,故模为2n。 例1—[+0001]补=00001,[-0001]补=10 0000-0001=11111 [+1111]补=01111,[-1111]补=10 0000-1111=10001