33
William Stallings 计计计计计计计计 计计计 计计计 计 15 计 计计计计计

William Stallings 计算机组成原理与体系结构 第八版

Embed Size (px)

DESCRIPTION

William Stallings 计算机组成原理与体系结构 第八版. 第 15 章 控制器操作. 微操作. 计算机执行程序 取指 / 执行周期 每个指令周期都有一系列子步骤 参考流水线 称之为微操作 每一个步骤微小简单 CPU 的原子操作. 程序执行的组成元素. 取指周期 - 4 个寄存器. 内存地址寄存器 ( Memory Address Register ,MAR) 连接到地址总线 指定读、写操作的内存地址 内存缓冲寄存器 ( Memory Buffer Register ,MBR) 连接到数据总线 存放被写入内存或从内存最后读出的数据 - PowerPoint PPT Presentation

Citation preview

Page 1: William Stallings 计算机组成原理与体系结构 第八版

William Stallings计算机组成原理与体系结构第八版

第 15章控制器操作

Page 2: William Stallings 计算机组成原理与体系结构 第八版

微操作• 计算机执行程序• 取指 / 执行周期• 每个指令周期都有一系列子步骤

—参考流水线• 称之为微操作• 每一个步骤微小简单• CPU 的原子操作

Page 3: William Stallings 计算机组成原理与体系结构 第八版

程序执行的组成元素

程序执行

指令周期 指令周期指令周期………

取指 间接 执行 中断

微操作 微操作 微操作 微操作 微操作

Page 4: William Stallings 计算机组成原理与体系结构 第八版

取指周期 - 4 个寄存器• 内存地址寄存器 (Memory Address

Register ,MAR) —连接到地址总线—指定读、写操作的内存地址

• 内存缓冲寄存器 (Memory Buffer Register ,MBR) —连接到数据总线—存放被写入内存或从内存最后读出的数据

• 程序计数器 (Program Counter ,PC) —存放下一条指令的地址

• 指令寄存器 (Instruction Register ,IR) —保存最近取出的指令

Page 5: William Stallings 计算机组成原理与体系结构 第八版

取指周期• 下一条将被执行的指令的地址存放在程序计数器

PC 中• 地址 (在MAR中 ) 放到地址总线• 控制器发出一个读 (READ) 命令• 结果 ( 从内存中读出 ) 出现在数据总线上• 数据总线上的值被复制到内存缓冲寄存器 MBR• PC 自加一 ( 与内存读取数据并行处理 )• 数据 ( 指令 )从MBR 传送到指令寄存器 IR• MBR 被释放了,以便进一步的数据获取

Page 6: William Stallings 计算机组成原理与体系结构 第八版

取指周期 ( 符号描述 )• t1: MAR <- (PC)• t2: MBR <- (memory)• PC <- (PC) +1• t3: IR <- (MBR)• (tx 表示单位时间 / 时钟脉冲 )• 或者• t1: MAR <- (PC)• t2: MBR <- (memory)• t3: PC <- (PC) +1 • IR <- (MBR)

Page 7: William Stallings 计算机组成原理与体系结构 第八版

微操作分组原则• 必须遵循正确合理的顺序

—MAR <- (PC) 必须先于 MBR <- (memory)

• 必须避免冲突—一个寄存器不能同时进行读写操作—MBR <- (memory) 和 IR <- (MBR) 不应出现在同

一个周期中• 另外 : PC <- (PC) +1 涉及到加法

—运用 ALU—可能需要增加微操作

Page 8: William Stallings 计算机组成原理与体系结构 第八版

间接周期• MAR <- (IR( 地址 )) • MBR <- (memory)• IR( 地址 )<- (MBR( 地址 ))

• MBR 存放地址• IR 现处在类似直接寻址被使用过的同一状态• ( 这说明 IR 大小的什么问题? )

Page 9: William Stallings 计算机组成原理与体系结构 第八版

中断周期• t1: MBR <-(PC)• t2: MAR <- save-address• PC <- routine-address• t3: memory <- (MBR)• 给出的是一个简单的事件序列

—可能需要额外的微操作以获取地址—注意 . 保存当前状态是通过中断处理程序,而不是微

操作

Page 10: William Stallings 计算机组成原理与体系结构 第八版

执行周期 (ADD)• 每条指令是不一样的• e.g. ADD R1,X – 将存储器位置 X 的内容加到

寄存器 R1, 结果保存至 R1• t1: MAR <- (IR( 地址 ))• t2: MBR <- (memory)• t3: R1 <- R1 + (MBR)• 注意没有微操作的重叠

Page 11: William Stallings 计算机组成原理与体系结构 第八版

执行周期 (ISZ)• ISZ X - 递增,若为 0 则跳步

—t1: MAR <- (IR( 地址 ))—t2: MBR <- (memory)—t3: MBR <- (MBR) + 1—t4: memory <- (MBR)— 若 (MBR) == 0 , 则 PC <- (PC) + 1

• 注意 :—如果是一个单一的微操作—所有微操作在 T4 完成

Page 12: William Stallings 计算机组成原理与体系结构 第八版

执行周期 (BSA)• BSA X – 转移并保存地址

—BSA 指令之后的指令地址被保存于 X 中—由 X+1 位置继续执行—t1: MAR <- (IR( 地址 ))— MBR <- (PC)—t2: PC <- (IR( 地址 ))— memory <- (MBR)—t3: PC <- (PC) + 1

Page 13: William Stallings 计算机组成原理与体系结构 第八版

指令周期• 每个阶段都可分解为一系列的微操作• E.g. 取指 , 间接和中断周期• 执行周期

—每一个操作码有一个序列• 需要将微操作序列连接起来• 假设一个新的 2 位寄存器

—指令周期代码 (Instruction cycle code ,ICC) 定义了 CPU 处于周期某一部分的状态

– 00: 取指– 01: 间接– 10: 执行– 11: 中断

Page 14: William Stallings 计算机组成原理与体系结构 第八版

指令周期流程图

ICC?

建立中断 读地址 取指令操作码?

ICC = 00 ICC = 10

允许中断?

间接寻址?

ICC = 11 ICC = 00

ICC = 10 ICC = 01

11(中断) 00(取指)

10(执行) 01(间接)

NY

Y N

执行指令

Page 15: William Stallings 计算机组成原理与体系结构 第八版

功能需求• 定义 CPU 的基本元素• 描述 CPU 完成的操作• 确定为了使微操作完成,控制器必须具备的功能

Page 16: William Stallings 计算机组成原理与体系结构 第八版

CPU的基本功能元素• ALU• 寄存器组• 内部数据通路• 外部数据通路• 控制器

Page 17: William Stallings 计算机组成原理与体系结构 第八版

微操作分类• 在寄存器之间传送数据• 将数据由寄存器传送到外部接口• 将数据由外部接口传送到寄存器• 完成算术逻辑运算

Page 18: William Stallings 计算机组成原理与体系结构 第八版

控制器基本任务• 排序 (sequencing)

—使 CPU 一步步通过一系列微操作• 执行 (execution)

—使每个微操作得以完成• 控制信号实现上述任务

Page 19: William Stallings 计算机组成原理与体系结构 第八版

控制信号• 时钟

—每个时钟脉冲完成一个 ( 或一组同时的 ) 微操作指令

• 指令寄存器—当前指令的操作码—确定执行何种微操作

• 标志—COU 的状态—先前操作的结果

• 来自控制总线的控制信号—中断信号—应答信号

Page 20: William Stallings 计算机组成原理与体系结构 第八版

控制器模型

指令寄存器

控制器

控制总线

CPU内的控制信号

来自系统总线的控制信号

至系统总线的控制信号

标志

时钟

Page 21: William Stallings 计算机组成原理与体系结构 第八版

控制信号 - 输出• CPU 内的控制信号

—用于数据传送—启动特定功能

• 到控制总线的控制信号—对存储器的控制信号—到 I/O 模块的控制信号

Page 22: William Stallings 计算机组成原理与体系结构 第八版

控制信号举例 - 取指周期• MAR <- (PC)

—控制单元发出信号,打开 PC与MAR 的门• MBR <- (memory)

—打开 MAR 与地址总线的门—存储器读取控制信号—打开数据总线和 MAR 的门

Page 23: William Stallings 计算机组成原理与体系结构 第八版

数据通路和控制信号

MBR

PC IR

时钟

AC

控制器

MAR

ALU

控制信号

· · ·

· · · 标志

· · · 控制信号

C7C9

C5

C12

C10

C4

C13

C11

C8

C3C1

C0

C6

C2

Page 24: William Stallings 计算机组成原理与体系结构 第八版

内部组织• 通常使用一个内部总线• 门控制数据与总线的交换 Gates control

movement of data onto and off the bus• 控制信号控制数据与外部系统总线的交换• ALU 的一些相应操作需要临时寄存器

Page 25: William Stallings 计算机组成原理与体系结构 第八版

有内部总线的 CPU IR

PC

控制器

MAR

MBR

AC

Y

ALU

Z

CPU内部总线

地址线

数据线

Page 26: William Stallings 计算机组成原理与体系结构 第八版

Intel 8085 处理器结构图

8位内部数据总线

中断控制 串行I/O

(8)累加器

(8)临时寄存器

(5)标志触发器

(8)指令寄存器

指令译码器机器周期编码

B(8)寄存器

C(8)寄存器

D(8)寄存器

E(8)寄存器

H(8)寄存器

L(8)寄存器

(16)栈指针(16)

程序计数器(16)递增/递减地址锁存

寄存器组

(8)地址缓冲器

(16)地址数据缓冲器

定时和控制CKLGEN 控制 状态 DMA 复位

+5V

GND

X1

X2

CLK Out

Ready

RD WR ALE S0 S1 IO/M

HOLD

HLDA

Rest In

Rest Out

A15 ~ A8

地址总线AD7 ~ AD0

地址/数据总线

电源

INTR

INTA

RST 5.5

RST 6.5

RST 7.5

Trap

SID SOD

(8)算术逻辑单元

(ALU)

Page 27: William Stallings 计算机组成原理与体系结构 第八版

Intel 8085 引脚分布

Page 28: William Stallings 计算机组成原理与体系结构 第八版

Intel 8085 OUT 指令时序图OUT字节

M1 M2 M3

T1 T2 T3 T4 T1 T2 T3 T1 T2 T3

PC输出 PC+1à PC 指令 à IR X PC输出 PC+1à PC 字节à Z,W WZ输出 A 端口

取指令 存储器读 输出写

PCH PCH

3MHz CLK

A15~A8

AD7~AD0

ALE

RD

WR

IO/M

I/O端口

PCL 指令 累加器指令 指令 指令

Page 29: William Stallings 计算机组成原理与体系结构 第八版

硬布线实现 (1)• 控制器输入• 标志和控制总线

—每个位都有某种意义• 指令寄存器

—指令操作码为不同指令产生不同的控制信号—每一操作码有唯一的逻辑输入—译码器接收一个编码输入并产生输出信号—n 个输入和 2n个输出

Page 30: William Stallings 计算机组成原理与体系结构 第八版

硬布线实现 (2)• 时钟

—重复的脉冲序列—对于过量微操作的持续时间是有用的—时钟脉冲周期要足够的长—在一个指令周期内,不同时间单位发送不同的控制信

号—需要一个计数器,在不同时钟脉冲 t1,t2等发出不同

的控制信号

Page 31: William Stallings 计算机组成原理与体系结构 第八版

带有译码输入的控制器

控制器定时器

译码器

指令寄存器

···

I0 I1 Ik

Tn

T1T2

控制信号

C1 C2 Cn

时钟

标志

Page 32: William Stallings 计算机组成原理与体系结构 第八版

硬布线设计存在的问题• 复杂的序列和微操作逻辑• 难以设计和测试• 僵化的设计• 很难添加新指令

Page 33: William Stallings 计算机组成原理与体系结构 第八版

选读• Stallings 第 15章