Cache写:为什么写回法搭配写分配法?全写法搭配非写分配法?

1.

首先是写回法和写直达法(全写法),这是在cache命中时所采用的两种方法:其中写回法指的是若写cache则仅修改cache’中的内容直到cache被换出时才修改主存中的内容;而写直达法是修改cache时同时修改主存。

2.

其次是写分配法和非写分配法,这是在cache未命中时所采用的两种方法:其中写分配法是把这个未在cache中的块加载到cache中后在进行写;而非写分配法指的是直接把这个块在主存中写不进行调块。

3.为什么写回法搭配写分配法?(cache与主存之间采用)

若搭配非写分配法,写未命中时会直接修改主存中的内容,若一直有新的写入会一直修改主存。
若搭配写分配法,写未命中会调入cache并修改,之后的新的写会直接修改cache,直到被替换后再写入主存中。
相比较而言选择写分配法。

4.为什么全写法搭配非写分配法?(各级cache之间采用)

若搭配写分配法,写未命中会调入cache并修改,之后的新的写入会同时修改cache和主存。
若搭配非写分配法,写未命中时会直接修改主存中的内容,若一直有新的写入会一直修改主存。
相比较而言选择非写分配法。

5.补充:

多个cpu各自拥有自己的cache时为了保证数据的一致性采用播写法或者写作废:播写法,即一个cache中的副本修改了通知其他的cpu的cache都修改;写作废,有一个cache中的块被修改了,其他的cache凡是有这个快的副本的全部作废,当作缺块处理。

猜你喜欢

转载自blog.csdn.net/weixin_44142774/article/details/112557710