1. 程式人生 > >SSD內部詳解

SSD內部詳解

1、ssd的基本架構

直接上圖,給出一個簡單SSD的內部基本架構
在這裡插入圖片描述
從這個圖中可以看到FTL層主要是三個功能:地址對映表、損耗均衡、垃圾回收
在這裡插入圖片描述
地址對映表:顧名思義,把檔案系統的邏輯地址,對映到flash的實體地址上。
損耗均衡:進行損耗的排程,讓所有快的差不多一起寫壞,而不是其中某一塊很快寫壞,影響整體的效能。
垃圾回收:前面說的異地更新的問題,主要完成有效頁的搬移。

2、FTL層的詳細功能

在這裡插入圖片描述
下面來看一下對映表:
首先是頁對映
在這裡插入圖片描述
邏輯頁到物理頁,直接查表對映即可,一對一的邏輯物理頁的對映。但是存在一個問題,問題是當容量做的很大的時候,需要大量的表去存起來,很不划算,而且也沒有這麼大的sram。
基於這個弊端,後來採用的是塊對映


在這裡插入圖片描述
將物理上的頁組成一個塊,以塊的形式存表,這樣存表的大小就大大減小了,邏輯地址就對應著塊表的內部的偏移地址。
對應圖舉例說明可以知道:當寫入的邏輯頁的地址是9的時候,9%4=1,9/4=2,也就是說在第二個塊,塊內偏移地址是1,即可完成邏輯地址到實體地址的對映。
缺點是這樣會有查表的轉換時間損耗,表很大的時候會很長時間。

基於這個缺陷,採用了混合對映表,完成了兩個折中的功能:
在這裡插入圖片描述
混合對映表示表有兩種對映方式混合,一種對映方式是塊對映,另外一種對映方式是頁對映,當對資料量下的是可以採用頁對映對物理頁進行讀寫操作,但是當資料量大的時候要採用頁對映,頁對映表滿的時候可以將資料搬移到塊對映對應的表上,這樣頁對映表便重新更新了,就可以再次使用了。

三種對映表資源的對比:
在這裡插入圖片描述
顯然,混合對映是組好的方式,佔用sram存表的空間是最小的

3、損耗均衡和垃圾回收

在這裡插入圖片描述
從垃圾回收這個圖可以看出來,首先把 有效塊複製空白頁上,然後對無效的block全部擦除,然後在寫入有效資訊,垃圾回收的過程。
在這裡插入圖片描述
壞塊管理:很明顯,由於flash在出廠的時候就有壞塊,FTL層要對壞塊進行一個標記,讀寫的時候跳過壞塊,提高讀寫的效率。
請求排程:並行合併IO讀寫,將IO讀寫操作的順序進行排程,將一個plane讀寫的放在一起,增加並行性,提高讀寫效率。

4、flash配置

目前來說flash有兩種基本的配置,一種是emc flash,這種flash的主控也被打包在晶片裡面,體積小便於封裝。還有一種就是上面說的ssd,各種不同架構的ssd.
在這裡插入圖片描述


關於ssd,各種不同的廠家有自己的架構,下面就幾種典型的結構進行說明:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

5、硬體平臺

目前對ssd的硬體平臺主要分為以下4種:
在這裡插入圖片描述
第一種是有廠家提供的,不知道內部具體引數,只能用於測試。
第二種是自己定製向上面說的架構。
第三種是進行ssd的模擬,測試其模擬引數。
第四種是開源的openssd實驗平臺。