(57)【要約】【課題】一次記憶装置と二次記憶装置を１種類のメモリに統合する。【解決手段】実施形態に係わるメモリコントローラは、アドレス変換テーブル１９と、アドレス変換テーブル１９に基づいて、一次記憶装置にアクセスするための第１の論理アドレスの変換を行い、かつ、二次記憶装置にアクセスするための第２の論理アドレスの変換を行うアドレス変換回路２０と、第１の論理アドレスを受けることにより、不揮発メモリ１４を一次記憶装置としてアクセスし、第２の論理アドレスを受けることにより、不揮発メモリ１４を二次記憶装置としてアクセスする制御回路１７とを備える。【選択図】図１
2014182449.tif 000002
【特許請求の範囲】
【請求項１】
アドレス変換テーブルと、
前記アドレス変換テーブルに基づいて、一次記憶装置にアクセスするための第１の論理アドレスを物理アドレスへの変換を行い、かつ、二次記憶装置にアクセスするための第２の論理アドレスを物理アドレスへの変換を行うアドレス変換回路と、
前記第１の論理アドレスを受けることにより、不揮発メモリを前記一次記憶装置としてアクセスし、前記第２の論理アドレスを受けることにより、前記不揮発メモリを前記二次記憶装置としてアクセスする制御回路とを具備し、
前記制御回路は、
前記不揮発メモリの第１の物理アドレスに前記第２の論理アドレスが割り当てられた第１の状態が前記アドレス変換テーブルにより記憶され、かつ、前記第２の論理アドレスのデータをリードするとき、前記アドレス変換回路により前記第２の論理アドレスを前記第１の物理アドレスに変換し、
前記第１の物理アドレスに新たに前記第１の論理アドレスを割り当て、
前記第１の状態から、前記第１の物理アドレスに前記第１及び第２の論理アドレスの双方が割り当てられた第２の状態へ前記アドレス変換テーブルを更新する
メモリコントローラ。
【請求項２】
アドレス変換テーブルと、
前記アドレス変換テーブルに基づいて、一次記憶装置にアクセスするための第１の論理アドレスを物理アドレスへの変換を行い、かつ、二次記憶装置にアクセスするための第２の論理アドレスを物理アドレスへの変換を行うアドレス変換回路と、
前記第１の論理アドレスを受けることにより、不揮発メモリを前記一次記憶装置としてアクセスし、前記第２の論理アドレスを受けることにより、前記不揮発メモリを前記二次記憶装置としてアクセスする制御回路と
を具備するメモリコントローラ。
【請求項３】
前記制御回路は、
前記不揮発メモリの第１の物理アドレスに前記第１及び第２の論理アドレスの双方が割り当てられている第１の状態が前記アドレス変換テーブルにより記憶され、かつ、前記一次記憶装置としての前記不揮発メモリのデータを書き換えるとき、前記アドレス変換回路により前記第１の論理アドレスを前記第１の物理アドレスに変換し、
更新データを前記不揮発メモリの第２の物理アドレスに書き込み、
前記第２の物理アドレスに前記第１の論理アドレスを割り当て、
前記第１の状態から、前記第１の物理アドレスに前記第２の論理アドレスが割り当てられ、かつ、前記第２の物理アドレスに前記第１の論理アドレスが割り当てられた第２の状態へ、前記アドレス変換テーブルを更新する
請求項２に記載のメモリコントローラ。
【請求項４】
前記制御回路は、
前記不揮発メモリの第１の物理アドレスに前記第１及び第２の論理アドレスの双方が割り当てられている第１の状態が前記アドレス変換テーブルにより記憶され、かつ、前記一次記憶装置としての前記不揮発メモリのデータを書き換えるとき、前記アドレス変換回路により前記第１の論理アドレスを前記第１の物理アドレスに変換し、
前記不揮発メモリの第２の物理アドレスに前記第１の物理アドレスのデータをコピーし、
前記第２の物理アドレスに前記第１の論理アドレスを割り当て、
更新データを前記第２の物理アドレスに書き込み、
前記第１の状態から、前記第１の物理アドレスに前記第２の論理アドレスが割り当てられ、かつ、前記第２の物理アドレスに前記第１の論理アドレスが割り当てられた第２の状態へ、前記アドレス変換テーブルを更新する
請求項２に記載のメモリコントローラ。
【請求項５】
前記制御回路は、
前記不揮発メモリの第１の物理アドレスに前記第１及び第２の論理アドレスの双方が割り当てられている第１の状態が前記アドレス変換テーブルにより記憶され、かつ、前記一次記憶装置としての前記不揮発メモリのデータを書き換えるとき、前記アドレス変換回路により前記第１の論理アドレスを前記第１の物理アドレスに変換し、
前記第１の物理アドレスのデータを前記不揮発メモリの第２の物理アドレスにコピーし、
前記第２の物理アドレスに前記第２の論理アドレスを割り当て、
前記第１の物理アドレスのデータを書き換え、
前記第１の状態から、前記第１の物理アドレスに前記第１の論理アドレスが割り当てられ、かつ、前記第２の物理アドレスに前記第２の論理アドレスが割り当てられた第２の状態へ、前記アドレス変換テーブルを更新する
請求項２に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、メモリコントローラに関する。
【背景技術】
【０００２】
例えば、マイコン、画像処理プロセッサ、音声処理プロセッサなどの計算機システムとしての情報処理装置は、一次記憶装置としてのメインメモリと、二次記憶装置としてのストレージメモリとを備えるのが一般的である。
【０００３】
メインメモリとしては、一般的に、ＤＲＡＭ（Dynamic random access memory）が使用される。また、ストレージメモリとしては、計算機システム内に組み込み易いことから、ＮＡＮＤフラッシュメモリが使用されることが多い。
【０００４】
しかし、情報処理装置内に、メインメモリとストレージメモリという２種類のメモリを設けることは、情報処理装置の低コスト化に不利である。また、メインメモリのＤＲＡＭは、揮発性であり、意図しない電源オフによりデータが消滅する、という問題がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１６５２５１号公報
【特許文献２】特開２０１０−０６６９１４号公報
【特許文献３】特開２００８−２１７２０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
実施形態は、一次記憶装置と二次記憶装置を１種類のメモリに統合するための技術を提案する。
【課題を解決するための手段】
【０００７】
実施形態によれば、メモリコントローラは、アドレス変換テーブルと、前記アドレス変換テーブルに基づいて、一次記憶装置にアクセスするための第１の論理アドレスの変換を行い、かつ、二次記憶装置にアクセスするための第２の論理アドレスの変換を行うアドレス変換回路と、前記第１の論理アドレスを受けることにより、不揮発メモリを前記一次記憶装置としてアクセスし、前記第２の論理アドレスを受けることにより、前記不揮発メモリを前記二次記憶装置としてアクセスする制御回路とを備える。
【図面の簡単な説明】
【０００８】
【図１】情報処理装置を示す図。
【図２】二次記憶装置へのデータライトを示す図。
【図３】アドレス変換テーブルを示す図。
【図４】データリードを示す図。
【図５】アドレス変換テーブルを示す図。
【図６】一次記憶装置内でのデータ書き換えを示す図。
【図７】一次記憶装置内でのデータ書き換えを示す図。
【図８】アドレス変換テーブルを示す図。
【図９】一次記憶装置内でのデータ書き換えを示す図。
【図１０】アドレス変換テーブルを示す図。
【図１１】情報処理装置を示す図。
【図１２】一次記憶装置内でのデータ書き換えを示す図。
【図１３】一次記憶装置内でのデータ書き換えを示す図。
【図１４】一次記憶装置内でのデータ書き換えを示す図。
【図１５】初期化を示す図。
【図１６】アドレス変換テーブルを示す図。
【図１７】データ書き換えの禁止を示す図。
【図１８】データ書き換えの禁止を示す図。
【図１９】アドレス変換テーブルを示す図。
【図２０】情報処理装置を示す図。
【図２１】情報処理装置を示す図。
【図２２】一次記憶装置へのアクセスを示す図。
【図２３】アドレス変換テーブルを示す図。
【図２４】アドレス変換テーブルを示す図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態を説明する。
【００１０】
１．  基本コンセプト  
以下の実施例では、ＮＡＮＤフラッシュメモリなどの不揮発メモリを、一次記憶装置として、及び、二次記憶装置として併用するためのメモリコントローラを提案する。即ち、基本コンセプトは、メインメモリとストレージメモリとを１種類のメモリに統合した情報処理装置（計算機システム）を実現することにある。
【００１１】
このように、不揮発メモリを一次／二次記憶装置として使用すれば、例えば、メインメモリとしてのＤＲＡＭを省略できる。即ち、計算機システムの部品数の削減により、低コスト化を図ることができる。また、不揮発メモリを一次記憶装置として使用することにより作業中のデータが意図しない電源オフにより消滅する、といった事態も防止できる。
【００１２】
但し、この基本コンセプトによる計算機システム内に、メインメモリとしてのＤＲＡＭや、キャッシュメモリとしてのＳＲＡＭ（Static random access memory）などを組み込むことにより、システムの性能向上を図ることも可能である。
【００１３】
また、不揮発メモリを一次／二次記憶装置として使用するとき、ホストからみたときのアクセス制御方法が変更されないことが望ましい。即ち、ホストは、従来と同様に、一次記憶装置と二次記憶装置が存在するものとして（各メモリの種類は認識しない）、アクセス制御を行えるのが望ましい。
【００１４】
そのために、メモリコントローラと、それにより制御される不揮発メモリとを備える不揮発メモリ装置（メモリシステム）を、情報処理装置内に設ける。メモリコントローラは、例えば、ＳＳＤ（Solid state drive）、メモリカードや、ＵＳＢメモリなどの既存のＮＡＮＤコントローラとは異なり、不揮発メモリを一次記憶装置として使用する第１の動作、及び、不揮発メモリを二次記憶装置として使用する第２の動作を、それぞれ共通のメモリコントローラにて制御する。
【００１５】
このようにすれば、従来の計算機システムにおける既存のハードウェア及びソフトウェアを変更することなく、上述のメモリシステムを従来の計算機システムに組み込むだけで、この基本コンセプトによる計算機システムを実現することができるため、システムの開発費を抑えることができる。
【００１６】
さらに、不揮発メモリを一次／二次記憶装置として使用するとき、一次記憶装置及び二次記憶装置間のデータ移動は、同一メモリ（不揮発メモリ）内で行われる。これは、不揮発メモリ内での書き込み／消去回数を、二次記憶装置又は補助記憶装置としてのみ使用される不揮発メモリよりも多くすることを意味する。
【００１７】
そこで、この基本コンセプトによる計算機システムにおいて、例えば、不揮発メモリとして、書き込み／消去回数の制限を持つＮＡＮＤフラッシュメモリを使用するときは、上述の第１及び第２の動作に伴う不揮発メモリ内でのデータ移動（データコピー）の回数を、できるだけ減らす新たなウェアレベリング（Wear leveling）技術も提案する。
【００１８】
これにより、本システムを使用したときの不揮発メモリ内での書き込み／消去回数を減らし、書き込み／消去回数の制限を持つ不揮発メモリの寿命を延ばすことができる。
【００１９】
２．  情報処理装置  
図１は、情報処理装置の主要部を示している。
【００２０】
情報処理装置（計算機システム）は、演算装置（ホスト）１０、不揮発メモリ装置１１、及び、これらを接続するバス１２を備える。
【００２１】
演算装置１０は、プログラム（ソフトウェア）に基づき論理アドレスを生成し、データの読み出し／書き込みを実行する。
【００２２】
不揮発メモリ装置（メモリシステム）１１は、一次記憶装置及び二次記憶装置としてデータの保存に使用される。不揮発メモリ装置１１は、メモリコントローラ１３及び不揮発メモリ１４を備える。不揮発メモリ１４は、例えば、ＮＡＮＤフラッシュメモリ、ＭＲＡＭ（Magnetic random access memory）、ＲｅＲＡＭ（Resistive random access memory）などである。
【００２３】
メモリコントローラ１３は、演算装置１０からの指示に従い、一次記憶装置及び二次記憶装置としての不揮発メモリ１４の動作を制御する。この動作は、読み出し動作、書き込み動作及び消去動作に加え、不揮発メモリ１４を一次記憶装置又は二次記憶装置として使用することに起因して発生する新たな動作を含む。
【００２４】
メモリコントローラ１３は、アドレス変換モジュール１５、不揮発メモリ制御インターフェイス（Ｉ／Ｆ）１６、及び、制御回路１７を備える。アドレス変換モジュール１５は、バスインターフェイス１８−１，１８−２、アドレス変換テーブル１９、及び、アドレス変換回路２０を備える。
【００２５】
不揮発メモリ制御インターフェイス１６は、不揮発メモリ１４に接続される。例えば、不揮発メモリ１４が複数のパッケージを備えるとき、不揮発メモリ制御インターフェイス１６は、これら複数のパッケージに対応して複数のチャネルを備えていてもよい。また、複数のパッケージがＮＡＮＤフラッシュメモリのとき、各パッケージは、ＳＬＣ（Single level cell）であってもよいし、ＭＬＣ（Multi level cell）であってもよい。
【００２６】
バスインターフェイス１８−１は、一次記憶装置としての不揮発メモリ１４内のデータをアクセスするときのインターフェイスである。また、バスインターフェイス１８−２は、二次記憶装置としての不揮発メモリ１４内のデータをアクセスするときのインターフェイスである。
【００２７】
バスインターフェイス１８−１，１８−２は、それぞれ、読み出し／書き込みコマンドなどの制御信号又はデータを入力する複数の端子、及び、データを読み出し／書き込みするための論理アドレスを入力する複数の端子を備える。
【００２８】
本例では、不揮発メモリ装置１１は、一次記憶装置としてのバスインターフェイス１８−１と、二次記憶装置としてのバスインターフェイス１８−２とを備える。但し、これに代えて、不揮発メモリ装置１１は、一次記憶装置及び二次記憶装置としての共通の１つのバスインターフェイスを備えるようにしてもよい。
【００２９】
アドレス変換テーブル１９は、演算装置１０からの論理アドレスと、不揮発メモリ１４の物理アドレスとの対応関係を記憶する。アドレス変換回路２０は、アドレス変換テーブル１９に基づいて、論理アドレスから物理アドレスへの変換を行う。
【００３０】
制御回路１７は、不揮発メモリ１４を一次記憶装置又は二次記憶装置として使用することに起因して発生する新たな動作を制御する。例えば、論理アドレスと物理アドレスとの対応関係を記憶するアドレス変換テーブル１９の更新（書き換え）を行う。具体的なアドレス変換テーブル１９の更新方法については、実施例で説明する。
【００３１】
以上の情報処理装置によれば、一次記憶装置及び二次記憶装置が１つの不揮発メモリ装置１１に統合されるため、計算機システムの部品数の削減により低コスト化を図ることができる。また、不揮発メモリ１４を一次記憶装置として使用するか、又は、二次記憶装置として使用するかは、不揮発メモリ装置１１内のメモリコントローラ１３により制御される。従って、演算装置１０は、既存のハードウェア及びソフトウェアによりデータ処理を行うことができるため、システムの開発費を抑えることができる。
【００３２】
３．  実施例  
以下の実施例では、図１のメモリコントローラ１３による書き込み／読み出しの制御方法について説明する。
【００３３】
(1)   二次記憶装置へのデータライト  
図２は、二次記憶装置へのデータライトを示している。
【００３４】
図１の情報処理装置及び図２のフローチャートに基づき、二次記憶装置へのデータライトを説明する。
【００３５】
二次記憶装置にアクセスするための第２の論理アドレスＬＡｘは、例えば、演算装置１０からバスインターフェイス１８−２を介してアドレス変換回路２０に入力される。
【００３６】
制御回路１７は、不揮発メモリ１４内の物理アドレスＰＡｚに、第２の論理アドレスＬＡｘを割り当てる（ステップＳＴ１）。また、例えば、図３に示すように、制御回路１７は、物理アドレスＰＡｚに第２の論理アドレスＬＡｘが割り当てられたアドレス変換テーブル１９を作成する（ステップＳＴ２）。
【００３７】
この後、制御回路１７は、不揮発メモリ１４の物理アドレスＰＡｚへのアクセスを行い、当該物理アドレスＰＡｚへデータをライトする（ステップＳＴ３）。
【００３８】
尚、データのライト（ステップＳＴ３）は、アドレス変換テーブルの作成（ステップＳＴ２）と並行して行ってもよいし、アドレス変換テーブルの作成（ステップＳＴ２）前に行ってもよい。
【００３９】
(2)   データリード  
図４は、データリードを示している。
【００４０】
図１の情報処理装置及び図４のフローチャートに基づき、データリードを説明する。
【００４１】
まず、二次記憶装置としての不揮発メモリからのデータリードを説明する。
【００４２】
二次記憶装置にアクセスするための第２の論理アドレスＬＡｘは、例えば、演算装置１０からバスインターフェイス１８−２を介してアドレス変換回路２０に入力される。アドレス変換テーブル１９は、例えば、図３に示すように、第２の論理アドレスＬＡｘは不揮発メモリ１４内の物理アドレス（第１の物理アドレス）ＰＡｚに割り当てられた第１の状態を記憶している。
【００４３】
アドレス変換回路２０は、アドレス変換テーブル１９に基づき、第２の論理アドレスＬＡｘを不揮発メモリ１４内の物理アドレスＰＡｚに変換する（ステップＳＴ１１）。
【００４４】
この後、二次記憶装置へのアクセスが確認されると（ステップＳＴ１２）、二次記憶装置から一次記憶装置へのデータの移動又はコピーは、実質的なデータの移動又はコピーを行わず、制御回路１７は、例えば、図５に示すように、当該物理アドレスＰＡｚに、一次記憶装置にアクセスするための論理アドレス（第１の論理アドレス）ＬＡｙを割り当てる（ステップＳＴ１３）。
【００４５】
また、制御回路１７は、アドレス変換テーブル１９を、上述の第１の状態から、物理アドレスＰＡｚに、二次記憶装置にアクセスするための第２の論理アドレスＬＡｘ及び一次記憶装置にアクセスするための第１の論理アドレスＬＡｙの双方が割り当てられた第２の状態へ、更新する（ステップＳＴ１４）。
【００４６】
この操作（アドレス変換テーブルの更新）により、不揮発性メモリ１４内でのデータの移動又はコピーを行わずに、見かけ上は二次記憶装置から一次記憶装置へのデータの移動又はコピーが行われたことになる。
【００４７】
この後、制御回路１７は、不揮発メモリ１４の物理アドレスＰＡｚへのアクセスを行い、当該物理アドレスＰＡｚからデータをリードする（ステップＳＴ１５）。
【００４８】
また、制御回路１７は、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙをホストに通知する（ステップＳＴ１６）。
【００４９】
尚、データのリード（ステップＳＴ１５）は、アドレス変換テーブルの更新（ステップＳＴ１３及びＳＴ１４）と並行して行ってもよいし、アドレス変換テーブルの更新（ステップＳＴ３及びＳＴ４）前に行ってもよい。
【００５０】
また、ホストへの論理アドレスＬＡｙの通知（ステップＳＴ１６）は、第１の論理アドレスＬＡｙの割り当て（ステップＳＴ１３）後ならば、どの時点で行ってもよい。
【００５１】
このように、本例では、二次記憶装置に対してデータリードが行われると、アドレス変換テーブル１９を更新するだけで、二次記憶装置から一次記憶装置へのデータの移動又はコピーが実質的に行われたことになる。
【００５２】
これにより、一次記憶装置又は二次記憶装置としての不揮発メモリ１４内でのデータの移動又はコピーを減らすことができ、例えば、書き込み／消去回数の制限を持つ不揮発メモリの寿命を延ばすことができる。
【００５３】
次に、一次記憶装置としての不揮発メモリからのデータリードを説明する。
【００５４】
アドレス変換テーブル１９は、例えば、図５に示すように、物理アドレスＰＡｚに第２の論理アドレスＬＡｘ及び第１の論理アドレスＬＡｙの双方が割り当てられた第２の状態へ更新されているものとする。
【００５５】
一次記憶装置にアクセスするための第１の論理アドレスＬＡｙは、例えば、演算装置１０からバスインターフェイス１８−１を介してアドレス変換回路２０に入力される。アドレス変換回路２０は、アドレス変換テーブル１９に基づき、第１の論理アドレスＬＡｙを不揮発メモリ１４内の物理アドレスＰＡｚに変換する（ステップＳＴ１１）。
【００５６】
一次記憶装置へのアクセスが確認されると（ステップＳＴ２）、制御回路１７は、不揮発メモリ１４の物理アドレスＰＡｚへのアクセスを行い、当該物理アドレスＰＡｚからデータをリードする（ステップＳＴ１７）。
【００５７】
(3)   一次記憶装置内でのデータ書き換え  
図６は、一次記憶装置内でのデータ書き換えの第１例を示している。
【００５８】
図１の情報処理装置及び図６のフローチャートに基づき、一次記憶装置内でのデータ書き換えの第１例を説明する。この例では、第１の論理アドレスＬＡｙに更新データをライトする場合を考える。
【００５９】
まず、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙは、例えば、演算装置１０からバスインターフェイス１８−１を介してアドレス変換回路２０に入力される。この場合、アドレス変換回路２０は、アドレス変換テーブル１９に基づき、第１の論理アドレスＬＡｙを不揮発メモリ１４内の物理アドレス（第１の物理アドレス）ＰＡｚに変換する（ステップＳＴ２１）。
【００６０】
次に、第１の物理アドレスＰＡｚが第１の論理アドレスＬＡｙの他に異なる論理アドレスにも割り当てられているか否かを確認する（ステップＳＴ２２）。すなわち、第１の物理アドレスＰＡｚに対し、一次記憶装置にアクセスするための第１の論理アドレスと二次記憶装置にアクセスするための第２の論理アドレスの双方が割り当てられているかを確認する。
【００６１】
そして、２つの第１及び第２の論理アドレスＬＡｙ、ＬＡｘが１つの物理アドレスＰＡｚに割り当てられているとき（例えば、アドレス変換テーブル１９が図８（ａ）を示すとき）、第１の物理アドレスＰＡｚのデータ（旧データ）を不揮発メモリ１４の新たな物理アドレス（第２の物理アドレス）ＰＡｎｅｗにコピーする（ステップＳＴ２３）。
【００６２】
また、例えば、図８に示すように、第２の物理アドレスＰＡｎｅｗに、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙを割り当てる（ステップＳＴ２４）。
【００６３】
さらに、第２の物理アドレスＰＡｎｅｗのデータ（旧データ）を、更新データに書き換える（ステップＳＴ２５）。
【００６４】
これにより、更新データが第２の物理アドレスＰＡｎｅｗにライトされる。
【００６５】
次に、例えば、制御回路１７は、図８（ａ）の状態から、図８（ｂ）の状態へアドレス変換テーブル１９を更新する（ステップＳＴ２６）。すなわち、第１の物理アドレスＰＡｚに第２の論理アドレスＬＡｘが割り当てられ、かつ、第２の物理アドレスＰＡｎｅｗに第１の論理アドレスＬＡｙが割り当てられる。
【００６６】
尚、アドレス変換テーブルの更新（ステップＳＴ２６）は、第１の論理アドレスＬＡｙの割り当て（ステップＳＴ２４）後ならば、どの時点で行ってもよい。
【００６７】
これにより、一次記憶装置内のデータと二次記憶装置内のデータが１つの物理アドレスＰＡｚに記憶される場合（図８(ａ)に示す場合）でも、一次記憶装置内でのデータの書き換え（第２の物理アドレスＰＡｎｅｗへの更新データのライト）のみが行われ、二次記憶装置内のデータ（第１の物理アドレスＰＡｚのデータ）は、そのまま保護される。
【００６８】
また、本例の意味することころは、一次記憶装置内のデータの書き換えが行われないときは、一次記憶装置内のデータと二次記憶装置内のデータが１つの物理アドレスＰＡｚに常に記憶されている（図８(ａ)に示す状態のまま）ということである。従って、書き込み／消去回数の制限を持つ不揮発メモリ１４の書き込み／消去回数を減らし、その寿命を延ばすことができる。
【００６９】
なお、１つの物理アドレスに対し２つの論理アドレスが割り当てられている場合、二次記憶装置内のデータの書き換えが行われる場合にも本例と同様に実施することができる。すなわち、その二次記憶装置にアクセスするための論理アドレスを新たな物理アドレスに割り当て、新たな物理アドレスへ更新データをライトすることで二次記憶装置にもデータ更新可能である。
【００７０】
一方、上述のステップＳＴ２２において、二次記憶装置にアクセスするための第２の論理アドレスＬＡｘに割り当てられた物理アドレスと、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙに割り当てられた第１の物理アドレスとが異なるとき、当該第１の物理アドレスＰＡｚのデータを書き換える（ステップＳＴ２７）。
【００７１】
例えば、アドレス変換テーブル１９が図８（ｂ）に示す状態を記憶するとき、第１の論理アドレスＬＡｙは、第２の物理アドレスＰＡｎｅｗに変換される。第２の物理アドレスＰＡｎｅｗは、二次記憶装置のデータが記憶される第１の物理アドレスＰＡｚとは異なるため、第２の物理アドレスＰＡｎｅｗのデータを書き換えれば、一次記憶装置内のデータが書き換えられたことになる。
【００７２】
図７は、一次記憶装置内でのデータ書き換えの第２例を示している。
【００７３】
図１の情報処理装置及び図７のフローチャートに基づき、一次記憶装置内でのデータ書き換えの第２例を説明する。
【００７４】
まず、一次記憶装置にアクセスするための論理アドレス（第１の論理アドレス）ＬＡｙは、例えば、演算装置１０からバスインターフェイス１８−１を介してアドレス変換回路２０に入力される。この場合、アドレス変換回路２０は、アドレス変換テーブル１９に基づき、第１の論理アドレスＬＡｙを不揮発メモリ１４内の物理アドレス（第１の物理アドレス）ＰＡｚに変換する（ステップＳＴ３１）。
【００７５】
次に、第１の物理アドレスＰＡｚが第１の論理アドレスＬＡｙの他に異なる論理アドレスにも割り当てられているか否かを確認する（ステップＳＴ３２）。すなわち、第１の物理アドレスＰＡｚに対し、一次記憶装置にアクセスするための第１の論理アドレスと二次記憶装置にアクセスするための第２の論理アドレスの双方が割り当てられているかを確認する。
【００７６】
そして、２つの第１及び第２の論理アドレスＬＡｙ、ＬＡｘが１つの物理アドレスＰＡｚに割り当てられているとき（例えば、アドレス変換テーブル１９が図８（ａ）を示すとき）、更新データを不揮発メモリ１４の新たな物理アドレス（第２の物理アドレス）ＰＡｎｅｗにライトする（ステップＳＴ３３）。
【００７７】
次に、第２の物理アドレスＰＡｎｅｗに、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙを割り当てる（ステップＳＴ３４）。
【００７８】
次に、例えば、制御回路１７は、図８(ａ)の状態から、図８（ｂ）の状態へのアドレス変換テーブル１９を更新する（ステップＳＴ３５）。すなわち、第１の物理アドレスＰＡｚに第２の論理アドレスＬＡｘが割り当てられ、かつ、第２の物理アドレスＰＡｎｅｗに第１の論理アドレスＬＡｙが割り当てられる。
【００７９】
これにより、一次記憶装置内のデータと二次記憶装置内のデータが１つの物理アドレスＰＡｚに記憶される場合（図８(ａ)に示す状態）でも、一次記憶装置内でのデータの書き換え（新たな物理アドレスＰＡｎｅｗへの更新データのライト）のみが行われ、二次記憶装置内のデータ（物理アドレスＰＡｚのデータ）は、そのまま保護される。
【００８０】
なお、１つの物理アドレスに対し２つの論理アドレスが割り当てられている場合、二次記憶装置内のデータの書き換えが行われる場合にも本例と同様に実施することができる。すなわち、その二次記憶装置にアクセスするための論理アドレスを新たな物理アドレスに割り当て、新たな物理アドレスへ更新データをライトすることで二次記憶装置にもデータ更新可能である。
【００８１】
一方、上述のステップＳＴ３２において、二次記憶装置にアクセスするための第２の論理アドレスＬＡｘに割り当てられた物理アドレスと、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙに割り当てられた第１の物理アドレスＰＡｚとが異なるとき、当該第１の物理アドレスＰＡｚのデータを書き換える（ステップＳＴ３６）。
【００８２】
例えば、アドレス変換テーブル１９が図８（ｂ）に示すとき、第１の論理アドレスＬＡｙは、第２の物理アドレスＰＡｎｅｗに変換される。第２の物理アドレスＰＡｎｅｗは、二次記憶装置のデータが記憶される第１の物理アドレスＰＡｚとは異なるため、第２の物理アドレスＰＡｎｅｗのデータを書き換えれば、一次記憶装置内のデータが書き換えられたことになる。
【００８３】
図９は、一次記憶装置内でのデータ書き換えの第３例を示している。
【００８４】
図１の情報処理装置及び図９のフローチャートに基づき、一次記憶装置内でのデータ書き換えの第３例を説明する。
【００８５】
まず、一次記憶装置にアクセスするための論理アドレス（第１の論理アドレス）ＬＡｙは、例えば、演算装置１０からバスインターフェイス１８−１を介してアドレス変換回路２０に入力される。この場合、アドレス変換回路２０は、アドレス変換テーブル１９に基づき、第１の論理アドレスＬＡｙを不揮発メモリ１４内の物理アドレス（第１の物理アドレス）ＰＡｚに変換する（ステップＳＴ４１）。
【００８６】
次に、第１の物理アドレスＰＡｚが第１の論理アドレスＬＡｙの他に異なる論理アドレスにも割り当てられているか否かを確認する（ステップＳＴ４２）。すなわち、第１の物理アドレスＰＡｚに対し、一次記憶装置にアクセスするための第１の論理アドレスと二次記憶装置にアクセスするための第２の論理アドレスの双方が割り当てられているかを確認する。
【００８７】
そして、２つの第１、第２の論理アドレスＬＡｙ、ＬＡｘが１つの物理アドレスＰＡｚに割り当てられているとき（例えば、アドレス変換テーブル１９が図８（ａ）を示すとき）、第１の物理アドレスＰＡｚのデータ（旧データ）を不揮発メモリ１４の新たな物理アドレス（第２の物理アドレス）ＰＡｎｅｗにコピーする（ステップＳＴ４３）。
【００８８】
また、例えば、図１０（ｂ）に示すように、第２の物理アドレスＰＡｎｅｗに、二次記憶装置にアクセスするための第２の論理アドレスＬＡｘを割り当てる（ステップＳＴ４４）。
【００８９】
さらに、第１の物理アドレスＰＡｚのデータ（旧データ）を、更新データに書き換える（ステップＳＴ４５）。
【００９０】
これにより、更新データが第１の物理アドレスＰＡｚにライトされる。
【００９１】
次に、例えば、図１０に示すように、制御回路１７は、アドレス変換テーブル１９を、図１０（ａ）に示す状態から、第１の物理アドレスＰＡｚに第１の論理アドレスＬＡｙが割り当てられ、かつ、第２の物理アドレスＰＡｎｅｗに第２の論理アドレスＬＡｘが割り当てられた図１０（ｂ）に示す状態へ、更新する（ステップＳＴ４６）。
【００９２】
尚、アドレス変換テーブルの更新（ステップＳＴ４６）は、第２の論理アドレスＬＡｘの割り当て（ステップＳＴ４４）後ならば、どの時点で行ってもよい。
【００９３】
一方、上述のステップＳＴ４２において、二次記憶装置にアクセスするための第２の論理アドレスＬＡｘに割り当てられた物理アドレスと、一次記憶装置にアクセスするための第１の論理アドレスＬＡｙに割り当てられた物理アドレスＰＡｚとが異なるとき、当該物理アドレスＰＡｚのデータを書き換える（ステップＳＴ４７）。
【００９４】
例えば、アドレス変換テーブル１９が図１０（ｂ）に示す状態を記憶しているとき、第１の論理アドレスＬＡｙは、第１の物理アドレスＰＡｚに変換される。第１の物理アドレスＰＡｚは、二次記憶装置のデータが記憶される第２の物理アドレスＰＡｎｅｗとは異なるため、第１の物理アドレスＰＡｚのデータを書き換えれば、一次記憶装置内のデータが書き換えられたことになる。
【００９５】
なお、１つの物理アドレスに対し２つの論理アドレスが割り当てられている場合、二次記憶装置内のデータの書き換えが行われる場合にも本例と同様に実施することができる。すなわち、同じ物理アドレスが割り当てられている一次記憶装置にアクセスするための論理アドレスを新たな物理アドレスに割り当て、かつ、新たな物理アドレスに元のデータをコピーする。元の物理アドレスへ更新データをライトすることで二次記憶装置にもデータ更新可能である。
【００９６】
(4)   ウェアレベリング動作  
上述のデータ書き換え（図６、図７及び図９）に起因する書き込み／消去回数（wear）を平滑化（leveling）する技術を説明する。
【００９７】
図１の不揮発メモリ１４として、ＮＡＮＤフラッシュメモリのような書き込み／消去回数の制限を持つメモリを使用するときは、特定のブロック（特定の物理アドレス）のみを集中して使用すると、その特定のブロックが使用禁止（バッドブロック）となり、メモリ容量の低下を招く。従って、上述のデータ書き換え技術を採用するときは、以下の新たなウェアレベリング動作を採用し、不揮発メモリの寿命を延ばすのが望ましい。
【００９８】
図１１は、情報処理装置の主要部を示している。  
同図は、図１に対応する。図１１の情報処理装置の特徴は、図１の情報処理装置に、ウェアレベリング回路２１を追加した点にあり、その他の点については、図１の情報処理装置と同じである。そこで、図１１では、図１と同じ要素については図１と同じ符号を付すことにより、その詳細な説明を省略する。
【００９９】
ウェアレベリング回路２１は、メモリコントローラ１３内に配置され、上述のデータ書き換え（図６、図７及び図９）に起因する書き込み／消去回数を平滑化（leveling）する。
【０１００】
図１２は、図６のデータ書き換えにウェアレベリング技術を適用した例を示している。
【０１０１】
図１１の情報処理装置及び図１２のフローチャートに基づき、ウェアレベリング動作を説明する。
【０１０２】
まず、図６と同様に、ステップＳＴ２１及びＳＴ２２を実行する。
【０１０３】
次に、２つの第１、第２の論理アドレスＬＡｙ、ＬＡｘが１つの物理アドレス（第１の物理アドレス）ＰＡｚに割り当てられているとき、不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数を参照する（ステップＳＴ２３−１）。
【０１０４】
不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数は、例えば、ウェアレベリング回路２１内に記憶される。ウェアレベリング回路２１は、不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数に基づき、当該第１の物理アドレスＰＡｚのデータをコピーする新たな物理アドレス（第２の物理アドレス）ＰＡｎｅｗを決定する（ステップＳＴ２３−２）。
【０１０５】
例えば、書き込み／消去回数がブロックごとに設定されるとき、最も少ない書き込み／消去回数を有するブロック内の物理アドレスを第２の物理アドレスＰＡｎｅｗとする。
【０１０６】
そして、第１の物理アドレスＰＡｚのデータを、不揮発メモリ１４の第２の物理アドレスＰＡｎｅｗにコピーする（ステップＳＴ２３−３）。
【０１０７】
この後、図６と同様に、ステップＳＴ２４〜ＳＴ２７を実行する。
【０１０８】
図１３は、図７のデータ書き換えにウェアレベリング技術を適用した例を示している。
【０１０９】
図１１の情報処理装置及び図１３のフローチャートに基づき、ウェアレベリング動作を説明する。
【０１１０】
まず、図７と同様に、ステップＳＴ３１及びＳＴ３２を実行する。
【０１１１】
次に、２つの第１、第２の論理アドレスＬＡｙ、ＬＡｘが１つの物理アドレス（第１の物理アドレス）ＰＡｚに割り当てられているとき、不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数を参照する（ステップＳＴ３３−１）。
【０１１２】
不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数は、例えば、ウェアレベリング回路２１内に記憶される。ウェアレベリング回路２１は、不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数に基づき、更新データをライトする新たな物理アドレス（第２の物理アドレス）ＰＡｎｅｗを決定する（ステップＳＴ３３−２）。
【０１１３】
例えば、書き込み／消去回数がブロックごとに設定されるとき、最も少ない書き込み／消去回数を有するブロック内の物理アドレスを第２の物理アドレスＰＡｎｅｗとする。
【０１１４】
そして、更新データを、不揮発メモリ１４の第２の物理アドレスＰＡｎｅｗにライトする（ステップＳＴ３３−３）。
【０１１５】
この後、図７と同様に、ステップＳＴ３４〜ＳＴ３６を実行する。
【０１１６】
図１４は、図９のデータ書き換えにウェアレベリング技術を適用した例を示している。
【０１１７】
図１１の情報処理装置及び図１４のフローチャートに基づき、ウェアレベリング動作を説明する。
【０１１８】
まず、図９と同様に、ステップＳＴ４１及びＳＴ４２を実行する。
【０１１９】
次に、２つの第１、第２の論理アドレスＬＡｙ、ＬＡｘが１つの物理アドレス（第１の物理アドレス）ＰＡｚに割り当てられているとき、不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数を参照する（ステップＳＴ４３−１）。
【０１２０】
不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数は、例えば、ウェアレベリング回路２１内に記憶される。ウェアレベリング回路２１は、不揮発メモリ１４の全物理アドレスに対する書き込み／消去回数に基づき、当該第１の物理アドレスＰＡｚのデータをコピーする新たな物理アドレス（第２の物理アドレス）ＰＡｎｅｗを決定する（ステップＳＴ４３−２）。
【０１２１】
例えば、書き込み／消去回数がブロックごとに設定されるとき、最も少ない書き込み／消去回数を有するブロック内の物理アドレスを第２の物理アドレスＰＡｎｅｗとする。
【０１２２】
そして、第１の物理アドレスＰＡｚのデータを、不揮発メモリ１４の新たな物理アドレスＰＡｎｅｗにコピーする（ステップＳＴ４３−３）。
【０１２３】
この後、図９と同様に、ステップＳＴ４４〜ＳＴ４７を実行する。
【０１２４】
以上、説明したように、本例では、ウェアレベリング回路を設けることにより、上述のデータ書き換え（図６、図７及び図９）に起因する書き込み／消去回数を平滑化することができる。
【０１２５】
従って、図１の不揮発メモリ１４として、ＮＡＮＤフラッシュメモリのような書き込み／消去回数の制限を持つメモリを使用するときは、不揮発メモリ１４内のブロック（物理アドレス）の書き込み／消去回数を均一化することができ、不揮発メモリ１４の寿命を延ばすことができる。
【０１２６】
(5)   初期化(initialization)  
図１又は図１１の情報処理装置において、演算装置（ホスト）１０は、不揮発メモリ１４に対して、特定エリア内の論理アドレスのデータを初期化する指示を行う場合がある。この場合、初期化の指示がある度に、実際に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータを初期化（消去）を行うと、不揮発メモリ１４の書き込み／消去回数が不要に増加することがある。
【０１２７】
以下、この課題を解決する初期化動作を説明する。
【０１２８】
図１５は、初期化動作を示している。
【０１２９】
図１又は図１１の情報処理装置及び図１５のフローチャートに基づき、初期化動作を説明する。
【０１３０】
まず、演算装置１０は、不揮発メモリ装置１１に初期化を指示する。即ち、初期化を行うエリア（二次記憶装置）内の論理アドレスは、例えば、演算装置１０からバスインターフェイス１８−２を介してメモリコントローラ１３内に入力される。
【０１３１】
また、メモリコントローラ１３は、初期化を行うエリア内の論理アドレスをチェックする（ステップＳＴ５１）。
【０１３２】
次に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータを無効データにする（ステップＳＴ５２）。即ち、初期化の対象となる論理アドレスに割り当てられた物理アドレスの不揮発性メモリ１４内のデータの初期化（消去）は行わない。
【０１３３】
例えば、１つのブロック内の複数の物理アドレスの一部のデータについて初期化を行うとき、その都度、初期化を行うと、そのブロック内の初期化の対象とならない残りの物理アドレスの有効データを移動させなければならない。これは、その有効データについて、新たな物理アドレスへの書き込みを意味するため、結果として、不揮発メモリ１４に対する書き込み／消去回数を増加させる。
【０１３４】
一方、１つのブロック内の複数の物理アドレスの一部のデータについて初期化を行うとき、上述のように、そのブロック内の初期化の対象となる物理アドレスのデータを無効データとすれば、そのブロック内の初期化の対象とならない残りの物理アドレスの有効データは、そのままにしておくことができるため、新たな物理アドレスへの書き込みが発生することはない。これにより、不揮発メモリ１４の書き込み／消去回数の増加を抑えることができる。
【０１３５】
尚、実際の初期化（データ消去）は、例えば、１つのブロック内に有効データが含まれなくなったときに行えばよい。
【０１３６】
次に、初期化の対象となる論理アドレスに割り当てられた物理アドレスのデータが初期化（無効化）されたことを示すフラグを立てる（ステップＳＴ５３）。
【０１３７】
例えば、図１６に示すように、アドレス変換テーブル１９内にデータが初期化されているか否かを判定するためのフラグを追加する。
【０１３８】
この例では、演算装置１０から論理アドレスＬＡ１のデータを初期化する指示がなされた場合を示す。この場合、論理アドレスＬＡ１のデータが初期化されたことを示すフラグが“１”に設定される。また、論理アドレスＬＡ１に割り当てられた物理アドレスＰＡ１のデータは、実際には初期化されていないが、無効データとなる。
【０１３９】
論理アドレスＬＡ２，ＬＡ３は、初期化されていないので、それらに対応するフラグは“０”のままである。即ち、論理アドレスＬＡ２，ＬＡ３に割り当てられた物理アドレスＰＡ２，ＰＡ３のデータは、有効データである。
【０１４０】
次に、初期化が完了した旨を演算装置（ホスト）１０に通知する（ステップＳＴ５４）。
【０１４１】
以上、説明したように、本例では、論理アドレスのデータが初期化されたか否かは、アドレス変換テーブル１９内のフラグにより判断し、初期化の対象となる論理アドレスに割り当てられた物理アドレスの不揮発性メモリ１４内のデータが実際に初期化されているか否かは問わない。即ち、物理アドレスの初期化（データ消去）は、例えば、１つのブロック内に有効データが含まれなくなったときに行えばよいため、不揮発メモリ１４内の書き込み／消去回数を減らすことができる。
【０１４２】
従って、不揮発メモリ１４として、ＮＡＮＤフラッシュメモリのような書き込み／消去回数の制限を持つメモリを使用するときは、論理アドレスの初期化の指示に対して、不揮発メモリ１４内のブロック（物理アドレス）の書き込み／消去回数を減らすことができ、不揮発メモリ１４の寿命を延ばすことができる。
【０１４３】
(6)   データ書き換えの禁止  
特定エリア（一次記憶装置又は二次記憶装置）内でのデータ書き換えを禁止する動作を説明する。
【０１４４】
図１又は図１１の情報処理装置において、演算装置（ホスト）１０は、不揮発メモリ１４に対して、特定エリア内の論理アドレスのデータを保護する指示を行う場合がある。この場合、上述のデータ書き換え（図６、図７及び図９）を制限する必要がある。
【０１４５】
以下、特定エリア内でのデータ書き換えを禁止する動作を説明する。
【０１４６】
図１７は、データ書き換えの禁止を設定する動作を示している。
【０１４７】
図１又は図１１の情報処理装置及び図１７のフローチャートに基づき、データ書き換えの禁止を設定する動作を説明する。
【０１４８】
まず、演算装置１０は、不揮発メモリ装置１１にデータの保護を指示する。即ち、データの書き換えを禁止するエリア（例えば、二次記憶装置）内の論理アドレスは、例えば、演算装置１０からバスインターフェイス１８−２を介してメモリコントローラ１３内に入力される。
【０１４９】
また、メモリコントローラ１３は、データの書き換えを禁止するエリア内の論理アドレスをチェックする（ステップＳＴ６１）。
【０１５０】
次に、アドレス変換回路２０により、データの書き換えを禁止するエリア内の論理アドレスを物理アドレスに変換する（ステップＳＴ６２）。
【０１５１】
最後に、当該物理アドレスに対するデータ書き換えが禁止されたことを示すフラグを立てる（ステップＳＴ６３）。
【０１５２】
例えば、図１９に示すように、アドレス変換テーブル１９内にデータが保護されているか否かを判定するためのフラグを追加する。
【０１５３】
この例では、演算装置１０から論理アドレスＬＡ１のデータの書き換えを禁止する指示がなされた場合を示す。この場合、論理アドレスＬＡ１のデータが保護されていることを示すフラグが“１”に設定される。一方、論理アドレスＬＡ２，ＬＡ３は、保護されていないので、それらに対応するフラグは“０”のままである。
【０１５４】
次に、データの保護（データ書き換えの禁止）の設定が完了した旨を演算装置（ホスト）１０に通知する（ステップＳＴ６４）。
【０１５５】
図１８は、データ書き換えを禁止するエリア内にアクセスする場合の動作を示している。
【０１５６】
図１又は図１１の情報処理装置及び図１８のフローチャートに基づき、データ書き換えを禁止するエリア内にアクセスする場合の動作を説明する。
【０１５７】
まず、論理アドレスは、例えば、演算装置１０からバスインターフェイス１８−２を介して、不揮発メモリ装置１１内のメモリコントローラ１３内に入力される。この論理アドレスを、アドレス変換回路２０により物理アドレスに変換する（ステップＳＴ７１）。
【０１５８】
次に、当該物理アドレスに対するデータ書き換えが禁止されているか否かをチェックする（ステップＳＴ７２）。
【０１５９】
そして、当該物理アドレスに対するデータ書き換えが禁止されているとき、即ち、当該物理アドレスのデータが保護されているときは、その旨を演算装置（ホスト）１０に通知する（ステップＳＴ７３）。この場合、当該物理アドレスに対するデータ書き換えは、行われない。
【０１６０】
一方、当該物理アドレスに対するデータ書き換えが禁止されていないとき、即ち、当該物理アドレスのデータが保護されていないときは、例えば、図６、図７、図９のステップＳＴ２２、ＳＴ３２、ＳＴ４２に移行する。この後は、これら図６、図７、図９のフローチャートに従ってデータ書き換えが実行される。
【０１６１】
以上、本例によれば、特定エリア（一次記憶装置又は二次記憶装置）内でのデータ書き換えを禁止する機能を付加したことにより、特定エリア内のデータを保護しつつ、上述のデータ書き換え（図６、図７及び図９）を行うことができる。
【０１６２】
(7)   エラー訂正回路  
図１又は図１１の情報処理装置において、不揮発メモリ１４に対するデータのリード／ライトは、一般的に、エラー訂正機能を付加した状態で行われる。この場合、一次記憶装置としての不揮発メモリ１４に対するエラー訂正能力と二次記憶装置としての不揮発メモリ１４に対するエラー訂正能力とは、互いに異なるのが望ましい。
【０１６３】
図２０は、情報処理装置の主要部を示している。
【０１６４】
同図は、図１に対応する。図２０の情報処理装置の特徴は、図１の情報処理装置に、第１及び第２のエラー訂正回路（ＥＣＣ）２２−１，２２−２を追加した点にあり、その他の点については、図１の情報処理装置と同じである。そこで、図２０では、図１と同じ要素については図１と同じ符号を付すことにより、その詳細な説明を省略する。
【０１６５】
第１のエラー訂正回路２２−１は、一次記憶装置としての不揮発メモリ１４からリードされたデータを訂正する能力を有する。また、第２のエラー訂正回路２２−２は、二次記憶装置としての不揮発メモリ１４からリードされたデータを訂正する能力を有する。第１及び第２のエラー訂正回路２２−１，２２−２の能力は、互いに異なる。
【０１６６】
ここで、第１及び第２のエラー訂正回路２２−１，２２−２の能力とは、エラー訂正可能なビット数、エラー訂正時間（処理時間）、消費電力などを含む。
【０１６７】
本例では、第１及び第２のエラー訂正回路２２−１，２２−２の能力を、独立に設定可能な点に特徴を有する。
【０１６８】
例えば、一次記憶装置としての不揮発メモリ１４からリードされたデータを訂正する第１のエラー訂正回路２２−１は、エラー訂正時間及び消費電力を重視した能力に設定される。これに対し、二次記憶装置としての不揮発メモリ１４からリードされたデータを訂正する第２のエラー訂正回路２２−２は、エラー訂正可能なビット数を重視した能力に設定される。
【０１６９】
尚、第１及び第２のエラー訂正回路２２−１，２２−２の能力は、不揮発メモリ１４の使用年数、ライト／イレーズ回数などに応じて変化させることもできる。
【０１７０】
本例では、一次記憶装置のための第１のエラー訂正回路２２−１と、二次記憶装置のための第２のエラー訂正回路２２−２とを、独立に設けているが、これに代えて、一次記憶装置及び二次記憶装置に共通に１つのエラー訂正回路を設けてもよい。
【０１７１】
この場合、その１つのエラー訂正回路の能力は、不揮発メモリが一次記憶装置として使用されるか、又は、二次記憶装置として使用されるか、に応じて、自動的に変更されるのが望ましい。
【０１７２】
(8)   キャッシュメモリ  
図１、図１１、又は、図２０の情報処理装置において、一次記憶装置としての不揮発メモリ１４にアクセスされるデータのうち、アクセス回数が非常に多いデータについては、不揮発メモリ１４よりも高速にリード可能なキャッシュメモリ（例えば、ＳＲＡＭ）へ移動させるのが望ましい。
【０１７３】
図２１は、情報処理装置の主要部を示している。
【０１７４】
同図は、図１に対応する。図２１の情報処理装置の特徴は、図１の情報処理装置に、キャッシュメモリ２３を追加した点にあり、その他の点については、図１の情報処理装置と同じである。そこで、図２１では、図１と同じ要素については図１と同じ符号を付すことにより、その詳細な説明を省略する。
【０１７５】
キャッシュメモリ２３は、一次記憶装置としての不揮発メモリ１４にアクセスされるデータのうち、アクセス回数が非常に多いデータを、一時的に記憶する。そして、演算装置（ホスト）１０からデータリードの指示があったときは、高速リードが可能なキャッシュメモリ２３からデータをリードし、これを演算装置１０に転送する。
【０１７６】
図２２は、アクセス頻度が高いデータをキャッシュメモリへコピーするシーケンスを示している。
【０１７７】
まず、演算装置（ホスト）１０によりデータリードが指示されると、アドレス変換回路２０により、論理アドレスが物理アドレスに変換される（ステップＳＴ８１）。
【０１７８】
次に、データリードが不揮発メモリ（一次又は二次記憶装置）１４へのアクセスにより行われるか否かを判定する（ステップＳＴ８２）。
【０１７９】
データリードが不揮発メモリ１４へのアクセスにより行われるときは、当該論理アドレスへのアクセス回数をインクリメントする（ステップＳＴ８３）。
【０１８０】
例えば、当該論理アドレスへのアクセス回数は、アドレス変換テーブル１９内に記憶される。即ち、図２３に示すように、物理アドレスＰＡｚ１に割り当てられた論理アドレスＬＡｙに対応するアクセス回数を１だけ増やす。本例では、論理アドレスＬＡｙへのアクセス回数が８に設定される場合を示す。
【０１８１】
尚、図２３において、物理アドレスＰＡｚ２に割り当てられた論理アドレスＬＡｘは、二次記憶装置としての不揮発メモリ１４へのアクセスを示している。
【０１８２】
次に、アクセス回数が閾値を超えたか否かを判定する（ステップＳＴ８４）。
【０１８３】
閾値は、経験則に基づいて予め設定される。例えば、特定の論理アドレスについて、一定期間内に一定回数以上のアクセスがあったときは、その特定の論理アドレスのデータのアクセス頻度が多いと判断し、そのデータを、不揮発メモリ（一次記憶装置）１４からキャッシュメモリ２３へ移動させる（ステップＳＴ８５）。
【０１８４】
例えば、図２４に示すように、論理アドレスＬＡｙへのアクセス回数（９１回）が閾値（８回）を超えたときは、論理アドレスＬＡｙに割り当てられた物理アドレスＰＡｚ１のデータをキャッシュメモリ２３の物理アドレスＰＡｚ３にコピーした後、物理アドレスＰＡｚ１のデータを無効データにする。
【０１８５】
最後に、キャッシュメモリ２３の物理アドレスＰＡｚ３に論理アドレスＬＡｙが割り当てられた状態に、アドレス変換テーブル１９を更新する（ステップＳＴ８６）。
【０１８６】
これにより、次回から、論理アドレスＬＡｙのデータは、キャッシュメモリ２３から高速にリードすることができる。
【０１８７】
これに対し、アクセス回数が閾値以下のとき（例えば、８回以下のとき）は、ステップＳＴ５及びＳＴ６を行わずに、本シーケンスを終了する（ステップＳＴ８４）。
【０１８８】
また、特定の論理アドレスについて、例えば、一定期間内に一定回数以上のアクセスがなかったときは、特定の論理アドレスへのアクセス回数をリセットしてもよい。この場合、より正確に、特定の論理アドレスに対するアクセス頻度を判定することができる。
【０１８９】
尚、不揮発メモリ１４からキャッシュメモリ２３へのデータ移動が行われると、その後のデータリードは、キャッシュメモリ２３へのアクセスにより行われ、不揮発メモリ１４へのアクセスにより行われない。
【０１９０】
即ち、データリードがキャッシュメモリ２３へのアクセスにより行われるときは、本シーケンスを終了する（ステップＳＴ８２）。
【０１９１】
以上、本例によれば、一次記憶装置としての不揮発メモリ１４にアクセスされるデータのうち、アクセス回数が非常に多いデータについては、不揮発メモリ１４からキャッシュメモリ２３へデータをコピーする。これにより、アクセス頻度が高いデータについては、キャッシュメモリ２３から高速にデータリードを行うことができる。
【０１９２】
３．  適用例  
上述の実施例は、マイコン、画像処理プロセッサ、音声処理プロセッサなどの計算機システム全般に適用可能である。
【０１９３】
４．  むすび  
実施形態によれば、一次記憶装置と二次記憶装置を１種類のメモリに統合することができる。
【０１９４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１９５】
１０：  演算装置（ホスト）、  １１：  不揮発メモリ装置、  １２：  バス、  １３：  メモリコントローラ、  １４：  不揮発メモリ、  １５：  アドレス変換モジュール、  １６：  不揮発メモリ制御インターフェイス、  １７：  制御回路、  １８−１，１８−２：  バスインターフェイス、  １９：  アドレス変換テーブル、  ２０：  アドレス変換回路、  ２１：  ウェアレベリング回路、  ２２−１，２２−２：  エラー訂正回路、  ２３：  キャッシュメモリ。
【図１】
2014182449.tif 000003
【図２】
2014182449.tif 000004
【図３】
2014182449.tif 000005
【図４】
2014182449.tif 000006
【図５】
2014182449.tif 000007
【図６】
2014182449.tif 000008
【図７】
2014182449.tif 000009
【図８】
2014182449.tif 000010
【図９】
2014182449.tif 000011
【図１０】
2014182449.tif 000012
【図１１】
2014182449.tif 000013
【図１２】
2014182449.tif 000014
【図１３】
2014182449.tif 000015
【図１４】
2014182449.tif 000016
【図１５】
2014182449.tif 000017
【図１６】
2014182449.tif 000018
【図１７】
2014182449.tif 000019
【図１８】
2014182449.tif 000020
【図１９】
2014182449.tif 000021
【図２０】
2014182449.tif 000022
【図２１】
2014182449.tif 000023
【図２２】
2014182449.tif 000024
【図２３】
2014182449.tif 000025
【図２４】
2014182449.tif 000026