cache读写策略(write-backthrough)与分配策略(allocate)

1.allocate 先确定一下allocate的概念,就是在cache miss的时候,去内存中读写数据过程中给这个数据分配cacheLine并存储到cache。 其中write-allocate可以分为两种情况: 先读要改写数据对应

1.allocate

先确定一下allocate的概念,就是在cache miss的时候,去内存中读写数据过程中给这个数据分配cacheLine并存储到cache。

其中write-allocate可以分为两种情况:

  • 先读要改写数据对应的cacheLine大小的数据回来,存储到新分配的cacheLine上,然后将要修改的写数据更新到cacheLine中
  • 直接分配cacheLine,将数据存储到该cacheLine

以上两种fill cacheline的过程适用于不同的情况,第一种适用于写数据不是整个cacheLine大小,由于和内存交互的最小单元是cacheLine,所以只能先读整个cacheLine,这个过程称为读改写

显然第二种就属于完全替换整个cacheLine的情况,当然完全替换整个cacheLine也可以采用第一种方式。

必须要分清的是read trans miss对应的是read allocate;而write trans miss对应的是write allocate,即使write miss后allocate的cacheLine的fill可能需要从内存中读数据。

2.cache的读策略与read allocate

上表是ArmV8架构手册给出的memType及mem属性,在cacheability中cacheable为何只有write-Through Cacheable和Write-Back Cacheable而没有提到read的属性呢?

我们在说

发布者:admin,转转请注明出处:http://www.yc00.com/web/1755027787a5228525.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信