分类: LINUX
2017-09-11 09:52:19
原文地址:CACHE 写透式与回写式 作者:chumojing
直写式WT(Write Through)与回写式WB(Write Back)指的是缓冲内存的工作方式
直写式缓存方式: 当CPU要将数据写入内存时,除了更新缓冲内存上的数据外,也将数据写在SDRAM中以维持主存与缓冲内存的一致性,当要写入内存的数据多起来的话,速度自然就慢了下来.
回写式缓存方式: 当CPU要将数据写入内存时,只会先更新缓冲内存上的数据,随后再让缓冲内存在总线不塞车的时候才把数据写回SDRAM,所以速度自然快得多
白皮书规定:
==========================================
在回写式规定中,高速缓存将充当缓冲区。处理器开始写入循环时,高速缓存将接收数据并停止循环。当系统总线可用时,高速缓存再将数据写回主内存
在直写式规定中,处理器会直接将高速缓存中的数据写入主内存。直至将数据存储至主内存,写入循环才能完成。
优劣分析:
=========================================
两种方式各有利弊,直写缓存方法利用了高速缓存中的数据始终与主存储器中数据匹配的特点。但是,需要的总线周期却非常耗时,从而降低性能。回写缓存可以维持性能,因为写入始终是在“爆发”中进行的,因而运行所需的总线周期将大大减少。
两个CPU,或者CPU与DMA同时共享一块物理内存时,writer在写完后,要write back,这样另一个reader才能看到它写入的数据;在writer变为reader的时候,需要invalidate,否则看不到另一个 writer写入的数据。所以在共享的时候,需要同时做writeback和invalidate。