説明

情報処理装置および情報処理方法

【課題】 汎用のストレージ装置をリアルタイム制御に用いることができる情報処理装置を提供する。
【解決手段】情報処理装置は、状態テーブル、監視部、バッファメモリ、タイマー、データ処理部、応答部を備える。前記監視部は前記ストレージ装置の動作状態を監視し、監視結果として前記ストレージ装置の動作状態を前記状態テーブルに設定する。前記応答部は前記ホスト装置からデータの書き込み要求があった場合、前記タイマーへカウント開始を指示すると共にデータの書込先を前記状態テーブルに設定し、書き込み対象の前記ストレージ装置への書き込みを指示し、その後、前記前記ホスト装置から一定期間内に送られてくる書き込み対象のデータを前記バッファメモリへ保持する一方、前記タイマーからタイムアップしたことが通知されたときに前記書き込み要求に対する書き込み完了の応答を前記ホスト装置へ返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
例えばビデオサーバなどに記憶された映像コンテンツをリアルタイムに配信するような産業用途向けの情報処理装置には、例えば大容量のハートディスク装置などのストレージ装置が使用されている。
【0003】
この種の情報処理装置は、ストレージ装置に対して、一定の時間内にデータの書き込み処理や読み出し処理を完了する必要がある。なぜなら、データの書き込みや読み出しが定められた時間を超えてしまうと、映像や音声の途切れなどが生じるおそれがあるからである。
【0004】
ハートディスク装置などは、大容量かつ低価格ではあるものの、速度と信頼性の面で難があり、近年では、ソリッド・ステート・ディスク:SSDが高速なストレージ装置として産業用途向けのシステムで利用されるようになってきた(例えば特許文献1参照)。
【0005】
産業用途向けのシステムで利用されるSSDは、容量が大きくなるとそれなりに高価であり、安価な汎用用途のSSD(例えばSATAなどの汎用インターフェースで接続可能なタイプ)の利用が望まれている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−102369号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、汎用のSSDなどのストレージ装置は、データの書き込み処理や読み出し処理の遅延時間が保証されておらず、そのままではデータ処理に遅延が生じることがあり、リアルタイム制御を行う装置には適用できないという問題がある。
【0008】
本発明が解決しようとする課題は、汎用のストレージ装置をリアルタイム制御に用いることができる情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【0009】
実施形態の情報処理装置は、ホスト装置と少なくとも一つ以上のストレージ装置が接続可能なインターフェースを有する情報処理装置であり、状態テーブル、監視部、バッファメモリ、タイマー、データ処理部、応答部を備える。前記状態テーブルには、前記インターフェースに接続された前記ストレージ装置の動作状態とデータの書込先とが設定可能である。前記監視部は前記ストレージ装置の動作状態を監視し、監視結果として前記ストレージ装置の動作状態を前記状態テーブルに設定する。前記バッファメモリはデータを一時保持可能である。前記タイマーはカウント開始の指示により予め設定された応答時間をカウントし、タイムアップするとタイムアップしたことを指示元へ通知する。前記応答部は前記ホスト装置からデータの書き込み要求があった場合、前記タイマーへカウント開始を指示すると共にデータの書込先を前記状態テーブルに設定し、書き込み対象の前記ストレージ装置への書き込みを指示する制御信号を出力し、前記前記ホスト装置からの書き込み要求の後に一定の前記応答時間内に送られてくる書き込み対象のデータを前記バッファメモリへ保持する一方、前記タイマーからタイムアップしたことが通知されたときに前記書き込み要求に対する書き込み完了の応答を前記ホスト装置へ返す。前記データ処理部は前記応答部からの前記制御信号が受信されると、前記状態テーブルを参照して前記ストレージ装置の動作状態とデータの書込先の設定からデータを書き込み可能なストレージ装置を選定し、選定したストレージ装置に対して、前記バッファメモリから読み出したデータを書き込む。
【図面の簡単な説明】
【0010】
【図1】第1実施形態の情報処理装置の構成を示す図である。
【図2】状態テーブルの内容を示す図である。
【図3】データ書き込みの際の各部の動作を示すシーケンスチャートである。
【図4】データ読み出しの際の各部の動作を示すシーケンスチャートである。
【図5】SSDへのデータの書き込みの際に遅延が発生していない場合のタイムチャートである。
【図6】SSDへのデータの書き込みの際に遅延が発生したときの動作を示すタイムチャートである。
【図7】第2実施形態の情報処理装置の構成を示す図である。
【図8】第3実施形態の情報処理装置の構成を示す図である。
【図9】第4実施形態の情報処理装置の構成を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して、実施形態を詳細に説明する。図1は情報処理装置の一つの実施の形態の遅延保証ユニット2の構成を示す図である。
【0012】
図1に示すように、この実施形態の遅延保証ユニット2は、ホスト装置1が接続された外部インターフェース20(以下「外部I/F20」と称す)、タイマー21、コマンド応答部22、バッファメモリ23、データ処理部24、状態テーブル25、監視部26、ディスクインターフェース27,28(以下「ディスクI/F27,28」と称す)を有している。
【0013】
ホスト装置1は、例えばビデオサーバなどであり、ストレージ装置にデータの書き込みや読み出しに応答時間の保証が求められるマルチメディアシステム、情報処理システム、製造プラントシステムなどの産業用途向けのシステムに適用される。
【0014】
ディスクI/F27,28は、少なくとも一つ以上の外部ストレージ装置、例えばソリッド・ステート・ディスク3,4(以下「SSD3,4」と称す)などと通信するためのインターフェースであり、例えば、シリアルATA(SATA−2.6または3.0)やPCI−eのポートである。この例では、ディスクI/F27,28に、SSD3,4がそれぞれ一台ずつ接続されている。
【0015】
外部I/F20は、ホスト装置1と通信するためのインターフェースであり、例えば、シリアルATA(SATA−2.6または3.0)やPCI−eのポートである。
タイマー21は、コマンド応答部22からの指示によりタイマー動作を開始し、カウントされた時間が、予め設定されたタイムアップ時間Tに達すると、コマンド応答部22にタイムアップを通知する。
【0016】
なお、ホスト装置1は、データの書き込み処理および読み出し処理を、システム仕様で定められた許容応答時間t以内に完了する必要がある。許容応答時間tから、ホスト装置1とコマンド応答部22間のコマンドの転送時間(インターフェース仕様により決まる一定時間)を差し引いた時間をタイムアップ時間Tとして設定することで遅延時間を一定の時間で納めるようにしている。
【0017】
ホスト装置1へ応答すべき時間は、予めタイマー21に設定されており、適用するシステムにより異なる。例えば、映像を扱うシステムでは33ms、製造プラントで使用するデータロガーなどであれば1〜10msなどである。
【0018】
タイムアップ時間Tは、ホスト装置1へ応答を返す上で遅延が許容される最大時間であり、予めタイマー21に設定しておいてもよく、タイマー21がタイムアップ時間Tを参照する書き換え可能なメモリに、外部からアクセスし、扱うシステムに応じてタイムアップ時間Tを書き換える(変更する)ようにしてもよい。
【0019】
すなわち、タイマー21は、コマンド応答部22からのカウント開始の指示により予め設定されたタイムアップ時間T(応答時間)をカウントし、タイムアップすると、タイムアップしたことを指示元のコマンド応答部22へ通知する。
【0020】
コマンド応答部22は、ホスト装置1との間でコマンドおよびデータのやりとりを行う。コマンド応答部22は、ホスト装置1から受信されたコマンドに応じて、データ処理部24に対してデータの書き込みまたは読み出しを指示(制御)する。
【0021】
またコマンド応答部22は、ホスト装置1から書き込み開始コマンド(データの書き込み要求)が受信されることで、複数のSSD3,4の書込先として、どのSSDに書き込むかを示すフラグ(書込先フラグ)を状態テーブル25に設定する。
【0022】
またコマンド応答部22はホスト装置1から書き込み開始コマンド(データの書き込み要求)が受信された場合、タイマー21へカウント開始を指示すると共に、状態テーブル25を参照してSSD3,4の動作状態(待機中か書込中か)を確認し、動作状態に応じてデータの書込先を選定し、データの書込先を状態テーブル25に設定し、書き込み対象のSSD(SSD3またはSSD4)への書き込みを指示する制御信号を出力し、ホスト装置1からの書き込み要求の後に一定の単位時間t以内に順次送られてくる書き込み対象のデータをバッファメモリ23へ保持する。SSD3,4の動作状態が「待機中」であれば、SSD動作状態フラグを「書込中」に変更し、予め設定されている側のSSDを書込先として選定する。
【0023】
一方、タイマー21からタイムアップしたことがコマンド応答部22に通知された時点で、コマンド応答部22は書き込み要求に対する書き込み完了の応答をホスト装置1へ返す。すなわち、コマンド応答部22は、バッファメモリ23へのデータの保持(書き込み)が完了しても直ぐには書き込み完了の応答を返さず、システムの応答時間であるタイムアップ時間Tを待って応答を返す。これにより、データの受信を完了してからタイムアップ時間Tまでが、SSD3,4の側でデータ書き込みの遅延が生じた際の遅延保証時間T1(図3参照)として確保されることになる。
【0024】
バッファメモリ23は、データを一時保持可能である。バッファメモリ23には、ホスト装置1から受信されたデータが一時的に保持(キャッシュ)される。
【0025】
データ処理部24は、コマンド応答部22からの制御信号を受信すると、状態テーブル25を参照してSSD3,4の動作状態と書込先の状態から書き込み可能なSSD(SSD3,4のうちのいずれか)を選定し、選定したSSDに対して、バッファメモリ23から読み出したデータを書き込む。すなわちデータ処理部24は、コマンド応答部22からの制御信号により制御されて、SSD3,4にデータを書き込みまたはSSD3,4から読み出す。
【0026】
状態テーブル25には、ディスクI/F27,28に接続されたSSD3,4の動作状態とSSD3,4の書込先が設定可能であり、監視部26によりそれぞれにフラグ(“0”または“1”)が設定される。
【0027】
監視部26は、ディスクI/F27,28へのコマンドまたはデータの入出力を監視する。すなわち監視部26はディスクI/F27,28を介してSSD3,4を監視し、監視結果として、SSD3,4の動作状態と書込先を状態テーブル25に設定する。
【0028】
具体的に、監視部26は、監視結果のSSD3,4の動作状態を「待機中」と「書込中」のいずれかを示すフラグ(動作状態フラグ)を状態テーブル25に設定する。
【0029】
SSD3,4の動作状態フラグは、例えば“0”または“1”のいずれが設定され、“0”のときに待機中(いずれのSSDにも書き込みをしていない状態)、“1”のときにどちらかのSSD3,4にデータを書き込み中であることを示す。
【0030】
また書込先フラグは、例えば“0”または“1”のいずれが設定され、“0”のときにSSD3へデータを書き込む(このときは、SSD4から読み出しを行う)、“1”のときにSSD4へデータを書き込む(このときは、SSD3から読み出しを行う)ことを示す。例えば、書込先フラグ“0”について、SD3にデータの書き込みを許可していることを言い換えると、他のSSD4に対して書き込み禁止の設定をしていることと同じ意味である。
【0031】
データ処理部24は状態テーブル25を参照して、コマンド応答部22からのコマンドで指示されたデータを書き込み可能または読み出すことが可能な側のSSD(SSD3またはSSD4のいずれか)に対してデータを書き込みまたは読み出す。
【0032】
データ処理部24は、ディスクI/F27,28に接続された複数のSSD3,4に対してデータの共通化を行う。具体的には、ホスト装置1から受信され、バッファメモリ23に保持したデータを、あるSSD3に書き込んだ後、そのデータをバッファメモリ23から読み出して他のSSD4に書き込むことで、複数のSSD3,4に対してデータ同期のための処理を行う。
【0033】
続いて、この実施形態の遅延保証ユニット2の動作を(図3:データ書き込み動作)と(図4:データ読出し動作)に分けて説明する。
(データ書き込み動作)
まず、図3を参照してデータ書き込み動作を説明する。
外部のホスト装置1がSSD(SSD3またはSSD4のいずれか)へデータを書き込む場合、ホスト装置1はデータの書き込みコマンドをコマンド応答部22へ送信する(図3のステップS101)。
【0034】
ホスト装置1から送信された書き込みコマンドをコマンド応答部22が受信すると、コマンド応答部22は、タイマー開始コマンドをタイマー21へ送ると共に(ステップS102)、状態テーブル25を参照して、SSD(SSD3、SSD4共に)が待機中であることをチェックし、SSDが待機中のとき、状態テーブル25へ書き込み先変更コマンドを送ることで、状態テーブル25の書込先フラグを設定する(ステップS103)。
【0035】
例えば、書込先フラグが“1”でSSDが待機中であった場合に、コマンド応答部がホスト装置1から送信された書き込みコマンドを受信すると、書込先フラグを“0”に変更し、SSD3へ書き込み許可(SSD4を書き込み禁止)に設定する。
タイマー21はタイマー開始コマンドを受けて、カウントを開始する。
【0036】
またコマンド応答部22は、待機中のSSDが存在すると、ホスト装置1へ応答の受信可能コマンドを返し(ステップS104)、この受信可能コマンドによりホスト装置1からデータが順次送られる(ステップS105)。
【0037】
コマンド応答部22は、ホスト装置1より送信されてきたデータA〜Hをバッファメモリ23に順次保持しながら、書込開始コマンド(制御信号)をデータ処理部24へ送る(ステップS106)。
【0038】
データ処理部24は、コマンド応答部22からの書込開始コマンド(制御信号)を受けると、状態テーブル25を参照して、状態テーブル25の書込先フラグから書き込み先をSSD3に決定し、SSD3に対して書込開始コマンドをディスクI/F27(監視部26)を通じて送信する(ステップS107,S108)。
【0039】
書込開始コマンドを受信したSSD3からは、受信可能コマンドが返されるので、この受信可能コマンドがディスクI/F27および監視部26を通じてデータ処理部24に受信されると(ステップS109,S110)、データ処理部24は、バッファメモリ23から順次読み出したデータA〜HをディスクI/F27を通じて書き込み対象のSSD3に書き込む(ステップS111)。
【0040】
一方、タイマー21は、カウントを開始してからタイムアップ時間T(応答時間)が経過すると、タイムアップし、タイムアップ通知コマンドをコマンド応答部22へ返す(ステップS112)。
【0041】
コマンド応答部22は、一回分の全てのデータA〜Hがバッファメモリ23に受信されたとしても受信完了の応答を返さず、タイマー21からのタイムアップ通知コマンドが受信されるのを待機する。この待機時間が遅延保証時間T1(図3参照)となる。
【0042】
そして、タイムアップ通知コマンドを受けると、書込完了コマンドをホスト装置1へ送信する(ステップS113)。
【0043】
また、SSD3へのデータの書き込みが完了すると、SSD3からは、書込完了コマンドが返されるので、この書込完了コマンドがディスクI/F27を通じて監視部26およびデータ処理部24に受信される(ステップS114)。
書込完了コマンドを受けた監視部26は、状態テーブル25の、SSD動作状態フラグを“1”「書き込み中」→“0”「待機中」へ変更する。
【0044】
書込完了コマンドを受けたホスト装置1が次のデータの書き込み開始コマンドを送信し、そのコマンドをコマンド応答部22が受信すると(ステップS115)、コマンド応答部22は、状態テーブル25の、書込先フラグの状態を“0”「SSD3へ書込許可」→“1”「SSD4へ書込許可」へ変更する(ステップS116)。
【0045】
データ処理部24は、書込完了コマンドが受信されると、状態テーブル25の書き込み先フラグを確認し(ステップS117)、書込先フラグが“1”「SSD4へ書込許可」であることから、データ同期のため、SSD4に対してデータの書込開始コマンドを送信する(ステップS118)。
【0046】
この書込開始コマンドを受信したSSD4からは、受信可能コマンドが返されるので、この受信可能コマンドがディスクI/F28および監視部26を通じてデータ処理部24に受信されると(S119)、データ処理部24は、バッファメモリ23に保持されているデータA〜Hを順次読み出し、ディスクI/F28を通じて書き込み対象のSSD4に書き込む(ステップS120)。
【0047】
SSD4へのデータの書き込みが完了すると、SSD4からは、書込完了コマンドが返されるので、この書込完了コマンドがディスクI/F28を通じて監視部26およびデータ処理部24に受信される(ステップS121,S122)。
【0048】
監視部26は、書込完了コマンドが受信されると、状態テーブル25の、SSD動作状態フラグを“1”「書込中」→“0”「待機中」へ変更する(ステップS123)。
【0049】
なお、コマンド応答部22は、バッファメモリ23に書き込まれるデータの量が所定のデータ量を超えたときに、その旨を示す情報を制御信号としてデータ処理部24へ通知する。
【0050】
(データ読み出し動作)
次に、図4を参照してデータ読み出し動作を説明する。
外部のホスト装置1がSSD3またはSSD4からデータを読み出す場合、ホスト装置1はデータの読出コマンドをコマンド応答部22へ送信する(図4のステップS201)。
【0051】
ホスト装置1から送信された読出コマンドをコマンド応答部22が受信すると、コマンド応答部22は、その読出コマンドに従い、データを読み出すよう指示する制御信号をデータ処理部24へ送る(ステップS202)。
【0052】
データ処理部24は、コマンド応答部22からの読出開始コマンド(制御信号)を受けると、状態テーブル25を参照して、書き込み先として設定されているSSDを確認し(ステップS203)、読出開始コマンドを送信可能なSSDを決定し(ステップS204)、ディスクI/F27またはディスクI/F28を通じて対象のSSD(SSD3またはSSD4)へ送信する(ステップS205、S206)。
【0053】
ここでは状態テーブル25を参照した結果、書込先フラグの状態が“1”「SSD4へ書込許可」、つまり「SSDからの読出許可」と設定されていたものとする。
この場合、データ処理部24は、読出開始コマンドを、ディスクI/F27を通じてSSD3へ送信する。
【0054】
読出開始コマンドを受けたSSD3は、データを順次読み出して、ディスクI/F27を通じてホスト装置1へ送信する(ステップS207)。この場合、バッファメモリ23は経由しない。
【0055】
ホスト装置1へのデータの送信が完了すると、SSD3は、読出完了コマンドを、ディスクI/F27(監視部26)を通じてコマンド応答部22へ送り(ステップS208、S209)、さらにコマンド応答部22からホスト装置1へ読出完了コマンドを送信する(ステップS210)。
【0056】
ここで、図5、図6を参照してSSD3,4へのデータ書き込みの際に遅延が発生したときの動作を説明する。
【0057】
まず、図5を参照して、SSD3またはSSD4への書き込み処理の際に遅延が発生していない場合の状態の変化を説明する。
なお、図中、「Wn」(n=1,2,3,・・・)は書き込み処理中の時間を、「Rn」(n=1,2,3,・・・)は読み出し処理中の時間を示し、時間経過に伴う状態の変化を順に説明する。
【0058】
状態1では、ホスト装置1から書込開始コマンドが発行され、データ(W1)をバッファメモリ23に保持する。データの受信完了後、予め定めたタイムアップ時間Tが経過してからホスト装置1へ書込完了応答を送信する。
【0059】
状態2では、ホスト装置1からの読出開始コマンド(R1)が受信され、書込先フラグの状態が“0”であり、SSD4からデータ(R1)を読み出し、ホスト装置1に送信する。
【0060】
状態3では、ホスト装置1から書込開始コマンドが発行され、データ(W2)を、メモリバッファ23に保持する。同時に、状態1でバッファメモリ23に書き込んだデータ(W1)を、状態テーブル25の書込先フラグを参照して書込許可されているSSD4に書き込む。ホスト装置1から書込開始コマンドが受信されたときに、状態テーブル25のSSD動作状態フラグが“0”であったら、コマンド応答部22が状態テーブル25の書込先フラグを“0”→“1”、つまり、書込先をSSD3からSSD4へ切り替えている。
【0061】
また、ホスト装置1からバッファメモリ23へのデータ(W2)の保持が完了した後、バッファメモリ23のデータ(W2)をSSD4へ書き込む。つまり、ホスト装置1からの書き込みデータとSSD4への書き込みデータが一致するまでSSD4へのデータ(W1,W2)の書き込みを行う。
【0062】
状態4では、ホスト装置1からの読出開始コマンドに応じて書込禁止設定中のSSD3からデータ(R2)を読み出し、ホスト装置1へ送信する。このとき、他方のSSD4では、データ(W2)を書き込んでいることがある。
【0063】
状態5では、ホスト装置1から書込開始コマンドが発行されデータ(W3)をメモリバッファに保持する。このときに、書込禁止設定のSSDを、SSD4からSSD3へ切り替える。そして、状態1および状態3でバッファメモリ23に保持していたデータを書き込み禁止していないSSD3へ書き込む。
【0064】
そして、1つ前のホスト装置1からの書き込みデータ(W2)とSSD4への書き込みデータが一致するまでSSD4へのデータの書き込みを行う。
【0065】
状態6では、状態4と同様に読み出し処理を行う。以後、状態3から状態6を繰り返し行う。
【0066】
次に、図6を参照して、SSD3,4への書き込み処理に遅延が発生している場合の状態の変化を説明する。
【0067】
状態7では、ホスト装置1からの書き込みコマンドが受信された後、ホスト装置1から送信されてきたデータ(W3)をメモリバッファ23に書き込む。
これと同時に、SSD3へのデータ(W1)の書き込みも行うが、SSD3ではデータ(W1)の書き込みに遅延が発生し、書き込み処理が次の状態8にまで継続しているものとする。
【0068】
状態8では、ホスト装置1からの読出開始コマンド(R3)に応じてSSD4からデータ(R3)を読み出す。このとき、他方のSSD3では、データ(W1)の書き込み処理が引き続き継続されている。
【0069】
状態9では、ホスト装置1からの書込開始コマンドが受信された後、ホスト装置1から送られてきたデータ(W4)をメモリバッファに保持する。これと同時にSSD3へのデータの書き込み処理が引き続き行われている。
【0070】
このように、前の状態からSSD3へのデータの書き込み処理が継続している場合には、書込禁止設定のSSD4の切り替えを行わない。また、どちらのSSDにホスト装置1からの書き込みデータと一致するまで書き込みを行うのかの設定を切り替える。
【0071】
状態10では、ホスト装置1からの読出開始コマンド(R4)に応じてSSD4からデータ(R4)を読み出す。このとき、状態9で書込禁止設定のSSD4の切り替えをしていないので、状態8と同じSSD4からデータを読み出している。
【0072】
このとき、他方のSSD3では、データの書き込み処理を引き続き継続しているが、データの書き込み処理が完了したときに、次のホスト装置1からの書込開始コマンドが発行されるまでに時間があれば、さらにSSD3への書き込みを行う。
【0073】
状態11では、ホスト装置1からの書込開始コマンドが受信され、書込禁止設定のSSDを、SSD4からSSD3へ切り替える。その後、ホスト装置1から送られてきたデータ(W5)をメモリバッファ23に保持する。
これと同時にバッファメモリ23に保持されているデータ(W3,W4)を、書込許可されているSSD4へ書き込む。
【0074】
状態9においてどのデータまでSSD3へ書き込みを行うのかを切り替えているので、1つ前のホスト装置1からの書き込みデータ(W4)とSSD4への書き込みデータが一致するまでSSD4へのデータの書き込みを行う。
【0075】
状態12は、基本動作の読み出し処理の動作である。
状態13は、ホスト装置1からの書き込みコマンドが受信された後、ホスト装置1から送信されてきたデータ(W6)をメモリバッファ23に保持する。
これと同時にバッファメモリ23に保持していたデータ(W3,W4,W5)をSSD3へ書き込む。
この時点では、ホスト装置1から送られてきている書き込みデータに、SSD3へのデータの書き込み処理が追いついていないため、次のデータ(W4,W5)についてもSSD3へ書き込む。
【0076】
状態14は、基本動作の読み出し処理の動作である。この時点でもSSD3へのデータの書き込みは、ホスト装置1からの書き込みデータに追いついていないため、SSD3へ次のデータ(W4の残り,W5)の書き込みを行う。
【0077】
状態15から状態18は、状態11から状態14と同様の動作であり、状態18のように、ホスト装置1からの書き込みデータに、SSD3への書き込みデータが追いつくまで、上記動作を繰り返し行う。以降は、基本動作と同様の動作に戻る。
【0078】
このようにこの第1実施形態によれば、2台のSSD3,4を用いてデータ同期を実現し、待機中のSSDにデータを書き込み、他方を書込禁止にしてデータの読み出しに対応することで、リアルタイム制御におけるデータの読み出しに対応することができる。
【0079】
ホスト装置1からのデータの書き込み要求に対しては、ホスト装置1からのデータをバッファメモリ23に保持しておく一方で、SSD3,4側とは書き込みと読み出しの状態を切り替えながらバッファメモリ23からデータを適宜書き込むことで、SSD3,4で発生する遅延を吸収する。すなわち、遅延保証ユニット2においてSSD3,4への処理とホスト装置1への処理とを分離することで、SSD3,4の応答遅延の影響がホスト装置1側へ及ばなくなり、SSDの遅延を保証することができる。
【0080】
また、ホスト装置1からのデータの書き込みの際に、ホスト装置1から送られたデータのバッファメモリ23への保持が完了しても直ちに書込完了の応答を返さずに、ホスト装置1がデータを送る周期に合わせて、データの書込完了コマンド(書込完了通知)をホスト装置1へ返すようにすることで、SSD3,4の側でデータの書き込みに遅延が生じた場合でも、受信データがバッファメモリ23に溜らなくなり、遅延の影響が吸収されるので、遅延時間が保証されてない汎用のSSD3,4などをリアルタイム制御に用いることができるようになる。
【0081】
また、汎用のストレージ装置の一つであるSSD3,4を接続するユニットを外付けの拡張ユニット(遅延保証ユニット2)とすることで、以下のような効果が得られる。
1)外付けの遅延保証ユニット2に汎用のストレージ装置(SSDやHDD)を接続して、データの書き込みおよびデータの読み出しの際に、ストレージ装置に発生する遅延を保証することができる。
2)ディスクI/F27,28の機能を実装変更(ディスクI/F27,28を他のI/Fと置換)するだけで、現在および未来に規格化されるあらゆるストレージ装置に対応可能である。つまりストレージ装置が故障したときや新しい世代のストレージ装置への変更を容易にできる。
3)コンピュータやサーバーなどの拡張機能とすることも可能であり、インデント品の産業機器にも容易に組み込むことができる。
すなわち、本実施形態によれば、汎用のSSDなどのストレージ装置をリアルタイム制御に用いることができる遅延保証ユニット2および遅延保証ユニット2による遅延保証方法を提供することができる。
【0082】
次に、図7を参照して第2実施形態を説明する。この第2実施形態は、第1実施形態の変形例である。
図7に示すように、第2実施形態の遅延保証ユニット2は、各ディスクI/F27,28に監視部26a,26bを設けている。
【0083】
この第2実施形態によれば、各ディスクI/F27,28に監視部26a,26bをそれぞれ設け、各ディスクI/F27,28毎のデータやコマンドの流れを監視することで個々の監視部26a,26bの負荷を軽減することができ、比較的価格の安い部品を使用でき、コスト削減に寄与することにできる。
【0084】
次に、図8を参照して第3実施形態を説明する。この第3実施形態は、第2実施形態の変形例である。
図8に示すように、第3実施形態の遅延保証ユニット2は、ディスクI/F27,28の内部に監視部26a,26bを設けている。ディスクI/F27,28はSATA規格を採用している。監視部26a,26bはSATA規格のトランスポート層とリンク層の間のFISコマンドの送受信を監視する機能を有している。
【0085】
監視部26a,26bは、ディスクI/F27,28からSSD3,4へ送信されたFISコマンドの送信時刻とそのコマンドに対するSSD3,4からの返信を受信するまでの時刻を遅延時間として算出し、データ処理部24に監視情報として出力する機能を有している。
【0086】
この第3実施形態によれば、ディスクI/F27,28の内部に監視部26a,26bを設けることで、ユニットを小型化することができる。
【0087】
次に、図9を参照して第4実施形態を説明する。この第4実施形態は、第2実施形態の変形例である。第4実施形態の遅延保証ユニット2は、4台のSSD3〜6を接続した場合の構成例である。
【0088】
図9に示すように、第4実施形態の遅延保証ユニット2は、4台のSSD3〜6の制御を2台ずつに分けアレイ化したものであり、アレイ毎にRAID0、RAID1の各動作が可能である。
【0089】
アレイ部7は、2台のSSD3,4を接続したディスクI/F27,28アレイ制御部30などを有している。
【0090】
アレイ部8は、2台のSSD5,6を接続したディスクI/F27,28、アレイ制御部30などを有している。アレイ制御部7,8は、アレイ毎の制御を行う。
【0091】
第4実施形態の動作を説明する。なお説明を分かり易くするために、アレイ部7に視点をおいて説明する。
【0092】
第4実施形態の場合、RAID0として制御する場合、データ処理部24から書き込まれたデータを、一定のデータサイズに分割し、SSD3,4にデータを書き込む。これにより、伝送速度の向上を図ることができる。
【0093】
SSD3,4からデータを読み出す際には、SSD3,4から対象のデータを読み出し、データ処理部24から書き込まれたときと同様のデータの並びに結合し、データ処理部24に出力する。
【0094】
一方、RAID1として制御する場合には、データ処理部24から書き込まれたデータをSSD3,4にそれぞれ書き込む。
【0095】
この第4実施形態によれば、SSD3,4のどちらか一方が破損した場合にも、もう片方のSSD(SSD3またはSSD4)でデータの読み書きが可能であり、ストレージシステムとしての信頼性を向上することができる。
【0096】
以上のように本発明の各実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0097】
また上記実施形態に示した各構成要素を、コンピュータのハードディスク装置などのストレージにインストールしたプログラムで実現してもよく、また上記プログラムを、コンピュータ読取可能な電子媒体:electronic mediaに記憶しておき、プログラムを電子媒体からコンピュータに読み取らせることで本発明の機能をコンピュータが実現するようにしてもよい。電子媒体としては、例えばCD−ROM等の記録媒体やフラッシュメモリ、リムーバブルメディア:Removable media等が含まれる。さらに、ネットワークを介して接続した異なるコンピュータに構成要素を分散して記憶し、各構成要素を機能させたコンピュータ間で通信することで実現してもよい。
【符号の説明】
【0098】
1…ホスト装置、3,4…ソリッド・ステート・ディスク(SSD)、20…外部インターフェース(外部I/F)、21…タイマー、22…コマンド応答部、23…バッファメモリ、24…データ処理部、25…状態テーブル、26…監視部、27,28…ディスクインターフェース(ディスクI/F)。

【特許請求の範囲】
【請求項1】
ホスト装置と少なくとも一つ以上のストレージ装置が接続可能なインターフェースを有する情報処理装置において、
前記インターフェースに接続された前記ストレージ装置の動作状態とデータの書込先とが設定可能な状態テーブルと、
前記ストレージ装置の動作状態を監視し、監視結果として前記ストレージ装置の動作状態を前記状態テーブルに設定する監視部と、
データを一時保持可能なバッファメモリと、
カウント開始の指示により予め設定された応答時間をカウントし、タイムアップするとタイムアップしたことを指示元へ通知するタイマーと、
前記ホスト装置からデータの書き込み要求があった場合、前記タイマーへカウント開始を指示すると共にデータの書込先を前記状態テーブルに設定し、書き込み対象の前記ストレージ装置への書き込みを指示する制御信号を出力し、前記前記ホスト装置からの書き込み要求の後に前記一定の応答時間内に送られてくる書き込み対象のデータを前記バッファメモリへ保持する一方、前記タイマーからタイムアップしたことが通知された時点で前記書き込み要求に対する書き込み完了の応答を前記ホスト装置へ返す応答部と、
前記応答部からの前記制御信号が受信されると、前記状態テーブルを参照して前記ストレージ装置の動作状態とデータの書込先の設定からデータを書き込み可能なストレージ装置を選定し、選定したストレージ装置に対して、前記バッファメモリから読み出したデータを書き込むデータ処理部と
を具備する情報処理装置。
【請求項2】
前記監視部は、
前記ストレージ装置の動作状態を監視した監視結果として、前記ストレージ装置の動作状態を、待機中と書込中のいずれかを示すフラグを前記状態テーブルに設定する請求項1記載の情報処理装置。
【請求項3】
前記応答部は、
前記ホスト装置から書き込みコマンドが受信されたとき、前記状態テーブルを参照して前記ストレージ装置の動作状態を確認し、データの書込先を選定し、どのストレージ装置に書き込むのかを示すフラグを前記状態テーブルに設定する請求項1記載の情報処理装置。
【請求項4】
ホスト装置から受信され、前記バッファメモリに保持したデータを、あるストレージ装置に書き込んだ後、前記バッファメモリから読み出して他のストレージ装置に書き込むことで、複数のストレージ装置に対してデータ同期を行う請求項1記載の情報処理装置。
【請求項5】
ホスト装置と少なくとも一つ以上のストレージ装置が接続可能なインターフェースを有する情報処理装置における情報処理方法において、
前記インターフェースに接続されたストレージ装置の動作状態を監視部が監視し、監視結果として前記ストレージ装置の動作状態を状態テーブルに設定し、
前記ホスト装置からデータの書き込み要求があった場合、応答部がタイマーへカウント開始を指示すると共にデータの書込先を前記状態テーブルに設定し、書き込み対象の前記ストレージ装置への書き込みを指示する制御信号を出力し、前記ホスト装置からの書き込み要求の後に一定の応答時間内に送られてくるデータを前記バッファメモリへ保持し、
カウント開始の指示によりタイマーが予め設定された前記応答時間をカウントし、タイムアップすると、タイムアップしたことを前記応答部へ通知し、
前記制御信号を受信したデータ処理部が、前記状態テーブルを参照して前記ストレージ装置の動作状態とデータの書込先の設定とから書き込み可能なストレージ装置を選定し、選定したストレージ装置に対して、前記バッファメモリから読み出したデータを書き込み、
前記タイマーからタイムアップしたことが前記応答部に通知された時点で、前記応答部が前記書き込み要求に対する書き込み完了の応答を前記ホスト装置へ返す、情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−41403(P2013−41403A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【出願番号】特願2011−177628(P2011−177628)
【出願日】平成23年8月15日(2011.8.15)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】