SLP(Chapter 12):Cache和Cache-Aware编程

0 简介

cache是什么?

  • 广义上:k是k+1的cache

  • 狭义上:寄存器和内存之间的存储空间,由SRAM,处理逻辑地址

  • Cache size

  • Block size

  • Miss or hit

  • Pre-fetch or demand fetch

  • Placement

  • Replacement
    FIFO
    LRU最近用的最少的,淘汰最长时间没有被使用的页面
    LFU最不经常使用,淘汰使用次数最少的

  • Write/update
    Write through 直写:写入cache时,也写入内存
    Write back 写回:写入cache后,当要被换掉才写入内存

1 缓存类型(根据实现分类)

映射方式

映射方式 映射特点 地址 对地址的描述
直接映射Direct 多个内存块对一个cache块 在这里插入图片描述 标记:指明当前 Cache 是主存中哪一块的副本,位数由地址位数减去另外两部分得到
Cache字块地址:由block数log2确定位数
字块内地址:由word大小确定位数log sizeof(word)
全关联映射 full associative 随意乱存 在这里插入图片描述 字块内地址:由word大小确定位数log sizeof(word)
组关联映射 set 组间直接映射,组内随意 在这里插入图片描述
字块内地址:由word大小确定位数log sizeof(word)

组关联的所以位置

  • 将高位作为索引:内存相邻的块映射到同一个block(没有利用号空间局部性)
  • 将低位作为索引:连续内存行,映射到不同的缓存行

有效访问时间:EAT

  • 与命中率有关,是算术平均值

TLB:转址旁路缓存,存地址


2 编写缓存友好代码和缓存感知优化 Writing caching friendly code and cache-aware optimization

重点:局部性原理的使用

case 类型 原本代码 修改后 解释
1 Instruction cache overflow 在这里插入图片描述 在这里插入图片描述 大循环违背局部性原理
2 Cache Collisions 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述在这里插入图片描述
3 Insufficient spatial locality 在这里插入图片描述在这里插入图片描述 在这里插入图片描述
4 Insufficient temporal locality 在这里插入图片描述 在这里插入图片描述

矩阵乘法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章