日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【计算机基础】存储器层次 Memory hierarchy

發布時間:2024/9/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【计算机基础】存储器层次 Memory hierarchy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Memory Hierarchy

      • 我們是如何構建指令 / 數據存儲器的?
        • 內存時序
        • 為什么Memory hierarchy有效?
        • 存儲器技術
        • Cache的基本原理
        • Cache訪問
          • 訪問缺失
        • Cache性能的評估和改進
        • 減少cache miss的方法
        • 替換塊的選擇
        • Cache ABC
          • 訪問缺失分類 Classifiying Misses

我們是如何構建指令 / 數據存儲器的?

以64位Arm處理器為例,內部有32個寄存器

  • Register file? Flip-flop構建

    • 32個64-bit 寄存器 -> 2Kb = 256Bytes
    • 可以使用多端口,bigger and slower but still ok
  • Instruction / data memory? 也是Flip-flop構建

    • each instruciton address has 64 bits

      -> 2^64 addressible unit

      -> 2^64 bytes -> 2^4 Exbi-bytes = 16EB (不可能的

  • “Primary” instruction / data memory 是單端口的SRAM

    • “Primary” = 在數據通路中

    • 只包含了一個memory的動態的子集

    • 缺失的部分到下一級內存查找

內存時序

對于內存元件M來說:

  • Access:從M中讀或寫

  • Hit:從M中獲取所需數據

  • Miss:M中找不到所需數據

    • 必須從其他的部分得到
    • 沒有“miss in register file” 的概念
  • Fill:將數據放到M

  • %_miss = miss rate(未命中率) :#misses / #access

  • t_hit:從M中讀或寫數據所用時間

  • t_miss:將數據送到M所用時間

  • 表現評估:平均訪問時間(average access time)

    t_avg = t_hit + %_miss * t_miss

Problem: 很難在同一結構中做到低 t_hit 和低 %_miss

  • 大內存的結構 -> 低%_miss、高t_hit

    因為內存大所以找到所需數據的概率較高,未命中率低

    但尋找數據的時間相應會提高

  • 小內存的結構 -> 高%_miss、低t_hit

    因為內存小所以找到所需數據的概率較低,未命中率高

    尋找數據的時間降低

Solution: 使用Memory hierarchy,即存儲器分層,中間以總線相連

M1 <-> M2 <-> M3 <-> M4 <-> M <->

  • 層次越高:內存越小 -> 高%_miss、低t_hit
  • 層次越低:內存越大 -> 低%_miss、高t_hit

M1中存儲最頻繁訪問的數據,

M2中存儲M1 + next most frequently 訪問的數據

為什么Memory hierarchy有效?

  • 時間局部性

    最近被訪問的指令/數據更可能在短時間內被訪問

  • 空間局部性

    最近被訪問的指令/數據附近的指令/數據更可能在短時間內被訪問

所以,存儲器系統是一個具有不同容量、成本和訪問時間的存儲設備的層次結構。存儲器的容量和訪問時間隨著離處理器距離的增加而增加

存儲器技術

  • DRAM

  • SRAM

  • Flash

    是一種電可擦除的可編程制度存儲器(EEPROM)

  • 磁盤

Cache的基本原理

直接映射(direct mapped):每個存儲器地址僅僅對應到cache的一個位置。

幾乎所有的直接映射cache都使用以下的映射方法:

? (塊地址) mod (cache中的塊數)

主存地址0-31被映射到cache的相同位置,該cache有8個字,所以地址X被直接映射到cache字X mod 8,即低log2(8) = 3位都被用作cache索引(index)。所以地址00001、01001、10001、11001都對應于cache中第101塊。

由于cache中的每個位置對應于主存中多個不同的地址,所以我們在cache中增加標記(tag) 。標記包含了地址的高位(如上圖的高兩位),用于判斷cache中的字是否就是所請求的字。

還有幾位偏置位(offset bits) 用來確定字中的byte

除此之外,cache中還需要增加一個有效位(valid bit) 來標識一個塊是否含有一個有效地址。

所以,cache的地址可以分為三個部分:

  • offset bit:最低 log2(block-size in bytes) bits

  • Index:接下來log2(number-of-sets) bits

  • Tag: 剩下的所有位

    (valid bit不在地址中)

Example cache:

8 sets, 32-bit words = 4-byte blocks, 16 bit address

-> 8 sets = 3 bits index

-> 4-byte blocks = 2 bits offset

-> 16 - 3 - 2 = 11 bits of tag

Cache訪問

下面是對一個容量為8 blocks的空cache進行9次訪問的一個序列(5-bit address, 3-bit index) 暫時不包括offset bits


訪問缺失

當出現訪問缺失(cache miss)的時候,由兩部分來處理:處理器控制單元(Cache controller)和進行初始化主存訪問和重新填充cache的獨立控制器

如果cache不命中,那么它需要存儲器層次結構中的下一層取出被請求的塊,然后將新的塊存儲在組索引位指示的組中的一個高速緩存行中

Cache性能的評估和改進

減少cache miss的方法

直接映射(direct mapping):一個塊只能放到cache中一個明確的位置。是一種極端的情況

另一種極端的情況:

全相聯(fully associative):一個塊可以被放置在cache中的任何位置,因此需要檢索cache中所有的項,所以全相聯只適合塊數較少的cache。

介于直接映射和全相聯之間的設計是組相聯(set associative):塊可以放置到cache中的部分位置(至少兩個)。一個塊首先被直接映射到一個組,然后檢索該組中所有的塊是否匹配。

For example:在直接映射的方式下,主存塊12只能放置在cache中唯一的塊中,該塊為(12 mod 8)= 4。在兩路組相聯cache中,有四個組,主存塊12必須放在第(12 mod 4)= 0組中,主存塊可以放在該組的任何位置。在全相聯的方式下,塊地址為12的主存塊可以放在cache中8個塊的任意一塊。

提高相聯度的好處在于它通常能夠降低缺失率,缺點則是增加了命中時間。

替換塊的選擇

當直接映射的cache發生缺失時,被請求的塊只能放置于cache的唯一位置,而原先占據那個位置的塊就必須被替換掉。

在組相聯的cache中,被請求的塊放置在什么位置需要進行選擇,因此替換哪一塊也需要進行選擇。

在全相聯cache中,所有的塊都可能被替換。

  • 最常用的方法是最近最少使用(Least Recently Used,LRU)法,被替換的塊是最久沒有使用的那一塊。

對于一個兩路組相聯cache,跟蹤組中兩個數據項的使用情況可以這樣實現:在每組中單獨保留一位,通過設置該位指出哪一項被訪問過。

當相聯度提高時,LRU的執行就變得困難。

  • Random 隨機選一項被替換
  • FIFO
  • NMRU(not most recently used)

Cache ABC

  • Associativity

Decreases conflict misses

Increases t_hit

  • Block size

Increases conflict misses

Decrases compulsory misses

little effect on t_hit, may exacerbate t_miss

  • Capacity

Decreases capacity misses

Increases t_hit

訪問缺失分類 Classifiying Misses

Compulsory(cold) : 從來沒見過這個地址 -> block size ??

Capacity :cache太小了 -> cache size ??

Conflict:cache相聯度太低 -> associativity??

總結

以上是生活随笔為你收集整理的【计算机基础】存储器层次 Memory hierarchy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。