2-第六章 中央处理器武大计算机课件考研
immediate
0
R[rt] ← Data Memory {R[rs] + SignExt[imm16]}
Instruction<31:0> Branch = 0 Instruction Rd Rt Jump = 0 Fetch Unit RegDst = 0 Clk 1 Mux 0 ALUctr = Add Rs Rt Rd Imm16 Rt RegWr = 1 5 5 Rs 5 MemWr = 0 MemtoReg = 1 busA Rw Ra Rb Zero busW 32 32 32-bit 0 32 busB 32 0 Registers Clk
PC+4 PC
PC+4
ALUctr
RegWr busA, B busW
RegWr Rd Rs Rt
5 5 5
New Value Register File Access Time New Value Old Value ALU Delay Old Value New Value
ALUctr busA
4
ADD / SUB 指令
addrd, rs, rt
31 26 21 16 11 6 0
op
6 bits
rs
5 bits
rt
5 bits
rd
5 bits
shamt
5 bits
funct
6 bits
M[PC]
取指(每条指令一样)
R[rd] ← R[rs] + R[rt] 实际操作(每条指令可能不同)
32
busW
32
Clk
Rw Ra Rb 32 32-bit Registers
Register Write Occurs Here Result
ALU
busB
32
32ቤተ መጻሕፍቲ ባይዱ
9
ori 指令译码后的执行过程
R[rt] ← R[rs] or ZeroExt[Imm16]
31 26 21 16 op rs rt immediate 0
ALU
Rs Rt Rd Imm16 MemWr = 0 MemtoReg = x Zero
32 0
<21:25>
<16:20>
<11:15>
<0:15> Mux
Mux
imm16
16
32
Data In 32 Clk
WrEn Adr Data Memory
32
1
ExtOp = x
Extender
ALUSrc = 0
32
1
ExtOp = 1
Extender
ALUSrc = 1
12
Branch指令译码后的执行过程 31 26 21 16
op rs rt immediate
0
if (R[rs] - R[rt] == 0) then Zero ← 1 ; else Zero ← 0
Rd 1Mux 0
5
RegDst = x
13
Branch指令最后阶段取指部件中的动作 31 26 21 16
op rs rt immediate
0
if (Zero == 1) then PC = PC + 4 + SignExt[imm16]*4 ; else PC = PC + 4
30
PC<31:28> Target Instruction<25:0> 26 PC Clk imm16 Instruction<15:0> 16
Branch = 0 Instruction Rd Rt Jump = 0 Fetch Unit RegDst = 0 Clk 1Mux 0 ALUctr = Or Rs Rt Rd Imm16 Rt RegWr = 1 5 5 Rs 5 MemWr = 0 MemtoReg = 0 busA Rw Ra Rb Zero 32 busW 32 32-bit 0 busB 32 32 Registers 0 Clk <21:25> <16:20>
计算机原理
第六章 中央处理器
本讲简要说明
目的与要求:掌握单周期控制器的设计
授课重点:单周期控制器的设计
授课难点:如何设计单周期控制器
参考章节:《Computer Organization and Design》第5章第4节
2
主要内容
考察每条指令在数据通路中的执行过程和涉及到的 控制信号取值
30
4 26
30
1 Mux 0
Addr<31:2> Addr<1:0> “00” Instruction Memory
PC ← PC + 4
除 Branch and Jump以外的指令都相同
30 Addr<31:2> Addr<1:0>
PC<31:28> Target Instruction<25:0> 26 PC Clk imm16
16 30 4
30
30 0 1
“00” Instruction Memory
32
3
The Big Picture: Where are We Now?
The Five Classic Components of a Computer
Processor
Control Memory Input
Datapath
Output
下一个目标:设计单周期数据通路的控制器 设计方法
(1)根据每条指令功能,分析控制信号取值,并在表中列出 (2)根据列出的指令和控制信号关系,写出每个控制信号的 逻辑表达式
t
0 funct
Branch = 0 Instruction Rd Rt Jump = 0 Fetch Unit RegDst = 1 Clk 1 Mux0 Rs Rt ALUctr = Add Rs Rt Rd Imm16 RegWr = 1 5 5 5 or Sub MemWr = 0 MemtoReg = 0 busA Rw Ra Rb 32 busW Zero 32 32-bit 0 32 busB 32 0 Clk Registers
Mux
0
Adder
30
Mux
“ 1”
Adder
30
1
Jump = 0 Instruction<31:0>
30
Instruction<15:0>
Branch = 0 Zero = x
因为新的控制信号保证 了正确的PC值产生,在 足够长的时间后,下个 时钟Clk到来!
8
SignExt
Register-Register(R型指令) Timing
Branch = 1 Jump = 0 Rt Clk
Rs Rt
5
Instruction<31:0>
Instruction Fetch Unit ALUctr = Sub
32 0 1
RegWr = 0 5
busW Clk
32
Rw Ra Rb 32 32-bit busB Registers
32
busA
公共操作:取指令和计算下址PC R-Type指令(add / sub) 立即数指令 (ori) 访存指令(lw / sw) 分支指令 (beq) 跳转指令 (j)
汇总各指令的控制信号取值
两类控制信号:直接送往数据通路 / 送往局部控制单元
分析ALU操作对应的控制信号与func字段间的关系 设计ALU局部控制单元 设计主控制单元
Clk PC Old Value Rs, Rt, Rd, Op, Func Clk-to-Q New Value Instruction Memory Access Time New Value Old Value Delay through Control Logic Old Value New Value Old Value
IFU中目标地址送PC,其他什么都不做(只要保证存储部 件不发生写的动作) 如何保证存储部件不发生写?
<11:15>
<0:15>
ALU
Mux
32
Mux
imm16
16
32
1
Data In32 Clk
ALUSrc = x
WrEn Adr Data Memory
32
1
ExtOp = x
Extender
15
0
M{R[rs] + SignExt[imm16]} ← R[rt]
Rd 1Mux 0 Rt RegWr = 0 5 5 Rs 5
32
RegDst = x
Branch = 0 Jump = 0 Rt Clk
busA
32 0 1 32
Instruction<31:0>
Instruction Fetch Unit <21:25> <16:20>
PC ← PC + 4
计算顺序执行时PC的值(每条指令一样)
5
Add / Sub操作开始时取指部件中的 动作
取指令: Instruction ← M[PC]
所有指令都相同
30
新指令未取出译码,控制信号值 还是原指令旧值 新指令还没执行,标志亦为旧值
Addr<31:2> Addr<1:0> “00” Instruction Memory 32
<21:25> <16:20> <11:15> <0:15> ALU Mux
0
R[rt] ← Data Memory {R[rs] + SignExt[imm16]}
Instruction<31:0> Branch = 0 Instruction Rd Rt Jump = 0 Fetch Unit RegDst = 0 Clk 1 Mux 0 ALUctr = Add Rs Rt Rd Imm16 Rt RegWr = 1 5 5 Rs 5 MemWr = 0 MemtoReg = 1 busA Rw Ra Rb Zero busW 32 32 32-bit 0 32 busB 32 0 Registers Clk
PC+4 PC
PC+4
ALUctr
RegWr busA, B busW
RegWr Rd Rs Rt
5 5 5
New Value Register File Access Time New Value Old Value ALU Delay Old Value New Value
ALUctr busA
4
ADD / SUB 指令
addrd, rs, rt
31 26 21 16 11 6 0
op
6 bits
rs
5 bits
rt
5 bits
rd
5 bits
shamt
5 bits
funct
6 bits
M[PC]
取指(每条指令一样)
R[rd] ← R[rs] + R[rt] 实际操作(每条指令可能不同)
32
busW
32
Clk
Rw Ra Rb 32 32-bit Registers
Register Write Occurs Here Result
ALU
busB
32
32ቤተ መጻሕፍቲ ባይዱ
9
ori 指令译码后的执行过程
R[rt] ← R[rs] or ZeroExt[Imm16]
31 26 21 16 op rs rt immediate 0
ALU
Rs Rt Rd Imm16 MemWr = 0 MemtoReg = x Zero
32 0
<21:25>
<16:20>
<11:15>
<0:15> Mux
Mux
imm16
16
32
Data In 32 Clk
WrEn Adr Data Memory
32
1
ExtOp = x
Extender
ALUSrc = 0
32
1
ExtOp = 1
Extender
ALUSrc = 1
12
Branch指令译码后的执行过程 31 26 21 16
op rs rt immediate
0
if (R[rs] - R[rt] == 0) then Zero ← 1 ; else Zero ← 0
Rd 1Mux 0
5
RegDst = x
13
Branch指令最后阶段取指部件中的动作 31 26 21 16
op rs rt immediate
0
if (Zero == 1) then PC = PC + 4 + SignExt[imm16]*4 ; else PC = PC + 4
30
PC<31:28> Target Instruction<25:0> 26 PC Clk imm16 Instruction<15:0> 16
Branch = 0 Instruction Rd Rt Jump = 0 Fetch Unit RegDst = 0 Clk 1Mux 0 ALUctr = Or Rs Rt Rd Imm16 Rt RegWr = 1 5 5 Rs 5 MemWr = 0 MemtoReg = 0 busA Rw Ra Rb Zero 32 busW 32 32-bit 0 busB 32 32 Registers 0 Clk <21:25> <16:20>
计算机原理
第六章 中央处理器
本讲简要说明
目的与要求:掌握单周期控制器的设计
授课重点:单周期控制器的设计
授课难点:如何设计单周期控制器
参考章节:《Computer Organization and Design》第5章第4节
2
主要内容
考察每条指令在数据通路中的执行过程和涉及到的 控制信号取值
30
4 26
30
1 Mux 0
Addr<31:2> Addr<1:0> “00” Instruction Memory
PC ← PC + 4
除 Branch and Jump以外的指令都相同
30 Addr<31:2> Addr<1:0>
PC<31:28> Target Instruction<25:0> 26 PC Clk imm16
16 30 4
30
30 0 1
“00” Instruction Memory
32
3
The Big Picture: Where are We Now?
The Five Classic Components of a Computer
Processor
Control Memory Input
Datapath
Output
下一个目标:设计单周期数据通路的控制器 设计方法
(1)根据每条指令功能,分析控制信号取值,并在表中列出 (2)根据列出的指令和控制信号关系,写出每个控制信号的 逻辑表达式
t
0 funct
Branch = 0 Instruction Rd Rt Jump = 0 Fetch Unit RegDst = 1 Clk 1 Mux0 Rs Rt ALUctr = Add Rs Rt Rd Imm16 RegWr = 1 5 5 5 or Sub MemWr = 0 MemtoReg = 0 busA Rw Ra Rb 32 busW Zero 32 32-bit 0 32 busB 32 0 Clk Registers
Mux
0
Adder
30
Mux
“ 1”
Adder
30
1
Jump = 0 Instruction<31:0>
30
Instruction<15:0>
Branch = 0 Zero = x
因为新的控制信号保证 了正确的PC值产生,在 足够长的时间后,下个 时钟Clk到来!
8
SignExt
Register-Register(R型指令) Timing
Branch = 1 Jump = 0 Rt Clk
Rs Rt
5
Instruction<31:0>
Instruction Fetch Unit ALUctr = Sub
32 0 1
RegWr = 0 5
busW Clk
32
Rw Ra Rb 32 32-bit busB Registers
32
busA
公共操作:取指令和计算下址PC R-Type指令(add / sub) 立即数指令 (ori) 访存指令(lw / sw) 分支指令 (beq) 跳转指令 (j)
汇总各指令的控制信号取值
两类控制信号:直接送往数据通路 / 送往局部控制单元
分析ALU操作对应的控制信号与func字段间的关系 设计ALU局部控制单元 设计主控制单元
Clk PC Old Value Rs, Rt, Rd, Op, Func Clk-to-Q New Value Instruction Memory Access Time New Value Old Value Delay through Control Logic Old Value New Value Old Value
IFU中目标地址送PC,其他什么都不做(只要保证存储部 件不发生写的动作) 如何保证存储部件不发生写?
<11:15>
<0:15>
ALU
Mux
32
Mux
imm16
16
32
1
Data In32 Clk
ALUSrc = x
WrEn Adr Data Memory
32
1
ExtOp = x
Extender
15
0
M{R[rs] + SignExt[imm16]} ← R[rt]
Rd 1Mux 0 Rt RegWr = 0 5 5 Rs 5
32
RegDst = x
Branch = 0 Jump = 0 Rt Clk
busA
32 0 1 32
Instruction<31:0>
Instruction Fetch Unit <21:25> <16:20>
PC ← PC + 4
计算顺序执行时PC的值(每条指令一样)
5
Add / Sub操作开始时取指部件中的 动作
取指令: Instruction ← M[PC]
所有指令都相同
30
新指令未取出译码,控制信号值 还是原指令旧值 新指令还没执行,标志亦为旧值
Addr<31:2> Addr<1:0> “00” Instruction Memory 32
<21:25> <16:20> <11:15> <0:15> ALU Mux
合集下载
计算机组成原理课件第六章中央处理器6.1
• 存储器数据寄存器MDR是CPU和主存及外部设备之间信 息传送的中转站。当通过数据总线向存储器或外部设备存 取数据时,数据暂时存放在MDR中,因此也称为数据缓 冲器。
6.1.2中央处理器的基本结构
• 主存储器中存放数据和指令。 • CPU要从主存读取数据或指令,则必须给出该数据的主存单元地址到
MAR中,并向存储器发送读操作信号,然后等待数据从主存读出并存 放到存储器总线的数据总线上。CPU读主存储器时发出的读信号定义 为RM。 • CPU要向主存写入数据,则必须给出主存单元地址到MAR中,然后 通过存储器地址总线选中要访问的单元,同时把数据送到存储器数据 寄存器MDR中,再送到存储器数据总线,最后向存储器发送写操作信 号,然后等待数据写入到主存单元中。CPU写主存储器时发出的写信 号定义为WM。 • 主存储器完成读写操作会向CPU发送存储器操作完成信号MFC (Memory Function Completed)。
• (4)异常和中断处理 – 计算机出现某些异常情况,如算术运算溢出等,或者某些外部设 备发出“中断请求”信号,那么在执行完当前指令后,CPU要停 止当前的程序,转去处理这些异常的中断服务程序。当处理完毕 后,再返回原程序继续运行。
• 计算机中控制器就这样周而复始地取指令、分析指令、执行指令,再 取指令、再分析指令、再执行指令……直到程序结束或出现外来的干 预为止。
• 主存储器外部有地址总线 和数据总线。
• CPU内部各模块通过一条 公共总线相连,是内部总 线。
• 存储器总线经由存储器数 据寄存器MDR和存储器地 址寄存器MAR连到CPU内 部数据总线。
6.1.2中央处理器的基本结构
• 存储器地址寄存器MAR用来保存当前CPU所访问的内存 单元地址。由于CPU和内存之间有速度差异,所以必须使 用地址寄存器来保存地址信息,直到内存读写操作完成。
6.1.2中央处理器的基本结构
• 主存储器中存放数据和指令。 • CPU要从主存读取数据或指令,则必须给出该数据的主存单元地址到
MAR中,并向存储器发送读操作信号,然后等待数据从主存读出并存 放到存储器总线的数据总线上。CPU读主存储器时发出的读信号定义 为RM。 • CPU要向主存写入数据,则必须给出主存单元地址到MAR中,然后 通过存储器地址总线选中要访问的单元,同时把数据送到存储器数据 寄存器MDR中,再送到存储器数据总线,最后向存储器发送写操作信 号,然后等待数据写入到主存单元中。CPU写主存储器时发出的写信 号定义为WM。 • 主存储器完成读写操作会向CPU发送存储器操作完成信号MFC (Memory Function Completed)。
• (4)异常和中断处理 – 计算机出现某些异常情况,如算术运算溢出等,或者某些外部设 备发出“中断请求”信号,那么在执行完当前指令后,CPU要停 止当前的程序,转去处理这些异常的中断服务程序。当处理完毕 后,再返回原程序继续运行。
• 计算机中控制器就这样周而复始地取指令、分析指令、执行指令,再 取指令、再分析指令、再执行指令……直到程序结束或出现外来的干 预为止。
• 主存储器外部有地址总线 和数据总线。
• CPU内部各模块通过一条 公共总线相连,是内部总 线。
• 存储器总线经由存储器数 据寄存器MDR和存储器地 址寄存器MAR连到CPU内 部数据总线。
6.1.2中央处理器的基本结构
• 存储器地址寄存器MAR用来保存当前CPU所访问的内存 单元地址。由于CPU和内存之间有速度差异,所以必须使 用地址寄存器来保存地址信息,直到内存读写操作完成。
第6章 中央处理器
CS&T Information Course
6.1CPU的结构和功能 的结构和功能——时序控制系统 的结构和功能 时序控制系统
• 控制方式
CS&T Information Course
6.1CPU的结构和功能 的结构和功能——时序控制系统 的结构和功能 时序控制系统
• 基本概念
CS&T Information Course
– 微指令周期 = 读微指令时间 + 执行微指令时间 = CPU周期
• 机器指令与微指令的关系
– 一条机器指令 = 一个微程序 = 若干条微指令序列 – 机器指令与内存有关,微指令与控制存储器(CM) 有关 – 每一个CPU周期对应一条微指令
CS&T Information Course
6.3微程序控制器 微程序控制器——微程序控制器的原理 微程序控制器 微程序控制器的原理
• 中断的提出:解决高速CPU与低速外设交换信息时的速 度不匹配问题,提高CPU的工作效率。 • 中断的概念:中断是指CPU在执行主程序的过程中,由 于计算机系统的外部某种原因,或计算机的一些异常事 故及其它的内部原因,有必要尽快终止主程序的执行, 转而为该外部事件或内部原因服务,执行相应的处理程 序,待处理完毕后,又返回继续执行被终止的主程序。 • 中断与调用子程序的区别
CS&T Information Course
6.3微程序控制器 微程序控制器——微指令结构 微程序控制器 微指令结构
• 微指令的控制字段
– 水平型微指令 – 垂直型微指令
… 译码 字段1 … 译码 字段2
…… 操作控制字段 直接表示法 … 译码 …… 字段n 编码表示法 … 译码 字段1 … 译码 … 字段2 …… 字段n 混合表示法 顺序控制字段 顺序控制字段 顺序控制字段
第06章中央处理器
46 46
本讲稿第四十六页,共七十五页
4.常数源字段E
在微指令中,一般设有一个常数源字段 E。E字段一般仅有几位,用来给某些部件 发送常数。该常数有时作为操作数送入微指 令ALU运算;有时作为计算器初值,用来控 制微程序的循环次数等。
7
本讲稿第七页,共七十五页
6.1.2 控制器的基本组成
1.程序计数器(PC) 即指令地址寄存器。在某些计算机中用
来存放当前正在执行的指令地址;而在另一 些计算机中则用来存放即将要执行的下一条 指令地址;而在有指令预取功能的计算机中, 一般还需要增加一个程序计数器用来存放下 一条要取出的指令地址。
8
14 14
本讲稿第十四页,共七十五页
控制器的时序系统
2.节拍电位和工作脉冲 一个机器周期内要完成若干个微操作,
这些微操作有的可以同时进行,有的则按先 后次序串行执行。每个微操作都需要一定的 时间,因此需要将一个机器周期分为若干相 等的时间段,每一个时间段称为一个节拍。 一般节拍用一个电平信号宽度表示,称为一 个节拍电位。
CISC机几乎不可能采用硬布线控制。 RISC机为了追求高速度,一般采用硬布线 控制。
19 19
本讲稿第十九页,共七十五页
2. 微程序控制器
微程序控制器用软件方法产生和组织微 操作控制信号,用存储逻辑控制取代组合逻 辑控制。它是将指令用微指令编制成微程序 存放在控制存储器中。
20 20
本讲稿第二十页,共七十五页
制信号的控制下完成。控制器必须具备将机 器指令转换为微操作控制信号序列,并进行 相应操作控制的功能。控制器的操作控制功 能就是实现指令的正确执行。
4
本讲稿第四页,共七十五页
控制器的功能
2.指令顺序控制功能 控制器必须具备能够控制程序的执行顺
本讲稿第四十六页,共七十五页
4.常数源字段E
在微指令中,一般设有一个常数源字段 E。E字段一般仅有几位,用来给某些部件 发送常数。该常数有时作为操作数送入微指 令ALU运算;有时作为计算器初值,用来控 制微程序的循环次数等。
7
本讲稿第七页,共七十五页
6.1.2 控制器的基本组成
1.程序计数器(PC) 即指令地址寄存器。在某些计算机中用
来存放当前正在执行的指令地址;而在另一 些计算机中则用来存放即将要执行的下一条 指令地址;而在有指令预取功能的计算机中, 一般还需要增加一个程序计数器用来存放下 一条要取出的指令地址。
8
14 14
本讲稿第十四页,共七十五页
控制器的时序系统
2.节拍电位和工作脉冲 一个机器周期内要完成若干个微操作,
这些微操作有的可以同时进行,有的则按先 后次序串行执行。每个微操作都需要一定的 时间,因此需要将一个机器周期分为若干相 等的时间段,每一个时间段称为一个节拍。 一般节拍用一个电平信号宽度表示,称为一 个节拍电位。
CISC机几乎不可能采用硬布线控制。 RISC机为了追求高速度,一般采用硬布线 控制。
19 19
本讲稿第十九页,共七十五页
2. 微程序控制器
微程序控制器用软件方法产生和组织微 操作控制信号,用存储逻辑控制取代组合逻 辑控制。它是将指令用微指令编制成微程序 存放在控制存储器中。
20 20
本讲稿第二十页,共七十五页
制信号的控制下完成。控制器必须具备将机 器指令转换为微操作控制信号序列,并进行 相应操作控制的功能。控制器的操作控制功 能就是实现指令的正确执行。
4
本讲稿第四页,共七十五页
控制器的功能
2.指令顺序控制功能 控制器必须具备能够控制程序的执行顺
计算机组成原理课件(第6章__中央处理器)
微程序控制和组合逻辑控制是微命令产生 的两种方式。组合逻辑控制方式是用许多 门电路来产生微命令,而这些门电路所需 的逻辑电路形态很不标准,因而组合逻辑 控制器设计起来很复杂、设计效率低、检 查调试也困难,而且一旦完成设计后是用 印制电路板固定下来,很难再修改与扩展。 微程序控制器改进了组合逻辑控制方式这 些缺点。
4D)是程序控制指令, 指令周期需要两个CPU周期,取指令阶段一 个CPU周期,执行指令阶段一个CPU周期。 操作是:D→PC 第一个CPU周期,即取指令周期,操作 过程与CLA指令相同。 第二个 CPU 周期,把转移地址送程序计 数器(PC)。
6.4 微程序控制器
•理解CPU的功能; •了解CPU的基本组成; •掌握两种时序控制方式; •理解指令周期的基本概念; •掌握微程序控制器的基本概念及组成原理; •了解当前最先进的CPU技术。
第6 章
中央处理器
计算机硬件由控制器、运算器、存储器、 输入设备和输出设备五部分组成。随着集成 电路的出现及其集成度的提高,设计者将控 制器和运算器集成在一片集成电路上,称作 微处理器,通常称之为中央处理部件CPU。 CPU是计算机的核心部件。本章介绍CPU的功 能和基本组成,指令周期的概念,微程序控 制器及当前最先进的CPU技术。
1.非访内指令的指令周期
清累加器指令(CLA)是非访内指令,需 要两个CPU周期,取指令阶段一个CPU 周期,执行指令阶段一个CPU周期。 操作是:0→A 第一个CPU周期,即取指令周期。 第二个 CPU 周期,即执行指令周期。
2.直接访内指令的指令周期
加法指令(ADD,D)是直接访内指令,需要 三个CPU周期,取指令阶段一个CPU周期, 执行指令阶段两个CPU周期。 操作是:A十(D)→A 第一个CPU周期,即取指令周期,操作 过程与CLA指令相同。 第二个CPU周期,将操作数的地址送往 地址寄存器并完成地址译码。 第三个 CPU 周期,从内存取出操作数并 执行相加操作。
4D)是程序控制指令, 指令周期需要两个CPU周期,取指令阶段一 个CPU周期,执行指令阶段一个CPU周期。 操作是:D→PC 第一个CPU周期,即取指令周期,操作 过程与CLA指令相同。 第二个 CPU 周期,把转移地址送程序计 数器(PC)。
6.4 微程序控制器
•理解CPU的功能; •了解CPU的基本组成; •掌握两种时序控制方式; •理解指令周期的基本概念; •掌握微程序控制器的基本概念及组成原理; •了解当前最先进的CPU技术。
第6 章
中央处理器
计算机硬件由控制器、运算器、存储器、 输入设备和输出设备五部分组成。随着集成 电路的出现及其集成度的提高,设计者将控 制器和运算器集成在一片集成电路上,称作 微处理器,通常称之为中央处理部件CPU。 CPU是计算机的核心部件。本章介绍CPU的功 能和基本组成,指令周期的概念,微程序控 制器及当前最先进的CPU技术。
1.非访内指令的指令周期
清累加器指令(CLA)是非访内指令,需 要两个CPU周期,取指令阶段一个CPU 周期,执行指令阶段一个CPU周期。 操作是:0→A 第一个CPU周期,即取指令周期。 第二个 CPU 周期,即执行指令周期。
2.直接访内指令的指令周期
加法指令(ADD,D)是直接访内指令,需要 三个CPU周期,取指令阶段一个CPU周期, 执行指令阶段两个CPU周期。 操作是:A十(D)→A 第一个CPU周期,即取指令周期,操作 过程与CLA指令相同。 第二个CPU周期,将操作数的地址送往 地址寄存器并完成地址译码。 第三个 CPU 周期,从内存取出操作数并 执行相加操作。
计算机组成与结构PPT课件全第6章中央处理器
7
片外缓存 即L2 Cache。集成在CPU核心外。 容量比L1 Cache大。由于L1级高速缓存容
量的限制,为了再次提高CPU的运算速 度,在CPU核外部设置一高速存储器。
8
外部缓存 即L3 Cache。由于L1级高速缓存容量的限制,为
了再次提高CPU的运算速度,在CPU外部(主板) 放置一高速存储器,即三级缓存。工作主频比较灵 活,可与CPU同频,也可不同。CPU在读取数据时, 先在L1中寻找,再从L2寻找,然后是L3,再是内 存,最后是外存储器。所以L3对系统的影响也不容忽 视。
35
(4)指令执行步骤标记线路 指明每条指令的执行步骤。
36
控制器的分类
微程序控制器 硬布线控制器
37
微程序控制器
38
硬布线控制器
39
补充:CPU主要的寄存器
① DR — 临时存放一条指令或一个数据字 ② IR — 存放当前正在执行的一条指令 ③ PC — 存放下一条要执行的指令的地址 ④ AR — 保存当前CPU所访问的内存单元
条 指
不同指令的操作内容差异很大
令
检查有无中断请求 公共操作
的
有则响应中断,转入中断处理程序
地 址
无则执行下条指令
27
控制器的具体功能
1、取指令 当程序已经在存储器中时,首先从程序入
口取第一条指令,并发出指令地址及控制信号。 2、分析指令
对取得的指令进行分析,指出它要 求做什么操作,并产生相应的控制命令。 如果需要的操作数在存储器中,还要形成 操作数地址。
此工作由中断控制器实现。
20
(8)准备好(ready)逻辑 当微处理器与存储器交换数据时, 由于双方速度不一致,有时微处理器需 要等待, ready信号是由存储器发向微处 理器的,表示操作已经完成。
片外缓存 即L2 Cache。集成在CPU核心外。 容量比L1 Cache大。由于L1级高速缓存容
量的限制,为了再次提高CPU的运算速 度,在CPU核外部设置一高速存储器。
8
外部缓存 即L3 Cache。由于L1级高速缓存容量的限制,为
了再次提高CPU的运算速度,在CPU外部(主板) 放置一高速存储器,即三级缓存。工作主频比较灵 活,可与CPU同频,也可不同。CPU在读取数据时, 先在L1中寻找,再从L2寻找,然后是L3,再是内 存,最后是外存储器。所以L3对系统的影响也不容忽 视。
35
(4)指令执行步骤标记线路 指明每条指令的执行步骤。
36
控制器的分类
微程序控制器 硬布线控制器
37
微程序控制器
38
硬布线控制器
39
补充:CPU主要的寄存器
① DR — 临时存放一条指令或一个数据字 ② IR — 存放当前正在执行的一条指令 ③ PC — 存放下一条要执行的指令的地址 ④ AR — 保存当前CPU所访问的内存单元
条 指
不同指令的操作内容差异很大
令
检查有无中断请求 公共操作
的
有则响应中断,转入中断处理程序
地 址
无则执行下条指令
27
控制器的具体功能
1、取指令 当程序已经在存储器中时,首先从程序入
口取第一条指令,并发出指令地址及控制信号。 2、分析指令
对取得的指令进行分析,指出它要 求做什么操作,并产生相应的控制命令。 如果需要的操作数在存储器中,还要形成 操作数地址。
此工作由中断控制器实现。
20
(8)准备好(ready)逻辑 当微处理器与存储器交换数据时, 由于双方速度不一致,有时微处理器需 要等待, ready信号是由存储器发向微处 理器的,表示操作已经完成。
2-第六章 中央处理器武大计算机课件考研
IFU中目标地址送PC,其他什么都不做(只要保证存储部 件不发生写的动作) 如何保证存储部件不发生写?
<11:15>
<0:15>
ALU
Mux
32
Mux
imm16
16
32
1
Data In32 Clk
ALUSrc = x
WrEn Adr Data Memory
32
1
ExtOp = x
Extender
15
4
ADD / SUB 指令
addrd, rs, rt
31 26 21 16 11 6 0
op
6 bits
rs
5 bits
rt
5 bits
rd
5 bits
shamt
5 bits
funct
6 bits
M[PC]
取指(每条指令一样)
R[rd] ← R[rs] + R[rt] 实际操作(每条指令可能不同)
设计单周期数据通路的控制器设计方法1根据每条指令功能分析控制信号取值并在表中列出2根据列出的指令和控制信号关系写出每个控制信号的逻辑表达式subaddrdrsrtmpc取指每条指令一样rrdrrsrrt实际操作每条指令可能不同pcpc计算顺序执行时pc的值每条指令一样oprsrtrdshamtfunct1116212631sub30303016imm163030branchpreviouszeroprevious00addr31
32
1
ExtOp = 1
Extender
ALUSrc = 1
12
Branch指令译码后的执行过程 31 26 21 16
op rs rt immediate
计算机组成原理第六章CPU的结构和功能
中央处理器
指令周期
中断周期
中央处理器
指令周期
中央处理器
下面以一个简单的程序来具体认识每一条指令的指 令周期和执行过程。
内存地址 020
021 022 023 024
内存内容 250 000
030 030 021 040 000 000 140 021
助记符 CLA
ADD 30 STA 40 NOP
指令周期
T周期
中央处理器
T1
T2
T3
T4
CPU周期 〔取指令〕
CPU周期 〔执行指令 〕 指令周期
指令周期
中央处理器
指令周期
中央处理器
指令周期
取指周期
中央处理器
指令周期
间址周期
中央处理器
指令周期
执行周期 许多类型 主要是涉及到处理器内部的存放器 可能的操作有 数据传输 ALU 控制指令的处理
~
NO P
~
指令周期
中央处理器
小结: 各类信息的传送路径 指令:M-----DR-----DBUS-----IR 地址:PC----ABUS----AR-----〔取决于寻址方式〕 数据: 存放器----存放器 总线直接传送 存放器----存储器 Ri----DBUS----DR-----M 存储器----存放器 M----DR-----BUS-----Ri
ALU
累加器AC
+1
取指 控制
操作控制器 时序产生器
执行 控制
时钟
状态 反响
c
指令译码器
c
20 CLA 21 ADD 30 22 STA 40 23 NOP 24 JMP 21
30 000 006 31 40
第6章 中央处理器
取出操 作数
执行指令阶段
计算机学院
取出并执行ADD指令
CPU
状态条件寄存器 算术逻辑单元 0+6=6 ALU 取指 控制 操作控制器 时序产生器 累加器AC 程序计数器PC 000 006 执行 控制 时钟 状态 反馈
c
指令译码器
000 022 021
+1 c
20 21 22 23 24 30 31 40 CLA ADD 30 STA 40 NOP JMP 21 000 006
执行 控制 时钟 状态 反馈
累加器AC 程序计数器PC 000 023 022
c
指令译码器
+1 c
20 21 22 23 24 30 CLA ADD 30 STA 40 NOP JMP 21 000 006
STA 000 STA 006
40 指令寄存 器IR
c
000 000022 040 地址寄存器AR
CLA CLA
c
指令寄存器IR
000 020 地址寄存器AR
c
缓冲寄存器DR
地址总线ABUS
数据总线DBUS
计算机学院
6.2 控制器的组成
(2)
ADD指令的指令周期
一个机器周期 一个机器周期 一个机器周期 开始
取指令 PC+1
执行加 操作
取下条指 令PC+1
对指令 译码 取指令阶段
送操作 数地址
计算机学院
6.2 控制器的组成
【例如】一段简单的汇编源程序如下所示,分析其执行过程。
CLA ;累加器清0 ADD 30 ;(AC)+(30)→AC STA 40 ;(AC)→(40) NOP ; 空操作 JMP 21 ; 21 → PC … 030 000 006 ; 数据 … 040 存和数 ; 数据 指令的执行过程如下:
计算机组成原理第六章中央处理器PPT课件
数据总线
图 6- 10 执 行 CLA 指 令
2009.7.2
计算机组成原理
7
在此阶段,CPU的动作如下:
(1)操作控制器送CLA相应的控制信号给算术逻 辑单元ALU;
(2)ALU响应该信号,将累加寄存器AC内容全 部清零,从而执行了CLA指令。
2009.7.2
计算机组成原理
8
5.3.3 访存(ADD)指令周期
2009.7.2
计算机组成原理
16
(3)微周期:从控制存储器读取一条微指令并执 行相应的一步操作所需的时间称为微周期或微指令周 期。通常一个时钟周期为一个微周期。
(4)微指令:从展开的角度来讲,每个微周期的 操作所需的微命令(全部或大部分)组成一条微指令。 从控制存储器的组织角度讲,每个单元存放一条微指 令。图6-16所示为微指令格式的例子。
开始
取指令 PC+1 指令译码
执行指令
第一个CPU周期 取指与译码
第二个CPU周期 执行指令
图6-8 CLA指令的指令周期
取下一条指令
2009.7.2
计算机组成原理
4
在第一个CPU周期,即取指令阶段,CPU完成三 件事:
(1)从内存取出指令; (2)程序计数器PC加1,以便为取下一条指令做 好准备;
程序的第二条指令是“ADD 40”指令,这是一条 直接访问内存的指令。执行这条指令需完成三个CPU周期,如 图6-11所示。
开始
取指令 PC+1 指令译码
地址译码 送操作数地址
取出操作数 执行操作
第一个CPU周期 取指与译码
第二个CPU周期 第三个CPU周期 执行指令
图6-11 ADD指令的指令周期Leabharlann CLA操作控制器 时序发生器
第6章 中央处理器
第6章 中央处理器
23
六、JMP的指令周期
一个CPU周期 一个CPU周期 一个CPU周期
开 始 取指令 PC+1
取下条指 令,PC+1
对指令 译码
送转移 地址
取指周期
执行周期 图6-9 JMP的指令周期
第6章 中央处理器
24
• 取指阶段操作与前几条指令相同
• 执行阶段CPU将IR中地址码部分(21)送往 PC,替换原先的值25,这样下一条指令从 内存单元21读出
–指挥并控制各部件之间的数据流动方向。
• 运算器的主要由ALU、Acc、DR和PSWR组成:
–执行所有的算术运算; –执行所有的逻
ALU
CU
PSWR
AC
ID
+1
PC DR AR
主 存 I/O
第6章 中央处理器
图6-1 CPU的模型
„
IR
10
CPU
四、操作控制器与时序产生器
第6章 中央处理器
21
五、NOP(空指令)的指令周期
一个CPU周期 一个CPU周期 一个CPU周期
开 始 取指令 PC+1
取下条指 令,PC+1
对指令 译码
空操作
取指周期
执行周期 图6-8 NOP的指令周期
第6章 中央处理器
22
• 取指阶段同CLA、ADD、STA指令 • 执行阶段根据指令译码结果为空操作,不 做任何操作,控制器不发出任何控制信号
– 存储程序思想
• 负责完成取指令、执行指令工作的部件就是 CPU
第6章 中央处理器
3
• CPU的四个基本功能:
–指令控制:控制指令执行的顺序
