并发编程从操作系统底层工作整体认识开始( 三 )
下表列出了CPU关键技术的发展历程以及代表系列 , 每一个关键技术的诞生都是环环相扣的 , 处理器这些技术发展历程都围绕着如何不让“CPU闲下来”这一个核心目标展开 。
文章插图
CPU缓存结构现代CPU为了提升执行效率 , 减少CPU与内存的交互(交互影响CPU效率) , 一般在CPU上集成了多级缓存架构 , 常见的为三级缓存结构
- L1 Cache , 分为数据缓存和指令缓存 , 逻辑核独占
- L2 Cache , 物理核独占 , 逻辑核共享
- L3 Cache , 所有物理核共享
文章插图- 存储器存储空间大小:内存>L3>L2>L1>寄存器;
- 存储器速度快慢排序:寄存器>L1>L2>L3>内存;
缓存行是什么意思呢? 比如你的L1缓存大小是512kb,而cacheline = 64byte,那么就是L1里有512 * 1024/64个cacheline
CPU读取存储器数据过程
- CPU要取寄存器X的值 , 只需要一步:直接读取 。
- CPU要取L1 cache的某个值 , 需要1-3步(或者更多):把cache行锁住 , 把某个数据拿来 , 解锁 , 如果没锁住就慢了 。
- CPU要取L2 cache的某个值 , 先要到L1 cache里取 , L1当中不存在 , 在L2里 , L2开始加锁 , 加锁以后 , 把L2里的数据复制到L1 , 再执行读L1的过程 , 上面的3步 , 再解锁 。
- CPU取L3 cache的也是一样 , 只不过先由L3复制到L2 , 从L2复制到L1 , 从L1到CPU 。
- CPU取内存则最复杂:通知内存控制器占用总线带宽 , 通知内存加锁 , 发起内存读请求 , 等待回应 , 回应数据保存到L3(如果没有就到L2) , 再从L3/2到L1 , 再从L1到CPU , 之后解除总线锁定 。
在CPU访问存储设备时 , 无论是存取数据抑或存取指令 , 都趋于聚集在一片连续的区域中 , 这就被称为局部性原理 。
- 时间局部性(Temporal Locality):如果一个信息项正在被访问 , 那么在近期它很可能还会被再次访问 。
- 空间局部性(Spatial Locality):如果一个存储器的位置被引用 , 那么将来他附近的位置也会被引用 。
空间局部性案例:
文章插图public class TwoDimensionalArraySum {private static final int RUNS = 100;private static final int DIMENSION_1 = 1024 * 1024;private static final int DIMENSION_2 = 6;private static long[][] longs;public static void main(String[] args) throws Exception {/** 初始化数组*/longs = new long[DIMENSION_1][];for (int i = 0; i < DIMENSION_1; i++) {longs[i] = new long[DIMENSION_2];for (int j = 0; j < DIMENSION_2; j++) {longs[i][j] = 1L;}}System.out.println("Array初始化完毕....");long sum = 0L;long start = System.currentTimeMillis();for (int r = 0; r < RUNS; r++) {for (int i = 0; i < DIMENSION_1; i++) {//DIMENSION_1=1024*1024for (int j=0;j带有高速缓存的CPU执行计算的流程- 程序以及数据被加载到主内存
- 指令和数据被加载到CPU的高速缓存
- CPU执行指令 , 把结果写到高速缓存
- 高速缓存中的数据写回主内存
CPU运行安全等级CPU有4个运行级别 , 分别为:
- ring0
- ring1
- ring2
- ring3
Linux与Windows只用到了2个级别:ring0、ring3 , 操作系统内部内部程序指令通常运行在ring0级别 , 操作系统以外的第三方程序运行在ring3级别 , 第三方程序如果要调用操作系统内部函数功能 , 由于运行安全级别不够,必须切换CPU运行状态 , 从ring3切换到ring0,然后执行系统函数 , 说到这里相信大家明白为什么JVM创建线程 , 线程阻塞唤醒是重型操作了 , 因为CPU要切换运行状态 。下面我大概梳理一下JVM创建线程CPU的工作过程
- 王文鉴|从工人到千亿掌门人,征服华为三星,只因他36年只坚持做一件事
- 精英|业务流程图怎么绘制?销售精英的经验之谈
- 走向|电商,从货架陈列走向内容驱动
- 权属|从数据悖论到权属确认,数据共享进路所在
- 高配版|从4599元跌至3699元,256GB+65W,12GB旗舰加速退场
- 科技|联咏科技将从明年下半年开始为iPad提供LCD驱动芯片
- 不确定性|从虾米看文娱,如何从内容不确定性寻找确定性?
- 换头像|从不换“头像”的人,多半都是这几张原因,你是哪一种?
- 添加|手机:小米手机如何添加门禁卡?
- 这场|这场顶级盛会,15位全球设计行业组织主席@烟台:中国创新经验从这里影响世界
