计算机原理第三章 运算方法与运算器
发布时间:2024-04-18 10:04:35浏览次数:20计算机原理辅导资料三主 题:第三章 运算方法与运算器内 容:这周主要学习第三章中定点除法运算、定点运算器的组成、错误检测码的相关知识。一、学习要求1.了解定点除法运算,定点运算器的组成。2.理解奇偶校验码以及海明码的错误检测方法。二、主要内容(一) 定点除法运算1.定点除法运算基本思想:除数和被除数进行 n 位移位运算(此时两个数在同一个数量级或最多只差一个数量级)后的结果进行比较,如果被除数大于或等于除数,商对应的未就得 1,否则为零;接下来,被除数减去除数,用余数继续进行上述运算,直到余数为零或得到了所需的精度。2.定点除法运算原理两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。 设有 被除数x,其原码为 [x]原=x f .x n-1…x 1 x 0 除数y,其原码为 [y]原=y f .y n-1…y 1 y 0 则有商 q=x/y,其原码为 [q]原=(x f⊕y f)+(0.x n-1…x 1 x 0/0.y n-1…y 1 y 0)商的符号运算 qf=x f⊕y f 与原码乘法一样,用模 2 求和得到。商的数值部分的运算,实质上是两个正数求商的运算。根据我们所熟知的十进制除法运算方法,很容易得到二进制数的除法运算方法,所不同的只是在二进制中,商的每一位不是“1”就是“0”,其运算法则更简单一些。
3.定点运算器的组成运算器包括 ALU\阵列乘除器\寄存器\多路开关\三态缓冲器\数据总线等逻辑部件。运算器的设计,主要是围绕 ALU 和寄存器同数据总线之间如何传送操作数和运算结果进行的。在决定方案时,需要考虑数据传送的方便性和操作速度,在微型机和单片机中还要考虑在硅片上制作总线的工艺。计算机的运算器大体有如下三种结构形式(1)单总线结构的运算器单总线结构的运算器由于所有部件都接到同一总线上,所以数据可以在任何两个寄存器之间,或者在任一个寄存器和 ALU 之间传送。如果具有阵列乘法器或除法器,那么它们所处 的位置应与 ALU相当。对这种结构的运算器来说,在同一时间内,只能有一个操作数放在单总线 上。为了把两个操作数输入到 ALU,需要分两次来做,而且还需要 A,B 两个缓冲寄存器。这种结构的主要缺点是操作速度较慢。虽然在这种结构中输入数据和操作结果需要三次串行的选通操作, 但它并不会对每种指令都增加很多执行时间。只有在对全都是 CPU 寄存器中的两个操作数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只控制一条总线,故控制电路比较简单。(2)双总线结构的运算器在这种结构中,两个操作数同时加到 ALU 进行运算,只需一次操作控制,而且马上就可以得到运算结果。两条总线各自把其数据送至 ALU 的输入端。特殊寄存器分为两组,它们分别与一条总线交换数据。这样,通用寄存器中的数就可进入到任一组特殊寄存器中去,从而使数据传送更为灵活。ALU的输出不能直接加到总线上去。这是因为,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在 ALU 输出端设置缓冲寄存器。为此,操作的控制要分两步完成:---在 ALU 的两个输入端输入操作数,形成结果并送入缓冲寄存器;---把结果送入目的寄存器。假如在总线 1,2 和 ALU 输入端之间再各加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么,ALU 输出端就可以直接把操作结果送至总线 1 或总线2 上去。
(3)三总线结构的运算器在三总线结构中,ALU 的两个输入端分别由两条总线供给,而 ALU 的输出则与第三条总线相连。这样,算术逻辑操作就可以在一步的控制之内完成。由于 ALU 本身有时间延迟,所以打入输出结果的选通脉冲必须考虑到包括这个延迟。另外,设置了一个总线旁路器。如果一个操作数不需要修改,而直接从总线 2 传送到总线 3,那么可以通过控制总线旁路器把数据传出;如果一个操作数传送时需要修改,那么就借助于 ALU。很显然,三总线结构的运算器的特点是操作时间快。 (二) 错误检测码1.奇偶校验码奇偶校验码是一种开销最小,能发现数据代码中一位错情况的编码,常用于存储器读写检查,或 ASCII 字符传送过程中的检查。奇偶校验法的基本思想是通过在原数据信息中增加一位奇校验位(或偶校验位),然后将原数据和得到的奇(偶)校验位一起进行存取或传送,对存取后或在传送的目标部件得到的相应数据和奇(偶)校验位,再进行一次编码,求出新的奇校验位(或偶校验位),最后根据得到的这个新的校验位的值,确定是否发生了错误。奇校验被检测的数码中有奇数个“1”为正确;偶校验被检测的数码中有偶数个“1”为正确。发送时要形成奇偶位,接收时要检测“1”的个数是否符合要求,奇偶位 C 的形成过程很简单。奇校验时, ;偶校验时, 。奇偶校验功能只能检出一位错,无法给错码定位。2.海明码海明校验码是由 Richard Hamming 于 1950 年提出的目前还被广泛使用的一种数据校验码。它主要用于存储器中数据存取校验。前面所述的奇偶校验码对整个数据编码生成一位校验位。因此这种校验码检错能力差,并且没有纠错能力。如果将整个数据按某种规律分成若干组,对每组进行相应的奇偶检测,就能提供多位检错信息,从而对错误位置进行定位,并将其纠正。海明校验码实质上就是一种多重奇偶校验码。假设校验位的个数为 ,则它能表示 个信息,用其中的一个信息指出“没有错误”,其余的个信息指出错误发生在哪一位。然而错误也可能发生在校验位,因此只有 个信息能用与纠正被传送数据的位数,也就是说要满足关系:,如果能检测与自动校正一位错,并发现两位错,此时校验位的位数 和数据位的位数应满足下述关系: 按上式可计算处数据位 与校验位 的对应关系,如下表所示
假若海明码表示为 M=HmHm-1…H2H1,其最高位号为 m,最低位号为 1,则此海明码的编码规律通常是: (1)校验位与数据位之和为 m,每个校验位 Pi在海明码中被分在位号 2i-1的位置,其余各位为数据位,并按从低向高逐位依次排列的关系分配各数据位。(2)海明码的每一位码 Hi(包括数据位和校验位本身)由多个校验位校验,其关系是被校验的每一位位号要等于校验它的各校验位的位号之和。这样安排的目的,是希望校验的结果能正确反映出出错位的位号。三、习题(一)选择题1. 数的真值变成机器码时有几种表示方法,它们是( )。A.原码表示法 B.反码表示法 C.补码表示法 D.移码表示法答案:ABCD2. 外部总线是指系统总线,即 CPU 与( )之间的连线。A. 存储器 B.I/O 系统 C. 传输器 D.内存答案:AB3.能发现两位错误并能纠正一位错误的编码为( )。A. CRC 码 B.海明码 C. 偶校验码 D.奇校验码答案:B(二)判断题
1.定点补码运算时,其符号位不参与运算。答案:错误2.某 R 进位计数制,其左边 1 位的权是其相邻的右边 1 位的权的 R 倍。答案:正确 3.在串行定点小数除法器中为了避免产生溢出,被除数的绝对值一定要小于除数的绝对值 答案:正确4.奇偶校验功能不但能检出一位错误,还能给出错码定位。答案:错误四、 扩展知识(不要求掌握,用于扩展视野)(一) FPGA 与 CPLD1.目前,数字集成电路得到了广泛的应用,其本身也在不断地进行更新换代。随着微电子技术的发展,设计与制造集成电路的任务已不可能全由半导体厂商来独立承担,出现了可编程逻辑器件(PLD),其中应用最广泛的是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。2. 可编程逻辑器件如同一张白纸或是一堆积木。它能做什么呢?可以毫不夸张地讲,它能完成任何数字器件的功能,上至高性能 CPU(如 NiosII) ,下至简单组合逻辑(如 74 系列元器件) ,都可以用它来实现。现在的可编程逻辑器件已经能够容纳几个 32 位的 CPU 同时工作,实现复杂嵌入式系统。可编程逻辑器件是电子设计领域中最具活力和发展前途的一项技术。3. FPGA 和 CPLD:FPGA 是现场可编程门阵列(Field Programable Gate Array)的简称,它是可编程逻辑器件的一种。CPLD 是复杂可编程逻辑器件(Complex Programable Logic Device)的简称。两者的功能基本相同,只是实现的原理有所不同。在进行逻辑设计时,统称为可编程逻辑器件或 CPLD\FPGA。4. FPGA 与 CPLD 的主要区别 在编程方式上,CPLD 主要是基于 EEPROM 或 FLASH 存储器编程,编程次数可达 1 万次,其优点是系统断电时编程信息也不丢失。 FPGA 大部分是基于 SRAM 编
程,编程信息在系统断电时丢失,所以每次上电时须将编程数据从外部配置芯片重新写入 SRAM 中,其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。 但 FPGA 的制造工艺确定了 FPGA 芯片中包含的 LUT 和触发器的数量要比 CPLD 丰富得多,更适合完成复杂的时序逻辑。CPLD 由于其宏单元的分解组合逻辑功能强大,适合于触发器有限而乘积项丰富的组合逻辑。(二)网格计算1.网格计算:即分布式计算,是一门计算机科学。它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。最近的分布式计算项目已经被用于使用世界各地成千上万志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过 1000 万位数字的梅森质数;您也可以寻找并发现对抗艾滋病毒更为有效的药物。用以完成需要惊人的计算量的庞大项目。 2.网络计算的优势网格计算的目的是,通过任何一台计算机都可以提供无限的计算能力,可以接入浩如烟海的信息。这种环境将能够使各企业解决以前难以处理的问题,最有效地使用他们的系统,满足客户要求并降低他们计算机资源的拥有和管理总成本。网格计算的主要目的是设计一种能够提供以下功能的系统: 提高或拓展型企业内所有计算资源的效率和利用率,满足最终用户的需求,同时能够解决以前由于计算、数据或存储资源的短缺而无法解决的问题。 建立虚拟组织,通过让他们共享应用和数据来对公共问题进行合作。 整合计算能力、存储和其他资源,能使得需要大量计算资源的巨大问题求解成为可能。 通过对这些资源进行共享、有效优化和整体管理,能够降低计算的总成本。