1、 本章解决的问题是如何把运算算法用硬件电路实现。3.1.1逻辑器件的概念3.1计算机硬件的基本逻辑电路计算机硬件的基本逻辑电路o逻辑“与”操作:当且仅当A和B 均为1时,其逻辑乘AB才为1,否则为0。o逻辑“或”操作:只要A和B中任意一个(或者同时)为1时,其逻辑加A+B则为1,否则为0。o逻辑“非”操作:当A为1时,A即为0;当A为0时,A即为1。o吸收律 A+AB=A A(A+B)=Ao第二吸收律 A+AB=A+B A(A+B)=ABo重叠律 A+A=A AA=Ao互补律 A+A=1 AA=0o包含律 AB+AC+BC=AB+AC (A+B)(A+C)(B+C)=(A+B)(A+C)3.1
2、.2基本逻辑运算3.1计算机硬件的基本逻辑电路计算机硬件的基本逻辑电路o01律 0+A=A 1A=A 0A=0 1+A=1o反演律(摩尔定律)A+B=AB AB=A+Bo变换律 A+B=B+A AB=BAo结合律 A+(B+C)=(A+B)+C A(BC)=(AB)Co分配律 A+BC=(A+B)(A+C)A(B+C)=AB+AC3.1.3组合逻辑电路3.1计算机硬件的基本逻辑电路计算机硬件的基本逻辑电路一位带进位的全加器一位二进制半加器一位加法器进位电路一位全加器电路4位加/减法运算器3.1.3组合逻辑电路3.1计算机硬件的基本逻辑电路计算机硬件的基本逻辑电路3.1计算机硬件的基本逻辑电路计
3、算机硬件的基本逻辑电路3.1.3组合逻辑电路译码器及逻辑功能 双4选1数据选择电路3.1计算机硬件的基本逻辑电路计算机硬件的基本逻辑电路3.1.3组合逻辑电路3.2时序逻辑电路时序逻辑电路3.1.3基本时序逻辑电路锁存器电路图3.2时序逻辑电路时序逻辑电路3.1.3基本时序逻辑电路D触发器逻辑组合图3.2时序逻辑电路时序逻辑电路3.2.1基本时序逻辑电路D触发器逻辑组合图657318423.2时序逻辑电路时序逻辑电路3.2.2寄存器和计数器4位寄存器的电路结构和功能表3.2时序逻辑电路时序逻辑电路3.2.2寄存器和计数器双向4位移位寄存器的逻辑电路3.2时序逻辑电路时序逻辑电路3.2.2寄存器
4、和计数器双向4位移位寄存器的功能表3.2时序逻辑电路时序逻辑电路3.2.2寄存器和计数器主从J-K触发器构成的同步十进制集成计数器逻辑电路3.2时序逻辑电路时序逻辑电路3.2.2寄存器和计数器主从J-K触发器构成的同步十进制集成计数器逻辑电路o前面介绍了数的补码表示法,因此一个加法器就可以执行加减法运算了。如果是加法运算,则直接进行两数的补码相加;若是减法运算,则将减数取负,仍执行加法运算。将一个定点数取负的规则是:将整数的每位(包括符号位)求反,末位加1。3.3定点数的运算定点数的运算3.3.1定点数的加减法运算3.3定点数的运算定点数的运算3.3.1定点数的加减法运算 为保证计算的正确性,
5、必须对溢出进行检测。方法是采用双符号位,在补码的符号位之前加一位符号位与符号位同值,这称为“变形补码”。采用变形补码后,任何正数,两个符号位都是0;任何负数,两个符号位都是1。两个数相加后,若其结果的符号位出现01或10两种组合时,表示发生溢出,而最高符号位永远表示结果的正确符号。两个正数相加,结果大于机器所能表示的最大正数,称为上溢。两个负数相加,结果小于机器所能表示的最小负数,称为下溢。3.3定点数的运算定点数的运算3.3.2定点乘法运算原码一位乘法的规则为:设被乘数A和乘数B的原码表示为oA原=Xs.X1X2Xn oB原=Ys.Y1Y2Yno两数乘积的符号位用Zs表示,其正负由被乘数A和
6、乘数B的符号位Xs和Ys确定,且有Zs=Xs Ys。数值部分由两数绝对值,按上述步骤相乘而得。归纳为o当Yi=1时,得位积|X|,作Zn-i+|X|并右移一位得Zn-i+1。o当Yi=0时,得位积0,作Zn-i+0,并右移一位得Zn-i+1。o其中i表示重复的次数,由数的位数n决定,需要进行数次这样的操作。原码乘法器的逻辑电路图如下页所示。原码乘法器的逻辑电路图3.3定点数的运算定点数的运算3.3.2定点乘法运算3.3定点数的运算定点数的运算3.3.2定点乘法运算硬件乘法器逻辑电路图3.3定点数的运算定点数的运算3.3.3定点除法运算设:被除数 X原=Xs.X1X2Xn;除数 Y原=Ys.Y1
7、Y2Yn;商Q原=Qs.Q1Q2Qn;余数 R原=Rs.R1R2Rn则它们之间有如下关系:X原=Y原Q原+R原其除法过程如下:符号处理:Zs=Xs Ys商的数值部分,变成两正数相除,即|X|/|Y|(|X|0,表明ExEy若E 0,表明Ex0时,1/2S1 对于SS1 理论上,S可等于1/2,但1/2补=11.1000,为了便于判别是否是规格化数,不把1/2列为规格化数,而把1列入规格化数。1补=11.000 补码规格化的浮点数应有两种形式:00.1xxx 11.0 xxx3.4浮点数的运算浮点数的运算3.4.1浮点数的加减法运算补码规格化的条件是:(A)若和或差的尾数两符号位相等且与尾数第一
8、位相等,则需向左规格化。即将和或差的尾数左移,每移一位,和或差的阶码减一,直至尾数第一位与尾符不等时为止。(B)若和或差的尾数两符号位不等,即01.xxx或10.xxx形式,表示尾数求和(差)结果绝对值大于,向左破坏了规格化。此时应该将和(差)的尾数右移1位,阶码加,即进行向右规格化。(1)“0舍1入”法,即右移时丢掉的最高位为0,则舍去;是1,则将尾数的末位加1(相当于进入)。(2)“恒置1”法,即不管移掉的是0还是1,都把尾数的末位置1。4.舍入5.浮点数的溢出判断 由阶码判断是否溢出。设阶码的数值部分取7位,符号位取2位,用补码表示,则能表示的最大阶码E补=001111111=127;最
9、小阶码E补=110000000=128;(1)小于128,称为下溢:发生在左规时;用机器0表示(阶码、尾数全0)。(2)大于+127时,称为上溢,这是浮点数的真正溢出,置溢出标志,作中断处理E补=01 XXX为上溢,真正溢出,需做溢出处理。E 补=10 XXX为下溢,浮点数值趋于零,用机器零表示。3.4浮点数的运算浮点数的运算3.4.1浮点数的加减法运算3.4浮点数的运算浮点数的运算3.4.2浮点数的乘除法运算设 X=Sx2Ex ,Y=Sy2 Ey则 XY=(SxSy)2 Ex+Ey浮点数乘法运算的规则为:o乘积的阶码由两数阶码相加求得o乘积的尾数等于被乘数和乘数的尾数之积可采用定点数乘方法(
10、A)需要对浮点数尾数积进行规格化(左规、右规:均是最多一位)(B)舍入:0舍1入,若采用双倍字长乘积时,没有舍入问题。3.4浮点数的运算浮点数的运算3.4.2浮点数的乘除法运算浮点数除法的运算规则为:n商的尾数由两数的尾数相除求得n商的阶码由两数阶码相减求得设x=Sx2Ex,y=Sy2Ey,则x/y=(Sx/Sy)2 Ex-Eyo步骤 (1)预置 (2)尾数调整 (3)求阶差 (4)尾数相除 (5)规格化 (6)舍入3.4浮点数的运算浮点数的运算3.4.3浮点运算器o浮点运算既可以依据上述操作通过编程实现,也可由硬件实现。用硬件实现浮点运算可极大地提高计算机整体的运行速度,从而提高机器效率。今
11、天的微电子技术可以很经济地提供硬件浮点运算器,因此在计算机体系中具备多个高达128位的浮点运算器,如集成于图像处理单元(GPU)中的浮点运算器等。o80 x87是美国Intel公司为处理浮点数等数据的算术运算和多种函数计算而设计生产的专用算术运算处理器。由于它们的算术运算是配合80 x86CPU进行的,所以又称为协处理器。o以异步方式与80386并行工作。o可处理包括二进制浮点数、二进制整数和压缩十进制数串三大类7种数据。o 运算器是机器的加工处理部件,是中央处理机的重要组成部分。o 运算器与其它部件有着紧密的联系。这种联系影响信息的传送和加工的速度。3.5运算器及算术逻辑单元运算器及算术逻辑
12、单元o运算器的主要功能是实现对数据的算术和逻辑运算。主要包括对数值数据的算术运算,如执行加、减、乘、除运算,变更数据的符号等。也包括对各种数据的逻辑运算,例如进行与、或、求反等运算。3.5运算器及算术逻辑单元运算器及算术逻辑单元3.5.1运算器的功能和组成存放待加工的信息或加工后的结果信息的通用寄存器组存放待加工的信息或加工后的结果信息的通用寄存器组按操作要求控制数据输入部件:多路开关或数据锁存器按操作要求控制数据输入部件:多路开关或数据锁存器 按操作要求控制数据输出部件:输出移位和多路开关按操作要求控制数据输出部件:输出移位和多路开关能实现算术和逻辑运算功能的部件能实现算术和逻辑运算功能的部
13、件ALU 计算器与其它部件进行信息传送的总线以及总线接收器与发送器计算器与其它部件进行信息传送的总线以及总线接收器与发送器 组成3.5运算器及算术逻辑单元运算器及算术逻辑单元3.5运算器及算术逻辑单元运算器及算术逻辑单元3.5.2SN74181算术/逻辑运算单元的组成3.5运算器及算术逻辑单元运算器及算术逻辑单元o加法是计算机中最基本的运算,是实现算术运算的基础,不同编码形式表示的机器数,其运算方法不同。超前进位算法是一种快速算法。o原码完成定点乘法和除法运算比较方便,符号位可以通过对两数符号进行逻辑异或运算求得。o浮点数的运算中、阶码和尾数运算是分别进行的,将二个浮点数的运算转换成四个定点数的相关运算。o运算器是中央处理器的重要组成部分,它直接影响信息的传递和加工的速度。它的主要功能是对数据的加工和处理。