《CPU模型的组成及其数据通路(powerpoint 87页)》由会员分享,可在线阅读,更多相关《CPU模型的组成及其数据通路(powerpoint 87页)(87页珍藏版)》请在金锄头文库上搜索。
1、第第3章章 CPU原理原理CPU的主要功能是执行存放在主存储器中的程序即机器指令。CPU是由控制器和运算器。学习目标:学习目标:理解全加器的逻辑式和结构,并行加法器及所采用的进位链、多功能算术逻辑运算部件SN74181的功能。掌握初码定点加减运算、移位操作,理解浮点加减运算、十进制加法运算,掌握无符号整数一位乘法并了解其逻辑实现,掌握无符号整数一位除法,了解浮点乘除运算。学习目标:学习目标:掌握模型机的基本组成、数据通路及数据传送,掌握微命令的基本形式。理解控制器的功能,掌握指令流程及组合逻辑控制器的工作原理。掌握微型程序控制的概念,了解微指令的编码方式和顺序控制方式,了解微指令的格式。 3.
2、1 算术逻辑运算部件算术逻辑运算部件ALUALU是一种功能较强的组合逻辑电路,有时被称为多功能函数发生器。ALU的核心是加法器。ALU主要完成对二进制代码的定点算术运算和逻辑运算。 3.1.1 加法单元加法单元n全加器与半加器: An An-1AiA2 A1 A0 Bn Bn-1Bi B2 B1 B0 + Cn Cn-1Ci C2 C1 C0n全加器为考虑三个输入的加法单元,半加器为考虑两个输入的加法单元。 全加和i+向高位的进位Ci低位送进来的进位Ci输入量输出量n用半加器构成全加器(1)半加求和可用异或门实现: 半加和=AiOBi (半加器的逻辑式) 半加器又称为异或门(2)全加器=两个半
3、加,其逻辑式: i=AiOBiOCi C i+1=AiBi+(AiOBi)Ci 因逻辑门电路均存在延迟时间,全加器电路是一个延迟部件,其特性将影响全加器的速度。+ 3.1.2 并行加法器与进位链结并行加法器与进位链结构构n并行加法器:是用n位全加器实现两个n位操作数各位同时相加,其中的全加器的位数与操作数的位数相同。n并行加法器的最长时间是由进位信号的传递时间决定的,而每位全加器本身的求和延迟是次要的因素。所以,加快进位的产生和传递是提高其速度的关键。n进位链:并行加器中传递进位信号的逻辑线路,称为n1. 基本进位公式:nC i+1=AiBi+(AiOBi)Cin2. 并行加法器的串行进位:(
4、1)串行进位的并行加法器是将n个全加器串接起来,就可进行两个n 个位数相加。(2)串行进位方式:是指相加的进位逐级形成的,每一级的进位直接依赖于前一级的进位。称为(行波进位)+Gi为进位产生函数Pi为进位传递函数(3)串行进位的延迟时间较长。(4)串行进位的逻辑表达式:见教材P61。n3. 并行进位(先行进位,同时进位)(1)定义:同时形成各级进位信号的方法,称为。(2)采用并行进位的加法器的运算速度较快,但是以增加硬件逻辑线路为代价的。 3.1.3 ALU举例举例n1. SN74181外特性n2. SN74181内部结构n3. SN74181功能表n4. 用SN74181构成多位的ALU 3
5、.2 运算方法运算方法 3.2.1 定点加减运算定点加减运算n1. 原码加减运算:n原码的加减法较复杂,很少使用,其原因:(1)原码的加减运算,因计算机的实际操作取决于指令中的操作码和两个操作数的符号;(2)运算结果的符号判断也较复杂。n2.补码加减运算:(1)补码加法运算: X补+Y补=X+Y补 两个相加的数无论正负,只要是以补码的形式表示的,则可按二进制规则相加。(2)补码的减法运算: X-Y补=X+(-Y)补=X补+-Y补符号位作为数的一部分直接参与运算。为Y补的机器负数v 由Y补求-Y补(机器负数)的方法定点小数: -Y补= Y补+2-n例: Y补 =0.01011 -Y补=1.101
6、00+0.00001=1.10101定点整数: -Y补= Y补+1例: Y补 =1001011 -Y补=0110100+1=0110101n(3) 补码的运算规则:n参加运算的操作数和运算结果均用补码表示;n符号位作为数的一部分直接参与运算;n若指令操作码为加,则两个数按二进制规则相加;n若指令操作码为减,则被减数+减数的机器负数。n机器负数的求法见上张幻灯片。n3. 溢出判别n溢出:指计算机的运算结果超出其所能表示的范围,而发生错误。n溢出的分类: 正溢出:运算结果为正且大于所能表示的最大正数。 负溢出:运算结果为负且大于所能表示的最小正数(绝对值最大的负数)。v溢出判断的方法:(1)采用一
7、个符号位判断:即:当两个同号数相加,若所得结果与两数符号不同,则表示溢出。(2)采用最高有效位的进位判断:即:两正数相加,最高有效位有进位,符号位无进位,表明运算结果溢出; 两负数相加,最高有效位无进位,符号位有进位,表明运算结果溢出;以下各判断逻辑式见教材P66-67)n(3)采用变形补码n将符号位扩充为两位,称为变形码。n采用变形祉码表示的运算结果,可根据两个符号位是否一致来判断是否溢出。n双符号位的含义:n00结果为正,无溢出;n01结果为正溢出;n10结果为负溢出;n11结果为负,无溢出。nCPU内设的一个状态寄存器,其中的溢出位V是用来记录溢出是否发生。 3.2.2 移移 位位n移位
8、操作的分类:n按性质分:逻辑、循环、算术n按被移位数据长度分:字节、半字节、多倍字节n按每次移位的位数分:移1位、移n位(n 被移位数据长度)n1. 逻辑移位:n定义:将一组无数值意义的二进制代码进行移位。n移位规则:左移时低位补0,右补移时高位补0。n2.循环移位:n定义:在闭合移位环路中,在被子移位数据的最高位与最低位之间有移位通路。n移位规则: 循环左移时最高位移到最低位,其余各位依次左移; 循环右移时最低位移到最高位,其余各位依次右移;n3. 算术移位:n定义:带符号数的移位,移位后数的符号不变而数值变化。n移位规则:(1)原码移位规则(2)补码右移规则 见教材P68页(3)补码左移规
9、则 3.2.3 浮点加减运算浮点加减运算 n运算规则及硬件实现(1)对阶操作(2)实现尾数的加(减)运算(3)结果规格化和判断溢出n左规n右规(4)余入操作 3.2.4 十进制加减运算十进制加减运算 n1. 进制转换n2. 直接进行十进制运算:n 采用BCD码表示,运算由BCD码运算指令完成。n两种方法:见教材P71页。n3. BCD码的加法运算n“加六校正” 3.2.5 定点乘除运算定点乘除运算 n乘除法运算是计算机的基本运算之一。因乘除法运算 需要更多的硬件支持,并不是所有的计算机都配置这种硬件,但是所有的计算机都能做乘除法运算。n实现乘除法运算大致有三种方案。n本节只讨论无符号整数一位乘
10、法和除法。n实现乘除法运算大致有三种方案:实现乘除法运算大致有三种方案:n(1)采用软件实现乘除法运算。 即用原有的运算器设备,运用基本运算指令编制实现乘除法运算的子程序。这种方法适用于小型机、微型机。n(2)在原有运算器基础上增加一些硬件设备来实现乘、除法操作。n(3)设置专用的乘除法器。使设备处理设备专用化,目的是加快运算速度。一般适用于大、中型计算机。1.无符号整数一位乘法无符号整数一位乘法 1101 被乘数被乘数B 1011 乘数乘数C 1101 1101 0000+ 110110001111 乘积乘积 1101 1011 00001101 B共共4次右移次右移 0001101 B共共
11、3次右移次右移 00000 B共共2次右移次右移+ 01101 B共共1次右移次右移 10001111 乘积乘积 实现无符号整数一位乘法实现无符号整数一位乘法n规则:将n位乘转换为n次“累加与移位”,即每一步只求一位乘数所对应的新部分积,并与原部分积作一次累加,然后右移一位。n流程图:见教材P73页,图3-8nB存放被乘数、C存放乘数、nA初值为0,存放部分积,最后存放乘积高位。n用A和C寄存器联合右移联合右移以存放逐次增加的部分积,并且使每次操作依据的乘数位始终在C的最低位。乘法完成时,A、C存放的是最后乘积,其中C的内容是乘积的低位部分。n硬件逻辑原理图:图3-9n例:例:P73,图,图3
12、-8(无符号整数一位乘算法流程框图)(无符号整数一位乘算法流程框图)n位被除数位被除数Bn位乘数位乘数C,0AC0=1?结结 束束开开 始始A,C右移一位右移一位A+0AA+BAC0=1?NYNYn例3-11:11011011的运算过程: B 1101 (被乘数)(被乘数) Ca 0 A 0000 C 1011 (乘数)(乘数) 0 0000C0=1 +B 1101 1011 0 1101 0 0110 1101C0=1 +B 1101 1 0011 0 1001 1110C0=0 +0 0000 0 1001 0 0100 1111C0=1 +B 1101 1 0001 0 1000 111
13、1初始状态第一节拍第二节拍第三节拍第四节拍乘积2.无符号整数一位除法无符号整数一位除法n由手算法可知:决定商是“1”还是“0”,根据部分被除数或余数减去除数是否够减。n计算机是实现除法运算,就是要解决如何判断够减与否的问题。方法如下:n用逻辑线路进行比较判别n恢复余数法(改进)不恢复余数法或加减交替法。(见教材P75页)n恢复余数法:n将被除数或余数减去除数,若所得余数符号位为0(即正)表明够减,上商1;若余数符号位为1(即负)表明不够减,上商0加上除数(即恢复余数法)n即:先做减法,若余数为正,上商1;若余数为负,上商0,必须恢复原来的余数(加上除数)。n不恢复余数法(加减交替法):n此法的
14、特点是在运算过程中如出现不够减,则不必恢复余数,可根据符号,继续向下运算。这样运算时步数固定,控制简单。n规则:n当余数为正时,商为1,余数左移一位,减除数;n当余数为负时,商为0,余数左移一位,加除数n无符号整数不恢复余数除法流程图:n见教材P75页,图3-11n运算初始时,除数 B,被除数A和C(其中A高位、C低位)n除法完成后商放在C寄存器中,余数放在A寄存器中。nA寄存的最高位作为运算中的符号位,用于指示余数的正负。n注意:例3-12中第一步A-B=A原-B原=A初-B初= A初+-B初B的机器负数:-B初=B初+1B求反求反 3.2.6 浮点乘除运算浮点乘除运算n1. 浮点乘法运算n
15、阶码相加并判断溢出n尾数相乘n规格化处理n2. 浮点除法运算n预置n尾数调整n求阶差n尾数相除 3.3 CPU模型的组成及其数据通路模型的组成及其数据通路nCPU的组成:n控制器:完成取指令、分析指令、执行指令的操作。n运算部件:实现指令所指定的各种算术逻辑运算操作。n各种寄存器:用于存放指令、指令地址、操作数及运算结果。nCPU内部数据通路:用以连接CPU内部各部件,为信息提供通路。DALUZBACR0R1R2R3MARMDRIRPCPSWSP地址总线数据总线控制总线主存MI/O接口I/O设备EMAREMDRSMDRALU总线RDWR 3.3.1 基本组成基本组成n1. 寄存器:n存放控制信
16、息的寄存器,如指令寄存器、程序计数器和程序状态字寄存器。n存放所处理的数据的寄存器,如通用寄存器和暂存器。寄存器的种类:寄存器的种类:(1)通用寄存器:)通用寄存器:n4个:R0、R1、R2、R3n一组可编程访问、具有多种功能的寄存器。n指令系统为其分配编号,即寄存器地址。n其本身在逻辑上只有接收信息、存储信息和发送信息的功能,但通过编程与运算部件的配合可实现多种功能。(2)暂存器:)暂存器:n3个:C、D、ZnC用来暂存从主存储器读出的数据nD设置在ALU的输入端,用来存放一个操作数,还可暂存从主存储器读出的数据,并设有左移和右移的功能。nZ设置在ALU的输出端,用来存放运算结果。n指令系统中没有为其分配编号,故不能编址访问。(3)指令寄存器)指令寄存器IR:n指令寄存器IR用来存放当前正在执行的一条指令。IR的输出是控制器产生控制信号的主要逻辑依据。(4)程序计数器)程序计数器PC:n程序计数器又称为指令计数器或指令指针IP。n作用是提供指令的地址。n具有加1计数功能,并可编程访问。(5)程序状态字寄存器)程序状态字寄存器PS:n程序状态字寄存器又称为标志寄存器。n作用:用来存放现