(58)【調査した分野】(Int.Cl.,DB名)
前記符号化部は、符号化モードセットのうちの特定の符号化モードを選択する確率を示すコーディングポリシーを得て、該コーディングポリシーに基づいて前記ランダムデータを生成することを特徴とする請求項2に記載のデータ格納装置。
前記符号化部は、前記内部モード決定プロセスによりデータパターンを生成し、該データパターンに基づいて符号化モードを決定することを特徴とする請求項1に記載のデータ格納装置。
前記符号化部は、符号化モードセットのうちの特定の符号化モードを選択する確率を示すコーディングポリシーを得て、該コーディングポリシーに基づいて前記データパターンを生成することを特徴とする請求項4に記載のデータ格納装置。
前記符号化部は、符号化モードセットのうちの特定の符号化モードを選択する確率を示すコーディングポリシーを得て、該コーディングポリシーに基づいて前記符号化モードを決定することを特徴とする請求項1に記載のデータ格納装置。
前記符号化部は、前記少なくとも一つの入力コマンド及び他の入力コマンドに基づいて前記コーディングポリシーを得ることを特徴とする請求項6に記載のデータ格納装置。
前記符号化部は、コーディングポリシー格納部からコーディングポリシーのリストをロードし、該リストから前記コーディングポリシーのうちの一つを選択することを特徴とする請求項6に記載のデータ格納装置。
前記符号化部は、符号化出力データセットを生成するため、元データを示す複数の出力データを符号化し、該複数の出力データのそれぞれの符号化モードを決定するため、該複数の出力データのそれぞれに対して前記内部モード決定プロセスを実行し、前記符号化モードのそれぞれに基づいて複数の出力データのそれぞれを符号化することを特徴とする請求項1に記載のデータ格納装置。
前記制御部は、第1入力コマンド及び第2入力コマンドの入力を交互に受け、前記符号化部が前記元データを示す前記複数の出力データの入力を受けて前記複数の出力データを符号化するように、前記第1入力コマンドに応答して前記リード信号を生成し、前記第2入力コマンドに応答して前記開始信号を生成することを特徴とする請求項10に記載のデータ格納装置。
前記制御部は、複数の入力コマンドを受け、前記符号化部が前記元データを示す前記複数の出力データの入力を受けて符号化するように、前記複数の入力コマンドのそれぞれに応答して前記リード信号及び前記開始信号を生成することを特徴とする請求項10に記載のデータ格納装置。
前記符号化部は、前記決定した符号化モードに基づいて前記第1符号化モジュール及び第2符号化モジュールのうちの一つのみを活性化させることを特徴とする請求項18に記載のデータ格納装置。
前記第1符号化率は、符号化出力データを元の状態にデコードできるようにする比率であり、前記第2符号化率は前記符号化出力データを元の状態にデコードできないようにする比率であることを特徴とする請求項18に記載のデータ格納装置。
前記符号化部は、前記決定した符号化モードに基づいて前記第1ランダムデータ生成器及び前記第2ランダムデータ生成器のうちの一つのみを活性化させることを特徴とする請求項25に記載のデータ格納装置。
前記メモリ部は、シングルレベルセル(SLC)に符号化される元データを格納し、マルチレベルセル(MLC)に符号化されない元データを格納することを特徴とする請求項1に記載のデータ格納装置。
前記符号化部は、前記トリガー信号に応答して前記符号化モードを自律的に選択することを含む内部モード決定プロセスを開始して実行することを特徴とする請求項41に記載のデータ格納装置。
【発明を実施するための形態】
【0022】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。本発明の利点、特徴、及びそれらを達成する方法は、図面と共に詳細に後述する実施形態を参照すると明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、異なる多様な形態で具現することが可能である。本実施形態は、単に本発明の開示が完全になるように、本発明が属する技術分野で通常の知識を有する者に対して発明の範疇を完全に知らしめるために提供するものである。図面に表示した構成要素のサイズ及び相対的なサイズは説明の明瞭性のために誇張することがある。なお、明細書全体に亘り、同一の参照符号は同一の構成要素を指す。
【0023】
一つの素子(elements)が他の素子と「接続された(connected to)」又は「カップリングされた(coupled to)」と指称する場合は、他の素子と直接連結又はカップリングされた場合又は中間に他の素子が介在する場合を全て含む。反面、一つの素子が他の素子と「直接接続された(directly connected to)」又は「直接カップリングされた(directly coupled to)」と指称する場合は中間に他の素子を介在しないことを示す。「及び/又は」は言及したアイテムのそれぞれ及び一つ以上の全ての組合せを含む。
【0024】
第1、第2等が、多様な素子、構成要素を説明するために使用される。しかし、これらの構成要素はこれらの用語によって制限されないことは勿論である。これらの用語は単に一つの構成要素を他の構成要素と区別するために使用するものである。例えば、本発明の技術的な思想内で第1信号は、第2信号であり得、第2信号は第1信号であり得る。
【0025】
本明細書で使用する用語は、実施形態を説明するためのものであり、本発明を制限しようとするものではない。本明細書で、単数形は特別に言及しない限り複数形も含む。明細書で使用する「含む(comprises)」及び/又は「含む(comprising)」は言及した構成要素、段階、動作及び/又は素子に一つ以上の他の構成要素、段階、動作及び/又は素子の存在又は追加を排除しない。
【0026】
他に定義しなければ、本明細書で使用する全ての用語(技術及び科学的用語を含む)は、本発明が属する技術分野で通常の知識を有する者に共通に理解され得る意味において使用するものである。また、一般的に使用される辞典に定義されている用語は、明確に特別に定義されていない限り理想的に又は過度に解釈されない。
【0027】
本明細書で使用する「符号化(coding)」は、元データをランダム化してノイズデータに変換することであるが、元データを暗号化して後に復号化により元に戻すことができるようにすることを意味する。一実施形態によるデータ格納装置は、コマンドに応答して元データをランダム化したり、元データを暗号化したりすることができる。
【0028】
データ格納装置が元データをノイズデータに変換して出力する場合、符号化データの復元のため、元データがエラー修正コードを含むのが好ましい。エラー修正コードはViterbi code、Turbo codeなどの既知のコードを使用することができる。
【0029】
先ず、
図1を参照して本発明の一実施形態によるコンピュータシステムについて説明する。本実施形態によるコンピュータシステム70は、ホスト装置60及びデータ格納装置10を含む。
【0030】
本実施形態によるホスト装置60は、プロセッサのような演算手段を備えるプロセシング装置である。具体的には、ホスト装置60を含むコンピュータシステム70は、携帯電話、双方向コミュニケーションシステム、単方向ポケットベル、双方向ポケットベル、パーソナルコミュニケーションシステム、携帯用のコンピュータ、携帯情報端末(PDA)、オーディオ及び/又はビデオプレーヤ、デジタル及び/又はビデオカメラ、ナビゲーションシステム、GPSなどである。
【0031】
本実施形態のデータ格納装置10は、格納手段として、例えば、NAND−FLASHメモリ、NOR−FLASHメモリ、相変化メモリ(PRAM Phase change Random Access Memory)、固体磁気メモリ(MRAM Magnetic Random Access Memory)、抵抗メモリ(RRAM(登録商標) Resistive Random Access Memory)などのような不揮発性メモリを使用したチップ又はパッケージである。以下ではデータ格納装置10の実施例としてFLASHメモリチップについて説明する。
【0032】
図1に示すように、データ格納装置10は、データ格納装置10を制御するホスト装置60に直接接続される。符号化対象データ20を得るためのリード(read)動作が行われる場合、ホスト装置60は、符号化対象データ20のリード動作のためにデータ格納装置10にコマンドを生成して提供する。
【0033】
コマンドは、その機能により、データリード動作を実行する第1コマンド、データ格納装置10の符号化モード決定のための開始信号である第2コマンド、又はデータリード動作実行及び符号化モードの決定を同時に行う第3コマンドなどがある。
【0034】
データ格納装置10は、第2コマンド又は第3コマンドの入力に応答して後のデータ出力の際に適用する符号化モードを自律的に決定する。従って、第2コマンド又は第3コマンドの入力は内部の符号化モードを決定するプロセスの開始信号としてのみ使用し、符号化モードはコマンドが指定した通りには決定されない。
【0035】
即ち、データ格納装置10に入力される符号化モードの決定に関連するコマンドはデータ格納装置10の符号化モードを直接決定したり示したりしない。また、符号化モード決定を開始することに関連するコマンドが入力される度に、データ格納装置10は、必然的に符号化モードを変更しない。上述したように、データ格納装置10が自律的に符号化モードを決定するため、ハッキングを意図してデータ格納装置10から出力されたデータを得た場合にも、復元可能なデータであるか否かについて簡単に把握できない保安(セキュリティ)効果を有する。
【0036】
データ格納装置10の符号化モードは、メモリから出力されるデータを何パーセント符号化するかを指定する。例えば、データ格納装置10の符号化モードは、20%のデータを符号化するA符号化モード及び70%のデータを符号化するB符号化モードの2種類がある。データ格納装置10は、第2コマンド又は第3コマンドが入力されると、A、B符号化モードのうちの一つをデータ格納装置10の符号化モードとして自律的に決定する。
【0037】
また他の実施形態として、データ格納装置10の符号化モードは、データを符号化せずにバイパス(bypass)するC符号化モード及び全てのデータを符号化するD符号化モードの2種類がある。データ格納装置10は、第2コマンド又は第3コマンドが入力されると、符号化モードとしてC符号化モード又はD符号化モードのうちの一つを自律的に決定する。
【0038】
一実施形態として、データ格納装置10の符号化モードは、それぞれ異なるデータ符号化率を有する複数の符号化モジュールのうちのどの符号化モジュールを使用するかについて決定する。特に、データ格納装置10の符号化モードは、復元できるようにデータを符号化する符号化モジュール及び復元できないようにデータを符号化する符号化モジュールを使用する符号化モードを含む。
【0039】
データ格納装置10は、符号化対象データを出力する間に第2コマンド又は第3コマンドの入力を複数回受けて出力するデータの符号化モードを変更することができる。符号化対象データ20は全ての類型のデジタルデータを意味する。例えば、データ格納装置10を認証するために使用されるデータ格納装置10識別情報のような認証情報である。
【0040】
ホスト装置60が符号化のためのコマンドをデータ格納装置10に提供する方法について説明する。
【0041】
先ず、符号化対象データ20を二つ以上に分割し、それぞれの分割したデータに対して適用する符号化モードを、符号化対象データ20を出力する度に変更する方式について説明する。
【0042】
ホスト装置60は、符号化対象データ20の出力範囲を分割した第1コマンド及び第2コマンドを交互に生成する。
【0043】
第1コマンドの入力を受ける間、データ格納装置10は、第2コマンドに応答して決定した符号化モードにより符号化対象データ20の一部を符号化して出力する。データ格納装置10は、第2コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて後に出力するデータを符号化するための符号化モードを決定する。データ格納装置10は、モード決定の基礎データとしてランダムデータを生成することができ、ランダムデータは特定符号化率の設定ができるランダムデータ生成器によって生成される。
【0044】
第1コマンド及び第2コマンドが入力されたデータ格納装置10の動作については
図14〜
図18を参照して後述する。
【0045】
次に、ホスト装置60は、分割された符号化対象データを出力するために第3コマンドを2回以上順次に生成する。データ格納装置10は、第3コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ20の一部を符号化して出力する。第3コマンドの入力を1回受けると、出力するデータの量は第3コマンドに含まれるアドレスによって決定され得、又はホストと接続していることにより予め定められている場合もある。第3コマンドを受けたデータ格納装置10の動作についても
図19及び
図20を参照して後述する。
【0046】
データ格納装置10が第1コマンド及び第2コマンド又は第3コマンドの入力を受けて出力する符号化対象データ20の一部は同一のデータであり得る。即ち、符号化対象データ20は複数の同一のデータフラグメントが連結されて形成され得る。データ格納装置10は、第1コマンド及び第2コマンド又は第3コマンドの入力を受けてデータフラグメントを一つずつ符号化して出力する。このような場合、第1コマンド及び第2コマンド又は第3コマンドの入力を受ける度に出力されるデータフラグメントは符号化モードによりそれぞれ異なるデータである。
【0047】
次に、データ格納装置10が符号化対象データ20を繰り返して出力する方法について説明する。
【0048】
データ格納装置10は、第1又は第3コマンドに応答して符号化対象データ20を出力する。第1コマンドの入力を受ける場合、データ格納装置10が符号化対象データ20を出力する前に符号化モードをランダムに変更できるように第2コマンドの入力を先に受けることが好ましい。
【0049】
符号化対象データ20を繰り返して出力するデータ格納装置10は、同一のアドレスに格納されたデータを出力するのにも拘らず、出力する度に異なるデータが出力されるように構成される。
【0050】
以下、特に言及しない限り、データ格納装置10は、符号化対象データ20を分割して出力するように構成される。
【0051】
図2を参照して本発明の他の実施形態によるコンピュータシステムについて説明する。本実施形態のコンピュータシステム80は、ホスト装置60、コントローラ40、及びデータ格納装置10を含む。本実施形態のデータ格納装置10は、データ格納装置10を制御するコントローラ40と電気的に接続される。また、コントローラ40は、ホスト装置60と接続される。即ち、データ格納装置10は、コントローラ40を介してホスト装置60の制御を受ける。
【0052】
符号化対象データのリード動作が実行される場合、ホスト装置60は、一つのリード要求をコントローラ40に提供したり、分割された符号化対象データに対するリード要求を2回以上コントローラ40に提供したりする。
【0053】
ホスト装置60が分割されたデータに対して複数のリード要求を提供する場合、コントローラ40は、リード要求をデータ格納装置10に伝達する。即ち、コントローラ40は、リード要求に応答して第3コマンドを生成し、データ格納装置10に第3コマンドを提供し、データ格納装置10は、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ20の一部を符号化して出力する。データ格納装置10は、第3コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ20の一部を符号化して出力する。データ格納装置10から出力されたデータはコントローラ40を経由してホスト装置60に提供される。
【0054】
ホスト装置60は、リード動作を行う場合、コントローラ40に一つのリード要求を提供し、リードを要求する入力を受けたコントローラ40は、データ格納装置10が分割された符号化対象データを出力するために第3コマンドを2回以上順次に生成したり、データ格納装置10が分割された符号化対象データを出力するために第2コマンド及び第1コマンドを交互に生成したりする。この場合、データ格納装置10は、第3コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ20の一部を符号化して出力する。また、データ格納装置10は、第1コマンドの入力を受ける間に第2コマンドに応答して生成されたモード決定の基礎データに基づいて決定した符号化モードにより符号化対象データの一部を符号化して出力する。
【0055】
図1及び
図2に示すデータ格納装置10は、データ格納装置10に提供された入出力(I/O)端子(pin又はball(図示せず))により第1コマンド及び第2コマンド又は第3コマンドを受ける。その機能により多様な入出力端子がある。例えば、入出力データが送受信されるI/O端子、I/O端子を介して入力されるデータがコマンドであるか、又はアドレスであるか区分するためのコマンドラッチ端子及びアドレスラッチ端子と、I/O端子を介して入出力タイミングを決定するためのリードイネーブルメント端子及びライトイネーブルメント端子などがある。
【0056】
具体的には、コマンドを識別するためのデータはデータ格納装置10に提供されるI/O端子を介して入力される。I/O端子を介して入力されたデータがコマンドであるか否かを決定するために、コマンドラッチターミナル及びアドレスラッチターミナルを介して適切な信号が印加される。同時に、I/O端子を介して入力タイミングを形成するために、ライトイネーブルメント端子を介しても適切な信号が印加される。これについては
図16を参照して詳細に後述する。
【0057】
第1コマンド又は第3コマンドはアドレス関連情報を含み得る。この場合、データ格納装置10は第1又は第3コマンドに伴うアドレスに該当するデータを出力する。
【0058】
本発明の一実施形態によるデータ格納装置10の構成及び動作について
図3を参照してより詳細に説明する。
図3に示すように、データ格納装置10は、メモリ部12、制御部14、及び符号化部16を含む。
【0059】
制御部14は、入力されたコマンドをデコードし、デコードの結果により内部リード信号18及び内部トリガー(trigger)信号19のうちの少なくとも一つを含む信号を出力する。制御部14は、入力されたコマンドをデコードするコマンドデコーダ140を含み、内部リード信号18のみを出力するか、内部リード信号18及び内部トリガー信号19を共に出力するか、又は内部トリガー信号19のみを出力する。本明細書では内部リード信号18のみ出力するコマンドを第1コマンド、内部トリガー信号19のみを出力するコマンドを第2コマンド、内部リード信号18及び内部トリガー信号19を共に出力するコマンドを第3コマンドという。
【0060】
内部リード信号18に応答してメモリ部12が符号化対象データ20の一部を出力する。データ格納装置10は、符号化対象データ20の一部又は分割された符号化対象データを2回以上出力することができ、データを分割して出力する間に符号化部16の符号化モードを1回以上転換する。
【0061】
メモリ部12は、制御部14から内部リード信号18の提供を受けて符号化対象データ20の一部を符号化部16に出力する。
【0062】
メモリ部12は、フラッシュメモリセルの集合であるセルアレイで構成される。セルアレイは多様なタイプのメモリセルを含み得る。例えば、セルアレイはNANDフラッシュメモリセル又はNORフラッシュメモリセルで構成され、或いはNANDフラッシュメモリセルとNORフラッシュメモリセルが混合した形態で構成される。
【0063】
メモリ部12を構成するセルアレイは2次元又は3次元で形成され得る。
【0064】
メモリ部12の各メモリセルに格納されるデータビット数は多様な形態で構成され得る。例えば、メモリ部12は、セル当たり1ビットのデータが格納されるシングルレベルフラッシュメモリセル(SLC)で構成され得、或いはセル当たり複数ビットのデータが格納されるマルチレベルフラッシュメモリセル(MLC)で構成され得る。また、シングルレベルフラッシュメモリセルとマルチレベルフラッシュメモリセルが混合した形態で構成され得る。
【0065】
メモリ部12の内部には符号化対象データ20が格納される保安領域120が割り当てられている。保安領域120は、特定アドレス領域に割り当てることができ、アドレス領域はセルアレイで特定ブロックに割り当てられたものである。保安領域の割り当ての一例として、
図7にブロック0〜ブロック2が保安領域として割り当てられていることを示す。
【0066】
保安領域120以外の領域に格納されたデータがメモリ部12から提供された場合、符号化部16は、符号化モードがオン状態であっても符号化部をバイパスしたメモリ部12から提供されたデータを出力することができる。従って、保安領域120以外の領域に格納されたデータに対して符号化を要求するコマンドが入力されても、符号化部16はデータを符号化しない場合もある。
【0067】
符号化対象データ20が格納される保安領域120は、SLC(Single Level Cell)で構成され、保安領域120以外の一般領域はMLC(Multi Level Cell)で構成される。
【0068】
また、保安領域120は複数の区域を含み得る。それぞれの区域に格納されるデータは異なるコーディングポリシーが適用され得る。
図7に示すように、例えば、コーディングポリシー1はブロック0に格納されるデータに適用され、コーディングポリシー2はブロック1に格納されるデータに適用され、コーディングポリシー3はブロック2に格納されるデータに適用される。従って、制御部14に入力されたコマンドがコーディングポリシーを示さない場合、制御部14は、符号化対象データ20が格納されたブロックに相応するコーディングポリシーが適用されるように符号化部16にコーディングポリシー変更信号を提供する。例えば、
図7に示すメモリ部12の構成において、符号化対象データ20がブロック2に格納されるものである場合、制御部14は、符号化部16にコーディングポリシー3が適用されるようにコーディングポリシー変更信号を提供する。コーディングポリシーの変更信号を受けた符号化部16の動作については詳細に後述する。
【0069】
コーディングポリシーは特定符号化モードを適用する比率を決定する。例えば、符号化モードAがホスト装置60又はコントローラ40で復元できないように(non−correctable)符号化する符号化モードであり、符号化モードBがホスト装置60又はコントローラ40で復元できる(correctable)ように符号化する符号化モードである場合、符号化モードBを適用する比率を70%にするコーディングポリシーは、ホスト又はコントローラがデータ格納装置10から出力された符号化されたデータ10個のうちの7個を一般的に復元できることを意味する。
【0070】
符号化部16は、符号化モードによりメモリ部12から提供されたデータを符号化して出力する。
【0071】
符号化部16の符号化モードは、データを符号化するために符号化を行うモジュールのうちのどのモジュールを使用するかを、内部的、自律的に決定する。例えば、第1符号化モードでは入力データ中30%のデータを符号化するためのモジュールを使用し、第2符号化モードでは入力データ中70%のデータを符号化するためのモジュールを使用する。これとは異なり、第1符号化モードでは入力データを全て符号化するためのモジュールを使用し、第2符号化モードでは入力データをそのまま出力する場合も想定することができる。即ち、符号化部16の符号化モードは入力されるデータの符号化率を意味する。符号化部16は、内部トリガー信号19に応答して符号化モードを自律的に決定する。内部トリガー信号19も符号化モードを示さない。より詳細には、内部トリガー信号19を受けると、符号化部16は、内部トリガー信号19を開始信号としてモード決定の基礎データを生成する。また、符号化部16は、モード決定の基礎データに基づいてメモリ部から提供されたデータを符号化するために符号化モードを決定する。既に上述したように、内部トリガー信号19は、符号化部16の符号化モードを決定するための開始信号として提供されるのみであり、符号化部16の符号化モード決定に直接には影響を与えない。
【0072】
符号化部16は、ランダムデータ生成方法により自身の符号化モードを自律的に決定する。即ち、符号化部16は、第1内部トリガー信号19に応答してモード決定の基礎データとして第1ランダムデータを生成する。但し、符号化対象データが特定コーディングポリシーに符合するように符号化しなければならないため、符号化部16は、要求される(又は予め定められた)確率で第1ランダムデータを生成する。例えば、第1符号化モードを示す「0」と第2符号化モードを示す「1」のうちの一つの値がランダムに生成されるが、「0」が生成される確率が70%になるようにランダムデータ生成器を設定することができる。特定確率を決める間にモード決定の基礎データがランダムに生成される場合、符号化対象データの符号化出力パターンがランダムに変わる間、データ符号化率と関連するコーディングポリシーと遭遇する。即ち、モード決定データのデータパターンはコーディングポリシーによりランダムに変わるため、符号化出力パターンもランダムに変わる。
【0073】
符号化部16は、選択した符号化モードにより第2ランダムデータを更に生成することができる。第2ランダムデータはメモリ部12から提供されたデータを符号化することに使用される。例えば、符号化部16は、メモリ部12から提供されたデータを符号化するための第2ランダムデータと共に論理演算して符号化データを出力する。論理演算は、例えば、排他的なOR演算、論理演算の組合せなどである。複数の内部リード信号に応答して符号化部16から出力される複数のデータフラグメントは符号化対象データ20の符号化データ30を構成する。
【0074】
本実施形態のデータ格納装置10は、第2コマンド又は第3コマンドを2回以上入力することで出力されるデータの符号化をコーディングポリシーにより異なるようにすることができる。
図4を参照してこれを詳細に説明する。
【0075】
符号化対象データ20は10回に分けてリードされ、第3コマンドは一定の間隔でデータ格納装置10に入力されると仮定する。またホスト装置60又はコントローラ40の復元できる限界符号化率が40%であると仮定する。復元できる限界符号化率は、例えばエラー修正コード(ECC)を利用して復元できる符号化データの最大符号化率を意味する。
【0076】
符号化モードがA−モードである場合、20%のデータを符号化する符号化モジュールを使用し、符号化モードがB−モードである場合、80%のデータを符号化する符号化モジュールを使用すると仮定する。即ち、A−モードで符号化されて出力されるデータは復元できるデータであり、B−モードで符号化されて出力されるデータは復元できないノイズデータである。また、第3コマンドが入力される場合、コーディングポリシーによりA−モードが選択される確率は70%であると仮定する。
【0077】
この場合、
図4の右側に示すように、符号化パターンはROUND毎に異なって見えるが、復元できる符号化データが出力される確率は70%に維持される。符号化モードの決定は符号化部16で生成された第1ランダムデータに依存するため、この前提の環境で復元できる符号化データが出力される確率は70%とは多少異なることもある。しかし、このような誤差はROUNDを多数実行することによって解消される。また、ランダム数字の生成は復元できる符号化モードが少なくとも1回〜最大選択回数以内で選択されるように設定することができる。即ち、数字生成はデータパターンが少なくとも1回〜最大選択回数以内で復元できる符号化モードを指示するように符号化パターンに符合するデータパターンを生成する。最大数字はコーディングポリシーと符合する。例えば、コーディングポリシーが70%であれば、復元できる符号化モードにより符号化されるのは10回のうち7回以下である。
【0078】
図4に示す符号化対象データ20は、10個に分けられた領域にいずれも同一のデータが含まれている。即ち、符号化対象データ20は、2以上の同一のデータフラグメントが連結されて形成されたものであり、データ格納装置10は、符号化対象データ20のフラグメントを出力する。
【0079】
複数の同一のデータフラグメントが連結されて符号化対象データ20が形成された場合、データ格納装置10は、同一のデータフラグメントを複数回符号化して出力する。この場合、コーディングポリシーと符号化モードは、データフラグメントが出力される前に決定され、データフラグメントは、決定した符号化モードにより符号化されて出力される。データフラグメントの符号化パターンもROUND毎に異なる場合もあるが、復元できる符号化データフラグメントの比率は各ROUNDで同一に決定される。
【0080】
図4に示すものとは異なり、一実施形態として、データ格納装置10は、符号化対象データを同一アドレスによってアクセス可能な同一領域に格納することができる。この場合、データ格納装置10は、第3コマンドを複数回受けることができる。符号化対象データは、符号化部16で生成されたモード決定の基礎データに基づいて選択された符号化モードにより符号化される。しかし、符号化モードは、符号化対象データが出力される度に決定されるため、同一領域に格納された符号化対象データが出力されても、データ格納装置10は、符号化モードにより異なる符号化データを出力することができる。
【0081】
再び
図4を参照すると、符号化対象データ20を複数回出力するデータ格納装置10は、符号化対象データ20の出力回数だけコマンドの入力を受ける。例えば、符号化対象データ20が10回出力される場合、データ格納装置10は、第1コマンド及び第2コマンドの両方の入力を10回受けるか、又は第3コマンドの入力を10回受ける。
【0082】
一方、データ格納装置10は、第3コマンドの入力を1回受けることで複数回の符号化対象データ20を出力することができる。このため、第3コマンドの入力を受けた制御部14は、符号化対象データ20を全て出力するために、内部リード信号18及び内部トリガー信号19を符号化対象データ20の出力回数だけメモリ部12及び符号化部16にそれぞれ提供する。
【0083】
上述したように、本実施形態によるデータ格納装置10で、符号化パターンは、復元できる符号化データが出力される確率を維持し、毎回ランダムに変わる。従って、保安を維持しつつ符号化データを復元してデータ格納装置10からデータをリードすることができる。
【0084】
符号化部16は、上述したように二つ以上の符号化モードを有することができる。しかし、理解を高めるため、符号化部16が二つの符号化モードを有する場合を例に説明する。
【0085】
図3に示すように、符号化部16は、符号化モードによりメモリ部12から提供されたデータを処理する符号化器168、及び内部トリガー信号19に応答してモード決定の基礎データを生成してモード決定の基礎データに基づいて符号化モードを決定し、符号化器168を決定した符号化モードで動作させるために、符号化器制御信号を符号化器168に提供する符号化決定部160を含む。
【0086】
符号化決定部160は、内部トリガー信号19を受ける度に符号化器の制御信号を符号化器168に提供する。これとは異なり、符号化決定部160は、自律的に決定した符号化モードが符号化器168の現在の符号化モードと異なる場合に限り、符号化モードを変換するために、符号化器168に符号化器制御信号を提供することができる。即ち、符号化決定部160は、符号化器168の符号化モード変更が必要な場合にのみ符号化器168に符号化器制御信号を提供する。この場合、符号化器168は、最小限の制御信号を受けるため、動作効率が改善される。
【0087】
図5を参照して符号化決定部160の構成及び動作について詳細に説明する。符号化決定部160は、データ格納装置10に電源が印加された後、コーディングポリシーリスト格納部163からコーディングポリシーに対するデータをロードするコーディングポリシーリストロード部164を含む。また、符号化決定部160は、内部トリガー信号19が入力されたときに符号化モードを自律的に決定するための符号化モード決定器161、及び符号化モード決定器161により決定された符号化モードで符号化器168を制御するために、符号化器制御信号を生成する符号化器制御信号生成器162を含む。
【0088】
コーディングポリシーリストロード部164は、コーディングポリシーリスト格納部163からコーディングポリシーに対するデータをロードする。コーディングポリシーリストロード部164は、データ格納装置10に電源が印加された後、ロード作業を行う。これとは異なり、コーディングポリシーリストロード部164は、データ格納装置10に電源が印加された後、ホスト装置又はコントローラから入力された特定コマンドに応答してロード作業を行うことができる。コーディングポリシーリストロード部164は、ロードされたデータを格納するために非揮発性格納手段であるレジスターを含み得る。
【0089】
図6に本発明の一実施形態によるコーディングポリシーリストを示す。コーディングポリシーは、一つのみ、又は二つ以上あり、その中から一つを選択して適用することもできる。コーディングポリシーが二つ以上ある場合、データ格納装置10は、コントローラ40又はホスト装置60により指定されたコーディングポリシーを使用するか又はコーディングポリシーを自律的に決定する。
【0090】
図6は、コーディングポリシーのうちの一つが選択されて使用される場合の例を示す図である。例えば、コーディングポリシー1が選択された場合、復元できる符号化率は40%である。符号化決定部160が内部トリガー信号19を10回受けると、復元できるようにデータを符号化する符号化モジュールは約4回選択される。
【0091】
符号化部16に適用されるコーディングポリシーを変更するため、データ格納装置10は、コーディングポリシーの設定に関連するコマンドの入力を受ける。即ち、この場合、制御部14は、入力されたコマンドをデコードし、デコードの結果に応じて内部リード信号、内部トリガー信号、及びコーディングポリシー変更信号のうちの少なくとも一つを出力する。また、符号化部16は、制御部14からコーディングポリシー変更信号を受けてコーディングポリシーを変更する。
【0092】
即ち、データ格納装置10に電源が印加された後、コーディングポリシーリストがロードされ、外部コマンドは、コーディングポリシーリストに含まれたコーディングポリシーのうちの一つを設定するために入力される。その次に、符号化部16は、設定されたコーディングポリシーの復元できる符号化率に基づいてモード決定の基礎データを生成する。
【0093】
図5に示すように、コーディングポリシーリスト格納部163は、符号化決定部160の外部に別途設けられる。例えば、コーディングポリシーリスト格納部163は、メモリ部12の特定ブロックであるeFUSE(電子ヒューズ)ブロックであり得る。また、コーディングポリシーリスト格納部163は、データ格納装置10内でメモリ部12から分離しているeFUSEブロックであり得る。データ格納装置10に電源が印加された後、eFUSEブロックに格納されたコーディングポリシーデータに対して初期リード動作が行われる。初期リード動作によるコーディングポリシーデータリードはコーディングポリシーリストロード部164によってロードされる。
【0094】
eFUSEブロック内に格納されたデータはeFUSEデータロードモードで更新が可能であるため、コーディングポリシーデータもまた更新され得る。即ち、コーディングポリシーリスト格納部163は、プログラマブル装置であり得、コーディングポリシー格納部163内に格納されたコーディングポリシーはユーザの入力に基づいてプログラミングすることができる。
【0095】
内部トリガー信号19が入力されると、符号化モード決定器161は、設定されたコーディングポリシーによる比率に基づいてランダムデータを生成するランダムデータ生成器165を活性化させる。即ち、ランダムデータ生成器165は、復元できるように符号化する符号化モード指示値がコーディングポリシーによって定義された比率で生成されるようにランダムデータを生成する。ランダムデータ生成器165は、内部トリガー信号19が1回入力されると、モード決定の基礎データを1回生成する。ランダムデータ生成器165は、ランダム数字生成のアルゴリズムなどでプログラミングされたプロセッサなどのようにハードウェア装備である。
【0096】
符号化モードA及び符号化モードBがある場合、符号化モードAと符号化モードBのうちの一つが選択される。例えば、「0」が生成されると、符号化モードAが選択され、「1」が生成されると、符号化モードBが選択される。
【0097】
次に、符号化器制御信号生成器162は、モード決定の基礎データにより符号化器168を制御するために、符号化器制御信号を生成して出力する。
【0098】
符号化決定部160がランダムデータ生成によって符号化器の符号化モードを決定する方式について追加して説明する。
【0099】
上述したように、コーディングポリシーに基づいてモード決定の基礎データを生成することは、復元できるようにデータを符号化する符号化モード指示値が特定確率で生成されるようにランダムデータを生成することである。符号化決定部160によって生成されたランダムデータは説明の便宜上「第1ランダムデータ」と称する。
【0100】
符号化決定部160が同一の間隔、同一の回数で内部トリガー信号19を受けても、符号化器168の符号化モードを決定するために使用されるデータは第1ランダムデータである。従って、ランダムデータ生成の属性上、特定アドレスで格納された特定データが復元できるように符号化されたか否かは毎回リード動作毎に変わる。即ち、データ格納装置10から出力される復元できるように符号化されたデータ領域は毎回リード動作毎に変わる。言い換えると、データ格納装置10内の特定領域に格納された特定データの出力データは毎回リード動作毎に変わるため、ハッカーによっていずれのデータが復元できるデータであるか把握され難い。従って、本実施形態のデータ格納装置10において、符号化決定部160は、第1ランダムデータに基づいて符号化器168の符号化モードを決定するために、符号化対象データ20のうちの復元できるように符号化される領域の位置を変えることが可能である。
【0101】
第1ランダムデータを生成するランダムデータ生成器165は、特定データ(例えば、特定符号化モードを示す)の生成確率をプログラミングできるようにプログラミングすることができる。
【0102】
以下、
図8〜
図13を参照して符号化器168の構成について説明する。
【0103】
先ず、符号化器168は、メモリ部12から提供されたデータを符号化する複数の符号化モジュールを含み得る。
図8は、2個の符号化モジュール169、170を含む符号化器168の一例を示す図である。メモリ部12から出力されたデータは2個の符号化モジュール169、170に提供される。符号化決定部160から提供された符号化器制御信号により2個の符号化モジュール169、170のうちの一つのみがONになる。その次に、ONなった符号化モジュールから提供された符号化データがMUX171を介して出力される。この場合、符号化モジュールは、入力データを異なる符号化率で符号化する。符号化モジュール169、170のそれぞれの符号化率はユーザの入力に基づいてプログラミングされる。即ち、ユーザは一つ以上の符号化モジュール169、170が有する符号化率を異なるようにすることができる。また、符号化器168は、符号化モジュール169、170のうちの選択されない符号化モジュールの電源が遮断されるように構成される。
図8で、MUX171が符号化モジュールの後に位置しているが、MUX171は、メモリ部12と符号化モジュールとの間に位置し得る。
【0104】
複数の符号化モジュールは、ホスト装置又はコントローラの復元できる限界符号化率以下の比率により入力データを符号化する一つ以上のAタイプ符号化モジュール、及び復元できる限界符号化率超過の比率により入力データを符号化する一つ以上のBタイプ符号化モジュールを含み得る。例えば、ホスト装置又はコントローラの復元できる限界符号化率が30%である場合、符号化モジュール169は、データの20%を符号化するAタイプ符号化モジュールであり得、符号化モジュール170は、データの70%を符号化するBタイプ符号化モジュールであり得る。
【0105】
即ち、
図8に示す符号化器168は、符号化決定部160の制御により、Aタイプ符号化モジュール及びBタイプ符号化モジュールのうちの一つの符号化モジュールを利用してデータを符号化して出力する。
【0106】
図9は、符号化決定部160の制御により、メモリ部12から提供されるデータを符号化したり、そのままデータを出力したりする符号化器168を示す図である。
図9に示す符号化器168は、入力データを符号化するための符号化モジュール172、及びメモリ部12から提供されるデータをMUX171にそのまま出力するバイパスバス173を含む。符号化器168は、決定した符号化モードによる符号化決定部160の制御によって符号化モジュール172及びバイパスバス173のうちの一つを活性化させる。例えば、符号化モジュール172は、メモリ部12から提供されるデータを符号化する。符号化モジュール172の符号化率は復元できる限界符号化率を超過する範囲内で多様に設定される。符号化モジュール172の符号化率はユーザの入力に基づいてプログラミングされる。即ち、ユーザは符号化モジュール172の符号化率を異なるようにすることができる。また符号化器168は、符号化モジュール172が選択されない場合に符号化モジュール172の電源が遮断されるように構成される。
【0107】
図9に示す符号化器168は、符号化決定部160の制御によってメモリ部12から提供されるデータを符号化するか又は符号化せずに符号化器168をそのまま通過するデータを出力する。
【0108】
図9でMUX171は、符号化モジュール172の後に位置しているが、MUX171はメモリ部12と符号化モジュール172との間に位置し得る。
【0109】
一方、符号化器168は、複数の符号化モジュールの代りに一つのプログラマブル符号化モジュールを備えることができる。
図10は、符号化器168がプログラマブル符号化モジュール174を有する一例を示す図である。プログラマブル符号化モジュール174は、入力データの符号化率を設定する。
【0110】
図10に示す符号化器168は、決定した符号化モードによる符号化決定部160の制御によりプログラマブル符号化モジュール174の符号化率を設定する。また
図10に示す符号化器168は、復元できるようにデータを符号化する符号化モードと復元できないようにデータを符号化する符号化モードとの間で符号化モードをスイッチングすることができる。即ち、符号化器168は、第1符号化モードで復元できる限界符号化率以下の第1符号化率でプログラマブル符号化モジュール174の符号化率を設定することができ、又は符号化器168は、第2符号化モードで復元できる限界符号化率超過の第2符号化率でプログラマブル符号化モジュール174の符号化率を設定することができる。符号化器168は、プログラマブル符号化モジュール174で使用されるプログラミング比率を設定するために、ユーザプログラマブルであり得る。プログラマブル比率を設定するのは、異なる符号化モード生成するためである。
【0111】
一実施形態として、符号化器168は、複数の符号化モジュール169、170の代わりに複数のランダムデータ生成器を備える。
図11は、2個のランダムデータ生成器175、176を備える符号化器168の一例を示す図である。2個のランダムデータ生成器175、176のうちの一つのみが符号化決定部160から提供される符号化器制御信号によりONになる。その次に、符号化器168は、ONになったランダムデータ生成器から提供されたデータをメモリ部12から提供されたデータと論理演算180した結果を出力する。複数のランダムデータ生成器は、論理演算を行った後にメモリ部12から被演算子維持データを生成する確率が異なる。論理演算はAND、OR、XOR、NOR、NAND演算、又はこれらの組合せなどを含み得る。
【0112】
被演算子維持データは、論理演算を行った後にメモリ部12から受けたデータ値をそのまま有するデータを意味する。例えば、被演算子維持データが「E」であり、論理演算がXORであれば、全ての被演算子Aに対して「A XOR E = A」である。
【0113】
即ち、ON状態でランダムデータ生成器175、176のうちの一つの被演算子維持データ生成確率がXパーセントである場合、符号化器168から出力されたデータ中Xパーセントはメモリ部12からの元データと同じであり得、(100−X)パーセントはメモリ部12からの元データと異なることになる。従って、論理演算180に関する被演算子維持データ生成確率は符号化率と関連することがわかる。ランダムデータ生成器175、176のそれぞれによって生成された符号化率はユーザ入力に基づいてプログラミングすることができる。即ち、ユーザは一つ以上のランダムデータ生成器175、176により生成される符号化率を多様に設定することができる。
【0114】
複数のランダムデータ生成器は、復元できる限界符号化率超過の比率で入力データから被演算子維持データを生成する一つ以上のAタイプのランダムデータ生成器、及び復元できる限界符号化率以下の比率で入力データから被演算子維持データを生成する一つ以上のBタイプのランダムデータ生成器を含む。即ち、複数のランダムデータ生成器は復元できるように符号化するAタイプ及び復元できないように符号化するBタイプに分けられる。
【0115】
図12に示すように、符号化器168は、Aタイプのランダムデータ生成器175及び被演算子維持データ出力器178を含み得る。決定した符号化モードによる符号化決定部160の制御下で、符号化器168は、メモリ部12から提供されたデータをAタイプのランダムデータ生成器175及び被演算子維持データ出力器178のうちの一つから提供されたデータと論理演算して論理演算した結果を出力する。
図12に示す符号化器168は、メモリ部12から提供されたデータを符号化したり、
図9に示す符号化器168と同様に符号化決定部160の制御によりデータをそのまま出力したりする。これとは異なり、
図12の符号化器168は、被演算子維持データ出力器178を有する代りに論理演算を行わずにメモリ部12からデータが出力されるようにバイパスバスを有することができる。ランダムデータ生成器175は、特定符号化モード又は符号化量を生成するランダムデータを生成するようにユーザがプログラミングすることができる。また、ランダムデータ生成器175は、選択されない場合には電源が遮断される。
【0116】
図13に示すように、符号化器168は、特定論理演算に関する被演算子維持データ生成確率を設定できるプログラマブルランダムデータ生成部179を含み得る。符号化器168は、決定した符号化モードによりプログラマブルランダムデータ生成部179の被演算子維持データ生成確率を設定することができ、メモリ部12から提供されたデータをプログラマブルランダムデータ生成部179から提供されたデータと特定論理演算180した結果を出力する。
【0117】
図13に示す符号化器168は、
図10に示す符号化器168と同様に、復元できるようにデータを符号化する符号化モード及び復元できないようにデータを符号化する符号化モードとの間でスイッチングする。即ち、符号化器168は、第1符号化モードで復元できる限界符号化率超過の第1符号化率でプログラマブルランダムデータ生成部の被演算子維持データ生成確率を設定し、第2符号化モードで復元できる限界符号化率以下の第2符号化率でプログラマブルランダムデータ生成部の被演算子維持データ生成確率を設定する。符号化器168は、異なる符号化モードにするために、プログラマブルランダムデータ生成部179の構成に使用されるプログラミング比率を設定するためのユーザプログラマブルである。
【0118】
図8〜
図13に示す符号化器168は、一例として示すものであり、符号化器168は所望する(又は予め定められた)スクランブルロジック回路として実現することができる。
【0119】
本実施形態によるデータ格納装置10は、符号化対象データ20の出力のために第1コマンド及び第2コマンドの入力を交互に受ける。この場合、データ格納装置10は、要求される(又は予め定められた)データサイズ毎に第2コマンドであるトリガーコマンドの入力を受けるか、又は全ての符号化対象データ20を出力するために要求される(又は予め定められた)回数だけの第2コマンドの入力を受ける。
【0120】
本実施形態のデータ格納装置10は、符号化対象データ20を出力するために2回以上第3コマンドの入力を受ける。この場合、データ格納装置10は、要求される(又は予め定められた)サイズのデータ毎に第3コマンドの入力を受け、全ての符号化対象データ20を出力するためにトリガー回数と同一になるように要求される(又は予め定められた)回数の第3コマンドの入力を受ける。
【0121】
以下、符号化対象データ20の一部を出力するために第1コマンド及び第2コマンドの入力を交互に受けるデータ格納装置10の動作を、
図14〜
図18を参照して詳細に説明する。
【0122】
第1コマンド及び第2コマンドを再び説明すると、第1コマンドは、制御部14によりデコードされ、内部リード信号18の形態でメモリ部12に伝達される。この点で従来のリードコマンドと類似する。第2コマンドは、制御部14によりデコードされ、内部トリガー信号19の形態で符号化部16に伝達される。
【0123】
データ格納装置10、特に制御部14は、第1コマンド及び第2コマンドの入力を交互に受ける。即ち、第1コマンドが入力された後、第2コマンドが入力され、第2コマンド入力された後、第1コマンドが入力される。しかし、制御部14は、符号化対象データ20が出力される間の最後に第1コマンドの入力を受けることが好ましい。最後のコマンドが第2コマンドである場合、これ以上の残余出力データがないため、第2コマンド入力は意味がないからである。
【0124】
制御部14は、最初に第2コマンドの入力を受けることができる。例えば、制御部14は、第2コマンド、第1コマンド、第2コマンド、第1コマンドの順に交互に入力を受ける。制御部14は、最初に第1コマンドの入力を受けることもできる。例えば、制御部14は、第1コマンド、第2コマンド、第1コマンドの順に交互に入力を受ける。
【0125】
整理すると、符号化対象データ20が出力される間、制御部14は、第2コマンド又は第1コマンドが最初のコマンドになるように第2コマンド及び第1コマンドの入力を交互に受けることができ、第1コマンドが最後のコマンドであることが好ましい。
図14は、第1コマンド(READ)及び第2コマンド(TR)の入力を交互に受けるデータ格納装置10の動作について説明するためのタイミング図である。
【0126】
第2コマンド604は、直前の第1コマンド602によるデータ出力622が完了した後、I/Oピンを介して入力される。制御部14は、第2コマンド604の入力に応答し、符号化部16に内部トリガー信号19を提供し、符号化部16は、次の第1コマンドが入力されると、次の符号化のための第1ランダムデータにより符号化部16の符号化モードを自律的に決定する。ここで、自律的に決定する際に、符号化部16が符号化部16の符号化モードスイッチングが必要であると決定した場合、内部トリガー信号19を受けた後にスイッチングを完了することに要求される時間をtSW606aと記載する。
【0127】
上述したように、符号化部16は、第2コマンド604が入力されてもモード決定の基礎データにより符号化モードがスイッチングされないこともある。
図14で、符号化部16で一番目の第2コマンド604の入力後には符号化モードがスイッチングされたが、二番目の第2コマンド604の入力後には符号化モードがスイッチングされない。
【0128】
図15に示すように、第1コマンド602は2個のサイクルを有する。即ち、第1コマンド602は、リード開始コマンド「00h」及びリード終了(confirm)コマンド「30h」を含み得る。また、出力対象データのアドレス情報はリード開始コマンドとリード終了コマンドとの間に含まれる。第1コマンド602の入力に応答してデータ格納装置10から出力されるデータは、リードイネーブルメント(RE)ピンの信号がトグル(toggle)されることによりそのアドレスが増加する。
【0129】
図16は、本発明の一実施形態による第1コマンド(READ)及び第2コマンド(TR)の入力を交互に受けるデータ格納装置10で符号化部のスイッチング動作の最大許容時間を説明するためのタイミング図である。
【0130】
データ格納装置10のI/Oピンに入力されたコマンドは、ライトイネーブルメント(WE)ピンに印加された信号が高く移動するときにラッチ(latch)される。フラッシュメモリチップに定められている通り、ライトイネーブルメント(WE)ピンに印加された信号が高く移動するときI/Oピンに入力されたデータのタイプは、コマンドラッチピン(CMD)及びアドレスラッチピン(ALE)に印加された信号状態により把握することができる。
【0131】
図16に示すように、直前の第1コマンドの入力に応答してデータ出力が完了した後、I/Oピンに入力された第2コマンドは、WE信号(S700)の立ち上がりエッジ(Rising edge)で入力される。この場合、制御部14の内部トリガー信号19を符号化部16に提供する(S701)。次に、WE信号の立ち上がりエッジ(S702、S704、及びS706)によりコマンド「00h」、「address」、「30h」命令がフラッシュメモリチップに定められたタイミングにより順次に入力される。次に、第1コマンド602によるデータ出力が行われる。第2コマンド604の入力後、次の第1コマンド602の入力に応答してデータ出力がなされる前に符号化部16のスイッチング動作が行われることが好ましい。即ち、tSW606aの最大許容期間(MAX tSW)はS700時点からS708時点に至る。
【0132】
図16に示すように、符号化部16のスイッチングが行われるための充分な時間が確保されることが分かる。
【0133】
図17は、本発明の一実施形態による符号化対象データを同一サイズに分割した第1コマンド(READ)及び第2コマンド(TR)の入力を交互に受けるデータ格納装置10の動作について説明するためのタイミング図である。
【0134】
図17に示すように、第1コマンドによりメモリ部12から出力される各符号化対象のデータフラグメント(620、622、624、626)のサイズは同一である。勿論、最後の第1コマンド602によりメモリ部12から出力される符号化対象のデータフラグメントは、既に出力されて残ったデータのみが出力されるため、他の符号化対象のデータフラグメントのサイズと異なることがある。
【0135】
即ち、第2コマンド604は一定のアドレス間隔で入力される。1番目の第2コマンドが入力される(S900)ときには符号化部16がオフ−状態からオン−状態にスイッチングされるが、2番目の第2コマンド(S902)及び3番目の第2コマンドが入力される(S904)ときには符号化部16がスイッチングされず、4番目の第2コマンドが入力される(S906)ときには符号化部16が再びスイッチングされることが分かる。既に説明したように、同一の符号化対象データ20の再リード要求によりデータが再出力される場合、
図17と異なるように符号化部16の符号化モードスイッチングが行われる。
【0136】
図18に示すように、データ格納装置10は、第2コマンド604及び符号化対象データ20を同一ではないサイズに分割した第1コマンド602の入力を交互に受ける。第1コマンド602によりメモリ部12から出力される各符号化対象のデータフラグメント(630、632、634)のサイズはそれぞれ異なる。
図18は、一番目の第2コマンドが入力されるとき(S910)、二番目の第2コマンドが入力されるとき(S914)、及び三番目の第2コマンドが入力されるとき(S914)のいずれも符号化部16の符号化モードがスイッチングされていることを示す。
図18に示す符号化モードスイッチングケースは、符号化部16の符号化モードを自律的に決定した結果により毎回異なる。
【0137】
上述したように、データ格納装置10は、第2コマンド又は第3コマンドの入力を受けて符号化部16の符号化モードをスイッチングすることもでき、しないこともできる。しかし、符号化部16の符号化モードをスイッチングするためには、第2コマンド又は第3コマンドの入力を受けなければならない。また、データ格納装置10は、ホスト装置60から入力されたリード要求によりデータが出力される間に少なくとも一度は符号化部16の符号化モードをスイッチングする。上記で言及した動作を行うことによって少なくとも一つの実施形態によるデータ格納装置10は、符号化データ出力機能を実行することができる。また、外部から入力される第2コマンド又は第3コマンドによって符号化モードの間のスイッチングが行われる。従って、一部データが非正常的に符号化されるか又は符号化モードの間のスイッチングの遅延により非符号化されて出力される問題を防止することができる。
【0138】
以下、一つの符号化対象データ20の出力のために第3コマンドの入力を2回以上受けるデータ格納装置10の動作について
図19及び
図20を参照して説明する。
【0139】
制御部14が第3コマンド606の入力を受けて内部リード信号18及び内部トリガー信号19を出力するため、第3コマンド606は第1コマンド602及び第2コマンド604が一つに併合したコマンドとして理解することができる。
【0140】
図19は、第3コマンド606がアドレス情報を含まない場合を示す。データ格納装置10は、アドレス情報が第3コマンドに含まれなくても符号化対象データ20を分割して出力するため、第3コマンド606の入力に応答して要求される(又は予め定められた)サイズを有するデータを出力するように作動する。これとは異なり、データ格納装置10は、次の第3コマンド606の入力を受けると、第3コマンド606の入力に応答して直前の出力の終了時点からデータ出力を再開するように作動することができ、一時的にデータ出力を停止するように作動することもできる。
【0141】
データ格納装置10は、第3コマンドの入力を受けて符号化部16の符号化モードを決定してメモリ部12からデータが出力されるように準備する動作を行う。メモリ部12から実際にデータが出力される時点はリードイネーブルメント(RE)ピンの信号がトグル(toggle)される時点である(
図16を参照)。
【0142】
従って、第3コマンド606の入力に応答して内部トリガー信号19が符号化部16に伝達される時点と、第3コマンド606の入力に応答してデータがメモリ部12から出力される時点との間には時間差が存在する。従って、符号化部16は、内部トリガー信号19の提供により自律的に決定した符号化モードへの変更を、内部トリガー信号19と同時に提供された内部リード信号18の提供によるメモリ部からのデータ出力時点の以前に完了すると、第3コマンド606の入力を受けて決定された符号化部16の符号化モードにより符号化されるか又は符号化されないデータ出力を支援することができる。
【0143】
図20は、
図19に示すものとは異なり、第3コマンド606の入力を受けた後、出力されるデータのアドレスが別途に入力される場合を示す。コマンドとアドレスの入力は、コマンドラッチ端子及びアドレスラッチ端子に印加された信号状態によって区別される。この場合、データ格納装置10は、第3コマンド606の入力を受けた後、別途に入力されたアドレス情報に符合するデータのみを出力する。
【0144】
データ格納システムは、例えばメモリカードのようなカードである。具体的には、本実施形態のデータ格納システムは、例えば携帯電話機、双方向ラジオ通信システム(two−way communication system)、単方向ポケットベル(one−way pager)、双方向ポケットベル(two−way pager)、パーソナルコミュニケーションシステム(personal communication system)、携帯用のコンピュータ(portable computer)、携帯情報端末(PDA:Personal Data Assistance)、オーディオ及び/又はビデオプレーヤ、デジタル及び/又はビデオカメラ、ナビゲーションシステム(navigation system)、GPS(Global Positioning System)などの電子装置に使用される所定の業界標準(industry standard)を充足するカードである。しかし、これらに限定されるものではなく、本実施形態によるデータ格納システムは、例えばメモリスティック(stick)のような多様な形態で実現される。
【0145】
先ず、
図21を参照して本発明の一実施形態によるデータ格納システム50の動作について説明する。
【0146】
本実施形態のデータ格納システム50のコントローラ40は、符号化対象データ20のうちの一部に対するリードを要求する入力を受けて第3コマンド606を生成する。リード要求は符号化対象データ20のうちの一部に対するものであるため、符号化対象データ20の全てを出力するために、コントローラ40は、リード要求を2回以上受けなければならない。データ格納装置10は、第3コマンド606の入力に応答して出力されるデータの符号化に関連するモード決定の基礎データを生成する。次に、データ格納装置10は、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ20の一部を符号化して出力する。第3コマンド606によるデータ格納装置10の動作については上述したので重複する説明は省略する。
【0147】
リード要求にトリガータイプが含まれる場合、トリガータイプが含まれた第3コマンド606を生成することができる。この場合、上記で説明したように、データ格納装置10は、トリガータイプに符合するコーディングポリシーにより第3コマンド606の入力に応答してデータを符号化することを自律的に決定する。トリガータイプがリード要求を含まなくても、コントローラ40は、符号化対象データ20の格納位置により決定されるトリガータイプを第3コマンド606に含めることができる。
【0148】
以下、
図22及び
図23を参照して本発明の他の実施形態によるデータ格納システム50の動作について説明する。
【0149】
本実施形態よるデータ格納システム50は、符号化対象データ20を全て出力するためにコントローラ40に要求されるリード要求が一つのみである点で
図21に示すデータ格納システムとは異なる。
【0150】
先ず、
図22に示すデータ格納システム50で、コントローラ40は、リードを要求する入力を1回受けて、分割された符号化対象データを出力するために第3コマンド606を2回以上順次に出力する。例えば、
図22に示すように、それぞれの出力範囲が分割された第3コマンド606は、10KB(Kilo Byte)だけのデータをそれぞれ出力するようにするものである。出力範囲が分割された第3コマンド606の入力を受けたデータ格納装置10が符号化対象データ20のフラグメントを出力することにおいて、符号化モードを自律的に決定して決定結果により符号化して出力する点については上述した。
【0151】
データ格納装置10がデータ符号化するか否かを自律的に決定する際に適用するコーディングポリシー情報はリード要求を含み得る。また、コントローラ40は、リード要求と別途にコーディングポリシーを設定又は変更するためにデータ格納装置10にコーディングポリシー変更のためのコマンドを提供することができる。
【0152】
コーディングポリシーがリード要求に含まれなくても、コーディングポリシーは、符号化対象データ20の格納領域により決定され(S40)、符号化対象データは、決定されたコーディングポリシーにより符号化される。
図22に示すように、符号化対象データ20が、タイプ1のコーディングポリシーが適用される領域に格納された場合、コントローラ40は、リード要求がコーディングポリシーに対する情報を含まなくてもコーディングポリシーをタイプ1と決定することができる。
【0153】
次に、
図23に示すデータ格納システム50で、コントローラ40は、符号化対象データに対するリードを要求する入力を受けて第2コマンド及び符号化対象データの出力範囲が分割された第1コマンドを交互に出力する。
【0154】
図23に示すように、コントローラ40は、リードを要求する入力を受けて符号化対象データ20の出力範囲が10KBずつ分割された第1コマンド602及び第2コマンド604を交互に出力する。
【0155】
出力範囲が分割された第1コマンド602及び第2コマンド604の入力を交互に受ける場合、データ格納装置10は、第2コマンド604に応答して符号化モードを自律的に決定し、決定した符号化モードにより符号化対象データ20のフラグメントを符号化して出力する点については上述した。
【0156】
以上、図面を参照しながら本発明の実施形態について詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。