版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章运算方法与运算器Department of Computer覃 颖 Tel: 6392292Email: 2.1 数据与文字的表示方法 2.1.1 数的机器码表示在计算机中参与运算的数有两大类:无符号数和有符号数。无符号数:所谓无符号数,即没有符号的数,数中的每一位均是有效数值。有符号数:将符号数字化,用“0”表示“正”,用“1”表示“负”,并且规定放在有效数字的前面,这就构成有符号数。2.1 数据与文字的表示方法 2.1.1 数的机器码表示机器数与真值:把符号“数字化”的数叫机器数,而把带“+”或“-”符号的数叫真值。机器数实质是符号和数值形成的一种编码表
2、示,常见的有原码、反码、补码和移码等表示法。2.1 数据与文字的表示方法 2.1.1 数的机器码表示原码表示法: 整数原码的定义: x原= 0,x 2n x 0 2n x 0 x -2n 小数原码的定义: x原= x 1 x 0 1x 0 x -1 式中x为真值,n为整数的位数2.1 数据与文字的表示方法 2.1.1 数的机器码表示原码表示法:原码表示是一种带符号的绝对值表示方法。 例如,+0.1001,则原0.1001 -0.1001,则原1.1001采用原码表示法简单易懂,但它的最大缺点是加法运算复杂。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示补码表示法: 整数补码的定义:
3、 x补= 0,x 2n x 0 2n+1 +x 0 x -2n (mod 2n+1) 小数补码的定义: x补= x 1 x 0 2+x 0 x -1 (mod 2) 式中x为真值,n为整数的位数2.1 数据与文字的表示方法 2.1.1 数的机器码表示补码表示法: 例如,+0.1011,则补0.1011 -0.1011,则补10+ 10.0000-0.1011 1.0101采用补码表示法进行减法运算就比原码方便得多了。因为不论数是正还是负,机器总是做加法,减法运算可变为加法运算。 2.1 数据与文字的表示方法 2.1.1 数的机器码表示反码表示法: 整数反码的定义: x反= 0,x 2n x 0
4、 (2n+1-1)+x 0 x -2n (mod 2n+1-1) 小数反码的定义: x反= x 1 x 0 (2-2-n)+x 0 x -1 (mod 2-2-n) 式中x为真值,n为整数的位数2.1 数据与文字的表示方法 2.1.1 数的机器码表示反码表示法:所谓反码,就是二进制的各位数码0变为1,1变为0。 例如,+0.1011,则反0.1011 -0.1011,则反10-0.0001+ 1.1111-0.1011 1.0100不难证明:补反2-n 这个公式告诉我们,若要一个负数变补码,其方法是符号位置1,其余各位0变1,1变0,然后在最末位(2-n)上加1。 2.1 数据与文字的表示方法
5、 2.1.1 数的机器码表示移码表示法:移码通常用于表示定点整数。 整数移码的定义: x移= 2n +x 2n x -2n 式中x为真值,n为整数的位数2.1 数据与文字的表示方法 2.1.1 数的机器码表示移码表示法: 例如,+10101,则移25+10101 1,10101 -10101,则移25+ 100000-10101 0,01011显然,移码中符号位表示的规律与原码、补码、反码相反。 二进制代码无符号数对应的真值原码对应的真值补码对应的真值反码对应的真值移码对应的真值0000000000000001000000100111111001111111100000001000000110
6、000010111111011111111011111111012126127128129130253254255+0+1+2+126+127-0-1-2-125-126-127+0+1+2+126+127-128-127-126-3-2-1+0+1+2+126+127-127-126-125-2-1-0-128-127-126-2-10+1+2+125+126+1272.1 数据与文字的表示方法 2.1.2 数据格式 在选择计算机的数的表示方式时,需要考虑以下几个因素:(1)要表示的数的类型(小数、整数、实数和复数);(2)可能遇到的数值范围;(3)熟知精确度;(4)数据存储和处理所需要的硬
7、件代价。 2.1 数据与文字的表示方法 2.1.2 数据格式 计算机中常用的数据表示格式有两种,一是定点格式,二是浮点格式。一般来说,定点格式容许的数值范围有限,但要求的处理硬件比较简单。而浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。 2.1 数据与文字的表示方法 2.1.2 数据格式 定点数的表示方法:所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。有两种格式:定点整数和定点小数。 定点整数:小数点位于数值位之后,机器内的数为纯整数。定点小数:小数点位于数符和第一数值位之间,机器内的数为纯小数。SfS1S2Sn数符数值部分2.1 数据与文字的表示方法 2.1.2 数据格
8、式 浮点数的表示方法: 通常,浮点数表示为N = M re M为尾数,e为阶码,r是基数(在计算机中,可取2、4、8或16等)。为提高数据精度和便于浮点数的比较,计算机中规定浮点数的尾数用纯小数形式,并将尾数最高位为1的浮点数称作规格化数。2.1 数据与文字的表示方法 2.1.2 数据格式 浮点数的表示方法:在早期计算机中,一个机器浮点数由阶码和尾数及其符号位组成: 2.1 数据与文字的表示方法 2.1.2 数据格式 浮点数的表示方法:按照 IEEE754 的标准,32位浮点数和64位浮点数的标准格式为:浮点数的符号位 ;:阶码,采用移码方式(好处);:尾数,小数点放在尾数域的最前面,尾数域所
9、表示的值是1.M (为什么) 。 2.1 数据与文字的表示方法 2.1.2 数据格式 十进制数串的表示方法:大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有两种表示形式:字符串形式 压缩的十进制数串形式 2.1 数据与文字的表示方法 2.1.2 数据格式 十进制数串的表示方法字符串形式 :即一个字节存放一个十进制的数位或符号位。在主存中,这样的一个十进制数占用连续的多个字节,故为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。这种方式表示的十进制字符串主要用在非数值计算的应用领域中。 2.1 数据与文字的表示方法 2.1.2 数据格式 十
10、进制数串的表示方法压缩的十进制数串形式 :即一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。与第一种表示形式类似,要指明一个压缩的十进制数串,也得给出它在主存中的首地址和数字位个数(不含符号位),又称位长,位长为0的数其值为0。十进制数串表示法的优点是位长可变,许多机器中规定该长度从0到31,有的甚至更长。 2.1 数据与文字的表示方法 2.1.3 字符与字符串的表示方法 现代计算机不仅处理数值领域的问题,而且处理大量非数值领域的问题。这样一来,必然要引入文字、字母以及某些专用符号,以便表示文字语言、逻辑语言等信息。例如人
11、机交换信息时使用英文字母、标点符号、十进制数以及诸如$,%,+等符号。然而数字计算机只能处理二进制数据,因此,上述信息应用到计算机中时,都必须编写成二进制各式的代码,也就是字符信息用数据表示,成为符号数据。 2.1 数据与文字的表示方法 2.1.3 字符与字符串的表示方法 目前国际上普遍采用的字符系统是ASCII码(美国国家信息交换标准字符码), ASCII码规定8个二进制位的最高一位为0,余下的7位可以给出128个编码,表示128个不同的字符。 字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低
12、位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的次序顺序存放字符串的内容。这两种存放方式都是常用方式,不同的计算机可以选用其中任何一种。 2.1 数据与文字的表示方法 2.1.4 汉字的表示方法 汉字的输入编码:为了能直接使用西文标准键盘把汉字输入到计算机,就必须为汉字设计相应的输入编码方法。当前采用的方法主要有以下三类: 数字编码:常用的是国标区位码 拼音码:拼音码是以汉字拼音为基础的输入方法。 字形编码:字形编码是用汉字的形状来进行的编码。除了上述三种编码方法之外,为了加快输入速度,在上述方法基础上,发展了词组输入联想输入等多种快速输入方法。但是都利用了键盘进行“手动”
13、输入。理想的输入方式是利用语音或图象识别技术“自动”将拼音或文本输入到计算机内,使计算机能认识汉字,听懂汉语,并将其自动转换为机内代码表示。目前这种理想已经成为现实。 2.1 数据与文字的表示方法 2.1.4 汉字的表示方法 汉字内码:汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示。英文字符的机内代码是七位的ASCII码,当用一个字节表示时,最高位为“0”。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为“1”。有些系统中字节的最高位用于奇偶校验位,这种情况下用三个字节表示汉字内码。2.1 数据与文字的表示方法 2.1.4 汉字的表示方法 汉字字
14、模码:字模码是用点阵表示的汉字字形代码,它是汉字的输出形式。 根据汉字输出的要求不同,点阵的多少也不同。简易型汉字为1616点阵,提高型汉字为2424点阵、3232点阵,甚至更高。字模点阵的信息量很大,所占存储空间也很大(示例)。因此字模点阵只能用来构成汉字库,不能用于机内存储。字库中存储了每个汉字的点阵代码。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。2.1 数据与文字的表示方法 2.1.4 汉字的表示方法 注意:汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同用途的编码,不要混为一谈。 2.1 数据与文字的表示方法 2.1.5 校验码 为了防止计算机
15、在处理信息过程中出现错误,可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误。通常的方法是,在每个字上添加一些校验位,用来确定字中出现错误的位置。计算机中常用这种检错或纠错技术进行存储器读写正确性或传输信息的检验。这里仅介绍最简单且应用广泛的检错码:采用一位校验位的奇校验或偶校验(原理)。 2.2 定点加法减法运算 2.2.1 补码加法 补码加法的公式是: 补补补 (mod 2)补码加法的特点,一是符号位要作为数的一部分一起参加运算,二是要在模2的意义下相加,即超过2的进位要丢掉(示例)。 2.2 定点加法减法运算 2.2.2 补码减法 补码减法的公式是: 补补补 补补 可见,负数的减
16、法运算也要设法化为加法来做,其所以使用这种方法而不使用直接减法,是因为它可以和常规的加法运算使用同一加法器电路,从而简化了计算机的设计(示例)。 2.2 定点加法减法运算 2.2.3 溢出概念与检测方法 在定点小数机器中,数的表示范围为|1. 在运算过程中如出现大于1的现象,称为“溢出”。在定点机中,正常情况下溢出是不允许的,因为溢出发生会使运算结果产生错误。 两个正数相加,结果大于机器所能表示的最大正数,称为正溢。而两个负数相加,结果小于机器所能表示的最小负数,称为负溢(示例) 。 对定点整数而言,也同样存在正溢、负溢问题。 2.2 定点加法减法运算 2.2.3 溢出概念与检测方法 为了判断
17、“溢出”是否发生,可采用两种检测的方法:第一种方法是采用双符号位法,这称为“变形补码”或“模4补码”。第二种溢出检测方法是采用单符号位法。 2.2 定点加法减法运算 2.2.3 溢出概念与检测方法 采用变形补码后,任何小于1的正数,两个符号位都是“0”,即00.12n;任何大于1的负数,两个符号位都是“1”,即11.12n。如果两个数相加后,其结果的符号位出现“01”或“10”两种组合时,表示发生溢出(示例) 。 溢出逻辑表达式为 VSf1Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或门实现。 变形补码相加的结果,不论溢出与否,最高符号位始终指示正确的符号。 2.
18、2 定点加法减法运算 2.2.3 溢出概念与检测方法 采用单符号位法时,当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢。溢出逻辑表达式为VCfCo,其中Cf为符号位产生的进位,Co为最高有效位产生的进位。此逻辑表达式也可用异或门实现。在定点机中,当运算结果发生溢出时,机器通过逻辑电路自动检查出溢出,并进行中断处理。2.2 定点加法减法运算 2.2.4 基本的二进制加法/减法器 复习一位全加器的设计实现。动画演示:4位行波进位加减器。2.2 定点加法减法运算 2.2.5 十进制加法器 十进制加法器可由BCD码(二十进制码)来设计,它可以在二进制加法器
19、的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。一位十进制数字的BCD加法器单元的逻辑结构图及n位BCD码行波式进位加法器的一般结构图。2.3 定点乘法运算 2.3.1 原码并行乘法 在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。设n位被乘数和乘数用定点小数表示(定点整数也同样适用)被乘数 原f .n110乘数 原f .n110乘积 原(ff)(0.n110)(0.n110)式中:f为被乘数符号,f为乘数符号。 2.3 定点乘法运算 2.3.1 原码并行乘法 不带符号
20、的阵列乘法器 设有两个不带符号的二进制整数:Aam1a1a0,Bbn1b1b0相乘后产生mn位乘积P:Ppmn1p1p0乘法过程如右图:2.3 定点乘法运算 2.3.1 原码并行乘法 不带符号的阵列乘法器设计思想:每一个部分乘积项(位积)aibj叫做一个被加数。这mn个被加数aibj|0im1和0jn1可以用mn个“与”门并行地产生。m位乘n位不带符号整数的阵列乘法器设计为两部分:被加数产生部件和被加数求和部件,显然,设计高速并行乘法器的基本问题,就在于缩短被加数矩阵中每列所包含的1的加法时间。 2.3 定点乘法运算 2.3.1 原码并行乘法 不带符号的阵列乘法器mn位逻辑图:演示:5位5位阵
21、列乘法器 2.3 定点乘法运算 2.3.1 原码并行乘法 带符号的阵列乘法器求补电路: 演示2.3 定点乘法运算 2.3.1 原码并行乘法 带符号的阵列乘法器(n1)(n1)位带求补器的阵列乘法器逻辑方框图:既适用于原码乘法,也适用于间接的补码乘法。 2.3 定点乘法运算 2.3.2 补码并行乘法 补码与真值得转换公式 设定点补码整数N补an-1an-2a1a0,an-1是符号位,则真值N可以表示成: n-2 N an-12n-1ai2ii=0 2.3 定点乘法运算 2.3.2 补码并行乘法 一般化的全加器形式 2.3 定点乘法运算 2.3.2 补码并行乘法 直接补码阵列乘法器 5位5位直接补
22、码操作,()标注负的被加项: (a4) a3 a2 a1 a0A ) (b4) b3 b2 b1 b0B (a4b0) a3b0 a1b0 a1b0 a0b0 (a4b1) a3b1 a2b1 a1b1 a0b1 (a4b2) a3b2 a2b2 a1b2 a0b2 (a4b3) a3b3 a2b3 a1b3 a0b3) a4b4 (a3b4) (a2b4) (a1b4) (a0b4) p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 P 5位5位直接补码阵列乘法器原理示意2.4 定点除法运算 2.4.1 原码除法算法原理 两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商
23、的数值部分由两数的数值部分相除求得。设有n位定点小数(定点整数也同样适用):被除数,其原码为原f .n-110除数,其原码为原f .n-110 则有商q/,其原码为:q原(ff)+(0.n-110/0.n-110)2.4 定点除法运算 2.4.1 原码除法算法原理 设0.1001,0.1011,求的过程如下: 0.1101 商q0.1011 0.10010(r0) 被除数小于除数,商0 0.01011 2-1除数右移1位,减除数,商1 0.001110 r1得余数r1 0.001011 2-2除数右移1位,减除数,商1 0.0000110 r2 得余数r2 0.0001011 2-3除数右移1
24、位,不够减,商0 0.00001100 r3 得余数r3 0.00001011 2-4除数右移1位,减除数,商1 0.00000001 r4 得余数r4得的商q0.1101,余数r0.00000001。2.4 定点除法运算 2.4.1 原码除法算法原理 事实上,机器的运算过程和人毕竟不同,人会心算,一看就知道够不够减。但机器却不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。这种方法称为恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。实际中常用不恢复
25、余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。 2.4 定点除法运算 2.4.2 并行除法器 可控加法/减法(CAS)单元 2.4 定点除法运算 2.4.2 并行除法器 不恢复余数的阵列除法器 被除数(双倍长) :0.123456除数:0.123商数:0.q1q2q3余数:0.00r3r4r5r6字长: n14(示例)2.5 定点运算器的组成 2.5.1 逻辑运算 计算机中除了进行加、减、乘、除等基本算术运算外,还可对两个或一个逻辑数进行逻辑运算。所谓逻辑数,是指不带符号的二进制数。利用逻辑运算可以进行两个数的比
26、较,或者从某个数中选取某几位等操作。 计算机中的逻辑运算,主要是指逻辑非、逻辑加、逻辑乘、逻辑异四种基本运算。 2.5 定点运算器的组成 2.5.1 逻辑运算 逻辑非运算:逻辑非也称求反。对某数进行逻辑非运算,就是按位求它的反,常用变量上方加一横来表示。设一个数表示成:012n对求逻辑非,则有:012n ii(i0,1,2,n)2.5 定点运算器的组成 2.5.1 逻辑运算 逻辑加运算:对两个数进行逻辑加,就是按位求它们的“或”,所以逻辑加又称逻辑或,常用记号“V”或“”来表示。设有两个数,它们表示为:012n 012n若 : 012n则: iii (i0,1,2,n)2.5 定点运算器的组成
27、 2.5.1 逻辑运算 逻辑乘运算:对两数进行逻辑乘,就是按位求它们的“与”,所以逻辑乘又称“逻辑与”,常用记号“”或“”来表示。 设有两个数,它们表示为:012n 012n若 : 012n则: iii (i0,1,2,n)2.5 定点运算器的组成 2.5.1 逻辑运算 逻辑异运算:对两数进行异就是按位求它们的模2和,所以逻辑异又称“按位加”,常用记号“”表示。 设有两个数,它们表示为:012n 012n若 : 012n则: iii (i0,1,2,n)2.5 定点运算器的组成 2.5.2 多功能算术/逻辑运算单元 将全加器的功能进行扩展后能完成多种算术/逻辑运算:(74181ALU芯片实例)
28、 2.5 定点运算器的组成 2.5.2 多功能算术/逻辑运算单元 先行进位原理74182先行进位部件(CLA) 两级先行进位的ALU的构成 由八个74181ALU和两个74182CLA器件组成的32位ALU逻辑方框图: 2.5 定点运算器的组成 2.5.3 内部总线 根据总线所在位置,总线分为内部总线和外部总线两类。内部总线是指CPU内各部件的连线,而外部总线是指系统总线,即CPU与存储器、I/O系统之间的连线。 按总线的逻辑结构来说,总线可分为单向传送总线和双向传送总线。所谓单向总线,就是信息只能向一个方向传送。所谓双向总线,就是信息可以分两个方向传送,既可以发送数据,也可以接收数据。 2.
29、5 定点运算器的组成 2.5.3 内部总线 2.5 定点运算器的组成 2.5.4 定点运算器的基本结构 运算器包括ALU阵列乘除器寄存器多路开关三态缓冲器数据总线等逻辑部件。运算器的设计,主要是围绕ALU和寄存器同数据总线之间如何传送操作数和运算结果进行的。计算机的运算器大体有如下三种结构形式 :单总线结构的运算器 双总线结构的运算器 三总线结构的运算器 2.5 定点运算器的组成 2.5.4 定点运算器的基本结构 单总线结构的运算器2.5 定点运算器的组成 2.5.4 定点运算器的基本结构 双总线结构的运算器2.5 定点运算器的组成 2.5.4 定点运算器的基本结构 三总线结构的运算器2.6
30、浮点运算方法和浮点运算器 2.6.1 浮点加法、减法运算 设有两个浮点数和,它们分别为 2EM 2EM其中:E和E分别为数和的阶码 M和M为数和的尾数。两浮点数进行加法和减法的运算规则是: (M2E- EM)2E,EE2.6 浮点运算方法和浮点运算器 2.6.1 浮点加法、减法运算 完成浮点加减运算的操作过程大体分为四步: 0 操作数的检查比较阶码大小并完成对阶尾数进行加或减运算结果规格化并进行舍入处理浮点加减运算的操作流程例题 2.6 浮点运算方法和浮点运算器 2.6.1 浮点加法、减法运算 浮点加减运算操作过程的几个关键: 在对阶时应该总是使小阶向大阶看齐(?)。 结果规格化时,在尾数求和
31、有溢出时应该右规,否则一般情况下是左规。在舍入处理中,简单的舍入方法有“0舍1入”法和“恒置一”法。浮点数的溢出是以其阶码溢出表现出来的。阶码上溢是指超过了阶码可能表示的最大值的正指数值,一般将其认为是和。阶码下溢是指超过了阶码可能表示的最小值的负指数值,一般将其认为是0。 2.6 浮点运算方法和浮点运算器 2.6.2 浮点乘法、除法运算 设有两个浮点数和,它们分别为 2EM 2EM其中:E和E分别为数和的阶码 M和M为数和的尾数。两浮点数进行乘法和除法的运算规则是: 2E+ E(M M) 2E- E(M M)2.6 浮点运算方法和浮点运算器 2.6.2 浮点乘法、除法运算 完成浮点加减运算的
32、操作过程大体分为四步: 0 操作数的检查阶码加/减操作:运算时必须检查结果是否溢出。如果是移码操作,则使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用 0 参加加减运算,则溢出条件是结果的最高符号位为1。此时,当低位符号位为 0时,表明结果上溢,为1时,表明结果下溢。 尾数乘/除操作 结果规格化并进行舍入处理2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线原理计算机的流水处理过程同工厂中的流水装配线类似。为了实现流水,首先必须把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行。将任务连续不断地输入流水线,从而实现了子任务的并行。因
33、此流水处理大幅度地改善了计算机的系统性能,是在计算机上实现时间并行性的一种非常经济的方法。2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线原理在流水线中,原则上要求各个阶段的处理时间都相同。若某一阶段的处理时间较长,势必造成其他阶段的空转等待。因此对子任务的划分,是决定流水线性能的一个关键因素,它取决于操作部分的效率、所期望的处理速度,以及成本价格等等。2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线原理 假定作业 T 被分成 k 个子任务,可表达为: TT1,T2,Tk 且各个子任务之间有一定的优先关系:若ij,则必须在 Ti 完成以后,Tj才能开始工
34、作。具有这种线性优先关系的流水线称为线性流水线。2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线原理 线性流水线处理的硬件基本结构: 2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线原理 设过程段 Si所需的时间为i,缓冲寄存器的延时为l,线性流水线的时钟周期定义为: maxilml 故流水线处理的频率为 f1/。2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线原理 在流水线处理中,当任务饱满时,任务源源不断的输入流水线,不论有多少级过程段,每隔一个时钟周期都能输出一个任务。从理论上说,一个具有k 级过程段的流水线处理 n 个任务需要
35、的时钟周期数为: Tkk(n1) 如果用非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为:TLnk 定义k级线性流水线的加速比为:CkTL/Tk2.6 浮点运算方法和浮点运算器 2.6.3 浮点运算流水线 流水线浮点加法器 除0操作数检查之外的3段流水线浮点加法器框图: thanks作业:P70:1,3,5,6,8,9 阶符采用隐含方式,即采用移码方式来表示正负指数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种方式时,将浮点数的指数真值e 变成阶码 时,应将指数 e 加上一个固定的偏移值。 例如在IEEE754标准中,对32位浮
36、点数 ,占用8 位,固定偏移值采用127(01111111)(为什么),即 e127;对64位浮点数 ,占用11 位,固定偏移值采用1023(0111111111),即 e1023 当一个浮点数的尾数为 0,不论其阶码为何值,或者当阶码的值遇到比它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称为机器零。 当阶码E为全0且尾数M也为全0时,表示的真值x为零,结合符号位S为0或1,有正零和负零之分。当阶码E为全1且尾数M也为全0时,表示的真值x为无穷大,结合符号位S为0或1,有正无穷和负无穷之分。这样在32位浮点数表示中,要除去E用全0和全1表示零和无穷大的特殊情况,指数的
37、偏移值不选128(10000000),而选127(01111111)。对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-38-10+38。 因为规格化的浮点数的尾数域最左(最高有效位)总是1,故这一位经常不予存储,而认为隐藏在小数点的左边。 故IEEE754标准中,一个规格化的32位浮点数的真值可表示为: (1)s(1.)2127e127 规格化的64位浮点数的真值为: (1)s(1.)21023 e1023 (两个例子) 例1 若浮点数的754标准存储格式为(41360000)16,求其浮点数的十进制值。 解: 将十六进
38、制数展开后,可得二进制数格式为: 指数e阶码1271000001001111111 00000011 (3)10 尾数1.M1.0110110 00000000 00000000 1.011011 于是有:(1)s1.M2e(1.011011)23 1011.011(11.375)10 例2 将十进制数数20.59375转换成754标准的32位浮点数的二进制格式来存储。 解: 首先分别将整数和分数部分转换成二进制数: 20.5937510100.10011 然后移动小数点,使其在第1,2位之间 10100.100111.01001001124 于是得到: S0 E4127131 M010010
39、011 最后得到32位浮点数的二进制存储格式为: 01000001 10100100 11000000 00000000 (41A4C000)16一位奇偶校验工作原理: 设(01n1)是一个n位字,则定义: 奇校验位C01n1 偶校验位C01n1 假设一个字从部件 A 传送到部件 B。在源点 A,计算校验位C并合在一起将(01n1C)送到B。假设在B点真正接收到的是: (01 n1C) 计算F01n1C 若F0,表明字传送正确,反之则出错。注意:奇偶校验可提供单个错误检测,但无法检测多个错误,更无法识别错误信息的位置。例已知下表中左面一栏有5个字节的数据。请分别用奇校验和偶校验进行编码,填在中
40、间一栏和右面一栏。解: 假定最低一位为校验位,其余高8位为数据位,列表如下。从中看出,校验位的值取0还是取1, 是由数据位中1的个数决定的。数据偶校验编码奇校验编码1 0 1 0 1 0 1 00 1 0 1 0 1 0 00 0 0 0 0 0 0 00 1 1 1 1 1 1 11 1 1 1 1 1 1 11 0 1 0 1 0 1 0 00 1 0 1 0 1 0 0 10 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1 01 0 1 0 1 0 1 0 10 1 0 1 0 1 0 0 00 0 0 0 0 0 0 0 10 1 1 1
41、 1 1 1 1 01 1 1 1 1 1 1 1 1例1 0.1001,0.0101,求。解: 补0.1001, 补0.0101 补 0.1001 补 0.0101 补 0.1110 所以0.1110例2 +0.1011,-0.0101,求。解: 补0.1011, 补1.1011 补0.1011 补1.1011 补 10.0110 所以0.0110例 +0.1101,+0.0110,求-。解: 补0.1101 补0. 0110 , -补1.1010 补0.1101 -补1.1010 -补 10.0111 所以-+0.0111例1 +0.1011,+0. 1001,求。解: 补0.1011, 补0. 1001 补 0.1011 补 0.1001 补 1.0100 两个正数相加的结果成为负数,这显然是错误的。 例2 -0.1101,-0. 1011,求。解: 补1.0011, 补1. 0101 补1.0011 补1.0101 补 0.1000 两个负数相加的结果成为正数,这同样是错误的。 例1 +0.1100,+0. 1000,求。解: 补00.1100, 补00. 1000 补 00.1100 补 00.1000 补 01.0100 两个符号位出现“01”,表示正溢。 例2 -0.1100,-0. 1000,求。解: 补11.0100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四年区块链技术研究与应用合同
- 个性化证券投资建议服务合同版B版
- 2025年度光伏发电项目出渣车辆劳务分包合同范本4篇
- 2025版事业单位劳动合同书(2025年度)-试用期管理细则3篇
- 2025年度个人股权托管与退出合同4篇
- 2025年度大产权房屋买卖合同解除合同3篇
- 2025版美发店设备采购合同范本集锦
- 二零二五版定制门窗行业国际市场开拓合同4篇
- 二零二五版建筑废弃物资源化利用与处理工程承包合同3篇
- 2025年度教育培训代销合同模板4篇
- 2025年度版权授权协议:游戏角色形象设计与授权使用3篇
- 心肺复苏课件2024
- 《城镇燃气领域重大隐患判定指导手册》专题培训
- 湖南财政经济学院专升本管理学真题
- 全国身份证前六位、区号、邮编-编码大全
- 2024-2025学年福建省厦门市第一中学高一(上)适应性训练物理试卷(10月)(含答案)
- 《零售学第二版教学》课件
- 广东省珠海市香洲区2023-2024学年四年级下学期期末数学试卷
- 房地产行业职业生涯规划
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- MOOC 数字电路与系统-大连理工大学 中国大学慕课答案
评论
0/150
提交评论