一、CPU架构图
cpu架构
二、CPU核心的工作流程
1. CPU核心组成部分
a. ALU(Arithmetic Logical Unit) 算数逻辑运算单元
i. 对读取到寄存器中的数据进行运算或其他逻辑运算
b. Register 寄存器
i. 存储程序正在运行的指令所需要的数据
ii. 距离cpu最近,读取速度 < 1ns
c. PC(Program Counter) 程序计数器
i. 存储程序马上要执行的指令地址
d. Cache(L1、L2、L3) 高速缓存
i. 存储cpu执行命令可能需要的数据
ii. 为了加快读取数据的操作,避免直接从内存中读取
iii. 越靠近寄存器读取越快,存储量也越小
2. 工作原理(由CPU中的控制器来调度,图中未画出)
a. PC发现自己所指向的指令需要数据不在寄存器中
b. 依次读取L1、L2、L3缓存、内存,读取到数据就返回给上级缓存直到寄存器
c. 执行指令的时候将数据读取到寄存器中
d. ALU对数据进行逻辑运算并返回结果
e. 将执行结果写回内存
3. CPU的抢占
a. 在多线程环境下,会对一个CPU资源时间片进行抢占执行
b. 切换到其他线程的时候如果之前的线程没有执行完,就将数据和指令地址存储到缓存中,然后载入其他线程所需数据、指令等让其他的线程执行
c. 其他线程执行完毕后切换回之前线程时,将原有的数据和指令加载并继续执行
d. 就是这样一直抢占cpu资源
4. 超线程技术
a. 对于cpu的抢占执行,在线程切换的时候会对缓存有IO操作,这时cpu的其实是空闲的
b. ALU处理是很快的,如果一个CPU核心中可以包含多个寄存器和PC,那么就能减少多线程的上下文切换并能在cpu空闲的时候让另一个线程直接运行而不需要等待数据