MIPS架构培训之Cache原理
来源:互联网 发布:网络基础知识ppt 编辑:程序博客网 时间:2024/06/05 07:37
说明:来自培训讲稿,并隐去与公司系统软件相关部分内容。
MIPS架构培训之Cache原理
目的: 了解Cache原理、注意Cache一致性问题
----
直观影响:展示计算机系统存储层次结构图
介绍局部性原理:
时间局部性:for() i
空间局部性:buf[i] buf[i+1]
for (i = 0; i < 10; i++) {
sum += buf[i++];
}
sum具有良好的时间局部性;
buf[]具有良好的空间局部性
问题1:为什么访问cache比访问内存速度快,快多少?
----
----
回到存储层次图上来。计算机系统设计的一个折中,成本和性能的折中。
32位windows程序支持0~4GB地址空间,实际物理内存可能只有1GB或更小。
因为windows使用磁盘为虚拟内存,当访问到的虚拟内存不在物理内存中式OS将所需要的虚拟内存从磁盘调入
物理内存中。这时如果没有可用的物理内存,OS将部分内存保存到虚拟内存(磁盘)中、腾出这部分物理内存给新虚拟内存使用。
上述只是随便提一下,不是培训的重点。
内存的类型:SRAM和DRAM
SRAM:基本电路单元是双稳态电路,6个晶体管实现,die面积大、成本高、;延时极小(门级延时),纯逻辑工艺方便集成到芯片内部。
DRAM:基本电路单元是单稳态电路,1个晶体管+1电容,die面积小、成本低;延时大,工艺复杂很难集成到芯片内存。
Cache要求访问速度快,所以Cache的存储单元通常是SRAM。
因为单位SRAM消耗的die面积较大,现在CPU L1/L2 Cache很难做得太大。Intel现在一般CPU L2 Cache是2MB?
问题:现在CPU顺便都是多少亿个晶体,2MB L2 Cache需要多少个晶体管呢?
IBM的Power7 CPU的L3 Cache使用DRAM,做到32MB L3 Cache。IBM工艺果然牛逼,现在普天之下也就只有IBM可以做到。
介绍性内容End。
----
----
介绍Cache的逻辑结构,以32KB L1 Cache为例、用图展示。
Total cache size = 32KB = 4-ways * 256-sets * 32Byte-cache_line
说明cache的寻址过程:
32bit address被分成Tag | Index | Offset三段。
使用Index选择4-sets(每way中选出一个set),4个选中的set中的Tag域与address中的Tag域比较。
如果有相等则cache命中,根据address中Offset域的从命中的cache line中取出数据给CPU。
否则cache不命中,需要从下一级cache或内存中调入数据。
问题2:如果4个选中的set中的Tag域与address中的Tag域相等的不知一个会出现什么情况?
本节是本次培训的重点。
----
----
Cache的类型
write-back
write-through
有人容易混淆cache和write-buffer两个概念。
write-through cache先将数据刷到write-buffer,再由write-buffer刷回下一级cache和内存,使cache不用等待数据刷新结束。
在一些体系中使用write-buffer这个名称做其它用途的一些缓冲,和本次培训中讲的write-buffer不同。
有些CPU由硬件保证cache数据一致,比如Cavim的CPU;
有些CPU没有,比如broadcom的低端CPU。
问题3:如何保证Cache和内存数据一致性?什么情况下会产生Cache和内存数据不一致的情况?
本问题为强制性问题,作为本次培训作业。
----
----
Cache的替换策略
LRU(Least Recently Used)、伪LRU
Random
WLRU - 王大师发明的,有兴趣的可以google下。
LRU实现需要额外的硬件实现。
----
----
结合TLB阐述Cache的寻找过程。在这里提到TLB是为了展示MIPS特有的Cache别名问题。
教科书中的寻址过程如下(仅讨论TLB和Cache都命中的情况):
虚拟地址 -> 访问TLB -> TLB命中 -> 物理地址 -> 访问Cache -> Cache命中 -> CPU取得数据
从CPU给出虚拟地址到CPU取得数据经过了好几步,商用CPU要求Cache命中时间在1~2 CPU clock内。
MIPS架构针对上述情况做了优化。
问题4:MIPS做了哪些优化,优化之后会导致什么问题?
答案在参考文献《See MIPS RUN》中,本问题为进阶问题不强制完成。
----
----
回顾:
Cache对于软件人员来说,大多数情况都是透明的。
但是平台有时候需要处理一些Cache不一致导致的问题,
因此了解Cache的原理,对写底层驱动和处理一些Cache不一致性的问题有帮助。
重点是:局部性原理、Cache逻辑结构、Cache一致性问题
The End.
----
>>>3.5上传PPT
本来只是想科普一下的,没想到大家有那么多问题、有些还很有深度,鸭梨不小O(∩_∩)O~
PPT还有锐捷网络的logo,也算给打个广告吧\(^o^)/~
cache.pdf
0
上一篇:对付内存改写问题的银弹
下一篇:关于".set push"和".set pop"
相关热门文章
- SHTML是什么_SSI有什么用...
- 卡尔曼滤波的原理说明...
- shell中字符串操作
- 关于java中的“错误:找不到或...
- linux设备驱动归纳总结...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
nizqsut2011-03-02 12:35:14
beyondfly: MIPS架构是个好东西.....
Just for funny 回复 | 举报
beyondfly2011-03-01 09:33:33
MIPS架构是个好东西
回复 | 举报
评论热议
0 0
- MIPS架构培训之Cache原理
- MIPS架构培训之MMU原理
- See MIPS Run 之 Cache
- 计算机组成原理之MIPS指令系统和MIPS体系结构
- MIPS架构之start.s汇编分析
- [转载]Cache for MIPS
- MIPS--cache管理
- MIPS cache指令 .
- MIPS cache指令 .
- MIPS cache指令
- Mips cache lock
- Cache for MIPS
- flask-cache 之缓存cache实现原理
- Read MIPS Run2nd MIPS cache(转)
- 架构之路之spring缓存cache
- 计算机组成原理之MIPS汇编:冒泡排序
- MIPS指令集架构
- MIPS体系架构
- 【转载】树状数组(简单)
- 上一个十年,下一个十年
- 【kuandui】二叉堆
- 对付内存改写问题的银弹
- 【最短路径】Floyd算法
- MIPS架构培训之Cache原理
- 【转载】最小生成树
- tomcat启动报java.io.EOFException错误
- MIPS CP0 Hazards问题--从Release1到Release2
- 【数据结构】树状数组
- MIPS架构培训之MMU原理
- 【数据结构】线段树
- 异常捕捉与反汇编分析
- 【总结】【线段树】2016.1.24CXB
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
queendom韩综
韩综恋爱的滋味2019全集中字
韩综巴士
韩美
韩美口腔
东莞韩美
内江韩美
韩美眼镜
韩美关系
韩美国际
韩美整形美容医院
韩美整形美容医院地址
韩美人
南昌韩美整形医院
济南韩美整形医院
惠州美容医院
北京韩美药品有限公司
南昌韩美整形美容医院
韩美药业
韩美美容院怎么样
韩美制药
韩美公司
韩美药品
韩美医疗美容
韩美割双眼皮怎么样
韩翃
韩翃怎么读
韩翃的诗
韩娇娇韩翊
韩聪
隋文静韩聪是一对吗
韩聪隋文静世锦赛夺冠
韩都
hstyle是什么牌子
amh是什么牌子
韩都衣舍旗下品牌
韩衣舍旗舰店
hstyle
韩舞
简单的韩舞
韩舞教学