分享
分享赚钱 收藏 举报 版权申诉 / 117

类型计算机组成原理 第三章1运算器.ppt

  • 上传人:tkhy51908
  • 文档编号:9255919
  • 上传时间:2019-07-31
  • 格式:PPT
  • 页数:117
  • 大小:1.86MB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    计算机组成原理 第三章1运算器.ppt
    资源描述:

    1、第三章 CPU子系统,中央处理器(CPU)是计算机系统的核心组成部件,它包括运算器和控制器两大部分。,本章主要讨论:,运算器 控制器 数据通路结构 与外部的连接,CPU组成,CPU工作原理,指令的执行过程,3.1 算术、逻辑运算基础,计算机进行运算的特点: (1)所有数据都是用二进制数位形式来表示的。 (2)在机器内部,数是以编码形式即机器数来表示的。 (3)机器运算规模有限,因而机器运算就要解决运算方法、数据表示格式及数据长度的选取、规定等问题。 (4)用计算机进行运算时,都要把复杂的运算,简化为一系列的、最基本的运算才能实现。计算机可以实现的基本运算有算术运算(加、减、乘、除等)和逻辑运算

    2、(与、或、异或等)。,3.1.1 定点加减运算,补码加减法: 补码的一个重要特点是它可以直接进行加减法运算,并且计算简单,因此计算机中基本采用补码加减法。 运算规则: (1)参与运算的操作数用补码表示,符号位作为数的一部分直接参与运算,所得即为补码表示的运算结果。 (2)若操作码为加,则两数直接相加; (3)若操作码为减,则将减数变补后再与被减数相加。,3.1.1 定点加减运算,计算公式X+Y补=X补+Y补X-Y补=X补+-Y补 例1 已知X=9,Y=3,求X+Y补, X-Y补, Y-X补。 解: X+Y补= X补+Y补=01001+00011=01100X-Y补=X补+-Y补=01001+1

    3、1101=100110Y-X补=Y补+-X补=00011+10111=11010,3.1.1 定点加减运算,例2X=0.001010 Y=-0.100011 求X-Y补解 X补=0.001010 -Y补=0.100011则 X-Y补 = X补+-Y补= 0.001010 + 0.100011= 0.101101,3.1.2 溢出判断与移位,一.溢出机器数字长5位,其中含1位数符,补码运算,问:定点整数表示范围?-16 +15 (10000 01111)所谓溢出就是指运算结果大于机器所能表示的最大正数或小于机器所能表示的最小负数。,3.1.2 溢出判断与移位,正溢:两个正数相加后结果超出允许的表

    4、示范围。 如:1版: P106 例3-32版: P100 例3-3 负溢:两个负数相加后结果超出允许的表示范围。 如: 1版: P106 例3-52版: P100 例3-5,3.1.2 溢出判断与移位,溢出判别 定义:两操作数的数符分别为SA、SB,结果的数符为Sf。符号位直接参与运算,产生的符号位进位为Cf。最高有效数位产生的进位为C。 1.判别方法一:溢出=,只有同号数相加才能产生溢出,溢出的标志是结果数符与操作数数符相反,3.1.2 溢出判断与移位,2.判别方法二:溢出=,(Cf为符号位运算产生的进位,C为最高有效数位产生的进位。),Cf 和C不同时表明溢出,3.判别方法三: 操作数采用

    5、双符号位(变形补码),通过运算结果的符号位进行判断:(P101),00 结果为正,无溢出 01 结果正溢 10 结果负溢 11结果为负,无溢出,3.1.2 溢出判断与移位,二. 移位 逻辑移位(1) 数字代码为纯逻辑代码,没有数值意义(2)分为:循环左移、循环右移、非循环左移、非循环右移,3.1.2 溢出判断与移位,算术移位 1、原码(及正数补码)移位规则:数符不变,空位补0 2、负数补码移位规则:左移:数符不变,空位即末位补0右移:数符不变,空位补1,3.1.2 溢出判断与移位,3. 例: 原码和正数补码0.0101 左移一位 0.10101.0101 左移一位 1.101000.1010

    6、左移一位 01.0100 (*双符号位时可左移1位,第二符号位暂存数值,第一符号位仍表示符号)1.1010 右移一位 1.010101.0100 右移一位 00.1010 (* 双符号位时右移1位,第二符号位暂存的数值移到最高有效位。),3.1.2 溢出判断与移位,负数补码 左移:1.1011 左移一位 1.011011.0110 左移一位 10.1100 右移:1.0110 右移一位 1.101110.1100 右移一位 11.0110,3.1.2 溢出判断与移位,三. 舍入 舍入的原则使本次舍入产生的误差及累计误差都比较小 两种舍入规则1、 0舍1入 2、末位“恒置1” 例: 课本P103

    7、 例3-8 例3-11,3.1.3 定点乘法运算,手算例子:,1101,1101,0000,1101,0.10001111,由于结果为负,所以,3.1.3 定点乘法运算,手算到机器实现要解决的问题1、符号问题解决方法:原码乘法符号单独处理,补码乘法符号参与运算 2、乘积等于各位积之和(要考虑权)“位积”是乘数的某位乘以被乘数所得到的积。“部分积”是位积的和。1)n位乘法运算就有n个位积,要n个寄存器来存放位积;2)加法器难以完成n个位积的同时求和;3)需要2n位字长的加法器,通常的加法器都是n位字长。解决方法:n次累加与移位循环或阵列乘法器,3.1.3 定点乘法运算,手算的改进(将一次相加改为

    8、分步累加),1101,01101,+ 1101,100111,100111,+ 0000,100111,0100111,+ 1101,10001111,10001111,3.1.3.1 原码一位乘法,一. 基本思想: 乘积的数值部分是乘数和被乘数的数值部分相乘之积。 乘积的符号由两数的符号异或得到(同号相乘为正,异号相乘为负)。 每次用一位乘数去乘被乘数,并将一位乘数所对应的位积与原部分积的累加和相加,并移位。设 X = Sx.x1x2xn , Y = Sy.y1y2yn 乘积的尾数 : P = |X| . |Y|乘积的符号:Sp = Sx Sy,3.1.3.1 原码一位乘法,二. 举例实现

    9、已知 X=0.1101,Y=-0.1011,求XY=? 设置寄存器:A:存放部分积累加和、乘积高位B:存放被乘数C:存放乘数、乘积低位 设置初值:A = 00.0000B = |X| = 00.1101C = |Y| = .1011,步数 条件 操作 A C,00.0000 .1011,1),Cn=1,+B,Cn,+ 00.1101,00.1101,00.0110,1.101,2),Cn=1,+B,+ 00.1101,01.0011,00.1001,11.10,3),Cn=0,+0,+ 00.0000,00.1001,00.0100,111.1,+B,4),Cn=1,+ 00.1101,01.

    10、0001,00.1000,1111,X原Y原 = 1.10001111,三. 算法流程,Y,Y,N,N,3.1.3.1 原码一位乘法,四. 运算规则 (1)操作数、结果用原码表示; (2)绝对值运算,符号单独处理; (3)被乘数(B)、累加和(A)取双符号位; (4)乘数末位(Cn)为判断位,其状态决定下步操作; (5)作n次循环(累加、右移)。,3.1.3.1 原码一位乘法,五. 逻辑实现 加法器输入端控制信号:+A、+B 加法器输出端控制信号:1/2 A、C、CPA、CPC,3.1.3.2 补码一位乘法,一. 原则操作数与结果均以补码表示,连同符号位一起,按相应算法运算。 二. 实现方法:

    11、 1.校正法 XY补=X补0.Y1Y2Yn-X补Y0,乘数Y的符号位,3.1.3.2 补码一位乘法,(1)Y为正:Y补 = 0.Y1Y2Yn, Y0=0XY补=X补0.Y1Y2Yn-X补Y0= X补0.Y1Y2Yn (2)Y为负:Y补 = 1.Y1Y2Yn,Y0=1XY补=X补0.Y1Y2Yn-X补Y0= X补0.Y1Y2Yn-X补,3.1.3.2 补码一位乘法,2.比较法: 展开为部分积的累加和形式: XY补=X补0.Y1Y2Yn-X补Y0,3.1.3.2 补码一位乘法,若定义Z0为初始部分积,Z1补Zn补依次为各步求得的累加并右移后的部分积,可将上式改写为: Z0补 = 0 Z1补 = 2

    12、-1 Z0补 +(Yn+1-Yn)X补 Z2补 = 2-1 Z1补 +(Yn-Yn-1)X补,Zn补 = 2-1 Zn-1补 +(Y2-Y1)X补 XY补 = Zn补 +(Y1-Y0)X补,3.1.3.2 补码一位乘法,三. 比较法算法 由于它的操作是乘数相邻两位之差(低位减高位),即两位的比较结果,所以称为比较法。 1.基本操作:被乘数X补乘以对应的乘数相邻两位之差值再与原部分积累加,然后右移一位,形成该步的部分累加和。,3.1.3.2 补码一位乘法,Yn(高位) Yn+1(低位) 操作(A补为部分积累加和),0 00 11 01 1,原部分积右移一位 1/2A补原部分积加X补后再右移一位

    13、1/2(A补+X补)原部分积加-X补后再右移一位1/2(A补-X补)原部分积右移一位 1/2A补,( 0 ),( 1 ),(-1 ),( 0 ),3.1.3.2 补码一位乘法,2.例 X=-0.1101,Y=-0.1011,求(XY)补。 设初值:A=00.0000,B=X补=11.0011,-B=(-X)补=00.1101,C =Y补=1.0101,步数 条件 操作 A C,00.0000 1.0101,1),1 0,-B,Cn,+ 00.1101,00.1101,00.0110,11.0101,2),0 1,+B,+ 11.0011,11.1001,11.1100,111.010,3),1

    14、 0,-B,+ 00.1101,00.1001,00.0100,1111.01,4),0 1,+B,+ 11.0011,11.0111,11.1011,11111.0,0,Cn+1,CnCn+1,5),1 0,-B,+ 00.1101,3.1.3.2 补码一位乘法,(XY)补 = 0.10001111,4),0 1,+B,+ 11.0011,11.0111,11.1011,11111.0,5),1 0,-B,+ 00.1101,00.1000,1111,修正,1.0 : -B修正 0.1 : +B修正 0.0 : 不修正 1.1 : 不修正,3.1.3.2 补码一位乘法,3. 运算规则:(1)

    15、A、B取双符号位,符号参加运算; (2)C取单符号位,符号参加移位,以决定最后是否修正; (3)C末位设置附加位Cn+1,初值为0,CnCn+1组成判断位,决定运算操作; (4)作n步循环,若需作第n+1步,则不移位,仅修正。,3.1.3.2 补码一位乘法,4.逻辑实现,加法器输入端控制信号:+A、+B、+B、+1,加法器输出端控制信号:1/2 A、C、 A、CPA、CPC,3.1.3.3 原码两位乘法,每次用两位乘数去乘被乘数。 一.算法分析 Yi(高位) Yi+1(低位) 部分积 累加、移位,0 0 0 1 1 0 1 1,1/4A1/4(A+X)1/4(A+2X)1/4(A+3X),(

    16、0 ),( 1 ),( 2 ),( 3 ),0,X,2X,3X,如何实现+3X操作?,3.1.3.3 原码两位乘法,解决办法:,1/4(A+3X)=,1/4(A+2X+X)=1/4(A+2X)+1/4X,1/4(A-X+4X)=1/4(A-X)+X,设置欠帐触发器CJ,=,0 不欠帐 1 欠帐,下次补作+X操作,3.1.3.3 原码两位乘法,二.运算规则,0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1,操 作,Yi Yi+1 CJ,1/4(A+X) 0 CJ,1/4(A+X) 0 CJ,1/4(A+2X) 0 CJ,1/4A 0 CJ,1/4(A

    17、-X) 1 CJ,1/4(A-X) 1 CJ,1/4A 1 CJ,1/4(A+2X) 0 CJ,3.1.3.3 原码两位乘法,三. 举例 例1. X原=1.111111,Y原=0.111001,求XY原。解:设初值: A=000.000000, B=|X|=000.111111, 2B=001.111110, -B=111.000001, C = |Y| =00.111001,步数 条件 操作 A C,000.000000 00.111001,1),0 1 0,+B,CJ,+000.111111,000.111111,000.001111,1100.1110,2),1 0 0,+2B,+001

    18、.111110,010.001101,000.100011,011100.11,3),1 1 0,-B,+111.000001,111.100100,111.111001,000111 00.,4),0 0 1,+B,+000.111111,000.111000,000111,Cn-1Cn,Cn-1CnCJ,0,0,2,2,2,0,1,还帐,XY原=1.111000000111,3.1.3.3 原码两位乘法,例2. X原=0.00111,Y原=1.01001,求XY原。解:设初值:A=000.00000, B= |X| =000.00111, 2B=000.01110, -B=111.1100

    19、1, C =|Y|=00.010010,3.1.3.3 原码两位乘法,步数 条件 操作 A C,000.00000 00.01001,0,Cn-1Cn,CJ,0,Cn-1CnCJ,1),1 0 0,+2B,+000.01110,000.01110,2,2,2,000.00011,1000.0100,+000.00000,111000.01,000.00011,000.00000,+000.00111,0,2),0 0 0,0 1 0,0,3),+B,+0,000.00111,000.00001,111110 00.,0,XY原=1.0000111111,3.1.3.3 原码两位乘法,四. 运算

    20、规则 (1)绝对值相乘,符号单独处理。 (2)A、B取三符号位。 (3)C取双符号位,参加移位;C尾数凑足偶数位。 (4)CJ初值为0,根据每步操作决定其状态,不参加移位。 (5)作1/2n步循环;若需增加一步,则该步只还帐,不移位。,3.1.3.3 原码两位乘法,五. 逻辑实现,加法器输入端控制信号:+A、+B、+2B、+B、+1,3.1.3.4 补码两位乘法,补码两位乘法是在补码一位乘法算法拓展来的。 以补码一位乘法中, Z1补 、 Z2补两个部分积为例讨论:Z1补 = 2-1 Z0补 +(Yn+1-Yn)X补Z2补 = 2-1 Z1补 +(Yn-Yn-1)X补将Z1补 代入Z2补得: Z

    21、2补 = 2-1 2-1 Z0补+ (Yn+1 Yn ) X补 + (Yn Yn-1 ) X补= 2-2 Z0补+ (Yn+1 Yn ) X补 + 2-1 (Yn Yn-1 ) X补= 2-2 Z0补+ (Yn+1 Yn ) X补 + 2-2 (2Yn 2Yn-1 ) X补= 2-2 Z0补+ (Yn+1 Yn ) X补 + (2Yn 2Yn-1 ) X补= 2-2 Z0补+ (Yn+1 Yn + 2Yn 2Yn-1 ) X补= 2-2 Z0补+ (Yn+1 + Yn 2Yn-1 ) X补可见,求Z2补需要将前次部分积加(Yn+1 + Yn 2Yn-1 ) X补,最后再右移2位。所以需对Yn+

    22、1 Yn Yn-1 三位做判断。,3.1.3.4 补码两位乘法,3.1.4 定点除法运算,手算除法 例:X= 0.10110,Y = 0.11111,求X/Y = ?,0.10110,1101,0.,0,1,11111,0.11111,0,0,0,1,11111,10101,0,1,11111,1011,0,0,.,00000,.,0.,商: 0.10110 余数:0.101102,-5,实现除法的关键: 比较余数、除数 绝对值大小,以 决定上商。,3.1.4 定点除法运算,1、由手算除法过程可知:取绝对值相除,即判断X Y ? , 若X Y ,则商1,否则商0。每一步都是余数末位后面补0与除

    23、数比较。 2、改进成计算机算法的问题: 1)如何判断够减?将心算比较改为减法比较,减Y 用加 - Y补实现。 2)将余数末位后面补0改为左移余数。使商在一个位置固定进行。导致正确的余数应为rn . 2-n。 3)符号? 原码除法符号单独处理,补码除法符号参与运算。,3.1.4.1 原码不恢复余数除法,恢复余数算法思想: 比较两数大小可用减法试探。,2余数-除数=新余数,为正:够减,商1。 为负:不够减,商0,恢复原余数。,3.1.4.1 原码不恢复余数除法,一.算法分析 第一步:2r1-B=r20 第二步:r2+B=r2(恢复余数) 第三步:2r2-B=r3,2r2-B=2(r2+B)-B=2

    24、r2+B=r3,第一步:2r1-B=r20 第二步:2r2+B=r3(不恢复余数),3.1.4.1 原码不恢复余数除法,二. 算法 ri为正,则Qi为1,第i+1步作2ri-Y; ri为负,则Qi为0,第i+1步作2ri+Y。每步操作后, 1)如果余数为正,商1,余数左移1位,减去除数, 2)如果余数为负,商0,余数左移1位,加上除数。,3.1.4.1 原码不恢复余数除法,三. 举例 X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R。 解: 设置:A:被除数、余数,B:除数,C:商 设初值:A=|X|=00.10110 B=|Y|=00.11111 -B=11.00001

    25、C=|Q|=0.00000,步数 条件 操作 A C,00.10110 0.00000,1),为正,-B,01.01100,+11.00001,00.01101,0.00001,2),为负,-B,00.11010,+11.00001,11.11011,0.00010,3),+B,+00.11111,11.10110,0.00101,为正,00.10101,Cn,r,Q1,Q2,Q3,r0,2r0,r1,2r1,r2,2r2,r3,4),为正,-B,01.01010,+11.00001,00.01011,0.01011,Q4,2r3,r4,步数 条件 操作 A C,00.01011 0.0101

    26、1,6),为负,恢复余数,+B,+00.11111,00.10110,Q= -0.10110,Cn,Q4,r4,5),为正,-B,00.10110,+11.00001,11.10111,0.10110,Q5,2r4,r5,r5,余数符号与被除数相同,3.1.4.1 原码不恢复余数除法,四. 运算规则 (1)A、B取双符号位,X、Y取绝对值运算,X Y 。 (2)根据余数的正负决定商值及下一步操作。 (3)求n位商,作n步操作;若第n步余数为负,则第n+1步恢复余数,不移位。 五. 逻辑实现,加法器输入端控制信号:+2A、+A、+B、+B、+1,加法器输出端控制信号: A、C、Qi Cn、CPA

    27、、CPC,3.1.4.2 补码不恢复余数除法,如何判断是否够减?,如何上商?,如何确定商符?,1.判够减,(1)同号相除,1,0,1,0,够减,不够减,够减,不够减,够减:r与Y同号;,不够减:r与Y异号。,3.1.4.2 补码不恢复余数除法,(2)异号相除,1,0,1,0,够减,够减,不够减,不够减,够减:r与Y异号;,不够减:r与Y同号。,3.1.4.2 补码不恢复余数除法,(3)判断规则,同号:作X补-Y补,X补,Y补,够减:r补与Y补同号,不够减:r补与Y补异号,异号:作X补+Y补,够减:r补与Y补异号,不够减:r补与Y补同号,3.1.4.2 补码不恢复余数除法,2.求商值,同号:商为

    28、正,异号:商为负,够减商1 不够减商0,够减商0 不够减商1,(r、Y同号) (r、Y异号) (r、Y异号) (r、Y同号),够减商1 不够减商0,够减商0 不够减商1,(r、Y同号) (r、Y异号) (r、Y异号) (r、Y同号),(r、Y同号) (r、Y异号) (r、Y异号) (r、Y同号),够减商1 不够减商0,够减商0 不够减商1,上商规则:,余数与除数同号商1,异号商0。,3.1.4.2 补码不恢复余数除法,3.算法,ri补与Y补同号,则Qi补为1,第i+1步作2ri补-Y补; ri补与Y补异号,则Qi补为0,第i+1步作2ri补+Y补。,4.求商符,令X补 = r0补,r0补与Y补

    29、,同号:Q0补=1 异号:Q0补=0,与实际商 符相反,商符,3.1.4.2 补码不恢复余数除法,5.商的校正,商,余数,=Q0.Q1Q2Qn-1,求n-1位商,(假商),第n位商(末位商)恒置1,(3) 1,商符变反,真商=假商+1.00001,n位,(4)余数求至rn,3.1.4.2 补码不恢复余数除法,6.例:X=0.10110,Y=-0.11111,求X/Y,给出商Q和余数R。解:设初值: A =X补=00.10110 B =Y补=11.00001 -B =00.11111 C =Q补=0.00000,3.1.4.2 补码不恢复余数除法,步数 条件 操作 A C,00.10110 0.

    30、0000,1),异号,+B,01.01100,+11.00001,00.01101,0.0000,2),同号,+B,00.11010,+11.00001,11.11011,0.0001,Cn-1,r、Y,Q1,Q2,r0,2r0,r1,2r1,r2,求商符,Q0,异号,0,5),+B,+11.00001,00.10110,11.10111,步数 条件 操作 A C,11.11011 0.0001,3),异号,-B,11.10110,+00.11111,00.10101,0.0010,4),异号,+B,01.01010,+11.00001,00.01011,0.0100,Cn-1,r、Y,Q3,

    31、Q2,r2,2r2,r3,2r3,r4,2r4,r5,假商=0.0100,Q4,真商=0.0100+1.00001=1.01001,Q= -0.10111 R= -0.010012,-5,3.1.4.2 补码不恢复余数除法,7.运算规则 (1)A、B取双符号位,符号参加运算,X Y 。 (2)根据余数与除数的符号决定商值及下一步操作。 (3)求n-1位商,作n步操作(求出rn)。 (4)对商校正(商符变反,第n位商恒置1)。,3.1.4.2 补码不恢复余数除法,8.逻辑实现,加法器输入端控制信号:+2A、+B、+B、+1,加法器输出端控制信号: A、C、Qi Cn-1、CPA、CPC,3.1.

    32、5 浮点四则运算,浮点数的表示: N=2EM其中E是一个二进制整数,称为数N的阶码,2为阶码的基数,M是二进制小数,称为数N的尾数。E和M可正可负。尾数M表示数N的全部有效数据,阶码E指明该数的小数点位置,表示数据的大小范围。,3.1.5.1 浮点加减运算,运算步骤: 1.检测操作数是否为零 判断方法: 1)尾数为0(M=0)。 2)阶码下溢(小于所能表示的最小数据)。,3.1.5.1 浮点加减运算,2. 对阶,(1)对阶:使两数阶码相等(小数点实际位置对 齐,尾数对应权值相同)。,(2)对阶规则:小阶向大阶对齐。,(3)对阶操作:小阶阶码增大,尾数右移。 例.AEBE,则BE+1 BE,BM

    33、,直到BE=AE,3.1.5.1 浮点加减运算,3. 尾数相加(减) AM+BM,AM,4.结果规格化,(1)异号相加,,同号数相加,尾数有进位到符号位,,应左移规格化,应右移规格化,3.1.5.1 浮点加减运算,(1) 11.0001+00.1001,11.1010,(-1/2除外),Af1Af2 A1,11.1010,3.1.5.1 浮点加减运算,若 Af1Af2=1,则右规:,(2) 00.0101+00.1101,01.0010,01.0010,Af1Af2,3.1.5.2 浮点乘法运算,步骤: 1. 检测操作数是否为0。,3.1.5.2 浮点乘法运算,2.阶码相加。 若阶码用补码表示

    34、,按补码加法进行阶码相加。 若阶码用移码表示,相加后,3.尾数相乘。,相乘前不需对阶。,4.结果规格化。,一般左规。,3.1.5.3 浮点除法运算,步骤: 1. 检测操作数是否为0。 2.|AM| |BM| ?如果不是,被除数尾数右移一位,并相应调整阶码,3.1.5.3 浮点除法运算,4.尾数相除。,相除前不需对阶。,5.结果不再规格化。,3.阶码相减。 若阶码用补码表示,相减后不需修正。 若阶码用移码表示,相减后,3.1.5.3 浮点除法运算,例: 下面有两个数X和Y:X=25(9/16) Y= 23(-13/16) 1)分别将X和Y用浮点表示法表示,其中阶 码部分为4位,尾数部分为5位,均

    35、用补码表 示。 2)用补码加减交替法计算:(X/Y)补,3.1.5.3 浮点除法运算,解: 1)X=250.5625=2101(0.1001)(X)原 = 0101;0.1001(X)补 = 0101;0.1001 Y= 23(-0.8125)=211(-0.1101)(Y)原 = 0011;1.1101 (Y)补 = 0011;1.0011,3.1.5.3 浮点除法运算,2)因为:,所以:(X/Y)补=(0101-0011);0.1001/1.0011 0101-0011 =(0101)补+(-0011)补=0101+1101= 0010,0.1001/1.0011为: A=00.1001

    36、B=11.0011 -B=00.1101 C=0.0000,步数 条件 操作 A C Cn-1,1),异号,+B,01.0010,+11.0011,00.0101,0.000,2),同号,+B,00.1010,+11.0011,11.1101,0.001,r、Y,求商符,异号,3),异号,-B,11.1010,+00.1101,00.0111,0.010,4),+B,00.1110,+11.0011,00.0001,00.1001 0.000,3.1.5.3 浮点除法运算,真商 = 0.010 + 1.0001 = 1.0101(X/Y)补 = 0010;1.0101 余数为:0.00012,

    37、-4,练习:,1.已知: 2X补=1.0101001(12)Y原=1.0101100用变形补码计算X补+ Y补, 并判断结果有无溢出。 2.已知:X 原=0.110110,Y 原=1.110011分别用原码一位和两位乘法规则计算XY原,并写出运算过程。 3. 已知:X 原=0.10101,Y 原=1.11011,用原码不恢复余数除法求出X/Y原。,3.2 算术逻辑运算部件,算术运算和逻辑运算都可以用一个算术、逻辑运算部件ALU(Arithmetic Logic Unit)实现。 ALU与输入逻辑、输出逻辑共同组成运算器。 实现涉及: (1)如何构成一位二进制加法单元,即全加器; (2)n位全加

    38、器连同进位信号传送逻辑,构成一个n位并行加法器; (3)以加法器为核心,通过输送选择逻辑扩展为具有多种算术、逻辑功能的ALU。,3.2.1 全加器(加法单元),1.加法单元的输入和输出,(本位进位),(本位和),(本位操作数),(低位进位),一个输入为1时,i为1,Ci为0; 两个输入为1时,i为0,Ci为1; 三个输入为1时,i为1,Ci为1。,3.2.1 全加器(加法单元),2. 全加器(考虑全部3个输入量的加法单元) (1)逻辑一 (采用原变量输入),3.2.1 全加器(加法单元),(2)逻辑二(采用反变量输入),3.2.2 并行加法器与进位链结构,加法器分为: (1)串行加法器:用一个

    39、全加器执行n位长加法的运算。 (2)并行加法器:用多位全加器一步实现多位数同时相加。,3.2.2 并行加法器与进位链结构,1.并行加法器 (1)特点:各位同时相加。 例. 8位数相加。,1 0 1 0 1 0 1 0,1,1,1,1,1,1,0,0,0,0,(2)影响速度的主要因素:存在着进位信号的传递。,3.2.2 并行加法器与进位链结构,2.并行加法器的进位链 (1)进位链的基本逻辑关系 假设第i-1位为低位,则第i位产生的进位信号逻辑为:,或,或,令,所以,进位产生函数,进位传递函数(进位条件),本地进位、绝对进位,条件进位、传递进位,3.2.2 并行加法器与进位链结构,(2)串行进位特

    40、点:进位信号逐位形成,每一级进位直接依赖于前一级进位。设n位加法器,第1位为最低位,第n位为最高位。1)逻辑式,3.2.2 并行加法器与进位链结构,2)结构举例,C2 G2 P2 C1 G1 P1 C0,Gi,Ai Bi,Ai Bi,Pi,3.2.2 并行加法器与进位链结构,(3)并行进位 特点:各位进位信号同时形成。设n位加法器1)逻辑式,C1 = G1 + P1C0 C2 = G2 + P2C1= G2 + P2G1 + P2P1C0Cn = Gn + PnCn-1= Gn + PnGn-1 + + PnPn-1P2P1C0,n + 1 项,3.2.2 并行加法器与进位链结构,2)结构举例

    41、,Gi,Pi,3.2.2 并行加法器与进位链结构,(4)组内并行、组间并行 设16位加法器,4位一组,分为4组:,4位,4位,4位,4位,第4组 第3组 第2组 第1组,C16 C13 C12 C9 C8 C5 C4 C1,C0,C16 C12 C8 C4,分级同时进位,3.2.2 并行加法器与进位链结构,1)第1组进位逻辑式组内:C1 = G1 + P1C0C2 = G2 + P2G1 + P2P1C0C3 = G3 + P3G2 + P3P2G1 + P3P2P1C0 组间:C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1+ P4P3P2P1C0,GI,PI,所以 CI

    42、 = GI + PIC0,3.2.2 并行加法器与进位链结构,2)第2组进位逻辑式 组内:C5 = G5 + P5CIC6 = G6 + P6G5 + P6P5CIC7 = G7 + P7G6 + P7P6G5 + P7P6P5CI 组间:C8 = G8 + P8G7 + P8P7G6 + P8P7P6G5+ P8P7P6P5CI,G,P,所以 C = G + PCI,3.2.2 并行加法器与进位链结构,3)第3组进位逻辑式组内:C9 = G9 + P9CC10 = G10 + P10G9 + P10P9CC11 = G11 + P11G10 + P11P10G9 +P11P10P9C 组间:

    43、C12 = G12 + P12G11 + P12P11G10 + P12P11P10G9+ P12P11P10P9C,G,P,所以 C = G + P C,3.2.2 并行加法器与进位链结构,4)第4组进位逻辑式组内:C13 = G13 + P13CC14 = G14 + P14G13 + P14P13CC15 = G15 + P15G14 + P15P14G13 + P15P14P13C 组间:C16 = G16 + P16G15 + P16P15G14 + P16P15P14G13+ P16P15P14P13C,G,P,所以 C = G + PC,3.2.2 并行加法器与进位链结构,5)各

    44、组间进位逻辑,CI = GI + PIC0 C = G + PCIC = G + P CC = G + PC,= G + PGI + PPIC0,= G + P G + P PGI + P PPIC0,= G + P G + PP G+ P P PGI + PP PPIC0,6)结构示意,Co,C,Co,C,3.2.2 并行加法器与进位链结构,例. 已知操作数Ai、Bi,初始进位C0。试写出C6的 逻辑式。串行进位:C6 = 并行进位:C6 =分级同时进位:C6 =,G6+P6C5,G6+P6G5+P6P5G4+. +P6P5P1C0,CI=GI+PIC0,G6+P6C5,G6+P6G5+P6

    45、P5C4,GI=G4+P4G3+P4P3G2+P4P3P2G1,PI=P4P3P2P1,Gi=AiBi Pi=AiBi,G6+P6(G5+P5C4),G6+P6G5+P6P5CI,3.2.3 ALU部件,ALU,3.2.3 ALU部件,以SN74181芯片(4位片ALU)为例1. 组成多功能算逻单元SN74181是每片四位ALU,即四位片。(1)一位ALU逻辑,1位加法器(求和、进位) 1位选择器(1对 ) 1个公共控制门(4位共用),3.2.3 ALU部件,一位加法器,控制门: M=0, 算术运算 M=1, 逻辑运算,3.2.3 ALU部件,(2)多位ALU逻辑见课本P94图3-214位全加

    46、器4位并行进位链4位选择器1个控制门,原始进位 : Cn,进位输出:,Cn+4G、P,构成组间串行进位,构成组间并行进位,3.2.3 ALU部件,2. SN74181引脚方框图,3. 运算功能,见课本P95 表3-2,3.2.3 ALU部件,4.进位逻辑(1)组间串行,3.2.3 ALU部件,(2)组间并行,SN74182是与74181配套的产生并行进位信号的芯片。 SN74182可利用4片74181产生的G、P信号,作为输入,并行产生每小组的最高位的进位信号。即用作第二级并行进位系统。 SN74182的输出G、P也是进位产生和传递函数。,3.2.4 运算器组织,运算器是机器的加工处理部件,是中央处理机的重要组成部分。,3.2.4.1 运算器与其它部件的关系,1 与控制器的关系(1) 运算器接收控制器发来的各种运算控制命令:A、 控制接收数据命令B、 控制运算操作命令C、 控制输出传送命令D、 控制通用寄存器读/写命令等(2) 运算器把运算过程中的反馈信号送回控制器:状态A、 溢出否?B、 结果是否为“0”?C、 是否非法数?D、 是正还是负?(3)运算器进行地址运算,由地址总线互连,3.2.4.1 运算器与其它部件的关系,

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:计算机组成原理 第三章1运算器.ppt
    链接地址:https://www.docduoduo.com/p-9255919.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开