linux(二)CPU周期和微指令


1 振荡周期、机器周期、指令周期

振荡周期:为CPU提供振荡源的周期。一般CPU外面会外接一个石英振荡电路,产生振荡脉冲。

状态周期:状态周期为振荡周期的二分频。

机器周期:也叫CPU周期。完成一个基本操作所需要的的时间称为机器周期。不同CPU的机器周期定义不同,比如80C51单片机规定一个机器周期包含6个状态周期,分别是S1,S2,S3,S4,S5,S6。为什么是6个状态周期呢?这完全是CPU设计的规定,51单片机规定一个机器周期就是6个状态周期。

指令周期:CPU执行一条指令所需要的的时间。一个指令周期通常含有1-4个机器周期。

2 微指令集

一个机器周期(CPU周期)对应一个机器指令(RISC精简指令集,对于CISC复杂指令集几个机器周期对应一个机器指令)。

一个状态周期对应一个微指令。

所有微指令的集合称为CPU的微指令集

CPU的微指令存储在CPU内部。

2.1 微指令的格式

一条微指令包含两部分:操作码和地址码

例如:某一微指令长度为32位,

00000010000001000000000100000110

操作码长度8位00000010表示减法操作,地址码长度也为8位,后面为3个地址码。

当CPU收到这个指令时,先取出它的前8位操作码,分析得知是减法操作,然后到内存地址00000100处取出被减数,到00000001处取出减数,送到ALU中进行减法运算,然后把结果送到00000110处。

3 机器指令的困难

我们和cpu打交道,需要使用机器指令,但是机器指令对于人类来说简直是天书,更别说纷繁复杂的IO设备了,而且写出来的机器指令不具备可移植性。

因此我们需要使用高阶语言(汇编,C)写人类能够理解的程序,经过编译,编译成机器指令供CPU执行,这就是操作系统。