一、CPU的内核

从结构上讲CPU内核分为两部分:运算器和控制器。

(一) 运算器

1、 算术逻辑运算单元ALU(Arithmetic and Logic Unit)

ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。在某些CPU中还有专门用于处理移位操作的移位器。

通常ALU由两个输入端和一个输出端。整数单元有时也称为IEU(Integer Execution Unit)。我们通常所说的“CPU是XX位的”就是指ALU所能处理的数据的位数。

2、 浮点运算单元FPU(Floating Point Unit)

FPU主要负责浮点运算和高精度整数运算。有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。

3、 通用寄存器组

通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。

对于x86指令集只支持8个通用寄存器的缺点,Intel最新CPU采用了一种叫做“寄存器重命名”的技术,这种技术使x86CPU的寄存器可以突破8个的限制,达到32个甚至更多。

4、 专用寄存器

专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。

(二) 控制器

运算器只能完成运算,而控制器用于控制着整个CPU的工作。

1、 指令控制器

指令控制器是控制器中相当重要的部分,它要完成取指令、分析指令等操作,然后交给执行单元(ALU或FPU)来执行,同时还要形成下一条指令的地址。

2、 时序控制器

时序控制器的作用是为每条指令按时间顺序提供控制信号。时序控制器包括时钟发生器和倍频定义单元,其中时钟发生器由石英晶体振荡器发出非常稳定的脉冲信号,就是CPU的主频;而倍频定义单元则定义了CPU主频是存储器频率(总线频率)的几倍。

3、 总线控制器

总线控制器主要用于控制CPU的内外部总线,包括地址总线、数据总线、控制总线等等。

4、中断控制器

中断控制器用于控制各种各样的中断请求,并根据优先级的高低对中断请求进行排队,逐个交给CPU处理。