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

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

Info

Publication number
JP5524156B2
JP5524156B2 JP2011201296A JP2011201296A JP5524156B2 JP 5524156 B2 JP5524156 B2 JP 5524156B2 JP 2011201296 A JP2011201296 A JP 2011201296A JP 2011201296 A JP2011201296 A JP 2011201296A JP 5524156 B2 JP5524156 B2 JP 5524156B2
Authority
JP
Japan
Prior art keywords
data
write
buffer memory
read
solid state
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.)
Expired - Fee Related
Application number
JP2011201296A
Other languages
English (en)
Other versions
JP2013061896A (ja
Inventor
浩行 西川
敬治 山本
由樹 難波
太一 田代
幸太 中村
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 JP2011201296A priority Critical patent/JP5524156B2/ja
Priority to US13/567,940 priority patent/US8918560B2/en
Priority to FR1257677A priority patent/FR2980298B1/fr
Publication of JP2013061896A publication Critical patent/JP2013061896A/ja
Application granted granted Critical
Publication of JP5524156B2 publication Critical patent/JP5524156B2/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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • 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
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • 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/0656Data buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

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

Claims (4)

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

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011201296A JP5524156B2 (ja) 2011-09-15 2011-09-15 情報処理装置および情報処理方法
US13/567,940 US8918560B2 (en) 2011-09-15 2012-08-06 Controller for storage device and method for controlling storage device
FR1257677A FR2980298B1 (fr) 2011-09-15 2012-08-07 Controleur pour dispositif de memorisation et procede de commande d'un dispositif de memorisation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011201296A JP5524156B2 (ja) 2011-09-15 2011-09-15 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2013061896A JP2013061896A (ja) 2013-04-04
JP5524156B2 true JP5524156B2 (ja) 2014-06-18

Family

ID=47757746

Family Applications (1)

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

Country Status (3)

Country Link
US (1) US8918560B2 (ja)
JP (1) JP5524156B2 (ja)
FR (1) FR2980298B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10514849B2 (en) 2016-09-05 2019-12-24 Toshiba Memory Corporation Storage system including a plurality of networked storage nodes

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076558B2 (en) * 2012-11-01 2015-07-07 Nanya Technology Corporation Memory test system and memory test method
KR102317786B1 (ko) * 2015-02-02 2021-10-26 삼성전자주식회사 스토리지 디바이스에서의 입출력 처리 방법 및 이를 적용하는 스토리지 디바이스 및 비휘발성 메모리 디바이스
JP2018073040A (ja) * 2016-10-27 2018-05-10 東芝メモリ株式会社 メモリシステム
KR102536788B1 (ko) * 2018-09-05 2023-05-30 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작 방법
CN110767188B (zh) * 2019-10-12 2022-05-31 Tcl华星光电技术有限公司 显示面板驱动系统
CN113599117B (zh) * 2021-08-24 2022-05-31 深圳市呵康科技有限公司 智能卧床排泄多点分布处理系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200500B2 (ja) * 1993-05-27 2001-08-20 株式会社日立製作所 ディスク装置及びディスク制御方法
JP2950223B2 (ja) * 1996-01-12 1999-09-20 日本電気株式会社 データ読出装置
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> データ記憶装置、コンピュータ装置、書き込みデータの処理装置および書き込みデータの処理方法
JP4696508B2 (ja) * 2004-09-14 2011-06-08 ソニー株式会社 転送制御装置
JP2006344297A (ja) * 2005-06-09 2006-12-21 Ricoh Co Ltd 記録再生装置
JP2006228421A (ja) * 2006-03-27 2006-08-31 Sony Corp 編集装置、編集方法、記録装置、記録方法及びプログラム格納記録媒体
JP2008217855A (ja) * 2007-02-28 2008-09-18 Fujitsu Ltd 記憶装置用制御装置、記憶装置およびそのデータ記憶制御方法
JP2008225709A (ja) * 2007-03-09 2008-09-25 Nec Corp 外部記憶装置及び外部記憶装置ケース
US8438356B2 (en) * 2007-10-01 2013-05-07 Marvell World Trade Ltd. Flash memory controller
JP2009140233A (ja) * 2007-12-06 2009-06-25 Mega Chips Corp 映像記録装置および監視システム
JP5446464B2 (ja) * 2009-05-26 2014-03-19 富士通セミコンダクター株式会社 情報処理システム及びデータ転送方法
JP5353732B2 (ja) * 2010-01-27 2013-11-27 富士通株式会社 ストレージ管理装置、ストレージシステム、ストレージ管理プログラム、ストレージ管理方法
KR101702392B1 (ko) * 2010-08-20 2017-02-06 삼성전자주식회사 반도체 저장 장치 및 상기 반도체 저장 장치의 성능 조절 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10514849B2 (en) 2016-09-05 2019-12-24 Toshiba Memory Corporation Storage system including a plurality of networked storage nodes

Also Published As

Publication number Publication date
FR2980298A1 (fr) 2013-03-22
US8918560B2 (en) 2014-12-23
US20130198420A1 (en) 2013-08-01
JP2013061896A (ja) 2013-04-04
FR2980298B1 (fr) 2016-07-15

Similar Documents

Publication Publication Date Title
JP5524156B2 (ja) 情報処理装置および情報処理方法
US8880832B2 (en) Controller for storage devices and method for controlling storage devices
US9141294B2 (en) Controller for storage apparatus and controlling method for storage apparatus
US8732357B2 (en) Apparatus and method for dynamically enabling and disabling write XFR—RDY
US11868625B2 (en) Alert tracking in storage
US8806071B2 (en) Continuous read burst support at high clock rates
CN103441948A (zh) 一种数据访问方法、网卡及存储系统
JP2022528349A (ja) データ記憶用の装置、方法及び読み取り可能な媒体
US8078771B2 (en) Sending large command descriptor block (CDB) structures in serial attached SCSI (SAS) controller
KR101200997B1 (ko) 멀티 pci 버스 스위칭을 갖는 raid 컨트롤러
JP6517474B2 (ja) プログラマブルコントローラ、及び演算処理システム
JP5823755B2 (ja) 記憶装置、およびプログラム
US20150242160A1 (en) Memory system, control method of memory system, and controller
KR102181210B1 (ko) 저장 장치의 데이터 처리 방법 및 저장 장치
US8730771B2 (en) Recording/reproducing device
US8037242B2 (en) Contents delivery system using cache and data replication
US20140325174A1 (en) Access control apparatus, access control method, and computer program product
JP2008129885A (ja) ディスク装置、データ転送システム及びそれに用いるデータ転送方法
CN103353856A (zh) 硬盘及硬盘的数据转发和获取方法
KR101972535B1 (ko) 반도체 저장 장치
JP2013080409A (ja) ストレージシステム
JP6095850B2 (ja) 映像記録再生装置、監視レコーダ、及び監視システム
JP2014186780A (ja) データライブラリシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131001

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131007

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: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140409

R151 Written notification of patent or utility model registration

Ref document number: 5524156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees