计算机组成原理讲义教材.pdf

上传人:tbuqq 文档编号:4966404 上传时间:2020-01-21 格式:PDF 页数:95 大小:4.53MB
返回 下载 相关 举报
计算机组成原理讲义教材.pdf_第1页
第1页 / 共95页
计算机组成原理讲义教材.pdf_第2页
第2页 / 共95页
计算机组成原理讲义教材.pdf_第3页
第3页 / 共95页
计算机组成原理讲义教材.pdf_第4页
第4页 / 共95页
计算机组成原理讲义教材.pdf_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《计算机组成原理讲义教材.pdf》由会员分享,可在线阅读,更多相关《计算机组成原理讲义教材.pdf(95页珍藏版)》请在三一文库上搜索。

1、计算机组成原理 课程简介 计算机组成原理是讲述计算机的一般结构、组成、原理的课程,本课程的基础课是数字电路、离散 数学等,后继课程有计算机系统结构、微机原理等。 选用教材: 白中英主编,计算机组成原理(第三版),科学出版社 第一章 计算机系统概论 学习目标 计算机硬件、软件的基本概念 计算机系统的基本组成; 计算机的工作过程; 计算机系统的层次结构。 本章需掌握的主要内容: 1. 计算机的发展、分类、特点与应用; 2. 计算机硬件和软件的基本概念; 3. 计算机硬件系统的组织,各部分的功能及其组成框图; 4. 计算机的工作过程,即执行指令的过程; 5. 冯. 诺依曼型计算机的设计思想; 6.

2、计算机系统的层次结构。 对计算机有一个总体的概念,以便展开后续各章内容。 11 计算机的分类和应用 111 计算机的分类 计算机分类: 数字计算机分类: DSP 、 IOP 等 GPP 通用机分类: 巨型机( Super-Computer )、大型机( Mainframe )、中型机( Medium-size Computer)、小型机 (minicomputer )、微型机(microcomputer )、单片机( Single-Chip Computer) 112 计算机的应用 科学计算:传统方式:工作量大、人工处理慢 自动控制:数控机床、流水线控制 测量和测试:提高精度、在恶劣条件下的测

3、量 信息处理: 教育和卫生:计算机辅助教学(CAI)、多媒体教室、CT( Computerized tomography) 家用电器: 人工智能 12 计算机的硬件 121 数字计算机的硬件组成 概念 :存储单元、地址、存储容量、外存储器、内存储器、指令、程序、指令的组成、存储程序、程序控 制、指令系统、指令周期、执行周期、CPU 、主机、数据字、指令字、数据流、指令流、适配器。 冯诺依曼体系结构: (1) 采用二进制形式表示数据和指令 数据和指令在代码的外形上并无区别都是由0和 1 组成的代码序列,只是各自约定的含义不 同而已。采用二进制、使信息数字化容易实现,可以用二值逻辑工具进行处理。程

4、序信息本身也可 以作为被处理的对象,进行加工处理,例如对照程序进行编译,就是将源程序当作被加工处理的对 象。 (2) 采用存储程序方式 这是诺依曼思想的核心内容。如前所述,它意味着事先编制程序,事先将程序( 包含指令和数 据) 存入主存储器中,计算机在运行程序时就能自动地、连续地从存储器中依次取出指令且执行。 这是计算机能高速自动运行的基础。计算机的工作体现为执行程序,计算机功能的扩展在很大程度 上体现为所存储程序的扩展。计算机的许多具体工作方式也是由此派生的。 (3) 由运算器、存储器、控制器、输入装置和输出装置等五大部件组成计算机系统,并规定了这五部分 的基本功能。 上述这些概念奠定了现代

5、计算机的基本结构思想,并开创了程序设计的新时代。到目前 为止,绝大多数计算机仍沿用这一体制,称为冯诺依曼机体制。学习计算机工作原理也就 从冯诺依曼概念入门。 ?一般的计算机结构框图(存储器为中心) 五大组成部分:运算器、控制器、存储器、输入输出设备。 1. 运算器 ?算术运算和逻辑运算 ?在计算机中参与运算的数是二进制的 ?运算器的长度一般是8、16、32 或 64 位 2. 存储器 ?存储器 存储数据和程序 容量(存储单元、存储单元地址、容量单位) 分类内存( ROM 、RAM )、外存 存储器单位: ?2 10 byte 1K ?2 10 K1M ?2 10 M1G ?2 10 G1T 存

6、储单元 : 在存储器中保存一个数的16 个触发器 , 称为一个存储单元。 地址 : 存储器是由许多存储单元组成,每个存储单元的编号, 称为地址。 存储容量 :存储器所有存储单元的总数。通常用单位“KB 、MB ”表示, 如 64KB,128MB 。存储容量越大, 表示计算机记忆储存的信息就越多。 运算电路单元 寄存器B累加器A 存储器输入设备输出设备 控 制 器 运 算 器 地址线 控制线 数据线 外存储器 :计算机中又配备的存储容量更大的磁盘存储器、光盘存储器等。相对而言, 半导体存储器称 为内存储器 , 简称内存。 3、控制器 ?控制器 指令和程序(计算机工作原理) 指令的形式(操作和地址

7、码、存储程序的概念、指令中程序和数据的存放、指令系统) 控制器的基本任务:按照一定的顺序一条接着一条取指令、指令译码、执行指令。取指周 期和执行周期 指令流和数据流 指令: 每一个基本操作就叫做一条指令, 程序 :而解算某一问题的一串指令序列,叫做该问题的计算程序,简称为程序。 指令形式 :的内容由两部分组成,即操作的性质和操作的地址。前者称为操作码,后者称为地址码。 操作码地址码 操作码: 指出指令所进行的操作,如加、减、乘、除、取数、存数等等; 地址码: 表示参加运算的数据应从存储器的哪个单元取,运算的结果应存到哪个单元。 取指周期: 通常把取指令的一段时间叫做取指周期, 执行周期: 而把

8、执行指令的一段时间叫做执行周期。 主机: CPU 和存储器的合称 4、适配器与I/O 设备 ?计算机的发展(系统结构1.2doc) 手工模仿计算机工作(1) 手工模仿计算机工作(2) ?加法 001 ?减法 010 ?乘法 011 ?除法 100 ?取数 101 ?存数 110 ?打印 111 ?停机 000 122 计算机系统结构的过去和未来 发展:电子管晶体管集成电路大规模、超大规模集成电路 趋势: 由于计算机网络和分布式计算机系统能为信息处理提供廉价的服务,因此计算机系统的进一步发 展,“三网合一”,将进入以通信为中心的体系结构。 计算机智能化将进一步发展,各种知识库及人工智能技术将进一

9、步普及,人们将用自然语言和机 器对话。计算机从数值计算为主过渡到知识推理为主,从而使计算机进入知识处理阶段。 随着大规模集成电路的发展,不仅用多处理机技术来实现大型机系统功能,而且会出现计算机的 动态结构,即所谓模块化计算机系统结构。 多媒体技术将有重大突破和发展,并在微处理机、计算机网络与通信等方面引起一次巨大变革。 13 计算机的软件 计算机硬件是载体,软件是灵魂。 131 软件的组成与分类 分类:系统程序、应用程序 132 软件的发展演变 手编程序(目的程序)汇编程序算法语言(高级语言) 高级语言与机器语言的转换:编译系统、解释系统 操作系统、数据库 14 计算机系统的层次结构 141

10、多级组成的计算机系统 P16 图 1.6 五个级别:第一级微程序设计级、第二级是一般机器级、第三级是操作系统级、第四级是 汇编语言级、第五级是高级语言级。 操作码操作数 142 软件与硬件的逻辑等价性 补充:计算机的性能指标 ?基本字长 基本字长是指参与运算的数的基本位数,它标志着计算精度。位数越多,精度越高,但硬件成本 也越高,因为它决定着寄存器、运算部件、数据总线等的位数。 ?主存容量 主存储器是CPU可以直接访问的存储器,需要执行的程序与需要处理的数据就放在主存之中。主 存容量大则可以运行比较复杂的程序,并可存入大量信息,可利用更完善的软件支撑环境。所以, 计算机处理能力的大小在很大程度

11、上取决于主存容量的大小。 ?外存容量 外存容量一般是指计算机系统中联机运行的外存储器容量。由于操作系统、 编译程序及众多的软 件资源往往存放在外存之中,需用时再调入主存运行。在批处理、多道程序方式中,也常将各用 户待执行的程序、数据以作业形式先放在外存中,再陆续调入主存运行。所以,联机外存容量也 是一项重要指标,一般以字节数表示。 ?运算速度 同一台计算机, 执行不同的运算所需时间可能不同,因而对运算速度的描述常采用不同方法。常 用的有 CPU时钟频率、每秒平均执行指令数(ips)、单独注明时间等。 ?所配置的外围设备及其性能指标 外围设备配置也是影响整个系统性能的重要因素,所以在系统技术说明

12、中常给出允许配置情况与 实际配置情况。 ?系统软件配置情况 作为一种硬件系统,允许配置的系统软件原则上是可以不断扩充的,但实际购买的某个系统究竟 已配置哪些软件,则表明它的当前功能。 第二章 运算方法和运算器 本章摘要 数值数据和非数值数据在计算机中的表示方法; 定点数加、减、乘、除运算方法; 浮点数加、减、乘、除运算方法; 定点、浮点运算器的组成及工作原理。 本章需掌握的主要内容: 1 掌握定点数和浮点数以及原码、反码、补码的表示方法; 2 掌握补码加减运算的方法,溢出的概念与检测方法,基本的二进制加法。 3 理解定点乘法运算和除法运算的工作原理; 4 理解 ALU的功能、设计方法和工作原理

13、; 5 掌握基本的浮点运算方法,了解浮点运算器的组成和原理; 6 理解内部总线的概念、分类及特点; 21 数据与文字的表示方法 211 数据格式 在选择计算机的数的表示方式时,应当全面考虑以下几个因素: ?要表示的数的类型( 小数、整数、实数和复数) :决定表示方式 ?可能遇到的数值范围:确定存储、处理能力 ?数值精确度:处理能力相关 ?数据存储和处理所需要的硬件代价:造价高低 两种常用格式: ?定点格式:定点格式容许的数值范围有限,但要求的处理硬件比较简单; (1)定点纯小数 x0 x1 x2 x3 xn-1 xn 表示数的范围是 0|12 n ( 最小数、最大数、最接近0 的正数、最接近0

14、 的负数) 符号 量值 小数点固定于符号位之后, 不需专门存放位置 x=0.00.0 x=1.00.0 x=0正 0和负 0 都是 0 X=0.11.1x=12 n 最大 X=0.00.01x=2 n 最接近 0 的正数 X=1.00.01x=2 n 最接近 0 的负数 X=1.11.1x=( 12 n )最小 ( 2)定点纯整数 x0 x1 x2 x3 xn-1 xn 表示数的范围是 0|2 n1 ?最小数、最大数、最接近0 的正数、最接近0 的负数呢 ?浮点格式:容许的数值范围很大,但要求的处理硬件比较复杂。 (1)定点数表示法 定点指小数点的位置固定,为了处理方便,一般分为定点纯整数和纯

15、小数。 (2)浮点数表示法( 小数点位置随阶码不同而浮动) 格式 N=R e.m 浮点表示法,即小数点的位置是浮动的。其思想来源于科学计数法。 :尾数 ,是一个纯小数。 e:比例因子的指数,称为浮点数的指数 ,是一个整数。 R:比例因子的基数 ,对于二进制数值的机器是一个常数,一般规定为 2,8 或 16。 一个机器浮点数由阶码和尾数及其符号位组成(尾数 :用定点小数表示,给出有效数字的位数决定了 浮点数的表示精度;阶码 :用整数形式表示,指明小数点在数据中的位置,决定了浮点数的表示范围。): 小数点固定于最后一位 之后, 不需专门存放位置 量值 符号 基数 ,取固定的值 , 比如 10,2等

16、 尾数 指数 为便于软件移植,按照 IEEE754 标准, 32 位浮点数和 64位浮点数的标准格式为 32 位的浮点数中,:浮点数的符号位,1 位, 0 表示正数, 1 表示负数。:尾数,23 位,用小数 表示,小数点放在尾数域的最前面。:阶码(8 位), 阶符采用隐含方式,即采用移码方式来表示正负指 数。移码方法对两个指数大小的比较和对阶操作都比较方便,因为阶码域值大者其指数值也大。采用这种 方式时,将浮点数的指数真值e 变成阶码时,应将指数 e 加上一个固定的偏移值127(01111111) ,即 e127. 例 1:若浮点数的 754 标准存储格式为(41360000)16,求其浮点数

17、的十进制数值。 解: 将十六进制数展开后,可得二进制数格式为 指数 e阶码 127 100000100111111100000011=(3) 10 包括隐藏位1 的尾数 1.M1.011 0110 0000 0000 0000 00001.011011 于是有 ( 1) s1. M2 e (1.011011) 2 3 1011.011 (11.375) 10 例 2:将(20.59375) 10转换成 754标准的 32位浮点数的二进制存储格式。 解: 首先分别将整数和分数部分转换成二进制数: 20.59375 10100.10011 然后移动小数点,使其在第1,2 位之间 10100.100

18、11 1.0100100112 4 e4 于是得到: S0,E4 127131,M 010010011 最后得到32 位浮点数的二进制存储格式为: 0100 0001 1010 0100 1100 0000 0000 0000 (41A4C000)16 浮点数的规格化: 主要解决同一浮点数表示形式的不唯一性问题。规定 ,否则尾数要进行左移或右移。 机器零的概念:当一个浮点数的尾数为0,不论其阶码为何数,或当阶码值遇到比它能表示的最小值 还小时,不论其尾数为何值,计算机把该浮点数看成零值,称为机器零。 3)十进制数串的表示方法 ?字符串形式:一个字节存放一个十进制的数位或符号位 ?BCD(压缩

19、) :一个字节存放两个十进制的数位 ?编码方式 有权码:(8421 码、 2421 码、 5211 码) 无权码:(余三码、格雷码) ?自定义数据表示 4)自定义数据表示 标志符数据表示、描述符数据表示 区别: 标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放; 描述符表示中,先访问描述符,后访问数据,至少增加一次访存; 描述符是程序的一部分,而不是数据的一部分。 212 数的机器码表示 ?数的机器码表示 真值和机器码:真值(书写用)、机器码(机器内部使用)的概念 原码:优点:简单易懂。缺点:加减法运算复杂。 补码 : 加减法运算方便,减法可以转换为加法 为了区别一

20、般书写表示的数和机器中这些编码表示的数,通常将前者称为真值 ,后者称为 机器数 或机 器码 。 1、 原码表示法 ?定点小数x0.x1x2xn x 1x0 0,正数 x原= 符号 1-x=1+|x| 0x-1 1 ,负数 注:有正 0 和负 0 之分 范围 2 -n -11- 2 -n 例:x=+0.11001110 x 原=0.11001110 -x原=1.11001110 ?定点整数x0x1x2xn x 2 nx0 0,正数 x原= 符号 2 n x=2 n +|x| 0x-2 n 1 ,负数 注:有正 0 和负 0 之分 范围 1-2 n 2 n-1 例:x=+11001110 x原=0

21、11001110 -x原=111001110 、补码: 我们先以钟表对时为例说明补码的概念。假设现在的标准时间为4 点正;而有一只表已经7点了, 为了校准时间,可以采用两种方法:一是将时针退 7-4=3 格;一是将时针向前拨12-3=9 格。这两种方法 都能对准到4 点,由此可以看出,减3 和加 9 是等价的,就是说9 是(-3) 对 12 的补码,可以用数学公式 表示 -3+9(mod12 ) mod12的意思就是12 模数,这个“模”表示被丢掉的数值。上式在数学上称为同余式 。 上例中其所以7-3 和 7+9(mod12)等价, 原因就是表指针超过12 时, 将 12 自动丢掉,最后得到1

22、6-12=4 。 从这里可以得到一个启示,就是负数用补码表示时,可以把减法转化为加法。这样,在计算机中实现起来 就比较方便。 ?定点小数x0.x1x2xn x 1x0 0,正数 x补= 符号 x = 2 -|x| 0x-1 1,负数 注:0 的补码只有一种形式 范围 2 -n-11- 2-n 例:()x= -0.1011 () y=-0.01111 x 补=10+x=10.0000-0.1011=1.0101 y 补=10+y=10.00000-0.01111=1,10001 ?定点整数x0x1x2xn x 2 nx0 0,正数 x补= 符号 2 n x = 2 n+1 -|x| 0x-2 n

23、 1,负数 注:0 的补码只有一种形式 范围 -2 n 2 n-1 3、 反码: 为计算补码方便而引入 计算公式:小数公式2.11 (P25),整数公式2.12 (P25) 由反码求补码:符号位置1,各位取反,末位加1。 4、 移码 :用于阶码的表示,两个移码容易比较大小,便于对阶。 定义:公式2.14 。即将数值向X轴正方向平移2 n 例-1011111 原码为 11011111 补码为 10100001 反码为 10100000 移码为 00100001 特点:移码和补码尾数相同,符号位相反 例 3 和例 4 小结: 上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。由于补码

24、表示对加 减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补 码运算。 也有些机器, 数用原码进行存储和传送,运算时改用补码。还有些机器在做加减法时用补码运算, 在做乘除法时用原码运算。 213 字符与字符串的表示方式 ASCII 码 214 汉字的表示方式 1)输入码:用于汉字输入 2)内码:用于汉字的存储 3)字模码:用于汉字的显示 215 校验码 奇、偶校验码 最简单且应用广泛的检错码是采用一位校验位的奇校验 或偶校验 。 设(01n1) 是一个 n 位字 , 则奇校验位C定义为 C01n1 (2.15) 式中代表按位加,表明只有当中包含有奇数个

25、1 时 , 才使C1, 即C0。 同理 , 偶校验位定义为 C01n1(2.16) 即中包含偶数个1 时, 才使C0。 例 7 已知下表中左面一栏有5 个字节的数据。 请分别用奇校验和偶校验进行编码, 填在中间一栏和右 面一栏。 见 P30 补充内容 一、常用逻辑门 二、全加器 三、编码器和译码器 四、触发器 五、寄存器 22 定点加法、减法运算 一、补码加法 加法公式: x+y补=x补+y补(mod 2)(2.17) 证明:( P31)假定 X、Y均为定点小数,且|x|0, y0 则x+y0 x 补+y补=x+y=x+y补(正数的原、反、补码是相同的) (2) x0, y0 2+(x+y)会

26、产生进位,进位位丢掉 2+(x+y)=x+y=x+y补 当 x+y0 (略)同(2) (4) xx-2 采用变形补码后:当1x0 两个符号位都是0。如 00.1010 当 0x-1 两个符号位都是1。如 11.1010 对变形补码其特点:符号位参与运算 在模 4 下相加运算,进位4 丢掉 结论:运算结果的两符号位相异时,表示溢出。 不论溢出与否,最高符号位始终指示正确的符号。 例 10(略) P34 例 11(略) P34 (2)单符号位:(1)当最高有效位产生进位而符号位无进位时,产生上溢出。 (2)当最高有效位无进位而符号位产生进位时,产生下溢出。 溢出表达式为:V=CfC0 Cf- 符号

27、位产生的进位, C0-最高有效位产生的进位) ?Cf C0 0 0 正确(正数) 0 1 上溢 1 0 下溢 1 1 正确(负数) 四、基本的二进制加法减法器 ?基本的加法和减法器一位半加器真值表 半加器 ( 不考虑进位 ) HiAi Bi 电路图略 全加器 ( 考虑低位进位Ci-1 和向高位的进位Ci) 真值表见P35 表 2.2 输入输出 Ai Bi Si Ci 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 iiii CBAS iiiii iiiii iiiiiii CBABA CBABA CBCABAC ).(. )( 1 进位处理方式:串行进位(行波进位)、并行进位

28、二进制加法减法器图2.2(P35) 五、十进制加法器 十进制加法减法器图2.3(P36) ?校正方法 当 Xi+Yi+Ci=10时, Si=S+6 校正因子生成方法 例如: A =0101 B=0111 A +B = 0101 +0111 = 1100 (结果不是BCD码) 1100 0110 1 0010 (1 为进位,构成12 的 BCD码,所以正确) FA(全加器)逻辑电路图FA框图 )(1 1231iiii SSSCCi 若相加结果大于等于16,小于 19 若相加结果大于9,小于 16 23 定点乘法运算 一、原码并行乘法 1定点原码乘法原理 在定点计算机中,两个原码表示的数相乘的运算

29、规则是:乘积的符号位由两数的符号位按异或运算得 到,而乘积的数值部分则是两个正数相乘之积。 x原=xf . xn-1x 1x0 被乘数 y原=yf . yn-1y 1y0 乘数 x y原=(x fyf)+(0. xn-1x1x0)(0. yn-1y1y0) 乘积 ?尾数乘法如下: 设x0.1101,y0.1011. 0. 1 1 0 1 (x) 0. 1 0 1 1(y) 1101 1101 0000 1101 0.10001111() 人们习惯的算法对机器并不完全适用。原因: (1) n 位乘 n 位积可能为2n 位. (2) 乘积的最后是所有部分积之和,有n 个数相加,而FA 只有两个输入

30、端 所以需要改造 方法一:硬件实现方法(串行的“加法移位”),硬件结构简单,速度太慢(时间延迟太长 )。由于串 行乘法速度太慢,已被淘汰。 方法二:流水式阵列乘法器(并行乘法器)。 2不带符号的阵列乘法器 MN位不带符号的阵列乘法器逻辑框图 5 位 5 位不带符号的阵列乘法器逻辑电路图 3带符号的阵列乘法器原理: 原理:算前求补原码乘法算后求补(首先取补不带符号乘法结果取补) E- 控制是否求补 E- 与符号位相联 图 2.6 对 2 求补电路 在这种逻辑结构中, 共使用三 个求补器。 其中两个算前求补器的 作用是:将两个操作数A和B在被 不带符号的乘法阵列( 核心部件 ) 相乘以前 , 先变

31、成正整数。而算后 求补器的作用则是: 当两个输入操 作数的符号不一致时, 把运算结果 变成带符号的数。 矩 形 框 中 电 路 为找第一个1 在 E 的控制下求反 二、补码并行乘法 1补码与真值的转换公式: IF N补=an-1an-2a 1a0 对正数an =0 对负数an =1 例x补=10110,则 x=1*24+1*22+1*21=10 x=(11)*24+(10)23+(11)22+(11)*21+(10)*20+1=10 2一般化的加法器:有负权输入的,即可以做减法的。 带负权的运算规则: ( 0)( 0) (0) ( 0)( 1) (1) ( 1)( 0) (1) ( 1)( 1

32、) (1)(0) 1 ( 1) 0 0 ( 1) (1) 1 ( 0) 1 0 ( 0) 0 结果处理:从带负权位开始的几位,取反加1 3. 直接补码阵列除法器: 因符号位参与运算,可以完成补码的直接乘法,而不需求补级,节省了取 补时间,大大的加快了乘法的速度。结构图见P44 图 2.8 。 例设 A补(01101)2, B补(11011)2, 求 AB补? 解: (0) 1 1 0 1 13 ) (1) 1 0 1 1 5 (0) 1 1 0 1 (0) 1 1 0 1 (0) 0 0 0 0 (0) 1 1 0 1 0 (1)(1)(0)(1) 0 (1) 0 1 1 1 1 1 1 (1

33、) 1 0 1 1 1 1 1 1 65 2 0 1 2 0 1 12)1(2)1( 22 1 1 n i i in n i i in aaN aaN n n 验证: 12 7026125124123122121120 128(32168421) 65 (13) ( 5)65 例(1) 0 1 1 0-负 13 (0) 1 1 0 1- 正 10 (1) 0 1 1 0 ( 0)0 0 0 0 (1)0 1 1 0 ( 1) 0 1 1 0 0 (0) ( 0) ( 0) ( 0) 0 (1) (1) 1 1 1 1 1 0 (1) 1 0 1 1 1 1 1 1 0 (转化以后结果) 24

34、定点除法运算 一、原码除法算法原理 1. 二进制除法公式: x原=xf . xn-1x 1x0 被除数 y 原=yf . yn-1y 1y0 除数 x y原=(x fyf)+(0. xn-1x1x0)(0. yn-1y1y0) 商 2. 余数处理的两种方法: (1) 恢复余数法:运算步骤不确定,控制复杂,不适合计算机运算。 (2) 加减交替法:不恢复余数,运算步骤确定,适合计算机操作。 二、并行除法器(自学) CAS的结构,图2.9(a) ,并行除法器结构图2.9(b) 。 不恢复余数的除法也就是加减交替法。在不恢复余数的除法阵列中, 每一行所执行的操作究竟 是加法还是减法, 取决于前一行输出

35、的符号与被除数的符号是否一致。当出现不够减时,部分余数 相对于被除数来说要改变符号。这时应该产生一个商位“0”, 除数首先沿对角线右移, 然后加到下 一行的部分余数上。当部分余数不改变它的符号时, 即产生商位“ 1”, 下一行的操作应该是减法。 例0.101001, 0.111, 求 q = 。 解: x补0.101001 补0.111 补1.001 故得 商 qq0. q1q2q30.101 余数 r (0.00 r3r4r5r6) 0.000110 25 定点运算器的组成 运算器是数据的加工处理部件,是CPU的重要组成部分,尽管各种计算机的运算器结构可能或那样的 不同,但最基本的结构中必须

36、有算术/ 逻辑运算单元、数据缓冲寄存器、通用寄存器、多路转换器和数据 总线等逻辑构件。 一、逻辑运算(前面讲过,自己看) 计算机中的逻辑运算运算主要指逻辑非、逻辑加、 逻辑乘、 逻辑异。 利用逻辑运算可以比较两个数(异 或运算可以实现),或从某个数中选取某几位(与运算可以实现)等操作 逻辑数概念:所谓的逻辑数是指不带符号的二进制数。 例:例 21- 例 24 (P50-P51) 二、多功能算术逻辑运算单元(ALU ) 本节介绍的是74LS181的基本逻辑结构是先行进位加法器,通过改变其输入端Ai 和 Bi 来实现算术运 算和逻辑运算功能。怎样实现呢? 1基本思想:一位全加器FA的逻辑表达式:

37、加法器 FA、减法单元CAS 和一位 ALU 逻辑图 图 2.10 ALU的逻辑结构原理框图 为了实现多种算术逻辑运算,可将Ai 和 Bi 输入一个函数发生器(进位传递函数和进位产生函数)得 到输出 Xi 和 Yi ,作为一位全加器的输入(见上图)。 上式中 i 代表集成在一片电路上的ALU的二进制位数 n 代表若干片ALU组成更大字长的运算器时每片电路的进位输入 2ALU的逻辑图与逻辑表达式 Xi 、Yi 与控制参数和输入量的关系 S0 S 1Yi S2 S3Xi 0 0 iA0 0 1 0 1 iABi0 1 iA+iB 1 0 iAiB1 0 iA+Bi 1 1 0 1 1 iA inn

38、iiiin niii XCCYYXC CYXF 111 1 进一步化简得到下式 iiiiiiiiiiii YBSBSABASBASYX 10 可以证明: Xi+Yi=Xi XiYi=Yi(自己试试看) 综上所述: ALU 的某一位逻辑表达式见下: 例:S3S2S0S10000 代入: 上例可以处理16 种算术、逻辑运算,每种运算只针对1 位二进制编码 思考:如何设计4 位 ALU?16 位呢? 4 位 ALU 结构(见下图) 问题 1:片内是串行进位还是并行进位? 回答:由上图结构中可以看出 Cn1Y0 X0CnCn2 Y1X1Cn1 Cn3Y2 X2Cn2Cn4Y3X3Cn3 显然是一个串行

39、进位,速度慢,为了实现快速ALU ,需加以改进。 iiiiii iiiiii ASSBASSBASSSSX BASSBASSASSY 32323232 101010 )()( iiii iiiii BSBSAY BASBASX 10 23 i nininiii iiiii iiiii A CACACXYF ABSBSAY BASBASX 的时候,输出结果为所以在 )设 0000SS 0(1 100 03 111 10 23 iniiiniiin inniiiin niii XCYXYCYXC XCCYYXC CYXF 111 111 1 )( iiii iiiii BSBSAY BASBASX

40、 10 23 2. 上述片内进位是串行的缺点如何改进? 思考: Cni 与 X、Y 有关,而每一位中X、Y 的产生是不是同时的?? 回答:由于每一位中X、Y 的产生是同时的,则可以由下面方法算出并行进位的Cn4 第 0 位向第 1位的进位公式为 Cn1Y0X0Cn 其中 Cn 是向第 0 位(末位)的进位。 第 1 位向第 2位的进位公式为 Cn2Y1X1Cn1Y1Y0X1X0X1Cn (Cn1用( 1)式代入) 第 2 位向第 3位的进位公式为 Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn 第 3 位的进位输出(即整个4 位运算进位输出)公式为 Cn4Y3X3Cn3Y3Y2X

41、3Y1X2X3Y0X1X2X3X0X1X2X3Cn 令 GY3Y2X3Y1X2X3Y0X1X2X3 (G 为进位发生输出) PX0X1X2X3 (P 为进位传送输出 ) 增加 P 和 G 的目的在于实现多片(组)ALU 之间的先行进位,需要配合电路,称为先行进位发生器(CLA ) ,这样 的器件商业标号:74181ALU 3. 算术逻辑运算的实现 具有正逻辑和负逻辑两种 M=L时,对进位信号没有影响,做算术运算 M=H时,进位门被封锁,做逻辑运算 说明: 74181 执行正逻辑输入/ 输出方式的一组算术运算和逻辑运算和负逻辑输入/ 输出方式的一组算术运算 和逻辑运算是等效的。 A=B端可以判断

42、两个数是否相等。 内部逻辑结构图见下 16 位先行进位ALU Cn+x=G0+P0Cn Cn+y=G1+P1Cn+x Cn+x=G2+P2Cn+y Cn+4=G3+P3Cn+z 片内先行进位 ,片间串行进位 4. 两级先行进位的ALU 4 片(组)的先行进位逻辑 Cn+x=G0+P0Cn Cn+y=G1+P1Cn+x=G1+G0P1+P0P1Cn Cn+x=G2+P2Cn+y =G2+G1P2+G0P1P2+P0P1P2Cn Cn+4=G3+P3Cn+z =G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3Cn + + iiiii BASBASX 23 iiii BSBSAY 1

43、0 A i S0 S 1 Ai i B S2 Ai B i S 3 XiYi C n M Fi 异或门 1niii CXYF =G*+P*Cn G*为成组先行进位发生输出 P*为成组先行进位传送输出 成组先行进位部件CLA的逻辑图 三、内部总线 机器内部各部份数据传送频繁,可以把寄存器间的数据传送通路加以归并,组成总线结构。 总线分类 (1)按所处位置 内部总线( CPU内) 外部总线(系统总线) (2)按逻辑结构 单向传送总线 双向传送总线 由三态门组成的数据总线 四、定点运算器的组成 1. 单总线结构的运算器 2. 双总线结构的运算器 3. 三总线结构的运算器 26 浮点运算方法和浮点运算

44、器 一、浮点加法、减法运算 设有两个浮点数和, 它们分别为 2ExM 2EyM 其中 Ex和 Ey 分别为数 和的阶码,Mx 和 My为数和的尾数。 两浮点数进行加法和减法的运算规则是 (M2ExEyM )2 Ey, 设 E0,表示 ExEy ; 若E0,表示 EE,则移动y 的尾数, M 右移 E位。 问题: 为什么要小阶向大阶看齐? 第三步:尾数求和运算 对阶完成后,即可进行尾数求和运算,不论是加、减运算,都按加法操作。 第四步:规格化处理 1.在浮点加减运算时, 尾数求和的结果也可以得到01. 或 10. , 即两符号位 不等 , 此时将运算结果右移以实现规格化表示, 称为向右规格化。

45、规则:尾数右移1 位,阶码加1 2.结果是 00.001.或 11.1.10.时,则向左规格化 规则:尾数左移1 位,阶码减1 第五步:舍入处理(对阶和向右规格化时) 1. 0 舍 1 入 2. 恒置 1 法 第六步:溢出判断和处理 阶码上溢:一般将其认为是和。 阶码下溢:则数值为0 尾数上溢:两个同符号位的数相加。处理方法是尾数右移,阶码加 1。 尾数下溢:尾数右移时,最低位从最右端流出。进行要进行舍入处理。 例x220.11011011 y= - 240.10101100 解:假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则: 第一步:操作数检查(非0) 第二步:对阶:阶差E

46、= Ex-Ey = 00 010- 00 100 = 11 110 即 阶差为 -2 ,Mx右移两位, Ex 加 2 第三步:尾数求和:00.00110110(11)+11.01010100=11.10001010 (11) 第四步:规格化处理:执行左规处理 左规为 11.00010101 (10) ,阶码减1 为 00011 结果 1.00010101 阶码 00 011 第五步:舍入处理:采用0 舍 1 入法 若采用 0 舍 1 入法为 11.00010110 第六步:溢出判断 阶码符号位为00,不溢出,故得最终结果为 X+Y= 2 011( - 0.1 1101010) ?课堂练习: x

47、=0.1101*2 01 y=-0.1010*2 11 尾数和阶符都采用补码表示,都采用双符号位表示法。求x+y 解:x浮=0001, 00.1101 y浮=0011,11.0110 阶差 =1110 即为 -2 Mx 应当右移2 位, x浮=0011,00.0011(01) 尾数和为 11.1001(01) 左规 11.0010(10) ,阶码减1 为 0010 舍入( 0 舍 1 入) 11.0011 x+y=-0.1101*2 10 二、浮点乘、除法运算 1. 浮点乘、除法规则, 设有两个浮点数和: 2ExM 2EyM 2(ExEy)(MM ) 2(ExEy)(MM ) 2. 乘除运算分为四步 0 操作数检查 阶码加减操作 尾数乘除操作 结果规格化和舍入处理 移码的加减运算规律: 移码采用双符号位,为了对溢出进行判断 01 为正 00 为负 1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1