cache line
来源:互联网 发布:淘宝课程在哪里看 编辑:程序博客网 时间:2024/05/10 20:06
cache存储工作
为了简化与RAM之间的通信,高速缓存控制器是针对数据块,而不是字节进行操作的。从程序设计的角度讲,高速缓存其实就是一组称之为缓存行(cache line)的固定大小的数据块,其大小是以突发读或者突发写周期的大小为基础的。
每个高速缓存行完全是在一个突发读操作周期中进行填充或者下载的。即使处理器只存取一个字节的存储器,高速缓存控制器也启动整个存取器访问周期并请求整个数据块。缓存行第一个字节的地址总是突发周期尺寸的倍数。缓存行的起始位置总是与突发周期的开头保持一致。
现代处理器有专门的功能单元来执行加载和存储操作。加载单元每个时钟周期只有启动一条加载操作;与加载操作一样,在大多数情况下,存储操作能够在完整流水线化的模式中工作,每个周期开始一条新的存储。
PS.谢谢cgl_lgs 的提醒,共享内存的并行计算,有可能会出现"伪共享"问题.比如,两个处理器各要访问一个word,这两个word却存在于同一个cache line大小的区域里,这时,从应用逻辑层面说,这两个处理器并没有共享内存,因为他们访问的是不同的内容(不同的word)。但是因为cache line的存在和限制,这两个CPU要访问这两个不同的word时,却一定要访问同一个cache line块,产生了事实上的“共享”。显然,由于cache line大小限制带来的这种“伪共享”是我们不想要的,会浪费系统资源。
0 0
- cache line
- Cache line
- cache line
- 关于cache line
- CPU Cache line
- CPU Cache line
- cpu cache line 原理
- States of Cache line
- cache line 优化
- Cache line的解释
- cpu cache line 原理
- cpu cache line 原理
- cpu cache line 原理
- 查看cache line
- cache line技术浅析
- 关于CPU Cache和Cache Line
- 关于缓存行(cache line)
- 伪共享---cache line 填充
- GCC 警告提示的用法
- Android系统去除蓝牙
- Java Math.round()函数小结
- java中File类
- 打开slidingmenu时会卡在某一位置
- cache line
- ZOJ 3812 We Need Medicine(dp,状态压缩,2014牡丹江网络赛D题)
- spring MVC 接收PUT方式请求
- 拐个弯,坏事就是好事
- 深度理解跳跃链表:一种基于概率选择的平衡树
- Linux一些书
- 很特别的一个动态规划入门教程
- 直接载入内存中的DLL
- 新开始,新机会,新希望