Icache和Dcache

一、简单讲:

都是属于缓存,而且都是cpu缓存,icache 用于缓存指令,dcache用于缓存数据。

二、由来:

cache本意缓存,存在一级缓存,一级缓存可以分为一级数据缓存(Data Cache,D-cache)和一级指令缓存(Instruction Cache, I-Cache).

两者分别用来存放数据以及对执行这些数据的指令进行即时编码。

三、位置:

一级缓存也叫做L1,那么对应的也有L2,L3。

L1,L2缓存每个核都有,L3缓存:在同一个CPU插槽之间的核共享一个L3缓存。

cpu的缓存是位于cpu和内存直接的。它的容量比内存小的多,但是交换速度比内存却要快很多。cpu缓存一般直接跟cpu芯片集成或位于主板总线互连的独立芯片上。

L1,L2,L3三个缓存对应在cpu上面,是级别越小,越接近cpu,速度相应的也更快。L1是接近cpu的,它2容量最小,速度最快,相应的,L2比L1离cpu远一点,容量更大,速度较慢,L3比L2离cpu远一点,容量也相应的更大,速度更慢。

四、读取数据过程:

读取数据过程,首先在最快的缓存中寻找,L1中,如果这个缓存没有找到,继续再下个缓存L2,L3,如果都没找到,就向内存要数据,如果一次次找不到,相应的取数据消耗的时间越长。

五、计算过程:

程序和数据被加载到内存中,指令和数据被加载到cpu的缓存中,cpu执行指令,然后把结果写到告诉缓存,高速缓存中的数据再写会到内存中。

你可能感兴趣的:(缓存,icache和dcache,cpu,内存)