MIPS架构培训之Cache原理

这篇博客深入探讨了MIPS架构中的Cache原理,针对内存访问效率问题进行了阐述,适合计算机体系结构学习者和嵌入式开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


说明:来自培训讲稿,并隐去与公司系统软件相关部分内容。

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值