1 / 86

第 3 章 CPU 原理

第 3 章 CPU 原理. CPU 的主要功能是执行存放在主存储器中的程序即机器指令。 CPU 是由控制器和运算器。. 学习目标:. 理解全加器的逻辑式和结构,并行加法器及所采用的进位链、多功能算术逻辑运算部件 SN74181 的功能。 掌握初码定点加减运算、移位操作,理解浮点加减运算、十进制加法运算,掌握无符号整数一位乘法并了解其逻辑实现,掌握无符号整数一位除法,了解浮点乘除运算。. 学习目标:. 掌握模型机的基本组成、数据通路及数据传送,掌握微命令的基本形式。 理解控制器的功能,掌握指令流程及组合逻辑控制器的工作原理。

van
Télécharger la présentation

第 3 章 CPU 原理

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 CPU原理 CPU的主要功能是执行存放在主存储器中的程序即机器指令。CPU是由控制器和运算器。

  2. 学习目标: • 理解全加器的逻辑式和结构,并行加法器及所采用的进位链、多功能算术逻辑运算部件SN74181的功能。 • 掌握初码定点加减运算、移位操作,理解浮点加减运算、十进制加法运算,掌握无符号整数一位乘法并了解其逻辑实现,掌握无符号整数一位除法,了解浮点乘除运算。

  3. 学习目标: • 掌握模型机的基本组成、数据通路及数据传送,掌握微命令的基本形式。 • 理解控制器的功能,掌握指令流程及组合逻辑控制器的工作原理。 • 掌握微型程序控制的概念,了解微指令的编码方式和顺序控制方式,了解微指令的格式。

  4. § 3.1算术逻辑运算部件ALU • ALU是一种功能较强的组合逻辑电路,有时被称为多功能函数发生器。 • ALU的核心是加法器。 • ALU主要完成对二进制代码的定点算术运算和逻辑运算。

  5. § 3.1.1 加法单元 低位送进来的进位Ci • 全加器与半加器: An An-1…Ai…A2 A1 A0 Bn Bn-1…Bi …B2 B1 B0 + Cn Cn-1…Ci …C2 C1 C0 • 全加器为考虑三个输入的加法单元,半加器为考虑两个输入的加法单元。 输入量 输出量 全加和Σi+向高位的进位Ci

  6. + + • 用半加器构成全加器 (1)半加求和可用异或门实现: 半加和=AiOBi (半加器的逻辑式) 半加器又称为异或门 (2)全加器=两个半加,其逻辑式: Σi=AiOBiOCi C i+1=AiBi+(AiOBi)Ci 因逻辑门电路均存在延迟时间,全加器电路是一个延迟部件,其特性将影响全加器的速度。 + + +

  7. § 3.1.2 并行加法器与进位链结构 • 并行加法器:是用n位全加器实现两个n位操作数各位同时相加,其中的全加器的位数与操作数的位数相同。 • 并行加法器的最长时间是由进位信号的传递时间决定的,而每位全加器本身的求和延迟是次要的因素。所以,加快进位的产生和传递是提高其速度的关键。 • 进位链:并行加器中传递进位信号的逻辑线路,称为~

  8. + Gi为进位产生函数 Pi为进位传递函数 • 1. 基本进位公式: • C i+1=AiBi+(AiOBi)Ci • 2. 并行加法器的串行进位: (1)串行进位的并行加法器是将n个全加器串接起来,就可进行两个n 个位数相加。 (2)串行进位方式:是指相加的进位逐级形成的,每一级的进位直接依赖于前一级的进位。称为~(行波进位)

  9. (3)串行进位的延迟时间较长。 (4)串行进位的逻辑表达式:见教材P61。 • 3. 并行进位(先行进位,同时进位) (1)定义:同时形成各级进位信号的方法,称为~。 (2)采用并行进位的加法器的运算速度较快,但是以增加硬件逻辑线路为代价的。

  10. § 3.1.3 ALU举例 • 1. SN74181外特性 • 2. SN74181内部结构 • 3. SN74181功能表 • 4. 用SN74181构成多位的ALU

  11. § 3.2 运算方法§ 3.2.1 定点加减运算 • 1. 原码加减运算: • 原码的加减法较复杂,很少使用,其原因: (1)原码的加减运算,因计算机的实际操作取决于指令中的操作码和两个操作数的符号; (2)运算结果的符号判断也较复杂。

  12. 符号位作为数的一部分直接参与运算。 • 2.补码加减运算: (1)补码加法运算: [X]补+[Y]补=[X+Y]补 两个相加的数无论正负,只要是以补码的形式表示的,则可按二进制规则相加。 (2)补码的减法运算: [X-Y]补=[X+(-Y)]补=[X]补+[-Y]补 为[Y]补的机器负数

  13. 由[Y]补求[-Y]补(机器负数)的方法 • 定点小数: [-Y]补= [Y]补+2-n 例: [Y]补 =0.01011 [-Y]补=1.10100+0.00001=1.10101 • 定点整数: [-Y]补= [Y]补+1 例: [Y]补 =1001011 [-Y]补=0110100+1=0110101

  14. (3) 补码的运算规则: • 参加运算的操作数和运算结果均用补码表示; • 符号位作为数的一部分直接参与运算; • 若指令操作码为加,则两个数按二进制规则相加; • 若指令操作码为减,则被减数+减数的机器负数。 • 机器负数的求法见上张幻灯片。

  15. 3. 溢出判别 • 溢出:指计算机的运算结果超出其所能表示的范围,而发生错误。 • 溢出的分类: 正溢出:运算结果为正且大于所能表示的最大正数。 负溢出:运算结果为负且大于所能表示的最小正数(绝对值最大的负数)。

  16. 以下各判断逻辑式见教材P66-67) • 溢出判断的方法: (1)采用一个符号位判断: 即:当两个同号数相加,若所得结果与两数符号不同,则表示溢出。 (2)采用最高有效位的进位判断: 即:两正数相加,最高有效位有进位,符号位无进位,表明运算结果溢出; 两负数相加,最高有效位无进位,符号位有进位,表明运算结果溢出;

  17. (3)采用变形补码 • 将符号位扩充为两位,称为变形码。 • 采用变形祉码表示的运算结果,可根据两个符号位是否一致来判断是否溢出。 • 双符号位的含义: • 00——结果为正,无溢出; • 01——结果为正溢出; • 10——结果为负溢出; • 11——结果为负,无溢出。 • CPU内设的一个状态寄存器,其中的溢出位V是用来记录溢出是否发生。

  18. § 3.2.2 移 位 • 移位操作的分类: • 按性质分:逻辑~、循环~、算术~ • 按被移位数据长度分:字节、半字节、多倍字节 • 按每次移位的位数分:移1位、移n位(n ≤被移位数据长度)

  19. 1. 逻辑移位: • 定义:将一组无数值意义的二进制代码进行移位。 • 移位规则:左移时低位补0,右补移时高位补0。 • 2.循环移位: • 定义:在闭合移位环路中,在被子移位数据的最高位与最低位之间有移位通路。 • 移位规则: 循环左移时最高位移到最低位,其余各位依次左移; 循环右移时最低位移到最高位,其余各位依次右移;

  20. 3. 算术移位: • 定义:带符号数的移位,移位后数的符号不变而数值变化。 • 移位规则: (1)原码移位规则 (2)补码右移规则 见教材P68页 (3)补码左移规则

  21. § 3.2.3 浮点加减运算 • 运算规则及硬件实现 (1)对阶操作 (2)实现尾数的加(减)运算 (3)结果规格化和判断溢出 • 左规 • 右规 (4)余入操作

  22. § 3.2.4 十进制加减运算 • 1. 进制转换 • 2. 直接进行十进制运算: • 采用BCD码表示,运算由BCD码运算指令完成。 • 两种方法:见教材P71页。 • 3. BCD码的加法运算 • “加六校正”

  23. § 3.2.5 定点乘除运算 • 乘除法运算是计算机的基本运算之一。因乘除法运算 需要更多的硬件支持,并不是所有的计算机都配置这种硬件,但是所有的计算机都能做乘除法运算。 • 实现乘除法运算大致有三种方案。 • 本节只讨论无符号整数一位乘法和除法。

  24. 实现乘除法运算大致有三种方案: • (1)采用软件实现乘除法运算。 即用原有的运算器设备,运用基本运算指令编制实现乘除法运算的子程序。这种方法适用于小型机、微型机。 • (2)在原有运算器基础上增加一些硬件设备来实现乘、除法操作。 • (3)设置专用的乘除法器。使设备处理设备专用化,目的是加快运算速度。一般适用于大、中型计算机。

  25. 1.无符号整数一位乘法 1101 被乘数B ×1011 乘数C 1101 1101 0000 + 1101 10001111 乘积 1101 ×1011 00001101 B共4次右移 0001101 B共3次右移 00000 B共2次右移 + 01101 B共1次右移 10001111 乘积

  26. 实现无符号整数一位乘法 • 规则:将n位乘转换为n次“累加与移位”,即每一步只求一位乘数所对应的新部分积,并与原部分积作一次累加,然后右移一位。 • 流程图:见教材P73页,图3-8 • B—存放被乘数、C—存放乘数、 • A—初值为0,存放部分积,最后存放乘积高位。 • 用A和C寄存器联合右移以存放逐次增加的部分积,并且使每次操作依据的乘数位始终在C的最低位。乘法完成时,A、C存放的是最后乘积,其中C的内容是乘积的低位部分。 • 硬件逻辑原理图:图3-9

  27. 开 始 n位被除数—B n位乘数—C,0—A • 例:P73,图3-8(无符号整数一位乘算法流程框图) N Y C0=1? A+0—A A+B—A A,C右移一位 N C0=1? Y 结 束

  28. 初始状态 • 例3-11:1101×1011的运算过程: B 1101 (被乘数) Ca 0 A 0000 C 1011 (乘数) 0 0000 C0=1 +B 1101 1011 0 1101 0 0110 1101 C0=1 +B 1101 1 0011 0 1001 1110 C0=0 +0 0000 0 1001 0 0100 1111 C0=1 +B 1101 1 0001 0 1000 1111 第一节拍 第二节拍 第三节拍 第四节拍 乘积

  29. 2.无符号整数一位除法 • 由手算法可知:决定商是“1”还是“0”,根据部分被除数或余数减去除数是否够减。 • 计算机是实现除法运算,就是要解决如何判断够减与否的问题。方法如下: • 用逻辑线路进行比较判别 • 恢复余数法——(改进)不恢复余数法或加减交替法。(见教材P75页)

  30. 恢复余数法: • 将被除数或余数减去除数,若所得余数符号位为0(即正)表明够减,上商1;若余数符号位为1(即负)表明不够减,上商0加上除数(即恢复余数法) • 即:先做减法,若余数为正,上商1;若余数为负,上商0,必须恢复原来的余数(加上除数)。

  31. 不恢复余数法(加减交替法): • 此法的特点是在运算过程中如出现不够减,则不必恢复余数,可根据符号,继续向下运算。这样运算时步数固定,控制简单。 • 规则: • 当余数为正时,商为1,余数左移一位,减除数; • 当余数为负时,商为0,余数左移一位,加除数

  32. 无符号整数不恢复余数除法流程图: • 见教材P75页,图3-11 • 运算初始时,除数— B,被除数—A和C(其中A—高位、C—低位) • 除法完成后商放在C寄存器中,余数放在A寄存器中。 • A寄存的最高位作为运算中的符号位,用于指示余数的正负。 • 注意:例3-12中第一步 A-B=[A]原-[B]原=[A]初-[B]初= [A]初+[-B]初 B的机器负数:[-B]初=[B]初+1 B求反

  33. § 3.2.6 浮点乘除运算 • 1. 浮点乘法运算 • 阶码相加并判断溢出 • 尾数相乘 • 规格化处理 • 2. 浮点除法运算 • 预置 • 尾数调整 • 求阶差 • 尾数相除

  34. § 3.3 CPU模型的组成及其数据通路 • CPU的组成: • 控制器:完成取指令、分析指令、执行指令的操作。 • 运算部件:实现指令所指定的各种算术逻辑运算操作。 • 各种寄存器:用于存放指令、指令地址、操作数及运算结果。 • CPU内部数据通路:用以连接CPU内部各部件,为信息提供通路。

  35. 地址总线 数据总线 控制总线 EMAR EMDR SMDR RD WR MAR MDR 主存M I/O接口 ALU总线 I/O设备 IR R0 C D R1 PC ALU A B R2 PSW R3 Z SP

  36. § 3.3.1 基本组成 • 1. 寄存器: • 存放控制信息的寄存器,如指令寄存器、程序计数器和程序状态字寄存器。 • 存放所处理的数据的寄存器,如通用寄存器和暂存器。

  37. 寄存器的种类: (1)通用寄存器: • 4个:R0、R1、R2、R3 • 一组可编程访问、具有多种功能的寄存器。 • 指令系统为其分配编号,即寄存器地址。 • 其本身在逻辑上只有接收信息、存储信息和发送信息的功能,但通过编程与运算部件的配合可实现多种功能。

  38. (2)暂存器: • 3个:C、D、Z • C用来暂存从主存储器读出的数据 • D设置在ALU的输入端,用来存放一个操作数,还可暂存从主存储器读出的数据,并设有左移和右移的功能。 • Z设置在ALU的输出端,用来存放运算结果。 • 指令系统中没有为其分配编号,故不能编址访问。

  39. (3)指令寄存器IR: • 指令寄存器IR——用来存放当前正在执行的一条指令。IR的输出是控制器产生控制信号的主要逻辑依据。 (4)程序计数器PC: • 程序计数器又称为指令计数器或指令指针IP。 • 作用是提供指令的地址。 • 具有加1计数功能,并可编程访问。

  40. (5)程序状态字寄存器PS: • 程序状态字寄存器又称为标志寄存器。 • 作用:用来存放现行程序的运行状态和工作方式,其内容称为程序状态字PSW。 • PSW是参与控制程序执行的重要依据。 (6)堆栈指针SP: • SP用来指示堆栈栈顶的位置,其内容是栈顶单元的地址。 • SP也是可编程访问的寄存。

  41. (7)与主存接口的寄存器MAR、MDR: • 地址寄存器MAR用来存放CPU访问主存或I/O接口的地址。MAR连接地址总线的输出门是三态门。 • 数据寄存MDR用来存放CPU与主存或I/O接口之间传送的数据。 • CPU对主存的控制信号有两个: 读信号RD—控制对主存的读操作 写信号WR—控制对主存的写操作

  42. 2. 运算部件: • 控制ALU运算的控制信号有:

  43. 3. 总线与数据通路结构: (1)ALU总线 • CPU内部采用单总线结构,即设置一组由16根双向数据传送组成的ALU总线(CPU内总线),ALU和所有的寄存器通过这组公共总线连接起来。 • 在单总线结构中,CPU的任何两个部件间的数据传送都必须通过这组总线,控制较简单,但传送速度受到限制。

  44. CPU通过控制总线向主存或I/O设备发出(或接收)有关控制信号。CPU通过控制总线向主存或I/O设备发出(或接收)有关控制信号。 CPU通过MAR向地址总线提供访问主存单元或I/O接口的地址 (2)系统总线:16根地址总线、16根数据总线,以及控制总线。 地址总线 数据总线 控制总线 总线 CPU 主存 接口 接口 CPU通过MDR向数据总线发送或接收数据,以完成与主存单元或I/O接口之间的数据传送。 I/O设备 I/O设备 常见计算机硬件系统结构

  45. 4. 控制器及微命令的基本形式: (1)微命令的基本形式 • 微操作命令:是最基本的控制信号,是指直接作用于部件或控制门电路的控制信号,简称微命令。 • 微命令的两种形式: ①电位型微命令:见教材P81页 ②脉冲型微命令:各寄存器均采用同步打入脉冲将ALU总线上的数据打入其中。 • 其种类有:CPR0, CPR1, CPPC, CPIR, CPSP, CPMAR, CPMDR等…..……………

  46. (2)控制器 • 控制器:基本功能就是执行指令,即根据指令产生控制信号序列以命令相应部件分步完成指定的操作。 • 传统控制器的主要部件包括:指令寄存器IR、指令译码器、程序计数器PC、状态字寄存器PSW、时序系统和微操作信号发生器。

  47. 计算机的组成框图: 存取命令 控制信号 CPU 控制器 存贮器 指 令 输入命令 存取数据 操作命令 数据信号 输出命令 结果 数据 输入设备 运算器 输出设备 程序 计算机的基本工作原理——冯诺依曼原理

  48. § 3.3.2 数据传送 • 1.寄存器之间的数据传送:直接通过ALU总线传送数据,具体传送由输出门和打入脉冲控制。 • 2. 主存数据传送到CPU:通过系统总线传送数据。 • 3. CPU数据传送到主存 • 4. 执行算术或逻辑操作 见教材P82页

  49. 2. 主存数据传送到CPU 例如从存储器中取指令到指令寄存器IR (1)PC MAR; (2)M MDR IR;

  50. 3. CPU数据传送到主存 例如要写入主存的数据在R2中,存储单元地址R1中,则写一个数据到存储器可通过以下操作序列实现: (1)R1 MAR (2)R2 MDR (3)MDR M

More Related