(57)【要約】【課題】  従来のファームオンフラッシュ技術によらないで機能変更を可能とするための技術を提供する。【解決手段】  不揮発性半導体メモリ（２２）に、レジスタの設定の変更を可能とするパラメータブロックの記憶エリア（２２２）を形成し、マイクロプロセッサ（２４）のリセット例外処理において上記パラメータブロックに基づいて上記レジスタの設定処理が行われるようにする。それによれば、ホストコンピュータを介して不揮発性半導体メモリ内の上記パラメータブロックを書き換えるだけで、上記レジスタの設定内容を容易に変更することができる。これにより、従来のファームオンフラッシュ技術によらないで、記憶装置内部の機能変更が可能になる。【選択図】        図１
2005234928.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータによってデータの書き換えが可能な不揮発性半導体メモリと、ファームウェアを格納する書き換え不可能なプログラムメモリと、上記ファームウェアを処理するためのマイクロプロセッサと、上記マイクロプロセッサのリセット例外処理によって設定されるレジスタと、を含み、
上記不揮発性半導体メモリは、上記レジスタの設定の変更を可能とするパラメータブロックの記憶エリアを含み、
上記マイクロプロセッサのリセット例外処理において上記パラメータブロックに基づいて上記レジスタの設定処理が行われる、記憶装置。
【請求項２】
上記ホストコンピュータとの間で信号のやり取りを可能とする第１インタフェースと、上記不揮発性半導体メモリとの間で信号のやり取りを可能とする第２インタフェースと、上記マイクロプロセッサのワークエリアとして使用されるワークＲＡＭとを含み、
上記レジスタには、上記第１インタフェース及び上記第２インタフェースに含まれる各種レジスタ、及び上記ワークＲＡＭにおける記憶領域の一部が含まれる、請求項１記載の記憶装置。
【請求項３】
上記パラメータブロックには、上記レジスタを特定するためのアドレス情報と、上記レジスタへの設定内容と、上記内容を上記レジスタに設定するか否かの識別情報が含まれ、上記マイクロプロセッサは上記識別情報を判別し、その判別結果に応じて、対応するレジスタの設定を行う、請求項２記載の記憶装置。
【請求項４】
コントローラと書換え可能な不揮発性半導体メモリとを有する記憶装置であって、
上記コントローラは、ホストインタフェース、上記不揮発性半導体メモリに接続するメモリインタフェース、上記ホストインタフェースと上記メモリインタフェースを制御するプロセッサ、上記プロセッサが実行可能な第１プログラムを保有する書き換え不可能なプログラムメモリ、及び上記プロセッサのワークＲＡＭを有し、
上記不揮発性半導体メモリは、上記プロセッサが実行可能な第２のプログラムを格納する第１領域と、コントローラ内部の機能設定用パラメータを格納する第２の領域とを有し、
上記プロセッサは、上記第１プログラムに従ったリセット例外処理にて、上記第１領域から上記ワークＲＡＭへの上記第２プログラムの転送と、上記第２領域から上記コントローラ内部への機能設定用パラメータの転送とにより、上記コントローラの機能の変更及び拡張が可能にされる、記憶装置。
【請求項５】
機能設定用パラメータの転送先は、上記ホストインタフェースのコントロールレジスタ領域、上記メモリインタフェースのコントロールレジスタ領域、及び上記ワークＲＡＭの記憶領域のうちから選ばれた所定の領域である、請求項４記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電気的に書き換え可能な不揮発性半導体メモリを記憶媒体として用いた記憶装置の機能変更技術に係り、例えばフラッシュメモリカードに適用して有効な技術に関する。
【背景技術】
【０００２】
不揮発性半導体メモリを用いた記憶装置として、フラッシュメモリを用いた記憶装置がある。フラッシュメモリは、データの書き込みを行う前に、データ書き込みを行う一つ以上のセクタから構成されるブロックを消去しなければならない。また、パーソナルコンピュータなどのホストコンピュータに接続された場合、パーソナルコンピュータが発行するコマンドなどの解析を行い、パーソナルコンピュータが要求するデータの読み出しや書き込みを制御する必要がある。このフラッシュメモリの制御やホストコンピュータ間の制御を行うために、記憶装置にはファームウェアが格納されている。このような記憶装置として、電源オン時のリセット例外処理（パワーオン処理）に、フラッシュメモリからＲＡＭにロードすることで、ＲＯＭ内の不具合が発生したモジュールの代わりにＲＡＭの不具合が修正されたモジュールを使用することにより、ＲＯＭのファームウェアの不具合対策を行う技術が知られている（例えば特許文献１参照）。かかる技術において記憶装置に格納されるファームウェアは、各機能ごとに分割された複数のモジュールと、各モジュールの呼び出し毎に参照されるジャンプテーブルで構成される。ジャンプテーブルは、各モジュールのアドレスを示している。また、この記憶装置は、不揮発性半導体メモリであるフラッシュメモリ、マイクロプロセッサ、ファームウェアが格納されるＲＯＭ、そしてＲＯＭに格納されているファームウェア内のジャンプテーブルまたは修正されたジャンプテーブルと修正されたモジュールをフラッシュメモリからロードするＲＡＭから構成される。フラッシュメモリには、ホストコンピュータが書き込むデータと、修正されたジャンプテーブルや複数のモジュールが格納される。ＲＯＭには、予めファームウェアが格納されている。
【０００３】
電源オン後、第１のメモリに格納されているジャンプテーブルが、マイクロプロセッサによって、ＲＯＭからＲＡＭにコピーされる。ファームウェアに不具合が発生していないときには、ＲＡＭにコピーされたジャンプテーブルは、すべてＲＯＭに格納されているファームウェアの各モジュールのアドレスを示している。
【０００４】
ＲＯＭに格納されているファームウェアに不具合が発生した場合、フラッシュメモリには、不具合が発生したモジュールに対する修正したモジュールを格納する。同時に、ジャンプテーブルも、修正されたモジュールのアドレスを示すように修正され、フラッシュメモリに格納される。
【０００５】
ＲＯＭに格納されているジャンプテーブルをＲＡＭにコピーした後、修正されたジャンプテーブルおよび複数のモジュールがフラッシュメモリに格納されている場合には、フラッシュメモリに格納されている修正されたジャンプテーブルおよび複数のモジュールはＲＡＭにロードされる。このとき、ＲＯＭからコピーされたジャンプテーブルは、フラッシュメモリに格納されている修正されたジャンプテーブルに書き替えられる。これにより、ＲＯＭに格納されている不具合が発生したモジュールは参照されず、ＲＡＭにロードされている修正モジュールが参照される。
【０００６】
以上のように、不具合が発生したモジュール及びジャンプテーブルを修正し、フラッシュメモリに格納することにより、ＲＯＭに格納されているファームウェアに不具合が発生した場合にも、容易にファームウェアの修正が可能になる。このような技術をファームオンフラッシュ技術という。
【０００７】
【特許文献１】特開平１１−２６５２８３号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記従来技術によれば、ファームウェアの修正のために必要になるＲＡＭの容量は、不具合が発生したモジュールとジャンプテーブルの容量で十分であるのでＲＡＭ容量を低減でき、そのような意味では記憶装置の低価格化を図ることができる。
【０００９】
しかしながら、電源が投入された際に、フラッシュメモリからＲＡＭにロードすることでＲＯＭ内の不具合が発生したモジュールの代わりにＲＡＭ内の修正モジュールを使用することでファームウェアの不具合対策を行っているため、修正されたモジュールが増えると、それに応じてＲＡＭの空き容量が減少され、ＲＡＭに空き容量が無くなったときには不具合対策ができなくなる。
【００１０】
本発明の目的は、従来のファームオンフラッシュ技術によらないで機能変更を可能とするための技術を提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
すなわち、ホストコンピュータによってデータの書き換えが可能な不揮発性半導体メモリと、ファームウェアが格納されているプログラムメモリと、上記ファームウェアを処理するためのマイクロプロセッサと、上記マイクロプロセッサのリセット例外処理によって設定されるレジスタとを含んで半導体集積回路が形成されるとき、上記不揮発性半導体メモリに、上記レジスタの設定の変更を可能とするパラメータブロックの記憶エリアを形成し、上記マイクロプロセッサのリセット例外処理において上記パラメータブロックに基づいて上記レジスタの設定処理が行われるようにする。
【００１４】
上記の手段によれば、上記マイクロプロセッサのリセット例外処理において上記パラメータブロックに基づいて上記レジスタの設定処理が行われるため、ホストコンピュータを介して不揮発性半導体メモリ内の上記パラメータブロックを書き換えるだけで、上記レジスタの設定内容を容易に変更することができる。このことが、ファームオンフラッシュ技術によらないで、記憶装置内部の機能変更を達成する。
【００１５】
このとき、上記ホストコンピュータとの間で信号のやり取りを可能とする第１インタフェースと、上記不揮発性半導体メモリとの間で信号のやり取りを可能とする第２インタフェースと、上記マイクロプロセッサのワークエリアとして使用されるワークＲＡＭとを含み、上記レジスタには、上記第１インタフェース及び上記第２インタフェースに含まれる各種レジスタ、及び上記ワークＲＡＭにおける記憶領域の一部を含めることができる。
【００１６】
また、上記パラメータブロックは、上記レジスタを特定するためのアドレス情報と、上記レジスタへの設定内容と、上記内容を上記レジスタに設定するか否かの識別情報を含んで構成することができ、その場合において、上記マイクロプロセッサは上記識別情報を判別し、その判別結果に応じて、対応するレジスタの設定を行うように構成することができる。
【００１７】
さらに、コントローラと書換え可能な不揮発性半導体メモリとを有する記憶装置において、上記コントローラは、ホストインタフェース、上記不揮発性半導体メモリに接続するメモリインタフェース、上記ホストインタフェースと上記メモリインタフェースを制御するプロセッサ、上記プロセッサが実行可能な第１プログラムを保有する書き換え不可能なプログラムメモリ、及び上記プロセッサのワークＲＡＭを含んで構成し、上記不揮発性半導体メモリには、上記プロセッサが実行可能な第２のプログラムを格納する第１領域と、コントローラ内部の機能設定用パラメータを格納する第２の領域とを形成する。そして上記プロセッサは、上記第１プログラムに従ったリセット例外処理にて、上記第１領域から上記ワークＲＡＭへの上記第２プログラムの転送と、上記第２領域から上記コントローラ内部への機能設定用パラメータの転送とにより、上記コントローラの機能の変更及び拡張が可能にされる。このようにしてもホストコンピュータを介して不揮発性半導体メモリ内の上記パラメータブロックを書き換えるだけで上記コントローラの機能の変更及び拡張を行うことができる。
【００１８】
このとき、機能設定用パラメータの転送先は、上記ホストインタフェースのコントロールレジスタ領域、上記メモリインタフェースのコントロールレジスタ領域、及び上記ワークＲＡＭの記憶領域のうちから選ばれた所定の領域とすることができる。
【発明の効果】
【００１９】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２０】
すなわち、マイクロプロセッサのリセット例外処理においてパラメータブロックに基づいてレジスタの設定処理が行われるため、ホストコンピュータを介して不揮発性半導体メモリ内の上記パラメータブロックを書き換えるだけで、上記レジスタの設定内容を容易に変更することができ、それにより、従来のファームオンフラッシュ技術によらないで、記憶装置内部の機能変更を行うことができる。また、かかる機能変更はＲＡＭの空き容量が無い場合でも可能となる。
【発明を実施するための最良の形態】
【００２１】
図１には、本発明にかかる記憶装置の一例であるフラッシュメモリカードが示される。
【００２２】
図１において、１はホストコンピュータであり、２はこのホストコンピュータ１に着脱自在に結合されたフラッシュメモリカードである。このフラッシュメモリカード２とホストコンピュータ１とは標準バス１０１を介して各種信号のやり取りが可能とされる。特に制限されないが、上記ホストコンピュータ１は、パーソナルコンピュータとされる。
【００２３】
フラッシュメモリカード２は、不揮発性半導体メモリの一例とされるフラッシュメモリ２２と、このフラッシュメモリカード２の動作制御のためのコントローラ２１とを含む。このコントローラ２１とフラッシュメモリ２２とは、フラッシュバス１０２を介して各種信号のやり取りが可能とされる。ここで、上記フラッシュメモリが、本発明における不揮発性半導体メモリの一例とされる。
【００２４】
フラッシュメモリ２２は、ユーザ情報の記憶を可能とするユーザ記憶領域２２３とは別に、ファームオンフラッシュ技術で使用される修正モジュールの格納領域であるＦＯＦ領域２２１（第１領域）と、後述するレジスタの設定変更を可能とするパラメータブロックの格納領域であるレジスタ設定領域２２２（第２領域）とが形成される。上記パラメータブロックの内容変更はホストコンピュータ１からフラッシュメモリカード２に対して発行される所定コマンドを用いて行うことができる。そのようなパラメータブロックには、レジスタを特定するためのアドレス情報と、上記レジスタへの設定内容と、上記内容を上記レジスタに設定するか否かの識別情報が含まれる。このとき、上記マイクロプロセッサ２４は上記識別情報を判別し、その判別結果に基づいて、対応するレジスタの設定が行われる。
【００２５】
特に制限されないが、上記コントローラ２１は、ファームウェアを格納するプログラムメモリとしてのＲＯＭ（リードオンリーメモリ）２５、ファームオンフラッシュ技術における修正モジュールの記憶エリアやプロセッサ２４での演算処理のワークエリアとして利用されるワークＲＡＭ（ランダムアクセスメモリ）２６、上記ＲＯＭ２５に格納されているファームウェアを処理可能なマイクロプロセッサ２４、パッド（ＰＡＤ）２９を介して結合されたホストコンピュータ１との間でデータのやり取りを可能とするためのホストインタフェース２７、パッド（ＰＡＤ）３０を介して結合されたフラッシュメモリ２２との間でデータのやり取りを可能とするためのフラッシュインタフェース２８、及び転送データの一時記憶のために利用されるデータバッファ２３などを含む。
【００２６】
ホストインタフェース２７は、このホストインタフェース２７の機能設定や機能拡張に関する各種レジスタ（ＲＥＧ）２７１を含んで成る。特に制限されないが、上記レジスタ２７１には、ホストコンピュータ１に対して各種信号を伝達するためのドライバの駆動能力を設定可能なホストＩ／Ｏドライブレジスタ、システムクロック信号の周波数を設定可能なシステム分周レジスタ、クロック発信停止のクロック数を設定可能なシステムクロックレジスタが含まれ、それらはマイクロプロセッサ２４のリセット例外処理において上記フラッシュメモリ２２におけるレジスタ設定領域２２２の設定情報に従って設定可能とされる。
【００２７】
また、フラッシュインタフェース２８は、このフラッシュインタフェース２８の機能設定や機能拡張に関する各種レジスタ（ＲＥＧ）２８１を備える。特に制限されないが、上記レジスタ２８１には、フラッシュメモリ２２に対して各種信号を伝達するためのドライバの駆動能力を設定可能なフラッシュＩ／Ｏドライブレジスタが含まれる。
【００２８】
さらに、上記ＲＡＭ２６の記憶領域の一部を利用して、ＥＣＣ（エラー訂正コード）不可エラーデータ出力の有効・無効の識別情報の記憶エリアや、ウェアレベリング回数情報の記憶エリア、バンク当たりのデータブロック数情報の記憶エリアが形成される。このような記憶エリアもレジスタと見ることができ、かかるレジスタも、上記フラッシュメモリ２２におけるレジスタ設定領域２２２の設定情報に従って設定可能とされる。
【００２９】
図２には上記ＲＯＭ２５に格納されているファームウェアの内部構成例が示される。
【００３０】
図２に示されるように、ＲＯＭ２５に格納されているファームウェア２０１には、電源オン処理モジュール、初期ジャンプテーブル、初期モジュール１，…，初期モジュールｋが含まれる。電源オン処理モジュールは、電源オン処理時に実行されるモジュールである。初期ジャンプテーブルは、初期モジュール１，…，初期モジュールｋのアドレスを示している。初期モジュール１，…，初期モジュールｋは、機能ごとに分割されたプログラムである。
【００３１】
図３には、ＲＯＭ２５に格納されているリセット例外処理プログラム（電源オン処理モジュール）を処理する処理するマイクロプロセッサのフローチャートが示される。
【００３２】
まず、ステップ３０１において、このフラッシュメモリカード２の各部についての初期設定が行われる。この初期設定には、ホストインタフェース２７やフラッシュインタフェース２８内のレジスタ２７１，２８１や、ＲＡＭ２６、さらにはマイクロプロセッサ２４の内部レジスタの初期設定が含まれる。
【００３３】
次いで、ステップ３０２において、ＲＯＭ２５に格納されている初期ジャンプテーブルがＲＡＭ２６にコピーされる。
【００３４】
ステップ３０３では、フラッシュメモリ２２の修正されたファームウェアが格納されているブロックアドレスｎの修正ファーム管理部をデータバッファ２３に転送している。その後、マイクロプロセッサ２４は、データバッファ２３に転送された修正ファーム管理部の修正ファーム有無フラグをリードし、フラッシュメモリ２２のブロックアドレスｎに修正されたモジュールやジャンプテーブルが格納されているかどうかを確認する（ステップ３０４）。
【００３５】
修正されたモジュールやジャンプテーブルがフラッシュメモリ２２のブロックアドレスｎに格納されている場合には、ステップ３０５及びステップ３０６の処理が行われる。ステップ３０５では、フラッシュメモリ２２の修正されたファームウェアが格納されているブロックアドレスｎの修正ファームウェア格納部をデータバッファ２３に転送している。ステップ３０６では、データバッファ２３に転送された修正ファームウェア格納部をＲＡＭ２６にコピーしている。
【００３６】
ここで、ステップ３０２でＲＯＭ２５からコピーされた初期ジャンプテーブルは、フラッシュメモリ２２に格納されていた修正ジャンプテーブルに書き替えられる。このようにして従来のファームオンフラッシュ技術による機能変更を行うことができる。
【００３７】
そして、ステップ３０６の処理が終了した後は、レジスタの設定内容の変更が必要に応じて行われる。つまり、ステップ３０１で初期設定されたレジスタの設定内容を変更する必要がある場合には、上記ファームオンフラッシュ技術による変更処理（ステップ３０４〜３０６）とは別個の処理として以下のように実行される。
【００３８】
レジスタ設定領域２２２におけるパラメータブロックがチェックされ、ＲＡＭ２６におけるエリアの変更についてデータの設定があるか否かの判別が行われる（ステップ３０７）。この判別においてデータの設定があると判断された場合には、レジスタ設定領域２２２から該当データが読み出され、ＲＡＭ２６に設定される。
【００３９】
次に、ホストコンピュータ１からフラッシュメモリカード２に供給される電源電圧（供給電圧）のレベルチェックが行われる（ステップ３０９）。この供給電圧が２．４Ｖ以上の場合には、３Ｖ系のドライブ能力が発揮されるよう、該当データがレジスタ設定領域２２２から読み出されてレジスタ２７１（ホストＩ／Ｏドライブレジスタ）やレジスタ２８１（フラッシュＩ／Ｏドライブレジスタ）に設定される。また、上記供給電圧が２．４Ｖに達していない場合には、１．８Ｖ系のドライブ能力が発揮されるよう、該当データがレジスタ設定領域２２２から読み出されてレジスタ２７１（ホストＩ／Ｏドライブレジスタ）やレジスタ２８１（フラッシュＩ／Ｏドライブレジスタ）に設定される。これにより、そのときの供給電圧に適したドライブ能力が設定される。
【００４０】
次に、上記パラメータブロックのチェックにより、レジスタの変更についてデータの設定があるか否かの判別が行われる（ステップ３１２）。この判別において、データの設定があると判断された場合には、該当データがレジスタ設定領域２２２から読み出されて、それが対応レジスタに設定される。そして、他に処理に移行される。また、上記ステップ３１２の判別においてデータの設定が無いと判断された場合にはレジスタの設定変更が行われることなく他の処理に移行される。
【００４１】
上記の例によれば、以下の作用効果を得ることができる。
【００４２】
（１）フラッシュメモリ２２に、レジスタの設定の変更を可能とするパラメータブロックの記憶エリアであるレジスタ設定領域が形成され、マイクロプロセッサ２４のリセット例外処理において上記パラメータブロックに基づいて上記レジスタの設定処理が行われるため、ホストコンピュータ１を介して上記パラメータブロックを書き換えるだけで、上記レジスタの設定内容を容易に変更することができる。
【００４３】
（２）上記（１）の作用効果により、従来のファームオンフラッシュ技術によらないで、記憶装置内部の機能変更が可能になる。
【００４４】
（３）上記（２）の作用効果により、従来のファームオンフラッシュ技術での貴重な資源であるＲＡＭ２６やフラッシュメモリ２２の空き容量を圧迫しないで済む。
【００４５】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００４６】
例えば、上記フラッシュメモリ２２におけるレジスタ設定領域２２２の設定情報に従って設定可能なオプションレジスタを設け、このオプションレジスタの変更によりファームウェアの変更を行うようにしても良い。例えばデフォルトでは、フラッシュメモリカード２がパスワードによりロックされている状態でリード動作は禁止されるが、上記オプションレジスタの書き換えによりリード動作を許可するようにしても良い。また、デフォルトでは、フラッシュメモリカード２がパスワードによりロックされている状態でパスワードとともにデータを消去する（フォーシングイレース）のは許可されるが、これを上記オプションレジスタの書き換えにより禁止するようにしても良い。
【００４７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリカードに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種記憶装置に広く適用することができる。
【００４８】
本発明は、ホストコンピュータによってデータの書き換えが可能な不揮発性半導体メモリを含むことを条件に適用することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明にかかる記憶装置の一例であるフラッシュメモリカードの構成例ブロック図である。
【図２】上記フラッシュメモリカードに含まれるＲＯＭに格納されているファームウェアの内部構成例説明図である。
【図３】上記ＲＯＭに格納されている電源オン処理モジュールを処理するマイクロプロセッサのフローチャートである。
【符号の説明】
【００５０】
１  ホストコンピュータ
２  フラッシュメモリカード
２１  コントローラ
２２  フラッシュメモリ
２３  データバッファ
２４  マイクロプロセッサ
２５  ＲＯＭ
２６  ＲＡＭ
２７  ホストインタフェース
２８  フラッシュインタフェース
２９，３０  ＰＡＤ
２２１  ＦＯＦ領域
２２２  レジスタ設定領域
２２３  ユーザ記憶領域
２７１，２８１  レジスタ
【図１】
2005234928.tif 000003
【図２】
2005234928.tif 000004
【図３】
2005234928.tif 000005