发布者:上海IT外包来源:http://www.lanmon.net点击数:334
蓝盟IT小贴士,来喽!
每个CPU缓存行标记为四种状态
m (已修改) :
高速缓存线仅在CPU高速缓存中进行高速缓存和修改,并且与主内存数据不匹配,因此必须在将来的某个时间点将高速缓存线中的数据写入主内存。 写入主内存后,高速缓存线处于共享状态。
e (独占,独占)
高速缓存线仅被高速缓存到其CPU高速缓存中,与主存储数据一致,随时在其他CPU读取其存储器时变为共享( shared )状态,同样,在CPU变更高速缓存的内容时变为m状态。
s (共享,共享)
此状态意味着多个CPU可能缓存高速缓存线,每个高速缓存与主存储器数据匹配,并且如果一个CPU改变高速缓存线,则可以禁用其他CPU的高速缓存线(变为禁用状态)。
I (无效,Invalid )
缓存无效(其他CPU可能更改了缓存行)。
在典型的系统中,多个缓存共享主内存总线,对应的CPU发出读写请求,缓存的目的是减少CPU共享主内存读写的次数。
除I状况外,高速缓存能够满足cpu的读取请求,并且必须从主存储器读取演进( invalid )高速缓存线来满足cpu的请求。
写请求必须在m或e状态下运行。 如果高速缓存行处于s状态,则必须将高速缓存行设置为Invalid (即使在高速缓存行中的不同位置,不同的CPU也不能同时更改同一高速缓存行)。
m状态的高速缓存线必须经常监视其高速缓存线的相对主存储器的读取,直到其写入主存储器并且延迟到s状态。
分享到: