999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

固態盤模擬器現狀分析

2020-02-08 04:12:08馮志華安東博鄢軍霞李文佳
計算機工程與設計 2020年1期
關鍵詞:模型

馮志華,安東博+,鄢軍霞,李文佳,萬 星

(1.中國航天科工集團第二研究院706所,北京 100854;2.武漢軟件工程職業學院 信息學院,湖北 武漢 430205)

0 引 言

隨著大數據與云計算的發展以及存儲性能和計算性能之間的差距在不斷擴大,存儲系統的性能逐漸成為制約信息系統發展的瓶頸。而固態盤具有隨機訪問性能好、體積小、功耗低等突出優點,且容量逐步上升,單盤容量可達TB級,正逐漸取代傳統磁盤成為應用于存儲系統的主要存儲器件。

固態盤主要由控制器和存儲芯片構成,控制器算法的好壞,對固態盤性能影響很大。在對固態盤進行架構與控制算法的研究與優化時,直接在固態盤上實現設計構想需要花費大量的時間成本和人力物力成本。而選擇在固態盤模擬器上對設計進行驗證,不但能夠快速得到功能、性能等方面的估測數據,加快設計迭代周期,還有助于設計者更好的評估設計改動對固態盤各部分影響,并基于驗證結果進一步改進設計方案。

文獻[1-4]分別提出了4種開源固態盤模擬器,都對固態盤的一些重要組成部分(如閃存、內存等)與功能模型(如延遲模型等)進行了模擬,但在架構組成和模型設計等方面存在差異,這也導致其對固態盤功能與性能的模擬精度不盡相同。為評估各固態盤模擬器的功能與性能,選用合適的固態盤模擬器對固態盤的設計進行評估與驗證,本文對幾種典型固態盤模擬器的架構組成與功能進行分析,并選取實際固態盤與各固態盤模擬器在同等測試環境下進行性能比對實驗。

1 固態盤模擬器基本組成

固態盤是一個包括硬件與軟件的嵌入式系統。在開發設計固態盤產品時,使用固態盤模擬器,能夠提前驗證設計的硬件結構與軟件算法,降低開發成本,縮短研發周期。

固態盤模擬器需要對固態盤的硬件行為(包括固態盤內部通道、閃存顆粒等)、軟件算法(包括地址映射、磨損均衡及垃圾回收等)進行模擬。而軟件算法與真實的固態盤系統中的軟件類似,所以固態盤模擬器的重點在于對固態盤硬件行為的模擬。其中作為固態盤硬件的關鍵部分,閃存是固態盤模擬器需要模擬的核心點。模擬器通過對固態盤設計的硬件結構和固件算法的模擬,可以對固態盤設計的性能(包括順序/隨機讀寫速率及延遲等)與能耗指標進行模擬測試,從而對固態盤設計工作做出指導與驗證。

固態盤模擬器主要由主機接口、數據緩存、閃存轉換層(flash translation layer,FTL)、閃存等部分組成,本文從模擬器的基本組成以及延遲模型等部分對固態盤模擬器進行分析。

1.1 主機接口

主機接口實現與主機通信的協議邏輯,如SATA、NVMe等。目前大多數固態盤使用SATA協議接口,其中原生命令隊列(native command queuing,NCQ)使固態盤能夠優化工作負載執行順序,通過對內部隊列中的命令進行重新排序來提高執行效率[5]。NVMe協議突破SATA協議瓶頸,精簡了指令調用方式,減少對寄存器的訪問次數,且最大支持64 K隊列深度,充分利用PCIe通道性能,具有低延遲、高性能等特點。

1.2 數據緩存

數據緩存對固態盤整體性能的提升有著較大的影響。數據緩存負責服務來自上層的請求,即首先在數據緩存區搜索新收到請求的目標數據。若收到讀請求,則先在緩存區搜索目標數據,然后讀出該數據并響應讀請求。若收到寫請求,在緩存區搜索到該請求數據,則直接將本次請求數據寫入緩存區替換之前的舊數據。若在緩存區未搜索到請求的數據,則需要進一步去訪問閃存。

1.3 閃存轉換層

閃存轉換層負責模擬固態盤閃存轉換層中包括地址映射、垃圾回收及磨損均衡等在內的各種算法。地址映射完成邏輯地址空間到物理地址空間的映射,包括塊映射、頁映射和混合映射等。垃圾回收完成對某些閃存塊中的有效數據的重寫與無效數據的擦除,從而得到新的可用的閃存塊。磨損均衡負責使固態盤中每個閃存塊的磨損(擦除)次數保持平衡,包括動態磨損均衡和靜態磨損均衡兩種算法。

閃存轉換層算法的優劣與否,直接決定了固態盤在性能、可靠性、耐用性等方面的優劣,是固態盤固件的核心部分。

1.4 閃 存

閃存將信息存儲在由浮柵晶體管制成的存儲單元中,出于成本考慮,數據存儲應用主要采用NAND閃存。固態盤的工作原理基于閃存特性,如閃存寫操作前必須先擦除,需要有垃圾回收(garbage collection,GC)操作;閃存擦寫次數超過一定閾值后,內部存儲的數據變得不可靠,需要有磨損均衡(wear leveling,WL)操作等。閃存由大量的存儲單元按照一定的組織結構組成的:每個閃存芯片(package)由若干個共享同一通道的裸片(Die)組成,每個裸片有若干個分組(Plane),每個分組中有若干個塊(Block),同時也有獨立的寄存器用以緩存數據。每個塊包括若干個頁(Page),是擦除操作的最小操作單位,一個塊的擦除次數有限,且擦除操作會帶來延遲。頁是寫操作的最小操作單位,可在模擬器中用來計算讀寫操作延遲。

在ONFI(open NAND flash interface)/Toggle協議下,閃存支持基本的讀、寫以及擦除命令,同時提供了數據遷移、多分組操作等高級命令,優化閃存的訪問速度。

1.5 延遲模型

請求延遲是評估固態盤性能好壞的一個重要指標。從主機端發起請求到設備端響應為止,一個請求的延遲可分為以下幾部分(以NVMe接口固態盤讀請求為例):①主機將命令寫到提交隊列;②PCIe總線傳輸延遲;③閃存轉換層的地址轉換以及任務調度;④命令及地址發送給閃存芯片;⑤閃存讀數據;⑥數據通過ONFI傳輸至固態盤固件;⑦數據通過PCIe總線傳輸至主機。

其中各部分延遲不盡相同,由于相對于其它部分來說,某些部分延遲很小(如處理器的時間開銷),所以許多模擬器可能這些部分的延遲忽略不計,不同的延遲模型也是影響固態盤模擬器準確度的一個重要原因。

2 典型開源固態盤模擬器分析

本文選取了Flashsim、SSDsim、Amber和MQSim這4個典型開源固態盤模擬器,根據固態盤模擬器基本組成,從主機接口、數據緩存、閃存轉換層、閃存以及延遲模型等方面對各個固態盤模擬器分別進行分析。

2.1 Flashsim模擬器

Flashsim[1]是事件驅動的基于C++的固態盤模擬器,其架構如圖1所示。硬件部分由SSD模塊、控制器、內存、閃存芯片等部分組成。SSD模塊用于例化模擬器并對外提供調用接口;控制器負責對接軟件與硬件,對事件做出處理并計算所需時間;內存主要用于數據緩存,計算讀寫RAM的延遲;閃存芯片則模擬真實的閃存結構,包括分組、裸片、塊、頁等結構。軟件部分即閃存轉換層,實現了地址映射、垃圾回收、磨損均衡以及RAID算法,同時定義了Event和Address兩個類,用于在各層之間傳輸操作信息和記錄狀態。

圖1 Flashsim模擬器架構

Flashsim中的事件處理流程如下:SSD模塊接收到事件,將其傳遞給控制器后,FTL將該多頁請求轉換為一個事件列表,并把列表中的事件發送到對應的總線通道,總線通道處理分發各個請求。

(1)主機接口

Flashsim中并沒有提供SATA、NVMe等主機接口,只通過SSD模塊來例化整個模擬器,并提供對外的調用接口,用于建立事件,獲取統計信息等操作。

(2)數據緩存

控制器在將數據傳輸到總線之前會將其在內存中緩存,RAM模塊負責計算數據在內存中的讀寫延遲。

(3)閃存轉換層

Flashsim的閃存轉換層提供地址映射、垃圾回收以及磨損均衡算法,支持固態盤RAID模擬操作,同時定義了Event和Address兩個類,用于在各層之間傳輸操作信息和記錄狀態。Flashsim的FTL算法支持DFTL、FAST、BAST以及Page-level等。

(4)閃存

Flashsim閃存芯片模型模擬真實的閃存結構,包括分組、裸片、塊、頁等結構。支持對閃存芯片的讀、寫、擦除操作所需的時間進行設置,以模擬實際閃存芯片的讀、寫、擦除操作延遲。同時支持對閃存芯片在不同狀態之間轉換時的電流、電壓的模擬,用以估算閃存每次讀、寫、擦除操作的能耗。

(5)延遲模型

Flashsim中延遲模型考慮了內存讀寫延遲、總線傳輸延遲和閃存讀、寫、擦除等操作延遲,忽略了處理器的時間開銷。

2.2 SSDsim模擬器

SSDsim的架構如圖2所示,結構分為數據緩存層、閃存轉換層和硬件行為模擬層,能夠對固態盤的高級命令、時間延遲和能耗進行模擬。

圖2 SSDsim模擬器架構

SSDsim的基本操作流程如下:在執行初始化函數,完成從參數文件中讀入固態盤的參數設置等初始化操作后,開始接收外部請求。外部請求來臨,在數據緩存區尋找目標數據或進一步訪問閃存。訪問閃存時,外部請求被分為獨立的子請求,掛載到相應的子請求隊列中進行處理。所有請求完成后輸出此外部請求模擬結果。

(1)主機接口

SSDsim不提供SATA、NVMe等主機接口,通過調用get_request函數,根據SSDsim的系統時間、當前請求隊列長度以及外部請求到達時間做出判斷,將外部請求讀入到SSDsim中。

(2)數據緩存

在SSDsim架構中,設置了數據緩存層來模擬固態盤中緩存區域對請求的服務過程。并且使用一個結構體表示數據緩存區的最小單位,并根據緩存管理算法(如最近最少使用算法、最不經常使用算法等)進行排序。

(3)閃存轉換層

SSDsim的閃存轉換層模擬固態盤地址映射、垃圾回收、磨損均衡等算法。其中地址映射包括頁映射、塊映射、混合映射、DFTL等,垃圾回收算法采用貪婪算法等,磨損均衡算法包括靜態磨損均衡與動態磨損均衡。

(4)閃存

SSDsim遵循ONFI2.2協議,支持基本的讀、寫、擦除命令與數據遷移、多分組操作、交錯操作等命令。除正常閃存的讀、寫、擦除延遲和不同狀態轉換下電氣參數外,定義了模擬固態盤的使用程度的老化參數(age),用于真實模擬實際固態盤使用場景。

(5)延遲模型

SSDsim的延遲模型包括閃存的讀、寫、擦除操作延遲和內存的平均讀寫延遲,忽略了處理器的時間開銷。

2.3 Amber模擬器

Amber[2]是SimpleSSD[3]的第二代改進版本,相對于1.x版本來說,增加了SATA、UFS(universal flash sto-rage)、OCSSD(open-channel SSD)主機接口模型,支持FTL頁級映射,建立了處理器以及內存的能耗模型,能夠動態地更為精確地模擬固態盤能耗性能。同時Amber中模擬了多個ARM8指令集架構的嵌入式CPU,用于實現固態盤固件的不同功能。Amber的架構框架如圖3所示。

圖3 Amber模擬器架構

(1)主機接口

Amber提供SATA、NVMe主機接口以及UFS、OCSSD模型,支持SATA原生命令隊列、NVMe命名空間(Namespace)等功能,實現了DMA以仿真數據與主機內存間的傳輸。

(2)數據緩存

Amber在提供DRAM作為緩存外,實現了“預讀”的緩存管理算法,即根據DRAM中多個請求的地址與長度做出判斷,預先將flash中的數據讀到緩存中,提高固態盤的讀性能。

(3)閃存轉換層

Amber在SimpleSSD1.x版本支持混合映射的基礎上增加了頁級映射,并提供可用的垃圾回收、磨損均衡和任務調度算法。

(4)閃存

Amber的閃存模型也采用了目前實際固態盤中使用的多通道、多路徑架構,即總線上掛載多通道負責任務調度。外部請求被分為多個子請求,通過多通道、多路徑架構完成后,向主機返回完成信息。

(5)延遲模型

Amber可以在用戶級執行FIO測試,實現了包括主機接口協議處理、處理器延遲、FTL算法以及閃存等在內的延遲模型。

2.4 MQSim模擬器

MQSim[4]提供了“穩定狀態”的固態盤性能模擬與端到端延遲模型。所謂“穩定狀態”是相對于理想狀態而言的(如,某些模擬器在進行固態盤模擬測試時,不能覆蓋固態盤存儲容量將要寫滿的情況,此時所測固態盤性能是在理想情況下的,不能代表固態盤整個生命周期的性能)。MQSim對固態盤讀寫操作的過程進行了詳細分析,結合目前固態盤技術現狀(如新型閃存3D Xpoint技術等),更新了模擬器的延遲模型。MQSim模擬器架構框架如圖4所示。

圖4 MQSim模擬器架構

(1)主機接口

MQSim支持SATA、NVMe主機接口。在主機接口部分設置了獲取請求單元(request fetch unit)以獲取和調度來自不同隊列的不同I/O請求。同時向用戶提供QueueFetchSize參數,該參數定義了固態盤模擬器所能同時服務的來自每個提交隊列(submission queue)的最大請求數。

(2)數據緩存

MQSim實現了DRAM作為緩存,并模擬了最近最少使用(least-recently-used)算法。DRAM可被配置為最近寫數據(默認情況下)、最近讀數據和最近讀寫數據3種模式。同時實現了考慮到并發訪問和命令延遲的DRAM訪問模型。

(3)閃存轉換層

MQSim結合當前學術界較為前沿的算法與策略,實現了地址映射、垃圾回收、磨損均衡以及任務調度等功能。閃存轉換層支持多隊列請求處理,提高服務質量(quality of service,QoS)與性能表現。

同時,為真實模擬固態盤實際使用情況下的性能,MQSim模擬器在進行實際的模擬之前會執行“預熱”操作,以使模擬器達到固態盤真實的“穩定”狀態。

(4)閃存

MQSim支持裸片級和分組級的并行I/O調度算法,能夠模擬SLC、MLC和TLC這3種類型的閃存顆粒。

(5)延遲模型

MQSim在考慮閃存操作和閃存內部數據傳輸延遲之外,分固定延遲和可變延遲兩部分模擬了固態盤端到端的延遲。固定延遲包括請求命令、用戶數據和請求完成信息在PCIe總線上傳輸時間與控制器中的微處理器執行FTL操作的時間。可變延遲主要指由于對緩存映射表和DRAM寫緩存的競爭所導致的FTL處理時間開銷,包括從數據緩存中讀/寫數據的時間和從flash中取映射表的時間。

2.5 功能對比

綜合以上對各個模擬器的分析與總結,本文從主機接口、關鍵組件、閃存轉換層、延遲模型和能耗模型等方面對各模擬器進行功能對比。

Flashsim是由來自賓夕法尼亞大學的團隊使用單線程的C++編寫的。該模擬器支持包括頁級映射在內的多種映射算法,并在最新版本中增加了RAID功能,但其硬件模型較為簡單,未能實現閃存高級命令與能耗的模擬。

SSDsim是由華中科技大學的團隊開發,詳細描述了閃存內部通道級、分組級以及裸片級并行訪問機制,提供主流的緩存管理算法與FTL算法等,支持閃存數據遷移、多分組操作、交錯操作等高級命令模擬,建立了閃存能耗模型。其不足之處在于模擬器并未提供主機端接口,僅用外部請求調用函數模擬固態盤請求過程。

Amber是SimpleSSD的第二代版本,支持SATA、UFS、NVMe、OCSSD主機接口模型,建立了處理器以及內存的能耗模型,能夠更精確地動態模擬固態盤能耗性能。同時Amber中模擬了多個ARM8指令集架構的嵌入式CPU,用于實現固態盤固件的不同功能。但模擬器中FTL算法功能并不完善,與實際固態盤仍有差距。

MQSim是由卡內基梅隆大學的團隊開發,分別根據讀寫命令處理過程對固態盤的延遲模型進行了詳細分析與研究。指出在新型閃存(如3D XPoint[6,7])中,固態盤延遲模型較之以往發生變化,對固態盤的端到端延遲模型做出了完善與優化。類似SSDsim中老化參數(age)的設置,MQSim實現了“穩定狀態”下對固態盤的模擬工作。但MQSim中并未使用真實數據來模擬固態盤數據的傳輸過程。

現從模擬器的結構與功能角度出發,選取主機接口、閃存轉換層、延遲模型以及能耗模型等方面對上文提到的4個模擬器進行了綜合分析與對比,具體結果見表1。

表1 模擬器結構功能對比

3 固態盤模擬器性能測試實驗

3.1 實驗環境與方案

本文選取SATA固態盤作為實際比對盤,按照該固態盤的實際參數對各模擬器進行配置。對固態盤中關鍵的參數進行了配置,其余參數皆為固定,且各模擬器保持一致。實際固態盤的關鍵配置參數見表2。

按照以上參數完成模擬器配置后,對實際固態盤與各模擬器進行測試。測試內容為固定大小的隨機讀寫請求,記錄各請求的響應延遲時間。測試環境參數見表3。

3.2 實驗結果分析

根據3.1節內容完成實際固態盤和各模擬器的性能測試,其隨機讀/寫延遲性能測試結果如圖5、圖6所示。

圖5 隨機讀延遲

可以看出各模擬器與實際固態盤的延遲時間曲線表現出相似的變化趨勢,說明各模擬器能夠有效模擬固態盤的讀/寫延遲性能,但精度不盡相同。

其中Amber與MQSim所測數據與實際固態盤性能比較吻合,而Flashsim較真實固態盤延遲數據偏高,SSDsim則相反。分析其原因可能是因為Flashsim受限于簡化的硬件模型,未對閃存內部并行模型作充分模擬,且缺少任務調度處理,導致讀寫延遲提高。而SSDsim在進行時間模型建立時,忽略了包括處理器在內的部分延遲,對內存的讀寫延遲取平均值,這導致了SSDsim的模擬延遲低于實際固態盤數據。

表2 SATA固態盤參數配置

表3 測試環境參數

3.3 未來展望

通過以上對固態盤模擬器的分析與總結,綜合目前固態盤模擬器發展現狀,未來模擬器可能需要在以下幾方面做出改進:

(1)閃存并行性模擬

為充分利用并行性[8,9]以提高性能,當前固態盤在Flash芯片級搭建RAID。針對此問題,固態盤模擬器可以對通道級的并發訪問策略,裸片級的亂序訪問策略,分組級的并行I/O調度算法等閃存中各級并行性進行模擬,以更精確地模擬真實閃存性能。

(2)糾錯算法模型

由于擦寫磨損、讀寫干擾和數據保持等情況下,會導致閃存發生比特翻轉[10]。固態盤采用糾錯碼的方法來修正錯誤數據,糾錯算法的糾錯能力大小是衡量固態盤質量可靠性的一個重要指標。在目前模擬器中沒有涉及糾錯碼功能,不能真實模擬固態盤發生數據錯誤時的場景。針對此問題,固態盤模擬器可以建立閃存中數據錯誤模型,如讀/寫干擾、駐留錯誤和存儲單元間耦合影響等;并設計糾錯算法模型,如BCH算法、LDPC算法等,綜合評估對固態盤性能的影響。

(3)存儲安全機制模擬

安全是數據存儲的一個本質需求。在固態盤設計過程中,需要將安全因素考慮在內,并進行安全性設計。針對此問題,固態盤模擬器可以考慮安全性設計模型,包括對稱/非對稱加密算法、散列值算法以及安全協議等,評估固態盤安全性能以及預測安全設計對性能的影響。

(4)支持新型Flash顆粒與先進固件算法

隨著固件算法的不斷改進和新型Flash技術(如3D XPoint等)出現,傳統固態盤模擬器在延遲模型、能耗模型等方面與實際固態盤存在差異。針對此問題,固態盤模擬器可以根據現有被廣泛接受認可的固態盤技術(如3D XPoint等)來完整模擬固態盤各部分,精確延遲與能耗模型。

4 結束語

綜上,本文首先敘述了固態盤模擬器的基本原理與架構。然后從主機接口、數據緩存、閃存轉換層、閃存以及延遲模型五方面,對Flashsim、SSDsim、Amber以及MQSim這4種應用較為廣泛的固態盤模擬器分別進行了研究與介紹。對各模擬器的結構及功能進行了對比分析,并通過模擬實際固態盤的參數,對各模擬器進行了性能測試與比較。其中各模擬器測試結果存在差異的原因主要由于各模擬器對固態盤內部延遲模型的建立上存在差異。最后指出了當前模擬器在閃存并行性、糾錯算法、安全機制以及新型顆粒的模擬方面的不足以及未來的發展方向。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 成人午夜亚洲影视在线观看| 亚洲欧洲日韩综合| 国产精品性| 国产av无码日韩av无码网站| 日本国产在线| 国产精品19p| 婷婷99视频精品全部在线观看| 欧美日韩精品综合在线一区| 国产成人午夜福利免费无码r| 国产精品视频系列专区| 欧美伊人色综合久久天天| 亚洲一区二区约美女探花| 日韩亚洲高清一区二区| 韩国福利一区| 久久无码高潮喷水| 欧美日本在线播放| 日本www在线视频| 久久久久久久久久国产精品| 日韩黄色大片免费看| 国产欧美日韩综合在线第一| 午夜福利网址| 亚洲二三区| 欧洲亚洲欧美国产日本高清| 日本91视频| 青青草原国产av福利网站| 一级在线毛片| 亚洲高清免费在线观看| 欧美日韩成人| 亚洲精品桃花岛av在线| 精品三级在线| 亚洲无码A视频在线| 91精品国产麻豆国产自产在线| 日韩国产亚洲一区二区在线观看| AV片亚洲国产男人的天堂| 久久青草视频| 999在线免费视频| 日本精品视频一区二区| 草逼视频国产| 在线播放精品一区二区啪视频| 午夜日b视频| 免费Aⅴ片在线观看蜜芽Tⅴ | 午夜不卡视频| 亚洲国产精品成人久久综合影院| 免费人欧美成又黄又爽的视频| 久久www视频| 99视频只有精品| 亚洲va视频| 国产福利小视频在线播放观看| 67194在线午夜亚洲| 国产精品亚洲va在线观看| 亚洲av色吊丝无码| 91福利免费视频| 在线观看热码亚洲av每日更新| 精品无码国产自产野外拍在线| 一级毛片免费不卡在线视频| 毛片卡一卡二| 国产精品人莉莉成在线播放| 国产无码网站在线观看| 日韩成人在线网站| 久久精品国产一区二区小说| 一本色道久久88综合日韩精品| 人人妻人人澡人人爽欧美一区| 国产精品人成在线播放| 亚洲第一成网站| 免费a在线观看播放| 免费全部高H视频无码无遮掩| 国产第八页| 亚洲天堂在线免费| 在线观看精品国产入口| 在线免费观看AV| 国产精品成人第一区| 97久久免费视频| 久操中文在线| 国产99免费视频| 尤物精品视频一区二区三区| 最新午夜男女福利片视频| 午夜精品久久久久久久99热下载| 欧美在线导航| 性色一区| 国产靠逼视频| 精品国产福利在线| 伊人91在线|