首页 > Other > RAID卡 常见参数说明
2014
09-15

RAID卡 常见参数说明

为了保证cache和memory的数据一致性,通常有三种方法:

1〉write through:CPU向cache写入数据时,同时向memory也写一份,使cache和memory的数据保持一致.优点是简单,缺点是每次都要访问memory,速度比较慢.

2〉post write:CPU更新cache数据时,把更新的数据写入到一个更新缓冲器,在合适的时候才对memory进行更新.这样可以提高cache访问速度,但是,在数据连续被更新两次以上的时候,缓冲区将不够使用,被迫同时更新memory.

3〉write back:CPU更新cache时,只是把更新的cache区标记一下,并不同步更新memory.只是在cache区要被新进入的数据取代时,才更新 memory.这样做的原因是考虑到很多时候cache存入的是中间结果,没有必要同步更新memory.优点是CPU执行的效率提高,缺点是实现起来技 术比较复杂.

 

对于cache的算法.大方面有两种,Write-Through(通写)和Write-Back(回写).

Write-Through,也就是说OS发送的处理data的请求,一直要等到全部memory里面的data正确写到稳定存储media(如硬盘) 中,然后返回给OS报告处理完毕,然后OS才会去update其状态;这种情况下,通常不会有dirty cache.

而Write-Back,就是在OS发送处理data的请求后,该算法会将它用buffer存起来,并在没有正确写到稳定存储media(如硬盘)中前,就告诉OS处理完毕,然后OS就会去update;

但是要是此时掉电或其他故障,buffer的数据没有被写入稳定存储media(如硬盘),那么os update的信息就和media中的信息不一致.为了避免这样,所以才用NVRAM,它在调电后数据仍然不丢失,但是在被重新上电后,其数据会是 dirty的,也就是楼主所提到的dirty cache(如何将dirty cache更新到media,这是Write-Back应该做的事).    这和买卖东西相似,Write-Through就相当于你亲自去买东西,你买到什么就可以亲手拿到;而Write-Back就和中介差不多,你给了中介 钱,然后它告诉你说你的东西买到了,然后就相信拿到这个东西了,但是要是出现特殊情况中介跑了(掉链子了),你再去检查,东西原来没有真正到手.

 

1.Cache的两个类型

–Write Through

当写数据进Cache时,也同时更新了相应的Memory里的内容

–Write back

只是写到Cache里,Memory的内容要等到cache保存的要被别的数据替换或者系统做cache flush时,才会被更新.

2.Cache的两个函数

–Flush

把Cache内容写回Memory,当Cache为Write through,不需要Flush

–Invalidate

把Cache内容直接丢掉不要.

3.Cache的使用场合

当有DMA在使用memory的时候,一般要用到cache的处理.因为DMA在访问memory时是不经过cache的.比较典型的比如在 Ethernet,wireless,USB等driver里,DMA会操作descriptors和packet buffers,Driver要做这些处理

–如果driver使用descripter和packet buffer的地址都是cache的地址,那么

a).Driver在读descripter里一些状态比如Owned by CPU/DMA,有没有收到包时,要对descripter当前结构里的内容做cache invalidate,收到packet后,也要对packet buffer做cache invalidate

b).Driver在写descripter里一些状态比如Owned by DMA,要发送包时,要对descripter当前结构里的内容做cache flush,发送packet时,也要对packet buffer做cache flush

–有些driver会对descripter使用uncache 地址,那么上面两种情况里invalidate/flush就不用做了.一般很少会对packet buffer也用uncache地址的,因为对packet内容的处理将会很频繁,使用uncache会很慢.而descripter一般由于结构比较 小,如果也使用cache地址的话,做invalidate/flush的时间消耗可能会比uncache的还要多.

最后编辑:
作者:王, 帅
这个作者貌似有点懒,什么都没有留下。

留下一个回复

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据