计算机组成原理第二章(第五讲)
软件学院·计算机组织与结构 第2章之1 数据表示 计算机组成原理 第一章 计算机系统概论 第二章 运算方法和运算器 第三章 存储系统 第四章 指令系统 第五章 中央处理器 第六章 总线系统 第七章 外围设备 第八章 输入输出系统 第九章 并行组织 ? 上一讲回顾 1.带符号的阵列乘法器 (1)对2求补电路(图2.7) (2)带求补级的阵列乘法器(图2.8) 2.补码并行乘法 (1)补码与真值转换公式 (2)一般化的全加器形式 (3)直接补码阵列乘法器 2.4.1 原码除法运算原理 两个原码表示的数相除时,商的符号由两数的符号按位相加求得,商的数值部分由两数的数值部分相除求得。 设有n位定点小数(定点整数也同样适用): 被除数x,其原码为 [x]原=xf .xn-1…x1x0 除数y,其原码为 [y]原=yf .yn-1…y1y0 则有商q=x/y,其原码为 [q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0) 商的符号运算qf=xf⊕yf与原码乘法一样,用模2求和得到。商的数值部分的运算,实质上是两个正数求商的运算。根据我们所熟知的十进制除法运算方法,很容易得到二进制数的除法运算方法,所不同的只是在二进制中,商的每一位不是“1”就是“0”,其运算法则更简单一些。 在计算机中,小数点是固定的,不能简单地采用手算的办法。为便于机器操作,使“除数右移”和“右移上商”的操作统一起来。 事实上,机器的运算过程和人毕竟不同,人会心算,一看就知道够不够减。但机器却不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。不够减时必须恢复原来的余数,以便再继续往下运算。这种方法称为恢复余数法。要恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。实际中常用不恢复余数法,又称加减交替法。其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算,因此步数固定,控制简单。 早期计算机中,为了简化结构,硬件除法器的设计采用串行的1位除法方案。即多次执行“减法—移位”操作来实现,并使用计数器来控制移位次数。由于串行除法器速度太慢,目前已被淘汰。 1.可控加法/减法(CAS)单元 和阵列乘法器非常相似,阵列式除法器也是一种并行运算部件,采用大规模集成电路制造.与早期的串行除法器相比,阵列除法器不仅所需的控制线路少,而且能提供令人满意的高速运算速度。 阵列除法器有多种多样形式,如不恢复余数阵列除法器,补码阵列除法器等等。 首先介绍可控加法/减法(CAS)单元,它将用于并行除法流水逻辑阵列中,它有四个输出端和四个输入端。当输入线P=0时,CAS作加法运算;当P=1时,CAS作减法运算。 CAS单元的输入与输出的关系可用如下一组逻辑方程来表示: Si=Ai⊕(Bi⊕P)⊕Ci Ci+1=(Ai+Ci)·(Bi⊕P)+AiCi (2.32) 当P=0时,方程式(2.32)就等于式(2.23),即得我们熟悉的一位全加器(FA)的公式: Si=Ai⊕Bi⊕Ci Ci+1=AiBi+BiCi+AiCi 当P=1时,则得求差公式: Si=Ai⊕Bi⊕Ci Ci+1=AiBi+BiCi+AiCi (2.33) 其中Bi=Bi⊕1。 在减法情况下,输入Ci称为借位输入,而Ci+1称为借位输出。 为说明CAS单元的实际内部电路实现,将方程式(2.32)加以变换,可得如下形式: 在这两个表达式中,每一个都能用一个三级组合逻辑电路(包括反向器)来实现。因此每一个基本的CAS单元的延迟时间为3T单元。 假定所有被处理的数都是正的小数。 不恢复余数的除法也就是加减交替法。在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。当出现不够减时,部分余数相对于被除数来说要改变符号。这时应该产生一个商位“0”,除数首先沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。 下图示出了4位除4位的不恢复余数阵列除法器的逻辑原理图。 由图看出,该阵列除法器是用一个可控加法/减法(CAS)单元所组成的流水阵列来实现的。推广到一般情况,一个(n+1)位除(n+1)位的加减交替除法阵列