计算机组成原理(第二章2new-1).ppt
《计算机组成原理(第二章2new-1).ppt》由会员分享,可在线阅读,更多相关《计算机组成原理(第二章2new-1).ppt(246页珍藏版)》请在三一办公上搜索。
1、第二章 运算方法与运算器,本章内容:,数据与文字的表示方法定点加法、减法运算定点乘法、除法运算定点运算器的组成浮点运算方法和浮点运算器 本章小结,2.1 数据与文字的表示方法,1、数据格式2、数的机器码表示3、字符与字符串的表示方法4、汉字的表示方法5、校验码,数据与文字的表示方法,数据的表示方法,文字与符号的表示方法,2.1.1 数据格式,计算机中常用的数据表示格式有两种:(1)定点格式(2)浮点格式,定点格式(小数点位置固定):可表示的数值范围有限,但要求的处理硬件比较简单。,浮点格式(小数点位置浮动):可表示的数值范围大,但要求的处理硬件比较复杂。,数据格式,1.定点数的表示方法,定点表
2、示:约定机器中所有数据的小数点位置是固定 的,小数点就不再使用记号“.”来表示。定点数据的形式:纯小数或纯整数。,(设:定点数表示为012n 其中:0符号位,0代表正号,1代表负号),小数点的位置约定在符号位x0的后面(不显示),小数点的位置约定在数值位xn的后面(不显示),定点数的表示方法,定点数例,例:(符号位约定:0代表正号,1代表负号)X=+1010110.,纯整数:X=01010110.,正数,符号位取0,Y=-1101001.,纯整数:Y=11101001.,负数,符号位取1,X=+0.11011,Y=-0.10101,小数点隐藏,纯小数:X=0.11011,小数点隐藏,纯小数:X
3、=1.10101,纯整数:X=01010110.,纯整数:Y=11101001.,纯小数:X=0.11011,纯小数:X=1.10101,注意到:无论是整数或是小数,在机器数的表示中,都不出现小数点“.”,只是约定其位置。,定点数例,小数点隐藏,小数点隐藏,(设:x=012n 则:数值位各位均为0时最小;各位均为1时最大)纯小数的表示范围:0|12n(2.1)纯整数的表示范围为:0|2n1(2.2)目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。,定点数的表示方法,2、浮点数的表示方法,例:156.78=15.678101=1.5678102=0.15678103=MR
4、E其中:M为尾数;R为基数;E为阶码(指数)。(尾数M表示数的有效数字,阶码E表示数的范围),那么,计算机中究竟采用哪种数据形式?,显然存在多种数据形式,什么是浮点数表示:,在计算机中,一般约定尾数M为小数,即:尾数|M|1.0,并按此原则确定各数据的浮点表示格式。上例+156.67=+0.15678 103 0.15678 103同理:对于二进制数+1011.1101=+0.10111101 2+4 0.10111101 2+100=MRE,二进制数,可见:一个机器浮点数由阶码E和尾数M及其符号位组成。,浮点数表示,约定:尾数M用定点小数表示,给出有效数字的位数,M决 定了浮点数的表示精度;
5、阶码E:用整数形式表示,指明小数点在数据中的位 置,其决定了浮点数的表示范围。浮点数的一般形式为:,浮点数表示,按照 IEEE754 的标准,32位浮点数和64位浮点数的标准格式为:,其中:=浮点数的符号位,0表示正数,1表示负数。=尾数,23位,用纯小数表示;=阶码,8位,用纯整数表示。阶符采用隐含方式,即采用移码方式来表示正负指数。,其中:=浮点数的符号位,0表示正数,1表示负数。=尾数,52位,用纯小数表示。=阶码,11位,阶符采用隐含方式,即采用移码方式来表示正负指数。,32位:,64位:,浮点数表示,几点注释:为了提高浮点数据的表示精度,当尾数的值不为0时,其绝对值:|M|0.5,即
6、:尾数绝对值域的最高有效位应为1,否则通过修改阶码(即左右移动小数点)的办法,使其变成这一表示形式,这称为浮点数的规格化表示。(后面再讨论)在字长相同的条件下,浮点数所表示的范围显然远比定点数大。以下两种情况计算机都把该浮点数看成零值,称为机器零。当浮点数的尾数M为 0;(不论其阶码E为何值)当阶码E的值Emin值时。(不管其尾数M为何值),X=+10100.10011+0.101001001125(移动小数点,使其尾数为纯小数)数符 S0,阶码 E5,尾数 M0.1010010011得到:X 的浮点数形式为:0.10100100112+101,例:将十进制数 X=转换成二进制浮点数的形式。,
7、解:首先分别将整数和分数部分转换成二进制数:+20+10100.,注意到:这不是IEEE754标准形式。,3.十进制数串的表示方法,十进制数在计算机内以符号来处理,其主要有两种表示形式:1.字符串形式字符串表示:每一个十进制的数位或符号位都用一个字节存放。如:+25,-38,十进制数的表示方法,(ASCII码存储),用于非数值计算,2.压缩的十进制数串形式(BCD码)压缩的十进制数串形式:每个字节存放两个十进制的数码。如:+153、-12,(字节),(字节),(字节),(字节),(BCD码存储),即:每个十进制的数位或符号位都用4位二进制码表示。,既可用于非数值计算、也可用于数值计算。,2.1
8、.2 数的机器码表示,基本思想:把符号位和数字位一起编码来表示一个 实际的数,使符号位也能参与计算。主要表示方法有:原码、补码、反码、移码等。实际数(连同符号一起编码)机器数或机器码;机器数或机器码(真实数值)对应的真值。,数的机器码表示,以定点整数:x=n-110为例,原码的定义是:即:定点整数的原码形式为:原=nn-110,2n0 2n2n|02n,例如,+11001,则原011001-10101,则 原110101,数值取绝对值,1.原码表示法,数的原码表示,注意到:“+0”、“-0”原码在机器中有两种形式:对于定点整数:+0原=00000.-0原=10000.,即:“0”的原码表示不唯
9、一,有两种。原码的缺点1,可见:原码表示法非常简单、易懂。,原码的缺点2:由于数值部分是采用绝对值表示的,因而特别适合于乘除运算,但是加减法运算却比较麻烦,而加减法运算正是计算机中最常使用的运算。所以,必须探讨解决方法。补码则正是一种解决方法。,数的原码表示,2.补码表示法(教材P20),补码的概念(以钟表对时为例):假设:现在的标准时间为4点正;而钟表已经7点了,为了校准时间,可以采用两种方法:(1)将时针退 3 格(7-3=4);(2)将时针向前拨9格(7+9=16 4)。显然:这两种方法都能对准到4点。原因在于:当模数为12时,减3和加9是等价的。,数的补码表示,用数学公式表示:-3+9
10、(mod12),上式在数学上称为同余式。,即:当模数Mod=12时,可定义:9是(-3)补码。“模Mod”:表示可以被丢掉的数值。设某数为x,当Mod=12时:x-3=x+9、x+7=x-5 或:x+12=x(Mod=12)都是等价的。从这里可以得到一个启示:在补码运算时,甚至可以把减法转化为加法来计算,只要求出负数的补码即可。,即:补码的加、减计算都可用加法计算完成。,x 2n x 0 2n+1+x=2n+1-|x|0 x-2n,(mod 2n+1),补码的定义:,以定点整数(x=n-110)为例:,正数的补码数值就是本身,负数的补码需作运算,数的补码表示,例:已知x=+10111,y=-1
11、1011,(n=5)求 x补、y补 按定义:x补=010111 y补=25+1+y=1000000-11011=100101,1000000 11011 100101,问题:根据补码定义,求负数的补码时需作一次减法运算,这显然不是补码方法的初衷。后面将介绍反码表示法可以解决负数的求补问题。,数的补码表示,注意到:0的补码只有一种形式.对于定点整数:0补0补0,0000 对于定点小数:0补0补0.0000,3.反码表示法(用于快速求补码),二进制数求反码:正数:符号取0、各位数码位保持不变;负数:符号取1,各位数码位全部取反,即得到。即:若 xi=0,则 Xi=1。若 xi=1,则 Xi=0.,
12、数的反码表示,例:已知 x=+10111,y=-11011,求 x反、y反,解:x=+10111 0 按定义:x反=0 10111 y=-11011 0 按定义:y反=1 00100,注意到:0的反码也有两种,不唯一。即:0反0000;0反1111,可见:反码非常容易得到。,通过反码求补码的方法:,当x为正数时:补反当x为负数时:补反+1 由此可知一个由反码求补码的重要公式,即:一个负数的补码,可以通过将该数:“符号位置1,其余各位取反,然后在最末位加1”的方法直接获得。,数的补码与反码关系,例:已知x=+1011,y=-1101,求 x补、y补按定义:x0 x补=x反=0,1011(注:正数
13、的补码、反码,数值保持不变!)y0 y补=y反+1=1,0010+1=1,0011,由反码求补码方法的最大优点:消除了负数求补码过程中的减法计算.,求一个负数的补码的另一种有效的转换方法:对于负数,先写出其原码,符号位保持为1,数值部分由低位向高位转换,对开始遇到的0和第一个1,保持原值不变,第一个1以后的各位均取反。例:y=-0.110100,求 y补 解:y原=1110 100(y0)y补=1001 100,保持不变,全部取反,y反=1001011y补=1001011+1=1001100(结果相同),数的补码与反码关系,4.移码表示法,在计算机中,移码通常用于表示浮点数的阶码,所以移码一般
14、只用于整数的表示。,若用补码表示阶码,则很难直接判断阶码的大小。而移码则可以解决此问题。,对定点整数x(数值部分为n位),则 其移码的定义是:移2n2n2n,例如,十进制,若采用移码:移=x+25,+21+10101,+31+11111,错,错,正确,正确,0,10101,1,01011,0,11111,1,00001,+10101,10101,+11111,11111,1,10101,0,01011,1,11111,0,00001,二进制,补码,移码,-21,-31,例:当10111 时,移25x1,10111 当 y-10111 时,y补1,01001 y移25y25-101110,010
15、01可见:(1)移码中符号位n表示的规律与原码、补码、反码 相反。(2)移码在数值上与补码一致,但是符号位与补码正 好相反!,移码的表示方法,机器码表示法小结:,在数据的四种机器码表示法中:正数的原码、反码、补码等同于真值;只有负数才分别有不同的表示方法。补码和移码的0只有一种表示方法,因此其表示范围相对于原码和反码多一种,定点小数可表示-1(移码没有小数形式),正数可表示-2n。,机器码表示法小结,移码表示法主要用于表示浮点数的阶码,可以直接比较大小。移码在数值上与补码相同,符号位(最高位)正好相反。由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表
16、示,补码存储,补码运算。(如:有些机器在做加减法时用补码运算,在做乘除法时用原码运算),机器码表示法小结,例6 以定点整数为例,用数轴形式说明原码、反码、补码表示范围和可能的数码组合情况。,机器码表示法小结,例7 将十进制真值(127、1、0、1、127)列表表示成二进制数及原码、反码、补码、移码值。,(见教材P22,自阅)。,例8 设机器字长16位,定点表示,尾数15位,数符1位,问:定点整数原码表示时,最大正数是多少?最大的负数是多少?,解:定点整数原码:最大正数值=0,+(2151)10 最大的负数值=1,(2151)10,机器码表示法小结,例6假设由S,E,M三个域组成的一个32位二进
17、制字所表示的非零规格化浮点数,真值表示为:(1)s(1.M)2E128问:它所表示的规格化的最大正数、最小正数、最大的负数、最小的负数是多少?,解:(1)最大正数,(2)最小正数,机器码表示法小结,(23位),(8位),(4)绝对值最小的负数:,00000000000000000000000,00000000,1,1.02128,11111111,1,1(1223)2127,(3)绝对值最大的负数:,机器码表示法小结,2.1.3 字符与字符串的表示方法,1.字符的表示方法 目前国际上普遍采用的字符系统是七单位的ASCII码(美国国家信息交换标准字符码),它包括10个十进制数码,26个英文字母和
18、一定数量的专用符号,共125个元素,因此二进制编码需7位,加一位偶校验位,共8位一个字节。ASCII码规定二进制数位的最高一位(b7)恒为0,余下的7位可以给出128个编码,可表示128个不同的字符。,表2.1 ASCII字符编码表(教材P24),b3b2b1b0位,b6b5b4位,2.字符串,字符串:是指连续的一串字符.通常方式下,它们依次占用主存中地址连续的多个字节,每个字节存一个字符。,例 将字符串:IFABTHENREAD(C)从高位字节到低位字节依次存在主存中。,解:设:主存单元长度由4个字节组成。每个字节中存放相应字符的ASCII值,文字表达式中的空格“”在主存中也占一个字节的位置
19、。因而每个字节依次存放的ASCII码(16进制数)为:49、46、20、41、3E、42、20、44、48、45、4E、20、52、45、41、44、28、43、29、20。,字符和字符串的表示方法,主存各字节单元内容,字符和字符串的表示方法,2.1.4 汉字的表示方法,1.汉字的输入编码包括:数字码、拼音码和字形码数字码:常用的是国标区位码,用数字串代表一个汉字输入。区码和位码各两位十进制数字,因此输入一个汉字需按键四次。数字编码输入的优点是无重码,且输入码与内部编码的转换比较方便,缺点是代码难以记忆。拼音码:拼音码是以汉字拼音为基础的输入方法。使用简单方便,但汉字同音字太多,输入重码率很高
20、,同音字选择影响了输入速度。,汉字的表示方法(汉字的输入编码),字形码:字形编码是用汉字的形状来进行的编码(例:五笔字型)。把汉字的笔划部件用字母或数字进行编码,按笔划的顺序依次输入,就能表示一个汉字。其它输入方式:利用语音或图象识别技术“自动”将汉字识别输入等,使计算机能自动识别、理解汉字,并将其自动转换为机内代码表示。,汉字的表示方法(汉字的输入编码),2.汉字内码 汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示,每个汉字在机器中都有一个唯一的内码。英文字符的机内代码是七位的ASCII码,当用一个字节表示时,最高位为“0”。为了与英文字符能相互区别,汉字机内
21、代码中两个字节的最高位均规定为“1”。注意:有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。,汉字的表示方法(汉字的内码),3.汉字字模码,字模码是用点阵表示的汉字字形代码,它是汉字的输出形式。,例如:,字模码,汉字的表示方法(汉字字模码),此例,汉字的字模码为:16位 16位=32字节,注意到:字模点阵只能用来构成汉字库,而不能用于机内存储。其仅用于汉字的显示输出或打印输出。汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同用途的编码,各自的功能完全不同。,汉字的表示方法(汉字字模码),各种因素常常导致计算机在处理信息过程中出现错误。为了防止错
22、误,可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误。,2.1.5 校验码,最简单且应用广泛的检错码方法是奇偶校验法,即:采用一位校验位的奇校验或偶校验的方法。,设(01n1)是一个n位字,则奇校验位定义为:C01n1,式中代表按位加,只有当中包含有奇数个1时,才使 C1,即 C0。,同理,偶校验位定义为:C01n1 即中包含偶数个1时,C0。,效验码,假设:一个字从部件 A 传送到部件 B。在源点 A,按约定将校验位C与数据合在一起(01n-1C)送到B。若约定采用偶效验:设,在B点真正接收到的是(01n1C),然后做校验:F01n1C 若:F0,表明字传送正确;若:F1,意味着收
23、到的信息有错。奇偶校验可提供奇数个错误检测,但无法检测偶数个错误,更无法识别错误信息的位置。(循环校验码CRC可解决此问题),效验码,例,效验码,加入校验位前传送的数码为:,加入校验位后传送的数码为:,效验码,2.2 定点加法减法运算,2.2.1 补码加法2.2.2 补码减法2.2.3 溢出概念与检验方法2.2.4 基本的二进制加法、减法器2.2.5 十进制加法器,定点加减法运算,2.2.1 补码加法,补码加法的公式是:补补补(mod 2n+1)现分四种情况来证明。(见教材P26-27,自阅)假设采用n位定点整数表示,因此证明的先决条件是:2n-1,2n-1,2n-1。(非溢出数)(1)0,0
24、,则0。相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得:补补补(mod 2n+1),补码的加法,(2)0,0,则0 或0:2n+1()2n+1,进位2n+1必丢失;又因()0,所以:补补补(mod 2n+1)若0:2n+1()=y补,所以:补补2n+1()补(mod 2n+1),(3)0,则0或 0。这种情况和第2种情况一样,把和的位置对调即得证。(4)0,0,则0。相加两数都是负数,则其和也一定是负数。补2n+1,补2n+1 补补2n+12n+12n+1(2n+1)上式右边分为”2n+1”和(2n+1)两部分。既然()0,而其绝对值又小于(2n-1)那么一定有:0(2n
25、+1)2n+1,进位”2n+1”必丢失。又因()0,所以补补2n+1()补(mod 2n+1),补码的加法,至此得到证明:在模2n+1意义下,任意两数的补码之和等于该两数之和的补码。即:补补补(mod 2n+1)这是补码加法的理论基础,其结论也适用于定点小数。,补码加法可以连同符号位一起直接计算,即可得到“和的补码”。,例:x=+1011,y=+0100,计算:x+y=?解:补0,1011,补0,0100,补0,1011补0,0100 补0,1111 0 1111,例:1011,0101,求。,解:补0,1011 补1,1011 补0,1011补1,1011补 10,0110+0110,最高位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 第二 new

链接地址:https://www.31ppt.com/p-5384265.html