(57)【要約】【課題】論物変換テーブルのデータ量を削減する。【解決手段】一実施形態によれば、第１データと第２データとの対応関係に関するデータを圧縮するデータ処理装置は、複数の符号化処理のうちのいずれかを用いて前記第２データそれぞれを符号化することで、前記第２データそれぞれの符号化データを生成する圧縮部と、前記複数の第２データのうちの１つを選択し、前記選択中の第２データに対する第１予測値を求める第１の予測部と、前記圧縮部が前記選択中の第２データに対して実行する符号化処理を前記第１予測値に基づいて前記複数の符号化処理のなかから決定する決定部と、を備え、前記圧縮部は、前記決定部で決定された符号化処理に従って前記第２データそれぞれを符号化することで、前記対応関係に関するデータの圧縮データを生成する。【選択図】図１
2019102027.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１データそれぞれと複数の第２データそれぞれとの対応関係に関するデータを圧縮するデータ処理装置であって、
複数の符号化処理のうちのいずれかを用いて前記第２データそれぞれを符号化することで、前記第２データそれぞれの符号化データを生成する圧縮部と、
前記複数の第２データのうちの１つを選択し、前記選択中の第２データに対して第１予測値を求める第１の予測部と、
前記圧縮部が前記選択中の第２データに対して実行する符号化処理を前記第１予測値に基づいて前記複数の符号化処理のなかから決定する決定部と、
を備え、
前記圧縮部は、前記決定部で決定された符号化処理に従って前記第２データそれぞれを符号化することで、前記対応関係に関するデータの圧縮データを生成する
データ処理装置。
【請求項２】
前記決定部は、前記選択中の第２データと当該選択中の第２データに対して前記第１の予測部が算出した前記第１予測値との差分値に基づいて、前記圧縮部が前記選択中の第２データに対して実行する前記符号化処理を前記複数の符号化処理のなかから決定する請求項１に記載のデータ処理装置。
【請求項３】
前記圧縮部は、前記差分値を前記符号化データとして出力する第１の符号化処理と、前記選択中の第２データを前記符号化データとして出力する第２の符号化処理とを選択的に実行し、
前記決定部は、前記差分値の絶対値が所定の閾値以下の場合、前記圧縮部が前記選択中の第２データに対して実行する前記符号化処理を前記第１の符号化処理に決定し、前記差分値の絶対値が所定の閾値より大きい場合、前記圧縮部が前記選択中の第２データに対して実行する前記符号化処理を前記第２の符号化処理に決定する
請求項２に記載のデータ処理装置。
【請求項４】
前記決定部は、前記選択中の第２データに対して前記圧縮部が実行する符号化処理として決定した符号化処理を特定するためのフラグを設定し、
前記符号化データは、前記フラグを更に含む
請求項３に記載のデータ処理装置。
【請求項５】
前記圧縮部は、前記フラグを前記符号化データとして出力する第３の符号化処理をさらに選択的に実行し、
前記決定部は、前記差分値が０である場合、前記圧縮部が前記選択中の第２データに対して実行する前記符号化処理を前記第３の符号化処理に決定する
請求項４に記載のデータ処理装置。
【請求項６】
前記第１の予測部は、前記複数の第２データのうち最初に選択された第２データに関しては、所定の値を前記第１予測値として選択するか、若しくは、前記第１予測値を求めないこととし、２番目以降に選択された第２データに関しては、前記複数の第２データのうちの他の第２データに基づいて前記第１予測値を算出する請求項１に記載のデータ処理装置。
【請求項７】
前記第１の予測部は、前記他の第２データが有効データである場合、第１のパラメータを用いて前記第１予測値を算出し、前記他の第２データが無効データである場合、前記第１のパラメータとは異なる第２のパラメータを用いて前記第１予測値を算出する請求項６に記載のデータ処理装置。
【請求項８】
前記第１の予測部は、前記他の第２データが無効データである場合であって且つ前記選択中の第２データが有効データである場合、前記複数の第２データのうちの有効データである更に他の第２データに基づいて前記第１予測値を算出する請求項６に記載のデータ処理装置。
【請求項９】
前記第１の予測部は、前記更に他の第２データに基づいて前記第１予測値を算出したことを示す付加情報を生成し、
前記圧縮部は、前記付加情報が生成された前記第２データの前記符号化データに前記付加情報を含める
請求項８に記載のデータ処理装置。
【請求項１０】
前記対応関係に関するデータは、ルックアップテーブルである請求項１に記載のデータ処理装置。
【請求項１１】
複数の復号処理のうちのいずれかを用いて複数の前記符号化データそれぞれを復号することで、前記圧縮データを伸張して前記対応関係に関するデータを復元する伸張部と、
前記複数の符号化データのうちの１つを選択し、前記選択中の符号化データを解析し、当該解析の結果に基づいて、前記選択中の符号化データに対して前記伸張部が実行する復号処理を前記複数の復号処理のなかから決定する解析部と、
前記選択中の符号化データの第２予測値を求める第２の予測部と、
を備え、
前記伸張部は、前記解析部で決定された復号処理に従って前記選択中の符号化データを復号するとともに、前記解析部による前記解析の結果に基づき、前記第２データが含まれていない前記選択中の符号化データに対しては前記第２の予測部で算出された前記第２予測値を用いて復号する
請求項１に記載のデータ処理装置。
【請求項１２】
各符号化データは、各第２データに対して前記圧縮部が実行した符号化処理を特定するためのフラグが含まれ、
前記解析部は、前記選択中の符号化データを解析することで、当該選択中の符号化データに含まれる前記フラグを特定し、前記特定したフラグに基づいて、前記選択中の符号化データに対して前記伸張部が実行する前記復号処理を前記複数の復号処理のなかから決定する
請求項１１に記載のデータ処理装置。
【請求項１３】
前記第２の予測部は、前記複数の符号化データのうち最初に選択された符号化データに関しては、所定の値を前記第２予測値として選択するか、若しくは、前記第２予測値を求めないこととし、２番目以降に選択された符号化データに関しては、前記複数の符号化データのうちの他の符号化データに基づいて前記第２予測値を算出する請求項１１に記載のデータ処理装置。
【請求項１４】
前記第２の予測部は、前記他の符号化データが有効データである場合、第３のパラメータを用いて前記第２予測値を算出し、前記他の符号化データが無効データである場合、前記第３のパラメータとは異なる第４のパラメータを用いて前記第２予測値を算出する請求項１３に記載のデータ処理装置。
【請求項１５】
前記第２の予測部は、前記他の符号化データが無効データである場合であって且つ前記選択中の符号化データが有効データである場合、前記複数の符号化データのうちの有効データである更に他の符号化データに基づいて前記第２予測値を算出する請求項１３に記載のデータ処理装置。
【請求項１６】
前記第１の予測部は、前記複数の第２データのうち最初に選択された第２データに関しては、所定の値を前記第１予測値として選択するか、若しくは、前記第１予測値を求めないこととし、２番目以降に選択された第２データに関しては、前記複数の第２データのうちの他の第２データに基づいて前記第１予測値を算出し、
前記第１の予測部は、前記他の第２データが無効データである場合であって且つ前記選択中の第２データが有効データである場合、前記複数の第２データのうちの有効データである更に他の第２データに基づいて前記第１予測値を算出するとともに、前記更に他の第２データに基づいて前記第１予測値を算出したことを示す付加情報を生成し、
前記圧縮部は、前記付加情報が生成された前記第２データの前記符号化データに前記付加情報を含め、
前記第２の予測部は、前記解析部による解析の結果、前記選択中の符号化データに前記付加情報が含まれている場合、前記複数の符号化データのうちの前記有効データである前記他の符号化データに基づいて前記第２予測値を算出する
請求項１１に記載のデータ処理装置。
【請求項１７】
前記第１データは、メモリに関する論理アドレス空間上の論理アドレスであり、
前記第２データは、前記メモリに関する物理アドレス空間上の物理アドレスであり、
前記対応関係に関するデータは、前記物理アドレスと前記論理アドレスとの対応関係を保持するデータである
請求項１に記載のデータ処理装置。
【請求項１８】
請求項１に記載のデータ処理装置と、
前記データ処理装置から出力された前記圧縮データを格納する不揮発性メモリと、
を備えるメモリシステム。
【請求項１９】
複数の第１データそれぞれと複数の第２データそれぞれとの対応関係に関するデータを圧縮するデータ処理方法であって、
複数の符号化処理のうちのいずれかを用いて前記第２データそれぞれを符号化することで、前記第２データそれぞれの符号化データを生成する第１ステップと、
前記複数の第２データのうちの１つを選択し、前記選択中の第２データに対して第１予測値を求める第２ステップと、
前記選択中の第２データに対して実行する符号化処理を前記第１予測値に基づいて前記複数の符号化処理のなかから決定する第３ステップと、
を備え、
前記第３ステップは、前記決定された符号化処理に従って前記第２データそれぞれを符号化することで、前記対応関係に関するデータの圧縮データを生成する
データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の実施形態は、一般的に、データ処理装置、メモリシステム及びデータ処理方法に関する。
【背景技術】
【０００２】
通常、記憶装置は、データ管理のために、ホストやプログラム等がデータにアクセスする際に使用する論理アドレスと、実際にデータが格納されているデバイス上の物理位置を示す物理アドレスとを対応させるためのアドレス変換テーブル（論物変換テーブルともいう）を保持している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−３０１８８５号公報
【特許文献２】特開２０１０−１４６３２６号公報
【特許文献３】特開２０１３−１９６１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、論物変換テーブルのデータ量を削減することが可能なデータ処理装置、メモリシステム及びデータ処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一実施形態によれば、複数の第１データそれぞれと複数の第２データそれぞれとの対応関係に関するデータを圧縮するデータ処理装置は、複数の符号化処理のうちのいずれかを用いて前記第２データそれぞれを符号化することで、前記第２データそれぞれの符号化データを生成する圧縮部と、前記複数の第２データのうちの１つを選択し、前記選択中の第２データに対して第１予測値を求める第１の予測部と、前記圧縮部が前記選択中の第２データに対して実行する符号化処理を前記第１予測値に基づいて前記複数の符号化処理のなかから決定する決定部とを備え、前記圧縮部は、前記決定部で決定された符号化処理に従って前記第２データそれぞれを符号化することで、前記対応関係に関するデータの圧縮データを生成する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態に係るデータ処理装置の概略構成例を示すブロック図である。
【図２】図２は、第１の実施形態に係る入力データの入力から圧縮データの出力までの流れの一例を説明するための図である。
【図３】図３は、第１の実施形態に係るデータ処理装置が実行する圧縮動作の一例を示すフローチャートである。
【図４】図４は、第１の実施形態に係る予測値算出動作の一例を示すフローチャートである。
【図５】図５は、第１の実施形態に係る符号化処理決定動作の一例を示すフローチャートである。
【図６】図６は、第１の実施形態に係る圧縮動作の一例を示すフローチャートである。
【図７】図７は、第２の実施形態に係る予測値算出動作の一例を示すフローチャートである。
【図８】図８は、第３の実施形態に係る入力データの入力から圧縮データの出力までの流れの一例を説明するための図である。
【図９】図９は、第３の実施形態に係る予測値算出動作の一例を示すフローチャートである。
【図１０】図１０は、第４の実施形態に係るデータ処理装置の概略構成例を示すブロック図である。
【図１１】図１１は、第４の実施形態に係るデータ処理装置が実行する伸張動作の一例を示すフローチャートである。
【図１２】図１２は、第４の実施形態に係る解析動作の一例を示すフローチャートである。
【図１３】図１３は、第４の本実施形態に係る予測値算出動作の一例を示すフローチャートである。
【図１４】図１４は、第４の本実施形態に係る予測値算出動作の他の一例を示すフローチャートである。
【図１５】図１５は、第４の本実施形態に係る予測値算出動作の更に他の一例を示すフローチャートである。
【図１６】図１６は、第４の実施形態に係る伸張動作の一例を示すフローチャートである。
【図１７】図１７は、第５の実施形態に係るメモリシステムの概略構成例を示すブロック図である。
【図１８】図１８に、第５の実施形態に係るメモリシステムのより具体的な構成例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態に係るデータ処理装置、メモリシステム及びデータ処理方法を詳細に説明する。なお、以下の実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
まず、第１の実施形態について、図面を参照して詳細に説明する。図１は、第１の実施形態に係るデータ処理装置の概略構成例を示すブロック図である。図１に示すように、第１の実施形態に係るデータ処理装置１００は、予測部１０１、決定部１０２及び圧縮部１０３を備える。予測部１０１、決定部１０２及び圧縮部１０３は、例えばＳｏＣ（System-on-a-Chip）等のハードウェアで実現されてもよい。
【０００９】
データ処理装置１００には、圧縮対象のデータを含むデータ（以下、入力データという）が入力される。圧縮対象のデータは、例えば、メモリに関する物理アドレス空間上の物理アドレスと論理アドレス空間上の論理アドレスとの対応関係を保持するルックアップテーブル（以下、論物変換テーブルという）のような、互いに関連するデータの対応関係に関するデータの一部又は全部である。例えば入力データを論物変換テーブルとした場合、圧縮対象のデータを、論物変換テーブルに含まれる一部又は全部の物理アドレスとすることができる。以下では、圧縮対象のデータを、論物変換テーブルにおける物理アドレスとした場合を例に挙げて説明する。その場合、以下の説明におけるアドレスデータとは、論理アドレスに対応付けられた物理アドレスを意味する。また、圧縮対象のデータを物理アドレスとした場合、入力データに論理アドレスが含まれていることは必須ではない。入力データに論理アドレスを含めない場合、入力データ中の物理アドレスに対応する論理アドレスは、別途所定のメモリを用いて管理されてもよいし、後述する圧縮部１０３が生成する圧縮データに「論理アドレス０ｘ００００００００から０ｘＦＦＦＦＦＦＦＦまでの物理アドレス」や「論理アドレス０ｘ００００００００から１０００個分の物理アドレス」などのメタデータを付加する構成により管理されてもよい。
【００１０】
予測部１０１は、データ処理装置１００に入力された入力データに含まれる圧縮対象のデータ（アドレスデータ）に対する予測値を算出する。具体的には、予測部１０１は、入力データにおける複数のアドレスデータを、例えばラウンドロビン方式に従って順番に処理対象のデータとし、現時点で処理対象としているアドレスデータの予測値を、入力データにおける他のアドレスデータに基づいて算出する。例えば、予測部１０１は、現時点で処理対象としているアドレスデータの予測値を、当該アドレスデータよりも前に処理対象とされて予測値が算出されたアドレスデータ（以下、処理済みアドレスという）に基づいて算出する。なお、予測値とは、処理対象のアドレスデータとして予測された物理アドレスである。
【００１１】
例えば、予測部１０１は、ｎ（ｎは１以上の整数）番目のアドレスデータａｄｒ（ｎ）の予測値ｐｒｅｄ（ｎ）を、当該アドレスデータａｄｒ（ｎ）よりｍ（ｍは１以上ｎ−１以下の整数）つ前に処理された処理済みアドレスａｄｒ（ｎ−ｍ）に基づいて算出する。これにより算出される予測値ｐｒｅｄ（ｎ）は、例えば、ａｄｒ（ｎ−ｍ）＋α（αは任意の値）とすることができる。具体的には、ｍが１である場合を例に挙げると、予測部１０１は、処理対象であるアドレスデータａｄｒ（ｎ）の直前に処理された処理済みアドレスａｄｒ（ｎ−１）に基づいて、アドレスデータａｄｒ（ｎ）の予測値ｐｒｅｄ（ｎ）（＝ａｄｒ（ｎ−１）＋α）を算出する。
【００１２】
ただし、処理対象のアドレスデータが１番目のアドレスデータａｄｒ（１）である場合、予測値算出の基となる処理済みアドレスが存在しない。そこで、そのような場合には、１番目のアドレスデータａｄｒ（１）に対する予測値ｐｒｅｄ（１）に、予め定めておいた所定の予測値を用いることとしてもよいし、１番目のアドレスデータａｄｒ（１）に対しては予測値を求めないこととしてもよい。
【００１３】
また、ｍは固定された値でなくてもよい。例えば入力データにおける複数のアドレスデータを２以上のグループに区分けし、それぞれのグループに属するアドレスデータに対して同じ処理済みアドレスを使用して予測値が算出されるように、ｍが設定されてもよい。また、入力データにおける１番目のアドレスデータａｄｒ（１）から得られた処理済みアドレスａｄｒ（１）に基づいて、２番目以降のアドレスデータａｄｒ（ｎ）に対する予測値ｐｒｅｄ（ｎ）（＝ａｒｄ（１）＋αｎ）が算出されてもよい。その場合、ｍは、処理対象のアドレスデータａｄｒ（ｎ）と１番目のアドレスデータａｄｒ（１）との処理順序の距離、すなわち、ｍ＝ｎ−１となる。
【００１４】
決定部１０２は、処理対象のアドレスデータａｄｒ（ｎ）と予測部１０１によって算出された予測値ｐｒｅｄ（ｎ）との差分値ｄｉｆｆ（ｎ）に基づいて、圧縮部１０３が実行する符号化処理を決定する。例えば決定部１０２は、差分値ｄｉｆｆ（ｎ）の絶対値を閾値判定することで、圧縮部１０３が実行する符号化処理を決定する。その場合、決定部１０２は、例えば、差分値ｄｉｆｆ（ｎ）の絶対値が予め設定しておいた閾値以下であれば第１の符号化処理を圧縮部１０３が当該アドレスデータａｄｒ（ｎ）に対して実行する符号化処理として決定し、差分値ｄｉｆｆ（ｎ）の絶対値が閾値よりも大きければ第１の符号化処理とは異なる第２の符号化処理を圧縮部１０３が当該アドレスデータａｄｒ（ｎ）に対して実行する符号化処理として決定する。
【００１５】
なお、閾値判定に用いる閾値は、予め定められた値であってよい。また、閾値は、ビット数（Ｎ（Ｎは自然数）ビット）であってもよいし、実数値であってもよい。さらに、閾値は、動作の途中で変更されてもよい。例えば、動作の過程で差分値ｄｉｆｆ（ｎ）の絶対値が閾値（Ｎビット）以下となった判定結果が一定回数以上連続した場合、決定部１０２は、閾値を１デクリメントしてＮ−１ビットとし、その後の動作において、差分値ｄｉｆｆ（ｎ）の絶対値が閾値（Ｎ−１ビット）より大きくなった場合に、閾値をＮビットにリセットするように動作してもよい。
【００１６】
また、決定部１０２は、差分値ｄｉｆｆ（ｎ）が０と等しい場合には、第１及び第２の符号化処理とは異なる第３の符号化処理を、圧縮部１０３が当該アドレスデータａｄｒ（ｎ）に対して実行する符号化処理として決定してもよい。また、例えば、決定部１０２は、不良ブロックのアドレスなど、特定のアドレスが処理対象のアドレスデータである場合には、上述した符号化処理とは異なる他の符号化処理（第４の符号化処理という）を、圧縮部１０３の符号化処理として決定してもよい。
【００１７】
さらに、決定部１０２は、処理対象のアドレスデータａｄｒ（ｎ）に対して設定された符号化処理を特定するための情報を、各アドレスデータａｄｒ（ｎ）に対して設定する。この情報には、例えばフラグ（以下、処理フラグｆｌａｇ（ｎ）という）を用いることができる。
【００１８】
処理フラグｆｌａｇ（ｎ）には、圧縮部１０３が実行する符号化処理を個別に特定するために必要十分なビット数のフラグが用いられる。例えば、圧縮部１０３が３種類の符号化処理を実行する場合、処理フラグｆｌａｇ（ｎ）には、３種類以上の値を取ることが可能な２ビットのフラグを用いることができる。以下の説明では、例として、処理フラグｆｌａｇ（ｎ）に２ビットフラグを用い、第１の符号化処理を示す処理フラグｆｌａｇ（ｎ）を“００”とし、第２の符号化処理を示す処理フラグｆｌａｇ（ｎ）を“０１”とし、第３の符号化処理を示すフラグを“１０”とする。
【００１９】
圧縮部１０３は、決定部１０２で決定された符号化処理に従って入力データを圧縮し、それにより得られた圧縮データを出力する。具体的には、圧縮部１０３は、入力データに含まれるアドレスデータａｄｒ（ｎ）それぞれに対して決定部１０２が決定した符号化処理（第１の符号化処理、第２の符号化処理、第３の符号化処理等のいずれか）を実行することで、入力データよりもデータ量が削減された圧縮データを生成し、この生成した圧縮データを出力する。
【００２０】
例えば、第１の符号化処理では、圧縮部１０３は、処理対象のアドレスデータａｄｒ（ｎ）と予測部１０１によって算出された予測値ｐｒｅｄ（ｎ）との差分値ｄｉｆｆ（ｎ）を符号化する。具体的には、圧縮部１０３は、処理対象のアドレスデータａｄｒ（ｎ）と予測値ｐｒｅｄ（ｎ）との差分値ｄｉｆｆ（ｎ）と、当該アドレスデータａｄｒ（ｎ）に対して設定された処理フラグｆｌａｇ（ｎ）（＝００）とを、処理対象のアドレスデータａｄｒ（ｎ）に対して実行した第１の符号化処理の結果（符号化データ）として出力する。
【００２１】
また、第２の符号化処理では、圧縮部１０３は、処理対象のアドレスデータａｄｒ（ｎ）を符号化する。具体的には、圧縮部１０３は、処理対象のアドレスデータａｄｒ（ｎ）自体と、当該アドレスデータａｄｒ（ｎ）に対して設定された処理フラグｆｌａｇ（ｎ）（＝０１）とを、処理対象のアドレスデータａｄｒ（ｎ）に対して実行した第２の符号化処理の結果（符号化データ）として出力する。
【００２２】
さらに、第３の符号化処理では、圧縮部１０３は、処理対象のアドレスデータａｄｒ（ｎ）に対して設定された処理フラグｆｌａｇ（ｎ）を符号化する。すなわち、圧縮部１０３は、処理対象のアドレスデータａｄｒ（ｎ）に対して設定された処理フラグｆｌａｇ（ｎ）（＝１０）を、処理対象のアドレスデータａｄｒ（ｎ）に対して実行した第３の符号化処理の結果（符号化データ）として出力する。
【００２３】
次に、データ処理装置１００が入力データを入力して圧縮データを出力するまでの流れを、図２に示す例を用いて説明する。なお、図２に示す例では、入力データを、論理アドレス１〜１０それぞれに対して対応付けられた物理アドレスとする。また、ｍ＝１、α＝１とし、決定部１０２の閾値判定で用いられる閾値を２ビットとする。さらに、物理アドレス０ｘＦＦＦＦＦＦＦＦを無効アドレスとする。
【００２４】
入力データの生成（又は抽出）に用いられる論物変換テーブルにおいて、論理アドレス１〜３には、連続する物理アドレス０ｘ００００００００〜０ｘ０００００００２が対応付けられている。また、論理アドレス４〜６には、無効アドレスである物理アドレス０ｘＦＦＦＦＦＦＦＦがそれぞれ対応付けられている。さらに、論理アドレス７〜８には、連続する物理アドレス０ｘ０００００００６〜０ｘ０００００００７が対応付けられている。さらにまた、論理アドレス９及び１０には、１つ飛びの物理アドレス０ｘ０００００００９及び０ｘ０００００００Ｂが対応付けられている。
【００２５】
データ処理装置１００に入力された入力データは、予測部１０１、決定部１０２及び圧縮部１０３に直接又は他の部を経由してそれぞれ入力される。予測部１０１は、各物理アドレスを処理対象のアドレスデータａｄｒ（ｎ）（本説明では、ｎは１〜１０までの整数）として、例えばラウンドロビン方式に従って順番に選択する。そして、予測部１０１は、選択中であるアドレスデータａｄｒ（ｎ）に対する予測値ｐｒｅｄ（ｎ）（＝ａｄｒ（ｎ−ｍ）＋α）を順次算出する。図２に示す例では、論理アドレス２〜４に対応付けられた物理アドレスａｄｒ（２）〜ａｄｒ（４）については、連続する物理アドレス０ｘ０００００００１〜０ｘ０００００００３が予測値ｐｒｅｄ（２）〜ｐｒｅｄ（４）として算出され、論理アドレス５〜７に対応付けられた物理アドレスａｄｒ（５）〜ａｄｒ（７）には物理アドレス０ｘ００００００００が予測値ｐｒｅｄ（５）〜ｐｒｅｄ（７）として算出され、論理アドレス８〜９に対応付けられた物理アドレスａｄｒ（８）〜ａｄｒ（９）には連続する物理アドレス０ｘ０００００００７〜０ｘ０００００００８が予測値ｐｒｅｄ（８）〜ｐｒｅｄ（９）として算出され、論理アドレス１０に対応付けられた物理アドレスａｄｒ（１０）には直前の物理アドレスａｄｒ（９）（＝０ｘ０００００００９）の次の物理アドレス０ｘ０００００００Ａが予測値ｐｒｅｄ（９）として算出される。なお、ｎが１である場合、すなわち、先頭のアドレスデータａｄｒ（１）に関しては、それよりも前に処理されたアドレスデータが存在しない。そのため本例では、予測部１０１は、アドレスデータａｄｒ（１）の予測値の算出を行なわず、例えば予め設定しておいた所定の予測値がアドレスデータａｄｒ（１）の予測値ｐｒｅｄ（１）として選択される。その後、予測部１０１は、各アドレスデータａｄｒ（ｎ）に対して算出又は選択した予測値ｐｒｅｄ（ｎ）を決定部１０２に入力する。
【００２６】
決定部１０２は、予測部１０１によって算出された予測値ｐｒｅｄ（ｎ）をアドレスデータａｄｒ（ｎ）から引算することで、それぞれのアドレスデータａｄｒ（ｎ）に関する差分値ｄｉｆｆ（ｎ）（＝ａｄｒ（ｎ）−ｐｒｅｄ（ｎ））を算出する。なお、本例では、先頭のアドレスデータａｄｒ（１）に対する予測値ｐｒｅｄ（１）として、差分値ｄｉｆｆ（１）が閾値（本例では２）以上となる値が設定されているものとする。
【００２７】
つづいて、決定部１０２は、算出した差分値ｄｉｆｆ（ｎ）を閾値判定し、その結果に基づいて、それぞれのアドレスデータａｄｒ（ｎ）に対して圧縮部１０３が実行する符号化処理を特定するための処理フラグｆｌａｇ（ｎ）を特定する。
【００２８】
その後、決定部１０２は、各アドレスデータａｄｒ（ｎ）に対して算出した差分値ｄｉｆｆ（ｎ）と、各アドレスデータａｄｒ（ｎ）に対して特定した処理フラグｆｌａｇ（ｎ）とを決定部１０２に入力する。
【００２９】
圧縮部１０３は、入力された各アドレスデータａｄｒ（ｎ）に対する符号化処理を各アドレスデータａｄｒ（ｎ）に対する処理フラグｆｌａｇ（ｎ）に従って特定する。つづいて、圧縮部１０３は、個々のアドレスデータａｄｒ（ｎ）に対して特定した符号化処理に従って、個々のアドレスデータａｄｒ（ｎ）の符号化処理を実行する。図２に示す例では、例えば、第１の符号化処理が特定されたアドレスデータａｄｒ（９）及びａｄｒ（１０）については、圧縮部１０３は、処理フラグｆｌａｇ（＝００）と、差分値ｄｉｆｆ（９）又はｄｉｆｆ（１０）とを符号化データｃｄ（９）及びｃｄ（１０）として出力する第１の符号化処理を実行する。また、第２の符号化処理が特定されたアドレスデータａｄｒ（１），ａｄｒ（４），ａｄｒ（５），ａｄｒ（６）及びａｄｒ（７）については、圧縮部１０３は、処理フラグｆｌａｇ（＝０１）と、アドレスデータａｄｒ（１）、ａｄｒ（４），ａｄｒ（５），ａｄｒ（６）又はａｄｒ（７）とを符号化データｃｄ（１）、ｃｄ（４），ｃｄ（５），ｃｄ（６）及びｃｄ（７）として出力する第２の符号化処理を実行する。さらに、第３の符号化処理が特定されたアドレスデータａｄｒ（２），ａｄｒ（３）及びａｄｒ（８）については、圧縮部１０３は、処理フラグｆｌａｇ（＝１０）を符号化データｃｄ（２）、ｃｄ（３）及びｃｄ（８）として出力する第３の符号化処理を実行する。
【００３０】
以上のようにして圧縮部１０３から出力された符号化データｃｄ（ｎ）よりなる圧縮データは、データ処理装置１００に入力された入力データよりもデータ量が削減されたデータとなっている。なお、圧縮部１０３から出力された圧縮データは、例えばハフマン符号などの可変長符号化等で更に符号化されてもよい。それにより、さらにデータを圧縮してデータ量を削減することが可能となる。
【００３１】
次に、本実施形態に係るデータ処理装置１００の動作例について、図面を用いて詳細に説明する。図３は、本実施形態に係るデータ処理装置が実行する圧縮動作の一例を示すフローチャートである。
【００３２】
図３に示すように、本実施形態に係る圧縮動作では、データ処理装置１００は、まず、外部から圧縮対象のデータ（入力データ）を入力する（ステップＳ１００）。次に、データ処理装置１００は、入力データを予測部１０１に入力して、入力データにおける各アドレスデータａｄｒ（ｎ）に対して予測値ｐｒｅｄ（ｎ）を算出する（ステップＳ２００）。次に、データ処理装置１００は、入力データ及び予測値ｐｒｅｄ（ｎ）を決定部１０２に入力し、決定部１０２において各アドレスデータａｄｒ（ｎ）と予測値ｐｒｅｄ（ｎ）との差分値ｄｉｆｆ（ｎ）を算出し、算出した差分値ｄｉｆｆ（ｎ）を閾値判定し、この判定結果に基づいて、入力データにおける各アドレスデータａｄｒ（ｎ）に対する符号化処理を決定する（ステップＳ３００）。次に、データ処理装置１００は、入力データ、差分値ｄｉｆｆ（ｎ）、及び各アドレスデータａｄｒ（ｎ）に対して決定された符号化処理を特定するための処理フラグｆｌａｇ（ｎ）を圧縮部１０３に入力し、処理フラグｆｌａｇ（ｎ）で特定される符号化処理にて各アドレスデータａｄｒ（ｎ）を符号化することで、入力データに対する圧縮データを生成する（ステップＳ４００）。その後、データ処理装置１００は、生成した圧縮データを出力し（ステップＳ５００）、本動作を終了する。
【００３３】
つづいて、図３のステップＳ２００において予測部１０１が実行する予測値算出動作について説明する。図４は、本実施形態に係る予測値算出動作の一例を示すフローチャートである。
【００３４】
図４に示すように、予測部１０１は、入力データを入力すると（ステップＳ２０１）、入力データにおける処理対象のアドレスデータを特定するための変数ｎに１を代入する（ステップＳ２０２）。
【００３５】
つぎに、予測部１０１は、ｎが１であるか否か、すなわち、処理対象となるアドレスデータａｄｒ（ｎ）が先頭のアドレスデータａｄｒ（１）であるか否かを判定する（ステップＳ２０３）。ｎが１である場合（ステップＳ２０３のＹＥＳ）、予測部１０１は、アドレスデータａｄｒ（１）に対する予測値として予め設定しておいた所定の予測値ｐｒｅｄ（１）を選択し、（ステップＳ２０４）、ステップＳ２０７へ進む。一方、ｎが１ではない場合（ステップＳ２０３のＮＯ）、予測部１０１は、入力データにおけるｎ番目のアドレスデータａｄｒ（ｎ）を処理対象として選択する（ステップＳ２０５）。つづいて、予測部１０１は、上述したように、例えば、選択されているアドレスデータａｄｒ（ｎ）よりｍつ前に処理された処理済みアドレスａｄｒ（ｎ−ｍ）に基づいて予測値ｐｒｅｄ（ｎ）（＝ａｄｒ（ｎ−ｍ）＋α）を算出し（ステップＳ２０６）、ステップＳ２０７へ進む。なお、本説明では、都合上、ｍが１であるとする。また、ステップＳ２０４では、予測部１０１は、予め設定しておいた所定の予測値ｐｒｅｄ（１）を先頭のアドレスデータａｄｒ（１）に対する予測値としたが、これに限定されず、例えば、アドレスデータａｄｒ（１）に対する予測値を無し（ｎｕｌｌ）と決定してもよい。
【００３６】
ステップＳ２０７では、予測部１０１は、決定又は算出した予測値ｐｒｅｄ（ｎ）を決定部１０２へ出力する。ただし、予測部１０１は、算出した予測値ｐｒｅｄ（ｎ）を所定のメモリ領域にストックしておき、全てのアドレスデータａｄｒ（ｎ）に対する予測値ｐｒｅｄ（ｎ）の算出が完了した後に、ストックしておいた予測値ｐｒｅｄ（ｎ）を一括して決定部１０２へ出力してもよい。つぎに、予測部１０１は、ｎがｎの最大値ｎ＿ｍａｘ、すなわち、選択中のアドレスデータａｄｒ（ｎ）が入力データにおける最後のアドレスデータａｄｒ（ｎ＿ｍａｘ）であるか否かを判定し（ステップＳ２０８）、ｎがｎの最大値ｎ＿ｍａｘでない場合（ステップＳ２０８のＮＯ）、ステップＳ２０９へ進み、変数ｎを１インクリメントして、ステップＳ２０３へリターンする。一方、ｎがｎの最大値ｎ＿ｍａｘである場合（ステップＳ２０８のＹＥＳ）、予測部１０１は、図３に示す動作へリターンする。
【００３７】
つづいて、図３のステップＳ３００において決定部１０２が実行する符号化処理決定動作について説明する。図５は、本実施形態に係る符号化処理決定動作の一例を示すフローチャートである。なお、図５に示す動作、すなわち図３のステップＳ３００の動作は、図４に示す予測部１０１の動作の実行中に並行して逐次実行される、いわゆるパイプライン処理であってよい。
【００３８】
図５に示すように、決定部１０２は、例えば予測部１０１を介して入力データを入力すると（ステップＳ３０１）、処理対象のアドレスデータを特定するための変数ｎに１を代入し（ステップＳ３０２）、入力データにおけるｎ番目のアドレスデータａｄｒ（ｎ）を処理対象として選択する（ステップＳ３０３）。つづいて、決定部１０２は、選択中のアドレスデータａｄｒ（ｎ）に対して算出された予測値ｐｒｅｄ（ｎ）が予測部１０１から入力されるのを待機し（ステップＳ３０４のＮＯ）、入力された場合（ステップＳ３０４のＹＥＳ）、選択されているアドレスデータａｄｒ（ｎ）と予測値ｐｒｅｄ（ｎ）との差分値ｄｉｆｆ（ｎ）を算出する（ステップＳ３０５）。なお、ステップＳ３０５において各アドレスデータａｄｒ（ｎ）に対して算出された差分値ｄｉｆｆ（ｎ）は、所定のメモリ領域に格納されて保持される。
【００３９】
次に、決定部１０２は、差分値ｄｉｆｆ（ｎ）が０であるか否かを判定する（ステップＳ３０６）。差分値ｄｉｆｆ（ｎ）が０であった場合（ステップＳ３０６のＹＥＳ）、決定部１０２は、ステップＳ３１０へ進み、アドレスデータａｄｒ（ｎ）に対する処理フラグｆｌａｇ（ｎ）に、第３の符号化処理を指定する“１０”を設定し、ステップＳ３１１へ進む。一方、差分値ｄｉｆｆ（ｎ）が０でない場合（ステップＳ３０６のＮＯ）、決定部１０２は、差分値ｄｉｆｆ（ｎ）の絶対値に対する閾値判定を実行する（ステップＳ３０７）。
【００４０】
閾値判定の結果、差分値ｄｉｆｆ（ｎ）の絶対値が閾値以下であった場合（ステップＳ３０７のＹＥＳ）、決定部１０２は、ステップＳ３０８へ進み、アドレスデータａｄｒ（ｎ）に対する処理フラグｆｌａｇ（ｎ）に、第１の符号化処理を指定する“００”を設定し、ステップＳ３１１へ進む。一方、差分値ｄｉｆｆ（ｎ）の絶対値が閾値よりも大きい場合（ステップＳ３０７のＮＯ）、決定部１０２は、ステップＳ３０９へ進み、アドレスデータａｄｒ（ｎ）に対する処理フラグｆｌａｇ（ｎ）に、第２の符号化処理を指定する“０１”を設定し、ステップＳ３１１へ進む。
【００４１】
なお、ステップＳ３０８〜Ｓ３１０で設定された処理フラグｆｌａｇ（ｎ）は、例えば不図示のフラグメモリにおいて管理される。
【００４２】
ステップＳ３１１では、決定部１０２は、各アドレスデータａｄｒ（ｎ）に対して算出した差分値ｄｉｆｆ（ｎ）と、各アドレスデータａｄｒ（ｎ）に対して設定した処理フラグｆｌａｇ（ｎ）とを圧縮部１０３へ出力する。つづいて、決定部１０２は、ｎがｎの最大値ｎ＿ｍａｘであるか否かを判定し（ステップＳ３１２）、ｎがｎの最大値ｎ＿ｍａｘでない場合（ステップＳ３１２のＮＯ）、ステップＳ３１３へ進み、変数ｎを１インクリメントして、ステップＳ３０３へリターンする。一方、ｎがｎの最大値ｎ＿ｍａｘである場合（ステップＳ３１２のＹＥＳ）、決定部１０２は、図３に示す動作へリターンする。
【００４３】
つづいて、図３のステップＳ４００において圧縮部１０３が実行する圧縮動作について説明する。図６は、本実施形態に係る圧縮動作の一例を示すフローチャートである。なお、図６に示す動作、すなわち図３のステップＳ４００の動作は、図５に示す決定部１０２の動作の実行中に並行して逐次実行される、いわゆるパイプライン処理であってよい。
【００４４】
図６に示すように、圧縮部１０３は、例えば決定部１０２を介して入力データを入力すると（ステップＳ４０１）、処理対象のアドレスデータを特定するための変数ｎに１を代入し（ステップＳ４０２）、入力データにおけるｎ番目のアドレスデータａｄｒ（ｎ）を処理対象として選択する（ステップＳ４０３）。
【００４５】
次に、圧縮部１０３は、選択中のアドレスデータａｄｒ（ｎ）に対して特定された差分値ｄｉｆｆ（ｎ）及び処理フラグｆｌａｇ（ｎ）が決定部１０２から入力されるのを待機し（ステップＳ４０４のＮＯ）、入力された場合（ステップＳ４０４のＹＥＳ）、選択されているアドレスデータａｄｒ（ｎ）の処理フラグｆｌａｇ（ｎ）を確認する（ステップＳ４０５）。処理フラグｆｌａｇ（ｎ）が“００”である場合（ステップＳ４０５のｆｌａｇ（ｎ）＝００）、圧縮部１０３は、当該アドレスデータａｄｒ（ｎ）については、処理フラグｆｌａｇ（ｎ）と差分値ｄｉｆｆ（ｎ）とを符号化データｃｄ（ｎ）として出力する第１の符号化処理を実行し（ステップＳ４０６）、ステップＳ４０９へ進む。
【００４６】
また、処理フラグｆｌａｇ（ｎ）が“０１”である場合（ステップＳ４０５のｆｌａｇ（ｎ）＝０１）、圧縮部１０３は、当該アドレスデータａｄｒ（ｎ）については、処理フラグｆｌａｇ（ｎ）とアドレスデータａｄｒ（ｎ）とを符号化データｃｄ（ｎ）として出力する第２の符号化処理を実行し（ステップＳ４０７）、ステップＳ４０９へ進む。
【００４７】
さらに、処理フラグｆｌａｇ（ｎ）が“１０”である場合（ステップＳ４０５のｆｌａｇ（ｎ）＝１０）、圧縮部１０３は、当該アドレスデータａｄｒ（ｎ）については、処理フラグｆｌａｇ（ｎ）を符号化データｃｄ（ｎ）として出力する第３の符号化処理を実行し（ステップＳ４０８）、ステップＳ４０９へ進む。
【００４８】
なお、ステップＳ４０６〜Ｓ４０８で出力された符号化データは、所定のメモリ領域に格納されて保持される。
【００４９】
ステップＳ４０９では、圧縮部１０３は、ｎがｎの最大値ｎ＿ｍａｘであるか否かを判定し、ｎがｎの最大値ｎ＿ｍａｘでない場合（ステップＳ４０９のＮＯ）、ステップＳ４１０へ進み、変数ｎを１インクリメントして、ステップＳ４０３へリターンする。一方、ｎがｎの最大値ｎ＿ｍａｘである場合（ステップＳ４０９のＹＥＳ）、圧縮部１０３は、図３に示す動作へリターンする。これにより、所定のメモリ領域内には、入力データを圧縮した圧縮データが蓄積される。
【００５０】
以上のように、本実施形態によれば、例えば、処理対象のアドレスデータａｄｒ（ｎ）と予測値ｐｒｅｄ（ｎ）とが一致する場合、又は、これらの差分値ｄｉｆｆ（ｎ）が閾値以下である場合に、アドレスデータａｄｒ（ｎ）を除外するか、又は、アドレスデータａｄｒ（ｎ）を差分値ｄｉｆｆ（ｎ）に置き換える符号化処理を実行する。その結果、入力データに対してデータ量が削減された圧縮データを生成することが可能となる。
【００５１】
例えば、物理アドレス空間上で連続する２つの物理アドレスを処理対象とし、２番目の物理アドレスの予測値を直前である１番目の物理アドレスを１インクリメントした物理アドレスとした場合には、２番目の物理アドレスと予測値との差分値ｄｉｆｆ（ｎ）が０となるため、第３の符号化処理によって２番目の物理アドレスが処理フラグｆｌａｇ（ｎ）に置き換えられる。その結果、論物変換テーブルのデータ量が削減される。
【００５２】
（第２の実施形態）
次に、第２の実施形態について、図面を参照して詳細に説明する。以下では、第１の実施形態と同様の説明についてはそれを引用することで重複する説明を省略し、第１の実施形態と異なる箇所に注目して説明する。
【００５３】
第２の実施形態に係るデータ処理装置は、第１の実施形態で例示したデータ処理装置１００と同様の構成であってよい。すなわち、図１に示したように、第２の実施形態に係るデータ処理装置１００は、予測部１０１、決定部１０２及び圧縮部１０３を備える。ただし、本実施形態では、予測部１０１の動作が以下のような動作となる。
【００５４】
本実施形態に係る予測部１０１は、処理対象のアドレスデータａｄｒ（ｎ）に対する予測値ｐｒｅｄ（ｎ）を算出する際、予測値算出の基となる処理済みアドレスａｄｒ（ｎ−ｍ）が有効データ（本説明では有効アドレス）か無効データ（本説明では無効アドレス）かに応じて異なる予測値ｐｒｅｄ（ｎ）を算出する。
【００５５】
具体的には、予測部１０１は、例えば、処理済みアドレスａｄｒ（ｎ−ｍ）が有効アドレスであれば、処理済みアドレスａｄｒ（ｎ−ｍ）に第１の所定値αを加算することで、有効アドレス用の第１の予測値ｐｒｅｄ１（ｎ）（＝ａｄｒ（ｎ−ｍ）＋α）を算出する。一方、処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスである場合、予測部１０１は、処理済みアドレスａｄｒ（ｎ−ｍ）に第１の所定値αとは異なる第２の所定値βを加算することで、無効アドレス用の第２の予測値ｐｒｅｄ２（ｎ）（＝ａｄｒ（ｎ−ｍ）＋β）を算出する。なお、第１の所定値αと同様、第２の所定値βは、任意の値であってよい。
【００５６】
例えば、ｍ＝１、α＝１及びβ＝０とした場合、予測値生成の基となる処理済みアドレスａｄｒ（ｎ−ｍ）は、処理対象のアドレスデータａｄｒ（ｎ）の直前に処理されたアドレスデータａｄｒ（ｎ−１）となる。そこで、直前の処理済みアドレスａｄｒ（ｎ−１）が有効データであれば、予測部１０１は、直前の処理済みアドレスａｄｒ（ｎ−１）に１（＝α）を加算して第１の予測値ｐｒｅｄ１（ｎ）（＝ａｄｒ（ｎ−１）＋１）を算出する。一方、直前の処理済みアドレスａｄｒ（ｎ−１）が無効データであれば、予測部１０１は、直前の処理済みアドレスａｄｒ（ｎ−１）をそのまま第２の予測値ｐｒｅｄ２（ｎ）とする（β＝０）。
【００５７】
このような予測値算出のアルゴリズムによれば、例えば、上述の例のように、ｍ＝１、α＝１及びβ＝０とした場合、物理アドレス空間において連続している有効アドレスが処理対象となる期間、及び、無効アドレスが連続して処理対象となる期間、これらの期間において２番目以降に処理対象とされるアドレスデータａｄｒ（ｎ）に対して決定部１０２が算出する差分値ｄｉｆｆ（ｎ）が０となる。その結果、これらのアドレスデータａｄｒ（ｎ）に対する符号化処理として第３の符号化処理が決定されるため、圧縮データのデータ量をより削減することが可能となる。
【００５８】
なお、入力データにおける各アドレスデータａｄｒ（ｎ）が有効アドレスであるか無効アドレスであるかについては、予め定義されているものとする。具体的には、無効アドレスとして特定のアドレスデータ（０ｘＦＦＦＦＦＦＦＦ等）を設定しておいてもよいし、予め物理アドレス空間における無効アドレスを特定し、特定された無効アドレスを不図示のメモリ等で管理しておいてもよい。また、複数の無効アドレスがあってもよい。なお、無効アドレスとは、例えば、フリーブロックや無効データが格納されているブロックや、セル破壊などの不良等によって使用できないブロック等を示す物理アドレスである。
【００５９】
次に、本実施形態に係るデータ処理装置１００の動作例について説明する。本実施形態に係るデータ処理装置１００が実行する圧縮動作は、第１の実施形態において図３〜図６を用いて例示した圧縮動作と同様であってよい。ただし、本実施形態では、予測部１０１が実行する予測値算出動作が、図７に示す動作に置き換えられる。
【００６０】
図７に示すように、本実施形態に係る予測部１０１が実行する予測値算出動作は、図４に示す動作と同様の動作において、図４におけるステップＳ２０６及びＳ２０７の動作がステップＳ２２１〜Ｓ２２４に示す動作に置き換えられている。
【００６１】
すなわち、本動作では、予測部１０１は、選択したアドレスデータａｄｒ（ｎ）が先頭のアドレスデータａｄｒ（１）でなく（ステップＳ２０３のＮＯ）、入力データにおけるｎ番目のアドレスデータａｄｒ（ｎ）を処理対象として選択すると（ステップＳ２０５）、つづいて、予測値ｐｒｅｄ（ｎ）の算出に用いる処理済みアドレスａｄｒ（ｎ−ｍ）が有効アドレスであるか否かを判定する（ステップＳ２２１）。処理済みアドレスａｄｒ（ｎ−ｍ）が有効アドレスである場合（ステップＳ２２１のＹＥＳ）、予測部１０１は、例えば第１の所定値αを用いることで、有効アドレス用の第１の予測値ｐｒｅｄ１（ｎ）（＝ａｄｒ（ｎ−ｍ）＋α）を算出し（ステップＳ２２２）、ステップＳ２２４へ進む。一方、処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスである場合（ステップＳ２２１のＮＯ）、予測部１０１は、例えば第２の所定値βを用いることで、無効アドレス用の第２の予測値ｐｒｅｄ２（ｎ）（＝ａｄｒ（ｎ−ｍ）＋β）を算出し（ステップＳ２２３）、ステップＳ２２４へ進む。ステップＳ２２４では、予測部１０１は、図４のステップＳ２０７と同様に、ステップＳ２０４で決定された所定の予測値ｐｒｅｄ（１）、又は、ステップＳ２２２若しくはＳ２２３で算出された第１の予測値ｐｒｅｄ１（ｎ）若しくは第２の予測値ｐｒｅｄ２（ｎ）を決定部１０２へ出力する。
【００６２】
以上のように、本実施形態によれば、予測値算出に用いる処理済みアドレスａｄｒ（ｎ−ｍ）が有効アドレスであるか無効アドレスであるかに応じて、予測値ｐｒｅｄ（ｎ）の算出方法を適応的に切り替えることが可能となる。例えば、ｍ＝１、α＝１及びβ＝０とした場合、物理アドレス空間において連続している有効アドレスが処理対象となる期間、及び、無効アドレスが連続して処理対象となる期間、これらの期間において２番目以降に処理対象とされるアドレスデータａｄｒ（ｎ）に対して決定部１０２が算出する差分値ｄｉｆｆ（ｎ）が０となる。その結果、これらのアドレスデータａｄｒ（ｎ）に対する符号化処理として第３の符号化処理が決定されるため、圧縮データのデータ量をより削減することが可能となる。
【００６３】
その他の構成、動作及び効果については、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【００６４】
（第３の実施形態）
次に、第３の実施形態について、図面を参照して詳細に説明する。以下では、第１又は第２の実施形態と同様の説明についてはそれを引用することで重複する説明を省略し、第１又は第２の実施形態と異なる箇所に注目して説明する。
【００６５】
第３の実施形態に係るデータ処理装置は、第１及び２の実施形態で例示したデータ処理装置１００と同様の構成であってよい。すなわち、図１に示したように、第３の実施形態のデータ処理装置１００は、予測部１０１、決定部１０２及び圧縮部１０３を備える。ただし、本実施形態では、予測部１０１の動作が以下のような動作となる。
【００６６】
本実施形態に係る予測部１０１は、処理対象のアドレスデータａｄｒ（ｎ）に対する予測値ｐｒｅｄ（ｎ）を算出する際、第２の実施形態と同様に、予測値算出の基となる処理済みアドレスａｄｒ（ｎ−ｍ）が有効データ（本説明では有効アドレス）か無効データ（本説明では無効アドレス）かに応じて異なる予測値ｐｒｅｄ（ｎ）を算出する。ただし、本実施形態では、処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスであって、且つ、処理対象のアドレスデータａｄｒ（ｎ）が有効アドレスである場合には、更に異なる予測値ｐｒｅｄ（ｎ）を算出する。
【００６７】
具体的には、予測部１０１は、例えば、処理済みアドレスａｄｒ（ｎ−ｍ）が有効アドレスであれば、第２の実施形態と同様に、処理済みアドレスａｄｒ（ｎ−ｍ）に第１の所定値αを加算して第１の予測値ｐｒｅｄ１（ｎ）を算出する。また、処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスで、且つ、処理対象のアドレスデータａｄｒ（ｎ）も無効アドレスである場合、予測部１０１は、処理済みアドレスａｄｒ（ｎ−ｍ）に第２の所定値βを加算して第２の予測値ｐｒｅｄ２（ｎ）を算出する。さらに、処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスで、且つ、処理対象のアドレスデータａｄｒ（ｎ）が有効アドレスである場合、予測部１０１は、全ての処理済みアドレスのうちの直近の有効アドレスである処理済みアドレスａｄｒ（ｎ−ｋ）（ｋは１以上ｎ未満の整数）に基づいて第３の予測値ｐｒｅｄ３（ｎ）を算出する。例えば、予測部は、処理済みアドレスａｄｒ（ｎ−ｋ）に第３の所定値γを加算することで、第３の予測値ｐｒｅｄ３（ｎ）を算出する。なお、第３の所定値γは、例えば、直近の有効アドレスである処理済みアドレスａｄｒ（ｎ−ｋ）から処理対象のアドレスデータａｄｒ（ｎ）までの処理順序の距離Ｌとすることができる。
【００６８】
例えば、ｍ＝１、α＝１、β＝０及びγ＝Ｌとした場合、予測値生成の基となる処理済みアドレスａｄｒ（ｎ−ｍ）は、処理対象のアドレスデータａｄｒ（ｎ）の直前に処理されたアドレスデータａｄｒ（ｎ−１）か、もしくは、直近の有効アドレスであるアドレスデータａｄｒ（ｎ−ｋ）となる。そこで、直前の処理済みアドレスａｄｒ（ｎ−１）が有効アドレスであれば、予測部１０１は、直前の処理済みアドレスａｄｒ（ｎ−１）に１（＝α）を加算して第１の予測値ｐｒｅｄ１（ｎ）（＝ａｄｒ（ｎ−１）＋１）を算出する。一方、直前の処理済みアドレスａｄｒ（ｎ−１）が無効アドレスである場合、予測部１０１は、処理対象のアドレスデータａｄｒ（ｎ）も無効アドレスであれば、直前の処理済みアドレスａｄｒ（ｎ−１）をそのまま第２の予測値ｐｒｅｄ２（ｎ）とし（β＝０）、処理対象のアドレスデータａｄｒ（ｎ）が有効アドレスであれば、処理済みアドレスのうちの直近の有効アドレスである処理済みアドレスａｄｒ（ｎ−ｋ）にＬ（＝γ）を加算して第３の予測値ｐｒｅｄ３（ｎ）（＝ａｄｒ（ｎ−ｋ）＋Ｌ）を算出する。
【００６９】
ここで、本実施形態における、データ処理装置１００が入力データを入力して圧縮データを出力するまでの流れを、図８に示す例を用いて説明する。図８に示す例では、第１の実施形態において図２を用いて説明した例と同様に、入力データが論物変換テーブルにおいて論理アドレス１〜１０に対応する物理アドレスであり、ｍ＝１、α＝１、β＝０、γ（＝Ｌ）を直近の有効アドレスである処理済みアドレスａｄｒ（ｎ−ｋ）から処理対象のアドレスデータａｄｒ（ｎ）までの処理順序の距離とし、決定部１０２の閾値判定で用いられる閾値を２ビットとする。また、物理アドレス０ｘＦＦＦＦＦＦＦＦを無効アドレスとする。
【００７０】
図２に示す例と同様に、入力データの生成（又は抽出）に用いられる論物変換テーブルにおいて、論理アドレス１〜３には、連続する物理アドレス０ｘ００００００００〜０ｘ０００００００２が対応付けられ、論理アドレス４〜６には、無効アドレスである物理アドレス０ｘＦＦＦＦＦＦＦＦがそれぞれ対応付けられている。また、論理アドレス７〜８には、連続する物理アドレス０ｘ０００００００６〜０ｘ０００００００７が対応付けられ、論理アドレス９及び１０には、１つ飛びの物理アドレス０ｘ０００００００９及び０ｘ０００００００Ｂが対応付けられている。
【００７１】
このような入力データに対し、予測部１０１は、処理対象のアドレスデータａｄｒ（ｎ）を例えばラウンドロビン方式に従って順番に選択して予測値ｐｒｅｄ（ｎ）を順次算出する。そこで、図８に示す例では、物理アドレスａｄｒ（２）〜ａｄｒ（４）及ａｄｒ（８）〜ａｄｒ（１０）については、直前の処理済みアドレスが有効アドレスであるので、直前の処理済みアドレスａｄｒ（１）〜ａｄｒ（３）及びａｄｒ（７）〜ａｄｒ（９）からそれぞれ予測値ｐｒｅｄ１（２）〜ｐｒｅｄ１（４）及びｐｒｅｄ１（８）〜ｐｒｅｄ１（１０）が算出される。一方、物理アドレスａｄｒ（５）〜ａｄｒ（６）については、直前の処理済みアドレスａｄｒ（４）〜ａｄｒ（５）が無効アドレスであり、且つ、当該物理アドレスａｄｒ（５）〜ａｄｒ（６）も無効アドレスであるので、直前の処理済みアドレスａｄｒ（４）〜ａｄｒ（５）からそれぞれ予測値ｐｒｅｄ２（５）〜ｐｒｅｄ２（６）が算出される。さらに、物理アドレスａｄｒ（７）については、直前の処理済みアドレスａｄｒ（６）が無効アドレスであり、且つ、当該物理アドレスａｄｒ（７）が有効アドレスであるので、直近の有効アドレスである処理済みアドレスａｄｒ（３）から予測値ｐｒｅｄ３（７）が算出される。なお、この場合、処理対象の物理データａｄｒ（７）から直近の有効アドレスである処理済みアドレスａｄｒ（３）までの処理順序の距離Ｌが４であるため、第３の所定値γは４となる。
【００７２】
決定部１０２及び圧縮部１０３は、以上のようにして算出された予測値ｐｒｅｄ（ｎ）に対し、第１の実施形態と同様の動作を実行することで、差分値ｄｉｆｆ（ｎ）及び処理フラグｆｌａｇ（ｎ）を求め、求められた処理フラグｆｌａｇ（ｎ）に基づいてアドレスデータａｄｒ（ｎ）に符号化処理を実行することで、圧縮データを生成する。したがって、図８に示す例では、アドレスデータａｄｒ（７）に対する差分値ｄｉｆｆ（７）が０となり、それにより、アドレスデータａｄｒ（７）に対する処理フラグｆｌａｇ（７）として、第３の符号化処理を示す“１０”が設定される。
【００７３】
ただし、予測値算出のために直近の有効アドレスを用いたアドレスデータａｄｒ（ｎ）に関しては、これを伸張する際に、予測値算出時に直近の有効アドレスを用いたことを特定できる必要がある。そこで、本実施形態では、図８における処理フラグｆｌａｇ（７）に例示するように、符号化処理を特定するための処理フラグ（本例では１０）に、直近の有効アドレスを用いて予測値ｐｒｅｄ（ｎ）を算出したことを示す情報を付加してもよい。この付加情報は、処理フラグと区別するために、例えば処理フラグとして使用されていない値（例えば“１１”）を用いることができる。
【００７４】
次に、本実施形態に係るデータ処理装置１００の動作例について説明する。本実施形態に係るデータ処理装置１００が実行する圧縮動作は、第１の実施形態において図３〜図６を用いて例示した圧縮動作と同様であってよい。ただし、本実施形態では、予測部１０１が実行する予測値算出動作が、図９に示す動作に置き換えられる。
【００７５】
図９に示すように、本実施形態に係る予測部１０１が実行する予測値算出動作は、図４に示す動作と同様の動作において、図４におけるステップＳ２０６及びＳ２０７の動作がステップＳ２２１〜Ｓ２２３及びステップＳ２４１〜Ｓ２４３に示す動作に置き換えられている。これらの動作において、ステップＳ２２１〜Ｓ２２３の動作は、図７に示すステップＳ２２１〜Ｓ２２３の動作と同様であってよい。
【００７６】
すなわち、本動作では、予測部１０１は、ステップＳ２２１の判断において、処理済みアドレスａｄｒ（ｎ−ｍ）が有効アドレスでない場合（ステップＳ２２１のＮＯ）、処理対象のアドレスデータａｄｒ（ｎ）が有効アドレスであるか否かを判定する（ステップＳ２４１）。アドレスデータａｄｒ（ｎ）が有効アドレスでない場合（ステップＳ２４１のＮＯ）、すなわち、処理済みアドレスａｄｒ（ｎ−ｍ）とアドレスデータａｄｒ（ｎ）との両方が無効アドレスである場合、予測部１０１は、図７のステップＳ２２３に示す動作と同様に、例えば第２の所定値βを用いることで、無効アドレス用の第２の予測値ｐｒｅｄ２（ｎ）（＝ａｄｒ（ｎ−ｍ）＋β）を算出し（ステップＳ２２３）、ステップＳ２４３へ進む。一方、アドレスデータａｄｒ（ｎ）が有効アドレスである場合（ステップＳ２４１のＹＥＳ）、すなわち、処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスであってアドレスデータａｄｒ（ｎ）が有効アドレスである場合、予測部１０１は、全ての処理済みアドレスのうちの直近の有効アドレスである処理済みアドレスａｄｒ（ｎ−ｋ）に基づき、例えば第３の所定値γを用いることで、第３の予測値ｐｒｅｄ３（ｎ）（＝ａｄｒ（ｎ−ｋ）＋γ）を算出し（ステップＳ２４２）、ステップＳ２４３へ進む。ステップＳ２４３では、予測部１０１は、図４のステップＳ２０７と同様に、ステップＳ２０４で決定された所定の予測値ｐｒｅｄ（１）、又は、ステップＳ２２２、Ｓ２２３若しくはＳ２４２で算出された第１の予測値ｐｒｅｄ１（ｎ）、第２の予測値ｐｒｅｄ２（ｎ）若しくは第３予測値ｐｒｅｄ３（ｎ）を決定部１０２へ出力する。
【００７７】
以上のように、本実施形態によれば、予測値算出に用いる処理済みアドレスａｄｒ（ｎ−ｍ）が無効アドレスである場合、処理対象のアドレスデータａｄｒ（ｎ）が有効アドレスか無効アドレスかに応じて、予測値ｐｒｅｄ（ｎ）の算出方法を適応的に切り替えることが可能となる。それにより、例えば処理済みアドレスａｄｒ（ｎ−ｍ）に無効アドレスが継続する状況において処理対象のアドレスデータａｄｒ（ｎ）が無効アドレスから有効アドレスに切り替わった際には、直近の有効アドレスを用いて予測値ｐｒｅｄ（ｎ）を算出することが可能となる。具体的には、例えば論物変換テーブルに登録された連続する有効アドレスの途中の一部が無効アドレスに書き換えられた場合であっても、無効アドレスから有効アドレスに切り替わった物理アドレスに対しては、直近の有効アドレスに基づいて予測値ｐｒｅｄ（ｎ）を算出することが可能となる。その結果、符号化データｃｄ（ｎ）をより小さくすることができるため、圧縮データのデータ量をより削減することが可能となる。
【００７８】
その他の構成、動作及び効果については、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【００７９】
（第４の実施形態）
次に、第４の実施形態について、図面を参照して詳細に説明する。第４の実施形態では、第１〜第３の実施形態で例示したデータ処理装置１００によって得られた圧縮データを伸張する構成を備えたデータ処理装置について、例を挙げて説明する。なお、以下では、第１〜第３の実施形態のいずれかと同様の説明についてはそれを引用することで重複する説明を省略し、第１〜第３の実施形態と異なる箇所に注目して説明する。
【００８０】
図１０は、第４の実施形態に係るデータ処理装置の概略構成例を示すブロック図である。図１０に示すデータ処理装置４００において、入力データを圧縮するための構成である予測部１０１、決定部１０２及び圧縮部１０３は、第１〜第３の実施形態のいずれかで例示した予測部１０１、決定部１０２及び圧縮部１０３と同様であってよい。ただし、説明の都合上、予測部１０１を、第１の予測部１０１と称する。
【００８１】
また、データ処理装置４００は、圧縮データを伸張するための構成として、解析部４０４と、第２の予測部４０５と、伸張部４０６とを備える。解析部４０４、第２の予測部４０５及び伸張部４０６は、例えばＳｏＣ（System-on-a-Chip）等のハードウェアにより実現されてもよい。その際、解析部４０４、第２の予測部４０５及び伸張部４０６は、第１の予測部１０１、決定部１０２及び圧縮部１０３を構成するチップと同じチップに作り込まれてもよい。
【００８２】
本実施形態において、第１の予測部１０１、決定部１０２及び圧縮部１０３の構成及び動作は、第１〜第３の実施形態のいずれかと同様であってよいため、ここでは詳細な説明を省略する。
【００８３】
解析部４０４は、圧縮データにおける個々の符号化データｃｄ（ｎ）を解析することにより、符号化データｃｄ（ｎ）に含まれる処理フラグｆｌａｇ（ｎ）等を解析情報として取得する。具体的には、解析部４０４は、個々の符号化データｃｄ（ｎ）に含まれる処理フラグｆｌａｇ（ｎ）を解析情報として特定するとともに、必要に応じて、符号化データｃｄ（ｎ）に含まれるアドレスデータａｄｒ（ｎ）や差分値ｄｉｆｆ（ｎ）を解析情報として特定する。また、解析部４０４は、符号化データに、直近の有効アドレスを用いて予測値ｐｒｅｄＤ（ｎ）を算出したことを示す付加情報が含まれている場合には、この付加情報を解析情報として特定し、さらに、符号化データが可変長符号化等で更に符号化されている場合には、符号化データを復号するために必要な情報等を解析情報として特定する。そして、解析部４０４は、取得した解析情報と圧縮データとを第２の予測部４０５に入力する。
【００８４】
第２の予測部４０５は、解析部４０４から圧縮データ及び解析情報を受け付けると、各符号化データｃｄ（ｎ）に関する予測値ｐｒｅｄＤ（ｎ）を、必要に応じて算出する。
【００８５】
例えば、圧縮データが第１の実施形態に係る第１の予測部１０１、決定部１０２及び圧縮部１０３によって圧縮されたデータである場合、第２の予測部４０５は、処理対象の符号化データｃｄ（ｎ）が第１の符号化処理又は第３の符号化処理で符号化されたデータであることが解析情報に基づいて特定されると、当該符号化データｃｄ（ｎ）より前に実行された復号処理により得られた物理アドレス（以下、伸張済みアドレスという）ｄｅｃ（ｎ−ｍ）を用いて予測値ｐｒｅｄＤ（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋α）を算出する。ここで、ｍ及びαは、第１の実施形態と同様であってよい。
【００８６】
また、圧縮データが第２の実施形態に係る第１の予測部１０１、決定部１０２及び圧縮部１０３によって圧縮されたデータである場合、第２の予測部４０５は、処理対象の符号化データｃｄ（ｎ）が第１の符号化処理又は第３の符号化処理で符号化されたデータであることが解析情報に基づいて特定されると、当該符号化データｃｄ（ｎ）より前に実行された復号処理により得られた物理アドレス（以下、伸張済みアドレスという）ｄｅｃ（ｎ−ｍ）を用いて予測値ｐｒｅｄＤ（ｎ）を算出する。その際、予測値算出の基とする伸張済みアドレスｄｅｃ（ｎ−ｍ）が有効アドレスであれば、第２の予測部４０５は、第１の所定値αを用いて予測値ｐｒｅｄＤ（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋α）を算出する。一方、伸張済みアドレスｄｅｃ（ｎ−ｍ）が無効アドレスであれば、第２の予測部４０５は、第２の所定値βを用いて予測値ｐｒｅｄＤ（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋β）を算出する。ここで、ｍ、α及びβは、第２の実施形態と同様であってよい。
【００８７】
さらに、圧縮データが第３の実施形態に係る第１の予測部１０１、決定部１０２及び圧縮部１０３によって圧縮されたデータである場合、第２の予測部４０５は、処理対象の符号化データｃｄ（ｎ）が第１の符号化処理又は第３の符号化処理で符号化されたデータであることが解析情報に基づいて特定されると、当該符号化データｃｄ（ｎ）より前に実行された復号処理により得られた物理アドレス（以下、伸張済みアドレスという）ｄｅｃ（ｎ−ｍ）を用いて予測値ｐｒｅｄＤ（ｎ）を算出する。その際、予測値算出の基とする伸張済みアドレスｄｅｃ（ｎ−ｍ）が有効アドレスであれば、第２の予測部４０５は、第１の所定値αを用いて予測値ｐｒｅｄＤ（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋α）を算出する。一方、伸張済みアドレスｄｅｃ（ｎ−ｍ）が無効アドレスである場合、第２の予測部４０５は、解析情報（例えば付加情報）に基づいて、直近の有効アドレスである伸張済みアドレスａｄｒ（ｎ−ｋ）を用いるか否かを判定する。つづいて、第２の予測部４０５は、伸張済みアドレスａｄｒ（ｎ−ｋ）を用いないと判定した場合、伸張済みアドレスａｄｒ（ｎ−ｍ）に第２の所定値βを用いて予測値ｐｒｅｄＤ（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋β）を算出し、伸張済みアドレスａｄｒ（ｎ−ｋ）を用いると判定した場合、この伸張済みアドレスａｄｒ（ｎ−ｋ）に第３の所定値γを用いて予測値ｐｒｅｄＤ（ｎ）（＝ｄｅｃ（ｎ−ｋ）＋γ）を算出する。ここで、ｋ、ｍ、α、β及びγは、第３の実施形態と同様であってよい。
【００８８】
なお、図１０に示す構成において、第１の予測部１０１、決定部１０２及び圧縮部１０３が第１又は第２の実施形態に係る第１の予測部１０１、決定部１０２及び圧縮部１０３である場合、解析情報を用いずに予測値ｐｒｅｄＤ（ｎ）を算出することが可能である。その場合、圧縮データの入力及び伸張部４０６への入力に対して、解析部４０４及び第２の予測部４０５が並列に設けられてもよい。
【００８９】
また、圧縮データが第１〜第３の実施形態のいずれの第１の予測部１０１、決定部１０２及び圧縮部１０３によって圧縮されたデータである場合であっても、処理対象の符号化データｃｄ（ｎ）が第２の符号化処理で符号化されたデータである場合には、符号化データｃｄ（ｎ）にアドレスデータａｄｒ（ｎ）が含まれている。そのため、そのような場合には、第２の予測部４０５による予測値ｐｒｅｄＤ（ｎ）の算出が省略されてもよいし、算出された予測値ｐｒｅｄＤ（ｎ）の伸張部４０６への入力が省略されてもよいし、伸張部４０６での予測値ｐｒｅｄＤ（ｎ）の使用が省略されてもよい。
【００９０】
伸張部４０６は、第２の予測部４０５及び／又は解析部４０４から、圧縮データと、各符号化データｃｄ（ｎ）の予測値ｐｒｅｄＤ（ｎ）と、各符号化データｃｄ（ｎ）に対して決定された復号処理とを入力すると、これらに基づいて各符号化データｃｄ（ｎ）を復号することで、入力データを復元して出力する。具体的には、伸張部４０６は、各符号化データｃｄ（ｎ）に対し、第１の復号処理、第２の復号処理及び第３の復号処理のいずれかを実行する。なお、復元された入力データは、第１の予測部１０１に入力された入力データと同じである。
【００９１】
第１の復号処理では、伸張部４０６は、処理対象の符号化データｃｄ（ｎ）に含まれる差分値ｄｉｆｆ（ｎ）に基づく解析情報と、予測値ｐｒｅｄＤ（ｎ）とから、符号化データｃｄ（ｎ）を復号してアドレスデータａｄｒ（ｎ）を復元する。具体的には、伸張部４０６は、解析情報から差分値ｄｉｆｆ（ｎ）を抽出し、この差分値ｄｉｆｆ（ｎ）と予測値ｐｒｅｄＤ（ｎ）とを加算する。これにより、第１の符号化処理により符号化された符号化データｃｄ（ｎ）が復号されて、アドレスデータａｄｒ（ｎ）が復元される。
【００９２】
また、第２の復号処理では、伸張部４０６は、処理対象の符号化データｃｄ（ｎ）に含まれるアドレスデータａｄｒ（ｎ）に基づく解析情報から、符号化データｃｄ（ｎ）を復号してアドレスデータａｄｒ（ｎ）を復元する。具体的には、伸張部４０６は、解析情報からアドレスデータａｄｒ（ｎ）を抽出し、このアドレスデータａｄｒ（ｎ）を復号データとする。これにより、第２の符号化処理により符号化された符号化データｃｄ（ｎ）が復号されて、アドレスデータａｄｒ（ｎ）が復元される。
【００９３】
さらに、第３の復号処理では、伸張部４０６は、予測値ｐｒｅｄＤ（ｎ）から符号化データｃｄ（ｎ）の復号データを生成する。具体的には、伸張部４０６は、予測値ｐｒｅｄＤ（ｎ）を復号データとする。これにより、第３の符号化処理により符号化された符号化データｃｄ（ｎ）が復号されて、アドレスデータａｄｒ（ｎ）が復元される。
【００９４】
次に、本実施形態に係るデータ処理装置４００の動作例について、図面を用いて詳細に説明する。ただし、本実施形態に係る圧縮動作は、第１〜第３の実施形態で例示した圧縮動作と同様であってよいため、ここでは詳細な説明を省略する。
【００９５】
図１１は、本実施形態に係るデータ処理装置が実行する伸張動作の一例を示すフローチャートである。図１１に示すように、本実施形態に係る伸張動作では、データ処理装置４００は、まず、外部から伸張対象の圧縮データを入力する（ステップＳ６００）。次に、データ処理装置４００は、圧縮データを解析部４０４に入力し、圧縮データにおける個々の符号化データｃｄ（ｎ）を解析することで、符号化データｃｄ（ｎ）に含まれる処理フラグｆｌａｇ（ｎ）等を解析情報として取得する（ステップＳ７００）。次に、データ処理装置４００は、圧縮データ及び解析情報を第２の予測部４０５に入力して、圧縮データにおける各符号化データｃｄ（ｎ）に対して予測値ｐｒｅｄＤ（ｎ）を算出する（ステップＳ８００）。次に、データ処理装置４００は、圧縮データ、解析情報及び予測値ｐｒｅｄＤ（ｎ）を伸張部４０６に入力し、解析情報に含まれる処理フラグｆｌａｇ（ｎ）で特定される復号処理にて各符号化データｃｄ（ｎ）を復号することで、圧縮データを伸張して入力データを復元する（ステップＳ９００）。その後、データ処理装置４００は、復元した入力データを出力し（ステップＳ１０００）、本動作を終了する。
【００９６】
つづいて、図１１のステップＳ７００において解析部４０４が実行する解析動作について説明する。図１２は、本実施形態に係る解析動作の一例を示すフローチャートである。
【００９７】
図１２に示すように、解析部４０４は、圧縮データを入力すると（ステップＳ７０１）、圧縮データにおける処理対象の符号化データｃｄ（ｎ）を特定するための変数ｎに１を代入する（ステップＳ７０２）。
【００９８】
つぎに、解析部４０４は、圧縮データにおけるｎ番目の符号化データｃｄ（ｎ）を処理対象として選択する（ステップＳ７０３）。つづいて、解析部４０４は、選択した符号化データｃｄ（ｎ）を解析することで、符号化データｃｄ（ｎ）に含まれる処理フラグｆｌａｇ（ｎ）等を取得するとともに、必要に応じて、アドレスデータａｄｒ（ｎ）、差分値ｄｉｆｆ（ｎ）、付加情報等を特定し（ステップＳ７０４）、特定したアドレスデータａｄｒ（ｎ）、差分値ｄｉｆｆ（ｎ）、付加情報等（解析情報）を第２の予測部４０５へ出力する（ステップＳ７０５）。なお、解析部４０４は、特定したこれらの情報を解析情報として所定のメモリ領域にストックしておき、全ての符号化データｃｄ（ｎ）に対する解析が完了した後に、ストックしておいた解析情報を一括して第２の予測部４０５へ出力してもよい。
【００９９】
つぎに、解析部４０４は、ｎがｎの最大値ｎ＿ｍａｘ、すなわち、選択中の符号化データｃｄ（ｎ）が圧縮データにおける最後の符号化スデータｃｄ（ｎ＿ｍａｘ）であるか否かを判定し（ステップＳ７０６）、ｎがｎの最大値ｎ＿ｍａｘでない場合（ステップＳ７０６のＮＯ）、ステップＳ７０７へ進み、変数ｎを１インクリメントして、ステップＳ７０３へリターンする。一方、ｎがｎの最大値ｎ＿ｍａｘである場合（ステップＳ７０６のＹＥＳ）、予測部１０１は、図１１に示す動作へリターンする。
【０１００】
つづいて、図１１のステップＳ８００において第２の予測部４０５が実行する予測値算出動作について説明する。
【０１０１】
図１３は、本実施形態に係る予測値算出動作の一例を示すフローチャートであって、第１の実施形態に係る圧縮動作により生成された圧縮データを伸張する際に実行される予測値算出動作の一例を示すフローチャートである。なお、図１３に示す動作、すなわち図１１のステップＳ８００の動作は、図１２に示す予測部４０４の動作の実行中に並行して逐次実行される、いわゆるパイプライン処理であってよい。
【０１０２】
図１３に示すように、第１の実施形態に係る圧縮動作により生成された圧縮データに対して第２の予測部４０５が実行する予測値算出動作では、第２の予測部４０５は、例えば解析部４０４を介して圧縮データを入力すると（ステップＳ８０１）、処理対象の符号化データｃｄ（ｎ）を特定するための変数ｎに１を代入し（ステップＳ８０２）、圧縮データにおけるｎ番目の符号化データｃｄ（ｎ）を処理対象として選択する（ステップＳ８０３）。つづいて、第２の予測部４０５は、選択中の符号化データｃｄ（ｎ）に対して特定された解析情報が解析部４０４から入力されるのを待機し（ステップＳ８０４のＮＯ）、入力された場合（ステップＳ８０４のＹＥＳ）、上述において説明したように、当該符号化データｃｄ（ｎ）の解析情報に含まれている処理フラグｆｌａｇ（ｎ）等に基づいて、符号化データｃｄ（ｎ）に対する予測値ｐｒｅｄＤ（ｎ）を算出する（ステップＳ８０５）。つづいて、第２の予測部４０５は、算出した予測値ｐｒｅｄＤ（ｎ）を符号化データｃｄ（ｎ）の解析情報と共に伸張部１０３へ出力し（ステップＳ８０６）、ステップＳ８０７へ進む。なお、第２の予測部４０５は、算出された予測値ｐｒｅｄＤ（ｎ）を解析情報と共にストックしておき、全ての符号化データｃｄ（ｎ）に対する予測値ｐｒｅｄＤ（ｎ）の算出が完了した後に、ストックしておいた予測値ｐｒｅｄＤ（ｎ）及び解析情報を一括して伸張部４０６へ出力してもよい。
【０１０３】
ステップＳ８０７では、第２の予測部４０５は、ｎがｎの最大値ｎ＿ｍａｘであるか否かを判定し、ｎがｎの最大値ｎ＿ｍａｘでない場合（ステップＳ８０７のＮＯ）、ステップＳ８０８へ進み、変数ｎを１インクリメントして、ステップＳ８０３へリターンする。一方、ｎがｎの最大値ｎ＿ｍａｘである場合（ステップＳ８０７のＹＥＳ）、第２の予測部４０５は、図１１に示す動作へリターンする。
【０１０４】
また、図１４は、本実施形態に係る予測値算出動作の他の一例を示すフローチャートであって、第２の実施形態に係る圧縮動作により生成された圧縮データを伸張する際に実行される予測値算出動作の一例を示すフローチャートである。なお、図１４において、図１３と同様の動作については、それを引用することで重複する説明を省略する。また、図１４に示す動作は、図１３に示した動作と同様に、図１２に示す予測部４０４の動作の実行中に並行して逐次実行される、いわゆるパイプライン処理であってよい。
【０１０５】
図１４に示すように、第２の実施形態に係る圧縮動作により生成された圧縮データに対して第２の予測部４０５が実行する予測値算出動作は、図１３に示す動作と同様の動作において、図１３におけるステップＳ８０５及びＳ８０６の動作がステップＳ８２１〜Ｓ８２４に示す動作に置き換えられている。
【０１０６】
すなわち、本動作では、第２の予測部４０５は、選択した符号化データｃｄ（ｎ）の解析情報を解析部４０４から入力すると（ステップＳ８０４のＹＥＳ）、予測値ｐｒｅｄＤ（ｎ）の算出に用いる伸張済みデータｄｅｃ（ｎ−ｍ）が有効アドレスであるか否かを判定する（ステップＳ８２１）。伸張済みアドレスｄｅｃ（ｎ−ｍ）が有効アドレスである場合（ステップＳ８２１のＹＥＳ）、第２の予測部４０５は、例えば第１の所定値αを用いることで、有効アドレス用の第１の予測値ｐｒｅｄＤ１（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋α）を算出し（ステップＳ８２２）、ステップＳ８２４へ進む。一方、伸張済みアドレスｄｅｃ（ｎ−ｍ）が無効アドレスである場合（ステップＳ８２１のＮＯ）、第２の予測部４０５は、例えば第２の所定値βを用いることで、無効アドレス用の第２の予測値ｐｒｅｄＤ２（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋β）を算出し（ステップＳ８２３）、ステップＳ８２４へ進む。ステップＳ８２４では、第２の予測部４０５は、図１３のステップＳ８０７と同様に、ステップＳ８２２又はＳ８２３で算出された第１の予測値ｐｒｅｄＤ１（ｎ）又は第２の予測値ｐｒｅｄＤ２（ｎ）を符号化データｃｄ（ｎ）の解析情報と共に伸張部４０６へ出力する。
【０１０７】
さらに、図１５は、本実施形態に係る予測値算出動作の更に他の一例を示すフローチャートであって、第３の実施形態に係る圧縮動作により生成された圧縮データを伸張する際に実行される予測値算出動作の一例を示すフローチャートである。なお、図１５において、図１３又は図１４と同様の動作については、それを引用することで重複する説明を省略する。また、図１５に示す動作は、図１３に示した動作と同様に、図１２に示す予測部４０４の動作の実行中に並行して逐次実行される、いわゆるパイプライン処理であってよい。
【０１０８】
図１５に示すように、第３の実施形態に係る圧縮動作により生成された圧縮データに対して第２の予測部４０５が実行する予測値算出動作は、図１３に示す動作と同様の動作において、図１３におけるステップＳ８０５及びＳ８０６の動作がステップＳ８２１〜Ｓ８２３及びステップＳ８４１〜Ｓ８４３に示す動作に置き換えられている。これらの動作において、ステップＳ８２１〜Ｓ８２３の動作は、図１４に示すステップＳ８２１〜Ｓ８２３の動作と同様であってよい。
【０１０９】
すなわち、本動作では、第２の予測部４０５は、ステップＳ８２１の判断において、伸張済みアドレスｄｅｃ（ｎ−ｍ）が有効アドレスでない場合（ステップＳ８２１のＮＯ）、選択中の符号化データｃｄ（ｎ）の解析情報に付加情報が含まれているか否かを判断する（ステップＳ８４１）。付加情報とは、第３の実施形態においても説明したように、当該符号化データｃｄ（ｎ）を生成する際に、規定のアドレスデータａｄｒ（ｎ−ｍ）ではなく、直近の有効アドレスであるアドレスデータａｄｒ（ｎ−ｋ）を用いて予測値ｐｒｅｄ（ｎ）を算出したことを示す情報である。符号化データｃｄ（ｎ）の解析情報に付加情報が含まれていない場合（ステップＳ８４１のＮＯ）、第２の予測部４０５は、図１４のステップＳ８２３に示す動作と同様に、例えば第２の所定値βを用いることで、無効アドレス用の第２の予測値ｐｒｅｄＤ２（ｎ）（＝ｄｅｃ（ｎ−ｍ）＋β）を算出し（ステップＳ８２３）、ステップＳ８４３へ進む。一方、符号化データｃｄ（ｎ）の解析情報に付加情報が含まれている場合（ステップＳ８４１のＹＥＳ）、第２の予測部４０５は、全ての伸張済みアドレスのうちの直近の有効アドレスである伸張済みアドレスｄｅｃ（ｎ−ｋ）に基づき、例えば第３の所定値γを用いることで、第３の予測値ｐｒｅｄＤ３（ｎ）（＝ｄｅｃ（ｎ−ｋ）＋γ）を算出し（ステップＳ８４２）、ステップＳ８４３へ進む。ステップＳ８４３では、第２の予測部４０５は、図１３のステップＳ８０７と同様に、ステップＳ８２２、Ｓ８２３又はＳ８４２で算出された第１の予測値ｐｒｅｄＤ１（ｎ）、第２の予測値ｐｒｅｄＤ２（ｎ）又は第３の予測値ｐｒｅｄＤ３（ｎ）を符号化データｃｄ（ｎ）の解析情報と共に伸張部４０６へ出力する。
【０１１０】
つづいて、図１１のステップＳ９００において伸張部４０６が実行する伸張動作について説明する。図１６は、本実施形態に係る伸張動作の一例を示すフローチャートである。なお、図１６に示す動作、すなわち図１１のステップＳ９００の動作は、図１３〜図１５のいずれかに示す第２の予測部４０５の動作の実行中に並行して逐次実行される、いわゆるパイプライン処理であってよい。
【０１１１】
図１６に示すように、伸張部４０６は、例えば第２の予測部４０５を介して圧縮データを入力すると（ステップＳ９０１）、処理対象の符号化データｃｄ（ｎ）を特定するための変数ｎに１を代入し（ステップＳ９０２）、圧縮データにおけるｎ番目の符号化データｃｄ（ｎ）を処理対象として選択する（ステップＳ９０３）。つづいて、伸張部４０６は、選択中の符号化データｃｄ（ｎ）に対して特定された予測値及び解析情報が第２の予測部４０５から入力されるのを待機し（ステップＳ９０４のＮＯ）、入力された場合（ステップＳ９０４のＹＥＳ）、選択された符号化データｃｄ（ｎ）の解析情報に含まれる処理フラグｆｌａｇ（ｎ）を特定する（ステップＳ９０５）。
【０１１２】
処理フラグｆｌａｇ（ｎ）が“００”である場合（ステップＳ９０５のｆｌａｇ（ｎ）＝００）、すなわち、符号化データｃｄ（ｎ）が第１の符号化処理により符号化されたデータである場合、伸張部４０６は、解析情報に含まれる予測値ｐｒｅｄＤ（ｎ）と差分値ｄｉｆｆ（ｎ）とを加算することで、符号化データｃｄ（ｎ）の復号データを生成する第１の復号処理を実行し（ステップＳ９０６）、ステップＳ９０９へ進む。なお、生成された復号データは、所定のメモリ領域に蓄積される。
【０１１３】
処理フラグｆｌａｇ（ｎ）が“０１”である場合（ステップＳ９０５のｆｌａｇ（ｎ）＝０１）、すなわち、符号化データｃｄ（ｎ）が第２の符号化処理により符号化されたデータである場合、伸張部４０６は、解析情報に含まれるアドレスデータａｄｒ（ｎ）を符号化データｃｄ（ｎ）の復号データとする第２の復号処理を実行し（ステップＳ９０７）、ステップＳ９０９へ進む。なお、生成された復号データは、所定のメモリ領域に蓄積される。
【０１１４】
処理フラグｆｌａｇ（ｎ）が“１０”である場合（ステップＳ９０５のｆｌａｇ（ｎ）＝１０）、すなわち、符号化データｃｄ（ｎ）が第１の符号化処理により符号化されたデータである場合、伸張部４０６は、当該符号化データｃｄ（ｎ）に対して算出された予測値ｐｒｅｄＤ（ｎ）を符号化データｃｄ（ｎ）の復号データとする第３の復号処理を実行し（ステップＳ９０８）、ステップＳ９０９へ進む。なお、生成された復号データは、所定のメモリ領域に蓄積される。
【０１１５】
ステップＳ９０９では、伸張部４０６は、ｎがｎの最大値ｎ＿ｍａｘであるか否かを判定し、ｎがｎの最大値ｎ＿ｍａｘでない場合（ステップＳ９０９のＮＯ）、ステップＳ９１０へ進み、変数ｎを１インクリメントして、ステップＳ９０３へリターンする。一方、ｎがｎの最大値ｎ＿ｍａｘである場合（ステップＳ９０９のＹＥＳ）、伸張部４０６は、図１１に示す動作へリターンする。これにより、所定のメモリ領域内には、圧縮データを伸張することで得られたオリジナルの入力データが蓄積される。
【０１１６】
以上のように、本実施形態によれば、第１〜３の実施形態に係る圧縮動作によって効率的に圧縮されたデータを的確に伸張することが可能なデータ処理装置４００を実現することができる。
【０１１７】
その他の構成、動作及び効果については、上述した実施形態と同様であるため、ここでは詳細な説明を省略する。
【０１１８】
（第５の実施形態）
次に、第５の実施形態について、図面を参照して詳細に説明する。第５の実施形態では、第４の実施形態で例示したデータ処理装置４００を記憶装置（以下、メモリシステムという）に適用した場合について、図面を用いて詳細に説明する。なお、以下では、第１〜第４の実施形態のいずれかと同様の説明についてはそれを引用することで、重複する説明を省略する。
【０１１９】
図１７は、本実施形態に係るメモリシステムの概略構成例を示すブロック図である。図１７に示すように、本実施形態に係るメモリシステム５００は、データ処理装置４００と、データ処理装置４００から出力された圧縮データ５１１を格納する不揮発性メモリ５１０とを備える。この構成において、不揮発性メモリ５１０は、データを不揮発に記憶する不揮発性メモリであり、例えば、ＮＡＮＤ型フラッシュメモリ（以下、単にＮＡＮＤメモリという）である。ただし、ＮＡＮＤメモリに限らず、３次元構造フラッシュメモリ、ＲｅＲＡＭ（Resistive Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）等、ＮＡＮＤメモリ以外の種々の記憶媒体が不揮発性メモリ５１０の代わりに使用されてもよい。また、不揮発性メモリ５１０が半導体メモリであることは必須ではなく、半導体メモリ以外の種々の記憶媒体に対して本実施形態を適用することも可能である。
【０１２０】
つづいて、図１８に、本実施形態に係るメモリシステム５００のより具体的な構成例を示す。図１８に示すように、メモリシステム５００は、メモリコントローラ５２０と不揮発性メモリ５１０とを備える。このようなメモリシステム５００は、外部装置であるホスト５３０と接続可能である。ホスト５３０は、例えば、パーソナルコンピュータ、携帯端末などの電子機器であってよい。
【０１２１】
メモリシステム５００は、いわゆるＳＳＤ（Solid State Drive）や、メモリコントローラ５２０と不揮発性メモリ５１０とが１つのパッケージとして構成されるメモリカード等、不揮発性メモリ５１０を備える種々のメモリシステムであってよい。
【０１２２】
メモリコントローラ５２０は、ホスト５３０からの書込み要求に従って不揮発性メモリ５１０への書込みを制御する。また、ホスト５３０からの読出し要求に従って不揮発性メモリ５１０からの読み出しを制御する。メモリコントローラ５２０は、ホストＩ／Ｆ（ホストインタフェース）５２７、メモリＩ／Ｆ（メモリインタフェース）５２３、制御部５２１、符号化／復号部（コーデック）５２４、データバッファ５２２及びＲＡＭ（Random Access Memory）５２８を備える。ホストＩ／Ｆ５２７、メモリＩ／Ｆ５２３、制御部５２１、コーデック５２４、データバッファ５２２及びＲＡＭ５２８は、内部バス５２９で相互に接続されている。
【０１２３】
ホストＩ／Ｆ５２７は、ホスト５３０との間のインタフェース規格に従った処理を実施し、ホスト５３０から受信した命令、書込み対象のユーザデータなどを内部バス５２９に出力する。また、ホストＩ／Ｆ５２７は、不揮発性メモリ５１０から読み出されて復元されたユーザデータ、制御部５２１からの応答などをホスト５３０へ送信する。
【０１２４】
メモリＩ／Ｆ５２３は、制御部５２１の指示に基づいて、不揮発性メモリ５１０への書込み処理を行う。また、メモリＩ／Ｆ５２３は、制御部５２１の指示に基づいて、不揮発性メモリ５１０からの読み出し処理を行う。
【０１２５】
データバッファ５２２は、メモリコントローラ５２０がホスト５３０から受信したユーザデータを不揮発性メモリ５１０へ記憶するまでに一時格納する。また、データバッファ５２２は、不揮発性メモリ５１０から読み出されて復元されたユーザデータをホスト５３０へ送信するまでに一時格納する。データバッファ５２２には、例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）やＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）などの汎用メモリを用いることができる。
【０１２６】
コーデック５２４は、データバッファ５２２に一旦格納されたユーザデータを符号化して不揮発性メモリ５１０へ書き込まれる符号語を生成する符号化器５２５と、不揮発性メモリ５１０から読み出された受信語を復号してユーザデータを復元する復号器５２６とを含む。なお、コーデック５２４により符号化されるデータには、ユーザデータ以外にも、論物変換テーブルなど、メモリコントローラ５２０内部で用いる制御データ等が含まれてもよい。また、コーデック５２４の符号化方式には、例えば、第１の実施形態で例示したハフマン符号などの可変長符号を用いた符号化方式の他、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号のような代数的符号を用いた符号化方式や、ＬＤＰＣ（Low-Density Parity-Check）符号のような疎グラフに基づく符号を用いた符号化方式等を採用することができる。
【０１２７】
制御部５２１は、メモリシステム５００の各構成要素を統括的に制御する。制御部５２１は、ホスト５３０からホストＩ／Ｆ５２７経由で命令を受けた場合に、その命令に従った制御を行う。例えば、制御部５２１は、ホスト５３０からの書き込み要求に従って、当該書込み要求と共にホスト５３０から受信してデータバッファ５２２内に蓄積されたユーザデータの不揮発性メモリ５１０への書き込みをメモリＩ／Ｆ５２３へ指示する。また、制御部５２１は、ホスト５３０からの読出し要求に従って、不揮発性メモリ５１０からのユーザデータの読み出しをメモリＩ／Ｆ５２３へ指示する。
【０１２８】
また、制御部５２１は、ホスト５３０から受信したユーザデータの論理アドレス空間上の格納位置を示す論理アドレスと、実際にユーザデータが格納された物理アドレス空間上の格納領域を示す物理アドレスとの対応関係を管理する。この対応関係の管理は、論物変換テーブルを用いて行なわれる。そこで、制御部５２１は、ホスト５３０から書込み要求を受信した場合、当該書込み要求と共にホスト５３０から受信してデータバッファ５２２に蓄積されたユーザデータに対し、不揮発性メモリ５１０上の格納領域（メモリ領域）を決定し、決定した格納領域を示す物理アドレスとホスト５３０から通知された論理アドレスとを対応付けて論物変換テーブルに格納する。また、制御部５２１は、ホスト５３０から読出し要求を受信した場合、当該読出し要求により指定された論理アドレスを上述の論物変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読出しをメモリＩ／Ｆ５２３へ指示する。
【０１２９】
制御部５２１によって管理される論物変換テーブルは、例えば、不揮発性メモリ５１０内の所定の領域に格納される。そこで、本実施形態では、不揮発性メモリ５１０内に格納する論物変換テーブルを、上述した第１〜第３の実施形態に係る圧縮動作によって圧縮する。不揮発性メモリ５１０内の論物変換テーブルを圧縮データ５１１とすることで、不揮発性メモリ５１０内に論物変換テーブルが占める割合を低減することができる。その結果、不揮発性メモリ５１０のメモリ効率を高めることが可能となる。
【０１３０】
また、不揮発性メモリ５１０内の論物変換テーブル（又はその圧縮データ５１１）は、必要に応じてその一部又は全部が読み出され、キャッシュデータ５１２としてＲＡＭ５２８内に格納される。ＲＡＭ５２８は、例えば、メモリシステム５００内に設けられて制御部５２１の作業領域として使用されるキャッシュメモリであり、ロードされたファームウエアや各種変換テーブルなどの種々のデータを記憶する。このＲＡＭ５２８は、メモリコントローラ５２０内に設けられてもよいし、メモリコントローラ５２０とは別に独立して設けられてもよい。また、ＲＡＭ５２８には、例えば、ＤＲＡＭやＳＲＡＭなどを用いることができる。
【０１３１】
キャッシュメモリであるＲＡＭ５２８は、通常、不揮発性メモリ５１０よりもアクセス時の遅延時間が短い。そのため、論物変換テーブルの一部又は全部をキャッシュデータ５１２としてＲＡＭ５２８内に格納しておくことで、制御部５２１が論理アドレスを物理アドレスに変化する際の遅延時間を小さくし、メモリシステム５００のレイテンシを小さくすることが可能となる。
【０１３２】
また、論物変換テーブルにおけるより多くのデータ（論理アドレスと物理アドレスとの対応関係）をＲＡＭ５２８にキャッシュすることで、制御部５２１が論理アドレスを物理アドレスに変化する際のキャッシュヒット率を高めることが可能となる。そこで、本実施形態では、ＲＡＭ５２８内に格納するキャッシュデータ５１２（論物変換テーブルの一部又は全部）を、上述した第１〜第３の実施形態に係る圧縮動作によって圧縮する。キャッシュデータ５１２を圧縮データとする。これにより、多くのデータ（論理アドレスと物理アドレスとの対応関係）をＲＡＭ５２８にキャッシュすることが可能となるため、制御部５２１が論理アドレスを物理アドレスに変化する際のキャッシュヒット率が高められ、その結果、メモリシステム５００のレイテンシをより小さくすることが可能となる。
【０１３３】
なお、本実施形態において、図１７に示したデータ処理装置４００は、例えば、メモリコントローラ５２０内の制御部５２１によって実現される。ただし、これに限定されず、制御部５２１とは別構成のデータ処理装置４００が内部バス５２９に接続される構成など、種々変更することが可能である。
【０１３４】
以上のように、本実施形態によれば、不揮発性メモリ５１０内に格納されている論物変換テーブルを、上述した第１〜第３の実施形態に係る圧縮動作によって効率的に圧縮することが可能となる。それにより、不揮発性メモリ５１０内に論物変換テーブル（圧縮データ５１１）が占める割合を低減することができ、その結果、不揮発性メモリ５１０のメモリ効率を高めることが可能となる。
【０１３５】
また、本実施形態によれば、キャッシュメモリであるＲＡＭ５２８内のキャッシュデータ５１２を、上述した第１〜第３の実施形態に係る圧縮動作によって効率的に圧縮することが可能となる。それにより、多くのデータ（論理アドレスと物理アドレスとの対応関係）をＲＡＭ５２８にキャッシュすることができるため、制御部５２１が論理アドレスを物理アドレスに変化する際のキャッシュヒット率が高めることが可能となる。その結果、メモリシステム５００のレイテンシをより小さくすることが可能となる。
【０１３６】
なお、第１〜第３の実施形態に係る圧縮動作によって圧縮されてＲＡＭ５２８内に格納されるデータは、キャッシュデータ５１２に限られず、ファームウエアや各種変換テーブルなどの種々のデータを対象とすることが可能である。
【０１３７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１３８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３９】
１００，４００…データ処理装置、１０１…予測部（第１の予測部）、１０２…決定部、１０３…圧縮部、４０４…解析部、４０５…第２の予測部、４０６…伸張部、５００…メモリシステム、５１０…不揮発性メモリ、５１１…圧縮データ、５１２…キャッシュデータ、５２１…制御部、５２２…データバッファ、５２３…メモリＩ／Ｆ、５２４…コーデック、５２５…符号化器、５２６…復号器、５２７…ホストＩ／Ｆ、５２８…ＲＡＭ、５２９…内部バス、５３０…ホスト
【図１】
2019102027.tif 000003
【図２】
2019102027.tif 000004
【図３】
2019102027.tif 000005
【図４】
2019102027.tif 000006
【図５】
2019102027.tif 000007
【図６】
2019102027.tif 000008
【図７】
2019102027.tif 000009
【図８】
2019102027.tif 000010
【図９】
2019102027.tif 000011
【図１０】
2019102027.tif 000012
【図１１】
2019102027.tif 000013
【図１２】
2019102027.tif 000014
【図１３】
2019102027.tif 000015
【図１４】
2019102027.tif 000016
【図１５】
2019102027.tif 000017
【図１６】
2019102027.tif 000018
【図１７】
2019102027.tif 000019
【図１８】
2019102027.tif 000020