计算机组成原理 第三章1运算器.ppt
《计算机组成原理 第三章1运算器.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理 第三章1运算器.ppt(117页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 CPUCPU子系统子系统n中央处理器(中央处理器(CPU)是计算机系统的是计算机系统的核心组成部件,它包括运算器和控制核心组成部件,它包括运算器和控制器两大部分。器两大部分。本章主要讨论:本章主要讨论:运算器运算器 控制器控制器数据通路结构数据通路结构与外部的连接与外部的连接CPUCPU组成组成CPUCPU工作原理工作原理指令的执行过程指令的执行过程3.1算术、逻辑运算基础算术、逻辑运算基础计算机进行运算的特点:计算机进行运算的特点:(1)所有数据都是用二进制数位形式来表示的。所有数据都是用二进制数位形式来表示的。(2)在机器内部,数是以编码形式即机器数来表示的。在机器内部,数是
2、以编码形式即机器数来表示的。(3)机器运算规模有限,因而机器运算就要解决运算机器运算规模有限,因而机器运算就要解决运算方法、数据表示格式及数据长度的选取、规定等方法、数据表示格式及数据长度的选取、规定等问题。问题。(4)用计算机进行运算时,都要把复杂的运算,简化用计算机进行运算时,都要把复杂的运算,简化为一系列的、最基本的运算才能实现。计算机可为一系列的、最基本的运算才能实现。计算机可以实现的基本运算有算术运算以实现的基本运算有算术运算(加、减、乘、除等加、减、乘、除等)和逻辑运算和逻辑运算(与、或、异或等与、或、异或等)。3.1.1定点加减运算定点加减运算补码加减法补码加减法:n补码的一个重
3、要特点是它可以直接进行加补码的一个重要特点是它可以直接进行加减法运算,并且计算简单,因此计算机中减法运算,并且计算简单,因此计算机中基本采用补码加减法。基本采用补码加减法。n运算规则:运算规则:(1)参与运算的操作数用补码表示,符号位作为数)参与运算的操作数用补码表示,符号位作为数的一部分直接参与运算,所得即为补码表示的运的一部分直接参与运算,所得即为补码表示的运算结果。算结果。(2)若操作码为加,则两数直接相加;)若操作码为加,则两数直接相加;(3)若操作码为减,则将减数变补后再与被减数相)若操作码为减,则将减数变补后再与被减数相加。加。3.1.1定点加减运算定点加减运算n计算公式计算公式X
4、+Y补补=X补补+Y补补X-Y补补=X补补+-Y补补n例例1已知已知X=9,Y=3,求求X+Y补补,X-Y补补,Y-X补补。解:解:X+Y补补=X补补+Y补补=01001+00011=01100X-Y补补=X补补+-Y补补=01001+11101=100110Y-X补补=Y补补+-X补补=00011+10111=110103.1.1定点加减运算定点加减运算n例例2X=0.001010Y=-0.100011求求X-Y补补解解X补补=0.001010-Y补补=0.100011则则X-Y补补=X补补+-Y补补=0.001010+0.100011=0.1011013.1.2溢出判断与移位溢出判断与移位
5、一一.溢出溢出 机器数字长机器数字长5位,其中含位,其中含1位数符,补码位数符,补码运算,问:定点整数表示范围?运算,问:定点整数表示范围?-16 +15 (10000 01111)所谓溢出就是指运算结果大于机器所能所谓溢出就是指运算结果大于机器所能表示的最大正数或小于机器所能表示的表示的最大正数或小于机器所能表示的最小负数。最小负数。3.1.2溢出判断与移位溢出判断与移位n正溢:两个正数相加后结果超出允许的正溢:两个正数相加后结果超出允许的表示范围。表示范围。如:如:1版版:P106例例3-32版版:P100例例3-3n负溢:两个负数相加后结果超出允许的负溢:两个负数相加后结果超出允许的表示
6、范围。表示范围。如:如:1版版:P106例例3-52版版:P100例例3-53.1.2溢出判断与移位溢出判断与移位n溢出判别溢出判别定义:两操作数的数符分别为定义:两操作数的数符分别为SA、SB,结结果的数符为果的数符为Sf。符号位直接参与运算,产符号位直接参与运算,产生的符号位进位为生的符号位进位为Cf。最高有效数位产生最高有效数位产生的进位为的进位为C。1.判别方法一:判别方法一:溢出溢出=只有同号数相加才能产生溢出,溢出的标志是结果数符与操只有同号数相加才能产生溢出,溢出的标志是结果数符与操作数数符相反作数数符相反3.1.2溢出判断与移位溢出判断与移位2.判别方法二:判别方法二:溢出溢出
7、=(Cf为符号位运算产生的进位,为符号位运算产生的进位,C为最高有效数位产生的进位。)为最高有效数位产生的进位。)Cf 和和C不同时表明溢出不同时表明溢出3.判别方法三:判别方法三:操作数采用双符号位(变形补码),通过运算结果操作数采用双符号位(变形补码),通过运算结果的符号位进行判断:(的符号位进行判断:(P101)00 结果为正,无溢出结果为正,无溢出 01 结果正溢结果正溢10 结果负溢结果负溢 11结果为负,无溢出结果为负,无溢出3.1.2溢出判断与移位溢出判断与移位二二.移位移位n逻辑移位逻辑移位(1)数字代码为纯逻辑代码,没有数值数字代码为纯逻辑代码,没有数值意义意义(2)分为:循
8、环左移、循环右移、非循环)分为:循环左移、循环右移、非循环左移、非循环右移左移、非循环右移3.1.2溢出判断与移位溢出判断与移位n算术移位算术移位1、原码(及正数补码)移位规则:数符不、原码(及正数补码)移位规则:数符不变,空位补变,空位补02、负数补码移位规则:、负数补码移位规则:左移:数符不变,空位即末位补左移:数符不变,空位即末位补0右移:数符不变,空位补右移:数符不变,空位补13.1.2溢出判断与移位溢出判断与移位3.例:例:n原码和正数补码原码和正数补码0.0101左移一位左移一位0.10101.0101左移一位左移一位1.101000.1010左移一位左移一位01.0100(*双符
9、号位时可左移双符号位时可左移1位,第二符号位暂存数值,第位,第二符号位暂存数值,第一符号位仍表示符号)一符号位仍表示符号)1.1010右移一位右移一位1.010101.0100右移一位右移一位00.1010(*双符号位时右移双符号位时右移1位,第二符号位暂存的数值移到位,第二符号位暂存的数值移到最高有效位。)最高有效位。)3.1.2溢出判断与移位溢出判断与移位n负数补码负数补码左移:左移:1.1011左移一位左移一位1.011011.0110左移一位左移一位10.1100右移:右移:1.0110右移一位右移一位1.101110.1100右移一位右移一位11.01103.1.2溢出判断与移位溢出
10、判断与移位三三.舍入舍入舍入的原则舍入的原则 使本次舍入产生的误差及累计误差都比较小使本次舍入产生的误差及累计误差都比较小两种舍入规则两种舍入规则 1、0舍舍1入入 2、末位、末位“恒置恒置1”例:例:课本课本P103 例例3-8 例例3-113.1.3定点乘法运算定点乘法运算n手算例子:手算例子:11011101000011010.10001111由于结果为负,所以由于结果为负,所以3.1.3定点乘法运算定点乘法运算n手手算到机器实现要解决的问题算到机器实现要解决的问题1、符号问题、符号问题 解决方法:解决方法:原码乘法符号单独处理,补码乘法符原码乘法符号单独处理,补码乘法符号参与运算号参与
11、运算2、乘积等于各位积之和(要考虑权)、乘积等于各位积之和(要考虑权)“位积位积”是乘数的某位乘以被乘数所得到的积。是乘数的某位乘以被乘数所得到的积。“部分积部分积”是位积的和。是位积的和。1)n位乘法运算就有位乘法运算就有n个位积,要个位积,要n个寄存器来存放位积;个寄存器来存放位积;2)加法器难以完成)加法器难以完成n个位积的同时求和;个位积的同时求和;3)需要)需要2n位字长的加法器,通常的加法器都是位字长的加法器,通常的加法器都是n位字长。位字长。解决方法:解决方法:n次累加与移位循环或阵列乘法器次累加与移位循环或阵列乘法器3.1.3定点乘法运算定点乘法运算n手算的改进(手算的改进(将
12、一次相加改为分步累加)将一次相加改为分步累加)110101101+1101100111 100111+0000 100111 0100111+110110001111100011113.1.3.1原码一位乘法原码一位乘法一一.基本思想:基本思想:1.乘积的数值部分是乘数和被乘数的数值部分相乘之积。乘积的数值部分是乘数和被乘数的数值部分相乘之积。2.乘积的符号由两数的符号异或得到(同号相乘为正,乘积的符号由两数的符号异或得到(同号相乘为正,异号相乘为负)。异号相乘为负)。3.每次用一位乘数去乘被乘数,并每次用一位乘数去乘被乘数,并将一位乘数所对应的将一位乘数所对应的位积与原部分积的累加和相加,并
13、移位。位积与原部分积的累加和相加,并移位。设设 X=Sx.x1x2xn,Y=Sy.y1y2yn 乘积的尾数乘积的尾数:P=|X|.|Y|乘积的符号:乘积的符号:Sp=Sx Sy3.1.3.1原码一位乘法原码一位乘法二二.举例实现举例实现已知已知X=0.1101,Y=-0.1011,求,求XY=?设置寄存器:设置寄存器:A A:存放存放部分积累加和、乘积高位部分积累加和、乘积高位 B B:存放存放被乘数被乘数 C C:存放存放乘数、乘积低位乘数、乘积低位设置初值:设置初值:A=00.0000A=00.0000 B=|X|=00.1101 B=|X|=00.1101 C=|Y|=.1011 C=|
14、Y|=.1011步数步数 条件条件 操作操作 A C A C 00.0000 .10100.0000 .1011 1 1 1)C Cn n=1=1+B+BC Cn n+00.1101+00.110100.00.11011101 0.11010.1101 0.101 0.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC00.00.011001101 1.10.101 12 2)C Cn n=1=1+B+B+00.1101+00.11010 01 1.0011001100.00.100110011111.1.
15、10 03 3)C Cn n=0=0+0+0+00.0000+00.000000.00.1001100100.00.01000100111111.1 1+B+B4 4)C Cn n=1=1+00.1101+00.11010 01 1.0001000100.00.1000100011111111X X原原YY原原 =1.10001111=1.10001111三三.算法流程算法流程0 A0 A、X BX B、Y CY C、0 CR0 CRC Cn n=1 =1?CR=n CR=n?1/21/2(A+BA+B)A A,C C1/21/2(A+0A+0)A A,C C CR+1 CR CR+1 CRY
16、YNN SxSx+SySy S SA A3.1.3.1原码一位乘法原码一位乘法四四.运算规则运算规则(1 1)操作数、结果用原码表示;)操作数、结果用原码表示;(2 2)绝对值运算,符号单独处理;)绝对值运算,符号单独处理;(3 3)被乘数)被乘数(B)(B)、累加和累加和(A)(A)取双符号位;取双符号位;(4 4)乘数末位)乘数末位(CnCn)为判断位,其状态决定为判断位,其状态决定 下步操作;下步操作;(5 5)作)作n n次循环(累加、右移)。次循环(累加、右移)。3.1.3.1原码一位乘法原码一位乘法五五.逻辑实现逻辑实现加法器输入端控制信号:加法器输入端控制信号:+A+A、+B+B
17、加法器输出端控制信号:加法器输出端控制信号:1/2 A1/2 A、C C、CPCPA A、CPCPC C C4 C3 C2 C1C4 C3 C2 C1 A4 A3 A2 A1A4 A3 A2 A1 门门4 4 门门3 3 门门2 2 门门1 1 门门4 4 门门3 3 门门2 2 门门1 1 4 3 2 14 3 2 1 1/2 ACPACPCCC4 C3 C2+A+BA1 B13.1.3.2补码一位乘法补码一位乘法一一.原则原则操作数与结果均以补码表示,连同符号位操作数与结果均以补码表示,连同符号位一起,按相应算法运算。一起,按相应算法运算。二二.实现方法实现方法:1.校正法校正法XY补补=
18、X补补0.Y1Y2Yn-X补补Y0 乘数乘数Y的符号位的符号位3.1.3.2补码一位乘法补码一位乘法(1 1)Y Y为正:为正:Y Y补补 =0.Y=0.Y1 1Y Y2 2Y Yn n,Y0=0 XY补补=X补补0.Y1Y2Yn-X补补Y0 =X补补0.Y1Y2Yn(2 2)Y Y为负:为负:Y Y补补 =1.Y=1.Y1 1Y Y2 2Y Yn n,Y0=1XY补补=X补补0.Y1Y2Yn-X补补Y0 =X补补0.Y1Y2Yn-X补补 3.1.3.2补码一位乘法补码一位乘法2.比较法比较法:展开为部分积的累加和形式:展开为部分积的累加和形式:XY补补=X补补0.Y1Y2Yn-X补补Y0=X
19、补(-Y0+2 Y1+2 Y2+2 Yn)-1-1 -2-2 -n-n -(n-1)-n-(n-1)-n +(2 Yn-2 Yn)=X补(Y1-Y0)+2 (Y2-Y1)+2 (Y3-Y2)-1 -2-1 -2 =X补-Y0+(Y1-2 Y1)+(2 Y2-2 Y2)-1-1 -1-1 -2 -2 =X补(Y1-Y0)+2 (Y2-Y1)+2 (Y3-Y2)-1 -2-1 -2+2(0 -Yn)-n+2(Yn+1-Yn)-n+2(Yn+1-Yn)-n3.1.3.2补码一位乘法补码一位乘法 若定义若定义ZZ0 0 为初始部分积,为初始部分积,ZZ1 1 补补ZZn n 补依次为补依次为各步求得的
20、累加并右移后的部分积,可将上式改写各步求得的累加并右移后的部分积,可将上式改写为:为:Z0补补=0Z1补补=2-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补码一位乘法补码一位乘法三三.比较法算法比较法算法n由于它的操作是乘数相邻两位之差(低位由于它的操作是乘数相邻两位之差(低位减高位),即两位的比较结果,所以称为减高位),即两位的比较结果,所以称为比较法。比较法。1.基本操作:基本操作:被乘数被乘数X补补乘以对应的乘数相邻两位之差值乘以对应的
21、乘数相邻两位之差值再与原部分积累加,然后右移一位,形成再与原部分积累加,然后右移一位,形成该步的部分累加和。该步的部分累加和。3.1.3.2补码一位乘法补码一位乘法YnYn(高位高位)Yn+1Yn+1(低位低位)操作操作(A(A补补为部分积累加和为部分积累加和)0 00 0 0 1 0 1 1 0 1 0 1 1 1 1 原部分积右移一位原部分积右移一位 1/2A1/2A补补原部分积加原部分积加X X补补后再右移一位后再右移一位 1/2(A1/2(A补补+X+X补补)原部分积加原部分积加-X-X补补后再右移一位后再右移一位1/2(A1/2(A补补-X-X补补)原部分积右移一位原部分积右移一位
22、1/2A1/2A补补(0)(0)(1)(1)(-1)(-1)(0)(0)3.1.3.2补码一位乘法补码一位乘法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 A C 00.0000 1.01000.0000 1.0101 1 1 1)1 01 0-B-BC Cn n+00.1101+00.110100.00.1101110100.00.011001101 11.011.0101012 2)0 10 1+B+B+1
23、1.0011+11.001111.11.1001100111.11.1100110011111.01.010103 3)1 01 0-B-B+00.1101+00.110100.00.1001100100.00.010001001111111.1.01014 4)0 10 1+B+B+11.0011+11.001111.11.0111011111.11.10111011111111111.01.00 0 C Cn+1n+1C Cn nC Cn+1n+15 5)1 01 0-B-B+00.1101+00.11013.1.3.2补码一位乘法补码一位乘法(XY)(XY)补补 =0.10001111=
24、0.100011114 4)0 10 1+B+B+11.0011+11.001111.11.0111011111.11.10111011111111111.01.05 5)1 01 0-B-B+00.1101+00.110100.00.1000100011111111修正修正1.0:-B修正修正0.1:+B修正修正0.0:不修正不修正1.1:不修正不修正3.1.3.2补码一位乘法补码一位乘法3.3.运算规则:运算规则:(1)A(1)A、B B取双符号位,符号参加运算;取双符号位,符号参加运算;(2)C(2)C取单符号位,符号参加移位,以决定最后是否取单符号位,符号参加移位,以决定最后是否 修正
25、;修正;(3)C(3)C末位设置附加位末位设置附加位C Cn+n+1 1,初值为初值为0 0,C Cn nC Cn+n+1 1组成判组成判 断位,决定运算操作断位,决定运算操作;(4)(4)作作n n步循环步循环,若需作第若需作第n+1n+1步步,则不移位则不移位,仅修正。仅修正。3.1.3.2补码一位乘法补码一位乘法4.4.逻辑实现逻辑实现加法器输入端控制信号:加法器输入端控制信号:+A+A、+B+B、+B+B、+1+1加法器输出端控制信号:加法器输出端控制信号:1/2 A1/2 A、C C、A A、CPCPA A、CPCPC C3.1.3.3原码两位乘法原码两位乘法n每次用两位乘数去乘被乘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组成原理 第三章1运算器 计算机 组成 原理 第三 运算器
限制150内