运算器和运算方法幻灯片.ppt
《运算器和运算方法幻灯片.ppt》由会员分享,可在线阅读,更多相关《运算器和运算方法幻灯片.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、运算器和运算方法运算器和运算方法第1页,共44页,编辑于2022年,星期三3.1 定点运算器的组成和结构定点运算器的组成和结构 定点运算器由算术逻辑运算单元(ALU)、输入数据选择电路、通用寄存器组、输出数据分配电路组成,如下页图所示。其中算术逻辑运算单元的核心部件是加法器,而加法器的逻辑组成包括加法单元与进位传递逻辑单元。第2页,共44页,编辑于2022年,星期三 CPU的结构的结构 第3页,共44页,编辑于2022年,星期三3.1.1 算术逻辑运算单元(算术逻辑运算单元(ALU)运算器中完成数据算术与逻辑运算的部件称为算术逻辑运算单元(Arithmetic and Logic Unit,A
2、LU)。如CPU结构图所示,ALU是运算器的核心,通常表示为两个输入端口,一个输出端口和多个功能控制信号端的一个逻辑符号。ALU处理数据的位数与机器的字长有关。第4页,共44页,编辑于2022年,星期三3.1.2 通用寄存器组通用寄存器组 现代计算机的中央处理器中都有一组通用寄存器,主要用于保存参加运算的操作数和运算结果。之所以在现代计算机中加入通用寄存器是因为它的存取速度要远远高于内存储器的速度。通用寄存器的数量越多,对提高运算器性能和程序执行速度越有利。通用寄存器组是对用户开放的,可以通过指令去使用这些寄存器。第5页,共44页,编辑于2022年,星期三 如上图所示,如上图所示,808680
3、86微处理器有微处理器有1414个个1616位寄存器,包位寄存器,包括括8 8个通用寄存器,个通用寄存器,1 1个指令指针寄存器,个指令指针寄存器,1 1个标志寄存个标志寄存器,器,4 4个段寄存器。它们都有名称,编程时使用其名称个段寄存器。它们都有名称,编程时使用其名称代表其保存的内容。代表其保存的内容。第6页,共44页,编辑于2022年,星期三3.1.3 状态寄存器状态寄存器 状态寄存器主要用于记录一些运算结果的状态。通常情况下,状状态寄存器主要用于记录一些运算结果的状态。通常情况下,状态寄存器由以下几种标志状态位组成:态寄存器由以下几种标志状态位组成:V V(溢出标志位):当运算结果有溢
4、出时,该位被置位;当(溢出标志位):当运算结果有溢出时,该位被置位;当运算结果没有溢出时,该位被清运算结果没有溢出时,该位被清0 0。Z Z(零标志位):当运算结果为(零标志位):当运算结果为0 0时,该位被置位;当运时,该位被置位;当运算结果不为算结果不为0 0时,该位被清时,该位被清0 0。C C(进位或借位标志位):当作加法时如果最高位向前有进位,(进位或借位标志位):当作加法时如果最高位向前有进位,或当作减法时最高位向前无借位,该标志位被置位;当作加法时或当作减法时最高位向前无借位,该标志位被置位;当作加法时如果最高位向前无进位,或当作减法时最高位向前有借位,该标如果最高位向前无进位,
5、或当作减法时最高位向前有借位,该标志位被清志位被清0 0。N N(符号标志位):当运算结果为负数时,该位被置位;当(符号标志位):当运算结果为负数时,该位被置位;当运算结果为正数时,该位被清运算结果为正数时,该位被清0 0。第7页,共44页,编辑于2022年,星期三3.1.4 数据通路数据通路 从一个功能部件向另一个功能部件传送数据所经过的功能部件、总线等称为数据通路。下面以CPU结构图所示的CPU的各功能部件的右半部分运算器为例,解释其数据通路,进而说明运算器的工作过程。第8页,共44页,编辑于2022年,星期三第9页,共44页,编辑于2022年,星期三 在图中,在图中,MUX1MUX1和和
6、MUX2MUX2分别是两个多路数据选分别是两个多路数据选择器,用来选择当前哪两组数据送到择器,用来选择当前哪两组数据送到ALUALU中。中。MUX1MUX1数据有两个来源:通用寄存器的输出和指令中的相对位数据有两个来源:通用寄存器的输出和指令中的相对位移量。移量。MUX2MUX2数据有数据有3 3个来源:通用寄存器的输出、个来源:通用寄存器的输出、数据寄存器的输出和程序计数器的输出。数据寄存器的输出和程序计数器的输出。ALUALU的输的输出信息通过内部数据总线送到通用寄存器中。出信息通过内部数据总线送到通用寄存器中。如果通用寄存器有两个输出端口如果通用寄存器有两个输出端口RARA和和RBRB,
7、有一,有一个输入端口个输入端口RLRL。寄存器中的数据用补码表示。并且。寄存器中的数据用补码表示。并且寄存器寄存器1 1用用R1R1表示,寄存器表示,寄存器2 2用用R2R2表示,寄存器表示,寄存器3 3用用R3R3表示。运算之前表示。运算之前R1=1100R1=1100,R2=0110R2=0110,V V、Z Z、C C、N N标志标志位都为位都为0 0。进行下面的操作后,请问标志位。进行下面的操作后,请问标志位V V、Z Z、C C、N N和和R3R3的值如何变化?的值如何变化?第10页,共44页,编辑于2022年,星期三 1 1R1+R2R1+R2,结果送到,结果送到,结果送到,结果送
8、到R3R3中中中中 操作过程:操作过程:R1R1的内容通过端口的内容通过端口RARA输出,输出,MUX1MUX1将将RARA的内容送入的内容送入ALUALU的的A A输入端;输入端;R2R2的内容通过端口的内容通过端口RBRB输输出,出,MUX2MUX2将将RBRB的内容送入的内容送入ALUALU的的B B输入端。输入端。ALUALU进进行行A A+B B操作,从操作,从Y Y输出端输出结果,并存入输出端输出结果,并存入R2R2寄存器中。寄存器中。ALUALU中的运算:中的运算:11001100 +0110 +0110 10010 10010 送往进位位送往进位位 所以所以R3=0010R3=
9、0010,标志位,标志位C C由由0 0变为变为1 1,其他标志位,其他标志位不变。不变。第11页,共44页,编辑于2022年,星期三 2 2求与求与求与求与R1R1相补的数相补的数相补的数相补的数 操作过程:操作过程:R1R1的内容通过端口的内容通过端口RBRB输出,经过输出,经过MUX2MUX2的选择,将的选择,将RBRB的内容送入的内容送入ALUALU的的B B输入端。在输入端。在MUX1MUX1处选择常数处选择常数“0 0”送入送入ALUALU的的A A输入端,输入端,ALUALU进进行行A A-B B操作,从操作,从Y Y输出端输出结果,并存入输出端输出结果,并存入R3R3寄存器中。
10、寄存器中。由于运算器要进行的是补码运算,由于运算器要进行的是补码运算,A A-B B的功能是通过的功能是通过 A A 补补+-+-B B 补来完成的。补来完成的。ALUALU中的运算:中的运算:A A 补补00000000 +-B B 补补01000100 0-0-B B 补补01000100 所以所以R3=0100R3=0100,结果为负,结果为负,N N标志位由标志位由0 0变为变为1 1,其,其他标志位不变。他标志位不变。第12页,共44页,编辑于2022年,星期三 3利用运算器计算操作数地址或转移地址利用运算器计算操作数地址或转移地址 如果当前执行转移指令,转移地址由程序计数器的值加上
11、相对位移量得出。操作过程:MUX1选择指令寄存器中的相对位移量送入ALU的A输入端,MUX2选择程序计数器PC的内容送入ALU的B输入端,ALU进行A+B运算,从Y输出端输出结果,并存入PC中,即为转移地址。下次执行指令就从转移地址开始执行。第13页,共44页,编辑于2022年,星期三 4关于移位操作关于移位操作 这里以4位二进制数最左边一位为符号位为例,来说明移位操作的规则和操作结果。(1)算术左移SAL 原数X3X2X1X0 算术左移一位之后变为 可见,算术左移时,最高位被移出,用0来补充最低位。移位后的结果(如果没有溢出发生)是原数的2倍。在没有溢出的情况下,如果左移n位,则移位后的结果
12、是原数的2n倍;若有溢出情况发生,则移位后的结果数据不定。X3 X3 X2 X2 X1 X1 X0 X0 X2 X2 X1 X1 X0 X0 0 0第14页,共44页,编辑于2022年,星期三 (2 2)算术右移)算术右移SARSAR 原数原数X X3 3X X2 2X X1 1X X0 0 算术右移一位之后变为算术右移一位之后变为 可见,算术右移时,最低位被移出,最高位可见,算术右移时,最低位被移出,最高位保持不变。移位后的结果(如果没有溢出发生)保持不变。移位后的结果(如果没有溢出发生)是原数的是原数的1/21/2。在没有溢出的情况下,如果右移。在没有溢出的情况下,如果右移n n位,位,则
13、移位后的结果是原数的则移位后的结果是原数的1/21/2n n;若有溢出情况发生,;若有溢出情况发生,则移位后的结果数据不定。则移位后的结果数据不定。X3 X3 X2 X2 X1 X1 X0 X0 X3 X3 X3 X3 X2 X2 X1 X1第15页,共44页,编辑于2022年,星期三 (3 3)逻辑左移)逻辑左移SHLSHL 原数原数X X3 3X X2 2X X1 1X X0 0 逻辑左移一位之后变为逻辑左移一位之后变为 可见,逻辑左移时,最高位被移出,用可见,逻辑左移时,最高位被移出,用0 0来补来补充最低位,结果与算术左移相同。充最低位,结果与算术左移相同。(4 4)逻辑右移)逻辑右移
14、SHRSHR 原数原数X3X2X1X0X3X2X1X0 逻辑右移一位之后变为逻辑右移一位之后变为 可见,逻辑右移时,最低位被移出,最高位可见,逻辑右移时,最低位被移出,最高位用用0 0补充,结果与算术右移不同。补充,结果与算术右移不同。X3 X3 X2 X2 X1 X1 X0 X0 X2 X2 X1 X1 X0 X0 0 0 X3 X3 X2 X2 X1 X1 X0 X0 0 0 X3 X3 X2 X2 X1 X1第16页,共44页,编辑于2022年,星期三 (5 5)循环左移)循环左移ROLROL 原数原数X X3 3X X2 2X X1 1X X0 0 循环左移一位之后变为循环左移一位之后
15、变为 可见,循环左移时,所有的位顺序向左移一可见,循环左移时,所有的位顺序向左移一位,最低位由最高位循环移入。位,最低位由最高位循环移入。(6 6)循环右移)循环右移RORROR 原数原数X X3 3X X2 2X X1 1X X0 0 循环右移一位之后变为循环右移一位之后变为 可见,循环右移时,所有的位顺序向右移一可见,循环右移时,所有的位顺序向右移一位,最高位由最低位循环移入。位,最高位由最低位循环移入。X3 X3 X2 X2 X1 X1 X0 X0 X3 X3 X2 X2 X1 X1 X0 X0 X2 X2 X1 X1 X0 X0 X3 X3 X0 X0 X3 X3 X2 X2 X1 X
16、1第17页,共44页,编辑于2022年,星期三 (7 7)带进位的循环左移)带进位的循环左移RCLRCL 原数原数X X3 3X X2 2X X1 1X X0 0 循环左移一位之后变为循环左移一位之后变为 (8 8)带进位的循环右移)带进位的循环右移RCRRCR 原数原数X X3 3X X2 2X X1 1X X0 0 循环右移一位之后变为循环右移一位之后变为C C X3 X3 X2 X2 X1 X1 X0 X0 0 0 C C X3 X3 X2 X2 X1 X1 C C X3 X3 X2 X2 X1 X1 X0 X0 X3 X3 X2 X2 X1 X1 X0 X0 C C第18页,共44页,
17、编辑于2022年,星期三3.1.5 定点运算器的基本结构定点运算器的基本结构 定点运算器包括ALU、阵列乘除器、寄存器、多路开关、缓冲器、数据总线等逻辑部件。定点运算器大体有如下3种结构形式。第19页,共44页,编辑于2022年,星期三 1.1.单总线结构的运算器单总线结构的运算器 如图如图(a)a)所示。由于所有部件都要接所示。由于所有部件都要接到同一单总线上,为了把两个操作数输到同一单总线上,为了把两个操作数输入到入到ALUALU,需要分两次来做,而且还需,需要分两次来做,而且还需要要A A和和B B两个缓冲寄存器。只有当这两两个缓冲寄存器。只有当这两个操作数同时出现在个操作数同时出现在A
18、LUALU的两个输入端的两个输入端时,时,ALUALU才能执行加法。当加法结果出才能执行加法。当加法结果出现在单总线上时,由于输入数据已保存现在单总线上时,由于输入数据已保存在缓冲寄存器中,它并不会对输入数据在缓冲寄存器中,它并不会对输入数据产生影响。然后,再由第产生影响。然后,再由第3 3个传送命令个传送命令把加法的把加法的“和和”传送到目的寄存器中。传送到目的寄存器中。由此可见,这种结构的主要缺由此可见,这种结构的主要缺点是操作速度较慢。点是操作速度较慢。第20页,共44页,编辑于2022年,星期三 2.2.双总线结构的运算器双总线结构的运算器 如图如图 (b)b)所示。在这种运算器中,两
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运算器 运算 方法 幻灯片
限制150内