1 / 138

《 计算机组成原理 》 研究生入学考试考前辅导 (for 2002)

《 计算机组成原理 》 研究生入学考试考前辅导 (for 2002). 北京邮电大学 计算机科学与技术学院. 复习重点. 基本概念清晰、全面 运算方法及运算器 指令系统 存储系统 中央处理器 总线系统. 复习要领. 复习概念仔细 习题 题型分析 善于总结. 几点建议. 通读教材 题库练习 举一反三. 题型介绍. 填空 选择填空 简答 证明 计算 分析 设计. 主要内容介绍. 第一章:计算机系统概论. 计算机的分类和应用 计算机的分类:电子数字计算机与电子模拟计算机。 数字计算机进一步又可分为专用计算机和通用计算机。

melita
Download Presentation

《 计算机组成原理 》 研究生入学考试考前辅导 (for 2002)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《计算机组成原理》研究生入学考试考前辅导(for 2002) 北京邮电大学 计算机科学与技术学院

  2. 复习重点 • 基本概念清晰、全面 • 运算方法及运算器 • 指令系统 • 存储系统 • 中央处理器 • 总线系统

  3. 复习要领 • 复习概念仔细 • 习题 • 题型分析 • 善于总结

  4. 几点建议 • 通读教材 • 题库练习 • 举一反三

  5. 题型介绍 • 填空 • 选择填空 • 简答 • 证明 • 计算 • 分析 • 设计

  6. 主要内容介绍

  7. 第一章:计算机系统概论 • 计算机的分类和应用 • 计算机的分类:电子数字计算机与电子模拟计算机。 • 数字计算机进一步又可分为专用计算机和通用计算机。 • 专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。 • 通用计算机又可分巨型机、大型机、中型机、小型机、微型机和单片机六类,它们的区别在于体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格, • 计算机的应用:科学计算,自动控制,测量和测试,信息处理,教育和卫生,家用电器,人工智能

  8. 第一章:计算机系统概论 • 计算机的硬件 • 数字计算机的硬件组成:运算器、存储器、控制器、适配器及输入输出设备 • 运算器:完成算术、逻辑运算 • 存储器:存放程序和数据,又分为内存储器、外存储器,KB,MB • 控制器:计算机的指挥中心。控制器的基本任务基本任务,就是按照计算程序所排的指令序列,先从存储器取出一条指令放到控制器中,对该指令的操作码由译码器进行分析判别,然后根据指令性质,执行这条指令,进行相应的操作。接着从存储器取出第二条指令,再执行这第二条指令。依次类推。通常把取指令的一段时间称作取指周期,而把执行指令的一段时间叫做执行周期。因此,控制器反复交替地处在取指周期与执行周期之中。 • 通常把运算器和控制器合在一起称为中央处理器,简称CPU,而将CPU和存储器合在一起称为主机。

  9. 第一章:计算机系统概论 • 指令流和数据流:由于计算机使用的信息既有指令又有数据,所以计算机字既可以代表指令,也可以代表数据。如果某字代表要处理的数据,则称为数据字;如果某字为一条指令,则称为指令字。指令和数据统统放在内存中,从形式上看,它们都是二进制数码,似乎很难分清哪些是指令字,哪些是数据字。然而控制器完全可以区分开哪些是指令字,哪些是数据字。 • 一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器;而在执行器周期中从内存读出的信息流是数据流,它由内存流向运算器。

  10. 第一章:计算机系统概论 • 适配器与输入输出设备:计算机的输入/输出设备通常称为外围设备。这些外围设备有高速的也有低速的,有机电结构的,也有全电子式的。由于种类繁多且速度各异,因而它们不是直接地同高速工作的主机相连接,而是通过适配器部件与主机相联系。适配器的作用相当于一个转换器。它可以保证外围设备用计算机系统特性所要求的形式发送或接收信息。一个典型的计算机系统具有各种类型的外围设备,因而有各种类型的适配器,它使得被连接的外围设备通过系统总线与主机进行联系,以便使主机和外围设备并行协调地工作。 • 除了上述各部件外,计算机系统中还必须有总线。系统总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路。借助系统总线,计算机在各系统部件之间实现传送地址、数据和控制信息的操作。

  11. 第一章:计算机系统概论 • 计算机系统结构的过去和未来 • 世界上第一台电子数字计算机是1946年在美国宾夕法尼亚大学制成的。这台机器用了18000多个电子管,占用长度超过30米的房间,重量达30吨,而运算速度只有5000次/秒。 • 自从这台计算机问世以来,从使用的器件角度来说,计算机的发展大致经历了五代的变化: • 第一代为1946年开始的电子管计算机。计算机运算速度一般为每秒几千次至几万次,体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,“数据处理机”开始得到应用。 • 第二代为1958年开始的晶体管计算机。运算速度提高到几万次至几十万次,可靠性提高,体积缩小,成本降低。在此期间,“工业控制机”开始得到应用。

  12. 第一章:计算机系统概论 • 第三代为1965年开始的中小规模集成电路计算机。可靠性进一步提高,体积进一步缩小,成本进一步下降,运算速度提高到几十万次至几百万次。在此期间形成机种多样化,生产系列化,使用系统化,“小型计算机”开始出现。 • 第四代为1971年开始的大规模和超大规模集成电路计算机,可靠性更进一步提高,体积更进一步缩小,成本更进一步降低,速度提高到每秒几百万次至几千万次。由几片大规模集成电路组成的“微型计算机”开始出现。 • 第五代为1986年开始的巨大规模集成电路计算机,运算速度提高到每秒几亿次至上百亿次。由一片巨大规模集成电路实现的“单片计算机”开始出现。 • 从1946年计算机诞生以来,大约每隔五年运算速度提高10倍,可靠性提高10倍,成本降低10倍,体积缩小10倍。而70年代以来,计算机的生产数量每年以25%的速度递增。

  13. 第一章:计算机系统概论 • 计算机的软件 • 软件的组成与分类:凡是用于一台计算机的各种程序,统称为这台计算机的程序或软件系统。 • 计算机软件一般分为两大类:一类叫系统程序,一类叫应用程序。 • 系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能及用途。它包括以下四类:(1)各种服务性程序,如诊断程序、排错程序、练习程序等;(2)语言程序,如汇编程序、编译程序、解释程序等;(3)操作系统;(4)数据库管理系统。 • 应用程序是用户利用计算机来解决某些问题 而编制的程 序,如工程设计程序、数据处理程序、自动控制程序、企业管理程序、情报检索程序、科学计算程序等等。

  14. 第一章:计算机系统概论 • 软件的发展演变 • 机器语言 • 汇编语言 • 算法语言 • 操作系统 • 数据库管理系统

  15. 第一章:计算机系统概论 • 计算机系统的层次结构 • 多级组成的计算机系统:计算机不能简单地认为是一种电子设备,而是一个十分复杂的硬、软件结合而成的整体。它通常由五个以上不同的级组成。 • 第一级是微程序设计级。这是一个实在的硬件级,它由机器硬件直接执行微指令。 • 第二级是一般机器级,也称为机器语言级,它由微程序解释机器指令系统。这一级也是硬件级。 • 第三级是操作系统级,它由操作系统程序实现。这些操作系统由机器指令和广义指令组成,广义指令是操作系统定义和解释的软件指令,所以这一级也称为混合级。 • 第四级是汇编语言级,它给程序人员提供一种符号形式语言,以减少程序编写的复杂性。 • 第五级是高级语言级,它是面向用户的,为方便用户编写应用程序而设置的。这一级由各种高级语言编译程序支持和执行。

  16. 第一章:计算机系统概论 • 总结 • 习惯上所称的“电子计算机”是指现在广泛应用的电子数字计算机,它分为专用计算机和通用计算机两大类。专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。通用计算机又分为巨型机、大型机、中型机、小型机、微型机、单片机六类,其结构复杂性、性能、价格依次递减. • 计算机的生命力在于它的广泛应用,应用的范围几乎涉及人类社会的所有领域。归纳起来,在科学计算、自动控制、测量与测试、信息处理、教育卫生、家用电器、人工智能等领域中的应用成就最为突出。 • 计算机的硬件是由有形的电子器件等构成的,它包括运算器、存储器、控制器、适配器、输入输出设备。传统上将运算器和控制器称为CPU,而将CPU和存储器称为主机。存储程序按地址顺序执行,这是冯·诺依曼型计算机的工作原理,也是计算机自动化工作的关键。

  17. 第一章:计算机系统概论 • 总结 • 计算机的软件是计算机系统结构的重要组成部分,也是计算机不同于一般电子设备的本质所在。计算机软件一般分为系统程序和应用程序两大类。系统程序用来简化程序设计,简化使用方法,提高计算机的使用效率,发挥和扩大计算机的功能和用途,它包括:(1)各种服务性程序,(2)语言类程序,(3)操作系统,(4)数据库管理系统。应用程序是针对某一应用课题领域开发的软件。 • 计算机系统是一个由硬件、软件组成的多级层次结构,它通常由微程序级、一般机器级、操作系统级、汇编语言级、高级语言级组成,每一级上都能进行程序设计,且得到下面各级的支持。

  18. 第二章:运算方法和运算器 • 数据与文字的表示方法 • 数据格式: • 定点数的表示方法 • 浮点数的表示方法 • IEEE754格式 • 32位(1,8,23),x=(-1)S×(1.M) ×2E-127 • 64位(1,11,52),x=(-1)S×(1.M) ×2E-1023

  19. 第二章:运算方法和运算器 • 例题1:若浮点数x的二进制存储格式为(41360000)16,求此IEEE754格式32位浮点数的十进制值。 解:将16进制数展开后,可得二制数格式为 0 100 0001 0011 0110 0000 0000 0000 0000 e=阶码-127=10000010-01111111=00000011=(3)10 包括隐藏位1的尾数1.M=1.011 0110 0000 0000 0000 0000=1.011011 于是有 x=(-1)S×1.M×2e=+(1.011011)×23 =+1011.011=(11.375)10

  20. 第二章:运算方法和运算器 • 例题2:将十进制数20.59375转换成32位IEEE754格式浮点数的二进制格式来存储。 解:首先分别将整数和分数部分转换成二进制数: 20.59375=10100.10011 然后移动小数点,使其在第1,2位之间 10100.10011=1.010010011×24 e=4 于是得到: S=0, E=4+127=131, M=010010011 最后得到32位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000 =(41A4C000)16

  21. 第二章:运算方法和运算器 • 十进制数串的表示方法 • 大多数通用性较强的计算机都能直接处理十进制形式表示的数据。十进制数串在计算机内主要有2种表示形式: • 字符串形式:一个字节表示一个十进制的数位或符号,用于非数值计算的场合。 • 压缩的十进制数串形式:一个字节存放2个十进制的数位,用于数值运算。(BCD码和数字符的ASCII码的低4位)

  22. 第二章:运算方法和运算器 • 数的机器码表示 • 原码表示法 • 数学定义 对于定点小数X=X0.X1X2….Xn,其原码的数学定义为 [X]原= X 当 0≤ X<1 [X]原= 1- X=1+|X| 当-1< X≤0 对于定点整数X=X0X1X2….Xn,其原码的数学定义为 [X]原= X 当 0≤ X<2n [X]原= 2n - X= 2n +|X| 当-2n< X≤0 • 原码机器中有+0,-0之分

  23. 第二章:运算方法和运算器 • 补码表示法 • 数学定义 对于定点小数X=X0.X1X2….Xn,其补码的数学定义为 [X]补= X 当 0≤ X<1 [X]补= 2+ X=2-|X| 当-1≤ X≤0 对于定点整数X=X0X1X2….Xn,其补码的数学定义为 [X]补= X 当 0≤ X<2n [X]补= 2n+1+X= 2n+1-|X| 当-2n ≤X≤0 • 补码情况下,无+0,-0之分 • [+0]补=0.00….0 • [-0]补=1.11….1+0.00…01=0.00….0 • 1.00….0是补码表示中的最小负数,比1.11….1更小。

  24. 第二章:运算方法和运算器 • 已知 [X]补,求[X]原方法 对于正数:[X]原=[X] 补 对于负数:[X]原=[[X]补]补 • 已知 [X]补,求[-X]补的方法 将[X] 补连同符号位一起,各位变反,末位加1; • 已知 [X]补,求[X/2]补、[X/4]补的方法 将[X] 补连同符号位一起右移1位,左边补1位与符号位相同的数码,则得到[X/2]补;同理,若右移2位,则得到[X/4]补; • 已知 [X]补,求[2X]补、[4X]补的方法 将[X]补左移1位,得到[2X]补,右边补“0”; 若左移2位,则得到[4X]补。 例:若 [X]补= 0.00101101 [2X]补=0.01011010 [4X]补=0.10110100

  25. 第二章:运算方法和运算器 • 反码表示法 • 数学定义 对于定点小数X=X0.X1X2….Xn,其反码的数学定义为 [X]反= X 当 0≤ X<1 [X]反= (2-2-n)+ X= (2-2-n)-|X| 当-1< X≤0 对于定点整数X=X0X1X2….Xn,其反码的数学定义为 [X]反= X 当 0≤ X<2n [X]反= (2n+1-1)+X= (2n+1-1)-|X| 当-2n <X≤0 • 反码情况下,有+0,-0之分

  26. 第二章:运算方法和运算器 • 移码表示法 • 用于表示浮点数的阶码 • 数学定义 对于定点整数X=X0X1X2….Xn,其移码的数学定义为 [X]移= 2n+X -2n≤ X<2n • 目前机器中,广泛采用补码表示法 • 字符与字符串的表示方法 • ASCII码 • 128个编码,95个可显示打印编码

  27. 第二章:运算方法和运算器 • 某计算机字长32位,符号位占一位,数值位31位,问: (1)定点补码整数表示时,最大正数是多少,最小负数是多少? (2)定点补码小数表示时,最大正数是多少,最小负数是多少? 解: (1)定点补码整数表示时,最大正数=(231-1)10 最小负数=-(231)10 (2)定点补码小数表示时,最大正数=(1-2-31)10 最小负数=-1。

  28. 第二章:运算方法和运算器 • 汉字的表示方法 • 汉字的输入编码 • 数字编码:区位码 • 拼音码 • 字形编码:五笔字型 • 汉字内码:存储、交换、检索等操作的机内代码 • 汉字字模码:用点阵表示汉字字形代码,是汉字的输出形式 • 校验码 • 计算机对数据进行传送、存储和操作过程中,都可能由于硬件故障、软件错误和信息干扰等原因导致数据出错。为了有效防止、减少或避免错码现象,可采用编码方式,使之能发现错误,进而将错误定位便可纠正错误,这就是错误检测码的功能。 • 常用的错误检测码有两类:检错码和纠错码。 • 奇偶校验码-常用的检错码 • 海明码-常用的纠错码

  29. 第二章:运算方法和运算器 • 定点加减法运算 • 补码加法 [X+Y]补=[X]补+[Y]补 • 补码减法 [X-Y]补=[X]补+[-Y]补 • 溢出概念及检测方法 • “运算溢出”是指运算结果大于机器所能表示的最大正数或小于所能表示的最小负数。“运算溢出”只对带符号数的运算有效。 • 判溢出方法:(1)采用双符号位法,称为“变形补码”或“模4补码”;(2)单符号位法,即根据进位信号判溢出

  30. 第二章:运算方法和运算器 • 已知X=-0.01111,Y=+0.11001,求[X]补,[-X]补,[Y]补,[-Y]补,并用变形补码(即两个符号位的补码)运算求X+Y=?X-Y=?并判断是否溢出。 解: [X]原=1.01111,[X]补=1.10001,[-X]补=0.01111 [Y]原=0.11001,[Y]补=0.11001,[-Y]补=1.00111 [X]补11.10001 + [Y]补00.11001 [X+Y]补00.01010 [X]补11.10001 + [-Y]补11.00111 [X-Y]补10.11000 所以X+Y=+0.01010, 无溢出,X-Y运算结果溢出。

  31. 溢出 Sn-1 Sn-2 S1 S0 C-1 FA FA FA FA Cn-1 Cn-2 C1 C0 Bn-1 Bn-2 B1 B0 M=0加 M=1减 方式控制M Bn-1 An-1 Bn-2 An-2 B1 A1 B0 A0 第二章:运算方法和运算器 • 基本的二进制加法/减法器

  32. 第二章:运算方法和运算器 • 十进制加法器 十进制加法器可由BCD码(二-十进制码)来设计,它可以在二进制加法器的基础上加上适当的“校正”逻辑来实现,该校正逻辑可将二进制的“和”改变成所要求的十进制格式。 • 定点乘法运算 • 原码并行乘法 • 在定点计算机中,两个原码表示的数相乘的运算规则是:乘积的符号位由两数的符号位按异或运算得到,而乘积的数值部分则是两个正数相乘之积。 设n位被乘数和乘数用定点小数表示(定点整数也同样适用)  被乘数[X]原=Xf·Xn-1…X1X0 乘数[Y]原=Yf·Yn-1…Y1Y0 乘积[Z]原=(Xf⊕Yf)·(0.Xn-1…X1X0)(0. Yn-1…Y1Y0) • 不带符号的阵列乘法器

  33. 第二章:运算方法和运算器 • 带符号的阵列乘法器 • 符号求补的阵列乘法器,两个算前求补器,一个算后求补器 • 算前求补器的作用:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。 • 算后求补器的作用则是:当两个输入操作数的符号不一致时,把运算结果变换成带符号的数。 • 带求补级的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。不过在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。而间接的补码阵列乘法所需要增加的硬件较多。为了完成所必需的求补与乘法操作,时间大约比原码阵列乘法增加1倍。

  34. 第二章:运算方法和运算器 • 设x= +15, y= -13,用带求补器的原码阵列乘法器求乘积x×y = ? 并用十进制数乘法进行验证。 解:设最高位为符号位,输入数据为[x]原= 01111 [y]原= 11101 因符号位单独考虑,尾数算前求补器输出值为:|x| = 1111, |y| = 1101 乘积符号位运算: x0 ⊕y0 = 0⊕1 =1 尾数部分运算: 1 1 1 1 × 1 1 0 1 ------------------ 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 ------------------ 1 1 0 0 0 0 1 1 经算后求补器输出,加上乘积符号位,得原码乘积值[x×y] 原= 111000011 换算成二进制真值 x×y = (-11000011)2 = (-195)10 十进制数乘法验证:x×y = 15×(-13) = -195

  35. 第二章:运算方法和运算器 • 设 x = +15,y = -13,用带求补器的补码阵列乘法器求乘积x × y = ?,并用十进制乘法进行验算。 解:设最高位为符号位,输入数据为 [x]补=01111,[y]原=11101,[y]补=10011 乘积符号位运算:x0Åy0=0Å1=1 算前求补器输出 |x|=1111,|y|=1101 1111 × 1101 1111 0000 1111 + 1111 11000011 算后求补器输出为00111101,加上乘积符号位1,最后得补码乘积值为100111101 利用补码与其值的换算公式,补码二进制数的真值是 x×y = -1×28+1×25+1×24+1×23+1×22+1×20=-195 十进制数乘法验证:x×y=15+(-13)=-195

  36. 第二章:运算方法和运算器 • 补码并行乘法 • 定点除法运算 • 原码除法原理 • 两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。 设有n位定点小数(定点整数也同样适用): 被乘数x,其原码为[x]原=xf·xn-1…x1x0 除数y,其原码为[y]原=yf·yn-1…y1y0 则有商q=x/y,其原码为: [q]原=(xf⊕yf)·(xn-1…x1x0/yf·yn-1…y1y0)

  37. 第二章:运算方法和运算器 • 不恢复余数的阵列除法器 被除数 x=0.x1x2x3x4x5x6(双倍长) 除数 y=0.y1y2y3 商数 q=0.q1q2q3 余数 r=0.00r3r4r5r6

  38. 第二章:运算方法和运算器 • 【例】x=0.101001,y=0.111,求x÷y。 解:[-y]补=1.001 被除数x 0 . 1 0 1 0 0 1 减y 1 . 0 0 1 ----------------------------- 余数为负 1 . 1 1 0 0 0 1 <0 q0=0 移位 1 . 1 0 0 0 1 加y 0 . 1 1 1 ------------------------------ 余数为正 0 . 0 1 1 0 1 >0 q1=1 移位 0 . 1 1 0 1 减y 1 . 0 0 1 ------------------------------ 余数为负 1 . 1 1 1 1 <0 q2=0 移位 1 . 1 1 1 加y 0 . 1 1 1 ------------------------------ 余数为正 0 . 1 1 0 >0 q3=1 故得 商q=q0.q1q2q3=0.101 余数r=(0.00r3r4r5r6)=0.000110

  39. 第二章:运算方法和运算器 • 定点运算器的构成 • 运算器是数据的加工处理部件,是CPU的主要组成部分 • 基本构成:算术逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器和数据总线等逻辑构件 • 逻辑运算:逻辑非、逻辑加、逻辑乘、逻辑异 • 多功能算术/逻辑运算单元 • 74181ALU(4位ALU),74182CLA(4位先行进位部件) • 定点运算器的基本结构 • 单总线结构的运算器 • 双总线结构的运算器 • 三总线结构的运算器

  40. 第二章:运算方法和运算器 • 浮点运算器的构成 • 浮点加减法运算 设有两个浮点数x和y,它们分别为 x=2Ex·Mx y=2Ey·My 其中Ex和Ey分别为数x和y的阶码,Mx和My为数x和y的尾数。 两浮点数进行加法和减法的运算规则是 x±y=(Mx2Ex-Ey±My)2EyEx≤Ey 完成浮点加减运算的操作过程大体分为四步: 第一步,0操作数检查; 第二步,比较阶码大小并完成对阶; 第三步,尾数进行加或减运算; 第四步,结果规格化并进行舍入处理。

  41. 第二章:运算方法和运算器 • 规格化数尾数的形式 [z]补=0.1XX...X [z]补=1.0XX...X [z]补=1.100...0 以下形式需向右规格化,即尾数右移,阶码增加 [z]补=01.XXX..X [z]补=10.XX...X 以下形式需向左规格化,即尾数左移,阶码减小 对于正数,小数点后有前导0 对于负数(补码),小数点后有前导1,但1.100..0除外

  42. 第二章:运算方法和运算器 • 舍入处理方法 在IEEE754标准中,舍入处理提供了四种可选办法: 就近舍入:实质就是通常所说的“四舍五入”。例如,尾数超出规定的23位的多余位数字是10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增1。若多余的5位是01111,则简单的截尾即可。对多余的5位10000这种特殊情况:若最低有效位现为0,则截尾;若最低有效位现为1,则向上进1位使其变为0。 朝0舍入:即朝数轴原点方向舍入,就是简单的截尾。无论尾数是正数还是负数,截尾都使取值的绝对值比原值的绝对值小。这种方法容易导致误差累积。 朝+∞舍入:对正数来说,只要多余位不全为0则向最低有效位进1;对负数来说,则是简单的截尾。 朝-∞舍入:处理方法正好与朝+∞舍入情况相反。对正数来说,只要多余位不全为0则简单截尾;对负数来说,向最低有效位进1。

  43. 第二章:运算方法和运算器 • 溢出处理 浮点数的溢出是以其阶码溢出表现出来的。在加、减运算过程中要检查是否产生了溢出:若阶码正常,加(减)运算正常结束;若阶码溢出,则要进行相应的处理。另外对尾数的溢出也需要处理。 阶码上溢:超过了阶码可能表示的最大值的正指数值,一般将其认为是+∞和-∞。 阶码下溢:超过了阶码可能表示的最小值的负指数值,一般将其认为是0。 尾数上溢:两个同符号尾数相加产生了最高位向上的进位,要将尾数右移,阶码增1来重新对齐。 尾数下溢:将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理。

  44. 第二章:运算方法和运算器 • 【例】设x=2010×0.11011011,y=2100×(-0.10101100),求x+y。 解:为便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则它们的浮点表示分别为 [x]浮=00 010, 0.11011011 [y]浮=00 100,1.01010000 (1)求阶差并对阶  ΔE=Ex-Ey=[Ex]补+[-Ey]补=00 010+11 100=11 110 即ΔE为-2,x的阶码小,应使Mx右移2位,Ex加2, [x]浮=00 100, 0.00110110(11) 其中(11)表示Mx右移2位后移出的最低两位数。 (2)尾数求和 0. 0 0 1 1 0 1 1 0 (11) + 1. 0 1 0 1 0 1 0 0 -------------- 1. 1 0 0 0 1 0 1 0 (11)

  45. 第二章:运算方法和运算器 (3)规格化处理 尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为1.00010101(10),阶码为00 011。 (4) 舍入处理 采用0舍1入法处理,则有 1. 0 0 0 1 0 1 0 1 + 1 ----------------------- 1. 0 0 0 1 0 1 1 0 (5) 判溢出 阶码符号位为00,不溢出,故得最终结果为 x+y=2011×(-0.11101010)

  46. 第二章:运算方法和运算器 • 浮点乘除法运算 • 浮点乘法、除法运算规则 设有两个浮点数x和y: x=2Ex·Mx y=2Ey·My 则浮点乘法运算的规则是  x×y=2(Ex+Ey)·(Mx·My) 可见,乘积的尾数是相乘两数的尾数之积,乘积的阶码是相乘两数的阶码之和。当然,这里也有规格化与舍入等步骤。 设有两个浮点数x和y: x=2Ex·Mx y=2Ey·My 则浮点除法的运算规则是  x÷y=2(Ex-Ey)·(Mx÷My) 可见,商的尾数是相除两数的尾数之商,商的阶码是相除两数的阶码之差。当然也有规格化和舍入等步骤。

  47. 第二章:运算方法和运算器 • 浮点乘、除法运算步骤 浮点数的乘除运算大体为分为四步: 第一步,0操作数检查 ; 第二步,阶码加/减操作; 第三步,尾数乘/除操作; 第四步,结果规格化及舍入处理。 • 浮点数的阶码运算 对阶码的运算有+1、-1、两阶码求和、两阶码求差四种,运算时还必须检查结果是否溢出。 在计算机中,阶码通常用补码或移码形式表示。

  48. 第二章:运算方法和运算器 • 移码的运算规则和判定溢出方法 移码的定义为[x]移=2n+x 2n>x≥-2n [x+y]移=[x]移+[y]补 (mod 2n+1) [x-y]移=[x]移+[-y]补 上两式表明执行阶码加减时,对加数或减数y来说应送移码符号位正常值的反码。 如果阶码运算的结果溢出,上述条件则不成立。此时,使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用0参加加减运算,则溢出条件是结果的最高符号位为1。此时,当低位符号位为0时,表明结果上溢;为1时,表明结果下溢。当最高符号位为0时,表明没有溢出;低位符号位为1,表明结果为正;为0时,表明结果为负。

  49. 第二章:运算方法和运算器 【例】x=+011,y=+110,求[x+y]移和[x-y]移,并判断是否溢出。 解: [x]移=01 011, [y]补=00 110, [-y]补=11 010 [x+y]移=[x]移+[y]补=10 001,结果上溢。 [x-y]移=[x]移+[-y]补=00 101,结果正确,为-3。 • 尾数处理 浮点加减法对结果的规格化及舍入处理也适用于浮点乘除法。  第一种简单办法是,无条件地丢掉正常尾数最低位之后的全部数值。这种办法被称为截断处理,其好处是处理简单,缺点是影响结果的精度。 第二种简单办法是,运算过程中保留右移中移出的若干高位的值,最后再按某种规则用这些位上的值修正尾数。

  50. 第二章:运算方法和运算器 当尾数用原码表示时,舍入规则比较简单。最简便的方法,是只要尾数最低位为1,或移出的几位中有为1的数值位,就使最低位的值为1。另一种是0舍1入法,即当丢失的最高位的值为1时,把这个1加到最低数值位上进行修正,否则舍去丢失的各位的值。这样处理时,舍入效果对正数负数是相同的,入将使数的绝对值变大,舍则使数的绝对值变小。 当尾数是用补码表示时,所用的舍入规则,应该与用原码表示时产生相同的处理效果。具体规则是:①当丢失的各位均为0时,不必舍入;②当丢失的最高位为0,以下各位不全为0时,或者丢失的最高位为1,以下各位均为0时,则舍去丢失位上的值;③当丢失的最高位为1,以下各位不全为0时,则执行在尾数最低位入1的修正操作。

More Related