# 2020-10-05 #「CPU」- Central Processing Unit
处理器结构
从逻辑上可以划分成三个模块:控制单元、运算单元、存储单元。这三部分由处理器内部总线连接起来:
控制单元,整个处理器的指挥控制中心,由指令寄存器(IR,Instruction Register)、指令译码器(ID,Instruction Decoder)、操作控制器(OC,Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器,按确定的时序向相应的部件发出微操作控制信号。在操作控制器中,主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路、启停电路等控制逻辑。
运算单元,运算器的核心。可以执行 算术运算(包括加减乘数等基本运算及其附加运算)和 逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。
存储单元,包括CPU片内缓存和寄存器组,是在CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。这个是我们以后要介绍这个重点,这里先提一下。
CPU FEATURES
看KVM的文档,出现了「CPU FEATURES」这个词,它指的是「指令集」,可以使用 lscpu | grep Flags 命令查看。
内核源码中列出了所有的「CPU FEATURES」:「arch/x86/include/asm/cpufeatures.h」
CPU MODELS
指的是CPU型号
参考文献
- K4NZ / Central Processing Unit
- Wikipedia/Comparison of instruction set architectures
- What do the flags in /proc/cpuinfo mean?