(57)【要約】【課題】より効率的に処理を実行できるようにする。【解決手段】制御部は、データをｎビット単位でアクセスし、記憶部は、ｍビット単位の管理データを複数個組み合わせてｎビットになるように、管理データを記憶し、変換部は、制御部が管理データにアクセスする場合、ｍビット単位の管理データをｎビット単位の管理データに仮想的に変換する。【選択図】図１３
2013025673.tif 000002
【特許請求の範囲】
【請求項１】
データをｎビット単位でアクセスする制御部と、
ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と、
前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する変換部と
を備える情報処理装置。
【請求項２】
前記管理データは、前記記憶部のうちの、不揮発性の第１の記憶部から揮発性の第２の記憶部にコピーされ、
前記管理データは、前記第２の記憶部に記憶されるデータの処理の単位であるブロックに対するデータの記録の有無を表している
請求項１に記載の情報処理装置。
【請求項３】
前記管理データの1ビットは、１つの前記ブロックに対応している
請求項２に記載の情報処理装置。
【請求項４】
前記変換部の変換においては、前記ｍビットの前記管理データと、それに（ｎ−ｍ）個の０のビットを付加して得られるｎビットの前記管理データとが対応づけられている
請求項３に記載の情報処理装置。
【請求項５】
前記第１の記憶部と前記第２の記憶部は、前記管理データに対するエラーチェックコードをさらに記憶し、
前記変換部の変換では、ｎビットの前記エラーチェックコードをｍビット毎に分割した前記エラーチェックコードと、ｍビット毎の前記エラーチェックコードに（ｎ−ｍ）個の０のビットを付加して得られるｎビットの前記エラーチェックコードが対応づけられている
請求項４に記載の情報処理装置。
【請求項６】
前記ｍビットは４ビットであり、前記ｎビットは8ビットである
請求項５に記載の情報処理装置。
【請求項７】
前記制御部、前記記憶部、および前記変換部は、ブロック単位でデータを処理するICチップに含まれ、
前記第２の記憶部では、４ブロックからなるページを単位として前記データが処理される
請求項６に記載の情報処理装置。
【請求項８】
前記制御部とは別に、前記第２の記憶部の前記データを検索する検索部をさらに備え、
前記検索部は、前記変換部を介して前記第２の記憶部から取得した前記管理データに基づいて、前記制御部から取得した検索データを検索する
請求項７に記載の情報処理装置。
【請求項９】
前記検索部は、前記管理データに基づき前記データが記録されていると判定された前記ブロックから取得された取得データと、前記検索データとが一致する場合、前記取得データの前記ブロックのアドレスを前記第２の記憶部に記憶させる
請求項８に記載の情報処理装置。
【請求項１０】
前記制御部は、前記検索部により前記第２の記憶部に記憶された前記アドレスに対応する前記データを前記第１の記憶部から取得する
請求項９に記載の情報処理装置。
【請求項１１】
データをｎビット単位でアクセスする制御部と、
ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と
を備える情報処理装置の情報処理方法であって、
前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する
情報処理方法。
【請求項１２】
データをｎビット単位でアクセスする制御部と、
ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と
を備える情報処理装置を制御するコンピュータに実行させるためのプログラムであって、
前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は情報処理装置および方法、並びにプログラムに関し、特に、より効率的に処理を実行できるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
IC（Integrated Circuit）カードや携帯情報端末に組み込まれたICチップなどの情報処理装置では、外部の機器と接続され、情報処理装置のメモリ領域に対してデータの書き込みまたは読み取りなどが行われる（例えば特許文献１参照）。
【０００３】
特許文献１の技術では、不揮発性メモリに格納されたデータが揮発性メモリ（例えば、RAM（Random Access Memory））に格納され、揮発性メモリ上で書き込みまたは読み取りの処理が実行される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３２３４３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このような特許文献１の技術では、主にCPU（Central Processing Unit）が、不揮発性メモリから所定のデータを読み出し、揮発性メモリに格納し、所定のデータの書き込みまたは読み取りを実行する。
【０００６】
従って、CPUの処理量が増大するので、処理時間が増加し、CPUが効率的に処理を実行することができないおそれがあった。
【０００７】
本技術は、このような状況に鑑みてなされたものであり、より効率的に処理を実行できるようにするものである。
【課題を解決するための手段】
【０００８】
本技術の一側面の情報処理装置は、データをｎビット単位でアクセスする制御部と、ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と、前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する変換部とを備える情報処理装置である。
【０００９】
前記管理データは、前記記憶部のうちの、不揮発性の第１の記憶部から揮発性の第２の記憶部にコピーされ、前記管理データは、前記第２の記憶部に記憶されるデータの処理の単位であるブロックに対するデータの記録の有無を表すことができる。
【００１０】
前記管理データの1ビットは、１つの前記ブロックに対応することができる。
【００１１】
前記変換部の変換においては、前記ｍビットの前記管理データと、それに（ｎ−ｍ）個の０のビットを付加して得られるｎビットの前記管理データとが対応づけることができる。
【００１２】
前記第１の記憶部と前記第２の記憶部は、前記管理データに対するエラーチェックコードをさらに記憶し、前記変換部の変換では、ｎビットの前記エラーチェックコードをｍビット毎に分割した前記エラーチェックコードと、ｍビット毎の前記エラーチェックコードに（ｎ−ｍ）個の０のビットを付加して得られるｎビットの前記エラーチェックコードが対応づけることができる。
【００１３】
前記ｍビットは４ビットであり、前記ｎビットは8ビットであることができる。
【００１４】
前記制御部、前記記憶部、および前記変換部は、ブロック単位でデータを処理するICチップに含まれ、前記第２の記憶部では、４ブロックからなるページを単位として前記データが処理されることができる。
【００１５】
前記制御部とは別に、前記第２の記憶部の前記データを検索する検索部をさらに備え、前記検索部は、前記変換部を介して前記第２の記憶部から取得した前記管理データに基づいて、前記制御部から取得した検索データを検索することができる。
【００１６】
前記検索部は、前記管理データに基づき前記データが記録されていると判定された前記ブロックから取得された取得データと、前記検索データとが一致する場合、前記取得データの前記ブロックのアドレスを前記第２の記憶部に記憶させることができる。
【００１７】
前記制御部は、前記検索部により前記第２の記憶部に記憶された前記アドレスに対応する前記データを前記第１の記憶部から取得することができる。
【００１８】
本技術の一側面の情報処理方法は、データをｎビット単位でアクセスする制御部と、ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部とを備える情報処理装置の情報処理方法であって、前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する情報処理方法である。
【００１９】
本技術の一側面のプログラムは、データをｎビット単位でアクセスする制御部と、ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部とを備える情報処理装置を制御するコンピュータに実行させるためのプログラムであって、前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換するプログラムである。
【００２０】
本技術の一側面においては、制御部が、データをｎビット単位でアクセスし、記憶部が、ｍビット単位の管理データを複数個組み合わせてｎビットになるように、管理データを記憶する。制御部が管理データにアクセスする場合、ｍビット単位の管理データがｎビット単位の管理データに仮想的に変換される。
【発明の効果】
【００２１】
本技術の側面によれば、より効率的に処理を実行することが可能になる。
【図面の簡単な説明】
【００２２】
【図１】本技術を適用しない場合のICチップの構成を示すブロック図である。
【図２】NVMのメモリ構造の例を示す図である。
【図３】有効ブロック管理領域の詳細を説明する図である。
【図４】ページ領域の詳細を説明する図である。
【図５】データ転送処理を説明するフローチャートである。
【図６】検索DB生成処理を説明するフローチャートである。
【図７】検索処理を説明するフローチャートである。
【図８】データ更新処理を説明するフローチャートである。
【図９】情報処理装置の一実施の形態の構成を示すブロック図である。
【図１０】ICチップの構成を示すブロック図である
【図１１】データ転送処理を説明するフローチャートである。
【図１２】RAMに記録されたデータの例を示す図である。
【図１３】有効ブロック管理の原理を示す図である。
【図１４】有効ブロック管理領域の具体的な例を示す図である。
【図１５】有効ブロック管理領域の具体的な例を示す図である。
【図１６】１アドレス領域の具体的な例を示す図である。
【図１７】検索処理を説明するフローチャートである。
【図１８】検索処理を説明するフローチャートである。
【図１９】検索処理を説明するフローチャートである。
【図２０】検索処理を説明する図である。
【図２１】データ更新処理を説明するフローチャートである。
【図２２】更新データ転送処理を説明するフローチャートである。
【発明を実施するための最良の形態】
【００２３】
以下、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は以下の順序で行う。
１−１．比較のためのICチップの例
１−２．データ転送処理
１−３．検索DB生成処理
１−４．検索処理
１−５．データ更新処理
２−１．本技術を適用した情報処理装置の構成
２−２．データ転送処理
２−３．検索処理
２−４．データ更新処理
２−５．更新データ転送処理
３．その他
【００２４】
［比較のためのICチップの例］
【００２５】
最初に、本技術を適用した場合のICチップと比較するためのICチップについて説明する。図１は、比較のためのICチップ１の構成を示すブロック図である。図１のICチップ１は、CPU２１、RAM２２、NVM（Non-Volatile Memory）２３、IRQ（Interrupt Request）制御部２４、ROM（Read Only Memory）２５、電源制御部２６、およびCRC（Cyclic Redundancy Check）回路２７から構成される。
【００２６】
CPU２１は、例えば、NVM２３、ROM２５に記憶されているプログラムを、RAM２２にロードすることにより、各種の処理を実行する。
【００２７】
IRQ制御部２４は、割り込み処理を制御する。電源制御部２６は、ICチップ１の電力の供給を制御する。CRC回路２７は、CRCの検定処理および生成処理を実行する。
【００２８】
次に図２乃至図４を参照して、NVM２３に記録されているデータについて説明する。図２は、NVM２３のメモリ構造の例を示す図である。
【００２９】
図２に示されるように、NVM２３には、有効ブロック管理領域（図面には、データ領域_有効ブロック管理領域と記載されている）４１−１，４１−２と、データ領域４２−０乃至４２−５０３等の管理情報が記録されている。また、それがのアドレスであるOffset_Address,Page_Address,Block_Addressが記録される。
【００３０】
なお、有効ブロック管理領域４１−１，４１−２、およびデータ領域４２−０乃至４２−５０３を個々に区別する必要がない場合、以下単に、有効ブロック管理領域４１、およびデータ領域４２と記述する。他の構成要素についても同様とする。
【００３１】
データ領域４２には、所定のデータが格納される。各データはブロック（＝３２バイト）という単位で扱われる。また、各ブロックは、NVM２３内では、ページ（＝４ブロック＝１２８バイト）という単位で扱われる。各データのアドレスは１バイト（＝８ビット）で示される。
【００３２】
有効ブロック管理領域４１は、データ領域４２内の各ブロックの有効または無効（すなわち未使用または使用中）を示すデータを格納する。有効ブロック管理領域４１では、１ブロックにつき１ビットが割り当てられている。図３を参照して、有効ブロック管理領域４１の詳細について説明する。
【００３３】
図３は、有効ブロック管理領域４１の詳細を説明する図である。図３Aには、管理領域０と管理領域１を有する有効ブロック管理領域４１−１の例が示され、図３Bには、管理領域２と管理領域３を有する有効ブロック管理領域４１−２の例が示されている。
【００３４】
有効ブロック管理領域４１−１は、ページ領域６１−０乃至６１−２５１の２５２個のページ領域６１と、CRC１−１， CRC１−２，CRC２−１，CRC２−２を有している。１つのページ領域６１とCRCには、４ビットが割り当てられている。
【００３５】
例えば、管理領域０は、Block_Addressが0x0,0x1とされ、管理領域１は、Block_Addressが0x2,0x3とされる。Offset_Addressは、0x00乃至0x1Fとされる。
【００３６】
例えば、ページ０とページ１のデータは、Offset_Address 0x00に保持されている１バイトのデータの、上位４ビットと下位４ビットでそれぞれ表され、ページ２とページ３のデータは、Offset_Address 0x01に保持されている１バイトのデータの、上位４ビットと下位４ビットでそれぞれ表される。
【００３７】
有効ブロック管理領域４１−２も同様である。
【００３８】
図４を参照して、ページ領域６１の詳細について説明する。
【００３９】
図４は、ページ領域６１の詳細を説明する図である。例えば図４に示されるように、ページ領域６１−０，６１−１は、それぞれ４つのブロックBlock０，Block１，Block２，Block３のフラグを有している。
【００４０】
各ブロックのフラグは１ビットで表されている。具体的には、Offset_Address 0x00に保持されているデータの上位４ビットであるBit7乃至Bit4が、偶数ページ（例えばページ０）のBlock０乃至Block３のフラグとされている。
【００４１】
同様に、Offset_Address 0x00に保持されているデータの下位４ビットであるBit3乃至Bit0が、奇数ページ（例えばページ１）のBlock０乃至Block３のフラグとされている。
【００４２】
フラグの０は、そのブロックが有効（データ領域４２が未使用）であることを表し、フラグの１は、そのブロックが無効（データ領域４２が使用中）であることを表す。
【００４３】
［データ転送処理］
【００４４】
次に、データを検索する場合の一連の処理について説明する。この場合、NVM２３の該当する有効ブロック管理領域が読み出され、RAM２２に転送、記憶される。転送された有効ブロック管理領域のデータを基に、検索用データベースがRAM２２に作成される。検索用データベースに基づいてデータが検索される。
【００４５】
また、NVM２３の有効ブロック管理領域を更新する場合、まずRAM２２の有効ブロック管理データが更新される。そして、更新された有効ブロック管理データがRAM２２から読み出され、NVM２３に転送され、NVM２３の有効ブロック管理データが更新される。以上の処理を個別に説明すると、次のようになる。
【００４６】
図５を参照して、CPU２１のデータ転送処理について説明する。図５は、CPU２１のデータ転送処理を説明するフローチャートである。
【００４７】
ステップＳ１において、CPU２１は、NVM２３に有効ブロック管理領域のデータのリードのためにアクセスする。
【００４８】
ステップＳ２において、CPU２１は、NVM２３から有効ブロック管理領域のデータを取得する。例えば、図２の有効ブロック管理領域４１−１が取得される。
【００４９】
ステップＳ３において、CPU２１は、RAM２２に有効ブロック管理領域のデータを記録する。例えば、NVM２３に記録されている有効ブロック管理領域４１−１がRAM２２に展開される。これらの処理は、必要に応じて複数回繰り返された後、終了する。
【００５０】
［検索DB生成処理］
【００５１】
次に、図６を参照して、CPU２１の検索DB（Database）生成処理について説明する。図６は、CPU２１の検索DB生成処理を説明するフローチャートである。CPU２１の検索DB生成処理は、図５のデータ転送処理が実行された後、開始される。
【００５２】
ステップＳ２１において、CPU２１は、RAM２２に有効ブロック管理領域のデータのリードのためにアクセスする。すなわち、図５のステップＳ３の処理でRAM２２に記録された有効ブロック管理領域のデータを読み出すための処理が行われる。
【００５３】
ステップＳ２２において、CPU２１は、有効ブロック管理領域のデータを取得する。すなわち、図５のステップＳ３の処理でRAM２２に記録された有効ブロック管理領域のデータが読み出され、記憶される。
【００５４】
ステップＳ２３において、CPU２１は、検索DBを生成する。CPU２１が有効ブロック管理領域のデータを１つずつ検索する場合、処理時間が長くなる。そこで、検索を効率的に行うために有効ブロック管理領域のデータから検索DBが生成される。検索DBは、例えば、ハッシュテーブル、バイナリテーブルなどのアルゴリズムにより生成される。
【００５５】
ステップＳ２４において、CPU２１は、RAM２２に検索DBを記録する。すなわち、ステップＳ２３の処理で生成された検索DBがRAM２２に記録される。これらの処理は、必要に応じて複数回繰り返された後、終了する。
【００５６】
このように、ICチップ１では、RAM２２に検索DBを記録するための領域を、有効ブロック管理領域とは別に確保する必要がある。
【００５７】
［検索処理］
【００５８】
次に、図７を参照して、CPU２１の検索処理について説明する。図７は検索処理を説明するフローチャートである。この検索処理は、図６の検索DB生成処理が完了した後、開始される。
【００５９】
ステップＳ６１において、CPU２１は、検索情報を取得する。検索情報は、例えば、検索対象のID（Identification）などである。
【００６０】
ステップＳ６２において、CPU２１は、RAM２２に検索DBから検索情報をリードするためにアクセスする。すなわち、図６のステップＳ２４の処理でRAM２２に記録された検索ＤＢを読み出すための処理が実行される。
【００６１】
ステップＳ６３において、CPU２１は、検索されたデータのアドレスを取得する。すなわち、ステップＳ６１の処理で取得された検索情報（例えばID）に対応するアドレスがRAM２２の検索DBから取得される。
【００６２】
ステップＳ６４において、CPU２１は、アドレスに対応するデータのリードのためにアクセスする。すなわち、ステップＳ６３の処理で取得されたアドレスに対応するデータを読み出すための処理が実行される。
【００６３】
ステップＳ６５において、CPU２１は、データを取得する。すなわち、検索情報に対応するデータが読み出される。
【００６４】
［データ更新処理］
【００６５】
次に図８を参照して、CPU２１の有効ブロック管理領域のデータ更新処理について説明する。図８は、CPU２１のデータ更新処理を説明するフローチャートである。この有効ブロック管理領域のデータ更新処理は、有効ブロック管理領域のデータを更新する必要が生じたとき開始される。
【００６６】
ステップＳ８１において、CPU２１は、更新データを取得する。すなわち、新たにNVM２３の有効ブロック管理領域に記録されるデータが取得される。
【００６７】
ステップＳ８２において、CPU２１は、RAM２２の有効ブロック管理領域のデータを更新する。すなわち、ステップＳ８１で取得された有効ブロック管理領域のデータがRAM２２の有効ブロック管理領域に記録される。
【００６８】
例えば、新たなデータが記録されたデータ領域に対応する有効ブロック管理領域のフラグが有効から無効に更新される。またはデータが削除されたデータ領域に対応する有効ブロック管理領域のフラグが無効から有効に更新される。
【００６９】
ステップＳ８３において、CPU２１は、有効ブロック管理領域のデータのリードのためにアクセスする。すなわち、更新された有効ブロック管理領域を読み出すための処理が実行される。
【００７０】
ステップＳ８４において、CPU２１は、有効ブロック管理領域のデータを取得する。すなわち、更新された有効ブロック管理領域のデータが読み出され、取得される。
【００７１】
ステップＳ８５において、CPU２１は、有効ブロック管理領域を更新する。すなわち、RAM２２上で更新された有効ブロック管理領域のデータがNVM２３に転送され、記録される。ステップＳ８５の処理の後、CPU２１のデータ更新処理は終了する。
【００７２】
このように、CPU２１は、NVM２３に格納されている有効ブロック管理領域を一旦RAM２２にコピーし、所定の処理を実行し、再びNVM２３に転送し、記録する。
【００７３】
しかし、これらの処理は全てCPU２１を介して実行されるので、CPU２１の負荷が大きくなる。
【００７４】
また、NVM２３へのアクセスは時間がかかるので、そのアクセス数を減らしてデータの検索を効率的に行うために、検索DBが生成され、RAM２２に記録される。従って、検索DBのための記録領域をRAM２２に確保しなければならないばかりでなく、迅速な検索が困難となる。
【００７５】
さらに、図３と図５に示したように、ICチップ１においては、４ビット単位でデータが管理されている。しかし、CPU２１は、１バイト単位でアクセスを行うので、実際には不要な４ビットも含めて読み出し、書き込みの処理を実行する必要があり、効率的でなく、迅速な処理が困難となる。
【００７６】
以上の問題点を解決するための本実施の形態の情報処理装置の構成例を以下に示す。
【００７７】
［本技術を適用した場合の情報処理装置の構成］
【００７８】
図９は、情報処理装置１０１の一実施の形態の構成を示すブロック図である。情報処理装置１０１は、例えば、携帯電話機などにより構成される。
【００７９】
情報処理装置１０１は、電源回路１２１、通信用CPU１２２、アプリケーション用CPU１２３、アンテナ１２４、メインメモリ１２５、内部不揮発性メモリ１２６、外部不揮発性メモリ１２７、入力部１２８、出力部１２９、カメラ１３０、および外部I／O（Input／Output）１３１から構成される。
【００８０】
電源回路１２１は、図示せぬ電池などから供給される電力を、通信用CPU１２２、アプリケーション用CPU１２３、外部I／O１３１の外部接続端子１５１、その他に供給する。
【００８１】
通信用CPU１２２は、アンテナ１２４を介して各種の通信処理を制御する。アプリケーション用CPU１２３は、各種のアプリケーションを実行する。なお、通信用CPU１２２とアプリケーション用CPU１２３は、一体化した１つのCPUにより構成することもできる。
【００８２】
メインメモリ１２５は、例えばDRAM（Dynamic Random Access Memory）により構成される。内部不揮発性メモリ１２６および外部不揮発性メモリ１２７は、各種の情報を記憶、保持する。外部不揮発性メモリ１２７は、必要に応じて装着される。
【００８３】
通信用CPU１２２とアプリケーション用CPU１２３は、例えば、内部不揮発性メモリ１２６または外部不揮発性メモリ１２７に記憶されているプログラムをメインメモリ１２５にロードし、そのプログラムに従って各種の処理を実行する。
【００８４】
入力部１２８は、例えば、キーボード、ボタン等のユーザインタフェースにより構成され、所定の情報を入力するときユーザにより操作される。
【００８５】
出力部１２９は、例えば、画像や音楽を出力するLCD（Liquid Crystal Display）、有機EL（Electro Luminescence）ディスプレイ、スピーカなどにより構成される。
【００８６】
カメラ１３０は、CCD（Charge Coupled Device）イメージセンサ、CMOS（Complementary Metal Oxide Semiconductor）イメージセンサなどにより構成される。
【００８７】
外部I／O１３１は、外部接続端子１５１、SIM（Subscriber Identity Module）／USIM（Universal SIM）１５２、無線LAN（Local Area Network）通信部１５３、Bluetooth（商標）通信部１５４、赤外線通信部１５５、およびFeliCa（商標）などのICチップ１５６などにより構成される。
【００８８】
外部接続端子１５１は、例えばUSB（Universal Serial Bus）１７１などにより構成される。SIM／USIM１５２は、電話番号を特定するための固有のIDを保持する。
【００８９】
無線LAN通信部１５３、Bluetooth通信部１５４、赤外線通信部１５５、およびICチップ１５６は、無線で各種の通信機器と各種の情報を通信する。
【００９０】
図１０は、ICチップ１５６の構成を示すブロック図である。なお、本技術は、 FeliCaに限らず、同様の構成を有するICチップにも適用することができる。
【００９１】
ICチップ１５６は、RF（Radio Frequency）チップ２０１と、SAM（Secure Application Module）チップ２０２から構成される。
【００９２】
RFチップ２０１は、情報処理装置１０１のアプリケーション用CPU１２３および外部の通信機器と各種の情報を通信する。SAMチップ２０２は、ICチップ１５６のメインチップとして構成され、各種の情報を格納する。
【００９３】
SAMチップ２０２は、制御部としてのCPU２２１、第２の記憶部としてのRAM２２２、第１の記憶部としてのNVM２２３、例えばRAMにより構成される変換部２２４、検索部２２５、IRQ制御部２２７、ROM２２８、電源制御部２２９、およびCRC回路２３０から構成される。
【００９４】
CPU２２１は、プログラムに従って各種の動作を制御する。このプログラムにより、CPU２２１は実質的に、取得部２４１、出力部２４２、判定部２４３、および記録部２４４の機能ブロックを有している。なおCPU２２１の各ブロックは、必要に応じて相互に信号、データを授受することが可能とされている。
【００９５】
CPU２２１は、例えば、NVM２２３、ROM２２８に記憶されているプログラムをRAM２２２にロードし、そのプログラムに従って各種の処理を実行する。
【００９６】
変換部２２４は、NVM２２３に記録された有効ブロック管理領域用メモリのデータを展開する。また、変換部２２４は、レジスタを有し、レジスタによりNVM２２３とRAM２２２とのDMA（Direct Memory Access）転送が制御される。変換部２２４は、実質的にDMAコントローラを内蔵する。
【００９７】
CPU２２１とは別にハードウェアで構成される検索部２２５は、レジスタを有し、レジスタの制御によりNVM２２３に記録された所定のデータを検索する。
【００９８】
なお、NVM２２３に記録されているデータは、図２乃至図４を参照して説明したNVM２３のデータと同様である。すなわち４ビット単位でデータが管理されている。
【００９９】
ただし、後述するように、CPU２２１と検索部２２５から見た場合、図１４乃至図１６に示されるように記憶されているものと解釈される。
【０１００】
IRQ制御部２２７は、割り込み処理を制御する。電源制御部２２９は、ICチップ１５６の電力の供給を制御する。CRC回路２３０は、CRCの検定処理および生成処理を実行する。
【０１０１】
［データ転送処理］
【０１０２】
図１１と図１２を参照して、データ転送処理について説明する。図１１は、CPU２２１のデータ転送処理と変換部２２４のデータ転送処理を説明するフローチャートである。図１２は、RAM２２２に記録されたデータの例を示す図である。
【０１０３】
CPU２２１のデータ転送処理は、例えば、SAMチップ２０２の電源制御部２２９により電力が供給された場合に開始される。
【０１０４】
ステップＳ２０１において、CPU２２１の出力部２４２は、変換部２２４に有効ブロック管理領域のデータ転送コマンドをセットする。すなわち、CPU２２１から変換部２２４に有効ブロック管理領域のデータの転送コマンドが送信される。ステップＳ２０１の処理の後、CPU２２１のデータ転送処理は終了する。
【０１０５】
ステップＳ２２１において、変換部２２４は、CPU２２１からデータ転送コマンドを取得する。すなわち、有効ブロック管理領域のデータの転送コマンドが取得され、レジスタにセットされる。
【０１０６】
ステップＳ２２２において、変換部２２４は、レジスタにセットされたコマンドに従って、NVM２２３に有効ブロック管理領域のデータのリードのためにアクセスする。すなわち、NVM２２３から有効ブロック管理領域のデータを読み出すための処理が実行される。
【０１０７】
ステップＳ２２３において、変換部２２４は、NVM２２３から読み出された有効ブロック管理領域のデータを取得する。例えば、図２の有効ブロック管理領域４１−１と同様のデータが取得される。
【０１０８】
ステップＳ２２４において、変換部２２４は、RAM２２２に有効ブロック管理領域のデータを記録する。例えば、図１２に示されるように、NVM２２３に記録されている有効ブロック管理領域４１−１，４１−２のコピーがRAM２２２に展開される。ステップＳ２２４の処理の後、変換部２２４のデータ転送処理は終了する。
【０１０９】
以上の処理はレジスタに保持されたコマンドに応じて、複数回実行される。
【０１１０】
このように、CPU２２１に代わり変換部２２４がデータ転送処理を実行するので、CPU２２１の負荷を軽減し、効率的に処理を実行することできる。
【０１１１】
図１１のデータ転送処理によりRAM２２２に記録された有効ブロック管理領域は、CPU２２１から所定のデータが読み出される場合、変換部２２４により、仮想的にデータフォーマットが変換される。図１３乃至図１６を参照して、有効ブロック管理領域のデータフォーマットについて説明する。
【０１１２】
図１３は、データフォーマットの例を示す図である。図１１のデータ転送処理が実行されると、RAM２２２には有効ブロック管理領域としての１０２４ビットのNVMアクセス領域３０１が記録される。
【０１１３】
すなわち、NVM２２３に記録されている有効ブロック管理領域のコピーがNVMアクセス領域３０１としてRAM２２２に記録される。
【０１１４】
NVMアクセス領域３０１には、例えば、１アドレス（＝１バイト）にページ領域３２１−０，３２１−１の２ページ分の管理情報が格納されている。
【０１１５】
NVMアクセス領域３０１の全体には、２５２ページ（１２６バイト）分の管理情報と、それらに対する２バイトのエラーチェックコード（CRC）が付加されている。CRCは、管理情報が変更されると、その都度再計算され、更新される。
【０１１６】
CPU２２１は、バイト単位のアクセスを基本としているため、NVMアクセス領域３０１のように１アドレスに２ページ分のデータが格納されている場合、１ページ毎の処理を実行することができない。
【０１１７】
そこで、変換部２２４に、図１３に示される２０４８ビットの有効ブロック管理領域３０２が仮想的に形成され、これによりCPU２２１または検索部２２５がアクセスする場合のデータフォーマットが変換される。
【０１１８】
具体的には、各バイトがMSB（Most Significant Bit）側の４ビットと、LSB（Least Significant Bit）側の４ビットに分割される。そして分割された４ビットが新たなバイトのLSB側に配置され、新たなバイトのMSB側に４ビットの０が挿入される。
【０１１９】
すなわちページ領域３２１のMSB側に４ビットの０を付加して新たなバイトが形成される。例えば４ビットのページ領域３２１−０の前に４ビットの０が付加されて、新たなバイト３３１とされ、４ビットのページ領域３２１−１の前に４ビットの０が付加されて、別の新たなバイト３３２とされる。
【０１２０】
なお、CRC３２２についても同様に、各バイトがMSB（Most Significant Bit）側の４ビットと、LSB（Least Significant Bit）側の４ビットに分割される。そして分割された４ビットが新たなバイトのLSB側に配置され、新たなバイトのMSB側に４ビットの０が挿入される。
【０１２１】
例えばCRC３２２がMSB側の４ビットと、LSB側の４ビットに分割され、分割された４ビットが新たなバイトのLSB側に配置され、新たなバイトのMSB側に４ビットの０が挿入されて、新たなバイトのCRC３４２−１，３４２−２が形成される。
【０１２２】
この場合、新たに形成されたCRC３４２は、CRCとしては意味はないが、CPU２２１が他のアドレスと同様に扱うことができるので、効率的に処理を実行することができる。
【０１２３】
有効ブロック管理領域３０２は、NVMアクセス領域３０１を仮想的にミラーリングしていることになる。
【０１２４】
管理情報は、NVM２２３においてはNVMアクセス領域３０１の形式で記憶されている。しかし管理情報は、NVM２２３のブロックに対して情報を書き込むか読み出すCPU２２１または検索部２２５に対しては、有効ブロック管理領域３０２の形式で提供される。
【０１２５】
これにより、バイト単位でのアクセスが可能となる。しかし、そのバイトのMSB側の４ビットは意味を有していないので、実質的には４ビット単位でデータにアクセスが行われていることになる。その結果、効率的で迅速な処理が可能となる。
【０１２６】
図１４と図１５は、図１３の有効ブロック管理領域３０２の具体的な例を示す図である。図１６は、１アドレス領域の具体的な例を示す図である。
【０１２７】
図１４Ａの管理領域３６１−１と図１４Ｂの管理領域３６１−２により、図１３の有効ブロック管理領域３０２が構成される。同様に、図１５Ａの管理領域３６１−１１と図１５Ｂの管理領域３６１−１２により、図１３の有効ブロック管理領域３０２が構成される。
【０１２８】
図１４と図１５の管理領域３６１のうち空白の欄には、図１６に示されるように、４ビット（Bit7乃至Bit4）分の０が格納されている。
【０１２９】
例えばページ０のBlock0乃至Block3の記録状態は、Offset_Address 0x00に保持されている１バイトのデータのLSB側の４ビット（Bit3乃至Bit0）により表され、ページ１の記録状態は、Offset_Address 0x01に保持されている１バイトのデータのLSB側の４ビットにより表される。
【０１３０】
つまり、NVM２２３には、図３と図４に示されるように記憶されている管理情報が、図１４乃至図１６に示されるように変換されてCPU２２１と検索部２２５に対して提供される。
【０１３１】
このように、データフォーマットを変換することで、１アドレスに１ページ分のデータが仮想的に格納されることになり、CPU２２１は１バイト単位で実質的に４ビット単位のアクセスを行うことができ、負荷が軽減されるとともに、効率的に処理を実行することができる。
【０１３２】
［検索処理］
【０１３３】
次に、図１７を参照して、検索処理について説明する。図１７はCPU２２１の検索処理、変換部２２４の検索処理、および検索部２２５の検索処理を説明するフローチャートである。CPU２２１の検索処理は、検索情報が指示されたときに開始される。
【０１３４】
ステップＳ３２１において、CPU２１の取得部２４１は、初期値を取得する。初期値は、例えば、検索情報、検索開始アドレス、および検索終了アドレスなどである。
【０１３５】
ステップＳ３２２において、CPU２１の出力部２４２は、検索部２２５に初期値をセットする。すなわち、ステップＳ３２１の処理で取得された初期値が検索部２２５に出力される。またこのとき、検索のコマンドも出力される。
【０１３６】
ステップＳ３４１において、検索部２２５は、初期値を取得する。すなわち、ステップＳ３２２の処理で出力された初期値が取得され、レジスタにセットされる。このとき、検索コマンドもレジスタにセットされる。
【０１３７】
ステップＳ３４２において、検索部２２５は、変換部２２４に有効ブロック管理領域のリードのためにアクセスする。すなわち、有効ブロック管理領域を読み出すための処理が実行される。このとき図１３の有効ブロック管理領域３０２による管理情報のデータフォーマットの変換が要求される。
【０１３８】
ステップＳ３６１において、変換部２２４は、有効ブロック管理領域の管理情報のデータフォーマットの変換の要求を取得する。
【０１３９】
ステップＳ３６２において、変換部２２４は、有効ブロック管理領域の管理情報のデータフォーマットを変換し、RAM２２２に出力する。
【０１４０】
ステップＳ３６３において、変換部２２４は、RAM２２２から読み出されたデータであって、変換されたデータフォーマットで指定された有効ブロック管理領域のデータを取得する。このデータは、図１１のステップＳ２２４の処理で、RAM２２２に記憶されたものである。
【０１４１】
ステップＳ３６４において、変換部２２４は、検索部２２５に有効ブロック管理領域のデータを出力する。すなわち、ステップＳ３６３の処理でRAM２２２から取得された有効ブロック管理領域のデータが、検索部２２５に出力される。ステップＳ３６４の処理の後、変換部２２４の検索処理は終了する。
【０１４２】
ステップＳ３４３において、検索部２２５は、有効ブロック管理領域のデータを取得する。すなわち、ステップＳ３６４の処理で変換部２２４から出力された有効ブロック管理領域のデータが取得される。
【０１４３】
ステップＳ３４４において、検索処理が実行される。すなわち、検索処理により検索対象のデータのアドレスが取得される。検索部２２５の検索処理の詳細は、図１９を参照して後述する。
【０１４４】
ステップＳ３４５において、検索部２２５は、NVM２２３にデータのリードのためにアクセスする。すなわち、ステップＳ３４４の処理で検索された検索対象のデータのアドレスに対応する、NVM２２３のデータ領域のデータの読み出しのための処理が実行される。
【０１４５】
ステップＳ３４６において、検索部２２５は、NVM２２３からデータを取得する。すなわち、ステップＳ３４４の処理で検索されたデータが取得される。
【０１４６】
ステップＳ３４７において、検索部２２５は、取得されたデータと検索データを比較する。すなわち、取得されたデータと初期値に含まれる検索データが一致するかが判定される。
【０１４７】
ステップＳ３４８において、検索部２２５は、CPU２２１に割り込みを通知する。すなわち、CPU２２１に検索結果が通知される。ステップＳ３４８の処理の後、検索部２２５の検索処理は終了する。
【０１４８】
割り込みが通知された後のCPU２２１の処理は、図１８を参照して後述する。
【０１４９】
次に、図１８乃至図２０を参照して、検索処理の詳細について説明する。図１８は、CPU２２１の検索処理の詳細を説明するフローチャートである。図１９は、検索部２５の検索処理の詳細を説明するフローチャートである。図２０は、検索部２２５の検索処理を説明する図である。
【０１５０】
図１８においてステップＳ４０１，Ｓ４０２の処理は、図１７のステップＳ３２１，Ｓ３２２の処理に対応する処理である。また、図１９においてステップＳ４２１，Ｓ４２５，Ｓ４３２，Ｓ４３３，Ｓ４３５の処理は、図１７のステップＳ３４１，Ｓ３４３，Ｓ３４６乃至Ｓ３４８に対応する処理である。従って、これらの処理は繰り返しになるので簡単に説明する。
【０１５１】
図１８のステップＳ４０１において、CPU２２１の取得部２４１は、初期値を取得する。ステップＳ４０２において、CPU２２１の出力部２４２は、検索部２２５に初期値をセットする。
【０１５２】
図１９のステップＳ４２１において、検索部２２５は、ステップＳ４０２でCPU２２１から出力された初期値を取得する。
【０１５３】
ステップＳ４２２において、検索部２２５は、開始アドレスがスタートアドレスであるかを判定する。すなわち、ステップＳ４２１の処理で取得された初期値に含まれる検索開始アドレスが新規スタートであるか、または前の状態の続きからの再スタートであるかが判定される。
【０１５４】
ステップＳ４２２において、開始アドレスが新規スタートであると判定された場合、ステップＳ４２３において、検索部２２５は、開始アドレスを生成する。すなわち、初期値に含まれる有効ブロック管理領域の検索開始アドレスからNVM２２３のデータ領域の開始アドレスが生成される。
【０１５５】
ステップＳ４２４において、検索部２２５は、終了位置を設定する。すなわち、初期値に含まれる検索終了アドレスからフラグを検索する終了位置が設定される。
【０１５６】
一方、ステップＳ４２２において、開始アドレスが新規スタートでないと判定された場合、すなわち再スタートである場合、ステップＳ４２３，Ｓ４２４の処理はスキップされ、処理はステップＳ４２５に進む。
【０１５７】
ステップＳ４２５において、検索部２２５は、変換部２２４から有効ブロック管理領域のデータを取得する。例えば、図２０に示されるように、変換部２２４のNVMアクセス領域３０１のデータが取得される。NVMアクセス領域３０１には、１０２４ビットの専用領域が４個（つまり４０９６ビット分）設けられている。
【０１５８】
ステップＳ４２６において、検索部２２５は、ブロック情報を取得する。すなわち、有効ブロック管理領域のデータのうち、新規スタートの開始アドレスまたは再スタートのアドレスに対応するブロック情報、すなわちフラグが取得される。
【０１５９】
ステップＳ４２７において、検索部２２５は、検索カウンタを１だけインクリメントする。なお、検索カウンタの初期値は０とする。図２０に示されるように、検索部２２５のシフトレジスタ３７１より１つのブロックのフラグが取得された場合、検索カウンタ３８２は１だけインクリメントされる。
【０１６０】
ステップＳ４２８において、検索部２２５は、ブロックのフラグが有効であるかを判定する。例えば、図２０に示されるようにフラグ３８１として０が取得された場合、フラグは未使用を意味するので、有効であると判定される。
【０１６１】
ステップＳ４２８において、ブロックのフラグが有効であると判定された場合、ステップＳ４２９において、検索部２２５は、終了位置であるかを判定する。すなわち、現在のブロックの位置がステップＳ４２４の処理で設定された終了位置であるかが判定される。
【０１６２】
ステップＳ４２９において、まだ終了位置でないと判定された場合、ステップＳ４３０において、検索部２２５は、次のブロック情報を取得する。すなわち、次のブロックに対応するアドレスが取得され、アドレスに対応するブロック情報が取得される。
【０１６３】
なお、図２０に示されるように、NVMアクセス領域３０１のうち、CRC３２２の領域およびその冗長データの領域が格納されたブロックはスキップされる。
【０１６４】
ステップＳ４３０の処理の後、処理はステップＳ４２７に戻り、それ以降の処理が繰り返される。
【０１６５】
一方、例えば、図２０に示されるようにフラグ３８１として１が取得された場合、フラグは使用中を意味するので、ステップＳ４２８において、ブロックのフラグが無効である（有効ではない）と判定される。
【０１６６】
この場合、ステップＳ４３１において、検索部２２５は、検索カウンタ３８２に基づいて、NVM２２３のアドレスを生成する。検索カウンタ３８２は、図２０のNVMアクセス領域３０１（有効ブロック管理領域）では、１ブロック毎に１だけインクリメントされる。
【０１６７】
一方、NVM２２３のデータ領域では、１ブロックに対して３２バイトが割り当てられている。従って、検索カウンタ３８２のカウンタ数と３２バイトの積と、ステップＳ４２３の処理で生成されたNVM２２３の開始アドレスとの和を算出することでNVM２２３のアドレスが生成される。
【０１６８】
ステップＳ４３２において、検索部２２５は、ＮＶＭ２２３からステップＳ４３２の処理で生成されたアドレスに対応するデータを取得する。すなわち、NVM２２３のデータ領域に記録されているデータが取得される。
【０１６９】
ステップＳ４３３において、検索部２２５は、取得されたデータと検索データが一致するかを判定する。すなわち、NVM２２３のデータ領域に記録されていたデータが、検索対象のデータであるかが判定される。
【０１７０】
ステップＳ４３３において、取得されたデータと検索データが一致しないと判定された場合、すなわち、取得されたデータと検索データが異なる場合、処理はステップＳ４２９に進む。
【０１７１】
一方、ステップＳ４３３において、取得されたデータと検索データが一致すると判定された場合、すなわち、取得されたデータが検索データである場合、処理はステップＳ４３４に進む。
【０１７２】
ステップＳ４３４において、検索部２２５は、生成されたアドレスをRAM２２２に記録する。すなわち、ステップＳ４３１の処理で生成されたアドレスが、検索データのアドレスとしてＲＡＭ２２２に記録される。
【０１７３】
ステップＳ４３４の処理の後、およびステップＳ４２９の処理で終了位置であると判定された場合、ステップＳ４３５において、検索部２２５は、割り込みおよび結果フラグを通知する。
【０１７４】
すなわち、IRQ制御部２２７の制御によりCPU２２１に割り込みが通知されるとともに、検索部２２５の検索処理の結果フラグが通知される。
【０１７５】
結果フラグは、ステップＳ４３４の処理が実行された場合、検索成功を表すフラグとされ、ステップＳ４２９の処理で終了位置であると判定された場合、検索失敗を表すフラグとされる。
【０１７６】
ステップＳ４３５の処理の後、検索部２２５の検索処理は終了する。
【０１７７】
図１８の説明に戻って、ステップＳ４０３において、CPU２２１の判定部２４３は、割り込みが通知されたかを判定する。ステップＳ４０３において、まだ割り込みが通知されていないと判定された場合、処理はステップＳ４０３に戻り、同様の処理が繰り返される。
【０１７８】
一方、ステップＳ４０３において、割り込みが通知されたと判定された場合、すなわち、図１９のステップＳ４３５の処理で検索部２２５から割り込みが通知された場合、処理はステップＳ４０４に進む。
【０１７９】
ステップＳ４０４において、CPU２２１の取得部２４１は、結果フラグを取得する。すなわち、図１９のステップＳ４３５の処理で通知された結果フラグが取得される。
【０１８０】
ステップＳ４０５において、CPU２２１の判定部２４３は、検索に成功したかを判定する。すなわち、結果フラグが検索成功を表すフラグであるかが判定される。
【０１８１】
ステップＳ４０５において、検索に成功したと判定された場合、ステップＳ４０６において、CPU２２１の取得部２４１は、RAM２２２からアドレスを取得する。すなわち、図１９のステップＳ４３４の処理で記録されたアドレスが取得される。
【０１８２】
ステップＳ４０７において、CPU２２１の取得部２４１は、NVM２２３のデータ領域からアドレスに対応するデータを取得する。すなわち、検索対象のデータが取得される。
【０１８３】
一方、ステップＳ４０５において、検索に成功しなかったと判定された場合、すなわち検索に失敗した場合、CPU２２１の出力部２４２は、エラーを出力する。出力されたエラーは、例えば、情報処理装置１０１の出力部１２９により出力される。
【０１８４】
ステップＳ４０７，Ｓ４０８の処理の後、ステップＳ４０９において、CPU２２１の判定部２４３は、全てのデータの検索が終了したかを判定する。
【０１８５】
ステップＳ４０９において、まだ全てのデータの検索が終了していないと判定された場合、処理はステップＳ４０１に戻り、それ以降の処理が繰り返される。
【０１８６】
一方、ステップＳ４０９において、全てのデータの検索が終了したと判定された場合、CPU２２１の検索処理は終了する。
【０１８７】
このように、データの検索処理を検索部２２５に実行させることで、CPU２２１の負荷が低減され、より効率的に処理を実行することができる。
【０１８８】
［データ更新処理］
【０１８９】
次に、図２１を参照して、有効ブロック管理データの更新処理について説明する。図２１は、CPU２２１のデータ更新処理および変換部２２４のデータ更新処理を説明するフローチャートである。
【０１９０】
この有効ブロック管理データ更新処理は、有効ブロック管理領域のデータを更新する必要が生じたとき開始される。例えば、NVM２２３のデータ領域に新たなデータが記録されたり、NVM２２３のデータ領域に記録されたデータが削除されたとき開始される。
【０１９１】
ステップＳ５４１において、CPU２２１の出力部２４２は、変換部２２４に更新データに対応する有効ブロック管理データを出力する。具体的には、フラグが出力される。ステップＳ５４１の処理の後、CPU２２１の有効ブロック管理データの更新処理は終了する。
【０１９２】
ステップＳ５６１において、変換部２２４は、有効ブロック管理データを取得する。すなわち、ステップＳ５４１の処理でCPU２２１から出力された有効ブロック管理のためのフラグが取得される。
【０１９３】
ステップＳ５６２において、変換部２２４は、データフォーマットを変換する。すなわち、CPU２２１から参照された有効ブロック管理データは、図１３の有効ブロック管理領域３０２のように、１つのアドレスに対して１ページ分の管理情報が参照されるデータフォーマットである。
【０１９４】
これが、図１３のＮＶＭアクセス領域３０１に示されるような、１つのアドレスに対して２ページ分の管理情報が参照されるデータフォーマットに変換される。
【０１９５】
ステップＳ５６３において、変換部２２４は、RAM２２２に有効ブロック管理データを記録する。すなわち、CPU２２１から取得され、データフォーマットが変換されたＮＶＭアクセス領域３０１のフラグのデータがRAM２２２に記録される。
【０１９６】
例えば、新たなデータが記録されたデータ領域に対応する有効ブロック管理のフラグが有効から無効に更新される、またはデータが削除されたデータ領域に対応する有効ブロック管理のフラグが無効から有効に更新される。
【０１９７】
ステップＳ５６３の処理の後、変換部２２４のデータ更新処理は終了する。
【０１９８】
［更新データ転送処理］
【０１９９】
次に、図２２を参照して、図２１のデータ更新処理により更新されたRAM２２２の有効ブロック管理データをNVM２２３に転送する処理について説明する。
【０２００】
図２２は、CPU２２１の更新データ転送処理および変換部２２４の更新データ転送処理を説明するフローチャートである。CPU２２１の更新データ転送処理は、図２１のデータ更新処理が終了した後、所定のタイミングで開始される。
【０２０１】
ステップＳ５８１において、CPU２２１の出力部２４２は、変換部２２４に有効ブロック管理データ転送コマンドをセットする。ステップＳ５８１の処理の後、CPU２２１の更新データ転送処理は終了する。
【０２０２】
ステップＳ６０１において、変換部２２４は、データ転送コマンドを取得する。すなわち、ステップＳ５８１の処理でCPU２２１から出力されたデータ転送コマンドが取得される。
【０２０３】
ステップＳ６０２において、変換部２２４は、有効ブロック管理データのためにアクセスする。すなわち、更新された有効ブロック管理データを読み出すための処理が実行される。
【０２０４】
ステップＳ６０３において、変換部２２４は、有効ブロック管理データを取得する。すなわち、更新された有効ブロック管理データ（つまり、NVMアクセス領域３０１の全データ）が取得される。
【０２０５】
ステップＳ６０４において、変換部２２４は、NVM２２３に有効ブロック管理データを記録する。すなわち、更新された有効ブロック管理データがNVM２２３に記録される。ステップＳ６０４の処理の後、変換部２２４の更新データ転送処理は終了する。
【０２０６】
このように、CPU２２１の負荷を低減し、効率的にまた迅速に処理を実行することができる。
【０２０７】
なお、上記処理を実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われる処理であっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０２０８】
［その他］
【０２０９】
本技術の実施の形態は、上述した実施形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。また、本技術の実施の形態は、一部の機能を他の装置が有していても良い。
【０２１０】
なお、本技術は以下のような構成も取ることができる。
（１）
データをｎビット単位でアクセスする制御部と、
ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と、
前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する変換部と
を備える情報処理装置。
（２）
前記管理データは、前記記憶部のうちの、不揮発性の第１の記憶部から揮発性の第２の記憶部にコピーされ、
前記管理データは、前記第２の記憶部に記憶されるデータの処理の単位であるブロックに対するデータの記録の有無を表している
前記（１）に記載の情報処理装置。
（３）
前記管理データの1ビットは、１つの前記ブロックに対応している
前記（１）または（２）に記載の情報処理装置。
（４）
前記変換部の変換においては、前記ｍビットの前記管理データと、それに（ｎ−ｍ）個の０のビットを付加して得られるｎビットの前記管理データとが対応づけられている
前記（１）から（３）のいずれかに記載の情報処理装置。
（５）
前記第１の記憶部と前記第２の記憶部は、前記管理データに対するエラーチェックコードをさらに記憶し、
前記変換部の変換では、ｎビットの前記エラーチェックコードをｍビット毎に分割した前記エラーチェックコードと、ｍビット毎の前記エラーチェックコードに（ｎ−ｍ）個の０のビットを付加して得られるｎビットの前記エラーチェックコードが対応づけられている
前記（２）乃至（４）のいずれかに記載の情報処理装置。
（６）
前記ｍビットは４ビットであり、前記ｎビットは8ビットである
前記（１）乃至（５）のいずれか記載の情報処理装置。
（７）
前記制御部、前記記憶部、および前記変換部は、ブロック単位でデータを処理するICチップに含まれ、
前記第２の記憶部では、４ブロックからなるページを単位として前記データが処理される
前記（２）乃至（６）のいずれか記載の情報処理装置。
（８）
前記制御部とは別に、前記第２の記憶部の前記データを検索する検索部をさらに備え、
前記検索部は、前記変換部を介して前記第２の記憶部から取得した前記管理データに基づいて、前記制御部から取得した検索データを検索する
前記（２）乃至（７）のいずれか記載の情報処理装置。
（９）
前記検索部は、前記管理データに基づき前記データが記録されていると判定された前記ブロックから取得された取得データと、前記検索データとが一致する場合、前記取得データの前記ブロックのアドレスを前記第２の記憶部に記憶させる
前記（８）に記載の情報処理装置。
（１０）
前記制御部は、前記検索部により前記第２の記憶部に記憶された前記アドレスに対応する前記データを前記第１の記憶部から取得する
前記（８）または（９）に記載の情報処理装置。
（１１）
データをｎビット単位でアクセスする制御部と、
ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と
を備える情報処理装置の情報処理方法であって、
前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する
情報処理方法。
（１２）
データをｎビット単位でアクセスする制御部と、
ｍビット単位の管理データを複数個組み合わせてｎビットになるように、前記管理データを記憶する記憶部と
を備える情報処理装置を制御するコンピュータに実行させるためのプログラムであって、
前記制御部が前記管理データにアクセスする場合、前記ｍビット単位の前記管理データを前記ｎビット単位の前記管理データに仮想的に変換する
プログラム。
【符号の説明】
【０２１１】
１０１  情報処理装置，  ２２１  CPU，  ２２２  RAM，  ２２３  NVM，  ２２４  変換部，  ２２５  検索部
【図１】
2013025673.tif 000003
【図２】
2013025673.tif 000004
【図３】
2013025673.tif 000005
【図４】
2013025673.tif 000006
【図５】
2013025673.tif 000007
【図６】
2013025673.tif 000008
【図７】
2013025673.tif 000009
【図８】
2013025673.tif 000010
【図９】
2013025673.tif 000011
【図１０】
2013025673.tif 000012
【図１１】
2013025673.tif 000013
【図１２】
2013025673.tif 000014
【図１３】
2013025673.tif 000015
【図１４】
2013025673.tif 000016
【図１５】
2013025673.tif 000017
【図１６】
2013025673.tif 000018
【図１７】
2013025673.tif 000019
【図１８】
2013025673.tif 000020
【図１９】
2013025673.tif 000021
【図２０】
2013025673.tif 000022
【図２１】
2013025673.tif 000023
【図２２】
2013025673.tif 000024