<cite id="wnfbn"></cite>

  • <cite id="wnfbn"><noscript id="wnfbn"></noscript></cite>

      英文網站中文網站
      設為首頁 加入收藏
      0731-85886665
      新聞中心
      主營業務
      聯系我們
      $item.title   地 址:湖南長沙高新區麓云路100號興工國際產業園10棟301
        電 話:0731-85886665
        傳 真:0731-85886660

      行業動態

      關于閃存FTL的Host Base和Device Based的誤解


               Device Based就是一切FTL處理全由SSD主控負責,包括磨損均衡、地址映射等。這也是常規的做法。

              還有一類Host based,所有的FTL處理全部交給主機端的模塊,或內核態或用戶態。此時,主機端運行的FTL模塊就要在綜合評判均衡之后對頁面寫入做重定向操作,并負責更新保存在主機端RAM中的大映射表,同時,也仍然需要將邏輯頁號保存到頁面中一同存儲。這樣,就算主機端掉電,也還是可以從所有page中抽取邏輯頁號重構映射表。這里有個認知誤區,不少人認為,主機端只更新內存中的大映射表,于是便有了個疑問:映射表如此大,更新之后如果主機一旦掉電,豈不是就丟掉了,所以是不是每一筆映射關系的更新都要同步到后端的Flash中?如果這樣性能將會變差。

              所以,不管是Device Based還是Host Based,這張大映射表都要被存儲到RAM中,前者存儲在SSD自己的RAM,后者存儲在Host的RAM,但是它倆都需要將邏輯頁號隨著有效內容一同寫入Flash Page。FTL映射表很大,SSD上沒有這么大的電容量在掉電后把整個表都拷貝回Flash。

              有些早期產品在掉電之后甚至需要半個多小時來重建映射表,比如一些大容量PCIE SSD,沒有重構完的話就不能接受IO,所以其必須在BIOS掃描PCIE設備的時候通過optional rom加載個驅動,這個驅動與PCIE SSD通信從而獲知其重構進度,并將BIOS暫停在某個頁面上,直到重構完成,整個系統繼續啟動。

              而最新的產品中也并沒有電量大到能夠將數百兆上GB的表拷貝到Flash的大電容。目前的解決辦法都是將這張大表里的臟頁面在后臺不斷的刷入Flash。比如,可以采用SLC Flash來保存這個大表,加快寫入速度,同時保證有足夠的壽命?;蛘咴贛LC/TLC FLash上開辟一片專區,以SLC的方式對其Program,也就是直接將其充電到最大程度,而不需要充電到某個區間,這樣也能夠加快速度。

              對于那些沒來得及寫入Flash的表,如果是Device Based的,掉電后可以依靠SSD內的電容,將臟頁面在幾十ms時間內迅速寫入Flash。比如,可以對臟頁面保存一個bitmap,凡是臟的,bitmap中對應偏移量被置1,掉電后在電容的電力下,代碼迅速掃描bitmap將臟頁刷Flash,幾十ms對人腦來講那就是一瞬,但是對CPU來講,確可以做不少事情。

              對于Host Based的SSD,掉電后沒來得及下盤的臟頁被丟掉,重啟之后,只需要將這些丟掉的表頁面從Flash Page中重構出來即可,所以,掉電之前,系統必須保證將  “有哪些臟頁上次沒有刷入” 的信息保存到Flash,比如如果用了bitmap追蹤的話,那么每一筆對映射表的更新都需要同步刷入bitmap,假設500MB的FTL表,如果每個bit描述表中的4K內存頁面的話,bitmap一共也就15KB左右。掉電后,主機端FTL代碼從Flash將bitmap讀出,掃描,重構。

              或者采用日志方式,就像數據庫那樣,每一筆對映射表的更新都記錄下日志,該日志同步刷入Flash,掉電后,讀出日志做redo。

               如何知道系統掉電?PCIE設備在系統掉電之后會收到一個中斷信號,內部的CPU可以利用這幾十ms的時間打掃戰場。有人可能有疑問,掉電了還能收到信號?電源內的電容一般會在掉電之后保存有能夠讓整個系統再撐10ms左右的電量,電源一旦發現掉電,立即發送信號到主板芯片組,此時芯片組會發出一系列中斷,包括給CPU,以及PCIE設備,CPU此時立即將cache flush到ram,這一步其實沒用,因為ram照樣掉電,但是如果用的是NVRAM/NVDIMM,就不一樣了。但是,如果是SATA SSD,其無法直接收到掉電信號,但是系統橋上SATA控制器是可以的,SATA控制器收到掉電信號之后也會打掃戰場,將沒來得及寫入SSD的數據寫入之后便等待斷電了,而SATA SSD此時只能靠自己了,也就是靠自身電容最最后打掃戰場的工作。

      點擊下載
      快三号码