第二章运算方法和运算器_第1页
第二章运算方法和运算器_第2页
第二章运算方法和运算器_第3页
第二章运算方法和运算器_第4页
第二章运算方法和运算器_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

第二章运算方法和运算器第一页,共八十六页,编辑于2023年,星期四三、数据表示的发展:数据表示即类型不是一开始就有多种多样,有一个随应用需要而发展的过程。

早期只有定点表示,表示数的范围很有限;为扩大数的表示范围而出现了浮点数表示;计算机应用扩大到商业和事务处理,出现了字符串数据;堆栈数据表示;向量数据表示。

一般介绍数值型数据(能进行算术运算能得到明确数值概念的数字数据)非数值型数据(以数字数据形式进入计算机的声音、图像、文字等信息)二进制(定点、浮点)十进制(二-十进制)字符型逻辑型第二页,共八十六页,编辑于2023年,星期四2.1.2数值型数据的表示方法

一、数的机器码表示真值和机器数真值:正负号加绝对值表示的数值;机器数:因为“+”与“-”号在计算机中无法识别,故需要把数的符号数码化。在计算机中使用的连同数符一起数码化的数称为机器数。通常约定二进制数的最高位为符号位,“0”代表正号,“1”代表负号。常见的机器数有原码、反码、补码等。例如:1101若为原码机器数,则其真值为–5

第三页,共八十六页,编辑于2023年,星期四二、数据格式1、定点数(Fix-PointNumber)含义:定点、浮点的“点”都指二进制数中的小数点。定点指小数点位置固定。小数点不占位,隐含。定点数分为定点小数(纯小数)和定点整数(纯整数)。

符号位

数值部分小数点位置符号位

数值部分小数点位置定点整数定点小数第四页,共八十六页,编辑于2023年,星期四(1)定点数常见的三种机器码编码形式例:X=‒0.101101,Y=+101101[X]原=1.101101,[Y]原=0101101[X]反=1.010010,[Y]反=0101101X]补=1.010011,[Y]补=0101101注意:对正数它们都等于真值本身,而对负数各有不同的表示。(2)三种编码的比较

第五页,共八十六页,编辑于2023年,星期四

不同码制中真值0的表示方法不同对于真值0,原码和反码各有两种不同的表示形式,而补码只有唯一的一种表示形式。假设字长为8位,则:[+0]原=00000000[-0]原=10000000[+0]补=[-0]补=00000000[+0]反=00000000[-0]反=11111111第六页,共八十六页,编辑于2023年,星期四

定点数的表示范围原码、反码表示的正、负数范围相对零来说是对称的,但补码负数表示范围较正数表示范围宽,能多表示一个最负的数(绝对值最大的负数)。原因是原码和反码的真值0各有两种不同的表示形式,而补码只有唯一的一种表示形式。

第七页,共八十六页,编辑于2023年,星期四定点数的表示数的范围(字长为n+1位)小数表数范围:原码–(1–2-n)≤N≤1–2-n补码–1≤N≤1–2-n

反码–(1–2-n)≤N≤1–2-n整数表数范围:原码–(2n–

1)

N≤

2n–1

补码

–2n

N≤2n–1反码–(2n–1)≤N≤2n–1特别注意补码的最小负数表示第八页,共八十六页,编辑于2023年,星期四习题: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写成二进制真值-100011×2-6=-0.100011原码:1.1000110反码:1.0111001补码:1.0111010第九页,共八十六页,编辑于2023年,星期四(2)先将23/128写成二进制真值为10111×2-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。第十页,共八十六页,编辑于2023年,星期四2、设[X]补=a0.a1a2···a6,其中ai取0或1,若要x〉–0.5,求a0,a1,a2,···,a6的取值。补充题:将下列数由小到大排序: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-CodedDecimal,简称BCD,即二-十进制编码)含义;各种进制数向十进制的转换;机器码求真值。以上十个数由小到大排序结果:X1,X3,X4,0110.1001BCD,1010.11B,16,25.3Q,1CH,X2,X5

第十一页,共八十六页,编辑于2023年,星期四例.已知:机器字长16位,定点表示,尾数15位,数符1位,问:(1)定点原码整数表示时,最大正数是多少?最小负数是多少?(2)定点原码小数表示时,最大正数是多少?最小负数是多少?解:(1)定点原码整数表示:最小负整数表示:1111111111111111最小负整数=-(215-1)10=(-32767)10最大正整数表示:0111111111111111最大正整数=(215-1)10=(+32767)10(2)定点原码小数表示:最大正数值=(1-2-15)10=(+0.111…11)215个1最小负数值=-(1-2-15)10=(-0.111…11)2第十二页,共八十六页,编辑于2023年,星期四2.1.2数值型数据的表示方法

二、数据格式1、定点数(Fix-PointNumber)2、浮点数(Float-PointNumber):小数点位置可以自由浮动,数的范围和精度分别表示。浮点数的一般表示格式为:N=rE×M其中:r称为浮点数阶码的底,或尾数基数,一般r=2;E---阶码,一般为定点整数,决定浮点数的表示范围;M---尾数,一般为定点小数,决定浮点数的精度。第十三页,共八十六页,编辑于2023年,星期四例:N=-0.000001011,可将其表示为以下的浮点数形式:N=2-3x(-0.001011)=2-4×(-0.01011)=2-5×(-0.1011)=…(1)浮点数的规格化目的:为了提高运算精度,充分利用尾数的有效位数,同时保证浮点数表示形式唯一,通常采取浮点规格化形式。定义:规定尾数小数点后第一位,即尾数数值位的最高有效位(MSB)必须是非零有效数字,即尾数满足:1/2<=|M|<=1

第十四页,共八十六页,编辑于2023年,星期四例:将下列数表示成规格化的浮点数形式:11.101B,-10,16,7.DH解:11.101B=0.11101B×22-10=-1010B=-0.101B×24

16=10000B=0.1B×257.DH=111.1101B=0.1111101B×23

第十五页,共八十六页,编辑于2023年,星期四

具体形式

当尾数M的基数为2时,规格化表示的尾数形式为:

正数(原码、补码):0.1××…×,其最大值为0.111…1,最小值为0.100…0,尾数的表示范围1/2<=M<1;负数(原码):1.1××…×,其最大值为1.100…0,最小值为1.111…1,尾数表示的范围为-1<M<=-1/2;负数(补码):1.0××…×,其最大值为1.011…1,最小值为1.000…0,尾数的表示范围为-1<=M<-1/2.总结:若规格化浮点数的尾数用原码表示,则MSB=1,即正数为0.1××…×的形式,负数1.1××…×的形式;若用补码表示,则当N>0时,MSB=1,当N<0时,MSB=0,即正数为0.1××…×的形式,负数为1.0×…×的形式.

第十六页,共八十六页,编辑于2023年,星期四

浮点数与定点数的比较定点数:表示方法简单直观,但表示数的范围小.浮点数:表示的范围远比定点数大;运算过程中随时对中间结果作规格化,不易丢失有效数位,故提高了运算精度;但浮点运算较复杂.例:假设机器中数据由8位二进制数表示(包括符号位),在定点机中,8位全部表示有效数字;在浮点机中,阶符阶码占3位,数符尾数占5位.(假设只考虑正数)则:定点机小数表示的数的范围:0.0000000-0.1111111即0-127/128浮点机表示的数的范围:2-11

×0.0001--211×0.1111即1/128—7.5

第十七页,共八十六页,编辑于2023年,星期四(2)浮点数格式浮点数可分为以下两种格式:一般形式EsE1E2….EmMsM1M2….Mn阶符阶码数符尾数例:写出二进制-110.0011在计算机中的浮点数形式.设阶码取4位补码,尾数是8位原码。解:-110.0011=-0.1100011×20011浮点数形式为001111100011阶符尾符第十八页,共八十六页,编辑于2023年,星期四

浮点数的另外一种格式IEEE754标准因为在IEEE754标准中浮点数的阶码采用了新的机器码—移码,故先介绍移码的相关知识。①移码(增码)定义通常用于表示浮点数的阶码.X为n位纯整数真值,其移码(n+1位,包括1位符号位)定义为:[x]移=偏移值+x注意偏移值的选取,例如可以选其为2n。例:n=7,则[X]移=128+X,-128≤X≤127②为什么叫做移码、增码:

0128255[X]移X-1280127注意:移码的实质是将真值映像到一个正数域,故移码的大小可以直观反映真值的大小。第十九页,共八十六页,编辑于2023年,星期四移码与真值、补码的对应关系真值X十进制二进制二进制十进制[X]移[X]补-128-100000001,0000000000000000-127-011111111,0000001000000011┇┇┇┇┇-1-000000011,1111111011111111270000000000,0000000100000001281000000010,000000110000001129┇┇┇┇┇127011111110,111111111111111255可见:对偏移值为2n的移码来说,同一数值的移码和补码除最高位之外,其他各位相同。③移码的性质:见下表第二十页,共八十六页,编辑于2023年,星期四④移码偏置值的选取移码可以视作无符号数,对字长8位的移码,共有28个无符号数:000000000000000011……0111111127-11000000027…….1111111028-21111111128-1

为使阶码真值的正数和负数分布尽可能均匀,可选居于中间的两个数中的一个作为偏移值。注意1)对没有明确指出偏移值的移码,应选其为2n(设字长为n+1位)(2)在IEEE754标准中,短浮点数的偏移值为27-1。第二十一页,共八十六页,编辑于2023年,星期四二、数据格式2、浮点数(Float-PointNumber)(2)浮点数格式浮点数的另外一种格式IEEE754标准如果在不同的计算机当中,浮点数采用不同的基数、尾数和阶码的长度,则浮点数表示有较大差别,不利于软件在不同机器之间的移植。IEEE754标准就是1985年由IEEE提出的一个从系统结构角度支持浮点数表示的标准,当今流行的计算机几乎都采用这一标准。

★在IEEE754标准中,阶码用移码表示,尾数用原码表示。★IEEE754单精度即32位浮点数格式:SEM(-1)sX(1.M)X2E-127第二十二页,共八十六页,编辑于2023年,星期四有关IEEE754格式的例题请课后自习P.21【例1】、【例2】;P.27【例5】、【例6】作为数的表示范围的例子自习,注意其中【例6】的格式并不完全等同于IEEE754标准。(3)浮点数表示的范围例:有一个字长为32位的浮点数,阶码10位,用移码表示;尾数22位,用补码表示;基数为2。请写出(1)最大数的二进制表示;(2)最小数的二进制表示;(3)规格化数所能表示的数的范围;(4)最接近于零的正规格化数与负规格化数。第二十三页,共八十六页,编辑于2023年,星期四解:设浮点数格式为X=2E•S,首先写出阶码和尾数的范围:阶码为10位移码,则阶码的取值范围为-512~+511;尾数是22位的补码(其中含符号位1位),则尾数最大正数值为Smax=1-2-21;尾数最小正数值为Smin=2-21。尾数最大负值为-2-21;尾数最小负值为-1。(1)最大数的二进制表示:正数Xmax=2511•(1-2-21)负数Xmax=2-512•(-2-21)(2)最小数的二进制表示:正数Xmin=2-512•2-21负数Xmin=2511•(-1)第二十四页,共八十六页,编辑于2023年,星期四(3)规格化数所能表示的数的范围:阶码取值范围还是-512~+511,而规格化的浮点数尾数(22位补码)的取值范围为当X>0时:2-1≤X≤1-2-21当X<0时:-1≤X<2-1或-1≤X≤(2-1+2-21)所以规格化数的取值范围为当X>0时:2-513≤X≤2511•(1-2-21)当X<0时:-2511≤X<-2-512•2-1或-2511≤X≤-2-512•(2-1+2-21)(4)最接近于零的正规格化数与负规格化数。第二十五页,共八十六页,编辑于2023年,星期四例:将下列十进制数表示成浮点规格化数,阶码3位,用补码表示;尾数9位,用补码表示。———各包含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第二十六页,共八十六页,编辑于2023年,星期四2.1.2数值数据的表示法

三、数字编码——以一种中间编码形式表示数(BCD码)1、编码目的:以机器能表示与识别的二进制形式存在,又比纯二进制数(purebinary)更接近日常所习惯的十进制数。2、BCD编码:BinaryCodedDecimal,即二进制编码的十进制数,种类有很多,如Gray码、余3码、8421BCD码、EBCD码等。3、8421BCD码:用四位二进制数表示一位十进制数0~9。0000——0,0001——1,……,1001——9,00010000——10,00010001——11,…,00010101——15,00010110——16…。注意10以后的十进制数的表示。第二十七页,共八十六页,编辑于2023年,星期四一、出错的原因:1、元器件质量不可靠;2、线路工艺不过关;3、远距离传输带来的干扰等等,均会导致存取、加工、传输时出现0变成1或1变成0的错误。二、错误检测与纠正方法有很多:常见的一种是对数据信息进行扩充,加入新代码,使之与原数据共同按某种规律编码后具有发现错误的能力,有些甚至具有指出具体的错误位置并使机器校正的能力。我们称之为“校验码”(checkcode)。几种常用的校验码包括:奇偶校验码、CRC码、海明码等。

2.1.3校验码(checkcode)第二十八页,共八十六页,编辑于2023年,星期四三、奇偶校验码广泛用于主存的读写校验或ASCII码字符传送过程中的检查。

1、编码方式:在n位有效信息位上加一个二进制位作为校验位P,构成n+1位的奇偶校验码。校验位P的位置可以在有效信息位的最高位之前,也可在有效信息位的最高位之后。

奇校验(odd):编码中含“1”的个数(连同校验位)共有奇数个“1”;

偶校验(even):编码中含“1”的个数(连同校验位)共有偶数个“1”。

例:信息编码为:10001000B100010001100010000奇校验位偶校验位第二十九页,共八十六页,编辑于2023年,星期四若采用偶校验,则校验位P可由下式确定:Peven=D0D1D2D3D4D5D6D7(2-1)若D7-D0中有偶数个1,则“偶形成”=0若D7-D0中有奇数个1,则“偶形成”=1若采用奇校验,则校验位P可由下式确定:Podd=Peven(2-2)

根据式(2-1)和(2-2),可得到9位奇偶校验位P的形成电路,如下图示。+++++++第三十页,共八十六页,编辑于2023年,星期四++++++++偶校验位形成D7D6D5D4D3D2D1D0奇校验位形成奇偶校验位P的形成电路PevenPodd第三十一页,共八十六页,编辑于2023年,星期四+++++++++偶校错校验位D7D6D5D4D3D2D1D0奇校错奇偶校验位电路Peven2、奇偶校验码的校验:8位代码与1位校验位同时送入偶校验逻辑电路.若“偶校错”=0,表明数据无奇数个错,可视为正确.第三十二页,共八十六页,编辑于2023年,星期四3、主存读写过程中的奇偶校验假设CPU准备写入主存某单元的数据为01010101,若采用奇校验,经过奇偶校验电路,形成奇偶校验位,实际写入贮存的9位校验码为101010101(最高位为校验位)。从主存单元读出的9位信息首先送入奇偶校验电路,若9位信息中“1”的个数为奇数个,表示读出信息正确,将校验位去掉后的8位数据送CPU;否则,表示读出信息不正确,向CPU发出奇偶校验出错的中断请求信号。CPU奇偶校验电路主存8位9位8位9位第三十三页,共八十六页,编辑于2023年,星期四2.2定点数加减运算

2.2.1补码加法运算1.补码加法的公式:[x]补+[y]补=[x+y]补(mod2)2.补码加法的特点:符号位作为数的一部分一起参加运算;在模2的意义下相加,超过2的进位要丢掉.例:x=+0.1001,y=-0.0101,求x+y解:[x]补=0.1001,[y]补=1.1011

[x]补0.1001[y]补1.1011[x+y]补10.0100

故:x+y=0.0100+进位超过2,丢掉第三十四页,共八十六页,编辑于2023年,星期四2.2.2补码减法运算1.补码减法的公式:[x-y]补=[x]补-[y]补=[x]补+[-y]补2.补码减法的特点:减法运算可以化为加法,可和常规加法运算使用同一加法器电路,从而简化计算机的设计.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.0111=0.0111所以x-y=+0.0111第三十五页,共八十六页,编辑于2023年,星期四2.2.3溢出及其检测1.定义:运算的结果超出机器所能表示的数据范围。分上溢和下溢。例:x=+0.1011,y=+0.1001,求x+y.解:[x]补=0.1011,[y]补=0.1001

[x]补0.1011

[y]补0.1001+[x+y]补1.0100

注意:补码[X]补与真值X的转换。当X〉=0时,[X]补=X;当X<0时,[X]补=M+X注意:只有当两数同号时,才会出现溢出。第三十六页,共八十六页,编辑于2023年,星期四2、几种检测方法(1)单符号位法1(根据两个操作数的符号与结果的符号判别溢出):当操作数中的加数与被加数符号相同时,若结果的符号与操作数的符号不一致,表示溢出;否则,表示无溢出.设X的符号位为Xf,Y的符号为Yf,运算结果的符号为Sf,则溢出逻辑表达式:

V=XfYfSf+XfYfSfV=0无溢出;V=1有溢出第三十七页,共八十六页,编辑于2023年,星期四(2)单符号位法2(进位判断法):当最高有效位产生进位而符号位无进位时,产生上溢;当最高有效位无进位而符号位有进位时,产生下溢.其逻辑表达式为:V=S

C其中S为符号位产生的进位,C为最高有效位产生的进位。+第三十八页,共八十六页,编辑于2023年,星期四(3)双符号位法(变形补码法):在进行补码加减运算时,如果只使用一个符号位,出现溢出的时候正确的符号位将被数值侵占,符号位含义将发生混乱。因此,如果将符号位扩展为两位,即使出现溢出,数值侵占了一个符号位,仍能保持最左边的符号为正确。

溢出逻辑表达式为:V=Sf1Sf2+

其中,Sf1和Sf2分别为最高符号位及第二符号位。第三十九页,共八十六页,编辑于2023年,星期四2.2.4基本的二进制加/减法器一、回忆加法单元——两个一位二进制数所使用的硬件1、一位半加器HA(HalfAdder)(逻辑符号、真值表、逻辑式)ASABSCS=A㊉BBC0000=AB+ABA、B:两个一位加数;0110C=ABS:半加和;1010C(Carry):半加进位。1101HA第四十页,共八十六页,编辑于2023年,星期四2、一位全加器FA(FullAdder):在半加器的基础上考虑进位输入(1)逻辑符号、真值表、逻辑表达式AiSiAiBiCiSiCi+1BiCi+100000Ci0011001010Si=Ai㊉Bi㊉Ci01101Ci+1=AiBi+BiCi+CiAi10010=AiBi+(Ai㊉Bi)Ci10101Ai,Bi:n位加法器11001第i位的加数11111FA第四十一页,共八十六页,编辑于2023年,星期四Ci+1SiCi+1SiCiAiBiAiBiCi&&异或&异或&&&&&&&或或(2)全加器的硬件实现:电路形式有很多,选两例典型做介绍。第一种在教材P.35图2.2(b)。第四十二页,共八十六页,编辑于2023年,星期四(3)计算全加器电路的时间延迟:从电路的输入产生起直到输出出现所经过的时间,用T的个数表示。T叫延迟单位。以此表格为依据可推算出前两种FA的时间延迟。第一例:生成Si的延迟为6T,生成Ci+1的延迟为5T。第二例:生成Si、Ci+1的延迟均为2T。可见同功能不同形式的电路具有不同的时间延迟。与非门NANDT逻辑符号或非门NORT非门NOTT与门AND2T或门OR2T异或门XOR3T同或门XNOR3T与或非(接线逻辑)AOIT+Trc≈T第四十三页,共八十六页,编辑于2023年,星期四二、由加法单元——FA组成加法器:介绍行波进位即串行进位的补码加/减法器(一)加法器类型及进位方式

串行加法器加法器并行加法器串行进位方式并行加法器并行进位方式

并行加法器不同进位方式的依据:回忆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+P1C1C3=G2+P2C2…………….第四十四页,共八十六页,编辑于2023年,星期四(二)、并行加法器及其进位链

并行加法器:使用的全加器的位数与操作数的位数相同,能同时对操作数的各位进行相加。

进位链:进位传递逻辑,分为串行和并行进位两种。1.基本进位公式设相加的两个操作数为:A=An-1An-2…Ai…A0B=Bn-1Bn-2…Bi…B0则进位信号的逻辑式为Ci+1=AiBi+(Ai㊉Bi)Ci=Gi+PiCiGi=AiBiPi=Ai㊉Bi其中,Pi称为进位传递函数,Gi称为进位产生函数。

第四十五页,共八十六页,编辑于2023年,星期四2.串行进位的并行加法器串行进位的并行加法器:将n个全加器串接起来,可以进行两个n位数相加。其中的进位是逐级形成的,每一级的进位直接依赖于前一级的进位.串行进位的逻辑表达式为:C1=A0B0+(A0

㊉B0)C0=G0+P0C0C2=A1B1+(A1

㊉B1)C1=G1+P1C1…Cn=An-1Bn-1+(An-1

㊉Bn-1)Cn-1=Gn-1+Pn-1Cn-1可见,串行进位的进位输出信号Ci与低位的进位信号有关,所以造成延迟时间较长。第四十六页,共八十六页,编辑于2023年,星期四例:行波(串行)进位的补码加法/减法器:可由n个一位的全加器(FA)联成一个n位的行波进位并行加减器.M为方式控制输入线,当M=0时,做加法(A+B)运算;当M=1时,做减法(A-B)运算,此时,A-B运算化为[A]补+[-B]补运算,[-B]补用[B]补包括符号位“取反末位加1”来实现.另外,采用单符号位法2的溢出检测逻辑:V=CnCn-1,其中,Cn为符号位,Cn-1为最高有效位产生的进位=1FAFAFAFA=1=1=1=1….V溢出Sn-1Sn-2S1S0C0C1C2Cn-2Cn-1Cn……Bn-1An-1Bn-2An-2…B1A1B0A0方式控制线M=0加M=1减+第四十七页,共八十六页,编辑于2023年,星期四3.并行进位(先行进位、同时进位)的并行加法器并行进位的并行加法器:为提高加法器的运算速度,必须解决进位信号的产生和传递问题.将串行进位链改变形式,使各进位信号的产生不再与低位的进位信号有关,而只与两个参加运算的数和C0有关.各级进位信号同时生成,并行进位的逻辑表达式为:

C1=A0B0+(A0㊉B0)C0=G0+P0C0C2=G1+P1C1=G1+P1(G0+P0C0)…Ci+1=Gi+PiCi=Gi+PiGi-1+PiPi-1Gi-2+…+PiPi-1Pi-2…P0C0

…Cn=Gn-1+Pn-1Cn-1=Gn-1+Pn-1Gn-2+Pn-1Pn-2Gi-3+…+Pn-1Pn-2Pn-3…P0C0以四位并行加法器为例,看其内部结构:

第四十八页,共八十六页,编辑于2023年,星期四&&11&异或或或或或&&&&C4C3C2C1GiAiBiPiAiBiG3P3G2P2G1P1G0P01四位并行进位线路:产生C4~C1的延时相同,故称并行进位(同时进位)。C0第四十九页,共八十六页,编辑于2023年,星期四&&11或或或或&&&&C4C3C2C1

G3P3G2P2G1P1G0P01C0异或S3异或S2异或S1异或S0具有并行进位的四位加法器逻辑图:因为进位信号先由逻辑线路产生,再送去求和,所以常称为先行进位CLA(CarryLookAhead)加法器。第五十页,共八十六页,编辑于2023年,星期四虽然并行加法器的运算速度快,但是以增加硬件逻辑线路为代价的;当加法器位数增加时,进位信号Ci+1的逻辑式会变得愈加复杂,其进位形成逻辑的输入量也增多,以至超出实用器件规定的输入数;常用的方法是:将加法器分成若干组,在组内采用并行进位,组间采用串行进位或并行进位,即:

组内并行、组间串行的进位链;组内并行、组间串行的进位链;

第五十一页,共八十六页,编辑于2023年,星期四

(a)组内并行、组间串行的进位链

以16位加法器为例,一般可分为4个小组,每个小组4位,每组内部采用并行进位结构,组间采用串行进位传送结构.这种方式虽然每组内是并行的,但对高位小组来说,各进位信号的产生仍依赖于低位小组的最高位进位信号的产生,还存在一定的等待时间.F15F14F13F12G15-G12P15-P12第二组4-7位……第一组0-3位……第四组12-15位……F11F10F9F8第三组8-11位……G11-G8P11-P8G7-G4P7-P4G3-G0P3-P0F7F6F5F4F3F2F1F016位组内并行进位组间串行进位链框图C16C12C8C4C0第五十二页,共八十六页,编辑于2023年,星期四td(T)975C0C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16Ci●●●●●●●●●●●●●●●●组间行波进位形成过程:N=16位11进位产生次序:①同时产生第一小组的C1、C2、C3、C4;②得到C2后经过2T延迟同时产生第二小组的C5、C6、C7、C8;③④类似②。第五十三页,共八十六页,编辑于2023年,星期四(b)、两级先行进位加法器:在上例组内先行进位基础上,把组间的串行进位改成先行进位。再一次分析进位逻辑表达式:C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0C8=G7+P7G6+P7P6G5+P7P6P5G4+P7P6P5P4C4C12=G11+………+P11P10P9P8C8C16=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于是小组间产生四个进位为:第五十四页,共八十六页,编辑于2023年,星期四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+P0C0

C2=G1+P1C1=G1+P1G0+P1P0C0

C3=G2+P2G1+P2P1G0+P2P1P0C0

C4=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0第五十五页,共八十六页,编辑于2023年,星期四&&11或或或或&&&&C16C12C8C4G3*P3*G2*P2*G1*

P1*G0*P0*1C0组间先行进位BCLA(BlockCarryLookAhead)部件第五十六页,共八十六页,编辑于2023年,星期四&111&异或或或或或&&&&C3C2C1GiAiBiPiAiBiG3P3G2P2G1P1G0P01能产生Gi*和Pi*的进位线路C01G*P*请与四位并行进位线路比较:第五十七页,共八十六页,编辑于2023年,星期四&&11&异或或或或或&&&&C4C3C2C1GiAiBiPiAiBiG3P3G2P2G1P1G0P01四位并行进位线路:产生C4~C1的延时相同,故称并行进位(同时进位)。C0第五十八页,共八十六页,编辑于2023年,星期四采用两级先行进位的加法器框图(N=16,四组每组四位):组间先行进位部件BCLA四位CLA加法器四位CLA加法器四位CLA加法器四位CLA加法器C16C0C4C12C8C12C8C4G3*P3*G2*P2*G1*P1*G0*P0*S15~S12S11~S8S7~S4S3~S0A15~A12B15~B12A11~A8B11~B8A7~A4B7~B4A3~A0B3~B0两级先行进位加法器第五十九页,共八十六页,编辑于2023年,星期四两级先行进位的形成过程——进位时间图(仍设四位CLA组内时间延迟为2T):td(T)975C0C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16Ci●●●●●●●●●●两级先行进位形成过程:N=16位11●●●●●●第六十页,共八十六页,编辑于2023年,星期四16位组内并行进位、组间并行进位的并行加法器进位产生次序:产生第一小组的C1、C2、C3及所有的Gi*、Pi*;产生组间的进位信号C4、C8、C12、C16;产生第二、三、四小组的C5、C6、C7、C9、C10、C11、C13、C14、C15;至此,进位信号全部形成,和数也随之产生。第六十一页,共八十六页,编辑于2023年,星期四td(T)975C0C1C2C3C4C5C6C7C8C9C10C11C12C13C14C15C16Ci●●●●●●●●●●●●●●●●组间行波进位形成过程:N=16位11第六十二页,共八十六页,编辑于2023年,星期四一、进位公式的分析:Ci+1=Gi+PiC0二、串行进位加法器:速度慢,N越大越明显。三、并行(先行)进位加法器1、进位均由C0同时生成;2、得到四位并行进位线路;3、进而得到四位先行进位加法器。四、组间串行(行波)进位加法器1、N=16为例将四位CLA加法器串接而得;2、该加法器的进位时间图。五、两级先行进位加法器:组间串行改为并行1、再次分析进位逻辑表达式(引入两个辅助函数)2、得到同时生成C4、C8、C12、C16的BCLA3、进而得到两级先行进位的加法器(N=16位)4、两级先行进位形成的进位时间图。加法器进位结构讨论的小结第六十三页,共八十六页,编辑于2023年,星期四教材P.36图2.3(a):n位数字的行波进位BCD加法器Sn-1S1S0444

CnCn-1C2C1C0444444

Xn-1Yn-1

X1Y1X0Y0例:X=1234,Y=5678,S=1234+5678=6912一位BCD加法器单元一位BCD加法器单元一位BCD加法器单元2.2.5十进制加法器——对BCD码进行加法运算:实质是通过二进制运算附加必要的校正逻辑实现的。第六十四页,共八十六页,编辑于2023年,星期四十进制数未修正的和Ci+1’Si3’Si2’Si1’Si0’8421码Ci+1Si3Si2Si1Si0修正法01┇900000001┇1001

00000001┇1001

不修正101112131415161718191010101111001101111011111000010001100101001110000100011001010011101001010110110101111100011001

+6校正Ci+1’+Si3’Si2’+Si3’Si1’=1时,需要进行+6校正;且有Ci+1’+Si3’Si2’+Si3’Si1’=Ci+1

第六十五页,共八十六页,编辑于2023年,星期四教材P.36图2.3(b)一位BCD加法器单元的逻辑结构Si3Si2Si1Si0

十进

校正0Ci+1Ci

S’i3S’i2S’i1S’i0二C’i+1进加Xi3Yi3Xi2Yi2Xi1Yi1Xi0Yi0法FAFAFA与与FAFAFAFA或第六十六页,共八十六页,编辑于2023年,星期四

2.3定点运算器的构成

2.3.1算术逻辑部件ALU1、ALU是运算器的核心,主要作用是进行定点算术运算和逻辑运算。由于加法操作是各种算术运算的基础,因此ALU的核心是加法器。

ALU的硬件实现涉及三个问题:(1)如何构成一位二进制加法单元,即全加器;(2)N位全加器连同进位信号传递逻辑,构成一个N位并行加法器;(3)以加法器为核心,通过输入选择逻辑扩展为具有多种算术功能和逻辑功能的ALU。第六十七页,共八十六页,编辑于2023年,星期四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最低位进位输入,Cn+4为ALU产生的最高位输出.G、P为输出小组进位辅助函数。

87654321232221201918161417159101113CnMS0S1S2S3F0F1F2F3A0B0A1B1A2B2A3B3Cn+4A=BGP

SN741814位ALU

SN74181框图第六十八页,共八十六页,编辑于2023年,星期四可见,每片74181可作为一个小组,是一个4位先行进位加法器。小组间既可以采用串行进位,又可以采用并行进位。当组间采用并行进位时,需要增加另外的芯片----74182(先行进位发生器)。(2)74182作用:产生74181组间并行进位所需要的每片74181的最低位进位。74182的逻辑图:P.56图2.12。74182的逻辑符号图中Cn+ZCn+YCn+X是三个进位输出信号,P**、G**

是大组(16位)进位产生函数和进位传递函数。74182CnP**G**Cn+ZCn+YCn+XP*3G*3P*2G*2P*1G*1P*0G*0第六十九页,共八十六页,编辑于2023年,星期四(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+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*可进一步实现大组间的并行进位。74182CnP**G**Cn+ZCn+YCn+XP*3G*3P*2G*2P*1G*1P*0G*0第七十页,共八十六页,编辑于2023年,星期四(3)74181和74182的配合应用

——例:利用74181和74182组成下列ALU方法:74181的4位作为一个小组,每四个小组构成一个大组。16位行波进位ALU,即小组内并行进位、小组间(大组内)串行进位;16位并行ALU,即小组内并行进位、小组间(大组内)并行进位;74181P*G*F3F2F1F0Cn+4CnA3A2A1A0B3B2B1B074182CnP**G**Cn+ZCn+YCn+XP*3G*3P*2G*2P*1G*1P*0G*0第七十一页,共八十六页,编辑于2023年,星期四(3)74181和74182的配合应用

——例:利用74181和74182组成下列ALU方法:74181的4位作为一个小组,每四个小组构成一个大组。64位并行ALU,分两种情况:即小组内并行进位、大组内并行进位、大组间串行(并-并-串)的64位加法器;或小组内并行进位、大组内并行进位、大组间并行(并-并-并)的64位加法器;

74181P*G*F3F2F1F0Cn+4CnA3A2A1A0B3B2B1B074182CnP**G**Cn+ZCn+YCn+XP*3G*3P*2G*2P*1G*1P*0G*0第七十二页,共八十六页,编辑于2023年,星期四解答:

*用4片74181构成的16位行波进位的ALU741814#Cn+4Cn741813#Cn+4Cn741812#Cn+4Cn741811#Cn+4CnCoutCin称为单级先行进位的ALU——只有74181片内四位为先行进位,用前一级芯片的进位输出作为下一级芯片的进位输入端,片内先行进位,片间串行进位,运算速度慢。第七十三页,共八十六页,编辑于2023年,星期四*用4片74181和1片74182构成的16位并行ALU74182P*3G*3Cn+zP*2G*2Cn+yP*1G*1Cn+xP*0G*0Cin74181Cn+4Cn74181Cn+4Cn74181Cn+4Cn74181Cn+4CnCoutCinP**G**称为两级先行进位的ALU:每片181内部(小组内)为先行进位,四片181之间(大组内)也为先行进位,运算速度较快。第七十四页,共八十六页,编辑于2023年,星期四*用16片74181和4片74182构成的64位并行ALU(4X16=4X(4X4))74182Cn+zCn+yCn+xP3G3P2G2P1G1P0G0181Cn181Cn181Cn181CnCin16位并行ALU16位并行ALU16位并行ALU16位并行ALUCoutP*G*P*G*P*G*P*G*两级先行进位的ALU:181芯片内部(小组内部)、大组内并行、大组间串行进位。C16C32C48C64第七十五页,共八十六页,编辑于2023年,星期四*用16片74181和五片74182构成的64位并行ALU(4X

温馨提示

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

最新文档

评论

0/150

提交评论