18 cpu02
-
Upload
huaijin-chen -
Category
Documents
-
view
879 -
download
1
Transcript of 18 cpu02
CPU
林楠
办公室: 408
办公电话: 0371-63887293
电子邮件: [email protected]
《 计算机组成原理 》
系统总线
存储器
运算器
控制器
接口与通信
输入 / 输出设备
Cache
第八章 CPU 的结构与功能(最难)
(含 第八章 + 第四篇)
8.1 CPU 的基本功能与组成( 8.1 )8.2 时序系统和控制方式( 8.2 8.3 9 )8.3 组合逻辑设计( 10 )8.4 微程序设计( 10 )
第八章 CPU 的结构与功能
时序系统是控制器的心脏,其功能是为指令的执行提供各种定时信号。(一条指令分不同执行阶段即周期 - 节拍 - 脉冲)
组合逻辑控制器的设计步骤(前三步骤)
步骤一 拟定指令系统(逻辑依据,讲过了)步骤二 确定总体结构(空间安排,刚讲过)步骤三 拟定时序系统(时间安排,该讲了……)
8.2 、时序系统和控制方式
8.2.1 指令周期 1 )指令周期的基本概念 2 )指令周期的分析举例 3 )指令周期的数据流8.2.2 指令流水8.2.3 多级时序系统8.2.4 时序控制方式
1 、非访存指令 CLA 的指令周期:两个 CPU 周期。 指令功能:累加器清零操作。
2 )指令周期的分析举例
1 )程序计数器 PC 的内容“ 20” 送入地址寄存器 MAR ;2 )程序计数器 PC 的内容 +1 ,为取下一条指令做准备;3 )地址寄存器 MAR 的内容,送到地址总线 ABus 上;4 )存储单元 20 中的内容经数据总线 DBus 送数据缓冲寄存器 MDR ;5 )数据缓冲寄存器 MDR 的内容,送到指令寄存器 IR ;6 )指令寄存器中的操作码被译码或测试;7 ) CPU 识别出是 CLA 指令。
2←20+1
13
45CLA
第一个 CPU 周期:取指令假设程序计数器 PC 内容为“ 20”
000 20
6
7
第二个 CPU 周期:执行指令1 )操作控制器送一控制信号给 ALU ;2 ) ALU 响应控制信号,对 AC 清零。
2 、直接访存指令 ADD 的指令周期:三个 CPU 周期。 指令功能:两个操作数相加,结果放累加器。
2 )指令周期的分析举例
第一个 CPU 周期:取指令,译指令码(同 CLA )
2←21+1
13
45ADD 30
000 21
6
7
第二个 CPU 周期:送操作数地址1 )把指令寄存器中的地址码部分 (30) 送入地址寄存器
000 30
第三个 CPU 周期:送操作数,执行指令1 )从内存中读取操作数,送入数据缓冲寄存器;2 )操作数与累加器相加后存入累加器。
000 30
000 006
000 006
000 000
000 006
3 、存数指令 STA 的指令周期:三个 CPU 周期。 指令功能:向内存单元,写入一操作数。
2 )指令周期的分析举例
第一个 CPU 周期:取指令,译指令码
2←22+1
1
3
45
STA 40
000 22
6
7
第二个 CPU 周期:送操作数地址
000 40
000 40
000 006
第三个 CPU 周期:送操作数,执行写操作累加寄存器的内容,先送入数据缓冲寄存器,再写入到所选定的存储单元 (40) 中。
4 、空操作指令 NOP 的指令周期:两个 CPU 周期。 指令功能:控制器不发出任何控制信号。
2 )指令周期的分析举例
第一个 CPU 周期:取指令
2←23+1
13
45
NOP
000 23
6
7
第二个 CPU 周期:执行指令(没有任何操作)
5 、转移指令 JMP 的指令周期:两个 CPU 周期。
第一个 CPU 周期:取指令
第二个 CPU 周期:把指令寄存器的地址码内容送到程序计数器 PC ,代替原先的内容作为下一条指令的地址。
从而改变了原先的程序顺序。
2 )指令周期的分析举例
第一个 CPU 周期:取指令
2←24+1
13
45
JMP 21
000 24
6
7
第二个 CPU 周期:执行指令将指令的地址码部分 21 送到程序计数器,改变了原先执行顺序
000 21
8.2 、时序系统和控制方式
8.2.1 指令周期 1 )指令周期的基本概念 2 )指令周期的分析举例 3 )指令周期的数据流8.2.2 指令流水8.2.3 多级时序系统8.2.4 时序控制方式
方框 代表一个 CPU 周期,方框中的内容表示数据通路的某种控制操作。 菱形 通常用来表示某种判别或测试,不单独占用一个 CPU 周期。
3 )指令周期的数据流 – 方框图表示
采用方框图语言来表示一条指令的指令周期。
五条指令序列:第一个 CPU 周期:取指令,每条指令都相同;CLA , JMP , NOP :两个 CPU 周期; ADD , STA :三个CPU 周期
ABUS :地址总线DBUS :数据总线AC :累加器PC :程序计数器
IR :指令寄存器AR :地址寄存器DR :数据缓冲寄存器
取指周期 FE
执行周期 EX
有间址吗?
有中断吗?
间址周期 IND
中断周期 INT
是
是
否
否
8.28.23 )指令周期的数据流
一条指令完整的指令周期包括: 取指周期 FE 间址周期 IND 执行周期 EX 中断周期 INT
取指周期、执行周期是每条指令都必须有的。
间址周期,只有间址寻址的指令才有。
中断周期,只有在条件满足时才有。
例如:设 CPU 内有下列部件: PC,IR,SP,AC,MAR,MDR 和 CU (控制单元) 要求: 1 )写出完成间址寻址的取数指令 LDA 的信息流。 (将某主存单元的内容取至 AC 中)
解:)取指周期: PC 送 MAR 送 地址总线
CU 发 读内存命令 数据 送 数据总线 送 MDR 送 IR // 指令送入 IR 指令操作码部分 OP(IR) 送 CU PC + 1 送 PC
)间址周期:指令地址码部分 送 MAR 送 地址总线 CU 发 读内存命令 数据 送 数据总线 送 MDR // 操作数地址送入 MDR
)执行周期: MDR 送 MAR 送 地址总线 CU 发 读内存命令 数据 送 数据总线 送 MDR 送 AC // 操作数送入 AC
3 )指令周期的数据流
例如:设 CPU 内有下列部件: PC,IR,SP,AC,MAR,MDR 和 CU (控制单元) 要求: 2 )写出中断周期的信息流。解:2 )在中断周期内需将程序断点(在 PC 中)保存起来,通常把断点存 入堆栈。(假设进栈操作是先修改堆栈指针,后存入数据)
CU 发 修改堆栈指针命令 (SP) – 1 送 SP, 送 MAR 送 地址总线 CU 发 写内存命令 PC 送 MDR 送 数据总线 写入 存储单元 CU 送 程序入口地址 给 PC
SP
SP 断点SP
3 )指令周期的数据流
3 )指令周期的数据流 – 控制信号
PC IR
AC
CU
时 钟
ALU
…
…
…
控制信号
标志
控制信号
C0C1
C2
C3
C4
取指周期
例: ADD @ X 取指周期的控制信号发送顺序: C0 、 C1 、读、 C2 、 C3 、 C4
PC IR
CU
1 、不采用 CPU 内部总线的方式
PCPCPC
M D
RM
A R
M D
R M
A R
3 )指令周期的数据流 – 控制信号
PC IR
AC
CU
时 钟
ALU
…
…
…
控制信号
标志
控制信号
M D
R M
A R
C1
C2
C3C5
例: ADD @ X间址周期的控制信号发送顺序: C5 、 C1 、读、 C2 、 C3
IR
M D
R M
D R
M A
R
1 、不采用 CPU 内部总线的方式
3 )指令周期的数据流 – 控制信号
PC IR
AC
CU
时 钟
ALU
…
…
…
控制信号
标志
控制信号
M D
R M
A R
C1
C2
C5
例: ADD @ X执行周期的控制信号发送顺序: C5 、 C1 、读、 C2 、 C67 、加、 C8
C7
C6 C8
AC
ALU
… 控制信号
M D
R M
A R
M D
R
1 、不采用 CPU 内部总线的方式
3 )指令周期的数据流 – 控制信号
例: ADD @ X 取指周期
2. 采用 CPU 内部总线方式( output 输出 input 输入)
3 )指令周期的数据流 – 控制信号
例: ADD @ X 间址周期
2. 采用 CPU 内部总线方式( output 输出 input 输入)
( Read )
3 )指令周期的数据流 – 控制信号
例: ADD @ X 执行周期
2. 采用 CPU 内部总线方式( output 输出 input 输入)
( Read )
8.2 、时序系统和控制方式
8.2.1 指令周期 1 )指令周期的基本概念 2 )指令周期的分析举例 3 )指令周期的数据流8.2.2 指令流水8.2.3 多级时序系统8.2.4 时序控制方式
8.2.2 指令流水 – 指令衔接方式
CPU 执行指令序列时,各指令之间采取什么样的衔接方式呢?
最简单的是串行顺序处理方式,即执行完一条指令才读取下一条。
为了提高工作速度,现在的大多数计算机都采取重叠处理方式。
重叠的程度取决于存储与运算部件的多少,还与控制器指令部件的工作方式有关(即指令预取与译码执行的技术)。
现在,仅从预取指令的角度讨论几种指令衔接方式:
1 、单存储体串行处理方式2 、单存储体重叠处理方式3 、双存储体重叠处理方式4 、多存储体交叉访问与重叠处理方式
1 、单存储体串行处理方式
2 、单存储体重叠处理方式
取第 K条指令
……取数 运算取第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进行运算时内存空闲没用
8.2.2 指令流水 – 指令衔接方式
4 、多存储体交叉访问与重叠处理方式
单元 0 4 8
地址译码器
地址寄存器
存储器 0
数据寄存器
地址译码器
地址寄存器
存储器 1
数据寄存器
地址译码器
地址寄存器
存储器 3
数据寄存器
存储体号 体内地址
多体:多个体,每个体有独立的地址寄存器 \ 地址译码器和数据寄存器。交叉:每一个体的地址不连续。 0 4 8 / 1 5 9 / … 交叉编制。目的:提高单位时间内取字的速率。 ( CPU 对存储体一对多)
159
37
11
地址译码器
地址寄存器
存储器 2
数据寄存器
26
10
8.2.2 指令流水 – 指令衔接方式
单元 0 4 8
地址译码器
地址寄存器
存储器 0
数据寄存器
地址译码器
地址寄存器
存储器 1
数据寄存器
地址译码器
地址寄存器
存储器 3
数据寄存器
159
37
11
地址译码器
地址寄存器
存储器 2
数据寄存器
26
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.2 指令流水 – 指令衔接方式
流水线计算机的系统组成 其中 CPU按流水线方式组织,通常由三部分组成一 3 级流水线:指令部件、指令队列、执行部件。 为了使存储器的存取时间能与流水线各过程段的速度相匹配,一般都采用多体交叉存储器。
8.2.2 指令流水
IF 取指ID 译码OF 取操作数EX 执行
流水线 CPU 的时空图 计算机的流水线处理过程非常类似于工厂中的流水装配线。
为了实现流水,首先把输入的任务 ( 或过程 ) 分割为一系列子任务,并使各子任务能在流水线的各个阶段并发地执行。
当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现了子任务级的并行性。
8.2.2 指令流水– 流水线 CPU
IF ID OF EX流入 流出
取指
译码
取操作数
执行
取指
译码
取操作数
执行
8.2.2 指令流水 – 流水线 CPU
时钟周期
每隔 4 个时钟周期完成 1 条指令
第 1 条指令 4 个时钟周期,以后每隔 1 个时钟周期完成 1 条指令
时钟周期
8.2.2 指令流水– 流水线 CPU
Pentium 是 Intel 公司生产的超标量流水处理器,
Pentium具有 CISC 和 RlSC 两者的特性,不过具有的 CISC特性更多一些。操作控制器采用组合逻辑控制和微程序控制相结合的方式。大多数简单指令用组合逻辑控制实现。
以 CISC 结构实现超标量流水线,堪称为当代 CISC 机器的经典之作。
完成第 1 , 2 条指令 4 个时钟周期,以后每隔 1 个时钟周期完成 2 条指令
8.2.2 指令流水– 流水线 CPU
取指译码
取操作数执行
时钟周期
假设指令流水时空图如下,共有 10 条指令连续输入此流水线。)假设时钟周期为 100ns ,求流水线的实际吞吐量
(单位时间内执行完的指令数)处理器的加速比
条指令,需要 13 个时钟周期,100ns * 13 ) = 1.77*107 条指令 /秒
)非流水线时处理 10 条指令需要 10*4 个时钟周期,四级流水线时处理 10 条指令需要 13 个时钟周期,
所以该流水处理器的加速比为 40 / 13 = 3.08
例:有五级流水线, 分别完成 IF 取指, ID 译码、读寄存器, EX 执行、访存地址, MEM 访存, WB 写寄存器,五个阶段。 假设完成各个阶段的操作时间一次为: 90 微秒, 60 微秒, 70 微秒, 100 微秒, 50 微秒。
问:流水线的时钟周期应该取什么值?
8.2.2 指令流水– 流水线中的问题
解:时钟周期应该取其最大值,即访存 100 微秒。
考研习题精选
1 、 CPU 是指() A 、控制器 B 、运算器和控制器 C 、运算器、控制器、主存 D 、 ALU 和寄存器
2 、控制器的全部功能是() A 、产生时序信号 B 、从主存中取出指令并完成指令操作码译码 C 、从主存中取出指令,分析指令并产生有关的操作控制信号 D 、以上都不对
3 、指令周期是() A 、 CPU 执行一条指令的时间 B 、 CPU 从主存中取出一条指令的时间 C 、 CPU 从主存中取出一条指令加上执行这条指令的时间 D 、时钟频率的倒数
4 、程序计数器的位数取决于() A 、存储器的容量 B 、机器字长 C 、指令字长 D 、存储字长
考研习题精选
5 、指令寄存器的位数取决于() A 、存储器的容量 B 、机器字长 C 、指令字长 D 、存储字长
6 、通用寄存器的位数取决于() A 、存储器的容量 B 、机器字长 C 、指令字长 D 、中断服务程序
7 、在 CPU 的寄存器中,()对于用户是透明的。 A 、程序计数器 B 、状态条件寄存器 C 、指令寄存器 D 、通用寄存器
8 、程序计数器 PC属于()。 A 、运算器 B 、控制器 C 、存储器 D 、 ALU
9 、 CPU 不包括()。 A 、通用寄存器 B 、指令寄存器 C 、地址译码器 D 、程序计数器
考研习题精选
10 、 CPU 中的通用寄存器() A 、只能存数据,不能存地址 B 、可以存数据或地址 C 、不能存数据,不能存地址 D 、可以存数据或地址,也可以代替指令寄存器
11 、计算机操作的最小单位时间是() A 、时钟周期 B 、指令周期 C 、 CPU 周期 D 、存取周期
12 、由于内部操作快,而 CPU 访存速度慢,所以机器周期通常由() 来决定。 A 、间址周期 B 、指令周期 C 、机器周期 D 、存取周期
13 、在取指令操作后,程序计数器中存放的是()。 A 、当前指令的地址 B 、程序中指令的数量 C 、下一条指令的地址 D 、已经执行指令的计数值
复习与作业
复习章节:
第 8 章 CPU 的结构和功能8.3 、指令流水
第 9 章 控制单元的功能
作业:
P370 4 、 8 、 9 、 11 、 12 、P393 1 、 3 、 6 、 9 、 11 、 12 、