文章目录
Cache基础
为什么要学习Cache?本人是研究NoC总线的,NoC主要应用于大量CPU core的互联,NoC的本质在于利用存储资源构建路由拓扑,将主从机挂在路由器下,实现将计算和通信解耦合。单个路由节点的设计并不复杂,本质就是路由计算+交叉开关,总线的关键难度在于验证,要支持缓存一致性,并且在拓扑复杂、异构负载的情况下保证高可靠性。因此,学习Cache是精通NoC总线的前置知识,这里补充一下相关基础。时间有限,没有绘制精美的图片,有兴趣深入的可以读本文的【参考文献】
CPU所计算的数据要从内存中取,计算的结果要写入到内存。内存价格低,容量大,读写速度慢cache价格高,容量小,读写速度快。
因此,CPU和内存间往往会加Cache,来加速存取数据的速度。
Cache line:Cache和Memory之间数据传输的最小单位,因为从memory中取数据到cache不会一个byte一个byte取,效率太低。通常一个Cache line是32byte或64byte,在CHI-E中一个Cache line是64 byte
内存地址A的数据存在Cache的什么位置?——Cache和Memory的地址映射方式
cpu要读内存一个数据,优先从cache中取,cache中没有再去内存中取,以节省时间。这就涉及到一个问题,内存中的数据存在cache中的什么位置。即cache和memory的地址映射,