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 在這裏插入圖片描述 在這裏插入圖片描述

矩陣乘法

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

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