运算方法和运算器 (2).ppt

上传人:小飞机 文档编号:6350462 上传时间:2023-10-19 格式:PPT 页数:86 大小:1.21MB
返回 下载 相关 举报
运算方法和运算器 (2).ppt_第1页
第1页 / 共86页
运算方法和运算器 (2).ppt_第2页
第2页 / 共86页
运算方法和运算器 (2).ppt_第3页
第3页 / 共86页
运算方法和运算器 (2).ppt_第4页
第4页 / 共86页
运算方法和运算器 (2).ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《运算方法和运算器 (2).ppt》由会员分享,可在线阅读,更多相关《运算方法和运算器 (2).ppt(86页珍藏版)》请在三一办公上搜索。

1、第二章 运算方法和运算器,2.1 数据表示2.1.1 概述一、什么叫数据表示 是指能由计算机硬件直接识别的数据类型,如定点数、浮点数等。而所谓“由硬件直接识别”意味着某种数据类型可以用计算机硬件直接表示出来,并能由计算机指令直接调用该数据类型。二、为什么要研究数据表示问题(重要性)数据表示和指令系统是影响计算机的全局性的问题,也是计算机硬件和软件的接口(交界面)。了解计算机中数据表示是了解计算机各主要部件工作原理的必要基础。,三、数据表示的发展:数据表示即类型不是一开始就有多种多样,有一个随应用需要而发展的过程。,早期只有定点表示,表示数的范围很有限;为扩大数的表示范围而出现了浮点数表示;计算

2、机应用扩大到商业和事务处理,出现了字符串数据;堆栈数据表示;向量数据表示。一般介绍,数值型数据(能进行算术运算能得到明确数值概念的数字数据),非数值型数据(以数字数据形式进入计算机的声音、图像、文字等信息),二进制(定点、浮点),十进制(二-十进制),字符型,逻辑型,2.1.2 数值型数据的表示方法 一、数的机器码表示 真值和机器数 真值:正负号加绝对值表示的数值;机器数:因为“+”与“-”号在计算机中无法识别,故需要把数的符号数码化。在计算机中使用的连同数符一起数码化的数称为机器数。通常约定二进制数的最高位为符号位,“0”代表正号,“1”代表负号。常见的机器数有原码、反码、补码等。例如:11

3、01若为原码机器数,则其真值为 5,二、数据格式1、定点数(Fix-Point Number)含义:定点、浮点的“点”都指二进制数中的小数点。定点指小数点位置固定。小数点不占位,隐含。定点数分为定点小数(纯小数)和定点整数(纯整数)。,符号位,数值部分,小数点位置,符号位,数值部分,小数点位置,定点整数,定点小数,(1)定点数常见的三种机器码编码形式例:X=0.101101,Y=+101101 X原=1.101101,Y原=0101101 X反=1.010010,Y反=0101101X补=1.010011,Y补=0101101 注意:对正数它们都等于真值本身,而对负数各有不同的表示。(2)三种

4、编码的比较,不同码制中真值0的表示方法不同 对于真值0,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。假设字长为8位,则:+0原=00000000-0原=10000000+0补=-0补=00000000+0反=00000000-0反=11111111,定点数的表示范围 原码、反码表示的正、负数范围相对零来说是对称的,但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值最大的负数)。原因是原码和反码的真值0各有两种不同的表示形式,而补码只有唯一的一种表示形式。,定点数的表示数的范围(字长为n+1位)小数表数范围:原码(12-n)N 12-n补码 1 N 12-n 反

5、码(12-n)N 12-n 整数表数范围:原码(2n 1)N 2 n 1 补码 2 n N 2 n 1反码(2n1)N 2n1,特别注意补码的最小负数表示,习题:P.69 第1、2题1、写出下列各数的原码、反码、补码表示(用8位二进制数)。其中MSB是最高位(又是符号位),LSB是最低位。如果是小数,小数点在MSB之后;如果是整数,小数点在LSB之后。(1)35/64(2)23/128(3)127(4)用小数表示 1(5)用整数表示 1解答:(1)现将-35/64写成二进制真值-1000112-6=-0.100011原码:1.1000110 反码:1.0111001补码:1.0111010,(

6、2)先将23/128写成二进制真值为101112-7=0.0010111原码:0.0010111反码:0.0010111补码:0.0010111(3)先将-127写成二进制真值为-1111111原码:11111111(1,1111111)反码:10000000(1,0000000)补码:10000001(1,0000001)(4)用小数表示-1:原码与反码的小数表示中没有-1;补码表示的小数-1为1.0000000(5)用整数表示-1:原码为10000001;反码为11111110;补码为11111111。,2、设X补=a0.a1a2a6,其中ai取0或1,若要x0.5,求a0,a1,a2,a

7、6的取值。补充题:将下列数由小到大排序:16,1010.11B,25.3Q,X1补=10001101,1CH,X2反=01001101,0110.1001BCD,X3原=10101011,X4补=10111111,-X5补=10100101 解题要点:(1)统一各个数的表示形式,一般均表示为十进制(2)所需知识:了解B(binary)、Q(octa-)、H(hex)、BCD(Binary-Coded Decimal,简称BCD,即二-十进制编码)含义;各种进制数向十进制的转换;机器码求真值。以上十个数由小到大排序结果:X1,X3,X4,0110.1001BCD,1010.11B,16,25.3

8、Q,1CH,X2,X5,例.已知:机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?解:(1)定点原码整数表示:最小负整数表示:1 111 111 111 111 111 最小负整数=-(215-1)10=(-32767)10 最大正整数表示:0 111 111 111 111 111 最大正整数=(215-1)10=(+32767)10(2)定点原码小数表示:最大正数值=(1-2-15)10=(+0.11111)2 15个1 最小负数值=-(1-2-15)10=(-0.111

9、11)2,2.1.2 数值型数据的表示方法,二、数据格式1、定点数(Fix-Point Number)2、浮点数(Float-Point Number):小数点位置可以自由浮动,数的范围和精度分别表示。浮点数的一般表示格式为:N=rEM 其中:r称为浮点数阶码的底,或尾数基数,一般r=2;E-阶码,一般为定点整数,决定浮点数的表示范围;M-尾数,一般为定点小数,决定浮点数的精度。,例:N=-0.000001011,可将其表示为以下的浮点数形式:N=2-3x(-0.001011)=2-4(-0.01011)=2-5(-0.1011)=(1)浮点数的规格化 目的:为了提高运算精度,充分利用尾数的有

10、效位数,同时保证浮点数表示形式唯一,通常采取浮点规格化形式。定义:规定尾数小数点后第一位,即尾数数值位的最高有效位(MSB)必须是非零有效数字,即尾数满足:1/2=|M|=1,例:将下列数表示成规格化的浮点数形式:11.101B,-10,16,7.DH解:11.101B=0.11101B22-10=-1010B=-0.101B24 16=10000B=0.1B25 7.DH=111.1101B=0.1111101B23,具体形式 当尾数M的基数为2时,规格化表示的尾数形式为:正数(原码、补码):0.1,其最大值为0.1111,最小值为0.1000,尾数的表示范围1/20时,MSB=1,当N0时

11、,MSB=0,即正数为0.1的形式,负数为1.0的形式.,浮点数与定点数的比较定点数:表示方法简单直观,但表示数的范围小.浮点数:表示的范围远比定点数大;运算过程中随时对中间结果作规格化,不易丢失有效数位,故提高了运算精度;但浮点运算较复杂例:假设机器中数据由8位二进制数表示(包括符号位),在定点机中,8位全部表示有效数字;在浮点机中,阶符阶码占3位,数符尾数占5位.(假设只考虑正数)则:定点机小数表示的数的范围即0-127/128浮点机表示的数的范围:2-11 0.0001-211 0.1111即1/1287.5,()浮点数格式 浮点数可分为以下两种格式:一般形式,Es,E1E2,.,Em,

12、Ms,M1M2,.,Mn,阶符,阶码,数符,尾数,例:写出二进制-110.0011在计算机中的浮点数形式.设阶码取4位补码,尾数是8位原码。解:-110.0011=-0.110001120011 浮点数形式为,0,011,1,1100011,阶符,尾符,浮点数的另外一种格式IEEE754标准 因为在IEEE754标准中浮点数的阶码采用了新的机器码移码,故先介绍移码的相关知识。移码(增码)定义 通常用于表示浮点数的阶码X为n位纯整数真值,其移码(n+1位,包括1位符号位)定义为:x移=偏移值+x 注意偏移值的选取,例如可以选其为2n。例:n=7,则X移=128+X,-128X127为什么叫做移码

13、、增码:,0 128 255,X移,X,-128 0 127,注意:移码的实质是将真值映像到一个正数域,故移码的大小可以直观反映真值的大小。,移码与真值、补码的对应关系,真值X,十进制 二进制 二进制 十进制,X移,X补,-128-10000000 1,0000000 00000000 0-127-01111111 1,0000001 00000001 1-1-00000001 1,1111111 01111111 127 0 00000000 0,0000000 10000000 128 1 00000001 0,0000001 10000001 129 127 01111111 0,111

14、1111 11111111 255,可见:对偏移值为2n的移码来说,同一数值的移码和补码除最高位之外,其他各位相同。,移码的性质:见下表,移码偏置值的选取 移码可以视作无符号数,对字长8位的移码,共有28个无符号数:00000000 0 00000001 1 01111111 27-1 10000000 27.11111110 28-2 11111111 28-1,为使阶码真值的正数和负数分布尽可能均匀,可选居于中间的两个数中的一个作为偏移值。,注意1)对没有明确指出偏移值的移码,应选其为2n(设字长为n+1位)(2)在IEEE754标准中,短浮点数的偏移值为27-1。,二、数据格式2、浮点数

15、(Float-Point Number)(2)浮点数格式浮点数的另外一种格式IEEE754标准,如果在不同的计算机当中,浮点数采用不同的基数、尾数和阶码的长度,则浮点数表示有较大差别,不利于软件在不同机器之间的移植。IEEE754标准就是1985年由IEEE提出的一个从系统结构角度支持浮点数表示的标准,当今流行的计算机几乎都采用这一标准。在IEEE754标准中,阶码用移码表示,尾数用原码表示。,IEEE754单精度即32位浮点数格式:,S E M,(-1)s X(1.M)X2E-127,有关IEEE754格式的例题请课后自习P.21【例1】、【例2】;P.27【例5】、【例6】作为数的表示范围

16、的例子自习,注意其中【例6】的格式并不完全等同于IEEE754标准。(3)浮点数表示的范围例:有一个字长为32位的浮点数,阶码10位,用移码表示;尾数22位,用补码表示;基数为2。请写出(1)最大数的二进制表示;(2)最小数的二进制表示;(3)规格化数所能表示的数的范围;(4)最接近于零的正规格化数与负规格化数。,解:设浮点数格式为X=2ES,首先写出阶码和尾数的范围:阶码为10位移码,则阶码的取值范围为-512+511;尾数是22位的补码(其中含符号位1位),则尾数最大正数值为Smax=1-2-21;尾数最小正数值为Smin=2-21。尾数最大负值为-2-21;尾数最小负值为-1。(1)最大

17、数的二进制表示:正数Xmax=2511(1-2-21)负数Xmax=2-512(-2-21)(2)最小数的二进制表示:正数Xmin=2-5122-21负数Xmin=2511(-1),(3)规格化数所能表示的数的范围:阶码取值范围还是-512+511,而规格化的浮点数尾数(22位补码)的取值范围为当X0 时:2-1 X 1-2-21当X0时:2-513 X 2511(1-2-21)当X0时:-2511 X-2-5122-1或-2511 X-2-512(2-1+2-21)(4)最接近于零的正规格化数与负规格化数。,例:将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。各

18、包含1位符号位在内。,(1)27/64(2)-27/64解答(1)27/64=11011X2-6=0.11011X2-1表示成阶码(补码)、尾码(补码)为:1,11;0.11011000(2)-27/64=-11011X2-6=-0.11011000X2-1表示成如下形式为:1,11;1.00101000,2.1.2 数值数据的表示法三、数字编码以一种中间编码形式表示数(BCD码),1、编码目的:以机器能表示与识别的二进制形式存在,又比纯二进制数(pure binary)更接近日常所习惯的十进制数。2、BCD编码:Binary Coded Decimal,即二进制编码的十进制数,种类有很多,如

19、 Gray码、余3码、8421BCD码、EBCD码等。3、8421BCD码:用四位二进制数表示一位十进制数09。00000,00011,,10019,0001000010,0001000111,0001010115,0001011016。注意10以后的十进制数的表示。,一、出错的原因:1、元器件质量不可靠;2、线路工艺不过关;3、远距离传输带来的干扰等等,均会导致存取、加工、传输时出现0变成1或1变成0的错误。二、错误检测与纠正 方法有很多:常见的一种是对数据信息进行扩充,加入新代码,使之与原数据共同按某种规律编码后具有发现错误的能力,有些甚至具有指出具体的错误位置并使机器校正的能力。我们称之

20、为“校验码”(check code)。几种常用的校验码包括:奇偶校验码、CRC码、海明码等。,2.1.3 校验码(check code),三、奇偶校验码 广泛用于主存的读写校验或ASCII码字符传送过程中的检查。1、编码方式:在n位有效信息位上加一个二进制位作为校验位P,构成n+1位的奇偶校验码。校验位P的位置可以在有效信息位的最高位之前,也可在有效信息位的最高位之后。奇校验(odd):编码中含“1”的个数(连同校验位)共有奇数个“1”;偶校验(even):编码中含“1”的个数(连同校验位)共有偶数个“1”。例:信息编码为:10001000B,1 0 0 0 1 0 0 0 1,1 0 0 0

21、 1 0 0 0 0,奇校验位,偶校验位,若采用偶校验,则校验位P可由下式确定:Peven=D0 D1 D2 D3 D4 D5 D6 D7(2-1)若D7-D0中有偶数个1,则“偶形成”=0 若D7-D0中有奇数个1,则“偶形成”=1若采用奇校验,则校验位P可由下式确定:Podd=Peven(2-2)根据式(2-1)和(2-2),可得到9位奇偶校验位P的形成电路,如下图示。,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,偶校验位形成,D7D6,D5D4,D3D2,D1D0,奇校验位形成,奇偶校验位P的形成电路,Peven,Podd,+,+,+,+,+,+,+,+,+,偶校错,校验

22、位,D7D6,D5D4,D3D2,D1D0,奇校错,奇偶校验位电路,Peven,2、奇偶校验码的校验:8位代码与1位校验位同时送入偶校验逻辑电路.若“偶校错”=0,表明数据无奇数个错,可视为正确.,3、主存读写过程中的奇偶校验 假设CPU准备写入主存某单元的数据为01010101,若采用奇校验,经过奇偶校验电路,形成奇偶校验位,实际写入贮存的9位校验码为101010101(最高位为校验位)。从主存单元读出的9位信息首先送入奇偶校验电路,若9位信息中“1”的个数为奇数个,表示读出信息正确,将校验位去掉后的8位数据送CPU;否则,表示读出信息不正确,向CPU发出奇偶校验出错的中断请求信号。,CPU

23、,奇偶校验电路,主存,8位,9位,8位,9位,2.2定点数加减运算 2.2.1 补码加法运算1.补码加法的公式:x补+y补=x+y补(mod 2)2.补码加法的特点:符号位作为数的一部分一起参加运算;在模2的意义下相加,超过2的进位要丢掉.例:x=+0.1001,y=-0.0101,求x+y解:x补=0.1001,y补=1.1011 x补 0.1 0 0 1 y补 1.1 0 1 1 x+y补 1 0.0 1 0 0 故:x+y=0.0100,+,进位超过2,丢掉,补码减法运算1.补码减法的公式:x-y补=x补-y补=x补+-y补2.补码减法的特点:减法运算可以化为加法,可和常规加法运算使用

24、同一加法器电路,从而简化计算机的设计.3.从y补求-y补的法则是:对y补包括符号位:“求反且末位加1”,即 可得-y补.例:x=+0.1101,y=+0.0110,求x-y=?解:x补=0.1101,y补=0.0110,-y补=y补+2-4=1.1001+0.0001=1.1010,x-y补=x补+-y补=10.0 1 1 1=0.0111,所以 x-y=+0.0111,溢出及其检测1.定义:运算的结果超出机器所能表示的数据范围。分上溢和下溢。例:x=+0.1011,y=+0.1001,求x+y.解:x补=0.1011,y补=0.1001 x补 0.1 0 1 1 y补 0.1 0 0 1,+

25、,x+y补 1.0 1 0 0,注意:补码X补与真值X的转换。当X=0时,X补=X;当X0时,X补=M+X,注意:只有当两数同号时,才会出现溢出。,2、几种检测方法(1)单符号位法1(根据两个操作数的符号与结果的符号判别溢出):当操作数中的加数与被加数符号相同时,若结果的符号与操作数的符号不一致,表示溢出;否则,表示无溢出.设X的符号位为Xf,Y的符号为Yf,运算结果的符号为Sf,则溢出逻辑表达式:V=XfYfSf+XfYfSf V=0无溢出;V=1有溢出,(2)单符号位法2(进位判断法):当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢.其逻辑表达

26、式为:V=S C 其中S为符号位产生的进位,C为最高有效位产生的进位。,+,(3)双符号位法(变形补码法):在进行补码加减运算时,如果只使用一个符号位,出现溢出的时候正确的符号位将被数值侵占,符号位含义将发生混乱。因此,如果将符号位扩展为两位,即使出现溢出,数值侵占了一个符号位,仍能保持最左边的符号为正确。溢出逻辑表达式为:V=Sf1 Sf2,+,其中,Sf1和Sf2分别为最高符号位及第二符号位。,2.2.4 基本的二进制加/减法器一、回忆加法单元 两个一位二进制数所使用的硬件1、一位半加器HA(Half Adder)(逻辑符号、真值表、逻辑式)A S A B S C S=A BB C 0 0

27、 0 0=AB+AB A、B:两个一位加数;0 1 1 0 C=AB S:半加和;1 0 1 0 C(Carry):半加进位。1 1 0 1,HA,2、一位全加器FA(Full Adder):在半加器的基础上考虑进位输入,(1)逻辑符号、真值表、逻辑表达式Ai Si Ai Bi Ci Si Ci+1 Bi Ci+1 0 0 0 0 0Ci 0 0 1 1 0 0 1 0 1 0Si=Ai Bi Ci 0 1 1 0 1Ci+1=AiBi+BiCi+CiAi 1 0 0 1 0=AiBi+(Ai Bi)Ci 1 0 1 0 1Ai,Bi:n位加法器 1 1 0 0 1 第i位的加数 1 1 1

28、1 1,FA,Ci+1 Si Ci+1 Si Ci Ai Bi Ai Bi Ci,&,&,异或,&,异或,&,&,&,&,&,&,&,或,或,(2)全加器的硬件实现:电路形式有很多,选两例典型做介绍。第一种在教材P.35图2.2(b)。,(3)计算全加器电路的时间延迟:从电路的输入产生起直到输出出现所经过的时间,用T的个数表示。T叫延迟单位。,以此表格为依据可推算出前两种FA的时间延迟。第一例:生成Si的延迟为6T,生成Ci+1的延迟为5T。第二例:生成Si、Ci+1的延迟均为2T。可见同功能不同形式的电路具有不同的时间延迟。,二、由加法单元FA组成加法器:介绍行波进位即串行进位的补码加/减法

29、器(一)加法器类型及进位方式,串行加法器加法器 并行加法器 串行进位方式并行加法器 并行进位方式 并行加法器不同进位方式的依据:回忆FA逻辑表达式Ci+1=AiBi+(Ai Bi)Ci,现将其分成两部分考虑。,1、AiBi:它与Ci无关,常记为Gi=AiBi,叫做“本地进位”或“生成进位”。2、(Ai Bi)Ci:它与Ci有关,叫做“传送进位”,而记Pi=Ai Bi为“传送条件”。由上有:Ci+1=Gi+PiCi,即 C1=G0+P0C0 C2=G1+P1C1 C3=G2+P2C2.,(二)、并行加法器及其进位链 并行加法器:使用的全加器的位数与操作数的位数相同,能同时对操作数的各位进行相加。

30、进位链:进位传递逻辑,分为串行和并行进位两种。1.基本进位公式 设相加的两个操作数为:A=A n-1 A n-2 AiA0 B=B n-1 B n-2BiB0 则进位信号的逻辑式为 C i+1=AiBi+(Ai Bi)Ci=Gi+PiCi Gi=Ai Bi Pi=Ai Bi 其中,Pi称为进位传递函数,Gi称为进位产生函数。,2.串行进位的并行加法器串行进位的并行加法器:将n个全加器串接起来,可以进行两个n位数相加。其中的进位是逐级形成的,每一级的进位直接依赖于前一级的进位.串行进位的逻辑表达式为:C1=A0B0+(A0 B0)C0=G0+P0C0 C2=A1B1+(A1 B1)C1=G1+P

31、1C1 Cn=A n-1 B n-1+(A n-1 B n-1)C n-1=G n-1+P n-1 C n-1 可见,串行进位的进位输出信号Ci与低位的进位信号有关,所以造成延迟时间较长。,例:行波(串行)进位的补码加法/减法器:可由n个一位的全加器(FA)联成一个n位的行波进位并行加减器.M为方式控制输入线,当M=0时,做加法(A+B)运算;当M=1时,做减法(A-B)运算,此时,A-B运算化为A补+-B补运算,-B补用B补包括符号位“取反末位加1”来实现.另外,采用单符号位法2的溢出检测逻辑:V=Cn Cn-1,其中,Cn为符号位,Cn-1为最高有效位产生的进位,=1,FA,FA,FA,F

32、A,=1,=1,=1,=1,.,V,溢出,Sn-1,Sn-2,S1,S0,C0,C1,C2,Cn-2,Cn-1,Cn,Bn-1,An-1,Bn-2,An-2,B1,A1,B0,A0,方式控制线,M=0 加M=1 减,+,3.并行进位(先行进位、同时进位)的并行加法器并行进位的并行加法器:为提高加法器的运算速度,必须解决进位信号的产生和传递问题.将串行进位链改变形式,使各进位信号的产生不再与低位的进位信号有关,而只与两个参加运算的数和C0有关.各级进位信号同时生成,并行进位的逻辑表达式为:C1=A0B0+(A0 B0)C0=G0+P0C0 C2=G1+P1C1=G1+P1(G0+P0C0)C i

33、+1=Gi+PiCi=Gi+PiGi-1+PiPi-1G i-2+PiP i-1 P i-2P0C0 Cn=G n-1+P n-1 C n-1=G n-1+P n-1G n-2+P n-1P n-2G i-3+P n-1 P n-2 P n-3P0C0以四位并行加法器为例,看其内部结构:,&,&,1,1,&,异或,或,或,或,或,&,&,&,&,C4 C3 C2 C1 Gi,Ai Bi,Pi,Ai Bi,G3 P3 G2 P2 G1 P1 G0 P0,1,四位并行进位线路:产生C4C1的延时相同,故称并行进位(同时进位)。,C0,&,&,1,1,或,或,或,或,&,&,&,&,C4 C3 C2

34、 C1,G3 P3 G2 P2 G1 P1 G0 P0,1,C0,异或,S3,异或,S2,异或,S1,异或,S0,具有并行进位的四位加法器逻辑图:因为进位信号先由逻辑线路产生,再送去求和,所以常称为先行进位CLA(Carry Look Ahead)加法器。,虽然并行加法器的运算速度快,但是以增加硬件逻辑线路为代价的;当加法器位数增加时,进位信号Ci+1的逻辑式会变得愈加复杂,其进位形成逻辑的输入量也增多,以至超出实用器件规定的输入数;常用的方法是:将加法器分成若干组,在组内采用并行进位,组间采用串行进位或并行进位,即:组内并行、组间串行的进位链;组内并行、组间串行的进位链;,(a)组内并行、组

35、间串行的进位链 以16位加法器为例,一般可分为4个小组,每个小组4位,每组内部采用并行进位结构,组间采用串行进位传送结构.这种方式虽然每组内是并行的,但对高位小组来说,各进位信号的产生仍依赖于低位小组的最高位进位信号的产生,还存在一定的等待时间.,F15F14F13 F12,G15-G12P15-P12,第二组4-7位,第一组0-3位,第四组12-15位,F11F10F9 F8,第三组8-11位,G11-G8P11-P8,G7-G4P7-P4,G3-G0P3-P0,F7F6 F5 F4,F3F2 F1 F0,16位组内并行进位组间串行进位链框图,C16,C12,C8,C4,C0,td(T),9

36、,7,5,C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C1 3C14 C15 C16 Ci,组间行波进位形成过程:N=16位,11,进位产生次序:同时产生第一小组的C1、C2、C3、C4;得到C2后经过2T延迟同时产生第二小组的C5、C6、C7、C8;类似。,(b)、两级先行进位加法器:在上例组内先行进位基础上,把组间的串行进位改成先行进位。,再一次分析进位逻辑表达式:C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0C8=G7+P7G6+P7P6G5+P7P6P5G4+P7P6P5P4C4C12=G11+P11P10P9P8C8

37、C16=G15+.+P15P14P13P12C12再引入两个辅助函数:Gi*=G4i+3+P4i+3G4i+2+P4i+3P4i+2G4i+1+P4i+3P4i+2P4i+1G4i(组间进位产生函数)Pi*=P4i+3P4i+2P4i+1P4i,(组间进位传递函数)i=0,1,2,3于是小组间产生四个进位为:,C4=G0*+P0*C0C8=G1*+P1*G0*+P1*P0*C0C12=G2*+P2*G1*+P2*P1*G0*+P2*P1*P0*C0C16=G3*+P3*G2*+P3*P2*G1*+P3*P2*P1*G0*+P3*P2*P1*P0*C0 请与小组内四位进位逻辑式相比较:C1=G0

38、+P0C0C2=G1+P1C1=G1+P1G0+P1P0C0C3=G2+P2G1+P2P1G0+P2P1P0C0C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2 P1P0C0,&,&,1,1,或,或,或,或,&,&,&,&,C16 C12 C8 C4,G3*P3*G2*P2*G1*P1*G0*P0*,1,C0,组间先行进位BCLA(Block Carry Look Ahead)部件,&,1,1,1,&,异或,或,或,或,或,&,&,&,&,C3 C2 C1 Gi,Ai Bi,Pi,Ai Bi,G3 P3 G2 P2 G1 P1 G0 P0,1,能产生Gi*和Pi*的进位线路,C0

39、,1,G*P*,请与四位并行进位线路比较:,&,&,1,1,&,异或,或,或,或,或,&,&,&,&,C4 C3 C2 C1 Gi,Ai Bi,Pi,Ai Bi,G3 P3 G2 P2 G1 P1 G0 P0,1,四位并行进位线路:产生C4C1的延时相同,故称并行进位(同时进位)。,C0,采用两级先行进位的加法器框图(N=16,四组每组四位):,组间先行进位部件BCLA,四位CLA加法器,四位CLA加法器,四位CLA加法器,四位CLA加法器,C16,C0,C4,C12,C8,C12,C8,C4,G3*P3*,G2*P2*,G1*P1*,G0*P0*,S15S12,S11S8,S7S4,S3S0

40、,A15A12 B15B12,A11A8 B11B8,A7A4 B7B4,A3A0 B3B0,两级先行进位加法器,两级先行进位的形成过程进位时间图(仍设四位CLA组内时间延迟为2T):,td(T),9,7,5,C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C1 3C14 C15 C16 Ci,两级先行进位形成过程:N=16位,11,16位组内并行进位、组间并行进位的并行加法器进位产生次序:产生第一小组的C1、C2、C3及所有的Gi*、Pi*;产生组间的进位信号C4、C8、C12、C16;产生第二、三、四小组的C5、C6、C7、C9、C10、C11、C13、

41、C14、C15;至此,进位信号全部形成,和数也随之产生。,td(T),9,7,5,C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C1 3C14 C15 C16 Ci,组间行波进位形成过程:N=16位,11,一、进位公式的分析:Ci+1=Gi+PiC0二、串行进位加法器:速度慢,N越大越明显。三、并行(先行)进位加法器1、进位均由C0同时生成;2、得到四位并行进位线路;3、进而得到四位先行进位加法器。四、组间串行(行波)进位加法器1、N=16为例将四位CLA加法器串接而得;2、该加法器的进位时间图。五、两级先行进位加法器:组间串行改为并行1、再次分析进位逻辑

42、表达式(引入两个辅助函数)2、得到同时生成C4、C8、C12、C16的BCLA3、进而得到两级先行进位的加法器(N=16位)4、两级先行进位形成的进位时间图。,加法器进位结构讨论的小结,教材P.36图2.3(a):n位数字的行波进位BCD加法器 Sn-1 S1 S0 4 4 4 Cn Cn-1 C2 C1 C0 4 4 4 4 4 4 Xn-1 Yn-1 X1 Y1 X0 Y0例:X=1234,Y=5678,S=1234+5678=6912,一位BCD加法器单元,一位BCD加法器单元,一位BCD加法器单元,2.2.5 十进制加法器对BCD码进行加法运算:实质是通过二进制运算附加必要的校正逻辑实

43、现的。,Ci+1+Si3Si2+Si3Si1=1时,需要进行+6校正;且有Ci+1+Si3Si2+Si3Si1=Ci+1,教材P.36图2.3(b)一位BCD加法器单元的逻辑结构,Si3 Si2 Si1 Si0 十 进 校 正 0 Ci+1 Ci Si3 Si2 Si1 Si0 二 Ci+1 进 加 Xi3 Yi3 Xi2 Yi2 Xi1 Yi1 Xi0 Yi0 法,FA,FA,FA,与,与,FA,FA,FA,FA,或,2.3 定点运算器的构成 2.3.1 算术逻辑部件ALU 1、ALU是运算器的核心,主要作用是进行定点算术运算和逻辑运算。由于加法操作是各种算术运算的基础,因此ALU的核心是加

44、法器。ALU的硬件实现涉及三个问题:(1)如何构成一位二进制加法单元,即全加器;(2)N位全加器连同进位信号传递逻辑,构成一个N位并行加法器;(3)以加法器为核心,通过输入选择逻辑扩展为具有多种算术功能和逻辑功能的ALU。,2、ALU举例(SN74181)(1)SN74181外特性 以一个4位ALU芯片SN74181为例,说明ALU的结构。SN74181能够进行16种不同的算术运算和16种不同的逻辑运算.由功能选择线S0、S1、S2、S3和操作方式M控制.当M=0时,进行算术运算;当M=1时,进行逻辑运算.图中A0-A3、B0-B3为ALU的两个数据输入端,F0-F3为结果输端.Cn为ALU最

45、低位进位输入,C n+4 为ALU产生的最高位输出.G、P为输出小组进位辅助函数。,8,7,6,5,4,3,2,1,23,22,21,20,19,18,16,14,17,15,9,10,11,13,Cn,M,S0,S1,S2,S3,F0,F1,F2,F3,A0,B0,A1,B1,A2,B2,A3,B3,C n+4,A=B,G,P,SN 7 4 1 8 1 4位ALU,SN 74181 框图,可见,每片74181可作为一个小组,是一个4位先行进位加法器。小组间既可以采用串行进位,又可以采用并行进位。当组间采用并行进位时,需要增加另外的芯片-74182(先行进位发生器)。(2)74182作用:产生

46、74181组间并行进位所需要的每片74181的最低位进位。74182的逻辑图:P.56图2.12。74182的逻辑符号 图中Cn+Z Cn+Y Cn+X是三个进位输出信号,P*、G*是大组(16位)进位产生函数和进位传递函数。,74182,Cn,P*G*Cn+Z Cn+Y Cn+X,P*3G*3 P*2G*2P*1 G*1P*0G*0,(2)7418274182的进位逻辑 Cn+X=G*0(P*0+C*n)Cn+Y=G*1(P*1+G*0(P*0+C*n)Cn+Z=G*2(P*2+G*1(P*1+G*0(P*0+C*n)P*=G*3(P*3+G*2)(P*3+P*2+G*1)(P*3+P*2+

47、P*1+G*0)G*=P*3+P*2+P*1+P*074182的逻辑图:P.56图2.12 结论:74181的4位作为一个小组,小组内是并行进位的(由74181芯片内部完成),而大组(16位)内(小组间)的并行进位可由74182芯片完成。利用74182的大组进位产生函数G*和进位传递函数P*可进一步实现大组间的并行进位。,74182,Cn,P*G*Cn+Z Cn+Y Cn+X,P*3G*3 P*2G*2P*1 G*1P*0G*0,(3)74181和74182的配合应用例:利用74181和74182组成下列ALU,方法:74181的4位作为一个小组,每四个小组构成一个大组。16位行波进位ALU,

48、即小组内并行进位、小组间(大组内)串行进位;16位并行ALU,即小组内并行进位、小组间(大组内)并行进位;,74181,P*G*F3 F2 F1 F0,Cn+4,Cn,A3 A2 A1 A0 B3 B2 B1 B0,74182,Cn,P*G*Cn+Z Cn+Y Cn+X,P*3G*3 P*2G*2P*1 G*1P*0G*0,(3)74181和74182的配合应用例:利用74181和74182组成下列ALU,方法:74181的4位作为一个小组,每四个小组构成一个大组。64位并行ALU,分两种情况:即小组内并行进位、大组内并行进位、大组间串行(并-并-串)的64位加法器;或小组内并行进位、大组内并

49、行进位、大组间并行(并-并-并)的64位加法器;,74181,P*G*F3 F2 F1 F0,Cn+4,Cn,A3 A2 A1 A0 B3 B2 B1 B0,74182,Cn,P*G*Cn+Z Cn+Y Cn+X,P*3G*3 P*2G*2P*1 G*1P*0G*0,解答:*用4片74181构成的16位行波进位的ALU,74181 4#Cn+4 Cn,74181 3#Cn+4 Cn,74181 2#Cn+4 Cn,74181 1#Cn+4 Cn,Cout,Cin,称为单级先行进位的ALU只有74181片内四位为先行进位,用前一级芯片的进位输出作为下一级芯片的进位输入端,片内先行进位,片间串行进

50、位,运算速度慢。,*用4片74181和1片74182构成的16位并行ALU,74182P*3G*3 Cn+z P*2 G*2 Cn+yP*1 G*1 Cn+x P*0G*0,Cin,74181Cn+4 Cn,74181Cn+4 Cn,74181Cn+4 Cn,74181Cn+4 Cn,Cout,Cin,P*G*,称为两级先行进位的ALU:每片181内部(小组内)为先行进位,四片181之间(大组内)也为先行进位,运算速度较快。,*用16片74181和4片74182构成的64位并行ALU(4X16=4X(4X4),74182Cn+z Cn+y Cn+xP3G3 P2G2 P1G1 P0G0,181

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号