Skip to content

Latest commit

 

History

History
80 lines (53 loc) · 3.99 KB

Controller Design Hardwired Controller.md

File metadata and controls

80 lines (53 loc) · 3.99 KB

控制器设计硬布线控制器

内容回顾

每一个机器周期由若干个时钟周期(或者称为节拍)组成, 通过若干个微操作组成的序列完成这个周期内需要做的事情. CU会在每一个节拍内, 发出一个微命令, 用来完成对应的微操作. 如: 微命令1使得PCout和MARin有效, 则完成对应的微操作1(PC)->MAR

  • 取址周期(FE=1): T0: 微操作1、微操作2; T1: 微操作3; T2: 微操作4;
  • 间址周期(IND=1): T0: 微操作5、微操作2; T1: 微操作6; T2: 微操作7;
  • 执行周期(EX=1): T0: 无; T1: 微操作8; T2: 微操作9、微操作6
  • 中断周期(INT=1): T0: 无; T1: 微操作10; T2: 微操作11
  • 一个节拍内可以并行完成多个“相容的”微操作
  • 同一个微操作可能在不同指令的不同阶段内被使用
  • 不同指令的执行周期所需节拍数各不相同, 为了简化设计, 选择定长的机器周期, 以可能出现的最大节拍数为准(通常以访存所需的节拍数为参考)
  • 若实际所需的节拍数较少, 可将微操作安排在机器周期末尾几个节拍上进行
  • 根据指令操作码、目前的机器周期、节拍信号、机器状态条件, 即可确定现在这个节拍下应该发出哪些“微指令”

硬布线控制器

所有指令的取址周期、T0节拍下一定要完成(PC)->MAR. 则可知C1=FE∙T0 逻辑表达式是电路的数学化描述

M(MAR)->MDR微操作命令的逻辑表达式: FE∙T1+IND∙T1(ADD+STA+LDA+JMP+BAN)+EX∙T1(ADD+LDA)

硬布线控制器的设计

设计步骤:

  1. 分析每个阶段的微操作序列(取指令、间指、执行、中断四个阶段)「确定哪些指令在什么阶段、在什么条件下会使用到什么微操作」
  2. 选择CPU的控制方式「采用定长机器后期还是不定长机器周期?每个机器周期安排几个节拍?」
  3. 安排微操作的时序「如何用3个节拍完成整个机器周期内的所有微操作」
  4. 电路设计

特点:
指令越多, 设计和实现就越复杂, 因此一般用于RISC(精简指令集系统), 如果扩充一条新的指令, 则控制器的设计就需要大改, 因此扩充指令较困难, 由于使用纯硬件实现控制, 因此执行速度更快, 微操作控制信号由组合逻辑电路即时产生

分析每个阶段的微操作序列

  • 取址周期(所有的指令都一样): PC->MAR; 1->R; M(MAR)->MDR; MDR->IR; OP(IR)->ID; (PC)+1->PC (ID为指令译码器 Instruction Decoder)
  • 间址周期(所有指令都一样): Ad(IR)->MAR; 1->R; M(MAR)->MDR; MDR->Ad(IR)
  • 执行周期(各不相同):
    • CLA: clear ACC指令 ACC清零 0->AC(很多地方将ACC简写为AC)
    • LDA: 取数指令, 把x所指内容取到ACC Ad(IR)->MAR; 1->R; M(MAR)-> MDR; MDR->AC
    • JMP: 无条件转移 Ad(IR)->PC
    • BAN: 条件转移, 当ACC为负时转移 A0∙Ad(IR)+(1-A0)∙(PC)->PC

罗列出所有指令在各个阶段的微操作序列, 就可以知道在什么情况下需要使用这个微操作

选择CPU的控制方式

假设采用同步控制方式(定长机器周期), 一个机器周期内安排3个节拍

安排微操作时序

三个原则:

  • 微操作的先后顺序不得随意更改
  • 被控对象不同的微操作尽量安排在一个节拍内进行
  • 占用时间较短的微操作, 尽量安排在一个节拍内完成, 并允许有先后顺序
取址周期
  1. T0: PC->MAR, 1->R
  2. T1: M(MAR)->MDR, (PC)+1->PC
  3. T2: MDR->IR, OP(IR)->ID
  • M(MAR)->MDR: 从主存取数据, 用时较长, 因此必须一个时钟周期才能保证微操作的完成
  • MDR->IR: 是CPU内部寄存器的数据传送, 速度很快, 因此在一个时钟周期内可以紧接着完成OP(IR)->ID, 也就是可以一次同时发出两个微命令
间址周期
  1. T0: Ad(IR)->MAR, 1->R
  2. T1: M(MAR)->MDR
  3. T2: MDR->Ad(IR)

电路设计

参见书表

可以得出微操作命令的逻辑表达式