您现在的位置:学赛首页 > 研究生院 > 复习辅导 > 正文
计算机组成原理串讲 第五章 控制器(一)
http://www.educity.cn 作者:不详 来源:希赛网 2006年5月8日 发表评论 进入社区

  第一节 基本概念码

  CPU的基本构成:控制器,运算器,寄存器(cache,指令缓存)

  寄存器的类型:

  指令寄存器(IP)

  程序计数器(PC)

  数据寄存器(DR)

  地址寄存器(AR)

  状态寄存器(SR)

  数据通路:

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

  

  控制信号:

  R1out: R1的输出控制

  R1in: R1的输入控制

  Yin: Y的输入控制

  IRin: IR的输入控制

  IRout: IR的输出控制

  PCin: PC的输入控制

  PCout: PC的输出控制

  PC+1: PC计数更新控制

  ADD: ALU加法操作控制

  专用通路(如MIPS)

  

  控制信号:

  MemRead 存储器读

  MemWrite 存储器写

  ALUOp 运算操作码

  ALUSrc ALU数据选择

  PCWrite PC写

  PCSource PC输入选择

  RegWrite 数据寄存器写

  MemtoReg 写数据选择

  RegDst 写寄存器选择

  Irwrite 指令寄存器

  Jump 选择转移地址

  三种生成控制信号方式:硬连线,微程序,阵列逻辑

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

  第二节 指令的执行过程

  一、运算指令的执行过程

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

  (1) 取指令。

  IR = Memory[PC]

  PC = PC + 4

  (2) 指令译码及读取操作数。

  A = R[IR[25:21]]

  B = R[IR[20:16]]

  (3) 执行。

  ALUoutput = A + B

  (4) 写回。

  R[IR[15:11]] = ALUoutput

  单总线结构:如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

  二、访存指令的执行过程

  专用通路结构:

  读操作:如lw $1, off($2)

  (1) 取指令。

  IR = Memory[PC]

  PC = PC+4

  (2) 指令译码。

  A = R[IR[25:21]]

  (3) 计算地址。

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

  (4) 访存。

  Memory-data = Memory[ALUoutput]

  (5) 写回。

  R[IR[20:16]] = Memory-data

  写操作:如Store $1,offs($2)

  (1) IR = Memory[PC]

  PC = PC + 4

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

  B = R[IR[20:16]]

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

  (4) Memory[ALUoutput] = B

  单总线结构:

  读操作:如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

  写操作:如STORE R1,mem

  (1) PC→MAR

  (2) PC+1→PC

  (3) DBUS→MDR

  (4) MDR→IR

  (5) IR(地址段)→MAR

  (6) R1→MDR,写存储器

  三、控制指令的执行过程

  无条件转移指令操作:修改PC

  专用通路结构:如J Target

  (1) IR = Memory[PC]

  (2) PC = Target

  单总线结构:如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

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

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

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

  (1) IR = Memory[PC]

  PC = PC + 4

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

  B = R[IR[20:16]]

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

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

  单总线结构:BNE offs

  (1) PC→MAR

  (2) PC+1→PC

  (3) DBUS→MDR

  (4) MDR→IR

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

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

  (7) Z→PC

  习题:3,4

  第三节 硬连线控制器

  一、指令周期流程

  

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

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

  T2: MDRout, IRin ;MDR IR

  T3: R1out, Yin ;R1 Y

  T4: R2out, ADD, Zin ;R2+Y Z

  T5: Zout, R3in ;Z R3

  二、硬连线控制器

  

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

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

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

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

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

  实现方法:用END信号,如

  END = T5*ADD + T3*CLA + …