(57)【要約】【課題】システムＲＯＭが不要な電子デバイスシステムを提供する。【解決手段】プロセッサ２は、電源投入時、ブート情報の読み出しを指示する命令を発行する。コントローラ３は、電子デバイス５にコマンドを出力するためのコマンド端子と、電子デバイスとデータを送受信するための複数のデータ端子を有し、プロセッサ２からの命令に従ってブート情報を読み出すためのコマンドを発行して電子デバイス５に供給するするとともに、データ端子の１つにコマンドの発行期間に対応して信号を発生し電子デバイスに供給する。【選択図】      図１
2010140266.tif 000002
【特許請求の範囲】
【請求項１】
電源投入時、ブート情報の読み出しを指示する命令を発行するプロセッサと、
電子デバイスにコマンドを出力するためのコマンド端子と、電子デバイスとデータを送受信するための複数のデータ端子を有し、前記プロセッサからの命令に従ってブート情報を読み出すためのコマンドを発行して前記電子デバイスに供給するするとともに、前記データ端子の１つに前記コマンドの発行期間に対応して信号を発生し前記電子デバイスに供給するコントローラと
を具備することを特徴とする電子デバイスシステム。
【請求項２】
前記コントローラは、前記電子デバイスから読み出されたブート情報をシステムメモリに転送するＤＭＡ（direct memory access）コントローラを有することを特徴とする請求項１記載の電子デバイスシステム。
【請求項３】
ブート情報が記憶されたメモリと、
コマンドを受けるためのコマンド端子と、
データを送受信するための複数のデータ端子と、
電源投入時、前記コマンド端子に供給されるブート情報を読み出すためのコマンドと、前記複数のデータ端子の１つに前記コマンドの発行期間に対応して供給された信号と、をブート情報の読み出し要求として前記メモリから前記ブート情報を読み出し、前記データ端子から出力させるコントローラと
を具備することを特徴とする電子デバイス。
【請求項４】
前記ブート情報は、同一の第１のブートコード、第２のブートコードを含み、前記コントローラは、前記第１のブートコートの読み出しに失敗した場合、第２のブートコードを読み出すことを特徴とする請求項３記載の電子デバイス。
【請求項５】
前記ブート情報は、前記複数のデータ端子を用いて出力されることを特徴とする請求項４記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばフラッシュメモリを用いた電子デバイスと、それを内蔵した（エンベディト゛）電子デバイスシステムに関する。
【背景技術】
【０００２】
フラッシュメモリ等の不揮発性半導体メモリ用いたメモリカード等のメモリシステムが、音楽データや映像データの記録メディアとして使われている。メモリシステムに使用されるフラッシュメモリとしては、例えばＮＡＮＤ型フラッシュメモリがある。また、メモリシステムとして、例えばＳＤTMカードが知られている（例えば特許文献１参照）。
【０００３】
メモリシステムはホスト装置に接続され、これらの間でデータが授受される。メモリシステムとホスト装置との間のインターフェースとしてＳＤインターフェースがある。ＳＤインターフェースは、ＳＤTMカードのような、ＳＤデバイスをサポートするホスト装置との間のインターフェースである。
【０００４】
ＳＤインターフェースバスには、複数の信号線、例えばクロックライン、コマンドライン、データラインが定義され、これらが１つのバスとして扱われる。
【０００５】
近年、ハードディスクドライブを持たずに、フラッシュメモリを不揮発性記憶デバイスとして用いるホスト装置が製造されるようになっている。このようなホスト装置は、システムを立ち上げるのに必要なプログラムコード（ブートコード）をフラッシュメモリから読み出す必要がある。すなわち、ブートコードは、フラッシュメモリにより構成されたＳＤデバイスに格納され、ホストコントローラを介して、システムメモリに転送され、実行される。
【０００６】
ブートコードは、ホスト装置の電源投入後に最初に読み出される。すなわち、システムの電源が投入されると、ＣＰＵによりシステムＲＯＭに格納されたブートローダが起動される。ホストコントローラは、ブートローダに従ってＳＤデバイスに格納されているブートコードを読み出し、システムメモリに転送するように構成されている。このため、システムは、ブートローダを格納するためのシステムＲＯＭを必要とし、システムにとって製造コストが高くなっていた。
【特許文献１】特開２００６−９２０１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、システムＲＯＭが不要な電子デバイスシステムと電子デバイスを提供しようとするものである。
【課題を解決するための手段】
【０００８】
本発明の電子デバイスシステムの態様は、電源投入時、ブート情報の読み出しを指示する命令を発行するプロセッサと、電子デバイスにコマンドを出力するためのコマンド端子と、電子デバイスとデータを送受信するための複数のデータ端子を有し、前記プロセッサからの命令に従ってブート情報を読み出すためのコマンドを発行して前記電子デバイスに供給するするとともに、前記データ端子の１つに前記コマンドの発行期間に対応して信号を発生し前記電子デバイスに供給するコントローラとを具備することを特徴とする。
【０００９】
本発明の電子デバイスの態様は、ブート情報が記憶されたメモリと、コマンドを受けるためのコマンド端子と、データを送受信するための複数のデータ端子と、電源投入時、前記コマンド端子に供給されるブート情報を読み出すためのコマンドと、前記複数のデータ端子の１つに前記コマンドの発行期間に対応して供給された信号と、をブート情報の読み出し要求として前記メモリから前記ブート情報を読み出し、前記データ端子から出力させるコントローラとを具備することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、システムＲＯＭが不要な電子デバイスシステムと電子デバイスを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について、図面を参照して説明する。
【００１２】
図１は、第１実施形態に係るデバイスと、このデバイスを内蔵するホスト装置の構成を概略的に示している。
【００１３】
ホスト装置１は、例えばプロセッサとしてのＣＰＵ（central processing unit）２、ホストコントローラ３、システムメモリ４を含んでいる。
【００１４】
ＣＰＵ２は、ホスト装置１の全体的な動作を司り、図示せぬＲＯＭ（read only memory）に格納されているプログラム等に従って動作する。システムメモリ４は、ＣＰＵ２の動作に必要な実行可能なプログラムや各種データを格納するために用いられる。
【００１５】
ホストコントローラ３は、例えばホストインターフェース（Ｉ／Ｆ）３１、ＤＭＡ（Dynamic Memory Access）コントローラ３２、バッファ３３、ＳＤインターフェース３４を含んでいる。ホストＩ／Ｆ３１は、ＣＰＵ２、システムメモリ４に接続されるとともに、ＤＭＡコントローラ３２、バッファ３３に接続されている。バッファ３３はＳＤＩ／Ｆ３４に接続されている。
【００１６】
ホストコントローラ３は、ＣＰＵ２、及び例えばフラッシュメモリにより構成されたＳＤデバイス５等と通信が可能とされている。すなわち、ホストＩ／Ｆ３１は、ＣＰＵ２及びシステムメモリ４と通信可能とされ、ＳＤＩ／Ｆ３４は、ＳＤデバイス５と通信可能とされている。
【００１７】
さらに、ホストＩ／Ｆ３１は、システムメモリ４から供給されたデータをバッファ３３に転送したり、ＳＤデバイス５から読み出され、ＳＤＩ／Ｆ３４を介してバッファ３３に保持されたデータをシステムメモリ４に転送する。
【００１８】
ＳＤＩ／Ｆ３４は、システムメモリ４からバッファ３３を介して供給されたデータをＳＤデバイス５に転送したり、ＳＤデバイス５から読み出されたデータを受け、バッファ３３に供給する。
【００１９】
ＤＭＡコントローラ３２は、例えばＣＰＵ２の命令に従って、ホストＩ／Ｆ３１、ＳＤＩ／Ｆ３４及びバッファ３８を制御し、システムメモリ４からＳＤデバイス５へのデータ転送、及びＳＤデバイス５からシステムメモリ４へのデータ転送を制御する。
【００２０】
ＳＤＩ／Ｆ３４は、例えば１ビットのクロックライン、コマンドライン、４ビットのデータラインを介してＳＤデバイス５と接続される。ＳＤＩ／Ｆ３４は、信号の受信時、クロックライン上のクロッ信号ＳＤＣＬＫの立ち上がりにおいて、コマンドライン上のコマンドＳＤＣＭＤや、データライン上のデータＳＤＤＡＴを取り込む。また、ＳＤＩ／Ｆ３４は、信号の送信時、クロックライン上のクロッ信号ＳＤＣＬＫの立ち上がり又は立ち下がりにおいて、コマンドライン、データライン上にコマンドＳＤＣＭＤ及びレスポンス、データＳＤＤＡＴを出力する。なお、データラインは、データを４ビットパラレルに転送したり、１ビットでシリアルに転送することができる。
【００２１】
具体的には、ＳＤＩ／Ｆ３４は、コマンド（ＣＭＤ）ジェネレータ３５、データ（ＤＡＴ）ジェネレータ３６を有している。ＣＭＤジェネレータ３５は、例えばＣＰＵ２の命令に従ってＳＤデバイス５の動作を制御する各種のコマンドを発生してＳＤデバイス５に供給する。ＤＡＴジェネレータ３６は、ＣＰＵ２の命令に従って信号を発生し、データラインＳＤＤＡＴ［３：０］に出力する。
【００２２】
ＳＤデバイス５は、例えばＮＡＮＤ型フラッシュメモリ５０と、このフラッシュメモリ５０の動作を制御するコントローラ６０と、前記ＳＤＩ／Ｆ３４のクロックライン、コマンドライン、４ビットのデータラインに接続されるクロック端子、コマンド端子、データ端子を有している。
【００２３】
図２は、ＳＤデバイス５のメモリマップの一例を示している。ＮＡＮＤ型フラッシュメモリ５０は、ユーザ領域５１、ブートコード領域５２、保護領域５３、システム領域５４を有している。
【００２４】
ユーザ領域５１は、ホスト装置１及びホスト装置１のユーザが自由にアクセスし使用することが可能な領域である。ユーザ領域５１には、例えば各種データやホスト装置の動作に必要なプログラムなど任意のデータが格納される。ユーザ領域５１内のデータは、例えばＦＡＴ（file allocation table）によって管理されている。
【００２５】
保護領域５３は、例えば特定のホスト装置１のみがアクセス可能なデータが格納されており、ホスト装置１のユーザは、例えば所定の条件を満たした場合等に限って、保護領域５３にアクセスできる。
【００２６】
システム領域５４は、ホスト装置１及びユーザは直接アクセスすることができない領域であり、ＳＤデバイス内の図示せぬコントローラが管理する領域である。例えば、システム領域５４には、コントローラの制御情報、セキュリティ情報などが格納されている。
【００２７】
ブートコード領域５２は、例えばブートコード１、ブートコード２を記憶している。ブートコード１、ブートコード２は、ホスト装置１への電源投入後、システム（ＯＳ）を起動するまでに実行することが必要な一連の処理の少なくとも一部を行なうためのコードの集合である。ブートコード１、ブートコード２は、同一のコードであり、例えばブートコード１に欠陥が生じた場合、ブートコード２が使用される。
【００２８】
ブートコード領域５２のデータは、ファイルシステムにより管理されない。ブートコード領域５２には、例えば低位アドレスのページから高位アドレスのページに向って順に、ブートコードが格納されている。コントローラ６０は、電源投入後、ホストコントローラ３から供給される後述するクイックブート要求に応じて、ブートコード領域５２内のブートコード１を低位のアドレスから高位のアドレスに向って順に読み出し、ホストコントローラ３に転送する。
【００２９】
（クイックブート動作）
次に、本実施形態に係るクイックブート動作について説明する。
【００３０】
ホスト装置１の電源が投入されると、ＣＰＵ２はホストコントローラ３を起動する。さらに、ＣＰＵ２は、電源が投入されると、ホストコントローラ３に命令を供給する。この命令は、ＣＰＵ２内に予め設定されたクイックブート動作の起動命令であり、例えばクイックブートを示す命令コードと、データの格納アドレスにより構成されている。この起動命令は、ホストコントローラ３のホストＩ／Ｆ３１、ＤＭＡコントローラ３２を介してＳＤＩ／Ｆ３４に供給される。ＳＤＩ／Ｆ３４のＣＭＤジェネレータ３５は、起動命令に従って、データの読み出し動作を指示するコマンドＣＭＤ０を出力し、ＤＡＴジェネレータ３６は特定の信号を出力する。
【００３１】
図３は、起動命令に従って発生されたＣＭＤ０と特定の信号を示している。すなわち、ＣＭＤジェネレータ３５は、クロック信号ＳＤＣＬＫの立下りにおいて、コマンドＣＭＤ０を生成し、コマンドラインに供給する。このコマンドＣＭＤ０の前後には、スタートビット“Ｓ”、エンドビット“Ｅ”が付加されている。また、ＤＡＴジェネレータ３６は、コマンドＣＭＤ０の期間に対応して、ローレベルとされた特定の信号を発生し、この信号をデータラインＳＤＤＡＴ０に供給する。すなわち、データラインＳＤＤＡＴ０の特定の信号は、コマンドＣＭＤ０の出力とともにローレベルとされ、コマンドＣＭＤ０のエンドビットと同時にハイレベルに戻される。これがＳＤデバイス５へのクイックブート要求となる。
【００３２】
ＳＤデバイス５のコントローラ６０は、クイックブート要求に応じて、フラッシュメモリ５０のブートコード領域５２から例えばブートコード１を読み出し、１秒以内にデータラインＳＤＤＡＴ０−３に出力する。この読み出されたブートコード１は、例えば５１２バイト＋ＣＲＣ（cyclic redundancy check code）のデータ毎に、４ビットモードによりホストコントローラ３に転送される。
【００３３】
ホストコントローラ３のＤＭＡコントローラ３２は、ＳＤＩ／Ｆ３４を介してバッファ３３に転送されたブートコード１をホストＩ／Ｆ３１を介してシステムメモリ４に転送する。すなわち、ＤＭＡコントローラ３２は、ＣＰＵ２から供給された起動命令に従って、バッファ３３内のブートコード１をシステムメモリ４に転送する。ＣＰＵ２は、システムメモリ４に転送されたブートコード１を実行し、ホスト装置を起動する。
【００３４】
図４は、コントローラ６０によるブートコード領域５２のアクセス方法を示すフローチャートである。
【００３５】
前述したように、ブートコード領域５２には、同一のブートコード１、２が記憶されている。クイックブート要求において、コントローラ６０により、先ず、ブートコード１が読み出される（ＳＴ１）。この後、ブートコード１の読出しが成功したかどうか判別される（ＳＴ２）。この結果、成功した場合、正常終了される。
【００３６】
一方、ブートコード１の読出しが失敗である場合、ブートコード２が読み出される（ＳＴ３）。この後、ブートコード２の読出しが成功したかどうか判別される（ＳＴ４）。この結果、成功した場合、正常なブートコード２がブートコード１の記憶領域にコピーされる。このため、ブートコード１がブートコード２により上書きされる。このようにすることにより、正常なブートコードが最初にアクセスされる。
【００３７】
図５は、本実施形態が適用されるアプリケーションの一例を示すものである。図５は、例えば携帯電話等の携帯端末装置１０を示している。携帯端末装置１０は、例えば本体内に上記実施形態に従ったＣＰＵ２、システムメモリ４、ホストコントローラ３を含むホスト装置１、及び電子デバイス５が内蔵されている。さらに、この携帯端末装置１０には、ＮＡＮＤ型フラッシュメモリを含む電子デバイス１１が装着可能とされている。
【００３８】
上記実施形態によれば、電源投入時、ホストコントローラ３は、ＣＰＵ２から供給される命令に従って、コマンド及び特定の信号を発生し、ＳＤデバイス５は、このコマンド及び特定の信号に基づきブートコードを読み出している。この後、ホストコントローラ３のＤＭＡコントローラ３２により、ブートコードをシステムメモリ４に転送している。このため、従来のように、ブートローダを格納するシステムＲＯＭが不要になる。したがって、ホスト装置１の製造コストを低減することができる。
【００３９】
また、ＳＤデバイス５は、同一のブートコード１、２を有し、ブートコード１に欠陥が生じた場合、ブートコード２を読み出し可能としている。このため、確実にブート動作を実行することが可能であり、ホスト装置１の寿命を延ばすことができる。
【００４０】
また、ブートコード１に欠陥が生じた場合、ブートコード１の記憶領域にブートコード１をコピーしている。このため、最初に正常なブートコードがアクセスされるため、ブート動作を高速化することができる。
【００４１】
本発明は、上記実施形態に限定されるものではなく、発明の要旨を変えない範囲において種々変形実施可能なことは勿論である。
【図面の簡単な説明】
【００４２】
【図１】実施形態に係るホスト装置と電子デバイスを概略的に示す構成図。
【図２】電子デバイスのメモリマップを概略的に示す図。
【図３】実施形態に係るクイックブート動作の例を示すタイミング図。
【図４】ブートコード領域のアクセス動作を示すフローチャート。
【図５】本実施形態が適用されるアプリケーションの一例を示す図。
【符号の説明】
【００４３】
１…ホスト装置、２…ＣＰＵ、３…ホストコントローラ、３２…ＤＭＡコントローラ、３４…ＳＤインターフェース、３５…コマンドジェネレータ、３６…データジェネレータ，４…システムメモリ、５…電子デバイス、５３…ブートコード領域、５３ａ、５３ｂ…ブートコード１，２。
【図１】
2010140266.tif 000003
【図２】
2010140266.tif 000004
【図３】
2010140266.tif 000005
【図４】
2010140266.tif 000006
【図５】
2010140266.tif 000007