Cache基本原理
Cache基本原理 Cache基本原理
Cache基本原理 六部/nizqsut 部门/作者
- Page 2 and 3: 目录 • 为什么会有Cache?
- Page 4 and 5: SRAM和DRAM? • SRAM和DRAM比较
- Page 6 and 7: Cache逻辑 www.ruijie.com.cn 第 6
- Page 8 and 9: Cache的寻址过程 问题2:怎样
- Page 10 and 11: Cache的替换策略 • LRU(Least
- Page 12 and 13: Cache指令 www.ruijie.com.cn 第 1
- Page 14: Q A Thanks Thanks Thanks! www.ruiji
<strong>Cache基本原理</strong><br />
六部/nizqsut<br />
部门/作者
目录<br />
• 为什么会有Cache?<br />
• SRAM和DRAM<br />
• Cache逻辑<br />
• Cache的类型和替换策略<br />
• Cache指令<br />
www.ruijie.com.cn 第 2页 / 共 4页
为什么会有Cache?<br />
• 存储分层<br />
• 局部性原理<br />
• 使CPU的pipeline无间歇的运转<br />
• 硬件逻辑入手,了解Cache的结构<br />
www.ruijie.com.cn 第 3页 / 共 4页
SRAM和DRAM?<br />
• SRAM和DRAM比较<br />
› 基本单元的实现<br />
» Sram 双稳态(6个晶体管),不需要刷新<br />
» Dram 单稳态(1个晶体管),需定期刷先<br />
› 工艺/成本/速度<br />
» Sram纯逻辑工艺,方便集成到芯片内部、访问速度快(门级延时)。但是需<br />
要晶体管数目多、面积大,成本高。<br />
» Dram工艺复杂,集成到芯片内部很困难、访问速度慢(延时很大)。但需要<br />
晶体管数目少、成本低。<br />
» 同样容量的sram面积是dram的3倍<br />
Cache要求访问速度快,所以Cache的存储单元通常是SRAM。<br />
问题1:用dram做cache是否可能?<br />
www.ruijie.com.cn 第 4页 / 共 4页
Cache逻辑<br />
• Ways<br />
• Set associative<br />
• Cache line<br />
• Cache size = Ways * Sets * Cache line<br />
• Eg. BCM53003 Cache size<br />
› 32KByte = 4(Ways) * 256(Sets) * 32Byte(Cache line)<br />
辅助电路:多路选择器和比较器<br />
www.ruijie.com.cn 第 5页 / 共 4页
Cache逻辑<br />
www.ruijie.com.cn 第 6页 / 共 4页
固定地址映射<br />
• 固定TLB映射<br />
www.ruijie.com.cn<br />
第 7页 / 共 4页
Cache的寻址过程<br />
问题2:怎样加快上图的寻址过程?<br />
www.ruijie.com.cn<br />
第 8页 / 共 4页
Cache类型<br />
• Write-back<br />
• Write-through<br />
• 问题3:write-buffer和cache两个概念?<br />
• 问题4:如何保证Cache一致性?<br />
www.ruijie.com.cn 第 9页 / 共 4页
Cache的替换策略<br />
• LRU(Least Recently Used)、伪LRU<br />
• LRF(Least Recently Fill)<br />
• Random<br />
• WLRU - 王大师发明的,有兴趣的可以google下。<br />
• LRU实现需要额外的硬件实现,Ways不能太大否则LRU实现太复杂。<br />
www.ruijie.com.cn 第 10页 / 共 4页
Cache指令<br />
• Invalidate range of locations<br />
• Write-back range of locations<br />
• Invalidate entire cache<br />
• Initialize caches<br />
www.ruijie.com.cn<br />
第 11页 / 共 4页
Cache指令<br />
www.ruijie.com.cn 第 12页 / 共 4页
回顾<br />
• Cache对于软件人员来说,大多数情况都是透明的。<br />
但是平台有时候需要处理一些Cache不一致导致的问题,<br />
因此了解Cache的原理,对写底层驱动和处理一些Cache不一致性的问题<br />
有帮助。<br />
• 重点是:Cache逻辑结构、Cache一致性问题<br />
www.ruijie.com.cn 第 13页 / 共 4页
Q<br />
A<br />
Thanks Thanks Thanks!<br />
www.ruijie.com.cn<br />
第 14页 / 共 4页