版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
运算器和运算方法第1页,共44页,2023年,2月20日,星期日3.1定点运算器的组成和结构 定点运算器由算术逻辑运算单元(ALU)、输入数据选择电路、通用寄存器组、输出数据分配电路组成,如下页图所示。
其中算术逻辑运算单元的核心部件是加法器,而加法器的逻辑组成包括加法单元与进位传递逻辑单元。第2页,共44页,2023年,2月20日,星期日CPU的结构第3页,共44页,2023年,2月20日,星期日3.1.1算术逻辑运算单元(ALU)运算器中完成数据算术与逻辑运算的部件称为算术逻辑运算单元(ArithmeticandLogicUnit,ALU)。如CPU结构图所示,ALU是运算器的核心,通常表示为两个输入端口,一个输出端口和多个功能控制信号端的一个逻辑符号。
ALU处理数据的位数与机器的字长有关。第4页,共44页,2023年,2月20日,星期日3.1.2通用寄存器组现代计算机的中央处理器中都有一组通用寄存器,主要用于保存参加运算的操作数和运算结果。之所以在现代计算机中加入通用寄存器是因为它的存取速度要远远高于内存储器的速度。通用寄存器的数量越多,对提高运算器性能和程序执行速度越有利。通用寄存器组是对用户开放的,可以通过指令去使用这些寄存器。第5页,共44页,2023年,2月20日,星期日如上图所示,8086微处理器有14个16位寄存器,包括8个通用寄存器,1个指令指针寄存器,1个标志寄存器,4个段寄存器。它们都有名称,编程时使用其名称代表其保存的内容。第6页,共44页,2023年,2月20日,星期日3.1.3状态寄存器状态寄存器主要用于记录一些运算结果的状态。通常情况下,状态寄存器由以下几种标志状态位组成:
V(溢出标志位):当运算结果有溢出时,该位被置位;当运算结果没有溢出时,该位被清0。
Z(零标志位):当运算结果为0时,该位被置位;当运算结果不为0时,该位被清0。
C(进位或借位标志位):当作加法时如果最高位向前有进位,或当作减法时最高位向前无借位,该标志位被置位;当作加法时如果最高位向前无进位,或当作减法时最高位向前有借位,该标志位被清0。
N(符号标志位):当运算结果为负数时,该位被置位;当运算结果为正数时,该位被清0。第7页,共44页,2023年,2月20日,星期日3.1.4数据通路从一个功能部件向另一个功能部件传送数据所经过的功能部件、总线等称为数据通路。下面以CPU结构图所示的CPU的各功能部件的右半部分运算器为例,解释其数据通路,进而说明运算器的工作过程。第8页,共44页,2023年,2月20日,星期日第9页,共44页,2023年,2月20日,星期日在图中,MUX1和MUX2分别是两个多路数据选择器,用来选择当前哪两组数据送到ALU中。MUX1数据有两个来源:通用寄存器的输出和指令中的相对位移量。MUX2数据有3个来源:通用寄存器的输出、数据寄存器的输出和程序计数器的输出。ALU的输出信息通过内部数据总线送到通用寄存器中。如果通用寄存器有两个输出端口RA和RB,有一个输入端口RL。寄存器中的数据用补码表示。并且寄存器1用R1表示,寄存器2用R2表示,寄存器3用R3表示。运算之前R1=1100,R2=0110,V、Z、C、N标志位都为0。进行下面的操作后,请问标志位V、Z、C、N和R3的值如何变化?第10页,共44页,2023年,2月20日,星期日
1.R1+R2,结果送到R3中 操作过程:R1的内容通过端口RA输出,MUX1将RA的内容送入ALU的A输入端;R2的内容通过端口RB输出,MUX2将RB的内容送入ALU的B输入端。ALU进行A+B操作,从Y输出端输出结果,并存入R2寄存器中。
ALU中的运算:
1100 +0110 10010
送往进位位 所以R3=0010,标志位C由0变为1,其他标志位不变。第11页,共44页,2023年,2月20日,星期日
2.求与R1相补的数 操作过程:R1的内容通过端口RB输出,经过MUX2的选择,将RB的内容送入ALU的B输入端。在MUX1处选择常数“0”送入ALU的A输入端,ALU进行A-B操作,从Y输出端输出结果,并存入R3寄存器中。由于运算器要进行的是补码运算,A-B的功能是通过[A]补+[-B]补来完成的。
ALU中的运算:
[A]补
0000 + [-B]补
0100 [0-B]补
0100
所以R3=0100,结果为负,N标志位由0变为1,其他标志位不变。第12页,共44页,2023年,2月20日,星期日3.利用运算器计算操作数地址或转移地址
如果当前执行转移指令,转移地址由程序计数器的值加上相对位移量得出。 操作过程:MUX1选择指令寄存器中的相对位移量送入ALU的A输入端,MUX2选择程序计数器PC的内容送入ALU的B输入端,ALU进行A+B运算,从Y输出端输出结果,并存入PC中,即为转移地址。下次执行指令就从转移地址开始执行。第13页,共44页,2023年,2月20日,星期日
4.关于移位操作 这里以4位二进制数最左边一位为符号位为例,来说明移位操作的规则和操作结果。 (1)算术左移SAL
原数X3X2X1X0
算术左移一位之后变为
可见,算术左移时,最高位被移出,用0来补充最低位。移位后的结果(如果没有溢出发生)是原数的2倍。在没有溢出的情况下,如果左移n位,则移位后的结果是原数的2n倍;若有溢出情况发生,则移位后的结果数据不定。X3X2X1X0X2X1X00第14页,共44页,2023年,2月20日,星期日(2)算术右移SAR
原数X3X2X1X0
算术右移一位之后变为 可见,算术右移时,最低位被移出,最高位保持不变。移位后的结果(如果没有溢出发生)是原数的1/2。在没有溢出的情况下,如果右移n位,则移位后的结果是原数的1/2n;若有溢出情况发生,则移位后的结果数据不定。X3X2X1X0X3X3X2X1第15页,共44页,2023年,2月20日,星期日(3)逻辑左移SHL
原数X3X2X1X0
逻辑左移一位之后变为 可见,逻辑左移时,最高位被移出,用0来补充最低位,结果与算术左移相同。(4)逻辑右移SHR
原数X3X2X1X0
逻辑右移一位之后变为 可见,逻辑右移时,最低位被移出,最高位用0补充,结果与算术右移不同。X3X2X1X0X2X1X00X3X2X1X00X3X2X1第16页,共44页,2023年,2月20日,星期日(5)循环左移ROL
原数X3X2X1X0
循环左移一位之后变为 可见,循环左移时,所有的位顺序向左移一位,最低位由最高位循环移入。(6)循环右移ROR
原数X3X2X1X0
循环右移一位之后变为 可见,循环右移时,所有的位顺序向右移一位,最高位由最低位循环移入。X3X2X1X0X3X2X1X0X2X1X0X3X0X3X2X1第17页,共44页,2023年,2月20日,星期日(7)带进位的循环左移RCL
原数X3X2X1X0
循环左移一位之后变为(8)带进位的循环右移RCR
原数X3X2X1X0
循环右移一位之后变为CX3X2X1X00CX3X2X1CX3X2X1X0X3X2X1X0C第18页,共44页,2023年,2月20日,星期日3.1.5定点运算器的基本结构定点运算器包括ALU、阵列乘除器、寄存器、多路开关、缓冲器、数据总线等逻辑部件。定点运算器大体有如下3种结构形式。第19页,共44页,2023年,2月20日,星期日1.单总线结构的运算器如图(a)所示。由于所有部件都要接到同一单总线上,为了把两个操作数输入到ALU,需要分两次来做,而且还需要A和B两个缓冲寄存器。只有当这两个操作数同时出现在ALU的两个输入端时,ALU才能执行加法。当加法结果出现在单总线上时,由于输入数据已保存在缓冲寄存器中,它并不会对输入数据产生影响。然后,再由第3个传送命令把加法的“和”传送到目的寄存器中。由此可见,这种结构的主要缺点是操作速度较慢。第20页,共44页,2023年,2月20日,星期日2.双总线结构的运算器如图(b)所示。在这种运算器中,两个操作数同时送到ALU进行运算,只需要一次操作数控制,而且马上就可以得到运算结果。从图中可以看出,两条总线各自把其数据送至ALU的输入端。特殊寄存器分成两组,它们分别与一条总线交换数据。这样,通用寄存器中的数就可以进入到任一组特殊寄存器中去,从而使数据传送更为灵活。3.三总线结构的运算器如图(c)所示。在三总线结构中,ALU的两个输入端分别由两条总线供给,而ALU的输出则与第3条总线相连。这样,算术逻辑操作就可以在一步的控制之内完成。由于ALU本身有时间延迟,所以,打入输出结果的选通脉冲必须考虑到包括这个延迟。另外,设置了一个总线旁路器。如果一个操作数不需要修改,而直接从总线2传送到总线3,那么可以通过控制总线旁路器把数据传出;如果一个操作数传送时需要修改,那么就借助于ALU。很显然,三总线结构的运算器的特点是操作速度快。第21页,共44页,2023年,2月20日,星期日3.2算术逻辑运算的基本电路
3.2.1半加器有两个输入端,以供两个代表数字(A0、B0)的电位输入;有两个输出端,用以输出总和S0和进位C0。这样的电路可能出现的状态可用左图表示。第22页,共44页,2023年,2月20日,星期日从下图中可以看出这分别是“与”和“异或”的关系,可以用“与门”和“异或门”组成半加器,如(a)图。在电子技术中常把基本元件的电路图简化成符号,如图(b)所示就是半加器的符号。第23页,共44页,2023年,2月20日,星期日3.2.2全加器全加器有3个输入端,即Ai、Bi和Ci,有两个输出端,即Si和Ci+1。其真值表和电路图如下图所示。第24页,共44页,2023年,2月20日,星期日由此图分析可知,其总和Si可用“异或门”来实现,而其进位Ci+1可用3个“与门”和1个“异或门”来实现。可见全加器可以处理低位进位,如果多个一位全加器按进位方向串联起来,就可以实现多位全加。全加器的电路如下图所示。第25页,共44页,2023年,2月20日,星期日3.3定点加/减法运算数据在计算机中可以采用原码、反码和补码表示,但是对于计算机来讲,原码加减法运算规则比较复杂,实际上机器中很少采用原码表示数的加减法运算,而用补码来表示,其运算结果也是用补码表示的。若结果的符号为0,表示正数,得到的补码即是原码,只需在数值部分前面加上“+”号,即为真值。若结果的符号为1,表示负数,得到的是补码,这时需要对得到的补码再求补码,得到原码,然后在数值部分前面加上“-”号才为真值。第26页,共44页,2023年,2月20日,星期日3.3.1定点补码的加法运算规则:[X]补+[Y]补=[X+Y]补(mod2n)现根据X、Y的符号及绝对值的大小分4种情况进行讨论。(1)X>0,Y>0,X+Y>0。相加两数都是正数,故其和也一定是正数。正数的补码和原码是一样的,可得: [X]补+[Y]补=X+Y=[X+Y]补(mod2n)第27页,共44页,2023年,2月20日,星期日例3-1:已知X=+00010100B,Y=+00000101B,进行补码加法运算,求[X]补+[Y]补。
[X]补=00010100(+20的补码)
+)[Y]补=00000101(+5的补码)
[X+Y]补=00011001(+25的补码)符号位第28页,共44页,2023年,2月20日,星期日(2)X>0,Y<0,且|X|≥|Y|,即0≤X+Y<2n–1 由补码定义可知: [X]补=X [Y]补=2n+Y [X+Y]补=X+Y [X]补+[Y]补=X+2n+Y=X+Y=[X+Y]补(mod2n) 因为结果为正数,所以其补码即为该数本身。第29页,共44页,2023年,2月20日,星期日例3-2:已知X=+00010001B,Y=-01111101B,进行补码加法运算,求[X]补+[Y]补。
[X]补=00010001(+17的补码)
+)[Y]补=11111101(-3的补码)
[X+Y]补=100001110(+14的补码)丢失符号位第30页,共44页,2023年,2月20日,星期日(3)X>0,Y<0,且|Y|>|X|,即–2n-1≤X+Y<0
由补码定义可知:
[X]补=X[Y]补=2n+Y [X+Y]补=2n+(X+Y)
[X]补+[Y]补=X+2n
+Y=2n+(X+Y)=[X+Y]补(mod2n) 结果得到的是一个负数的补码形式。第31页,共44页,2023年,2月20日,星期日例3-3:已知X=+00000011B,Y=-01101001B,进行补码加法运算,求[X]补+[Y]补。[X]补=00000011(+3的补码)+)[Y]补=11101001(-23的补码)[X+Y]补=11101100(-20的补码)符号位第32页,共44页,2023年,2月20日,星期日(4)X<0,Y<0,X+Y<0。相加两数都是负数,故其和也一定是负数。 由补码定义可知: [X]补=2n+X[Y]补=2n+Y[X+Y]补=2n+(X+Y) [X]补+[Y]补=2n+X+2n+Y=2n+2n+(X+Y)=[X+Y]补(mod2n) 得到的结果也是一个负数的补码形式。第33页,共44页,2023年,2月20日,星期日例3-4:已知X=-01111101B,Y=-01101001B,进行补码加法运算,求[X]补+[Y]补。
[X]补=11111101(-3的补码)
+)[Y]补=11101001(-23的补码)
[X+Y]补=111100110(-26的补码)
丢失符号位第34页,共44页,2023年,2月20日,星期日3.3.2定点补码的减法运算规则:[X-Y]补=[X+(-Y)]补=[X]补+[-Y]补(mod2n) 在进行定点减法运算时,只要将减数Y换成[-Y]补,减法运算就转换为加法运算了。这里,只要将数值位连同符号位一起求反加1,即可得到,这个过程称为求补。注意:求补是区别于求补码的,在补码系统内,求补就是求一个符号相反而绝对值相等的数。 因此,补码减法运算可归结为对减数求补,再做加法。第35页,共44页,2023年,2月20日,星期日例3-5:已知X=+0010100B,Y=+0000011B,进行补码减法运算,求X-Y。
[X]补=[X]原=00010100[Y]补=[Y]补=00000011[X]补=00010100(+20的补码)
+)[Y]补=11111101(-3的补码)
[X+Y]补=100010001(+17的补码)
丢失符号位 其结果符号位为“0”,表示正数,所以X-Y=+00010001B。第36页,共44页,2023年,2月20日,星期日例3-6:已知X=-00010111B,Y=+00000011B,进行补码减法运算,求X-Y。
[X]补=11101001(-23的补码)
+)[Y]补=00000011(+3的补码)
[X+Y]补=11101100(-20的补码)符号位 其结果符号位为1,表示负数,所以X-Y=-00010100B。第37页,共44页,2023年,2月20日,星期日3.3.3无符号数的运算无符号数的运算是指参与运算的X、Y都是正数,且整个字长全部用于表示数值部分。当两个n位无符号数相加时,由于X、Y都是正数,所以X+Y也必为正数,当X+Y的和超过字长n位所允许的范围时,就向更高位进位,这时必须采用多字节来表示。当两个n位无符号数相减时,其值的符号取决于两数绝对值的大小。在计算机中,对于减法运算一律采用补码运算,即用减数求补相加代替两数相减。即:
X–Y=X+(-Y)
[X–Y]补=[X]补+[–Y]补
[–Y]补=2n+(–Y)
[X–Y]补=[X]补+[–Y]补=2n+(X–Y)=2n-(Y–X)由此得到以下两点结论:第38页,共44页,2023年,2月20日,星期日(1)若X>Y,则X–Y无借位,差值为正,[X–Y]补=[X]补+[–Y]补之和必大于2n,最高位有进位,得到的和即是X–Y的原码。例3-7:已知X=+0100100B,Y=+0000011B,进行补码减法运算,求X-Y。
[X]补=[X]原=0100100 [Y]补=[Y]原=0000011 [–Y]补=11111101[X]补=00100100(+36的补码)
+)
[–Y]补=11111101(-3的补码)
[X-Y]补=100100001(+33的补码)
丢失,有进位表示无借位,结果为正数 结果为X–Y=+0100001B。第39页,共44页,2023年,2月20日,星期日(2)若X<Y,则X–Y有借位,差值为负,[X–Y]补=[X]补+[–Y]补之和必小于2n,最高位无进位,得到的和即是(X–Y)=–(Y–X)的补码。例3-8:已知X=+0001010B,Y=+0100000B,进行补码减法运算,求X–Y。
[X]补=[X]原=00001010[Y]补=[Y]原=00100000[–Y]补=11100000[X]补=00001010(+10的补码)
+)[–Y]补=11100000(–32的补码)
[X+Y]补=11101010(–22的补码)
无进位,表示有借位,结果为负数结果为X–Y=–1101010B。第40页,共44页,2023年,2月20日,星期日3.3.4溢出采用补码运算时,若结果的数值超出了补码能表示的范围,计算结果错误,我们把这种情况称为溢出。注意:溢出与进位的性质是不同的,溢出主要用于判断带符号数的运算结果是否超过数的表示范围,而进位是指运算结果的最高位向更高位进位或借位。例如:
01101001(+105)
+00110010(+50)
10011011
符号位 按照补码规定10011011为–101D,这显然是错误的,因为105D+50D=155D超过了8位有符号数所能表示范围的最大值+127D,使数值部分占据了符号位的位置,导致了运算错误。
第41页,共44页,2023年,2月20日,星期日下面研究一下判断溢出的方法。常用的判断溢出的方法有多种,这里重点对利用双进位时位的状态判断溢出作介绍。该方法主要是利用字节的最高位(符号位)和次高位(数值部分的最高位)的进位状态来判断结果是否发生溢出。为了说明这种方法,引入两个符号CS和CS+1,其中CS表示两数值中次高位向符号位进位时的状态,有进位,则CS=1,否则为0;CS+1表示两个符号位向更高位进位时的状态,有进位,则CS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧楼宇行业发展趋势分析技术进步市场竞争格局研究
- 2025-2030智慧服饰行业市场发展现状供需分析投资评估布局规划研究报告
- 2026浙江丽水市市直医疗卫生健康单位招聘卫技人员36人备考题库及答案详解(新)
- 2025-2030智慧教育服务模式市场需求技术装备市场前景规划
- 2026福建宁德市蕉城区教育局补充招聘紧缺急需人才6人备考题库(三)及答案详解【全优】
- 2025-2030智慧工厂行业市场创新驱动投资机遇评估发展分析报告
- 2025-2030智慧家居设备产业应用前景分析投资分析市场发展评估规划
- 2025-2030智慧家居智能安防系统市场供需平衡现状及投资发展策略研究报告
- 2026西藏拉萨发展集团有限公司招聘46人备考题库及参考答案详解(夺分金卷)
- 2025-2030智慧安防系统行业市场规模全面分析及发展趋势与前景预测报告
- 土壤有机碳分布规律及其空间与垂向特征的解析研究
- 数字化转型对企业信息披露质量的影响机制研究
- 浆砌片石劳务施工合同
- 五年级语文阅读理解32篇(含答案)
- 人民版劳动教育二年级下册全册课件
- 2025年统计学多元统计分析期末考试题库:多元统计分析综合试题
- 《小石潭记》对比阅读-2024-2025中考语文文言文阅读专项训练(含答案)
- 江岸区2023-2024学年下学期期中七年级数学试卷(含答案)
- 核聚变材料研究进展-深度研究
- 互联网十创新创业项目计划书
- 《ABO亚型鉴定》课件
评论
0/150
提交评论