概念:机器周期和时钟周期
1.机器周期 机器周期可看做是所有指令执行过程中的一个基准时间,机器周期取决于指令的功能及器件的速度。确定机器周期时,通常要分析机器指令的执行步骤及每-一步骤所需的时间。例如,取数、存数指令能反映存储器的速度及其与CPU的配合情况;加法指令能反映ALU的速度;条件转移指令因为要根据上一条指令的执行结果,经测试后才能决定是否转移,所需的时间较长。总之,通过对机器指令执行步骤的分析,会找到一个基准时间,在这个基准时间内,所有指令的操作都能结束。若以这个基准时间定为机器周期,显然不是最合理的。因为只有以完成复杂指令功能所需的时间(最长时间)作为基准,才能保证所有指令在此时间内完成全部操作,这对简单指令来说,显然是一种浪费。进一步分析发现,机器内的各种操作大致可归属为对CPU内部的操作和对主存的操作两大类,由于CPU内部的操作速度较快,CPU访存的操作时间较长,因此通常以访问一次存储器的时间定为基准时间较为合理,这个基准时间就是机器周期。又由于不论执行什么指令,都需要访问存储器取出指令,因此在存储字长等于指令字长的前提下,取指周期也可看做机器周期。
2.时钟周期(节拍、状态) 在一个机器周期里可完成若干个微操作,每个微操作都需要一定的时间,可用时钟信号来控制产生每一个微操作命令。时钟就好比计算机的心脏,只要接通电源,计算 机内就会产生时钟信号。时钟信号可由机器主振电路(如晶体振荡器)发出的脉冲信号经整形(或倍频、分频)后产生,时钟信号的频率即为CPU主频。用时钟信号控制节拍发生器,就可产生节拍。每个节拍的宽度正好对应-个时钟周期。在每个节拍内机器可完成一个或几个需同时执行的操作,它是控制计算机操作的最小时间单位。图9.8反映了机器周期、时钟周期和节拍的关系,图中一个机器周期内有4个节拍T0、T1、T2、T3。
写出取指周期、取数周期的微操作
1. 例9.1设CPU内的部件有:PC、IR、MAR、MDR、ACC、ALU、CU,且采用非总线结构。 (1)写出取指周期的全部微操作。 (2)写出取数指令LDAX,存数指令STAX,加法指令ADDX(X均为主存地址)在执行阶段所需的全部微操作。 (3)当上述指令均为间接寻址时,写出执行这些指令所需的全部微操作。 (4)写出无条件转移指令JMPY和结果为零则转指令BAZY在执行阶段所需的全部微操作。 【解】 (1)取指周期的全部微操作 PC→MAR 现行指令地址→MAR 1→R 命令存储器读 M(MAR)→MDR 现行指令从存储器中读至MDR MDR→IR 现行指令一+IR OP(IR)→+CU 指令的操作码一+CU译码 (PC)+1→PC 形成下一条指令的地址 (2)①取数指令LDA X执行阶段所需的全部微操作 Ad(IR)→MAR 指令的地址码字段→MAR 1→R 命令存储器读 M(MAR)→MDR 操作数从存储器中读至MDR MDR→ACC 操作数→ACC 存数指令STA X执行阶段所需的全部微操作 Ad(IR)→MAR 指令的地址码字段→MAR 1→W 命令存储器写 ACC→MDR 欲写入的数据→MDR MDR→M(MAR) 数据写至存储器中 ③加法指令ADD X执行阶段所需的全部微操作 Ad(IR)→MAR 指令的地址码字段→MAR 1→R 命令存储器读 M(MAR)→MDR 操作数从存储器中读至MDR (ACC)+(MDR)→ACC两数相加结果送ACC (3)当上述指令为间接寻址时,需增加间址周期的微操作。这三条指令在间址周期的微操作是相同的,即 Ad(IR)→MAR 指令的地址码字段→MAR 1→R 命令存储器读 M(MAR)→MDR 有效地址从存储器中读至MDR 进人执行周期,三条指令的第一个微操作均为MDR→AR(有效地址送MAR),其余微操作不变。 (4)①无条件转移指令JMPY执行阶段的微操作 Ad(IR)→PC 转移(目标)地址Y→PC ②结果为零则转指令BAZY执行阶段的微操作 Z·Ad(IR)→+PC 当Z=1时,转移(目标)地址Y→PC (Z为标记触发器,结果为0时Z=1)
2.什么是计算机的主频,主频和机器周期有什么关系?
答:一台时钟周期的频率称为主频,主频的倒数称为时钟周期,机器周期内包含若干个时钟周期
3.控制器中常采用哪些控制方式?有何特点?
答:控制器常采用同步控制、异步控制和联合控制。同步控制即微操作序列由基准时标系统控制,每一个操作出现的时间与基准时标保持一致。异步控制不存在基准时标信号,微操作的时序是由专用的应答线路控制的,即控制器发出某一个微操作控制信号后,等待执行部件完成该操作时所发回的“回答”或“终了”信号,再开始下一个微操作。联合控制是同步控制和异步控制相结合的方式,即大多数微操作在同步时序信号控制下进行,而对那些时间难以确定的微操作,如涉及I/0操作,则采用异步控制。
4.某CPU主频8MHz,设每个机器周期包含4个时钟周期,且该机的平均指令执行速度为1MIPS。
(1)求该机平均指令周期。 (2)求每个指令周期包含的平均机器周期。 (3)若改用时钟周期为0.01μs的CPU芯片,求平均指令执行速度。 答: (1)根据平均指令执行速度为1MIPS,则平均指令周期为1/1MIPS=1μs。 (2)根据主频为8MHz,得出时钟周期为1/8MHz=0.125us,一个机器周期为 0.125us×4=0.5μs,一个指令周期包含的平均机器周期数为1/0.5μs=2。 (3)改用时钟周期为0.01μs的CPU芯片,则一个机器周期为0.01us×4=0.04us,一条指令的执行时间为0.04μs×2=0.08μs,故平均指令执行速度为1/0.08us=12.5MIPS。
|