説明

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

【課題】 汎用のストレージ装置をリアルタイム制御に用いることができる情報処理装置を提供する。
【解決手段】情報処理装置は、ホスト装置と一台のストレージ装置が接続可能なインターフェース、バッファメモリ、タイマー、コマンド応答部、データ処理部、リード制御部を有する。前記バッファメモリは第1記憶領域と第2記憶領域を有する。前記タイマーはカウント開始の指示により応答のための一定時間をカウントしタイムアップを通知する。前記コマンド応答部はリード要求に対して前記タイマーにカウント開始を指示した後、前記ストレージ装置からのデータの読み出しを指示する。前記データ処理部は読み出し指示により指示されたデータを前記ストレージ装置から読み出し前記第2記憶領域に保持する。前記リード制御部は前記タイマーからのタイムアップ通知を受けた時点で前記第2記憶領域のデータを前記ホスト装置へ送信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
例えばビデオサーバなどに記憶された映像コンテンツをリアルタイムに配信するような産業用途向けの情報処理装置には、例えば大容量のハードディスク装置などのストレージ装置が使用されている。
【0003】
この種の情報処理装置は、ストレージ装置に対して、一定の時間内にデータの書き込み処理や読み出し処理を完了する必要がある。なぜなら、データの書き込みや読み出しが定められた時間を超えてしまうと、映像や音声の途切れなどが生じるおそれがあるからである。
【0004】
ハードディスク装置などは、大容量かつ低価格ではあるものの、速度と信頼性の面で難があり、近年では、ソリッド・ステート・ディスク:SSDが高速なストレージ装置として産業用途向けのシステムで利用されるようになってきた(例えば特許文献1参照)。
【0005】
産業用途向けのシステムで利用されるSSDは、容量が大きくなるとそれなりに高価であり、安価な汎用用途のSSD(例えばSATAなどの汎用インターフェースで接続可能なタイプ)の利用が望ましい。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−102369号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、汎用のSSDなどのストレージ装置は、データの書き込み処理や読み出し処理の遅延時間が保証されておらず、特にSSDなどでは、データ書き込み時にガベージコレクションに代表されるように特有の遅延現象が発生する。このため、そのままではデータ処理に遅延が生じることがあり、例えばテレビジョン放送などのリアルタイム制御を行う装置またはシステムには利用することができないという問題がある。
【0008】
本発明が解決しようとする課題は、1台のストレージ装置を用いてリアルタイム制御を行うことができる情報処理装置および情報処理方法を提供することにある。
【課題を解決するための手段】
【0009】
実施形態の情報処理装置は、ホスト装置とストレージ装置が接続可能なインターフェース、状態テーブル、監視部、バッファメモリ、タイマー、コマンド応答部、データ処理部、リード制御部を有する。前記状態テーブルは、前記インターフェースに接続された前記ストレージ装置の動作状態が書込・読出中か待機中かを設定可能である。前記監視部は前記ストレージ装置の動作状態を監視し、監視結果として前記ストレージ装置の動作状態を前記状態テーブルに設定する。前記バッファメモリは、データを書き込むための第1記憶領域とデータを読み出すための第2記憶領域を有し、前記第1記憶領域および第2記憶領域にデータを一時保持可能である。前記タイマーは、カウント開始の指示により、リード要求に対して予めシステムとして許容可能な時間に設定された許容応答時間をカウントし、タイムアップを通知する。前記コマンド応答部は前記ホスト装置からデータのライト要求があった場合、前記ライト要求の後に前記ホスト装置から前記一定時間毎に送られてくる書き込み対象のデータを前記バッファメモリの前記第1記憶領域へ保持した後、前記状態テーブルを参照して前記ストレージ装置の動作状態が待機中の場合に前記ストレージ装置に対してデータの書き込みを指示する一方、前記ホスト装置からのリード要求に対しては、前記タイマーにカウント開始を指示した後、前記ストレージ装置からのデータの読み出しを指示する。前記データ処理部は、前記コマンド応答部からの書き込み指示により前記バッファメモリの前記第1記憶領域からデータを読み出して前記ストレージ装置に書き込む一方、前記コマンド応答部からの読み出し指示により、指示されたデータを前記ストレージ装置から読み出し、前記バッファメモリの前記第2記憶領域に保持する。前記リード制御部は前記タイマーからのタイムアップ通知を受けた時点で前記バッファメモリの前記第2記憶領域に保持されているデータを前記ホスト装置へ送信する。
【図面の簡単な説明】
【0010】
【図1】第1実施形態の遅延保証ユニットの構成を示す図である。
【図2】状態テーブルの内容を示す図である。
【図3】通常の動作を示すシーケンスチャートである。
【図4】書き込み遅延発生時の動作を示すシーケンスチャートである。
【図5】他の例の遅延保証ユニットの構成を示す図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して実施形態を詳細に説明する。図1は情報処理装置の一つの実施の形態の遅延保証ユニット2の構成を示す図である。
【0012】
図1に示すように、この実施形態の遅延保証ユニット2は、ホスト装置1が接続された外部インターフェース20(以下「外部I/F20」と称す)、タイマー21、コマンド応答部22、バッファメモリ23、データ処理部24、状態テーブル25、監視部26、ディスクインターフェース27(以下「ディスクI/F27」と称す)、リード制御部40を有している。
【0013】
ホスト装置1は、例えばビデオサーバなどであり、ストレージ装置にデータの書き込みや読み出しに応答時間の保証が求められるマルチメディアシステム、情報処理システム、製造プラントシステムなどの産業用途向けのシステムに適用される。
【0014】
ディスクI/F27は、少なくとも一つ以上の外部ストレージ装置、例えばソリッド・ステート・ディスク3(以下「SSD3」と称す)などと通信するためのインターフェースであり、例えば、シリアルATA(SATA−2.6または3.0)やPCI−eのポートである。この例では、ディスクI/F27にSSD3が一台接続されている。
【0015】
外部I/F20は、ホスト装置1と通信するためのインターフェースであり、例えば、シリアルATA(SATA−2.6または3.0)やPCI−eのポートである。
【0016】
タイマー21は、コマンド応答部22からの指示によりタイマー動作を開始し、カウントされた時間が、予め設定されたタイムアップ時間(一定時間T)に達すると、コマンド応答部22およびリード制御部40にタイムアップを通知する。つまりタイマー21は、カウント開始の指示により、リードコマンド(読出要求)に対して予めシステムが許容可能な最大時間に設定された許容応答時間をカウントし、タイムアップを通知する。
【0017】
なお、テレビジョン放送等では、通常、遅延が許容される時間は2sec程度であり、ホスト装置1は、データの書き込み処理および読み出し処理を、システムの仕様で予め定められた許容応答時間以内に完了する必要がある。この遅延保証ユニット2の場合、許容応答時間から、ホスト装置1とコマンド応答部22間のコマンドの転送時間(インターフェース仕様により決まる一定時間)を差し引いた時間をタイムアップ時間(一定時間T)として設定することで、遅延時間を一定の時間内で納めるようにしている。
【0018】
ホスト装置1へ応答すべき時間は、予めタイマー21に設定されており、適用するシステムにより異なる。例えば、映像を扱うシステムでは33msec(テレビジョンの動画の1フレーム分の時間:1/30sec)、製造プラントで使用するデータロガーなどであれば1〜10msecなどである。
【0019】
タイムアップ時間(一定時間T)は、ホスト装置1へ応答を返す上で遅延が許容される最大時間であり、予めタイマー21に設定しておいてもよく、タイマー21がタイムアップ時間(一定時間T)を参照する書き換え可能なメモリに、外部からアクセスし、扱うシステムに応じてタイムアップ時間(一定時間T)を書き換える(変更する)ようにしてもよい。
【0020】
すなわち、タイマー21は、コマンド応答部22からのカウント開始の指示により予め設定されたタイムアップ時間Tをカウントし、タイムアップすると、タイムアップしたことを指示元のコマンド応答部22およびリード制御部40へ通知する。
【0021】
コマンド応答部22は、ホスト装置1との間でコマンドおよびデータのやりとりを行う。コマンド応答部22は、ホスト装置1から受信されたコマンドに応じて、データ処理部24に対してデータの書き込みまたは読み出しを指示(制御)する。
【0022】
またコマンド応答部22はホスト装置1からライトコマンド(データの書き込み要求)を受信した場合、図2に示される状態テーブル25を参照してSSD3の動作状態(待機中か書込・読出中か)を確認する。
【0023】
この確認の結果、SSD3の動作状態が「待機中」であれば、書き込み可能であり、この場合、コマンド応答部22はSSD3への書き込みを指示する制御信号を出力し、ホスト装置1から一定周期tで送られてくる書き込み対象のデータをバッファメモリ23へ保持する。コマンド応答部22はこれと共に状態テーブル25のSSD3の動作状態フラグの設定を「待機中」から「書込・読出中」に変更する。
【0024】
またリード制御部40はタイムアップ通知を受けて、バッファメモリ23に保持されているデータをホスト装置1へ送信する。
【0025】
すなわち、コマンド応答部22およびリード制御部40は、バッファメモリ23へのデータの保持(書き込み)が完了すると、直ぐに書き込み完了の応答をホスト1へ返す。これにより、データの受信を完了してからタイムアップ時間(一定時間T)までが、SSD3の側でデータ書き込みの遅延が生じた際の遅延保証時間として確保されることになる。
【0026】
バッファメモリ23には、複数の記憶領域(第1記憶領域23aおよび第2記憶領域23bなど)が設けられている。第1記憶領域23aにはホスト装置1から受信されたデータを一時保持可能である。第2記憶領域23bにはSSD3から読み出されたデータを一時保持可能である。バッファメモリ23には、ホスト装置1およびSSD3からそれぞれ受信されたデータが一時的に保持(キャッシュ)される。
【0027】
第1記憶領域23aおよび・または第2記憶領域23bは、SSD3の書き込み遅延が想定される時間とホスト装置1の要求に対して応答が返るまでのシステムとしての許容可能な時間との関係から記憶領域の段数が設定される。この例では、第1記憶領域23aの段数は2段に設定され、第2記憶領域23bの段数は3段に設定されている。
【0028】
データ処理部24は、コマンド応答部22から制御信号を受信すると、状態テーブル25を参照してSSD3の動作状態から書き込み可能か否かを判定し、書き込み可能な場合にバッファメモリ23から読み出したデータをSSD3に書き込む。すなわちデータ処理部24は、コマンド応答部22からの制御信号により制御されて、SSD3にデータを書き込みまたはSSD3からデータを読み出す。
【0029】
具体的には、データ処理部24は、コマンド応答部22からの書き込み指示の制御信号によりバッファメモリ23の第1記憶領域23aからデータを読み出してSSD33に書き込む一方、コマンド応答部22からの読み出し指示の制御信号により、指示されたデータをSSD3から読み出し、バッファメモリ23の第2記憶領域23bに保持する。
【0030】
状態テーブル25には、ディスクI/F27に接続されたSSD3の動作状態が設定可能であり、監視部26によりそれぞれにフラグ(“0”または“1”)が設定される。
【0031】
監視部26は、ディスクI/F27へのコマンドまたはデータの入出力を監視する。すなわち監視部26はディスクI/F27を介してSSD3を監視し、監視結果として、SSD3の動作状態を状態テーブル25に設定する。
【0032】
具体的に、監視部26は、監視結果のSSD3の動作状態を「待機中」と「書込・読出中」のいずれかを示すフラグ(動作状態フラグ)を状態テーブル25に設定する。
【0033】
SSD3の動作状態フラグは、例えば“0”または“1”のいずれが設定され、“0”のときに待機中(いずれのSSDにも書き込みをしていない状態)、“1”のときは、SSD3にデータを書き込み中であることを示す。
【0034】
データ処理部24は状態テーブル25を参照して、コマンド応答部22からのライトコマンドで指示されたデータを、SSD3が書き込み可能なときに(待機中)、SSD3にデータを書き込む。またデータ処理部24はコマンド応答部22からのリードコマンドで指示されたデータを、SSD3が待機中のときSSD3からデータを読み出す。
【0035】
続いて、この実施形態の遅延保証ユニット2の動作を(図3:通常時の動作)と(図4:SSDに書込遅延が発生したときの動作)に分けて説明する。
【0036】
(通常時の動作)
まず、図3、図4を参照して通常時の動作を説明する。
(状態遷移1)
外部のホスト装置1がSSD3へデータを書き込む場合、ホスト装置1はデータの書込開始コマンドをコマンド応答部22へ送信する。
【0037】
ホスト装置1からのライトコマンドに対して、コマンド応答部22がコマンドを解釈し、コマンド内のアドレスや書込サイズをチェックする。ライトコマンドに対してデータを受信可能であれば、受信可能を示すコマンド(受信可能コマンド)をホスト装置1へ送信する。
【0038】
ホスト装置1は、受信可能コマンドを受けてデータの送信を開始する。なおホスト装置1からのライトデータを保持するバッファメモリ23の例えば、第1記憶領域23aに、SSD3に書き込みを完了していないデータがある場合には、別の記憶領域に書き込むものとする。
【0039】
コマンド応答部22は、ここではバッファメモリ23の第1記憶領域の中へ書き込むように指示する。コマンド応答部22は受信したデータサイズをチェックし、ライトコマンドに含まれる書込サイズに達したら書込完了応答をホスト装置1へ送信する。
【0040】
これと同時に、コマンド応答部22は、状態テーブル25を参照して動作状態フラグ(0:待機中、1:書込・読出中)を確認する。なお、この状態テーブル25の確認はホスト装置1からのデータの単位サイズの受信が終了した時点で行ってもよい。
【0041】
この場合、ホスト装置1からのデータ単位を、SSD3への書き込みデータ単位が追い越さないことを監視する必要がある。
【0042】
(状態遷移2)
コマンド応答部22は、状態テーブル25を確認した結果、SSD3が待機中であることを確認すると、データ処理部24に対してSSD3へのデータの書き込みを指示する。このとき、コマンド応答部22は、バッファメモリ23のどの領域に格納されたデータをSSD3に書き込むかの情報も指示する。
【0043】
なお状態テーブル25を確認した結果、「書込・読出中」であった場合、コマンド応答部22は定期的に状態テーブル25を確認するとともに、ホストからのコマンドも待つ。
【0044】
待機中の場合、データ処理部24は、監視部26を通じてSSD3に対して書込開始コマンドを送信する。これと同時に監視部26は、状態テーブル25の動作状態フラグを「待機中」から「書込・読出中」に変更する。
【0045】
SSD3からの受信可能コマンドを受信した後、データ処理部24はバッファメモリ23からデータを読み出し、SSD3へ送信しSSD3にデータを書き込む。
【0046】
そしてSSD3は、書き込んだデータがライトコマンドに含まれる書込サイズに達したら、書込完了応答を送信する。監視部26はその書込完了応答を受け取り、状態テーブル25の動作状態フラグを「書込・読出中」から「待機中」に変更する。
【0047】
(状態遷移3)
ホスト装置1からのリードコマンドに対して、コマンド応答部22がコマンドを解釈し、コマンド内のアドレスや書込サイズをチェックする。これと同時に、コマンド応答部22はタイマー21に対してタイマー動作を開始させるための開始コマンドを通知する。
【0048】
コマンド応答部22がホスト装置1に対してコマンド受信完了を送信する。これと同時に、コマンド応答部22は状態テーブル25を参照してSSD3の状態を状態テーブル25のSSD3の動作状態フラグ(0:待機中、1:書込・読出中)を確認する。
【0049】
コマンド応答部22は、SSD3が「待機中」であることを確認すると、データ処理部24に対してリードコマンドを送り、SSD3からの読み出しを指示する。なお状態テーブル25のSSD3の動作状態フラグが「書込・読出中」であった場合には、コマンド応答部22は定期的に状態テーブル25を確認するとともに、ホスト装置1からのコマンドを待つ。
【0050】
これと同時に、コマンド応答部22はアドレスや読込サイズを通知すると共に、読み込んだデータを格納するバッファメモリ23の領域も指示する。このとき、バッファメモリ23にホスト装置1への読み出しを完了していないデータがある場合、バッファメモリ23の別の記憶領域へデータを書き込むものとする。
【0051】
データ処理部24は、監視部26を通じてSSD3に対して読込開始コマンドを送信する。同時に監視部26は、状態テーブル25に対して読込中である状態フラグに変更を行う。SSD3からのデータを受信した後、読出完了応答をSSD3から監視部26が受け取ると、監視部26は状態テーブル25に対して[待機中]を示す状態フラグに変更する。
【0052】
(状態遷移4)
タイマー21がカウントを開始して一定時間T経過した後、タイムアップ通知コマンドをリード制御部40およびコマンド応答部22へ通知する。
【0053】
リード制御部40はバッファメモリ23からデータを読み込み、ホスト装置1に対してデータ送信する。またコマンド応答部22はデータ送信が完了した後、読出完了応答をホスト装置1へ送信する。この例では、「R-a」のホスト装置1へのデータ送信と同時に、「R-c」のSSD3からバッファメモリ23へのデータ受信も行われる。
【0054】
(状態遷移5) ここで、図4を参照する。
状態遷移2での、データ処理部24はバッファメモリ23からデータを読み出し、SSD3へ送信する際、SSD3が「W-B」のデータの書込中に遅延を発生した場合、監視部26が書込完了応答を受信するまでの間は、状態テーブル25は「書込・読出中」となっている。
【0055】
遅延発生中に、ホスト装置1から次の「R-b」のリードコマンドを受信した場合、コマンド応答部22がコマンドを解釈し、コマンド内のアドレスや書込サイズをチェックする。これと同時に、コマンド応答部22はタイマー21に対して開始コマンドを通知する。
なお、説明が前後するが、先のリードコマンド「R−a」を受信した場合に対しても同様にタイマー21に対して開始コマンドが通知されるので実質的にタイマー21は、2つの内部タイマーを備えていることになる。
【0056】
コマンド応答部22はホスト装置1に対してコマンド受信完了を送信する。これと同時に、状態テーブル25を参照して状態テーブル25のSSD3動作状態フラグ(0:待機中、1:書込・読出中)を確認する。
【0057】
このとき、SSD3では書込遅延が発生しているため、状態テーブル25を確認した結果は「書込・読出中」である。
【0058】
さらに、状態遷移1での、ホスト装置1からのライトコマンドに対して、コマンド応答部22がコマンドを解釈し、コマンド内のアドレスや書込サイズをチェックする。
【0059】
受信可能であれば、ホスト装置1に対して受信可能コマンドを送信する。ホスト装置1は、受信可能コマンドを受け、「W-C」のデータの送信を開始する。
【0060】
ホスト装置1からのライトデータを格納するバッファメモリ23の領域は、SSD3に書込を完了していない「W-B」のデータが、バッファメモリ23の第1記憶領域23aの第一段目にあるためこの第一段目とは別の領域である第二段目に書き込むよう、コマンド応答部22はバッファメモリ23へ指示する。
【0061】
この例の場合、この時点では「W-B」のデータの書き込みが終了していないので、コマンド応答部22は「W-C」のデータを、バッファメモリ23の第1記憶領域23aの第二段目に書き込むと共に、バッファメモリ23の第1記憶領域23aの使用率(いくつの段を使っているか)を認識する。
【0062】
そして、コマンド応答部22は、受信したデータをバッファメモリ23の第1記憶領域23aの第二段目に書き込みながらデータのサイズをチェックし、ライトコマンドに含まれる書込サイズに達したら書込完了応答をホスト装置1へ送信する。
【0063】
(状態遷移6)
SSD3において、「W-B」のデータの書込遅延が終わり、SSD3から書込完了応答を受信すると、監視部26は状態テーブル25に対して状態フラグを「待機中」に変更する。
【0064】
このとき、コマンド応答部22は、定期的に状態テーブル25を確認し「待機中」になることをチェックする。または、監視部26がSSD3から書込完了応答を受信したら、監視部26からコマンド応答部22に対して書込完了を通知してもよい。
【0065】
コマンド応答部22は、SSD3が「待機中」であることを確認すると、データ処理部24に対して読込開始コマンドを通知し、SSD3からの読込を指示する。なお上記と同様に状態テーブルが「書込・読出中」であった場合には、コマンド応答部22は状態テーブル25を定期的に確認するとともに、ホスト装置1からのコマンドを待つ。
【0066】
これと同時に、コマンド応答部22は、アドレスや読込サイズをデータ処理部24に通知すると共に、読み込んだデータを保持しているバッファメモリ23の記憶領域も通知する。このとき、ホスト装置1への読み出しを完了していないデータがバッファメモリ23にある場合、読み出し中の領域とは別の領域への書き込みとする。
【0067】
データ処理部24は、監視部26を介してSSD3に対して読出開始コマンドを送信する。これと同時に監視部26は、状態テーブル25の状態フラグを「待機中」から「書込・読出中」に変更する。
【0068】
SSD3からのデータを受信した後、読出完了応答をSSD3から監視部26が受け取ると、監視部26は状態テーブル25の状態フラグを「待機中」に変更する。
【0069】
この例では、SSD3からの「R-b」のデータの読み込みタイミングで、バッファメモリ23の第2記憶領域23bの第一段目に保持されていた「R-a」のデータのホスト装置1への送信が同時に行われる。
【0070】
結果的に、ホスト装置1からの「R-a」のリードコマンドが受信されてから、4周期目(4t)で、第2記憶領域23bの第一段目に保持されていた「R-a」のデータがホスト装置1へ送信されるため、ホスト装置1の側では、読み出したデータをシステムとして遅延なく、次の工程で利用することができる。
【0071】
(状態遷移7)
タイマー21は、「R-b」のリードコマンドの受信後に一定時間Tカウントした後、タイムアップ通知をリード制御部40およびコマンド応答部22に通知する。
【0072】
リード制御部40はバッファメモリ23の第2記憶領域の第2段目に保持されていた「R-b」のデータを読み出しホスト装置1へ送信する。
【0073】
またコマンド応答部22は「R-b」のデータの送信が完了した後、読出完了応答をホスト装置1へ送信する。この例では、上記「R-b」のデータをホスト装置1へ送信したと同時に、SSD3への「W-D」のデータの書き込みと、その後「R-d」のデータの読み込みが行われる。
【0074】
このときも、結果的には、ホスト装置1からの「R-b」のリードコマンドが受信されてからちょうど4周期目(4t)で、バッファメモリ23の第2記憶領域23aの第2段目に保持されていた「R-b」のデータがホスト装置1へ送信されるため、SSD3における書込遅延の影響をホスト装置1が受けることなく、ホスト装置1では4周期目(4t)目で遅延保証ユニット2から受信したデータをシステムとして問題なく次の工程で利用することができる。
【0075】
このようにこの第1実施形態によれば、1台のSSD3を用いて一定周期tでリード動作とライト動作を行うことでデータ同期を実現しつつ、リードコマンド受信後に一定時間(4周期)だけ常に遅延してホスト装置1へリードデータを送信するようにすることで、SSD3に発生する書き込み遅延時間を吸収し、汎用のSSD3をリアルタイム制御に利用することができるようになる。
【0076】
すなわちホスト装置1からのリードコマンドに対しては、SSD3から読み出したデータをバッファメモリ23にシステムが許容する最大の待ち時間だけ保持しておくことで、SSD3で発生する書込遅延を吸収する。すなわち、遅延保証ユニット2においてSSD3への処理とホスト装置1への処理とを分離することで、SSD3の応答遅延の影響がホスト装置1側へ及ばなくなり、SSDの書込遅延を保証することができる。
【0077】
以上のように本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0078】
上記実施形態では、バッファメモリ23に、ライト用の第1記憶領域23aとリード用の第2記憶領域23bを設けたが、例えば図5に示すように、ライト用バッファメモリ23cとリード用バッファメモリ23dとを設けてもよい。
【0079】
この場合、バッファメモリとしての部品コストは増加するもののリードデータとライトデータをそれぞれ独立したバッファメモリに保持しリート/ライトの処理をできることから、処理性能を向上することができる。
【0080】
また上記実施形態に示した各構成要素を、コンピュータのハードディスク装置などのストレージにインストールしたプログラムで実現してもよく、また上記プログラムを、コンピュータ読取可能な電子媒体:electronic mediaに記憶しておき、プログラムを電子媒体からコンピュータに読み取らせることで本発明の機能をコンピュータが実現するようにしてもよい。電子媒体としては、例えばCD−ROM等の記録媒体やフラッシュメモリ、リムーバブルメディア:Removable media等が含まれる。さらに、ネットワークを介して接続した異なるコンピュータに構成要素を分散して記憶し、各構成要素を機能させたコンピュータ間で通信することで実現してもよい。
【符号の説明】
【0081】
1…ホスト装置、3…ソリッド・ステート・ディスク(SSD)、20…外部インターフェース(外部I/F)、21…タイマー、22…コマンド応答部、23…バッファメモリ、24…データ処理部、25…状態テーブル、26…監視部、27…ディスクインターフェース(ディスクI/F)、40…リード制御部。

【特許請求の範囲】
【請求項1】
ホスト装置とストレージ装置が接続可能なインターフェースを有する情報処理装置において、
前記インターフェースに接続された前記ストレージ装置の動作状態が書込・読出中か待機中かを設定可能な状態テーブルと、
前記ストレージ装置の動作状態を監視し、監視結果として前記ストレージ装置の動作状態を前記状態テーブルに設定する監視部と、
データを書き込むための第1記憶領域とデータを読み出すための第2記憶領域を有し、前記第1記憶領域および第2記憶領域にデータを一時保持可能なバッファメモリと、
カウント開始の指示により、リード要求に対して予めシステムとして許容可能な時間に設定された許容応答時間をカウントし、タイムアップを通知するタイマーと、
前記ホスト装置からデータのライト要求があった場合、前記ライト要求の後に前記ホスト装置から前記一定周期で送られてくる書き込み対象のデータを前記バッファメモリの前記第1記憶領域へ保持した後、前記状態テーブルを参照して前記ストレージ装置の動作状態が待機中の場合に前記ストレージ装置に対してデータの書き込みを指示する一方、前記ホスト装置からのリード要求に対しては、前記タイマーにカウント開始を指示した後、前記ストレージ装置からのデータの読み出しを指示するコマンド応答部と、
前記コマンド応答部からの書き込み指示により前記バッファメモリの前記第1記憶領域からデータを読み出して前記ストレージ装置に書き込む一方、前記コマンド応答部からの読み出し指示により、指示されたデータを前記ストレージ装置から読み出し前記バッファメモリの前記第2記憶領域に保持するデータ処理部と、
前記タイマーからのタイムアップ通知を受けた時点で前記バッファメモリの前記第2記憶領域に保持されているデータを前記ホスト装置へ送信するリード制御部と
を具備する情報処理装置。
【請求項2】
前記バッファメモリの前記第1記憶領域および・または前記第2記憶領域は、前記ストレージ装置の書き込み遅延が想定される時間と前記ホスト装置の要求に対して応答が返るまでのシステムとしての許容可能な時間との関係から記憶領域の段数が設定される請求項1記載の情報処理装置。
【請求項3】
ホスト装置とストレージ装置が接続可能なインターフェースとデータを書き込むための第1記憶領域とデータを読み出すための第2記憶領域を有し、前記第1記憶領域および第2記憶領域にデータを一時保持可能なバッファメモリとを有する情報処理装置における情報処理方法において、
前記ストレージ装置の動作状態を監視し、監視結果として前記インターフェースに接続された前記ストレージ装置の動作状態が書込・読出中か待機中かを状態テーブルに設定し、
カウント開始の指示により、リード要求に対して予めシステムとして許容可能な時間に設定された許容応答時間をカウントし、タイムアップを通知し、
前記ホスト装置からデータのライト要求があった場合、前記ライト要求の後に前記ホスト装置から前記一定周期で送られてくる書き込み対象のデータを前記バッファメモリの前記第1記憶領域へ保持した後、前記状態テーブルを参照して前記ストレージ装置の動作状態が待機中の場合、前記ストレージ装置に対してデータの書き込みを指示する一方、前記ホスト装置からのリード要求に対しては、前記タイマーにカウント開始を指示した後、前記ストレージ装置からのデータの読み出しを指示し、
前記書き込み指示により前記バッファメモリの前記第1記憶領域からデータを読み出して前記ストレージ装置に書き込む一方、前記コマンド応答部からの読み出し指示により、指示されたデータを前記ストレージ装置から読み出し、前記バッファメモリの前記第2記憶領域に保持し、
前記タイマーからのタイムアップ通知を受けた時点で前記バッファメモリの前記第2記憶領域に保持されているデータを前記ホスト装置へ送信する情報処理方法。
【請求項4】
前記バッファメモリの前記第1記憶領域および・または前記第2記憶領域は、前記ストレージ装置の書き込み遅延が想定される時間と前記ホスト装置の要求に対して応答が返るまでのシステムとしての許容可能な時間との関係から記憶領域の段数が設定される請求項3記載の情報処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate