(57)【要約】【課題】  過酷な環境においてもデータロストを最小限にしたデータ記録装置を低コストで提供すること。【解決手段】  実施形態によれば、データ記録装置は、不揮発性の記録メディア、データ記録アプリケーション、キャッシュメモリ、および記録マネージャを具備する。データ記録アプリケーションは、伝送路を介して取得されたデータを記録メディアに記録する。キャッシュメモリは、データ記録アプリケーションから記録メディアに至る記憶階層の各々に設けられる。記録マネージャは、キャッシュメモリのそれぞれに同期指令を周期的に発行して、各キャッシュメモリの内容を記録メディアに強制的に反映させる。【選択図】  図１
2019159949.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の記録メディアと、
伝送路を介して取得されたデータを前記記録メディアに記録するデータ記録アプリケーションと、
前記データ記録アプリケーションから前記記録メディアに至る記憶階層の各々に設けられる複数のキャッシュメモリと、
前記キャッシュメモリのそれぞれに同期指令を周期的に発行して、各キャッシュメモリの内容を前記記録メディアに強制的に反映させる記録マネージャとを具備する、データ記録装置。
【請求項２】
前記伝送路は、それぞれプロセッサを有する異なる基板間を接続するシリアル伝送路である、請求項１に記載のデータ記録装置。
【請求項３】
前記データ記録アプリケーションは、汎用のオペレーティングシステム上で機能する、請求項１に記載のデータ記録装置。
【請求項４】
前記記録メディアは、アレイ配列される複数の半導体記憶素子を備える記録デバイスである、請求項１に記載のデータ記録装置。
【請求項５】
前記半導体記憶素子は、ＮＡＮＤ型フラッシュメモリであり、
前記記録マネージャは、前記キャッシュメモリの内容を前記ＮＡＮＤ型フラッシュメモリの最小ブロックサイズ以下とすべく前記同期指令を発行する、請求項４に記載のデータ記録装置。
【請求項６】
前記記録マネージャは、前記記録メディアのキャッシュメモリに対する前記同期指令の発行間隔を、前記データの占有帯域に基づいて適応的に制御する、請求項１に記載のデータ記録装置。
【請求項７】
データ記録アプリケーションを実行可能なプロセッサを有する異なる基板間を接続する伝送路を介して取得されたデータを、不揮発性の記録メディアに記録するデータ記録方法であって、
少なくとも１つのプロセッサが、前記データ記録アプリケーションから前記記録メディアに至る記憶階層の各々に設けられる複数のキャッシュメモリのそれぞれに同期指令を周期的に発行して、各キャッシュメモリの内容を前記記録メディアに強制的に反映させる過程を含む、データ記録方法。
【請求項８】
前記少なくとも１つのプロセッサは、前記記録メディアのキャッシュメモリに対する前記同期指令の発行間隔を、前記データの占有帯域に基づいて適応的に制御する、請求項７に記載のデータ記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データ記録装置およびデータ記録方法に関する。
【背景技術】
【０００２】
例えば産業用制御システムなどに用いられるデータ記録装置は、民生用途の装置と比較して格段に過酷な環境におかれる。例えば、連続稼働時間、埃や振動への耐性、温度環境などの要求は大変厳しく、加えて、電源瞬停等の不測の事態においても記録の継続性を要求される。仮に、停電によりデータがロストしたとしても、消失データのバイト数を極小化したり、少なくとも一定値に留めることを求められる。しかも、瞬停に備えた無停電電源装置を使用できない環境もまれではない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１５１７４２号公報
【特許文献２】特開２００９−１７５０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
過酷な環境下で運用されるデータ記録装置のコストは、一般に高い。その理由の一つは、電源の不安定性とストレージメディア（例えば、ＲＡＩＤ（Redundant Arrays of Independent Disks）、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）等）の定速性、入手性等を考慮したベンダ独自の技術が用いられるからで、このことが高コスト化と、汎用性の低下を招いていた。しかもデータの保存フォーマットが装置システムに依存するので、記録したシステム以外ではデータを再生することができなかった。
【０００５】
目的は、過酷な環境においてもデータロストを最小限にしたデータ記録装置およびデータ記録方法を低コストで提供することにある。
【課題を解決するための手段】
【０００６】
実施形態によれば、データ記録装置は、不揮発性の記録メディア、データ記録アプリケーション、キャッシュメモリ、および記録マネージャを具備する。データ記録アプリケーションは、伝送路を介して取得されたデータを記録メディアに記録する。キャッシュメモリは、データ記録アプリケーションから記録メディアに至る記憶階層の各々に設けられる。記録マネージャは、キャッシュメモリのそれぞれに同期指令を周期的に発行して、各キャッシュメモリの内容を記録メディアに強制的に反映させる。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係わるデータ記録装置の一例を示す機能ブロック図である。
【図２】図２は、データ記録に係わるゆらぎの一例を示すタイミングチャートである。
【図３】図３は、実施形態のデータ記録装置における記憶階層の一例を示す図である。
【図４】図４は、記録マネージャ２００による処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
図１は、実施形態に係わるデータ記録装置の一例を示す機能ブロック図である。データ記録装置は、それぞれプロセッサを有する基板としてのＣＰＵ（Central Processing Unit）カード１，２を備える。これらはＶＰＸバス３０を介して互いに通信可能に接続される。ＶＰＸバス３０はシリアル伝送路の一例であり、ＣＰＵカード１のバスプロトコル変換部１３と、ＣＰＵカード２のバスプロトコル変換部２３との間にデータ伝送路を形成する。すなわちＣＰＵカード１，２は、ＶＰＸバス３０及びバスブリッジ（バスプロトコル変換部１３，２３）経由で、データ伝送可能に接続される。
【０００９】
ＣＰＵカード１において、外部メモリ１５とＯＳ（Operating System）用ＳＳＤ１４が、バスプロトコル変換部１３に接続される。また、ＣＰＵ１１，１２が、ＣＰＵバス１７を介してバスプロトコル変換部１３に接続される。さらに、ネットワーク４０との通信インタフェース部１６が、内部バス１８を介してバスプロトコル変換部１３に接続される。
【００１０】
ＯＳ用ＳＳＤ１４は、例えばＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）等の、汎用のオペレーティングシステムを記録したデバイスである。システムが起動されると、ＯＳ用ＳＳＤ１４に記録されたＯＳイメージが外部メモリ１５に読み込まれ、ＣＰＵ１１，１２に初期アドレスが渡されてＯＳが起動される。次いで、このＯＳ上で機能するデータ記録アプリケーションが起動される。外部メモリ１５は例えばページメモリのような、大容量の揮発性記憶デバイスである。
【００１１】
ＣＰＵカード２は、ＣＰＵ１と同様の機能ブロックに加えて記録装置２６を備える。記録装置２６は、例えばＳＳＤ等の不揮発性の記録メディアである。ＣＰＵカード２において、外部メモリ２５とＯＳ用ＳＳＤ２４が、バスプロトコル変換部２３に接続される。また、ＣＰＵ２１，２２が、ＣＰＵバス２７を介してバスプロトコル変換部２３に接続される。記録装置２６は、内部バス２８を介してバスプロトコル変換部２３に接続される。
【００１２】
ＯＳ用ＳＳＤ２４も、例えばＵＮＩＸ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）等の、汎用のオペレーティングシステムを記録したデバイスである。システムが起動されると、ＯＳ用ＳＳＤ２４から外部メモリ２５にＯＳイメージが読み込まれ、初期アドレスがＣＰＵ２１，２２に渡されてＯＳが起動される。次いで、このＯＳ上で機能するデータ記録アプリケーションが起動される。外部メモリ２５は例えばページメモリのような、大容量の揮発性記憶デバイスである。
【００１３】
実施形態における記録装置２６は、アレイ配列される複数のＮＡＮＤ型フラッシュメモリ（ＮＡＮＤ ＦＬＡＳＨ ＡＲＲＡＹ）を備えたＳＳＤデバイスである。ここで、記録装置２６のＳＳＤのページングのブロックサイズは、例えば１２８ｋＢｙｔｅである。
【００１４】
図２は、データ記録に係わるゆらぎの一例を示すタイミングチャートである。図２において、入力機能から記録機能（データ記録アプリケーション）までの処理は、外部トリガに同期して実行される。しかしながらデータ記録アプリケーションは、汎用ＯＳを介してハードウェア（記録装置２６）アクセスするので、記憶階層ごとに存在する各種キャッシュメモリへのアクセスによる、処理時間の揺らぎが発生する。
【００１５】
例えば、ｏｐｅｎシステムコールの呼び出しから終了までに、ｔ１秒またはｔ２秒のゆらぎがある。このためｗｒｉｔｅシステムコールの呼び出し間隔が不均等になる。また、ｗｒｉｔｅシステムコールの呼び出しから終了までに、ｔ３あるいはｔ４秒の時間がかかり、これは記録すべきデータサイズに応じても変化する。１回の処理で完了しなければ、さらにｔ５までの時間を要し、ｃｌｏｓｅシステムコールの呼び出し間隔も不均等になっている。つまり、汎用ＯＳにリアルタイム性能を期待することはできず、ＣＯＴＳ（Commercial off-the-shelf）ソフトウェアにおいても事情は同じである。
【００１６】
図３は、実施形態のデータ記録装置における記憶階層の一例を示す図である。図３において、データ記録アプリケーション１００から記録装置２６のＮＡＮＤ ＦＬＡＳＨ ＡＲＲＡＹ２６４に至る記憶階層の各々に、使用目的の異なる複数のキャッシュメモリが設けられている。
【００１７】
アプリケーション層においては、高水準入出力キャッシュ３００が設けられる。ＯＳ層（ＯＳ領域）においては、ファイルシステムにバッファキャッシュ４００が設けられる。物理層である記録装置２６においても、キャッシュメモリ２６３と、データ書き込み／読み出しを制御するコントローラ２６２が設けられる。これらは、いずれも書き込みスループットを最大化することを意図して設けられている。しかし停電（瞬停）が生じると、これらのキャッシュメモリの内容は全て消失（ロスト）する。つまり、書き込み性能と消失サイズの極小化は、相反する事象である。
【００１８】
そこで、この実施形態では、データ記録アプリケーション１００と記録装置の間に、記録マネージャ２００を設ける。この記録マネージャ２００は、高水準入出力キャッシュ３００、バッファキャッシュ４００、およびキャッシュメモリ２６３（コントローラ２６２）のそれぞれに、周期的に同期指令を発行し、各キャッシュメモリの内容をＮＡＮＤ ＦＬＡＳＨ ＡＲＲＡＹ２６４に強制的に反映させる。
【００１９】
さらに、記録装置２６は、コントローラ２６２とキャッシュメモリ２６３との間に設けられる、同期機能２６１を備える。この同期機能２６１は、主電源（図示せず）から停電発生の通知を受けると、瞬停に備えたバックアップ電源２６５の放電が終了する前に、同期指令を強制的に出力する。以上のようなキャッシュメモリ同期制御により、停電発生時の消失データの極小化を図るとともに、データ書き込み性能の劣化を最小限にとどめることが可能になる。すなわち、データが消失したとしても、そのビット数を、記録装置２６のＮＡＮＤ ＦＬＡＳＨ ＡＲＲＡＹ２６４のページングの最小ブロックサイズである１２８ｋＢｙｔｅにまで抑制し、且つ、一定値にすること（極小化）ができる。
【００２０】
図４は、記録マネージャ２００による処理手順の一例を示すフローチャートである。データ記録処理が開始されると（ステップＳ１）、記録マネージャ２００は、記録すべきデータの占有帯域を求めるために、規定時間内のデータの使用帯域を計算する（ステップＳ２）。実施形態では、占有帯域を『低帯域』、『中帯域』、および『高帯域』の例えば３段階に分け、記録マネージャ２００は、それぞれの使用状態に応じて同期指令の発行間隔を制御する（ステップＳ３）。
【００２１】
すなわち記録マネージャ２００は、記録装置２６のキャッシュメモリ２６３に対する同期指令の発行間隔を、記録すべきデータの占有帯域に基づいて適応的に制御する。データの占有帯域が低帯域であれば、記録マネージャ２００は、同期指令の発行間隔を最短とし（ステップＳ４）、高帯域であれば、記録マネージャ２００は、同期指令の発行間隔を最長とする（ステップＳ６）。データの使用状態が中帯域であれば、記録マネージャ２００は、同期指令の発行間隔を中間の値とする（ステップＳ５）。なお、『低帯域』、『中帯域』、および『高帯域』の境界は予め定められた帯域の閾値に基づいて判定することができるし、同期指令の発行間隔も、システム仕様に応じて予め設定された３段階の値を使用すればよい。
【００２２】
そして、使用帯域の計算に係わる一定時間（ステップＳ２における規定時間）が経過するまでステップＳ２〜ステップＳ６は繰り返され（ステップＳ７）、一定時間が経過すると、記録マネージャ２００は、同期指令を出力（発行）する（ステップＳ８）。
【００２３】
以上説明したようにこの実施形態では、データ記録アプリケーション１００から記録装置２６に至る記憶階層の各々に設けられるキャッシュメモリ３００，４００，２６３のそれぞれに同期指令を周期的に発行し、各キャッシュメモリ３００，４００，２６３の内容を記録装置２６に強制的に反映させるようにした。これにより、停電や瞬停などの障害が発生した際の消失データを極小化することができる。
【００２４】
またこの実施形態では、記録マネージャ２００により、データの保存帯域の変動に応じて同期指令の出力間隔を調整するようにしている。これによりデータ書き込み性能の劣化を抑えることが可能になる。
【００２５】
すなわち、ＮＡＮＤ ＦＬＡＳＨ素子へのデータ書き込みに際しては、その前に消去を行う必要がある。消去はブロックサイズ単位で行われることから、書き込みサイズがブロックサイズを超過した時点で記録マネージャ２００が同期指令を出力することで、書き込み効率を最大限に高めることができる。
【００２６】
そこで、この実施形態では、過去の規定時間から測定した使用帯域を用いて、動的に同期指令の発行間隔を制御するようにした。このようにしたので、記録装置２６への書き込みによる記録性能の劣化を最小限に抑え、データ書き込み性能の劣化を最小限にとどめることが可能となる。
【００２７】
これらのことから、過酷な環境においてもデータロストを最小限にしたデータ記録装置およびデータ記録方法を低コストで提供することが可能となる。
【００２８】
実施形態を説明したが、この実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００２９】
１，２…ＣＰＵカード、１１，１２…ＣＰＵ、１３，２３…バスプロトコル変換部、１４，２４…ＯＳ用ＳＳＤ、１５，２５…外部メモリ、１６…通信インタフェース部、１７，２７…ＣＰＵバス、１８，２８…内部バス、２１，２２…ＣＰＵ、２６…記録装置、３０…ＶＰＸバス、４０…ネットワーク、１００…データ記録アプリケーション、２００…記録マネージャ、２６１…同期機能、２６２…コントローラ、２６３…キャッシュメモリ、２６５…バックアップ電源、３００…高水準入出力キャッシュ、４００…バッファキャッシュ。
【図１】
2019159949.tif 000003
【図２】
2019159949.tif 000004
【図３】
2019159949.tif 000005
【図４】
2019159949.tif 000006