(57)【要約】  ブートプログラム格納用として使用でき、ホスト装置での制御が容易な不揮発性メモリシステムを提供する。  フラッシュメモリ２００からブートコード２０１を読み出す際には、メモリコントローラ１００は、ホスト装置３００の指示に基づいて第１の動作モードを実行し、フラッシュメモリ２００の物理アドレスを指定してフラッシュメモリ２００の特定の領域からブートコード２０１を読み出す。
2008117520.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置の要求に応じて不揮発性メモリにアクセスするメモリコントローラであって、
前記ホスト装置の第１の動作モード設定の指示を受け、前記不揮発性メモリの物理アドレスを指定して前記不揮発性メモリの特定の領域からデータを読み出すシステム制御手段と、
前記システム制御手段と前記ホスト装置との間で信号の送受信を行う第１のインターフェースと、
前記システム制御手段と前記不揮発性メモリとの間で信号の送受信を行う第２のインターフェースとを備えるメモリコントローラ。
【請求項２】
前記システム制御手段は、前記ホスト装置により設定される２つの動作モードでの動作が可能であり、前記第１の動作モードとは異なる第２の動作モードにおいては、前記ホスト装置の指示するアクセスアドレスを、アドレス変換テーブルを用いて前記不揮発性メモリの物理アドレスへ変換した後、当該変換された物理アドレスにアクセスする請求項１に記載のメモリコントローラ。
【請求項３】
前記システム制御手段は、前記第１の動作モードでの動作中または動作完了後に前記アドレス変換テーブルを作成し、前記第１の動作モードでの動作完了後に前記第２の動作モードにモードを切り替える請求項２に記載のメモリコントローラ。
【請求項４】
前記第１の動作モードは、第１の初期化処理により動作可能となり、前記第１の初期化処理はフラッシュメモリコンフィギュレーションを含む請求項２に記載のメモリコントローラ。
【請求項５】
前記第１の初期化処理は、電源投入後またはリセット後に行われる請求項４に記載のメモリコントローラ。
【請求項６】
前記第２の動作モードは、第２の初期化処理により動作可能となり、前記第２の初期化処理はフラッシュメモリコンフィギュレーション、システムコンフィギュレーションおよびアドレス変換テーブルの作成を含む請求項２に記載のメモリコントローラ。
【請求項７】
前記第１の動作モードは、前記ホスト装置が所定のコマンドを発行することにより設定される請求項２に記載のメモリコントローラ。
【請求項８】
前記不揮発性メモリに、前記第１の動作モードでデータが読み出される特定の領域の物理アドレスが保持され、
前記システム制御手段は、前記第１の動作モードにおいて前記特定の領域の物理アドレスを読み出す請求項２に記載のメモリコントローラ。
【請求項９】
前記システム制御手段は、前記第１の動作モードの有効および無効を切り替えるモード切替手段を更に備え、
前記システム制御手段は、前記第１の動作モードが有効な場合には、前記ホスト装置の設定指示に従って前記第１の動作モードを設定し、前記第１の動作モードが無効な場合には、前記ホスト装置の設定指示を無効なアクセスと判定する請求項２に記載のメモリコントローラ。
【請求項１０】
請求項１に記載のメモリコントローラおよび不揮発性メモリを備え、前記ホスト装置からの要求に応じて前記不揮発性メモリにアクセスする不揮発性メモリシステム。
【請求項１１】
前記ホスト装置と着脱可能な形態である請求項１０に記載の不揮発性メモリシステム。
【請求項１２】
前記ホスト装置に実装され、前記ホスト装置と着脱が不可能な形態である請求項１０に記載の不揮発性メモリシステム。
【請求項１３】
請求項１０に記載の前記不揮発性メモリシステムにアクセスしてデータ転送を要求するホスト装置であって、
起動時に前記第１の動作モードで前記不揮発性メモリシステムにアクセスし、起動完了後に第２の動作モードで前記不揮発性メモリシステムにアクセスするホスト装置。
【請求項１４】
起動時に前記第１の動作モードで前記不揮発性メモリシステムからブートプログラムを読み出す請求項１３に記載のホスト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリの制御を行うメモリコントローラ、前記不揮発性メモリおよびメモリコントローラで構成された不揮発性メモリシステム、ならびに前記不揮発性メモリシステムにアクセスするホスト装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ、ムービー、携帯電話、携帯型音楽プレーヤなどのデジタル情報を扱う装置(以下、これらの装置をまとめて「ホスト装置」という)において、デジタル情報を保持するための記憶装置として不揮発性メモリが用いられている。その中でもNAND型フラッシュメモリは大容量かつ低コストという特性を生かし、プログラム格納用として、アプリケーションプログラムだけでなくブートプログラムの格納にも用いられるようになってきた。【０００３】
NAND型フラッシュメモリにブートプログラムを格納し、フラッシュメモリからのブートを実現するために、ブートプログラムを保持するキャッシュを備えた不揮発性メモリシステムが提案されている(例えば特許文献１参照)。しかし、この従来の不揮発性メモリシステムにおいては、データの書換えや不良ブロック管理のためのアドレス管理、誤り訂正などの機能はホスト装置が備えている必要がある。このため従来の不揮発性メモリシステムは、ホスト装置での制御が複雑になるという問題があった。
【特許文献１】特開２００４−２２０５５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
不揮発性メモリの応用として、SD(Secure Digital)メモリカードのように、ホスト装置と着脱可能な形態の不揮発性メモリシステムが普及している。このような不揮発性メモリシステムは、不揮発性メモリとコントローラとを備え、コントローラがNAND型フラッシュメモリの制御を行っている。結果として、ホスト装置からの制御が容易な論理デバイスを実現している。【０００５】
ホスト装置が不揮発性メモリシステムへアクセスするためには、ドライバソフトを用いて所定の初期化処理を行う必要がある。しかし、起動時にはドライバソフトがホスト装置に読み込まれていないため、初期化処理が行えない。このため従来の不揮発性メモリシステムは、フラッシュメモリにブートプログラムを格納しても、読み出しを行うことができず、そのままではブートプログラム格納用として使用することができなかった。【０００６】
本発明はこのような従来の問題点を解決し、ブートプログラム格納用として使用でき、しかもホスト装置での制御が容易な不揮発性メモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係るメモリコントローラは、ホスト装置の要求に応じて不揮発性メモリにアクセスするメモリコントローラであって、
前記ホスト装置の第１の動作モード設定の指示を受け、前記不揮発性メモリの物理アドレスを指定して前記不揮発性メモリの特定の領域からデータを読み出すシステム制御手段と、
前記システム制御手段と前記ホスト装置との間で信号の送受信を行う第１のインターフェースと、
前記システム制御手段と前記不揮発性メモリとの間で信号の送受信を行う第２のインターフェースとを備えるものである。【０００８】
ここで、前記システム制御手段は、前記ホスト装置により設定される２つの動作モードでの動作が可能であり、前記第１の動作モードとは異なる第２の動作モードにおいては、前記ホスト装置の指示するアクセスアドレスを、アドレス変換テーブルを用いて前記不揮発性メモリの物理アドレスへ変換した後、当該変換された物理アドレスにアクセスすることが好ましい。【０００９】
前記システム制御手段は、前記第１の動作モードでの動作中または動作完了後に前記アドレス変換テーブルを作成し、前記第１の動作モードでの動作完了後に前記第２の動作モードにモードを切り替えることが好ましい。【００１０】
前記第１の動作モードは、第１の初期化処理により動作可能となり、前記第１の初期化処理はフラッシュメモリコンフィギュレーションを含むことが好ましい。更に前記第１の初期化処理は、電源投入後またはリセット後に行われることが好ましい。【００１１】
前記第２の動作モードは、第２の初期化処理により動作可能となり、前記第２の初期化処理はフラッシュメモリコンフィギュレーション、システムコンフィギュレーションおよびアドレス変換テーブルの作成を含むことが好ましい。【００１２】
前記第１の動作モードは、前記ホスト装置が所定のコマンドを発行することにより設定されることが好ましい。【００１３】
本発明に係るメモリコントローラは、前記不揮発性メモリに、前記第１の動作モードでデータが読み出される特定の領域の物理アドレスが保持され、前記システム制御手段は、前記第１の動作モードにおいて前記特定の領域の物理アドレスを読み出すようにしてもよい。【００１４】
ここで前記システム制御手段は、前記第１の動作モードの有効および無効を切り替えるモード切替手段を更に備え、前記第１の動作モードが有効な場合には前記ホスト装置の設定指示に従って前記第１の動作モードを設定し、前記第１の動作モードが無効な場合には前記ホスト装置の設定指示を無効なアクセスと判定することが好ましい。【００１５】
また本発明に係る不揮発性メモリシステムは、前記メモリコントローラおよび不揮発性メモリを備え、前記ホスト装置からの要求に応じて前記不揮発性メモリにアクセスするものである。【００１６】
ここで、本発明に係る不揮発性メモリシステムは、前記ホスト装置と着脱可能な形態、もしくは前記ホスト装置に実装され、前記ホスト装置と着脱が不可能な形態のいずれかであることが好ましい。【００１７】
また本発明に係るホスト装置は、前記不揮発性メモリシステムにアクセスしてデータ転送を要求するホスト装置であって、
起動時に前記第１の動作モードで前記不揮発性メモリシステムにアクセスし、起動完了後に前記第２の動作モードで前記不揮発性メモリシステムにアクセスするものである。
【発明の効果】
【００１８】
本発明に係る不揮発性メモリシステムの動作モード（第１の動作モード）では、従来の動作モード（第２の動作モード）で必要であったアドレス変換テーブルの作成を行わず、メモリコントローラが不揮発性メモリの特定の領域からデータの読み出しを行う。【００１９】
結果として、本発明に係る不揮発性メモリシステムは、起動時にドライバソフトがホスト装置に組み込まれていなくても、不揮発性メモリに格納されたブートプログラムを読み出すことができるため、ブートプログラム格納用として使用できる。また本発明に係る不揮発性メモリシステムは、ホスト装置での制御も容易である。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明の第１の実施の形態に係る不揮発性メモリシステムおよびホスト装置の構成を示すブロック図である。
【図２】図２は、図１のメモリコントローラの動作を説明するための状態遷移図である。
【図３】図３は、第１の動作モード設定手順および第１の動作モードでのアクセスを説明するためのフロー図である。
【図４】図４は、第２の動作モード設定手順を説明するためのフロー図である。
【図５】図５は、アドレス変換テーブルの構成を示す図である。
【図６】図６は、第２の動作モードでのアクセスを説明するためのフロー図である。
【図７】図７は、本発明の第２の実施の形態に係る不揮発性メモリシステムおよびホスト装置の構成を示すブロック図である。
【図８】図８は、第１の動作モード設定手順および第１の動作モードでのアクセスを説明するためのフロー図である。
【発明を実施するための最良の形態】
【００２１】
（第１の実施の形態）
図１に、本発明の第１の実施の形態に係るメモリコントローラを内蔵した不揮発性メモリシステムの構成、およびそのメモリシステムにアクセスするホスト装置の構成を示す。【００２２】
不揮発性メモリシステム４００は、メモリコントローラ１００とフラッシュメモリ２００で構成される。メモリコントローラ１００は、ホスト装置３００の指示に基づき、第１の動作モードおよび第２の動作モードのいずれかの動作モードでフラッシュメモリ２００にアクセスできる。【００２３】
第１の動作モードにおいては、メモリコントローラ１００は、ホスト装置３００の指示に基づき、フラッシュメモリ２００の特定の領域からブートプログラムを読み出す。第２の動作モードにおいては、メモリコントローラ１００は、ホスト装置３００の指示に基づき、フラッシュメモリ２００からデータを読み出し、もしくはフラッシュメモリ２００にデータを書き込む。【００２４】
メモリコントローラ１００は、システム制御部１１０、ホストＩＦ部１２０およびフラッシュＩＦ部１３０を含む。システム制御部１１０はフラッシュメモリ２００へのデータの書き込みおよびフラッシュメモリ２００からのデータの読み出しを制御し、またホスト装置３００との間のデータ転送の制御を行う。ホストＩＦ部１２０はホスト装置３００との信号の送受信を行う。フラッシュＩＦ部１３０はフラッシュメモリ２００との信号の送受信を行う。フラッシュＩＦ部１３０は、データを一時的に保持するＲＡＭ１３１を内蔵している。【００２５】
システム制御部１１０は、モード切替部１１１、送受信処理部１１２、アドレス変換テーブル１１３およびレジスタ１１４を含む。モード切替部１１１は、ホスト装置３００の動作モード設定手順に従ってメモリコントローラ１００の動作モードを設定する。なお動作モード設定手順については後に詳述する。またモード切替部１１１は、不揮発性メモリシステム４００の動作モードのうち、第１の動作モードを有効にするかしないかの切り替えを行う。【００２６】
送受信処理部１１２は、ホスト装置３００の要求に応じてフラッシュメモリ２００へのデータ転送の制御を行う。アドレス変換テーブル１１３は、ホスト装置３００から転送されるアクセスアドレスをフラッシュメモリ２００の物理アドレスに変換するためのテーブルである。レジスタ１１４は、メモリコントローラ１００の詳細な動作設定のために使用される。【００２７】
フラッシュメモリ２００のうち、メモリコントローラ１００が第１の動作モードで読み出しを行う領域にブートコード２０１が格納されている。ブートコード２０１はホスト装置３００の起動のためのプログラムである。【００２８】
ホスト装置３００は、ＣＰＵ３１０、メモリ制御部３２０およびＲＡＭ３３０を含む。ＣＰＵ３１０は、メモリ制御部３２０を構成するメモリＩＦ部３２１およびモード設定部３２２の制御を行う。メモリＩＦ部３２１は不揮発性メモリシステム４００への信号の送受信を行う。モード設定部３２２は不揮発性メモリシステム４００の動作モードを設定する。ＲＡＭ３３０はＣＰＵ３１０で処理するデータを一時的に保持する。【００２９】
図示しないが、不揮発性メモリシステム４００は、ホスト装置３００に設けられたスロットを介して、ホスト装置３００に着脱可能な形態で取り付けられている。従って、不揮発性メモリシステム４００で消費される電力は、電源ラインを介してホスト装置３００から供給される。なお、不揮発性メモリシステム４００がホスト装置３００に実装され、ホスト装置３００から着脱できない形態を採用することも可能である。【００３０】
次に、図２を参照して不揮発性メモリシステム４００内のメモリコントローラ１００の状態遷移について説明する。前述したようにメモリコントローラ１００は、第１の動作モードおよび第２の動作モードのいずれかの動作モードでフラッシュメモリ２００にアクセスできる。【００３１】
電源投入またはリセットにより不揮発性メモリシステム４００はIdle状態となる（ステップＳ２０１）。このIdle状態（ステップＳ２０１）において、ホスト装置３００が第１の動作モードを設定すると、メモリコントローラ１００のモード切替部１１１は、第１の動作モードが有効であるかどうかのチェックを行う（ステップＳ２０２）。【００３２】
ここで、第１の動作モードが有効な場合とは、フラッシュメモリ２００にブートコード２０１が書き込まれた特定の領域があり、かつメモリコントローラ１００が、第１の動作モードで特定の領域にアクセスできる状態にあることをいう。一方、第１の動作モードが有効でない（無効な）場合とは、フラッシュメモリ２００にブートコード２０１が書き込まれた特定の領域がないか、フラッシュメモリ２００にブートコード２０１が書き込まれた特定の領域があっても、メモリコントローラ１００が、第１の動作モードで特定の領域にアクセスできない状態にあることをいう。【００３３】
ステップＳ２０２において、メモリコントローラ１００は第１の動作モードが無効（Ｎｏ）であればIdle状態（ステップＳ２０１）に戻り、有効（Ｙｅｓ）であれば、引き続いて第１の初期化処理を行う（ステップＳ２０３）。その後、メモリコントローラ１００は第１の動作モードで動作する（ステップＳ２０４）。すなわちメモリコントローラ１００は第１の動作モードでフラッシュメモリ２００へアクセスする（ステップＳ２０５）。引き続いてメモリコントローラ１００は第２の初期化処理を行う(ステップＳ２０６)。なお、第１および第２の初期化処理については後に詳述する。【００３４】
一方、Idle状態（ステップＳ２０１）において、ホスト装置３００が第２の動作モードの設定を行うと、メモリコントローラ１００は、第２の初期化処理を行う（ステップＳ２０６）。その後、メモリコントローラ１００は第２の動作モードで動作する（ステップＳ２０７）。すなわちメモリコントローラ１００は、ホスト装置３００からの要求に応じて、フラッシュメモリ２００にアクセスする（ステップＳ２０８）。【００３５】
以下、第１の動作モードおよび第２の動作モードについてそれぞれ図面を参照して詳細に説明し、最後に第１の動作モードと第２の動作モードとの関係について説明する。【００３６】
［第１の動作モード］
最初に、ホスト装置３００がフラッシュメモリ２００からブートコードを読み出す第１の動作モードについて説明する。図３に、図２のIdle状態（ステップＳ２０１）においてホスト装置３００が第１の動作モードの設定を行った後、メモリコントローラ１００が第１の動作モードで動作するまで（ステップＳ２０３〜Ｓ２０５）の具体的な処理の流れを示す。【００３７】
ホスト装置３００は、起動時にモード設定部３２２（図１）を第１の動作モードに設定し、不揮発性メモリシステム４００に対して第１の初期化処理の開始を要求するコマンドを発行する。【００３８】
システム制御部１１０は、ホスト装置３００からの第１の初期化処理開始の要求コマンドを受けて、第１の初期化処理を実行する（ステップＳ２０３）。第１の初期化処理は、フラッシュメモリコンフィギュレーションを含む処理である。フラッシュメモリコンフィギュレーションでは、接続されているフラッシュメモリ２００の個数や容量の確認を行う。【００３９】
第１の初期化処理が終了すると、メモリコントローラ１００は処理完了をホスト装置３００へ通知し、第１の動作モードの設定を完了する。引き続き不揮発性メモリシステム４００では、ステップＳ２０５の処理が実行される。具体的には、システム制御部１１０が、フラッシュメモリ２００の特定の物理アドレスに記憶されたブートコード２０１（ブートプログラム）のデータを読み出してホスト装置３００へ転送する。このとき、システム制御部１１０は、フラッシュメモリ２００から読み出したデータに付加された誤り訂正符号を用いてデータに誤りがないかどうかの確認を行ってもよいし、誤り訂正処理を行わずに、ホスト装置３００へデータを転送してもよい。【００４０】
なお、システム制御部１１０は、前述の図２に示したように、第１の動作モードでのデータの読み出し中または第１の動作モードでのデータ読み出し完了後に、第２の初期化処理（ステップＳ２０６）を行い、第２の動作モードへ移行する。【００４１】
以上説明したように、第１の動作モードはブートプログラム読み出し専用の動作モードであり、メモリコントローラ１００は、ホスト装置３００の指示に基づき、フラッシュメモリ２００の特定の領域からブートプログラムを読み出す。言い換えればホスト装置３００は、起動時に不揮発性メモリシステム４００にアクセスするためのドライバソフトを読込んでいなくても、動作モード設定の指示を行うだけで、必要なデータを読み出して起動処理を行うことができる。【００４２】
［第２の動作モード］
次に、不揮発性メモリシステムの基本的な機能である、フラッシュメモリ２００へのデータの書き込み、もしくはフラッシュメモリ２００からのデータの読み出しを行う第２の動作モードについて説明する。【００４３】
図４に、図２の起動処理（ステップＳ２０１〜Ｓ２０５）が終了した後、メモリコントローラ１００が第２の動作モードで動作するまでの動作モードの設定手順（図２のステップＳ２０６およびＳ２０７）を示す。【００４４】
ホスト装置３００は、モード設定部３２２（図１）を第２の動作モードに設定し、不揮発性メモリシステム４００を論理デバイスとして扱いアクセスする。最初に、ホスト装置３００が不揮発性メモリシステム４００へ第２の初期化処理の開始を要求するコマンドを発行する。不揮発性メモリシステム４００内では、システム制御部１１０が第２の初期化処理（ステップＳ２０６）を実行し、処理完了後ホスト装置３００へ通知する。【００４５】
第２の初期化処理（ステップＳ２０６）には、第１の初期化処理に含まれるフラッシュメモリコンフィギュレーション以外に、システムコンフィギュレーションとアドレス変換テーブル１１３の作成が含まれる。フラッシュメモリコンフィギュレーションは、接続されているフラッシュメモリ２００の個数や容量の確認を行う処理、システムコンフィギュレーションは、フラッシュメモリ２００からシステム情報を読み出す処理である。【００４６】
第２の初期化処理のうちアドレス変換テーブル１１３の作成について、図面を参照して説明する。図５にアドレス変換テーブル１１３の構成を示す。アドレス変換テーブル１１３は、ホスト装置３００のアクセスアドレスをフラッシュメモリ２００の物理アドレスに変換するためのテーブルであり、テーブルの各エントリにフラッシュメモリ２００の物理アドレスを格納している。テーブル内のエントリの位置はホスト装置３００のアクセスアドレスに基づき一意に決定される。【００４７】
第２の初期化処理（ステップＳ２０６）において、システム制御部１１０は、フラッシュメモリ２００の複数の位置に格納されたアドレス変換のための情報の読み出しを行い、アドレス変換テーブル１１３を作成する。通常、この処理は数百ミリ秒単位の時間がかかるため、ホスト装置３００は、その間ポーリングにより処理完了通知を監視する。【００４８】
図４にもどり、ホスト装置３００は第２の初期化処理（ステップＳ２０６）が終了すると、レジスタの読み出しや転送設定を行い、第２のモード設定手順を完了する。ここでレジスタ読み出しは、不揮発性メモリシステム４００の容量や性能、付加機能の有無のチェックを含む処理である。また転送設定は、データ幅や動作周波数の設定を含む処理である。【００４９】
次に、図６を参照して、図２のステップＳ２０８に示す、第２の動作モードにおけるフラッシュメモリ２００へのアクセスについて説明する。第２の動作モードの設定手順が完了すると、ホスト装置３００は不揮発性メモリシステム４００に対してデータのリード（読み出し）もしくはライト（書き込み）の要求を行う。【００５０】
ホスト装置３００がリードを要求すると、不揮発性メモリシステム４００では、ステップＳ２０８＿１に示すように、システム制御部１１０がアドレス変換テーブル１１３を用いて、ホスト装置３００のアクセスアドレスをフラッシュメモリ２００の物理アドレスへ変換する。その後、システム制御部１１０は、ステップＳ２０８＿２に示すように、物理アドレスの示す領域のデータを読み出してホスト装置３００へ転送する。このとき、システム制御部１１０は、フラッシュメモリ２００から読み出したデータに付加された誤り訂正符号を用いて、データに誤りがないか否かの確認を併せて行う。【００５１】
一方、ホスト装置３００がライトを要求すると、不揮発性メモリシステム４００では、ステップＳ２０８＿３に示すように、システム制御部１１０がアドレス変換テーブル１１３を用いて、ホスト装置３００のアクセスアドレスに、既にデータが書かれているかどうかをチェックする。メモリコントローラ１００は、ステップＳ２０８＿４に示すように、チェックの結果に応じてフラッシュメモリ２００へデータを書き込む。このとき、メモリコントローラ１００はデータに誤り訂正符号を付加して書き込みを行う。なおステップＳ２０８＿４において、フラッシュメモリ２００へのデータ書き込みの代わりに図示しない消去処理やデータのコピー処理を実施してもよい。【００５２】
以上説明したように、第２の動作モードは不揮発性メモリシステムの基本的な機能を実現する動作モードであり、メモリコントローラ１００はホスト装置２００の指示に基づき、フラッシュメモリ２００からデータを読み出し、もしくはフラッシュメモリ２００にデータを書き込む。【００５３】
すなわち、ホスト装置３００は、フラッシュメモリ２００の物理的な状態に関わりなく、不揮発性メモリシステム４００を論理デバイスとして扱うことができ、簡単な制御でリード・ライトのアクセスを行うことができる。【００５４】
［第１の動作モードと第２の動作モードとの関係］
第１の動作モードでは、不揮発性メモリシステム４００は短時間でフラッシュメモリ２００からデータを読み出すことができる。従って、ホスト装置３００が起動直後に読み出すブートプログラムを格納するのに適した不揮発性メモリシステム４００を実現できる。【００５５】
一方、前述の図２に示したように、第１の動作モードにおいてデータの読み出しが完了すると（ステップＳ２０３〜Ｓ２０５）、第２の動作モードへ移行する（ステップＳ２０６〜Ｓ２０８）。以降ホスト装置３００は、フラッシュメモリ２００の物理的な状態によらず、不揮発性メモリシステム４００を論理デバイスとして扱うことができる。【００５６】
すなわち、ホスト装置３００は、不揮発性メモリシステム４００に対して、起動時には第１の動作モードを設定してフラッシュメモリ２００からブートコード２０１を読み出し、起動処理終了後は、不揮発性メモリシステム４００に対して第２の動作モードでアクセスする。このため、不揮発性メモリシステム４００を音楽・画像などのデータの格納用としてだけでなく、ブートコードの格納用としても使用することができる。結果、使い勝手のよい不揮発性メモリシステムを提供できる。【００５７】
なお、本実施の形態では、第１の動作モードおよび第２の動作モードを切り替えて動作させる場合について説明したが、本発明はこれに限定されるものではない。たとえば、不揮発性メモリシステム４００を第１の動作モードだけで動作させ、ブートコード格納専用のメモリシステムとして使用することも可能である。【００５８】
（第２の実施の形態）
図７に、本発明の第２の実施の形態に係るメモリコントローラを内蔵した不揮発性メモリシステムの構成、およびそのメモリシステムにアクセスするホスト装置の構成を示す。【００５９】
図７に示す不揮発性メモリシステム４００およびホスト装置３００の構成は、図１に示すそれらの構成と同じであり、フラッシュメモリ２００へのデータの格納方法が異なっている。すなわち、フラッシュメモリ２００には、ブートコード２０１に加えて、ブートコード２０１の格納位置を示すポインタ情報２０２が格納されている。【００６０】
図８に、ブートコード２０１およびポインタ情報２０２を格納したフラッシュメモリ２００に対して、ホスト装置３００が第１の動作モードでアクセスする場合の処理の流れを示す。ホスト装置３００が不揮発性メモリシステム４００へ第１の初期化処理の開始を要求すると、不揮発性メモリシステム４００内では、システム制御部１１０が、ステップＳ８０１に示す第１の初期化処理を実行し、処理完了後ホスト装置３００へ通知する。【００６１】
ここで、ステップＳ８０１の第１の初期化処理は、図３のステップＳ２０３で説明した第１の初期化処理と若干異なっている。すなわちステップＳ２０３では、システム制御部１１０はフラッシュメモリ２００の特定の物理アドレスから直接ブートコード２０１を読み出している。これに対しステップＳ８０１では、システム制御部１１０はフラッシュメモリ２００から読み出したポインタ情報２０２を用いてブートコード２０１の格納位置を特定し、その後、特定された物理アドレスからブートコード２０１を読み出している。【００６２】
このように、ポインタ情報により読み出すデータの物理アドレスを取得すれば、ブートコード２０１を更新して、フラッシュメモリ２００上の別のアドレスに格納した場合でも、第１の動作モードでブートコード２０１を読み出すことが可能となる。【００６３】
図８において第１の動作モードの設定手順が完了すると、システム制御部１１０は、ステップＳ８０２に示すように、読み出したポインタ情報２０２に基づいて、フラッシュメモリ２００からブートコード２０１を読み出してホスト装置３００に転送する。その後、システム制御部１１０は、第１の実施の形態と同様に第２の初期化処理（ステップＳ２０６）を行い、第２の動作モードへ移行する。【００６４】
前述した第１の実施の形態においては、フラッシュメモリ２００を読み出し専用の形態で用いているのに対し、本実施の形態では再書き込み可能な形態で用いている。結果、本実施の形態では、ブートプログラムのバージョンアップのためにブートコード２０１を更新する場合にも、容易に対応できる。【００６５】
以上、図面を参照して本発明を実施するための最適な形態について説明したが、本発明の適用範囲はこれに限定されるものではなく、当業者であれば容易に到達しうる形態についても本発明の範囲に属することは明らかである。
【産業上の利用可能性】
【００６６】
本発明に係る不揮発性メモリシステムは、半導体メモリカードやホスト装置のプログラム格納用メモリ、データ格納用メモリとして有用である。
【図１】
2008117520.tif 000003
【図２】
2008117520.tif 000004
【図３】
2008117520.tif 000005
【図４】
2008117520.tif 000006
【図５】
2008117520.tif 000007
【図６】
2008117520.tif 000008
【図７】
2008117520.tif 000009
【図８】
2008117520.tif 000010
【手続補正書】
【提出日】平成21年8月17日(2009.8.17)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリの制御を行うメモリコントローラ、前記不揮発性メモリおよびメモリコントローラで構成された不揮発性メモリシステム、ならびに前記不揮発性メモリシステムにアクセスするホスト装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ、ムービー、携帯電話、携帯型音楽プレーヤなどのデジタル情報を扱う装置(以下、これらの装置をまとめて「ホスト装置」という)において、デジタル情報を保持するための記憶装置として不揮発性メモリが用いられている。その中でもNAND型フラッシュメモリは大容量かつ低コストという特性を生かし、プログラム格納用として、アプリケーションプログラムだけでなくブートプログラムの格納にも用いられるようになってきた。
【０００３】
NAND型フラッシュメモリにブートプログラムを格納し、フラッシュメモリからのブートを実現するために、ブートプログラムを保持するキャッシュを備えた不揮発性メモリシステムが提案されている(例えば特許文献１参照)。しかし、この従来の不揮発性メモリシステムにおいては、データの書換えや不良ブロック管理のためのアドレス管理、誤り訂正などの機能はホスト装置が備えている必要がある。このため従来の不揮発性メモリシステムは、ホスト装置での制御が複雑になるという問題があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２２０５５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
不揮発性メモリの応用として、SD(Secure Digital)メモリカードのように、ホスト装置と着脱可能な形態の不揮発性メモリシステムが普及している。このような不揮発性メモリシステムは、不揮発性メモリとコントローラとを備え、コントローラがNAND型フラッシュメモリの制御を行っている。結果として、ホスト装置からの制御が容易な論理デバイスを実現している。
【０００６】
ホスト装置が不揮発性メモリシステムへアクセスするためには、ドライバソフトを用いて所定の初期化処理を行う必要がある。しかし、起動時にはドライバソフトがホスト装置に読み込まれていないため、初期化処理が行えない。このため従来の不揮発性メモリシステムは、フラッシュメモリにブートプログラムを格納しても、読み出しを行うことができず、そのままではブートプログラム格納用として使用することができなかった。
【０００７】
本発明はこのような従来の問題点を解決し、ブートプログラム格納用として使用でき、しかもホスト装置での制御が容易な不揮発性メモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係るメモリコントローラは、ホスト装置の要求に応じて不揮発性メモリにアクセスするメモリコントローラであって、
前記ホスト装置の第１の動作モード設定の指示を受け、前記不揮発性メモリの物理アドレスを指定して前記不揮発性メモリの特定の領域からデータを読み出すシステム制御手段と、
前記システム制御手段と前記ホスト装置との間で信号の送受信を行う第１のインターフェースと、
前記システム制御手段と前記不揮発性メモリとの間で信号の送受信を行う第２のインターフェースとを備えるものである。
【０００９】
ここで、前記システム制御手段は、前記ホスト装置により設定される２つの動作モードでの動作が可能であり、前記第１の動作モードとは異なる第２の動作モードにおいては、前記ホスト装置の指示するアクセスアドレスを、アドレス変換テーブルを用いて前記不揮発性メモリの物理アドレスへ変換した後、当該変換された物理アドレスにアクセスすることが好ましい。
【００１０】
前記システム制御手段は、前記第１の動作モードでの動作中または動作完了後に前記アドレス変換テーブを作成し、前記第１の動作モードでの動作完了後に前記第２の動作モードにモードを切り替えることが好ましい。
【００１１】
前記第１の動作モードは、第１の初期化処理により動作可能となり、前記第１の初期化処理はフラッシュメモリコンフィギュレーションを含むことが好ましい。更に前記第１の初期化処理は、電源投入後またはリセット後に行われることが好ましい。
【００１２】
前記第２の動作モードは、第２の初期化処理により動作可能となり、前記第２の初期化処理はフラッシュメモリコンフィギュレーション、システムコンフィギュレーションおよびアドレス変換テーブルの作成を含むことが好ましい。
【００１３】
前記第１の動作モードは、前記ホスト装置が所定のコマンドを発行することにより設定されることが好ましい。
【００１４】
本発明に係るメモリコントローラは、前記不揮発性メモリに、前記第１の動作モードでデータが読み出される特定の領域の物理アドレスが保持され、前記システム制御手段は、前記第１の動作モードにおいて前記特定の領域の物理アドレスを読み出すようにしてもよい。
【００１５】
ここで前記システム制御手段は、前記第１の動作モードの有効および無効を切り替えるモード切替手段を更に備え、前記第１の動作モードが有効な場合には前記ホスト装置の設定指示に従って前記第１の動作モードを設定し、前記第１の動作モードが無効な場合には前記ホスト装置の設定指示を無効なアクセスと判定することが好ましい。
【００１６】
また本発明に係る不揮発性メモリシステムは、前記メモリコントローラおよび不揮発性メモリを備え、前記ホスト装置からの要求に応じて前記不揮発性メモリにアクセスするものである。
【００１７】
ここで、本発明に係る不揮発性メモリシステムは、前記ホスト装置と着脱可能な形態、もしくは前記ホスト装置に実装され、前記ホスト装置と着脱が不可能な形態のいずれかであることが好ましい。
【００１８】
また本発明に係るホスト装置は、前記不揮発性メモリシステムにアクセスしてデータ転送を要求するホスト装置であって、
起動時に前記第１の動作モードで前記不揮発性メモリシステムにアクセスし、起動完了後に前記第２の動作モードで前記不揮発性メモリシステムにアクセスするものである。
【発明の効果】
【００１９】
本発明に係る不揮発性メモリシステムの動作モード（第１の動作モード）では、従来の動作モード（第２の動作モード）で必要であったアドレス変換テーブルの作成を行わず、メモリコントローラが不揮発性メモリの特定の領域からデータの読み出しを行う。
【００２０】
結果として、本発明に係る不揮発性メモリシステムは、起動時にドライバソフトがホスト装置に組み込まれていなくても、不揮発性メモリに格納されたブートプログラムを読み出すことができるため、ブートプログラム格納用として使用できる。また本発明に係る不揮発性メモリシステムは、ホスト装置での制御も容易である。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の第１の実施の形態に係る不揮発性メモリシステムおよびホスト装置の構成を示すブロック図である。
【図２】図２は、図１のメモリコントローラの動作を説明するための状態遷移図である。
【図３】図３は、第１の動作モード設定手順および第１の動作モードでのアクセスを説明するためのフロー図である。
【図４】図４は、第２の動作モード設定手順を説明するためのフロー図である。
【図５】図５は、アドレス変換テーブルの構成を示す図である。
【図６】図６は、第２の動作モードでのアクセスを説明するためのフロー図である。
【図７】図７は、本発明の第２の実施の形態に係る不揮発性メモリシステムおよびホスト装置の構成を示すブロック図である。
【図８】図８は、第１の動作モード設定手順および第１の動作モードでのアクセスを説明するためのフロー図である。
【発明を実施するための形態】
【００２２】
（第１の実施の形態）
図１に、本発明の第１の実施の形態に係るメモリコントローラを内蔵した不揮発性メモリシステムの構成、およびそのメモリシステムにアクセスするホスト装置の構成を示す。
【００２３】
不揮発性メモリシステム４００は、メモリコントローラ１００とフラッシュメモリ２００で構成される。メモリコントローラ１００は、ホスト装置３００の指示に基づき、第１動作モードおよび第２の動作モードのいずれかの動作モードでフラッシュメモリ２００にアクセスできる。
【００２４】
第１の動作モードにおいては、メモリコントローラ１００は、ホスト装置３００の指示に基づき、フラッシュメモリ２００の特定の領域からブートプログラムを読み出す。第２の動作モードにおいては、メモリコントローラ１００は、ホスト装置３００の指示に基づき、フラッシュメモリ２００からデータを読み出し、もしくはフラッシュメモリ２００にデータを書き込む。
【００２５】
メモリコントローラ１００は、システム制御部１１０、ホストＩＦ部１２０およびフラッシュＩＦ部１３０を含む。システム制御部１１０はフラッシュメモリ２００へのデータの書き込みおよびフラッシュメモリ２００からのデータの読み出しを制御し、またホスト装置３００との間のデータ転送の制御を行う。ホストＩＦ部１２０はホスト装置３００との信号の送受信を行う。フラッシュＩＦ部１３０はフラッシュメモリ２００との信号の送受信を行う。フラッシュＩＦ部１３０は、データを一時的に保持するＲＡＭ１３１を内蔵している。
【００２６】
システム制御部１１０は、モード切替部１１１、送受信処理部１１２、アドレス変換テーブル１１３およびレジスタ１１４を含む。モード切替部１１１は、ホスト装置３００の動作モード設定手順に従ってメモリコントローラ１００の動作モードを設定する。なお動作モード設定手順については後に詳述する。またモード切替部１１１は、不揮発性メモリシステム４００の動作モードのうち、第１の動作モードを有効にするかしないかの切り替えを行う。
【００２７】
送受信処理部１１２は、ホスト装置３００の要求に応じてフラッシュメモリ２００へのデータ転送の制御を行う。アドレス変換テーブル１１３は、ホスト装置３００から転送されるアクセスアドレスをフラッシュメモリ２００の物理アドレスに変換するためのテーブルである。レジスタ１１４は、メモリコントローラ１００の詳細な動作設定のために使用される。
【００２８】
フラッシュメモリ２００のうち、メモリコントローラ１００が第１の動作モードで読み出しを行う領域にブートコード２０１が格納されている。ブートコード２０１はホスト装置３００の起動のためのプログラムである。
【００２９】
ホスト装置３００は、ＣＰＵ３１０、メモリ制御部３２０およびＲＡＭ３３０を含む。ＣＰＵ３１０は、メモリ制御部３２０を構成するメモリＩＦ部３２１およびモード設定部３２２の制御を行う。メモリＩＦ部３２１は不揮発性メモリシステム４００への信号の送受信を行う。モード設定部３２２は不揮発性メモリシステム４００の動作モードを設定する。ＲＡＭ３３０はＣＰＵ３１０で処理するデータを一時的に保持する。
【００３０】
図示しないが、不揮発性メモリシステム４００は、ホスト装置３００に設けられたスロットを介して、ホスト装置３００に着脱可能な形態で取り付けられている。従って、不揮発性メモリシステム４００で消費される電力は、電源ラインを介してホスト装置３００から供給される。なお、不揮発性メモリシステム４００がホスト装置３００に実装され、ホスト装置３００から着脱できない形態を採用することも可能である。
【００３１】
次に、図２を参照して不揮発性メモリシステム４００内のメモリコントローラ１００の状態遷移について説明する。前述したようにメモリコントローラ１００は、第１の動作モードおよび第２の動作モードのいずれかの動作モードでフラッシュメモリ２００にアクセスできる。
【００３２】
電源投入またはリセットにより不揮発性メモリシステム４００はIdle状態となる（ステップＳ２０１）。このIdle状態（ステップＳ２０１）において、ホスト装置３００が第１の動作モードを設定すると、メモリコントローラ１００のモード切替部１１１は、第１の動作モードが有効であるかどうかのチェックを行う（ステップＳ２０２）。
【００３３】
ここで、第１の動作モードが有効な場合とは、フラッシュメモリ２００にブートコード２０１が書き込まれた特定の領域があり、かつメモリコントローラ１００が、第１の動作モードで特定の領域にアクセスできる状態にあることをいう。一方、第１の動作モードが有効でない（無効な）場合とは、フラッシュメモリ２００にブートコード２０１が書き込まれた特定の領域がないか、フラッシュメモリ２００にブートコード２０１が書き込まれた特定の領域があっても、メモリコントローラ１００が、第１の動作モードで特定の領域にアクセスできない状態にあることをいう。
【００３４】
ステップＳ２０２において、メモリコントローラ１００は第１の動作モードが無効（Ｎｏ）であればIdle状態（ステップＳ２０１）に戻り、有効（Ｙｅｓ）であれば、引き続いて第１の初期化処理を行う（ステップＳ２０３）。その後、メモリコントローラ１００は第１の動作モードで動作する（ステップＳ２０４）。すなわちメモリコントローラ１００は第１の動作モードでフラッシュメモリ２００へアクセスする（ステップＳ２０５）。引き続いてメモリコントローラ１００は第２の初期化処理を行う(ステップＳ２０６)。なお、第１および第２の初期化処理については後に詳述する。
【００３５】
一方、Idle状態（ステップＳ２０１）において、ホスト装置３００が第２の動作モードの設定を行うと、メモリコントローラ１００は、第２の初期化処理を行う（ステップＳ２０６）。その後、メモリコントローラ１００は第２の動作モードで動作する（ステップＳ２０７）。すなわちメモリコントローラ１００は、ホスト装置３００からの要求に応じて、フラッシュメモリ２００にアクセスする（ステップＳ２０８）。
【００３６】
以下、第１の動作モードおよび第２の動作モードについてそれぞれ図面を参照して詳細に説明し、最後に第１の動作モードと第２の動作モードとの関係について説明する。
【００３７】
［第１の動作モード］
最初に、ホスト装置３００がフラッシュメモリ２００からブートコードを読み出す第１の動作モードについて説明する。図３に、図２のIdle状態（ステップＳ２０１）においてホスト装置３００が第１の動作モードの設定を行った後、メモリコントローラ１００が第１の動作モードで動作するまで（ステップＳ２０３〜Ｓ２０５）の具体的な処理の流れを示す。
【００３８】
ホスト装置３００は、起動時にモード設定部３２２（図１）を第１の動作モードに設定し、不揮発性メモリシステム４００に対して第１の初期化処理の開始を要求するコマンドを発行する。
【００３９】
システム制御部１１０は、ホスト装置３００からの第１の初期化処理開始の要求コマンドを受けて、第１の初期化処理を実行する（ステップＳ２０３）。第１の初期化処理は、フラッシュメモリコンフィギュレーションを含む処理である。フラッシュメモリコンフィギュレーションでは、接続されているフラッシュメモリ２００の個数や容量の確認を行う。
【００４０】
第１の初期化処理が終了すると、メモリコントローラ１００は処理完了をホスト装置３００へ通知し、第１の動作モードの設定を完了する。引き続き不揮発性メモリシステム４００では、ステップＳ２０５の処理が実行される。具体的には、システム制御部１１０が、フラッシュメモリ２００の特定の物理アドレスに記憶されたブートコード２０１（ブートプログラム）のデータを読み出してホスト装置３００へ転送する。このとき、システム制御部１１０は、フラッシュメモリ２００から読み出したデータに付加された誤り訂正符号を用いてデータに誤りがないかどうかの確認を行ってもよいし、誤り訂正処理を行わずに、ホスト装置３００へデータを転送してもよい。
【００４１】
なお、システム制御部１１０は、前述の図２に示したように、第１の動作モードでのデータの読み出し中または第１の動作モードでのデータ読み出し完了後に、第２の初期化処理（ステップＳ２０６）を行い、第２の動作モードへ移行する。
【００４２】
以上説明したように、第１の動作モードはブートプログラム読み出し専用の動作モードであり、メモリコントローラ１００は、ホスト装置３００の指示に基づき、フラッシュメモリ２００の特定の領域からブートプログラムを読み出す。言い換えればホスト装置３００は、起動時に不揮発性メモリシステム４００にアクセスするためのドライバソフトを読込んでいなくても、動作モード設定の指示を行うだけで、必要なデータを読み出して起動処理を行うことができる。
【００４３】
［第２の動作モード］
次に、不揮発性メモリシステムの基本的な機能である、フラッシュメモリ２００へのデータの書き込み、もしくはフラッシュメモリ２００からのデータの読み出しを行う第２の動作モードについて説明する。
【００４４】
図４に、図２の起動処理（ステップＳ２０１〜Ｓ２０５）が終了した後、メモリコントローラ１００が第２の動作モードで動作するまでの動作モードの設定手順（図２のステップＳ２０６およびＳ２０７）を示す。
【００４５】
ホスト装置３００は、モード設定部３２２（図１）を第２の動作モードに設定し、不揮発性メモリシステム４００を論理デバイスとして扱いアクセスする。最初に、ホスト装置３００が不揮発性メモリシステム４００へ第２の初期化処理の開始を要求するコマンドを発行する。不揮発性メモリシステム４００内では、システム制御部１１０が第２の初期化処理（ステップＳ２０６）を実行し、処理完了後ホスト装置３００へ通知する。
【００４６】
第２の初期化処理（ステップＳ２０６）には、第１の初期化処理に含まれるフラッシュメモリコンフィギュレーション以外に、システムコンフィギュレーションとアドレス変換テーブル１１３の作成が含まれる。フラッシュメモリコンフィギュレーションは、接続されているフラッシュメモリ２００の個数や容量の確認を行う処理、システムコンフィギュレーションは、フラッシュメモリ２００からシステム情報を読み出す処理である。
【００４７】
第２の初期化処理のうちアドレス変換テーブル１１３の作成について、図面を参照して説明する。図５にアドレス変換テーブル１１３の構成を示す。アドレス変換テーブル１１３は、ホスト装置３００のアクセスアドレスをフラッシュメモリ２００の物理アドレスに変換するためのテーブルであり、テーブルの各エントリにフラッシュメモリ２００の物理アドレスを格納している。テーブル内のエントリの位置はホスト装置３００のアクセスアドレスに基づき一意に決定される。
【００４８】
第２の初期化処理（ステップＳ２０６）において、システム制御部１１０は、フラッシュメモリ２００の複数の位置に格納されたアドレス変換のための情報の読み出しを行い、アドレス変換テーブル１１３を作成する。通常、この処理は数百ミリ秒単位の時間がかかるため、ホスト装置３００は、その間ポーリングにより処理完了通知を監視する。
【００４９】
図４にもどり、ホスト装置３００は第２の初期化処理（ステップＳ２０６）が終了すると、レジスタの読み出しや転送設定を行い、第２のモード設定手順を完了する。ここでレジスタ読み出しは、不揮発性メモリシステム４００の容量や性能、付加機能の有無のチェックを含む処理である。また転送設定は、データ幅や動作周波数の設定を含む処理である。
【００５０】
次に、図６を参照して、図２のステップＳ２０８に示す、第２の動作モードにおけるフラッシュメモリ２００へのアクセスについて説明する。第２の動作モードの設定手順が完了すると、ホスト装置３００は不揮発性メモリシステム４００に対してデータのリード（読み出し）もしくはライト（書き込み）の要求を行う。
【００５１】
ホスト装置３００がリードを要求すると、不揮発性メモリシステム４００では、ステップＳ２０８＿１に示すように、システム制御部１１０がアドレス変換テーブル１１３を用いて、ホスト装置３００のアクセスアドレスをフラッシュメモリ２００の物理アドレスへ変換する。その後、システム制御部１１０は、ステップＳ２０８＿２に示すように、物理アドレスの示す領域のデータを読み出してホスト装置３００へ転送する。このとき、システム制御部１１０は、フラッシュメモリ２００から読み出したデータに付加された誤り訂正符号を用いて、データに誤りがないか否かの確認を併せて行う。
【００５２】
一方、ホスト装置３００がライトを要求すると、不揮発性メモリシステム４００では、ステップＳ２０８＿３に示すように、システム制御部１１０がアドレス変換テーブル１１３を用いて、ホスト装置３００のアクセスアドレスに、既にデータが書かれているかどうかをチェックする。メモリコントローラ１００は、ステップＳ２０８＿４に示すように、チェックの結果に応じてフラッシュメモリ２００へデータを書き込む。このとき、メモリコントローラ１００はデータに誤り訂正符号を付加して書き込みを行う。なおステップＳ２０８＿４において、フラッシュメモリ２００へのデータ書き込みの代わりに図示しない消去処理やデータのコピー処理を実施してもよい。
【００５３】
以上説明したように、第２の動作モードは不揮発性メモリシステムの基本的な機能を実現する動作モードであり、メモリコントローラ１００はホスト装置２００の指示に基づき、フラッシュメモリ２００からデータを読み出し、もしくはフラッシュメモリ２００にデータを書き込む。
【００５４】
すなわち、ホスト装置３００は、フラッシュメモリ２００の物理的な状態に関わりなく、不揮発性メモリシステム４００を論理デバイスとして扱うことができ、簡単な制御でリード・ライトのアクセスを行うことができる。
【００５５】
［第１の動作モードと第２の動作モードとの関係］
第１の動作モードでは、不揮発性メモリシステム４００は短時間でフラッシュメモリ２００からデータを読み出すことができる。従って、ホスト装置３００が起動直後に読み出すブートプログラムを格納するのに適した不揮発性メモリシステム４００を実現できる。
【００５６】
一方、前述の図２に示したように、第１の動作モードにおいてデータの読み出しが完了すると（ステップＳ２０３〜Ｓ２０５）、第２の動作モードへ移行する（ステップＳ２０６〜Ｓ２０８）。以降ホスト装置３００は、フラッシュメモリ２００の物理的な状態によらず、不揮発性メモリシステム４００を論理デバイスとして扱うことができる。
【００５７】
すなわち、ホスト装置３００は、不揮発性メモリシステム４００に対して、起動時には第１の動作モードを設定してフラッシュメモリ２００からブートコード２０１を読み出し、起動処理終了後は、不揮発性メモリシステム４００に対して第２の動作モードでアクセスする。このため、不揮発性メモリシステム４００を音楽・画像などのデータの格納用としてだけでなく、ブートコードの格納用としても使用することができる。結果、使い勝手のよい不揮発性メモリシステムを提供できる。
【００５８】
なお、本実施の形態では、第１の動作モードおよび第２の動作モードを切り替えて動作させる場合について説明したが、本発明はこれに限定されるものではない。たとえば、不揮発性メモリシステム４００を第１の動作モードだけで動作させ、ブートコード格納専用のメモリシステムとして使用することも可能である。
【００５９】
（第２の実施の形態）
図７に、本発明の第２の実施の形態に係るメモリコントローラを内蔵した不揮発性メモリシステムの構成、およびそのメモリシステムにアクセスするホスト装置の構成を示す。
【００６０】
図７に示す不揮発性メモリシステム４００およびホスト装置３００の構成は、図１に示すそれらの構成と同じであり、フラッシュメモリ２００へのデータの格納方法が異なっている。すなわち、フラッシュメモリ２００には、ブートコード２０１に加えて、ブートコード２０１の格納位置を示すポインタ情報２０２が格納されている。
【００６１】
図８に、ブートコード２０１およびポインタ情報２０２を格納したフラッシュメモリ２００に対して、ホスト装置３００が第１の動作モードでアクセスする場合の処理の流れを示す。ホスト装置３００が不揮発性メモリシステム４００へ第１の初期化処理の開始を要求すると、不揮発性メモリシステム４００内では、システム制御部１１０が、ステップＳ８０１に示す第１の初期化処理を実行し、処理完了後ホスト装置３００へ通知する。
【００６２】
ここで、ステップＳ８０１の第１の初期化処理は、図３のステップＳ２０３で説明した第１の初期化処理と若干異なっている。すなわちステップＳ２０３では、システム制御部１１０はフラッシュメモリ２００の特定の物理アドレスから直接ブートコード２０１を読み出している。これに対しステップＳ８０１では、システム制御部１１０はフラッシュメモリ２００から読み出したポインタ情報２０２を用いてブートコード２０１の格納位置を特定し、その後、特定された物理アドレスからブートコード２０１を読み出している。
【００６３】
このように、ポインタ情報により読み出すデータの物理アドレスを取得すれば、ブートコード２０１を更新して、フラッシュメモリ２００上の別のアドレスに格納した場合でも、第１の動作モードでブートコード２０１を読み出すことが可能となる。
【００６４】
図８において第１の動作モードの設定手順が完了すると、システム制御部１１０は、ステップＳ８０２に示すように、読み出したポインタ情報２０２に基づいて、フラッシュメモリ２００からブートコード２０１を読み出してホスト装置３００に転送する。その後、システム制御部１１０は、第１の実施の形態と同様に第２の初期化処理（ステップＳ２０６）を行い、第２の動作モードへ移行する。
【００６５】
前述した第１の実施の形態においては、フラッシュメモリ２００を読み出し専用の形態で用いているのに対し、本実施の形態では再書き込み可能な形態で用いている。結果、本実施の形態では、ブートプログラムのバージョンアップのためにブートコード２０１を更新する場合にも、容易に対応できる。
【００６６】
以上、図面を参照して本発明を実施するための最適な形態について説明したが、本発明の適用範囲はこれに限定されるものではなく、当業者であれば容易に到達しうる形態についても本発明の範囲に属することは明らかである。
【産業上の利用可能性】
【００６７】
本発明に係る不揮発性メモリシステムは、半導体メモリカードやホスト装置のプログラム格納用メモリ、データ格納用メモリとして有用である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホスト装置の要求に応じて不揮発性メモリにアクセスするメモリコントローラであって、
前記ホスト装置の第１の動作モード設定の指示を受け、前記不揮発性メモリの物理アドレスを指定して前記不揮発性メモリの特定の領域からデータを読み出すシステム制御手段と、
前記システム制御手段と前記ホスト装置との間で信号の送受信を行う第１のインターフェースと、
前記システム制御手段と前記不揮発性メモリとの間で信号の送受信を行う第２のインターフェースとを備えるメモリコントローラ。
【請求項２】
前記システム制御手段は、前記ホスト装置により設定される２つの動作モードでの動作が可能であり、前記第１の動作モードとは異なる第２の動作モードにおいては、前記ホスト装置の指示するアクセスアドレスを、アドレス変換テーブルを用いて前記不揮発性メモリの物理アドレスへ変換した後、当該変換された物理アドレスにアクセスする請求項１に記載のメモリコントローラ。
【請求項３】
前記システム制御手段は、前記第１の動作モードでの動作中または動作完了後に前記アドレス変換テーブルを作成し、前記第１の動作モードでの動作完了後に前記第２の動作モードにモードを切り替える請求項２に記載のメモリコントローラ。
【請求項４】
前記第１の動作モードは、第１の初期化処理により動作可能となり、前記第１の初期化処理はフラッシュメモリコンフィギュレーションを含む請求項２に記載のメモリコントローラ。
【請求項５】
前記第１の初期化処理は、電源投入後またはリセット後に行われる請求項４に記載のメモリコントローラ。
【請求項６】
前記第２の動作モードは、第２の初期化処理により動作可能となり、前記第２の初期化処理はフラッシュメモリコンフィギュレーション、システムコンフィギュレーションおよびアドレス変換テーブルの作成を含む請求項２に記載のメモリコントローラ。
【請求項７】
前記第１の動作モードは、前記ホスト装置が所定のコマンドを発行することにより設定される請求項２に記載のメモリコントローラ。
【請求項８】
前記不揮発性メモリに、前記第１の動作モードでデータが読み出される特定の領域の物理アドレスが保持され、
前記システム制御手段は、前記第１の動作モードにおいて前記特定の領域の物理アドレスを読み出す請求項２に記載のメモリコントローラ。
【請求項９】
前記システム制御手段は、前記第１の動作モードの有効および無効を切り替えるモード切替手段を更に備え、
前記システム制御手段は、前記第１の動作モードが有効な場合には、前記ホスト装置の設定指示に従って前記第１の動作モードを設定し、前記第１の動作モードが無効な場合には、前記ホスト装置の設定指示を無効なアクセスと判定する請求項２に記載のメモリコントローラ。
【請求項１０】
請求項１に記載のメモリコントローラおよび不揮発性メモリを備え、前記ホスト装置からの要求に応じて前記不揮発性メモリにアクセスする不揮発性メモリシステム。
【請求項１１】
前記ホスト装置と着脱可能な形態である請求項１０に記載の不揮発性メモリシステム。
【請求項１２】
前記ホスト装置に実装され、前記ホスト装置と着脱が不可能な形態である請求項１０に記載の不揮発性メモリシステム。
【請求項１３】
請求項１０に記載の前記不揮発性メモリシステムにアクセスしてデータ転送を要求するホスト装置であって、
起動時に前記第１の動作モードで前記不揮発性メモリシステムにアクセスし、起動完了後に前記第２の動作モードで前記不揮発性メモリシステムにアクセスするホスト装置。
【請求項１４】
起動時に前記第１の動作モードで前記不揮発性メモリシステムからブートプログラムを読み出す請求項１３に記載のホスト装置。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008117520.tif 000011
【図２】
2008117520.tif 000012
【図３】
2008117520.tif 000013
【図４】
2008117520.tif 000014
【図５】
2008117520.tif 000015
【図６】
2008117520.tif 000016
【図７】
2008117520.tif 000017
【図８】
2008117520.tif 000018
【国際調査報告】
2008117520.tif 000019
2008117520.tif 000020
2008117520.tif 000021
2008117520.tif 000022