admin管理员组文章数量:1130349
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的属性呢?
我们在说
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的属性呢?
我们在说
版权声明:本文标题:cache读写策略(write-backthrough)与分配策略(allocate) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/jiaocheng/1755027787a2755287.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论