(57)【要約】【課題】ブートエラーを正すための装置及び方法を提供する。【解決手段】装置１００は、不揮発性のメモリデバイス１２０を有し、そのメモリデバイス１２０は、第１のアドレスを持つ所定のブロックに、ブートローダーを格納している。装置１００は、さらに、電源投入時に、所定のブロックからブートローダーを読み出すメインコントローラー１１０を有している。装置１００は、また、メインコントローラー１１０の最初のブートシーケンスを監視するとともに、所定のブロックが、読み出し不可エラー状態に陥ったことを判定するように構成された監視モジュール１３０を含んでいる。監視モジュール１３０が、所定ブロックは読み出し不可エラー状態に陥ったと判定したとき、メインコントローラー１１０は、バックアップブロックからバックアップブートローダーを取得する。【選択図】図１
2012198876.tif 000002
【特許請求の範囲】
【請求項１】
ブートエラーを正すための装置であって、
第１のアドレスを持つ所定のブロックにブートローダーを格納した不揮発性のソリッドステートメモリデバイスと、
電源投入時に、前記所定のブロックからブートローダーを読み出そうと試みるメインコントローラーと、
前記メインコントローラーのブートシーケンスを監視して、前記所定のブロックが読み出し不可エラー状態に陥っているかどうかを判定する監視モジュールと、を備え
前記所定のブロックは読み出し不可エラー状態に陥っていると前記監視モジュールが判定したとき、前記メインコントローラーは、バックアップブロックからバックアップブートローダーを取得することを特徴とする装置。
【請求項２】
前記バックアップブロックは、前記不揮発性のソリッドステートメモリデバイスにおいて、第２のアドレスに配置されたものであることを特徴とする請求項１に記載の装置。
【請求項３】
前記メインコントローラーが前記第１のアドレスからブートローダーの読み出しを要求した際、前記所定のブロックは読み出し不可エラー状態に陥っていると前記監視モジュールが判定したとき、前記第２のアドレスから前記バックアップブートローダーを読み出すブロックマッピングモジュールをさらに備えることを特徴とする請求項２に記載の装置。
【請求項４】
前記バックアップブロックは、前記不揮発性ソリッドステートメモリデバイスとは別の、外部メモリデバイスに格納されたものであることを特徴とする請求項１に記載の装置。
【請求項５】
前記不揮発性のソリッドステートメモリデバイスの所定のブロックが読み出し不可エラー状態に陥っていることを前記監視モジュールが判定したとき、前記監視モジュールは前記メインコントローラーに信号を送出し、前記メインコントローラーに前記外部メモリデバイスからバックアップブートローダーを読み出させることを特徴とする請求項４に記載の装置。
【請求項６】
前記監視モジュールは、前記メインコントローラーが電源投入されたことを示すリセット信号と、前記ブートローダーが首尾よくロードされたことを示すブートロード完了信号とを受信するものであって、ブートロード完了信号を観察することなく、２つの連続するリセット信号を観察したとき、前記所定のブロックが読み出し不可エラー状態に陥っていると判定することを特徴とする請求項１乃至５のいずれかに記載の装置。
【請求項７】
不揮発性のソリッドステートメモリデバイスは、フラッシュメモリデバイスであることを特徴とする請求項１乃至６のいずれかに記載の装置。
【請求項８】
前記フラッシュメモリデバイスは、ＮＡＮＤ型のフラッシュメモリデバイスであることを特徴とする請求項７に記載の装置。
【請求項９】
前記バックアップブートローダーは、前記所定のブロックにおいてリフレッシュ操作を実行するための命令を含むことを特徴とする請求項１乃至８のいずれかに記載の装置。
【請求項１０】
不揮発性のソリッドステートメモリデバイスのブロックにおいて観察されるブートエラーを正すための方法であって、
前記不揮発性のソリッドステートメモリデバイスの第１のアドレスを持つ所定のブロックにブートローダーを記憶するステップと、
電源投入時に、メインコントローラーによって、前記所定ブロックからブートローダーの読み出しを試みるステップと、
メインコントローラーのブートシーケンスを監視するステップと、
ブートシーケンスの監視に基づき、前記所定のブロックが読み出し不可エラー状態に陥ったか否かを判定するステップと、
前記所定のブロックが読み出し不可エラー状態に陥ったと判定したとき、バックアップブロックからバックアップブートローダーを取得するステップと、を備えることを特徴とする方法。
【請求項１１】
さらに、前記不揮発性のソリッドステートメモリデバイスにおいて、第２のアドレスに前記バックアップブロックを記憶するステップを備えることを特徴とする請求項１０に記載の方法。
【請求項１２】
さらに、前記所定のブロックが読み出し不可エラー状態に陥っているとの判定時に、前記第２のアドレスから前記バックアップブートローダーを読み出すステップを備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
さらに、前記不揮発性ソリッドステートメモリデバイスとは別の、外部メモリデバイスに前記バックアップブロックを記憶するステップを備えることを特徴とする請求項１０に記載の方法。
【請求項１４】
前記不揮発性のソリッドステートメモリデバイスの所定のブロックが読み出し不可エラー状態に陥っていることを示す信号を生成するステップと、
その信号の受信時に、前記外部メモリデバイスからバックアップブートローダーを読み出すステップと、をさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記メインコントローラーが電源投入されたことを示すリセット信号と、前記ブートローダーが首尾よくロードされたことを示すブートロード完了信号とを監視するステップと、
前記ブートロード完了信号が観察されることなく、２つの連続するリセット信号が観察されたとき、前記所定のブロックが読み出し不可エラー状態に陥っていると判定するステップと、をさらに備えることを特徴とする請求項１０乃至１４のいずれかに記載の方法。
【請求項１６】
不揮発性のソリッドステートメモリデバイスは、フラッシュメモリデバイスであることを特徴とする請求項１０乃至１５のいずれかに記載の方法。
【請求項１７】
前記フラッシュメモリデバイスは、ＮＡＮＤ型のフラッシュメモリデバイスであることを特徴とする請求項１６に記載の方法。
【請求項１８】
前記所定のブロックが読み出し不可エラー状態に陥っていると判定し、バックアップブロックからバックアップローダーを取得したときに、前記所定のブロックにおいてリフレッシュ操作を実行するステップを備えることを特徴とする請求項１０乃至１７のいずれかに記載の方法。
【請求項１９】
前記バックアップローダーは、前記所定のブロックにおいてリフレッシュ操作を実行するための命令を含むことを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリデバイスにおける読み出し不可状態を解決するための装置及び方法に関する。
【背景技術】
【０００２】
テレマティクス装置や移動電話のような装置が電源投入されたとき、その装置のプロセッサは、その装置のオペレーティングシステムをロードするために、一連の命令を実行する必要がある。そのロードを開始するために、プロセッサは、ブートシーケンスを実行する。ブートシーケンスは、装置の電源が投入されたとき、プロセッサが実行する最初の命令、もしくは操作のセットを含む。ただし、最初の命令、もしくは操作のセットもまた、プロセッサにロードされなければならない。そのため、概して、プロセッサは、メモリの所定のアドレスから、命令もしくは操作のセット含む、最初のデータブロックを自動的に取り出すようにプログラムされている。最初の命令もしくは操作のセットは、ブートローダーと呼ばれている。多くの装置において、アクセスされるメモリは、ＮＡＮＤ型のフラッシュメモリデバイスである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＮＡＮＤ型のフラッシュメモリで生じる一つの問題は、読み出し不可エラーが、ＮＡＮＤ型フラッシュメモリデバイスにおいて頻繁に観察されることである。読み出し不可エラーの３つの原因は、例えば、ブロックが物理的に損なわれているような不良ブロックエラー、データ保持エラー、及び読み出し阻害エラーである。それらの内、不良ブロックエラーは、永続的なエラーであるため、不良ブロックだけは、メモリリフレッシュ動作によっても修復不可能である。概して、ブートローダーは、装置のオペレーティングシステムをロードするとき、不良ブロックエラーを含む、読み出し不可エラーに対して対処するための命令を含んでいる。しかしながら、ブートローダーを包含するブロックにおいて、読み出し不可エラーが生じた場合、ブートローダーがロードされ得ず、フラッシュメモリデバイスからオペレーティングシステムをロードするためのシーケンスが正しく実行できないので、装置は、動作不可能となる。このため、装置のブートローダーを包含するブロックでの読み出し不可エラーを検出し、対処するための方法及び装置に対するニーズがある。
【０００４】
上述した背景技術の説明は、全体として、本発明の背景を提示するとの目的のためのものである。出願時の公知技術としてみなされない説明はもちろん、この背景技術のセクションに記述された程度まで、本願発明者らによる探求により得られた成果は、明示的にも暗示的にも、本発明に対する公知技術として了承されたものではない。
【課題を解決するための手段】
【０００５】
本発明の１つの形態では、ブートエラーを正すための装置が開示される。その装置は、不揮発性のソリッドステートメモリデバイス（固体記憶装置）を有し、その不揮発性ソリッドステートメモリデバイスは、第１のアドレスを持つ所定のブロックに、ブートローダーを格納している。装置は、さらに、電源投入時に、所定のブロックからブートローダーを読み出すメインコントローラーを有している。装置は、また、メインコントローラーの最初のブートシーケンスを監視するとともに、所定のブロックが、読み出し不可エラー状態に陥ったことを判定するように構成された監視モジュールを含んでいる。監視モジュールが、所定ブロックは読み出し不可エラー状態に陥ったと判定したとき、メインコントローラーは、バックアップブロックからバックアップブートローダーを取得する。
【０００６】
本発明の別の形態では、ソリッドステートメモリデバイスのブロックにおいて観察されたブートエラーを正すための方法が開示される。その方法は、不揮発性ソリッドステートメモリデバイスの第１のアドレスを有する所定のブロックに、ブートローダーを記憶し、電源投入時に、メインコントローラーによって、その所定ブロックからブートローダーの読み出しを試みる。その方法は、さらに、メインコントローラーの最初のブートシーケンスを監視するとともに、その最初のブートシーケンスの監視に基づき、所定のブロックが読み出し不可エラー状態に陥ったか否かを判定する。そして、その方法は、所定のブロックでの最初のフートシーケンスにエラーが生じたとき、バックアップブロックからバックアップブートローダーを取得する。
【０００７】
本発明のさらなる適用範囲は、以下に与えられる詳細な説明から明らかとなる。ただし、その詳細な説明及び特定の例は、説明のみを目的とすることが意図され、本発明の範囲を制限することは何ら意図されないことが理解されるべきである。また、本発明は、以下の詳細な説明及び添付図面から、より完全に理解されるようになる。
【図面の簡単な説明】
【０００８】
【図１】装置の代表的な構成要素を示すブロック図である。
【図２】メインコントローラーと監視モジュール間の代表的な通信を示すブロック図である。
【図３】種々のアプリケーションがメモリからロードされる際の、各種の信号の値を示す図である。
【図４】読み出し不可エラーを識別し、処置するための構成要素を有する装置の代表的な実施形態を示すブロック図である。
【図５】読み出し不可エラーを識別し、処置するための構成要素を有する装置の代表的な実施形態を示すブロック図である。
【図６】読み出し不可エラーを識別し、処置するための構成要素を有する装置の代表的な実施形態を示すブロック図である。
【発明を実施するための形態】
【０００９】
図１は、代表的な装置１００、あるいはそのサブシステムの構成要素を示すものである。装置１００は、装置１００を動作させるためのメインコントローラー１１０と、装置１００のオペレーティングシステムをロードするためのデバイスブートローダーを含む、装置１００を動作させる実行可能な命令を格納した不揮発性ソリッドステートメモリデバイス１２０と、不揮発性ソリッドステートメモリデバイス１２０の第１のブロックが破損されたかを判定するために、メインコントローラー１１０の最初のブートシーケンスを監視する監視モジュール１３０と、監視モジュール１３０が第１のブロックは破損されたと判定したとき、不揮発性ソリッドステートメモリデバイス１２０における第２のブロックからバックアップブートローダーを取り出すように構成されたブロックマッピングモジュール１４０と、を備えている。
【００１０】
メインコントローラー１１０は、１つもしくはそれ以上の機能を実行するためのチップセットから構成されている。例えば、メインコントローラー１１０は、テレマティクス装置、テレビジョン、あるいは移動電話を制御するためのマイクロプロセッサである。意図された機能を実行するために、メインコントローラー１１０は、意図された機能性をサポートするオペレーティングシステムを実行する。オペレーティングシステムは、メインコントローラー１１０が利用できる必要がある命令のセットから構成されている。それらの命令は、不揮発性ソリッドステートメモリデバイス１２０に格納されている。
【００１１】
幾つかの実施形態では、不揮発性ソリッドステートメモリデバイス１２０は、フラッシュメモリデバイスである。それらの実施形態の幾つかにおいては、フラッシュメモリデバイスは、ＮＡＮＤ型のフラッシュメモリからなる。ただし、フラッシュメモリデバイスは、ＮＯＲ型のフラッシュメモリや、もしくは将来に開発される技術によるものであっても良いことが理解されるべきである。そして、説明の目的のため、ソリッドステートメモリデバイス１２０は、以下、フラッシュメモリデバイス１２０と呼ぶことにするが、現在において公知の、もしくは将来開発される他の種類のメモリ装置が同様に使用され得ることは理解されるべきである。
【００１２】
オペレーティングシステムは、さらに、同じくフラッシュメモリデバイス１２０に格納された特定のアプリケーションを実行する。一旦、オペレーティングシステムがメインコントローラー１１０にロードされると、オペレーティングシステムは、メモリへのアクセスを司る。さらに、オペレーティングシステムは、読み出し不可エラーのようなメモリアクセスエラーに関するエラーに対処する。
【００１３】
電源投入時に、メインコントローラー１１０はフラッシュメモリデバイス１２０からオペレーティングシステムをロードしなければならない。最初に、プライマリブートローダー（ＰＢＬ）と呼ばれるプログラムが、デバイスブートローダー、あるいはセカンダリブートローダーと呼ばれるプログラムをフラッシュメモリデバイス１２０から読み出す。明確さのため、セカンダリブートローダー及びデバイスブートローダーは、以後、デバイスブートローダー（ＤＢＬ）との呼称に統一する。ＰＢＬは、メインコントローラー１１０に予めプログラムされており、メインコントローラー１１０の電源投入時に実行される。ＰＢＬは、ＤＢＬが格納されているフラッシュメモリデバイス１２０のブロックを示す所定のアドレス、例えば０ｘ００００をハードコードしたものである。ＤＢＬをロードするために、ＰＢＬは、フラッシュメモリデバイス１２０から所定のアドレスで始まるブロックを要求する。フラッシュメモリデバイス１２０は、所定のアドレスに格納されたブロックを選出し、ＰＢＬは、選出されたブロックに格納されたＤＢＬへ制御を譲り渡す。一旦、ＤＢＬがロードされると、ＤＢＬは、メインコントローラー１１０に対して、フラッシュメモリデバイス１２０からオペレーティングシステムを読み出すよう指示する。
【００１４】
前述したように、ＤＢＬを格納しているブロックが損なわれたとき、問題が発生する。ＤＢＬそれ自体は、オペレーティングシステムのロード時に、不良ブロックエラーを含む読み出し不可エラーを処置するためのコードを含んでいる。しかし、ＰＢＬは、ＤＢＬのロード時に、種々のタイプの読み出し不可エラーを処置するためのハードコードされた命令を含んでいない。概して、ＰＢＬは、検出された読み出し不可エラーを解決するために、メモリデバイス１２０のリフレッシュを試行することができ、メインコントローラー１１０をリセットすることができる。だが、もしＤＢＬを含むブロックに不良ブロックエラーが生じていたとすると、リフレッシュ及びリセットでは、問題を解決することができず、装置１００は、動作不能となる。さらに、不良ブロックエラーが生じることを防ぐため、メモリデバイス１２０にて実行されるリフレッシュ操作の回数は制限される場合がある。
【００１５】
ＤＢＬのロードの間に、読み出し不可エラーが検出されたときには、バックアップＤＢＬと呼ぼれる、ＤＢＬのコピーが、別の記憶場所から取り出される。バックアップＤＢＬは、フラッシュメモリデバイス１２０の違う場所に置かれても良いし、あるいは、完全に別個のメモリデバイスに格納されても良い。幾つかの実施形態では、第１のブロックが読み出し不可状態に陥っていると判定されたとき、ブロックマッピングモジュール１４０が、所定のアドレスの第１のブロック、例えば０ｘ００００のブロックに対する、メインコントローラー１１０からの要求を、バックアップＤＢＬが格納されているバックアップアドレスのブロック、例えば０ｘ４０００のブロックに対応付ける。ブロックマッピングモジュール１４０は、バックアップアドレスから始まるブロックが永続的に損なわれた場合、新たなバックアップＤＢＬが新しいアドレスから取り出せるように、フラッシュメモリデバイス１２０の異なるアドレスに、新たなバックアップＤＢＬを書き込むように構成されたものであっても良い。
【００１６】
装置は、ＤＢＬのブロックにおける読み出し不可エラーを検出するための監視モジュール１３０を備えている。監視モジュール１３０は、ＤＢＬを含むデータブロックの破損から生じる読み出し不可エラーの存在を判定するために、メインコントローラー１１０のブートシーケンスを監視する。図２は、メインコントローラー１１０と監視モジュール１３０との間の代表的な通信例を示している。メインコントローラー１１０がリセットされたとき、メインコントローラー１１０はリセット信号を監視モジュール１３０に送信する。また、メインコントローラー１１０は、ＤＢＬがフラッシュメモリデバイス１２０からメインコントローラー１１０に首尾よくロードされたとき、ＤＢＬ完了信号を監視モジュール１３０に送信する。監視モジュール１３０は、ＤＢＬのブロックにおける読み出し不可エラーを見分けるために、リセット信号とＤＢＬ完了信号とを監視する。読み出し不可エラーがＤＢＬのブロックにおいて検出されたならば、監視モジュール１３０は、読み出し不可信号をメインコントローラー１１０もしくは（図２では示されていない）ブロックマッピングモジュール１４０に送信する。
【００１７】
図３は、ＤＢＬのブロックにおける読み出し不可エラーを見分ける監視モジュール１３０の一例を示したものである。信号３１０はリセット信号であり、そのハイレベルの信号３１２，３１４，３１６は、メインコントローラー１１０がリセットされたことを示している。シーケンス３２０はブートシーケンスであり、そこにおいて、各ブロックは、フラッシュメモリデバイス１２０からメインコントローラー１１０にロードされる別々のアプリケーションを示している。信号３４０はＤＢＬ完了信号であり、そのハイレベルの信号３４２は、ＤＢＬがＰＢＬによってフラッシュメモリデバイス１２０からメインコントローラー１１０に首尾良くロードされたことを示すものである。信号３５０は読み出し不可信号であり、そこにおいて、ハイレベルの信号３５２は、ＤＢＬを格納しているブロックが損なわれていることを示すものである。
【００１８】
図３に見られるように、メインコントローラー１１０は、監視モジュール１３０に対して、信号３１２によりリセット信号を送信する。メインコントローラー１１０がりセットされてリセット信号３１２が送信されるとき、ＰＢＬ３２２がメインコントローラー１１０において実行される。ＰＢＬ３２２が首尾よくＤＢＬ３２４をロードすると、ＤＢＬ３２４が、今度は、オペレーティングシステム３２６をロードし、さらに、オペレーティングシステム３２６が、アプリケーション３２８をロードする。ＤＢＬ３２４が首尾良くロードされた後の時点で、メインコントローラー１１０はＤＢＬ完了信号３４２を監視モジュール１３０に送信する。このとき、読み出し不可信号は、低レベルのままである。
【００１９】
次のリセット信号３１４で、次のシーケンスが始まる。ＰＢＬ３３０が実行されるが、ＤＢＬ３３２をロードする試みは失敗に終わる。リセットそれ自体は、何ら付加的な情報を含んでいないので、読み出しエラーが生じたとの最初の決定に基づき、読み出し不可エラーが生じたかどうかを判定することはできない。そのため、監視モジュール１３０は、この時点では、読み出し不可信号を送信しない。メインコントローラー１１０は再びリセットされ、リセット信号３１６を送信する。リセット信号３１６で始まるシーケンスで、ＰＢＬ３３４が再度ＤＢＬ３３６のロードを試みるが失敗に終わる。この時点で、監視モジュール１３０は、メインコントローラー１１０からＤＢＬ完了信号を受信することなく、２つの連続したリセット信号を取得したことになる。ＤＢＬ完了信号を受信せずに、例えば２つもしくはそれ以上の連続したリセット信号が取得されるようなシーケンスが生じたとき、監視モジュール１３０は、ＤＢＬを含むブロックにおいて読み出し不可エラーが生じたことを特定する。
【００２０】
ただし、上記は、ＤＢＬを格納するブロックに、読み出し不可エラーが生じていることを判定する方法の一例に過ぎないことが理解されるべきである。ＤＢＬを格納するブロックに読み出し不可エラーが生じていることを判定するために、他の技術が使用可能であることは想定され得ることである。また、上記の方法は、一時的及び永続的なエラーの両方を特定するために使用され得ることに注意すべきである。さらに、上記の方法は、リフレッシュ操作が読み出し不可エラーを修復することが出来るかどうかをモニタすることによって、永続的なエラーを一時的なエラーから識別するように変更されても良い。
【００２１】
ＤＢＬに対して読み出し不可エラーが検出されると、メインコントローラー１１０は、読み出し不可エラーの状態にあるブロックからＤＢＬをロードすることができないので、別の場所からバックアップＤＢＬをロードしなければならない。
【００２２】
図４は、装置１００の一実施形態を示すものである。装置１００は、メインコントローラー１１０、ＮＡＮＤ型フラッシュメモリデバイス１２０、監視モジュール１３０、及びブロックマッピングモジュール１４０を有する。上述したように、メインコントローラー１１０は、電源投入時に、所定の場所、例えばアドレス０ｘ００００で始まるブロックからＤＢＬをロードしようと試みる。所定のアドレスのブロックの読み出しを試みるために、メインコントローラー１１０は、ピン４１２からフラッシュメモリデバイス１２０のピン４３２へチップイネーブル信号を発し、それにより、フラッシュメモリデバイス１２０がイネーブル（有効）となるよう指示する。メインコントローラー１１０は、また、ピン４１４からピン４３４に読み出しイネーブル信号も発し、それにより、読み出しが要求されていることを指示する。フラッシュメモリデバイス１２０から読み出されるべきブロックのアドレスを送信するとき、メインコントローラー１１０は、ピン４１８から４３８に、通信されるデータがアドレスに相当することを指示するアドレスラッチイネーブル（ＡＬＥ）信号を送信する。ＰＢＬによって要求されるアドレス、例えば０ｘ００００は、ピン４２２からブロックマッピングモジュール１４０のピン４６４に伝達される。以下に説明されるように、ブロックマッピングモジュール１４０は、読み出し不可エラーが発生していないとき、受信されたアドレスをそのまま用いる。つまり、読み出し不可エラーが検出されていないとき、ブロックマッピングモジュール１４０は、メインコントローラー１１０にて実行されるＰＢＬによって与えられたアドレス、例えば０ｘ００００を、ピン４６８を介して、フラッシュメモリデバイス１２０のピン４４２に伝達する。フラッシュメモリデバイス１２０は、所定のアドレスに配置されたブロック、例えば０ｘ００００に配置されたブロックを、ピン４４０からメインコントローラー１１０のピン４２０に返送する。この読み出しが首尾よく行ったときには、メインコントローラー１１０は監視モジュール１３０にＤＢＬ完了信号を送信する。
【００２３】
一方、ＤＢＬを格納しているブロックに関して、読み出し不可エラーが検出されたならば、監視モジュール１３０は、ピン４５２からＡＮＤゲート４７０に読み出し不可検出信号を送出する。さらに、ＤＢＬはフラッシュメモリデバイス１２０からロードされつつある状態である（まだ、完了されていない状態である）ので、メインコントローラー１１０は、ピン４２４からＡＮＤゲート４７０に、ＤＢＬ読み出し前信号を送出する。ＤＢＬ読み出し前信号は、フラッシュメモリデバイス１２０からのＤＢＬのロードがまだ完了されておらず、そうするための試みがさらに行われることを示すものである。さらに、ＤＢＬのロードの試行の間に、アドレスが送信されるので、アドレスラッチイネーブル信号はオンしてハイレベルとなり、その信号もＡＮＤゲート４７０に送出される。本例においては、ピン４１８，４２４，４５２からの信号は、ＡＮＤゲート４７０においてすべてハイレベルとなり、それにより、ハイレベルの信号が、ブロックマッピングモジュール１４０の選択ピン４６６に送信されることになる。選択ピン４６６が、ハイレベルの信号を受信すると、ブロックマッピングモジュール１４０は、メインコントローラー１１０によって与えられたアドレスに代えて、バックアップアドレスを使用する。
【００２４】
本実施形態では、ブロックマッピングモジュール１４０は、通常は、ピン４６４にて受信されたアドレスを使用するように構成されている。しかしながら、ＤＢＬを格納するブロックにおいて読み出し不可エラーが検出されたならば、ブロックマッピングモジュール１４０は、ピン４６２からハードコードされたアドレスを読み込む。ピン４６２に記憶されたアドレスは、バックアップＤＢＬを格納しているブロック、例えば０ｘ４０００で始まるブロックのアドレスである。ＡＮＤゲート４７０からの信号がハイレベルとなったとき、ブロックマッピングモジュール１４０は、ピン４６２からアドレスを取り込み、ピン４６８を介して、フラッシュメモリデバイス１２０のピン４４２に伝達する。このようにして、本装置１００は、ＤＢＬを格納するブロックに読み出し不可エラーが生じたときに、バックアップアドレスに配置されたブロックからバックアップＤＢＬを取得するように構成されている。ただし、リフレッシュ操作は、一時的なエラーを正すことがあるので、バックアップＤＢＬは、読み出し不可エラーを含むブロックにおいて、リフレッシュ操作を実行することをメインコントローラー１１０に指示する、追加の命令を含むことが可能であることに注意すべきである。
【００２５】
表１は、バックアップＤＢＬを読み出すためにバックアップアドレスが使用されるときのシナリオを示す真理値表である。
【表１】
2012198876.tif 000003
表１において、“Ｌ”はローレベル信号を示し、“Ｈ”はハイレベル信号を示し、そして、“Ｘ”は意味のない信号を示す。つまり、“Ｘ”が表示されている場合、その信号から得られる値は、無視され、すなわち意味の無いものとなる。表１に示されるように、ブロックマッピングモジュール１４０が、バックアップアドレスからバックアップＤＢＬがロードされるようにブロックを変更する唯一のシナリオは、アドレスラッチイネーブル（ＡＬＥ）信号がハイレベルとなり、読み出し不可検出信号がハイレベルとなり、そしてＤＢＬ読み出し前信号がハイレベルとなったときだけである。
【００２６】
図４に関連してなされた説明は、本質的に、代表的な例についてのものにすぎず、メインコントローラー１１０，フラッシュメモリデバイス１２０、監視モジュール１３０、及びブロックマッピングモジュール１４０のピンやその他の構成は、各部品の製造業者に依存して変化し得るものであることが理解されるべきである。さらに、ピンとの用語が使用されたが、部品間で信号を通信するためのいかなる他の入出力機構が使用されても良いことも理解されるべきである。また、前述した例のバリエーションも、本実施形態の範囲に含まれることに注意すべきである。
【００２７】
図５は、装置１００の別の実施形態を示すものである。装置１００は、メインコントローラー１１０、フラッシュメモリデバイス１２０、監視モジュール１３０、及びブロックマッピングモジュール１４０を有する。上述したように、メインコントローラー１１０は、電源投入時に、所定のアドレスからＤＢＬを含むブロックを読み出そうと試みる。監視モジュール１３０は、所定アドレスからＤＢＬをロードしようとするメインコントローラー１１０の試みを監視し、ＤＢＬを含むブロックが読み出し不可エラー状態に陥っているかどうかを判定する。もし、そのような状態に陥っているならば、監視モジュール１３０は、所定アドレスにて始まるブロックにおいて、読み出し不可エラーがあることを示す信号をブロックマッピングモジュール１４０に送出する。この場合、メインコントローラー１１０が所定アドレスからＤＢＬのロードを要求したときに、ブロックマッピングモジュール１４０は、バックアップアドレスに配置されたブロックからバックアップＤＢＬを読み出す。
【００２８】
フラッシュメモリデバイス１２０から読み出しを行おうとするとき、メインコントローラー１１０は、フラッシュメモリデバイス１２０がイネーブル（有効）となることをフラッシュメモリデバイス１２０に指示するチップイネーブル信号を、ピン５１２からピン５３２へ送信する。また、メインコントローラー１１０が、フラッシュメモリデバイス１２０からの読み出しを試みる場合には、メインコントローラー１１０は、ピン５１４からピン５３４に読み出しイネーブル信号を送信し、それにより、読み出しが要求されていることを指示する。書き込みイネーブル信号は、メインコントローラー１１０がフラッシュメモリデバイス１２０に書き込みを行うことを指示するために、メインコントローラー１１０のピン５１６からフラッシュメモリデバイス１２０のピン５３６へ、ブロックマッピングモジュール１４０を経由して送信される。アドレスの送信が必要とされる場合、アドレスラッチイネーブル信号がピン５１８からピン５３８に送信される。
【００２９】
監視モジュール１３０が、ＤＢＬを格納しているブロックが損なわれていると判定したとき、監視モジュール１３０は、読み出し不可信号をピン５５２からブロックマッピングモジュール１４０に送信する。ブロックマッピングモジュール１４０は、さらに、ＡＬＥ信号を監視し、ＡＬＥ信号がオンとなり、ＰＢＬが読み出し不可エラー状態のブロックからＤＢＬをロードしようとしているときに、与えられたアドレスでのブロックに対する読み出し要求を、バックアップＤＢＬのブロックのアドレスに対応付ける。この機能を実行するために、ブロックマッピングモジュール１４０は、バックアップＤＢＬのブロックアドレスを格納することが可能な所定長さのバッファを有している。なお、リフレッシュ操作は、一時的なエラーを正すことがあるので、バックアップＤＢＬは、読み出し不可エラーを生じているブロックに対して、リフレッシュ操作を実行することをメインコントローラー１１０に指示する、追加の命令を含むことが可能であることに注意すべきである。さらに、ブロックが読み出し不可エラー状態に陥っている場合、ブロックマッピングモジュール１４０は、ピン５３６へライトイネーブル信号を出力することにより、新たなバックアップアドレス、例えば０ｘ８０００に、バックアップブートローダーをコピーするように構成しても良い。これにより、もしバックアップＤＢＬのブロックが損なわれて読み出し不可エラーが生じたとしても、ブロックマッピングモジュール１４０が新しいバックアップアドレスから新しいバックアップＤＢＬを取り出すことが可能になる。
【００３０】
表２は、バックアップＤＢＬがロードされることが必要かどうかを判定するための、代表例としての真理値表を示すものである。
【表２】
2012198876.tif 000004
表２において、“Ｌ”はローレベル信号を示し、“Ｈ”はハイレベル信号を示し、そして、“Ｘ”は意味のない信号を示す。つまり、“Ｘ”が表示されている場合、その信号から得られる値は、無視され、すなわち意味の無いものとなる。
【００３１】
図５に関連してなされた説明は、本質的に、代表的な例についてのものにすぎず、メインコントローラー１１０，フラッシュメモリデバイス１２０、監視モジュール１３０、及びブロックマッピングモジュール１４０のピンやその他の構成は、各部品の製造業者に依存して変化し得るものであることが理解されるべきである。さらに、ピンとの用語が使用されたが、部品間で信号を通信するためのいかなる他の入出力機構が使用されても良いことも理解されるべきである。また、前述した例のバリエーションも、本実施形態の範囲に含まれることに注意すべきである。
【００３２】
図６は、装置１００のさらに別の実施形態を示すものである。装置１００は、メインコントローラー１１０、フラッシュメモリデバイス１２０、監視モジュール１３０、及び外部メモリデバイス６５０を有する。メインコントローラー１１０及びフラッシュメモリデバイス１２０は、上述した例と同様に動作する。本実施形態では、ＤＢＬを含むブロックにおいて、読み出し不可エラーが検出されたとき、監視モジュール１３０が、メインコントローラー１１０のピン６２４に読み出し不可検出信号を送信する。その信号がメインコントローラー１１０によって受信されることにより、メインコントローラー１１０は、外部メモリデバイス６５０からブートすることを指示される。外部メモリデバイス６５０は、バックアップＤＢＬを含んでいる。このように、ＰＢＬがフラッシュメモリデバイス１２０からＤＢＬをロードしようと試みている際に、ピン６２４が読み出し不可信号を受信すると、メインコントローラー１１０は、外部メモリデバイス６５０からピン６２２を介してＤＢＬをロードする。外部メモリデバイス６４０は、ＲＯＭ、ＮＯＲ型のフラッシュメモリ、もしくは他のタイプのメモリからなる。なお、リフレッシュ操作は、一時的なエラーを正すことがあるので、バックアップＤＢＬは、読み出し不可エラーを生じているブロックに対して、リフレッシュ操作を実行することをメインコントローラー１１０に指示する、追加の命令を含むことが可能であることに注意すべきである。
【００３３】
表３は、外部メモリデバイス６４０からＤＢＬをロードすべきときを判定するための、代表例としての真理値表を示すものである。
【表３】
2012198876.tif 000005
表３において、“Ｌ”はローレベル信号を示し、“Ｈ”はハイレベル信号を示す。
【００３４】
図６に関連してなされた説明は、本質的に、代表的な例についてのものにすぎず、メインコントローラー１１０，フラッシュメモリデバイス１２０、及び監視モジュール１３０のピンやその他の構成は、各部品の製造業者に依存して変化し得るものであることが理解されるべきである。さらに、ピンとの用語が使用されたが、部品間で信号を通信するためのいかなる他の入出力機構が使用されても良いことも理解されるべきである。また、前述した例のバリエーションも、本実施形態の範囲に含まれることに注意すべきである。
【００３５】
上述した記載は、本質的に、単なる説明であって、本発明の開示、その適用や使用を制限することを僅かながらも意図するものではない。明確さのため、同じ参照番号が、類似する要素を特定するために図面等において使用されている。本明細書において使用された、Ａ，Ｂ，Ｃの少なくとも１つとのフレーズは、非排他的な論理的ＯＲを用いて、ＡｏｒＢｏｒＣの論理を意味し、さらに、複数の要素を同時に用いることを排除しないことを意味するものと解釈されるべきである。また、方法における各ステップは、本発明の原理を改変しない限り、異なる順序で実行されても良いことが理解されるべきである。
【００３６】
本明細書において、モジュールとの用語は、特定用途向けＩＣ（ＡＳＩＣ）、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ（共用、専用、あるいは集合）、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、モジュールとの用語はプロセッサによって実行されるコードを記憶するメモリ（共用、専用、あるいは集合）を含むものでもある。
【００３７】
上記において使用された、コードとの用語は、ソフトウェア、ファームウェア、及び／又はマイクロコードを含み、プログラム、ルーチン、機能、クラス、及び／又はオブジェクトに言及するものである。また、上記の共用との用語は、複数のモジュールからの幾つか若しくは全てのコードが単一の（共用された）プロセッサを用いて実行されることを意味する。さらに、複数のモジュールからの幾つか若しくは全てのコードが、単一（共用された）メモリに記憶されることも意味する。集合との用語は、単一のモジュールからの幾つかの若しくは全てのコードが複数のプロセッサのグループを用いて実行されることを意味する。さらに、単一のモジュールからの幾つかの若しくは全てのコードが複数のメモリのグループを用いて記憶されることを意味する。
【００３８】
本明細書の装置及び方法は、１つあるいはそれ以上のプロセッサによって実行される１つあるいはそれ以上のコンピュータプログラムによって実行されるものである。コンピュータプログラムは、固定の実体的なコンピュータ読み出し可能媒体に記憶された、プロセッサが実行可能な命令を含むものである。コンピュータプログラムは、記憶されたデータも含むものであっても良い。固定の実態的なコンピュータ読み出し可能媒体の非制限的な例は、不揮発性メモリ、磁気メモリ、光メモリである。
【００３９】
本発明の広範な教示は、種々の形態で実施されえるものである。本明細書では、特定の例について記載しているが、他の変形例は図面、明細書、及び特許請求の範囲の内容から、当業者にあきらかとなるので、本発明の真の範囲は、そのようなものに限定されるべきものではない。
【符号の説明】
【００４０】
１００  装置
１１０  メインコントローラー
１２０  フラッシュメモリデバイス
１３０  監視モジュール
１４０  ブロックマッピングモジュール
【図１】
2012198876.tif 000006
【図２】
2012198876.tif 000007
【図３】
2012198876.tif 000008
【図４】
2012198876.tif 000009
【図５】
2012198876.tif 000010
【図６】
2012198876.tif 000011