(57)【要約】【課題】メモリコントローラ内の制御メモリを削減する不揮発性メモリを提供すると共に、該不揮発性メモリへの読み書き制御を行うメモリコントローラと、該不揮発性メモリを備えた不揮発性記憶装置及び不揮発性記憶システムを提供すること。【解決手段】不揮発性メモリ２０のメモリセルアレイ２１を複数のバンクに分割して、メモリセルアレイ２１内に制御メモリ領域をアロケートする。さらに、不揮発性メモリ２０とメモリコントローラ１０をアドレス線とデータ線と制御線によって接続する。ここでアドレス線を用いて、バンク選択アドレスと、バンク内アドレスとをそれぞれ互いに異なる期間に入力する。アドレス制御回路３３は入力されたバンク選択アドレスとバンク内アドレスとを結合して、メモリセルアレイ２１内の任意の位置を指定するメモリセルアレイアドレスを形成する。【選択図】図４
2007317078.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイと、
外部からデータ及びアドレスを受信して前記不揮発性メモリセルアレイにデータを書き込み、また前記不揮発性メモリセルアレイからデータを読み出して外部へ送信する入出力制御部と、を具備し、
前記入出力制御部は、
互いに異なる期間に入力されたバンクを指定するバンク選択アドレス及びバンク内アドレスを用いてメモリセルアレイアドレスを生成し、前記不揮発性メモリセルアレイのアドレスとするアドレス制御回路を有する不揮発性メモリ。
【請求項２】
前記アドレス制御回路は、外部から送られた信号に基づいて前記メモリセルアレイアドレスのビットの割当を変更して、前記バンクのサイズを変更する請求項１に記載の不揮発性メモリ。
【請求項３】
前記メモリセルアレイは、不揮発性ＲＡＭである請求項１または２に記載の不揮発性メモリ。
【請求項４】
記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイを備える不揮発性メモリに対してデータの書き込み及び読み出しを行うメモリコントローラであって、
前記制御情報を参照して外部から送られた論理アドレスを前記不揮発性メモリセルアレイ内の記憶位置を示す物理アドレスに変換し、データの書き込み又は読み出しの対象となるバンクを前記複数のバンクから選択するアドレス管理部と、
前記不揮発性メモリセルアレイに対するデータの書き込み及び読み出しにおいて、データを送受信し、前記アドレス管理部が出力した物理アドレスを、バンクを特定するバンク選択アドレス及びバンク内アドレスに分けて、互いに異なる期間に前記不揮発性メモリに出力する読み書き制御部と、を具備するメモリコントローラ。
【請求項５】
前記アドレス管理部は、前記メモリセルアレイにデータを書き込み、書き込みが正常に完了した後に前記制御情報を更新する請求項４に記載のメモリコントローラ。
【請求項６】
前記アドレス管理部は、前記メモリセルアレイを少なくともユーザーのデータを記憶する第１の領域及び前記第１の領域の代わりとして用いられる第２の領域に分けて認識し、前記第１の領域のバンクへの書き込み時にエラーが発生した際に、該バンクに書き込む予定であったデータを書き込む新たなバンクを前記スペア領域のバンクから指定する請求項４または５に記載のメモリコントローラ。
【請求項７】
前記読み書き制御部は、前記バンクのサイズを指示する信号を前記不揮発性メモリに出力することを特徴とする請求項４から６のいずれか１項に記載のメモリコントローラ。
【請求項８】
前記メモリセルアレイは、不揮発性ＲＡＭである請求項４から７のいずれか１項に記載のメモリコントローラ。
【請求項９】
不揮発性メモリと、メモリコントローラとを具備し、外部からのアクセス指示に応じてデータの読み出し及び書き込みを行う不揮発性記憶装置であって、
前記不揮発性メモリは、
記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイと、
外部からデータ及びアドレスを受信して前記不揮発性メモリセルアレイにデータを書き込み、また前記不揮発性メモリセルアレイからデータを読み出して外部へ送信する入出力制御部と、を有し、
前記入出力制御部は、
互いに異なる期間に入力されたバンクを指定するバンク選択アドレス及びバンク内アドレスを用いてメモリセルアレイアドレスを生成し、前記不揮発性メモリセルアレイのアドレスとするアドレス制御回路を有し、
前記メモリコントローラは、
前記制御情報を参照して外部から送られた論理アドレスを前記不揮発性メモリセルアレイ内の記憶位置を示す物理アドレスに変換し、データの書き込み又は読み出しの対象となるバンクを前記複数のバンクから選択するアドレス管理部と、
前記不揮発性メモリセルアレイに対するデータの書き込み及び読み出しにおいて、データを送受信し、前記アドレス管理部が出力した物理アドレスを、バンクを特定するバンク選択アドレス及びバンク内アドレスに分けて、互いに異なる期間に前記不揮発性メモリに出力する読み書き制御部と、を有する不揮発性記憶装置。
【請求項１０】
前記アドレス制御回路は、外部から送られた信号に基づいて前記メモリセルアレイアドレスのビットの割当を変更して、前記バンクのサイズを変更する請求項９に記載の不揮発性記憶装置。
【請求項１１】
前記アドレス管理部は、前記メモリセルアレイにデータを書き込み、書き込みが正常に完了した後に前記制御情報を更新する請求項９または１０に記載の不揮発性記憶装置。
【請求項１２】
前記アドレス管理部は、前記メモリセルアレイを少なくともユーザーのデータを記憶する第１の領域及び前記第１の領域の代わりとして用いられる第２の領域に分けて認識し、前記第１の領域のバンクへの書き込み時にエラーが発生した際に、該バンクに書き込む予定であったデータを書き込む新たなバンクを前記スペア領域のバンクから指定する請求項９から１１のいずれか１項に記載の不揮発性記憶装置。
【請求項１３】
前記読み書き制御部は、前記バンクのサイズを指示する信号を前記不揮発性メモリに出力することを特徴とする請求項９から１２のいずれか１項に記載の不揮発性記憶装置。
【請求項１４】
前記メモリセルアレイは、不揮発性ＲＡＭである請求項９から１３のいずれか１項に記載のメモリコントローラ。
【請求項１５】
データの読み出し及び書き込みを指示するアクセス装置と、不揮発性メモリ及びメモリコントローラを備える不揮発性記憶装置と、を具備する不揮発性記憶システムであって、
前記不揮発性メモリは、
記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイと、
前記アクセス装置からデータ及びアドレスを受信して前記不揮発性メモリセルアレイにデータを書き込み、また前記不揮発性メモリセルアレイからデータを読み出して前記アクセス装置へ送信する入出力制御部と、を有し、
前記入出力制御部は、
互いに異なる期間に入力されたバンクを指定するバンク選択アドレス及びバンク内アドレスを用いてメモリセルアレイアドレスを生成し、前記不揮発性メモリセルアレイのアドレスとするアドレス制御回路を有し、
前記メモリコントローラは、
前記制御情報を参照して前記アクセス装置から送られた論理アドレスを前記不揮発性メモリセルアレイ内の記憶位置を示す物理アドレスに変換し、データの書き込み又は読み出しの対象となるバンクを前記複数のバンクから選択するアドレス管理部と、
前記不揮発性メモリセルアレイに対するデータの書き込み及び読み出しにおいて、データを送受信し、前記アドレス管理部が出力した物理アドレスを、バンクを特定するバンク選択アドレス及びバンク内アドレスに分けて、互いに異なる期間に前記不揮発性メモリに出力する読み書き制御部と、を有する不揮発性記憶システム。
【請求項１６】
前記アドレス制御回路は、前記アクセス装置から送られた信号に基づいて前記メモリセルアレイアドレスのビットの割当を変更して、前記バンクのサイズを変更する請求項１５に記載の不揮発性記憶システム。
【請求項１７】
前記アドレス管理部は、前記メモリセルアレイにデータを書き込み、書き込みが正常に完了した後に前記制御情報を更新する請求項１５または１６に記載の不揮発性記憶システム。
【請求項１８】
前記アドレス管理部は、前記メモリセルアレイを少なくともユーザーのデータを記憶する第１の領域及び前記第１の領域の代わりとして用いられる第２の領域に分けて認識し、前記第１の領域のバンクへの書き込み時にエラーが発生した際に、該バンクに書き込む予定であったデータを書き込む新たなバンクを前記スペア領域のバンクから指定する請求項１５から１７のいずれか１項に記載の不揮発性記憶システム。
【請求項１９】
前記読み書き制御部は、前記バンクのサイズを指示する信号を前記不揮発性メモリに出力することを特徴とする請求項１５から１８のいずれか１項に記載の不揮発性記憶システム。
【請求項２０】
前記メモリセルアレイは、不揮発性ＲＡＭである請求項１５から１９のいずれか１項に記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリと、不揮発性メモリを備えた半導体メモリカード等の不揮発性記憶装置と、それに内蔵されるメモリコントローラと、前記不揮発性記憶装置にアクセス装置を構成要素として加えた不揮発性記憶システムとに関する。
【背景技術】
【０００２】
書き換え可能な不揮発性メモリを備えた不揮発性記憶装置は、半導体メモリカードを中心にその需要が高まっている。また半導体メモリカードを使った不揮発性記憶システムも、デジタルスチルカメラや携帯電話等を中心にその需要が高まっている。かかる半導体メモリカードには様々な種類があり、その一つとしてＳＤメモリカードがある。このＳＤメモリカードは、不揮発性メモリとしてのフラッシュメモリと、そのフラッシュメモリを制御するメモリコントローラとを備えている。メモリコントローラは、デジタルスチルカメラ等のアクセス装置からの読み書き指示に応じて、フラッシュメモリに対するデータの読み書きを制御する。
【０００３】
このようなＳＤメモリカードをデジタルスチルカメラ等のアクセス装置に取り付けると、アクセス装置はＳＤメモリカードをリムーバブルディスクと見なしてＦＡＴファイルシステムで管理し、データの読み書きを指示する。ＦＡＴファイルシステムは、記録デバイスにファイルやデータを記録する際にファイル・アローケション・テーブル（以下、ＦＡＴという）を用いてデータの読み書きを指示するシステムである。
【０００４】
ＳＤメモリカードを構成するフラッシュメモリは、例えば非特許文献１に示すようなＮＡＮＤフラッシュメモリが主流である。以下に、ＮＡＮＤフラッシュメモリを搭載した従来の不揮発性記憶装置におけるデータの書き込みについて図１〜図３を用いて説明する。
【０００５】
図１は、従来の不揮発性記憶システムを表すブロック図である。不揮発性記憶システムは、アクセス装置１００と不揮発性記憶装置２００とで構成され、さらに不揮発性記憶装置２００は、不揮発性メモリ２１０とメモリコントローラ２２０を有している。不揮発性メモリ２１０は、メモリセルアレイ２１１として例えば非特許文献１に示した１ＧバイトのＮＡＮＤフラッシュメモリを有する。メモリセルアレイ２１１は８１９２個の物理ブロックから構成され、各物理ブロックは６４個のページで構成される。物理ブロックはデータの消去単位であり、ページはデータの書き込み単位である。１ページのサイズは２ｋバイトであるので、物理ブロックのサイズは１２８ｋバイトである。一般的にフラッシュメモリは、最小記録単位であるメモリセルへの書き込み速度が遅いため、２ｋバイトなどの比較的大きなサイズを単位として一括してデータを書き込むことで、単位容量あたりの書き込み速度、すなわち書き込みレートを向上させている。
【０００６】
メモリコントローラ２２０は、一時にデータを記憶する為のバッファＲＡＭ２３１、ＣＰＵ２２１が実行する命令コードを記憶した命令ＲＯＭ２３２及び命令ＲＡＭ２３３、ＣＰＵ２２１の作業用エリアとしてのワークＲＡＭ２３４を有する。またメモリコントローラ２２０は、メモリセルアレイ２１１を構成する物理ブロックの状態を管理する物理領域管理テーブルを記憶する物理領域管理テーブル用ＲＡＭ２３５、論理アドレスを物理アドレスに変換するための論物変換テーブルを記憶する論物変換テーブル用ＲＡＭ２３６も有する。これらのＲＡＭやＲＯＭをまとめて制御メモリ２３０とする。なお、前述した各種テーブルを用いた論物変換の方法等については一般的な技術を用いて実現できるものなので、簡単のため説明を省略する。
【０００７】
次にデータの書き込み手順は、アクセス装置１００からのデータ書き込み命令に伴って転送されたデータをメモリコントローラ２２０が受信する。次にメモリコントローラ２２０が、アクセス装置１００から転送された論理アドレスに基づいて不揮発性メモリ２１０への書き込み先アドレスである物理アドレスを決定する。この後に、読み書き制御部２２２を介して該データを不揮発性メモリ２１０に書き込む。
【０００８】
不揮発性メモリ２１０のピン配置は図２に示す通りである。このピン配置に従ってメモリコントローラ２２０と不揮発性メモリ２１０とが接続される。不揮発性メモリ２１０への読み書き指示において転送されるコマンド、アドレス及びデータは、８ビット幅の入出力ピンＩ／Ｏ７〜Ｉ／Ｏ０を介して送受信される。以下、入出力ピンＩ／Ｏ７〜Ｉ／Ｏ０をＩ／Ｏ［７：０］と表す。Ｉ／Ｏバスの他に、／ＲＥなどの各種制御ピンがあり、これらの機能については非特許文献１が示すとおりである。なお、各ピン端子の名称において“／”の記号が付記されたものは負論理であることを示す。メモリコントローラ２２０からのデータの書き込みや読み出しは、基本的にＩ／Ｏバスを介してシーケンシャルに行われる。
【０００９】
図３は、不揮発性メモリ２１０へのページ単位のデータ書き込みを表すタイムチャートである。書き込み開始を指示するためのシリアルデータ入力コマンド８０ｈがＩ／Ｏ［７：０］を介して転送され、続いてページアドレスが５サイクルに分けて転送される。その後データが１バイトずつ２１１２回に分けて転送される。データが２ｋバイト分全て転送され、次に書き込みコマンド１０ｈが転送された直後からデータの書き込み状態となり、所定時間経過した後に書き込みの全行程が終了する。図中ハッチングの部分は、値が１または０のいずれでも構わない区間を表している。
【００１０】
ここでページアドレスとは、ページを構成するバイト単位の各カラムにおいて先頭のカラムアドレスに対応するアドレスのことである。不揮発性メモリ２１０内のアドレス制御回路２１２は先頭のカラムアドレスを受信した後、データが２１１２回に分けて１バイトずつ転送される毎に、カラムアドレスを内部で自動的にインクリメントするようになっている。このような自動インクリメント機能により、転送時間の合理化が図られている。
【００１１】
このようなフラッシュメモリを搭載する半導体メモリカード等の不揮発性記憶装置は、主にデジタルスチルカメラ等のＡＶ用途に使用されるものであり、画像などのＡＶデータを書き込む場合は、通常クラスタ単位（１６ｋバイト）などのまとまった単位で書き込んでいる。更に、半導体メモリカードは小型の記憶装置であるので、省スペースの設計が必要であり、不揮発性メモリ２１０とメモリコントローラ２２０とを接続する配線数は少ない方が好ましい。この点からも、コマンドとアドレスとデータを時分割転送形式とすることにより配線数を削減したフラッシュメモリのインターフェースは、小型メモリ装置における主記憶メモリとして好都合であると言える。
【００１２】
なお、不揮発性メモリのメモリセルとして、特許文献１に示す抵抗変化型メモリ（以下、ＲｅＲＡＭという）、あるいは強誘電体メモリ（以下、ＦｅＲＡＭという）などを応用した不揮発性ＲＡＭも存在する。不揮発性ＲＡＭは、スタティックＲＡＭ（以下、ＳＲＡＭという）のような１バイト程度の小さなサイズで、文字通りランダムアクセスができる不揮発性メモリである。また、不揮発性ＲＡＭはフラッシュメモリと比べると最小記録単位であるメモリセルへの書き込み速度が速く、書き換え保証回数が桁違いに多いが、ＦｅＲＡＭは、あまり大容量化に向いていないため、非特許文献２が示すように機器組込用途として既に実用化されている。一方ＲｅＲＡＭは実用化には至っていないが、大容量化に向いているため、前述したようなＡＶ用途にも適用できるメモリカードの主記憶メモリとして、すなわちフラッシュメモリの代替としての期待が大きい。
【特許文献１】特開２００４−１８５７５４号公報
【非特許文献１】Ｓａｍｓｕｎｇ製ＮＡＮＤフラッシュメモリＫ９Ｋ８Ｇ０８Ｕ０Ｍのデータシート、［平成１８年５月１６日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｓａｍｓｕｎｇ．ｃｏｍ／Ｐｒｏｄｕｃｔｓ／Ｓｅｍｉｃｏｎｄｕｃｔｏｒ／ＮａｎｄＦｌａｓｈ／ＳＬＣ＿ＬａｒｇｅＢｌｏｃｋ／８Ｇｂｉｔ／Ｋ９Ｋ８Ｇ０８Ｕ０Ｍ／ｄｓ＿ｋ９ｘｘｇ０８ｕｘｍ＿ｒｅｖ１０．ｐｄｆ＞
【非特許文献２】ＲＡＭＴＲＯＮ製  ＦｅＲＡＭメモリＦＭ１６０８のデータシート、［平成１８年５月１６日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｒａｍｔｒｏｎ．ｃｏｍ／ｌｉｂ／ｌｉｔｅｒａｔｕｒｅ／ｄａｔａｓｈｅｅｔｓ／ＦＭ１６０８ｄｓ＿ｒ３．０．ｐｄｆ＞
【発明の開示】
【発明が解決しようとする課題】
【００１３】
図１に示した不揮発性記憶装置２００はメモリコントローラ２２０を内蔵しているので、メモリコントローラを内蔵しないメモリカードと比較すると、アクセス装置側の処理が簡素化できるといったメリットがある。これはアクセス装置の標準的な着脱型記録媒体として受け入れられやすいものである。
【００１４】
しかしその反面、メモリコントローラ２２０を実装している分、不揮発性記憶装置２００は高価であるというデメリットがある。通常メモリコントローラ２２０は１チップのＬＳＩとして不揮発性記憶装置に実装されているが、このＬＳＩコストのかなりの部分を制御メモリ２３０が占めている。
【００１５】
また、ＳＤメモリカードのような小型の不揮発性記憶装置を実装するにあたって、次のような課題も存在する。ＳＤメモリカードは、その外形寸法が縦３２ｍｍ×横２４ｍｍ×厚さ２．１ｍｍと、非常に小さな不揮発性記憶装置である。ｍｉｎｉＳＤメモリカード（登録商標）はさらに小さく、外形寸法は縦２１．５ｍｍ×横２０ｍｍ×厚さ１．４ｍｍである。この小さな筐体の中に基板が組み込まれており、該基板上にメモリコントローラと不揮発性メモリが実装されている。メモリコントローラと不揮発性メモリはメモリバスによって接続されているが、概ね５０本以上の配線になると実装が困難になるので、メモリバスはそれ未満のできる限り少ない配線数にする必要がある。しかしＳＲＡＭに対する入出力インターフェースが、４Ｇバイトの全アドレス空間をアドレスできるようにすると、アドレス線だけで３２本を占めてしまうため、実装が困難となる。
【００１６】
そこで本発明は、上記問題点に鑑み、メモリコントローラ内の制御メモリを削減し、メモリコントローラと不揮発性メモリとをつなぐメモリバスの配線数を合理化した不揮発性メモリを提案することを目的とする。またあわせて、該不揮発性メモリの読み書き制御を行うメモリコントローラと、該不揮発性メモリを備えた不揮発性記憶装置と、該不揮発性記憶装置とアクセス装置とから構成される不揮発性記憶システムとを提供することを目的とする。
【課題を解決するための手段】
【００１７】
課題を解決するために、本発明の不揮発性メモリは、記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイと、外部からデータ及びアドレスを受信して前記不揮発性メモリセルアレイにデータを書き込み、また前記不揮発性メモリセルアレイからデータを読み出して外部へ送信する入出力制御部と、を具備し、前記入出力制御部は、互いに異なる期間に入力されたバンクを指定するバンク選択アドレス及びバンク内アドレスを用いてメモリセルアレイアドレスを生成し、前記不揮発性メモリセルアレイのアドレスとするアドレス制御回路を有するものである。
【００１８】
ここで前記アドレス制御回路は、外部から送られた信号に基づいて前記メモリセルアレイアドレスのビットの割当を変更して、前記バンクのサイズを変更するようにしてもよい。
【００１９】
ここで前記メモリセルアレイは、不揮発性ＲＡＭとしてもよい。
【００２０】
課題を解決するために、本発明のメモリコントローラは、記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイを備える不揮発性メモリに対してデータの書き込み及び読み出しを行うメモリコントローラであって、前記制御情報を参照して外部から送られた論理アドレスを前記不揮発性メモリセルアレイ内の記憶位置を示す物理アドレスに変換し、データの書き込み又は読み出しの対象となるバンクを前記複数のバンクから選択するアドレス管理部と、前記不揮発性メモリセルアレイに対するデータの書き込み及び読み出しにおいて、データを送受信し、前記アドレス管理部が出力した物理アドレスを、バンクを特定するバンク選択アドレス及びバンク内アドレスに分けて、互いに異なる期間に前記不揮発性メモリに出力する読み書き制御部と、を具備するものである。
【００２１】
ここで前記アドレス管理部は、前記メモリセルアレイにデータを書き込み、書き込みが正常に完了した後に前記制御情報を更新するようにしてもよい。
【００２２】
ここで前記アドレス管理部は、前記メモリセルアレイを少なくともユーザーのデータを記憶する第１の領域及び前記第１の領域の代わりとして用いられる第２の領域に分けて認識し、前記第１の領域のバンクへの書き込み時にエラーが発生した際に、該バンクに書き込む予定であったデータを書き込む新たなバンクを前記スペア領域のバンクから指定するようにしてもよい。
【００２３】
ここで前記読み書き制御部は、前記バンクのサイズを指示する信号を前記不揮発性メモリに出力するようにしてもよい。
【００２４】
ここで前記メモリセルアレイは、不揮発性ＲＡＭとしてもよい。
【００２５】
課題を解決するために、本発明の不揮発性記憶装置は、不揮発性メモリと、メモリコントローラとを具備し、外部からのアクセス指示に応じてデータの読み出し及び書き込みを行う不揮発性記憶装置であって、前記不揮発性メモリは、記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイと、外部からデータ及びアドレスを受信して前記不揮発性メモリセルアレイにデータを書き込み、また前記不揮発性メモリセルアレイからデータを読み出して外部へ送信する入出力制御部と、を有し、前記入出力制御部は、互いに異なる期間に入力されたバンクを指定するバンク選択アドレス及びバンク内アドレスを用いてメモリセルアレイアドレスを生成し、前記不揮発性メモリセルアレイのアドレスとするアドレス制御回路を有し、前記メモリコントローラは、前記制御情報を参照して外部から送られた論理アドレスを前記不揮発性メモリセルアレイ内の記憶位置を示す物理アドレスに変換し、データの書き込み又は読み出しの対象となるバンクを前記複数のバンクから選択するアドレス管理部と、前記不揮発性メモリセルアレイに対するデータの書き込み及び読み出しにおいて、データを送受信し、前記アドレス管理部が出力した物理アドレスを、バンクを特定するバンク選択アドレス及びバンク内アドレスに分けて、互いに異なる期間に前記不揮発性メモリに出力する読み書き制御部と、を有するものである。
【００２６】
ここで前記アドレス制御回路は、外部から送られた信号に基づいて前記メモリセルアレイアドレスのビットの割当を変更して、前記バンクのサイズを変更するようにしてもよい。
【００２７】
ここで前記アドレス管理部は、前記メモリセルアレイにデータを書き込み、書き込みが正常に完了した後に前記制御情報を更新するようにしてもよい。
【００２８】
ここで前記アドレス管理部は、前記メモリセルアレイを少なくともユーザーのデータを記憶する第１の領域及び前記第１の領域の代わりとして用いられる第２の領域に分けて認識し、前記第１の領域のバンクへの書き込み時にエラーが発生した際に、該バンクに書き込む予定であったデータを書き込む新たなバンクを前記スペア領域のバンクから指定するようにしてもよい。
【００２９】
ここで前記読み書き制御部は、前記バンクのサイズを指示する信号を前記不揮発性メモリに出力するようにしてもよい。
【００３０】
ここで前記メモリセルアレイは、不揮発性ＲＡＭとしてもよい。
【００３１】
課題を解決するために、本発明の不揮発性記憶システムは、データの読み出し及び書き込みを指示するアクセス装置と、不揮発性メモリ及びメモリコントローラを備える不揮発性記憶装置と、を具備する不揮発性記憶システムであって、前記不揮発性メモリは、記憶領域が分割された所定サイズのバンクを複数有し、データの書き込みや読み出しに必要な制御情報を記憶するバンクを含む不揮発性メモリセルアレイと、前記アクセス装置からデータ及びアドレスを受信して前記不揮発性メモリセルアレイにデータを書き込み、また前記不揮発性メモリセルアレイからデータを読み出して前記アクセス装置へ送信する入出力制御部と、を有し、前記入出力制御部は、互いに異なる期間に入力されたバンクを指定するバンク選択アドレス及びバンク内アドレスを用いてメモリセルアレイアドレスを生成し、前記不揮発性メモリセルアレイのアドレスとするアドレス制御回路を有し、前記メモリコントローラは、前記制御情報を参照して前記アクセス装置から送られた論理アドレスを前記不揮発性メモリセルアレイ内の記憶位置を示す物理アドレスに変換し、データの書き込み又は読み出しの対象となるバンクを前記複数のバンクから選択するアドレス管理部と、前記不揮発性メモリセルアレイに対するデータの書き込み及び読み出しにおいて、データを送受信し、前記アドレス管理部が出力した物理アドレスを、バンクを特定するバンク選択アドレス及びバンク内アドレスに分けて、互いに異なる期間に前記不揮発性メモリに出力する読み書き制御部と、を有するものである。
【００３２】
ここで前記アドレス制御回路は、前記アクセス装置から送られた信号に基づいて前記メモリセルアレイアドレスのビットの割当を変更して、前記バンクのサイズを変更するようにしてもよい。
【００３３】
ここで前記アドレス管理部は、前記メモリセルアレイにデータを書き込み、書き込みが正常に完了した後に前記制御情報を更新するようにしてもよい。
【００３４】
ここで前記アドレス管理部は、前記メモリセルアレイを少なくともユーザーのデータを記憶する第１の領域及び前記第１の領域の代わりとして用いられる第２の領域に分けて認識し、前記第１の領域のバンクへの書き込み時にエラーが発生した際に、該バンクに書き込む予定であったデータを書き込む新たなバンクを前記スペア領域のバンクから指定するようにしてもよい。
【００３５】
ここで前記読み書き制御部は、前記バンクのサイズを指示する信号を前記不揮発性メモリに出力するようにしてもよい。
【００３６】
ここで前記メモリセルアレイは、不揮発性ＲＡＭとしてもよい。
【００３７】
ここで制御情報は、少なくともＣＰＵが用いる命令コードと、論物変換テーブルと、バンクが有効、無効または不良であるかを示す値を有する物理領域管理テーブルとを備えるものでもよい。
【発明の効果】
【００３８】
本発明では、不揮発性メモリ内のメモリセルアレイを複数のバンクに分割し、メモリコントローラから不揮発性メモリにバンク選択アドレスとバンク内アドレスを入力する。不揮発性メモリ内のアドレス制御回路はバンク選択アドレスとバンク内アドレスとを融合してメモリセルアレイの記憶位置を示すメモリセルアレイアドレスを形成する。これによりメモリコントローラと不揮発性メモリとの間のアドレス線を大幅に増加させることなく、不揮発性メモリの一部の領域を制御メモリとして利用できる。ひいては、メモリコントローラに制御メモリを内蔵させる必要がなくなり、メモリコントローラの低コスト化を実現することができる。
【００３９】
なお、後述するが、不揮発性メモリの容量に対する制御メモリ領域の容量の割合は無視できる程度に小さいため、制御メモリ領域を不揮発性メモリ内にアロケートしてもコスト的に無視できるものである。
【発明を実施するための最良の形態】
【００４０】
図４は、本発明の実施の形態に於ける不揮発性記憶システムを示すブロック図である。不揮発性記憶システムは、アクセス装置１と不揮発性記憶装置２とで構成され、不揮発性記憶装置２は、メモリコントローラ１０と不揮発性メモリ２０とを有する。さらにメモリコントローラ１０はホストインターフェース１１と、ＣＰＵ１２と、アドレス管理部１３と、読み書き制御部１４とを有する。
【００４１】
ＣＰＵ１２は、メモリコントローラ１０全体を制御する。アドレス管理部１３は、アクセス装置１から受信した論理アドレスに基づいて不揮発性メモリ２０内でのデータの記憶位置を示す物理アドレスを生成する。
【００４２】
不揮発性メモリ２０は、ＲｅＲＡＭで構成されたメモリセルアレイ２１と入出力制御部３０とを有している。メモリセルアレイ２１は、その記憶領域を所定のサイズで複数の単位に分割されており、分割された単位をバンクという。これら複数のバンクは第１の領域である通常領域と、第２の領域であるスペア領域と、第３の領域である制御メモリ領域のいずれかに割り当てられる。図４では、バンク０〜バンク１６３７５が通常領域に、バンク１６３７６〜バンク１６３８２がスペア領域に、バンク１６３８３が制御メモリ領域に割り当てられている。尚、メモリセルアレイ２１はＦｅＲＡＭ、磁性記録式随時書き込み読み出しメモリ（ＭＲＡＭ）、あるいはオボニックユニファイドメモリ（ＯＵＭ）のメモリセルで構成されていても構わない。これら媒体を総称して不揮発性ＲＡＭと呼ぶ。
【００４３】
入出力制御部３０は、外部インターフェース３１とデータラッチ３２とアドレス制御回路３３とエラー検出回路３４とを有している。外部インターフェース３１は、メモリコントローラ１０とアドレス線、データ線及び制御線で接続し、コマンド、データ及びアドレスを送受信する。データラッチ３２は、メモリセルアレイ２１へのデータの書き込み及び読み出しを行い、書き込み及び読み出しのデータを一時的に保持するものである。アドレス制御回路３３は、メモリコントローラ１０から送られてきた物理アドレスからメモリセルアレイ２１内での位置を表すメモリセルアレイアドレスを生成するものであり、エラー検出回路３４はデータの書き込みエラーを検出するものである。
【００４４】
図５は、不揮発性メモリ２０のピン配置図である。ピン番号１０（ＥＲＲ）と、ピン番号１３（ＢＳＥＴ）と、ピン番号１６（ＡＬＥ＿ＢＡ）と、ピン番号１７（ＡＬＥ＿ＢＳ）とを除く各ピンの配置はＴＳＯＰパッケージにおけるフラッシュメモリの典型的なピン配置に対応している。／ＣＥ１は負論理のチップイネーブル信号、ＣＥ２は正論理のチップイネーブル信号を表し、不揮発性メモリ２０にアクセスする時は、／ＣＥ１を値０にＣＥ２を値１に設定する。／ＷＥは負論理のライトイネーブル信号を表し、この信号の立ち上がりエッジでデータラッチ３２にデータを保持する。／ＯＥはデータを読み出すときに値０に設定する制御信号を表す。ＥＲＲはエラー検出回路３４がエラーを検出した際に値１に設定される制御信号を表し、ＢＳＥＴはメモリセルアレイ２１のバンクサイズを設定する時に使用される制御信号を表す。
【００４５】
また、ＡＬＥ＿ＢＳはバンク選択アドレスを設定する時に使用される制御信号を、ＡＬＥ＿ＢＡはバンク内アドレスを設定すると共にデータを書き込んだり読み込んだりする時に使用される制御信号をそれぞれ表す。／ＵＢと／ＬＢはそれぞれ上位バイトと下位バイトを選択するための制御信号をそれぞれ表すが、本実施の形態においては、２バイト単位で読み書きするので、不揮発性メモリ２０にアクセスする時は常に値０に設定するものとする。Ａ０〜Ａ１７は、アドレスを入出力するためのピンであり、Ａ［１７：０］と表す。また、Ｉ／Ｏ０〜Ｉ／Ｏ１５は、データを入出力するためのピンであり、Ｉ／Ｏ［１５：０］と表す。
【００４６】
図６は、メモリセルアレイ２１のメモリマップである。バンク０〜バンク１６３８３の各バンクが対応する物理アドレスと、メモリセルアレイ２１の容量が４Ｇバイトであることを示している。また本実施の形態においては、４Ｇバイトの空間を１６３８４のバンク０〜バンク１６３８３に分割して使用するので、各バンクのサイズは２５６ｋバイトとなる。バンクのサイズを２５６ｋバイトとしたときは、図７に示すように、メモリセルアレイの容量に応じてバンクの数は変化する。なお本実施の形態では、図８に示すように、バンクのサイズをパラメータであるバンクサイズＢＳＩＺによって指定することが可能であり、ＢＳＩＺ＝０としてバンクサイズを２５６ｋバイトとする。尚、バンクのサイズの指定方法は後述する。
【００４７】
図９は、論理アドレスと物理アドレスの対応関係を示し、バンク選択アドレスに割り当てられる物理アドレスのビットをＢＳＩＺの値ごとに示した図である。ＢＳＩＺ＝０のとき、論理アドレスＬＡのｂ３１〜ｂ１８は物理アドレスＰＡのｂ３１〜ｂ１８に対応しており、このビットがバンクを指定するためのバンク選択アドレスとして用いられる。残りのｂ１７〜ｂ０のビットはバンク内の位置を指定するバンク内アドレスとして用いられる。尚、ＢＳＩＺ＝１のときはｂ３１〜ｂ１７のビット、ＢＳＩＺ＝２のときはｂ３１〜ｂ１６のビットがバンク選択アドレスとして用いられ、ｂ０までの残りのビットはバンク内アドレスとして用いられる。
【００４８】
図９において論理アドレスＬＡはｂ３１〜ｂ０の３２ビットで表されている。本実施の形態では、ｂ３１〜ｂ０の３２ビットの論理アドレスをＬＡ［３１：０］と表記する。例えば、論理アドレスＬＡのｂ３１〜ｂ１８の１４ビットは、ＬＡ［３１：１８］と表記する。物理アドレスＰＡについても同様に、ｂ３１〜ｂ０の３２ビットの物理アドレスをＰＡ［３１：０］と表記し、物理アドレスＰＡのｂ３１〜ｂ１８の１４ビットは、ＰＡ［３１：１８］と表記する。
【００４９】
図１０のメモリマップにおいて、論理アドレスの通常領域４０を示す０ｘ００００００００〜０ｘｆｆｄｆｆｆｆｆ（“０ｘ”は１６進数であることを示す添え字である）はアクセス装置１が認識できる論理空間であり、この領域に画像や音楽などのコンテンツデータやＦＡＴなどの管理情報が記録される。物理アドレスは第１の領域である通常領域５０を示す０ｘ００００００００〜０ｘｆｆｄｆｆｆｆｆ及びシステム領域５１を示す０ｘｆｆｅ０００００〜０ｘｆｆｆｆｆｆｆｆとがある。システム領域５１は第２の領域であるスペア領域５２と第３領域である制御メモリ領域５３に分割され、制御メモリ領域５３はさらに命令コード領域５４と、ワーク領域５５と、図１１に示す論物変換テーブル５６と、図１２に示す物理領域管理テーブル５７と、その他システム情報領域５８とに分割される。
【００５０】
図１１は、論理アドレスＬＡ［３１：１８］に対応する物理アドレスＰＡ［３１：１８］を示す論物変換テーブル５６である。ＰＡ［３１：１８］は１４ビットのバンク選択アドレスでもあるので、テーブルのサイズは約３２ｋバイトである。図１１では、ＬＡ［３１：１８］の０ｘ０００３がＰＡ［３１：１８］の０ｘ３ｆｆ８と対応しており、ＬＡ［３１：１８］とＰＡ［３１：１８］とは同値でない。これは、ＰＡ［３１：１８］の０ｘ０００３に対応するバンクでデータの書き込みエラーが生じたために、ＰＡ［３１：１８］の０ｘ３ｆｆ８に対応するバンクが代わりに用いられたことを示している。
【００５１】
図１２は、バンク選択アドレスである各ＰＡ［３１：１８］に対して、各ＰＡ［３１：１８］に対応するバンクの状態が、有効であるか、無効であるか、または不良であるかを示す値を管理する物理領域管理テーブル５７を表している。各ＰＡ［３１：１８］に対して、０ｂ１１、０ｂ００、０ｂ１０のいずれかの２ビットの値（“０ｂ”は２進数であることを示す添え字である）で各バンクの状態を示している。バンク選択アドレス０ｘ３ｆｆｆの制御メモリ領域を除いて、０ｘ００００〜０ｘ３ｆｆｅの１６３８３のバンク選択アドレスが管理の対象として存在し、テーブルは約４ｋバイトを占めている。
【００５２】
図１３は、アドレス制御回路３３の回路図である。ラッチ３３１は、３２ビットの物理アドレスＰＡのうち下位ビットであるＰＡ［１７：０］を保持して出力するものである。ラッチ３３２は、その物理アドレスＰＡの上位ビットであるＰＡ［３１：１６］を保持して出力するものである。セレクタ３３３は、Ａ、Ｂ及びＣの３つの入力を備えている。ラッチ３３１、ラッチ３３２に保持された物理アドレスのうち、バンク内アドレスＰＡ［１７：０］とバンク選択アドレスＰＡ［３１：１８］はセレクタ３３３のＡ入力に入力される。同様に、バンク内アドレスＰＡ［１６：０］とバンク選択アドレスＰＡ［３１：１７］はセレクタ３３３のＢ入力に入力される。また、バンク内アドレスＰＡ［１５：０］とバンク選択アドレスＰＡ［３１：１６］はセレクタ３３３のＣ入力に入力される。セレクタ３３は、このように入力された３２ビットの入力Ａ〜Ｃのうち、ＳＥＬ入力値が値０のときにはＡ入力を、値１のときにはＢ入力を、値２のときにはＣ入力を選択してメモリセルアレイアドレスとして出力するものである。ＤＦＦ３３４は、Ｉ／Ｏ［１：０］から入力された信号をＢＳＩＺとしてセレクタ３３３に出力するＤフリップフロップである。
【００５３】
以上のように構成された、本実施の形態の不揮発性記憶システムについて、初期状態と通常処理とにわけて説明する。
【００５４】
［初期状態］
まず、不揮発性記憶装置２の出荷前において、半導体メモリカードのメーカが処理する内容について説明する。なお出荷前において、メモリセルアレイ２１に不良のメモリセルは無いものとする。
【００５５】
図１０のメモリマップに示す制御メモリ領域５３のその他システム情報領域５８に、メーカやカード容量を識別するＩＤコードを書き込む。次に、制御メモリ領域５３の命令コード領域５４（９６ｋバイト）にＣＰＵ１２が処理する命令コードを書き込み、続くワーク領域５５（４ｋバイト）の全てのバイトを値０ｘ００に設定し領域をクリアする。なお、バイトとは最小の記憶単位である。
【００５６】
その後、物理領域管理テーブル５７（４ｋバイト）にある、通常領域５０とスペア領域５２に対応する全てのバンクステータスを無効を示す値０ｂ００に設定し、制御メモリ領域５３に対応するバンクステータスを有効（値０ｂ１１）に設定する。さらに、論物変換テーブル５６（３２ｋバイト）の各記憶位置には、物理アドレスＰＡ［３１：０］のうちバンク選択アドレスを示すＰＡ［３１：１８］を書き込むが、そのＰＡ［３１：１８］の値は、論理アドレスＬＡ［３１：０］のＬＡ［３１：１８］と同値である。なお、データの書き込みの都度、論物変換テーブル５６にはバンク選択アドレスとしてＰＡ［３１：１８］を書き込む。
【００５７】
ＲｅＲＡＭなどの不揮発性ＲＡＭであるメモリセルアレイとフラッシュメモリとの比較を図１４に示す。図１４に示すように不揮発性ＲＡＭは、書き換え保証回数が１００億回と非常に大きい値である。このことから、従来の不揮発性記憶装置が実施していたウェアレベリング処理は不要であるので、ＬＡ［３１：０］の値をそのままＰＡ［３１：０］に対応させて用いてもよいことになる。但し、データの書き込み中などにメモリセルに物理的な不良が発生し、書き込みができなくなってしまう場合も考えられるので、その場合は、スペア領域５２へ該データを書き込む代替処理を行う。
【００５８】
［通常処理］
次に、実際に不揮発性記憶システムとして動作させる際の通常処理について図１５のフローチャートを用いて説明する。これら一連の処理を、（１）初期化〜アクセス待ち状態、（２）書き込みコマンドの受信〜データの書き込み処理、（３）読み出しコマンドの受信〜データの読み出し処理、の３つに分けて説明する。
【００５９】
（１）初期化〜アクセス待ち状態
まず、アクセス装置１の電源投入により不揮発性記憶装置２にも電源が供給される。電源供給と共にＣＰＵ１２にリセットがかかり、リセット解除後にプログラムカウンタは命令コード領域５４の先頭アドレスである０ｘｆｆｆｃ００００にセットされる。
【００６０】
これに続いて読み書き制御部１４は、バンクサイズを２５６ｋバイトに設定するために、ＣＰＵ１２から送信されたＢＳＩＺを不揮発性メモリ２０に設定する（Ｓ１０）。具体的には、図１６のバンクサイズの設定を表すタイムチャートに示すように、ＢＳＥＴ端子を値１に設定し、Ｉ／Ｏ［１：０］を介してＢＳＩＺに値０を書き込む。このとき、ピンＡ０〜Ａ１７に設定された信号を表すＡ［１７：０］はいかなる値であってもよい。図１３に示すＤＦＦ３３４はＢＳＩＺを／ＷＥ信号の立ち上がりで保持し、ＢＳＩＺの値０をセレクタ３３３のＳＥＬ入力に設定する。
【００６１】
次に、図１７はバンク選択アドレスの設定を表すタイムチャートである。このタイムチャートに示すように、０ｘｆｆｆｃ００００の上位１６ビットを示すＰＡ［３１：１６］は、Ａ［１７：０］で表す不揮発性メモリのピンＡ１７〜Ａ０に設定され、ピンＡＬＥ＿ＢＳにパルス信号を転送する。ＰＡ［３１：１６］はバンク選択アドレスを含んでおり、図１３に示すラッチ３３２に保持される。この時、Ｉ／Ｏ［１５：０］で表すピンＩ／Ｏ１５〜Ｉ／Ｏ０にはいかなる値を設定してもよい。このバンク選択アドレスの設定後、バンク内アドレスの設定を行なう。図１８Ａのリードサイクルのタイムチャートに示すように、０ｘｆｆｆｃ００００の下位１８ビットであるＰＡ［１７：０］をＡ［１７：０］に設定し、ピンＡＬＥ＿ＢＡにパルス信号を転送する。ＰＡ［１７：０］はバンク内アドレスを含んでおり、図１３に示すラッチ３３１に保持される。続いてラッチ３３１とラッチ３３２にそれぞれ保持されたＰＡ［１７：０］とＰＡ［３１：１６］とはセレクタ３３３に入力される。
【００６２】
前述した通り、ＢＳＩＺの値としてＤＦＦ３３４に値０が保持されているので、セレクタ３３３はＡ入力を選択する。Ａ入力を選択すると、図９に示すように、ＢＳＩＺの値が０のときのビット配置に対応するようにバンク選択アドレスとバンク内アドレスが定義される。
【００６３】
図１０を用いて具体的に説明すると、バンク選択アドレスＰＡ［３１：１８］は、制御メモリ領域５３であるバンク１６３８３を示す値０ｘ３ｆｆｆであり、バンク内アドレスはＰＡ［１７：０］、すなわち命令コード領域５４の先頭を示す値０ｘ０００００となっている。なお、図１８Ａはバンク選択アドレスが指定された後でバンク内アドレスを指定してデータを読み出す期間を表すタイムチャートであるが、図１８Ａにおいては、／ＯＥ端子が値０に設定された期間の終焉の辺りにＩ／Ｏ［１５：０］を介して、命令コード領域５４（バンク１６３８３）の先頭番地に記憶された１６ビットの命令コードが読み出される。
【００６４】
以上の処理により、ＣＰＵ１２は命令コードのフェッチを開始し（Ｓ１１）、命令コードに従って処理を実行する。なお、一旦バンク選択アドレスが選択されると、電源が供給されている間は、ラッチ３３２にバンク選択アドレスが保持されるので、それ以降の制御メモリ領域５３へのアクセスでは、図１７に示したバンク選択アドレスを含む上位ビットの設定処理は不要である。すなわち、図１８Ａのタイムチャートに示すように、既に指定されているバンク選択アドレスと後から指定されたバンク内アドレスとを用いてデータを読み出す処理だけで済む。続いて、ＣＰＵ１２は各種初期化処理を実行（Ｓ１２）した後に、アクセス装置１からのアクセス待ち状態になる（Ｓ１３）。
【００６５】
（２）書き込みコマンドの受信〜データの書き込み処理
次に、データの書き込み処理を説明する。ＣＰＵ１２がアクセス待ちの状態にあるとき、アクセス装置１が不揮発性記憶装置２に対して書き込みコマンドを転送すると、ＣＰＵ１２はホストインターフェース１１を介して書き込みコマンドと論理アドレスを受信して、アドレス管理部１３に制御を渡す。
【００６６】
アドレス管理部１３は先に設定されたバンク１６３８３を選択し、論物変換テーブル５６において、アクセス装置から送られた論理アドレスＬＡ［３１：１８］に対応する記憶位置を参照する。この記憶位置に対応する物理アドレスＰＡ［３１：１８］を読み出すことにより論物変換処理を実行する（Ｓ１５）。このとき通常は、ＬＡ［３１：１８］と対応するＰＡ［３１：１８］とは同値であるが、前回の書き込みにおいてエラーが発生し代替処理がなされた場合は、物理アドレスＰＡ［３１：１８］はスペア領域５２を示す値になっている。
【００６７】
その後、書き込みコマンドと一緒に転送されたデータを、読み書き制御部１４を介して２バイト毎に不揮発性メモリ２０へ書き込む。具体的には、ＰＡ［３１：１８］の値とＬＡ［１７：０］の値を結合して物理アドレスを生成し、この物理アドレスによってデータの書き込み位置を特定してデータを書き込む。しかし、現在の処理において指定されているバンクは、論物変換テーブル領域をリードしたときのバンク１６３８３であるので、データを書き込む前に、書き込むデータのＰＡ［３１：１８］に対応するようにバンクの指定を変更する必要がある。
【００６８】
図１７に示す処理によってバンク選択アドレスを設定し直して、バンクの指定を変更した後に、図１８Ｂに示す書き込み処理を実行する（Ｓ１６）。この書き込み処理は、アクセス装置１から書き込み終了コマンドを受信するまで継続されるので、例えば１クラスタ分（１６ｋバイト）のデータを連続して書き込むような処理である。但し、この書き込みの間にエラーが発生した場合、不揮発性メモリ２０のエラー検出回路３４は、図５に示すＥＲＲ端子を介して、ＣＰＵ１２に逐次エラーを通知する。
【００６９】
なお、ファイルデータが複数のバンクに跨って書き込まれたときは、ファイルデータがバンクを跨いだことをアドレス管理部１３が検知して、逐次論物変換テーブル５６の参照とバンク指定の変更がなされる。
【００７０】
この一連の書き込み中は、ＣＰＵ１２がスリープ状態となる。このスリープ状態で、メモリコントローラ１０がアクセス装置１からの書き込み終了コマンドを受信したときは、ホストインターフェース１１がＣＰＵ１２に割り込みを行なう。このとき、ＣＰＵ１２をウェークアップし、ＣＰＵ１２は後述するエラー処理を行なう。また、エラー検出回路３４がエラーを検出したときにも、ＣＰＵ１２は割り込みによって随時ウェークアップし、後述するエラー処理を行う。
【００７１】
これら一連のデータ書き込みにおいて、エラー検出回路３４が常時書き込みエラーの検出動作を行い、エラー発生の有無をＥＲＲ端子を介して適宜メモリコントローラ１０に通知する。エラー発生の通知がなかった場合は（Ｓ１７）、ＣＰＵ１２はアドレス管理部１３に制御を渡し、アドレス管理部１３が物理領域管理テーブル５７の更新を行い（Ｓ１８）、正常終了する。
【００７２】
具体的には、物理領域管理テーブル５７中の対応するバンクステータスを有効、すなわち値１１に設定する。そのために、図１７に示す処理によってバンク１６３８３の指定をし、バンク内アドレスの更新処理を実行する。
【００７３】
一方、Ｓ１７でエラー通知があった場合は、ＣＰＵ１２がホストインターフェース１１を介してアクセス装置１に対してエラーが発生した旨を通知し（Ｓ１９）、書き込みエラーとなったデータを、スペア領域５２へ書き込むための代替処理を実行する。
【００７４】
具体的にはアドレス管理部１３が、図１０で示されるスペア領域５２のバンク１６３７６〜１６３８２の７つのバンクから１つのバンクを選択し、選択したバンクのＰＡ［３１：１８］をエラーが発生した論理アドレスに対応するように論物変換テーブルに書き込む。なお本実施の形態では、物理領域管理テーブル５７においてバンク値を小さい方から降順に見て、最初にバンクステータスが無効になっているバンクを選択する。さらにエラーが発生したバンクに対応するバンクステータスを不良にするために、物理領域管理テーブル５７に値１０を書き込む（Ｓ２０）。
【００７５】
なお、エラー検出回路３４は、一般的にフラッシュメモリチップに実装されているエラー検出回路を応用すれば実現できるので、本実施の形態については簡単のため説明を省略する。
【００７６】
（３）読み出しコマンドの受信〜データの読み出し処理
次に、データの読出し処理を説明する。図１５のＳ１３におけるアクセス待ちの状態で、アクセス装置１が不揮発性記憶装置２に対して読み出しコマンドを転送すると、ＣＰＵ１２がホストインターフェース１１を介して読み出しコマンドと論理アドレスを受信する。ＣＰＵ１２はアドレス管理部１３に制御を渡し、アドレス管理部１３がバンク１６３８３を選択する。
【００７７】
続いて、アドレス管理部１３は論物変換テーブル５６においてＬＡ［３１：１８］に対応する記憶位置を参照する。つまり、この記憶位置に格納されたＰＡ［３１：１８］を読み出すことにより論物変換処理を実行し、読み出し先の物理アドレスを決定する（Ｓ２１）。詳細は前述した書き込み処理と同様であるので説明を省略する。
【００７８】
その後読み書き制御部１４を介して不揮発性メモリ２０から２バイト単位ずつ読み出し、下位バイト→上位バイトの順に、順次アクセス装置１に転送する（Ｓ２２）。以上の読み出し処理は、アクセス装置１から読み出し終了コマンドを受信するまで継続されるので、例えば１クラスタ分（１６ｋバイト）のデータを連続して読み出す。
【００７９】
尚本実施の形態では、読み出しにおけるエラー処理の説明を省略するが、メモリセルアレイ２１が読み出しエラーに対して脆弱なデバイスの場合は、メモリセルアレイ２１の所定単位毎（例えば５１２バイト）毎にＥＣＣコード付加するなどの方法が考えられる。但しこの場合は少なくとも５１２バイトのバッファＲＡＭをメモリコントローラ１０に備える必要がある。
【００８０】
以上のように、本発明の実施の形態に示す不揮発性記憶システムは、メモリセルアレイ２１を複数のバンクに分割して、従来のメモリコントローラに内蔵されていた制御メモリをメモリセルアレイ２１内の制御メモリ領域５３にアロケートしたものである。また不揮発性記憶システムは、メモリセルアレイの任意の記憶位置を指定するものであって、メモリセルアレイアドレスを構成するバンク選択アドレスとバンク内アドレスを、メモリコントローラ１０から不揮発性メモリ２０に、互いに異なる期間で入力する。そして、アドレス制御回路３３がこれらバンク選択アドレスとバンク内アドレスとを結合してメモリセルアレイアドレスを形成する。このことによってアドレス線を大幅に増加させることなく、不揮発性メモリ２０の一部の領域を制御メモリとして利用できる。従って、メモリコントローラに制御メモリを内蔵させる必要がなくなり、メモリコントローラの低コスト化を実現することができる。また、バンク毎にエラー発生時の代替処理を行うようにしたので、エラー保護を簡単に実現することができる。
【００８１】
本実施の形態では、図１８Ａ、図１８Ｂに示すデータの読み出しや書き込みは、２バイト単位で実施するようにした。しかし、アドレス制御回路３３内部において、アドレスを自動的にインクリメントすることによって、ある程度まとまった単位で読み書きできるいわゆるページモードを備えてもよい。また、アドレス管理部１３の処理は従来のようにＣＰＵ１２が代行してもよい。
【００８２】
尚、本実施の形態では、バンク選択アドレスとバンク内アドレスのそれぞれを互いに異なる期間で入力して結合しメモリセルアレイアドレスを形成するようにした。こうすることでメモリコントローラ１０と不揮発性メモリ２０を接続するメモリバスの端子数を、図５に示すように４８本（ＶｃｃとＧＮＤを含む）とすることができるので、不揮発性記憶装置の実装上の課題を解決することができる。
【産業上の利用可能性】
【００８３】
本発明にかかる不揮発性記憶メモリは、メモリコントローラおよびそれを搭載した不揮発性記憶装置や不揮発性記憶システムの低コスト化を提案したものであり、半導体メモリカード等の不揮発性記憶装置を使用した装置で、例えば静止画記録再生装置や動画記録再生装置、あるいは携帯電話などにおいて有益である。
【図面の簡単な説明】
【００８４】
【図１】従来の不揮発性記憶システムを示すブロック図である。
【図２】従来のフラッシュメモリのピン配置図である。
【図３】従来のフラッシュメモリへのデータの書き込みを表すタイムチャートである。
【図４】本発明の実施の形態に於ける不揮発性記憶システムを示すブロック図である。
【図５】本発明の実施の形態に於ける不揮発性メモリのピン配置図である。
【図６】メモリセルアレイ２１のメモリマップである。
【図７】カード容量とバンク数の関係を示す表である。
【図８】ＢＳＩＺに対応するバンクサイズとバンク数を示す表である。
【図９】論理アドレスと物理アドレスの対応関係を示す図である。
【図１０】論理アドレスと物理アドレスの対応関係と、システム領域の詳細とを示すメモリマップである。
【図１１】論物変換テーブルを示す図である。
【図１２】物理領域管理テーブル示す図である。
【図１３】アドレス制御回路３３の回路図である。
【図１４】フラッシュメモリと不揮発性ＲＡＭの特徴を比較する表である。
【図１５】ＣＰＵ１２の処理を表すフローチャートである。
【図１６】バンクサイズの設定を表すタイムチャートである。
【図１７】バンク選択アドレスの設定を表すタイムチャートである。
【図１８Ａ】データの読み出しを表すタイムチャートである。
【図１８Ｂ】データの書き込みを表すタイムチャートである。
【符号の説明】
【００８５】
１  アクセス装置
２  不揮発性記憶装置
１０  メモリコントローラ
１１  ホストインターフェース
１２  ＣＰＵ
１３  アドレス管理部
１４  読み書き制御部
２０  不揮発性メモリ
２１  メモリセルアレイ
３０  入出力制御部
３１  外部インターフェース
３２  データラッチ
３３  アドレス制御回路
３４  エラー検出回路
４０、５０  通常領域
５１  システム領域
５２  スペア領域
５３  制御メモリ領域
５４  命令コード領域
５５  ワーク領域
５６  論物変換テーブル
５７  物理領域管理テーブル
５８  その他システム情報領域
３３１、３３２  ラッチ
３３３  セレクタ
３３４  Ｄフリップフロップ（ＤＦＦ）
【図１】
2007317078.tif 000003
【図２】
2007317078.tif 000004
【図３】
2007317078.tif 000005
【図４】
2007317078.tif 000006
【図５】
2007317078.tif 000007
【図６】
2007317078.tif 000008
【図７】
2007317078.tif 000009
【図８】
2007317078.tif 000010
【図９】
2007317078.tif 000011
【図１０】
2007317078.tif 000012
【図１１】
2007317078.tif 000013
【図１２】
2007317078.tif 000014
【図１３】
2007317078.tif 000015
【図１４】
2007317078.tif 000016
【図１５】
2007317078.tif 000017
【図１６】
2007317078.tif 000018
【図１７】
2007317078.tif 000019
【図１８Ａ】
2007317078.tif 000020
【図１８Ｂ】
2007317078.tif 000021