ftl有三種對映位址 FTL 對映管理

2021-10-12 13:39:35 字數 1742 閱讀 6166

對映管理

參考資料《深入淺出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大小的對映表。

7.對於帶dram的ssd,dram的作用就是用來儲存對映表的,優點是對映關係可以快速訪問,如圖

8.不帶dram的ssd,一般採用二級對映,如圖

二級表是l2p表(logical address to physical address),它被分成一塊一塊的,小部分快取在ram,大部分都存在快閃儲存器上

一級對映常駐ram,儲存這些塊在快閃儲存器中的實體地址,它不是很大,如圖

例子:ssd工作時,首先檢視邏輯頁對應的對映關係是否在ram內,如果在直接根據對映關係讀取快閃儲存器中的資料,

如果不在,首先需要把對映關係從快閃儲存器中讀取出來,然後再根據這個對映關係讀取資料,需要讀取量詞快閃儲存器,底層有效頻寬減少

9.對於順序讀,對映關係連續,一次對映塊的讀可以滿足很多使用者資料的讀,不帶dram的ssd可以有很好的順序讀效能,

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

原文:

ftl有三種對映位址 區塊鏈世界裡,對映是什麼?

一直以來,對映 這個詞不少在社群裡被提起。到底什麼是對映?為什麼要對映?如何對映?來,今天一文為你講述區塊鏈世界裡的 對映 一 什麼是對映?對映,準確來說 代幣遷移 token migration 在專案上線之後,專案方會發布代幣 token 但是由於很多區塊鏈專案一開始還沒有完成主網的開發程序,所...

Spring Mybatis 三種查詢對映方式

今天主要跟大家介紹下spring mybatis的幾種對映方式 這裡介紹的是介面 xml對映檔案的使用,其它請下去另查 對映的三種方法 1.關聯關係全部用map對映檔案寫,這個是最慢的方式,不推薦 2.寫對應結果查詢的vo類,無需擔心是多個還是乙個,只要字段對應上就可以了 3.直接返回map類,這樣...

軟考三 cache位址對映

所謂對映就是將主存內容對應到cache中。cache引入就是緩解cpu和主存執行速度差距的。cpu要執行的內容如果在cache中存在,則直接送給cpu,如果不在,則去主存中尋找,主存直接傳給cpu,再根據區域性性原理,將主存中該區域內的內容存到cache中去,而將主存中一部分內容存到cache中,就...