天天看点

CPU

CPU总是周而复始地做同一件事:从内存取指令,然后解释执行它,然后再取下一条指令,再解释执行。

CPU包含以下功能单元:

寄存器(Register),是CPU内部的高速存储器,像内存一样可以存取数据,但比访问内存快得多。

程序计数器(PC,Program Counter,保存着CPU取指令的地址,每次CPU读出程序计数器中保存的地址,然后按这个地址去内存中取指令,这时程序计数器保存的地址会自动

加上该指令的长度,指向内存中的下一条指令。

指令解码器(Instruction Decoder)。CPU取上来的指令由若干个字节组成,这些字节中有些位表示内存地址,有些位表示寄存器编号,有些位表示这种指令做什么操作,是加、

减、乘、除还是读、写,指令解码器负责解释这条指令的含义,然后调动相应的执行单元去执行它。

算术逻辑单元(ALU,Arithmetic and Logic Unit)。如果解码器将一条指令解释为运算指令,就调动算术逻辑单元去做运算,比如加减乘除、位运算、判断一个条件是否成立等。

运算结果可能保存在寄存器中,也可能保存到内存中。

地址和数据总线(Bus)。CPU和内存之间用地址总线、数据总线和控制线连接起来,32位处理器有32条地址线和32条数据线,每条线上有1和0两种状态,32条线的状态就可以表示一个32位的数。

如果在执行指令过程中需要访问内存,比如从内存读一个数到寄存器,则执行过程可以想像成这样:

CPU