第五章 控制器
This presentation is the property of its rightful owner.
Sponsored Links
1 / 69

第五章 控制器 PowerPoint PPT Presentation


  • 37 Views
  • Uploaded on
  • Presentation posted in: General

第五章 控制器. 第一节 基本概念 第二节 指令的执行过程 第三节 硬连线控制器 第四节 微程序控制器 第五节 阵列逻辑控制器. 第五节 阵列逻辑控制器. CPU 的基本构成: 控制器,运算器,寄存器( cache, 指令缓存) 寄存器的类型: 指令寄存器( IP) 程序计数器( PC) 数据寄存器( DR) 地址寄存器( AR) 状态寄存器( SR) 数据通路: 数据总线(单总线,双总线,多总线) 专用通路(如 MIPS). 数据总线结构. 控制信号: R1out:R1 的输出控制 R1in: R1 的输入控制 Yin: Y 的输入控制

Download Presentation

第五章 控制器

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


6087343

第五章 控制器

第一节 基本概念

第二节 指令的执行过程

第三节 硬连线控制器

第四节 微程序控制器

第五节 阵列逻辑控制器


6087343

第五节 阵列逻辑控制器

  • CPU的基本构成:

    • 控制器,运算器,寄存器(cache,指令缓存)

  • 寄存器的类型:

    • 指令寄存器(IP)

    • 程序计数器(PC)

    • 数据寄存器(DR)

    • 地址寄存器(AR)

    • 状态寄存器(SR)

  • 数据通路:

    • 数据总线(单总线,双总线,多总线)

    • 专用通路(如MIPS)


6087343

数据总线结构

控制信号:

R1out:R1的输出控制

R1in: R1的输入控制

Yin: Y的输入控制

IRin: IR的输入控制

IRout: IR的输出控制

PCin: PC的输入控制

PCout: PC的输出控制

PC+1: PC计数更新控制

ADD: ALU加法操作控制


6087343

专用通路结构


6087343

专用通路结构

控制信号:

MemRead存储器读

MemWrite存储器写

ALUOp运算操作码

ALUSrcALU数据选择

PCWritePC写

PCSourcePC输入选择

RegWrite数据寄存器写

MemtoReg写数据选择

RegDst写寄存器选择

Irwrite指令寄存器

Jump选择转移地址


6087343

一些基本概念

  • 三种生成控制信号方式

    • 硬连线

    • 微程序

    • 阵列逻辑

  • 指令周期,机器周期与时钟周期


6087343

第二节 指令的执行过程一、运算指令的执行过程

  • 专用通路结构:如add $1, $2, $3

  • (1) 取指令。IR = Memory[PC]

    • PC = PC + 4


6087343

一、运算指令的执行过程

  • 专用通路结构:如add $1, $2, $3

  • (2) 指令译码及读取操作数。A = R[IR[25:21]]

  • B = R[IR[20:16]]


6087343

一、运算指令的执行过程

  • 专用通路结构:如add $1, $2, $3

  • (3) 执行。ALUoutput = A + B


6087343

一、运算指令的执行过程

  • 专用通路结构:如add $1, $2, $3

  • (4) 写回。R[IR[15:11]] = ALUoutput


6087343

一、运算指令的执行过程

单总线结构:

  • 如ADD R3, R1, R2

    (1) PC→MAR

    (2) PC+1→PC


6087343

一、运算指令的执行过程

单总线结构:

  • 如ADD R3, R1, R2

    (1) PC→MAR

    (2) PC+1→PC

    (3) DBUS→MDR

    (4) MDR→IR


6087343

一、运算指令的执行过程

单总线结构:

  • 如ADD R3, R1, R2

    (1) PC→MAR

    (2) PC+1→PC

    (3) DBUS→MDR

    (4) MDR→IR

    (5) R1→Y


6087343

一、运算指令的执行过程

单总线结构:

  • 如ADD R3, R1, R2

    (1) PC→MAR

    (2) PC+1→PC

    (3) DBUS→MDR

    (4) MDR→IR

    (5) R1→Y

    (6) R2 + Y→Z


6087343

一、运算指令的执行过程

单总线结构:

  • 如ADD R3, R1, R2

    (1) PC→MAR

    (2) PC+1→PC

    (3) DBUS→MDR

    (4) MDR→IR

    (5) R1→Y

    (6) R2 + Y→Z

    (7) Z→R3


6087343

二、访存指令的执行过程

专用通路结构 读操作:如lw $1, off($2)

(1) 取指令。IR = Memory[PC] PC = PC+4


6087343

二、访存指令的执行过程

专用通路结构 读操作:如lw $1, off($2)

  • (2) 指令译码。A = R[IR[25:21]]


6087343

二、访存指令的执行过程

专用通路结构 读操作:如lw $1, off($2)

(3) 计算地址。ALUoutput = A + Sign-extend(IR[15:0])


6087343

二、访存指令的执行过程

专用通路结构 读操作:如lw $1, off($2)

(4) 访存。Memory-data = Memory[ALUoutput]


6087343

二、访存指令的执行过程

专用通路结构 读操作:如lw $1, off($2)

(5) 写回。R[IR[20:16]] = Memory-data


6087343

二、访存指令的执行过程

  • 专用通路结构 写操作:如Store $1,offs($2)

  • (1) IR = Memory[PC] PC = PC + 4


6087343

二、访存指令的执行过程

  • 专用通路结构 写操作:如Store $1,offs($2)

  • (2) A = R[IR[25:21]]

  • B = R[IR[20:16]]


6087343

二、访存指令的执行过程

  • 专用通路结构 写操作:如Store $1,offs($2)

  • (3) ALUoutput = A + Sign-extend(IR[15:0])


6087343

二、访存指令的执行过程

  • 专用通路结构 写操作:如Store $1,offs($2)

  • (4) Memory[ALUoutput] = B


6087343

二、访存指令的执行过程

单总线结构:

读操作:如LOAD R1,mem

(1) PC→MAR

(2) PC+1→PC


6087343

二、访存指令的执行过程

单总线结构:

读操作:如LOAD R1,mem

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR


6087343

二、访存指令的执行过程

单总线结构:

读操作:如LOAD R1,mem

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) IR(地址段)→MAR,读存储器


6087343

二、访存指令的执行过程

单总线结构:

读操作:如LOAD R1,mem

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) IR(地址段)→MAR,读存储器

(6) DBUS→MDR

(7) MDR→R1


6087343

二、访存指令的执行过程

单总线结构:

写操作:如STORE R1,mem

(1) PC→MAR

(2) PC+1→PC


6087343

二、访存指令的执行过程

单总线结构:

写操作:如STORE R1,mem

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR


6087343

二、访存指令的执行过程

单总线结构:

写操作:如STORE R1,mem

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) IR(地址段)→MAR


6087343

二、访存指令的执行过程

单总线结构:

写操作:如STORE R1,mem

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) IR(地址段)→MAR

(6) R1→MDR,写存储器


6087343

三、控制指令的执行过程

专用通路结构 如无条件转移指令操作: J Target

(1) IR = Memory[PC]


6087343

三、控制指令的执行过程

  • 专用通路结构 如无条件转移指令操作: J Target

  • PC = (IR[25:0] << 2) | PC+4[31:28]


6087343

三、控制指令的执行过程

单总线结构:如BR offs

(1) PC→MAR

(2) PC+1→PC


6087343

三、控制指令的执行过程

单总线结构:如BR offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR


6087343

三、控制指令的执行过程

单总线结构:如BR offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

  • (5) PC→Y


6087343

三、控制指令的执行过程

单总线结构:如BR offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) PC→Y

  • (6) Y + IR(地址段)→Z


6087343

三、控制指令的执行过程

单总线结构:如BR offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) PC→Y

(6) Y + IR(地址段)→Z

  • (7) Z→PC


6087343

三、控制指令的执行过程

  • 条件转移指令操作,有条件地修改PC

  • 方式:条件码,条件寄存器,比较与转移

  • 专用通路结构:如beq $1,$2,offs

  • (1) IR = Memory[PC]

  • PC = PC + 4


6087343

三、控制指令的执行过程

专用通路结构:如beq $1,$2,offs

(2) A = R[IR[25:21]]

B = R[IR[20:16]]

Target = PC + (Sign-extend(IR[15:0]) << 2)


6087343

三、控制指令的执行过程

专用通路结构:如beq $1,$2,offs

  • (3) if(A == B) PC = Target


6087343

三、控制指令的执行过程

单总线结构:BNE offs

(1) PC→MAR

(2) PC+1→PC


6087343

三、控制指令的执行过程

单总线结构:BNE offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR


6087343

三、控制指令的执行过程

单总线结构:BNE offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) if(!Z) PC→Y; else goto END


6087343

三、控制指令的执行过程

单总线结构:BNE offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) if(!Z) PC→Y; else goto END

(6) Y + IR(地址段)→Z


6087343

三、控制指令的执行过程

单总线结构:BNE offs

(1) PC→MAR

(2) PC+1→PC

(3) DBUS→MDR

(4) MDR→IR

(5) if(!Z) PC→Y; else goto END

(6) Y + IR(地址段)→Z

(7) Z→PC

  • 习题:3,4


6087343

第三节 硬连线控制器一、指令周期流程


Add r3 r1 r2

控制信号:如ADD R3, R1, R2

T1: PCout, MemRead, PC+1, MARin;PCMAR, PC+1PC

T2: MDRout, IRin;MDRIR

addT3: R1out, Yin;R1Y

addT4: R2out, ADD, Zin;R2+YZ

addT5: Zout, R3in;ZR3


6087343

二、硬连线控制器


6087343

二、硬连线控制器(续)

条件码如算术运算的异常、内部中断等。

编码器电路的一般逻辑表达形式是:

C = T1*(INS1 + INS2 + …) + T2*(INS1 + INS2 + …) + …

固定时钟信号环形脉冲发生器:指令执行的时钟数固定。

可变长度时钟信号环形脉冲发生器:指令执行的时钟数不固定。

实现方法:用END信号,如

END = T5*ADD + T3*CLA + …


6087343

习题:8

  • 步骤

    • (1) 先画出控制器逻辑图。

    • (2) 列出各指令的各操作过程所需的控制信号。

    • (3) 写出控制信号及其逻辑表达式。


6087343

第四节 微程序控制器

  • 一、微程序和微指令

  • 基本概念:控制字,微指令,微程序,微操作,控制存储器,微地址

  • 微程序控制方法:把指令执行所需要的所有控制信号存放在控制存储器中,需要时从这个存储器中读取。

  • 微指令的构成:操作控制部分,顺序控制部分

  • 微程序控制的特点:灵活性好,速度慢


6087343

二、微程序控制器原理


6087343

三、微程序设计技术

1. 微指令编码

控制字编码

微操作的相容性和相斥性

(1) 直接表示法

(2) 编码表示法

(3) 混合表示法


2 1 m pc

2. 微地址的形成方法(1) 计数器方式——增量方式,用mPC。


6087343

2. 微地址的形成方法(2) 断定方式


6087343

2. 微地址的形成方法(3) 结合方式


6087343

多路分支方法:使得微指令中不同的分支微地址中有若干位与条件代码相同,从而可免去微地址编码电路。

例. 试为各微指令分配适当的地址,并给出每条微指令的转移地址字段(即下址字段)BAF和实现“位选择”功能的转移控制字段BCF。


6087343

答:(一)

  • B的两个后继状态C和E的微地址只有1位不同,这一位可以根据转移条件IR3来设置。


6087343

答:(二)

  • 微指令的BCF中用最低位表示是否选择IR3的值与BAF字段的其他位一起构成微地址。


6087343

答:(三)

  • 微地址形成的原理


6087343

3. 微指令格式分类

  • (1) 水平型——并行性。

    • 并行操作能力强,效率高,灵活性强;执行指令的时间较短;微指令比较长,但微程序比较短;硬件密切相关,微程序设计比较困难。

  • (2) 垂直型——有微操作码、部件号。

    • 每条微指令只表示一个微操作;需要对微操作码和部件号译码;微指令短,微程序长。

  • 习题:9,14


6087343

第五节 阵列逻辑控制器一、阵列逻辑部件可编程逻辑阵列PLA


6087343

可编程阵列逻辑PAL


6087343

一、阵列逻辑部件

  • PAL, GAL与ROM的关系

  • 通用阵列逻辑GAL

    • 采用通用输出电路——宏单元


6087343

二、阵列逻辑控制器

  • 基本思想:

    • 写出每个操作控制信号的逻辑表达式,

    • 采用某种阵列逻辑芯片,

    • 通过器件编程来实现这些表达式。


6087343

例:专用通路结构的指令流程

  • 第一级:取指

    IR = Mem[PC](S0)

    PC = PC + 4(S0)

  • 第二级:指令译码及读取寄存器

    A = R[IR[25:21]](S1)

    B = R[IR[20:16]](S1)

    Target = PC + (Sign-extend(IR[15:0] << 2)(S1)

  • 第三级:执行,计算存储器地址(或转移完成)

    访存:ALUoutput = A + Sign-extend(IR[15:0])(S2)

    运算:ALUoutput = A op B(S6)

    转移:if(A op B) PC = Target(S8)

  • 第四级:访存(或运算完成)

    访存(读):Memory-data = Memory[ALUoutput](S3)

    访存(写):Memory[ALUoutput] = B(S5)

    运算:R[IR[15:11]] = ALUoutput(S7)

  • 第五级:写回

    访存(读):R[IR[20:16]] = Memory-data(S4)


6087343

例:专用通路结构的指令流程

习题:10


  • Login