JP2011118504A - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP2011118504A JP2011118504A JP2009273313A JP2009273313A JP2011118504A JP 2011118504 A JP2011118504 A JP 2011118504A JP 2009273313 A JP2009273313 A JP 2009273313A JP 2009273313 A JP2009273313 A JP 2009273313A JP 2011118504 A JP2011118504 A JP 2011118504A
- Authority
- JP
- Japan
- Prior art keywords
- data
- parity
- storage
- address
- unit
- 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.)
- Pending
Links
Images
Abstract
【課題】バーストエラーに対する耐性の高い記憶装置を提供する。
【解決手段】本発明に係る記憶装置は、記憶するデータのパリティを計算する際に、バーストエラー長さの想定値をあらかじめ取得しておき、互いにその想定値以上離れた複数の記憶領域から読み出したデータを用いてそのデータのパリティを計算する。
【選択図】図2
【解決手段】本発明に係る記憶装置は、記憶するデータのパリティを計算する際に、バーストエラー長さの想定値をあらかじめ取得しておき、互いにその想定値以上離れた複数の記憶領域から読み出したデータを用いてそのデータのパリティを計算する。
【選択図】図2
Description
本発明は、記憶装置に関するものである。
音楽データや動画像データなどのコンテンツデータに著作権が存在する場合、著作権を保護するための適切な方策が行われていないと、著作権者の権利が侵害されてしまう恐れがある。一方で、著作権保護を最優先し、コンテンツデータの配信や複製を阻害すると、コンテンツデータの流通が滞るため、コンテンツ販売などにともない著作権料を徴収する機会損失につながり、著作権者にとってかえって不利益となる。
著作権保護の対象となるコンテンツデータは、デジタル情報通信網などを介して配信される。これらのデータを利用する際には、配信されたコンテンツデータを記録装置に保存した後、再生装置で再生することが多い。
記憶装置に保存されたコンテンツデータの著作権を保護するには、記憶装置に記録されたデータを著作権者が主張する制限の範囲を超えて利用することができないように、記録再生装置および記憶装置にセキュリティ対策を施す必要がある。セキュリティ対策を記録再生装置および記憶装置に施すには、データの送受信が行われる装置間で機器の認証処理を行ったり、送受信するデータが改竄または傍受されないように暗号化処理を施したりする必要がある。一方で、認証処理や暗号化処理を厳重にするほど、ユーザがコンテンツデータを要求してから実際にそのコンテンツデータが利用可能になるまで多くの処理時間を要する。結果としてユーザにとって待ち時間が生じ、コンテンツデータを円滑に利用することができなくなる可能性がある。
下記特許文献1と非特許文献1には、著作権保護の対象となるコンテンツデータの配信において、コンテンツデータおよびコンテンツデータの利用制御情報の暗号演算に関する負荷を軽減する方法が開示されている。
IEEE Transaction on Magnetics,Vol49,Issue5,pp.1161-1168,Nov.2003.
上記特許文献1、非特許文献1に開示されている技術では、暗号化されたコンテンツデータとそのコンテンツデータの利用を規制する利用制御情報を記憶装置に保存する。この利用制御情報は、暗号化されたコンテンツを復号する暗号鍵とコンテンツの利用規則を含んでいる。暗号化されたコンテンツデータを復号し、コンテンツの利用を可能にするためには、そのコンテンツデータの利用制御情報が必要である。
したがって、利用制御情報が破損した場合、暗号化されたコンテンツデータを復号し、コンテンツを利用することが不可能になる。つまり、利用制御情報が破損した状態は、コンテンツが利用不可能である状態と等しい。結果として、コンテンツデータが破損した場合はもちろんのこと、利用制御情報が破損した場合も、コンテンツを利用することができなくなる。そのため、コンテンツデータとその利用制御情報の破損に関しては、より入念な対策を施すことが望ましい。
コンテンツデータとその利用制御情報は、いったん記憶装置に格納された後に再生装置を用いて再生されることが多い。そのため、記憶装置上でこれらが破損しないようにすることが求められる。
記憶装置は、記憶するデータにECC(Error Correction Code)などのエラー訂正符号を付加し、データが破損した際にこれを復元する機能を備えている。しかし、記録媒体上に連続的に記録されている複数のデータが同時に破損し、ECC等を用いたデータの復元ができないバーストエラーと呼ばれる事象が発生することがある。
コンテンツデータまたはその利用制御情報を記憶している記憶領域にバーストエラーが発生すると、ECCを用いてもエラーを訂正することができず、上述の通りコンテンツを利用することができなくなってしまう。
本発明は、上記のような課題を解決するためになされたものであり、バーストエラーに対する耐性の高い記憶装置を提供することを目的とする。
本発明に係る記憶装置は、記憶するデータのパリティを計算する際に、バーストエラー長さの想定値をあらかじめ取得しておき、互いにその想定値以上離れた複数の記憶領域から読み出したデータを用いてそのデータのパリティを計算する。
本発明に係る記憶装置によれば、バーストエラーが発生しても、パリティを計算する際に用いたデータが想定エラー長以上離れているので、バーストエラーが全てのデータに及ぶ可能性は少ない。したがって、バーストエラーが及んでいないデータまたはそのパリティを用いて、バーストエラーにより破損したデータを復元することができる。
<実施の形態1>
図1は、本発明の実施の形態1に係る記憶装置100および周辺機器の構成図である。記憶装置100は、再生装置200に接続されている。再生装置200は、放送システム310や配信サーバ320からネットワーク330を介してコンテンツデータを受信し、またはクライアント端末340からコンテンツデータを受信する。記憶装置100は、そのコンテンツデータを記憶する装置である。
図1は、本発明の実施の形態1に係る記憶装置100および周辺機器の構成図である。記憶装置100は、再生装置200に接続されている。再生装置200は、放送システム310や配信サーバ320からネットワーク330を介してコンテンツデータを受信し、またはクライアント端末340からコンテンツデータを受信する。記憶装置100は、そのコンテンツデータを記憶する装置である。
再生装置200は、コンテンツデータを再生する装置であり、ストレージインターフェイス210、クライアントインターフェイス220を備える。ストレージインターフェイス210は、記憶装置100と接続するためのインターフェイスである。クライアントインターフェイス220は、ネットワーク330およびクライアント端末340と接続するためのインターフェイスである。
記憶装置100は、ストレージインターフェイス110、ストレージ制御部120、バッファメモリ130、演算装置140、データ記憶部150を備える。
ストレージインターフェイス110は、再生装置200と接続するためのインターフェイスである。
ストレージ制御部120は、ストレージインターフェイス110を介して再生装置200から命令を受信し、この命令にしたがってデータ記憶部150にデータを書き込み、またはデータ記憶部150からデータを読み出して再生装置200に出力する。また、後述のパリティ計算処理を実行する。
ストレージ制御部120は、データ記憶部150にデータを書き込む際に、いったんバッファメモリ130へデータを書き込んでおき、後にバッファメモリ130からデータ記憶部150にデータを移すようにしてもよい。
ストレージ制御部120は、その機能を実現する回路デバイスのようなハードウェアを用いて構成することもできるし、マイコンやCPU(Central Processing Unit)などの演算装置とその動作を規定するソフトウェアを用いて構成することもできる。
データ記憶部150は、例えば磁気ディスク装置などのデータ記憶媒体を有する装置である。データ記憶部150は、磁気ヘッドやヘッド制御部などの必要な構成を適宜備えるものとする。
演算装置140は、ストレージ制御部120の動作を制御する。また、記憶装置100全体を制御するために必要な制御や計算処理などを実行する。演算装置140は、例えばマイコンやCPUなどを用いて構成することができる。
図2は、ストレージ制御部120が実行するパリティ計算処理を説明する図である。ここでは、データ400がデータ記憶部150の複数のセクタにまたがって記録される状況を想定する。ストレージ制御部120は、データ400をデータ記憶部150に書き込むとき、複数のセクタからデータ400の断片を取り出し、これらを用いてパリティを計算する。ここでは3つのセクタのデータ断片からパリティを計算するものと仮定する。図2では、パリティ410と420のみ図示した。
データ記憶部150に発生したバーストエラーが、パリティの計算元になった複数のデータ断片に及ぶと、パリティを用いて破損データを復元することができなくなる可能性がある。そこでストレージ制御部120は、パリティを計算する元となるデータ断片を、互いにバーストエラー長以上離れたセクタから読み出す。
例えば、想定されるバーストエラー長またはその最大値がNセクタにわたるものとすると、ストレージ制御部120は、互いにNセクタ以上離れた記憶領域に格納されているデータ断片を用いてパリティを計算する。Nの具体的な値は、例えばあらかじめデータ記憶部150内に格納しておいてもよいし、ストレージ制御部120にあらかじめ保持させておいてもよい。
図2の例では、ストレージ制御部120は、互いにNセクタ離れたセクタ#0、セクタ#N、セクタ#2Nに格納されているデータ断片を用いて、パリティ410=P0を計算する。同様に、互いにNセクタ離れたセクタ#1、セクタ#N+1、セクタ#2N+1に格納されているデータ断片を用いて、パリティ420=P1を計算する。以降のセクタについても同様である。
図2の例において、ストレージ制御部120は、バッファメモリ130の容量、パリティ計算の処理負荷、データ記憶部150に対する書き込みの処理負荷などが許容する限り、2または3以上のセクタに格納されているデータ断片を用いてパリティを計算してもよい。ただし各セクタがNセクタ以上離れている必要がある点は同様である。
図3は、図2で説明したパリティの書き込み先を説明する図である。データ記憶部150に発生したバーストエラーが、パリティの計算元になったデータ断片とパリティ双方に及ぶと、パリティを用いて破損データを復元することができなくなる可能性がある。そこでストレージ制御部120は、パリティをその計算元となったデータ断片からバーストエラー長N以上離れたセクタに書き込む。なお図3に示す例は、バーストエラー長N=3セクタであるものとして記載した。
図3に示す例において、データ記憶部150は、あるデータを連続する9つのセクタU0、U1、U2、U3、U4、U5、U6、U7、U8に格納している。ストレージ制御部120は、U0、U3、U6からパリティP0を計算し、U1、U4、U7からパリティP1を計算し、U2、U5、U8からパリティP2を計算する。各パリティは、例えば計算元データの論理和によって求められる。
ストレージ制御部120は、パリティP0、P1、P2を、それらを計算する際に用いたデータが記録されているセクタにできる限り近いセクタに格納する。ただし各パリティは、ストレージ制御部120がそれぞれのパリティを計算する際に用いたデータ断片を記録したセクタからN=3セクタ以上離れて配置される。図3では、パリティP0、P1、P2をセクタU8の次のセクタからP0、P1、P2の順で記録した例を示した。
例えば、セクタU7、U8、P0にまたがってバーストエラーが発生した場合、セクタU7に記録されているデータは、エラーの発生していないセクタU1に記録されているデータとセクタU4に記録されているパリティP1から復元することができる。同様に、U8はエラーの発生していないセクタU2とU5とP2から、P0はエラーの発生していないセクタU0、U3、U6から、それぞれ復元することができる。
以上のように、本実施の形態1によれば、ストレージ制御部120は、データ記憶部150に格納するデータのパリティを計算する際に、互いにNセクタ以上離れた複数のセクタからデータ断片を読み出し、これらを用いてパリティを計算する。これにより、いずれかのデータ断片がバーストエラーによって破損しても、パリティを計算する際に用いた他のデータ断片またはパリティが破損せずに残っている可能性が高くなるため、これを用いてデータを復元できる可能性も高まる。したがって、記憶装置100のバーストエラーに対する耐性を高めることができる。
また、本実施の形態1によれば、ストレージ制御部120は、各パリティを、計算元のデータ断片が格納されているセクタからNセクタ以上離れたセクタに格納する。これにより、いずれかのデータ断片またはパリティがバーストエラーによって破損しても、パリティを計算する際に用いた他のデータ断片またはパリティが破損せずに残っている可能性が高くなるため、これを用いてデータを復元できる可能性も高まる。したがって、記憶装置100のバーストエラーに対する耐性を高めることができる。
<実施の形態2>
実施の形態1において、ストレージ制御部120は各パリティをデータ断片からNセクタ以上離れたセクタに格納することを説明した。しかし、データ断片を格納するセクタとパリティを格納するセクタが離れすぎると、磁気ディスク装置のシーク時間およびディスク回転待ち時間が発生し、処理時間を増大させてしまう可能性がある。
実施の形態1において、ストレージ制御部120は各パリティをデータ断片からNセクタ以上離れたセクタに格納することを説明した。しかし、データ断片を格納するセクタとパリティを格納するセクタが離れすぎると、磁気ディスク装置のシーク時間およびディスク回転待ち時間が発生し、処理時間を増大させてしまう可能性がある。
これを回避するためには、パリティの計算元であるデータ断片とそのパリティがなるべく近いセクタに配置されることが望ましい。ただし、バーストエラーによって複数のデータ断片またはパリティが破損しないよう、各データ断片間および各データ断片とパリティ間の距離はNセクタ以上離す必要がある。
そこでストレージ制御部120は、パリティを算出し、またはデータ記憶部150に格納する際に、上記条件を満たすように、パリティ計算元のデータ断片を選択し、またパリティの格納先を定める。すなわち、パリティを計算する際に用いるデータ断片間の距離、およびデータ断片とパリティ間の距離をNセクタ以上に保ちつつ、データ断片とパリティ間の距離が最小となるようにする。
具体的には、例えば図3に示すように、最後のデータ断片U8に隣接するセクタに最初のパリティP0を格納すると、データ断片とパリティ間の距離は最小となる。ただしU8やU7がパリティP0の計算元になっていると、これらがバーストエラーによって同時に破損したときに復元することができなくなる。そこでストレージ制御部120は、パリティP0の計算元を、パリティP0を格納するセクタよりもNセクタ以上前のデータ断片から選択するようにする。
以上のように、本実施の形態2によれば、ストレージ制御部120は、パリティ計算元となるデータ断片とパリティの間の距離が、実施の形態1で説明した条件を満たしつつ最小となるように、データ断片を選択し、またパリティの格納位置を定める。これにより、シーク時間および回転待ち時間を抑え、記憶装置100のデータ入出力パフォーマンスを向上させることができる。
<実施の形態3>
本発明の実施の形態3では、実施の形態1〜2で説明した構成に加え、アクセス制限がかけられた記憶領域を有する構成を説明する。その他の構成は実施の形態1〜2と同様であるため、以下では差異点を中心に説明する。
本発明の実施の形態3では、実施の形態1〜2で説明した構成に加え、アクセス制限がかけられた記憶領域を有する構成を説明する。その他の構成は実施の形態1〜2と同様であるため、以下では差異点を中心に説明する。
図4は、本実施の形態3に係る記憶装置100の構成図である。本実施の形態3に係る記憶装置100は、実施の形態1〜2で説明した構成に加え、新たに転送モジュール161、制限領域制御部162、制限領域記憶部163、秘匿領域制御部171、秘匿領域記憶部172を備える。転送モジュール161、制限領域制御部162、制限領域記憶部163は、制限領域160を形成する。秘匿領域制御部171、秘匿領域記憶部172は、秘匿領域170を形成する。
制限領域160は、記憶装置100の外部からアクセスすることが制限された記憶領域である。秘匿領域170は、記憶装置100の外部からアクセスすることができず、記憶装置100の内部でのみアクセスすることができる記憶領域である。
制限領域160は、記憶装置100の外部からのアクセスを制限したいデータを格納することを主な目的とする記憶領域である。秘匿領域170は、記憶装置100の外部に提供すべきではないデータを格納することを主な目的とする記憶領域である。以下では、秘匿領域170に実施の形態1〜2で説明したパリティを格納するものとして説明する。
制限領域160と秘匿領域170はデータ記憶部150とは別の記憶装置上に構成してもよいし、データ記憶部150が有する記憶領域のうちいずれかを制限領域160または秘匿領域170として割り当てることもできる。
転送モジュール161は、ストレージインターフェイス110を介して、制限領域160に対するアクセス命令を受信し、制限領域制御部162に出力する。また、制限領域160が格納しているデータを、ストレージインターフェイス110を介して出力する。
制限領域制御部162は、ストレージ制御部120とは別に独立して動作し、制限領域160に対するアクセスを制御する。具体的には、制限領域160に対するデータ入出力命令がアクセス権限をともなうものであるか否かを判定し、正当なアクセス権限があればその命令を実行する。アクセス権限に関しては後述する。制限領域制御部162は、ストレージ制御部120とは別の命令系統にしたがって動作する。
制限領域記憶部163は、制限領域160が格納するデータを実際に記憶する記憶デバイスである。データ記憶部150の一部の記憶領域を制限領域記憶部163として割り当てることもできるし、データ記憶部150とは別の記憶装置を用いることもできる。
秘匿領域制御部171は、ストレージ制御部120および制限領域制御部162とは別に独立して動作し、秘匿領域170を記憶装置100の外部から隠蔽する。秘匿領域170を隠蔽するための具体的な手法については後述する。秘匿領域制御部171は、ストレージ制御部120および制限領域制御部162とは別の命令系統にしたがって動作する。
秘匿領域記憶部172は、秘匿領域170が格納するデータを実際に記憶する記憶デバイスである。データ記憶部150の一部の記憶領域を秘匿領域記憶部172として割り当てることもできるし、データ記憶部150とは別の記憶装置を用いることもできる。
データ記憶部150とは別の記憶装置を用いて制限領域記憶部163および秘匿領域記憶部172を構築すると、データ記憶部150とは別に独立してデータアクセスを行うことができるので、アクセス性能が向上する。また、データ記憶部150、制限領域記憶部163、秘匿領域記憶部172全てにバーストエラーが同時発生する可能性は低いと思われるので、バーストエラーに対する耐性を向上させる観点でも好ましい。ただし、記憶デバイスおよびその制御部を別途設ける必要があるためコストは高くなる。
図5は、データ記憶部150、制限領域160、秘匿領域170それぞれの記憶領域アドレスについて説明する図である。以下、図5に示す各アドレスについて説明する。
記憶装置100が有する各記憶領域内の位置は、物理アドレス501によって特定される。したがって、データ記憶部150、制限領域160、秘匿領域170に対してデータを入出力するためには、これらの記憶領域の物理アドレス501を特定する必要がある。ただし実際の処理では、必ずしも物理アドレス501を直接用いるわけではなく、物理アドレス501を一意に変換した論理アドレスが用いられる。
再生装置200は、データ記憶部150または制限領域160に対してアクセスする際に、論理アドレスを指定する。ストレージ制御部120または制限領域制御部162は、再生装置200が指定した論理アドレスを物理アドレスに変換し、データの書き込みまたは読み込みを実行する。
アドレスを一意に変換することができれば、論理アドレスをさらに変換して別の論理アドレスを構築し、アドレス階層を多段的に構成することができる。図5では、物理アドレス501を論理アドレス502に変換し、論理アドレス502をさらに制限なし論理アドレス503と制限付き論理アドレス504に変換した例を示した。
制限なし論理アドレス503は、そのまま再生装置200に対して公開されるか、またはさらに制限なし論理アドレス505に変換した上で再生装置200に公開される。制限付き論理アドレス504は、制限領域論理アドレス506と秘匿領域論理アドレス507に変換される。
制限領域論理アドレス506は、制限領域160内の記憶領域の論理アドレスを表す。秘匿領域論理アドレス507は、秘匿領域170内の記憶領域の論理アドレスを表す。制限領域論理アドレス506は再生装置200に対して公開されるが、秘匿領域論理アドレス507は公開されない。これにより、秘匿領域170を再生装置200から隠蔽することができる。
なお、再生装置200が制限領域160にアクセスすることを許可するか否かは、所定の認証手続きによって定めてもよい。例えば、再生装置200から制限領域論理アドレス506に対するアクセス要求があった時点で、再生装置200を認証する処理を制限領域制御部162などが実行し、認証することができた場合のみアクセスを許可する、などとすることができる。
各アドレス変換は、例えばストレージ制御部120がまとめて実行してもよいし、制限領域160の論理アドレスは制限領域制御部162が提供し、秘匿領域170の論理アドレスは秘匿領域制御部171が提供する、などのように適宜役割分担をしてもよい。同様に、各記憶領域に対するデータ入出力も、ストレージ制御部120がまとめて実行してもよいし、上記のように役割分担をしてもよい。
図6は、ストレージ制御部120の機能ブロック図である。ストレージ制御部120はパリティ計算部121とパリティスイッチ122を備える。
パリティ計算部121は、演算装置140によって制御され、上述のパリティを計算する。
パリティスイッチ122は、データ記憶部150または制限領域記憶部163が格納しているデータに対して、パリティを計算するか否かを格納しているデータ数と1つのパリティを計算するために必要なデータ断片の数Mと大小を比較して判断する。この判断手法については後述の図7で改めて説明する。また、パリティスイッチ122は前記断片の数Mを保持する。実施の形態1〜2で説明した例は、M=3の場合に相当する。
パリティスイッチ122は、データ記憶部150または制限領域記憶部163が格納しているデータに対して、パリティを計算するか否かを格納しているデータ数と1つのパリティを計算するために必要なデータ断片の数Mと大小を比較して判断する。この判断手法については後述の図7で改めて説明する。また、パリティスイッチ122は前記断片の数Mを保持する。実施の形態1〜2で説明した例は、M=3の場合に相当する。
パリティスイッチ122が、パリティを計算すると判断した場合、パリティ計算部121は、データ記憶部150または制限領域記憶部163が格納しているデータを取得してパリティを計算し、秘匿領域記憶部172に格納する。
図7は、ストレージ制御部120がパリティを計算する処理フローである。以下、図7の各ステップについて説明する。なお、以下の説明では、1つのセクタに1つのデータが格納されるものとして説明するが、1つのセクタに複数のデータが記録される場合、あるいは1つのデータが複数のセクタにまたがる場合は、以下の説明におけるデータ数とセクタ数を適宜読み替えるものとする。また、ストレージ制御部120がデータ入出力をまとめて行うものとして説明する。
(図7:ステップS700)
記憶装置100に対するデータ書き込み命令をストレージインターフェイス110が受信すると、本処理フローが開始される。
記憶装置100に対するデータ書き込み命令をストレージインターフェイス110が受信すると、本処理フローが開始される。
(図7:ステップS701)
ストレージ制御部120は、ストレージインターフェイス110が受信した書込対象データを、バッファメモリ130に格納する。
ストレージ制御部120は、ストレージインターフェイス110が受信した書込対象データを、バッファメモリ130に格納する。
(図7:ステップS702)
ストレージ制御部120は、バッファメモリ130内に格納されているデータ断片の数と、パリティスイッチ122が保持している必要データ断片数Mとを比較する。バッファメモリ130内のデータ断片数がM以上であればステップS703へ進み、M未満であればステップS707へ進む。
ストレージ制御部120は、バッファメモリ130内に格納されているデータ断片の数と、パリティスイッチ122が保持している必要データ断片数Mとを比較する。バッファメモリ130内のデータ断片数がM以上であればステップS703へ進み、M未満であればステップS707へ進む。
(図7:ステップS703)
ストレージ制御部120は、バッファメモリ130からデータ断片をM個読み出す。
ストレージ制御部120は、バッファメモリ130からデータ断片をM個読み出す。
(図7:ステップS704)
ストレージ制御部120は、ステップS703で読み出したデータ断片を用いてパリティを計算する。
ストレージ制御部120は、ステップS703で読み出したデータ断片を用いてパリティを計算する。
(図7:ステップS705)
ストレージ制御部120は、書き込み命令を受けたデータをデータ記憶部150または制限領域記憶部163に格納する。また、ステップS704で計算したパリティを、秘匿領域記憶部172に格納する。
ストレージ制御部120は、書き込み命令を受けたデータをデータ記憶部150または制限領域記憶部163に格納する。また、ステップS704で計算したパリティを、秘匿領域記憶部172に格納する。
(図7:ステップS706)
ストレージ制御部120は、バッファメモリ130内に読み出していないデータが残っている場合はステップS702へ戻って同様の処理を実行し、残っていない場合は本処理フローを終了する。
ストレージ制御部120は、バッファメモリ130内に読み出していないデータが残っている場合はステップS702へ戻って同様の処理を実行し、残っていない場合は本処理フローを終了する。
(図7:ステップS707)
ストレージ制御部120は、バッファメモリ130内のデータ断片を読み出す。
ストレージ制御部120は、バッファメモリ130内のデータ断片を読み出す。
(図7:ステップS708)
ストレージ制御部120は、ステップS707で読み出したデータ断片と擬似データを用いてパリティを計算する。ここでいう擬似データとは、ステップS707で読み出したデータ断片数がMに満たない場合に、不足分を補う仮データのことである。この擬似データは、ストレージ制御部120が所定規則にしたがって生成してもよいし、規定の固定データなどを用いてもよい。なお、本ステップで擬似データを読み出す代わりに、本処理フローを開始する時点であらかじめ擬似データを読み出しておき、ステップS701で不足分が生じた時点でバッファメモリ130に擬似データを書き込んでおいてもよい。これにより、擬似データを生成する時間や読み出し時間を低減することができる。
ストレージ制御部120は、ステップS707で読み出したデータ断片と擬似データを用いてパリティを計算する。ここでいう擬似データとは、ステップS707で読み出したデータ断片数がMに満たない場合に、不足分を補う仮データのことである。この擬似データは、ストレージ制御部120が所定規則にしたがって生成してもよいし、規定の固定データなどを用いてもよい。なお、本ステップで擬似データを読み出す代わりに、本処理フローを開始する時点であらかじめ擬似データを読み出しておき、ステップS701で不足分が生じた時点でバッファメモリ130に擬似データを書き込んでおいてもよい。これにより、擬似データを生成する時間や読み出し時間を低減することができる。
(図7:ステップS709)
ストレージ制御部120は、書き込み命令を受けたデータをデータ記憶部150または制限領域記憶部163に格納する。また、ステップS708で計算したパリティを、秘匿領域記憶部172に格納する。
ストレージ制御部120は、書き込み命令を受けたデータをデータ記憶部150または制限領域記憶部163に格納する。また、ステップS708で計算したパリティを、秘匿領域記憶部172に格納する。
図8は、ストレージ制御部120がデータを記憶装置100の外部に出力する処理フローである。以下、図8の各ステップについて説明する。図7と同様に、ストレージ制御部120がデータ入出力をまとめて行うものとする。
(図8:ステップS800)
記憶装置100に対するデータ読み込み命令をストレージインターフェイス110が受信すると、本処理フローが開始される。
記憶装置100に対するデータ読み込み命令をストレージインターフェイス110が受信すると、本処理フローが開始される。
(図8:ステップS801)
ストレージ制御部120は、データ読み込み命令を受けたデータをデータ記憶部150または制限領域記憶部163から読み出す。制限領域記憶部163からデータを読み出す場合には、必要な認証処理等を併せて実行する。
ストレージ制御部120は、データ読み込み命令を受けたデータをデータ記憶部150または制限領域記憶部163から読み出す。制限領域記憶部163からデータを読み出す場合には、必要な認証処理等を併せて実行する。
(図8:ステップS802)
ステップS801で読み出しに成功した場合は本処理フローを終了し、失敗した場合はステップS803へ進む。
ステップS801で読み出しに成功した場合は本処理フローを終了し、失敗した場合はステップS803へ進む。
(図8:ステップS803)
ストレージ制御部120は、読み出しに失敗したデータのECC(誤り訂正符合)を用いてデータ訂正を試みる。
ストレージ制御部120は、読み出しに失敗したデータのECC(誤り訂正符合)を用いてデータ訂正を試みる。
(図8:ステップS804)
ステップS803でデータ訂正に成功した場合は本処理フローを終了し、失敗した場合はステップS805へ進む。
ステップS803でデータ訂正に成功した場合は本処理フローを終了し、失敗した場合はステップS805へ進む。
(図8:ステップS805)
ストレージ制御部120は、ECCを用いてデータを訂正することができなかった旨を秘匿領域制御部171に通知する。
ストレージ制御部120は、ECCを用いてデータを訂正することができなかった旨を秘匿領域制御部171に通知する。
(図8:ステップS806)
秘匿領域制御部171は、訂正できなかったデータを用いて計算したパリティと、そのパリティを計算する際に用いた他のデータとを特定してストレージ制御部120に通知する。パリティとその計算元となったデータとの対応関係は、例えば所定規則にしたがって定めてもよいし、両者の対応関係を記載した管理データをいずれかの記憶部に格納しておき、これを参照して把握するようにしてもよい。
秘匿領域制御部171は、訂正できなかったデータを用いて計算したパリティと、そのパリティを計算する際に用いた他のデータとを特定してストレージ制御部120に通知する。パリティとその計算元となったデータとの対応関係は、例えば所定規則にしたがって定めてもよいし、両者の対応関係を記載した管理データをいずれかの記憶部に格納しておき、これを参照して把握するようにしてもよい。
(図8:ステップS807)
ストレージ制御部120は、ステップS806で特定したパリティとそのパリティを計算するときに用いたデータから、訂正に失敗したデータを復元する。
ストレージ制御部120は、ステップS806で特定したパリティとそのパリティを計算するときに用いたデータから、訂正に失敗したデータを復元する。
以上、本実施の形態3における記憶装置100の構成および動作例を説明した。
以上のように、本実施の形態3に係る記憶装置100は、データ記憶部150、制限領域160、秘匿領域170の物理アドレスを論理アドレスに変換し、秘匿領域170の論理アドレスを記憶装置100の外部に公開しない。これにより、秘匿領域170を記憶装置100の外部から隠蔽し、秘匿領域170内でのみデータを処理することができる。
以上のように、本実施の形態3に係る記憶装置100は、データ記憶部150、制限領域160、秘匿領域170の物理アドレスを論理アドレスに変換し、秘匿領域170の論理アドレスを記憶装置100の外部に公開しない。これにより、秘匿領域170を記憶装置100の外部から隠蔽し、秘匿領域170内でのみデータを処理することができる。
また、本実施の形態3に係る記憶装置100は、制限領域160に対するアクセス要求があったときは、アクセス要求元に対して認証処理を実行することができる。これにより制限領域160に格納されているデータに対するアクセス制御を実現することができる。
<実施の形態4>
実施の形態3では、秘匿領域170にパリティを格納することを説明した。データ記憶部150の記憶領域の一部を秘匿領域170として割り当てた場合、データを格納しているセクタとパリティを格納しているセクタが、図3のように隣接する場合がある。
実施の形態3では、秘匿領域170にパリティを格納することを説明した。データ記憶部150の記憶領域の一部を秘匿領域170として割り当てた場合、データを格納しているセクタとパリティを格納しているセクタが、図3のように隣接する場合がある。
したがって、図3の状態の下で再生装置200が記憶装置100にデータを追加書き込みしようとするとき、パリティが格納されている記憶領域を避けてデータを書き込まなければならない。すなわち、再生装置200は、データ書き込み先の論理アドレスを得る際に、パリティが格納されているセクタの論理アドレスを把握しておかなければならない。ところが、秘匿領域170は再生装置200から隠蔽されているため、再生装置200はパリティがどこに格納されているか、直接的には把握することができない。
本発明の実施の形態4では、秘匿領域170にパリティが書き込まれている状態でデータを追加書き込みする際に、適切な書き込み先アドレスを得るための構成と動作例を説明する。その他の構成は実施の形態1〜3と同様であるため、以下では差異点を中心に説明する。
データ記憶部150の一部を秘匿領域170として割り当て、かつ秘匿領域170にパリティが書き込まれている場合、図3で例示したように、データとそのパリティが隣接する記憶領域に交互に書き込まれる場合がある。特に、パリティは本来書き込みたいデータとは別に自動生成され、その論理アドレスが非公開であるため、取り扱いが難しい。この問題は、実施の形態2で説明した、パリティをできる限りデータの近くに配置することと相俟って、取り扱いを複雑にしている。以下に場合分けして説明する。
(ケース1:パリティを書き込む場合)
ストレージ制御部120が秘匿領域170にパリティを書き込むとき、実施の形態2で説明したように、できる限りパリティを計算する際に用いたデータに近い位置にパリティを格納することが望ましい。かつ、パリティを格納する論理アドレスは、記憶装置100の外部に対して非公開としなければならない。
ストレージ制御部120が秘匿領域170にパリティを書き込むとき、実施の形態2で説明したように、できる限りパリティを計算する際に用いたデータに近い位置にパリティを格納することが望ましい。かつ、パリティを格納する論理アドレスは、記憶装置100の外部に対して非公開としなければならない。
(ケース2:データを書き込む場合)
ストレージ制御部120がデータ記憶部150にデータを書き込もうとするとき、その記憶領域にパリティが既に書き込まれている場合がある。パリティが書き込まれている箇所の論理アドレスは非公開であるため、再生装置200はパリティが既に書き込まれていることを知らず、その論理アドレスに対してデータを書き込もうとする可能性がある。この場合は、パリティが書き込まれている記憶領域をスキップした論理アドレスが、書き込み先アドレスとして指定されるようにしなければならない。
ストレージ制御部120がデータ記憶部150にデータを書き込もうとするとき、その記憶領域にパリティが既に書き込まれている場合がある。パリティが書き込まれている箇所の論理アドレスは非公開であるため、再生装置200はパリティが既に書き込まれていることを知らず、その論理アドレスに対してデータを書き込もうとする可能性がある。この場合は、パリティが書き込まれている記憶領域をスキップした論理アドレスが、書き込み先アドレスとして指定されるようにしなければならない。
本実施の形態4では、簡易な構成を用いて上記各ケースにおけるデータおよびパリティの取り扱いを容易にするため、各データおよび各パリティに、後述する管理データ900を付加する。以下、図9〜図10を用いてその手法を説明する。
図9は、管理データ900の構成を示す図である。ストレージ制御部120は、データ記憶部150、制限領域記憶部163、秘匿領域記憶部172にデータを書き込む際に、図9に示す管理データをそのデータに付加する。管理データ900は、識別フラグ901、パリティグループID902、アドレス差分値903を有する。
識別フラグ901は、当該データが通常データかそれともパリティであるかを示すフラグである。
パリティグループID902は、パリティとそのパリティを計算するために用いられたデータとからなるデータ集合を識別するIDである。同じパリティとそのパリティを計算するために用いられたデータについては、同じ値のパリティグループID902が割り当てられる。
アドレス差分値903は、当該データまたはパリティが格納されているセクタから、次にデータまたはパリティを書き込むことができるセクタまでの、アドレス値の差分を示す。当該管理データ900が付加されているのがパリティである場合、本値は、次にデータを書き込むことができるセクタまで何セクタ離れているかを示す。当該管理データ900が付加されているのがデータである場合、本値は、次にパリティを書き込むセクタまで何セクタ離れているかを示す。
図10は、管理データ900を用いてデータ書き込み先アドレスを取得する手法を説明する図である。以下、図10を用いて管理データ900の使用手順を説明する。
(a)パリティ書き込み先の論理アドレス
各データのアドレス差分値903には、そのデータを用いて計算したパリティをどこに格納すべきかを示唆する値が記載されている。図10(a)に示す例では、セクタU9(および他のセクタ)を用いて計算したパリティは、3セクタ先のP3に格納すべき旨が、アドレス差分値903の値によって示される。このように、ストレージ制御部120は、管理データ900を用いて、データが書き込まれている記憶領域の論理アドレスに基づきパリティ書き込み先の論理アドレスを得ることができる。
各データのアドレス差分値903には、そのデータを用いて計算したパリティをどこに格納すべきかを示唆する値が記載されている。図10(a)に示す例では、セクタU9(および他のセクタ)を用いて計算したパリティは、3セクタ先のP3に格納すべき旨が、アドレス差分値903の値によって示される。このように、ストレージ制御部120は、管理データ900を用いて、データが書き込まれている記憶領域の論理アドレスに基づきパリティ書き込み先の論理アドレスを得ることができる。
(b)データ書き込み先の論理アドレス
再生装置200は、既にデータまたはパリティが書き込まれているセクタに新たにデータを書き込むよう要求する場合がある。ストレージ制御部120は、データを書き込むよう要求されたセクタに付加されている管理データ900の識別フラグ901を確認する。
再生装置200は、既にデータまたはパリティが書き込まれているセクタに新たにデータを書き込むよう要求する場合がある。ストレージ制御部120は、データを書き込むよう要求されたセクタに付加されている管理データ900の識別フラグ901を確認する。
(b.1)データが先に書き込まれている場合
先に書き込まれているのがデータである場合は、再生装置200からのデータ書き込み要求は上書き要求であるとみなすことができる。この場合、ストレージ制御部120は、そのままそこに書き込まれているデータを上書きする。
先に書き込まれているのがデータである場合は、再生装置200からのデータ書き込み要求は上書き要求であるとみなすことができる。この場合、ストレージ制御部120は、そのままそこに書き込まれているデータを上書きする。
(b.2)パリティが先に書き込まれている場合
先に書き込まれているのがパリティである場合は、このセクタをスキップしてデータを書き込まなければならない。この場合、ストレージ制御部120は、先に書き込まれているパリティのアドレス差分値903を読み込み、その分だけセクタをスキップした先に、要求されたデータを書き込む。
先に書き込まれているのがパリティである場合は、このセクタをスキップしてデータを書き込まなければならない。この場合、ストレージ制御部120は、先に書き込まれているパリティのアドレス差分値903を読み込み、その分だけセクタをスキップした先に、要求されたデータを書き込む。
以上のように、管理データ900を用いることにより、秘匿領域170に書き込むパリティの取り扱いを容易にすることができる。
なお、管理データ900を用いて書き込み先のアドレスを得ることは、アドレス変換の一種であるとみなすこともできる。したがって、ストレージ制御部120は、図5で説明したアドレス変換を行う過程で、図9〜図10で説明した処理を実行してもよい。
また、管理データ900を最初に作成する際に、ストレージ記憶部120はアドレス差分値903の値を把握しておかなければならない。この値は、パリティを計算するために用いるデータ断片数M、何個のデータ断片を連続格納するか、などによって定まる。具体的な数値は、固定的に定めてもよいし、記憶装置100の動作中に適宜最適化して調整するようにしてもよい。
以上のように、本実施の形態4によれば、ストレージ制御部120は、データまたはパリティを書き込む際に、管理データ900を付加する。管理データ900内のアドレス差分値903には、次のデータまたはパリティをいずれの記憶領域に書き込めばよいかを記載しておく。これにより、秘匿領域170の論理アドレスを記憶装置100の外部から隠蔽しつつ、秘匿領域170のアドレス管理を容易に行うことができる。
また、本実施の形態4によれば、秘匿領域170のアドレス管理を行うための管理テーブルを作成したり、その管理テーブルを検索したりする処理が不要となり、ストレージ制御部120の処理負荷を軽減することができる。
<実施の形態5>
図11は、実施の形態4で説明したアドレス変換ルールを簡易化した構成を示す図である。図11において、データを連続して格納するセクタ数NuはNu=3で固定であり、パリティを格納するセクタ数NpはNp=1で固定である。3つのデータセクタの後に1つのパリティセクタが必ず配置される。
図11は、実施の形態4で説明したアドレス変換ルールを簡易化した構成を示す図である。図11において、データを連続して格納するセクタ数NuはNu=3で固定であり、パリティを格納するセクタ数NpはNp=1で固定である。3つのデータセクタの後に1つのパリティセクタが必ず配置される。
この設定の場合、0以上の整数をA、0からNu以下の整数をB、0からNp以下の整数をC、下位論理アドレスをXとすると、下位論理アドレスXから利用制御情報の上位論理アドレスYとパリティの上位論理アドレスZは、下記(式1)(式2)を用いて一意に得ることができる。この場合、管理データ900は不要となる。
Y=X+A×Np+B ・・・(式1)
Z=X+A×Nu+C ・・・(式2)
Y=X+A×Np+B ・・・(式1)
Z=X+A×Nu+C ・・・(式2)
<実施の形態6>
以上の実施の形態1〜5において、ストレージ制御部120は、データ記憶部150にデータを格納する際に、そのデータを暗号化してもよい。同様に、制限領域制御部162は、制限領域160にデータを格納する際に、そのデータを暗号化してもよい。暗号化することにより、データの安全性が高まる。暗号鍵は、例えばストレージ制御部120または制限領域制御部162の内部でのみ保持するようにし、記憶装置100の外部に対して隠蔽するようにしてもよい。または、暗号鍵を制限領域160に格納し、アクセスを制限してもよい。
以上の実施の形態1〜5において、ストレージ制御部120は、データ記憶部150にデータを格納する際に、そのデータを暗号化してもよい。同様に、制限領域制御部162は、制限領域160にデータを格納する際に、そのデータを暗号化してもよい。暗号化することにより、データの安全性が高まる。暗号鍵は、例えばストレージ制御部120または制限領域制御部162の内部でのみ保持するようにし、記憶装置100の外部に対して隠蔽するようにしてもよい。または、暗号鍵を制限領域160に格納し、アクセスを制限してもよい。
制限領域160は、記憶装置100の外部からのアクセスが制限されるため、比較的高いセキュリティが求められるデータを格納する際に用いると好適である。例えば、著作権で保護されているコンテンツデータの利用条件を規制する利用制限情報を、制限領域160に格納することが考えられる。
秘匿領域170に格納するパリティは、必ずしも全てのデータについて計算する必要はない。例えば、データ記憶部150に格納されるデータについてはECCによるエラー訂正のみを実行し、比較的重要性の高いデータが格納される制限領域160内のデータについてのみパリティを計算するようにしてもよい。この場合、パリティを格納する秘匿領域170は記憶装置100の外部から隠蔽されているため、セキュリティの観点からも都合がよい。
なお、以上の説明では記憶領域の単位としてセクタを用いたが、他の単位を用いてもよい。また、以上の実施の形態1〜6において、制限領域160と秘匿領域170のアクセスを制限して耐タンパ性を論理的に保証することができる限り、これらの記憶媒体は物理的に耐タンパ性を保証する記憶媒体であることを要しない。
100:記憶装置、110:ストレージインターフェイス、120:ストレージ制御部、130:バッファメモリ、140:演算装置、150:データ記憶部、160:制限領域、161:転送モジュール、162:制限領域制御部、163:制限領域記憶部、170:秘匿領域、171:秘匿領域制御部、172:秘匿領域記憶部、200:再生装置、210:ストレージインターフェイス、220:クライアントインターフェイス、310:放送システム、320:配信サーバ、330:ネットワーク、340:クライアント端末、501:物理アドレス、502:論理アドレス、503:制限なし論理アドレス、504:制限付き論理アドレス、505:論理アドレス、506:制限領域論理アドレス、507:秘匿領域論理アドレス、900:管理データ、901:識別フラグ、902:パリティグループID、903:アドレス差分値。
Claims (10)
- データを記憶するデータ記憶部と、
前記データ記憶部が記憶するデータのパリティを計算するパリティ計算部と、
を備え、
前記パリティ計算部は、
前記データ記憶部において発生するバーストエラー長さの想定値を取得し、
前記データ記憶部の記憶領域のうち互いに前記想定値以上離れた複数の記憶領域から前記データを読み取り、そのデータを用いて前記パリティを計算する
ことを特徴とする記憶装置。 - 前記パリティ計算部は、
前記データ記憶部のうち前記パリティを計算する際に用いた前記データを格納している記憶領域から前記想定値以上離れた記憶領域に前記パリティを格納する
ことを特徴とする請求項1記載の記憶装置。 - 前記パリティ計算部は、
前記パリティを計算する際に用いた前記データからの距離が最小となる記憶領域に前記パリティを格納する
ことを特徴とする請求項2記載の記憶装置。 - 前記データ記憶部上の記憶領域を指定する物理アドレスを論理アドレスに変換するアドレス変換部を備え、
前記アドレス変換部は、
前記パリティを格納する記憶領域の論理アドレスを当該記憶装置の外に公開せず、当該記憶装置の内部でのみ用いることを許可する
ことを特徴とする請求項1記載の記憶装置。 - 前記データ記憶部は、
前記データ記憶部上の記憶領域を指定するアドレスを他のアドレスに変換する規則を記載したアドレス変換規則データを記憶し、
前記アドレス変換部は、
前記アドレス変換規則データを用いて前記データ記憶部上の物理アドレスを論理アドレスに変換する
ことを特徴とする請求項4記載の記憶装置。 - 前記アドレス変換規則データは、
前記パリティを記憶する記憶領域のアドレスと、次のデータを記憶する記憶領域のアドレスとの間隔を記載しており、
前記アドレス変換部は、
前記パリティを格納している記憶領域に対するデータ書込要求があったとき、
前記パリティを記憶する記憶領域のアドレスに前記間隔を合算したアドレスを、次のデータを記憶する記憶領域のアドレスとする
ことを特徴とする請求項5記載の記憶装置。 - 前記アドレス変換規則データは、
前記データを記憶する記憶領域のアドレスと、そのデータを用いて計算した前記パリティを記憶すべき記憶領域のアドレスとの間隔を記載しており、
前記アドレス変換部は、
前記データを記憶する記憶領域のアドレスに前記間隔を合算したアドレスを、そのデータを用いて計算した前記パリティを記憶する記憶領域のアドレスとする
ことを特徴とする請求項5記載の記憶装置。 - 前記データ記憶部は、
前記データを利用する条件を定義する利用条件データを記憶し、
前記パリティ計算部は、
前記利用条件データの前記パリティを計算する
ことを特徴とする請求項1記載の記憶装置。 - 前記利用条件データに対するアクセスを制御する制御部を備えた
ことを特徴とする請求項8記載の記憶装置。 - 前記データ記憶部が記憶するデータを暗号化する演算部を備えた
ことを特徴とする請求項8記載の記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009273313A JP2011118504A (ja) | 2009-12-01 | 2009-12-01 | 記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009273313A JP2011118504A (ja) | 2009-12-01 | 2009-12-01 | 記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011118504A true JP2011118504A (ja) | 2011-06-16 |
Family
ID=44283782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009273313A Pending JP2011118504A (ja) | 2009-12-01 | 2009-12-01 | 記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011118504A (ja) |
-
2009
- 2009-12-01 JP JP2009273313A patent/JP2011118504A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5036406B2 (ja) | コンテンツデータ管理システム及び方法 | |
JP4690600B2 (ja) | データ保護方法 | |
JP4648687B2 (ja) | データストレージシステムにおける暗号化変換の方法と装置 | |
US20080052537A1 (en) | Storage device, write-back method, and computer product | |
US20090187771A1 (en) | Secure data storage with key update to prevent replay attacks | |
US20130117633A1 (en) | Recording apparatus, writing apparatus, and reading apparatus | |
US20100058066A1 (en) | Method and system for protecting data | |
US20120110343A1 (en) | Trustworthy timestamps on data storage devices | |
US20070226412A1 (en) | Storage device, controller for storage device, and storage device control method | |
US20100138934A1 (en) | Information processor | |
KR101047213B1 (ko) | 암호화 장치, 암호화 방법 및 컴퓨터 판독가능한 기록 매체 | |
US8977865B2 (en) | Data encryption conversion for independent agents | |
JP2001297038A (ja) | データ記憶装置および記録媒体並びに記録媒体制御方法 | |
WO2015087426A1 (ja) | ストレージ装置及びストレージ装置の制御方法 | |
JP2007272476A (ja) | 情報記憶装置 | |
JP5139028B2 (ja) | コンテンツデータ管理システム及び方法 | |
US7949137B2 (en) | Virtual disk management methods | |
US20070168284A1 (en) | Management of encrypted storage media | |
JP2006079449A (ja) | 記憶媒体アクセス制御方法 | |
JP2010165206A (ja) | メモリコントローラおよび不揮発性記憶装置 | |
KR101405915B1 (ko) | 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법 | |
JP2008009933A (ja) | 記憶装置とその制御方法 | |
JP2011118504A (ja) | 記憶装置 | |
JP2010146635A (ja) | コンテンツ記録再生装置並びにコンテンツの書き込み及び読み出し方法 | |
US20160321194A1 (en) | Storage device, controller, and control method |