41
解: (1)指令平均运行时间 =(0.6×0.35+0.8×0.45+10×0.05+1.4×0.15)μs= 1.28μs
机器平均运行速度 = 1/1.28μs≈0.78MIPS
(2)时钟周期 = 1/6MHz≈0.167μs
指令平均运行周期数 = 1.28μs ÷0.167μs≈7.66CPI 若CPU芯片升级为10MHz,时钟周期 = 1/10MHz=0.1μs 指令平均运行时间 = 0.1μs×7.66=0.766μs 机器平均运行速度 = 1/0.766μs≈1.3MIPS
11. 设CPU内部结构如图9.4所示,此外还设有B、C、D、E、H、L六个寄存器,它们各自的输入和输出端都与内部总线相通,并分别受控制信号控制(如Bi为寄存器B的输入控制;Bo为B的输出控制)。要求从取指令开始,写出完成下列指令所需的全部微操作和控制信号。 (1)ADD B,C ((B)+(C) ?B) (2)SUB A,H ((AC)-(H) ?AC)
解:先画出相应指令的流程图,然后将图中每一步数据通路操作分解成相应的微操作,再写出同名的微命令即可。
?(1) ADD B,C指令流程及微命令序列如下:
42
PC→BUS→MAR取指周期PCo,MARiMARo,MDRiMDRo,IRi+1Bo,YiCo,ALUiYo, + ,ZiZo,BiM(MAR)→MDRMDR→BUS→IRPC+1→PCB→BUS→YC→BUS→ALUY-BUS→ZZ→BUS→AC执行周期
(2) SUB A,H指令流程及微命令序列如下:
PC→BUS→MAR取指周期PCo,MARiMARo,MDRiMDRo,IRi+1ACo,YiHo,ALUiACo, - ,ZiZo,ACiM(MAR)→MDRMDR→BUS→IRPC+1→PCAC→BUS→YH→BUS→ALUAC-BUS→ZZ→BUS→AC执行周期
第10章 控制单元的设计
1. 假设响应中断时,要求将程序断点存在堆栈内,并且采用软件办法寻找中断服务程序的入口地址,试写出中断隐指令的微操作及节拍安排。
解:设软件查询程序首址为0号内存单元,则中断隐指令的微操作命令及节拍安
43
排如下: T0 0 SP T1 ,SP? MAR
T2 SP?W,SP+1 M(MAR) T3 PSW?MAR,MDR?SP
T4 1? W,SP+1?MDR, ?M(MAR) PC?EINT 由于题意中没有给出确切的数据通路结构,故上述节拍分配方案的并行性较低。?PC,MDR?0 ?MDR,1?MAR
2. 写出完成下列指令的微操作及节拍安排(包括取指操作)。
(1)指令ADD R1,X完成将R1寄存器的内容和主存X单元的内容相加,结果存于R1的操作。
(2)指令ISZ X完成将主存X单元的内容增1,并根据其结果若为0,则跳过下一条指令执行。
解:设采用单总线结构的CPU数据通路如下图所示,且ALU输入端设两个暂存器C、D(见17题图)。并设采用同步控制,每周期3节拍:
busPCMARSPMDRCUIRAC地址线数据线控制线
(1)指令ADD R1,X的微操作及节拍安排如下: 取指周期:T0 PC?MAR,1? R
T1 M(MAR) ?MDR,PC+1?PC T2 MDR?IR,OP(IR) ?ID
44
执行周期1:T0 Ad(IR)?MAR,1?R T1 M(MAR) ?MDR
T2 MDR?D
执行周期2:T0 R1?C
T1 + T2 ALU?R1
(2)指令ISZ X的微操作及节拍安排: 取指周期同(1):略
执行周期1: T0 Ad(IR)?MAR,1?R T1 M(MAR)?MDR
T2 MDR?C,+1?ALU
执行周期2:T0 ALU?MDR,1?W
T1 (PC+1)·Z+ PC·Z?PC