(57)【特許請求の範囲】
【請求項１】
不揮発性メモリと、前記不揮発性メモリに対するデータの書き込み、及び、読み出しの制御を行なうコントローラとを備えた不揮発性記憶装置であり、
前記不揮発性メモリは、
固有の識別情報と、
前記コントローラが前記不揮発性メモリへのデータの書き込み、及び、読み出しを制御するための制御情報と、を有し、
前記コントローラは、
複数の種類の不揮発性メモリのそれぞれから前記制御情報を読み出すために用いられる、複数の読み出し情報と、
前記識別情報を前記不揮発性メモリから読み出して前記不揮発性メモリの種類を判別する判別部と、
前記不揮発性メモリの種類に対応する前記読み出し情報の内の一つを選択する選択部と、
前記選択された読み出し情報に基づいて、前記不揮発性メモリからの前記制御情報を取得し、前記不揮発性メモリへのデータの書き込み、及び、読み出しを制御する制御部と、を有し、
前記読み出し情報は、前記制御情報を読み出すために用いられ、不揮発性メモリの１ページ分のデータを前記コントローラに転送する機能及び不揮発性メモリに書き込まれるデータに付加されるＥＣＣの訂正機能に関する情報を含む
ことを特徴とした不揮発性記憶装置。
【請求項２】
前記識別情報は、少なくとも前記不揮発性メモリの容量を示す情報、前記不揮発性メモリの製造メーカを特定する情報、及び前記不揮発性メモリのメモリセル構成を示す情報のいずれかを含む、ことを特徴とした請求項１記載の不揮発性記憶装置。
【請求項３】
前記読み出し情報は、不揮発性メモリに書き込まれるＥＣＣ符号の配置を含むデータのフォーマットにより決定される、ことを特徴とした請求項１記載の不揮発性記憶装置。
【請求項４】
前記制御情報は、前記不揮発性メモリに対するアクセスを制御するプログラムあるいはパラメータである、ことを特徴とした請求項１記載の不揮発性記憶装置。
【請求項５】
前記読み出し情報に応じて、前記不揮発性メモリから読み出した制御情報に対するＥＣＣ訂正能力が異なる、ことを特徴とした請求項１記載の不揮発性記憶装置。
【請求項６】
不揮発性メモリに対してデータの書き込み、及び、読み出しの制御を行うコントローラであり、
前記不揮発性メモリは、
固有の識別情報と、
前記コントローラが前記不揮発性メモリへのデータの書き込み、及び、読み出しを制御するための制御情報と、を有し、
前記コントローラは、
複数の種類の不揮発性メモリのそれぞれから前記制御情報を読み出すために使用される複数の読み出し情報と、
前記識別情報を前記不揮発性メモリから読み出して前記不揮発性メモリの種類を判別する判別部と、
前記不揮発性メモリの種類に対応する前記読み出し情報の内の一つを選択する選択部と、
前記選択された読み出し情報に基づいて、前記不揮発性メモリからの前記制御情報を取得し、前記不揮発性メモリへのデータの読み込み、及び、読み出しを制御する制御部と、を有し、
前記読み出し情報は、前記制御情報を読み出すために用いられ、不揮発性メモリの１ページ分のデータを前記コントローラに転送する機能、及び不揮発性メモリに書き込まれるデータに付加されるＥＣＣの訂正機能に関する情報を含む
ことを特徴とした不揮発性メモリのコントローラ。
【請求項７】
前記読み出し情報は、前記不揮発性メモリに書き込まれるＥＣＣ符号の配置を含むデータのフォーマットにより決定される、ことを特徴とした請求項６記載のコントローラ。
【請求項８】
前記読み出し情報に応じて、前記不揮発性メモリから読み出した制御情報に対するＥＣＣ訂正能力が異なる、ことを特徴とした請求項６記載のコントローラ。
【請求項９】
不揮発性メモリに対するデータの書き込み、及び、読み出しをコントローラにより制御する不揮発性記憶システムであり、
前記不揮発性メモリは、
固有の識別情報と、
前記コントローラが前記不揮発性メモリへのデータの書き込み、及び、読み出しを制御するための制御情報と、を有し、
前記コントローラは、
複数の種類の不揮発性メモリのそれぞれから前記制御情報を読み出すために使用される複数の読み出し情報を有し、
前記識別情報を前記不揮発性メモリから読み出して前記不揮発性メモリの種類を判別し、
前記不揮発性メモリの種類に対応する前記読み出し情報の内の一つを選択し、
前記選択された読み出し情報に基づいて、前記不揮発性メモリからの前記制御情報を取得し、前記不揮発性メモリへのデータの書き込み、及び、読み出しを制御し
前記読み出し情報は、前記制御情報を読み出すために用いられ、不揮発性メモリの１ページ分のデータを前記コントローラに転送する機能及び不揮発性メモリに書き込まれるデータに付加されるＥＣＣの訂正機能に関する情報を含む
ことを特徴とした不揮発性記憶システム。
【請求項１０】
前記識別情報は、少なくとも前記不揮発性メモリの容量を示す情報、前記不揮発性メモリの製造メーカを特定する情報、及び前記不揮発性メモリのメモリセル構成を示す情報のいずれかを含む、ことを特徴とした請求項９記載の不揮発性記憶システム。
【請求項１１】
前記読み出し情報は、不揮発性メモリに書き込まれるＥＣＣ符号の配置を含むデータのフォーマットにより決定される、ことを特徴とした請求項９記載の不揮発性記憶システム。
【請求項１２】
前記制御情報は、前記不揮発性メモリに対するアクセスを制御するプログラムあるいはパラメータである、ことを特徴とした請求項９記載の不揮発性記憶システム。
【請求項１３】
前記読み出し情報に応じて、前記不揮発性メモリから読み出した制御情報に対するＥＣＣ訂正能力が異なる、ことを特徴とした請求項９記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを使用した不揮発性記憶装置、及び不揮発性記憶装置のコントローラに関する。
【背景技術】
【０００２】
近年、フラッシュメモリのような不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話に使用される記録媒体として、その市場を拡大している。メモリカード市場の広がりに伴い、従来寡占状態であったメモリカード用のＮＡＮＤフラッシュメモリの市場への新規参入メーカが増え、その結果としてＮＡＮＤフラッシュメモリの仕様が細かなレベルで多様化してきた。さらに、ＮＡＮＤフラッシュメモリとは異なる新たなタイプの不揮発性メモリも提案されており、不揮発性メモリの仕様は、今後より一層様々な種類が混在する状況が想定される。
【０００３】
また、メモリカード内部において、不揮発性メモリを制御して、ホスト機器との一般化されたインターフェースを提供するコントローラも、多様な不揮発性メモリの仕様に対応するために多種多様なものが必要とされる。
【０００４】
特許文献１では、フラッシュカードの開発期間を短縮し、その利便性を高めることを目的として、フラッシュメモリにマイクロコンピュータ用のプログラムを格納することが提案されている。これにより、開発段階での不備に対応する修正を容易に行うことが可能となる。
【特許文献１】特開２０００−８２１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
様々な種類の不揮発性メモリを制御するためには様々な種類の不揮発性メモリに対応したデータフォーマットやアーキテクチャーを備える必要があり、特許文献１の方法ではこれを実現できない。
【０００６】
多様な不揮発性メモリに対応するために多種多様なコントローラを開発することは多大な工数がかかると共に、開発に要する時間も長くなる。また、経営的な観点から考えても多種のコントローラを製造することは在庫を増加させる原因となりマイナス要因となる。
【０００７】
本発明は上記課題を解決すべくなされたものであり、その目的とするところは、不揮発性メモリの種別に関わらず一つのコントローラで制御を可能とした半導体記憶装置を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の態様において、不揮発性メモリと、不揮発性メモリに対するデータの書き込み、及び、読み出しの制御を行なうコントローラとを備えた不揮発性記憶装置が提供される。不揮発性メモリは、固有の識別情報と、コントローラが不揮発性メモリへのデータの書き込み、及び、読み出しを制御するための制御情報と、を有する。コントローラは、複数の種類の不揮発性メモリのそれぞれから制御情報を読み出すために用いられる、複数の読み出し情報と、識別情報を不揮発性メモリから読み出して不揮発性メモリの種類を判別する判別部と、不揮発性メモリの種類に対応する読み出し情報の内の一つを選択する選択部と、選択された読み出し情報に基づいて、不揮発性メモリからの制御情報を取得し、不揮発性メモリへのデータの書き込み、及び、読み出しを制御する制御部と、を有する。読み出し情報は、制御情報を読み出すために用いられ、不揮発性メモリの１ページ分のデータをコントローラに転送する機能及び不揮発性メモリに書き込まれるデータに付加されるＥＣＣの訂正機能に関する情報を含む。
【０００９】
本発明の第２の態様において、不揮発性メモリに対してデータの書き込み、及び、読み出しの制御を行うコントローラが提供される。不揮発性メモリは、固有の識別情報と、コントローラが不揮発性メモリへのデータの書き込み、及び、読み出しを制御するための制御情報と、を有する。コントローラは、複数の種類の不揮発性メモリのそれぞれから制御情報を読み出すために用いられる、複数の読み出し情報と、識別情報を不揮発性メモリから読み出して不揮発性メモリの種類を判別する判別部と、不揮発性メモリの種類に対応する読み出し情報の内の一つを選択する選択部と、選択された読み出し情報に基づいて、不揮発性メモリからの制御情報を取得し、不揮発性メモリへのデータの読み込み、及び、読み出しを制御する制御部と、を有する。読み出し情報は、制御情報を読み出すために用いられ、不揮発性メモリの１ページ分のデータをコントローラに転送する機能及び不揮発性メモリに書き込まれるデータに付加されるＥＣＣの訂正機能に関する情報を含む。
【００１０】
本発明の第３の態様において、不揮発性メモリに対するデータの書き込み、及び、読み出しをコントローラにより制御する不揮発性記憶システムが提供される。不揮発性メモリは、固有の識別情報と、コントローラが不揮発性メモリへのデータの書き込み、及び、読み出しを制御するための制御情報と、を有する。コントローラは、複数の種類の不揮発性メモリのそれぞれから制御情報を読み出すために用いられる、複数の読み出し情報を有し、識別情報を不揮発性メモリから読み出して不揮発性メモリの種類を判別し、不揮発性メモリの種類に対応する読み出し情報の内の一つを選択し、選択された読み出し情報に基づいて、不揮発性メモリからの制御情報を取得し、不揮発性メモリへのデータの書き込み、及び、読み出しを制御する。読み出し情報は、制御情報を読み出すために用いられ、不揮発性メモリの１ページ分のデータをコントローラに転送する機能及び不揮発性メモリに書き込まれるデータに付加されるＥＣＣの訂正機能に関する情報を含む。
【発明の効果】
【００１１】
本発明によれば、コントローラが不揮発性メモリからその制御情報を取得して格納（ロード）するため、搭載する不揮発性メモリに応じてコントローラの設計変更の必要がなく、搭載されている不揮発性メモリの種類が異なっても、同一のコントローラチップで制御を行うことが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、添付の図面を参照し、本発明の実施の形態について説明する。
【００１３】
（実施の形態１）
１．メモリカードの構成
図１は、本発明の不揮発性記憶装置の一実施形態であるメモリカードの構成を示したブロック図である。
【００１４】
図１において、メモリカード１００はホスト１０２によりアクセスされる。メモリカード１００は、コントローラ１０３と、そのコントローラ１０３によって制御されるフラッシュメモリ１０４とを含む。
【００１５】
フラッシュメモリ１０４は、制御情報として、そのフラッシュメモリ１０４に対するデータの書き込み、読出し制御をするために実行される制御プログラムを格納する。なお、フラッシュメモリ１０４は不揮発性メモリの一つの例として示しており、コントローラ１０３によって制御される不揮発性メモリは、フラッシュメモリに限定されず、フラッシュメモリと異なる方式による他の種類の不揮発性メモリであってもよい。
【００１６】
コントローラ１０３は、ホスト１０２とのインターフェースの制御を行うと共に、フラッシュメモリ１０４の制御を行う。コントローラ１０３は、ホスト・インターフェース（ホストＩ／Ｆ）１０５と、フラッシュ・インターフェース（フラッシュＩ／Ｆ）１０６と、ＲＯＭ（リード・オンリー・メモリ）１０７と、ページバッファ１０８と、ＥＣＣ回路（誤り検出訂正回路）１０９と、ＭＰＵ（小型演算装置）１１０と、フラッシュ制御デジタル信号処理装置（フラッシュ制御ＤＳＰ）１１１と、ＩＲＡＭ（インストラクション・ランダム・アクセス・メモリ）１１２とを含む。
【００１７】
ホストＩ／Ｆ１０５は、ホスト１０２とページバッファ１０８の間に介在し、ホスト１０２とのインターフェースを制御する。
【００１８】
フラッシュＩ／Ｆ１０６は、フラッシュメモリ１０４とページバッファ１０８の間に介在し、フラッシュメモリ１０４に対するデータの書き込み、読み出しを制御する。
【００１９】
ＲＯＭ１０７は、６４ＫＢの容量を備えた、書換え不可能な読み出し専用メモリである。ＲＯＭ１０７は、ＭＰＵ１１０を動作させるためのプログラム（ＭＰＵ用プログラム）と、フラッシュメモリ１０４から制御プログラムを読み出すための、複数の制御情報読出しプログラムを格納する。
【００２０】
ページバッファ１０８は、ホストＩ／Ｆ１０５とフラッシュＩ／Ｆ１０６との間に介在し、ホスト１０２からフラッシュメモリ１０４への書込みデータや、フラッシュメモリ１０４からホスト１０２への読み出しデータを一時的に保存するための書換え可能な揮発性メモリである。その容量はフラッシュメモリ１０４に書込みを行えるデータの容量と同容量であり、ここでは２ＫＢである。
【００２１】
ＥＣＣ回路１０９は、フラッシュメモリ１０４にデータを書込む際にデータに付加すべきＥＣＣ符号を演算するエンコーダの機能と、フラッシュメモリ１０４からデータを読み出す際にデータとＥＣＣ符号を基に誤りの有無を演算により検出するデコーダの機能とを持つと共に、複数の訂正能力を切り替えて使用できる機能も有する。
【００２２】
ＭＰＵ１１０は、ＲＯＭ１０７から、ＭＰＵ用プログラムのインストラクションを順次読み出しながら所定の機能を実現する。
【００２３】
ＭＰＵ１１０は、ホスト１０２からのコマンドをホストＩ／Ｆ１０５を介して受信し、必要に応じてフラッシュ制御ＤＳＰ１１１を制御して動作させることにより、ホスト１０２から受信したコマンドを実行する。ＭＰＵ１１０は、フラッシュメモリ１０４の種類を判別して、フラッシュメモリ１０４から制御プログラムを読み出すための手順を決定する機能と、制御プログラムをフラッシュメモリ１０４から読み出し、ＩＲＡＭ１１２にロードする機能とを有する。
【００２４】
フラッシュ制御ＤＳＰ１１１は、ＩＲＡＭ１１２に格納されているプログラムを読み出しながら、ＭＰＵ１１０の制御に従い、ホストＩ／Ｆ１０５、フラッシュＩ／Ｆ１０６、ページバッファ１０８、及びＥＣＣ回路１０９を制御して、ホスト１０２からフラッシュメモリ１０４へのデータの書込みや、フラッシュメモリ１０４からホスト１０２へのデータの読み出しを制御する。
【００２５】
また、ＲＯＭ１０７は、フラッシュメモリ１０４の種類を判定するための最低限度の数十ワードのデータを保持している。フラッシュメモリ１０４の種類を判定するためのデータは、フラッシュメモリデバイスに固有の識別情報（ＩＤ）であり、例えば、製造者を示すメーカコード、デバイスの容量を示すデバイスコード、デバイス内部のメモリセル構成を示すコードが含まれる。
【００２６】
ＩＲＡＭ１１２は、フラッシュ制御ＤＳＰ１１１を動作させるためのインストラクションコードを格納するメモリで、書換え可能な２ＫＢの容量の揮発性メモリで構成される。本実施の形態では、制御対象であるフラッシュメモリ１０４の種類に応じて異なるインストラクションコードをＩＲＡＭ１１２に種々格納することで、多様な不揮発性メモリの制御を可能にしている。
【００２７】
２．動作シーケンス
図２は、本実施形態のメモリカード（不揮発性記憶装置）の初期化動作時におけるコントローラとフラッシュメモリ間の動作シーケンスを説明した図である。
【００２８】
（１）メモリカードの電源がオンされると、初期化動作が開始される。コントローラ１０３からフラッシュメモリ１０４に、フラッシュメモリ１０４の種類について問い合わせを行う。フラッシュメモリ１０４は、この問い合わせに応答して、フラッシュメモリ１０４の種類についての識別情報（例えば、製造者を示すメーカコード、デバイスの容量を示すデバイスコード、デバイス内部のメモリセル構成を示すコード等）を回答する。なお、フラッシュメモリの種類について問い合わせを行うのは、フラッシュメモリの種類に応じて異なるデータの読み出し手段を決定するためである。例えば、フラッシュメモリの種類により、読み出しコマンド及びアドレス指定方法、読み出し単位、適用するＥＣＣの範囲及び性能が異なる。
【００２９】
（２）コントローラ１０３は、フラッシュメモリ１０４から、その種類についての情報を回答として取得すると、その取得した情報に基づきフラッシュメモリ１０４の種類を特定する。
【００３０】
（３）続いてコントローラ１０３は、フラッシュメモリ１０４の種類に応じて、フラッシュメモリ１０４から制御情報を取得するための手続き（手順）を選択する。制御情報は、不揮発性メモリに対するデータの書き込み、読み出しの制御方法を指定する情報であり、制御プログラムや制御パラメータ等である。
【００３１】
（４）選択した手続き（手順）にしたがいフラッシュメモリ１０４から制御情報を取得する。
【００３２】
（５）取得した制御情報を用いて、フラッシュメモリ１０４にアクセスする際の動作モードを設定する。
【００３３】
以上のように、本実施形態では初期化動作時においてコントローラ１０３に対してフラッシュメモリ１０４に適した制御情報が設定される。
【００３４】
３．フローチャート
図３は、実施の形態１のメモリカードにおける、不揮発性メモリに応じた制御プログラムをＩＲＡＭ１１２にロードする処理を示したフローチャートである。本処理はＭＰＵ１１０により実行される。
【００３５】
メモリカード１００がホスト１０２に接続され、電源がオンされると、ＭＰＵ１１０は不揮発性メモリとして接続されるフラッシュメモリ１０４に対して、メモリの種類の問い合わせ、すなわち、デバイスの認識を行う（Ｓ１１）。具体的には、デバイスの認識は、フラッシュメモリ１０４から、その識別情報（ＩＤ）を取得することで行われる。
【００３６】
次に、ＭＰＵ１１０は、識別情報に基づいてメモリデバイスに対応した制御情報読み出しプログラムを選択し、ＩＲＡＭ１１２にロードする（Ｓ１２）。具体的には、ＭＰＵ１１０は、フラッシュメモリ１０４から読み出した識別情報に基づき、ＲＯＭ１０７に予め格納されている複数の制御情報読み出しプログラムの中から、フラッシュメモリ１０４に対応する１つのプログラムを選択し、その選択したプログラムをＩＲＡＭ１１２のプログラム格納領域へ転送する。この際、ＭＰＵ１１０は、ＭＰＵ用プログラムにしたがいフラッシュメモリ１０４に対応した動作を行ってもよい。
【００３７】
制御情報読み出しプログラムは、少なくともフラッシュメモリ１０４の１ページ分のデータをページバッファ１０８へ転送する機能と、フラッシュメモリ１０４に書き込まれるデータに付加されるＥＣＣの訂正機能とを実現する。制御情報読み出しプログラムは、フラッシュメモリ１０４に書き込まれるＥＣＣ符号の配置を含むデータのフォーマットによって決定される、フラッシュメモリ１０４にユニークなプログラムである。
【００３８】
メモリカード１００に搭載可能な多様な不揮発性メモリは、それぞれ、データ保持能力等の信頼性数値が異なるので、不揮発性メモリに応じた適切な能力のＥＣＣ符号を付加してデータを書込む。従って読み出す際にも付加されたＥＣＣ符号の能力に応じた読み出しを行う必要がある。ステップＳ１２において、ＭＰＵ１１０が、フラッシュメモリ１０４に応じた適切な制御情報読み出しプログラムをＩＲＡＭ１１２にロードすることによって、フラッシュメモリ１０４が必要とするＥＣＣ符号の訂正能力に応じたデータの書き込み及び読み出しがフラッシュ制御ＤＳＰ１１１によって実行可能となる。
【００３９】
次に、ＩＲＡＭ１１２にロードされた制御情報読み出しプログラムにしたがい、制御プログラムが読み出される（Ｓ１３）。具体的には、ＭＰＵ１１０はフラッシュ制御ＤＳＰ１１１を制御して、フラッシュメモリ１０４から制御プログラムを読み出す。つまり、フラッシュ制御ＤＳＰ１１１は、ＩＲＡＭ１１２にロードされた制御情報読み出しプログラムをインストラクションコードとして、フラッシュメモリ１０４から制御プログラムを読み出し、ページバッファ１０８へ転送する。
【００４０】
この制御プログラムの読み出しにおいて誤り訂正が可能なエラーがあった場合、フラッシュ制御ＤＳＰ１１１は制御情報読み出しプログラムを使用することにより、ページバッファ１０８におけるデータの誤りを訂正する。
【００４１】
制御プログラムは、フラッシュ制御ＤＳＰ１１１がフラッシュメモリ１０４を制御するためのプログラムを格納しており、種々のフラッシュメモリの特徴に合わせてカスタマイズされたプログラムである。
【００４２】
最後に、読み出した制御プログラムをＩＲＡＭ１１２へロードする（Ｓ１４）。具体的には、ＭＰＵ１１０は、ページバッファ１０８へ読み出した制御プログラムをＩＲＡＭ１１２のプログラム格納領域へ転送する。これにより、フラッシュ制御ＤＳＰ１１１はＩＲＡＭ１１２にロードされた制御プログラムによってフラッシュメモリ１０４の制御が可能となる。
【００４３】
以上のように、本実施形態では、最初にメモリデバイスを認識し、メモリデバイスに応じた制御情報読み出しプログラムを選択し、その選択された制御情報読み出しプログラムに基づき、フラッシュメモリ１０４に応じた制御プログラムをフラッシュメモリ１０４から読み出して、ＩＲＡＭ１１２へロードする。このような方法で、コントローラ１０３はフラッシュメモリ１０４の種類に応じた動作モードの設定を行うことが可能となる。
【００４４】
また、フラッシュメモリ１０４に格納できる制御プログラムは、コントローラ１０３に接続される可能性がある多様な不揮発性メモリの各々に対して任意に設定できるので、コントローラ１０３を、その仕様を変更せずに、種々の不揮発性メモリに対応させて動作させることができる。
【００４５】
４．まとめ
本実施形態のメモリカードによれば、コントローラが不揮発性メモリ（フラッシュメモリ）の制御に必要な情報（制御プログラム）を、不揮発性メモリに応じた方法で、不揮発性メモリから読み出して使用する。つまり、不揮発性記憶装置に搭載された不揮発性メモリの種類が異なっても、同一のコントローラで不揮発性メモリの制御を行うことができるため、不揮発性メモリ毎に異なる仕様を有するコントローラを開発する必要がなく、不揮発性記憶装置の設計、製造時のコストを低減できる。
【００４６】
（実施の形態２）
本発明の別の実施の形態を説明する。本実施形態のメモリカードは、図１に示す構成を有し、その動作シーケンスも図２に示すものと同様である。
【００４７】
図４を参照して、本実施形態のメモリカードにおけるフラッシュメモリに応じた制御プログラムをコントローラにロードする処理を説明する。
【００４８】
メモリカード１００の電源がオンされると、ＭＰＵ１１０はＲＯＭ１０７に格納されたＩＤ読出しプログラムをＩＲＡＭ１１２にロードする（Ｓ２１）。フラッシュ制御ＤＳＰ１１１は、ＩＲＡＭ１１２に格納されたＩＤ読出しプログラムにしたがい、ある問合せ手順でフラッシュメモリ１０４に対してフラッシュメモリ１０４に固有の識別情報（ＩＤ）を問い合わせる（Ｓ２２）。なお、ＭＰＵ１１０は複数の問合せ手順を備えており、必要に応じて各問合せ手順を順次試行可能なものとする。
【００４９】
フラッシュメモリ１０４は識別情報をフラッシュ制御ＤＳＰ１１１に返信する。ＭＰＵ１１０は、フラッシュ制御ＤＳＰ１１１を介してフラッシュメモリ１０４の識別情報を取得し、その取得した識別情報に基づき、コントローラ１０３に接続するフラッシュメモリ１０４がコントローラ１０３により処理可能なメモリであるか否かを判断する（Ｓ２３）。具体的には、フラッシュメモリ１０４から取得した識別情報と、ＲＯＭ１０７に格納された識別情報とを照合し、一致するものがあった場合に、フラッシュメモリ１０４がコントローラ１０３により処理可能なメモリであると判断する。
【００５０】
コントローラ１０３に接続するフラッシュメモリ１０４が、コントローラ１０３により処理可能なメモリであると判断されたときは、制御情報取得処理を実行する（Ｓ２４）。そうでないときは、未試行の問合せ手順があるか否かを判断し（Ｓ２５）、ある場合は、次の問合せ手順で識別情報（ＩＤ）を再度問合わせる（Ｓ２２）。
【００５１】
いずれの問合せ手順を用いても、フラッシュメモリ１０４が、コントローラ１０３により処理可能なメモリであると判断されなかったときは、異常終了させる。この場合、例えば、「異常終了」である旨をホスト１０２上に表示させてもよい。
【００５２】
次に、図５を参照し、上記ステップＳ２４の制御情報取得処理を説明する。フラッシュメモリ１０４がコントローラ１０３により処理可能なメモリである場合、ＭＰＵ１１０は、ＲＯＭ１０７に格納されている複数の制御情報読み出しプログラムの中から、識別情報（ＩＤ）に対応する制御情報読出しプログラムを選択し、ＩＲＡＭ１１２のプログラム格納領域へ転送する（Ｓ２０１）。次に、ＭＰＵ１１０は、ＩＲＡＭ１１２に格納された制御情報読み出しプログラムにしたがいフラッシュ制御ＤＳＰ１１１を制御し、フラッシュメモリ１０４から制御情報として制御プログラムを読み出す（Ｓ２０２）。読み出した制御プログラムをＩＲＡＭ１１２のプログラム格納領域に格納する（Ｓ２０３）。
【００５３】
本実施形態においても、コントローラ１０３においてフラッシュメモリ１０４の仕様に応じた制御プログラムが設定されるため、不揮発性記憶装置に搭載されている不揮発性メモリの種類が異なっても同一のコントローラで不揮発性メモリの制御を行うことができるため、不揮発性メモリ毎に異なる仕様を有するコントローラを開発する必要がなく、不揮発性記憶装置の設計、製造時のコストを低減できる。
【００５４】
（実施の形態３）
本発明のさらに別の実施の形態を説明する。図６は、本発明の不揮発性記憶装置のさらに別の実施の形態であるメモリカードの構成を示したブロック図である。
【００５５】
本実施形態のメモリカード１００ｂは図１に示すメモリカードの構成に加えて、さらにフラッシュ制御ＤＳＰ１１１に接続したＲＯＭ１２０を備える。
【００５６】
実施の形態１、２では、ＩＤ読出しプログラムはＭＰＵ１１０に接続するＲＯＭ１０７に格納されていたが、本実施形態では、フラッシュ制御ＤＳＰ１１１に接続したＲＯＭ１２０に格納される。このように、本実施形態のメモリカード１００ｂは、実施の形態１、２のものとは、ＩＤ読出しプログラムの読み出し先が異なるのみで、その他の処理は、図３または図４及び図５に示す処理と同様である。
【００５７】
本実施形態においても、フラッシュメモリ１０４から読み出した制御プログラムをコントローラ１０３ｂにロードすることで、コントローラ１０３ｂによるフラッシュメモリ１０４の仕様に応じたアクセスが可能となる。
【００５８】
（実施の形態４）
本発明のさらに別の実施の形態を説明する。本実施形態では、プログラムの実行に不可欠な複数のパラメータをプログラムと別に管理する。そして、複数のパラメータから、フラッシュメモリの種類に応じた１つを選択し、その選択したパラメータを用いてプログラムを実行することで、フラッシュメモリに対応した制御を可能とする。
【００５９】
図７は、本発明の不揮発性記憶装置のさらに別の実施の形態であるメモリカードの構成を示したブロック図である。
【００６０】
本実施形態のメモリカード１００ｃは図１に示すメモリカードの構成に加えて、さらにフラッシュ制御ＤＳＰ１１１に接続したＲＯＭ１２１を備える。
【００６１】
本実施形態では、ＭＰＵ１１０に接続するＲＯＭ１０７は、ＭＰＵ用プログラムに加えて、複数の制御情報読出しパラメータを格納する。フラッシュ制御ＤＳＰ１１１に接続したＲＯＭ１２１は、ＩＤ読出しプログラムと、制御情報読出しプログラムと、制御プログラムとを格納する。
【００６２】
制御情報読出しパラメータはフラッシュメモリの種類毎に設定される。制御情報読出しパラメータを用いて、制御情報読出しプログラムを実行することで、フラッシュメモリの種類に応じた制御パラメータの読み出しが実現できる。制御プログラムは、制御パラメータを参照して実行される。制御パラメータは、フラッシュメモリ１０４内に格納されており、メモリカードの電源オン時にフラッシュメモリ１０４から読み出されて、制御プログラムの実行時に使用される。
【００６３】
以上の構成を有するメモリカードの動作フローは基本的には図４に示すとおりである。すなわち、メモリカード１００の電源がオンされると、ＭＰＵ１１０はＲＯＭ１０７に格納されたＩＤ読出しプログラムをＩＲＡＭ１１２にロードする（Ｓ２１）。フラッシュ制御ＤＳＰ１１１は、ＩＲＡＭ１１２に格納されたＩＤ読出しプログラムにしたがい、フラッシュメモリ１０４に対してフラッシュメモリ１０４の識別情報（ＩＤ）を問い合わせる（Ｓ２２）。フラッシュメモリ１０４は識別情報をフラッシュ制御ＤＳＰ１１１に返信する。ＭＰＵ１１０は、フラッシュ制御ＤＳＰ１１１を介してフラッシュメモリ１０４の識別情報を取得し、その取得した識別情報にしたがい、コントローラ１０３ｃに接続するフラッシュメモリ１０４が、コントローラ１０３ｃにより処理可能なメモリであるか否かを判断する（Ｓ２３）。
【００６４】
フラッシュメモリ１０４がコントローラ１０３ｃにより処理可能なメモリである場合、制御情報所得処理（ステップＳ２４）を実行する。図８のフローチャートを参照し、本実施形態における制御情報所得処理の詳細を説明する。
【００６５】
フラッシュメモリ１０４がコントローラ１０３ｃにより処理可能なメモリである場合、ＭＰＵ１１０は、ＲＯＭ１０７に格納されている複数の制御情報読み出しパラメータの中から、識別情報（ＩＤ）に対応する制御情報読出しパラメータを選択し、ＩＲＡＭ１１２のパラメータ格納領域へ転送する（Ｓ２１１）。次に、フラッシュ制御ＤＳＰ１１１は、ＩＲＡＭ１１２に格納されたパラメータを使用して、ＲＯＭ１２１に格納された制御情報読み出しプログラムを実行し、これにより、フラッシュメモリ１０４に応じた適切な読み出し制御を行い、フラッシュメモリ１０４から制御情報として制御パラメータを読み出す（Ｓ２１２）。読み出した制御パラメータは、ＩＲＡＭ１１２のパラメータ格納領域に格納する（Ｓ２１３）。このようにして読み出された制御パラメータはフラッシュメモリ１０４の特性を示す情報を有し、よって、フラッシュ制御ＤＳＰ１１１は、この制御パラメータを使用して制御プログラムを実行することで、フラッシュメモリ１０４の仕様に応じたアクセスが可能となる。
【００６６】
一般にパラメータはプログラムよりもデータ量が小さいため、本実施の形態のように、プログラムの代わりに、フラッシュメモリの仕様に応じたパラメータを複数格納することで、必要なＲＯＭ容量を削減できる。
【００６７】
本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は日本国特許出願、特願２００５−０８３０７２号（２００５年３月２３日提出）に関連し、それらの内容は参照することにより本文中に組み入れられる。
【産業上の利用可能性】
【００６８】
本発明は、不揮発性メモリと、それを制御するコントローラとを備えた不揮発性記憶装置に有用である。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施の形態１によるメモリカード（不揮発性記憶装置）の構成を示すブロック図
【図２】本発明の実施の形態１によるメモリカードの初期化動作時の動作シーケンス
【図３】本発明の実施の形態１によるメモリカードの制御情報のロード動作を示すフローチャート
【図４】本発明の実施の形態２によるメモリカードの制御情報のロード動作を示すフローチャート
【図５】本発明の実施の形態２によるメモリカードの制御情報取得処理を示すフローチャート
【図６】本発明の実施の形態３によるメモリカード（不揮発性記憶装置）の構成を示すブロック図
【図７】本発明の実施の形態４によるメモリカード（不揮発性記憶装置）の構成を示すブロック図
【図８】本発明の実施の形態４によるメモリカードの制御情報取得処理を示すフローチャート
【符号の説明】
【００７０】
１００、１００ｂ、１００ｃ  メモリカード
１０２  ホスト
１０３、１０３ｂ、１０３ｃ  コントローラ
１０４  フラッシュメモリ
１０５  ホストＩ／Ｆ
１０６  フラッシュＩ／Ｆ
１０７、１２０、１２１  ＲＯＭ
１０８  ページバッファ
１０９  ＥＣＣ回路
１１０  ＭＰＵ
１１１  フラッシュ制御ＤＳＰ
１１２  ＩＲＡＭ
【図１】
0004740233.tif 000002
【図２】
0004740233.tif 000003
【図３】
0004740233.tif 000004
【図４】
0004740233.tif 000005
【図５】
0004740233.tif 000006
【図６】
0004740233.tif 000007
【図７】
0004740233.tif 000008
【図８】
0004740233.tif 000009