690 likes | 781 Views
第五章 控制器. 第一节 基本概念 第二节 指令的执行过程 第三节 硬连线控制器 第四节 微程序控制器 第五节 阵列逻辑控制器. 第五节 阵列逻辑控制器. CPU 的基本构成: 控制器,运算器,寄存器( cache, 指令缓存) 寄存器的类型: 指令寄存器( IP) 程序计数器( PC) 数据寄存器( DR) 地址寄存器( AR) 状态寄存器( SR) 数据通路: 数据总线(单总线,双总线,多总线) 专用通路(如 MIPS). 数据总线结构. 控制信号: R1out:R1 的输出控制 R1in: R1 的输入控制 Yin: Y 的输入控制
E N D
第五章 控制器 第一节 基本概念 第二节 指令的执行过程 第三节 硬连线控制器 第四节 微程序控制器 第五节 阵列逻辑控制器
第五节 阵列逻辑控制器 • CPU的基本构成: • 控制器,运算器,寄存器(cache,指令缓存) • 寄存器的类型: • 指令寄存器(IP) • 程序计数器(PC) • 数据寄存器(DR) • 地址寄存器(AR) • 状态寄存器(SR) • 数据通路: • 数据总线(单总线,双总线,多总线) • 专用通路(如MIPS)
数据总线结构 控制信号: R1out:R1的输出控制 R1in: R1的输入控制 Yin: Y的输入控制 IRin: IR的输入控制 IRout: IR的输出控制 PCin: PC的输入控制 PCout: PC的输出控制 PC+1: PC计数更新控制 ADD: ALU加法操作控制
专用通路结构 控制信号: 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
一、运算指令的执行过程 • 专用通路结构:如add $1, $2, $3 • (2) 指令译码及读取操作数。A = R[IR[25:21]] • B = R[IR[20:16]]
一、运算指令的执行过程 • 专用通路结构:如add $1, $2, $3 • (3) 执行。ALUoutput = A + B
一、运算指令的执行过程 • 专用通路结构:如add $1, $2, $3 • (4) 写回。R[IR[15:11]] = ALUoutput
一、运算指令的执行过程 单总线结构: • 如ADD R3, R1, R2 (1) PC→MAR (2) PC+1→PC
一、运算指令的执行过程 单总线结构: • 如ADD R3, R1, R2 (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR
一、运算指令的执行过程 单总线结构: • 如ADD R3, R1, R2 (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) R1→Y
一、运算指令的执行过程 单总线结构: • 如ADD R3, R1, R2 (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) R1→Y (6) R2 + Y→Z
一、运算指令的执行过程 单总线结构: • 如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
二、访存指令的执行过程 专用通路结构 读操作:如lw $1, off($2) • (2) 指令译码。A = R[IR[25:21]]
二、访存指令的执行过程 专用通路结构 读操作:如lw $1, off($2) (3) 计算地址。ALUoutput = A + Sign-extend(IR[15:0])
二、访存指令的执行过程 专用通路结构 读操作:如lw $1, off($2) (4) 访存。Memory-data = Memory[ALUoutput]
二、访存指令的执行过程 专用通路结构 读操作:如lw $1, off($2) (5) 写回。R[IR[20:16]] = Memory-data
二、访存指令的执行过程 • 专用通路结构 写操作:如Store $1,offs($2) • (1) IR = Memory[PC] PC = PC + 4
二、访存指令的执行过程 • 专用通路结构 写操作:如Store $1,offs($2) • (2) A = R[IR[25:21]] • B = R[IR[20:16]]
二、访存指令的执行过程 • 专用通路结构 写操作:如Store $1,offs($2) • (3) ALUoutput = A + Sign-extend(IR[15:0])
二、访存指令的执行过程 • 专用通路结构 写操作:如Store $1,offs($2) • (4) Memory[ALUoutput] = B
二、访存指令的执行过程 单总线结构: 读操作:如LOAD R1,mem (1) PC→MAR (2) PC+1→PC
二、访存指令的执行过程 单总线结构: 读操作:如LOAD R1,mem (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR
二、访存指令的执行过程 单总线结构: 读操作:如LOAD R1,mem (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) IR(地址段)→MAR,读存储器
二、访存指令的执行过程 单总线结构: 读操作:如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
二、访存指令的执行过程 单总线结构: 写操作:如STORE R1,mem (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR
二、访存指令的执行过程 单总线结构: 写操作:如STORE R1,mem (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) IR(地址段)→MAR
二、访存指令的执行过程 单总线结构: 写操作:如STORE R1,mem (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) IR(地址段)→MAR (6) R1→MDR,写存储器
三、控制指令的执行过程 专用通路结构 如无条件转移指令操作: J Target (1) IR = Memory[PC]
三、控制指令的执行过程 • 专用通路结构 如无条件转移指令操作: J Target • PC = (IR[25:0] << 2) | PC+4[31:28]
三、控制指令的执行过程 单总线结构:如BR offs (1) PC→MAR (2) PC+1→PC
三、控制指令的执行过程 单总线结构:如BR offs (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR
三、控制指令的执行过程 单总线结构:如BR offs (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR • (5) PC→Y
三、控制指令的执行过程 单总线结构:如BR offs (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) PC→Y • (6) Y + IR(地址段)→Z
三、控制指令的执行过程 单总线结构:如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
三、控制指令的执行过程 专用通路结构:如beq $1,$2,offs (2) A = R[IR[25:21]] B = R[IR[20:16]] Target = PC + (Sign-extend(IR[15:0]) << 2)
三、控制指令的执行过程 专用通路结构:如beq $1,$2,offs • (3) if(A == B) PC = Target
三、控制指令的执行过程 单总线结构:BNE offs (1) PC→MAR (2) PC+1→PC
三、控制指令的执行过程 单总线结构:BNE offs (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR
三、控制指令的执行过程 单总线结构:BNE offs (1) PC→MAR (2) PC+1→PC (3) DBUS→MDR (4) MDR→IR (5) if(!Z) PC→Y; else goto END
三、控制指令的执行过程 单总线结构: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
三、控制指令的执行过程 单总线结构: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
控制信号:如ADD R3, R1, R2 T1: PCout, MemRead, PC+1, MARin ;PCMAR, PC+1PC T2: MDRout, IRin ;MDRIR addT3: R1out, Yin ;R1Y addT4: R2out, ADD, Zin ;R2+YZ addT5: Zout, R3in ;ZR3