CPU指令结构
控制单元
控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和 操作控制器OC(Operation Controller) 等组成
运算单元
运算单元是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较
数据单元
存储单元包括 CPU 片内缓存Cache和寄存器组,是 CPU 中暂时存放数据的地方
CPU缓存结构
三级缓存结构
L1 Cache,分为数据缓存和指令缓存,逻辑核独占
L2 Cache,物理核独占,逻辑核共享
L3 Cache,所有物理核共享
特点<br>
存储器存储空间大小:内存>L3>L2>L1>寄存器
存储器速度快慢排序:寄存器>L1>L2>L3>内存;
高速缓存以解决I\O速度和CPU运算速度之间的不匹配问题<br>
内存管理
用户空间
可由用户代码 和 内核代码进行引用
因为有两种空间,进程与线程只能运行在用户方式(usermode)或内核方式(kernelmode)下
内核线程(KLT)
系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程阻塞不会引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行。线程的创建、调度和管理由内核完成,效率比ULT要慢,比进程操作快。
用户线程(ULT)
用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它的所有线程)阻塞。
CPU高速缓存
局部性原理
在CPU访问存储设备时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就是局部性原理
时间局部性(Temporal Locality)
空间局部性(Spatial Locality)
如果一个存储器的位置被引用,那么将来他附近的位置也会被引用
比如顺序执行的代码、连续创建的两个对象、数组等
例如一个二维数据求和,你横向相加的速度,必定快于纵向相加的速度