JP2013041403A - 情報処理装置および情報処理方法 - Google Patents

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

Info

Publication number
JP2013041403A
JP2013041403A JP2011177628A JP2011177628A JP2013041403A JP 2013041403 A JP2013041403 A JP 2013041403A JP 2011177628 A JP2011177628 A JP 2011177628A JP 2011177628 A JP2011177628 A JP 2011177628A JP 2013041403 A JP2013041403 A JP 2013041403A
Authority
JP
Japan
Prior art keywords
data
storage device
write
host device
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011177628A
Other languages
English (en)
Other versions
JP5514169B2 (ja
Inventor
Yoshiki Nanba
由樹 難波
Takaharu Yamamoto
敬治 山本
Taichi Tashiro
太一 田代
Hiroyuki Nishikawa
浩行 西川
Kota Nakamura
幸太 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011177628A priority Critical patent/JP5514169B2/ja
Priority to FR1257674A priority patent/FR2979164B1/fr
Priority to US13/568,203 priority patent/US8880832B2/en
Publication of JP2013041403A publication Critical patent/JP2013041403A/ja
Application granted granted Critical
Publication of JP5514169B2 publication Critical patent/JP5514169B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

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

Claims (5)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011177628A JP5514169B2 (ja) 2011-08-15 2011-08-15 情報処理装置および情報処理方法
FR1257674A FR2979164B1 (fr) 2011-08-15 2012-08-07 Controleur pour dispositifs de memorisation et procede de commande de dispositifs de memorisation
US13/568,203 US8880832B2 (en) 2011-08-15 2012-08-07 Controller for storage devices and method for controlling storage devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011177628A JP5514169B2 (ja) 2011-08-15 2011-08-15 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2013041403A true JP2013041403A (ja) 2013-02-28
JP5514169B2 JP5514169B2 (ja) 2014-06-04

Family

ID=47631097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011177628A Expired - Fee Related JP5514169B2 (ja) 2011-08-15 2011-08-15 情報処理装置および情報処理方法

Country Status (3)

Country Link
US (1) US8880832B2 (ja)
JP (1) JP5514169B2 (ja)
FR (1) FR2979164B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017517087A (ja) * 2014-05-30 2017-06-22 華為技術有限公司Huawei Technologies Co.,Ltd. データベース・クラスタのデータ管理方法、ノード、及びシステム
KR102189607B1 (ko) * 2019-12-11 2020-12-11 연세대학교 산학협력단 자동 백업 및 복원을 위한 쓰기 제어 방법 및 디스크 컨트롤러

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6111575B2 (ja) * 2012-09-19 2017-04-12 富士通株式会社 ストレージ装置、内部処理制御方法および内部処理制御プログラム
US20160124876A1 (en) * 2014-08-22 2016-05-05 HGST Netherlands B.V. Methods and systems for noticing completion of read requests in solid state drives
KR102317787B1 (ko) 2015-02-11 2021-10-26 삼성전자주식회사 메시지 전송 플로우 관리 방법 및 이를 적용하는 스토리지 디바이스
US10031670B2 (en) 2015-09-04 2018-07-24 Toshiba Memory Corporation Control unit and control method for controlling writes and background operations of multiple semiconductor storage devices
JP6967959B2 (ja) 2017-12-08 2021-11-17 キオクシア株式会社 メモリシステムおよび制御方法
JP7153523B2 (ja) * 2018-10-11 2022-10-14 シャープ株式会社 画像形成装置、印刷制御プログラムおよび印刷制御方法
US11341063B2 (en) * 2019-01-31 2022-05-24 Dell Products L.P. Systems and methods for safely detecting indeterminate states of ranges in a self-encrypting storage resource
US11847015B2 (en) * 2022-01-24 2023-12-19 Vmware, Inc. Mechanism for integrating I/O hypervisor with a combined DPU and server solution

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332626A (ja) * 1993-05-27 1994-12-02 Hitachi Ltd ディスク装置及びディスク制御方法
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置
JP2002175156A (ja) * 2000-09-29 2002-06-21 Matsushita Electric Ind Co Ltd データ記憶アレイ装置、データアクセス方法
JP2003108314A (ja) * 2001-09-20 2003-04-11 Internatl Business Mach Corp <Ibm> データ記憶装置、コンピュータ装置、書き込みデータの処理装置および書き込みデータの処理方法
JP2006085243A (ja) * 2004-09-14 2006-03-30 Sony Corp 転送制御装置
JP2006344297A (ja) * 2005-06-09 2006-12-21 Ricoh Co Ltd 記録再生装置
JP2008217855A (ja) * 2007-02-28 2008-09-18 Fujitsu Ltd 記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法
JP2008225709A (ja) * 2007-03-09 2008-09-25 Nec Corp 外部記憶装置及び外部記憶装置ケース
JP2009140233A (ja) * 2007-12-06 2009-06-25 Mega Chips Corp 映像記録装置および監視システム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332626A (ja) * 1993-05-27 1994-12-02 Hitachi Ltd ディスク装置及びディスク制御方法
JP2001005724A (ja) * 1999-06-11 2001-01-12 Internatl Business Mach Corp <Ibm> ライト・キャッシュ転送の制御方法およびディスク装置
JP2002175156A (ja) * 2000-09-29 2002-06-21 Matsushita Electric Ind Co Ltd データ記憶アレイ装置、データアクセス方法
JP2003108314A (ja) * 2001-09-20 2003-04-11 Internatl Business Mach Corp <Ibm> データ記憶装置、コンピュータ装置、書き込みデータの処理装置および書き込みデータの処理方法
JP2006085243A (ja) * 2004-09-14 2006-03-30 Sony Corp 転送制御装置
JP2006344297A (ja) * 2005-06-09 2006-12-21 Ricoh Co Ltd 記録再生装置
JP2008217855A (ja) * 2007-02-28 2008-09-18 Fujitsu Ltd 記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法
JP2008225709A (ja) * 2007-03-09 2008-09-25 Nec Corp 外部記憶装置及び外部記憶装置ケース
JP2009140233A (ja) * 2007-12-06 2009-06-25 Mega Chips Corp 映像記録装置および監視システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017517087A (ja) * 2014-05-30 2017-06-22 華為技術有限公司Huawei Technologies Co.,Ltd. データベース・クラスタのデータ管理方法、ノード、及びシステム
US10379977B2 (en) 2014-05-30 2019-08-13 Huawei Technologies Co., Ltd. Data management method, node, and system for database cluster
US10860447B2 (en) 2014-05-30 2020-12-08 Huawei Technologies Co., Ltd. Database cluster architecture based on dual port solid state disk
KR102189607B1 (ko) * 2019-12-11 2020-12-11 연세대학교 산학협력단 자동 백업 및 복원을 위한 쓰기 제어 방법 및 디스크 컨트롤러

Also Published As

Publication number Publication date
US20130046942A1 (en) 2013-02-21
JP5514169B2 (ja) 2014-06-04
FR2979164A1 (fr) 2013-02-22
FR2979164B1 (fr) 2016-07-15
US8880832B2 (en) 2014-11-04

Similar Documents

Publication Publication Date Title
JP5514169B2 (ja) 情報処理装置および情報処理方法
JP5524279B2 (ja) 情報処理装置および情報処理方法
US9501406B2 (en) Storage control apparatus and storage control method
JP5524156B2 (ja) 情報処理装置および情報処理方法
CN110175140A (zh) 融合式存储器件及其操作方法
JP2018173949A5 (ja)
JP2013257801A (ja) サーバコンピュータおよびドライブ制御装置
CN104202197A (zh) 设备管理的方法和装置
US20140006742A1 (en) Storage device and write completion notification method
JP5923976B2 (ja) 接続装置、ストレージ装置、接続装置における処理方法、および処理プログラム
WO2013128494A1 (en) Storage system and data transfer control method
US8904119B2 (en) Method and structures for performing a migration of a logical volume with a serial attached SCSI expander
US11137918B1 (en) Administration of control information in a storage system
US20170003894A1 (en) Non-blocking caching for data storage drives
US20110202716A1 (en) Storage system and data writing method
CN111356991B (zh) 逻辑块寻址范围冲突爬虫
JP5998884B2 (ja) ストレージ装置、およびモジュール間データ転送方法
KR101200997B1 (ko) 멀티 pci 버스 스위칭을 갖는 raid 컨트롤러
JP6331944B2 (ja) 情報処理装置、メモリ制御装置及び情報処理装置の制御方法
US10733118B2 (en) Computer system, communication device, and storage control method with DMA transfer of data
CN105868121B (zh) 一种信息处理方法及电子设备
JP6517474B2 (ja) プログラマブルコントローラ、及び演算処理システム
US20160011791A1 (en) Storage control apparatus, storage system, and program
JP2014010709A (ja) ストレージ制御装置、該プログラム及び該方法
JP2023015488A (ja) データ中継装置、中継制御方法およびストレージシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130815

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140328

R151 Written notification of patent or utility model registration

Ref document number: 5514169

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees