1 / 131

6.1 CPU 的功能和组成 6.2 一个非常简单 CPU 的设计与实现 6.3 相对简单 CPU 的设计和实现 6.4 简单 CPU 的缺点

第六章 CPU 设计. 6.1 CPU 的功能和组成 6.2 一个非常简单 CPU 的设计与实现 6.3 相对简单 CPU 的设计和实现 6.4 简单 CPU 的缺点 6.5 实例: 8085 微处理器的内部结构. 同济大学 软件学院. 6.1 CPU 的功能和组成. 6.1.1 CPU 的功能 CPU 有四个方面的功能: 1. 指令控制: 程序的顺序控制。 2. 操作控制: CPU 管理并产生由内存取出的每条指令 的操作信号,把各种操作信号送往相应的部件,控 制部件工作。

cleary
Download Presentation

6.1 CPU 的功能和组成 6.2 一个非常简单 CPU 的设计与实现 6.3 相对简单 CPU 的设计和实现 6.4 简单 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. 第六章 CPU设计 6.1 CPU的功能和组成 6.2 一个非常简单CPU的设计与实现 6.3 相对简单CPU的设计和实现 6.4 简单CPU的缺点 6.5 实例:8085微处理器的内部结构 同济大学 软件学院

  2. 6.1 CPU的功能和组成 6.1.1CPU的功能 CPU有四个方面的功能: 1.指令控制:程序的顺序控制。 2.操作控制:CPU管理并产生由内存取出的每条指令 的操作信号,把各种操作信号送往相应的部件,控 制部件工作。 3.时间控制:对各种操作实施时间上的控制。 4.数据加工:对数据进行算术运算和逻辑运算。

  3. 6.1.2CPU的基本组成 CPU控制整个计算机,内部有三大部分: 寄存器部分、算术/逻辑单元(ALU)、控制单元

  4. 1. 寄存器部分 除处理器指令集结构中的寄存器外,还有程序 员不能直接访问的一些寄存器。CPU取指令过程的两个重要寄存器: ◆ 程序计数器:用来存放下一条要取的指令的地址。 ◆ 指令寄存器:用来存储计算机正在执行的指令。 用来访问内存、外设的两个寄存器: ◆地址寄存器MAR ◆数据缓冲寄存器MDR

  5. 2. 算术/逻辑单元执行大部分的算术和逻辑运算。 如:加、与等操作。 3. 控制单元 ◆计算机的指挥和控制中心,由它把计算机的运算器、存储器、I/O设备等联系成一个有机的系统,并根据各部件具体要求,适时地发出各种控制命令,控制计算机各部件自动、协调地进行工作。 ◆功能:根据事先编好并存放在存储器中的解题程序,控制各部件有条不紊地、自动协调地进行工作。

  6. 转移地址 指令 IR PC 操作码 地址码 程序计数器 运 算 器 +1 reset 地址码 指令译码器 启停线路 CLK 时序控制 信号形成部件 状态寄存器 脉冲源 操作数 地址 数据 数据总线 DB 地址总线 AB 控制总线 CB I / O 存储器 控制器的基本组成

  7. ◆控制器的基本组成 (1) 程序计数器(PC) 指令地址寄存器,用来存放即将要执行的下一条 指令地址。具有加 “1”和接收转移地址的功能。 (2) 指令寄存器(IR) 用来存放当前正在执行的指令。 (3) 指令译码器或操作码译码器 对IR中的操作码进行分析解释,产生相应的控制信号。

  8. (4) 脉冲源及启停线路 脉冲源产生一定频率的脉冲信号作为整个 机器的时钟脉冲,是机器周期和工作脉冲的基 准信号。 启停线路控制时序信号的发生或停止,从而 启动机器工作或使之停机。 (5) 时序控制信号形成部件 根据当前指令的需要,产生相应的时序控制 信号,并根据被控功能部件的反馈信号调整时序 控制信号。

  9. 6.1.3 指令周期 1.指令周期 处理器取出并执行一条指令的时间。 2.指令执行的基本步骤 包括读取,译码,执行三个阶段。 ◆ 读取指令 根据程序计数器PC提供的内容,从存储器中 取出指令。 ◆ 译码 分析指令的操作码,确定处理的是哪一条指 令以便选择正确的操作顺序去执行该指令。

  10. ◆ 执行指令 根据指令功能,完成所规定的操作。指令不 同,所执行的操作及顺序也不相同。 3. 举例例1:分析单总线结构的CPU中,指令 ADD R0,(R1)的指 令流程。设前一操作数地址为目的,后一操作数地 址为源。 解: 指令功能: ((R1))+ ( R0)→R0

  11. ((R1))+ ( R0)→R0 指令流程如下: (1) (PC)→MAR,Read (2) (PC)+1→PC (3) M→MDR→IR (4)(R1)→MAR,Read (5) M→MDR→Y (6)(Y)+(R0)→Z (7)(Z)→R0 +1

  12. 习题:分析转移指令 JC D的指令流程。 指令功能: IF C=1 THEN (PC)+D→PC 解:指令流程如下: (1)(PC)→MAR,Read ;送指令地址,读主存 (2) (PC)+1 →PC ;PC+1→PC (3) M→MDR→IR ;取指令到IR (4) IF C=1 THEN(PC)→Y;送当前指令地址 (5) Y+IR(D部分)→Z ;计算转移地址 (6)(Z)→PC ;下条指令实现转移

  13. 例2:分析双总线结构的CPU中,指令 ADD R0,(R1)的指令流程和控制信号。 设ALU的功能有: F=A+B(ADD),F=A-B(SUB),F=A+1(INC),F=A-1(DEC),F=A 可通过总线连接器G将总线B的信息直接传到F总线。其控制信号为Gon。

  14. F ID B IR→B F→IR IR F→PC PC→B F→MAR PC MAR F→R0 R0→B R0 ABUS F→R! R1→B R1 主存 Read … F→R7 R7→B Write R7 DBUS MAR→B F→MDR MDR TEMP→B F→TEMP TEMP ADD R0,(R1) F→Y Y B A ADD SUB INC DEC Gon G

  15. 指令流程如下: • (PC)→MAR,Read ; PC→B,Gon,F→MAR, • Read • (2) (PC)+1→PC ; INC • (3) M→MDR→IR ; MDR→B,Gon,F→IR • (4)(R1)→MAR,Read ; R1→B,Gon,F→MAR, • Read • (5) M→MDR→Y ; MDR→B,Gon,F→Y • (6)(Y)+(R0)→R0 ; R0→B,ADD,F→R0

  16. 例3:分析双总线结构的CPU中,指令 ADD X(R1),(R2)+的指令流程和控制信号。 设ALU的功能有: F=A+B(ADD),F=A-B(SUB),F=A+1(INC),F=A-1(DEC),F=A 可通过总线连接器G将总线B的信息直接传到F总线。其控制信号为Gon。 其中:X在本条指令的下一个存储单元 源操作数有效地址:X+(R1) 目的操作数地址:(R2),然后(R2)+1 →R2

  17. 6.1.4 控制器的时序系统 如何在时间上对各种微操作信号加以控制。 1.指令周期与机器周期 ◆指令周期:从取指令、分析指令到执行完一条指令所需的全部时间。 由于各种指令的操作功能不同,繁简程度不同,因此各种指令的指令周期也不尽相同。 ◆机器周期(CPU周期):指令周期中的某一工作阶段所需的时间。 在指令执行过程中,各机器周期相对独立。

  18. ◆一条指令的指令周期由若干个机器周期所组成,每个机器周期完成一个基本操作。所以机器周期也称为基本周期。 CPU周期 CPU周期 CPU周期 指令周期

  19. 2.节拍 节拍:把一个机器周期等分成若干个时间区间,每一时间区间称为一个节拍。一个节拍对应一个电位信号,控制一个或几个微操作的执行。

  20. 6.1.5 CPU的设计规范 CPU设计的两种方法: ◆ 硬布线逻辑控制(hardwired control) ◆微序列控制器(microsequencer) (微序列控制或微程序控制)

  21. 1.设计CPU的步骤 ◆确定它的用途 关键:使CPU的处理能力和它所执行的任务匹配 ◆设计指令集结构 ◆设计状态图(CPU就是一个复杂的有限状态机) • 列出在每个状态中执行的微操作 • 从一个状态转移到另外一个状态的条件 ◆设计必要的数据通路和控制逻辑,实现这个 有限状态机,最终实现这个CPU。

  22. 数据通路:信息传送的基本路径。 CPU内部的数据通路通常是指运算器与寄存器之间的信息传输通道。 数据通路结构直接影响着CPU内各种信息的传送路径。数据通路不同,指令执行过程的微操作序列的安排也不同,它将直接影响到微操作信号形成部件的设计。

  23. 2.CPU执行如下的操作序列 ◆ 取指令周期:从存储器中取出一条指令,然后 转到译码周期。 ◆译码周期:对该指令进行译码,即确定取到的 是哪一种指令,然后转移到这种指 令对应的执行周期。 ◆ 执行周期:执行该指令,然后转移到取指令周 期去取下一条指令。 3.一般CPU状态图

  24. 6.2 一个非常简单CPU的设计与实现 6.2.1 非常简单CPU的设计规范 1.64字节的存储空间,每个字节是8位。 6位宽的地址:A[5..0] 存储器的8位值:D[7..0] 2.一个程序员可以访问的寄存器AC(8位累加器) 3.指令集(4条指令)

  25. 指令 指令码 操 作 ADD 00AAAAAA AC←AC+M[AAAAAA] AND 01AAAAAA AC←AC∧M[AAAAAA] JMP 10AAAAAA GOTO AAAAAA INC 11XXXXXX AC←AC+1

  26. 4.寄存器 ◆ 一个6位的地址寄存器AR:它通过A[5..0]向存储 器提供地址。 ◆ 一个6位的程序计数器PC:它包含下一条将被执 行指令的地址。 ◆ 一个8位的数据寄存器DR:它通过D[5..0]从存储 器接收指令和数据。 ◆ 一个2位的指令寄存器IR:它用来存放从存储器中 取回的指令的操作码部分。

  27. 6.2.2 从存储器中取指令 一、从存储器中取出指令的操作序列 1. 将地址放在地址引脚A[5..0]上,把地址送给 存储器。 2. 在给存储器足够的时间处理内部译码并将需 要的指令取出来之后,向存储器发一个信号, 使存储器将此指令输出到它的输出引脚,这些 引脚与CPU的D[7..0]相连接。CPU从这些引脚 读入数据。

  28. 二、取指令周期的状态 FETCH1: AR←PC FETCH2: DR←M,PC←PC+1 FETCH3: IR←DR[7..6],AR←DR[5..0] ◆实现PC加1的两种方案 • 在取指令周期(易与实现) • 在执行周期

  29. 三、取指令周期的状态图

  30. 6.2.3 指令译码 ◆ 当CPU把一条指令从存储器中取出来之后,它 必须判断所取的是哪种指令,从而可以调用正 确的执行周期。 ◆ 在状态图中,此过程表示为一系列的从取指令 周期结束到各个执行周期之间的分支。 ◆ 对于本CPU,有四条指令,因此有四个不同的 执行周期。 ◆ 取指令和译码周期的状态图

  31. 6.2.4 指令执行 6.2.4.1 ADD指令 CPU必须完成两件事情: ◆从存储器中取出一个操作数 ◆将这个操作数和累加器中的值相加,并把结 果存回到累加器中。 ADD1: DR←M ADD2: AC←AC+DR

  32. 6.2.4.2 AND指令 AND1: DR←M AND2: AC←AC∧DR 6.2.4.3 JMP指令 JMP1: PC←DR[5..0] 另外一种选择:PC←AR 6.2.4.4 INC指令 INC1: AC←AC+1

  33. ◆CPU的状态图

  34. 6.2.5 建立所需的数据通路 考察存在哪些数据传送从而设计CPU的内部数据通路。 一、与CPU的每个状态相关联的操作 FETCH1: AR←PC FETCH2: DR←M,PC←PC+1 FETCH3: IR←DR[7..6],AR←DR[5..0] ADD1: DR←M ADD2: AC←AC+DR AND1: DR←M AND2: AC←AC∧DR JMP1: PC←DR[5..0] INC1: AC←AC+1

  35. 二、设计数据通路的两种不同方案 1.在所有需要传送数据的部件之间创建一条直接通路。 使用多路选择器或者缓冲器为那些有多个数据 源的寄存器从多个可能的输入中选择一个。 随着CPU复杂度的增加,这种方案将变得不现实。 2.在CPU的内部创建一条总线。在各个部件之间使用总 线传递数据。

  36. 三、设计数据通路 第一步:把每个部件都连接到系统总线上 第二步:决定每个部件应该完成的功能 1.将操作重新分组 分组的依据:他们所修改的寄存器。 AR: AR←PC;AR←DR[5..0] PC: PC←PC+1;PC←DR[5..0] DR: DR←M IR: IR←DR[7..6] AC: AC←AC+DR;AC←AC∧DR;AC←AC+1

  37. 2. 对每一个操作进行分析从而决定每个部件应该完 成的功能 (1)AR,DR以及IR总是从其它一些部件中装入数据 (2)PC和AC能够从其它一些部件中装入数据,但它们 还要能够自增他们的当前值。 ◆创建一个单独的硬件用来使这两个寄存器的 当前值加1,并且使结果能够重新装入寄存器; ◆把每个寄存器设计为一个计数器而且能够并 行的装载。

  38. 第三步:修改设计 1. AR仅仅向存储器提供数据,除此之外不跟任何部件 传送数据。因此,没有必要将它的输出连接到内部总 线上。 2. IR不通过内部总线向任何其他部件提供数据,所以 IR 的输出到内部总线的连接可以删除。 3. AC不向其他任何单元提供数据;因此与内部总线的 连接也可以删除。 4.总线是8位宽,但是并非所有被传送的数据都是8位宽; 有一些是6位宽,有一个是2位宽。

  39. 5.AC必须能够装载AC和DR的和,以及AC和DR的逻 辑与的结果。CPU必须包含一个能够产生这些结 果的ALU。 第四步:修改后的CPU内部组织结构 (图中的控制信号将会由控制单元来产生) 第五步:必须保证在同一个状态将要发生的传送能够 事实上同时发生 FETCH2: DR←M,PC←PC+1 FETCH3: IR←DR[7..6],AR←DR[5..0]

  40. AR:AR←PC;AR←DR[5..0] PC:PC←PC+1;PC←DR[5..0] DR:DR←M IR: IR←DR[7..6] AC:AC←ACDR AC←AC∧DR AC←AC+1

  41. 6.2.6 非常简单ALU的设计 1.ALU完成两个功能 ◆将两个输入相加 ◆将两个输入相与 2.设计方法 ◆创建两个单独的硬件来实现每个功能 加法:用标准的8位并行加法器 逻辑与:用8个2位与门 ◆使用一个多路选择器从两个结果中选择一 个输出 3.电路图

  42. ALU

  43. 6.2.7 用硬布线逻辑设计控制单元 控制单元:产生控制信号,从而使所有的操作能 以正确的顺序执行。 设计控制单元有两种主要的方法: ◆硬布线控制:使用时序逻辑和组合逻辑产生控制信号。 ◆微程序控制(或微序列控制):使用存储器查表方式 来输出控制信号。 本章重点:硬布线控制方法

  44. ◆ 简单的控制单元包括三个部分 • 一个计数器:保存当前状态 • 一个译码器:接受当前状态并为每个状态生成单 独的信号 • 一些组合逻辑:接受单独的状态信号为每一部件 生成控制信号,以及计数器的 控制信号。 ◆一般硬布线控制单元

  45. ◆对于本CPU,总共有9个状态。因此,需要一个4位◆对于本CPU,总共有9个状态。因此,需要一个4位 的计数器和一个4-16位的译码器。译码器的输出位 中有7个用不到。

More Related