(57)【要約】【課題】  フラッシュメモリへのアクセス効率がよいフラッシュメモリシステムを提供する。【解決手段】  フラッシュメモリ１１へのアクセスを制御するメモリコントローラに、フラッシュメモリ１１上の物理アドレスを保持させるためのアドレスレジスタ２３ａ，２３ｂを備えている。フラッシュメモリ１１にアクセスする際には、アドレスレジスタ２３ａに保持された物理アドレスに基づくアドレスデータがフラッシュメモリ１１に与えられ、アドレスレジスタ２３ｂには、次にフラッシュメモリ１１にアクセスする際の物理アドレスが設定される。アドレスレジスタ２３ａの保持する物理アドレスがフラッシュメモリ１１に与えられた後、アドレスレジスタ２３ｂに保持された物理アドレスがアドレスレジスタ２３ａに転送されて保持される。【選択図】  図３
2006309539.tif 000002
【特許請求の範囲】
【請求項１】
複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するメモリコントローラであって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出手段と、
前記メモリコントローラに与えるアドレスデータを保持するための第１のアドレスレジスタと、
前記メモリコントローラに与えるアドレスデータを保持するための第２のアドレスレジスタと、
前記物理ブロック検出手段で検出した物理ブロックに対応するアドレスデータを前記第１のアドレスレジスタに設定して保持させる第１のアドレス設定手段と、
前記第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを前記第２のアドレスレジスタに設定して保持させる第２のアドレス設定手段と、
前記第１のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給手段と、
前記第１のアドレスレジスタに保持されいるアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第２のアドレスレジスタに保持されているアドレスデータを該第１のアドレスレジスタに設定して保持させるアドレスデータ変更手段と、
前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに保持されたことに応答し、その時点で該第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第２のアドレスレジスタに設定して保持させる第３のアドレス設定手段と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
前記第１のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第２のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第１のアドレス設定手段は、前記第１のアドレスレジスタのサブレジスタの初期値を設定する第１の初期値設定手段を備え、
前記第２のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第２の初期値設定手段を備え、
前記第３のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第３の初期値設定手段を備え、
前記第１のアドレスレジスタのサブレジスタに保持された値を更新する更新手段が設けられていることを特徴する請求項１に記載のメモリコントローラ。
【請求項３】
前記更新手段が、前記第１のアドレスレジスタのサブレジスタに保持されている値に対して１ずつ減算又は加算を施すことを特徴とする請求項２に記載のメモリコントローラ。
【請求項４】
前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに設定されたことに応答して、該第２のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第２のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第２のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載のメモリコントローラ。
【請求項５】
請求項１乃至４のいずれか１項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項６】
複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出処理と、
前記メモリコントローラに与えるアドレスデータを保持するための第１のアドレスレジスタに、前記物理ブロック検出処理で検出した物理ブロックに対応するアドレスデータを設定して保持させる第１のアドレス設定処理と、
前記第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、前記メモリコントローラに与えるアドレスデータを保持するための第２のアドレスレジスタに該求めた物理ブロックに対応するアドレスデータを設定して保持させる第２のアドレス設定処理と、
前記第１のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給処理と、
前記第１のアドレスレジスタに保持されているアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第２のアドレスレジスタに保持されているアドレスデータを該第１のアドレスレジスタに設定して保持させるアドレスデータ変更処理と、
前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに保持されたことに応答し、その時点で該第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第２のアドレスレジスタに設定して保持させる第３のアドレス設定処理と、
を行うことを特徴とするフラッシュメモリの制御方法。
【請求項７】
前記第１のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第２のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第１のアドレス設定処理は、前記第１のアドレスレジスタのサブレジスタの初期値を設定する第１の初期値設定処理を含み、
前記第２のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第２の初期値設定処理を含み、
前記第３のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第３の初期値設定処理を含み、
前記第１のアドレスレジスタのサブレジスタに保持された値を更新する更新処理を行うことを特徴する請求項６に記載のフラッシュメモリの制御方法。
【請求項８】
前記更新処理が、前記第１のアドレスレジスタのサブレジスタに保持されている値に対して１ずつ減算又は加算を施すことを特徴とする請求項７に記載のフラッシュメモリの制御方法。
【請求項９】
前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに設定されたことに応答して、該第２のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第２のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第２のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定処理を行うことを特徴とする請求項６乃至８のいずれか１項に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。
【０００４】
これとは対照的に、複数のメモリセルのうちの少なくとも１つが書込状態から消去状態へと変化しなければならないときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルにおいて、全てのメモリセルが同時に消去状態とならなければならない。この一括消去動作は、一般的に、"ブロック消去"と称されている。ブロック消去が行われたブロックは、消去済ブロックと称される。
【０００５】
上記のような特徴により、ＮＡＮＤ型フラッシュメモリでは、データを上書することが不可能である。メモリセルにおける格納データを書換えるためには、新しいデータを含んだブロックデータが消去済ブロックに書込まれた後に、古いデータを格納しているブロックのためのブロック消去が行われなければならない。
【０００６】
書換えられたデータは、以前に格納されていたブロックとは異なるブロックに書込まれる。そのため、ホストシステムから供給されるアドレス信号によって指定される論理ブロックアドレスと、フラッシュメモリ内での実際のブロックアドレスを示す物理ブロックアドレスとの間の対応関係は、フラッシュメモリにてデータが書換えられる毎に、コントローラによって動的に調整される。例えば、論理ブロックアドレスと物理ブロックアドレスの間の対応関係は、コントローラに設けられたアドレス変換テーブルに記載される。
【０００７】
例えば、特許文献１では、アドレス変換テーブルで、論理ブロックアドレスが物理ブロックアドレスに変換される。この物理ブロックアドレスは物理アドレスレジスタの物理ブロックアドレス部に設定される。物理アドレスレジスタのワードアドレス部には、初期値が適宜設定される。物理アドレスレジスタは、物理ブロックアドレス部及びワードアドレス部に、保持しているアドレスデータを、フラッシュメモリに供給し、アドレスデータを供給する毎に、ワードアドレス部に保持されている値をインクリメントしている。
【特許文献１】特開平９−１６１４９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１では、アクセス先の物理ブロックが変わる毎に、物理アドレスレジスタの物理ブロックアドレス部に新たな物理ブロックアドレスが設定され、ワードアドレス部に新たな初期値が設定される。従って、複数ブロックに連続的にアクセスするときに、物理アドレスレジスタの再設定処理が、その都度行われることになり、処理効率が低下するという問題があった。
【０００９】
そこで、本発明は、複数ブロックに連続的にアクセスするときの処理効率を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム並びにフラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、
複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するメモリコントローラであって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出手段と、
前記メモリコントローラに与えるアドレスデータを保持するための第１のアドレスレジスタと、
前記メモリコントローラに与えるアドレスデータを保持するための第２のアドレスレジスタと、
前記物理ブロック検出手段で検出した物理ブロックに対応するアドレスデータを前記第１のアドレスレジスタに設定して保持させる第１のアドレス設定手段と、
前記第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを前記第２のアドレスレジスタに設定して保持させる第２のアドレス設定手段と、
前記第１のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給手段と、
前記第１のアドレスレジスタに保持されいるアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第２のアドレスレジスタに保持されているアドレスデータを該第１のアドレスレジスタに設定して保持させるアドレスデータ変更手段と、
前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに保持されたことに応答し、その時点で該第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出手段の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第２のアドレスレジスタに設定して保持させる第３のアドレス設定手段と、
を備えることを特徴とする。
【００１１】
尚、前記第１のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第２のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第１のアドレス設定手段は、前記第１のアドレスレジスタのサブレジスタの初期値を設定する第１の初期値設定手段を備え、
前記第２のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第２の初期値設定手段を備え、
前記第３のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第３の初期値設定手段を備え、
前記第１のアドレスレジスタのサブレジスタに保持された値を更新する更新手段が設けられてもよい。
【００１２】
この場合、前記更新手段が、前記第１のアドレスレジスタのサブレジスタに保持されている値に対して１ずつ減算又は加算を施してもよい。
【００１３】
また、前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに設定されたことに応答して、該第２のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第２のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第２のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定手段を備えてもよい。
【００１４】
上記目的を達成するために、本発明の第２の観点に係るフラッシュメモリシステム、上記本発明の第１の観点に係るメモリコントローラと、フラッシュメモリを備えることを特徴とする。
【００１５】
上記目的を達成するために、本発明の第３の観点に係るフラッシュメモリの制御方法は、
複数ページからなる物理ブロックを記憶領域に複数持つフラッシュメモリに対してのホストシステムからのアクセスを制御するフラッシュメモリの制御方法であって、
前記ホストシステムより逐次与えられる論理アドレスから、前記アクセスの対象となる前記物理ブロックを順次検出する物理ブロック検出処理と、
前記メモリコントローラに与えるアドレスデータを保持するための第１のアドレスレジスタに、前記物理ブロック検出処理で検出した物理ブロックに対応するアドレスデータを設定して保持させる第１のアドレス設定処理と、
前記第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次に前記アクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、前記メモリコントローラに与えるアドレスデータを保持するための第２のアドレスレジスタに該求めた物理ブロックに対応するアドレスデータを設定して保持させる第２のアドレス設定処理と、
前記第１のアドレスレジスタに保持されているアドレスデータを前記フラッシュメモリに供給して前記アクセスを実行させるアドレスデータ供給処理と、
前記第１のアドレスレジスタに保持されているアドレスデータが前記フラッシュメモリに供給されたことに応答し、その時点に前記第２のアドレスレジスタに保持されているアドレスデータを該第１のアドレスレジスタに設定して保持させるアドレスデータ変更処理と、
前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに保持されたことに応答し、その時点で該第１のアドレスレジスタに保持されているアドレスデータが示す物理ブロックの次にアクセスの対象となる物理ブロックを前記物理ブロック検出処理の検出結果から求め、該求めた物理ブロックに対応するアドレスデータを該第２のアドレスレジスタに設定して保持させる第３のアドレス設定処理と、
を行うことを特徴とする。
【００１６】
尚、前記第１のアドレスレジスタは、前記アドレスデータの前記物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第２のアドレスレジスタは、前記アドレスデータの物理ブロックを特定する部分を保持するメインレジスタと前記アドレスデータの前記ページを指定する部分を保持するサブレジスタとを備え、
前記第１のアドレス設定処理は、前記第１のアドレスレジスタのサブレジスタの初期値を設定する第１の初期値設定処理を含み、
前記第２のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第２の初期値設定処理を含み、
前記第３のアドレス設定手段は、前記第２のアドレスレジスタのサブレジスタの初期値を設定する第３の初期値設定処理を含み、
前記第１のアドレスレジスタのサブレジスタに保持された値を更新する更新処理を行ってもよい。
【００１７】
この場合、前記更新処理が、前記第１のアドレスレジスタのサブレジスタに保持されている値に対して１ずつ減算又は加算を施してもよい。
【００１８】
また、前記第２のアドレスレジスタに保持されているアドレスデータが前記第１のアドレスレジスタに設定されたことに応答して、該第２のアドレスレジスタに新たなアドレスデータが設定可能であることを示し、その結果、該第２のアドレスレジスタに新たなアドレスデータが設定されたことに応答して、該第２のアドレスレジスタにさらに新たなアドレスデータの設定ができないことを示すフラグ設定処理を行ってもよい。
【発明の効果】
【００１９】
本発明によれば、第１のアドレスレジスタには、アクセス中のブロックに対応するアドレスデータが保持され、次にアクセスするブロックのアドレスデータが第２のアドレスレジスタに保持される。そして、アクセス先のブロックが切替わるときに第２のアドレスレジスタに保持されているアドレスデータが第１のアドレスレジスタに転送される。これにより、アクセス先のブロックが切替わるときの処理効率の低下を抑制することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図１は、本発明の実施形態に係るフラッシュメモリシステム１０を示す構成図である。
図１に示したように、フラッシュメモリシステム１０は、フラッシュメモリ１１と、それを制御するメモリコントローラ２０とで構成されている。このフラッシュメモリシステム１０は、通常、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとするホストシステム３０である各種情報処理装置に内蔵される。
以下に、フラッシュメモリ１１及びメモリコントローラ２０の詳細と、フラッシュメモリシステム１０の動作とを説明する。
[フラッシュメモリ１１の説明]
このフラッシュメモリシステム１０において、データが記憶されるフラッシュメモリ１１は、ＮＡＮＤ型フラッシュメモリで構成されている。ＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書ができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００２１】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替え後のデータ）を書込み、古いデータ（書替え前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００２２】
このようなデータの書替えを行なった場合、書替え後のデータは、書替え前と異なるブロックに書込まれるため、ホストシステム３０側から与えられる論理アドレスと、フラッシュメモリ１１内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ１１にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ１１に対するアクセスが行なわれる。
【００２３】
図２は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ１１の仕様によって異なるが、一般的なフラッシュメモリでは、図２（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図２（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザー領域と６４バイトの冗長領域で構成されているものも提供されている。
【００２４】
ここで、ユーザー領域は、主に、ホストシステム３０から供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するＥＣＣブロックによって生成される。
【００２５】
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理アドレス情報が書込まれていない場合は、消去済ブロックであると判断される。
【００２６】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書込み等を行なうことができない物理ブロック）であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００２７】
次に、フラッシュメモリ１１の回路構成について説明する。
一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００２８】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入したり、フローティングゲートから電荷（電子）を排出したりすることによって、データの書込みや消去を行う。
【００２９】
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態（書込状態）が、論理値“０”のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値“１”のデータに対応する。
【００３０】
［メモリコントローラ２０の説明］
メモリコントローラ２０は、ホストインターフェースブロック２１と、マイクロプロセッサ２２と、フラッシュメモリインターフェースブロック２３と、ＥＣＣ（エラー・コレクション・コード）ブロック２４と、バッファ２５と、ＲＯＭ（Read  Only  Memory）２６と、ＳＲＡＭ（Static  Randam  Access  Memory）２７とを備え、これらの要素が一つの半導体チップ上に集積されている。以下に、各要素の機能を説明する。
【００３１】
マイクロプロセッサ２２は、ＲＯＭ２６に記憶されたプログラムに基づき動作し、メモリコントローラ２０全体の動作を制御する手段であり、ＳＲＡＭ２７の記憶領域を作業領域として用いる。
論理アドレス（フラッシュメモリシステム１０に対して与えられるアドレス）と物理アドレス（フラッシュメモリ１１内のアドレス）の対応関係を示す変換テーブルは、マイクロプロセッサ２２によって、ＳＲＡＭ２７の記憶領域に作成される。
【００３２】
ホストインターフェースブロック２１は、ホストシステム３０から外部バス３１を介して得られるコマンド、論理アドレスを中継してマイクロプロセッサ２２に与え、ホストシステム３０から与えられるデータをバッフア２５に与える機能を持つ。また、ホストインタフェースブロック２１は、マイクロプロセッサ２２から与えられる信号やバッファ２５に保持されたデータをホストシステム３０に転送する機能を持つ。
【００３３】
バッファ２５は、フラッシュメモリ１１から内部バス１２を介して読出されたデータ及びフラッシュメモリ１１に書込まれるべきデータを保持するための機能ブロックである。フラッシュメモリ１１から読出されたデータは、ホストシステム３０に出力されるまで、バッファ２５に保持される。フラッシュメモリ１１に書込まれるべきデータは、フラッシュメモリ１１のデータ書込動作の準備ができるまで、バッファ２５に保持される。
【００３４】
ＥＣＣブロック２４は、フラッシュメモリ１１への書込データに付加されるエラーコレクションコードを生成するための機能ブロックである。加えて、ＥＣＣブロック２４は、フラッシュメモリ１１からデータと共に読出されたエラーコレクションコードに基づいて、読出データに含まれる誤りの検出及び訂正を行う。
【００３５】
図３は、図１中のフラッシュメモリインターフェースブロック２３の構成を説明する図である。
フラッシュメモリインターフェースブロック２３には、アドレスレジスタ２３ａ、アドレスレジスタ２３ｂ、空きフラグレジスタ２３ｃ、制御ブロック２３ｄ、及びデータ転送部（転送部）２３ｅが設けられている。
【００３６】
アドレスレジスタ２３ａ及びアドレスレジスタ２３ｂには、アドレスデータとしてフラッシュメモリ１１内の物理アドレスが保持される。アドレスレジスタ２３ａ及びアドレスレジスタ２３ｂに保持されるアドレスデータは、マイクロプロセッサ２２によって設定される。
【００３７】
データ転送部２３ｅは、バッファ２５に保持された書込みデータをフラッシュメモリ１１に転送とすると共に、フラッシュメモリ１１から読出されたデータをバッファ２５に転送する。
【００３８】
次に、図１のフラッシュメモリシステム１０の動作を説明する。
ホストシステム３０は、フラッシュメモリ１１にアクセスするためのコマンドや論理アドレスを、フラッシュメモリシステム１０に与える。コマンドや論理アドレスは、ホストインターフェースブロック２１を介してマイクロプロセッサ２２に与えられる。フラッシュメモリ１１にデータを書込む場合には、そのデータがホストシステム３０から与えられ、ホストインターフェースブロック２１を介してバッファ２５に与えられる。
【００３９】
マイクロプロセッサ２２は、コマンドを解読すると共に、論理アドレスをＳＲＡＭ２７のアドレス変換テーブルを利用して物理アドレスに変換する。そして、物理アドレスをフラッシュメモリインターフェースブロック２３のアドレスレジスタ２３ａに設定する。つまり、論理アドレスに示されるブロックに対応する物理ブロックを変換テーブルにより検出し、検出した物理ブロックを示すアドレスデータをアドレスレジスタ２３ａに設定する。
フラッシュメモリ１１の複数ブロックに対して連続的にアクセスするときには、マイクロプロセッサ２２は、次にアクセスするブロックに対応する物理アドレスをアドレスレジスタ２３ｂに設定して保持させる。
【００４０】
アドレスレジスタ２３ａに保持されている物理アドレスに対応するブロックへのアクセスが終了すると、アドレスレジスタ２３ｂに保持される物理アドレスがアドレスレジスタ２３ａに転送される。その後、新たにアドレスレジスタ２３ａに保持された物理アドレスに基づいて生成されたアドレスデータがフラッシュメモリ１１に供給される。
【００４１】
アドレスレジスタ２３ｂからアドレスレジスタ２３ａへの物理アドレスの転送は、制御ブロック２３ｄによって制御される。又、制御ブロック２３ｄは、アドレスレジスタ２３ｂに保持される物理アドレスをアドレスレジスタ２３ａに転送したときに、空きフラグレジスタ２３ｃに空き情報を設定する。この空き情報は、アドレスレジスタ２３ｂに新たな物理アドレスを設定することができることを示す情報である。
【００４２】
マイクロプロセッサ２２は、空きフラグレジスタ２３ｃに空き情報が設定されたのを検知すると、新たな物理アドレスをアドレスレジスタ２３ｂに設定する。その後、マイクロプロセッサ２２は、空きフラグレジスタ２３ｃに設定されている空き情報を解除する。
【００４３】
尚、制御ブロック２３ｄは、アドレスレジスタ２３ｂに保持される物理アドレスがアドレスレジスタ２３ａに転送される前に、空きフラグレジスタ２３ｃに空き情報が設定されていないことを確認することが好ましい。空きフラグレジスタ２３ｃに空き情報が設定されている場合には、アドレスレジスタ２３ｂに、次のアクセス先のブロックに対応する物理アドレスが設定されていないことを示すからである。
【００４４】
図４は、アクセス処理の効率の説明図であり、アドレスレジスタが１つだけの場合（図４（ａ））と、本発明に係る２つのアドレスレジスタ（アドレスレジスタ２３ａ及びアドレスレジスタ２３ｂ）を備えている場合（図４（ｂ））とを示している。
【００４５】
アドレスレジスタが１つだけの場合（図４（ａ））、最初にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される（アドレス変換ａ）。得られた物理アドレスは、アドレスレジスタに設定される（レジスタ設定ａ）。アドレスレジスタに物理アドレスが設定されると、設定された物理アドレスに基づいてフラッシュメモリ１１に対するアクセスが開始される（アドレス出力ａ）。このアクセスが、ｎページ分の読出し処理であれば、読出すページを指示するアドレスデータがｎページ分順次出力される。
【００４６】
最初のブロックに対するアクセスが終了すると、２番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される（アドレス変換ｂ）。得られた物理アドレスは、アドレスレジスタに設定される（レジスタ設定ｂ）。アドレスレジスタに物理アドレスが設定されると、設定された物理アドレスに基づいてフラッシュメモリ１１に対するアクセスが開始される（アドレス出力ｂ）。このアクセスが、ｍページ分の読出し処理であれば、読出すページを指示するアドレスデータがｍページ分順次出力される。
【００４７】
２番目のブロックに対するアクセスが終了すると、３番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される（アドレス変換ｃ）。得られた物理アドレスは、アドレスレジスタに設定される（レジスタ設定ｃ）。アドレスレジスタに物理アドレスが設定されると、上記と同様にフラッシュメモリ１１に対するアクセスが開始される。
【００４８】
図３のように、２つのアドレスレジスタ２３ａ及びアドレスレジスタ２３ｂを備えている場合（図４（ｂ））、最初にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される（アドレス変換ａ）。得られた物理アドレスは、アドレスレジスタ２３ａに設定される（レジスタ設定ａ）。引続き２番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される（アドレス変換ｂ）。得られた物理アドレスは、アドレスレジスタ２３ｂに設定される（レジスタ設定ｂ）。
【００４９】
アドレスレジスタ２３ａに最初にアクセスするブロックに対応する物理アドレスが設定され、アドレスレジスタ２３ｂに２番目にアクセスするブロックに対応する物理アドレスが設定されると、アドレスレジスタ２３ａに設定された物理アドレスに基づいてフラッシュメモリ１１に対するアクセスが開始される（アドレス出力ａ）。このアクセスが、ｎページ分の読出し処理であれば、読出すページを指示するアドレスデータがｎページ分順次出力される。
【００５０】
尚、２番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理（アドレス変換ｂ）とその物理アドレスのアドレスレジスタ２３ｂへの設定（レジスタ設定ｂ）は、アドレスレジスタ２３ａに設定された物理アドレスに基づいたフラッシュメモリ１１へのアクセス（アドレス出力ａ）を開始した後に実行してもよい。
【００５１】
最初のブロックに対するアクセスが終了すると、アドレスレジスタ２３ｂに設定されている物理アドレスがアドレスレジスタ２３ａに転送され、引続き新たにアドレスレジスタ２３ａに保持された物理アドレス（２番目にアクセスするブロックに対応する物理アドレス）に基づいてフラッシュメモリ１１に対するアクセスが開始される（アドレス出力ｂ）。このアクセスが、ｍページ分の読出し処理であれば、読出すページを指示するアドレスデータがｍページ分順次出力される。
【００５２】
アドレスレジスタ２３ｂに設定されていた物理アドレスがアドレスレジスタ２３ａに転送された後、フラッシュメモリ１１に対するアクセスと並行して３番目にアクセスするブロックに対応する物理アドレスを求めるアドレス変換処理が実行される（アドレス変換ｃ）。得られた物理アドレスは、アドレスレジスタ２３ｂに設定される（レジスタ設定ｃ）。
【００５３】
２番目のブロックに対するアクセスが終了すると、アドレスレジスタ２３ｂに設定されている物理アドレスがアドレスレジスタ２３ａに転送され、引続き新たにアドレスレジスタ２３ａに保持された物理アドレス（３番目にアクセスするブロックに対応する物理アドレス）に基づいてフラッシュメモリ１１に対するアクセスが開始される。
【００５４】
上述のように２つのアドレスレジスタ２３ａ及びアドレスレジスタ２３ｂを備えている場合は、一方のアドレスレジスタ２３ｂに、次にアクセスするブロックに対応する物理アドレスを予め保持させておくことができるので、アクセス先のブロックが切替わるときに、アドレスレジスタ間の転送処理を行うだけで引続きアクセスを続行することができる。
【００５５】
上記各アドレスレジスタ２３ａ，２３ｂをメインレジスタとサブレジスタとでそれぞれ構成してもよい。例えば、メインレジスタにアクセス先のブロックを指示する物理ブロックアドレスを設定し、サブレジスタにアクセスする先頭のページのページ番号とアクセスするページ数を設定する。
【００５６】
図５は、アドレスレジスタ２３ａ，２３ｂをメインレジスタとサブレジスタとで構成した場合の読出し処理の説明図である。
読出し処理では、フラッシュメモリ１１に対して、読出しコマンドが供給され、続いてアドレスレジスタ２３ａのメインレジスタに保持されている物理アドレスとサブレジスタに保持されているページ番号に基づいて生成されたアドレスデータ（アドレスａ）を供給する。フラッシュメモリ１１は、供給された読出しコマンド及びアドレスデータに応答してデータａを出力する。尚、サブレジスタに保持されているページ番号とページ数は、アドレスデータをフラッシュメモリ１１に供給する毎に更新する。この更新では、ページ番号が＋１され、ページ数が−１される。
【００５７】
ｎページ分のデータを読出す場合は、サブレジスタにアクセスするページ数としてｎを設定し、サブレジスタに保持されているページ数が０になるまで読出しコマンド及びアドレスデータが順次供給され、これに応答してフラッシュメモリ１１からデータが出力される。先頭のページからｎページ目のデータを読出すための読出しコマンド及びアドレスデータを供給した後、アドレスレジスタ２３ｂに保持されている物理アドレス、ページ番号及びページ数がアドレスレジスタ２３ａに転送される。
【００５８】
アドレスレジスタ２３ｂに保持されていた物理アドレス、ページ番号及びページ数がアドレスレジスタ２３ａに転送された後、上記と同様に読出しコマンド及びアドレスデータが順次供給され、これに応答してフラッシュメモリ１１からデータが出力される。
【００５９】
一方、アドレスレジスタ２３ｂに保持されていた物理アドレス、ページ番号及びページ数がアドレスレジスタ２３ａに転送されると、制御ブロック２３ｄは、空きフラグレジスタ２３ｃに空き情報を設定する。マイクロプロセッサ２２は、空きフラグレジスタ２３ｃに空き情報が設定されたのを検知すると、アドレスレジスタ２３ｂに新たな物理アドレス、ページ番号及びページ数を設定する。マイクロプロセッサ２２は、アドレスレジスタ２３ｂに新たな物理アドレス、ページ番号及びページ数を設定した後、空きフラグレジスタ２３ｃに設定された空き情報を解除する。このようにして、フラッシュメモリ１１に対するアクセスと並行して、アドレスレジスタ２３ｂに新たな物理アドレス、ページ番号及びページ数が設定される。
【００６０】
以上のように、本実施形態のフラッシュメモリシステム１０では、２つのアドレスレジスタ２３ａ及びアドレスレジスタ２３ｂを備えているので、一方のアドレスレジスタ２３ｂに、次にアクセスするブロックに対応する物理アドレスを予め保持させておくことができるので、アクセス先のブロックが切替わるときに、アドレスレジスタ間の転送処理を行うだけで引続きアクセスを続行することができ、アクセスの効率を向上できる。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施形態に係るフラッシュメモリシステムの構成図である。
【図２】ブロックとページの関係を示す説明図である。
【図３】図１中のフラッシュメモリインターフェースブロックの構成を説明する図である。
【図４】アクセス処理の効率の説明図である。
【図５】アドレスレジスタをメインレジスタとサブレジスタとで構成した場合の読出し処理の説明図である。
【符号の説明】
【００６２】
１０        フラッシュメモリシステム
１１        フラッシュメモリ
２０        メモリコントローラ
２１        ホストインターフェースブロック
２２        マイクロプロセッサ
２３        フラッシュメモリインターフェースブロック
２３ａ      アドレスレジスタ
２３ｂ      アドレスレジスタ
２３ｃ      空きフラグレジスタ
２３ｄ      制御ブロック
２３ｅ      転送部
２４        ＥＣＣブロック
２５        バッファ
２６        ＲＯＭ
６３        ＳＲＡＭ
【図１】
2006309539.tif 000003
【図２】
2006309539.tif 000004
【図３】
2006309539.tif 000005
【図４】
2006309539.tif 000006
【図５】
2006309539.tif 000007