2009年3月29日星期日

DSP CACHE操作选项说明

直写式(write
through),也叫写透。即CPU在向Cache写入数据的同时,也把数据写入主存以保证Cache和主存中相应单元数据的一致性,其特点是简单可靠,但由于CPU每次更新时都要对主存写入,速度必然受影响。    
回写式(write
back)即CPU只向Cache写入,并用标记加以注明,直到Cache中被写过的块要被进入的信息块取代时,才一次写入主存。这种方式考虑到写入的往往是中间结果,每次写入主存速度慢而且不必要。其特点是速度快,避免了不必要的冗余写操作,但结构上较复杂。 
当CPU要进行写入操作时,只把数据写入Cache,而不直接写入主内存。这时,Cache与主内存之间会出现暂时不一致的数据块。当Cache中的不一致数据块将要被替代时,再把数据写回主内存,从而使Cache中的数据与主内存中的数据又再保持一致。在此方式下,需要在Cache中加入一个控制位(Dirty
bit),若Cache中的某数据块是由CPU写入的,则控制位=1,否则控制位=0。发生块替代时,Cache先检查被替代块的控制位,若控制位=0,则无需把内容写回主内存,若控制位=1,则执行写回操作。这样做的好处是当CPU多次刷新同一数据块时,只需把最后的结果写回主内存即可,从而避免了重复写入,因而具有较高的效率。在早期版本的BIOS中,用户还可以对采用写通方式还是写回方式进行设置,但在新版本的BIOS中已取消了这一设置。
可以认为Dirty表示cache中的数据被更改了
invalidate()则将内存中数据写入高速缓冲存储器。
因此,可以简单认为:在写之前需要invaliate,(invalidate里包含了writeback操作)
若一个cache是dirty的,则若需要对这块cache进行写操作时,需要将它writeback。

没有评论: