计算机组成原理 (2)ppt课件.ppt_第1页
计算机组成原理 (2)ppt课件.ppt_第2页
计算机组成原理 (2)ppt课件.ppt_第3页
计算机组成原理 (2)ppt课件.ppt_第4页
计算机组成原理 (2)ppt课件.ppt_第5页
已阅读5页,还剩303页未读 继续免费阅读

下载本文档

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

文档简介

计算机组成原理 引言 计算机组成 主要指计算机硬件的具体实现方式及工作原理从三方面掌握本课程内容硬件结构 从物理上 逻辑上掌握计算机各部件和器件的构成和作用实现方式 硬件联接形式和内部处理方式 如控制器 运算器的实现方式等 工作原理 计算机各部分内部工作过程 本课程的重要地位本课程是计算机及相关专业的核心专业基础课 对后续课程 操作系统 接口与通信等 的学习十分重要 考研必考课程 通过课程的学习主要掌握以下内容本课程主要讲授单处理机系统的组成及工作原理 分析和说明计算机由哪些功能部件组成 结构 各功能部件在整机中的作用 以及它们如何完成各自所分配的任务 工作原理 学习难点内容较多 结构复杂 要有数字逻辑的基础学习思路 方法 分析结构 弄清原理 多做练习 课程教材与参考书马洪连 王健 王立明等 计算机组成原理 机械工业出版社白中英主编 计算机组成原理 第四版 科学出版社唐朔飞 计算机组成原理 第2版 高等教育出版社王爱英 计算机组成与结构 第4版 清华大学出版社 主要内容计算机系统概述 计算机基础 基本概念 计算机中数据信息的表示及运算 数制及转换 计算机中数据的表示和编码 包括数值 非数值数据 整数 小数 汉字 校验码等 计算机中运算方法 定点运算 浮点运算 逻辑运算 运算器及实现 存储系统 存储器芯片的结构与工作原理 存储器的组织与连接 高速存储器 虚拟存储器等 指令系统 指令格式 寻址方式 典型指令 中央处理器 CPU的组成及工作原理 控制器的组成及工作原理 指令流水线 总线系统 总线概念 总线技术 外围设备 典型外围设备基本工作原理 输入输出系统 输入输出设备 接口 输入输出控制方式 第一章计算机系统概论 第一节计算机发展历程 1 1 1古代计算阶段 计算机工具的发展可分为古代计算机阶段和现代计算阶段 算盘计算尺 1945年 美籍数学家冯 诺依曼博士发表 电子计算工具逻辑设计 论文 提出二进制表达方式和存储程序控制计算机构想 1946年 美国宾西法尼亚大学研制成功电子数字计算机ENIAC 重约30吨 耗电150kW 占地170平方米 用电子管18800个 每秒5000次加法 1 1 2现代计算阶段 现代计算机的发展大致分为四阶段 第一代电子管时代 1946 1958 耗电高 体积大 定点计算 机器语言 汇编语言第二代晶体管时代 1958 1965 变集中处理为分级处理 浮点运算 高级语言第三代中小规模集成电路时代 1965 1970 存储容量大 运算速度快 几十至几百万次 秒第四代大规模集成电路时代 1971至今 向大型机和微型机两个方向发展现代计算机发展方向 巨型化 微型化 网络化 智能化 多媒体化 多核 摩尔定律 第二节计算机层次结构 计算机的基本部件有中央处理器CPU 运算器和控制器 存储器和输入设备 输出设备 早期运算器和控制器为两部分 现在集成在一起 存储器用来存放程序和数据 是计算机各种信息的存储和交流中心 存储器可与CPU 输入输出设备交换信息 输入设备用来输入原始数据和处理这些数据的程序 输入的信息有数字符 字母和控制符等 输出设备用来输出计算机的处理结果 可以是数字 字母 表格 图形等 1 2 1计算机硬件基本组成及特点 典型冯 诺依曼 VonNeumann 机结构 计算机的基本结构图 数据线路 控制信号 冯 诺依曼机的基本特点 计算机由运算器 控制器 存储器 输入设备和输出设备五部分组成 机器以运算器为中心 数据传送都经过运算器 采用存储程序的方式 程序和数据放在同一存储器中 由指令组成的程序可以修改 指令在存储器中按执行顺序存放 由指令计数器指明要执行的指令所在的单元地址 一般按顺序递增 数据以二进制码表示指令由操作码和地址码组成 软件硬件完全分开 计算机中的各种程序 数据和有关文档构成计算机的软件系统 计算机软件的主要任务 计算机资源的管理计算机语言和机器语言的转换用户的一般任务计算机的软件一般分为两大类 系统软件 便于计算机使用的系统管理程序 包括操作系统 语言处理 数据库管理系统等 应用软件 针对用户具体实际应用的程序 1 2 2计算机的软件及其分类 层次结构 计算机系统是一个复杂的软 硬件结合体 它包含硬件系统和软件系统两部分 它通常由6个 或5个 不同的级组成 在每一级都能够进行程序设计 虚拟机 1 2 3计算机系统的层次结构 数字逻辑层微体系结构层机器指令层操作系统软件层汇编语言层高级语言层 第三节计算机的分类及应用 1 3 1计算机的分类按计算机信息表示形式和对信息处理方式 计算机可分为机器式计算机和电子计算机 电子计算机又可分为数字计算机 模拟计算机和混合计算机 现在所说计算机通常是指数字计算机按计算机的用途不同 计算机分为通用计算机和专用计算机 按计算机速度 存储容量 功能强弱分类 巨型机 又称为超级计算机 世界少数国家生产 2010年11月 我国 天河一号 以峰值速度4700万亿次 秒 持续速度2570万亿次 秒浮点运算的性能居36届世界超级计算机TOP500第一 2011年6月 第37届TOP500排行榜 日本 京 以每秒8162万亿次的实测运算速度跻身榜首 天河一号 排名第二 大中型机 大中型企事业单位作为计算中心的主机使用 统一调度主机资源 代表产品有IBM390 4300系列等 小型机 满足部门性的需求 供小型企事业单位使用 典型产品有DEC PDP系列 DEC VAX系列等 工作站 用于特殊的专业领域 例如图像处理和辅助设计等 典型产品有HP APOLLO SUN工作站等 微型机 个人或家庭使用 PC机 个人计算机 价格低廉 计算机的应用领域主要表现在以下六方面 科学计算数据处理计算机辅助技术过程控制人工智能网络应用 1 3 2计算机的应用 第四节计算机的性能指标 处理机字长 指计算机内 表示一个操作数或一条指令所用的基本二进制位数 是CPU一次能处理的数据宽度 与加法器 寄存器的位数和内部数据总线的宽度等有关 字长标志着精度 字长越长 运算精度越高 影响计算机的处理能力和运行性能 通常选字节的整数倍 2 4 8倍等 主存容量 计算机主存储器所能够存储的信息的全部总量 称为主存容量 以字节数来表示存储容量的计算机称为字节编码计算机 而以字为单位编址的计算机 存储容量等于字数乘以字长 主频 每台计算机的内部都有一个不断地产生固定频率时钟脉冲的装置 称为主时钟 主时钟的频率通常是机器的主频率 主频率是衡量一台计算机速度的重要参数 2 主频 CPU时钟周期 CPI CPU执行时间 1 主频 CPU工作主时钟的频率 机器主频f或Rc 2 CPU时钟周期 机器主频的倒数 Tc 3 CPI 执行一条指令所需要的平均时钟周期 4 CPU执行时间 TCPU In CPI TcIn执行程序中指令的总数 CPI执行每条指令所需的平均时钟周期数 TC时钟周期时间的长度 3 MIPS MFLOPS 1 MIPS MillionInstructionsPerSecond CPU每秒钟平均执行的整数指令条数 百万条 MIPS In TCPU 106 In In CPI Tc 106 Rc CPI 106 In 执行该程序的总指令数 TCPU 执行该程序的总时间 Tc CPU时钟周期 Rc 主频Rc 1 TcMIPS只适合评价标量机 不适合评价向量机 标量机执行一条指令 得到一个运行结果 而向量机执行一条指令 可以得到多个运算结果 2 MFLOPS MillionFloatingPointOperationsPerSecond 每秒钟平均执行的浮点数的运算次数 百万次 MFLOPS Ifn TCPU 106 Ifn 程序中浮点数的运算次数MFLOPS测量单位比较适合于衡量向量机的性能 一般而言 同一程序运行在不同的计算机上时往往会执行不同数量的指令数 但所执行的浮点数个数常常是相同的 单项选择题 1 完整的计算机系统应包括 A 运算器 存储器 控制器B 外部设备和主机C 主机和实用程序D 配套的硬件设备和软件系统答案 D2 至今为止 计算机中的所有信息仍以二进制方式表示的理由是 A 节约元件B 运算速度快C 物理器件的性能决定D 信息处理方便答案 C3 从器件角度看 计算机经历了四代变化 但从系统结构看 至今绝大多数计算机仍属于 型计算机 A 并行B 冯 诺依曼C 智能D 实时处理答案 B4 冯 诺依曼机工作的基本方式的特点是 A 多指令流单数据流B 按地址访问并顺序执行指令C 堆栈操作D 存储器按内容选择地址答案 B 练习 5 冯 诺依曼型计算机的基本工作方式是 A 单指令流多数据流方式B 控制流启动方式C 多指令流多数据流方式D 数据流启动方式答案 B6 微型计算机的发展一般是以 技术为标志 A 操作系统B 微处理器C 磁盘D 软件答案 B7 我们目前所说的个人台式商用机属于 A 巨型机B 中型机C 小型机D 微型机答案 D8 Pentium42 0G的CPU中 2 0G是指 A 每秒执行2G条指令B 系统时钟频率2 0GHzC 每条指令耗时2 sD CPU主频为2 0GHz答案 D 9 下列说法中不正确的是 A 可以由软件实现的操作也可以由硬件来实现B 固件就功能而言类似于软件 从形态上说又类似于硬件C 在计算机系统的层次结构中 微程序属于硬件级别 其他各级都是软件级D 面向高级语言的机器是完全可以实现的答案 C10 下列选项中 描述浮点数操作速度指标的是 A MIPSB CPIC IPCD MFLOPS答案 D 第二章计算机中的数据信息表示和运算 第一节数制与编码2 1 1数制及转换1 数制常用数制十进制 D 日常使用数制二进制 B 数字计算机内部使用数制十六进制 H 为使于对二进制的阅读和书写 常采用十六进制 或八进制 表示 一 数制及相互转换1 数制常用数制十进制 D 日常使用数制二进制 B 数字计算机内部使用数制十六进制 H 为使于对二进制的阅读和书写 常采用十六进制 或八进制 表示 对一任意数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位的位权 347 8 3 82 4 81 7 80 231 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 2 不同数制间的转换1 十进制 八 十六进制 二进制法则整数部分 除8 16 取余数小数部分 乘8 16 取整重复循环 2 八 十六进制 二进制二进制 八进制以小数点为界 分别向左和向右每三位分为一组 然后写出各组对应的八进制数 二进制 十六进制以小数点为界 分别向左和向右每四位分为一组 然后写出各组对应的十六进制数 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 2 1 2数值数据的编码与表示一 真值与机器数在计算机中对数据进行运算操作时 符号位的表示 符号位是否也同数值位一道参加运算 如何参加运算 为了妥善的处理好这些问题 就需要把符号位和数字位一起编码表示数据 为适应不同的处理要求 产生了多种数据编码方法 如原码 补码 反码 移码等 计算机中对数据的表示都采用二进制编码真值 数值数据的实际值 如257 33 1011B等机器数 机器码 数值数据在计算机内的编码表示 在计算机中通常采用原码 补码 反码和移码表示数值数据原码 补码 反码的共性 1 这几种编码表示中 正数的编码值与真值一样 负数具有不同的编码 2 编码的最高位为符号位 0表示正1表示负 1 原码表示法符号位 0表示正 1表示负数值部分 与真值的二进制形式一样原码的特征 1 零有两种表示 0和 0 0 原 0 000 0 0 原 1 000 02 优点 简单直观 便于乘 除法运算缺点 加减法运算不便 符号不能直接参预运算 实例 X1 0 1011 0 10110 0000 X 原 01011110110000010000说明 原码是符号位加数的绝对值 符号0正1负原码零有两个编码 0和 0的编码不同原码难以用于加减运算 但乘除方便 纯小数 原码的定义与说明 定义 1 2 n 1 X 0 0 X 1 2 n 1 2 反码表示法符号位 0表示正 1表示负数值部分 正数不变 负数反码是将真值的各位取反得到反码的特征 1 零有两种表示 0和 0 0 反 0 00 0 0 反 1 11 12 通常用于求补码 3 补码表示法符号位 0表示正 1表示负数值部分 正数不变 负数通过求补得到计算机中数值数据采用补码形式 其符号部分可以直接参预加 减法运算 补码的特征 1 零的表示唯一2 补码加减法运算中 符号直接参预运算3 定点小数表示中 1 补 1 00 0 实例 X1 0 1011 0 10110 0000 X 补 010111010100000说明 补码最高一位是符号位 符号0正1负补码表示为 2 符号位 数的真值补码零只有一个编码 故能表示 1补码能很好地用于加减 乘除 运算 纯小数 补码的定义与说明 定义 1 X 0 Mod2 0 X 1 2 n 1 补码的一些补充说明 得到一个数补码表示的简便办法当X 0时 X 补的符号位取0 数值位取X的各数值位上的值 此时有 X 补 X当X 0时 X 补的符号位取1 将X的各数值位取反 再在最低位加1 以得到 X 补的各数值位上的值 X 原与 X 补的相互转换简便方法从 X 原求 X 补时 对正数或零 有 X 补 X 原 对负数则符号位不变 各数值位变反后再在最低位执行加1操作由 X 补求 X 原时 对负数仍是符号位不变 各数值位变反后再在最低位执行加1操作 已知 y 补如何简单求 y 补 X为真值 整数的机器数 n位字长 1位符号位 n 1位数值位 2n 1 1 X 0 0 X 2n 1 1 2n 1 1 X 0 0 X 2n 1 1 2n 1 X 0 0 X 2n 1 1 mod2n 设机器数字长为8位 含1位符号位 表示整数时 每个编码分别代表无符号数 原码 补码和反码的真值各为多少 移码表示法移码通常用于表示浮点数的阶码 阶码是个n位的整数 n 1位移码的定义是 移 2n 2n 2n符号位 1表示正 0表示负数值部分 与补码数值部分相同移码的特征 1 零的表示唯一 100 002 移码只能表示整数 只有整数有移码 用于浮点数阶码表示5 无符号数的表示 例 写出下列各数 位的原码 反码 补码 移码表示 77 103 0 01101 23 6477 1001101 103 23 64 10111 2 6 0 010111 例 写出下列机器码的真值 x1 原 0 110101 x2 原 x3 反 1 010101 x4 反 0 000101 x5 补 1 010101 x6 补 0 000101 x7 补 1 000000 x8 补 x3 移 1010101 x4 移 二 数值数据和信息的表示 逻辑型数据字符型数据ASCII码EBCDIC码字符串汉字数值型数据定点小数整数浮点数二 十进制数 BCD码 1 二 十进制码 BCD码 BCD码 计算机中采用4位二进制码对每个十进制数位进行编码 一个多位的十进制数被表示为这种编码的数串 4位二进制码有16种不同的组合 从中选出10种来表示十进制数位的0 9 用0000 0001 1001分别表示0 1 9 每个数位内部满足二进制规则 而数位之间满足十进制规则 故称这种编码为 以二进制编码的十进制 BinaryCodedDecimal 简称BCD 码 BCD码 BCD码有多种不同的编码方案 例如 8421码 84 2 1码 余3码 格雷码 可以进一步分为有权码和无权码 有权码 每位上的1代表确定的值无权码 无法确定每位上的1代表的值 BCD码加法运算的修正规则 如果两个一位BCD码相加之和小于或等于9 不需要修正 如相加之和大于9或产生进位 要进行加6修正 如果有进位 要向高位进位 2 字符及字符串的表示 字符作为人 机联系的媒介 是最重要的数据类型之一 当前的西文字符集由128个符号组成 通常用8位二进制编码 即用一个字节来表示一个字符 常用两个标准字符集 EBCDIC码 ExtendedBinaryCodedDecimalInterchangeCodeASCII码 AmericanStandardCodeforInformationInterchangeASCII码用7位二进制表示一个字符 总共128个字符元素 包括10个十进制数字 0 9 52个英文字母 A Z和a z 34个专用符号和32个控制符号 ASCII码字符集具体编码如下表所示 ASCII码字符集 字符串是指连续的一串字符 它们占据主存中连续的多个字节 通常每个字节存放一个字符 字符串的存放串表存储法 字符串的每个字符代码后面设置一个链接字 用于指出下一个字符的存储单元的地址 向量存储法 字符串存储时 字符串中的所有元素在物理上是邻接的 对一个主存字的多个字节 有按从低位到高位字节次序存放的 也有按从高位到低位字节次序存放的 表示字符串数据要给出串存放的主存起始地址和串的长度 例如 IFA BTHENREAD C 就可以有如下不同存放方式 3 汉字的表示与编码 通常用两个字节表示一个汉字 为了与西文字符编码相区别 西文的ASCII码的最高一位编码值为0 表示一个汉字时 把两个字节的最高一位的编码值设定为1 则该编码集的最多编码数量为128 128 汉字的表示方法 汉字内码内码是用于汉字信息的存储 交换 检索等操作的机内代码 它一般采用两个字节的二进制形式表示一个汉字 汉字输入编码输入编码是为了使用西文标准键盘把汉字输入到计算机中 其编码方法主要有数字编码 字音编码和字型编码等 汉字字模编码字模编码 以点阵方式描述汉字字型的代码 它是汉字的输出形式 国标码 区位码 2020H机内码 国标码 8080H 2 1 3校验码 在计算机中 为保证信息存取和传送的准确 一方面需要硬件电路的可靠性保障 另一方面可以通过对传输的数据 信息进行判断校验 发现和纠正数据存储和传输过程中的错误 一 校验码基本概念 校验位 在有效信息数据代码之外 再扩充几位 增加的部分称为冗余位或校验位 码字 若干位二进制代码组成的一个字 码制 包含若干种码字的集合 距离 在一种码制中将其中任意两个码字逐位比较 这两个码字各对应的位中数值不同的位数就叫做这两个码字之间的 距离 码距 将一种码制中各码字间的最小距离定为这种码制的 码距 合理增大码距 能提高发现错误的能力 但表示一定数量的合法码所使用的二进制位数要变多 增加了电子线路的复杂性和数据存储 数据传送的数量 常用的校验码 奇偶校验码 用于并行数据传送中海明校验码 用于并行数据传送中循环冗余校验码 用于串行数据传送中 运行过程的3步曲 二 奇偶校验码 实现原理 是使码距由1增加到2 若编码中有1位二进制数出错了 出错的编码就成为非法编码 就可以知道出现了错误 在原有的编码之上再增加一位校验位 原编码k位 形成新的编码为k 1位 增加的方法有2种 奇校验 增加位的0或1要保证整个编码中1的个数为奇数个 偶校验 增加位的0或1要保证整个编码中1的个数为偶数个 奇偶校验码的实现电路 奇校验偶校验 偶校验出错指示 奇校验出错指示 三 循环冗余校验码 CRC CRC CyclicalRedundancyCheck 校验码一般是指k位信息之后拼接r位校验码 关键问题是如何从k位信息得到r位校验码 进一步 如何从k r位码字判断是否出错 哪位出错 用于多位串行数据传送中的检错 纠错处理 在k位数据位串行移位输出的过程中 用带有异或门控制的移位寄存器形成r个校验位的值 跟随在数据位之后传送走 在接收端再对k r位的码字进行合法与出错检查 若可能则自动改错 CRC码的编码方法 CRC整个编码长度为n k r位 故CRC码又叫 n k 码 其编码方法如下 假设被传送的k位二进制信息位用C x 表示 系统选定的生成多项式用G X 表示 将C x 左移G X 的最高次幂 即等于需要添加的校验位的位数r 写作C x 2r然后将C x 2r除以生成多项式G x 所得商用Q x 表示 余数用R x 表示 则有 两边同时乘以G x 并左移R x 得到 故有 上式中 等式左边即为所求的n位CRC码 其中余数表达式R x 就是校验位 r位 且等式两边都是G x 的倍数 发送信息时将等式左边生成的n位CRC码送给对方 当接收方接到n位编码后 同样除以G x 如果传输正确则余数为0 否则 可以根据余数的数值确定是哪位数据出错 CRC编码采用的是按位加 减法 即不考虑进位与借位 运算规则为 0 0 0 0 1 1 1 0 1 1 1 0 例 有一个 7 4 码 即CRC码为7位 信息码为4位 已确定生成多项式为 G X X3 X 1 1011被传输的信息C x 1001 求C x 的CRC码 解 C x 左移r n k 3位即将上式模2采用除法除以给定的G x 1011 1001000 1011 1010 110 1011得到余数表达式 R x 110所求CRC码 A B CRC码的查错表 收到的CRC码除以约定的生成多项式G x 如果余数为0则传输无误 否则传输错误 根据所得余数值就可找出错误并取反纠正 上表详细说明了CRC码在传送时某一位出错后的判断与纠正方法 C X 1001 G x 1011 生成多项式G x 的确定 G x 是一个约定的除数 用来产生校验码 从检错和纠错的要求出发 它并不是随意选择的 为了得到r位余数 G x 必须是r 1位 应满足下列要求 任何一位发生错误都应使余数不为0 不同位发生错误应使余数不同 余数继续模2除 应使余数循环 第二节定点数的表示和运算 定点数 在计算机中 小数点位置固定不变的数 1 无符号数的表示机器字长的全部位数均用来表示数值的大小 相当于数的绝对值 对于字长为n位的无符号数的表示范围为 0 2n 1 2 带符号数的表示在计算机中将数的符号数码化 一般规定二进制的最高位为符号位 最高位为 0 表示该数为正 为 1 表示该数为负 这种在机器中使用符号位也被数码化的数称为机器数 根据符号位和数值位的编码方法不同 机器数分为原码 补码和反码等 定点整数 定点小数 2 2 1定点数的表示 数值范围和数据精度 数值范围数值范围是指一种类型的数据所能表示的最大值和最小值 数据精度通常指实数所能给出的有效数字位数 对浮点数来说 精度不够会造成误差 误差大量积累会出问题 定点数的表示定点表示 约定机器中所有数据的小数点位置是固定不变的 由于约定在固定的位置 小数点就不再使用记号 来表示 通常将数据表示成纯小数或纯整数 n 1位定点数表示 X0X1X2X3 Xi Xn 2Xn 1Xn其中X0为符号位 X Xn为数值部分 Xi为 或 1 定点小数最高位为符号位 小数点位置隐含约定在符号位后 其后为数值部分n 1位定点小数的表示范围是0 X 1 2 n或 1 2 n X 1 2 n 16位小数范围 1 2 X 1 2 2 定点整数最高位为符号位 其后为数值部分 小数点位置隐含约定在数值部分的后面 n 1位定点整数的表示范围是0 X 2n 1或 2n 1 X 2n 1 16位整数范围 215 1 X 215 1 计算机中的各种运算处理可以根据算法分解为四则运算和基本的逻辑运算 四则运算可以归结为加法和移位操作处理实现 2 2 2定点数的运算 1 补码加法负数用补码表示后 可以和正数一样来处理 这样 运算器里只需要一个加法器就可以了 不必为了负数的加法运算 再配一个减法器 补码加法的公式是 补 补 补 mod2 补码加法的特点 符号位要作为数的一部分一起参加运算 要在模2的意义下相加 即超过2的进位要丢掉 补码减法负数的减法运算也要设法化为加法来做 其所以使用这种方法而不使用直接减法 是因为它可以和常规的加法运算使用同一加法器电路 从而简化了计算机的设计 数用补码表示时 减法运算的公式为 补 补 补 补 补在实际计算时 利用 补 补 补公式将减法运算变为加法进行 现在的问题是如何从 y 补去求 y 补这一点在硬件上实现也很简单 只需对 y 补包括符号位 求反且最末位加1 简称 求反加 即可得到 y 补 实现补码加减运算的逻辑电路 加 0 实现补码加运算的执行过程 X X Y完成加运算 需要把被加数和加数送ALU的输入端 运算结果要接收到累加器 需要给出命令 加数 10110001 0 0 命令建立 数据传送 加运算 存结果 命令建立 0 数据传送 命令建立 实现补码减运算的逻辑电路 1 3 溢出判断与移位 1 溢出判断方法当运算结果超出机器数所能表示的范围时 称为溢出 在定点机中 正常情况下溢出是不允许的 上溢 两个正数相加 结果大于机器所能表示的最大正数 称为上溢 下溢 两个负数相加 结果小于机器所能表示的最小负数 称为下溢 一旦溢出 运算结果就不正确了 因此必须将溢出的情况检查出来 主要判别方法 单符号位 当任意符号两数相加时 设Cf为最高数值位的进位 Cs为符号位的进位 若Cf Cs 运算结果正确 若Cf Cs 则产生溢出 溢出条件 OV Cs Cf 双符号 双符号补码 也称为 变形补码 或 模4补码 其定义为 补 2 04 0 2采用变形补码后 正数的符号位为00 负数的符号位为11 当运算结果符号不为00或11时 说明产生了溢出 假设变形补码 第一符号位Sf1 第二符号位Sf2 正数的双符号位为00 负数的双符号位为11 符号位参与运算 当结果的两个符号位不相同时为溢出 溢出条件OV Sf1 Sf2 补码加减法溢出判断 方法一 单符号位 数值位有向符号位的进位 但符号位不产生向更高位的进位 数值位没有向符号位的进位 但符号位产生向更高位的进位方法二 双符号位 运算结果为01 正溢 或10 负溢 最高符号位Sf1代表其真正的符号 补码加减法运算实例 X 0 1011y 0 0101 X 补 001011 Y 补 111011模4补码 Y 补 000101001011001011 111011 0001011000110010000X Y 不溢出 X Y 溢出 正数加负数不会溢出符号位和数值位都产生进位双符号位结果相同不是溢出 正数加正数结果为负是溢出数值位有进位符号位无进位是溢出双符号位结果不相同是溢出 判断溢出的2套方案是一个事实的2种不同的表述 单符号位判断 数值位向符号位有进位但符号位无进位输出或数值位向符号位没有进位但符号位本身有进位输出是溢出 双符号位判断 运算结果的2个符号位的值不相同表明有溢出 2 移位操作移位是算术逻辑运算的一种基本操作 是将二进制代码向左或向右进行移动的操作 通常将移位分为逻辑移位和算术移位两大类 逻辑移位 将数字代码当成纯逻辑代码而没有数值的大小关系 算术移位 数字代码具有数值含义 通常左移一位实现乘2操作 右移一位实现除2操作 通常算术移位是针对补码表示 3 舍入处理对固定长度的数 右移会舍去低位部分 舍入处理是当出现要舍去低位部分时 按照怎样的方式或规则处理 尽量减少舍入造成的误差 常用的舍入方法 0舍1入 法 如果右移时被丢掉数位的最高位为0则舍去 为1则将尾数的末位加 1 恒置一 法 只要数位被移掉 就在尾数的末尾恒置 1 4 定点数的乘法运算 原码一位乘法 两个原码数相乘 其乘积的符号为相乘两数的异或值 数值为两数绝对值之积 补码一位乘法 乘法直接用补码进行 以减少转换次数 X 原 X0 X1X2 Xn X0为符号 Y 原 Y0 Y1Y2 Yn Y0为符号 原码一位乘运算方案 符号位异或 绝对值相乘 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 上式的实际操作为 累加 右移 原码一位乘运算方案 0 1101 0 1011110111010000 11010 10001111 解决方案 1 每次求出部分积 不是一次总累加2 变每次左移被乘数为右移部分积 移出的部分保存起来 保存到哪 3 乘数放到一个移位寄存器中 判乘数每一位的值用最低的一位线路 该方案用于计算机会有问题 1 加法器只有两个数据输入端2 加法器与乘运算数据位数相同3 如何判断乘数每一位是0或者1 例 X 0 1101 Y 0 1011 求X Y 最终乘积原码表示 010001111 手工运算过程 实现原码一位乘法的逻辑线路图 加法器 部分积 被乘数 乘数 F 最低位 加运算 移位线路每位1套 第i位 第i位 第i 1位 第i 1位 F 2 XF XF 2 X 移位电路 最高位 三选一电路 被乘数作为加数 用乘数最低位的值控制累加 结果右移一位存部分积寄存器 并且乘数同时右移一位 部分积的最低位移入到乘数的最高位 计数器Cd 原码一位乘运算过程举例 X 0 1101Y 0 1011 定点补码一位乘法 原码乘法存在的缺点是符号位需要单独运算 并要在最后给乘积冠以正确的符号 补码乘法是指采用操作数的补码进行乘法运算 最后乘积仍为补码 能自然得到乘积的正确符号 算法分析 则有 Y Y0 0 Y1Y2 Yn 可以得到 X Y 补 X 补 0 Y1Y2 Yn X 补Y0 符号位 X 补 X0 X1X2 Xn Y 补 Y0 Y1Y2 Yn 补码一位乘法的递推形式 X Y 补 X 补 0 Y1Y2 Yn X 补Y0 X 补 0 Y1Y2 Yn X 补Y0 X 补 Y0 2 1Y1 2 2Y2 2 nYn X 补 Y0 Y1 2 1Y1 2 1Y2 2 2Y2 2 n 1 Yn 2 nYn X 补 Y1 Y0 2 1 Y2 Y1 2 2 Y3 Y2 2 n Yn 1 Yn Y1 Y0 X 补 2 1 Y2 Y1 X 补 2 1 Y3 Y2 X 补 2 1 2 1 Yn 1 Yn X 补 0 其中Yn 1 0 补码一位乘法的递推形式 P0 补 0 Yn 1 0 P1 补 2 1 P0 补 Yn 1 Yn X 补 P2 补 2 1 P1 补 Yn Yn 1 X 补 Pn 补 2 1 Pn 1 补 Y2 Y1 X 补 X Y 补 Pn 1 补 Pn 补 Y1 Y0 X 补 Yn 高位 Yn 1 低位 操作 A补为部分积累加和 00011011 1 2A补1 2 A补 X 补 1 2 A补 X 补 1 2A补 0 1 1 0 布斯算法 在乘数Yn后添加Yn 1 0 按照Yn 1 Yn相邻两位的三种情况 其运算规则如下 右移一位 Booth算法运算规则 部分积A 被乘数B取双符号位 符号位参加运算 乘数C取单符号位 符号参加移位 以决定最后是否修正 C末位设置附加位Cn 1 初值为0 CnCn 1组成判断位 决定运算操作 作n步循环 第n 1步 可能不用 由 Y1 Y0 决定 仅修正 不移位 例 X 0 1101 Y 0 1011 求 X Y 补 初值 A 00 0000 B X 补 11 0011 B X 补 00 1101 C Y 补 0 1011 计算过程 0000000 10110初始值 最后一位补0001101Y4Y5 10 X 补001101000110101011右移一位000000Y3Y4 11 0000110000011010101右移一位110011Y2Y3 01 X 补110110111011001010右移一位001101Y1Y2 10 X 补001000000100000101右移一位110011Y0Y1 01 X 补1101110001 部分积乘数YYiYi 1说明 乘积高位乘积低位 X Y 补 1 01110001 X Y 0 10001111 不移位 阵列乘法器为提高乘法运算的处理速度 现在计算机的乘法器通常采用由多个全加器构成的阵列乘法器实现 设有两个不带符号的二进制整数 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的数值为 实现这个乘法过程所需要的操作 其中的aibj实际为ai与bj的逻辑与 5X5位阵列乘法器 阵列乘法器构成 m位被乘数 n位乘数的阵列乘法器可由 m 1 n个全加器构成 为提高并行处理能力和速度 减少进位延迟时间 每行相加产生的进位向左斜向移到下一行前一位的全加器处理 5 带符号的阵列乘法器原理阵列乘法器只能处理原码的乘法运算 但在计算机中数据经常采用补码表示 为实现补码乘法运算 就需要采用带符号的阵列乘法器 带符号的阵列乘法器可借助无符号的阵列乘法器加上求实电路实现 求补电路对2求补时 可采用按位扫描技术来执行所需要的求补操作 从最后一位开始 找到出现的第一个 并保持该位不变 然后对前面所有的位求反 带求补器的阵列乘法器采用不带符号的阵列乘法器附加三个求补器构成 其中两个算前求补器的作用是 将两个操作数A和B在被不带符号的乘法阵列 核心部件 相乘以前 先变成正整数 算后求补器的作用则是 当两个输入操作数的符号不一致时 把运算结果变成带符号的数 5 定点除法运算 定点原码一位除法恢复余数法 被除数 余数 减去除数 如果为0或者为正值时 上商为1 不恢复余数 如果结果为负 上商为0 再将除数加到余数中 恢复余数 余数左移1位 加减交替法 当余数为正时 商上1 求下一位商的办法 余数左移一位 再减去除数 当余数为负时 商上0 求下一位商的办法 余数左移一位 再加上除数 例 设被除数X 0 1011 Y 0 1101 用原码加减交替法求X Y 解 设置寄存器 A寄存器中开始时存放被除数的绝对值 以后将存放各次余数 取双符号位 B寄存器存放除数的绝对值 取双符号位 C寄存器同来存放商 取单符号位 Y 补 00 1101 Y 补 11 0011 加减交替法处理思想 先减后判 如减后发现不够减 则在下一步改作加除数操作 要点 被除数 X 除数 Y 取原码尾数的绝对值相除 符号位单独处理 商的符号为相除两数符号的异或 被除数的位数要扩展成除数位数n的两倍 2n位 其低位的数值部分开始时放在商寄存器中 在具体运算中 放被除数和商的A C寄存器同时移位 并将商寄存器C中最高位移到被除数寄存器A的最低位中 00101100000开始情形110011 Y 补11111000000不够减 商上011110000000左移001101 Y00100100001够减 商上101001000010左移110011 Y 补00010100011够减 商上100101000110左移110011 Y 补11110100110不够减 商上011101001100左移001101 Y00011101101够减 商上1 被除数 余数R 被除数 商 操作说明 余数商 商X Y 0 1101 余数R 0 0111 计算过程 定点补码一位除法 加减交替法 如果被除数与除数同号 用被除数减去除数 若两数异号 被除数加上除数 如果所得余数与除数同号商上1 否则 商上0 该商为结果的符号位 求商的数值部分 如果上次商上1 将除数左移一位后减去除数 如果上次商上0 将余数左移一位后加除数 然后判断本次操作后的余数 如果余数与除数同号商上1 如果余数与除数异号商上0 如此重复执行n 1次 设数值部分n位 商的最后一位一般采用恒置1的办法 并省略了最低 1的操作 此时最大的误差为2 n 阵列除法器 可控加法 减法 CAS 单元可控加法 减法 CAS 单元 它将用于并行除法流水逻辑阵列中 它有四个输出端和四个输入端 当控制端P 0时 CAS作加法运算 P 1时 CAS作减法运算 可控加法 减法 CAS 单元 不恢复余数法的除法阵列不恢复余数法的除法阵列由一组可控加法 减法 CAS 单元的阵列来构成 根据原码不恢复余数法的法则 当余数为正时 商1 余数左移1位 减除数 当余数为负时 商0 余数左移1位 加除数 在不恢复余数法的除法阵列中 每行根据余数的有 无 借位 反映余数为负或正 确定商 并确定下一行进行余数减 加 除数的运算 4X4阵列除法器 第三节浮点数的表示和运算 1 浮点数的表示范围浮点数是指小数点位置可随比例因子的不同而浮动的数据 通常以下式表示 N M RE其中 N为浮点数 M为尾数 E为阶码 R称为 阶的基数 底 而且R为一常数 一般为2 8或16 在一台计算机中 所有数据的R都是相同的 于是不需要在每个数据中表示出来 2 3 1浮点数的表示格式 浮点数的机内表示 浮点数真值 N M 2E 浮点数的一般机器格式 数符阶符阶码值 尾数值 Ms是尾数的符号位 设置在最高位上 E为阶码 有n 1位 一般为整数 其中有一位符号位EJ 设置在E的最高位上 用来表正阶或负阶 M为尾数 有m位 为一个定点小数 Ms 0 表示正号 Ms 1 表示负 为了保证数据精度 尾数通常用规格化形式表示 当R 2 且尾数值不为0时 其绝对值大于或等于0 5 对非规格化浮点数 通过将尾数左移或右移 并修改阶码值使之满足规格化要求 1位1位n位m位 浮点数的规格化 字长固定的情况下提高表示精度的措施 增加尾数位数 但数值范围减小 采用浮点规格化形式 阶码通常为定点整数 补码或移码表示 其位数决定数值范围 尾数通常为定点小数 原码或补码表示 其位数决定数的精度 阶符表示数的大小 数符表示数的正负 尾数规格化 1 2 M 1 最高有效位绝对值为1 浮点数的机内表示 浮点数规格化方法 调整阶码使尾数满足下列关系 尾数为原码表示时 无论正负应满足1 2 MM 1 即1 0 x x 浮点数的溢出判断 根据规格化后的阶码判断上溢 浮点数阶码大于机器最大阶码 中断下溢 浮点数阶码小于机器最小阶码 零处理 浮点数的表示范围 2 2m 1 1 2 n 2 2m 1 2 n 未规 2 2m 1 1 2 n 2 2m 1 2 n 未规 215 1 2 10 2 15 2 10 2 15 2 10 215 1 2 10 上溢阶码 最大阶玛下溢阶码 最小阶码按机器零处理 例如 最大正数 215 1 2 10 最小正数 最大负数 最小负数 2 15 2 1 215 1 2 10 2 16 2 15 2 1 2 16 设m 4 n 10 尾数规格化后的浮点数表示范围 例 设某机器用32位表示一个实数 阶码部分8位 含1位阶符 用定点整数补码表示 尾数部分24位 含数符1位 用规格化定点小数补码表示 基数为2 给出X 256 5和Y 256 5的浮点表示形式 解 X 256 5 10 100000000 1 2 0 1000000001 2 9 28位阶码为 9 补 0000100124位尾数为 0 1000000001 补 0 10000000010000000000000X 256 5的浮点表示格式为 00000100110000000010000000000000 Y 256 5 10 100000000 1 2 0 1000000001 2 98位阶码为 9 补 0000100124位尾数为 0 1000000001 补 1 01111111110000000000000Y 256 5的浮点表示格式为 10000100101111111110000000000000 2 IEEE754标准 根据IEEE754国际标准 常用的浮点数有两种格式 单精度浮点数 32位 阶码8位 尾数24位 内含1位符号位 双精度浮点数 64位 阶码11位 尾数53位 内含1位符号位 由于IEEE754标准约定在小数点左部有一位隐含位 从而实际使得尾数的有效值变为1 M 例如 最小为x1 0 0 最大为x1 1 1 规格化表示 故小数点左边的位恒为1 可省去 阶码部分采用移码表示 移码值127 1 254经移码为 126 127 格式 1 S 2E M0 M 1 M P 1 最高是数符S 占1位 0表示正 1表示负 指数项E 基数是2 是一个带有一定偏移量的无符号整数 尾数部分M 是一个带有一位整数位的二进制小数真值形式 原码 其规格化形式应调整阶码使其尾数整数位M0为1且与小数点一起隐含掉 单精度浮点数最大表示范围 3 40282 1038 1 1111 1 2 2 127 1 1111 1 2 2 127 接近于0的最小值 单精度浮点数可以表示1 175 10 38 1 00 01 2 2 126 的数据而不损失精度 微机中浮点数的三种表示形式 单精度 3130 2322 0 双精度 1 6362 5251 0 1 扩展精度 7978 6463 0 例 将十进制数178 125表示成微机中的单精度浮点数 解 178 125 10110010 001B 1 0110010001B 27指数E 7 127 134 10000110B127是单精度浮点数应加的指数偏移量 完整的浮点数形式为 01000011001100100010000000000000 43322000H 例 将Pentium机中的单精度浮点数3F580000H表示成十进制数 其真值是多少 数符 S 1 0 1 正数 阶码 E 01111110 2 127 126 127 1尾数 M 1 1011 2X 1 1011 2 2 1 0 11011 2 0 84375解题技巧 首先将十六进制数转换为二进制数 并分离出符号位 阶码和尾数 然后按照IEEE754短浮点数的格式可以得出结果 解 3F580000H 0011 1111 0101 1000 0000 0000 0000 0000B 例 将十进制数 76 75存入某微机中 写出它在微机中的单精度浮点形式 解 表示成规格化二进制真值格式为 76 75 1001100 11B 1 00110011B 2 110B表示成规格化尾数格式为 将整数位的1隐含 1 00110011 000110011计算出阶码为 110 01111111 10000101 6 127 133 于是该数的短浮点数格式为 01000010100110011000000000000000 42998000H 尾数符号 例 单项选择 float型数据通常用IEEE754单精度浮点数格式表示 若编译器将float型变量x分配在一个32位浮点寄存器FR1中 且x 8 25 则FR1的内容是A C1040000HB C2420000HC C1840000HD C1C20000H 解析 x 8 25 1000 01 2 1 00001 211 2e移 E e 127 130 10000010 2单精度浮点数格式 1位数符 8位阶码 23位尾数故FR

温馨提示

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

评论

0/150

提交评论