更新主存内容
主存和缓存之间信息交换的关键是更新主存内容,一般有两种更新算法:写回法(Write Back)和写直达法(Write Through)。
写回法是指在CPU执行写操作命中Cache时,信息只写入Cache,仅当需要被替换时,才将已被写入过的Cache块先送回主存,然后再调入新的数据块。写回法包括简单写回法和采用标志位的写回法。简单写回法不管块是否更新,都进行写回操作;而采用标志位的写回法只在块被更新过时才进行写回操作。
写直达法是指利用Cache-主存存储层次在处理机和主存之间的直接通路,每当处理机写入Cach的同时,也通过此通路直接写入主存。这样在块替换时,就不必先写回主存,可以立即调入新块。
在写Cache时若不命中,无论是写回法还是写直达法,都有一个是否取数据的问题。一般有两种方法:
①不按写分配法(No Write Allocation):即当写Cache未命中时只写入主存,该写地址单元所在块不从主存调入Cache;
②写分配法(Write Allocation):即当写Cache未命中时除了写入主存外,还将写地址单元所在块从主存调入Cache。
写回法一般采用写分配,写直达法一般采用不按写分配。