william stallings 计算机组成原理与体系结构 第八版

Post on 03-Jan-2016

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

第 15章控制器操作

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

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

程序执行的组成元素

程序执行

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

取指 间接 执行 中断

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

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

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

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

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

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

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

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

取指周期 ( 符号描述 )• 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)

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

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

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

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

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

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

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

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

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

操作

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

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

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

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

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

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

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

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

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

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

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

指令周期流程图

ICC?

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

ICC = 00 ICC = 10

允许中断?

间接寻址?

ICC = 11 ICC = 00

ICC = 10 ICC = 01

11(中断) 00(取指)

10(执行) 01(间接)

NY

Y N

执行指令

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

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

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

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

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

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

控制信号• 时钟

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

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

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

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

控制器模型

指令寄存器

控制器

控制总线

CPU内的控制信号

来自系统总线的控制信号

至系统总线的控制信号

标志

时钟

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

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

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

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

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

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

数据通路和控制信号

MBR

PC IR

时钟

AC

控制器

MAR

ALU

控制信号

· · ·

· · · 标志

· · · 控制信号

C7C9

C5

C12

C10

C4

C13

C11

C8

C3C1

C0

C6

C2

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

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

有内部总线的 CPU IR

PC

控制器

MAR

MBR

AC

Y

ALU

Z

CPU内部总线

地址线

数据线

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)

Intel 8085 引脚分布

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 指令 累加器指令 指令 指令

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

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

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

硬布线实现 (2)• 时钟

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

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

的控制信号

带有译码输入的控制器

控制器定时器

译码器

指令寄存器

···

I0 I1 Ik

Tn

T1T2

控制信号

C1 C2 Cn

时钟

标志

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

选读• Stallings 第 15章

top related