微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 硬件电路设计 > 硬件电路设计讨论 > cpu的cache都是SRAM做的吗?

cpu的cache都是SRAM做的吗?

时间:12-12 整理:3721RD 点击:
静态的存储器,下次刷新之前保持不变?
它的读写速度为什么要比DRAM高呢,都是晶体管的东西啊,速度优势的原理在哪里?

静态的刷什么新

大多是sram
不全是

从直观猜测,L1 Cache比SDRAM快的原因是:
1)cache一般是CAM(tag)+SRAM(data),L1 cache的clock很快(假定和CPU clock一样),
CAM并行查找,如果cache hit应该一两个CPU cycle就可以就可以得到数据。由于设计在
片内,cache的位宽应该会比较大,应该有多个port以增大带宽。cache在现在的CPU中是
如此重要,所以它是精心设计的,我猜应该不能和一般的SRAM一概而论。比如我提出几
个问题:不同架构同一主频的CPU L1 cache latency是一样的吗? 统一架构同一主频CP
U L1 cache latency是一样的吗?应该是不一样的,除了追求最小的latency,这里应该
还会有一些tradeoff,所以大家都是cache因为设计的不同速度也会有差异。
我们再来看看L1 cache和L2 cache,可以猜测L1比L2快的原因是L1的clock快。但真的只
是这样吗?如果clock是2:1没有其它区别,那是不是说纯粹L2 cache访问时间(不考虑
L1 miss的查找和L2 hit的查找时间)是L1 cache访问时间的两倍?如果再考虑位宽,访
问时间的差异应该在10倍以内?
另外我觉得cache的访问时序不同于有的接在片外的SRAM,那个local bus的SRAM clock
比较慢,而且访问时序上有延时,比如从CS到OE/WE,OE/WE到数据有效一般都有延时,
根本原因应该和片外SRAM工艺(或者功耗)什么的有关?因为片外SRAM本来就不需要那
么快?
2) 由于功耗的原因,SDRAM时钟频率做不上去。另外从时序上看,RAS, RCD,CA
S这些最基本的latency都要好几个DDR cycles。时钟越高一般latency越大。如果运气不
好则需要更多时间。还有SDRAM定期需要autorefresh,这个也要占用不少带宽。可是SD
RAM为什么要设计成这样呢?auto refresh是cost和speed的tradeoff,时钟频率做不
快时考虑到功耗,那为什么行和列要分开呢为什么要这么复杂的时序?是因为要减少pa
ckage的规模吗?根本原因还是工艺或者功耗什么的吗?
3)以DDR2-800为例,DDR CLK=2.5ns;假定CPU L1 cache clock=1G,CPU CLK=1ns,差别是
2.5倍;
估算位宽差别是4倍(256bit vs. 64bit),由于不是每个cycle都有数据,所以差别小于4
估算L1 cache 延时为2 CPU cycles,而DDR2平均访问延时为10 DDR cycles,这样差别是
5倍。
加上autorefresh影响,估算SDRAM和L1 cache访问差别应该在50倍左右?
访问时间的实际测算值,我刚才google了一下,某款CPU+某个SDRAM的测试结果基
本是:
L1 cache latency:0.5ns
L2 cache latency: 7ns
SDRAM latency: 100ns

L2 cache 7ns是一般异步sram的水平
L1 cache 0.5ns是怎么做到的?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top