已阅读5页,还剩390页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 计算机组成原理 白中英 2 概述 计算机组成 主要指计算机硬件的具体实现方式及工作原理从三方面掌握本课程内容硬件结构 从物理上 逻辑上掌握计算机各部件和器件的构成和作用实现方式 硬件联接形式和内部处理方式 如控制器 运算器的实现方式等 工作原理 计算机各部分内部工作过程 3 本课程的重要地位本课程是计算机及相关专业的核心专业基础课 对后续课程 操作系统 接口与通信等 的学习十分重要 考研必考课程 通过课程的学习主要掌握以下内容本课程主要讲授单处理机系统的组成及工作原理 分析和说明计算机由哪些功能部件组成 结构 各功能部件在整机中的作用 以及它们如何完成各自所分配的任务 工作原理 学习难点内容较多 结构复杂 要有数字逻辑的基础学习思路 方法 分析结构 弄清原理 多做练习 4 主要内容计算机系统概述 计算机基础 基本概念 运算方法和运算器 计算机中数据的表示和编码 包括数值 非数值数据 整数 小数 汉字 校验码等 计算机中运算方法 定点运算 浮点运算 逻辑运算 运算器及实现 内部存储器 存储器芯片的结构与工作原理 存储器的组织与连接 高速存储器 等 指令系统 指令格式 寻址方式 典型指令 中央处理器 CPU的组成及工作原理 控制器的实现 实现技术 总线系统 总线概念 总线技术 外围设备 典型外围设备基本工作原理 输入输出系统 输入输出控制方式 操作系统支持 调度 存储管理 虚拟存储器等 5 第一章计算机系统概论 第一节计算机分类电子计算机从总体上来说分为两大类 电子模拟计算机和电子数字计算机 电子模拟计算机的特点是数值由连续量来表示 运算过程也是连续的 电子数字计算机的主要特点是按位运算 并且不连续地跳动计算 6 数字计算机又可分为专用计算机和通用计算机 专用和通用是根据计算机的效率 速度 价格 运行的经济性和适应性来划分的 专用机是最有效 最经济和最快速的计算机 它是针对某一任务设计的计算机 但是它的适应性很差 通用机适应性很大 但是牺牲了效率 速度和经济性 通用计算机又分巨型机 大型机 中型机 小型机 微型机和单片机六类 它们的区别在于体积 简易性 功率损耗 性能指标 数据存储容量 指令系统规模和机器价格 7 第二节计算机的发展1 计算机五代变化2 半导体存储器芯片的发展3 微处理器的发展4 计算机体系结构的变化计算机体系结构是在冯 诺依曼结构的基础上 围绕提高速度 提高字长 扩大存储容量 降低成本 提高系统可靠性和方便使用等诸方面 通过新器件和新软件提高计算机性能 体系结构上 从指令系统 微程序设计 流水线结构 多级存储器体系结构 输入 输出体系结构 并行体系结构 分布式体系结构等方面的形成和发展 体系结构发展趋势 网络化 智能化 模块化 多媒体应用 8 第三节计算机的硬件 一 数字计算机硬件的组成硬件 指计算机中的电子线路和物理装置 计算机硬件由五大部分组成 即运算器 控制器 存储器 输入设备 输出设备 运算器进行数据处理或信息加工 包括各种算术运算 逻辑运算和判断处理存储器存放程序和数据 程序是计算机进行各种操作和控制的依据数据是计算机进行操作的对象计算机中存放的程序和数据都是二进制形式的 9 控制器控制计算机各部分自动协调的工作 完成的工作是从内存中读取指令 分析和解释指令 然后按指令的要求发出操作命令 控制计算机各部分自动协调的工作 简单程序指令形式控制器的基本任务指令流和数据流冯 诺依曼体系结构计算机的主要特征是 采用存储程序和数据 由指令流来控制计算机的操作 输入设备输入信息到计算机中的设备输出设备从计算机中输出信息的设备 10 第四节计算机软件一 软件的组成与分类计算机中的各种程序 数据和有关文档构成计算机的软件系统 计算机的软件一般分为两大类 系统软件 便于计算机使用的系统管理程序 包括操作系统 语言处理 数据库管理系统等 应用软件 针对用户具体实际应用的程序 11 二 软件的发展目的程序汇编程序源程序编译程序操作系统数据库管理系统 12 第四节计算机系统的层次结构一 多级组成的计算机系统微程序设计级一般机器级操作系统级汇编语言级高级语言级二 软件与硬件的逻辑等价性 13 第四节计算机系统的层次结构 计算机系统具有层次性 它是由多级层次结构组成的 其层次之间的关系十分紧密 上层是下层功能的扩展 下层是上层的基础 层次的划分不是绝对的 各层之间有时是相互渗透的 14 第二章运算方法和运算器 第一节数据与文字的表示数据一般分为两大类 数值数据 有确定的值 相互间有大小关系非数值数据 相互间无大小关系 用于表示符号 文字或属性 15 一 数制及相互转换1 数制常用数制十进制 D 日常使用数制二进制 B 数字计算机内部使用数制十六进制 H 为使于对二进制的阅读和书写 常采用十六进制 或八进制 表示 16 对一任意数S 其r进制数表示为 S r kn rn 1 kn 1 rn 2 ki ri 1 k m r m 1其中 ki rr称为进位计数值的基数 ki为第i位数字符 i为位序号 ri为第i位的位权 17 347 8 3 82 4 81 7 80 103 10 347 5 8 3 82 4 81 7 80 5 8 1 231 625 10 34E 5 16 3 162 4 161 14 160 5 16 1 846 3125 10 18 2 不同数制间的转换1 十进制 八 十六进制 二进制法则整数部分 除8 16 取余数小数部分 乘8 16 取整重复循环 19 2 八 十六进制 二进制二进制 八进制以小数点为界 分别向左和向右每三位分为一组 然后写出各组对应的八进制数 二进制 十六进制以小数点为界 分别向左和向右每四位分为一组 然后写出各组对应的十六进制数 20 3 八 十六进制 十进制直接按照相应进制数的公式 依 按权相加 的方法计算出通式的值 10110 01 1 24 0 23 1 22 1 81 1 20 0 2 1 1 2 2 22 25 10 347 5 8 3 82 4 81 7 80 5 8 1 231 625 10 34E 5 16 3 162 4 161 14 160 5 16 1 846 3125 10 21 二 数据格式在计算机中进行数据表示时需考虑的几个因素 表示数的类型 小数 整数 实数等 数值的范围数值的精度数据存储及处理的硬件代价 22 计算机中常用的数据表示格式有两种 一是定点格式 二是浮点格式 一般来说定点格式容许的数值范围有限 通常用于表示整数或纯小数 但要求的处理硬件比较简单 浮点格式容许的数值范围很大 可以表示实数 但要求的处理硬件比较复杂 23 定点数的表示定点表示 约定机器中所有数据的小数点位置是固定不变的 由于约定在固定的位置 小数点就不再使用记号 来表示 通常将数据表示成纯小数或纯整数 n 1位定点数表示 X0X1X2X3 Xi Xn 2Xn 1Xn其中X0为符号位 X Xn为数值部分 Xi为 或 24 1 定点小数最高位为符号位 小数点位置隐含约定在符号位后 其后为数值部分n 1位定点小数的表示范围是0 X 1 2 n或 1 2 n X 1 2 n 16位小数范围 1 2 X 1 2 25 2 定点整数最高位为符号位 其后为数值部分 小数点位置隐含约定在数值部分的后面 n 1位定点整数的表示范围是0 X 2n 1或 2n 1 X 2n 1 16位整数范围 215 1 X 215 1 26 2 浮点表示法1 数的浮点表示其范围和精度部分分别用定点数表示123 45 1234 5 10 1 12345 10 2 123450 10 34796 54 0 479654 1040 00479654 0 479654 10 2 0 00479654 0 479654 10 2 27 101 1101 0 1011101 20011 0 010111010 20100 101 1101 0 1011101 20011 0 010111010 201000 0001011101 0 1011101 2 0011 0 010111010 2 0010 0 0001011101 0 1011101 2 0011 0 010111010 2 0010 28 任意十进制N 可以化为N M 10E其中M为小数 E为整数一个数S的任意进制表示 S R m Rem 尾数 是一个纯小数 e 比例因子的指数 称为浮点的指数 是一个整数 R 比例因子的基数 对于二进计数值的机器是一个常数 一般规定 为2 8或16 29 浮点表示法 把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示 这种把数的范围和精度分别表示的方法 数的小数点位置随比例因子的不同而在一定范围内自由浮动 对于 101 1101 0 1011101 20011 只需存放0 1011101和0011即010111010011 30 一个机器浮点数由阶码和尾数及其符号位组成 尾数 用定点小数表示 给出有效数字的位数 决定了浮点数的表示精度 阶码 用整数形式表示 指明小数点在数据中的位置 决定了浮点数的表示范围 具体格式见教材 17 31 IEEE标准总位数符号位阶码尾数短实数321823长实数6411152临时实数8011564 32 阶码和尾数各占用的位数确定了浮点数的格式对二进制数而言 1110 011 0 1110011 21000 001110011 0 1110011 2 10 0 001110011 0 1110011 2 10在将上面的数以浮点数格式存放时 只需将红色部分按照浮点数格式要求的位数 化为相应的补码或移码 按照浮点数格式存放 33 为提高数据的表示精度 当尾数的值不为0时 其绝对值应 0 5 即尾数域的最高有效位应为1 否则以修改阶码同时左右移小数点的办法 使其变成这一表示形式 这称为浮点数的规格化表示 101 1101 0 1011101 20011 0 010111010 20100规格化表示为尾数是0 1011101 阶码是0011而尾数是0 01011101 阶码是0100不是规格化表示 34 当浮点数的 尾数为0 不论其阶码为何值 或者 阶码的值遇到比它能表示的最小值还小时 不管其尾数为何值 计算机都把该浮点数看成零值 称为机器零 浮点数转换的实例见 18 35 IEEE754浮点数格式说明一个规格化的32位浮点数 的真值可表示为 1 s 1 2 127e 127其中 的范围是 阶码范围 126 127 0和255作特殊用途 浮点数 0 时表示x 1 255 M 0时x 1 IEEE754的32位浮点数表示的除 外的绝对值最小的数 s0000000100000000000000000000000 x S 2 126 1 0IEEE754的32位浮点数表示的除 外的绝对值最大的数 s1111111011111111111111111111111x S 2127 2 2 23 36 3 十进制数串的表示十进制数串在计算机内主要有两种表示形式 1 字符串形式字符串形式 一个字节存放一个十进制的数位或符号位 为了指明这样一个数 需要给出该数在主存中的起始地址和位数 串的长度 37 2 压缩的十进制数串形式压缩的十进制数串形式 一个字节存放两个十进制的数位 它比前一种形式节省存储空间 又便于直接完成十进制数的算术运算 是广泛采用的较为理想的方法 码 二 十进制编码 38 自定义数据表示自定义数据表示则用数据本身来说明数据类型 其表示形式有两种 即标志符数据表示和描述符数据表示 标志符数据表示要求对每一个数据都附加标志符 其中标志符指明后面的数据所具有的类型 如整数 浮点数 BCD数 字符串等 39 描述符数据表示主要用来描述多维结构的数据类型 如向量 矩阵 记录等 描述符标志位部分指明这是一个数据描述符 特征标记部分指明数据的各种特征 长度部分指明数组中元素个数 起始地址部分指明数据块的首地址 40 标志符与描述符表示的区别是 1 标志符与每个数据相连 二者合起来存放在一个存储单元 而描述符要和数据分开存放 2 描述符表示中 先访问描述符 后访问数据 至少增加一次访存 3 描述符是程序的一部分 而不是数据的一部分 41 二 数的机器码表示在计算机中对数据进行运算操作时 符号位的表示 符号位是否也同数值位一道参加运算 如何参加运算 为了妥善的处理好这些问题 就需要把符号位和数字位一起编码表示数据 为适应不同的处理要求 产生了多种数据编码方法 如原码 补码 反码 移码等 42 计算机中对数据的表示都采用二进制编码真值 数值数据的实际值 如257 33 1011B等机器数 机器码 数值数据在计算机内的编码表示 43 在计算机中通常采用原码 补码 反码和移码表示数值数据原码 补码 反码的共性 1 这几种编码表示中 正数的编码值与真值一样 负数具有不同的编码 2 编码的最高位为符号位 0表示正1表示负 44 1 原码表示法符号位 0表示正 1表示负数值部分 与真值的二进制形式一样原码的特征 1 零有两种表示 0和 0 0 原 0 000 0 0 原 1 000 02 优点 简单直观 便于乘 除法运算缺点 加减法运算不便 符号不能直接参预运算 45 2 反码表示法符号位 0表示正 1表示负数值部分 正数不变 负数反码是将真值的各位取反得到反码的特征 1 零有两种表示 0和 0 0 反 0 00 0 0 反 1 11 12 通常用于求补码 46 3 补码表示法符号位 0表示正 1表示负数值部分 正数不变 负数通过求补得到计算机中数值数据采用补码形式 其符号部分可以直接参预加 减法运算 补码的特征 1 零的表示唯一2 补码加减法运算中 符号直接参预运算3 定点小数表示中 1 补 1 00 0 47 移码表示法移码通常用于表示浮点数的阶码 阶码是个n位的整数 n 1位移码的定义是 移 2n 2n 2n符号位 1表示正 0表示负数值部分 与补码数值部分相同移码的特征 1 零的表示唯一 100 002 移码只能表示整数 只有整数有移码 用于浮点数阶码表示 48 例 写出下列各数 位的原码 反码 补码 移码表示 77 103 0 01101 23 6477 1001101 103 1100111 23 64 10111 2 6 0 010111 49 例 写出下列机器码的真值 x1 原 0 110101 x2 原 1000101 x3 反 1 010101 x4 反 0 000101 x5 补 1 010101 x6 补 0 000101 x7 补 1 000000 x8 补 10000000 x3 移 1 010101 x4 移 0 000101 50 三 字符与字符串的表示方法 字符的表示采用 位ASCII码表示 0 9 30H 39H A 41H a 61H 51 2 字符串的表示字符串是指连续的一串字符 通常方式下 它们占用主存中连续的多个字节 每个字节存一个字符 当主存字由2个或4个字节组成时 在同一个主存字中 既可按从低位字节向高位字节的顺序存放字符串的内容 也可按从高位字节向低位字节的次序顺序存放字符串的内容 52 四 汉字的表示方法内部编码 内码 输入码 显示 打印 码 53 五 校验码校验码 按照一定的规律和方法 通过给数据增加一位或多位数据而重新编码的方法 使得计算机能够发现或纠正数据在存放或传送过程中出现的错误 这样得到的新的编码称为校验码 其中增加的数据位称为校验位 54 检错码 具有发现错误能力的校验码称为检错码 纠错码 能够发现并纠正错误的校验码称为纠错码 奇偶校验码 能够发现一位或奇数位数据错误 奇校验码 通过给数据增加一位校验位 使校验码中 1 的个数为奇数个 偶校验码 通过给数据增加一位校验位 使校验码中 1 的个数为偶数个 55 第二节定点加 减法运算一 补码加法1 补码加法负数用补码表示后 可以和正数一样来处理 这样 运算器里只需要一个加法器就可以了 不必为了负数的加法运算 再配一个减法器 补码加法的公式是 补 补 补 mod2 补码加法的特点 符号位要作为数的一部分一起参加运算 要在模2的意义下相加 即超过2的进位要丢掉 56 补码减法负数的减法运算也要设法化为加法来做 其所以使用这种方法而不使用直接减法 是因为它可以和常规的加法运算使用同一加法器电路 从而简化了计算机的设计 数用补码表示时 减法运算的公式为 补 补 补 补 补在实际计算时 利用 补 补 补公式将减法运算变为加法进行 57 现在的问题是如何从 y 补去求 y 补这一点在硬件上实现也很简单 只需对 y 补包括符号位 求反且最末位加1 简称 求反加 即可得到 y 补 58 三 溢出概念与检测方法在定点小数机器中 数的表示范围为 1 在运算过程中如出现大于1的现象 称为 溢出 在定点机中 正常情况下溢出是不允许的 上溢 两个正数相加 结果大于机器所能表示的最大正数 称为上溢 下溢 两个负数相加 结果小于机器所能表示的最小负数 称为下溢 59 为判断运算中是否产生溢出 可采用两种检测的方法 第一种方法是采用双符号位法 第二种方法是采用单符号位法 双符号位法双符号位法 也称为 变形补码 或 模4补码 变形补码定义为 补 2 04 0 2采用变形补码后 正数的符号位为00 负数的符号位为11 当运算结果符号不为00或11时 说明产生了溢出 60 采用变形 模 补码运算时有以下规律 当以模4补码运算 运算结果的二符号位相异时 表示溢出 相同时 表示未溢出 故溢出逻辑表达式为V Sf1 Sf2 其中Sf1和Sf2分别为最高符号位和第二符号位 此逻辑表达式可用异或门实现 模4补码相加的结果 不论溢出与否 最高符号位始终指示正确的符号 61 单符号位法从补码加 减法运算中我们看到 当最高有效位产生进位而符号位无进位时 产生上溢 当最高有效位无进位而符号位有进位时 产生下溢 我们可以借助进位关系给出溢出逻辑表达式 V Cf Co其中 Cf为符号位产生的进位Co为最高有效位产生的进位此逻辑表达式也可用异或门实现 62 四 基本的二进制加 减法器 全加器 全加器 可以实现两个二进制数字Ai Bi和一个进位输入Ci相加 产生一个本位和输出Si 以及一个进位输出Ci 1 其逻辑关系为 Si Ai Bi CiCi 1 AiBi BiCi CiAi可用如图所示电路实现一位加法 63 行波进位加 减法器n个1位的全加器 FA 可级联成一个n位的行波进位加减器 P35图 2 M为方式控制输入线 控制进行加法 还是减法运算 当M 0时 作加法 A B 运算 当M 1时 作减法 A B 运算 在后一种情况下 A B运算转化成 A 补 B 补运算 求补过程由B取反加1来实现 电路采用单符号位法的溢出检测逻辑 当Cn Cn 1时 运算无溢出 当Cn Cn 1时 运算有溢出 经异或门产生溢出信号 64 n位行波进位加法器的延迟时间ta为ta n 2T 9T 2n 9 T从上式可看出 采用行波进位加法器时 位数越多 延迟时间越长 65 五 十进制加法器十进制加法器可由BCD码 二 十进制码 来设计 它是在二进制加法器的基础上加上适当的 校正 逻辑来实现的 一位 码加法电路由四位二进制加法电路加上校正电路构成 校正逻辑关系为 本位十进制和小于10时 不必校正 本位十进制和大于10时 通过将本位和加 修正 Si S I当 i i Ci 10Si S i 6当 i i Ci 10 66 第三节定点乘法运算一 原码乘法在定点计算机中 两个原码数相乘的运算规则 乘积的符号位由两数的符号位按异或运算得到 而乘积的数值部分则是两个正数相乘之积 67 设n位被乘数和乘数用定点小数表示 定点整数也同样适用 被乘数 原 f n 1 1 0乘数 原 f n 1 1 0则乘积 原 f f 0 n 1 1 0 0 n 1 1 0 式中 f为被乘数符号 f为乘数符号 68 二进制乘法的手算过程设 0 1101 0 1011 让我们先用习惯方法求其乘积 其过程如下 69 改进的运算过程0 1101 0 1011的运算过程0 1101 0 10110 1101 0 01101 0 11011 00111 0 100111 0 00000 100111 0 0100111 0 11011 0001111 0 10001111 70 一位原码乘法X Y X 0 Y1Y2 Yn X Y12 1 Y22 2 Yn2 n 2 1 Y1X 2 1 Y2X 2 1 2 1 YnX 0 上式的递推形式为P0 0P1 2 1 YnX P0 P2 2 1 Yn 1X P1 Pi 2 1 Yn i 1X Pi 1 Pn 2 1 Y1X Pn 1 上式的实际操作为 累加 右移 71 X 0 1101Y 0 1011部分积乘数判别位00 00000 1011 00 110100 1101 00 011010 101 00 110101 00111 00 1001110 10 00 000000 100111 00 01001110 1 00 110101 000111100 10001111Pf 1 0 1 X Y 原 1 10001111X Y 0 10001111 72 4 不带符号的阵列乘法器设有两个不带符号的二进制整数 A am 1 a1a0B bn 1 b1b0它们的数值分别为a和b 即m 1n 1a ai2ib bj2ji 0j 0在二进制乘法中 被乘数A与乘数B相乘 产生m n位乘积P P pm n 1 p1p0乘积P的数值为 73 实现这个乘法过程所需要的操作 其中的aibj实际为ai与bj的逻辑与 74 按照 39图2 5的电路构成阵列乘法器 m位被乘数 n位乘数的阵列乘法器可由 m 1 n个全加器构成 为提高并行处理能力和速度 减少进位延迟时间 每行相加产生的进位移到下一行前一位的全加器处理 5 带符号的阵列乘法器原理阵列乘法器只能处理原码的乘法运算 但在计算机中数据经常采用补码表示 为实现补码乘法运算 就需要采用带符号的阵列乘法器 带符号的阵列乘法器可借助无符号的阵列乘法器加上求实电路实现 75 求补电路一个具有可控的二进制对2求补器电路如图 6 其逻辑表达式如下 C 1 0 Ci ai Ci 1ai ai ECi 1 0 i n在对2求补时 是采用按位扫描技术来执行所需要的求补操作 从最后一位开始 找到出现的第一个 并保持该位不变 然后对前面所有的位求反 76 带求补器的阵列乘法器采用不带符号的阵列乘法器附加三个求补器构成 其中两个算前求补器的作用是 将两个操作数A和B在被不带符号的乘法阵列 核心部件 相乘以前 先变成正整数 算后求补器的作用则是 当两个输入操作数的符号不一致时 把运算结果变成带符号的数 77 二 补码乘法1 补码性质及补码乘法运算规则为了解补码乘法运算规律 先要知道补码一些性质 补码与真值的关系设 X 补 X0 X1X2 Xn则X X0 0 X1X2 Xn 补码乘法设 X 补 X0 X1X2 Xn Y 补 Y0 Y1Y2 Yn则 X Y 补 X 补 Y0 0 Y1Y2 Yn 78 补码乘法递推式 X Y 补 X 补 Y1 Y0 Y2 Y1 2 1 0 Yn 2 n X 补 Yi 1 Yi 2 i P0 补 0 P1 补 P0 补 Yn 1 Yn X 补 2 1Yn 1 0 P2 补 P1 补 Yn Yn 1 X 补 2 1 Pi 补 Pi 1 补 Yn i 2 Yn i 1 X 补 2 1 Pn 补 Pn 1 补 Y2 Y1 X 补 2 1 X Y 补 Pn 1 补 Pn 补 Y1 Y0 X 补 2 1 79 2 补码一位乘法例 设X 0 1011Y 0 110 用补码一位乘法计算 解 X 补 1 0101 X 补 0 1011 Y 补 1 0101部分积乘数判别位00 00001 00110 X 00 101100 1011 00 010111 0011 0 00 000000 01011 80 00 000000 01011 00 0010111 001 X 11 010111 011111 11 10111111 00 00 000011 1011111 11 110111111 0 X 00 101100 10001111 X Y 补 0 10001111X Y 0 10001111 81 补码乘法阵列 一般化的全加器常规的一位全加器可假定它的3个输入和2个输出都是正权 这种加法器通过把正权或负权加到输入 输出端 可以归纳出四类加法单元 见 表 3 82 直接补码阵列乘法器利用混合型的全加器就可以构成直接补码数阵列乘法器 设被乘数A和乘数B是两个5位的二进制补码数 即A a4 a3a2a1a0B b4 a3a2a1a0它们具有带负权的符号位a4和b4 并用括号标注 如果我们用括号来标注负的被加项 例如 aibJ 那么A和B相乘过程中所包含的操作步骤如矩阵所示 83 a4 a3a2a1a0 b4 b3b2b1b0 B a4b0 a3b0a1b0a1b0a0b0 a4b1 a3b1a2b1a1b1a0b1 a4b2 a3b2a2b2a1b2a0b2 a4b3 a3b3a2b3a1b3a0b3 a4b4 a3b4 a2b4 a1b4 a0b4 p9p8p7p6p5p4p3p2p1p0 P 84 第三节定点除法运算一 原码除法运算法则两个原码表示的数相除时 商的符号由两数的符号按位相加求得 商的数值部分由两数的数值部分相除求得 设有n位定点小数 定点整数也同样适用 被除数 其原码为 原 f n 1 1 0除数 其原码为 原 f n 1 1 0则有商q 其原码为 q 原 f f 0 n 1 1 0 0 n 1 1 0 由上公式可见 商的符号位很容易得到 关键是数值部分如何计算 85 二 原码不恢复余数法 加减交替法 计算机中串行除法是通过左移余数和加 减 除数来实现除法运算处理的 首先我们看一看原码除法运算规则 原码不恢复余数法运算法则 首先用被除数减去除数 然后按下列过程重复 当余数为正时 商1 余数左移1位 减除数当余数为负时 商0 余数左移1位 加除数 86 例 设 0 1001 Y 0 1011 用原码不恢复余数法求 解 Y 补 00 1011 Y 补 11 0101被除数 余数商说明00 1001 y 11 0101x y11 11100余数 0 商0 11 11000左移 y00 1011加上除数00 01110 1余数 0 商1 00 11100 1左移 y 11 0101x y00 00110 11余数 0 商1 00 01100 11左移 y 11 0101x y11 10110 110余数 0 商0 87 y 11 0101x y11 10110 110余数 0 商0 11 01100 110左移 y00 1011加上除数00 00010 1101余数 0 商1Qf 0 1 1 X Y 原 1 1101 X Y 0 1101 88 三 并行除法器 可控加法 减法 CAS 单元可控加法 减法 CAS 单元 它将用于并行除法流水逻辑阵列中 它有四个输出端和四个输入端 当控制端P 0时 CAS作加法运算 P 1时 CAS作减法运算 不恢复余数法的除法阵列不恢复余数法的除法阵列由一组可控加法 减法 CAS 单元的阵列来构成 根据原码不恢复余数法的法则 当余数为正时 商1 余数左移1位 减除数 当余数为负时 商0 余数左移1位 加除数 在不恢复余数法的除法阵列中 每行根据余数的有 无 借位 反映余数为负或正 确定商 并确定下一行进行余数减 加 除数的运算 89 第五节定点运算器的组成运算器是计算机的数据加工处理部件 运算器主要由算术逻辑运算单元 数据缓冲寄存器 通用寄存器 多路转换电路和数据总线等逻辑器 部 件构成 一 逻辑运算逻辑数 不带符号的二进制数 逻辑运算是对数据的对位处理 主要包括逻辑非 求反 逻辑加 或 逻辑乘 与 和逻辑异 异或 按位加 基本运算 90 二 多功能算术 逻辑运算单元 ALU 由一位全加器 FA 构成的行波进位加法器 它可以实现补码数的加法运算和减法运算 但是这种加法 减法器存在两个问题 一是由于串行进位 它的运算时间很长 二是就行波进位加法器本身来说 它只能完成加法和减法两种操作而不能完成逻辑操作 多功能算术 逻辑运算单元 ALU 不仅具有多种算术运算和逻辑运算的功能 而且具有先行进位逻辑 从而能实现高速运算 91 1 基本思想一位全加器 FA 的逻辑表达式为Fi Ai Bi CiCi 1 AiBi BiCi CiAi将Ai和Bi先组合成由控制参数S0 S1 S2 S3控制的组合函数Xi和Yi 然后再将Xi Yi和下一位进位数通过全加器进行全加 这样 不同的控制参数可以得到不同的组合函数 因而能够实现多种算术运算和逻辑运算 一位算术 逻辑运算单元的逻辑表达式为Fi Xi Yi Cn iCn i 1 XiYi YiCn i Cn iXi控制参数S0 S1 S2 S3控制根据Ai和Bi产生不同Xi和Yi 经由全加器处理 实现多种算术运算和逻辑运算 因此 不同控制参数S0 S1 S2 S3确定不同的运算功能 92 的逻辑关系控制参数S0 S1 S2 S3分别控制输入Ai和Bi 产生Y和X的函数 其中Yi是受S0 S1控制的Ai和Bi的组合函数 而Xi是受S2 S3控制的Ai和Bi组合函数 其函数关系如表2 4所示 综合全加器的逻辑关系 可得ALU的某一位逻辑表达式如 教材 公式 3 93 一般 以四位作为一组 四位间进位采用先行进位 各位间的进位关系Ci XiYi Xi Yi Ci 1 Gi PiCi 1其中Gi XiYi称为进位生成函数Pi Xi Yi称为进位传递函数串行进位C G P C C G P C Ci Gi PiCi 1 Cn Gn PnCn 1Gi Pi只与第I位的输入有关 进位一位一位的传递 94 先行进位公式第0位向第1位的进位公式为Cn 1 Y0 X0Cn其中Cn是向第0位 末位 的进位 第1位向第2位的进位公式为Cn 2 Y1 X1Cn 1 Y1 Y0X1 X0X1Cn第2位向第3位的进位公式为Cn 3 Y2 X2Cn 2 Y2 Y1X1 Y0X1X2 X0X1X2Cn第3位的进位输出 即整个4位运算进位输出 公式为Cn 4 Y3 X3Cn 3 Y3 Y2X3 Y1X2X3 Y0X1X2X3 X0X1X2X3Cn 95 设G Y3 Y2X3 Y1X2X3 Y0X1X2X3P X0X1X2X3则Cn 4 G PCn这样 对一片ALU来说 可有三个进位输出 其中Cn 4是本片 组 的最后进位输出 G称为进位发生输出 P称为进位传送输出 在电路中多加 和 这两个进位输出的目的 是为了便于实现多片 组 ALU之间的先行进位 为此还需一个配合电路 称之为先行进位发生器 CLA 96 74181算术逻辑运算单元74181是一个四位的算术逻辑运算单元 ALU 它除了S0 S3四个控制端外 还有一个控制端 用于控制ALU是进行算术运算还是进行逻辑运算 当 0时 对进位信号没有任何影响 此时F不仅与本位的被操作数Y和操作数X有关 而且与本位的进位输出 即C有关 因此 0时 进行算术运算 当 1时 封锁了各位的进位输出 即C 0 因此各位的运算结果F仅与Y和X有关 故 1时 进行逻辑运算 74181的运算功能见教材 图 5 97 两级先行进位的ALU74181ALU设置了P和G两个本组先行进位输出端 如果将四片74181的P G输出端送入到74182先行进位部件 CLA 又可实现第二级的先行进位 即组与组之间的先行进位 假设4片 组 74181的先行进位输出依次为P0 G0 G1 P1 P2 G2 P3 G3 那么参考式 2 37 的进位逻辑表达式 先行进位部件74182CLA所提供的进位逻辑关系如下 Cn G0 P0CnCn G1 P1Cn G1 G0P1 P0P1CnCn G2 P2Cn G2 G1P2 G0P1P2 P0P1P2CnCn 4 G3 P3Cn G3 G2P3 G1P1P2 G0P1P2P3 P0P1P2P3Cn G P Cn 98 其中P P0P1P2P3G G3 G2P3 G1P1P2 G0P1P2P3G 称为成组进位发生输出 P 称为成组进位传送输出 可用若干个74181位片式ALU 与配套的74182先行进位部件CLA在一起 构成一个全字长的ALU 99 三 内部总线计算机内部的主要工作过程是信息传送和加工的过程 因此在机器内部各部件之间的数据传送非常频繁 为了减少内部的传送线并便于控制 通常将一些寄存器之间数据传送的通路加以归并 组成总线结构 使不同来源的信息分时在总线上传送 根据总线所在位置 总线分为内部总线和外部总线两类 内部总线是指CPU内各部件的连线 外部总线是指系统总线 即CPU与存储器 I O系统之间的连线 根据总线的逻辑结构来说 总线可分为单向传送总线和双向传送总线 单向总线 就是信息只能向一个方向传送 双向总线 就是信息可以分两个方向传送 既可以发送数据 也可以接收数据 100 图2 14 a 是带有缓冲驱动器的4位双向数据总其中所用的基本电路就是三态逻辑电路 当 发送 信号有效时 数据从左向右传送 反之 当 接收 信号有效时 数据从右向左传送 因此也称为总线收发器 通过控制信号可以控制实现数据在总线上的传送 这种类型的缓冲器通常根据它们如何使用而叫作总线扩展器 总线驱动器 总线接收器等等 图2 14 b 所示的是带有锁存器的4位双向数据总线 它可以实现数据的锁存和发送 101 四 定点运算器的基本结构运算器包括ALU 阵列乘除器 寄存器 多路开关 三态缓冲器 数据总线等逻辑部件 运算器的结构 主要是围绕ALU 寄存器同数据总线之间如何传送操作数和运算结果考虑和设计的 计算机的运算器大体有三种结构形式 单总线结构的运算器单总线结构的运算器所有部件都接到同一总线上 所以数据可以在任何两个寄存器之间 或者在任一个寄存器和ALU之间传送 单总线结构运算器在同一时间内 只能有一个操作数放在单总线上 为了把两个操作数输入到ALU 需要分两次来进行 而且还需要A B两个缓冲寄存器 特点 控制电路比较简单 操作速度较慢 102 双总线结构的运算器双总线结构的运算器具有两条总线 并且可以各自将其数据送至ALU的输入端 在这种结构中 两个操作数只需一次操作控制就可同时送到ALU进行运算 而且马上就可以得到运算结果 但是运算的结果必须先暂存在缓冲器中 三总线结构的运算器三总线结构运算器中 ALU的两个输入端分别由两条总线供给 而ALU的输出则与第三条总线相连 这样 算术逻辑操作就可以在一步的控制之内完成 103 第六节浮点运算方法和浮点运算器一 浮点数加 减法运算 运算规则设有两个浮点数 和 它们分别为 2E M 2E M 其中E 和E 分别为数 和 的阶码 M 和M 分别为数 和 的尾数 1 当Ex Ey E时 x y 2E Mx My 2 当EX EY时 先通过对阶 使X和Y的阶码相同 然后按照上式计算 M 2E E M 2E E E 104 浮点数加 减法运算步骤 1 0操作数检查2 对阶 小阶向大阶看齐 先求阶差 E EX EY 若 E 0 则不必对阶 若 E 0 则EX EY 阶码向EX看齐 MY右移 E位 若 E 0 则EX EY 阶码向EY看齐 MX右移 E位3 尾数相加减4 结果规格化将尾数部分变为0 1 或1 0 的形式分为左规格化或右规格化5 舍入处理 105 对尾数采用补码时的规格化处理右规格化 尾数结果为10 或01 时进行处理方法 将尾数右移1位 并且阶码加1 左规格化 尾数结果为0 0 或1 1 时进行处理方法 尾数每左移1位 阶码减1 重复直到结果尾数为0 1 或1 0 为止 舍入处理 0舍1入 法 如果右移时被丢掉数位的最高位为0则舍去 为1则将尾数的末位加 1 恒置一 法 只要数位被移掉 就在尾数的末尾恒置 1 就近舍入 其实质就是通常所说的 四舍五入 朝0舍入 即朝数轴原点方向舍入 就是简单的截尾 朝 舍入 对正数来说 只要多余位不全为0则向最低有效位进1 对负数来说则是简单的截尾 朝 舍入 对正数来说 只要多余位不全为0则简单截尾 对负数来说 向最低有效位进1 106 溢出及处理浮点数的溢出通常是以其阶码的溢出表现出来的 当机器浮点数值大于最大正数 或小于最小负数时 称为上溢 上溢时阶码运算值超出了它所表示的范围 机器必须做中断处理 当机器浮点数值小于最小正数a值 或大于最大负数b值时 称为下溢 下溢通常看作为机器零 溢出的处理 阶码上溢 阶码超过了阶码可能表示的最大值的正指数值 一般将其认为是 和 阶码下溢 阶码超过了阶码可能表示的最小值的负指数值 一般将其认为是0 尾数上溢 两个同符号尾数相加产生了最高位向上的进位 将尾数右移 阶码增1来重新对齐 尾数下溢 在将尾数右移时 尾数的最低有效位从尾数域右端流出 要进行舍入处理 107 二 浮点数的乘 除法运算 运算规则设有两个浮点数 和 2E M 2E M 浮点乘法运算的规则是 2 E E M M 浮点除法运算的规则是 2 E E M M 108 乘 除法运算步骤浮点数的乘除运算大体分为以下几个步骤 0操作数检查 阶码加 减操作 尾数乘 除操作 结果规格化 舍入处理 移码运算移码加 减法运算的公式为 移 移 补 移 移 补上面公式表明执行阶码加减时 对加数或减数 来说 应送移码符号位正常值的反码 109 如果阶码运算的结果溢出 上述条件则不成立 双符号位的阶码加法器 规定移码的第二个符号位 即最高符号位恒用0参加加减运算 则溢出条件是结果的最高符号位为1 此时 当低位符号位为0时 表明结果上溢 为1时 表明结果下溢 当最高符号位为0时 表明没有溢出 此时 当低位符号位为1 表明结果为正 为0时 表明结果为负 110 三 浮点运算流水线 流水线原理计算机的流水处理过程同工厂中的流水装配线类似 为了实现流水 首先必须把输入的任务分割为一系列的子任务 使各子任务能在流水线的各个阶段并发地执行 将任务连续不断地输入流水线 从而实现了子任务的并行 流水处理可以大幅度地改善计算机的系统性能 是在计算机上实现时间并行性的一种非常经济的方法 在流水线中 原则上要求各个阶段的处理时间都相同 若某一阶段的处理时间较长 势必造成其他阶段的空转等待 因此对子任务的划分 是决定流水线性能的一个关键因素 它取决于操作部分的效率 所期望的处理速度 以及成本价格等等 111 线性流水线 假定作业T被分成k个子任务 可表达为T T1 T2 Tk 各个子任务之间有一定的优先关系 若i j 则必须在Ti完成以后 Tj才能开始工作 具有这种线性优先关系的流水线称为线性流水线 线性流水线处理的硬件基本结构如图2 17所示在线性流水线中 处理一个子任务的过程为过程段 Si 线性流水线由一系列串联的过程段组成 各个过程之间设有高速的缓冲寄存器 L 以暂时保存上一过程子任务处理的结果 在一个统一的时钟 C 控制下 数据从一个过程段流向相邻的过程段 112 设过程段Si所需的时间为 i 缓冲寄存器的延时为 l 线性流水线的时钟周期定义为 max i l m l故流水线处理的频率为f 1 在流水线处理中 当任务饱满时 任务源源不断的输入流水线 不论有多少级过程段 每隔一个时钟周期都能输出一个任务 从理论上说 一个具有k级过程段的流水线处理n个任务需要的时钟周期数为Tk k n 1 其中k个时钟周期用于处理第一个任务 k个周期后 流水线被装满 剩余的n 1个任务只需n 1个周期就完成了 用非流水线的硬件来处理这n个任务 时间上只能串行进行 则所需时钟周期数为TL n k 113 将TL和Tk的比值定义为k级线性流水线的加速比 TK n k k n 1 当n k时 Ck k 这就是说 理论上k级线性流水线处理几乎可以提高k倍速度 但实际上由于存储器冲突 数据相关 这个理想的加速比不一定能达到 114 流水线浮点加法器浮点数加减法由0操作数检查 对阶操作 尾数操作 结果规格化及舍入处理共4步完成 因此流水线浮点加法器可由4个过程段组成 图2 19仅示出了除0操作数检查之外的3段流水线浮点加法器框图 115 四 浮点运算器实例 之外的浮点运算器80 87是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器 由于它们的算术运算是配合80 86CPU进行的 所以又称为协处理器 80 87浮点运算器的特点和内部结构 以异步方式与80386并行工作 80 87相当于386的一个I O部件 本身有它自己的指令 但不能单独使用 它只能作为386主CPU的协处理器才能运算 可处理包括二进制浮点数 二进制整数 和压缩十进制数串三大类7种数据 其中浮点数的格式符合IEEE754标准 全部数据在80 87中均以80位临时数据的形式表示 因此80 87具有80位字长的内部结构 并有八个80位字长以 先进后出 方式管理的寄存器组 又称寄存器堆栈 116 80 87中有处理浮点数指数部分的部件和处理尾数部分的部件 还有加速移位操作的移位器路线 它们通过指数总线和小数总线与八个80位字长的寄存器堆栈相连接 80 87内部还设置了三个各为16位字长的寄存器 即特征寄存器 控制寄存器和状态寄存器 之内的浮点运算器奔腾CPU将浮点运算器包含在芯片内 浮点运算部件采用流水线设计 指令执行过程分为8段流水线 前4段为指令预取 DF 指令译码 D1 地址生成 D2 取操作数 EX 在U V流水线中完成 后4段为执行1 X1 执行2 X2 结果写回寄存器堆 WF 错误报告 ER 在浮点运算器中完成 一般情况下 由U流水线完成一条浮点数操作指令 117 118 119 第三章内部存储器 存储器 计算机中记录信息的设备 用于存放程序和数据 构成存储器的存储介质 目前主要采用半导体器件和磁性材料 120 第一节存储器概述 一 存储器分类存储器中最小的存储单位就是一个双稳态半导体电路或一个CMOS晶体管或磁性材料的存储元 它可存储一个二进制代码 由若干个存储元组成一个存储单元 然后再由许多存储单元组成一个存储器 能构成存储元的材料或电路的特征 具有两种稳定状态两种稳定状态经控制信号可以转换能读出其中的信息无外部原因 其状态能够长期保存 121 根据存储材料的性能及使用方法不同 存储器有各种不同的分类方法 按存储介质分半导体存储器 用半导体器件组成的存储器 磁表面存储器 用磁性材料做成的存储器 按存储方式分随机存储器 任何存储单元的内容都能被随机存取 且存取时间和存储单元的物理位置无关 顺序存储器 只能按某种顺序来存取 存取时间和存储单元的物理位置有关 按存储器的读写功能分只读存储器 ROM 存储的内容是固定不变的 只能读出而不能写入的半导体存储器 随机读写存储器 RAM 既能读出又能写入的半导体存储器 122 按信息的可保存性分非永久记忆的存储器 断电后信息即消失的存储器 永久记忆性存储器 断电后仍能保存信息的存储器 按在计算机系统中的作用分根据存储器在计算机系统中所起的作用 可分为主存储器 辅助存储器 高速缓冲存储器 控制存储器等 二 存储器的分级结构为了解决对存储器要求
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西壮族自治区2026注册营养技师考试(专业知识)全真冲刺试题及答案
- 2026注册营养师水平考试复习资料(专业知识)强化练习题及答案
- 2026年注册营养师考试(专业知识)练习试题及答案(辽宁省)
- 2026年新余一级造价工程师职业资格考试(建设工程技术与计量、安装工程)模拟试题及答案
- 2026年江苏省公共营养师(四级、中级理论知识)考试模拟试题及答案
- 月子护理公司税务管理制度
- 月子护理公司经营活动合规管理制度
- 2026年广东省公共营养师(四级、中级理论知识)考试全真冲刺试题及答案
- 2026年北京语言大学网络教育高起本计算机基础入学测试模拟题及答案
- 广东省汕头市龙湖区2024-2025学年九年级上学期期末考试化学试题(含答案)
- 车间夜间值班管理制度
- 2025年电工(中级)职业技能鉴定参考试指导题库(含答案)
- 2024继电保护作业指导书
- 劳务派遣投标方案(技术方案)
- 信息通信网络运行管理员(高级)理论考试题库(学员用)
- 《心脏骤停》课件
- 多孔功能陶瓷制备与应用
- 浮游选煤 课件
- 钢结构除锈刷漆施工方案
- 产品责任保险保单
- (完整word版)北京市住院医师规范化培训线上课程答案全科医学题库
评论
0/150
提交评论