第八九十章-CPU02-指令流程_第1页
第八九十章-CPU02-指令流程_第2页
第八九十章-CPU02-指令流程_第3页
第八九十章-CPU02-指令流程_第4页
第八九十章-CPU02-指令流程_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CPU史苇杭史苇杭办公室:办公室:306办公电话:办公电话子邮件:电子邮件: 计算机组成原理计算机组成原理 系系统统总总线线存储器存储器 运算器运算器 控制器控制器 接口与通信接口与通信 输入输入/输出设备输出设备Cache 第八章第八章 CPU的结构与功能(的结构与功能(最难最难)(含(含 第八章第八章+第四篇)第四篇)8.1 CPU的基本功能与组成(的基本功能与组成(8.1)8.2 时序系统和控制方式(时序系统和控制方式(8.2 8.3 9)8.3 组合逻辑设计(组合逻辑设计(10)8.4 微程序设计(微程序设计(10)第八章第八章 CPU的结构与功能的结构与

2、功能8.2、时序系统和控制方式、时序系统和控制方式8.2.1 时序系统时序系统 (指令周期、(指令周期、CPU周期、时钟周期)周期、时钟周期)8.2.2 指令流程指令流程8.2.3 指令流水指令流水8.2.4 时序控制时序控制 组合逻辑控制器的设计步骤组合逻辑控制器的设计步骤(前三步骤)(前三步骤)步骤一步骤一 拟定指令系统拟定指令系统(逻辑依据,讲过了)(逻辑依据,讲过了)步骤二步骤二 确定总体结构确定总体结构(空间安排,讲过了)(空间安排,讲过了)步骤三步骤三 拟定时序系统拟定时序系统(时间安排,讲过了)(时间安排,讲过了)步骤四步骤四 拟定指令流程图拟定指令流程图 (合并了步骤一、步骤三

3、)(合并了步骤一、步骤三)组合逻辑控制器的设计步骤组合逻辑控制器的设计步骤(前三步骤非常重要)(前三步骤非常重要)步骤一步骤一 拟定指令系统拟定指令系统(给出硬部件设计的(给出硬部件设计的逻辑依据逻辑依据)步骤二步骤二 确定总体结构确定总体结构(空间安排空间安排:设置哪些部件,确定数据通路):设置哪些部件,确定数据通路)步骤三步骤三 拟定时序系统拟定时序系统(时间安排时间安排) 选定时序系统作为协调各部件工作的手段(周期选定时序系统作为协调各部件工作的手段(周期节拍节拍脉冲)脉冲) 即把一条指令的执行过程分为若干个阶段,一个阶段为一个周期即把一条指令的执行过程分为若干个阶段,一个阶段为一个周期

4、 一个阶段一个名字(取指周期,一个阶段一个名字(取指周期, 源周期,目的周期,执行周期等)源周期,目的周期,执行周期等)步骤四步骤四 拟定指令流程图(合并了步骤一、步骤三)拟定指令流程图(合并了步骤一、步骤三) 将一条指令的执行步骤按时间顺序用流程图形式表示出来将一条指令的执行步骤按时间顺序用流程图形式表示出来 (它是采用时序计数器设计控制器的关键一步)(它是采用时序计数器设计控制器的关键一步)步骤五步骤五 编制操作时间表(以步骤二、步骤四为基础)编制操作时间表(以步骤二、步骤四为基础) 将指令流程中规定的操作落实到由哪个部件完成,在什么时间完成将指令流程中规定的操作落实到由哪个部件完成,在什

5、么时间完成步骤六步骤六 微操作的组合与化简微操作的组合与化简 根据操作时间表,将产生同一微操作的条件用根据操作时间表,将产生同一微操作的条件用“或或”连接组合成原始连接组合成原始 表达式,利用逻辑化简,获得最简单的逻辑表达式。表达式,利用逻辑化简,获得最简单的逻辑表达式。步骤七步骤七 设计逻辑电路图(结合现有的元件,适当变换逻辑表达式。)设计逻辑电路图(结合现有的元件,适当变换逻辑表达式。)Review: 控制器控制器重在理解重在理解1、非访存指令、非访存指令 CLA的指令周期的指令周期:两个两个CPU周期周期。 指令功能:累加器清零操作。指令功能:累加器清零操作。8.2.2 指令流程指令流程

6、分析举例分析举例操作码操作码译码译码1)程序计数器程序计数器PC的内容的内容“20”送入送入地址寄存器地址寄存器MAR;2)程序计数器程序计数器PC的内容的内容+1,为取下一条指令做准备;,为取下一条指令做准备;3)地址寄存器地址寄存器MAR的内容,送到的内容,送到地址总线地址总线ABus上;上;4)存储单元存储单元20中的内容经中的内容经数据总线数据总线DBus送送数据缓冲寄存器数据缓冲寄存器MDR;5)数据缓冲寄存器数据缓冲寄存器MDR的内容,送到的内容,送到指令寄存器指令寄存器IR;6)指令寄存器指令寄存器中的中的操作码操作码被被译码译码或或测试;测试;7)CPU识别识别出是出是CLA指

7、令。指令。 220+11345CLA 第一个第一个CPU周期:取指令、操作码译码周期:取指令、操作码译码假设程序计数器假设程序计数器PC内容为内容为“20”000 2067操作码操作码译码器译码器第二个第二个CPU周期:执行指令周期:执行指令1)操作控制器操作控制器送一控制信号给送一控制信号给ALU;2)ALU响应控制信号,对响应控制信号,对AC清零清零。操作码操作码译码器译码器2、直接访存指令、直接访存指令 ADD的指令周期的指令周期:三个三个CPU周期。周期。 指令功能:两个操作数相加,运算结果放累加器指令功能:两个操作数相加,运算结果放累加器 一个操作数直接寻址、一个操作数隐含寻址。一个

8、操作数直接寻址、一个操作数隐含寻址。操作码操作码译码译码8.2.2 指令流程指令流程分析举例分析举例第一个第一个CPU周期:取指令,操作码译码(同周期:取指令,操作码译码(同CLA) 221+11345ADD 30 000 2167操作码操作码译码器译码器第二个第二个CPU周期:送操作数地址周期:送操作数地址1)把)把指令寄存器指令寄存器中的地址码部分中的地址码部分(30)送入送入地址寄存器地址寄存器000 30操作码操作码译码器译码器第三个第三个CPU周期:取操作数,执行指令周期:取操作数,执行指令1)从内存中读取操作数,送入数据缓冲寄存器;)从内存中读取操作数,送入数据缓冲寄存器;2)操作

9、数与累加器相加后存入累加器。)操作数与累加器相加后存入累加器。000 30000 006 000 006 000 000 000 006 操作码操作码译码器译码器3、存数指令、存数指令 STA的指令周期的指令周期:三个三个CPU周期周期。 指令功能:向内存单元,写入一操作数。指令功能:向内存单元,写入一操作数。操作码操作码译码译码8.2.2 指令流程指令流程分析举例分析举例第一个第一个CPU周期:取指令,操作码译码周期:取指令,操作码译码 222+11345STA 40 000 2267操作码操作码译码器译码器第二个第二个CPU周期:送操作数地址周期:送操作数地址000 40操作码操作码译码器

10、译码器000 40000 006 第三个第三个CPU周期:送操作数,执行写操作周期:送操作数,执行写操作累加寄存器累加寄存器的内容,先送入的内容,先送入数据缓冲寄存器数据缓冲寄存器,再,再写入写入到所选定的到所选定的存储单元存储单元(40)中。中。操作码操作码译码器译码器4、空操作指令、空操作指令 NOP的指令周期:两个的指令周期:两个CPU周期周期。 指令功能:控制器不发出任何控制信号。指令功能:控制器不发出任何控制信号。操作码操作码译码译码8.2.2 指令流程指令流程分析举例分析举例第一个第一个CPU周期:取指令,操作码译码周期:取指令,操作码译码 223+11345NOP 000 236

11、7操作码操作码译码器译码器第二个第二个CPU周期:执行指令(没有任何操作)周期:执行指令(没有任何操作)操作码操作码译码器译码器5、转移指令、转移指令 JMP的指令周期的指令周期:两个两个CPU周期。周期。 第一个第一个CPU周期:取指令周期:取指令第二个第二个CPU周期:周期:指令中地址码指令中地址码送送程序计数器程序计数器,代替原先的内容作为下一条代替原先的内容作为下一条指令的地址。指令的地址。从而改变了原先的程序顺序。从而改变了原先的程序顺序。8.2.2 指令流程指令流程分析举例分析举例第一个第一个CPU周期:取指令,操作码译码周期:取指令,操作码译码 224+11345JMP 21 0

12、00 2467操作码操作码译码器译码器第二个第二个CPU周期:执行指令周期:执行指令将指令的地址码部分将指令的地址码部分21送到程序计数器,改变了原先执行顺序送到程序计数器,改变了原先执行顺序000 21操作码操作码译码器译码器方框方框 代表代表一个一个CPU周期周期,方框中的内容表示数据通路的某种控制操作。,方框中的内容表示数据通路的某种控制操作。 菱形菱形 通常用来表示通常用来表示某种判别或测试某种判别或测试,不单独占用一个不单独占用一个CPU周期周期。8.2.2 指令流程指令流程 方框图表示方框图表示采用采用方框图语言方框图语言来表示来表示一条指令的指令周期一条指令的指令周期。五条指令序

13、列:五条指令序列:第一个第一个CPU周期:取指令,每条指令都相同;周期:取指令,每条指令都相同;CLA,JMP,NOP:两个:两个CPU周期;周期; ADD,STA:三个:三个CPU周期周期ABUS:地址总线:地址总线DBUS:数据总线:数据总线AC:累加器:累加器PC:程序计数器:程序计数器IR:指令寄存器:指令寄存器AR:地址寄存器:地址寄存器DR:数据缓冲寄存器:数据缓冲寄存器取指周期取指周期 FE执行周期执行周期 EX有间址吗?有间址吗?有中断吗?有中断吗?间址周期间址周期 IND中断周期中断周期 INT是是是是否否否否8.2.2 指令流程指令流程 一条指令完整的指令周期包括:一条指令

14、完整的指令周期包括: 取指周期取指周期 FE(必有)(必有) 间址周期间址周期 IND 执行周期执行周期 EX(必有)(必有) 中断周期中断周期 INT取指周期:取指周期:取出并分析指令。取出并分析指令。间址周期:间址周期:取操作数有效地址。取操作数有效地址。执行周期:执行周期:取操作数并执行指令。取操作数并执行指令。中断周期:中断周期:CPU响应中断。响应中断。例如:例如:设设CPU内有下列部件:内有下列部件:PC,IR,SP,AC,MAR,MDR和和CU(控制单元)(控制单元) 要求:要求:1)写出完成间址寻址的取数指令)写出完成间址寻址的取数指令 LDA X 的信息流。的信息流。 (将某

15、主存单元的内容取至(将某主存单元的内容取至AC中)中) 解:解:1)取指周期:)取指周期:PC 送送 MAR 送送 地址总线地址总线 PC + 1 送送 PC CU 发发 读内存命令读内存命令 数据数据 送送 数据总线数据总线 送送 MDR 送送 IR / 指令送入指令送入IR 指令操作码部分指令操作码部分 OP(IR) 送送 CU 2)间址周期)间址周期:指令地址码部分:指令地址码部分 送送 MAR 送送 地址总线地址总线 CU 发发 读内存命令读内存命令 数据数据 送送 数据总线数据总线 送送 MDR / 操作数地址送入操作数地址送入MDR3)执行周期:)执行周期:MDR 送送 MAR 送

16、送 地址总线地址总线 CU 发发 读内存命令读内存命令 数据数据 送送 数据总线数据总线 送送 MDR 送送 AC / 操作数送入操作数送入AC8.2.2 指令流程指令流程 例如:例如:设设CPU内有下列部件:内有下列部件:PC,IR,SP,AC,MAR,MDR和和CU(控制单元)(控制单元) 要求:要求:2)写出中断周期的信息流。)写出中断周期的信息流。解:解:2)在中断周期内需将程序断点(在)在中断周期内需将程序断点(在PC中)保存起来,通常把断点存中)保存起来,通常把断点存 入堆栈。(假设进栈操作是先修改堆栈指针,后存入数据)入堆栈。(假设进栈操作是先修改堆栈指针,后存入数据) CU 发

17、发 修改堆栈指针命令修改堆栈指针命令 (SP) 1 送送 SP, 送送 MAR 送送 地址总线地址总线 PC 送送 MDR CU 发发 写内存命令,写内存命令, MDR 送送 数据总线数据总线 写入写入 存储单元存储单元 CU 送送 新程序地址新程序地址 给给 PC SP SP断点断点SP8.2.2 指令流程指令流程 断断 点点PC新地址新地址PC1、取指周期数据流、取指周期数据流MDRCUMARPCIR存储器存储器CPU地址总线地址总线数据总线数据总线控制总线控制总线IR+1 8.2.2 指令流程指令流程 2、间址周期数据流、间址周期数据流MDRCUMARCPU地址总线地址总线数据总线数据总

18、线控制总线控制总线PCIR存储器存储器MDR8.2.2 指令流程指令流程 3、执行周期数据流(不同的指令的数据流不同)、执行周期数据流(不同的指令的数据流不同)4、中断周期数据流、中断周期数据流MDRCUMARCPU地址总线地址总线数据总线数据总线控制总线控制总线PC存储器存储器8.2.2 指令流程指令流程 保存保存PC中的中断地址后,再送新地址给中的中断地址后,再送新地址给PC8.2.2 指令流程指令流程 控制信号控制信号PCIRACCU时钟时钟ALU控制信号控制信号标志标志控制控制信号信号C0C1C2C3C4取指周期取指周期例:例:ADD X 取指周期的控制信号发送顺序取指周期的控制信号发

19、送顺序:C0、C1、读、读、C2、C3、C4PCIRCU1、 CPU 内部不采用内部不采用 总线的方式总线的方式PCPCPC M D RM A R M D R M A RPCIRACCU时钟时钟ALU控制信号控制信号标志标志控制控制信号信号 M D R M A RC1C2C3C5例:例:ADD X间址周期的控制信号发送顺序:间址周期的控制信号发送顺序:C5、C1、读、读、C2、C3IR M D R M D R M A R1、 CPU 内部不采用内部不采用 总线的方式总线的方式8.2.2 指令流程指令流程 控制信号控制信号PCIRACCU时钟时钟ALU控制信号控制信号标志标志控制控制信号信号 M

20、 D R M A RC1C2C5例:例:ADD X执行周期的控制信号发送顺序:执行周期的控制信号发送顺序:C5、C1、读、读、C2、C67、加、加、C8C7C6C8ACALU控制控制信号信号 M D R M A R M D R1、 CPU 内部不采用内部不采用 总线的方式总线的方式8.2.2 指令流程指令流程 控制信号控制信号例:例:ADD X 取指周期取指周期2. CPU 内部采用内部采用 总线方式(总线方式(output 输出输出 input 输入输入)8.2.2 指令流程指令流程 控制信号控制信号例:例:ADD X 间址周期间址周期2. CPU 内部采用内部采用 总线方式(总线方式(ou

21、tput 输出输出 input 输入输入)(Read)8.2.2 指令流程指令流程 控制信号控制信号例:例:ADD X 执行周期执行周期2. CPU 内部采用内部采用 总线方式(总线方式(output 输出输出 input 输入输入)(Read)8.2.2 指令流程指令流程 控制信号控制信号8.2、时序系统和控制方式、时序系统和控制方式8.2.1 时序系统(周期、节拍)时序系统(周期、节拍)8.2.2 指令流程指令流程8.2.3 指令流水(并行执行)指令流水(并行执行)8.2.4 时序控制时序控制 提高访存速度:提高访存速度:1、采用高速存储芯片、采用高速存储芯片2、多体、多体并行并行存储结构

22、存储结构3、采用高速缓冲存储器、采用高速缓冲存储器提高提高CPU速度:速度:P345 1、采用高速逻辑部件、采用高速逻辑部件2、改进系统结构:、改进系统结构: 采用采用流水技术流水技术开发系统的开发系统的并行性并行性。8.2.3 指令流水指令流水 指令衔接方式指令衔接方式CPU执行指令序列时,各指令之间采取什么样的衔接方式呢?执行指令序列时,各指令之间采取什么样的衔接方式呢?最简单的是最简单的是串行顺序处理方式串行顺序处理方式,即一条指令执行完后才读取下一条。,即一条指令执行完后才读取下一条。为了提高工作速度,现在的大多数计算机都采取为了提高工作速度,现在的大多数计算机都采取重叠处理方式重叠处

23、理方式。重叠的程度取决于重叠的程度取决于存储与运算部件的多少存储与运算部件的多少,还与控制器指令部件的工,还与控制器指令部件的工作方式有关(即作方式有关(即指令预取指令预取与与译码执行译码执行的技术)。的技术)。现在,仅从现在,仅从预取指令预取指令的角度讨论几种指令衔接方式:的角度讨论几种指令衔接方式:1、单存储体串行处理方式、单存储体串行处理方式2、单存储体重叠处理方式、单存储体重叠处理方式3、双存储体重叠处理方式、双存储体重叠处理方式4、多存储体重叠处理方式、多存储体重叠处理方式1、单存储体串行处理方式、单存储体串行处理方式2、单存储体重叠处理方式、单存储体重叠处理方式取第取第K条指令条指

24、令取数取数运算运算取第取第K+1条指令条指令取数取数运算运算取第取第K条指令条指令取数取数运算运算取第取第K+1条指令条指令取数取数取第取第K条指令条指令取数取数运算运算取第取第K条指令条指令取取k+1条指令条指令取取k+2条指令条指令取第取第K+1条数条数取第取第K+2条数条数取第取第K+3条数条数取取k+3条指令条指令第第K条条运算运算第第K+2条条运算运算第第K+3条条运算运算第第K+1条条运算运算3、双存储体重叠处理方式(一存储体存指令,一存储体存数据)、双存储体重叠处理方式(一存储体存指令,一存储体存数据)取第取第K条数条数0体体1体体运算器运算器CPU进行运算时进行运算时内存空闲没

25、用内存空闲没用!8.2.3 指令流水指令流水 指令衔接方式指令衔接方式单体单体单体单体4、多存储体重叠处理方式、多存储体重叠处理方式 单元单元0 4 8地址译码器地址译码器地址寄存器地址寄存器存储器存储器0数据寄存器数据寄存器地址译码器地址译码器地址寄存器地址寄存器存储器存储器1数据寄存器数据寄存器地址译码器地址译码器地址寄存器地址寄存器存储器存储器3数据寄存器数据寄存器存储体号存储体号体内地址体内地址多体:多体:每个体有每个体有独立的独立的地址寄存器、地址译码器和数据寄存器地址寄存器、地址译码器和数据寄存器。交叉:交叉:每一个体的地址不连续。每一个体的地址不连续。0 4 8 / 1 5 9

26、/ 交叉编址交叉编址。目的:目的:提高单位时间内取字的速率。提高单位时间内取字的速率。 (CPU对存储体一对多)对存储体一对多)1593711地址译码器地址译码器地址寄存器地址寄存器存储器存储器2数据寄存器数据寄存器2610Review:多体交叉存储器:多体交叉存储器单元单元0 4 8地址译码器地址译码器地址寄存器地址寄存器存储器存储器0数据寄存器数据寄存器地址译码器地址译码器地址寄存器地址寄存器存储器存储器1数据寄存器数据寄存器地址译码器地址译码器地址寄存器地址寄存器存储器存储器3数据寄存器数据寄存器1593711地址译码器地址译码器地址寄存器地址寄存器存储器存储器2数据寄存器数据寄存器26

27、10取第取第K条指令条指令取第取第k条数条数第第k条条运算运算取第取第k+4条数条数第第k+4条条运算运算取取k+4条指令条指令0体体取第取第K+1条指令条指令取第取第k+1条数条数第第k+1条条运算运算取第取第k+5条数条数取取k+5条指令条指令1体体取第取第K+2条指令条指令取第取第k+2条数条数第第k+2条条运算运算取第取第k+6条数条数取取k+6条指令条指令2体体取第取第K+3条指令条指令取第取第k+3条数条数第第k+3条条运算运算取第取第k+7条数条数取取k+7条指令条指令3体体8.2.3 指令流水指令流水 指令衔接方式指令衔接方式流水线计算机的系统组成流水线计算机的系统组成 其中其

28、中CPU按流水线方式组织,按流水线方式组织,通常由三部分组成通常由三部分组成3级流水线:级流水线:指令部件、指令部件、指令队列、指令队列、执行部件执行部件。 为了使存储器的存取时间能与为了使存储器的存取时间能与流水线各过程段的速度相匹配,流水线各过程段的速度相匹配,一般都采用一般都采用多体交叉存储器多体交叉存储器。8.2.3 指令流水指令流水IF 取指取指ID 译码译码OF 取操作数取操作数EX 执行执行 流水线流水线CPUCPU的时空图的时空图 计算机的流水线处理过程非常类似于工厂中的流水装配线。计算机的流水线处理过程非常类似于工厂中的流水装配线。为了实现流水,首先把输入的任务为了实现流水,

29、首先把输入的任务(或过程或过程)分割为分割为一系列子任务一系列子任务,并使,并使各子任务能在流水线的各个阶段各子任务能在流水线的各个阶段并发地执行并发地执行。当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。出执行结果,从而实现了子任务级的并行性。8.2.3 指令流水指令流水 流水线流水线CPUIFIDOFEX流入流入流出流出取指取指译码译码取操作数取操作数执行执行取指取指译码译码取操作数取操作数执行执行8.2.3 指令流水指令流水 流水线流水线CPU时钟周期时钟周期每隔每隔4个时钟周期完成个时钟周期完成1条指令条指令第第1条指令条指令4个时钟周期,以后每隔个时钟周期,以后每隔1个时钟周期完成个时钟周期完成1条指令条指令时钟周期时钟周期 每个时钟周期内可每个时钟周期内可 并发多条独立指令并发多条独立指令(配置多个功能部件(配置多个功能部件 ) 不能调整不能调整 指令的指令的 执行顺序执行顺序(通过编译优化把可并行执行的指令重组)(通过编译优化把可并行执行的指令重组)8.2.3 指令流水指令流水 流水线流水线CPU超标量技术超标量技术 在在 一一个时钟周

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论