计算机组成
CPU及内存
下图为两颗CPU,每颗CPU为2核
CPU重要组成
- PC(程序计数器):存放下一条指令所在单元的地址
- Registers(寄存器):存数据
- ALU(算术逻辑单元):进行运算
内存(内存储器)
CPU从内存中取数据
运算单元ALU从寄存器中取数据和从内存中取数据的速度比是1:100,取数据寄存器比内存大概快100倍
三级缓存
- 1级2级缓存在同一内核中共享,3级缓存在同一CPU中共享
- 取数据:依次查找数据:寄存器-->L1-->L2-->L3-->内存
- 写数据:依次写入数据:内存-->L3-->L2-->L1-->寄存器(修改数据时如同一个数据在多个核心内有缓存,全部都要修改)
缓存行
- 缓存管理数据的基本单位
- 缓存某一个数据时把相邻数据一起缓存
- 大小:64bytes(Long 8个字节可存8个)
存在问题:(数据x、y在同一缓存行,A核使用X,B核使用Y,A核修改X就要去B核同步X值,B核修改Y就要去A核同步Y值) 优化方案1:对需要频繁操作的数据,相邻地方补充空数据,使缓存行不能存其他数据
示例1
示例2(环形缓冲区)
优化方案2:jvm提供的注解