使用cache原因
调解CPU与主存之间速度差异,提高效率
CPU访问SDRAM之间的数据访问流程
CPU内部有L1Cache,CPU首先到L1Cahce中取数据,若Cache miss,则触发burst,通过总线到L2Cache上取数据,同样先到L2Cache中取数据,若Cache miss,则过EH2H桥,到SDRAM中取数据

还有其他的结构,每个core内一般都有各自的L1和L2 cache,其中L1 cache分为指令cache和数据cache,L2 cache可以缓存指令和数据。所有的core公用一个L3 cache,L3 cache也可以缓存指令和数据。L3 cache通过总线访问主存。
cache line
Cache line:cache访问主存的最小单位,数据在主存和缓存之间以固定大小的”块(block)”为单位传递,也就是每次从main memory读取的最小数据的单元。每个cache line除了包含数据,还包含TAG(地址信息)和状态信息。
cache associativity
Cache的替换策略决定了主存中的数据块会拷贝到cache中的哪个位置,如果对于一块数据(大小为一个cache line ),只有一个cache line与之对应,我们称之为”直接映射 (Direct map)”;如果该数据块可以和cache中的任意一个cache line对应,则称之为”全相联(Full-Associative)”而目前更多的实现方式是采用”N路组相连(N Way Set-Associative)”的方式,即内存中的某一块数据可能在cache中的N个位置出现,N可能是2,4,8

本文介绍了CPU使用Cache的原因,详细解析了CPU访问SDRAM的数据访问流程,包括L1、L2 Cache的作用。探讨了Cache Line、Cache Associativity的概念,以及不同映射策略的优缺点,如直接映射、全相联和N路组相联,并举例说明了2路组相联的工作方式。最后提到了TLB和Cache设计的目标权衡。
最低0.47元/天 解锁文章
20万+

被折叠的 条评论
为什么被折叠?



