CPU、内存、三级缓存(学习笔记)
计算机组成
CPU及内存
下图为两颗CPU,每颗CPU为2核
CPU重要组成
- PC(程序计数器):存放下一条指令所在单元的地址
- Registers(寄存器):存数据
- ALU(算术逻辑单元):进行运算
内存(内存储器)
- 暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据
- 程序的运行都在内存中进行
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提供的注解
CPU、内存、三级缓存(学习笔记)相关推荐
- Java虚拟机(JVM)与Java内存模型(JMM)学习笔记
Java虚拟机[JVM]与Java内存模型[JMM]学习笔记 Java虚拟机(JVM) 三种JVM JVM 位置 JVM的主要组成部分及其作用 类加载器 双亲委派机制 沙箱安全机制 Java本地接口( ...
- 《深入理解LINUX内存管理》学习笔记(一)
引子 为什么要写这个笔记: 1,这本书的中文版翻译了太垃圾,没法阅读.阅读英文原版,可以很好的理解作者的思路.作此笔记备忘 2,一直以来学习LINUX kernel的知识缺乏系统化,借对这本书的学习, ...
- 内存管理基础学习笔记 - 5.2 页面回收 - kswapd
目录 1. 前言 2. kswapd_init 3.kswapd |- -balance_pgdat |- - -pgdat_balanced |- - -kswapd_shrink_node |- ...
- 内存管理基础学习笔记 - 2. 内核地址空间 - SLAB
目录 1. 前言 2. slab总体说明 3. kmem_cache_create |- -__kmem_cache_create |- - -setup_cpu_cache 4. kmem_cach ...
- 内存管理基础学习笔记 - 3.2 进程地址空间 - brk系统调用
目录 1. 前言 2. SYSCALL_DEFINE1(brk, unsigned long, brk) |- -__do_munmap |- -do_brk_flags |- - -get_unma ...
- 内存管理基础学习笔记 - 3.1 进程地址空间 - VMA线性区
目录 1. 前言 2. 进程地址空间 3. 用户空间与内核空间的隔离 4. 进程地址空间主要数据结构 struct mm_struct struct vm_area_struct 5. vma的标志属 ...
- RT-Thread 静态内存管理(学习笔记)
本文参考自[野火EmbedFire]<RT-Thread内核实现与应用开发实战--基于STM32>,仅作为个人学习笔记.更详细的内容和步骤请查看原文(可到野火资料下载中心下载) 文章目录 ...
- RT-Thread 动态内存管理(学习笔记)
本文参考自[野火EmbedFire]<RT-Thread内核实现与应用开发实战--基于STM32>,仅作为个人学习笔记.更详细的内容和步骤请查看原文(可到野火资料下载中心下载) 文章目录 ...
- mybatis缓存学习笔记
mybatis有两级缓存机制,一级缓存默认开启,可以在手动关闭:二级缓存默认关闭,可以手动开启.一级缓存为线程内缓存,二级缓存为线程间缓存. 一提缓存,必是查询.缓存的作用就是查询快.写操作只能使得缓 ...
- memcache/redis 缓存学习笔记
0.redis和memcache的区别 a.redis可以存储除了string之外的对象,如list,hash等 b.服务器宕机以后,redis会把内存的数据持久化到磁盘上,而memcache则不会 ...
最新文章
- 把2018年所有踩过的坑都记在这里。
- MATLAB 添加自定义的模块到simulink库浏览器
- oracle 日志的容量,oracle 11g 更改日志组大小
- 我常用的电脑操作快捷键
- java并发编程一:基础知识
- 动态内存分配导致内存泄漏之处
- 【C++ grammar】nullptr and Dynamic Memory Allocation (空指针和动态内存分配)
- 攻破Win7~Win10 PatchGuard(KPP DSE)【支持Win10 TH1/TH2/RS1/RS2】【WIN64内核越狱】
- Oracle安全漏洞2016.10报告
- 敏捷开发般若敏捷系列之四:如何推广敏捷(上)(无我,无人,无众生)
- 碎片知识总结_刷题篇
- 【相机标定系列】相机成像的理想模型原理,相机矩阵分解
- 七张王牌助你做人做事顺遂成功
- 计算机毕业设计之校园二手交易平台
- Mac墨刀怎么导出HTML,mockingbot墨刀中文使用说明.pdf
- 关于职业规划的座谈会
- JSP常用内置对象方法
- 计算机共享的无线手机连上但上不去网的解决方法
- python源代码文件后缀,python源文件后缀是什么-Python教程
- 高仿淘宝分页:jQuery分页插件kkpager-Array-专题视频课程