Ssd

のFlashsimSSDシミュレーター



Flashsim Ssd Simulator



インフラストラクチャやSSDFTLの改善の最適化など、関連する研究開発を行う際のSSDは、設計の高コストの下で直接実装され、ほとんどの場合、SSDで受け入れられないため、最初のアナログ設計がデバイスで認証を取得した場合は、機能、パフォーマンス、消費電力の推定データの側面をすばやく取得し、設計の反復サイクルを加速するだけでなく、SSDの作業の各部分の影響設計の改善を理解して、設計をさらに改善するのに役立ちます。したがって、設計エンジニアのSSD、SSDマスターは、シミュレーターの使用が非常に重要です。

SSDの既存のシミュレーターには、実際には、Flashsim [1]、SSDSim [2]、MicrosoftのSSD拡張機能と組み合わせたDisksim [3]などの多くの種類があります。今回はFlashsimを紹介しました。 Flashsim SSDはオープンソースエミュレーターであり、ウェブサイト[4]または上記のGitHubのソースコードをダウンロードできます。これはイベント駆動型のモジュラーC ++ベースのシミュレーターであり、シミュレーションにさまざまなFTLポリシーを構築して応答時間を提供します。エネルギー消費と多くの追加の統計情報、新しいバージョンは、比較的改善された機能として、SSD RAIDFlashsimアナログも提供します。 FlashsimにはDisksimのエディションがあり、バージョンは個別に使用できます。比較的独立したバージョンを使用することをお勧めします。



これは、Flashsimのハードウェアおよびソフトウェアアーキテクチャモデルのすべてについてのより詳細な紹介です。

C ++オブジェクト指向機能を使用することで、Flashsimは優れたモジュール性を実現し、その内部構造とSSDの実際の構造は、優れた関係マッピングを備えています。これは私たちが理解できることです。コントローラ自体によるSSD、RAMなどとその上でFTL構成上で実行されるハードウェア、およびFlashsimシミュレータも、図1に示すように2つの部分で構成されています。実際、新しいSSDには、FIG接続RAID構成シミュレーション機能に示されているFlashsim番号も提供されます。



図1のフラッシュシミュレーションブロック図。

プロセッサ、メモリ、バス、およびフラッシュチップによるFlashsimハードウェアコンポーネント。まず、ハードウェア部分の簡単なレベルと機能について、シミュレータと実際のSSDの対応を便利かつ直感的に理解します。シミュレータは、次のモジュールを定義します。



  • SSD:たとえば、シミュレーター全体の外部呼び出しインターフェースの提供、イベントの作成、統計情報へのアクセスなど。

  • パッケージ:ダイ共有バスは一連のチャネルで構成されます。

  • ダイ:フラッシュチップ、プレーンのセットが含まれています。

  • プレーン:ブロックには多くが含まれ、各ブロックには、データのキャッシュとプレーン内のマージ操作に使用されるプレーンとページなどの大きなレジスタがあります。ここでは、読み取りおよび書き込みレジスタを生成し、マージ遅延を遅延させます。 ((行く操作手段FTLガベージコレクションの場合、更新の種類に応じて、複数のブロックが1つまたは複数のブロックを操作する有効なデータ部分を組み合わせて、スイッチマージ部分マージフルマージ3種類の事情FTL種類は異なります。これはSSDダイレクトライトアンプリフィケーションの原因)

  • ブロック(ブロック):数字で構成されるページ。消去操作の最小単位です。ブロックが消去される回数は制限されており、この情報はFlashsimとしてカウントすることもできます。消去ブロック消去操作は遅延を生成します。

  • ページ(ページ):各状態を維持し、遅延書き込み操作を計算するページ。 Flashsimでは、ページに空き(消去後)、有効(書き込み後)、3つの状態(別の場所にコピーされた後のマージ操作)が無効です。実際のデータコンテンツをシミュレートするかどうかは、Flashsim構成オプションで選択できます。

  • コントローラー(コントローラー):コントローラーソフトウェアは、Flashsimメンバーの隣接部分とハードウェア部分であり、SSDから送信されたイベントを受信し、FTLクエリ処理を実行して時間の消費を計算します。バスコントローラへのデータの送信は、最初にRAMにキャッシュされ、RAMの書き込み遅延が発生します。

  • RAM(メモリ):計算された遅延書き込みRAM。

  • バス(バス):イベントは適切なチャネルに配信されます。

  • チャネル(チャネル):イベントのスケジュール。新しいイベントが次に利用可能なタイムスロットに依存するように配置された後、チャネル使用の記録を維持するための各チャネルスケジュール。チャンネルをスケジュールした後、具体的な説明をします。

下位メンバーを担当する実施形態の上位メンバーであるSSDから始めて、ユーザは、各レベルがより少ない数のセルを含む構成ファイルを変更することによってのみ構成する必要がある。

FTLのFlashsimソフトウェア部分、つまり、さらに、イベントを記述および記録するために、Flashsim Event Addressは、記録レイヤー間で状態情報を転送する操作とイベント処理の2つのクラスを定義しますが、ここでは詳しく説明しません。 SSDFansの記事は以前に紹介されており、FTLはフラッシュ変換レイヤーの略で、論理アドレスと物理アドレスの変換を行うために使用されます。このSSDに、読み取り、書き込み、消去、およびストレージ機器の読み取り専用の従来の3つの操作、書き込み2つの互換性のある遷移がある場合SSDの寿命の問題、FTL、ウェアレベリング(ウェアレベリング)、ガベージコレクション(ガベージコレクト)、不良ブロック管理(不良ブロック管理)機能を考慮したハード動作モード。 FTLのFlashsimには、ウェアレベリングとガベージコレクションが含まれています。現在、Flashsim FTLには、ページレベル、BAST、FAST、DFTL、およびバイモーダルがいくつか組み込まれています。

特定の情報を含む各モジュールは、インターフェースは別として、Flashsimクラス図を参照する場合があります。さまざまなモジュールとモジュール自体の関係をより明確に示す必要があります。より複雑なクラス図はここでは提供されないため、Flashsimソースパッケージに含まれており、ダウンロードして表示できます。

以下のバスチャネルを展開して、Flashsim部分のスケジューリングがより複雑なインターリーブについて説明します。上記のように、マルチチップダイパッケージ内のバスの各チャネルは、それぞれのバス間で共有された独立したチャネルであり、並列に動作します。したがって、チャネルクロスでの複数の連続するイベント着信バス動作処理が時々実行され、図3に示すようにバス上でチャネルインターリーブ動作が実行される。バスがロックされているときのバス上のデータ転送。読み取り操作の場合、図2(a)に示すように、最初に制御信号を送信して、読み取りコマンドを受信した後のデータフラッシュダイ準備(Ctrl)がデータフラッシュダイ(Rd)を読み取るようにします。この操作は、バスを占有しません。バスは他の要求を処理してからバスをロックし、制御信号の送信はデータの送信を要求します。フラッシュダイ最後に、バスをロックし、実際のデータ(データ)を送信します。要求R1がRdステージの場合、バスを占有しないため、この時点で要求R2、R1を送信した制御信号は、2番目のCtrl Ctrl R3の開始時刻より前に残っているため、送信するには不十分であることがわかります。起動できません。書き込み操作の場合、図2(b)に示すように、最初にバスをロックし、フラッシュダイを受信したデータの送信制御信号(Ctrl)、次にバスをロックし続け、実際のデータ(データ)を送信します。 )そして最後に、データFlash Die(Wr)を書き込みます。同様に、WrのR1フェーズでは、バスを占有せず、R2が処理されてCtrlデータが表示される場合があります。つまり、現在の1つの要求は未完了ですが、バスが占有されていない場合(Rdステージの読み取り操作、書き込みWrステージの操作)、バスが他の要求を処理するのに十分な時間を評価するかどうか、可能であれば要求を処理するかどうか、そうでない場合は他のリクエストは待機中です。バス上のクロスリクエストがバスをより効率的に使用できるようにする方法でのこのスケジューリングプロセス。

図2Flashsimインターリーブバス

Flashsimイベント処理フローの要約:最初に、SSDはイベントを受信し、要求をイベントのリスト、各イベントのマルチページに変換することによってコントローラー、コントローラーFTLに送信し、対応するチャネルバスにリストを送信します。バス分散チャネル処理個別のリクエスト。最後に、マージまたはイベントは、フラッシュプレーン処理モジュールで停止し、ブロック処理でイベントを消去し、ページでのイベント処理で読み取りと書き込みを行う場合があります。

表1シミュレーションパラメーターと実際のパラメーターSSD

表1に示す構成(実際のSSDはデータが不十分であるため、構成はある程度想定されます)と、図1に示すように取得された実際のSSD Flashsim2を使用したテスト結果の後。さまざまな励起条件で見ることができ、実際のSSD Flashsimも同様の傾向を示しており、FlashsimSSDが特性を効果的にシミュレートできることを示しています。

図1の試験結果を比較する。 3(Real SSD1:MTron、Real SSD2:Super Talent、Flashsim1:ページベースのFTL、Flashsim2:DFTL)

要約すると、Flashsimは機能が豊富で明確な構造であり、実際のSSDシミュレーターの効果をシミュレートし、それを使用してみることができます。SSDには小さな役割がないことを理解できるかもしれません。ただし、Flashsimのドキュメント自体は十分ではありません。改善するか、研究の開発に使用したいと考えています。その場合は、適切な調査を行い、そのコードを読む必要があります。

参照:

[1]キム・ヨンジェ他「Flashsim:NANDフラッシュベースのソリッドステートドライブ用のシミュレーター。」システムシミュレーションの進歩、2009年。SIMUL’09。に関する最初の国際会議。 IEEE、2009年。

[2] Hu、Yang、他。 「高度なコマンド、割り当て戦略、データの粒度によるSSD並列処理のパフォーマンスへの影響と相互作用。」スーパーコンピューティングに関する国際会議の議事録。 ACM、2011年。

[3] Prabhakaran、Vijayan、およびTedWobber。 「DiskSimシミュレーション環境用のSSD拡張機能。」 Microsoft Research(2009)。

[4] http://csl.cse.psu.edu/hybridstore