计算机组成原理第二章运算方法和运算器[一]_第1页
计算机组成原理第二章运算方法和运算器[一]_第2页
计算机组成原理第二章运算方法和运算器[一]_第3页
计算机组成原理第二章运算方法和运算器[一]_第4页
计算机组成原理第二章运算方法和运算器[一]_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章第二章 运算方法和运算器运算方法和运算器 数据表示数据表示定点运算定点运算定点运算器的构成与实例定点运算器的构成与实例浮点数的加减运算浮点数的加减运算2.1 2.1 数据表示数据表示2.1.1 2.1.1 概述概述一、什么叫数据表示一、什么叫数据表示 是指能由计算机硬件直接识别的数据类型,是指能由计算机硬件直接识别的数据类型,如定点数、浮点数等。而所谓如定点数、浮点数等。而所谓“由硬件直接识别由硬件直接识别”意味着某种数据类型可以用计算机硬件直接表示意味着某种数据类型可以用计算机硬件直接表示出来,并能由计算机指令直接调用该数据类型。出来,并能由计算机指令直接调用该数据类型。二、为什么要研

2、究数据表示问题二、为什么要研究数据表示问题( (重要性重要性) ) 数据是计算机处理加工的对象,数据的表示数据是计算机处理加工的对象,数据的表示方法直接影响计算机的结构和性能。了解计算机方法直接影响计算机的结构和性能。了解计算机中数据表示是了解计算机各主要部件工作原理的中数据表示是了解计算机各主要部件工作原理的必要基础。必要基础。三、数据表示的发展:数据表示即数据类型不是一开三、数据表示的发展:数据表示即数据类型不是一开始就有多种多样,有一个随应用需要而发展的过程。始就有多种多样,有一个随应用需要而发展的过程。早期只有定点表示,表示数的范围很有限;早期只有定点表示,表示数的范围很有限;为扩大数

3、的表示范围而出现了浮点数表示;为扩大数的表示范围而出现了浮点数表示;计算机应用扩大到商业和事务处理,出现了字符计算机应用扩大到商业和事务处理,出现了字符串数据;串数据;堆栈数据表示;堆栈数据表示;向量数据表示。向量数据表示。 一般介绍一般介绍数值型数据数值型数据( (能能进行算术运算进行算术运算能得到明确数值概能得到明确数值概念的数字数据念的数字数据) )非数值型数据非数值型数据( (以以数字数据形式进入计数字数据形式进入计算机的声音、图像、算机的声音、图像、文字等信息文字等信息) )二进制二进制( (定点、浮点定点、浮点) )十进制十进制( (二二- -十进制十进制BCDBCD码码) )字符

4、型字符型逻辑型逻辑型2.1.2 2.1.2 数值型数据的表示方法数值型数据的表示方法 数值型数据包括无符号数和有符号数两类数值型数据包括无符号数和有符号数两类. . 无符号数无符号数: :没有符号的数;没有符号的数; 有符号数有符号数: :符号符号“+ +”或或“- -”在有效数字的前面在有效数字的前面. . 注意注意: :在相同机器字长的情况下在相同机器字长的情况下, ,无符号数与有符无符号数与有符号数所对应的数值范围不同号数所对应的数值范围不同. . 一、数的机器码表示一、数的机器码表示 真值真值: :正负号加绝对值表示的数值正负号加绝对值表示的数值; ; 机器数机器数: :因为因为“+

5、+”与与“- -”号在计算机中无法识别号在计算机中无法识别, ,故需要把数的符号数码化故需要把数的符号数码化. .在计算机中使用的连同在计算机中使用的连同数符一起数码化的数称为机器数数符一起数码化的数称为机器数. .通常约定二进制通常约定二进制数的最高位为符号位数的最高位为符号位, ,“0 0”代表正号代表正号, ,“1 1”代表负号代表负号. .常见的机器数有原码、反码、补码等常见的机器数有原码、反码、补码等. . 例如例如: :11011101若为原码机器数若为原码机器数, ,则其真值为则其真值为 5 5 二、数据格式二、数据格式1 1、定点数、定点数( ( Fix-Point Numbe

6、rFix-Point Number ) )含义:定点、浮点的含义:定点、浮点的“点点”都指二进制数中的小数都指二进制数中的小数点点. .定点指小数点位置固定定点指小数点位置固定. .小数点不占位小数点不占位, ,隐含隐含. . 定点数分为定点小数定点数分为定点小数( (纯小数纯小数) )和定点整数和定点整数( (纯整数纯整数) . ) . 符号位符号位数值部分数值部分符号位符号位数值部分数值部分定点整数定点整数定点小数定点小数如+0.1011,在机器中表示为:01011如+1101,在机器中表示为:01101(1)(1)定点数常见的三种机器码编码形式定点数常见的三种机器码编码形式例:例:X =

7、 +5=+0000101X = +5=+0000101, Y=-2=-0000010Y=-2=-0000010 X X原原=0, 0000101 Y=0, 0000101 Y原原=1,0000010=1,0000010 X X反反= 0, 0000101 Y= 0, 0000101 Y反反=1,1111101=1,1111101 X X补补= 0, 0000101 Y= 0, 0000101 Y补补=1,1111110=1,1111110(2)(2)三种编码的比较三种编码的比较 a)a)最高位都表示符号位最高位都表示符号位, ,对于正数对于正数, ,它们的表示形式它们的表示形式相同相同, ,即

8、符号位为即符号位为“0 0”, ,数值部分和真值相同数值部分和真值相同. . 而对而对于负数各有不同的表示于负数各有不同的表示. . (2)(2)三种编码的比较三种编码的比较例:例:X = +5=+0000101X = +5=+0000101, Y=-2=-0000010Y=-2=-0000010 X X原原=0, 0000101 Y=0, 0000101 Y原原=1,0000010=1,0000010 X X反反= 0, 0000101 Y= 0, 0000101 Y反反=1,1111101=1,1111101 X X补补= 0, 0000101 Y= 0, 0000101 Y补补=1,11

9、11110=1,1111110 b)b)最高位都表示符号位最高位都表示符号位, ,补码和反码的符号位可作补码和反码的符号位可作为数值的一部分看待为数值的一部分看待, ,和数值位一起参加运算和数值位一起参加运算; ;但但原码的符号位不允许和数值位同等看待原码的符号位不允许和数值位同等看待, ,必须分必须分开进行处理开进行处理. . 反码运算规则反码运算规则:(1) :(1) 符号位一起参加运算符号位一起参加运算;(2) ;(2) 运算运算结果若有进位出现结果若有进位出现, , 则最后结果则最后结果+1(+1(循环进位循环进位); ); (3)(3)注意最后正负结果转换为真值的不同注意最后正负结果

10、转换为真值的不同. . X X反反+Y+Y反反= 0, 0000101 +1,1111101 0, 0000101 +1,1111101 =0,0000010+1( =0,0000010+1(末位末位)=0,0000011)=0,0000011 c) c)不同码制中真值不同码制中真值0 0的表示方法不同的表示方法不同 对于真值对于真值0, 0, 原码和反码各有两种原码和反码各有两种不同的表示形式不同的表示形式, , 而补码只有唯一的一而补码只有唯一的一种表示形式。假设字长为种表示形式。假设字长为8 8位位( (包括一位包括一位符号位符号位), ), 则:则: +0+0原原=0,0000000=

11、0,0000000 -0 -0原原= 1,0000000= 1,0000000 +0 +0补补=-0=-0补补=0,0000000=0,0000000 +0 +0反反=0,0000000=0,0000000 -0 -0反反= 1,1111111= 1,1111111 d) d)定点数的表示范围定点数的表示范围 原码、反码表示的正、负数范围相原码、反码表示的正、负数范围相对零来说是对称的对零来说是对称的, , 但补码负数表示范围但补码负数表示范围较正数表示范围宽较正数表示范围宽, , 能多表示一个最负的能多表示一个最负的数数( (绝对值最大的负数绝对值最大的负数), ),其值等于其值等于-2-2

12、n n( (纯纯整数整数) )或或-1(-1(纯小数纯小数) )。原因是原码和反码。原因是原码和反码的真值的真值0 0各有两种不同的表示形式各有两种不同的表示形式, , 而补而补码只有唯一的一种表示形式。码只有唯一的一种表示形式。 定点数的表示数的范围定点数的表示数的范围( (字长为字长为n+1n+1位位) ) 小数表数范围:小数表数范围: 原码原码 (1 (12 2-n -n ) N 1) N 12 2 -n-n补码补码 1 1 N 1 N 12 2-n-n 反码反码 (1 (12 2-n-n) N 1) N 12 2-n-n 整数表数范围:整数表数范围:原码原码 (2(2n n 1) 1)

13、 N N 2 2 n n 1 1 补码补码 2 2 n n N 2N 2 n n 1 1反码反码 (2(2n n1) N 21) N 2n n1 1特别注意补码的最小负数表示特别注意补码的最小负数表示习题:习题:P.69 P.69 第第1 1、2 2题题1 1、写出下列各数的原码、反码、补码表示、写出下列各数的原码、反码、补码表示( (用用8 8位二进制数位二进制数) )。其中。其中MSBMSB是最高位是最高位( (又是符又是符号位号位) ),LSBLSB是最低位。如果是小数,小数点是最低位。如果是小数,小数点在在MSBMSB之后;如果是整数,小数点在之后;如果是整数,小数点在LSBLSB之后

14、。之后。(1)(1)35/64 (2)23/128 (3) 35/64 (2)23/128 (3) 127127(4)(4)用小数表示用小数表示 1 (5) 1 (5)用整数表示用整数表示 1 1解答解答: (1)(1)现将现将-35/64-35/64写成二进制真值写成二进制真值-100011-1000112 2-6-6=-0.100011=-0.100011原码:原码:1.1000110 1.1000110 反码:反码:1. 01110011. 0111001补码:补码:1.01110101.0111010(2)(2)先将先将23/12823/128写成二进制真值为写成二进制真值为10111

15、101112 2-7-7=0.0010111=0.0010111原码:原码:0.00101110.0010111反码:反码:0.00101110.0010111补码:补码:0.00101110.0010111(3)(3)先将先将-127-127写成二进制真值为写成二进制真值为-1111111-1111111原码:原码:11111111 (1,1111111)11111111 (1,1111111)反码:反码:10000000 (1,0000000)10000000 (1,0000000)补码:补码:10000001 (1,0000001)10000001 (1,0000001)(4)(4)用小

16、数表示用小数表示-1 -1:原码与反码的小数表示中没有:原码与反码的小数表示中没有- -1 1;补码表示的小数;补码表示的小数-1 -1为为1.00000001.0000000(5)(5)用整数表示用整数表示-1 -1:原码为:原码为1,00000011,0000001;反码为;反码为1,11111101,1111110;补码为;补码为1,11111111,1111111。2 2、设、设XX补补=a=a0 0.a .a1 1a a2 2a a6 6,其中,其中a ai i取取0 0或或1 1,若要,若要x x0.50.5,求,求a a0 0,a a1 1,a a2 2,a a6 6的取值。的取

17、值。补充题:将下列数由小到大排序:补充题:将下列数由小到大排序:1616,1010.11B1010.11B,25.3Q25.3Q,X1X1补补=10001101=10001101,1CH1CH,X2X2反反=01001101=01001101,0110.1001BCD0110.1001BCD,X3X3原原=10101011=10101011,X4X4补补=10111111=10111111,-X5-X5补补=10100101 =10100101 解题要点:解题要点:(1)(1)统一各个数的表示形式,一般均表示为十进制统一各个数的表示形式,一般均表示为十进制 (2)(2)所需知识:了解所需知识:

18、了解B(binary)B(binary)、Q(octal)Q(octal)、 D(Decimal) D(Decimal) 、 H(Hexadecimal)H(Hexadecimal)、BCD(Binary-Coded Decimal ,BCD(Binary-Coded Decimal ,简称简称BCD,BCD,即即二二- -十进制编码十进制编码) ) 含义;各种进制数向十进制的转换;机器码含义;各种进制数向十进制的转换;机器码求真值。求真值。以上十个数由小到大排序结果:以上十个数由小到大排序结果:X1X1, X4X4, X3X3, 0110.1001BCD, 1010.11B0110.1001

19、BCD, 1010.11B,1616,25.3Q25.3Q,1CH1CH, X2X2, X5X5 例例. .已知已知: :机器字长机器字长1616位位, ,定点表示定点表示, ,尾数尾数1515位位, ,数符数符1 1位位, ,问问: : (1) (1)定点原码整数表示时定点原码整数表示时, ,最大正数是多少最大正数是多少? ?最小负数是最小负数是多少多少? ? (2) (2)定点原码小数表示时定点原码小数表示时, ,最大正数是多少最大正数是多少? ?最小负数是最小负数是多少多少? ? 解解:(1):(1)定点原码整数表示定点原码整数表示: : 最小负整数表示最小负整数表示: 1,111 11

20、1 111 111 111: 1,111 111 111 111 111 最小负整数最小负整数=-(2=-(21515-1)-1)1010=(-32767)=(-32767)1010 最大正整数表示最大正整数表示:0,111 111 111 111 111:0,111 111 111 111 111 最大正整数最大正整数=(2=(21515-1)-1)1010=(+32767)=(+32767)1010 (2) (2)定点原码小数表示定点原码小数表示: : 最大正数值最大正数值=(1-2=(1-2-15-15) )1010=(+0.111=(+0.11111)11)2 2 1515个个1 1

21、最小负数值最小负数值=-(1-2=-(1-2-15-15) )1010=(-0.111=(-0.11111)11)2 22.1.2 2.1.2 数值型数据的表示方法数值型数据的表示方法二、数据格式二、数据格式1 1、定点数、定点数( Fix-Point Number )( Fix-Point Number )2 2、浮点数、浮点数(Float-Point Number):(Float-Point Number):小数点位置可以自由浮小数点位置可以自由浮动动, ,数的范围和精度分别表示数的范围和精度分别表示. .浮点数的一般表示格式为:浮点数的一般表示格式为: N=rN=rE EMM 其中其中:

22、r :r称为浮点数阶码的底,或基数,一般称为浮点数阶码的底,或基数,一般r=2r=2; E-E-阶码阶码(Exponent),(Exponent),一般为定点整数一般为定点整数, ,决定浮点数的表示决定浮点数的表示范围范围, ,常用移码或补码表示常用移码或补码表示; ; M- M-尾数尾数(Mantissa),(Mantissa),一般为定点小数一般为定点小数, ,决定浮点数的精度决定浮点数的精度, ,常用原码或补码表示常用原码或补码表示. .例例: N=-0.000001011,: N=-0.000001011,可将其表示为以下的浮可将其表示为以下的浮点数形式点数形式: :N=2N=2-3-

23、3x(-0.001011)=2x(-0.001011)=2-4-4(-0.01011)(-0.01011)=2=2-5-5 (-0.1011)=(-0.1011)= (1)(1)浮点数的规格化浮点数的规格化 a)a)目的目的: :为了提高运算精度为了提高运算精度, ,充分利用尾数的有充分利用尾数的有效位数效位数, ,同时保证浮点数表示形式唯一同时保证浮点数表示形式唯一, ,通常采通常采取浮点规格化形式取浮点规格化形式. . b)b)定义定义: :规定尾数小数点后第一位规定尾数小数点后第一位, ,即尾数数值位的最即尾数数值位的最高有效位高有效位(MSB)(MSB)必须为必须为1, 1,即尾数满足

24、即尾数满足:1/2=|M|=1:1/2=|M|0 X0 时:时: 2 2-1 -1 S 1-2 S 1-2-21-21当当X0X0时:时: -1 S-2-1 S0X0时:时:2 2-513-513 X 2 X 2511511(1-2-(1-2-2121) )当当X0X0时:时:-2-2511511 X-2 X-2-512-5122 2-1 -1或或 -2-2511511 X -2 X -2-512-512 (2 (2-1 -1+2+2-21-21) )4)4)最接近于零的正规格化数与负规格化数。最接近于零的正规格化数与负规格化数。【例例】:将下列十进制数表示成浮点规:将下列十进制数表示成浮点规

25、格化数,阶码格化数,阶码3 3位,用补码表示;尾数位,用补码表示;尾数9 9位,位,用补码表示。用补码表示。各包含各包含1 1位符号位在位符号位在内。内。(1 (1)27/64 (2)-27/64)27/64 (2)-27/64解答解答(1)27/64=11011X2(1)27/64=11011X2-6-6=0.11011X2=0.11011X2-1 -1表示成阶码表示成阶码( (补码补码) )、尾码、尾码( (补码补码) )为:为:1 1,11 11;0.110110000.11011000(2)-27/64=-11011X2(2)-27/64=-11011X2-6-6=-0.1101100

26、0X2=-0.11011000X2-1 -1表示成如下形式为:表示成如下形式为:1 1,11 11;1.001010001.001010002.1.2 2.1.2 数值数据的表示法数值数据的表示法三、十进制数的编码三、十进制数的编码1 1、编码目的、编码目的: :以机器能表示与识别的二进制形式存在以机器能表示与识别的二进制形式存在, ,又比又比纯二进制数纯二进制数(pure binary)(pure binary)更接近日常所习惯的十进制数更接近日常所习惯的十进制数. .2 2、BCDBCD编码:编码:Binary Coded Decimal,Binary Coded Decimal,即将十进

27、制数的各即将十进制数的各位数字变成一组对应的二进制代码位数字变成一组对应的二进制代码, ,用用4 4位二进制数来表位二进制数来表示一位十进制数示一位十进制数. .常见种类很多常见种类很多, ,如如 GrayGray码、码、 余余3 3码、码、84218421码、码、 24212421码等码等. .3 3、8421BCD8421BCD码:码: 有权码有权码, ,用四位二进制数表示一位十进用四位二进制数表示一位十进制数制数0909。000000000 0,000100011, 1,,100110019 9, 00010000000100001010,000100010001000111 11,00

28、010101000101011515,00010110000101101616。注意。注意1010以后的十进制数的表以后的十进制数的表示。示。2.1.3 2.1.3 非数值数据的表示非数值数据的表示 非数值型数据非数值型数据,又称为字符数据又称为字符数据,通常指字符、字通常指字符、字符串、图形符号及汉字等各种数据符串、图形符号及汉字等各种数据. 1 1、字符和字符串的表示、字符和字符串的表示 (1) (1) ASCIIASCII字符编码字符编码 字符指字母、符号、控制字符等字符指字母、符号、控制字符等. .按什么样的规按什么样的规则把字符表示成则把字符表示成0 0、1 1形式是人为确定的形式是

29、人为确定的. .具体方案有具体方案有多种多种, ,其中流行的是其中流行的是ASCIIASCII码码, ,即美国国家信息交换标即美国国家信息交换标准码准码(American Standard Code for Information (American Standard Code for Information Interchange ),Interchange ),含四类含四类128128种字符种字符. . 在计算机中在计算机中, ,通常用一个字节来存放一个字符通常用一个字节来存放一个字符, ,一个字节的右边一个字节的右边7 7位表示不同的字符代码位表示不同的字符代码, ,最左一位最左一位可作

30、为奇偶校验位可作为奇偶校验位. . 1 1、字符和字符串的表示、字符和字符串的表示 (2) (2) 字符串的存放字符串的存放 字符串指一串连续的字符字符串指一串连续的字符. .通常它们在存储器中存通常它们在存储器中存放的方式有以下两种放的方式有以下两种: : 1) 1)向量法向量法: :字符串在存储器中占用一片连续空间字符串在存储器中占用一片连续空间, ,每每个字节存放一个字符代码个字节存放一个字符代码, ,字符串的所有字符在物理上字符串的所有字符在物理上是邻近的是邻近的.( .(例中存储字长为例中存储字长为3232位位, ,每个主存单元存放每个主存单元存放4 4个字符个字符) )49 46

31、20 583E 30 20 5448 45 4E 2052 45 41 4428 43 29 20IFX 0THENREAD(C)图图2.2 2.2 字符串的向量存放方案字符串的向量存放方案(a)(b)1 1、字符和字符串的表示、字符和字符串的表示 (2) (2) 字符串的存放字符串的存放 1) 1) 优点优点: :最简单最节省存储空间最简单最节省存储空间; ; 缺点缺点: :当字符串需进行插入删除操作时当字符串需进行插入删除操作时, ,在删除或在删除或插入字符后面的子字符串需要全部重新分配存储空间插入字符后面的子字符串需要全部重新分配存储空间, ,费时费时. . 2) 2)串表法串表法: :

32、字符串的每个字符代码后面有一个链接字字符串的每个字符代码后面有一个链接字, ,用以指出下一个字符的存储单元地址用以指出下一个字符的存储单元地址. . 优点优点: :在对字符串进行删除和插入操作时在对字符串进行删除和插入操作时, ,只需要只需要修改相应字符后面的链接字即可修改相应字符后面的链接字即可. . 缺点缺点: :链接字占据了存储单元的大部分空间链接字占据了存储单元的大部分空间, ,主存主存的有效利用率下降的有效利用率下降. .2 2、汉字的表示、汉字的表示( (略略) ) 一、数据在存取和传输过程中出错的原因:一、数据在存取和传输过程中出错的原因:1 1、元器件质量不可靠;、元器件质量不

33、可靠;2 2、线路工艺不过关;、线路工艺不过关;3 3、远距离传输带来的干扰等等、远距离传输带来的干扰等等. .二、错误检测与纠正二、错误检测与纠正 方法有很多方法有很多, ,常见的一种是对数据信息进行扩充常见的一种是对数据信息进行扩充, ,加入新代码加入新代码, ,使之与原数据共同按某种规律编码后具使之与原数据共同按某种规律编码后具有发现错误的能力有发现错误的能力, ,有些甚至具有指出具体的错误位有些甚至具有指出具体的错误位置并使机器校正的能力置并使机器校正的能力. .我们称之为我们称之为“校验校验码码”(check code).(check code). 几种常用的校验码包括几种常用的校验

34、码包括: :奇偶校验码、奇偶校验码、CRCCRC码、码、海明码等海明码等. . 2.1.3 2.1.3 校验码校验码(check code)(check code) 三、奇偶校验码三、奇偶校验码 广泛用于主存的读写校验或广泛用于主存的读写校验或ASCII码字符传码字符传送过程中的检查送过程中的检查. 1 1、编码方式、编码方式: :在在n n位有效信息位上加一个二进制位位有效信息位上加一个二进制位作为校验位作为校验位P,P,构成构成n+1n+1位的奇偶校验码位的奇偶校验码. .校验位校验位P P的位置的位置可以在有效信息位的最高位之前可以在有效信息位的最高位之前, ,也可在有效信息位的也可在有

35、效信息位的最高位之后最高位之后. . 奇校验奇校验(odd):(odd):编码中含编码中含“1 1”的个数的个数( (连同校验位连同校验位) )共共有奇数个有奇数个“1 1”; ; 偶校验偶校验(even):(even):编码中含编码中含“1 1”的个数的个数( (连同校验位连同校验位) )共有偶共有偶数个数个“1 1”. . 例例: :信息编码为信息编码为:10001000B:10001000B 若采用偶校验若采用偶校验, ,则校验位则校验位P P可由下式确定:可由下式确定: P Peveneven=D=D0 0 D D1 1 D D2 2 D D3 3 D D4 4 D D5 5 D D6

36、 6 D D7 7 (2-1)(2-1) 若若D D7 7-D-D0 0中有偶数个中有偶数个1, 1,则则“偶形成偶形成”=0=0 若若D D7 7-D-D0 0中有奇数个中有奇数个1, 1,则则“偶形成偶形成”=1=1 若采用奇校验若采用奇校验, ,则校验位则校验位P P可由下式确定:可由下式确定: P Poddodd=P=Peven even (2-2)(2-2) 根据式根据式(2-1)(2-1)和和(2-2)(2-2),可得到,可得到9 9位奇偶校验位位奇偶校验位P P的形成的形成电路电路, ,如图如图2.32.3示示. .+ + + + + + + + +偶校验位形成偶校验位形成D D

37、7 7D D6 6 D D5 5D D4 4D D3 3D D2 2D D1 1D D0 0奇校验位形成奇校验位形成图图2.3 2.3 奇偶校验位奇偶校验位P P的形成电路的形成电路P PevenevenP Poddodd+ +偶校错偶校错校验位校验位D7D6 D5D4D3D2D1D0奇校错奇校错图图2.4 奇偶校验位电路奇偶校验位电路Peven 2 2、奇偶校验码的奇偶校验码的校验校验:8:8位代码与位代码与1 1位校验位同时位校验位同时送入偶校验逻辑电路送入偶校验逻辑电路. .若若“偶校错偶校错”=0,=0,表明数据无奇表明数据无奇数个错数个错, ,可视为正确可视为正确. . 3 3、主存

38、读写过程中的奇偶校验、主存读写过程中的奇偶校验 假设假设CPUCPU准备写入主存某单元的数据为准备写入主存某单元的数据为01010101,01010101,若采用奇校验若采用奇校验, ,经过奇偶校验电路经过奇偶校验电路, ,形成奇偶校验位形成奇偶校验位, ,实实际写入贮存的际写入贮存的9 9位校验码为位校验码为101010101(101010101(最高位为校验最高位为校验位位). ).从主存单元读出的从主存单元读出的9 9位信息首先送入奇偶校验电位信息首先送入奇偶校验电路路, ,若若9 9位信息中位信息中“1 1”的个数为奇数个的个数为奇数个, ,表示读出信息正表示读出信息正确确, ,将校验

39、位去掉后的将校验位去掉后的8 8位数据送位数据送CPU;CPU;否则否则, ,表示读出表示读出信息不正确信息不正确, ,向向CPUCPU发出奇偶校验出错的中断请求信发出奇偶校验出错的中断请求信号号. .CPU奇偶奇偶校验校验电路电路主存主存8 8位位9 9位位8 8位位9 9位位图图2.5 2.5 主存读写过程中的奇偶校验主存读写过程中的奇偶校验 第二章第二章 运算方法和运算器运算方法和运算器 数据表示数据表示定点运算定点运算定点运算器的构成与实例定点运算器的构成与实例浮点数的加减运算浮点数的加减运算2.22.2定点运算定点运算2.2.1 2.2.1 移位运算移位运算无符号数的移位称为无符号数

40、的移位称为逻辑移位逻辑移位;有符号数的移位称为有符号数的移位称为算术移位算术移位. . 1. 1.逻辑移位的规则逻辑移位的规则: : 逻辑左移时逻辑左移时, ,高位丢失高位丢失, ,低位添低位添0 0; 逻辑右移时逻辑右移时, ,高位添高位添0,0,低位丢失低位丢失. . 例例: :寄存器内容为寄存器内容为01010011,01010011,则则: : 逻辑左移时为逻辑左移时为1010011010100110 逻辑右移时为逻辑右移时为0010100100101001 2.22.2定点运算定点运算 2.2.1 2.2.1 移位运算移位运算 2.2.算术移位的规则算术移位的规则: :移位移位( (

41、相对于小数点相对于小数点) )后后符符号位不变号位不变, ,数值大小发生变化数值大小发生变化, ,左移左移n n位相当于该数位相当于该数乘以乘以2 2n n, ,右移右移n n位相当于该数除以位相当于该数除以2 2n n. . 例例:X=+0.1010110, y=-0.0100111,:X=+0.1010110, y=-0.0100111,则则: : X X右移一位右移一位:+0.0101011:+0.0101011 y y右移一位右移一位:-0.0010011:-0.0010011 X X左移一位左移一位:+0.0101100:+0.0101100 y y左移一位左移一位-0.100111

42、0-0.1001110 结论结论: :对真值而言对真值而言, ,无论正数或负数无论正数或负数, ,在左移或右移时在左移或右移时, ,空空出位一律以出位一律以“0 0”补入补入. .原码移位规则原码移位规则: : 不论正数、负数不论正数、负数, ,在左移或右移时在左移或右移时, ,符号位不变符号位不变, ,空出位一律补空出位一律补“0”.0”. 补码移位规则补码移位规则: : 正数正数: :符号位不变符号位不变, ,不论左移或右移不论左移或右移, ,空出位一空出位一律补律补“0”.0”. 负数负数: :符号位不变符号位不变, ,左移时左移时, ,空出位补空出位补“0”0”;右;右移时移时, ,空

43、出位补空出位补“1”.1”. 反码移位规则反码移位规则: : 不论正数、负数不论正数、负数, ,在左移或右移时在左移或右移时, ,符号位不变符号位不变. .对于正数对于正数, ,空出位一律补空出位一律补“0”;0”;对于负数对于负数, ,空出空出位一律补位一律补“1”.1”.0 0(a) (a) 真值为正真值为正0 0(b) (b) 负数原码负数原码0 00 0(c) (c) 负数补码负数补码1 1(d) (d) 负数反码负数反码图图2.62.6 实现算术左移和右移操作的硬件示意图实现算术左移和右移操作的硬件示意图2.22.2定点运算定点运算 2.2.2 2.2.2 补码加法运算补码加法运算1

44、. 1.补码加法的公式补码加法的公式:x:x补补+y+y补补=x+y=x+y补补 (mod 2)(mod 2)2.2.补码加法的特点补码加法的特点: :符号位作为数的一部分一起参加运算符号位作为数的一部分一起参加运算; ;在模在模2 2的意义下相加的意义下相加, ,超过超过2 2的进位要丢掉的进位要丢掉. .例例:x=+0.1001,y=-0.0101,:x=+0.1001,y=-0.0101,求求x+yx+y解解: x: x补补=0.1001, y=0.1001, y补补=1.1011=1.1011 xx补补 0.1 0 0 10.1 0 0 1 y y补补 1.1 0 1 11.1 0 1

45、 1 x+y x+y补补 1 0. 0 1 0 01 0. 0 1 0 0 故故: x+y=0.0100: x+y=0.0100+ +进位超过进位超过2 2,丢掉,丢掉2.2.32.2.3补码减法运算补码减法运算1. 1.补码减法的公式补码减法的公式:x-y:x-y补补=x=x补补-y-y补补=x=x补补+-y+-y补补2.2.补码减法的特点补码减法的特点: :减法运算可以化为加法减法运算可以化为加法, ,可和常规加法运算使用可和常规加法运算使用 同一加法器电路同一加法器电路, ,从而简化计算机的设计从而简化计算机的设计. .3.3.从从yy补补求求-y-y补补的法则是的法则是: :对对yy补

46、补包括符号位包括符号位: :“求反且末位加求反且末位加1 1”, ,即即 可得可得-y-y补补. .例例:x=+0.1101,y=+0.0110,:x=+0.1101,y=+0.0110,求求x-y=?x-y=?解解:x:x补补=0.1101,y=0.1101,y补补=0.0110,-y=0.0110,-y补补= y y补补+2+2-4-4=1.1001+0.0001=1.1010=1.1001+0.0001=1.1010 x-yx-y补补 =x=x补补+-y+-y补补=10.0 1 1 1 =0.0111=10.0 1 1 1 =0.0111所以所以 x-y=+0.0111x-y=+0.01

47、112.2.32.2.3溢出及其检测溢出及其检测1. 1.定义定义: :运算的结果超出机器所能表示的数据范围运算的结果超出机器所能表示的数据范围. . 分上溢分上溢( (两正数两正数相加结果符号为相加结果符号为1) 1)和下溢和下溢( (两负数相加结果符号为两负数相加结果符号为0) .0) .例例:x=+0.1011,y=+0.1001,:x=+0.1011,y=+0.1001,求求x+y.x+y.解解:x:x补补=0.1011, y=0.1011, y补补=0.1001=0.1001 xx补补 0.1 0 1 10.1 0 1 1 yy补补 0.1 0 0 10.1 0 0 1+ +x+yx

48、+y补补 1.0 1 0 01.0 1 0 0 注意:补码注意:补码XX补补与真值与真值X X的转换。的转换。 当当X X=0=0时,时,XX补补=X=X;当;当X0X0时,时,XX补补=M+X =M+X 注意注意:只有当两数同号时只有当两数同号时,才会出现溢出才会出现溢出. 2 2、几种检测方法、几种检测方法 (1)(1)单符号位法单符号位法1( 1(根据两个操作数的符号与结根据两个操作数的符号与结果的符号判别溢出果的符号判别溢出): ):当操作数中的加数与被加数当操作数中的加数与被加数符号相同时符号相同时, ,若结果的符号与操作数的符号不一若结果的符号与操作数的符号不一致致, ,表示溢出表

49、示溢出; ;否则否则, ,表示无溢出表示无溢出. . 设设X X的符号位为的符号位为X Xf f,Y,Y的符号为的符号为Y Yf f, ,运算结果的运算结果的符号为符号为S Sf f, ,则溢出逻辑表达式则溢出逻辑表达式: : V=XV=Xf fY Yf fS Sf f+X+Xf fY Yf fS Sf f V=0 V=0无溢出无溢出;V=1;V=1有溢出有溢出 (2)(2)单符号位法单符号位法2(2(进位判断法进位判断法): ):当最高有效当最高有效位产生进位而符号位无进位时位产生进位而符号位无进位时, ,产生上溢产生上溢; ;当最高当最高有效位无进位而符号位有进位时有效位无进位而符号位有进

50、位时, ,产生下溢产生下溢. .其逻其逻辑表达式为辑表达式为: : V=S V=S C C 其中其中S S为符号位产生的进位为符号位产生的进位,C,C为最高有效位为最高有效位产生的进位产生的进位. . (3) (3)双符号位法双符号位法( (变形补码法变形补码法): ):在进行补码加减运在进行补码加减运算时算时, ,如果只使用一个符号位如果只使用一个符号位, ,出现溢出的时候出现溢出的时候正确的符号位将被数值侵占正确的符号位将被数值侵占, ,符号位含义将发生符号位含义将发生混乱混乱. .因此因此, ,如果将符号位扩展为两位如果将符号位扩展为两位, ,即使出现即使出现溢出溢出, ,数值侵占了一个

51、符号位数值侵占了一个符号位, ,仍能保持最左边仍能保持最左边的符号为正确的符号为正确. . 溢出逻辑表达式为溢出逻辑表达式为:V=S:V=Sf1 f1 S Sf2f2+ 其中其中,S ,Sf1 f1和和S Sf2f2分别为最高符号位及第二符号位分别为最高符号位及第二符号位. .第二章第二章 运算方法和运算器运算方法和运算器 数据表示数据表示定点运算定点运算定点运算器的构成与实例定点运算器的构成与实例浮点数的加减运算浮点数的加减运算2.3.1 2.3.1 基本的二进制加基本的二进制加/ /减法器减法器一、回忆加法单元一、回忆加法单元 两个一位二进制数两个一位二进制数所使用的硬所使用的硬件件1 1

52、、一位半加器、一位半加器HA(Half Adder)(HA(Half Adder)(逻辑符号、真值表、逻辑符号、真值表、逻辑式逻辑式) )A S A B S C S=A A S A B S C S=A B BB C 0 0 0 0 =AB+ABB C 0 0 0 0 =AB+AB A A、B B :两个一位加数;:两个一位加数; 0 1 1 0 C=AB0 1 1 0 C=AB S S:半加和;:半加和; 1 0 1 01 0 1 0 C(Carry) C(Carry):半加进位:半加进位. 1 1 0 1. 1 1 0 1HAHA2 2、一位全加器、一位全加器FA(Full Adder)FA

53、(Full Adder):在半加器的基:在半加器的基础上考虑进位输入础上考虑进位输入(1)(1)逻辑符号、真值表、逻辑表达式逻辑符号、真值表、逻辑表达式A Ai i S Si i A Ai i B Bi i C Ci i S Si i C Ci+1 i+1 B Bi i C Ci+1 i+1 0 0 0 0 0 0 0 0 0 0C Ci i 0 0 1 1 00 0 1 1 0 0 1 0 1 0 0 1 0 1 0S Si i=A=Ai i B Bi i C Ci i 0 1 1 0 1 0 1 1 0 1C Ci+1i+1= A= Ai iB Bi i+B+Bi iC Ci i+C+Ci

54、 iA Ai i 1 0 0 1 0 1 0 0 1 0 =A =Ai iB Bi i +(A +(Ai i B Bi i)C)Ci i 1 0 1 0 1 1 0 1 0 1A Ai i,B Bi i:n n位加法器位加法器 1 1 0 0 11 1 0 0 1 第第i i位的加数位的加数 1 1 1 1 11 1 1 1 1FAFA C Ci+1i+1 S Si i C Ci+1 i+1 S Si i C Ci i A Ai i B Bi i A Ai i B Bi i C Ci i &异或异或&异或异或&或或或或(2)全加器的硬件实现全加器的硬件实现:电路形式有很

55、多电路形式有很多,选两例典选两例典型做介绍型做介绍.第一种在教材第一种在教材P.35图图2.2(b). 图图2.7 2.7 全加器的硬件实现全加器的硬件实现(3)(3)计算全加器电路的时间延迟:从电路的输入产生起计算全加器电路的时间延迟:从电路的输入产生起直到输出出现所经过的时间直到输出出现所经过的时间, ,用用T T的个数表示的个数表示.T.T叫延迟叫延迟单位单位. .以此表格为依据可推以此表格为依据可推算出前两种算出前两种FAFA的时的时间延迟间延迟. .第一例第一例: :生成生成S Si i的延迟的延迟为为6T,6T,生成生成C Ci+1i+1的延迟的延迟为为5T.5T.第二例第二例:

56、:生成生成S Si i、C Ci+1i+1的延迟均为的延迟均为4T4T. .可见同功能不同形式可见同功能不同形式的电路具有不同的时的电路具有不同的时间延迟间延迟. .与非门与非门NANDNAND T T逻辑逻辑符号符号或非门或非门NORNOR T T非非 门门NOTNOT T T与与 门门ANDAND 2T 2T 或或 门门OROR 2T 2T异或门异或门XORXOR 3T 3T同或门同或门XNORXNOR 3T 3T与或非与或非(接线(接线逻辑)逻辑)AOIAOIT+TrcT+TrcTT二、由加法单元二、由加法单元FAFA组成加法器组成加法器 ( (一一) )加法器类型及进位链加法器类型及进

57、位链 1 1、加法器的分类、加法器的分类 (1)(1)串行加法器串行加法器: :只有一个全加器只有一个全加器, ,数据逐位串行数据逐位串行送入加法器送入加法器. .(2)(2)并行加法器并行加法器: :由多个加由多个加 法器组成法器组成, ,加法器的个加法器的个数与操作数的位数相同数与操作数的位数相同. .2 2、并行加法器的进位方式、并行加法器的进位方式 (1)(1)进位链进位链: :进位传递逻辑进位传递逻辑, ,分为串行和并行进位分为串行和并行进位两种两种. (2) (2)基本进位公式基本进位公式 设相加的两个操作数为设相加的两个操作数为: : A=A A=A n-1n-1 A A n-2

58、 n-2 A Ai iA A0 0 B=B B=B n-1 n-1 B B n-2n-2B Bi iB B0 0 则进位信号的逻辑式为则进位信号的逻辑式为: : C C i+1i+1=A=Ai iB Bi i + (A + (Ai i B Bi i)C)Ci i=G=Gi i + P + Pi iC Ci i G Gi i= A= Ai i B Bi i P Pi i= A= Ai i B Bi i 其中其中, ,P Pi i称为称为进位传递函数进位传递函数,G,Gi i称为称为进位产生进位产生函数函数. . ( (二二) ) 串行进位的并行加法器:将串行进位的并行加法器:将n n个全加器串接

59、个全加器串接起来起来, ,可以进行两个可以进行两个n n位数相加位数相加. .其中的进位是逐级其中的进位是逐级形成的形成的, ,每一级的进位直接依赖于前一级的进位每一级的进位直接依赖于前一级的进位. .串行进位的逻辑表达式为串行进位的逻辑表达式为: : C C1 1=A=A0 0B B0 0 + (A + (A0 0 B B0 0)C)C0 0=G=G0 0 + P + P0 0C C0 0 C C2 2=A=A1 1B B1 1 + (A + (A1 1 B B1 1)C)C1 1=G=G1 1 + P + P1 1C C1 1 C Cn n=A=A n-1 n-1 B B n-1n-1 +

60、 (A + (A n-1n-1 B B n-1n-1)C )C n-1n-1=G =G n-1n-1 + P + P n-1 n-1 C C n-1 n-1 串行进位的进位输出信号串行进位的进位输出信号C Ci+1i+1与低位的进位信号与低位的进位信号C Ci i有关有关; ;串行进位的并行加法器的总延迟时间与字长成正比串行进位的并行加法器的总延迟时间与字长成正比. .例例: :行波行波( (串行串行) )进位的补码加法进位的补码加法/ /减法器减法器: :可由可由n n个一位的全加器个一位的全加器(FA)(FA)联成一个联成一个n n位的行波进位并行加减器位的行波进位并行加减器.M.M为方式控制输入线为方式控制输入线, ,当当M=0M=0时时, ,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论