(57)【特許請求の範囲】
【請求項１】
少なくとも一つの入力コマンドをデコードし、該入力コマンドに応答してリード信号及び内部モード決定プロセスの開始を示す開始信号を生成する制御部と、
前記リード信号に応答してデータを出力するメモリ部と、
前記開始信号に応答して符号化モードを自律的に決定又は変更することを含む内部モード決定プロセスを開始し、該決定又は変更した符号化モードに基づいて前記メモリ部から出力される出力データを符号化して符号化データを出力する符号化部と、を備え、
前記符号化データは、それぞれが同一の元データを示す複数のデータフラグメントが連結されて形成された複数の出力データを含み、
前記複数のデータフラグメントは、元データに復元可能な符号化データフラグメント及び元データに復元不可能な符号化データフラグメントを含む複数の符号化データフラグメントセットからなり、
前記複数の出力データのそれぞれは、前記リード信号及び前記開始信号の入力を受ける度に出力され、前記符号化モードに基づく符号化出力データであり、
前記複数の出力データは、前記復元不可能な符号化データフラグメントの割合である最大符号化率がエラー修正コード（ＥＣＣ）を用いて元データに復元可能な限界符号化率以下に設定される出力データを含むことを特徴とするデータ格納装置。
【請求項２】
前記符号化部は、ランダムデータを生成し、該ランダムデータに基づいて前記符号化モードを決定することを特徴とする請求項１に記載のデータ格納装置。
【請求項３】
前記符号化部は、符号化モードセットのうちの特定の符号化モードを選択する確率を示すコーディングポリシーを得て、該コーディングポリシーに基づいて前記ランダムデータを生成することを特徴とする請求項２に記載のデータ格納装置。
【請求項４】
前記符号化部は、前記内部モード決定プロセスによりデータパターンを生成し、該データパターンに基づいて符号化モードを決定することを特徴とする請求項１に記載のデータ格納装置。
【請求項５】
前記符号化部は、符号化モードセットのうちの特定の符号化モードを選択する確率を示すコーディングポリシーを得て、該コーディングポリシーに基づいて前記データパターンを生成することを特徴とする請求項４に記載のデータ格納装置。
【請求項６】
前記符号化部は、符号化モードセットのうちの特定の符号化モードを選択する確率を示すコーディングポリシーを得て、該コーディングポリシーに基づいて前記符号化モードを決定することを特徴とする請求項１に記載のデータ格納装置。
【請求項７】
前記符号化部は、前記少なくとも一つの入力コマンド及び他の入力コマンドに基づいて前記コーディングポリシーを得ることを特徴とする請求項６に記載のデータ格納装置。
【請求項８】
前記符号化部は、前記出力データの前記メモリ部内の格納位置に基づいて前記コーディングポリシーを得ることを特徴とする請求項６に記載のデータ格納装置。
【請求項９】
前記符号化部は、コーディングポリシー格納部からコーディングポリシーのリストをロードし、該リストから前記コーディングポリシーのうちの一つを選択することを特徴とする請求項６に記載のデータ格納装置。
【請求項１０】
前記符号化部は、符号化出力データセットを生成するため、元データを示す複数の出力データを符号化し、該複数の出力データのそれぞれの符号化モードを決定するため、該複数の出力データのそれぞれに対して前記内部モード決定プロセスを実行し、前記符号化モードのそれぞれに基づいて複数の出力データのそれぞれを符号化することを特徴とする請求項１に記載のデータ格納装置。
【請求項１１】
前記符号化部は、同一の元データを示す符号化出力データセットを１セット以上生成することを特徴とする請求項１０に記載のデータ格納装置。
【請求項１２】
前記制御部は、第１入力コマンド及び第２入力コマンドの入力を交互に受け、前記符号化部が前記元データを示す前記複数の出力データの入力を受けて前記複数の出力データを符号化するように、前記第１入力コマンドに応答して前記リード信号を生成し、前記第２入力コマンドに応答して前記開始信号を生成することを特徴とする請求項１０に記載のデータ格納装置。
【請求項１３】
前記複数の出力データのそれぞれは、同一のサイズを有することを特徴とする請求項１２に記載のデータ格納装置。
【請求項１４】
前記複数の出力データのうちの少なくとも一つは、他の前記複数の出力データと異なるサイズを有することを特徴とする請求項１２に記載のデータ格納装置。
【請求項１５】
前記第１コマンドを最初に受けることを特徴とする請求項１２に記載のデータ格納装置。
【請求項１６】
前記第２コマンドを最初に受けることを特徴とする請求項１２に記載のデータ格納装置。
【請求項１７】
前記制御部は、複数の入力コマンドを受け、前記符号化部が前記元データを示す前記複数の出力データの入力を受けて符号化するように、前記複数の入力コマンドのそれぞれに応答して前記リード信号及び前記開始信号を生成することを特徴とする請求項１０に記載のデータ格納装置。
【請求項１８】
前記符号化部は、
第１符号化率で前記出力データを符号化する第１符号化モジュールと、
前記第１符号化率超過の符号化率を有する第２符号化率で出力データを符号化する第２符号化モジュールと、
前記決定した符号化モードに基づいて前記第１符号化モジュール及び前記第２符号化モジュールのうちの一つから符号化データを選択的に出力するセレクタと、を含むことを特徴とする請求項１に記載のデータ格納装置。
【請求項１９】
前記符号化部は、前記決定した符号化モードに基づいて前記第１符号化モジュール及び第２符号化モジュールのうちの一つのみを活性化させることを特徴とする請求項１８に記載のデータ格納装置。
【請求項２０】
前記第１符号化率は、符号化出力データを元の状態にデコードできるようにする比率であり、前記第２符号化率は前記符号化出力データを元の状態にデコードできないようにする比率であることを特徴とする請求項１８に記載のデータ格納装置。
【請求項２１】
前記符号化部は、
第１符号化率によって前記メモリ部からの出力データを符号化する第１符号化モジュールと、
前記決定した符号化モードに基づいて前記第１符号化モジュールからの出力データ及び前記メモリ部からの出力データのうちの一つを選択的に出力するセレクタと、を含むことを特徴とする請求項１に記載のデータ格納装置。
【請求項２２】
前記第１符号化率は、符号化出力データを元の状態にデコードできないようにする比率であることを特徴とする請求項２１に記載のデータ格納装置。
【請求項２３】
前記符号化部は、前記決定した符号化モードに基づいて前記第１符号化モジュールを選択的に非活性化させることを特徴とする請求項２１に記載のデータ格納装置。
【請求項２４】
前記符号化部は、
前記決定した符号化モードに基づく符号化率で前記出力データを符号化するプログラマブル符号化モジュールを含むことを特徴とする請求項１に記載のデータ格納装置。
【請求項２５】
前記符号化部は、
第１ランダムデータを生成する第１ランダムデータ生成器と、
第２ランダムデータを生成する第２ランダムデータ生成器と、
前記決定した符号化モードに基づいて前記第１及び前記第２ランダムデータのうちの一つを選択的符号化データとして選択するセレクタと、
符号化データを生成するために前記出力データと前記選択的符号化データとを論理的に結合する論理演算器と、を含み、
前記第１ランダムデータは、前記第２ランダムデータより更に低い符号化率を発生させることを特徴とする請求項１に記載のデータ格納装置。
【請求項２６】
前記第１ランダムデータが前記符号化データである場合に前記符号化データは元の状態にデコードすることができ、
前記第２ランダムデータが前記符号化データである場合に前記符号化データは元の状態にデコードできないことを特徴とする請求項２５に記載のデータ格納装置。
【請求項２７】
前記符号化部は、前記決定した符号化モードに基づいて前記第１ランダムデータ生成器及び前記第２ランダムデータ生成器のうちの一つのみを活性化させることを特徴とする請求項２５に記載のデータ格納装置。
【請求項２８】
前記符号化部は、
第１ランダムデータを生成する第１ランダムデータ生成器と、
前記第１ランダムデータ及び参照データのうちの一つを選択的符号化データとして選択的に選択するセレクタと、
符号化データを生成するため、前記出力データと前記選択的符号化データとを論理的に結合する論理演算器と、を含み、
前記参照データは、前記第１ランダムデータより更に低い符号化率を発生させることを特徴とする請求項１に記載のデータ格納装置。
【請求項２９】
前記参照データは、前記出力データと論理的に結合する場合に前記出力データを符号化しないことを特徴とする請求項２８に記載のデータ格納装置。
【請求項３０】
前記第１ランダムデータが前記符号化データである場合、前記符号化データは元の状態にデコードできないことを特徴とする請求項２８に記載のデータ格納装置。
【請求項３１】
前記符号化部は、前記決定した符号化モードに基づいて前記第１ランダムデータ生成器を選択的に非活性化させることを特徴とする請求項２８に記載のデータ格納装置。
【請求項３２】
前記符号化部は、
前記符号化データを生成するため、符号化するデータと前記出力データとを論理的に結合する論理演算器と、
前記決定した符号化モードに基づく符号化率で前記出力データが符号化されるように前記符号化データとして使用されるランダムデータを生成するプログラマブルランダムデータ生成器と、を含むことを特徴とする請求項１に記載のデータ格納装置。
【請求項３３】
前記符号化部は、符号化率に基づいて前記出力データを符号化する少なくとも一つの符号化モジュールを含み、
前記符号化率は、プログラミングできることを特徴とする請求項１に記載のデータ格納装置。
【請求項３４】
前記出力データは、前記データ格納装置を認証するための認証データであることを特徴とする請求項１に記載のデータ格納装置。
【請求項３５】
前記メモリ部は、シングルレベルセル（ＳＬＣ）に符号化される元データを格納し、マルチレベルセル（ＭＬＣ）に符号化されない元データを格納することを特徴とする請求項１に記載のデータ格納装置。
【請求項３６】
請求項１２に記載のデータ格納装置と、
複数のリードを要求する入力に応答し、前記第１入力コマンド及び前記第２入力コマンドを交互に生成するコントローラと、を備えることを特徴とするデータ格納システム。
【請求項３７】
請求項１２に記載のデータ格納装置と、
一つのリードを要求する入力に応答し、前記第１入力コマンド及び前記第２入力コマンドを交互に生成するコントローラと、を備えることを特徴とするデータ格納システム。
【請求項３８】
請求項１７に記載のデータ格納装置と、
複数のリードを要求する入力に応答し、前記複数の入力コマンドを生成するコントローラと、を備えることを特徴とするデータ格納システム。
【請求項３９】
請求項１７に記載のデータ格納装置と、
一つのリードを要求する入力に応答し、前記複数の入力コマンドを生成するコントローラと、を備えることを特徴とするデータ格納システム。
【請求項４０】
入力コマンドをデコードし、符号化モードを示さない入力コマンドに応答してリード信号及びトリガー信号を生成する制御部と、
前記リード信号に応答してデータを出力するメモリ部と、
前記トリガー信号に応答して符号化モードを示す指示データを生成し、該指示データに基づいて符号化モードセットのうちの一つの符号化モードを選択し、該選択した符号化モードに基づいて前記メモリ部から出力された出力データを符号化して符号化データを出力する符号化部と、を備え、
前記符号化データは、それぞれが同一の元データを示す複数のデータフラグメントが連結されて形成された複数の出力データを含み、
前記複数のデータフラグメントは、元データに復元可能な符号化データフラグメント及び元データに復元不可能な符号化データフラグメントを含む複数の符号化データフラグメントセットからなり、
前記複数の出力データのそれぞれは、前記リード信号及び前記トリガー信号の入力を受ける度に出力され、前記符号化モードに基づく符号化出力データであり、
前記複数の出力データは、前記復元不可能な符号化データフラグメントの割合である最大符号化率がエラー修正コード（ＥＣＣ）を用いて元データに復元可能な限界符号化率以下に設定される出力データを含むことを特徴とするデータ格納装置。
【請求項４１】
前記トリガー信号は、符号化モードを示さないことを特徴とする請求項４０に記載のデータ格納装置。
【請求項４２】
前記符号化部は、前記トリガー信号に応答して前記符号化モードを自律的に選択することを含む内部モード決定プロセスを開始して実行することを特徴とする請求項４１に記載のデータ格納装置。
【請求項４３】
入力コマンドをデコードし、該入力コマンドに応答してリード信号及びトリガー信号のうちの少なくとも一つを生成する制御部と、
前記リード信号に応答してデータを出力するメモリ部と、
前記トリガー信号に応答して第１ランダムデータを生成し、該第１ランダムデータに基づいて符号化モードセットのうちの一つの符号化モードを自律的に選択し、該選択した符号化モードに基づいて前記メモリ部から出力されたデータを符号化して符号化データを出力する符号化部と、を備え、
前記符号化データは、それぞれが同一の元データを示す複数のデータフラグメントが連結されて形成された複数の出力データを含み、
前記複数のデータフラグメントは、元データに復元可能な符号化データフラグメント及び元データに復元不可能な符号化データフラグメントを含む複数の符号化データフラグメントセットからなり、
前記複数の出力データのそれぞれは、前記リード信号及び前記トリガー信号の入力を受ける度に出力され、前記符号化モードに基づく符号化出力データであり、
前記複数の出力データは、前記復元不可能な符号化データフラグメントの割合である最大符号化率がエラー修正コード（ＥＣＣ）を用いて元データに復元可能な限界符号化率以下に設定される出力データを含むことを特徴とするデータ格納装置。
【請求項４４】
請求項１に記載のデータ格納装置と、
前記入力コマンドを生成し、前記データ格納装置から前記符号化部によって符号化されたデータの入力を受けるホストプロセシング装置と、を備えることを特徴とするコンピュータシステム。
【請求項４５】
請求項１に記載のデータ格納装置と、
アクセスコマンドに応答して前記入力コマンドを生成し、前記データ格納装置から前記符号化データの入力を受けるコントローラと、
前記アクセスコマンドを前記コントローラに送信し、前記コントローラから前記符号化データを受信するホストプロセシング装置と、を備えることを特徴とするコンピュータシステム。
【請求項４６】
請求項１に記載のデータ格納装置と、
前記入力コマンドを生成し、前記符号化データを受信するコントローラと、を備えることを特徴とするデータ格納システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化データの出力機能を備えるデータ格納装置及びシステムに関し、より詳細には、出力されるデータを符号化し、それぞれのデータフラグメントに対して適用する符号化方式をランダムに異なるようにすることによって強化したデータ保安（セキュリティ）機能を提供するデータ格納装置及びシステムに関するものである。
【背景技術】
【０００２】
デジタルデータを格納するための多様なデータ格納装置が提供されている。例えば、ハードディスクドライブ、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ：ＳＳＤ）、多様なメモリカードがある。データ格納装置に格納されているデジタルデータを閲覧が許されていない者によって照会されないようにするため、保安（セキュリティ）領域に格納したデータの場合、符号化した後で出力することによってデータが流出してもデコードし難くするか又は略できないようにする強化したデータ保安技術が要求される。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、データの出力動作中に外部から２回以上の特定コマンドの入力を受けるだけでデータの各フラグメントを異なる方式により符号化して出力する符号化部とこれを含むデータ格納装置及びデータ格納システム並びにコンピュータシステムシステムを提供することにある。
本発明の目的は、符号化出力の際、出力されるデータの符号化率などのコーディングポリシーを反映できる符号化部とこれを含むデータ格納装置及びデータ格納システム並びにコンピュータシステムを提供することにある。
本発明の目的は、元データを簡単に抽出できないようにデータを符号化する符号化部とこれを含むデータ格納装置及びデータ格納システム並びにコンピュータシステムを提供することにある。
【課題を解決するための手段】
【０００４】
上記目的を達成するためになされた本発明の一態様によるデータ格納装置は、少なくとも一つの入力コマンドをデコードし、該入力コマンドに応答してリード信号及び内部モード決定プロセスの開始を示す開始信号のうちの少なくとも一つを生成する制御部と、前記リード信号に応答してデータを出力するメモリ部と、前記開始信号に応答して符号化モードを自律的に決定することを含む内部モード決定プロセスを開始して実行し、該決定した符号化モードに基づいて前記メモリ部から出力される出力データを符号化して符号化データを出力する符号化部と、を備える。
【０００５】
上記目的を達成するためになされた本発明の他の態様によるデータ格納装置は、入力コマンドをデコードし、符号化モードを示さない入力コマンドに応答してリード信号及びトリガー信号のうちの少なくとも一つを生成する制御部と、前記リード信号に応答してデータを出力するメモリ部と、前記トリガー信号に応答して符号化モードを示す指示データを生成し、該指示データに基づいて符号化モードセットのうちの一つの符号化モードを選択し、該選択した符号化モードに基づいて前記出力データを符号化する符号化部と、を備える。
【０００６】
上記目的を達成するためになされた本発明の他の態様によるデータ格納装置は、入力コマンドをデコードし、該入力コマンドに応答してリード信号及びトリガー信号のうちの少なくとも一つを生成する制御部と、前記リード信号に応答してデータを出力するメモリ部と、前記トリガー信号に応答して第１ランダムデータを生成し、該第１ランダムデータに基づいて符号化モードセットのうちの一つの符号化モードを自律的に選択し、該選択した符号化モードに基づいて前記メモリ部から出力されたデータを符号化する符号化部と、を備える。
【０００７】
上記目的を達成するためになされた本発明の一態様による符号化部は、要求される分布（ｄｉｓｔｒｉｂｕｔｉｏｎ）を有するランダムデータを生成して該ランダムデータにより符号化モードを決定する符号化決定部と、前記決定した符号化モードに基づいてデータを符号化する符号化器と、を備える。
【０００８】
また、上記目的を達成するためになされた本発明の少なくとも一態様はデータ格納装置及び／又は符号化部を含むシステムに関するものである。
【０００９】
また、一実施形態としてデータを符号化する方法を提供する。
【００１０】
一実施形態で、前記方法は、符号化データを生成するために、ユーザの入力に基づき一つ以上の符号化モードが有する符号化率を多様化して符号化モードを選択し、選択した符号化モードに基づいてメモリ部の出力データを符号化する。
【００１１】
前記符号化モードの選択は、コーディングポリシーに基づくランダム発生器を設定し、該ランダム発生器を利用してランダムに符号化モードインジケータを生成する。前記コーディングポリシーは複数の符号化モードのそれぞれに対する選択確率を示す。また、前記符号化モードインジケータは複数の復号化モードのうちの一つを示す。
【００１２】
また他の実施形態で、前記方法は、コーディングポリシーに基づき、複数の符号化モードから一つの符号化モードを選択する。前記方法は、選択した符号化モードによりデータを符号化して符号化データを生成する。前記方法は、符号化モード選択及び複数のデータに対する符号化データの段階を繰り返して行う。
【００１３】
前記方法は、入力コマンドに基づき、コーディングポリシーを設定する。前記方法は、チェンジコマンドに応答してコーディングポリシーを変更する。前記方法は、メモリ部にデータが格納された領域に基づいて前記コーディングポリシーを設定する。前記方法は、コーディングポリシー格納部からコーディングポリシーリストをロードし、リストから前記コーディングポリシーを選択する。前記符号化モードは、第１符号化モード及び第２符号化モードを含み、前記第１符号化モードを選択する場合、符号化データは元の状態にデコードすることができ、前記第２符号化モードを選択する場合、符号化データは元の状態にデコードすることができない。前記コーディングポリシーは、前記第１符号化モードを選択する比率を示す。符号化モードの選択は、コーディングポリシーに基づいてランダム発生器を設定し、該ランダム発生器を利用して符号化モードインジケータをランダムに生成し、前記符号化モードインジケータは第１符号化モード及び第２符号化モードのうちの一つを示す。
【００１４】
他の実施形態で、前記方法は、複数の符号化データフラグメントセットを生成する。それぞれのセットは同一の元データを代表し、それぞれのセットは少なくとも第１符号化データフラグメント及び第２符号化データフラグメントのパターンを含む。第１符号化データフラグメントは第２符号化データフラグメントに比べて符号化が行われていない。第１符号化データフラグメントは、元の状態にデコードすることができ、第２符号化データフラグメントは元の状態にデコードすることができない。前記方法は、一つのセットで示される第１符号化パターンと、他のセットで示されるパターンが異なるように複数のセットを生成する。それぞれのパターンは少なくとも一つの第１符号化データフラグメントを有する。少なくとも２セットの複数の符号化データフラグメントは第１符号化データフラグメントの個数が同一である。前記方法は、第１符号化データフラグメントの最大個数を示すコーディングポリシーを得て、前記コーディングポリシーに基づいて複数の符号化データフラグメントセットを生成する。
【００１５】
また、一実施形態として、データリード方法を提供する。
【００１６】
一実施形態で、前記方法は、入力コマンドに応答してリード信号及びトリガー信号のうちの少なくとも一つを生成し、前記リード信号に応答してメモリ部からデータを出力し、トリガー信号に応答して第１ランダムデータを生成し、第１ランダムデータに基づいて符号化モードセットから一つの符号化モードを自律的に選択して決定した符号化モードに基づいて出力データを符号化する。
その他の実施形態の具体的な内容は詳細な説明及び図面に含まれている。
【発明の効果】
【００１７】
本発明によれば、データ格納装置でデータが出力される間、データ格納装置に特定コマンドを２回以上入力するだけで、出力データが強化された保安機能を有して符号化される効果がある。
【００１８】
また、データ格納装置で符号化部の符号化モードスイッチングが特定コマンドの入力に応答して行われ、データ出力はスイッチングが行われる間に実行されない。従って、符号化部の符号化モードスイッチングに要求される時間を充分に保証する効果がある。その結果、データを出力する間に符号化部の符号化モードスイッチングによって要求されるデータが復元できる符号化から復元できない符号化になるか、又は復元できない符号化から復元できる符号化になる場合を防止することができる。
【００１９】
また、データ格納装置は所望の（又は所定の）コーディングポリシーによる特定コマンドの入力に応答して符号化部の符号化モードを決定することができ、コーディングポリシーは外部装置から定められる。従って、符号化方法は外部装置によって定めることが可能である。
【００２０】
更に、データ格納装置から出力されるデータが復元できるように符号化されるデータの位置は毎回異なり、元データは出力されない。従って、出力データが不当にデコードされることを防止することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施形態によるホスト装置及びデータ格納装置を含むコンピュータシステムの構成図である。
【図２】本発明の他の実施形態によるホスト装置及びデータ格納装置を含むコンピュータシステムの構成図である。
【図３】本発明の一実施形態によるデータ格納装置のブロック構成図、入力コマンド、及び出力データを示す図である。
【図４】本発明の一実施形態によるデータ格納装置がデータを符号化して出力する一例を示す概念図である。
【図５】本発明の一実施形態によるデータ格納装置の符号化決定部のブロック構成図である。
【図６】本発明の一実施形態によるデータ格納装置内で使用されるコーディングポリシーリストを示す図である。
【図７】本発明の一実施形態によるメモリ部の格納領域の構成例を説明する図である。
【図８】本発明の一実施形態による符号化器の構成例を説明する図である。
【図９】本発明の他の実施形態による符号化器の構成例を説明する図である。
【図１０】本発明の他の実施形態による符号化器の構成例を説明する図である。
【図１１】本発明の他の実施形態による符号化器の構成例を説明する図である。
【図１２】本発明の他の実施形態による符号化器の構成例を説明する図である。
【図１３】本発明の他の実施形態による符号化器の構成例を説明する図である。
【図１４】本発明の一実施形態による第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置の動作を説明するためのタイミング図である。
【図１５】本発明の一実施形態による第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置の動作を説明するためのタイミング図である。
【図１６】本発明の一実施形態による第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置で符号化部スイッチング動作の最大の許容時間を説明するための詳細タイミング図である。
【図１７】本発明の一実施形態による符号化対象データを同一サイズに分割した第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置の動作を説明するためのタイミング図である。
【図１８】本発明の一実施形態による符号化対象データを同一ではないサイズに分割した第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置の動作を説明するためのタイミング図である。
【図１９】本発明の一実施形態による第３コマンド（ＡＵＴＨ＿ＲＥＡＤ）の入力を順次に受けるデータ格納装置の動作を説明するためのタイミング図である。
【図２０】本発明の一実施形態による第３コマンド（ＡＵＴＨ＿ＲＥＡＤ）及びアドレス情報の入力を順次に受けるデータ格納装置の動作を説明するためのタイミング図である。
【図２１】本発明の一実施形態によるコントローラ及びデータ格納装置を含むデータ格納システムの構成及び動作を説明するための図である。
【図２２】本発明の他の実施形態によるコントローラ及びデータ格納装置を含むデータ格納システムの構成及び動作を説明するための図である。
【図２３】本発明の更に他の実施形態によるコントローラ及びデータ格納装置を含むデータ格納システムの構成及び動作を説明するための図である。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。本発明の利点、特徴、及びそれらを達成する方法は、図面と共に詳細に後述する実施形態を参照すると明確になるであろう。しかし、本発明は、以下で開示する実施形態に限定されるものではなく、異なる多様な形態で具現することが可能である。本実施形態は、単に本発明の開示が完全になるように、本発明が属する技術分野で通常の知識を有する者に対して発明の範疇を完全に知らしめるために提供するものである。図面に表示した構成要素のサイズ及び相対的なサイズは説明の明瞭性のために誇張することがある。なお、明細書全体に亘り、同一の参照符号は同一の構成要素を指す。
【００２３】
一つの素子（ｅｌｅｍｅｎｔｓ）が他の素子と「接続された（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」又は「カップリングされた（ｃｏｕｐｌｅｄ  ｔｏ）」と指称する場合は、他の素子と直接連結又はカップリングされた場合又は中間に他の素子が介在する場合を全て含む。反面、一つの素子が他の素子と「直接接続された（ｄｉｒｅｃｔｌｙ  ｃｏｎｎｅｃｔｅｄ  ｔｏ）」又は「直接カップリングされた（ｄｉｒｅｃｔｌｙ  ｃｏｕｐｌｅｄ  ｔｏ）」と指称する場合は中間に他の素子を介在しないことを示す。「及び／又は」は言及したアイテムのそれぞれ及び一つ以上の全ての組合せを含む。
【００２４】
第１、第２等が、多様な素子、構成要素を説明するために使用される。しかし、これらの構成要素はこれらの用語によって制限されないことは勿論である。これらの用語は単に一つの構成要素を他の構成要素と区別するために使用するものである。例えば、本発明の技術的な思想内で第１信号は、第２信号であり得、第２信号は第１信号であり得る。
【００２５】
本明細書で使用する用語は、実施形態を説明するためのものであり、本発明を制限しようとするものではない。本明細書で、単数形は特別に言及しない限り複数形も含む。明細書で使用する「含む（ｃｏｍｐｒｉｓｅｓ）」及び／又は「含む（ｃｏｍｐｒｉｓｉｎｇ）」は言及した構成要素、段階、動作及び／又は素子に一つ以上の他の構成要素、段階、動作及び／又は素子の存在又は追加を排除しない。
【００２６】
他に定義しなければ、本明細書で使用する全ての用語（技術及び科学的用語を含む）は、本発明が属する技術分野で通常の知識を有する者に共通に理解され得る意味において使用するものである。また、一般的に使用される辞典に定義されている用語は、明確に特別に定義されていない限り理想的に又は過度に解釈されない。
【００２７】
本明細書で使用する「符号化（ｃｏｄｉｎｇ）」は、元データをランダム化してノイズデータに変換することであるが、元データを暗号化して後に復号化により元に戻すことができるようにすることを意味する。一実施形態によるデータ格納装置は、コマンドに応答して元データをランダム化したり、元データを暗号化したりすることができる。
【００２８】
データ格納装置が元データをノイズデータに変換して出力する場合、符号化データの復元のため、元データがエラー修正コードを含むのが好ましい。エラー修正コードはＶｉｔｅｒｂｉ  ｃｏｄｅ、Ｔｕｒｂｏ  ｃｏｄｅなどの既知のコードを使用することができる。
【００２９】
先ず、図１を参照して本発明の一実施形態によるコンピュータシステムについて説明する。本実施形態によるコンピュータシステム７０は、ホスト装置６０及びデータ格納装置１０を含む。
【００３０】
本実施形態によるホスト装置６０は、プロセッサのような演算手段を備えるプロセシング装置である。具体的には、ホスト装置６０を含むコンピュータシステム７０は、携帯電話、双方向コミュニケーションシステム、単方向ポケットベル、双方向ポケットベル、パーソナルコミュニケーションシステム、携帯用のコンピュータ、携帯情報端末（ＰＤＡ）、オーディオ及び／又はビデオプレーヤ、デジタル及び／又はビデオカメラ、ナビゲーションシステム、ＧＰＳなどである。
【００３１】
本実施形態のデータ格納装置１０は、格納手段として、例えば、ＮＡＮＤ−ＦＬＡＳＨメモリ、ＮＯＲ−ＦＬＡＳＨメモリ、相変化メモリ（ＰＲＡＭ    Ｐｈａｓｅ  ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、固体磁気メモリ（ＭＲＡＭ    Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、抵抗メモリ（ＲＲＡＭ（登録商標）    Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのような不揮発性メモリを使用したチップ又はパッケージである。以下ではデータ格納装置１０の実施例としてＦＬＡＳＨメモリチップについて説明する。
【００３２】
図１に示すように、データ格納装置１０は、データ格納装置１０を制御するホスト装置６０に直接接続される。符号化対象データ２０を得るためのリード（ｒｅａｄ）動作が行われる場合、ホスト装置６０は、符号化対象データ２０のリード動作のためにデータ格納装置１０にコマンドを生成して提供する。
【００３３】
コマンドは、その機能により、データリード動作を実行する第１コマンド、データ格納装置１０の符号化モード決定のための開始信号である第２コマンド、又はデータリード動作実行及び符号化モードの決定を同時に行う第３コマンドなどがある。
【００３４】
データ格納装置１０は、第２コマンド又は第３コマンドの入力に応答して後のデータ出力の際に適用する符号化モードを自律的に決定する。従って、第２コマンド又は第３コマンドの入力は内部の符号化モードを決定するプロセスの開始信号としてのみ使用し、符号化モードはコマンドが指定した通りには決定されない。
【００３５】
即ち、データ格納装置１０に入力される符号化モードの決定に関連するコマンドはデータ格納装置１０の符号化モードを直接決定したり示したりしない。また、符号化モード決定を開始することに関連するコマンドが入力される度に、データ格納装置１０は、必然的に符号化モードを変更しない。上述したように、データ格納装置１０が自律的に符号化モードを決定するため、ハッキングを意図してデータ格納装置１０から出力されたデータを得た場合にも、復元可能なデータであるか否かについて簡単に把握できない保安（セキュリティ）効果を有する。
【００３６】
データ格納装置１０の符号化モードは、メモリから出力されるデータを何パーセント符号化するかを指定する。例えば、データ格納装置１０の符号化モードは、２０％のデータを符号化するＡ符号化モード及び７０％のデータを符号化するＢ符号化モードの２種類がある。データ格納装置１０は、第２コマンド又は第３コマンドが入力されると、Ａ、Ｂ符号化モードのうちの一つをデータ格納装置１０の符号化モードとして自律的に決定する。
【００３７】
また他の実施形態として、データ格納装置１０の符号化モードは、データを符号化せずにバイパス（ｂｙｐａｓｓ）するＣ符号化モード及び全てのデータを符号化するＤ符号化モードの２種類がある。データ格納装置１０は、第２コマンド又は第３コマンドが入力されると、符号化モードとしてＣ符号化モード又はＤ符号化モードのうちの一つを自律的に決定する。
【００３８】
一実施形態として、データ格納装置１０の符号化モードは、それぞれ異なるデータ符号化率を有する複数の符号化モジュールのうちのどの符号化モジュールを使用するかについて決定する。特に、データ格納装置１０の符号化モードは、復元できるようにデータを符号化する符号化モジュール及び復元できないようにデータを符号化する符号化モジュールを使用する符号化モードを含む。
【００３９】
データ格納装置１０は、符号化対象データを出力する間に第２コマンド又は第３コマンドの入力を複数回受けて出力するデータの符号化モードを変更することができる。符号化対象データ２０は全ての類型のデジタルデータを意味する。例えば、データ格納装置１０を認証するために使用されるデータ格納装置１０識別情報のような認証情報である。
【００４０】
ホスト装置６０が符号化のためのコマンドをデータ格納装置１０に提供する方法について説明する。
【００４１】
先ず、符号化対象データ２０を二つ以上に分割し、それぞれの分割したデータに対して適用する符号化モードを、符号化対象データ２０を出力する度に変更する方式について説明する。
【００４２】
ホスト装置６０は、符号化対象データ２０の出力範囲を分割した第１コマンド及び第２コマンドを交互に生成する。
【００４３】
第１コマンドの入力を受ける間、データ格納装置１０は、第２コマンドに応答して決定した符号化モードにより符号化対象データ２０の一部を符号化して出力する。データ格納装置１０は、第２コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて後に出力するデータを符号化するための符号化モードを決定する。データ格納装置１０は、モード決定の基礎データとしてランダムデータを生成することができ、ランダムデータは特定符号化率の設定ができるランダムデータ生成器によって生成される。
【００４４】
第１コマンド及び第２コマンドが入力されたデータ格納装置１０の動作については図１４〜図１８を参照して後述する。
【００４５】
次に、ホスト装置６０は、分割された符号化対象データを出力するために第３コマンドを２回以上順次に生成する。データ格納装置１０は、第３コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ２０の一部を符号化して出力する。第３コマンドの入力を１回受けると、出力するデータの量は第３コマンドに含まれるアドレスによって決定され得、又はホストと接続していることにより予め定められている場合もある。第３コマンドを受けたデータ格納装置１０の動作についても図１９及び図２０を参照して後述する。
【００４６】
データ格納装置１０が第１コマンド及び第２コマンド又は第３コマンドの入力を受けて出力する符号化対象データ２０の一部は同一のデータであり得る。即ち、符号化対象データ２０は複数の同一のデータフラグメントが連結されて形成され得る。データ格納装置１０は、第１コマンド及び第２コマンド又は第３コマンドの入力を受けてデータフラグメントを一つずつ符号化して出力する。このような場合、第１コマンド及び第２コマンド又は第３コマンドの入力を受ける度に出力されるデータフラグメントは符号化モードによりそれぞれ異なるデータである。
【００４７】
次に、データ格納装置１０が符号化対象データ２０を繰り返して出力する方法について説明する。
【００４８】
データ格納装置１０は、第１又は第３コマンドに応答して符号化対象データ２０を出力する。第１コマンドの入力を受ける場合、データ格納装置１０が符号化対象データ２０を出力する前に符号化モードをランダムに変更できるように第２コマンドの入力を先に受けることが好ましい。
【００４９】
符号化対象データ２０を繰り返して出力するデータ格納装置１０は、同一のアドレスに格納されたデータを出力するのにも拘らず、出力する度に異なるデータが出力されるように構成される。
【００５０】
以下、特に言及しない限り、データ格納装置１０は、符号化対象データ２０を分割して出力するように構成される。
【００５１】
図２を参照して本発明の他の実施形態によるコンピュータシステムについて説明する。本実施形態のコンピュータシステム８０は、ホスト装置６０、コントローラ４０、及びデータ格納装置１０を含む。本実施形態のデータ格納装置１０は、データ格納装置１０を制御するコントローラ４０と電気的に接続される。また、コントローラ４０は、ホスト装置６０と接続される。即ち、データ格納装置１０は、コントローラ４０を介してホスト装置６０の制御を受ける。
【００５２】
符号化対象データのリード動作が実行される場合、ホスト装置６０は、一つのリード要求をコントローラ４０に提供したり、分割された符号化対象データに対するリード要求を２回以上コントローラ４０に提供したりする。
【００５３】
ホスト装置６０が分割されたデータに対して複数のリード要求を提供する場合、コントローラ４０は、リード要求をデータ格納装置１０に伝達する。即ち、コントローラ４０は、リード要求に応答して第３コマンドを生成し、データ格納装置１０に第３コマンドを提供し、データ格納装置１０は、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ２０の一部を符号化して出力する。データ格納装置１０は、第３コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ２０の一部を符号化して出力する。データ格納装置１０から出力されたデータはコントローラ４０を経由してホスト装置６０に提供される。
【００５４】
ホスト装置６０は、リード動作を行う場合、コントローラ４０に一つのリード要求を提供し、リードを要求する入力を受けたコントローラ４０は、データ格納装置１０が分割された符号化対象データを出力するために第３コマンドを２回以上順次に生成したり、データ格納装置１０が分割された符号化対象データを出力するために第２コマンド及び第１コマンドを交互に生成したりする。この場合、データ格納装置１０は、第３コマンドの入力に応答してモード決定の基礎データを生成し、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ２０の一部を符号化して出力する。また、データ格納装置１０は、第１コマンドの入力を受ける間に第２コマンドに応答して生成されたモード決定の基礎データに基づいて決定した符号化モードにより符号化対象データの一部を符号化して出力する。
【００５５】
図１及び図２に示すデータ格納装置１０は、データ格納装置１０に提供された入出力（Ｉ／Ｏ）端子（ｐｉｎ又はｂａｌｌ（図示せず））により第１コマンド及び第２コマンド又は第３コマンドを受ける。その機能により多様な入出力端子がある。例えば、入出力データが送受信されるＩ／Ｏ端子、Ｉ／Ｏ端子を介して入力されるデータがコマンドであるか、又はアドレスであるか区分するためのコマンドラッチ端子及びアドレスラッチ端子と、Ｉ／Ｏ端子を介して入出力タイミングを決定するためのリードイネーブルメント端子及びライトイネーブルメント端子などがある。
【００５６】
具体的には、コマンドを識別するためのデータはデータ格納装置１０に提供されるＩ／Ｏ端子を介して入力される。Ｉ／Ｏ端子を介して入力されたデータがコマンドであるか否かを決定するために、コマンドラッチターミナル及びアドレスラッチターミナルを介して適切な信号が印加される。同時に、Ｉ／Ｏ端子を介して入力タイミングを形成するために、ライトイネーブルメント端子を介しても適切な信号が印加される。これについては図１６を参照して詳細に後述する。
【００５７】
第１コマンド又は第３コマンドはアドレス関連情報を含み得る。この場合、データ格納装置１０は第１又は第３コマンドに伴うアドレスに該当するデータを出力する。
【００５８】
本発明の一実施形態によるデータ格納装置１０の構成及び動作について図３を参照してより詳細に説明する。図３に示すように、データ格納装置１０は、メモリ部１２、制御部１４、及び符号化部１６を含む。
【００５９】
制御部１４は、入力されたコマンドをデコードし、デコードの結果により内部リード信号１８及び内部トリガー（ｔｒｉｇｇｅｒ）信号１９のうちの少なくとも一つを含む信号を出力する。制御部１４は、入力されたコマンドをデコードするコマンドデコーダ１４０を含み、内部リード信号１８のみを出力するか、内部リード信号１８及び内部トリガー信号１９を共に出力するか、又は内部トリガー信号１９のみを出力する。本明細書では内部リード信号１８のみ出力するコマンドを第１コマンド、内部トリガー信号１９のみを出力するコマンドを第２コマンド、内部リード信号１８及び内部トリガー信号１９を共に出力するコマンドを第３コマンドという。
【００６０】
内部リード信号１８に応答してメモリ部１２が符号化対象データ２０の一部を出力する。データ格納装置１０は、符号化対象データ２０の一部又は分割された符号化対象データを２回以上出力することができ、データを分割して出力する間に符号化部１６の符号化モードを１回以上転換する。
【００６１】
メモリ部１２は、制御部１４から内部リード信号１８の提供を受けて符号化対象データ２０の一部を符号化部１６に出力する。
【００６２】
メモリ部１２は、フラッシュメモリセルの集合であるセルアレイで構成される。セルアレイは多様なタイプのメモリセルを含み得る。例えば、セルアレイはＮＡＮＤフラッシュメモリセル又はＮＯＲフラッシュメモリセルで構成され、或いはＮＡＮＤフラッシュメモリセルとＮＯＲフラッシュメモリセルが混合した形態で構成される。
【００６３】
メモリ部１２を構成するセルアレイは２次元又は３次元で形成され得る。
【００６４】
メモリ部１２の各メモリセルに格納されるデータビット数は多様な形態で構成され得る。例えば、メモリ部１２は、セル当たり１ビットのデータが格納されるシングルレベルフラッシュメモリセル（ＳＬＣ）で構成され得、或いはセル当たり複数ビットのデータが格納されるマルチレベルフラッシュメモリセル（ＭＬＣ）で構成され得る。また、シングルレベルフラッシュメモリセルとマルチレベルフラッシュメモリセルが混合した形態で構成され得る。
【００６５】
メモリ部１２の内部には符号化対象データ２０が格納される保安領域１２０が割り当てられている。保安領域１２０は、特定アドレス領域に割り当てることができ、アドレス領域はセルアレイで特定ブロックに割り当てられたものである。保安領域の割り当ての一例として、図７にブロック０〜ブロック２が保安領域として割り当てられていることを示す。
【００６６】
保安領域１２０以外の領域に格納されたデータがメモリ部１２から提供された場合、符号化部１６は、符号化モードがオン状態であっても符号化部をバイパスしたメモリ部１２から提供されたデータを出力することができる。従って、保安領域１２０以外の領域に格納されたデータに対して符号化を要求するコマンドが入力されても、符号化部１６はデータを符号化しない場合もある。
【００６７】
符号化対象データ２０が格納される保安領域１２０は、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）で構成され、保安領域１２０以外の一般領域はＭＬＣ（Ｍｕｌｔｉ  Ｌｅｖｅｌ  Ｃｅｌｌ）で構成される。
【００６８】
また、保安領域１２０は複数の区域を含み得る。それぞれの区域に格納されるデータは異なるコーディングポリシーが適用され得る。図７に示すように、例えば、コーディングポリシー１はブロック０に格納されるデータに適用され、コーディングポリシー２はブロック１に格納されるデータに適用され、コーディングポリシー３はブロック２に格納されるデータに適用される。従って、制御部１４に入力されたコマンドがコーディングポリシーを示さない場合、制御部１４は、符号化対象データ２０が格納されたブロックに相応するコーディングポリシーが適用されるように符号化部１６にコーディングポリシー変更信号を提供する。例えば、図７に示すメモリ部１２の構成において、符号化対象データ２０がブロック２に格納されるものである場合、制御部１４は、符号化部１６にコーディングポリシー３が適用されるようにコーディングポリシー変更信号を提供する。コーディングポリシーの変更信号を受けた符号化部１６の動作については詳細に後述する。
【００６９】
コーディングポリシーは特定符号化モードを適用する比率を決定する。例えば、符号化モードＡがホスト装置６０又はコントローラ４０で復元できないように（ｎｏｎ−ｃｏｒｒｅｃｔａｂｌｅ）符号化する符号化モードであり、符号化モードＢがホスト装置６０又はコントローラ４０で復元できる（ｃｏｒｒｅｃｔａｂｌｅ）ように符号化する符号化モードである場合、符号化モードＢを適用する比率を７０％にするコーディングポリシーは、ホスト又はコントローラがデータ格納装置１０から出力された符号化されたデータ１０個のうちの７個を一般的に復元できることを意味する。
【００７０】
符号化部１６は、符号化モードによりメモリ部１２から提供されたデータを符号化して出力する。
【００７１】
符号化部１６の符号化モードは、データを符号化するために符号化を行うモジュールのうちのどのモジュールを使用するかを、内部的、自律的に決定する。例えば、第１符号化モードでは入力データ中３０％のデータを符号化するためのモジュールを使用し、第２符号化モードでは入力データ中７０％のデータを符号化するためのモジュールを使用する。これとは異なり、第１符号化モードでは入力データを全て符号化するためのモジュールを使用し、第２符号化モードでは入力データをそのまま出力する場合も想定することができる。即ち、符号化部１６の符号化モードは入力されるデータの符号化率を意味する。符号化部１６は、内部トリガー信号１９に応答して符号化モードを自律的に決定する。内部トリガー信号１９も符号化モードを示さない。より詳細には、内部トリガー信号１９を受けると、符号化部１６は、内部トリガー信号１９を開始信号としてモード決定の基礎データを生成する。また、符号化部１６は、モード決定の基礎データに基づいてメモリ部から提供されたデータを符号化するために符号化モードを決定する。既に上述したように、内部トリガー信号１９は、符号化部１６の符号化モードを決定するための開始信号として提供されるのみであり、符号化部１６の符号化モード決定に直接には影響を与えない。
【００７２】
符号化部１６は、ランダムデータ生成方法により自身の符号化モードを自律的に決定する。即ち、符号化部１６は、第１内部トリガー信号１９に応答してモード決定の基礎データとして第１ランダムデータを生成する。但し、符号化対象データが特定コーディングポリシーに符合するように符号化しなければならないため、符号化部１６は、要求される（又は予め定められた）確率で第１ランダムデータを生成する。例えば、第１符号化モードを示す「０」と第２符号化モードを示す「１」のうちの一つの値がランダムに生成されるが、「０」が生成される確率が７０％になるようにランダムデータ生成器を設定することができる。特定確率を決める間にモード決定の基礎データがランダムに生成される場合、符号化対象データの符号化出力パターンがランダムに変わる間、データ符号化率と関連するコーディングポリシーと遭遇する。即ち、モード決定データのデータパターンはコーディングポリシーによりランダムに変わるため、符号化出力パターンもランダムに変わる。
【００７３】
符号化部１６は、選択した符号化モードにより第２ランダムデータを更に生成することができる。第２ランダムデータはメモリ部１２から提供されたデータを符号化することに使用される。例えば、符号化部１６は、メモリ部１２から提供されたデータを符号化するための第２ランダムデータと共に論理演算して符号化データを出力する。論理演算は、例えば、排他的なＯＲ演算、論理演算の組合せなどである。複数の内部リード信号に応答して符号化部１６から出力される複数のデータフラグメントは符号化対象データ２０の符号化データ３０を構成する。
【００７４】
本実施形態のデータ格納装置１０は、第２コマンド又は第３コマンドを２回以上入力することで出力されるデータの符号化をコーディングポリシーにより異なるようにすることができる。図４を参照してこれを詳細に説明する。
【００７５】
符号化対象データ２０は１０回に分けてリードされ、第３コマンドは一定の間隔でデータ格納装置１０に入力されると仮定する。またホスト装置６０又はコントローラ４０の復元できる限界符号化率が４０％であると仮定する。復元できる限界符号化率は、例えばエラー修正コード（ＥＣＣ）を利用して復元できる符号化データの最大符号化率を意味する。
【００７６】
符号化モードがＡ−モードである場合、２０％のデータを符号化する符号化モジュールを使用し、符号化モードがＢ−モードである場合、８０％のデータを符号化する符号化モジュールを使用すると仮定する。即ち、Ａ−モードで符号化されて出力されるデータは復元できるデータであり、Ｂ−モードで符号化されて出力されるデータは復元できないノイズデータである。また、第３コマンドが入力される場合、コーディングポリシーによりＡ−モードが選択される確率は７０％であると仮定する。
【００７７】
この場合、図４の右側に示すように、符号化パターンはＲＯＵＮＤ毎に異なって見えるが、復元できる符号化データが出力される確率は７０％に維持される。符号化モードの決定は符号化部１６で生成された第１ランダムデータに依存するため、この前提の環境で復元できる符号化データが出力される確率は７０％とは多少異なることもある。しかし、このような誤差はＲＯＵＮＤを多数実行することによって解消される。また、ランダム数字の生成は復元できる符号化モードが少なくとも１回〜最大選択回数以内で選択されるように設定することができる。即ち、数字生成はデータパターンが少なくとも１回〜最大選択回数以内で復元できる符号化モードを指示するように符号化パターンに符合するデータパターンを生成する。最大数字はコーディングポリシーと符合する。例えば、コーディングポリシーが７０％であれば、復元できる符号化モードにより符号化されるのは１０回のうち７回以下である。
【００７８】
図４に示す符号化対象データ２０は、１０個に分けられた領域にいずれも同一のデータが含まれている。即ち、符号化対象データ２０は、２以上の同一のデータフラグメントが連結されて形成されたものであり、データ格納装置１０は、符号化対象データ２０のフラグメントを出力する。
【００７９】
複数の同一のデータフラグメントが連結されて符号化対象データ２０が形成された場合、データ格納装置１０は、同一のデータフラグメントを複数回符号化して出力する。この場合、コーディングポリシーと符号化モードは、データフラグメントが出力される前に決定され、データフラグメントは、決定した符号化モードにより符号化されて出力される。データフラグメントの符号化パターンもＲＯＵＮＤ毎に異なる場合もあるが、復元できる符号化データフラグメントの比率は各ＲＯＵＮＤで同一に決定される。
【００８０】
図４に示すものとは異なり、一実施形態として、データ格納装置１０は、符号化対象データを同一アドレスによってアクセス可能な同一領域に格納することができる。この場合、データ格納装置１０は、第３コマンドを複数回受けることができる。符号化対象データは、符号化部１６で生成されたモード決定の基礎データに基づいて選択された符号化モードにより符号化される。しかし、符号化モードは、符号化対象データが出力される度に決定されるため、同一領域に格納された符号化対象データが出力されても、データ格納装置１０は、符号化モードにより異なる符号化データを出力することができる。
【００８１】
再び図４を参照すると、符号化対象データ２０を複数回出力するデータ格納装置１０は、符号化対象データ２０の出力回数だけコマンドの入力を受ける。例えば、符号化対象データ２０が１０回出力される場合、データ格納装置１０は、第１コマンド及び第２コマンドの両方の入力を１０回受けるか、又は第３コマンドの入力を１０回受ける。
【００８２】
一方、データ格納装置１０は、第３コマンドの入力を１回受けることで複数回の符号化対象データ２０を出力することができる。このため、第３コマンドの入力を受けた制御部１４は、符号化対象データ２０を全て出力するために、内部リード信号１８及び内部トリガー信号１９を符号化対象データ２０の出力回数だけメモリ部１２及び符号化部１６にそれぞれ提供する。
【００８３】
上述したように、本実施形態によるデータ格納装置１０で、符号化パターンは、復元できる符号化データが出力される確率を維持し、毎回ランダムに変わる。従って、保安を維持しつつ符号化データを復元してデータ格納装置１０からデータをリードすることができる。
【００８４】
符号化部１６は、上述したように二つ以上の符号化モードを有することができる。しかし、理解を高めるため、符号化部１６が二つの符号化モードを有する場合を例に説明する。
【００８５】
図３に示すように、符号化部１６は、符号化モードによりメモリ部１２から提供されたデータを処理する符号化器１６８、及び内部トリガー信号１９に応答してモード決定の基礎データを生成してモード決定の基礎データに基づいて符号化モードを決定し、符号化器１６８を決定した符号化モードで動作させるために、符号化器制御信号を符号化器１６８に提供する符号化決定部１６０を含む。
【００８６】
符号化決定部１６０は、内部トリガー信号１９を受ける度に符号化器の制御信号を符号化器１６８に提供する。これとは異なり、符号化決定部１６０は、自律的に決定した符号化モードが符号化器１６８の現在の符号化モードと異なる場合に限り、符号化モードを変換するために、符号化器１６８に符号化器制御信号を提供することができる。即ち、符号化決定部１６０は、符号化器１６８の符号化モード変更が必要な場合にのみ符号化器１６８に符号化器制御信号を提供する。この場合、符号化器１６８は、最小限の制御信号を受けるため、動作効率が改善される。
【００８７】
図５を参照して符号化決定部１６０の構成及び動作について詳細に説明する。符号化決定部１６０は、データ格納装置１０に電源が印加された後、コーディングポリシーリスト格納部１６３からコーディングポリシーに対するデータをロードするコーディングポリシーリストロード部１６４を含む。また、符号化決定部１６０は、内部トリガー信号１９が入力されたときに符号化モードを自律的に決定するための符号化モード決定器１６１、及び符号化モード決定器１６１により決定された符号化モードで符号化器１６８を制御するために、符号化器制御信号を生成する符号化器制御信号生成器１６２を含む。
【００８８】
コーディングポリシーリストロード部１６４は、コーディングポリシーリスト格納部１６３からコーディングポリシーに対するデータをロードする。コーディングポリシーリストロード部１６４は、データ格納装置１０に電源が印加された後、ロード作業を行う。これとは異なり、コーディングポリシーリストロード部１６４は、データ格納装置１０に電源が印加された後、ホスト装置又はコントローラから入力された特定コマンドに応答してロード作業を行うことができる。コーディングポリシーリストロード部１６４は、ロードされたデータを格納するために非揮発性格納手段であるレジスターを含み得る。
【００８９】
図６に本発明の一実施形態によるコーディングポリシーリストを示す。コーディングポリシーは、一つのみ、又は二つ以上あり、その中から一つを選択して適用することもできる。コーディングポリシーが二つ以上ある場合、データ格納装置１０は、コントローラ４０又はホスト装置６０により指定されたコーディングポリシーを使用するか又はコーディングポリシーを自律的に決定する。
【００９０】
図６は、コーディングポリシーのうちの一つが選択されて使用される場合の例を示す図である。例えば、コーディングポリシー１が選択された場合、復元できる符号化率は４０％である。符号化決定部１６０が内部トリガー信号１９を１０回受けると、復元できるようにデータを符号化する符号化モジュールは約４回選択される。
【００９１】
符号化部１６に適用されるコーディングポリシーを変更するため、データ格納装置１０は、コーディングポリシーの設定に関連するコマンドの入力を受ける。即ち、この場合、制御部１４は、入力されたコマンドをデコードし、デコードの結果に応じて内部リード信号、内部トリガー信号、及びコーディングポリシー変更信号のうちの少なくとも一つを出力する。また、符号化部１６は、制御部１４からコーディングポリシー変更信号を受けてコーディングポリシーを変更する。
【００９２】
即ち、データ格納装置１０に電源が印加された後、コーディングポリシーリストがロードされ、外部コマンドは、コーディングポリシーリストに含まれたコーディングポリシーのうちの一つを設定するために入力される。その次に、符号化部１６は、設定されたコーディングポリシーの復元できる符号化率に基づいてモード決定の基礎データを生成する。
【００９３】
図５に示すように、コーディングポリシーリスト格納部１６３は、符号化決定部１６０の外部に別途設けられる。例えば、コーディングポリシーリスト格納部１６３は、メモリ部１２の特定ブロックであるｅＦＵＳＥ（電子ヒューズ）ブロックであり得る。また、コーディングポリシーリスト格納部１６３は、データ格納装置１０内でメモリ部１２から分離しているｅＦＵＳＥブロックであり得る。データ格納装置１０に電源が印加された後、ｅＦＵＳＥブロックに格納されたコーディングポリシーデータに対して初期リード動作が行われる。初期リード動作によるコーディングポリシーデータリードはコーディングポリシーリストロード部１６４によってロードされる。
【００９４】
ｅＦＵＳＥブロック内に格納されたデータはｅＦＵＳＥデータロードモードで更新が可能であるため、コーディングポリシーデータもまた更新され得る。即ち、コーディングポリシーリスト格納部１６３は、プログラマブル装置であり得、コーディングポリシー格納部１６３内に格納されたコーディングポリシーはユーザの入力に基づいてプログラミングすることができる。
【００９５】
内部トリガー信号１９が入力されると、符号化モード決定器１６１は、設定されたコーディングポリシーによる比率に基づいてランダムデータを生成するランダムデータ生成器１６５を活性化させる。即ち、ランダムデータ生成器１６５は、復元できるように符号化する符号化モード指示値がコーディングポリシーによって定義された比率で生成されるようにランダムデータを生成する。ランダムデータ生成器１６５は、内部トリガー信号１９が１回入力されると、モード決定の基礎データを１回生成する。ランダムデータ生成器１６５は、ランダム数字生成のアルゴリズムなどでプログラミングされたプロセッサなどのようにハードウェア装備である。
【００９６】
符号化モードＡ及び符号化モードＢがある場合、符号化モードＡと符号化モードＢのうちの一つが選択される。例えば、「０」が生成されると、符号化モードＡが選択され、「１」が生成されると、符号化モードＢが選択される。
【００９７】
次に、符号化器制御信号生成器１６２は、モード決定の基礎データにより符号化器１６８を制御するために、符号化器制御信号を生成して出力する。
【００９８】
符号化決定部１６０がランダムデータ生成によって符号化器の符号化モードを決定する方式について追加して説明する。
【００９９】
上述したように、コーディングポリシーに基づいてモード決定の基礎データを生成することは、復元できるようにデータを符号化する符号化モード指示値が特定確率で生成されるようにランダムデータを生成することである。符号化決定部１６０によって生成されたランダムデータは説明の便宜上「第１ランダムデータ」と称する。
【０１００】
符号化決定部１６０が同一の間隔、同一の回数で内部トリガー信号１９を受けても、符号化器１６８の符号化モードを決定するために使用されるデータは第１ランダムデータである。従って、ランダムデータ生成の属性上、特定アドレスで格納された特定データが復元できるように符号化されたか否かは毎回リード動作毎に変わる。即ち、データ格納装置１０から出力される復元できるように符号化されたデータ領域は毎回リード動作毎に変わる。言い換えると、データ格納装置１０内の特定領域に格納された特定データの出力データは毎回リード動作毎に変わるため、ハッカーによっていずれのデータが復元できるデータであるか把握され難い。従って、本実施形態のデータ格納装置１０において、符号化決定部１６０は、第１ランダムデータに基づいて符号化器１６８の符号化モードを決定するために、符号化対象データ２０のうちの復元できるように符号化される領域の位置を変えることが可能である。
【０１０１】
第１ランダムデータを生成するランダムデータ生成器１６５は、特定データ（例えば、特定符号化モードを示す）の生成確率をプログラミングできるようにプログラミングすることができる。
【０１０２】
以下、図８〜図１３を参照して符号化器１６８の構成について説明する。
【０１０３】
先ず、符号化器１６８は、メモリ部１２から提供されたデータを符号化する複数の符号化モジュールを含み得る。図８は、２個の符号化モジュール１６９、１７０を含む符号化器１６８の一例を示す図である。メモリ部１２から出力されたデータは２個の符号化モジュール１６９、１７０に提供される。符号化決定部１６０から提供された符号化器制御信号により２個の符号化モジュール１６９、１７０のうちの一つのみがＯＮになる。その次に、ＯＮなった符号化モジュールから提供された符号化データがＭＵＸ１７１を介して出力される。この場合、符号化モジュールは、入力データを異なる符号化率で符号化する。符号化モジュール１６９、１７０のそれぞれの符号化率はユーザの入力に基づいてプログラミングされる。即ち、ユーザは一つ以上の符号化モジュール１６９、１７０が有する符号化率を異なるようにすることができる。また、符号化器１６８は、符号化モジュール１６９、１７０のうちの選択されない符号化モジュールの電源が遮断されるように構成される。図８で、ＭＵＸ１７１が符号化モジュールの後に位置しているが、ＭＵＸ１７１は、メモリ部１２と符号化モジュールとの間に位置し得る。
【０１０４】
複数の符号化モジュールは、ホスト装置又はコントローラの復元できる限界符号化率以下の比率により入力データを符号化する一つ以上のＡタイプ符号化モジュール、及び復元できる限界符号化率超過の比率により入力データを符号化する一つ以上のＢタイプ符号化モジュールを含み得る。例えば、ホスト装置又はコントローラの復元できる限界符号化率が３０％である場合、符号化モジュール１６９は、データの２０％を符号化するＡタイプ符号化モジュールであり得、符号化モジュール１７０は、データの７０％を符号化するＢタイプ符号化モジュールであり得る。
【０１０５】
即ち、図８に示す符号化器１６８は、符号化決定部１６０の制御により、Ａタイプ符号化モジュール及びＢタイプ符号化モジュールのうちの一つの符号化モジュールを利用してデータを符号化して出力する。
【０１０６】
図９は、符号化決定部１６０の制御により、メモリ部１２から提供されるデータを符号化したり、そのままデータを出力したりする符号化器１６８を示す図である。図９に示す符号化器１６８は、入力データを符号化するための符号化モジュール１７２、及びメモリ部１２から提供されるデータをＭＵＸ１７１にそのまま出力するバイパスバス１７３を含む。符号化器１６８は、決定した符号化モードによる符号化決定部１６０の制御によって符号化モジュール１７２及びバイパスバス１７３のうちの一つを活性化させる。例えば、符号化モジュール１７２は、メモリ部１２から提供されるデータを符号化する。符号化モジュール１７２の符号化率は復元できる限界符号化率を超過する範囲内で多様に設定される。符号化モジュール１７２の符号化率はユーザの入力に基づいてプログラミングされる。即ち、ユーザは符号化モジュール１７２の符号化率を異なるようにすることができる。また符号化器１６８は、符号化モジュール１７２が選択されない場合に符号化モジュール１７２の電源が遮断されるように構成される。
【０１０７】
図９に示す符号化器１６８は、符号化決定部１６０の制御によってメモリ部１２から提供されるデータを符号化するか又は符号化せずに符号化器１６８をそのまま通過するデータを出力する。
【０１０８】
図９でＭＵＸ１７１は、符号化モジュール１７２の後に位置しているが、ＭＵＸ１７１はメモリ部１２と符号化モジュール１７２との間に位置し得る。
【０１０９】
一方、符号化器１６８は、複数の符号化モジュールの代りに一つのプログラマブル符号化モジュールを備えることができる。図１０は、符号化器１６８がプログラマブル符号化モジュール１７４を有する一例を示す図である。プログラマブル符号化モジュール１７４は、入力データの符号化率を設定する。
【０１１０】
図１０に示す符号化器１６８は、決定した符号化モードによる符号化決定部１６０の制御によりプログラマブル符号化モジュール１７４の符号化率を設定する。また図１０に示す符号化器１６８は、復元できるようにデータを符号化する符号化モードと復元できないようにデータを符号化する符号化モードとの間で符号化モードをスイッチングすることができる。即ち、符号化器１６８は、第１符号化モードで復元できる限界符号化率以下の第１符号化率でプログラマブル符号化モジュール１７４の符号化率を設定することができ、又は符号化器１６８は、第２符号化モードで復元できる限界符号化率超過の第２符号化率でプログラマブル符号化モジュール１７４の符号化率を設定することができる。符号化器１６８は、プログラマブル符号化モジュール１７４で使用されるプログラミング比率を設定するために、ユーザプログラマブルであり得る。プログラマブル比率を設定するのは、異なる符号化モード生成するためである。
【０１１１】
一実施形態として、符号化器１６８は、複数の符号化モジュール１６９、１７０の代わりに複数のランダムデータ生成器を備える。図１１は、２個のランダムデータ生成器１７５、１７６を備える符号化器１６８の一例を示す図である。２個のランダムデータ生成器１７５、１７６のうちの一つのみが符号化決定部１６０から提供される符号化器制御信号によりＯＮになる。その次に、符号化器１６８は、ＯＮになったランダムデータ生成器から提供されたデータをメモリ部１２から提供されたデータと論理演算１８０した結果を出力する。複数のランダムデータ生成器は、論理演算を行った後にメモリ部１２から被演算子維持データを生成する確率が異なる。論理演算はＡＮＤ、ＯＲ、ＸＯＲ、ＮＯＲ、ＮＡＮＤ演算、又はこれらの組合せなどを含み得る。
【０１１２】
被演算子維持データは、論理演算を行った後にメモリ部１２から受けたデータ値をそのまま有するデータを意味する。例えば、被演算子維持データが「Ｅ」であり、論理演算がＸＯＲであれば、全ての被演算子Ａに対して「Ａ  ＸＯＲ  Ｅ  ＝  Ａ」である。
【０１１３】
即ち、ＯＮ状態でランダムデータ生成器１７５、１７６のうちの一つの被演算子維持データ生成確率がＸパーセントである場合、符号化器１６８から出力されたデータ中Ｘパーセントはメモリ部１２からの元データと同じであり得、（１００−Ｘ）パーセントはメモリ部１２からの元データと異なることになる。従って、論理演算１８０に関する被演算子維持データ生成確率は符号化率と関連することがわかる。ランダムデータ生成器１７５、１７６のそれぞれによって生成された符号化率はユーザ入力に基づいてプログラミングすることができる。即ち、ユーザは一つ以上のランダムデータ生成器１７５、１７６により生成される符号化率を多様に設定することができる。
【０１１４】
複数のランダムデータ生成器は、復元できる限界符号化率超過の比率で入力データから被演算子維持データを生成する一つ以上のＡタイプのランダムデータ生成器、及び復元できる限界符号化率以下の比率で入力データから被演算子維持データを生成する一つ以上のＢタイプのランダムデータ生成器を含む。即ち、複数のランダムデータ生成器は復元できるように符号化するＡタイプ及び復元できないように符号化するＢタイプに分けられる。
【０１１５】
図１２に示すように、符号化器１６８は、Ａタイプのランダムデータ生成器１７５及び被演算子維持データ出力器１７８を含み得る。決定した符号化モードによる符号化決定部１６０の制御下で、符号化器１６８は、メモリ部１２から提供されたデータをＡタイプのランダムデータ生成器１７５及び被演算子維持データ出力器１７８のうちの一つから提供されたデータと論理演算して論理演算した結果を出力する。図１２に示す符号化器１６８は、メモリ部１２から提供されたデータを符号化したり、図９に示す符号化器１６８と同様に符号化決定部１６０の制御によりデータをそのまま出力したりする。これとは異なり、図１２の符号化器１６８は、被演算子維持データ出力器１７８を有する代りに論理演算を行わずにメモリ部１２からデータが出力されるようにバイパスバスを有することができる。ランダムデータ生成器１７５は、特定符号化モード又は符号化量を生成するランダムデータを生成するようにユーザがプログラミングすることができる。また、ランダムデータ生成器１７５は、選択されない場合には電源が遮断される。
【０１１６】
図１３に示すように、符号化器１６８は、特定論理演算に関する被演算子維持データ生成確率を設定できるプログラマブルランダムデータ生成部１７９を含み得る。符号化器１６８は、決定した符号化モードによりプログラマブルランダムデータ生成部１７９の被演算子維持データ生成確率を設定することができ、メモリ部１２から提供されたデータをプログラマブルランダムデータ生成部１７９から提供されたデータと特定論理演算１８０した結果を出力する。
【０１１７】
図１３に示す符号化器１６８は、図１０に示す符号化器１６８と同様に、復元できるようにデータを符号化する符号化モード及び復元できないようにデータを符号化する符号化モードとの間でスイッチングする。即ち、符号化器１６８は、第１符号化モードで復元できる限界符号化率超過の第１符号化率でプログラマブルランダムデータ生成部の被演算子維持データ生成確率を設定し、第２符号化モードで復元できる限界符号化率以下の第２符号化率でプログラマブルランダムデータ生成部の被演算子維持データ生成確率を設定する。符号化器１６８は、異なる符号化モードにするために、プログラマブルランダムデータ生成部１７９の構成に使用されるプログラミング比率を設定するためのユーザプログラマブルである。
【０１１８】
図８〜図１３に示す符号化器１６８は、一例として示すものであり、符号化器１６８は所望する（又は予め定められた）スクランブルロジック回路として実現することができる。
【０１１９】
本実施形態によるデータ格納装置１０は、符号化対象データ２０の出力のために第１コマンド及び第２コマンドの入力を交互に受ける。この場合、データ格納装置１０は、要求される（又は予め定められた）データサイズ毎に第２コマンドであるトリガーコマンドの入力を受けるか、又は全ての符号化対象データ２０を出力するために要求される（又は予め定められた）回数だけの第２コマンドの入力を受ける。
【０１２０】
本実施形態のデータ格納装置１０は、符号化対象データ２０を出力するために２回以上第３コマンドの入力を受ける。この場合、データ格納装置１０は、要求される（又は予め定められた）サイズのデータ毎に第３コマンドの入力を受け、全ての符号化対象データ２０を出力するためにトリガー回数と同一になるように要求される（又は予め定められた）回数の第３コマンドの入力を受ける。
【０１２１】
以下、符号化対象データ２０の一部を出力するために第１コマンド及び第２コマンドの入力を交互に受けるデータ格納装置１０の動作を、図１４〜図１８を参照して詳細に説明する。
【０１２２】
第１コマンド及び第２コマンドを再び説明すると、第１コマンドは、制御部１４によりデコードされ、内部リード信号１８の形態でメモリ部１２に伝達される。この点で従来のリードコマンドと類似する。第２コマンドは、制御部１４によりデコードされ、内部トリガー信号１９の形態で符号化部１６に伝達される。
【０１２３】
データ格納装置１０、特に制御部１４は、第１コマンド及び第２コマンドの入力を交互に受ける。即ち、第１コマンドが入力された後、第２コマンドが入力され、第２コマンド入力された後、第１コマンドが入力される。しかし、制御部１４は、符号化対象データ２０が出力される間の最後に第１コマンドの入力を受けることが好ましい。最後のコマンドが第２コマンドである場合、これ以上の残余出力データがないため、第２コマンド入力は意味がないからである。
【０１２４】
制御部１４は、最初に第２コマンドの入力を受けることができる。例えば、制御部１４は、第２コマンド、第１コマンド、第２コマンド、第１コマンドの順に交互に入力を受ける。制御部１４は、最初に第１コマンドの入力を受けることもできる。例えば、制御部１４は、第１コマンド、第２コマンド、第１コマンドの順に交互に入力を受ける。
【０１２５】
整理すると、符号化対象データ２０が出力される間、制御部１４は、第２コマンド又は第１コマンドが最初のコマンドになるように第２コマンド及び第１コマンドの入力を交互に受けることができ、第１コマンドが最後のコマンドであることが好ましい。図１４は、第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置１０の動作について説明するためのタイミング図である。
【０１２６】
第２コマンド６０４は、直前の第１コマンド６０２によるデータ出力６２２が完了した後、Ｉ／Ｏピンを介して入力される。制御部１４は、第２コマンド６０４の入力に応答し、符号化部１６に内部トリガー信号１９を提供し、符号化部１６は、次の第１コマンドが入力されると、次の符号化のための第１ランダムデータにより符号化部１６の符号化モードを自律的に決定する。ここで、自律的に決定する際に、符号化部１６が符号化部１６の符号化モードスイッチングが必要であると決定した場合、内部トリガー信号１９を受けた後にスイッチングを完了することに要求される時間をｔＳＷ６０６ａと記載する。
【０１２７】
上述したように、符号化部１６は、第２コマンド６０４が入力されてもモード決定の基礎データにより符号化モードがスイッチングされないこともある。図１４で、符号化部１６で一番目の第２コマンド６０４の入力後には符号化モードがスイッチングされたが、二番目の第２コマンド６０４の入力後には符号化モードがスイッチングされない。
【０１２８】
図１５に示すように、第１コマンド６０２は２個のサイクルを有する。即ち、第１コマンド６０２は、リード開始コマンド「００ｈ」及びリード終了（ｃｏｎｆｉｒｍ）コマンド「３０ｈ」を含み得る。また、出力対象データのアドレス情報はリード開始コマンドとリード終了コマンドとの間に含まれる。第１コマンド６０２の入力に応答してデータ格納装置１０から出力されるデータは、リードイネーブルメント（ＲＥ）ピンの信号がトグル（ｔｏｇｇｌｅ）されることによりそのアドレスが増加する。
【０１２９】
図１６は、本発明の一実施形態による第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置１０で符号化部のスイッチング動作の最大許容時間を説明するためのタイミング図である。
【０１３０】
データ格納装置１０のＩ／Ｏピンに入力されたコマンドは、ライトイネーブルメント（ＷＥ）ピンに印加された信号が高く移動するときにラッチ（ｌａｔｃｈ）される。フラッシュメモリチップに定められている通り、ライトイネーブルメント（ＷＥ）ピンに印加された信号が高く移動するときＩ／Ｏピンに入力されたデータのタイプは、コマンドラッチピン（ＣＭＤ）及びアドレスラッチピン（ＡＬＥ）に印加された信号状態により把握することができる。
【０１３１】
図１６に示すように、直前の第１コマンドの入力に応答してデータ出力が完了した後、Ｉ／Ｏピンに入力された第２コマンドは、ＷＥ信号（Ｓ７００）の立ち上がりエッジ（Ｒｉｓｉｎｇ  ｅｄｇｅ）で入力される。この場合、制御部１４の内部トリガー信号１９を符号化部１６に提供する（Ｓ７０１）。次に、ＷＥ信号の立ち上がりエッジ（Ｓ７０２、Ｓ７０４、及びＳ７０６）によりコマンド「００ｈ」、「ａｄｄｒｅｓｓ」、「３０ｈ」命令がフラッシュメモリチップに定められたタイミングにより順次に入力される。次に、第１コマンド６０２によるデータ出力が行われる。第２コマンド６０４の入力後、次の第１コマンド６０２の入力に応答してデータ出力がなされる前に符号化部１６のスイッチング動作が行われることが好ましい。即ち、ｔＳＷ６０６ａの最大許容期間（ＭＡＸ  ｔＳＷ）はＳ７００時点からＳ７０８時点に至る。
【０１３２】
図１６に示すように、符号化部１６のスイッチングが行われるための充分な時間が確保されることが分かる。
【０１３３】
図１７は、本発明の一実施形態による符号化対象データを同一サイズに分割した第１コマンド（ＲＥＡＤ）及び第２コマンド（ＴＲ）の入力を交互に受けるデータ格納装置１０の動作について説明するためのタイミング図である。
【０１３４】
図１７に示すように、第１コマンドによりメモリ部１２から出力される各符号化対象のデータフラグメント（６２０、６２２、６２４、６２６）のサイズは同一である。勿論、最後の第１コマンド６０２によりメモリ部１２から出力される符号化対象のデータフラグメントは、既に出力されて残ったデータのみが出力されるため、他の符号化対象のデータフラグメントのサイズと異なることがある。
【０１３５】
即ち、第２コマンド６０４は一定のアドレス間隔で入力される。１番目の第２コマンドが入力される（Ｓ９００）ときには符号化部１６がオフ−状態からオン−状態にスイッチングされるが、２番目の第２コマンド（Ｓ９０２）及び３番目の第２コマンドが入力される（Ｓ９０４）ときには符号化部１６がスイッチングされず、４番目の第２コマンドが入力される（Ｓ９０６）ときには符号化部１６が再びスイッチングされることが分かる。既に説明したように、同一の符号化対象データ２０の再リード要求によりデータが再出力される場合、図１７と異なるように符号化部１６の符号化モードスイッチングが行われる。
【０１３６】
図１８に示すように、データ格納装置１０は、第２コマンド６０４及び符号化対象データ２０を同一ではないサイズに分割した第１コマンド６０２の入力を交互に受ける。第１コマンド６０２によりメモリ部１２から出力される各符号化対象のデータフラグメント（６３０、６３２、６３４）のサイズはそれぞれ異なる。図１８は、一番目の第２コマンドが入力されるとき（Ｓ９１０）、二番目の第２コマンドが入力されるとき（Ｓ９１４）、及び三番目の第２コマンドが入力されるとき（Ｓ９１４）のいずれも符号化部１６の符号化モードがスイッチングされていることを示す。図１８に示す符号化モードスイッチングケースは、符号化部１６の符号化モードを自律的に決定した結果により毎回異なる。
【０１３７】
上述したように、データ格納装置１０は、第２コマンド又は第３コマンドの入力を受けて符号化部１６の符号化モードをスイッチングすることもでき、しないこともできる。しかし、符号化部１６の符号化モードをスイッチングするためには、第２コマンド又は第３コマンドの入力を受けなければならない。また、データ格納装置１０は、ホスト装置６０から入力されたリード要求によりデータが出力される間に少なくとも一度は符号化部１６の符号化モードをスイッチングする。上記で言及した動作を行うことによって少なくとも一つの実施形態によるデータ格納装置１０は、符号化データ出力機能を実行することができる。また、外部から入力される第２コマンド又は第３コマンドによって符号化モードの間のスイッチングが行われる。従って、一部データが非正常的に符号化されるか又は符号化モードの間のスイッチングの遅延により非符号化されて出力される問題を防止することができる。
【０１３８】
以下、一つの符号化対象データ２０の出力のために第３コマンドの入力を２回以上受けるデータ格納装置１０の動作について図１９及び図２０を参照して説明する。
【０１３９】
制御部１４が第３コマンド６０６の入力を受けて内部リード信号１８及び内部トリガー信号１９を出力するため、第３コマンド６０６は第１コマンド６０２及び第２コマンド６０４が一つに併合したコマンドとして理解することができる。
【０１４０】
図１９は、第３コマンド６０６がアドレス情報を含まない場合を示す。データ格納装置１０は、アドレス情報が第３コマンドに含まれなくても符号化対象データ２０を分割して出力するため、第３コマンド６０６の入力に応答して要求される（又は予め定められた）サイズを有するデータを出力するように作動する。これとは異なり、データ格納装置１０は、次の第３コマンド６０６の入力を受けると、第３コマンド６０６の入力に応答して直前の出力の終了時点からデータ出力を再開するように作動することができ、一時的にデータ出力を停止するように作動することもできる。
【０１４１】
データ格納装置１０は、第３コマンドの入力を受けて符号化部１６の符号化モードを決定してメモリ部１２からデータが出力されるように準備する動作を行う。メモリ部１２から実際にデータが出力される時点はリードイネーブルメント（ＲＥ）ピンの信号がトグル（ｔｏｇｇｌｅ）される時点である（図１６を参照）。
【０１４２】
従って、第３コマンド６０６の入力に応答して内部トリガー信号１９が符号化部１６に伝達される時点と、第３コマンド６０６の入力に応答してデータがメモリ部１２から出力される時点との間には時間差が存在する。従って、符号化部１６は、内部トリガー信号１９の提供により自律的に決定した符号化モードへの変更を、内部トリガー信号１９と同時に提供された内部リード信号１８の提供によるメモリ部からのデータ出力時点の以前に完了すると、第３コマンド６０６の入力を受けて決定された符号化部１６の符号化モードにより符号化されるか又は符号化されないデータ出力を支援することができる。
【０１４３】
図２０は、図１９に示すものとは異なり、第３コマンド６０６の入力を受けた後、出力されるデータのアドレスが別途に入力される場合を示す。コマンドとアドレスの入力は、コマンドラッチ端子及びアドレスラッチ端子に印加された信号状態によって区別される。この場合、データ格納装置１０は、第３コマンド６０６の入力を受けた後、別途に入力されたアドレス情報に符合するデータのみを出力する。
【０１４４】
データ格納システムは、例えばメモリカードのようなカードである。具体的には、本実施形態のデータ格納システムは、例えば携帯電話機、双方向ラジオ通信システム（ｔｗｏ−ｗａｙ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｓｙｓｔｅｍ）、単方向ポケットベル（ｏｎｅ−ｗａｙ  ｐａｇｅｒ）、双方向ポケットベル（ｔｗｏ−ｗａｙ  ｐａｇｅｒ）、パーソナルコミュニケーションシステム（ｐｅｒｓｏｎａｌ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｓｙｓｔｅｍ）、携帯用のコンピュータ（ｐｏｒｔａｂｌｅ  ｃｏｍｐｕｔｅｒ）、携帯情報端末（ＰＤＡ：Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｃｅ）、オーディオ及び／又はビデオプレーヤ、デジタル及び／又はビデオカメラ、ナビゲーションシステム（ｎａｖｉｇａｔｉｏｎ  ｓｙｓｔｅｍ）、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）などの電子装置に使用される所定の業界標準（ｉｎｄｕｓｔｒｙ  ｓｔａｎｄａｒｄ）を充足するカードである。しかし、これらに限定されるものではなく、本実施形態によるデータ格納システムは、例えばメモリスティック（ｓｔｉｃｋ）のような多様な形態で実現される。
【０１４５】
先ず、図２１を参照して本発明の一実施形態によるデータ格納システム５０の動作について説明する。
【０１４６】
本実施形態のデータ格納システム５０のコントローラ４０は、符号化対象データ２０のうちの一部に対するリードを要求する入力を受けて第３コマンド６０６を生成する。リード要求は符号化対象データ２０のうちの一部に対するものであるため、符号化対象データ２０の全てを出力するために、コントローラ４０は、リード要求を２回以上受けなければならない。データ格納装置１０は、第３コマンド６０６の入力に応答して出力されるデータの符号化に関連するモード決定の基礎データを生成する。次に、データ格納装置１０は、モード決定の基礎データに基づいて決定した符号化モードにより符号化対象データ２０の一部を符号化して出力する。第３コマンド６０６によるデータ格納装置１０の動作については上述したので重複する説明は省略する。
【０１４７】
リード要求にトリガータイプが含まれる場合、トリガータイプが含まれた第３コマンド６０６を生成することができる。この場合、上記で説明したように、データ格納装置１０は、トリガータイプに符合するコーディングポリシーにより第３コマンド６０６の入力に応答してデータを符号化することを自律的に決定する。トリガータイプがリード要求を含まなくても、コントローラ４０は、符号化対象データ２０の格納位置により決定されるトリガータイプを第３コマンド６０６に含めることができる。
【０１４８】
以下、図２２及び図２３を参照して本発明の他の実施形態によるデータ格納システム５０の動作について説明する。
【０１４９】
本実施形態よるデータ格納システム５０は、符号化対象データ２０を全て出力するためにコントローラ４０に要求されるリード要求が一つのみである点で図２１に示すデータ格納システムとは異なる。
【０１５０】
先ず、図２２に示すデータ格納システム５０で、コントローラ４０は、リードを要求する入力を１回受けて、分割された符号化対象データを出力するために第３コマンド６０６を２回以上順次に出力する。例えば、図２２に示すように、それぞれの出力範囲が分割された第３コマンド６０６は、１０ＫＢ（Ｋｉｌｏ  Ｂｙｔｅ）だけのデータをそれぞれ出力するようにするものである。出力範囲が分割された第３コマンド６０６の入力を受けたデータ格納装置１０が符号化対象データ２０のフラグメントを出力することにおいて、符号化モードを自律的に決定して決定結果により符号化して出力する点については上述した。
【０１５１】
データ格納装置１０がデータ符号化するか否かを自律的に決定する際に適用するコーディングポリシー情報はリード要求を含み得る。また、コントローラ４０は、リード要求と別途にコーディングポリシーを設定又は変更するためにデータ格納装置１０にコーディングポリシー変更のためのコマンドを提供することができる。
【０１５２】
コーディングポリシーがリード要求に含まれなくても、コーディングポリシーは、符号化対象データ２０の格納領域により決定され（Ｓ４０）、符号化対象データは、決定されたコーディングポリシーにより符号化される。図２２に示すように、符号化対象データ２０が、タイプ１のコーディングポリシーが適用される領域に格納された場合、コントローラ４０は、リード要求がコーディングポリシーに対する情報を含まなくてもコーディングポリシーをタイプ１と決定することができる。
【０１５３】
次に、図２３に示すデータ格納システム５０で、コントローラ４０は、符号化対象データに対するリードを要求する入力を受けて第２コマンド及び符号化対象データの出力範囲が分割された第１コマンドを交互に出力する。
【０１５４】
図２３に示すように、コントローラ４０は、リードを要求する入力を受けて符号化対象データ２０の出力範囲が１０ＫＢずつ分割された第１コマンド６０２及び第２コマンド６０４を交互に出力する。
【０１５５】
出力範囲が分割された第１コマンド６０２及び第２コマンド６０４の入力を交互に受ける場合、データ格納装置１０は、第２コマンド６０４に応答して符号化モードを自律的に決定し、決定した符号化モードにより符号化対象データ２０のフラグメントを符号化して出力する点については上述した。
【０１５６】
以上、図面を参照しながら本発明の実施形態について詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【０１５７】
１０    データ格納装置
１２    メモリ部
１４    制御部
１６    符号化部
１８    内部リード信号
１９    内部トリガー信号
２０    符号化対象データ
２２    元データ
３０    符号化データ
４０    コントローラ
５０    データ格納システム
６０    ホスト装置
７０、８０    コンピュータシステム
１２０    保安領域
１４０    コマンドデコーダ
１６０    符号化決定部
１６１    符号化モード決定器
１６２    符号化器制御信号生成器
１６３    コーディングポリシーリスト格納部
１６４    コーディングポリシーリストロード部
１６５、１７５、１７６    ランダムデータ生成器
１６８    符号化器
１６９、１７０、１７２    符号化モジュール
１７１    ＭＵＸ  
１７３    バイパスバス
１７４    プログラマブル符号化モジュール
１７８    被演算子維持データ出力器
１７９    プログラマブルランダムデータ生成部
１８０    論理演算
６０２    第１コマンド
６０４    第２コマンド
６０６    第３コマンド
６０６ａ    ｔＳＷ
６２０、６２２、６２４、６２６、６３０、６３２、６３４    符号化対象データフラグメント
【図１】
0006039237.tif 000002
【図２】
0006039237.tif 000003
【図３】
0006039237.tif 000004
【図４】
0006039237.tif 000005
【図５】
0006039237.tif 000006
【図６】
0006039237.tif 000007
【図７】
0006039237.tif 000008
【図８】
0006039237.tif 000009
【図９】
0006039237.tif 000010
【図１０】
0006039237.tif 000011
【図１１】
0006039237.tif 000012
【図１２】
0006039237.tif 000013
【図１３】
0006039237.tif 000014
【図１４】
0006039237.tif 000015
【図１５】
0006039237.tif 000016
【図１６】
0006039237.tif 000017
【図１７】
0006039237.tif 000018
【図１８】
0006039237.tif 000019
【図１９】
0006039237.tif 000020
【図２０】
0006039237.tif 000021
【図２１】
0006039237.tif 000022
【図２２】
0006039237.tif 000023
【図２３】
0006039237.tif 000024