dirty考虑

100 阅读1分钟

如果在写回模式下,读不命中时,若是首次访问cache-line,则直接通过axi读取数据更新data-memory,需要注意break

image.png 当valid为高,且tag-timer计数已满时,需要替换策略,此时需要判断该cache-line是否为dirty 如果不是dirty,那么就直接更新掉tag-timer最大的那一路

image.png 如果是dirty的话,就需要先把这一块的数据先通过axi写进主存,再从主存读取数据到data-memory

image.png

image.png 写命中时会把dirty记为高

image.png 首次写不命中与读不命中相似

image.png 而当tag-timer计数满了之后也需要判断dirty来确定是否需要写回主存

image.png 当dirty为低时候,就需要直接通过axi把数据从主存更新到data-memory,再把写的数据更新data-memory

image.png flush和clean操作需要给一个外部信号,将所有dirty的cache块写进主存

image.png

image.png