FTL-映射管理


映射管理

參考資料《深入淺出SSD》

映射的種類

1.塊映射

1)划分標准,以閃存的塊為映射粒度

2)注意,一個用戶邏輯塊可以映射到任意一個閃存的物理塊,但是映射前后每個頁在塊中的偏移不變

3)優缺點,映射表只存儲塊的映射->所需存儲映射表的空間小;

      連續大尺寸的讀寫性能好,但是小尺寸的寫性能很差;

    (即使只寫一個邏輯頁,也需要把整個物理塊數據讀上來,然后改變邏輯頁的數據再整個塊寫入->性能差)

4)用戶空間被化成一個個邏輯區域,每個區域與閃存塊的大小相同

 

2.頁映射

1)划分標准,以閃存的頁為映射粒度 ,一個邏輯頁可以映射到任一物理頁中

2)注意,由於閃存頁遠比閃存塊多,因此需要更多的空間來存儲映射表

3)優缺點,性能很好,尤其體現在隨機寫上

4)用戶空間被化成一個個邏輯區域,每個區域與閃存頁的大小相同

 

3.混合映射

1)划分標准,塊映射和頁映射的結合

2)一個邏輯塊映射到任一物理塊,但是塊中的每個頁的偏移並不是固定不變的,塊內采用頁映射的方式,一個邏輯塊的邏輯頁可以映射

  到對應物理塊的任一頁,因此它所需要的空間以及性能都是介於塊映射和頁映射之間的。

3)用戶空間划分成一個個邏輯區域,邏輯區域和閃存塊大小相同,每個邏輯塊對應一個閃存塊,但邏輯塊內部有分成一個個邏輯頁,與對應閃存頁

  隨機對應

 

映射原理

1.用戶通過LBA訪問SSD,每個LBA代表一個邏輯塊(邏輯頁,用戶訪問SSD的基本的單元,大小:512B/4KB/8KB)

2.SSD內部,SSD主控是以閃存頁(物理頁)為基本單元讀寫閃存的

3.用戶寫入一個邏輯頁數據,SSD主控會找一個物理頁把數據寫入,SSD內部的映射表記錄了這條映射

4.下次用戶再讀這個邏輯頁時,可以通過映射表中的映射關系找到閃存物理頁中存儲的數據

 

5.案例

SSD內部維護一張邏輯頁到物理頁地址轉換的映射表

        V

用戶每寫入一個邏輯頁,就會產生一個新的映射關系,

這個新的映射關系會加入或者更改映射表

        V

當讀取某個邏輯頁時,SSD主控首先查找映射表,找到該邏輯頁對應的物理頁,

然后訪問閃存讀取相應的數據

 

6.映射表的大小

SSD大小為256G,邏輯塊數據大小為4KB -> 256GB/4KB = 64M個邏輯數據塊; 

每個邏輯數據塊在閃存空間都有一個存儲位置,即一個映射,閃存大小用4字節表示;

存儲64M個邏輯數據塊在閃存中的地址需要64M*4B = 256M大小的映射表。

總結:映射表大小為SSD容量的1/1024(物理地址用4B表示,映射頁大小為4KB)

 

7.對於帶DRAM的SSD,DRAM的作用就是用來存儲映射表的,優點是映射關系可以快速訪問,如圖

例子:SSD工作時,只需查找DRAM中的映射表,獲取到物理地址后讀取閃存中的數據,只需訪問一次閃存

 

 

8.不帶DRAM的SSD,一般采用二級映射,如圖

 二級表是L2P表(Logical Address to Physical address),它被分成一塊一塊的,小部分緩存在RAM,大部分都存在閃存上

    一級映射常駐RAM,存儲這些塊在閃存中的物理地址,它不是很大,如圖

例子:SSD工作時,首先查看邏輯頁對應的映射關系是否在RAM內,如果在直接根據映射關系讀取閃存中的數據,

如果不在,首先需要把映射關系從閃存中讀取出來,然后再根據這個映射關系讀取數據,需要讀取量詞閃存,底層有效帶寬減少

 

 

 

 

9.對於順序讀,映射關系連續,一次映射塊的讀可以滿足很多用戶數據的讀,不帶DRAM的SSD可以有很好的順序讀性能,

   對於隨機讀,映射關系分散,一次映射關系的加載基本只能滿足一筆邏輯頁的讀,需要訪問量詞閃存才能完成讀操作,性能相對會差

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM