计算机组成原理课件2_第1页
已阅读1页,还剩50页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、第 2 章 运算方法和运算器 教学目的 :学习运算方法与运算器的基础知识 教学要求:1、掌握运算方法与运算器的基础知识 教学重点:1、数据与文字的表示方法;2、定点运算方法与运算器组成;3、浮点运算方法与运算器组成。 教学难点:1、定点运算方法与运算器组成;2、浮点运算方法与运算器组成。2.1 数据与文字的表示方法2.1.1 数据格式1.定点数的表示方法定点数格式: 约定机器中所有数据的小数点位置是固定不变的。 包括:? 纯小数? 纯整数 表示范围:设用 n+1 位表示一个定点数,如下:(XoXlX2Xn各位均为0时最小;各位均为1时最纯小数的表示范围为大)(2.1)0<X| <+

2、2-n纯整数的表示范围为(2.2)0<X| W2 12.浮点数的表示方法 ( 1 )浮点数的引出:电子的质量为9X10-28太阳的质量为2X1033(2)浮点数的书写格式:任意一个十进制数N可以写成N= 1 0 e.M(2.3)同理,任意进制数N可以写成N=R eM (2.4)其中:? M:尾数,是一个纯小数。? e:称为浮点数的指数,是一个整数。? R:基数,对于二进计数制的机器是 R=2。如:二进制数0.0001011表示为0.1011 X2-3( 3)浮点数的机器表示:一般的表示方法:IEEE754标准,32位浮点数(单精度)的标准格式:其中:? S:浮点数的符号位,1位,0表示正

3、数,1表示负数。? M:尾数,23位,用小数表示,小数点放在尾数域的最前面。? E:阶码(8位),阶符采用隐含方式,即采用移码方式来表示正负指数。阶码的移码表示方式:将浮点数的指数真值e变成阶码E时,应将 指数e加上一个固定的偏移值127(01111111)即E= e+ 127。移码方法对两个指数大小的比较和对阶操作都比较方便, 因为阶码 域值大者其指数值也大。上述标准格式所表示的浮点数 X 的真值为:X=(-1)Sx (1.M)X2e-127例如:P18例1若浮点数X的二进制存储格式为(41360000)16,求其 32 位浮点数的十进制值。例如: P18 例 2将数( 2 0 . 5937

4、5) 1 0转换成 754 标准的 32 位浮点数的二进制存储格式。 IEEE754 标准,64位浮点数(双精度)的标准格式:11位, M :52位 X 的真值为:E-1023S: 1 位,E:它所表示的浮点数X=(-1)Sx (1.M)X2补充:IEEE754标准下浮点数的表示范围:无效数据NaNOO士乂最大绝对值最小绝对值机器0±032位单精度M 非 0, E=255M=0, E=2551.0X2128=2128M 全 1, E=2541.11 x 2127=(2223) X 2127M=0, E=11.OX2-126=2-126M=0, E=01.0X2-127=2-12764

5、位双精度M 非 0, E=2047M=0, E=20471.0X21024=21024M 全 1, E=2O461.11X 21023=(2-2-52) X 2127M=0, E=11.0X2-1022=2-1022M=0, E=01.0X2-1023=2-10233. 十进制数串的表示方法目前,大多数通用性较强的计算机都能直接处理十进制形式表示的 数据。十进制数串在计算机内主要有两种表示形式:(1)字符串形式字符串形式:一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串 的长度)。(2)压缩的十进制数串形式压缩的十进制数串形式:一个字节存放两个

6、十进制的数位。说明:?它比前一种形式节省存储空间,又便于直接完成十进制数的算 术运算,是广泛采用的较为理想的方法。?用压缩的十进制数串表示一个数,也要占用主存连续的多个字节。?每个数位占用半个字节(即4个二进制位),其值可用二-十编码 (BCD码)或数字符的ASCII码的低4位表示。?符号位也占半个字节并放在最低数字位之后,其值选用四位编码 中的六种冗余状态中的有关值。例如:用12(C)表示正号用13(D)表示负号。在这种表示中,规定数位加符号位之和必须为偶数,当和不为偶数时,应在最高数字位之前补一个0。|12 bld ( + 123)|q|1J2|d| (-12)2.1.2数的机器码表示机器

7、数(机器码):数值在机器中存储时的存储编码。1. 原码表示法定点小数:Xx原1 +乜|定点整数:X = 2" X 2" +1 XI1。即:在真值前加一位符号位,正数为 0,负数为例如:x=+ 1001 则x原=01001x=- 1001 则x原=11001特点:?方法简单,但运算复杂;当两数相加时,如果是同号则数值相加;如果是异号,则 要进行减法。而在进行减法时还要比较绝对值的大小,然后用 绝对值大的数减去绝对值小的数,最后还要给结果选择符号。?对于0,原码机器中往往有“ +0”、“- 0”之分。故有两种形式:+0原=0000.0-0原=1000.02.补码表示法定点小数:

8、I仙卜* = 2+ X =2定点整数:OW x< 2»-2y 0即:?正数:补码等于原码?负数:补码的符号位为1,数值部分为其原码的数值部分各位取 反,然后在最低位加1。特点:?运算简单(减法转为加法运算);?0的表示方法唯一。3.移码表示法|x| 移=2" - + X2" W X V 2川即:X的移码为X的补码的符号位取反。 例如:x=+ 10101 时,X 移=110101x=- 10101 时,X 移=001011小结:?移码表示法主要用于表示浮点数的阶码。在IEEE754中的移码采用的是2n-1+X。?由于补码表示对加减法运算十分方便,因此目前机器中

9、广泛采 用补码表示法。在这类机器中,数用补码表示,补码存储,补 码运算。?也有些机器,数用原码进行存储和传送,运算时改用补码。?还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。2.1.3字符与字符串的表示方法ASCII 码2.1.4汉字的表示方法1. 汉字的输入编码为了能直接使用西文标准键盘把汉字输入到计算机,就必须为汉字设计相应的输入编码方法。?数字编码(国标码)?拼音码?字形编码2. 汉字内码用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个 字节表示。3. 汉字字模码用点阵表示的汉字字形代码,它是汉字的输出形式。FFF叫1UU七107斥叩 Uh LU (K抑 00剧

10、1筑FC 10, S'lK), S110,段 7F, FFUb 1U04, 10GKl UB AM 7臥)70III 严 55Bi幻 TH I 惻 I I W H LI图£1汶字的字模点阵及编码2.1.5 校验码常用的是奇/偶校验码。特点:能检测出奇数位出现错误的情况。但无法识别错误出现的位置。2.2 定点加法减法运算2.2.1 补码加法 补码加法的公式:X 补 + y 补=x + y 补(mod 2n+1)例如:P27例11,例12例如:2.2.3x-y 补=X 补一y 补=X 补+ y 补P28 例 13,例 14 溢出概念与检测方法 在运算过程中,运算结果超出了计算机能

11、表示的范围。2.2.2 补码减法 补码减法的公式:溢出:包括:? 正溢(上溢):两个正数相加 , 结果大于机器所能表示的最大正数。? 负溢(下溢):两个负数相加 , 结果小于机器所能表示的最小负数。 例如: P28-29 例 15,例 16检测方法:方法 1:变形补码(双符号位法)正数符号位为 00,负数符号位为 11例如: P28 例 17,例 18注意:? 结果的两符号位如果相异,则表示产生了溢出。? 最高符号位始终为正确符号位。不采用教材P30结论1) 2)方法 2:单符号位法? 最高有效位产生进位,而符号位无进位,则正溢。? 最高有效位无进位,而符号位产生进位,则负溢。224基本的二进

12、制加法/减法器1. 原理:X补 + Y补=X + Y补X Y补=凶补 + Y补二X补Yj补 12. 一位全加器:真值表:输入Cj()输出()f)逻辑表达式如下:Si AiCi 1 Ai BiBiCiBiCiCi AiAi Bi (ABi )Ci可得,电路图为:ftaCi Ai Bi记为:Ci-1 <Ci-1 <SiICiCiBiAi BiAiTTDn Ann个一位全加器串联可构成多位加法器。SnSn1ttBti-1 An-13. n位行波进位的补码加法/减法器JL夕方式控制MBn-2*An-2Bn-1.Bo AoAn-i符号位掌握以下几点:?方式控制M如何实现加法/减法控制的。?如

13、何判断溢出的。4. n位行波进位的补码加法/减法器的时间延迟延迟时间:从产生输入到得到稳定输出的最长时间。一般以一个“与非”门或“或非”门的时间延迟作为度量单位,记为T。“与非”门,“或非”门:T“异或”门:3T求解n位行波进位的补码加法/减法器的时间延迟: Cn的延迟:C1=3T+3T+2T=6T+2TC2=C1+2T=6T+2T+2T同理:Cn=6T+2T* nSn-1的延迟:Sn -1=C n-1+3T=6T+2T*( n-1)+3T=9T+2T*( n-1)n位行波进位的补码加法/减法器的时间延迟:考虑溢出:即为Cn的延迟+溢出判断异或门的延迟即 ta=9T+2T*n不考虑溢出:即为C

14、n延迟和Sn-1延迟中的最大者即 ta=9T+2T* (n-1)2.3定点乘法运算2.3.1原码并行乘法1. 定点数乘法规则符号位:被乘数与乘数符号位的异或。数值部分:与十进制乘法类似。2. 不带符号位的阵列乘法器设两个不带符号的二进制数A=am-i aiaoB=bn-1biboA*B:恥1如2却加二h>L-1 "* bl bo心血孔旷咖他0轴0 aribi红妙勺bl 5切+ ) a-lbu-l Mbn-l * 勺biH ©brrlPfu+iH PfHirf 昭旷3卩旷1Pl Po=P由此可知:?其中每个部分乘积项aibj由一个与门构成,故需要m*n个与门;?结果P由

15、乘法阵列完成;被乘数乘数m*n 位不带符号的阵列乘法器逻辑图如下:乘法阵列的设计: 以5位*5位为例:ii:-h州】X虬b%町bu昕虬幻h|%h叫b?訊4九如眄-A卩1 Pl Pl. =P闪 P« lb 1% 闪I打可知,阵列乘法器逻辑电路图如下:,十(“严f口 I 皿 a呷bnrti bipai hii ao hnai blcUi b:a lb- (?疔7 /1 /,/ ,亂b:I; b曲ti 'I m 芒戸史 LpU 1% p7mb (PA£it TIP6 Pi pl pH pa plpo图Z 5別立乘行位不带符巧的阵列乘法還崭电跻图说明:实现n位*n位,需要n

16、(n-1)个全加器,n2个与门。 阵列乘法器的乘法时间估算(略)。3. 带符号的阵列乘法器如何设计带符号的原码/补码阵列乘法器。原码与补码之间的转换正数:X补二X原负数:? X补=X原符号位不变,数值部分各位取反,最低位加1 ;? X原=X补符号位不变,数值部分各位取反,最低位加1。例如:X=-10110110X原= 110110110X补= 101001010 求补器功能:E=O:原样输出E=1:实现各位取反,并在最低位加1原理:设输入端A=anaO,输出端为A an aO,从右向左扫描A,找 出第一个“1”,假设为ai,则ai aO为aiaO保持不变,an ai 1为ana+1 各位取反。

17、电路图:EE=0 时,aiai O ai,即输出a:与输入a:相同。* *E=1 时,Ci 1=1, C-i=O,则ai为输入ai取反。Ci= ai+Ci-1ai ai Ci 1,即如果Ci 1 =O,则ai与输入ai相同,如果Co=ao+O C1= a1+aO+OCi= ai+ao+O可得,输入数据anaiao中,如果a为从右向左的第一个“ 1”Cn-iCi均为1, Ci-1 C0均为0,则输出端ai a0为aiao保持不变, an ai 1为ana+1各位取反;求补器的延迟时间:(略) 带符号的阵列乘法器 原理:数值部分用无符号数值部分先通过求乘法结果再经?原码X原码:符号位异或作为结果的

18、符号位, 的阵列乘法器实现相乘,结果为原码形式。?补码X补码:符号位异或作为结果的符号位, 补器求补,再用无符号的阵列乘法器实现相乘, 过求补器求补,最终结果为补码形式。逻辑框图:乘数)bn 1* bl(被乘数A二 an- H13(T Ifanan bnuH位算而求补器bn1_pm I Plpo(乘枳)图£7位乘Cn+H位帯求补级的阵列乘法器H£图门位乘门位不带符号的乘法阵列(核心部分)注:?若进行原码运算,则不需要图中的三个求补器;?其实现的补码乘法为间接补码乘法。例如:P36例20,例21232 直接求补并行乘法(略)2.4定点除法运算2.4.1原码除法算法原理设有n位

19、定点小数(定点整数也同样适用):被除数X ,其原码为X 原=X f. X n-1X1X 0除数y,其原码为y 原=y f. y n-1yi y 0 则有商q=x / y,其原码为q原=(X f y f)+(0. X n-1X1 X 0/0. y n-1y 1 y 0)可知,实现定点数的除法关键在于实现数值部分的除法。例如:X=0.1001,Y=0.1011,求 X -Y 手工计算:PUP/一 I0 ,p ( I (? 00对计算机而言:恢复余数法穴fT词0/屮一(C i i7WW-y巒二改进方法:加减交替法/“/丿/J 01! _祥呱TTi+ / ° 门/JKW;r进一步将减法转为加

20、法:? iIQJ0小2二* i 希 W总结可得:真值X/Y步骤为:?求出 |X|,|Y|,-|Y|补;? Y(1) 第一次时,执行+-| 丫|补;(2) 每次的进位记为C,C 一方面作为商,另一方面控制下一次的运算,C=0,下次执行+| Y|补C=1,下次执行+卜|Y|补;(3) 每次运算后除数右移一位;242 并行除法器1. 可控加法减法器 逻辑电路图:B:AiPrGBiSj图Z9 (a)可控加法/减法CCAS)单元的逻辑图 说明:? p=o 时 Ai Bi Ci?P=1 时 Ai Bi Ci逻辑符号:pc.1P=1时,实现A B 12. 不恢复余数的阵列乘法器。()ASCASASAS余数厂

21、二bl<b) 4位除4位阵列瞳祛器例题:P43例232.5定点运算器的组成2.5.1 逻辑运算基本运算包括:逻辑非,逻辑加(或),逻辑乘(与),逻辑异(异 或)。2.5.2 多功能算术/逻辑运算单元(ALU)一位全加器(FA)构成的行波进位加法器存在两个问题:?串行进位不利于高速运算;?只能完成加法和减法两种操作而不能完成逻辑操作。因此,需要设计一种具有多种算术运算和逻辑运算的功能 ,而且具有 先行进位逻辑,从而能实现高速运算的运算器。1. 基本思想so515253一位全加器(FA)的逻辑表达式为? Fi = Ai Bi Ci? Ci+ 1 = AiBi + BiCi + CiAi将Ai

22、和Bi先组合成由控制参数S0,S1,S2,S3空制的组合函数Xi和 Yi,然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运 算。2. 逻辑表达式ALU中某一位的逻辑表达式 在ALU中的某一位:?S0,S1控制Ai和Bi产生Yi;?S2,S3控制Ai和Bi产生Xi ;函数关系如P47表2.4所示。S SYiXi0 0 0 11 01 1瓦A耳 仆0 0 0 11 01 11 召十耳 A + B 瓦根据上表可得Xi和Yi的逻辑表达式:X-S.S + SS (A.+BP +S$3 (Aj+Bj) + S.SA; 瓦 SB

23、 汁 SfSAE化简后可得:Xi= SA.Bj + SjAjBj (1)Yi=Ai+SB.+S,Bi (2) 又因为: Yi = Yj c:+;=t+yg+ck可得:F尸Xi®Yi®Ci(3)q+,=+XiG(4)所以:ALU中的某一位,其表达式如下:(I) (4)X- SjAiBi + S2A耳 Y尸A汁Sa + S恳F严珞® Yi®CjG十严Yj+XG先行进位的引入存在的问题:由上述公式可知,如进行多位运算,则串连时进位需逐级传递,速度慢。解决的途径:引入先行进位,实现高速运算。原理:以四位串连为例:因为:|G=Yj+tG|所以:C2=x+q=Y+Y

24、角十(:3 = 丫2 + *2(:2 二 丫2 + 丫1 + 儿只2 + 凡兀(:0C尸Ys+X3C尸Y舟+ Y齐十丫匹、+Y岛只凡+X的X兀q令:G=丫3+小+ 丫心$+ 丫4小P=XNXN则:C=G+PG|对于一个4位ALU来说,除进位输出C4外,可引入GP提高运算速度。G:进位发生输出P:进位传输输出与之配合的电路称为先行进位发生器(CLA)4位一片如P48图2.11所示。3. 算术逻辑运算的实现典型电路74181 ALUFoFlCn+4CnYiXo*Al«:WIWH1 I卜.逻辑操作数表刃、的741 mil的逻轉电路国A=B?氏AA MbS址SIAoBa As B2 A2 B

25、l除了 so S3四个控制端外,还多一个控制端M。?M=0,进行算术运算?M=1,进行逻辑运算图£ 11正逻轴操作数表小的741習1丄的逻糾电路图A=B _ F3庄Fl*Yt)*<*#v七|H 丄MJAoB3 As74181功能表,P49表2.54. 两级先行进位的ALU问题提出:假设要实现16位的运算单元,则需4片74181串连,速度较慢。u.解决方法:则:Cf +P(GC尸G| + PG=5 + G 码+ PGCi2 二 G? + P2G=G2 + G1P2 + G 仆片卩2 + 卩2口C 历Gj + PjCj2 G+G2Pj + G£PjP2 + Gf|P|P2

26、Pj + P|PlP2PjQ,再令:厂二片”匕巴G+(;2叫 + G,P,P, + G出匕则:C/G 卄qG*称为成组进位发生输出,P*称为成组进位传送输出。 成组先行进位部件74182,其典型电路为:例如n4个74181构成16位全先行进位ALU逻辑框图如下:两个16位全先行进位ALU构成32位全先行进位ALU逻辑框图如下:图1:!用两个位全先行进位逻辑级联组成的32位ALL2.5.3 内部总线 总线(BUS)信息传送公共通路。总线的分类:根据位置:分为内部总线和外部总线两类。?内部总线:CPU内各部件的连线;?外部总线:系统总线,即CPU与存储器、I/O系统之间的连线。 本节只讨论内部总线

27、根据逻辑结构:分为单向传送总线和双向传送总线。2.5.4 定点运算器的基本结构 运算器的构成:? ALU?阵列乘除器?寄存器?多路开关?三态缓冲器?数据总线运算器的三种基本结构:1. 单总线结构的运算器,P52图2.5(a)I单总线通用寄存器专用寄存器特点:电路简单但速度较慢2. 双总线结构的运算器,P52图2.5(b)(b)型总线结构的运灯秣总线1特点:?两个操作数同时加到ALU进行运算,只需一次操作控制,而且马 上就可以得到运算结果。?必须在ALU输出端设置缓冲寄存器。3. 三总线结构的运算器,P52图2.5(C)总线1 j总线2Jh1I总线3通用专用ALU(C)-总线结构的运算器特点:?

28、算术逻辑操作就可以在一步的控制之内完成。?设置了一个总线旁路器。如果一个操作数不需要修改可直接从 总线2传送到总线3。2.6浮点运算方法和浮点运算器2.6.1 浮点加法、减法运算设有两个浮点数X和y ,它们分别为x= 2Ex ? M Xy= 2Ey ?My其中Ex和Ey分别为数X和y的阶码,M X和My为数X和y的尾数。 两浮点数进行加法和减法的运算规则是x±y=(M X 2ex-Ey 士M y )2EyEx < = Ey浮点加减运算的操作过程大体分为四步:?0操作数的检查;?比较阶码大小并完成对阶;?尾数进行加或减运算;?结果规格化并进行舍入处理。(1) 0 操作数检查判断两

29、个操作数X或y中是否有一个为 0,以节省运算时间。(2) 比较阶码大小并完成对阶 方法:小阶向大阶看齐(原因:减小误差) 例如: 1.1101*26+1.1010*24方法 1: 1.1101*267111.0100*24 1.0100*24111010077777777 1010000 误差大方法 2: 1.1010*247 0.0110*2611010711000 误差小(3) 尾数求和运算对阶结束后 ,即可进行尾数的求和运算。 不论加法运算还是减法运算 , 都按加法进行操作 ,其方法与定点加减法运算完全一样。(4) 结果规格化? 尾数求和产生溢出时,尾数结果右移,阶码加 1 ,称为向右规

30、格 化。? 尾数求和结果为下列情况时,尾数结果左移,阶码减 1,称为向 左规格化 。IEEE754 形式:不是 1.M 的形式时; 补码形式:符号位与最高数值位相同时; 原码形式:数值部分最高位为 0 时。 思考:补码形式和原码形式表示尾数时,规格化的尾数应是何 种形式。例如:假设尾数和阶码都以补码形式表示,对阶后两数分别如下,求X+Y 浮:X 浮=0010, 0.0010011Y浮=0010, 1.0110010 则尾数求和结果为:0.0010011+ 1.0110010= 1.1000101故需向左规格化,左移 1 位得:X+Y 浮 =0011,1.0001010(5) 舍入处理在对阶或向

31、右规格化时 ,尾数要向右移位 ,这样 ,被右移的尾数的低位 部分会被丢掉 ,从而造成一定误差 ,因此要进行舍入处理。在 IEEE754 标准中 ,舍入处理提供了四种可选方法:? 就近舍入 其实质就是通常所说的 "四舍五入 "。? 朝 0 舍入 即朝数轴原点方向舍入 ,就是简单的截尾。无论尾数是正数还是 负数 ,截尾都使取值的绝对值比原值的绝对值小。这种方法容易 导致误差积累。?朝+ X舍入 对正数来说 ,只要多余位不全为 0 则向最低有效位进 1;对负数来 说则是简单的截尾。?朝X舍入,只要多余位1。处理方法正好与朝+X舍入情况相反。对正数来说 不全为 0 则简单截尾 ;对负数来说 ,向最低有效位进(6) 浮点数的溢出,一般将其认,一般将其认? 阶码上溢超过了阶码可能表示的最大值的正指数值 为是+ 和X。? 阶码下溢超过了阶码可能表示的最小值的

温馨提示

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

评论

0/150

提交评论