(57)【要約】【課題】非選択データの冗長な書き込み操作を不要とでき、ページの配列を書き換えに効率の良い状態に最適化することが可能な記憶装置を提供する。【解決手段】記憶装置５０において、外部との入出力インターフェース回路５３には内部バスＢＳ５０を介してＮＡＮＤ型フラッシュメモリよりなる大容量のメインメモリ５１と、強誘電体メモリよりなる比較的小容量の補助メモリ５２が接続されており、さらに転送制御回路５４を有し、メインメモリ５１は内部が高並列化されており、３２ｋＢのデータ群が単位ページとして同時にアクセスされ、内部バスＢＳ５０に入出力転送される。装置内部にはページを管理単位としたアドレステーブル６０が構築されている。インターフェース回路５３は内部に３２ｋＢのページバッファーを備え、内部バスＢＳ５０から一旦ページ単位でデータを取得し、５１２Ｂのファイルセクター単位でデータを入出力する。【選択図】図６
2006236304.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリ部と、
上記第１のメモリとアクセス速度の異なる第２のメモリ部と、
制御回路と、を有し、
上記制御回路は、読み出しまたは書き換えにおいて、互いにアクセス速度の異なる上記第１のメモリ部と上記第２の間で、適時双方向に記憶データを移動させる機能を有する
記憶装置。
【請求項２】
上記制御回路は、外部から読み出しのためにアクセスされたデータ、または書き換えのためにアクセスされたデータを、アクセス速度が速い側のメモリ部に移動させる
請求項１記載の記憶装置。
【請求項３】
上記第１のメモリ部は書き換えに事前消去を必要とする半導体メモリであって、消去単位であるブロック領域はアクセス単位であるページ領域を複数含み、
上記第２のメモリ部は上記第１のメモリ部より書き換え速度が速い半導体メモリであって、
上記制御回路は、外部から書き換えのためにアクセスされた第１のメモリ部上のデータを第２のメモリ部に移動させる
請求項２記載の記憶装置。
【請求項４】
上記第１のメモリ部は不揮発性メモリを含み、上記第２のメモリ部は強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性メモリを含む
請求項３記載の記憶装置。
【請求項５】
上記第１のメモリ部はハードディスク装置であり、
上記第２のメモリ部は半導体メモリであって、
上記制御回路は、外部から読み出しまたは書き換えのためにアクセスされた上記第１のメモリ部上のデータを第２のメモリ部に移動させる
請求項２記載の記憶装置。
【請求項６】
上記第２のメモリ部は、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性メモリを含む
請求項５記載の記憶装置。
【請求項７】
装置内には特定のデータグループをページ単位として、外部から入力されるページアドレスと上記第１または第２のメモリ部内のページデータの実所在位置との対照を示す、アドレス変換テーブルが構築され、
上記制御回路は、上記ページ単位で上記第１のメモリ部から上記第２のメモリ部へデータを移動させて、上記アドレステーブルを更新し、上記第１のメモリ部上の元のページ領域を無効化する機能、および上記ページ単位で上記第２のメモリ部から上記第１のメモリ部へデータを移動させて、上記アドレステーブルを更新し、上記第２のメモリ部上の元のページ領域を無効化する機能を有する
請求項１記載の記憶装置。
【請求項８】
上記変換テーブルは、上記第２のメモリ部内に保管されている
請求項４記載の記憶装置。
【請求項９】
上記変換テーブルは、上記第２のメモリ部内に保管されている
請求項６記載の記憶装置。
【請求項１０】
上記変換テーブルは、上記第２のメモリ部内に保管されている
請求項７記載の記憶装置。
【請求項１１】
第１のメモリ部と、
第２部のメモリ部と、
制御回路と、を有し、
上記第１のメモリ部は不揮発性メモリであって、データのアクセス単位であるページ領域と、消去単位であるブロック領域を複数有し、該ブロック領域は複数のページ領域を含み、
上記第２のメモリ部は上記第１のメモリ部のキャッシュメモリであり、上記第１のメモリ部内の任意の消去ブロックから互いに独立して読み出された、複数のページ領域のデータを保存し、
上記制御回路は、上記第２のメモリに保存されたページデータを上記第１のメモリ部に書き戻す際、上記ページデータを、上記第１のメモリ部上の元のページ領域とは異なる消去済のページ領域に、ページ単位で独立に移動させる機能を有する
記憶装置。
【請求項１２】
上記記憶装置内には、外部から入力されるページアドレスと上記第１または第２のメモリ部内のページデータの所在位置との対照を示す、アドレス変換テーブルが構築されており、
上記制御回路は、上記書き戻しの際、書き込み位置に応じて上記変換テーブルを更新する
請求項１１記載の記憶装置。
【請求項１３】
上記制御回路は、外部からデータをアクセスがなされた際は、装置内で上記アドレス変換テーブルが参照され、所望のデータがキャッシュである上記第２のメモリ部内に保存されているか否かを判定する
請求項１１記載の記憶装置。
【請求項１４】
上記第１のメモリ内に保存されたページデータを更新する際には、上記制御回路は上記ページデータを上記第２のメモリ部内に移動し、当該移動位置に応じて上記変換テーブルを更新し、上記第１のメモリ部上のページデータの元領域を無効化する
請求項１３記載の記憶装置。
【請求項１５】
第１のメモリ部と、
上記第１のメモリ部より高速で小容量な第２のメモリ部と、を含み、
アドレス変換テーブルを有し、当該アドレス変換テーブルは外部からのアクセスに伴って入力された論理アドレスを、上記第１のメモリ部または第２のメモリ部上の記憶領域を規定する物理アドレスに変換し、当該アクセスを第１または第２のメモリ部へのアクセスに振り分け、
上記第２のメモリ部に格納されるデータは、上記物理アドレスをインデックスとする配列として管理されており、必要に応じて先に格納されたデータから順次破棄されて、上記第１のメモリ部に移動される
記憶装置。
【請求項１６】
上記第２のメモリ部に構築されるデータ配列には、各インデックスごとに予備フィールドが設けられており、各データに対応する上記論理アドレスが格納されている
請求項１５記載の記憶装置。
【請求項１７】
第１のメモリ部と、
上記第１のメモリ部より高速で小容量な第２のメモリ部と、を含み、
アドレス変換テーブルを有し、当該アドレス変換テーブルは外部からのアクセスに伴って入力された論理アドレスを、第１のメモリ部または第２のメモリ部上の記憶領域を規定する物理アドレスに変換し、当該アクセスを第１または第２のメモリ部へのアクセスに振り分け、
上記第２のメモリ部に格納されるデータは、上記物理アドレスをインデックスとするリンクリストで管理されており、新規に格納されたデータはリンクの一端に追加され、必要に応じてリンクの反対端のデータが破棄されて、上記第１のメモリ部に移動される
記憶装置。
【請求項１８】
上記リンクリストの管理テーブルには、各インデックスごとに予備フィールドが設けられており、各データに対応する上記論理アドレスが格納されている
請求項１７記載の記憶装置。
【請求項１９】
第１のメモリと、
上記第１のメモリのキャッシュメモリである第２のメモリと、
制御回路と、を有し、
上記第１のメモリは不揮発性メモリであって、データのアクセス単位であるページ領域と、消去単位であるブロック領域を複数有し、当該ブロック領域は複数のページ領域を含み、
上記制御回路は、複数のページ領域のデータを、それぞれ異なるブロック領域から読み出して上記第２のメモリに保存し、保存したデータを上記第１のメモリ内の同一のブロックに再配置して書き込む機能を有する
記憶装置。
【請求項２０】
上記第２のメモリは、上記ページ領域かそれ以下の単位で書き換えが可能な不揮発性メモリを含む
請求項１９記載の記憶装置。
【請求項２１】
上記第２のメモリは、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いた不揮発性メモリを含む
請求項２０記載の記憶装置。
【請求項２２】
上記制御回路は、上記第１のメモリ上のページデータを更新する際は、当該第１のメモリから読み出されて更新されたページデータは上記第２のメモリ内に保管し、さらに上記第１のメモリ上の元のページ領域は無効化させる
請求項１９記載の記憶装置。
【請求項２３】
上記制御回路は、データアクセスにおけるアドレスの少なくとも一部を構成する各ページごとの論理アドレスと、該ページの上記第１または第２メモリ内における所在位置を示す物理アドレスの対照情報を、内部に保存している
請求項１９記載の記憶装置。
【請求項２４】
第１のメモリと、
上記第１のメモリよりアクセス速度が低速な第２のメモリと、
論理アドレスに対する物理アドレスを含むアドレス変換テーブルと、
制御回路と、を有し、
上記制御回路は、
外部からアクセスが成されると上記アドレス変換テーブルを参照して、入力論理アドレスに対応する物理アドレスを取得し、取得した上記物理アドレスが第１のメモリ内を指す場合には、第１のメモリをアクセスし、上記物理アドレスが第２のメモリ内を指す場合には、必要に応じて第２のメモリ内のデータを第１のメモリ内に転送する
半導体記憶装置。
【請求項２５】
上記制御回路は、上記物理アドレスが第２のメモリ内を指し、かつ所望のデータのコピーが第１のメモリ内に無い場合は、少なくとも当該データを第２のメモリから第１のメモリ内に転送する
請求項２４記載の半導体記憶装置。
【請求項２６】
上記アクセスが読み出しの場合、上記データ転送はデータのコピーを含み、
上記アクセスが書き込みの場合、上記データ転送はアドレス変換テーブルの更新を伴うデータの移動を含む
請求項２５記載の半導体記憶装置。
【請求項２７】
上記制御回路は、
上記物理アドレスが第２のメモリ内を指し、かつ所望のデータのコピーが第１のメモリ内に存在し、かつアクセスが書き込みの場合は、上記コピー部を更新し、かつ上記アドレス変換テーブルを更新して、該当データに対応する物理アドレスは該コピー領域を指すように変更する
請求項２４記載の半導体記憶装置。
【請求項２８】
状態通知ピンをさらに有し、
上記データ転送がなされた場合、通知ピンにビジー状態が通知される
請求項２５記載の半導体記憶装置。
【請求項２９】
上記第１のメモリはランダムアクセスメモリを含み、
上記第２のメモリはフラッシュメモリを含む
請求項２４記載の半導体記憶装置。
【請求項３０】
上記第１のメモリは不揮発のランダムアクセスメモリであって、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性半導体メモリを含む
請求項２４記載の半導体記憶装置。
【請求項３１】
第１のメモリ部と、
上記第１のメモリ部より記憶容量が大きい第２のメモリ部と、
制御回路と、
状態通知ピンと、を有し、
上記第１のメモリ部は、不揮発のランダムアクセスメモリであって、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性半導体メモリを含み、
上記第２のメモリ部はフラッシュメモリを含み、
上記制御回路は、
外部からメモリアクセスがなされた際、所望のデータまたは当該データのコピーが第１のメモリ部にある場合は第１のメモリ部をアクセスし、無い場合は上記第２のメモリ部から第１のメモリ部に所望データを転送し、
上記データ転送が発生した場合には、上記通知ピンにビジー状態が通知される
半導体記憶装置。
【請求項３２】
半導体記憶装置を有する情報処理システムであって、
上記半導体記憶装置は、
第１のメモリ部と、
上記第１のメモリ部より記憶容量が大きい第２のメモリ部と、
制御回路と、
状態通知ピンと、を有し、
上記第１のメモリ部は、不揮発のランダムアクセスメモリであって、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性半導体メモリを含み、
上記第２のメモリ部はフラッシュメモリを含み、
上記制御回路は、
外部からメモリアクセスがなされた際、所望のデータまたは当該データのコピーが第１のメモリ部にある場合は第１のメモリ部をアクセスし、無い場合は上記第２のメモリ部から第１のメモリ部に所望データを転送し、
上記データ転送が発生した場合には、上記通知ピンにビジー状態が通知され、
上記ビジー状態の通知に伴って、システムに割り込みが発生し、システムはメモリアクセスを中断して、上記転送の完了まで待機する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを含む記憶装置および情報処理システムに関するものであり、特にフラッシュメモリを含む記憶装置におけるデータ転送の高速化に関わるものである。
【背景技術】
【０００２】
近年、デジタルスチルカメラやモバイルコンピュータ機器の記憶媒体として、フラッシュメモリが注目されている。
【０００３】
フラッシュメモリは、トンネリングやホットエレクトロン加速を用いて、電子にゲート絶縁膜を通過させ、それらを浮遊ゲートやトラップ層に注入し、セルトランジスタの閾値を変化させることでデータを記憶させる半導体メモリである。積層ゲート構造やＭＮＯＳ構造等を用いたトランジスタ１つのみでメモリセルを構成できるため、安価かつ大容量のメモリを実現できる。
その代表例として、ＮＡＮＤ型フラッシュメモリが挙げられる。
【０００４】
図１は、ＮＡＮＤ型フラッシュメモリの内部構成例を示す図である。
図１のＮＡＮＤ型フラッシュメモリは、ビット線ＢＬ１〜ＢＬｎに接続された複数のメモリユニット１−１〜１−ｎがアレイ状に（縦横）に配列されている。
たとえば、選択用トランジスタ２のゲートが選択ゲート線ＳＬ１に接続され、偶数列の選択用トランジスタ３のゲートが選択ゲート線ＳＬ２に接続されている。また、各メモリセルＮ０〜Ｎ１５のゲートがワード線ＷＬ０〜ＷＬ１５に接続されている。
【０００５】
各メモリセルＮ０〜Ｎ１５は積層ゲート構造を持ち、浮遊ゲートへの電荷蓄積量に従ってデータを記憶する。すなわち、浮遊ゲートに多くの電子が蓄積されていると、トランジスタの閾値が上昇するので、チャージされたビット線ＢＬ１〜ＢＬｎからのメモリユニット１（−１〜−ｎ）への電流貫通の有無を、センスアンプ等を含むアクセス回路４で検出してデータ判定を行う。
【０００６】
このようなＮＡＮＤ型フラッシュメモリは、メモリセル毎にビット線へのコンタクト領域を設ける必要もないので、特に大容量で安価な記憶装置の媒体に適している。
【０００７】
ところで、一般にフラッシュメモリのプログラム速度は非常に遅く、セルあたり数百μ秒を必要とする。またデータの上書きはできないので、プログラムに先立って消去を行う必要があり、これには数ｍ秒もの時間がかかる。このような問題に対しては、多くのメモリセルを並列処理することで対処している。
【０００８】
すなわち、たとえば同一ワード線ＷＬ０に接続され、ページ単位を成すメモリセル群５を、同時一括に書き込み、さらに互いにメモリユニットを共有するページ群で構成されるセルブロック６を全て一括で消去することにより、プログラムの転送速度を向上させている。
【０００９】
具体的には、たとえば非特許文献１には１ＧｂのＮＡＮＤ型フラッシュメモリが掲載されており、ページサイズを２ｋバイト、消去ブロックサイズを１２８ｋＢとしている。すなわち、一つのメモリアレイ内で１２８ｋバイトのメモリセル群を並列消去し、そこにメモリセルを２ｋバイト毎に並列でプログラムしていくことによって、１０ＭＢ／ｓのプログラム転送速度を実現している。
【００１０】
一方近年、フラッシュメモリ以外の高速な不揮発性メモリも提案されている。その代表的な例としては、強誘電体メモリが挙げられる。現在主流となっている強誘電体メモリのセル構造と動作は非特許文献１においてＳ．Ｓｈｅｆｆｅｉｅｌｄらが提案したものである。
【００１１】
図２は、特許文献１等に記載された強誘電体メモリの構成例を示す回路図である。
【００１２】
この強誘電体メモリ１０は、メモリセルを一つのアクセストランジスタ１１と一つの強誘電体キャパシタ１２で構成するものであり、強誘電体キャパシタ１２の分極方向に従って２値、すなわち１ビットを記憶する。
また、図２において、ＢＬ１１，ＢＬ１２はビット線を、ＷＬ１１はワード線を、ＰＬ１１はプレート線を、１３はワード線デコーダおよびドライバ、１４はプレート線デコーダおよびドライバを、１５はセンスアンプをそれぞれ示している。
【００１３】
たとえば、強誘電体メモリ１０において、ワード線ＷＬ１１を選択し、さらにプレート線ＰＬ１１にパルスを印加すると、メモリセルの強誘電体キャパシタ１２の対向電極に接続されたビット線ＢＬ１１には読み出し信号が現れる。
【００１４】
また、強誘電体メモリには幾つか形態のバリエーションがあり、特許文献２にも他の一例が提案されている。
【００１５】
強誘電体メモリの分極反転は、キャパシタ電極間に２〜３Ｖを印加するだけで、数ナノ秒で実現する。したがって、セルレベルで高速書き込みが可能である上、消費電力も小さい。さらに書き換え可能回数も１Ｅ１０を超え、フラッシュメモリより数桁多い。
【００１６】
さらに、高速の不揮発性メモリとしては、強誘電体メモリ以外にも強磁性体を用いたＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）や、相変化材料を用いたＯＵＭ（Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ）、ＲＲＡＭ等が提案されている。
【００１７】
ＭＲＡＭは強磁性膜のスピン方向の違いでデータを記憶する半導体メモリであり、たとえば非特許文献２にＲ．Ｓｃｈｅｕｅｒｌｅｉｎらが論文を掲載している。
ＯＵＭは、たとえばカルコゲナイド膜の相転移でデータを記憶する半導体メモリであり、たとえば非特許文献３に、Ｓ．Ｌａｉらが論文を掲載している。
ＲＲＡＭは磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリであり。たとえば非特許文献４に、Ｗ．Ｗ．Ｚｈｕａｎｇらが論文を掲載している。
それらの不揮発性メモリは、いずれもセルレベルのアクセス速度や書き換え回数において、フラッシュメモリより数桁性能が高い。
【非特許文献１】ＩＳＳＣＣ２００２予稿集のｐ１０６、セッション６．４
【非特許文献２】ＩＳＳＣＣ２０００の論文ダイジェストの１２８ページ、Ｒ．Ｓｃｈｅｕｅｒｌｅｉｎら
【非特許文献３】ＩＥＤＭ２００１の論文ダイジェストの８０３ページ、Ｓ．Ｌａｉら
【非特許文献４】ＩＥＤＭ２００２の論文ダイジェストの７．５、Ｗ．Ｗ．Ｚｈｕａｎｇら
【特許文献１】ＵＳＰ４８７３６６４号
【特許文献２】特開平０９−１１６１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
近年、ハードディスクの消費電力の大きさや、シーク時間の長さ、耐衝撃性や携帯性等の問題を解消すべく、フラッシュメモリにその代替が期待されている。
しかし上述の如く、フラッシュメモリにはアクセス単位を大きくしないと高速化できないという欠点がある。また、データの上書きができないので、書き換えには必ず消去が必要であり、その際の消去ブロックはさらに大きい。このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様である。しかしこれによりその書き込み効率は著しく悪化する。
【００１９】
たとえば上記２ｋＢ単位のページ書き込み、１２８ｋＢ単位のブロック消去による、転送速度１０ＭＢ／ｓフラッシュメモリを用いて、ハードディスク代替用の記憶装置を構成するとする。
その転送速度を、シリアルＡＴＡ接続の高速ストレージで目標とされる１６０ＭＢ／ｓにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば１６個のメモリアレイを並列動作させる必要がある。
【００２０】
図３は、そのような記憶装置を構成するフラッシュメモリの概念図を示す図である。
図３において、高速転送を実現するため、１６個のアレイＡＲ０〜ＡＲ１５を同時動作させる。この場合データ書き込み時は、たとえばページＰ０〜Ｐ１を同時書き込みし、消去時はブロックＢ０〜Ｂ１５を同時消去する。この時一括書き込み単位となる実ページ領域２４は３２ｋＢ、一括消去単位となる実消去ブロック領域２１は２ＭＢに達することになる。
【００２１】
一方、通常のファイルシステムでは、最小の書き込み単位を成すクラスタサイズは４ｋＢ程度であり、この単位でランダムなアクセスがなされる。
その場合、たとえばページＰ０とＰ１のみを書き換える要求が発生する。
しかし、上述のような装置でそのようなアクセスを行うと、結局実消去ブロック領域２１全体を消去せねばならない。かつその中の非選択領域に有効ファイルがあれば、それを消失から保護する必要がある。その典型的な対処例は次のようになる。
【００２２】
１．まずフラッシュメモリから、別途設けられたバッファーメモリ２３のメモリ領域２２に、実消去ブロック領域２１全体のデータを読み出す。
２．次にメモリ領域２２内で、ページＰ０とＰ１に相当するデータを更新する。
３．次にフラッシュメモリ上のブロック領域２１の消去を実行する。
４．最後に上記消去済の領域２１に、更新後のメモリ領域２２のブロックデータを全て書き戻す。
【００２３】
すなわち、４ｋバイトの書き込みのために、実際には消去と、２ＭＢのデータの読み出し及び書き込みが必要となる。従って現実の転送性能は著しく低いものになってしまう。このような事情から、フラッシュメモリを用いた現在の記憶装置は、特に書き込み時においては、ハードディスクをはるかに下回る転送性能しか得られていない。
【００２４】
なお、上記バリエーションとして、別途フラッシュメモリ内に予備の消去済ブロック領域２７を用意して、４の書き戻しをそこに行うことで、３の消去時間を見かけ上見えなくすることもできる。しかし、実消去領域を共有する２ＭＢの非選択データの読み出しと書き込みが必要であることは変わらない。
【００２５】
一方、強誘電体メモリをはじめ、ＭＲＡＭ、ＯＵＭ、ＲＲＡＭ等の高速不揮発性メモリは、それぞれ独自の記憶物質や電極用金属を使用するため、フラッシュメモリに対して高価であり、かつ加工上の諸制約から集積度も低い。従ってそれらをそのまま大容量の記憶媒体に用いるのは、コスト面で難しい。
【００２６】
また、近年、携帯電話等のモバイルコンピュータ機器には、上記フラッシュメモリの他、多くの半導体メモリが搭載されている。また、特にこのようなバッテリー駆動の機器では、待機時の消費電力削減が重要な課題となっている。
【００２７】
元来このような用途においては、半導体メモリは不揮発で、ランダムアクセスが可能で、かつ大容量で安価であることが理想である。
しかし、現実にはそのようなメモリは存在しないので、多種の異なるメモリを用途ごとに使い分けざるを得ない。
【００２８】
図４は、多種の異なるメモリを用途ごとに使い分けた情報処理システム（コンピュータシステム）の構成例を示すブロック図である。
【００２９】
図４のシステム３０において、ＣＰＵ３１にはシステムバス３２を介してＮＯＲ型フラッシュメモリ３３と、ＤＲＡＭ３４が接続されている。両メモリ３３，３４はシステムメモリ中にその領域がマッピングされており、ＮＯＲ型フラッシュメモリ３３にはブートコードやＯＳ、アプリケーションが格納されている。またＤＲＡＭ３４にはアプリケーションの一部がロードされて実行されたり、ＯＳのワークエリアが構築される。
【００３０】
システムバス３２には、さらに外部周辺装置にアクセスするためのインタフェース回路群３５が接続されており、そのインタフェース回路群３５にはＮＡＮＤ型フラッシュメモリモジュール３６や、その他複数の周辺機器３７−１〜３７−３が接続されている。
【００３１】
ここで、ＮＡＮＤ型フラッシュモジュール３６は、一つまたは複数のフラッシュメモリと制御回路で構成されており、この制御回路は欠陥ブロックへのアクセスを回避する機能や、ＥＣＣ回路を用いて符号化エラー訂正を施す機能等を有している。
ＮＡＮＤ型フラッシュモジュールは、たとえばハードディスクの接続に使用されるＡＴＡインタフェース等に仕様をあわせ、周辺記憶装置としてブロック単位でアクセスされる。その中には画像等のユーザーデータやアプリケーションの一部が格納されている。
【００３２】
これらの各種メモリのうち、ＮＯＲ型フラッシュメモリ３３はワード単位のランダムな読み出しが可能でシステムメモリとして扱えるが、高価である。さらに通常はＲＯＭとしてのアクセスしかできず、ＲＡＭとしては扱えない。書き換えには通常アクセスとは異なる例外的操作が必要で、しかも非常に時間がかかる。
一方、ＤＲＡＭ３４はランダムアクセスができるが、揮発性であり、データを保持するだけで電力を消費する。したがって、不使用時でもバッテリーが消耗し、最悪の場合必要なユーザーデータが失われてしまう。
【００３３】
これに対して、ＮＡＮＤ型フラッシュメモリモジュール３６は最もビット単価が安くかつ不揮発だが、ランダムアクセスができない上、書き換えには制約がある。
すなわち、フラッシュメモリの場合、前述したように、書き換えには必ず消去が必要であり、その際の消去ブロックは通常のアクセス単位であるページよりさらに大きい。このようにアクセス単位に対して消去単位が数十倍大きいのは、消去時間が長く、かつ書き込み時に非選択セルにディスターブが生じるフラッシュメモリには一般的な仕様だが、書き換えが小単位でランダムに行われた場合には極端に処理効率が悪化する。
【００３４】
上記問題について図５に関連付けて説明する。
図５は、ＮＡＮＤ型フラッシュメモリの書き換え動作を概念的に示す図である。
図５において、Ｐ０〜Ｐ１５はページを、Ｂ０〜Ｂ１５はブロックを、４１は実消去ブロック領域を、４２はメモリ領域を、４３はバッファメモリを、４４は実ページ領域をそれぞれ示している。
【００３５】
たとえば２ｋＢ単位のページ書き込み、１２８ｋＢ単位のブロック消去による、転送速度１０ＭＢ／ｓフラッシュメモリを用いて、転送速度を一般ＤＲＡＭ並の１６０ＭＢ／ｓにまで高めようとした場合、マルチバンクやマルチチップの構成を取りながら、たとえば１６個のメモリアレイを並列動作させる必要がある。ここでは１６個のアレイＡＲ０〜ＡＲ１５を同時動作させたとする。
【００３６】
この場合、データ書き込み時は、たとえばページＰ０〜Ｐ１５を同時書き込みし、消去時はブロックＢ０〜Ｂ１５を同時消去する。
このとき、一括書き込み単位となる実ページ領域４４は３２ｋＢ、一括消去単位となる実消去ブロック領域４１は２ＭＢに達することになる。
【００３７】
このようなメモリに対して、たとえばページ単位でランダムな書き換えが要求された場合、結局実消去ブロック領域４１全体を消去しなければならない。かつその中の非選択領域に有効なデータがあれば、それを消失から保護する必要がある。その典型的な対処例は次のようになる。
【００３８】
１．まずフラッシュメモリから、別途設けられたバッファメモリ４３のメモリ領域４２に、実消去ブロック領域４１全体のデータを読み出す。
２．次にメモリ領域４２内で、所望のデータを更新する。
３．次にフラッシュメモリ上のブロック領域４１の消去を実行する。
４．最後に上記消去済の領域４１に、更新後のメモリ領域４２のブロックデータを全て書き戻す。
【００３９】
すなわち、ごく僅かなデータの書き換えのために、実際には消去と、２ＭＢのデータの読み出しおよび書き込みが必要となる。
具体的には、１ページ分のデータの読み出しおよび書き込みにはそれぞれ２００μｓを要し、ブロックの消去には２ｍｓを要するので、３０ｍｓ近くを必要とする。
したがって、現実の転送性能は著しく低いものになってしまう。このような事情から、フラッシュメモリを用いた現在の記憶装置は、特に書き込み時においては、一般的なＤＲＡＭをはるかに下回る転送性能しか得られていない。
【００４０】
このような問題に対して、たとえば特許文献３（特開平０５−２１６７７５号公報）、特許文献４（特開平０６−３４９２８６号公報）等ではキャッシュメモリの使用が提案されている。
この場合、更新しようとするページがキャッシュに格納されているページにヒットすれば、キャッシュ内のページのみが更新されるので、上述のような冗長な動作は直ちには発生しない。
【００４１】
しかしいずれにしても、これらのデータ更新はどこかでフラッシュメモリに反映させる必要があり、そのためにデータを書き戻す際には従来と同様の作業が必要である。
すなわち、図５に示したように、記憶装置内にバッファメモリ４３を設け、更新ページに相当する元ページＰ０〜Ｐ１５を含む実消去ブロック領域４１のデータ全てをバッファメモリ４３に読み出して、実消去ブロック領域４１を消去する。しかる後にキャッシュからの更新ページをバッファ上に上書きして、最後にバッファ内の全データを元のブロック領域４１に書き戻す。
仮にキャッシュがミスヒットを続ければ、結局ページ更新するごとに上記動作を行わねばならなくなる。
【００４２】
本発明の目的は、非選択データの冗長な書き込み操作を不要とでき、ページの配列を書き換えに効率の良い状態に最適化することが可能な記憶装置を提供することにある。
【００４３】
また、本発明の目的は、見かけ上ランダムアクセスが可能で、かつ高速、大容量な半導体記憶装置および情報処理システムを提供することにある。
【課題を解決するための手段】
【００４４】
本発明の第１の観点の記憶装置は、第１のメモリ部と、上記第１のメモリとアクセス速度の異なる第２のメモリ部と、制御回路と、を有し、上記制御回路は、読み出しまたは書き換えにおいて、互いにアクセス速度の異なる上記第１のメモリ部と上記第２の間で、適時双方向に記憶データを移動させる機能を有する。
【００４５】
好適には、上記制御回路は、外部から読み出しのためにアクセスされたデータ、または書き換えのためにアクセスされたデータを、アクセス速度が速い側のメモリ部に移動させる。
【００４６】
好適には、上記第１のメモリ部は書き換えに事前消去を必要とする半導体メモリであって、消去単位であるブロック領域はアクセス単位であるページ領域を複数含み、上記第２のメモリ部は上記第１のメモリ部より書き換え速度が速い半導体メモリであって、上記制御回路は、外部から書き換えのためにアクセスされた第１のメモリ部上のデータを第２のメモリ部に移動させる。
【００４７】
好適には、上記第１のメモリ部は不揮発性メモリを含み、上記第２のメモリ部は強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性メモリを含む。
【００４８】
好適には、上記第１のメモリ部はハードディスク装置であり、上記第２のメモリ部は半導体メモリであって、上記制御回路は、外部から読み出しまたは書き換えのためにアクセスされた上記第１のメモリ部上のデータを第２のメモリ部に移動させる。
【００４９】
好適には、上記第２のメモリ部は、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性メモリを含む。
【００５０】
好適には、装置内には特定のデータグループをページ単位として、外部から入力されるページアドレスと上記第１または第２のメモリ部内のページデータの実所在位置との対照を示す、アドレス変換テーブルが構築され、上記制御回路は、上記ページ単位で上記第１のメモリ部から上記第２のメモリ部へデータを移動させて、上記アドレステーブルを更新し、上記第１のメモリ部上の元のページ領域を無効化する機能、および上記ページ単位で上記第２のメモリ部から上記第１のメモリ部へデータを移動させて、上記アドレステーブルを更新し、上記第２のメモリ部上の元のページ領域を無効化する機能を有する。
【００５１】
好適には、上記変換テーブルは、上記第２のメモリ部内に保管されている。
【００５２】
本発明の第２の観点の記憶装置は、第１のメモリ部と、第２部のメモリ部と、制御回路と、を有し、上記第１のメモリ部は不揮発性メモリであって、データのアクセス単位であるページ領域と、消去単位であるブロック領域を複数有し、該ブロック領域は複数のページ領域を含み、上記第２のメモリ部は上記第１のメモリ部のキャッシュメモリであり、上記第１のメモリ部内の任意の消去ブロックから互いに独立して読み出された、複数のページ領域のデータを保存し、上記制御回路は、上記第２のメモリに保存されたページデータを上記第１のメモリ部に書き戻す際、上記ページデータを、上記第１のメモリ部上の元のページ領域とは異なる消去済のページ領域に、ページ単位で独立に移動させる機能を有する。
【００５３】
好適には、上記記憶装置内には、外部から入力されるページアドレスと上記第１または第２のメモリ部内のページデータの所在位置との対照を示す、アドレス変換テーブルが構築されており、上記制御回路は、上記書き戻しの際、書き込み位置に応じて上記変換テーブルを更新する。
【００５４】
好適には、上記制御回路は、外部からデータをアクセスがなされた際は、装置内で上記アドレス変換テーブルが参照され、所望のデータがキャッシュである上記第２のメモリ部内に保存されているか否かを判定する。
【００５５】
好適には、上記第１のメモリ内に保存されたページデータを更新する際には、上記制御回路は上記ページデータを上記第２のメモリ部内に移動し、当該移動位置に応じて上記変換テーブルを更新し、上記第１のメモリ部上のページデータの元領域を無効化する。
【００５６】
本発明によれば、たとえば、記憶装置では、低性能なメインメモリに付帯する高性能な補助メモリを、従来のキャッシュメモリの如くメインメモリの一時記憶媒体として扱うのではなく、メインメモリと等価な媒体として扱う。
より具体的には本発明の記憶装置は、アクセス特性が異なる二種のメモリを同階層で扱い、その特性に応じてデータを両者の間で柔軟に振り分ける。
したがって、高性能な補助メモリ側に保存されるのは、メインメモリのデータの一時記憶としてのコピーではなく、メインメモリから移されたデータの実体である。
このような記憶装置においては、もはや補助メモリに行われたデータ更新を、必ずしもメインメモリに反映させる必要は無い。補助メモリが満杯になった際には、適時メインメモリの適当な消去済領域に記憶データを移動させるだけで良い。その移動場所は、システムの効率を考慮して柔軟に選択することが可能である。
【００５７】
本発明の第３の観点の記憶装置は、第１のメモリ部と、上記第１のメモリ部より高速で小容量な第２のメモリ部と、を含み、アドレス変換テーブルを有し、当該アドレス変換テーブルは外部からのアクセスに伴って入力された論理アドレスを、上記第１のメモリ部または第２のメモリ部上の記憶領域を規定する物理アドレスに変換し、当該アクセスを第１または第２のメモリ部へのアクセスに振り分け、上記第２のメモリ部に格納されるデータは、上記物理アドレスをインデックスとする配列として管理されており、必要に応じて先に格納されたデータから順次破棄されて、上記第１のメモリ部に移動される。
【００５８】
好適には、上記第２のメモリ部に構築されるデータ配列には、各インデックスごとに予備フィールドが設けられており、各データに対応する上記論理アドレスが格納されている。
【００５９】
本発明の第４の観点の記憶装置は、第１のメモリ部と、上記第１のメモリ部より高速で小容量な第２のメモリ部と、を含み、アドレス変換テーブルを有し、当該アドレス変換テーブルは外部からのアクセスに伴って入力された論理アドレスを、第１のメモリ部または第２のメモリ部上の記憶領域を規定する物理アドレスに変換し、当該アクセスを第１または第２のメモリ部へのアクセスに振り分け、上記第２のメモリ部に格納されるデータは、上記物理アドレスをインデックスとするリンクリストで管理されており、新規に格納されたデータはリンクの一端に追加され、必要に応じてリンクの反対端のデータが破棄されて、上記第１のメモリ部に移動される。
【００６０】
好適には、上記リンクリストの管理テーブルには、各インデックスごとに予備フィールドが設けられており、各データに対応する上記論理アドレスが格納されている。
【００６１】
本発明の第５の観点の記憶装置は、第１のメモリと、上記第１のメモリのキャッシュメモリである第２のメモリと、制御回路と、を有し、上記第１のメモリは不揮発性メモリであって、データのアクセス単位であるページ領域と、消去単位であるブロック領域を複数有し、当該ブロック領域は複数のページ領域を含み、上記制御回路は、複数のページ領域のデータを、それぞれ異なるブロック領域から読み出して上記第２のメモリに保存し、保存したデータを上記第１のメモリ内の同一のブロックに再配置して書き込む機能を有する。
【００６２】
好適には、上記第２のメモリは、上記ページ領域かそれ以下の単位で書き換えが可能な不揮発性メモリを含む。
好適には、上記第２のメモリは、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いた不揮発性メモリを含む。
【００６３】
好適には、上記制御回路は、上記第１のメモリ上のページデータを更新する際は、当該第１のメモリから読み出されて更新されたページデータは上記第２のメモリ内に保管し、さらに上記第１のメモリ上の元のページ領域は無効化させる。
【００６４】
好適には、上記制御回路は、データアクセスにおけるアドレスの少なくとも一部を構成する各ページごとの論理アドレスと、該ページの上記第１または第２メモリ内における所在位置を示す物理アドレスの対照情報を、内部に保存している。
【００６５】
本発明によれば、たとえば、制御回路によって、複数のページ領域のデータが、それぞれ異なるブロック領域から読み出されて第２のメモリに保存される。そして、保存されたデータが第１のメモリ内の同一のブロックに再配置されて書き込まれる。
【００６６】
本発明の第６の観点の半導体記憶装置は、第１のメモリと、上記第１のメモリよりアクセス速度が低速な第２のメモリと、論理アドレスに対する物理アドレスを含むアドレス変換テーブルと、制御回路と、を有し、上記制御回路は、外部からアクセスが成されると上記アドレス変換テーブルを参照して、入力論理アドレスに対応する物理アドレスを取得し、取得した上記物理アドレスが第１のメモリ内を指す場合には、第１のメモリをアクセスし、上記物理アドレスが第２のメモリ内を指す場合には、必要に応じて第２のメモリ内のデータを第１のメモリ内に転送する。
【００６７】
好適には、上記制御回路は、上記物理アドレスが第２のメモリ内を指し、かつ所望のデータのコピーが第１のメモリ内に無い場合は、少なくとも当該データを第２のメモリから第１のメモリ内に転送する。
【００６８】
好適には、上記アクセスが読み出しの場合、上記データ転送はデータのコピーを含み、上記アクセスが書き込みの場合、上記データ転送はアドレス変換テーブルの更新を伴うデータの移動を含む。
【００６９】
好適には、上記制御回路は、上記物理アドレスが第２のメモリ内を指し、かつ所望のデータのコピーが第１のメモリ内に存在し、かつアクセスが書き込みの場合は、上記コピー部を更新し、かつ上記アドレス変換テーブルを更新して、該当データに対応する物理アドレスは該コピー領域を指すように変更する。
【００７０】
好適には、状態通知ピンをさらに有し、上記データ転送がなされた場合、通知ピンにビジー状態が通知される。
【００７１】
好適には、上記第１のメモリはランダムアクセスメモリを含み、上記第２のメモリはフラッシュメモリを含む。
【００７２】
好適には、上記第１のメモリは不揮発のランダムアクセスメモリであって、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性半導体メモリを含む。
【００７３】
本発明の第７の観点の半導体記憶装置は、第１のメモリ部と、上記第１のメモリ部より記憶容量が大きい第２のメモリ部と、制御回路と、状態通知ピンと、を有し、上記第１のメモリ部は、不揮発のランダムアクセスメモリであって、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性半導体メモリを含み、上記第２のメモリ部はフラッシュメモリを含み、上記制御回路は、外部からメモリアクセスがなされた際、所望のデータまたは当該データのコピーが第１のメモリ部にある場合は第１のメモリ部をアクセスし、無い場合は上記第２のメモリ部から第１のメモリ部に所望データを転送し、上記データ転送が発生した場合には、上記通知ピンにビジー状態が通知される。
【００７４】
本発明の第８の観点は、半導体記憶装置を有する情報処理システムであって、上記半導体記憶装置は、第１のメモリ部と、上記第１のメモリ部より記憶容量が大きい第２のメモリ部と、制御回路と、状態通知ピンと、を有し、上記第１のメモリ部は、不揮発のランダムアクセスメモリであって、強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を記憶素子に用いた不揮発性半導体メモリを含み、上記第２のメモリ部はフラッシュメモリを含み、上記制御回路は、外部からメモリアクセスがなされた際、所望のデータまたは当該データのコピーが第１のメモリ部にある場合は第１のメモリ部をアクセスし、無い場合は上記第２のメモリ部から第１のメモリ部に所望データを転送し、上記データ転送が発生した場合には、上記通知ピンにビジー状態が通知され、上記ビジー状態の通知に伴って、システムに割り込みが発生し、システムはメモリアクセスを中断して、上記転送の完了まで待機する。
【００７５】
本発明によれば、たとえば記憶装置が、強誘電体メモリ等の高速不揮発性メモリ（以下ＮＶＲＡＭと呼ぶ）と、たとえばＮＡＮＤ型フラッシュメモリに代表される安価な大容量不揮発性メモリを組み合わせ、見かけ上ランダムアクセスが可能で、かつ高速、大容量な不揮発性メモリとして構成される。
両メモリはともにデータの記憶装置として作用し、所望のデータまたはデータのコピーがＮＶＲＡＭにある場合、外部からは通常のランダムアクセスメモリに対するのと同様にＮＶＲＡＭにアクセスできる。一方、それらがＮＶＲＡＭにない場合は、通知ピンによりその旨がシステムに通知され、大容量フラッシュメモリからＮＶＲＡＭへ所望のデータの転送が行われる。システムはその間、メモリアクセスを停止して待機する。
【００７６】
また、本発明では、ＮＶＲＡＭに所望のデータがあるか否かの判定を、アドレス変換テーブルを用いて実施する。これは判定にキャッシュタグを用いる一般的なキャッシュシステムに対して、次のような柔軟性を提供する。
通常のキャッシュシステムでは、キャッシュにはメインメモリに格納されたデータのコピーのみが格納される。したがって、キャッシュ内のデータが外部から更新された場合、必ずメインメモリの元の場所に書き戻す必要がある、前述したように、メインメモリにフラッシュメモリを用いた場合、この制約は大きなオーバーヘッドを生ずる。
これに対して、本システムにおいては、アドレス変換テーブルを更新することで、ＮＶＲＡＭ側にデータの本体を移動させることができる。したがって、たとえばコピーをデータ本体と差し替えて元のデータは無効化することで、もはや書き戻しは不要となり、オーバーヘッドも解消できる。また、ＮＶＲＡＭ側に十分な空きが無くなった場合は、それらをフラッシュメモリ内の好適な空き場所に自由に移動させることができる。
【発明の効果】
【００７７】
本発明によれば、従来のキャッシュシステムと同等な効果を得つつも、キャッシュメモリの更新をメインメモリに反映させる必要がなくなり、より柔軟で効率的なメモリシステムを構築することが可能になる。
たとえば、低価格大容量のフラッシュメモリをメインメモリとして使用しつつ、高速な転送能力を確保でき、かつ微小領域の更新にも無駄なく対応可能な、柔軟な半導体ストレージを実現できる。
また、ハードディスクシステムにおいても、シーク回数の少ない、高速な記憶装置を実現できる。
一般に領域に依存してアクセス性能を劣化させる制約を持ったメモリをメインメモリとした記憶装置では、本発明の効果は顕著であり、従来のキャッシュシステムに比較してアクセス性能を大幅に改善することが可能である。
【００７８】
本発明によれば、見かけ上ランダムアクセスが可能で、かつ高速、大容量な不揮発性メモリを実現することができる。
また、所望のデータがＮＶＲＡＭにあるか否かの判定にアドレス変換テーブルを用いることで、両メモリ間で必要に応じてデータの移動を可能にし、これによってフラッシュメモリの書き換えに伴うオーバーヘッドを最小化し、高速な動作を実現することが可能である。
また、本発明によるメモリをバッテリーバックアップのモバイル機器に採用すれば、待機時のデータ保持に電力消費を必要としないので、バッテリー寿命を大幅に延ばすことができる。またシステム構成が単純になる上、殆どのメモリ部は安価なＮＡＮＤ型フラッシュメモリで置き換えることができるので、総合的なメモリコストも低減できる。
【発明を実施するための最良の形態】
【００７９】
以下、本発明の実施形態を図面に関連付けて説明する。
【００８０】
第１実施形態
図６は、本発明に係る記憶装置を第１の実施形態を示す構成図である。
【００８１】
図６の記憶装置５０は、メインメモリ５１、補助メモリ５２、インターフェース回路（Ｉ／Ｆ）５３、転送制御回路５４、内部バスＢＳ５０を、主構成要素として有している。
【００８２】
記憶装置５０において、外部との入出力インターフェース回路５３には内部バスＢＳ５０を介してＮＡＮＤ型フラッシュメモリよりなる大容量のメインメモリ５１と、強誘電体メモリよりなる比較的小容量の補助メモリ５２が接続されており、さらに転送制御回路５４を有している。
メインメモリ５１は内部が高並列化されており、３２ｋＢのデータ群が単位ページとして同時にアクセスされ、内部バスＢＳ５０に入出力転送される。
【００８３】
また、装置内部には左記ページを管理単位としたアドレステーブル６０が構築されている。これはたとえば、図７に示すように、転送制御回路５４に内蔵されたＲＡＭの中に構築される。インターフェース回路５３は内部に３２ｋＢのページバッファーを備え、内部バスＢＳ５０から一旦ページ単位でデータを取得し、それを介して５１２Ｂのファイルセクター単位でデータを入出力する。
【００８４】
外部からアクセスしたい所望のセクターアドレスが指定されると、転送制御回路５４はその上位ビットから対応する論理ページアドレスを抽出し、アドレステーブル６０を参照する。
アドレステーブル６０は、図７に示すように、各論理アドレス６１と物理アドレス６２の照応から成っており、テーブルを格納したＲＡＭ上では、そのメモリアドレスと格納データに対応させることができる。
すなわち、所望の論理アドレスに対応するＲＡＭ上のアドレスにアクセスすることで、照応する物理アドレスが取得できる。
物理アドレス領域００００〜７ＦＦＦはメインメモリ６１内のページアドレスを示す。一方、８０００以上の領域は補助メモリ５２を示しており、たとえば物理アドレス８００１は補助メモリ５２のアドレス０００１に所望のページが存在することを示している。
転送制御回路５４はこのテーブルを用いて所望のページの所在を判定し、メインメモリ５１または補助メモリ５２からそれを読み出してインターフェース回路５３のページバッファーに転送する。
【００８５】
本記憶装置５０においては、メインメモリ５１から読み出されて更新されたページデータは、補助メモリ５２に移動する。
すなわち、転送制御回路５４は更新されたページを補助メモリ５２に保存し、アドレステーブル６０内の対応論理アドレスに照応する物理アドレスを、補助メモリ５２の保存先に書き換える。これによって、メインメモリ５１内の読み出し元領域は無効化される。
すなわち、ページデータは補助メモリ５２に一時記憶としてコピーされたのではなく、実体が移動している。
【００８６】
それ以降、同じ論理アドレスがアクセスされると、更新されたアドレステーブルに従って、補助メモリ５２がアクセスされる。
ＦｅＲＡＭの書き換えはフラッシュメモリに比較してはるかに高速なので、補助メモリ５２へのデータアクセスは極めて高速に実施することができる。この点において、補助メモリ３２の役割は通常のキャッシュメモリと同じである。
【００８７】
このようにして互いに異なる消去ブロックから読み出されたページ３５〜３７が次々に更新され、補助メモリ５２に移動したとする。
こうして補助メモリ５２内の空きが無くなってくると、転送制御回路５４は、今度はこれらのページをメインメモリ５１に再度移動させる必要が生ずる。
この際の移動は従来のキャッシュメモリからの書き戻しと異なり、メインメモリ上の任意の消去済み領域に行うことが可能である。たとえば、消去済の空きブロック５９にまとめて移動させればよく、従来のようにそれぞれのページに対して読み出し元のブロック消去やブロック全体のデータ退避、再書き込み等を行う必要が無い。
すなわち、補助メモリ５２からページ群５８のみをメインメモリ５１のブロック５９に順次転送し、アドレステーブル６０をそれに応じて書き換えるのみで良い。
【００８８】
なお、本発明を用いた記憶装置では、補助メモリ５２にはメインメモリ５１の任意の箇所からランダムにページが移動せしめられ、蓄積されるので、ヒット率の高いフルアソシエーティブのキャッシュメモリと等価な効力を発揮させることができる。しかもデータの探査や移動に用いるアドレステーブル６０の照合や更新はいずれも一回のＲＡＭアクセスで良く、たとえばキャッシュＴＡＧをスキャンして入力アドレスと比較する従来のキャッシュシステムのヒットの検出よりはるかに簡便かつ高速である。
【００８９】
ところで、本実施形態における補助メモリ５２には揮発性メモリを使うことも可能であるが、データの消失は許されない。したがって、たとえばメインメモリ５１内に特定の領域を設けて、電源オフ時にそこに内容を退避する必要がある。さらに、電源オン時には退避したデータを復元させねばならず、起動や終了に余分な時間がかかる上、電源瞬断にも脆弱である。したがって、補助メモリ５２はフラッシュメモリよりアクセスが高性能な不揮発性メモリであることが望ましく、具体的には強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いたメモリであることが望ましい。
【００９０】
さらに、アドレステーブル６０も消滅は許されない。たとえば各ページの論理アドレスをページ毎の予備領域に保存しておけば再構築は可能だが、全ページのスキャンには長時間を要する。したがって、テーブルデータは不揮発性の補助メモリ５２にバックアップ保存されるか、もしくはメモリ５２の中に直接構築されることが望ましい。
【００９１】
ところで、上記補助メモリ５２にメインメモリ５１からデータを移動させる際、どのアドレスに格納するかを決定するための仕様が必要である。また、補助メモリ５２に空き領域が無くなってきた場合、どのデータからメインメモリ５１に移動させるかを決定するための仕様も必要である。
【００９２】
このような補助メモリ５２の管理手法の具体例を図６に示す。
アドレス変換テーブル６０ｃには記憶装置５０に入力される各論理ページアドレスに応した物理ページアドレスが記載されており、”０ｘ８０００”以上は補助メモリ５２ｃ内のデータ領域を指している。その下位８ビットが、補助メモリ５２ｃ内に構築されたページデータの配列におけるインデックスとなる。
【００９３】
補助メモリ５２ｃ内にはたとえば１１２のエントリ領域があり、各ページデータは上記物理アドレスをインデックスとした配列で管理されている。
すなわち、図８の状態では、インデックス”０ｘ１ｅ”を先頭として、”０ｘ０２”までの連続した領域にページデータが格納されている。”０ｘ０３”〜”０ｘ１ｄ”に到る領域６６ｃには現在データは格納されておらず、空き領域となっている。
【００９４】
ページデータ格納領域における先頭インデックス”０ｘ１ｅ”及び末尾インデックス”０ｘ０２”は、それぞれキャッシュコントローラ（図６の符号（５４）に相当）内のレジスタ６７ｃおよび６８ｃに格納されて管理されている。また補助メモリ５２ｃ内には各インデックスごとにページデータ用のフィールド６４ｃに対応した予備フィールド６５ｃが設けられており、そこには各ページデータの論理アドレスが格納されている。
【００９５】
補助メモリ５２ｃに新しいページデータを格納する場合、以下のような操作が行われる。
まず先頭インデックスレジスタ６７ｃの値が一つデクリメントされ、”０ｘ１ｄ”になる。そして補助メモリ５２ｃ内のインデックス”０ｘ１ｄ”に相当するページフィールドにページデータが、予備フィールドに対応する論理アドレスが格納される。
【００９６】
一方、補助メモリ５２ｃの空き領域が無くなるか残り少なくなって、新規空き領域確保のため既存のページデータを補助メモリから削除してメインメモリに移動する場合、以下のような操作が行われる。
まず末尾インデックスレジスタ６８ｃの値が参照され、インデックス値”０ｘ０２”が取得される。これをもとに補助メモリ５２ｃ内のインデックス”０ｘ０２”に相当するページフィールドに格納されたページデータと予備フィールドに格納された論理アドレス値”０ｘ０００５”が取得される。ページデータはメインメモリ内の適当な物理アドレス、例えば”０ｘ００ＦＦ”に転送、格納されるとともに、変換テーブル６０ｃがアクセスされ、論理アドレス”０ｘ０００５”に対応するフィールドが、”０ｘ８００２”から”０ｘ００ＦＦ”に書き換えられる。さらに末尾インデックスレジスタ６８ｃの値はデクリメントされ、”０ｘ０１”に変わる。
【００９７】
すなわち、補助メモリ５２ｃ内の各ページデータは対応する論理アドレスと対になって配列として管理される。
この論理アドレスを参照することで、補助メモリ５２ｃからメインメモリにデータを移動する際、変換テーブル６０ｃの対応箇所に適切かつ迅速にアクセスし、それを書き換えることが可能になる。また上記配列への新規ページデータの格納インデックスや、旧ページデータを移動させる場合の移動元インデックスは、先入れ先出しのアルゴリズムで一意的に決定されることになる。
【００９８】
なお、上記ページデータの配列は、たとえば１ワードが１６ビットの３２Ｍｂメモリ上においては、以下の如く構築される。左記メモリは２Ｍワードを有しており、各ワードの選択は２１ビットのメモリアドレスを用いて行われる。
ここで各ページデータ用フィールド６４ｃには１６ｋワードの連続領域がそれぞれ使用され、それら全体は、
”０＿００００＿００００＿００００＿００００＿００００”
〜
”１＿１０１１＿１１１１＿１１１１＿１１１１＿１１１１”
のメモリアドレス領域内に格納される。
このうち上位７ビットがページ選択のためのインデックスに対応し、
”０＿００００＿００”
〜
”１＿１０１１＿１１”
の範囲の値である。その１６進数値は”０ｘ００”〜”０ｘ６ｆ”に相当する。下位１４ビットは同一ページからワード単位でデータを取り出す際のアドレスとなる。
【００９９】
一方各予備フィールド６５ｃにはそれぞれ１ワードづつが使用される。それら全体は
”１＿１１００＿００００＿００００＿００００＿００００”
〜
”１＿１１００＿００００＿００００＿０１１０＿１１１１”
のメモリアドレス領域内に格納される。
ここでは下位７ビットがそのままページインデックスに対応している。
【０１００】
すなわち、任意のページインデックスが与えられた場合、それをメモリアドレスの上位７ビットにあて、下位１４ビットを”００＿００００＿００００＿００００”〜”１１＿１１１１＿１１１１＿１１１１”とスキャンすることで所望のページデータ用フィールド６４ｃにアクセスできる。またそれを下位７ビットにあて、上位１４ビットに”１＿１１００＿００００＿００００＿０”を付加することで、予備フィールド６５ｃにアクセスできる。
なお、これは一例であって、具体的にメモリ上にページデータの配列を構成する手法としては、さまざまなバリエーションが存在し得る。
【０１０１】
補助メモリについて、リンクリストを用いた第２の管理手法の例を図９に示す。
アドレス変換テーブル６０ｄには記憶装置に入力される各論理ページアドレスに対応した物理ページアドレスが記載されており、”０ｘ８０００”以上は補助メモリ５２ｄ内のデータ領域を指している。その下位８ビットが、補助メモリ５２ｄ内に構築されたページデータのリンクテーブルにおけるインデックスとなる。
【０１０２】
補助メモリ５２ｄ内には１１２のエントリ領域があり、各ページデータは上記物理アドレスをインデックスとしたリンクリストで管理されている。フィールド６９ｄには後方にリンクするノードのインデックス、フィールド７０ｄは前方にリンクするノードのインデックスが格納されている。本図の状態では、インデックス”０ｘ１ｅ”のノードを先頭として、”０ｘ０２”まで連続して順次リンクなされ、ページデータが格納されている。”０ｘ０３”〜”０ｘ１ｄ”に到る領域６６ｃには現在データは格納されておらず、空き領域となっている。但しリンクは全ノードに対し、一周し、循環するように貼られている。
【０１０３】
リンクリストにおけるページデータが格納されたノードの先頭インデックス”０ｘ１ｅ”および末尾インデックス”０ｘ０２”は、それぞれキャッシュコントローラ（図６（５４）に相当）内のレジスタ６７ｄおよび６８ｄに格納されて管理されている。
また、キャッシュメモリ５２ｄ内には各インデックスごとにページデータ用のフィールド６４ｄに対応した予備フィールド６５ｄが設けられており、そこには各ページデータの論理アドレスが格納されている。
【０１０４】
補助メモリ５２ｄに新しいページデータを格納する場合、以下のような操作が行われる。
まず先頭インデックスレジスタ６７ｄに格納されたインデックス値”０ｘ１ｅ”がアクセスされ、フィールド７０ｄの値から、前方ノードのインデックス”０ｘ１ｄ”が取得される。そして補助メモリ５２ｄ内のインデックス”０ｘ１ｄ”に相当するページフィールドにページデータが、予備フィールドに対応する論理アドレスが格納される。さらに先頭インデックスレジスタ６７ｄの値は”０ｘ１ｄ”に書き換えられる。
【０１０５】
一方、補助メモリ５２ｄの空き領域が無くなるか残り少なくなって、新規空き領域確保のため既存のページデータを補助メモリから削除してメインメモリに移動する場合、以下のような操作が行われる。
まず末尾インデックスレジスタ６８ｄの値が参照され、インデックス値”０ｘ０２”が取得される。これをもとに補助メモリ５２ｄ内のインデックス値”０ｘ０２”がアクセスされ、ページフィールドに格納されたページデータと予備フィールドに格納された論理アドレス値”０ｘ０００５”、及び前方リンクのインデックス値”０ｘ０１”が取得される。ページデータはメインメモリ内の適当な物理アドレス、たとえば”０ｘ００ＦＦ”に転送、格納されるとともに、変換テーブル６０ｄがアクセスされ、論理アドレス”０ｘ０００５”に対応するフィールドが、”０ｘ８００２”から”０ｘ００ＦＦ”に書き換えられる。さらに末尾インデックスレジスタ４８ｃの値は前方のリンクノードのインデックス値”０ｘ０１”に変わる。
【０１０６】
すなわち、補助メモリ５２ｄ内の各ページデータは対応する論理アドレスと対になって配列として管理される。この論理アドレスを参照することで、補助メモリ５２ｄからメインメモリにデータを移動する際、変換テーブル６０ｄの対応箇所に適切かつ迅速にアクセスし、それを書き換えることが可能になる。また、上記配列への新規ページデータの格納インデックスや、旧ページデータを移動させる場合の移動元インデックスは、リンクの先頭ノードからデータを入力し、リンクの末尾ノードからデータを破棄するアルゴリズムによって一意的に決定されることになる。
【０１０７】
なお、このようなリンクリスト管理では必ずしも連続したインデックスにリンクしていく必要は無い。またフィールド６９ｄ，７０ｄを書き換えることで、リンクを動的に付け替え、破棄するノードの順番を変えることが可能である。
【０１０８】
具体的には、既に補助メモリ５２ｄ内に既に格納されているデータが再度アクセスされた場合に、それをリンクの先頭につけかえるようにすれば、アクセス頻度の多いデータはいつまでも高速な補助メモリ内に留まることになり、所謂補助メモリへのヒット率が向上する。
【０１０９】
図１０に、図９の状態からインデックス”０ｘ０１”のノードを先頭に付け替えた例を示す。ハッチングされたフィールドを書き換えることで、リンクの順番が変わり、”０ｘ０１”のみが従来の位置から外れ、これまでの先頭ノード”０ｘ１ｅ”の前方に付け替えられている。それに伴って先頭インデックスレジスタ（４７ｄ）の値も”０ｘ０１”に書き換えられている。
【０１１０】
第２実施形態
図１１は、本発明に係る記憶装置の第２の実施形態を示す構成図である。
第２の実施形態の記憶装置８０は、ハードディスク（ＨＤＤ）をメインメモリとする記憶装置である。
【０１１１】
図１１の記憶装置８０は、メインメモリ８１、補助メモリ８２、インターフェース回路（Ｉ／Ｆ）８３、転送制御回路８４、内部バスＢＳ８０を、主構成要素として有している。
【０１１２】
外部との入出力インターフェース回路８３には内部バスＢＳ８０を介してハードディスクドライブ装置よりなる大容量のメインメモリ８１と、強誘電体メモリよりなる比較的小容量の補助メモリ８２が接続されており、さらに転送制御回路８４を有している。
転送制御回路８４からの制御信号に従って、メインメモリ８１と補助メモリ８２の間では、たとえば３２ｋＢ単位のデータグループ（以降これをページと呼ぶ）で双方向のデータ転送が行われる。
また、インターフェース回路８３と補助メモリ８２との間ではファイルセクターに相当する５１２Ｂ単位でのデータ転送が行われる。
【０１１３】
図１１の記憶装置８０において、外部からアクセスしたい所望のセクターアドレスが指定されると、転送制御回路６４はその上位ビットから対応する論理ページアドレスを抽出し、図１２に示すように、内蔵ＲＡＭ内に構築されたアドレステーブル９０を参照する。
アドレステーブル９０は各論理アドレス９１と物理アドレス９２の照応から成っている。図１２の物理アドレス領域００００〜７ＦＦＦはメインメモリ８１内のページアドレスを示す。
一方、８０００以上の領域は補助メモリ８２を示しており、たとえば物理アドレス８００１は補助メモリ８２のアドレス０００１に所望のページが存在することを示している。
【０１１４】
転送制御回路８４は、このテーブルを用いて所望のページの所在を判定する。補助メモリ８２にデータがある場合は、インターフェース回路８３に補助メモリ８２内の対応アドレスを渡し、アクセスを許可する。
一方、メインメモリ８１にデータがある場合は、一旦メインメモリの該当ページを補助メモリに移動する。
すなわち、転送制御回路８４はメインメモリ８１から補助メモリ８２の空き領域に該当ページを転送し、アドレステーブル９０内の対応論理アドレスに照応する物理アドレスを、補助メモリ８２の保存先に書き換える。これによって、メインメモリ８１内の読み出し元領域は無効化される。
すなわち、ページデータは補助メモリ８２に一時記憶としてコピーされたのではなく、実体が移動している。しかる後にインターフェース回路８３に補助メモリ８２内の対応アドレスを渡し、アクセスを許可する。
【０１１５】
それ以降、同じ論理アドレスがアクセスされると、更新されたアドレステーブルに従って、補助メモリ８２がアクセスされる。ＦｅＲＡＭの読み出しや書き込みは、ヘッドのシークを必要とするハードディスクドライブに比較してはるかに高速なので、補助メモリ８２へのデータアクセスは極めて高速に実施することができる。
【０１１６】
このようにしてメインメモリ８１の互いに異なるトラックから読み出されたページ８５〜８７が次々に補助メモリ８２に移動したとする。こうして補助メモリ内の空きが無くなってくると、転送制御回路８４は、今度はこれらのページをメインメモリ８１に再度移動させる必要が生ずる。この際の移動は従来のキャッシュメモリからの書き戻しと異なり、メインメモリ上の任意のトラックまたは任意の互いに近接したトラック群の空き領域にまとめて行うことができる。
たとえば、ページ群８８は同一のトラック８９に移動する。したがって、その際のヘッドのシークは最小限に抑えられ、高速にデータを移動させることができる。
【０１１７】
ところで、補助メモリ８２に保存されるのは、通常互いに関連の深いページデータ群である。たとえば、ＦＡＴ等のファイルシステムでは、メインメモリ８１に保存されていた断片化されたファイルにアクセスすると、複数のファイル断片が、互いに異なるトラックから補助メモリ８２に移動してくる。それらは再度メインメモリ８１に移動した際には同一または近接したトラックに書き込まれる。したがって、次にこれらをアクセスするときはヘッドのシークは最小限で良い。
【０１１８】
すなわち、本発明を採用すれば、従来パソコン等でユーザーが長時間をかけて行なう必要があったデフラグ操作と同等の効果が、メモリアクセス中に自動的に得られることになる。しかも単に断片化されたファイルのみでなく、同一のアプリケーションに関連づけられた複数ファイルも近接したトラック内に移動し、次回はヘッドシークの少ない高速なアクセスが可能になる。
【０１１９】
なお、本第２の実施形態においても、第１の実施形態と同様な理由で、補助メモリ８２はアクセスが高性能な不揮発性メモリであることが望ましく、具体的には強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いたメモリであることが望ましい。
【０１２０】
さらに、アドレステーブル９０についても、データは不揮発性の補助メモリ８２にバックアップ保存されるか、もしくは補助メモリ８２の中に直接構築されるのが望ましい。
【０１２１】
尚、ハードディスク等、メインメモリ８１の容量が巨大になると、保存されるページ数も多くなり、テーブル９０の構築に必要とされるメモリ容量も巨大になってくる。これに対しては論理ページアドレスの上位ビットに対応してテーブルを複数に分割する方法が有効であることが知られている。まず上位ビットから該当テーブルを選択し、下位ビットに従って該当するテーブルをアクセスすることで、対応する物理ページアドレスを得る。このようにアドレス変換テーブルの形態にもバリエーションが存在するが、本発明はいずれの場合にも適用することが可能である。
【０１２２】
第３実施形態
ところで、本発明の概念の一部を既存のキャッシュメモリシステムに適用しても、類似した効果を得ることは可能である。図６の実施形態と同様なシステムについて、補助メモリをキャッシュメモリとして管理した記憶装置の構成を第３の実施形態として説明する。
【０１２３】
図１３は、本発明に係る記憶装置の第３の実施形態を示す構成図である。
【０１２４】
図１３の記憶装置５０Ｂは、メインメモリ５１ｂ、補助メモリ５２ｂ、インターフェース回路（Ｉ／Ｆ）５３ｂ、転送制御回路５４ｂ、内部バスＢＳ５０ｂを、主構成要素として有している。
【０１２５】
このようなメモリシステムでは、ページテーブル６０ｂはメインメモリ５１ｂの管理にのみ使用し、物理アドレスはメインメモリ５１ｂ側の領域のみを対象とする。
一方、補助メモリ側の内容は、図１３および図１４に示すように、別途キャッシュのエントリテーブル６３ｂを設けて、それで管理する。すなわち、補助メモリ５２ｂはキャッシュメモリとして位置付けられる。
【０１２６】
本記憶装置５０Ｂにおいては、メインメモリ５１ｂから読み出されて更新されたページデータは、キャッシュメモリ５２ｂに一時的にコピーされる。
すなわち、本例ではアドレステーブル６０ｂは更新されず、別途テーブル６３ｂにキャッシュへのエントリが追加される。
たとえば、テーブル６０ｂは、論理アドレス０ｘ０００２、０ｘ０００３に相当するページデータが、メインメモリ３１ｂの０ｘ００Ｆ２、０ｘ００Ｆ３のアドレス位置に格納されていることを示している。
一方、テーブル６３ｂにはキャッシュ内にコピーされているページの論理アドレス６４ｂと、そのキャッシュ内物理アドレス６５ｂのセットが、エントリとして記載されている。すなわち、上述の論理アドレス０ｘ０００２、０ｘ０００３に相当するページデータのコピーが、キャッシュメモリ５２ｂの０ｘ００、０ｘ０１に格納されていることが解る。
【０１２７】
それ以降、同じ論理アドレスがアクセスされると、テーブル６３ｂのエントリのスキャンによってキャッシュのヒットが検出され、キャッシュメモリ５２ｂがアクセスされる。
【０１２８】
このようにして互いに異なる消去ブロックから読み出されたページ５５ｂ〜５７ｂが次々に更新され、キャッシュメモリ５２ｂにそのコピーが一時保存されたとする。こうしてキャッシュメモリ内の空きが無くなってくると、今度はこれらのページ更新をメインメモリ５１ｂに反映させた上で、キャッシュ上のデータを破棄する必要が生ずる。
転送制御回路５４ｂはこの時点で、該当するページデータのメインメモリ内の物理位置を、たとえば消去済の空きブロック５９ｂにまとめて移動させる。
すなわち、キャッシュメモリ５２ｂからページ群５８ｂをメインメモリ５１ｂのブロック５９ｂに順次転送し、アドレステーブル６０ｂをそれに応じて書き換える。また対応するエントリを、テーブル６３ｂから削除する。
【０１２９】
本第３の実施形態では第１の実施形態と管理手法は異なるものの、ページデータの転送手順は同じである。したがって、第１の実施形態と類似した効果を得ることができる。
しかしこの場合、キャッシュＴＡＧテーブル６３ｂとページテーブル６０ｂの二重管理は冗長、かつ煩雑である。またＴＡＧをスキャンしてのヒット判定にも余分な時間がかかる。
したがって、このようなシステムは、最終的には第１実施形態に到るまでの、過渡的な中途段階と解釈することができる。
【０１３０】
第４実施形態
ここまで本発明の内容を、一通り概念的に説明してきた。
さらに以下には本発明による超高速なシリコンディスクの実現性を具体的に明らかにすべく、第１の実施形態におけるメモリ構成をさらに発展させた第４の実施形態について、機能構成と動作仕様を詳細に説明する。
【０１３１】
図１５は、本発明に係る記憶装置の第４の実施形態を示す構成図である。
【０１３２】
図１５の記憶装置５０Ｃは、メインメモリ５１ｃ、補助メモリ５２ｃ、インターフェース回路（Ｉ／Ｆ）５３ｃ、転送制御回路５４ｃ、内部バスＢＳ５０ｃを、主構成要素として有している。
【０１３３】
本記憶装置５０Ｃのメインメモリ５１ｃはフラッシュメモリモジュール５１ｃであり、並列動作が可能な４個の２５６ＭＢフラッシュメモリ５１ｃ＿０〜５１ｃ＿３、フラッシュメモリコントローラ６７ｃ、ページバッファー６６ｃを含んで構成されている。
【０１３４】
各フラッシュメモリ５１ｃ＿０〜５１ｃ＿３は４つの６４ＭＢメモリアレイ、たとえばバンクＢＫ０〜ＢＫ３を有しており、それぞれ独立したバンクとして並列動作が可能である。各々のバンクＢＫ０〜ＢＫ３のページサイズは２ｋＢであり、消去ブロックサイズは６４ページをまとめた１２８ｋＢである。
すなわち、各バンクＢＫ０〜ＢＫ３は５１２個の消去ブロックを有している。さらに各バンクはそれぞれページ格納用のラッチを有している。各バンクの書き込み転送速度は１０ＭＢ／ｓ程度である。
各バンクＢＫ０〜ＢＫ３にデータを書き込む際は、まずバンク毎のラッチ内に上記ページサイズに相当する２ｋＢずつのデータが転送され、その後所望のページアドレスに一括書き込みされる。
各バンクＢＫ０〜ＢＫ３は、各々独立にアクセスするページアドレスを指定でき、片側のバンクが書き込まれている間に反対のバンクのラッチにもデータを転送でき、さらに書き込みを開始できる。すなわち、４つのバンクは並列に動作が可能である。
【０１３５】
さらに４個のフラッシュメモリも各々並列動作が可能であり、フラッシュメモリモジュール全体では１６バンクを並列にアクセスできる。
たとえば、一つのファイルを１６バンクに分割して並列に書き込めば、実質的には最大１６倍の速度で書き込みが可能である。それらは一体化して、ページサイズ（２ｋＢｘ１６＝）３２ｋＢ、消去ブロックサイズ（１２８ｋＢｘ１６＝）２ＭＢ、書き込み転送速度（１０ＭＢｘ１６＝）１６０ＭＢ／ｓのフラッシュメモリとみなすことが可能である。
【０１３６】
フラッシュメモリコントローラ６７ｃはＥＣＣ符号化によるエラー訂正回路を備えるとともに、内蔵ＲＡＭ内には消去ブロック（ここでは１６バンク分を一体化した２ＭＢブロック）単位のアドレス変換テーブル６８ｃが構築されている。
【０１３７】
本アドレス変換テーブル６８ｃは、後述する無効ページの回復処理や、最適な書き込み領域の探査、ブロックごとの書き換え回数の平均化処理等を行う際に活用する。
【０１３８】
さらに、フラッシュメモリモジュール５１ｃには３２ｋＢのページバッファー６６ｃが設置されており、これを介して内部バスＢＳ５０ｃとデータの授受を行う。
データ読み出し時は内部の高並列化されたフラッシュメモリから３２ｋＢ分のページデータがページバッファーに出力される。
また、書き込み時はページバッファーのデータがフラッシュメモリの各バンクに分割して書き込まれる。
【０１３９】
本記憶装置５０Ｃの全体は、外部との入出力インターフェース回路５３ｃに内部バス５０ｃを介して上記大容量フラッシュメモリモジュール５１ｃと、強誘電体メモリよりなる比較的小容量の補助メモリ５２ｃが接続された構成となっている。
さらに、転送制御回路５４ｃを有しており、その内蔵ＲＡＭには３２ｋＢのページを管理単位としたアドレステーブル６０ｃが構築されている。
【０１４０】
外部からアクセスしたい所望のセクターアドレスが指定されると、制御回路５４ｃはその上位ビットから対応する論理ページアドレスを抽出し、アドレステーブル６０ｃを参照する。
アドレステーブル６０ｃは、図１６に示すように、各論理アドレス６１ｃと物理アドレス６２ｃの照応から成っており、テーブルを格納したＲＡＭ上では、そのメモリアドレスと格納データに対応させることができる。
すなわち、所望の論理アドレスに対応するＲＡＭ上のアドレスにアクセスすることで、照応する物理アドレスが取得できる。物理アドレス領域００００〜７ＦＦＦはメインメモリ５１ｃ内のページアドレスを示す。
一方、８０００以上の領域は補助メモリ５２ｃを示しており、たとえば物理アドレス８００１は補助メモリ５２ｃのアドレス０００１に所望のページが存在することを示している。転送制御回路５４ｃはこのテーブルを用いて所望のページの所在を判定する。また下位ビットはそのページ内のセクターの位置を決定する。
【０１４１】
データ読み出しにおいて、所望のページがメインメモリ５１ｃ上にある場合は、ＩＦ回路５３ｃはページバッファー６６ｃに出力された３２ｋＢのデータから任意のファイルセクター（容量は５１２Ｂ）を選択して、装置外部に出力する。
また、所望のページが補助メモリ５２ｃ上にある場合は、変換されたアドレスを用いて補助メモリが直接アクセスされ、ＩＦ回路５３ｃを介して所望のファイルセクターのデータが出力される。
【０１４２】
一方、データ書き込みにおいては、所望のページがメインメモリ５１ｃ上にある場合は、転送制御回路５４ｃはまず該当するページを補助メモリ５４ｃ上に移動する。
すなわち、ページデータはページバッファー６６ｃを介して補助メモリ５２ｃに転送され、さらにアドレステーブル６０ｃ内の対応論理アドレスに照応する物理アドレスが、補助メモリ５２ｃの保存先に書き換えられる。これによって、メインメモリ５１ｃ内の読み出し元領域は無効化される。
すなわち、ページデータは補助メモリ５２ｃに一時記憶としてコピーされたのではなく、実体が移動している。
【０１４３】
次に、補助メモリ５２ｃ上で、ファイルセクター単位のデータ更新が行われる。所望のページが補助メモリ５２ｃ上にある場合は、変換されたアドレスを用いて補助メモリが直接アクセスされ、書き込みが実行される。
【０１４４】
このようにして多くのページが更新に伴って補助メモリ５２ｃに移動したとする。こうして補助メモリ内の空きが無くなってくると、転送制御回路５４ｃは、今度はこれらのページをメインメモリ５１ｃに再度移動させる必要が生ずる。この際の移動は従来のキャッシュメモリからの書き戻しと異なり、メインメモリ上の任意の消去済み領域に行うことが可能である。
【０１４５】
本第４の実施形態では、転送制御回路５４ｃは、移動に先立って、メインメモリ５１ｃに最適転送先の問い合わせコマンドを送り、そこで取得したページアドレスにページデータを順次移動させる。
すなわち、補助メモリ５２ｃからページデータをメインメモリ５１ｃに順次転送し、アドレステーブル６０ｃをそれに応じて書き換える。
【０１４６】
ところで、メモリモジュール５１ｃは、通常のフラッシュメモリモジュールとしての機能の他に、本発明に関連して以下のような二つの機能を持っている。
１．ページ移動先となってページ書き込みが行われるに先立ち、最適な空き領域を検索する。
２．ページ移動元となって多くの無効領域が発生した際、それを新たな空き領域に回復させる。
【０１４７】
これらの作業のために、前述したブロックアドレステーブル６８ｃが活用される。以下にその詳細について説明する。テーブル６８ｃはメモリモジュール５１ｃレベルでの各消去ブロックの論理アドレス６９ｃに対応して、ブロックごとの状態をテーブル化したものである。
【０１４８】
たとえば記憶装置５０Ｃからデータを読み出す際、転送制御回路５４ｃは外部からの入力アドレスをページアドレステーブル６０ｃと照応させて、対応するページの物理アドレスを取得する。
所望のページがメモリモジュール５１ｃ上にある場合、それはメモリモジュール５１ｃに入力されるページアドレスとなる。ここでメモリモジュール５１ｃはその上位ビットからブロックアドレスを取得するが、そのアドレスはメモリモジュールレベルでは論理アドレスとなる。
【０１４９】
すなわち、上記ブロックアドレスは、再度ブロックアドレステーブル６８ｃで変換されて、照応する物理ブロックアドレス６９ｃ、その中の各ページの状態フラグ７０ｃ、さらにブロック書き換え回数７１ｃが取得される。物理ブロックアドレス６９ｃはメモリモジュール５１ｃの内部でブロックを選択するための所在位置を示している。
【０１５０】
状態フラグ７０ｃは該当ブロック中の全６４ページについて、それぞれが（０）消去済状態、（１）有効データが記憶されている状態、（２）無効化された状態、のいずれであるかを、各２ビットのフラグで記載している。
状態は（０）→（１）→（２）の順に推移する。（０）→（１）の推移はメモリモジュールに書き込みが成された際に該当ページについて更新される。（１）→（２）の推移はページが補助メモリ５２ｃに移動した際に発生するが、これは転送制御回路５４ｃから通常の読み出しと区別した移動コマンドが入力されるか、指定ページの無効化コマンドが入力されることに応じて更新される。状態（２）からは状態（０）への復帰は、後述のメモリモジュール内部での回復処理によって行われる。
【０１５１】
また、ブロック書き換え回数７１ｃには該当ブロックの通算書き換え回数が記録されている。フラッシュメモリの場合、ブロックの書き換え耐性は１０万回〜１００万回なので、１８ビット程度の数値で示される。
【０１５２】
上記メモリモジュールの付加機能の内、最適な空き領域検索は、たとえば以下のように実施される。
転送制御回路５４ｃは補助メモリ５２ｃからのページの移動に先立って、最適ページの検索コマンドをメモリモジュール５１ｃに入力する。それを受けたメモリモジュールの制御回路６７ｃはブロックアドレステーブル６８ｃを先頭からスキャンしていき、消去済のページ数が最も多く、無効ページ数が少ないブロックを最適ブロックとして選択する。そしてその先頭の消去済ページ領域の論理アドレスが、移動先の最適アドレスとして制御回路５４ｃに通知される。
【０１５３】
また、このように一旦対象ブロックを選択したら、それ以降の領域選択においては、そのブロックの消去済ページが全て有効ページとなるまで同じブロック内の消去済ページが順次選択され続ける。
【０１５４】
このようなアルゴリズムに沿って選択したページ領域に、補助メモリ５２ｃからのデータを順次書き込んで行けば、互いに関連の深いページが同一のブロックに集中するようになる。それらは再度更新される際にも一緒に補助メモリ５２ｃに移動する可能性が高く、その結果同一ブロックには無効ページも集中することになる。
それによって、次に述べる回復処理も効率良く実施でき、それらは再度消去済ページが集中したブロックを発生させる。
【０１５５】
次に、無効ページの回復について説明する。
【０１５６】
メモリモジュール５１ｃ上のページが更新され、それに伴って補助メモリ５２ｃにそれらが移動して、元の領域が無効化されるに従って、メモリモジュール５１ｃ内に無効領域が増加してくる。その領域には新たにデータを上書きできないので、ある時点でそこにデータ保存が可能になるように、回復処理を行う必要がある。
【０１５７】
図１７は、無効領域の回復処理の実行例を説明するための図である。
図１７においては、図６のメモリアレイ群を、簡略のため一つのフラッシュメモリ１０１と表現している。さらにメモリモジュール内には、図６と同様に、内部にブロックアドレステーブル１０４が構築されたフラッシュ制御回路１０３およびページバッファー１０２が設置されている。
【０１５８】
フラッシュメモリ１０１内の消去ブロック１０５では、二つの有効ページ１０７、１０８および一つの消去済ページ１０９を除いた全てのページが無効化されている。
一方、１０６は全てのページが消去された予備ブロックを示している。すなわち、メモリ１０１内にはブロックアドレステーブル１０４上のどの論理アドレスに照応しておらず、外部からアクセスできない予備ブロックが常に用意されている。
【０１５９】
ここで制御回路１０３は、有効ページ１０７、１０８をページバッファー１０２を介して、予備ブロック１０６の同じページ位置にコピーする。さらに内部のブロックアドレステーブル１０４を更新し、ブロック１０５にマッピングされていた論理アドレスの照応先をブロック１０６に変更する。これによって無効ページは全て消去済ページに回復し、新たなデータ書き込みが可能になる。
一方、ブロック１０５は消去された後予備ブロックとなる。
【０１６０】
このような処理は、無効化されたページが最も多く、かつ有効ページが少ないブロックを検索し、そのブロックに対して施すのが効率が良い。従ってメモリ内の空き領域が少なくなってきたら、移動先ページの検索時と同様にブロックアドレステーブルをスキャンし、最適ブロックを検出してそこに回復処理を施せば良い。
【０１６１】
なお、不揮発性の記憶装置の場合、ブロックアドレステーブル１０４の内容も保存される必要がある。これについては、たとえば各々のページデータに予備領域を設け、所属ブロックの論理アドレス、ページの状態、所属ブロックの消去回数をそこに記録しておく。これにより電源投入時に全ページをスキャンして、テーブルを再構築することが可能になる。さらに起動時間を短縮するには、フラッシュメモリ１０１内に特定の領域を設け、電源のオフ時にテーブル内容のバックアップを保存しておくのが望ましい。その場合は通常の起動時にはバックアップからテーブルを再構築し、電源瞬断等でバックアップがない場合や、中途で何らかの不整合が発生した場合には全ページをスキャンして、再度テーブルを構築しなおす。
【０１６２】
以上データの移動先のページ領域を効率良く選択する方法、および無効ページを効率良く回復させる方法について一例を示した。移動先ページや回復ブロックの選択については、たとえば書き換え回数も考慮し、これを平均化する方向で行う等、様々なアルゴリズムのバリエーションが考えられる。いずれにしてもこのような最適化を可能にする柔軟性は、本発明によって得られる大きな効果の一つである。
【０１６３】
また、図１５、図１７において示されたように、第４の実施形態における記憶装置内部では、
（１）ページアドレステ−ブル６０ｃを用いた、制御回路５４ｃによる記憶装置レベルでの転送制御、
（２）ブロックアドレステーブル６８ｃを用いた、制御回路６７ｃによるメモリモジュール５１ｃレベルでの各種制御、
の二者が、互いに通信し合いながら各々独立に実行されている。
このような構成は各種制御のアルゴリズムを単純化するので、本発明の効果を引き出すのに好適である。また、システムの動作自体の効率化にも寄与する。たとえばメモリモジュール５１内で無効ページの回復処理が行われている間でも、補助メモリ５２ｃ上のデータであれば、外部から自由にアクセスすることが可能である。
【０１６４】
なお、機能レベルでは上述のような区分がなされるが、実際にこのような装置を実現する場合には、チップ構成は強誘電体メモリチップ、フラッシュメモリチップ、コントローラチップの三者で構成され、コントローラチップ上にはインターフェース回路５３ｃ、転送制御回路５４ｃ、ページバッファー６６ｃ、制御回路６７ｃが複合的に搭載されるであろう。その場合上記（１）、（２）の制御用に各々異なるＣＰＵを用いるか、もしくは一つのＣＰＵをマルチスレッドで使用して、それぞれのスレッドを（１）、（２）の制御に充てれば制御が容易である。
【０１６５】
また、実際のコンピュータや家電機器上で本発明の記憶装置を導入する場合には、さまざまな構成上のバリエーションが考えられる。たとえばハードディスク、フラッシュメモリ、強誘電体メモリの三者を用いて本発明を階層的に適用することもでき、その場合、以下のような複数の形態が生じ得る。
・フラッシュメモリ（メイン）と強誘電体メモリ（補助）で構築された本発明の記憶装置がハードディスクのキャッシュメモリとして用いられる。
・フラッシュメモリ（メイン）と強誘電体メモリ（補助）で構築された本発明の記憶装置とハードディスクとでさらに相互にページデータを移動しあう「入れ子」型の記憶装置が構成されている。
・一つの記憶装置内に強誘電体メモリ、フラッシュメモリ、ハードディスクの三者を含み、強誘電体メモリとフラッシュメモリ間ではページ単位でデータを移動しあい、フラッシュメモリとハードディスク間では消去ブロック単位でデータを移動しあう。
このようにメモリの階層化に伴って多くのバリエーションが生じ得るが、いずれの場合にも本発明は適用される。
【０１６６】
第５実施形態
図１８は、本第５の実施形態に係る記憶装置を概念的に説明するための図である。
【０１６７】
本第５の実施形態では、記憶装置内に不揮発性のキャッシュメモリ１１１を用意し、フラッシュメモリ１１２から読み出され、更新されたデータは、そこに移動させて保存する。
その際元の消去ブロックにあったデータは無効化され、それ以外の非選択データはそのまま残される。キャッシュメモリ１１１内に既に移動したデータが再度アクセスを要求された場合は、フラッシュメモリ１１２ではなく、キャッシュメモリ１１１がアクセスされる。
【０１６８】
このようにして、記憶装置にページ単位でランダムなアクセスがなされると、互いに異なる複数の消去ブロック１１３、１１４、１１５から、ページデータ１１６、１１７、１１８が順次読み出され、更新されて、メモリ１１１内に蓄積されていく。
それらのページデータ群１１９は特定の基準に達した時点で、フラッシュメモリ１１２内の消去済の空きブロック１２０にまとめて書き戻される。
すなわち、元々異なる消去ブロックに存在していたページデータ１１６、１１７、１１８は、キャッシュメモリ１１１への移動を経て、同一の消去ブロック１２０内に再配置される。
【０１６９】
従来、各消去ブロック内のページデータを更新する都度に、ブロック内全ての非選択データについても読み出しと再書き込みを行っていたが、本第５の実施形態ではそのような作業は、見かけ上一切不要である。
フラッシュメモリ１１２にデータが書き込まれるのは、キャッシュメモリ１１１が満杯にならぬように、フラッシュメモリの消去済予備ブロックに、まとめて書き戻しを行う時のみである。全体としては１ページ分の更新に対して１ページ以下の書き戻しで済むことになる。
【０１７０】
ところで、フラッシュメモリ内の消去済ブロックが全てページデータで埋め尽くされてしまった場合、たとえば図１９のような対処を行うと良い。ここではページデータ群１１９ｂに蓄積されたページデータ群をフラッシュメモリ５２ｂに書き戻そうとしたが、消去済の空きブロックが無かったものとする。
【０１７１】
まず、多くのデータが更新、移動、無効化され、有効データの少ないブロックを選択する。たとえばそのようにしてブロック１１４ｂを選択した場合、ブロック１１４ｂ内の有効なページデータ１２３ｂを全てキャッシュメモリ１１１ｂ内の空き領域１２１ｂに移動する。
その後、ブロック１１４ｂを消去することで、ブロック１１４ｂが新たな消去済ブロックとなる。
これにより、データ群１１９ｂをブロック１１４ｂに移動することが可能になる。
【０１７２】
なお、このような作業を必要に応じて適時行うには、キャッシュメモリ１１１ｂ上には常に１ブロック分の空き領域があるのが望ましい。
すなわち、データ蓄積領域（データ群の蓄積領域１１９ｂ）と空き領域１２１ｂとを併せて、キャッシュメモリ１１１ｂは、少なくとも２ブロック分のデータ格納が可能な容量を持つことが望ましい。
【０１７３】
ところで、通常フラッシュメモリへの書き込みで最も効率が悪化するのは、ページデータが完全に分散配置されて、各ブロックに対して均一に１ページずつの書き替えが行われる場合である。
この際、従来は前述の如く、ブロック内の全データをバッファーに移動し、フラッシュメモリ内に再度書き込みを行うしかなかった。
【０１７４】
これに対して、本実施形態では、消去済の空きブロックが存在する限り、余分な書き込みは必要無い。
しかし、一旦空きブロックが無くなってしまうと、１ページずつ無効領域を持ったブロックから空きブロックを生成する必要が生じる。
したがって、従来同様多くのデータを余分に読み出して、フラッシュメモリに再書き込みすることになる。
【０１７５】
このようなケースでも、本第５の実施形態を採用すれば、従来より以下の点で有利である。
すなわち、当初異なるブロックに分散配置されていたページデータは、キャッシュメモリを介して同一ブロックに再配置されることで、効率の良い集中配置に移行する。
それによって互いに関連の深いページデータが同一ブロックに再配置されるので、それらが再度アクセスされたときには、同一ブロックから多くのページデータがキャッシュメモリに移動することになる。
その結果、そのブロックは無効領域を集中的に有した状態となり、そこから効率良く新規空きブロックを生成することができる。
【０１７６】
すなわち、本実施形態の記憶装置においては、互いに関連の深いページは、アクセスを経るに従って分散状態から集中状態に変わる。
したがって、アクセス効率の良いページ配置に変化する。従ってどのようなケースにおいても、従来よりはるかに効率のよいデータ書き込みが成されるようになる。
【０１７７】
図２０は、図３の従来例に対応させて、本第５の実施形態をマルチバンク型のフラッシュメモリに適用した例を説明するための図である。
【０１７８】
図２０に示すように、フラッシュメモリ部は１６個のアレイＡＲ０〜ＡＲ１５より構成されており、高速転送を実現するため、それらを同時動作させる。
この場合、データ書き込み時は、たとえばページ群２４ｂは実ページ領域として同時書き込みがなされる。
さらに、消去時はブロック群２１ｂは実消去ブロックとして同時消去される。
【０１７９】
ここで本実施形態においては、フラッシュメモリ上の実ページ領域２４ｂの一部が更新される場合、ページ群２４ｂのみが読み出され、所望箇所が更新されて、キャッシュメモリ２３ｂに格納される。
すなわち、実消去ブロック（ブロック群）２１ｂ全体のデータが読み出される訳ではなく、またすぐにフラッシュ側に書き戻される訳でもない。
再度、ページ群２４ｂの一部領域が更新される場合は、キャッシュ領域２２ｂが更新される。
しかし、別の実ページ領域２５ｂに更新指示があると、ページ群２５ｂのみが読み出され、所望箇所が更新されて、キャッシュメモリ２３ｂに格納される。
【０１８０】
このようにしてキャッシュメモリ２３ｂ内には、ランダムに選択され、更新された、互いに異なる実ページ領域のデータが順次蓄積されていく。
そしてたとえば、規定量を超えた実ページデータが格納されると、それらはまとめて、既に消去済の実消去ブロック２７ｂに書き戻される。
すなわち、キャッシュメモリ２３ｂを介して、実ページ領域の配置換えがなされ、異なる消去ブロックから読み出された複数のページ２４ｂ、２５ｂのデータが同一の消去ブロック２７ｂに再配置される。
【０１８１】
なお、この際、外から見たアドレスとデータの不整合が生じぬよう、内部でアドレス変換テーブルを用いた実ページ領域レベルでのアドレス変換が行われる。これによって元のページ領域２４ｂ、２５ｂのデータは無効化され、外から同じページアドレスにアクセスしても、消去ブロック２７ｂ内に再配置されたページがアクセスされるようになる。
【０１８２】
図２１は、本発明に係る記憶装置のさらに具体的な構成例を示す図である。
【０１８３】
図３２の記憶装置１３０は、並列動作が可能な４個の２５６ＭＢフラッシュメモリ１３１〜１３４、フラッシュメモリコントローラ１３５、強誘電体キャッシュメモリ１３６、入出力用ページレジスタ３７、インターフェース（ＩＦ）回路３８、および制御回路３９を含んで構成されている。
【０１８４】
各フラッシュメモリ１３１〜１３４は、４つの６４ＭＢメモリアレイ、たとえばバンクＢＫ０〜ＢＫ３を有しており、それぞれ独立したバンクとして並列動作が可能である。
各々のバンクＢＫ０〜ＢＫ３のページサイズは２ｋＢであり、消去ブロックサイズは６４ページをまとめた１２８ｋＢである。
すなわち、各バンクＢＫ０〜ＢＫ３は５１２個の消去ブロックを有している。さらに各バンクＢＫ０〜ＢＫ３はそれぞれページ格納用のラッチを有している。各バンクＢＫ０〜ＢＫ３の書き込み転送速度は１０ＭＢ／ｓ程度である。
【０１８５】
各バンクＢＫ０〜ＢＫ３にデータを書き込む際は、まずラッチ内に上記ページサイズに相当する２ｋＢづつのデータが転送され、その後所望のページアドレスに一括書き込みされる。
各バンクＢＫ０〜ＢＫ３は、各々独立にアクセスするページアドレスを指定でき、片側のバンクが書き込まれている間に反対のバンクのラッチにもデータを転送でき、さらに書き込みを開始できる。すなわち、４つのバンクＢＫ０〜ＢＫ３は並列に動作が可能である。
さらに４個のフラッシュメモリ１３１〜１３４も各々並列動作が可能であり、記憶装置全体では１６バンクを並列にアクセスできる。
たとえば一つのファイルを１６バンクに分割して並列に書き込めば、実質的には最大１６倍の速度で書き込みが可能である。
【０１８６】
フラッシュメモリコントローラ１３５はＥＣＣ符号化によるエラー訂正回路を備えるとともに、不良ブロックへのアクセスを回避するよう４個のフラッシュメモリ１３１〜１３４内の１６個のバンクに対して、独立してブロック単位のアドレス論物変換を行う。
すなわち、フラッシュメモリコントローラ１３５は、各バンク毎にアクセスするアドレスを変換するためのテーブルを持っており、外部から指定されたアドレス（論理アドレス）を不良ブロックを避ける形で内部アドレス（物理アドレス）に変換し、良品のブロックのみにアクセスさせる。
【０１８７】
上記１６バンクを構成する４個のフラッシュメモリ１３１〜１３４、およびフラッシュメモリコントローラ１３５は、それらを一体化して、不良ブロックの無い、ページサイズ（２ｋＢｘ１６＝）３２ｋＢ、消去ブロックサイズ（１２８ｋＢｘ１６＝）２ＭＢ、書き込み転送速度（１０ＭＢｘ１６＝）１６０ＭＢ／ｓのフラッシュメモリ１４０とみなすことが可能である。記憶容量は（２５６ＭＢｘ４＝）１ＧＢから、不良ブロックと後発不良対応用の予備ブロック等を除いた値である。
【０１８８】
記憶装置１３０内部は、上記３２ｋＢの実ページ単位でデータが各メモリ１３６、１４０、およびページレジスタ１３７間を転送される。
制御回路１３９はそれらの転送を管理する。
【０１８９】
記憶装置１３０外部とデータのやり取りをする場合には、所望のページデータがページレジスタ１３７に一旦転送され、ＩＦ回路１３８はそれを介して外部とのデータ通信を行う。
通常ファイルは５１２Ｂのセクター単位で通信されるので、本記憶装置外部からみた場合、各セクターアドレスの上位ビットは上記ページデータの論理アドレスであり、下位ビットはページ内３２ｋＢ中の所望セクターの位置を示すアドレスである。
【０１９０】
ページデータの転送制御回路１３９の内部には、図２２に示すように、ページ管理用のテーブル１４１が構築されている。
このテーブル１４１は、装置の論理ページアドレスに対応して、各ページデータがフラッシュメモリ１４０または強誘電体キャッシュメモリ１３６のどの場所に格納されているかを管理している。記憶容量が１ＧＢの場合、３２ｋＢのページは約３２ｋ枚格納される。したがって、１６ビットのアドレス空間で所在を管理でき、テーブル１４１のメモリ容量は５１２ｋｂｉｔ程度である。
【０１９１】
なお、本例では消去済の空きブロックを潤沢かつ適切に供給するために、予備のブロックを設けている。
すなわち、内部記憶容量の八分の一を隠蔽し、ページの論理アドレスを６ＦＦＦまでとしている。この場合、記憶装置の容量は約７５０ＭＢである。物理アドレスについては００００〜７ＦＦＦの空間をフラッシュメモリ１４０に、８０００〜ＦＦＦＦの空間を強誘電体キャッシュメモリ１３６に割り振っている（無論割り振られたアドレスの全てが使われる訳ではない）。
【０１９２】
このようなテーブルを設ければ、ページデータをフラッシュメモリ１４０または強誘電体キャッシュメモリ１３６のどのような位置に移動させても、テーブルを更新するのみで、ユーザーは所望のデータに的確にアクセスすることができる。
すなわち、ユーザーが所望のセクターアドレスを指定すれば、その上位ビットに相当する論理ページアドレスがテーブル上でアクセスされ、対応ページの所在位置が特定される。該当ページはページレジスタ１３７に転送され、セクターアドレスの下位ビットを元に、レジスタ中の所望のビットがアクセスされる。
【０１９３】
また、本記憶装置１３０においては、仕様上のメモリ容量（７５０ＭＢ）より、実際の内部記憶容量は大きい。この間にはアドレステーブルが介在し、冗長な記憶領域は、消去済空きブロックの潤沢かつ適切な供給等、アクセスの効率化、高速化のために使用されている。
【０１９４】
なお、転送制御回路１３９とフラッシュメモリコントローラ１３５は同一チップ上に搭載し、一つのＣＰＵで両者を制御することも可能である。この場合さらにＩ／Ｆ部１３８およびページレジスタ１３７も同一チップ上に搭載されるのが望ましく、これによって記憶装置は左記複合制御チップとＦｅＲＡＭチップおよび４個のフラッシュメモリチップの計６チップで構成されることになる。
【０１９５】
以下に、記憶装置１３０へのアクセス時の内部転送制御の例を説明する。
【０１９６】
Ａ．クラスターの読み出し；
１．ユーザーが４ｋＢのクラスターを読み出すため、その先頭セクターのアドレスとコマンドを入力したとする。７５０ＭＢのストレージでは、５１２Ｂ単位のセクターのアドレスは２１ビットで指定できる。その際上位１５ビットがページアドレスとなり、下位６ビットがページ中のセクターアドレスとなる。
【０１９７】
２．まずページアドレスからテーブル１４１がアクセス参照される。その結果、ページの所在が確定され、フラッシュメモリ１４０または強誘電体キャッシュメモリ１３６のいずれかより該当するページデータがページレジスタ１３７に転送される。
【０１９８】
３．次に下位６ビットのアドレスをもとに、ページレジスタ１３７内の該当するセクターデータが選択され、出力される。
【０１９９】
４．なお、クラスターを構成する後続の連続セクターは、全てページレジスタ１３７内に存在するので、以降そこから読み出しが行われる。
【０２００】
Ｂ．クラスターの書き込み；
１．ユーザーが４ｋＢのクラスターを書き込むため、その先頭セクターのアドレスとコマンドを入力したとする。読み出し時と同様に、そのアドレス２１ビット中上位１５ビットがページアドレスとなり、下位６ビットがページ中のセクターアドレスとなる。
【０２０１】
２．まずページアドレスからテーブル１４１がアクセス参照される。その結果、ページの所在が確定され、フラッシュメモリ１４０または強誘電体キャッシュメモリ１３６のいずれかより該当するページデータがページレジスタ１３７に転送される。
【０２０２】
３．次に下位６ビットのアドレスをもとに、ページレジスタ１３７内の該当するセクターデータが選択され、更新される。
【０２０３】
４．なお、クラスターを構成する後続の連続セクターは、全てページレジスタ１４０内に存在するので、引き続きページレジスタ１３７のデータが更新される。
【０２０４】
５．更新されたページデータは、それが強誘電体キャッシュメモリ１３６に存在していたものであれば、元の場所に上書きされる。
一方、フラッシュメモリ１４０に存在していたものであれば、強誘電体キャッシュメモリ３６の空き領域に書き込まれ、テーブル１４１が更新される。
すなわち、更新済ページデータはフラッシュメモリ１４０から強誘電体キャッシュメモリ１３６に移動し、フラッシュメモリ１４０内の元のページ領域は無効となる。
【０２０５】
６．その後他のクラスタ書き込みのため、１〜５の動作が繰り返される。これによって強誘電体キャッシュメモリ１３６内には更新済ページデータが蓄積されていく。
【０２０６】
７．強誘電体キャッシュメモリ１３６内に６４ページ、すなわち１ブロック分のデータが蓄積された時点で、それらのページデータは順次フラッシュメモリ１４０内の消去済の空きブロックに書き込まれる。同時にテーブル１４１が更新され、それによってページデータは強誘電体キャッシュメモリ１３６からフラッシュメモリ１４０に移動する。
【０２０７】
なお、誘電体キャッシュメモリ１３６からフラッシュメモリ１４０にページデータを書き戻す手順には多くのバリエーションが生じ得る。それらは１ブロック分一気に連続して行っても良いが、その間記憶装置はアクセス禁止になってしまう。
したがって、記憶装置１３０へのアクセスと内部の書き戻しを時分割でスケジューリングし、たとえば外部から１ページ分のアクセスがなされるごとに１ページずつ書き戻しても良い。
【０２０８】
また、強誘電体キャッシュメモリ１３６にページデータを書き込む際に、各ページごとに予備領域を設け、タイムスタンプ等ページの更新順序を示す記録を残しておくと、さらにアクセスの効率を向上させることができる。
この場合、フラッシュメモリ１４０への書き戻し時には更新の古いものから書き込んで行けば良い。これによって書き込み時のキャッシュへのヒット率が上昇し、フラッシュメモリへの実際の書き込み回数を減らすことができる。
【０２０９】
ところで、本実施形態では、キャッシュメモリ１３６に強誘電体メモリを使用した。この部分に不揮発性メモリを使用せず、たとえばＳＲＡＭやＤＲＡＭを使用しても、同様の処理でページデータを一時保存することは可能である。しかし以下の理由によって不揮発にした方が望ましい。
【０２１０】
ここが揮発性メモリの場合、それはあくまで一時的記憶にしか過ぎない。したがって、そこにページデータを移動させ、以前のフラッシュメモリ上のデータを無効化しても、それを全く復帰不可能な状態にするのは危険である。従ってテーブルには元のアドレスもバックアップとして残しておく必要があり、その管理は非常に複雑になる。
【０２１１】
電源を切ると揮発性メモリ内のページデータは消滅するので、その前に内部の有効データは必ずフラッシュメモリ内に書き戻さねばならない。したがって、実際の電源オフまでに時間がかかり、処理も煩雑である。またこれによって、消去したものの一部しか書き込まれない半端なブロックが生じやすくなる。
【０２１２】
モバイル機器の電池切れや、据え置き機器の落雷停電等、予想外の要因で電源が瞬断した場合、更新データが失われるのみならず、データ間に不整合が発生する危険がある。
【０２１３】
また、アドレステーブル１４１も、電源オフ時に保存される必要がある。これについてはたとえば以下のような手法が有効である。
【０２１４】
ページデータを各種メモリに保存する際に予備領域を設けて、各ページごとにその論理アドレスを共に保存する。これによってメモリ内の各ページをスキャンすることで、いつでもテーブルを再構築できる。
強誘電体メモリ１４０の中にテーブルそのものを構築したり、または電源オフ時に強誘電体メモリ内にテーブルを保存する。
【０２１５】
なお、不揮発性のキャッシュメモリとしては、強誘電体メモリ以外にも前述のような強磁性材料や相転移材料、または磁気抵抗効果材料を用いたメモリ等を使用することができる。
また、主媒体についてはフラッシュメモリが現時点で代表的であるが、それ以外にも書き換えに消去が必要で、かつ消去単位が通常のアクセス単位より大きい不揮発性メモリであれば、本発明を適用することができる。
【０２１６】
第６実施形態
図２３は、本第６の実施形態に係る情報処理システム（コンピュータシステム）の一実施形態を示すブロック図である。
【０２１７】
本実施形態の情報処理システム１５０は、ホスト装置（ＣＰＵ）１５１、半導体記憶装置１５２、強誘電体メモリ（ＦｅＲＡＭ）１５３、インターフェース回路群（Ｉ／Ｏ  ＩＦ）１５４、周辺機器１５５−１，１５５−２，１５５−３、およびシステムバス１５６を、主構成要素として有している。
【０２１８】
図２３のシステム１５０において、ＣＰＵ１５１にはシステムバス１５６を介して本発明に係る半導体記憶装置１５２が接続されている。
半導体記憶装置１５２は、状態通知ピン１５２ａの付加された通常のランダムアクセスメモリとして実装されている。ＮＯＲ型フラッシュとピン互換にし、通常のボードにそのまま装着することも可能である。
【０２１９】
本実施形態の半導体記憶装置１５２は、たとえば高速な第１のメモリとしての３２Ｍｂの強誘電体メモリ１５２１、低速な第２のメモリとしての１ＧＢのＮＡＮＤ型フラッシュメモリモジュール１５２２、および制御回路（ＣＴＬ）１５２３を同一パッケージ内に含んで構成されている。
【０２２０】
フラッシュメモリモジュール１５２２は、内部のメモリが１６バンクに分割されており、それらを並列動作させることで、ブロックデータの高速な転送が可能である。その他モジュール内部には、内部フラッシュメモリのブロック単位の論理アドレスを物理アドレスに変換し、エラーブロックのアクセスを禁止する機能回路や、ＥＣＣ回路で読み出したデータに符号化エラー訂正を施す機能回路が含まれている。
【０２２１】
制御回路１５２３は後述するように、半導体記憶装置１５２の内部における強誘電体メモリ１５２１とＮＡＮＤ型フラッシュメモリモジュール１５２２間のデータ転送を実行、制御する。
【０２２２】
半導体記憶装置１５２は、たとえば図４におけるＮＯＲ型フラッシュ３３、ＤＲＡＭ３４、およびＮＡＮＤ型フラッシュモジュール３６の三者の機能を統合したものとなっており、ＯＳカーネル、アプリケーションプログラム、ワークエリア、ユーザーデータの殆どはこの中に格納される。そのアドレスはシステムメモリ上にマッピングされ、不揮発な大容量ランダムアクセスメモリとして扱われる。
【０２２３】
さらに、本システム１５０においては、システムバス１５６には比較的小容量の強誘電体メモリ１５３が接続されており、またインタフェース回路群１５４を介して各種周辺機器１５５−１〜１５５−３が接続されている。
【０２２４】
本システム１５０におけるホスト装置１５１のメモリアクセス手順は以下の通りである。
【０２２５】
ホスト装置１５１が半導体記憶装置１５２にアクセスした場合、半導体記憶装置１５２内の制御回路１５２３は強誘電体メモリ１５２１内に所望のデータかそのコピーがあれば、そこにアクセスする。したがって、外部からは通常のランダムアクセスメモリとして使用できる。
もし、所望のデータかそのコピーが無ければ、制御回路１５２３は通知ピン１５２ａにビジー信号を送り、必要なデータをフラッシュメモリモジュール１５２２から強誘電体メモリ１５２１に転送する。
【０２２６】
ホスト装置１５１は、ビジー信号を受けると割り込みを発生させ、別途設けられた強誘電体メモリ１５３に記載された割り込みハンドラのコードを実行する。
これによって上記メモリアクセスは中断され、ホスト装置１５１は通知ピン１５２ａの状態を監視しつつ待機状態に入る。半導体記憶装置１５２内の転送処理が終了すると、通知ピン１５２ａはレディー状態となり、メモリアクセスが再開される。
【０２２７】
すなわち、半導体記憶装置１５２は、通常はランダムアクセスメモリとして問題なく使用できるが、所望のデータが強誘電体メモリ１５２１内になければ割り込みと待機を要求する。その処理のために最低限必要となる割り込みベクター、スタック、割り込みハンドラ−等のためのメモリ領域が、別途設けられた小容量の強誘電体メモリ１５３内に格納されている。
これらの総容量は通常数十ｋＢであり、ここでは小容量の強誘電体メモリに格納したが、コード格納にはマスクＲＯＭやＥＰＲＯＭを、スタックにはＳＲＡＭ等を用いてもよく、それらはホスト装置（ＣＰＵ）１５１やインターフェース回路群１５４のＩＦ回路チップの中に内蔵しても良い。
【０２２８】
または、小容量の強誘電体メモリ１５３は半導体記憶装置１５２と同一パッケージ内に一体化させることも可能である。
図２４は、小容量の強誘電体メモリ１５３は半導体記憶装置１５２と同一パッケージ内に一体化させた構成例を示す図である。
図２４において、記憶装置１６０は、大容量記憶部１６１、小容量誘電体メモリ１６２、スイッチ１６３，１６４、強誘電体メモリ１６５、制御回路１６６、ＮＡＮＤ型フラッシュメモリ１６７、外部端子１６８，１６９、共用アドレス線１７０、共用バス（ＢＵＳ）１７１を有する。
【０２２９】
図２４において、記憶装置１６０は図２３５の１５１に相当する大容量記憶部１６１を含み、この記憶部１６１は強誘電体メモリ１６５、制御回路１６６、ＮＡＮＤ型フラッシュモジュール１６７を含んで構成されている。さらに、記憶装置１６０は割り込みハンドラやスタックを格納するための小容量強誘電体メモリ１６２を含んで構成されている。
記憶装置１６０においては、アドレス０から上位２５６ｋｂ（３２ｋＢ）分のアドレス領域は小容量強誘電体メモリ１６２にマッピングされ、それ以降は大容量記憶部１６１にマッピングされる。すなわち、記憶装置１６０が１ＧＢの容量を持つとすれば、アドレスＡ１４−Ａ２８の全てが０の場合は強誘電体メモリ１６２がアクセスされ、それ以外は記憶部１６１がアクセスされる。
ここで記憶部１６１のアドレス端子とＩＯ端子は、外部端子１６８，１６９、および小容量強誘電体メモリ１６２に接続された共用アドレス線１７０、並びに共用ＢＵＳ１７１から、スイッチ１６３および１６４によって適時切断されるようになっている。すなわち、記憶部１６１内において強誘電体メモリ７５とＮＡＮＤ型フラッシュモジュール１６７との間でデータ転送が行われ、ビジー信号が送出されている間、記憶部１６１内のバスやアドレス線は内部転送回路１６６の制御のもとで内部転送に使用されているので、共用のアドレス線やバスから切断される。これによって記憶部１６１内で所望の転送を実行しつつ、外部からは小容量強誘電体メモリ１６２内の割り込みベクターに問題なくアクセスできる。
【０２３０】
このような構成を採用すれば、ユーザーは記憶装置１６０のみで全てのメモリを代替することができる。またこの場合、小容量強誘電体メモリ１６２は記憶部１６１の強誘電体メモリ１６５と同一のチップに同一プロセスで作り込むことができるので、殆どコストアップなしに搭載することが可能である。
【０２３１】
図２５は、本第６の実施形態の半導体記憶装置の内部構成例をより具体的に示す図である。
図２６（Ａ），（Ｂ）は、図２５の転送制御回路におけるアドレス変換テーブルおよびキャッシュテーブルの一例を示す図である。
図２５において、１８０は内部バス、１８１はメインメモリ、１８２は補助メモリ、１８３は入出力インターフェース回路、１８４は転送制御回路、１８５〜１８７はページ、１８８はページ群、１８９は消去済みの空きブロック、１９０はアドレス変換テーブル、１９１はキャッシュテーブルをそれぞれ示している。
まず、図２６（Ａ）において、１９０１は論理アドレスを、１９０２は物理アドレスをそれぞれ示し、図２６（Ｂ）において、１９１１はエントリを、１９１２はページアドレスをそれぞれ示している。
【０２３２】
以下、図２５および図２６（Ａ），（Ｂ）に関連付けて、強誘電体メモリ内のデータ有無の判定手法と、フラッシュメモリモジュールと強誘電体メモリ間のデータ移動手順を説明する。
【０２３３】
外部との入出力インターフェース回路１８３には内部バス１８０を介してＮＡＮＤ型フラッシュメモリモジュールよりなる大容量のメインメモリ１８１と、強誘電体メモリよりなる補助メモリ１８２が接続されており、さらに転送制御回路１８４が設置されている。
メインメモリ１８１は内部が１６バンクに高並列化されており、３２ｋＢのデータ群が単位ページとして同時にアクセスされ、内部バス１８０にシリアルに入出力転送される。
また、装置内部には左記ページを管理単位としたアドレス変換テーブル１９０が構築されている。これはたとえば転送制御回路１８４に内蔵されたＳＲＡＭの中に構築される。
さらに、転送制御回路１８４にはキャッシュテーブル１９１が構築されており、これはたとえば内蔵された連想メモリの中に格納されている。
【０２３４】
転送制御回路１８４は外部から入力された論理アドレスを、アドレス変換テーブル１９０およびキャッシュテーブル１９１に照合し、その結果に従って、補助メモリ１８２のデータをランダムアクセスし、または必要に応じてメインメモリ１８１と補助メモリ１８２の間でページ単位の双方向データ転送を行う。
【０２３５】
外部からアクセスしたい所望のデータのアドレスが指定されると、転送制御回路１８４はその上位ビットから対応する論理ページアドレスを抽出し、アドレス変換テーブル１９０を参照する。
【０２３６】
アドレス変換テーブル１９０は各論理アドレス１９０１と物理アドレス１９０２の照応から構成されており、テーブルを格納したＲＡＭ上では、所望の論理アドレスに対応するＲＡＭ上のアドレスにアクセスすることで、照応する物理アドレスが取得できる。
物理アドレス空間においては、領域０ｘ００００〜０ｘ７ＦＦＦはメインメモリ１８１内のページアドレスを示す。
一方、０ｘ８０００以上の領域は補助メモリ１８２を示しており、たとえば物理アドレス０ｘ８００１は補助メモリ１８２のアドレス０ｘ０００１に所望のページが存在することを示している。
【０２３７】
転送制御回路１８４は、アドレス変換テーブル１９０を用いて所望のページの所在を判定し、まず補助メモリ１８２にデータが格納されているか否かを判定する。
もし、データが格納されていない場合は、今度はキャッシュテーブル１９１を参照し、今度は補助メモリ１８２内に所望データのコピーが格納されているか否かを判定する。
【０２３８】
キャッシュテーブル１９１には、論理アドレスをＴＡＧとして、そのエントリ１９１１に対応する補助メモリ１８２上のページアドレス１９１２の照応が格納されている。
たとえば図の例では、論理ページアドレス０ｘ０００１へのアクセス要求があった場合、アドレス変換テーブル１９０において対応する物理アドレスは０ｘ００Ｆ１であり、データ本体はメインメモリ１８１内にあることが解る。
この場合、今度はキャッシュテーブル１９１において、論理アドレス０ｘ０００１に一致するＴＡＧのエントリが検索される。ここにおいて強誘電体補助メモリ１８２のアドレス０ｘ０００２に所望のデータを含むページのコピーが格納されていることが判明する。
【０２３９】
これらの判定は、外部から半導体記憶装置１５２を見たときに、そのアクセス速度を極力阻害せぬよう高速に行われるのが望ましい。
したがって、たとえばアドレス変換テーブル１９０にはＳＲＡＭを、キャッシュテーブル１９１には連想メモリを使用する。
必要があればアドレス変換テーブル１９０とキャッシュテーブル１９１の参照は同時並行して実施しても良い。これによって、補助メモリ１８２にデータかそのコピーがある限りは、本記憶装置は通常のランダムアクセスメモリと全く同様に扱える。
【０２４０】
上述の如き半導体記憶装置における顕著な特徴は、高速メモリである強誘電体補助メモリ１８２内に、メインメモリ１８１におけるデータのコピーのみならず、データの実体が存在していることである。その管理はアドレス変換テーブル１９０によって行われている。
【０２４１】
たとえば、上記論理アドレス０ｘ０００１のデータについて、アドレス変換テーブル１９０を更新し、対応する物理アドレスを強誘電体補助メモリ１８２上のそのコピーの格納箇所に相当する０ｘ８００２に書き換え、キャッシュテーブル１９１上のエントリを削除したとする。
これによって、コピー元であるメインメモリ１８１上の０ｘ００Ｆ１のページデータは無効化され、以降はコピーデータの側がアクセスされるようになる。すなわち、データの実体となる。すなわちメインメモリ１８１から補助メモリ１８２にデータの実体が移動したことになる。
【０２４２】
一旦補助メモリ１８２に実体の移動したデータは、その値を更新しても、もはやその結果をメインメモリ１８１側に反映させる必要は無い。
したがって、特に書き込みアクセスの場合には、データを移動することで従来のキャッシュに必須だった書き戻しが不要になり、それに伴うオーバーヘッドを大幅に削減できる。
【０２４３】
また、このようにして互いに異なる消去ブロックから読み出されたページ１８５〜１８７が次々に更新され、補助メモリ１８２に移動したとする。こうして補助メモリ内の空きが無くなってくると、転送制御回路１８４は、今度はこれらのページをメインメモリ１８１に再度移動させる必要が生ずる。この際の移動は、通常のキャッシュメモリからの書き戻しと異なり、メインメモリ上の任意の消去済み領域に行うことが可能である。
たとえば、消去済の空きブロック１８９にまとめて移動させればよく、通常のようにそれぞれのページに対して読み出し元のブロック消去やブロック全体のデータ退避、再書き込み等を行う必要が無い。すなわち、補助メモリ１８２からページ群１８８のみをメインメモリ１８１のブロック１８９に順次転送し、アドレス変換テーブル１９０をそれに応じて書き換えるのみで良い。
【０２４４】
ところで、本実施形態における補助メモリ１８２には揮発性メモリを使うことも可能であるが、データの消失は許されない。
したがって、たとえばメインメモリ１８１内に特定の領域を設けて、電源オフ時にそこに内容を退避する必要がある。さらに電源オン時には退避したデータを復元させなければならず、起動や終了に余分な時間がかかる上、電源瞬断にも脆弱である。
したがって、補助メモリ１８２はフラッシュメモリよりアクセスが高性能な不揮発性メモリであることが望ましく、具体的には強誘電体材料、相変化材料、強磁性材料または磁気抵抗効果材料を用いたメモリであることが望ましい。
【０２４５】
さらに、アドレス変換テーブル１９０も消滅は許されない。たとえば、各ページの論理アドレスをページ毎の予備領域に保存しておけば再構築は可能だが、記憶装置内の全ページのスキャンには長時間を要する。したがって、アドレス変換テーブル１９０のデータは不揮発性の補助メモリ１８２にバックアップ保存されるのが望ましい。
【０２４６】
また、補助メモリ１８２に移動したデータは、その後補助メモリ側の空きがなくなると、上述したように、再度メインメモリ１８１側に移動させる必要が生ずる。
一方、補助メモリ１８２にコピーされたデータは、それが更新されていなければ破棄するのみで良い。したがって、ボトルネックとなるメインメモリ（特にフラッシュメモリ）への書き込みを最小限に抑えるためには以下のように移動とコピーを使い分けるのが望ましい。
【０２４７】
すなわち、読み出しにおいてデータ転送の必要が生じた場合は、通常のキャッシュと同様にメインメモリから補助メモリにコピーを転送し、元のデータは残しておく。
一方、書き込みにおいてデータ転送の必要が生じた場合は、データの実体を移動する。
また、読み出し用に転送されたコピーでも、それが後に書き換えられれば書き戻しが必要になる。この場合は実体を移動させて書き戻しを不要にする。この操作は前述したように、アドレス変換テーブルの書き換えとキャッシュエントリの削除のみで実施することができる。
【０２４８】
次に、本実施形態の読み出しおよび書き込みアクセスの場合における半導体記憶装置内でのデータ操作手順について説明する。
【０２４９】
まず、読み出しアクセスの場合を説明する。
図２７は、読み出しアクセスの場合における半導体記憶装置内でのデータ操作を説明するためのフローチャートである。
【０２５０】
（Ｒ１）：外部からアクセスコマンドとアドレスが入力されると、そのページアドレスに相当する上位ビットをもとにアドレス変換テーブル１９０が参照される。
（Ｒ２）：補助メモリ１８２内にデータがあるか否かが判別される。
（Ｒ３）：変換されたアドレスが補助メモリ１８２上を指していれば、この変換後アドレスと下位ビットから補助メモリ１８２がアクセスされる。
（Ｒ４）：変換されたアドレスがメインメモリ１８１上を指していれば、今度はキャッシュテーブルが参照され、ＴＡＧの検索が行われる。
（Ｒ５）：補助メモリ１８２内にコピーがあるか否かが判別される。
（Ｒ３）：キャッシュがヒットし、補助メモリ１８２上のコピーページのアドレスが取得されれば、このアドレスと下位ビットから補助メモリ１８２がアクセスされる。
（Ｒ６）キャッシュがミスヒットした場合は、通知ピンがビジー状態となり、外部アクセスを禁止して、メインメモリ１８１から補助メモリ１８２へのページデータ転送が行われる。もし補助メモリ１８２に十分な空き領域がなければ、補助メモリ１８２内の既存のコピーページが破棄されるか、もしくは補助メモリ１８２内の既存データがメインメモリ１８１内に移動転送される。
（Ｒ７）：データ転送が完了したか否かが判別される。
（Ｒ８）：データ転送が完了すれば、キャッシュテーブル１９１が更新されて、新たなＴＡＧエントリが追加される。その後補助メモリ１８２がアクセスされ、通知ピンがレディー状態に変わる。
【０２５１】
次に、書き込みアクセスの場合を説明する。
図２８は、書き込みアクセスの場合における半導体記憶装置内でのデータ操作を説明するためのフローチャートである。
【０２５２】
（Ｗ１）：外部からアクセスコマンドとアドレスが入力されると、そのページアドレスに相当する上位ビットをもとにアドレス変換テーブル１９０が参照される。
（Ｗ２）：補助メモリ１８２内にデータがあるか否かが判別される。
（Ｗ３）：変換されたアドレスが補助メモリ１８２上を指していれば、この変換後アドレスと下位ビットから補助メモリ１８２がアクセスされ、所望のデータが更新される。
（Ｗ４）変換されたアドレスがメインメモリ１８１上を指していれば、今度はキャッシュテーブル１９１が参照され、ＴＡＧの検索が行われる。
（Ｗ５）：補助メモリ１８２内にコピーがあるか否かが判別される。
（Ｗ６）：キャッシュがヒットし、補助メモリ１８２上のコピーページのアドレスが取得されれば、アドレス変換テーブル１９０が更新され、所定の論理ページアドレスに対する物理アドレスが上記補助メモリ上のアドレスに変更される。さらにキャッシュのエントリが削除される。これによってデータの移動が行われ、補助メモリ上のコピーページが実体になる。
（Ｗ３）：さらに上記アドレスと下位ビットから補助メモリがアクセスされて、所望のデータが更新される。
（Ｗ７）：キャッシュがミスヒットした場合は、通知ピンがビジー状態となり、外部アクセスを禁止して、メインメモリ１８１から補助メモリ１８２へページデータの転送が行われる。もし補助メモリ１８２に十分な空き領域がなければ、補助メモリ１８２内の既存のコピーページが破棄されるか、もしくは補助メモリ１８２内の既存データがメインメモリ１８１内に移動転送される。
（Ｗ８）：データ転送が完了したか否かが判別される。
（Ｗ９）データ転送が完了すれば、アドレス変換テーブル１９０が更新され、所定の論理ページアドレスに対する物理アドレスが上記補助メモリ上の転送先アドレスに変更される。これによってデータの移動が行われ。その後補助メモリ１８２がアクセスされ所望のデータが更新される。その後通知ピンがレディー状態に変わる。
【０２５３】
以上説明したように、本実施形態によれば、たとえば強誘電体メモリに代表されるＮＶＲＡＭと、ＮＡＮＤ型フラッシュメモリに代表される安価な大容量不揮発性メモリを組み合わせ、見かけ上ランダムアクセスが可能で、かつ高速、大容量な不揮発性メモリを実現することができる。
また、所望のデータがＮＶＲＡＭにあるか否かの判定にアドレス変換テーブルを用いることで、両メモリ間で必要に応じてデータの移動を可能にし、これによってフラッシュメモリの書き換えに伴うオーバーヘッドを最小化し、高速な動作を実現することが可能である。
また、本発明によるメモリをバッテリーバックアップのモバイル機器に採用すれば、待機時のデータ保持に電力消費を必要としないので、バッテリー寿命を大幅に延ばすことができる。またシステム構成が単純になる上、殆どのメモリ部は安価なＮＡＮＤ型フラッシュメモリで置き換えることができるので、総合的なメモリコストも低減できる。
【０２５４】
なお、本実施形態においては、第１のメモリたるＮＶＲＡＭには強誘電体メモリを、第２のメモリたるメインメモリにはＮＡＮＤ型フラッシュメモリを例に説明するが、本発明はそれに限定されるものでは無い。
たとえば第１のメモリにはその他のＮＶＲＡＭの他、さらには揮発性メモリも使用できる。また、第２のメモリにはＮＡＮＤ型以外の各種フラッシュメモリも使用できる。
さらには上記不揮発性メモリ以外でも、一般に領域に依存してアクセス性能を劣化させる制約を持った安価な半導体メモリをメインメモリとした記憶装置であれば、本発明を採用することにより、コストと性能の両立において大きな効果を発揮する。
【図面の簡単な説明】
【０２５５】
【図１】ＮＡＮＤ型フラッシュメモリの内部構成例を示す図である。
【図２】強誘電体メモリの構成例を示す回路図である。
【図３】記憶装置を構成するフラッシュメモリの概念図を示す図である。
【図４】多種の異なるメモリを用途ごとに使い分けた情報処理システム（コンピュータシステム）の構成例を示すブロック図である。
【図５】ＮＡＮＤ型フラッシュメモリの書き換え動作を概念的に示す図である。
【図６】本発明に係る記憶装置を第１の実施形態を示す構成図である。
【図７】図６のページデータの転送制御回路の内部構成例を示す図である。
【図８】補助メモリの管理手法の具体例を示す図である。
【図９】補助メモリの第２の管理手法の具体例を示す図である。
【図１０】図９の状態からインデックス”０ｘ０１”のノードを先頭に付け替えた例を示す図である。
【図１１】本発明に係る記憶装置を第２の実施形態を示す構成図である。
【図１２】図１１のページデータの転送制御回路の内部構成例を示す図である。
【図１３】本発明に係る記憶装置を第３の実施形態を示す構成図である。
【図１４】図１３のページデータの転送制御回路の内部構成例を示す図である。
【図１５】本発明に係る記憶装置を第４の実施形態を示す構成図である。
【図１６】図１５のページデータの転送制御回路の内部構成例を示す図である。
【図１７】第４の実施形態における無効領域の回復処理の実行例を説明するための図である。
【図１８】第５の実施形態に係る記憶装置を概念的に説明するための図である。
【図１９】本第５の実施形態に係る予備簿ロックの生成例を説明するための図である。
【図２０】マルチバンク・フラッシュメモリへの応用例を説明するための図である。
【図２１】本第５の実施形態に係る記憶装置のさらに具体的な構成例を示す図である。
【図２２】図２１のページデータの転送制御回路の内部構成例を示す図である。
【図２３】第６の実施形態に係る情報処理システム（コンピュータシステム）の一実施形態を示すブロック図である。
【図２４】小容量の強誘電体メモリと半導体装置とを同一パッケージ内に一体化させた構成例を示す図である。
【図２５】本実施形態の半導体記憶装置の内部構成例をより具体的に示す図である。
【図２６】図２５の転送制御回路におけるアドレス変換テーブルおよびキャッシュテーブルの一例を示す図である。
【図２７】読み出しアクセスの場合における半導体記憶装置内でのデータ操作を説明するためのフローチャートである。
【図２８】書き込みアクセスの場合における半導体記憶装置内でのデータ操作を説明するためのフローチャートである。
【符号の説明】
【０２５６】
５０，５０Ｂ，５０Ｃ，８０…記憶装置、５１，５１ｂ，５１ｃ，８１…メインメモリ、５２，５２ｂ，５２ｃ，８２…補助メモリ、５３，５３ｂ，５３ｃ，８３…インターフェース回路（Ｉ／Ｆ）、５４，５４ｂ，５４ｃ，８４…転送制御回路、ＢＳ５０，ＢＳ５０ｂ，ＢＳ５０ｃ，ＢＳ８０…内部バス、１３０…記憶装置、１３１〜１３４…フラッシュメモリ、１３５…フラッシュメモリコントローラ、１３６…強誘電体キャッシュメモリ、１３７…入出力用ページレジスタ、１３８…インターフェース（ＩＦ）回路、１３９…制御回路、１５０…情報処理システム、１５１…ホスト装置（ＣＰＵ）、１５２…半導体記憶装置、１５２１…強誘電体メモリ（第１のメモリ）、１５２２…ＮＡＮＤ型フラッシュメモリモジュール（第２のメモリ）、１５２３…制御回路、１５２ａ…通知ピン、１５３…制御回路、１５４…インタフェース回路群、１５５−１〜１５５−３…周辺機器、１５６…システムバス、１８１…メインメモリ、１８２…補助メモリ、１８３…入出力インタフェース回路、１８４…転送制御回路、１９０…アドレス変換テーブル、１９０１…論理アドレス、１９０２…物理アドレス、１９１…キャッシュテーブル、１６０…記憶装置、１６１…大容量記憶部、１６２…小容量誘電体メモリ、１６３，１６４…スイッチ、１６５…強誘電体メモリ、１６６…制御回路、１６７…ＮＡＮＤ型フラッシュメモリ、１６８，１６９…外部端子、１７０…共用アドレス線、１７１…共用バス（ＢＵＳ）。
【図１】
2006236304.tif 000003
【図２】
2006236304.tif 000004
【図３】
2006236304.tif 000005
【図４】
2006236304.tif 000006
【図５】
2006236304.tif 000007
【図６】
2006236304.tif 000008
【図７】
2006236304.tif 000009
【図８】
2006236304.tif 000010
【図９】
2006236304.tif 000011
【図１０】
2006236304.tif 000012
【図１１】
2006236304.tif 000013
【図１２】
2006236304.tif 000014
【図１３】
2006236304.tif 000015
【図１４】
2006236304.tif 000016
【図１５】
2006236304.tif 000017
【図１６】
2006236304.tif 000018
【図１７】
2006236304.tif 000019
【図１８】
2006236304.tif 000020
【図１９】
2006236304.tif 000021
【図２０】
2006236304.tif 000022
【図２１】
2006236304.tif 000023
【図２２】
2006236304.tif 000024
【図２３】
2006236304.tif 000025
【図２４】
2006236304.tif 000026
【図２５】
2006236304.tif 000027
【図２６】
2006236304.tif 000028
【図２７】
2006236304.tif 000029
【図２８】
2006236304.tif 000030