《【教学课件】第3章数据表示、运算和预运算器部件.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3章数据表示、运算和预运算器部件.ppt(125页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、LOGO第3章 数据表示、运算和预运算器部件计算机组成原理计算机组成原理 第 3 章 数据表示、运算、运算器部件3.1 3.1 数字化信息编码的概念和二进制编码知识数字化信息编码的概念和二进制编码知识3.2 3.2 数据表示数据表示常用的信息编码常用的信息编码3.3 3.3 二进制数值数据的编码与运算算法二进制数值数据的编码与运算算法3.4 3.4 运算器部件的组成与设计运算器部件的组成与设计3.5 3.5 浮点运算与浮点运算器浮点运算与浮点运算器返回返回3.1 数字化信息编码的概念和二进制知识 1.1.信息编码二要素信息编码二要素 2.2.基二码应用实例:数据表示基二码应用实例:数据表示逻辑
2、数据表示逻辑数据表示字符数据表示字符数据表示 ASCII EBCDIC ASCII EBCDIC 字符串字符串 汉字汉字检错纠错码检错纠错码 奇偶校验码奇偶校验码 海明校验码海明校验码 循环冗余校验码循环冗余校验码3.3.进位记数法与数制转换进位记数法与数制转换 定点小数定点小数 整数整数 浮点数浮点数 二至十进制数二至十进制数(BCDBCD编码)和码权编码)和码权 4.4.定点小数的原码、反码、补码表示与小结定点小数的原码、反码、补码表示与小结返回返回数字化信息编码的概念数字化信息编码的概念 数值、文字、符号、语音、图形、图像等统称数据,数值、文字、符号、语音、图形、图像等统称数据,在计算机
3、内部,都必须用在计算机内部,都必须用数字化编码数字化编码的形式被的形式被存储存储、加工加工和和传送传送。数字化编码数字化编码二要素二要素:少量、简单的基本符号少量、简单的基本符号 一定的组合规则一定的组合规则 用以表示用以表示大量复杂多样大量复杂多样的信息的信息返回返回2.2.基二码(二进制码)基二码(二进制码)只使用只使用两个两个基本点符号:基本点符号:符号个数最少,物理上容易实现,与二值逻符号个数最少,物理上容易实现,与二值逻辑的辑的 真真假假 两个值对应简单,用二进制两个值对应简单,用二进制码表示数值数据运算规则简单。码表示数值数据运算规则简单。返回返回3.3.进位记数法与进制转换进位记
4、数法与进制转换进位记数法进位记数法N 代表一个数值代表一个数值r 是这个数制的基是这个数制的基(Radix,该数制所用的符号个数,该数制所用的符号个数)i 表示这些符号排列的位序号表示这些符号排列的位序号Di 是位序号为是位序号为i i的位上的一个符号的位上的一个符号是位号为是位号为i i的位上的一个的位上的一个 1 1 代表的值,称为位权代表的值,称为位权ri表示对表示对 m+k m+k 位的值求累加和位的值求累加和 N N=i=m-1*-k Diri*是第是第i i位上的符号所代表的实际值位上的符号所代表的实际值riDi返回返回十进制转二进制十进制转二进制整数部分除整数部分除2 2取余取余
5、 小数部分乘小数部分乘2 2取整取整2 1 1222521011010.625*210.25 *200.5 *21 0.0 除尽为止除尽为止 求得位数满足要求为止求得位数满足要求为止低低高高高高低低从二进制数求其十进制的值,逐位码权累加求和从二进制数求其十进制的值,逐位码权累加求和返回返回二到八或十六进制转换二到八或十六进制转换二到八二到八 从小数点向左右从小数点向左右三位一分组三位一分组(10 011 100.01)10 011 100.01)2 2=(234.2)=(234.2)8 8 010 010 二到十六二到十六 从小数点向左右从小数点向左右四位一分组四位一分组(1001 1100.
6、01)1001 1100.01)2 2 =(9C.4)=(9C.4)1616 01000100 说明:说明:整数部分不足位数对转换无影响,整数部分不足位数对转换无影响,小数部分不足位数要补零凑足,小数部分不足位数要补零凑足,否则出错。否则出错。返回返回检错纠错码检错纠错码 为了提高计算机的为了提高计算机的可靠性可靠性,除了采取选用更高可,除了采取选用更高可靠性的器件,更好的生产工艺等措施之外,还可以从靠性的器件,更好的生产工艺等措施之外,还可以从数据编码上想一些办法,即采用一点冗余的线路,在数据编码上想一些办法,即采用一点冗余的线路,在原有数据位之外再原有数据位之外再增加一到几位校验位,使新得
7、到的增加一到几位校验位,使新得到的码字带上某种特性码字带上某种特性,之后则通过,之后则通过检查该码字是否仍保检查该码字是否仍保持有这一特性持有这一特性,来,来发现发现是否出现了错误,甚至于定位是否出现了错误,甚至于定位错误后,错误后,自动改正自动改正这一错误,这就是我们这里说的这一错误,这就是我们这里说的检检错纠错编码技术错纠错编码技术。返回返回非线性码非线性码线性码线性码卷积码卷积码分组码分组码非循环码非循环码循环码循环码随机随机 错误错误 突发突发 错误错误纠错码纠错码校验位与信息位校验位与信息位 的形成关系的形成关系信息位与校验位信息位与校验位 的约束条件的约束条件码字本身的码字本身的
8、结构特点结构特点信息位与校验位排列位置关系信息位与校验位排列位置关系系统码系统码非系统码非系统码纠错码分类纠错码分类返回返回几种常用的检错纠错码几种常用的检错纠错码我们只介绍三种常用的检错纠错码:我们只介绍三种常用的检错纠错码:奇偶检错码奇偶检错码,用于用于并行数据传送中并行数据传送中海明检错与纠错码,用于并行海明检错与纠错码,用于并行数据传送中数据传送中循环冗余码,循环冗余码,用于串行数据传送中用于串行数据传送中编码过程编码过程译码过程译码过程 传传送送原始数据原始数据码码 字字结果数据结果数据形成校验位的值,形成校验位的值,加进特征加进特征检查接送的码字,检查接送的码字,发现发现 /改正错
9、误改正错误返回返回奇偶校验码奇偶校验码用于并行码用于并行码检错检错原理:在原理:在 k k 位数据码之外增加位数据码之外增加 1 1 位校验位,位校验位,使使 K+1 K+1 位码字中取值为位码字中取值为 1 1 的位数的位数总保持总保持 为为 偶数偶数(偶校验偶校验)或)或 奇数奇数(奇校验奇校验)例如:例如:0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 原有数据位原有数据位 两个新的码字两个新的码字 偶校验偶校验奇
10、校验奇校验校验位校验位返回返回奇偶校验码的实现电路奇偶校验码的实现电路+u奇较验奇较验 偶校验偶校验 出错指示出错指示+同同左左侧侧电电路路编码电路编码电路译码电路译码电路P(校验位校验位)八八位位数数据据位位D7 D6 D5 D4 D3 D2 D1 D0p异或门异或门返回返回海明校验码海明校验码用于多位并行数据用于多位并行数据检错纠错处检错纠错处理理实现:为实现:为 k k 个数据位设立个数据位设立 r r 个校验位,个校验位,使使 k k+r r 位组成的码字同时具有这样两个特性:位组成的码字同时具有这样两个特性:1.1.能发现并改正能发现并改正 k+k+r r 位中任何一位出错,位中任何
11、一位出错,2 2.能能 发发 现现 k+k+r r 位中任何二位同时出错,位中任何二位同时出错,但已无法改正。但已无法改正。返回返回海明码的编码方法海明码的编码方法 合理地用合理地用 k k 位数据位形成位数据位形成 r r 个校验位的值,即保个校验位的值,即保证用证用 k k 个数据位中不同的数据位组合来形成每个校验位的个数据位中不同的数据位组合来形成每个校验位的值,使任何一个数据位出错时,将影响值,使任何一个数据位出错时,将影响 r r 个校验位中不同个校验位中不同的校验位组合起变化。换言之,通过检查是哪种校验位组合的校验位组合起变化。换言之,通过检查是哪种校验位组合起了变化,就能确定是哪
12、个数据位错,对该位求反则实现纠起了变化,就能确定是哪个数据位错,对该位求反则实现纠错。错。有时两位错与某种情况的一位错对校验位组合的影有时两位错与某种情况的一位错对校验位组合的影响相同,必须加以区分与解决。响相同,必须加以区分与解决。返回返回P1=D2 D1P2=D3 D1P3=D3 D2海明码的实现方案海明码的实现方案 例如:例如:k=3,r=4D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 P4=P3 P2 P1 D3 D2 D1S1=P1 D2 D1S2=P2 D3 D1S3=P3
13、D3 D2S4=P4 P3 P2 P1 D3 D2 D1:异或:异或编码方案编码方案译码方案译码方案 返回返回D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1一、准备工作:一、准备工作:按次序排列数据位、校验位,按次序排列数据位、校验位,分别在不同横行中的分别在不同横行中的P1、P2、P3、P4各列写各列写 1,在在P1、P2、P3各列低各列低 3 横行中的其他位置填写横行中的其他位置填写 0,在最顶横行其他各列填写在最顶横行其他各列填写 1;海明码的实现方案海明码的实现方案 例如:例如:k=3,r=4如何通过一张表分配不同的
14、数据位组合来形成每个校验位的值如何通过一张表分配不同的数据位组合来形成每个校验位的值D3 D2 D1 P4 P3 P2 P1 编码方案编码方案D3 D2 D1 P4 P3 P2 P1 1 0 1 0 0 0 0 1 0 0 0 0 11 1 1 1返回返回二、为各校验位分配数据位组合:二、为各校验位分配数据位组合:看表的低看表的低 3 横行右侧横行右侧 4 列各列的编码值分别为:列各列的编码值分别为:1(001),2(010),4(100),0(000)为为低低 3 横行左侧横行左侧 3 列各列填写合理的编码值,其列各列填写合理的编码值,其 规则为,使用没出现在右侧规则为,使用没出现在右侧 4
15、 列的最小正整数值,列的最小正整数值,即即 3(011)、5(101)、6(110)。海明码的实现方案海明码的实现方案 例如:例如:k=3,r=4如何通过一张表分配不同的数据位组合来形成每个校验位的值如何通过一张表分配不同的数据位组合来形成每个校验位的值编码方案编码方案011D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 10111100 4 2 16 5 3 返回返回三、写出各校验位的编码逻辑表达式:三、写出各校验位的编码逻辑表达式:用用 P1、P2、P3 取值为取值为 1 的横行中那些取值为的横行中那些取值为 1 的的 数据
16、位进行数据位进行异或运算异或运算求得每个校验位的值;结果是:求得每个校验位的值;结果是:P1 =D2 D1;P2 =D3 D1;P3 =D3 D2 用其他各校验位及各数据位用其他各校验位及各数据位进行进行异或运算异或运算求校验位求校验位 P4 的值,用于区分无错、奇数位错、偶数位错的值,用于区分无错、奇数位错、偶数位错 3种情况种情况 总校验位总校验位 P4 =P3 P2 P1 D3 D2 D1 海明码的实现方案海明码的实现方案 例如:例如:k=3,r=4如何通过一张表分配不同的数据位组合来形成每个校验位的值如何通过一张表分配不同的数据位组合来形成每个校验位的值编码方案编码方案011D3 D2
17、 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 0 0 0 0 1011110返回返回P1=D2 D1P2=D3 D1P3=D3 D2海明码的实现方案海明码的实现方案例如:例如:k=3,r=4 设计结果为:设计结果为:D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1 P4=P3 P2 P1 D3 D2 D1S1=P1 D2 D1S2=P2 D3 D1S3=P3 D3 D2S4=P4 P3 P2 P1 D3 D2 D1:异或:异或编码方案编码方案译码方案
18、译码方案 返回返回海明码的应用实例海明码的应用实例D3 D2 D1 P4 P3 P2 P1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 0 0 1P1=D2 D1P2=D3 D1P3=D3 D2P4=P3 P2 P1 D3 D2 D1S1=P1 D2 D1S2=P2 D3 D1S3=P3 D3 D2S4=P4 P3 P2 P1 D3 D2 D1若无错,则若无错,则S4S3S2S1=0000 4 位位 S 全为全为 0如已有数据为如已有数据为110,则有:,则有:P1=1,P2=1P3=0,P4=0若若P2 D1错,则错,则S4S3S2S1
19、=0001其中其中 S4 必为必为 0,S3S2S1不为不为000若仅若仅 D1 错,则错,则S4S3S2S1=10114位位S中中 3位为位为 1 其中其中 S4 必为必为 1返回返回检错纠错码小结检错纠错码小结1.1.K K位码有位码有 2 2K K 个编码状态,全用于表示合法码,则任何一位个编码状态,全用于表示合法码,则任何一位出错出错,均会变成另一个合法码,不具有检错能力。均会变成另一个合法码,不具有检错能力。2.2.从一个合法码变成另一个合法码,只少要改变几位码的值,从一个合法码变成另一个合法码,只少要改变几位码的值,称该位数为称该位数为最小码距最小码距(码距码距)。3.3.K+1K
20、+1 位码,只使用其位码,只使用其 2 2K K 个状态,可使码距个状态,可使码距 为为 2 2,如果如果一个合法码中的一位错了,就成为一个合法码中的一位错了,就成为非法码非法码,通过检查,通过检查码字的码字的合法性合法性,就可以得到,就可以得到检错能力检错能力,这就是奇偶校验码。,这就是奇偶校验码。返回返回4.4.对对 k k 位数据位,当给出位数据位,当给出 r r 位校验位时,位校验位时,要要发现并改正一位错,发现并改正一位错,须须 满满 足足 如如 下下 关关 系:系:2 2r r =k k+r r+1 +1,要发现并改正一位错,要发现并改正一位错,也能发现两位错也能发现两位错,则应则
21、应:2 2r-1r-1 =k k+r r,此时码距为此时码距为 4 4。5.5.若最小码距为若最小码距为 d d(d d=2),=2),能发现能发现 d d-1-1 位错,或位错,或 改正改正 (d d-2)/2(-2)/2(取整取整)位错位错,要发现要发现 l l 位错,并改正位错,并改正 t t 位错,应满足如下条件:位错,应满足如下条件:d=d=l l +t t +1 1 (l l =t t )检错纠错能力检错纠错能力返回返回3.2 3.2 数据表示数据表示常用的信息编码常用的信息编码1.1.逻辑型数据逻辑型数据2.2.字符型数据字符型数据ASCII ASCII 码码 EBCDIC EB
22、CDIC 码码字符串字符串 汉字汉字3.3.数值型数据数值型数据 定点小数定点小数 整数整数 浮点数浮点数 二至十进制数(二至十进制数(BCDBCD码)码)返回返回3.2.1 3.2.1 逻辑型数据逻辑型数据逻辑型数据只有两个值:逻辑型数据只有两个值:真真 和和 假假,正好可以用二进制码的两个符号分别表示,正好可以用二进制码的两个符号分别表示,例如例如 1 1 表示表示 真真 则则 0 0 表示表示 假假不必使用另外的编码规则。不必使用另外的编码规则。对逻辑型数据可以执行逻辑的对逻辑型数据可以执行逻辑的 与与 或或 非非等基本逻等基本逻辑运算。其规则如下:辑运算。其规则如下:返回返回逻辑型数据
23、基本运算规则逻辑型数据基本运算规则返回返回X XY YX X与与Y YX X或或Y YX X的的非非0 00 00 00 01 11 10 00 01 10 00 01 10 01 11 11 11 11 11 10 03.2.2 3.2.2 字符型数据的表示字符型数据的表示 字符作为人字符作为人机联系的媒介,是最重要的数据类型之机联系的媒介,是最重要的数据类型之一,当前的西文字符集由一,当前的西文字符集由 128128 个符号组成,通常用个符号组成,通常用 8 8 位位二进制编码,即二进制编码,即用一个字节来表示每一个符号用一个字节来表示每一个符号,当前通用,当前通用的两个标准字符集是:的两
24、个标准字符集是:ASCII ASCII 码码:即即 A American merican S Standard tandard C Code forode for I Informationnformation I InterchangenterchangeEBCDICEBCDIC码码:即:即 E Extended xtended B Binaryinary C Codedoded D Decimalecimal I Interchage nterchage C Codeode ASCII ASCII码字符集具体编码如课本中表所示:码字符集具体编码如课本中表所示:返回返回字符串的表示与存储字符
25、串的表示与存储 字符串是指连续的一串字符,它们占据主存中连续字符串是指连续的一串字符,它们占据主存中连续的多个字节,每个字节存放一个字符,对一个主存字的的多个字节,每个字节存放一个字符,对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。表示字符串数据要给出从高位到低位字节次序存放的。表示字符串数据要给出串存放的主存起始地址和串的长度。串存放的主存起始地址和串的长度。返回返回汉字的表示汉字的表示 通常用两个字节表示一个汉字,为了与西文字符编通常用两个字节表示一个汉字,为了与西文字符编码相区别(西文的码相区别(
26、西文的ASCIIASCII码的最高一位编码值为码的最高一位编码值为0 0),表示一),表示一个汉字时,把两个字节的最高一位的编码值设定为个汉字时,把两个字节的最高一位的编码值设定为1 1,则该编,则该编码集的最多编码数量为码集的最多编码数量为128*128128*128。这种编码方案与西文传送中的把这种编码方案与西文传送中的把ASCIIASCII码的最高一位码的最高一位用作奇偶校验位有矛盾。用作奇偶校验位有矛盾。返回返回二十进制编码(二十进制编码(BCDBCD编码)编码)用四位二进制表示一位十进制,用四位二进制表示一位十进制,1616个编码状态选用其中个编码状态选用其中的的1010个编码有多种
27、方案,例如:个编码有多种方案,例如:84218421码,余码,余 3 3 码,循环码码,循环码又可区分为:又可区分为:有权码:每位上的有权码:每位上的 1 1 代表确定的值代表确定的值 无权码:无法确定每位上的无权码:无法确定每位上的 1 1 代表的值代表的值返回返回0 0000 0011 0000 00001 0001 0100 0001 01112 0010 0101 0011 01103 0011 0110 0010 01014 0100 0111 0110 01005 0101 1000 1110 10116 0110 1001 1010 10107 0111 1010 1000 10
28、018 1000 1011 1100 10009 1001 1100 0100 1111有权码有权码 无权码无权码8421余余3码码 循环码循环码 84-2-1返回返回4.4.数值数据在计算机内的格式数值数据在计算机内的格式定点小数定点小数:N =N N N .Ns-1-n-2整整 数数 :N =N N N .N N01snn-1浮点数浮点数:N =M E E .E E M M .M ssm-110-1-2-n符号位符号位 阶码位阶码位 尾数数码位尾数数码位 总位数总位数 短浮点数短浮点数:1 8 23 32长浮点数长浮点数:1 11 52 64 临时浮点数临时浮点数:1 15 64 80IE
29、EE 标准:标准:阶码用移码,尾数用原码阶码用移码,尾数用原码 基为基为 2返回返回数值数据在计算机内的格式数值数据在计算机内的格式定点小数定点小数:N =N N N .Ns-1-n-2整整 数数 :N =N N N .N N01snn-1浮点数浮点数:N =M E E .E E M M .M ssm-110-1-2-n符号位符号位 阶码位阶码位 尾数数码位尾数数码位 总位数总位数 短浮点数短浮点数:1 8 23 32长浮点数长浮点数:1 11 52 64 临时浮点数临时浮点数:1 15 64 80IEEE 标准:标准:阶码用移码,尾数用原码阶码用移码,尾数用原码 基为基为 2返回返回5.5.
30、定点小数表示定点小数表示:Ns N1 N2 Nn:Ns N1 N2 Nn X =X =X =X =X =X =原原 X 1-X -1 X 0反反 X(2-2 )+X-n0 X 1-1 X 0补补 X 2+XMod(2-2 )0 X 1-1 X 0Mod 20 X 1-n(纯小数)原码,反码,补码的定义(纯小数)原码,反码,补码的定义返回返回定点小数表示定点小数表示:Ns N1 N2 Nn:Ns N1 N2 Nn 结论:结论:原码原码为符号位加数的绝对值,为符号位加数的绝对值,0 0正正1 1负负 原码原码零有两个编码,零有两个编码,+0+0和和 -0-0编码不同编码不同 原码原码难以用于加减运
31、算,但乘除方便难以用于加减运算,但乘除方便 X 1-X -1 X 00 X 1定义:定义:XX原原 =原码的定义原码的定义 实例:实例:X1=0.10110 -0.10110 0.0000X1=0.10110 -0.10110 0.0000 X X原原 =010110 110110 00000010110 110110 00000 1000010000 返回返回定点小数表示定点小数表示:Ns N1 N2 Nn:Ns N1 N2 Nn结论:结论:补码补码最高一位为符号位,最高一位为符号位,0 0正正1 1负负 补码表示补码表示为为 2*2*符号位加上数的真值符号位加上数的真值 补码补码零有唯一编
32、码,故补码还可以表示零有唯一编码,故补码还可以表示 -1-1 补码补码能很好用于加减(乘除)运算能很好用于加减(乘除)运算 X2+X -1 X 0 Mod 20 X 1定义:定义:XX补补 =模模 2 补码的定义补码的定义 实例:实例:X1=0.10110 -0.10110 0.0000X1=0.10110 -0.10110 0.0000 X X补补 =010110 101010 00000010110 101010 00000返回返回定点小数表示定点小数表示:Ns N1 N2 Nn:Ns N1 N2 Nn结论:负数结论:负数反码反码为符号位跟数每位的反,为符号位跟数每位的反,0 0正正1 1
33、负负 反码反码零有两个编码,零有两个编码,+0+0 和和 -0-0 的编码不同的编码不同 反码反码难以用于加减运算,有循环进位问题难以用于加减运算,有循环进位问题 X(2-2-n)-X -1 X 0 Mod(2-2-n)0 X 1定义:定义:XX反反 =反码的定义反码的定义 实例:实例:X1=0.10110 -0.10110 0.0000X1=0.10110 -0.10110 0.0000 X X 反反 =010110 101001 00000010110 101001 00000 1111111111 返回返回整数的编码表示整数的编码表示整数的整数的 原码原码 反码反码 补码补码 表示表示与
34、定点小数的三种表示基本相同,与定点小数的三种表示基本相同,差别仅表现在小数点的位置,差别仅表现在小数点的位置,可以认为整数的小数点在最低数值位的右侧。可以认为整数的小数点在最低数值位的右侧。因此整数的模与用于表示整数的位数有关,因此整数的模与用于表示整数的位数有关,讲课中不大用整数讲讲课中不大用整数讲 原原 反反 补补 码定义码定义例如:五位整数的编码:例如:五位整数的编码:X=+01110 XX=+01110 X原原=0 0 01110 X01110 X补补=0 0 01110 X 01110 X反反=0 0 01110 01110 X=-01110 X X=-01110 X原原=1 1 0
35、1110 X01110 X补补=1 1 10010 X 10010 X反反=1 1 10001 10001 返回返回原原 反反 补码表示小结补码表示小结正数的正数的 原码、反码、补码表示均相同,原码、反码、补码表示均相同,符号位为符号位为 0 0,数值位同数的真值。,数值位同数的真值。零的原码和反码均有零的原码和反码均有2 2个编码,补码只一个码个编码,补码只一个码负数的负数的 原码、反码、补码表示均不同,原码、反码、补码表示均不同,n符号位为符号位为 1 1,数值位:原码为数的绝对值;,数值位:原码为数的绝对值;n反码为每一位均取反码;反码为每一位均取反码;n补码为反码再在最低位补码为反码再
36、在最低位+1+1;n由由XX补求求-X-X补补:每一位取反后再在最低位:每一位取反后再在最低位+1+1;n由由XX补补求求X X的真值:的真值:X=-1+X=-1+X Xi i*2*2-i-i i=1n返回返回 二、数据的算术运算二、数据的算术运算(1 1)补码补码 加加 减减 法法 运算运算 原码原码一位乘法运算一位乘法运算 原码原码一位除法运算一位除法运算 补码补码一位乘法运算一位乘法运算 补码补码一位乘法运算一位乘法运算(2 2)原码原码二位乘法运算二位乘法运算 补码补码二位乘法运算二位乘法运算 其它快速乘除法运算方法简介其它快速乘除法运算方法简介返回返回补码加减法的实现补码加减法的实现
37、 X X Y Y补补 =X=X补补 YY补补X+YX+Y补补=X=X补补+Y+Y补补,X-YX-Y补补=X=X补补+-Y+-Y补补求求-Y-Y补补,可,可 通过对通过对 YY补补逐位取反逐位取反,再在最低位加再在最低位加 1 1完成完成溢出判断,同一件事实,三种不同的叙述方式:溢出判断,同一件事实,三种不同的叙述方式:(1)(1)正正 +正正 得得负负 或或 负负 +负负 得得正正(2)(2)数字位有向符号位的进位,但符号位不产生向更高位的进数字位有向符号位的进位,但符号位不产生向更高位的进位;数字位无向符号位的进位,但符号位已产生向更高位的位;数字位无向符号位的进位,但符号位已产生向更高位的
38、进位进位(3)(3)双符号位的值为双符号位的值为 0 01 1 或或 1 10 0返回返回补码加减法运算实例补码加减法运算实例X=0.1011 Y=-0.0101 X=0.1011 Y=-0.0101 模模 4 4 补码(双符号位)补码(双符号位)XX补补 =00 1011,Y=00 1011,Y补补 =11 1011=11 1011 -Y -Y补补 =00 0101 =00 0101 00 1011+11 1011 1 00 0110 00 1011 +00 0101 01 0110X+Y,去掉最高位进位,去掉最高位进位X-Y,结果溢出,结果溢出返回返回F X实现补码加减运算的逻辑电路实现补
39、码加减运算的逻辑电路Fs F ALU 目的目的 寄存器寄存器源源 寄存器寄存器 选通门选通门二选通门二选通门选通门选通门F 1XYF YX F010 1F /YFsOVRZC累加器累加器X X+YX X-Y加加减减返回返回F X实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路Fs ALU 目的目的 寄存器寄存器源源 寄存器寄存器 选通门选通门选通门选通门选通门选通门F 1XYF YX F010 1F /YFsOVRZC必要完善必要完善:单累加器变多累积器单累加器变多累积器:两个选通门均变为多路两个选通门均变为多路送送0还是送还是送1到到ALU处理处理接收门送每个累加器。接收门送每个累加器。
40、支持寄存器移位功能支持寄存器移位功能:接收门变为三选一,即接收门变为三选一,即分别接收本位分别接收本位/低位低位/高高位送来的信息送累加器位送来的信息送累加器与外部部件的入出联系与外部部件的入出联系返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组选选 通通 门门选选 通通 门门选选 通通 门门F 1FsOVRZC 必要完善必要完善:单累加器变多累积器单累加器变多累积器:返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组选选 通通 门门选选 通通 门门选选 通通 门门F 1FsOVRZC必要完善必要完善:单累加
41、器变多累积器:单累加器变多累积器:两个选通门均变为多路两个选通门均变为多路送送0还是送还是送1到到ALU处理处理接收门送每个累加器。接收门送每个累加器。返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组选选 通通 门门选选 通通 门门选选 通通 门门F 1FsOVRZC 必要完善必要完善:单累加器变多累积器:单累加器变多累积器:两个选通门均变为多路两个选通门均变为多路送送0还是送还是送1到到ALU处理处理接收门送每个累加器。接收门送每个累加器。支持寄存器移位功能支持寄存器移位功能:接收门变为三选一,即接收门变为三选一,即分别接收本位分别接收本位/低位低
42、位/高高 位送来的信息送累加器位送来的信息送累加器。返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组选选 通通 门门选选 通通 门门选选 通通 门门F 1FsOVRZC 必要完善必要完善:单累加器变多累积器:单累加器变多累积器:两个选通门均变为多路两个选通门均变为多路送送0还是送还是送1到到ALU处理处理接收门送每个累加器。接收门送每个累加器。支持寄存器移位功能:支持寄存器移位功能:接收门变为三选一,即接收门变为三选一,即分别接收本位分别接收本位/低位低位/高高位送来的信息送累加器位送来的信息送累加器 与外部部件的入出联系与外部部件的入出联系。输出输
43、出输入输入返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组选选 通通 门门选选 通通 门门选选 通通 门门F 1FsOVRZC 必要完善必要完善:单累加器变多累积器单累加器变多累积器:两个选通门均变为多路两个选通门均变为多路送送0还是送还是送1到到ALU处理处理接收门送每个累加器。接收门送每个累加器。支持寄存器移位功能支持寄存器移位功能:接收门变为三选一,即接收门变为三选一,即分别接收本位分别接收本位/低位低位/高高位送来的信息送累加器位送来的信息送累加器 与外部部件的入出联系与外部部件的入出联系。输出输出输入输入返回返回实现补码加减运算的逻辑电路实
44、现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组 乘商寄存器乘商寄存器 选选 通通 门门选选 通通 门门选选 通通 门门F 1YFsOVRZC可选择的完善可选择的完善:支持硬件乘除运算指令支持硬件乘除运算指令需要增加一个需要增加一个Q寄存器寄存器该寄存器应能自行移位该寄存器应能自行移位选选 通通 门门送入送入输出输出返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组 乘商寄存器乘商寄存器 选选 通通 门门选选 通通 门门选选 通通 门门F 1YFsOVRZC可选择的完善可选择的完善:支持硬件乘除运算指令支持硬件乘除运算指令需要增加一个需要增加一
45、个Q寄存器寄存器该寄存器应能自行移位该寄存器应能自行移位它应能接收与送出数据它应能接收与送出数据选选 通通 门门送入送入输出输出返回返回实现补码加减运算的逻辑电路实现补码加减运算的逻辑电路ALU 通用寄存器组通用寄存器组 乘商寄存器乘商寄存器 选选 通通 门门选选 通通 门门选选 通通 门门F 1YFsOVRZC选择完善选择完善:支持硬件乘除运算指令支持硬件乘除运算指令需要增加一个需要增加一个Q寄存器寄存器该寄存器应能自行移位该寄存器应能自行移位应能接收与送出数据。应能接收与送出数据。选选 通通 门门送入送入输出输出返回返回补码表示中的符号位扩展补码表示中的符号位扩展由由 XX补补 求求 X/
46、2X/2补补 的方法的方法 原符号位不变,且符号与数值位均右移一位,原符号位不变,且符号与数值位均右移一位,例如,例如,XX补补 =1 100100010 则则 X/2X/2补补 =1 11 100100010不同位数的整数补码相加减时,不同位数的整数补码相加减时,位数少的补码数的位数少的补码数的符号位符号位向左扩展,向左扩展,一直扩展到一直扩展到与另一数的与另一数的符号位符号位对齐,例如:对齐,例如:0 00 0+11111111111111111 10011100 +0011100 +00000000000000000 000111000011100 0000返回返回原码一位乘运算算法介绍
47、原码一位乘运算算法介绍 例如:例如:X=0.1101 Y=-0.1011 X=0.1101 Y=-0.1011 0.1 1 0 1 0.1 1 0 1 问题:问题:*0.1 0 1 1 1.0.1 0 1 1 1.加法器只有两个数据输入端加法器只有两个数据输入端 1 1 0 1 2.1 1 0 1 2.加法器与乘运算术据位数相同加法器与乘运算术据位数相同 1 1 0 1 1 1 0 1 解决方案:解决方案:0 0 0 0 0 0 0 0 每次求出部分积,而不是一次总累加每次求出部分积,而不是一次总累加 +1 1 0 1 +1 1 0 1 变每次左移被乘数为右移部分积变每次左移被乘数为右移部分积
48、 0.1 0 0 0 1 1 1 1 0.1 0 0 0 1 1 1 1 判乘数每一位的值用固定的一位线路判乘数每一位的值用固定的一位线路 手工运算过程手工运算过程 返回返回原码一位乘运算原码一位乘运算 例如:例如:X=0.1101 Y=-0.1011 X=0.1101 Y=-0.1011 0.1 1 0 1 0.1 1 0 1 累加器初值取零值累加器初值取零值 *0.1 0 1 1 +0.1 0 1 1 +1 1 0 11 1 0 1 初值加被乘数初值加被乘数 1 1 0 1 1 1 0 1 部分积右移,部分积右移,0 0 0 0 0 0 0 0 将移出的一位保存起来将移出的一位保存起来 +
49、1 1 0 1 +1 1 0 1 求第一次部分积求第一次部分积 0.1 0 0 0 1 1 1 1 0.1 0 0 0 1 1 1 1 手工运算过程手工运算过程 返回返回原码一位乘运算原码一位乘运算 例如:例如:X=0.1101 Y=-0.1011 X=0.1101 Y=-0.1011 0.1 1 0 1 0.1 1 0 1 *0.1 0 1 1 +0.1 0 1 1 +1 1 0 1 1 1 0 1 前次部分积加被乘数前次部分积加被乘数 1 1 0 11 1 0 1 部分积右移部分积右移 0 0 0 00 0 0 0 将移出的一位保存起来将移出的一位保存起来 +1 1 0 1 +1 1 0
50、1 求第二次部分积求第二次部分积 0.1 0 0 0 1 1 1 1 0.1 0 0 0 1 1 1 1 手工运算过程手工运算过程 返回返回原码一位乘运算原码一位乘运算 例如:例如:X=0.1101 Y=-0.1011 X=0.1101 Y=-0.1011 0.1 1 0 1 0.1 1 0 1 *0.1 0 1 1 +0.1 0 1 1 +1 1 0 1 1 1 0 1 前次部分积加前次部分积加 1 1 0 1 1 1 0 1 部分积右移部分积右移 0 0 0 00 0 0 0将移出的一位保存起来将移出的一位保存起来 +1 1 0 1 +1 1 0 1 求第三次部分积求第三次部分积 0.1