
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
随着互联网的不断发展,越来越多的人都在学习计算机编程开发技术,而今天我们就通过案例分析来了解一下,软件开发cache策略都有哪些类型。
Cache分配策略
cache的分配策略(Cacheallocationpolicy)是指我们什么情况下应该为数据分配cacheline。cache分配策略分为读和写两种情况。
读分配(readallocation)
当CPU读数据时,发生cache缺失,这种情况下都会分配一个cacheline缓存从主存读取的数据。默认情况下,cache都支持读分配。
写分配(writeallocation)
当CPU写数据发生cache缺失时,才会考虑写分配策略。当我们不支持写分配的情况下,写指令只会更新主存数据,然后就结束了。当支持写分配的时候,我们先从主存中加载数据到cacheline中(相当于先做个读分配动作),然后会更新cacheline中的数据。
Cache更新策略
cache更新策略(Cacheupdatepolicy)是指当发生cache命中时,写操作应该如何更新数据。cache更新策略分成两种:写直通和回写。
写直通(writethrough)
当CPU执行store指令并在cache命中时,我们更新cache中的数据并且更新主存中的数据。cache和主存的数据始终保持一致。
写回(writeback)
当CPU执行store指令并在cache命中时,我们只更新cache中的数据。并且每个cacheline中会有一个bit位记录数据是否被修改过,称之为dirtybit(翻翻前面的图片,cacheline旁边有一个D就是dirtybit)。我们会将dirtybit置位。主存中的数据只会在cacheline被替换或者显示clean操作时更新。因此,主存中的数据可能是未修改的数据,而修改的数据躺在cacheline中。cache和主存的数据可能不一致。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。