(计算机组成原理)第4章 运算方法与运算器-fjw-1

合集下载

006第4章-运算方法与运算器1PPT课件

006第4章-运算方法与运算器1PPT课件

-
10
第4章 运算方法与运算器
补码加减运算举例
例:已知X=+1011,Y=-0100,用补码计算X+Y 和X-Y。
写出补码:
[X]补 =0,1011 [Y]补 =1,1100 [-Y]补 =0,0100 计算:
0,1011 + 1,1100
0,0111
[X+Y]补 = 0, 0111
0,1011 + 0,0100
-
7
第4章 运算方法与运算器
当x+y<0时, 2+(x+y)<2, 所以, (x)补+(y)补= 2+(x+y) =(x+y)补
(3)当 x<0,y>0,则x+y>0或x+y<0,该种情况和第 二种情况一样,把x和y的位置对调即得证。
(4)当x<0,y<0时,则x+y<0。
所以,(x)补=2+x,(y)补=2+y 故: (x)补+ (y)补= 2+x+ 2+y=2+(2+x+y) 因为:|x+y|<1,所以1< 2+x+y<2
4) X= –3 X补=1 1101
Y= –2 Y补=1 1110
Y= 2 Y补=0 0010
0 0001(+1补码)
1 1111(–1补码)
-
12
第4章 运算方法与运算器
例. 求(X – Y)补
1) X= 4 X补=0 0100
2) X= –4 X补=1 1100
Y= –5 Y补=1 1011Biblioteka Y= 5 Y补=0 0101

(计算机组成原理)第4章 运算方法与运算器-fjw-1

(计算机组成原理)第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计算机组成原理(第四章)

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。

经典:计算机组成原理-运算方法和运算器

经典:计算机组成原理-运算方法和运算器
44
C n+1= Y0+ X0 Cn
C n+2= Y1+ Y0 X1 + X0 X1 Cn
C n+3= Y2 + Y1 X2 + Y0 X1 X2 + X0 X1 X2 Cn
C n+4= Y3 + Y2 Y3 + Y1 X2 X3 + Y0 X1 X2 X3 + X0 X1 X2 X3 Cn
p* G*
1.外部特性
41
工作方式: 正逻辑 负逻辑
控制方式: M=0 算术运算 M=1 逻辑运算
42
芯片管脚介绍:
控制端:S0 、 S1 、 S2 、 S3 、 M 输入端: A0 、B0 、 A1 、B1 、A2 、B2 、A3 、B3 进位输入端: Cn 输出端: F0 、F1 、 F2 、F3 进位输出端: Cn+4 比较输出端:A=B
被乘数 乘数
[X]原= Xf . Xn-1 …… X1 X0 [Y]原= Yf . Yn-1 …… Y1 Y0
积 [Z]原= (Xf Yf )(0. xn-1 …… x1 x0)(0. yn-1 …… y1 y0)
如下图:
27
110 11
1010 1
110 11
000 00
110 11
000 00
纯整数〔X〕反 =
X, (2n+1 – 1)+ x ,
2n > x ≥ 0 0≥ x > - 2n
纯小数〔X〕反 =
X, (2 – 2-n)+ x ,
1>x≥0 0≥ x > -1
特点:表示简单易懂,但运算复杂;另外还存在 零表示的不唯一性。

计算机组成原理第四章课后习题及答案_唐朔飞().doc

计算机组成原理第四章课后习题及答案_唐朔飞().doc

第4 章存储器1.解释概念:主存、辅存、Cache RAM SRAM DRAMROMPROMEPROVEEPROM CDRO、MFlash Memory 。

答:主存:主存储器,用于存放正在执行的程序和数据。

CPU可以直接进行随机读写,访问速度较高。

辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。

Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。

RAM半导体随机存取存储器,主要用作计算机中的主存。

SRAM 静态半导体随机存取存储器。

DRAM 动态半导体随机存取存储器。

ROM 掩膜式半导体只读存储器。

由芯片制造商在制造时写入内容,以后只能读出而不能写入。

PROM 可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。

EPRO M紫外线擦写可编程只读存储器。

需要修改内容时,现将其全部内容擦除,然后再编程。

擦除依靠紫外线使浮动栅极上的电荷泄露而实现。

EEPROM电擦写可编程只读存储器。

CDROMI只读型光盘。

Flash Memory :闪速存储器。

或称快擦型存储器。

2.计算机中哪些部件可以用于存储信息?按速度、容量和价格/ 位排序说明。

答:计算机中寄存器、Cache主存、硬盘可以用于存储信息。

按速度由高至低排序为:寄存器、Cache主存、硬盘;按容量由小至大排序为:寄存器、Cache主存、硬盘;按价格/位由高至低排序为:寄存器、Cache主存、硬盘3.存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。

Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。

主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。

(完整版)计算机组成原理第4章作业参考答案

(完整版)计算机组成原理第4章作业参考答案

第4章部分习题参考答案【4-4】已知X和Y,试用它们的变形补码计算出X + Y,并指出结果是否溢出(3)X = -0.10110,Y = -0.00001解:[X]补= 1.01010 [Y]补= 1.111111 1 . 0 1 0 1 0+ 1 1 . 1 1 1 1 11 1 . 0 1 0 0 1无溢出,X+Y = -0.10111【4-5】已知X和Y,试用它们的变形补码计算出X - Y,并指出结果是否溢出(3)X = 0.11011,Y = -0.10011解:[X]补= 0.11011 [-Y]补= 0.100110 0 . 1 1 0 1 1+ 0 0 . 1 0 0 1 10 1 . 0 1 1 1 0结果正溢【4-8】分别用原码乘法和补码乘法计算X * Y(1)X = 0.11011,Y = -0.11111法一:原码一位乘算法解:|X| = 0.11011→B |Y| = 0.11111→C 0→AA C 说明1 1 1 1 1C5 = 1, +|X|1 1 1 1 1 部分积右移一位→C5 = 1, +|X|0 1 1 1 1 部分积右移一位→C5 = 1, +|X|1 0 1 1 1 部分积右移一位→C5 = 1, +|X|0 1 0 1 1 部分积右移一位→C5 = 1, +|X|0 0 1 0 1 部分积右移一位→|X * Y| = 0.1101000101Ps = Xs ⊕ Ys = 0 ⊕ 1 = 1X*Y = -0.1101000101法二:补码一位乘算法解:[X]补= 0.11011→B [Y]补= 1.00001→C [-X]补= 1.00101 0→AA C 附加说明0 0. 0 0 0 0 0 1 0 0 0 0 1 0+1 1. 0 0 1 0 1 C4C5 = 10 -|X|1 1. 0 0 1 0 11 1. 1 0 0 1 0 1 1 0 0 0 0 1 部分积右移一位→+0 0. 1 1 0 1 1 C4C5 = 01 +|X|0 0. 0 1 1 0 10 0. 0 0 1 1 0 1 1 1 0 0 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 1 1 00 0. 0 0 0 1 1 0 1 1 1 0 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 0 1 10 0. 0 0 0 0 1 1 0 1 1 1 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 0 0 10 0. 0 0 0 0 0 1 1 0 1 1 1 0 部分积右移一位→+1 1. 0 0 1 0 1 C4C5 = 10 -|X|1 1. 0 0 1 0 1[X*Y]补= 11.0010111011X*Y = -0.1101000101【4-10】计算X/Y(2)X = -0.10101,Y = 0.11011原码恢复余数法:解:|X| = -0.101010→A |Y| = 0.110110→B [-|Y|]补= 1.00101 0→C0 0. 1 0 1 0 1 0 0 0 0 0 0+1 1. 0 0 1 0 1 -|Y|1 1. 1 1 0 1 0 <0+0 0. 1 1 0 1 1 +|Y|0 0. 1 0 1 0 1 0 0 0 0 0 0 商00 1. 0 1 0 1 0 0 0 0 0 0 0 左移←+1 1. 1 1 0 0 1 -|Y|0 0. 0 1 1 1 1 0 0 0 0 0 1 >0,商10 0. 1 1 1 1 0 0 0 0 0 1 0 左移←+1 1. 0 0 1 0 1 -|Y|0 0. 0 0 0 1 1 0 0 0 0 1 1 >0,商10 0. 0 0 1 1 0 0 0 0 1 1 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1. 0 1 0 1 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 0 0 1 1 0 0 0 0 1 1 0 商00 0. 0 1 1 0 0 0 0 1 1 0 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1.1 0 0 0 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 0 1 1 0 0 0 0 1 1 0 0 商00 0. 1 1 0 0 0 0 1 1 0 0 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1. 1 1 1 0 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 1 1 0 0 0 0 1 1 0 0 0 商0Qs = Xs⊕Ys = 0⊕1 = 1Q = -0.11000,R = 0.11000*2-5【4-11】设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题(2)X = 2-101*0.101100,Y = 2-100*(-0.101000)解:[X]补= 1011;0.101100[Y]补= 1100;1.011000对阶:△E = Ex – Ey = -5 -(-4)= -1Ex < Ey,将Mx右移一位,Ex+1→Ex[X]’补=1011;0.010110尾数求和:0 0. 0 1 0 1 1 0+1 1. 0 1 1 0 0 01 1. 1 0 1 1 1 0尾数结果规格化:尾数左移1位,阶码减1[X+Y]补=1011;1.011100X+Y = (-0.100100)*2-101减法算法过程略,X-Y = 0.111110 * 2-100【4-13】用流程图描述浮点除法运算的算法步骤设:被除数X = Mx * 2Ex; 除数Y = My * 2 Ey。

《计算机组成原理》第4章:运算器

《计算机组成原理》第4章:运算器

/webnew/
4.3.1 定点加法的实现方案
二进制加法是实现算术运算的基础。当采用补码方 案时,加减法可采用统一的方式处理。实际上,乘除 法也是通过加减运算和移位相结合的方案实现的。因 此首先讨论用补码实现加减法对运算器组成的要求。 1. 实现原理 已知:[X+Y]补=[X]补+[Y]补 可推之:[X-Y]补=[X]补+[-Y]补 若已有[Y]补,求[-Y]补,则可用把[Y]补的每一位(包 括符号位和数值位)取反,再在最低位加上1来实现, 由此可得到如图4-6所示的逻辑电路。 加法器和寄存器由多少个二进制位组成,被叫做定点 运算器的字长,一般可为16、32或64位等。它们的
/webnew/
4.2 一个简单的算术逻辑单元
,可送往SN74182构成组间并行进位。有关的逻 辑式如下。 Cn+1= G0+P0Cn Cn+2= G1+P1G0+P1P0Cn Cn+3= G2+P2G1+P2 P1G0+ P2P1P0Cn Cn+4= G· 3P2P1P0Cn=G· n=G+PCn P PC 其中,G=G3+P3G2+P3P2G1+P3P2P1G0 P= P3P2P1P0 (3)ALU四位数据的输入选择逻辑,位于图的下半 部分,选择运算功能。
图4-4 用4片74181构成的16位ALU
/webnew/
4.2 一个简单的算术逻辑单元
如果采用组间并行进位结构,可增加并行进 位链芯片SN74182。图4-5提供了一个16位 连接实例。74181输出的小组进位产生函数 G与进位传递函数P,可作为并行进位链 74182的输入,而74182则向各74181提供 组间进位信号。74182的输出还可支持更高 一级的并行进位链,从而可构造更长位数的 ALU。

计算机组成原理 运算方法与运算器

计算机组成原理 运算方法与运算器

真值
原码
-128
-127
1111 1111
...
...
-1
1000 0001
-0
1000 0000
+0
0000 0000
+1
0000 0001
...
...
2021年+3月12317日星期三 0111 1111
反码
1000 0000
...
1111 1110 1111 1111 0000 0000 0000 0001
第2章 运算方法和运算器
目录
2.0 数据的类型
2.1 数据与文字的表示方法 (掌握)
2.2 定点加法、减法运算
(掌握)
2.3 定点乘法运算
(掌握)
2.4 定点除法运算
(掌握)
2.5 定点运算器的组成
(了解)
2.6 浮点运算方法和浮点运算器(理解)
2021年3月31日星期三
2
学习要求
掌握定点和浮点数的表示方法,表示范围; 掌握定点数的补码加减法、常用的乘除法运算方法; 掌握浮点数的加减运算方法; 掌握数据校验的方法; 理解溢出判断方法; 清楚运算器部件的组成结构及设计方法。
阶码E:8 位,采用有偏移值的移码表示,移码域值大则其指数也大; 移127码,即E=e+127,E的8位二进制数即为移127码的编码;
浮点数的真值:N=(-1)S×(1.M)×2E-127
2021年3月31日星期三
19
IEEE754 标准格式 (64位格式)
其真值表示为: x=(-1)S×(1.M)×2E-1023
...
0111 1111
补码
1000 0000 1000 0001

计算机组成原理第4章浮点数运算方法ppt课件

计算机组成原理第4章浮点数运算方法ppt课件
因此如果求阶码和可用下式完成: [jx]移+[jy]补= 2n+ jx +2n+1+ jy = 2n+ [2n +( jx + jy)] = [jx +
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,则可进行乘法运 算。
相乘:两个浮点数的尾数相乘可以采用定 点小数的任何一种乘法运算来完成。
规格化:相乘结果可能要进行左规,左规 时调整阶码后如果发生阶下溢,则作机器 零处理;如果发生阶上溢,则作溢出处理。

计算机组成原理--运算方法:加减乘除

计算机组成原理--运算方法:加减乘除

计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[x+y]补=[x]补+[y]补补码减法:为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补(证明)为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)溢出检测溢出的检测可能产⽣溢出的情况两正数加,变负数,上溢(⼤于机器所能表⽰的最⼤数)两负数加,变正数,下溢(⼩于机器所能表⽰的最⼩数)定点原码乘法定点乘法原理n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,⽽FA只有两个输⼊端,机器⼀次只能进⾏两个数的相加,不能进⾏多个数据的加法。

⼿⼯计算中,乘数的每⼀位是0还是1都可直接看见,⽽在计算机中,采⽤放乘数的寄存器的每⼀位直接决定本次相加数是被乘数还是0是很不⽅便的,若采⽤该寄存器的最低⼀位来执⾏这种判断就简便了。

计算机中执⾏乘法时,积的符号位由被乘数和乘数的符号位通过⼀个半加器(即异或门)实现。

数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移⼀位,得到新的部分积;当Yi为0时,则写下全0。

然后再对乘数Y的⾼⼀位进⾏类似乘法运算。

重复“加—右移”操作N次,可得到最后的乘积。

R0存放部分积,R2存放被乘数,R1存放乘数R0清零,R2存放被乘数,R1存放乘数。

乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出⾄R0的输⼊端。

⼀旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作⽤下右移⼀位,且计数器I记数⼀次;将步骤三重复执⾏N次当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:⼀是符号位需要单独运算,最后给运算结构以正确的符号;⼆是对于采⽤补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不⽅便,⽽且影响速度。

计算机组成原理计算机的运算方法(共56张PPT)精选全文

计算机组成原理计算机的运算方法(共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课件(2024)

计算机组成原理(本全)ppt课件(2024)

I/O设备的分类
按数据传输方式可分为字符设备和块设备;按设备 共享属性可分为独占设备和共享设备。
I/O接口与I/O设备的连 接方式
包括并行接口和串行接口,其中并行接口传 输速度快,但传输距离短,而串行接口传输 速度慢,但传输距离长。
I/O控制方式与中断技术
I/O控制方式
包括程序查询方式、中断方式和DMA方式。程序查询方 式需要CPU不断查询I/O设备的状态,效率低下;中断方 式可以在I/O设备准备好数据后主动通知CPU,提高了 CPU的利用率;DMA方式则允许I/O设备与内存直接交 换数据,进一步提高了数据传输效率。
计算机的发展
计算机经历了从电子管、晶体管、集成电路到超大规模集成 电路等多个发展阶段,性能和体积不断得到优化和改进。目 前,计算机已广泛应用于各个领域,成为现代社会不可或缺 的工具。
计算机系统的组成
要点一
硬件系统
计算机硬件是计算机系统的物质基础,包括中央处理器、 内存储器、外存储器、输入设备和输出设备等部分。其中 ,中央处理器是计算机的核心部件,负责解释和执行指令 ;内存储器用于暂时存储数据和程序;外存储器用于长期 保存数据和程序;输入设备用于将数据和信息输入到计算 机中;输出设备则将计算机处理结果以人们能够识别的形 式输出。
人们日常生活中最为熟悉的数制,每一位上的数码都是 0~9之间的数字。
十六进制表示法
在二进制基础上发展起来的一种数制,每一位上的数码由 0-9和A-F(对应十进制中的10-15)组成,常用于表示内 存地址和机器码等信息。
数的定点表示与浮点表示
定点表示法
小数点固定在某一位置的数制表示方 法,包括定点整数和定点小数,适用 于表示范围较小的数值。
总线技术

计算机组成原理课件第四章计算机中的算术运算

计算机组成原理课件第四章计算机中的算术运算


结果:
[X*Y]补=0.10001111
Ø
被乘数的符号X0和乘数的符号Y0 都参加运算。
Ø 乘数寄存器R1有附加位Yn+1, 其初始状态为“0”。当乘数和部分积每次 右移时,部分积最低为移至R1的首位位臵, 故R1必须是具有右移功能的寄存器。 Ø 被乘数寄存器R2的每一位用原码或 反码经多路开关传送到加法器对应位的一个 输入端,而开关的控制信号由YnYn+1的 输出译码器产生。当YnYn+1=01时, 送[X]补;当YnYn+1=10时,送 [-X]补,即送R2的反码且在加法器最 末位加上“1”。 Ø R0保存部分积,它也是具有右移功 能的移位寄存器,其符号位与加法器符号位 始终一致。 当计数器i=n+1时,封锁LDR1和L DR0控制信号,使最后一步不移位。
Yi-1yi 00
00 01 01
Cj 0
1 0 1
操作 部分积加0,右移两位
部分积加|x|,右移两位 部分积加|x| ,右移两位 部分积加2|x| ,右移两位
[X]补=1. 1 0 0 + [Y]补=1. 0 1 1
1 10. 1 1 1
丢到
两负数相加,结果应为负数,但运 算结果为正数,表明有溢出发生

例: X=100 ,Y=-110,求 X-Y=? 解:
[X]补=0 1 0 0 + [-Y]补=0 1 1 0
1 01 0 一个正数减去一个负数,结果为正数,但计算 结果为负数,表明有溢出发生,出错
采用双符号位的判断方法
每个操作数的补码符号用两个二进制数表示,称为 变形补码,用“00”表示正数,“11”表示负数,左边第 一位叫第一符号位,右边第一位称为第二符号位,两个 符号位同时参加运算,如果运算结果两符号位相同,则 没有溢出发生。如果运算结果两符号位不同,则表明产 生了溢出。“10”表示负溢出,说明运算结果为负数, “01”表示正溢出,说明运算结果为正数。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24
举例
❖ 例如:X=+1011, Y=-1101,用原码 一位乘法计算 P=X·Y。
❖ [X]原=0,1011 ❖ [Y]原=1,1101 ❖ Ps=Xs⊕Ys
=0⊕1=1 ❖ |P| = |X|·|Y|
[P]原=1,10001111
部分积 0,0000 + 0,1011 0,1011 0,0101 + 0,0000 0,0101 0,0010 + 0,1011 0,1101 0,0110 + 0,1011 1,0001 0,1000
❖ (2)双符号位判溢方法 ▪ X和Y采用双符号位补码参加运算,正数的双符号 位为00,负数的双符号位为11;当运算结果的两 位符号Sf1 Sf2不同时(01或10),发生溢出。 ▪ V= Sf1 ⊕ Sf2= Xf ⊕Yf ⊕Cf⊕ Sf ▪ Sf1 Sf2=01,则正溢出;Sf1 Sf2=10,则负溢出。
Cn 并行加法器(n位) C0
控制逻辑
B(0被1乘0数1|X1|)
30
第二次求部分积
右移1位
A(0 部0 10分01积10)
Q(1乘1 数11|1Y1|)0Q1 n
右移一位
CF
缓冲器
CP
00000 1101 01011 1101 00101 1110 00101 1110 00010 1111
Cn 并行加法器(n位) C0
控制逻辑
B(0被1乘0数1|X1|)
31
第三次求部分积 加运算:+|X| 00000 1101
01011 1101
A(0 部01 01分10积01)
Q(1乘数1 |1Y|) 1Qn 00101 1110
右移一位
CF
缓冲器
CP
00101 1110 00010 1111
Cn 并行加法器(n位) C0
01101 1111
[X+Y]补 00,0001
Sf1 Sf2=00,无溢出
[X]补 00,1000 + [-Y]补 11,0111
[X-Y]补 11,1111
Sf1 Sf2=11,无溢出
[X]补 11,1000 + [-Y]补 11,0111
[X-Y]补 10,1111
Sf1 Sf2=10,负溢出
10
3、补码加减运算器
❖ 确定发生溢出的情况: ▪ 正数相加,且结果符号位为1; ▪ 负数相加,且结果符号位为0; ▪ 正数-负数,且结果符号位为1; ▪ 负数-正数,且结果符号位为0;
8
常用的判溢方法(补码加减运算)
❖ (1)单符号位判溢方法2 ▪ 当最高有效位产生的进位和符号位产生的进位不 同时,加减运算发生了溢出。 ▪ V=C1⊕Cf
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
S≤9时,结果正确,
不需校正。
C1
❖ 对于8421 BCD码,校
正条件为:
▪ S8’S4’S2’S1’ ≥1010
▪ 或C=1
S8 S4 S2 S1
四位二进制加法器
0
0
P
S8'S4' S2'S1'
四位二进制加法器
C
C0
A8 A4 A2 A1 B8 B4 B2 B1
18
4.2 定点数的乘法运算及实现
• Sf1 Sf2=10时,结果正溢出; • Sf1 Sf2=11时,结果负溢出。 ▪ 由于移码运算用于浮点数的阶码,当运算结果正 溢出时,浮点数上溢;当运算结果负溢出时,浮 点数下溢,当作机器零处理。
17
四、十进制加法运算
ห้องสมุดไป่ตู้
❖ 十进制加法器实现: 二进制加法器+校正 电路
❖ 当相加的两数之和
S>9时,加6校正;当
▪ 指令系统:具有乘除法指令。 ▪ 实现:完全通过硬件来实现。 ▪ 算法:并行乘/除法。 ▪ 运算速度:很快,但硬件设计相当复杂。 ▪ 适用场合:高性能CPU。
1、手工乘法算法 2、原码一位乘法算法 3、原码乘法的硬件实现
22
1、手工乘法算法
❖ 手工计算1011×1101,步骤: ❖ 手工算法:对应每1位乘数求得1项位
同时,并行加法器的最低位产生进位,即B取反加1, 此时并行加法器的运算相当于[A]补加[-B]补 ,完成减 法运算。
12
二、机器数的移位运算
❖二进制数据(真值)每相对于小数点左移一位,相当 于乘以2;每相对于小数点右移一位,相当于除以2。
❖计算机中的移位运算分为: ▪ 1、逻辑移位:将移位的数据视为无符号数据,各 数据位在位置上发生了变化,导致无符号数据的数 值(无正负)放大或缩小。 ▪ 2、算术移位:将移位的数据视为带符号数据(机 器数)。算术移位的结果,在数值的绝对值上进行 放大或缩小,同时,符号位必须要保持不变。 ▪ 3、循环移位:所有的数据位在自身范围内进行左 移或者右移,左移时最高位移入最低位,右移时最 低位移入最高位。
例: [X]补 =0.1101,则: [-X]补 = 1?.0011 [Y]补 =1.1101,则: [-Y]补 = ?0.0011
6
补码加减运算举例
❖例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。
▪写出补码:
[X]补 =0,1011 ▪ 计算:
[Y]补 =1,1100 [-Y]补 =0,0100
15
三、移码加减运算与判溢
❖ 移码和移码计算
❖ [X]移 =2n+X
[Y]移 =2n+Y -2n≤X≤2n-1
❖ [X]移 + [Y]移 =2n+X+2n+Y= 2n+(2n +X+Y)

= 2n + [ X+Y]移
❖ [X]移 + [-Y]移 = 2n + [ X-Y]移
❖移码和补码混合计算
❖[Y]补 =2n+1+Y (mod 2n+1) ❖[X]移 + [Y]补 = [ X+Y]移
一 原码乘法及实现 二 补码乘法及实现 三 阵列乘法器
19
一、原码乘法及实现
❖ 由于计算机的软硬件在逻辑上具有一定的等价性,因 此实现乘除法运算,可以有三种方式:
❖ Ⅰ.用软件实现。
▪ 硬件上:设计简单,没有乘法器和除法器。 ▪ 指令系统:没有乘除指令,但有加/减法和移位指
令 ▪ 实现:乘除运算通过编制一段子程序来实现 ▪ 算法:程序中运用串行乘除运算算法,循环累加、
16
三、移码加减运算与判溢
❖ 移码运算结果判溢:双符号位 0 Xf X1 X2 ……Xn
▪ [X]移的最高符号位恒为0
+ Yf Yf Y1 Y2 ……Yn
▪ [Y]补采用双符号位
Sf1 Sf2 S1 S2 ……Sn
❖ 移码运算结果溢出的判断条件是:
▪ 当结果的最高符号位Sf1=1时溢出,Sf1=0时结果正 确。
控制逻辑
B(0被1乘0数1|X1|)
32
第三次求部分积
乘数Y 1101
操作说明 Y4=1,+|X|
1110
右移一位 Y3=0,+0
1 1 1 1 右移一位 Y2=1,+|X|
1 1 1 1 右移一位 Y1=1,+|X|
1111
右移一位
25
3、原码乘法的硬件实现
A(部分积)
Q(乘数|Y|) Qn
右移一位
缓冲器 C F
Cn 并行加法器(n位) C0
C
计数器 P =0
23
2、原码一位乘法算法:
❖ 假设[X]原=XS X1 X2 ……Xn , [Y]原=YS Y1 Y2 ……Yn , P=X·Y,PS是积的符号:
❖ 符号位单独处理 Ps=Xs ⊕ Ys ❖ 绝对值进行数值运算 |P|=|X|*|Y| ❖ 初始部分积为0,Yi=1,部分积加|X|,Yi=0,
部分积加0,累加结果右移一位,得新部分 积。 ❖ 累加右移n次,即i=n,n-1,…,2,1。
B ……
Qn Q
…… Bi
控制逻辑电路
控制逻辑
Q D MUL
Q CLR
B(被乘数|X|)
26
原码一位乘法 为各寄存器赋初值 00000 1101
A(0 部0 0分0积0)
Q(乘1 数1|Y0|) Q1n
右移一位
CF
缓冲器
CP
Cn 并行加法器(n位) C0
控制逻辑
B(0被1乘0数1|X1|)
27
第一次求部分积 加运算:+|X|
0,1011 + 1,1100
0,0111
[X+Y]补 = 0, 0111
0,1011 + 0,0100
0,1111
[X-Y]补 = 0, 1111
7
2、补码加减运算的溢出判断
❖ 当运算结果超出机器数的表示范围时,称为溢出。计 算机必须具备检测运算结果是否发生溢出的能力,否 则会得到错误的结果。
❖ 对于加减运算,可能发生溢出的情况:同号(两数) 相加,或者异号(两数)相减。
右移指令→乘法,循环减、左移指令→除法。 ▪ 运算速度:较慢。 ▪ 适用场合:单片机。
20
一、原码乘法及实现
❖ Ⅱ.用硬件乘法器和除法器实现。
相关文档
最新文档