(57)【特許請求の範囲】
【請求項１】
ＣＰＵコア、システムメモリを有するシステムにおいて、
少なくともブートコードを貯蔵するＮＡＮＤフラッシュメモリと、
前記ＮＡＮＤフラッシュメモリへ制御信号を伝送することによって、前記ＮＡＮＤフラッシュメモリからブートコードを読み出すブートストラッパと、
前記ＮＡＮＤフラッシュメモリから読み出された前記ブートコードを貯蔵するＲＡＭとを含み、
前記ＣＰＵコアは、前記ＲＡＭから、貯蔵された前記ブートコードを読み出し、読み出した前記ブートコードを実行することによって、前記ＮＡＮＤフラッシュメモリからＯＳを読み出し、読み出したＯＳを前記システムメモリに貯蔵し、
前記ブートストラッパは前記ＲＡＭを含むことを特徴とするシステム。
【請求項２】
前記ブートコードはシステム初期化プログラムと、前記ＮＡＮＤフラッシュメモリから前記システムメモリへのデータまたはプログラムのコピーを指示するコピー命令プログラムを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記ブートストラッパは前記ＮＡＮＤフラッシュメモリをインタフェースするＮＡＮＤインタフェースロジックを含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記ブートストラッパは前記ＲＡＭを含み、前記ＲＡＭはローカルバスを通じて前記ＣＰＵコアに連結されたキャッシュメモリであることを特徴とする請求項１に記載のシステム。
【請求項５】
ＣＰＵコア、システムメモリを有するシステムにおいて、
少なくともブートコードを貯蔵するＮＡＮＤフラッシュメモリと、
システムバスを通じて前記ＮＡＮＤフラッシュメモリに連結され、前記ＮＡＮＤフラッシュメモリから前記ブートコードを受け入れるブートストラッパとを含み、
前記ブートストラッパは前記ブートコードを貯蔵するためのＲＡＭを含み、
前記ＣＰＵコアは、前記ＲＡＭから前記ブートコードを読み出し、読み出した前記ブートコードを実行することによって、前記ＮＡＮＤフラッシュメモリからＯＳを読み出し、読み出したＯＳを前記システムメモリに貯蔵することを特徴とするシステム。
【請求項６】
ＣＰＵコア、システムメモリ及びメモリコントローラを有するコンピューティング装置を駆動する方法において、
ＮＡＮＤフラッシュメモリにブートコードを予め貯蔵する段階と、
システム初期化信号を受け入れる段階と、
ブートストラッパが、前記ブートコードを前記ＮＡＮＤフラッシュメモリから前記システムメモリ以外のＲＡＭに伝達する段階と、
前記ＣＰＵコアが前記ＲＡＭに貯蔵された前記ブートコードを実行するようにする段階と
を含み、
前記ブートストラッパは前記ＲＡＭを含むことを特徴とする方法。
【請求項７】
前記システム初期化信号の入力時に、前記ブートコードを前記ＮＡＮＤフラッシュメモリから前記ＲＡＭに伝達する段階が完了されるまで前記ＣＰＵコアの実行をホールドさせる段階をさらに含むことを特徴とする請求項６に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はコンピューティング装置をブーティングするシステムに関するものであり、さらに具体的には、ＮＡＮＤフラッシュメモリ装置を利用して駆動されるシステム及びそのブーティング方法に関するものである。
【０００２】
【従来の技術】
ＰＤＡのような一般的なパーソナルコンピューターまたはコンピューティング装置において、バイオス（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ  ：ＢＩＯＳ）に設けられたプログラムはパーソナルコンピュータまたはコンピューティング装置がＯＮする時に実行される。バイオスプログラムを実行することによって、多い初期化機能が実行される。一般的に、そのような機能は、カスタムセッティング設定（ｃｕｓｔｏｍ  ｓｅｔｔｉｎｇｓ）に対するＣＭＯＳセットアップをチェックする機能、インタラプトハンドラー及び装置ドライバをローディングする機能、レジスタと装置管理を初期化する機能、ディスクドライブのように設置された構成要素または周辺装置に対するパワーオンセルフテスト（ｐｏｗｅｒ−ｏｎ−ｓｅｌｆ−ｔｅｓｔ：ＰＯＳＴ）を実行する機能、システム設定を表示する機能、どのような構成要素が駆動可能であるかを決める機能、及びブートストラッパシーケンスをスタートする機能を含む。通常、バイオス（またはブーティング）プログラムはＲＯＭ、ＥＰＲＯＭまたはＮＯＲフラッシュメモリに貯蔵される。
【０００３】
ブーティングプログラムがＲＯＭに貯蔵されれば、ＲＯＭが不揮発性であるので、貯蔵されたプログラムは変更することができない。貯蔵されたプログラムの細かい変更さえも、ＲＯＭの交換を必要にする。ブーティングプログラムがＥＰＲＯＭに貯蔵される場合に、貯蔵されたプログラムを変更するためには、以前に貯蔵されたプログラムが消去されなければならない。ＥＰＲＯＭ消去は別個の構成要素または装置をさらに要求する。ブーティングプログラムがＲＯＭまたはＥＰＲＯＭに貯蔵されれば、ブーティングプログラムに要求されるどのような変更または更新も容易には実行することができない。ブーティングプログラムがＮＯＲフラッシュメモリに貯蔵される場合に、貯蔵されたプログラムは消去、または更新することができる。しかし、ＮＡＮＤフラッシュメモリと比較すれば、ＮＯＲフラッシュメモリは与えられたメモリ貯蔵容量に対して大きさがさらに大きく、製造の費用がより高い。
【０００４】
バイオスを貯蔵するＮＡＮＤフラッシュメモリを有するシステムの一例が図１に示している。これはＵ．Ｓ  Ｐａｔｅｎｔ  Ｎｏ．５，５３５，３５７に開示されている。図１を参照すれば、システム１０はシステムバス１７、ＮＡＮＤフラッシュメモリ１８と内部インタフェースブロック１５が含まれた複合チップ１６及び複合チップ１６とシステムメモリ１９を制御するためのコントローラ１１を含む。コントローラ１１は中央処理装置ＣＰＵであり、これはコンピューティング機能を実行するＣＰＵコア１２、メモリコントローラ１４及びコントローラ１１内にある内部システムバス１３を有する。メモリコントローラ１４はＮＡＮＤフラッシュメモリ１８とシステムメモリ１９との間のメモリマップを実行し、メモリマップに従って実行される機能をインタフェースするための内部インタフェースブロック１５を使用する。内部インタフェースブロック１５はレジスタまたはＲＡＭのような貯蔵装置内のＮＡＮＤフラッシュメモリのデータを一時的に貯蔵し、メモリコントローラ１４の制御下にシステムバス１７を通じて一時的に貯蔵されたデータをシステムメモリ１９に伝達する。
【０００５】
内部インタフェースブロック１５はＮＡＮＤフラッシュメモリ１８とインタフェースするためのＮＡＮＤインタフェースロジック２８とシステムバス１７を通じてシステムメモリ１９またはメモリコントローラ１４とインタフェースするためのＮＯＲインタフェースロジック２９を含む。ＮＯＲインタフェースロジック２９はＮＯＲフラッシュメモリとメモリコントローラ及び／またはシステムメモリの間でインタフェースするために、一般的に使用される回路である。フラッシュメモリがＮＯＲフラッシュメモリであれば、フラッシュメモリからの信号をＮＯＲインタフェース方式（当業者は“ＲＯＭインタフェース方式”という）に一致させるために、ＮＡＮＤインタフェースロジック２８は不要である。ＮＯＲインタフェース方式はバイト／ワード単位のアドレスに従って、メモリのランダムアクセスが可能なデータ伝送方式である。一方、ＮＡＮＤインタフェース方式によるデータ伝送は、ランダムアクセスではなく、ブロック単位のデータがブロックアドレス及びコマンドによって伝送される。
【０００６】
システム１０はＮＡＮＤインタフェース方式を利用したＮＡＮＤインタフェースロジック２８を通じてＮＡＮＤフラッシュメモリ１８のデータを内部インタフェースブロック１５に伝達し、ＮＯＲインタフェース方式を利用したＮＯＲインタフェースロジック２９を通じて前記データをシステムメモリ１９に伝達する。ＮＡＮＤフラッシュメモリ１８からデータをアクセスするために、ＮＡＮＤインタフェース方式とＮＯＲインタフェース方式を経由しなければならないので、データアクセス速度が低下する。さらに、そのような装置のシステム性能は最適化することができない。その理由は、メモリコントローラによってフラッシュメモリ内に貯蔵されたブーティングコードをアクセスするのに必要な時間がシステム性能の一つの測定要素になるからである。
【０００７】
さらに、ＮＡＮＤフラッシュメモリ１８のすべてのデータが内部インタフェースブロック１５にロードされなければならないし、ＮＡＮＤ及びＮＯＲインタフェースを全部支援するロジック回路が要求されるので、内部インタフェースブロック１５の大きさは大きくなければならない。したがって、図１に示したようなシステム１０の場合は、費用が増加し、性能が低下する。
【０００８】
【発明が解決しようとする課題】
本発明の第１目的は、向上したシステムの性能を有するシステムを提供することである。
【０００９】
本発明の第２目的は、製造費用を低めることができるシステムを提供することである。
【００１０】
本発明の第３目的は、システムの性能を向上させることができるシステムブーティング方法を提供することである。
【００１１】
本発明の第４目的は、製造費用を低めることができるシステムブーティング方法を提供することである。
【００１２】
【課題を解決するための手段】
ＣＰＵコア、システムメモリ、前記ＣＰＵコア及び前記システムメモリ間のデータ通信のためのインタフェースを有するシステムは少なくともブートコードを貯蔵するＮＡＮＤフラッシュメモリと、前記ＮＡＮＤフラッシュメモリへの制御信号伝送を制御し、前記ＮＡＮＤフラッシュメモリからのブートコードを前記インタフェースを通じて受け入れるブートストラッパと、前記ＮＡＮＤフラッシュメモリからアクセスされた前記ブートコードを貯蔵するＲＡＭとを含み、システムブーティング動作は前記ＣＰＵコアによって前記ＲＡＭから前記ブートコードを読み出す動作を含む。望ましくは、前記ブートコードはシステム初期化プログラムとコピー命令プログラムとを含む。
【００１３】
本発明の一実施形態によれば、前記ブートストラッパは前記ＮＡＮＤフラッシュメモリをインタフェースするためのＮＡＮＤインタフェースロジックを含み、前記ブートコードを貯蔵するためのＲＡＭは前記ブートストラッパ内に集積される。
【００１４】
他の実施形態において、前記ＲＡＭは前記ブートストラッパの外部に位置する。
【００１５】
前記システムは前記ブートコードが前記ＲＡＭに貯蔵されるまで前記ＣＰＵコアの動作を遅延させるディレーをさらに含む。前記ディレーは前記ブートストラッパで実現され、前記インタフェースはメモリコントローラで実現される。前記メモリコントローラはＮＡＮＤインタフェース方式で前記ＮＡＮＤフラッシュメモリをインタフェースするためのＮＡＮＤインタフェースロジックを含む。
【００１６】
本発明の他の実施形態によれば、前記ＲＡＭは第１ローカルバスを通じて前記ＣＰＵコアに連結されたキャッシュメモリである。システムは前記ブートストラッパを前記キャッシュメモリに連結するためのラッパをさらに含む。第２ローカルバスは前記ブートストラッパを前記キャッシュメモリに直接連結する。
【００１７】
前記システムは前記インタフェースとシステムバスを通じて前記ＮＡＮＤフラッシュメモリと前記システムを制御するためにメモリコントローラをさらに含み、前記インタフェースは前記メモリコントローラと前記ブートストラッパによってシステムバスが同時にアクセスされることを防止するための手段を含む。
【００１８】
本発明の他の実施形態によれば、ＣＰＵコア、システムメモリ、前記ＣＰＵコア及び前記システムメモリ間のデータ通信のためのインタフェースを有するシステムは少なくともＯＳプログラムを貯蔵するＮＡＮＤフラッシュメモリと、前記ＮＡＮＤフラッシュメモリに貯蔵されたデータが前記システムメモリにコピーされるようにするコードを貯蔵するＲＡＭとを含む。望ましくは、前記ＯＳプログラムは初期化時に、前記システムメモリにコピーされ、前記ＣＰＵコアは前記システムメモリをアクセスすることによって、前記ＯＳプログラムを実行する。
【００１９】
また他の実施形態によれば、ＣＰＵコア、システムメモリ、前記ＣＰＵコア及び前記システムメモリ間のデータ通信のためのインタフェースを有するシステムは少なくともブートコードを貯蔵するＮＡＮＤフラッシュメモリと、システムバスを通じて前記ＮＡＮＤフラッシュメモリに連結され、前記ＮＡＮＤフラッシュメモリから前記ブートコードを受け入れるブートストラッパとを含み、前記ブートストラッパは前記ブートコードを貯蔵するためにＲＡＭを含み、システムブーティング動作は前記ＣＰＵコアによって前記ＲＡＭから前記ブートコードを読み出す動作を含む。
【００２０】
本発明の他の特徴において、ＣＰＵコア、システムメモリ、前記ＣＰＵコア及び前記システムメモリ間のデータ通信のためのインタフェースを有するシステムは少なくともＯＳプログラムを貯蔵するＮＡＮＤフラッシュメモリと、初期化パラメータを設定するための複数の連結ピンと、システム初期化信号の入力時に、前記ＯＳプログラムを前記システムメモリにコピーされるようにするコピーロック回路とを含み、前記ＣＰＵコアは前記システムメモリをアクセスすることによって、前記ＯＳプログラムを実行し、システムブーティング動作は前記ＣＰＵコアによって前記ＲＡＭからブートコードを読み出す動作を含む。
【００２１】
本発明のまた他の特徴において、ＣＰＵコア、システムメモリ、前記ＣＰＵコア及びシステムメモリ間のデータ通信のためのインタフェースを有するシステムは少なくともブートコードを貯蔵するフラッシュメモリと、前記フラッシュメモリへの制御信号伝送を制御し、前記インタフェースを通じて前記フラッシュメモリから前記ブートコードを受け入れるブートストラッパと、前記フラッシュメモリを選択的に制御する第１及び第２メモリコントローラと、フラッシュメモリの種類に従って前記第１及び第２メモリコントローラのうち一つの動作を選択する選択器とを含む。
【００２２】
前記フラッシュメモリはＮＯＲ及びＮＡＮＤフラッシュメモリのうち一つである。前記第１メモリコントローラはＮＯＲインタフェースロジックを含み、前記第２メモリコントローラはＮＡＮＤインタフェースロジックを含む。
【００２３】
前記システムは、前記フラッシュメモリから入力された前記ブートコードを貯蔵するＲＡＭをさらに含むことが望ましい。前記選択器は前記第１及び第２メモリコントローラのうち一つの動作を選択するための選択ピンを含む。
【００２４】
ＣＰＵコア、システムメモリ、及びメモリコントローラを有するコンピューティング装置を駆動する方法は、ＮＡＮＤフラッシュメモリにブートコードを予め貯蔵する段階と、システム初期化信号を受け入れる段階と、前記ブートコードを前記ＮＡＮＤフラッシュメモリからＲＡＭに伝達する段階と、前記ＣＰＵコアが前記ＲＡＭに貯蔵された前記ブートコードを実行させる段階とを含む。
【００２５】
このような駆動方法は、前記システム初期化信号の入力時に、前記ブートコードを前記ＮＡＮＤフラッシュメモリから前記ＲＡＭに伝達する段階が完了されるまで前記ＣＰＵコアの実行をホールドさせる段階をさらに含む。
【００２６】
【発明の実施の形態】
本発明の実施形態によるＮＡＮＤフラッシュメモリを利用したシステムが図２に示されている。
【００２７】
図２を参照すれば、コンピューティングシステム２０はコントローラ２１、システムバス１７、ＮＡＮＤフラッシュメモリ１８及びシステムメモリ１９を含む。コンピューティングシステム２０はＰＤＡ、パームコンピューター、ラップトップ、パーソナルコンピューターまたはシステム初期化プログラム（一般的に、ブートコードという）によってブーティングされるようなシステムのコンピューティング装置の必須的な構成を含む。
【００２８】
コントローラ２１はＣＰＵコア１２、内部システムバス１３、メモリコントローラ１４、ブートストラッパ２５及びインタフェース２７を含む。コントローラ２１は単一の半導体チップに実現することができ、一般的に、システムメモリ１７に連結されたＮＡＮＤフラッシュメモリ１８とシステムメモリ１９のようなどのようなメモリを制御して管理する。
【００２９】
システムバス１７はコントローラ２１、ＮＡＮＤフラッシュメモリ１８及びシステムメモリ１９のデータ伝送のために使用される。
【００３０】
ＮＡＮＤフラッシュメモリ１８はシステム２０をブーティングするためのブートコードを貯蔵し、オペレーティングシステム（以下、ＯＳという）及び他のプログラムまたはデータをさらに貯蔵することができる。ＯＳはＭＳ−ＤＯＳ（登録商標）またはＷＩＮＤＯＷＳ（登録商標）である。これはブーティングまたは初期化過程の後に、システム２０を動作するためのコントローラ２１によって実行される。ＮＡＮＤフラッシュメモリ１８に貯蔵されたデータは使用者の要求を基づいてユーザ貯蔵装置の構成コードと、どのように応用プログラムを利用するかを示すソフトウェアコードであり得る。
【００３１】
望ましくは、システムメモリ１９はＤＲＡＭであり、これはデータ、命令及びそのようなことを貯蔵するメインメモリとして動作する。
【００３２】
ＣＰＵコア１２はＯＳと応用及び動作プログラムを実行する。内部システムバス１３はＣＰＵコア１２に、そしてそれからのデータを伝達し、メモリコントローラ１４とブートストラッパ２５との間でデータを伝達する。
【００３３】
本発明の実施形態によれば、ブートコードは初期化の以前にＮＡＮＤフラッシュメモリにまず貯蔵される。初期化動作によれば、ＮＡＮＤフラッシュメモリ１８に貯蔵されたブートコードはブートストラッパ２５内の内部ＲＡＭ２６に伝達される。ブートコードの伝達が完了された後に、システムの初期化コード及びコピーループ命令コードを含むブートコードはＣＰＵコア１２によって実行される。システム初期化コードが実行される時に、コントローラ２１、システムメモリ１９及び周辺装置が初期化される。コピーループ命令コードはＯＳまたは他の貯蔵されたデータがシステムメモリ１９にロードされるようにする。ＯＳまたは任意の時間にＮＡＮＤフラッシュメモリから内部ＲＡＭ２６にロードされた他のデータの大きさはブートコードによって指定された値に従って決められるか、ブートストラッパ２５内のハードウェアロジックによって決定される。ＮＯＲ及びＮＡＮＤインタフェースロジック（図１参照）と比較すれば、ブートストラッパ２５が一つのＮＡＮＤインタフェースロジックのみを含むので、ブートストラッパ２５は図１のインタフェースブロック１５と比較して大きさが小さい。さらに、内部ＲＡＭ２６がブートコードのみを貯蔵するので、ブートストラッパ２５はＮＡＮＤフラッシュメモリ１８のすべてのデータを貯蔵するインタフェースブロック１５と比較する時に、さらに小さい容量を有する。したがって、本発明によるシステム２０の価格は図１のシステムのそれよりさらに低い。
【００３４】
メモリコントローラ１４はメモリ動作を制御して管理し、メモリ動作はＮＡＮＤフラッシュメモリ１８に貯蔵されたＯＳまたはデータをシステムバス１７を通じてシステムメモリ１９に貯蔵する動作と、システムメモリ１９からデータを読み出す動作を含む。そのような動作において、メモリコントローラ１４はＮＡＮＤフラッシュメモリ１８とシステムメモリ１９との間のメモリマッピング動作を実行する。
【００３５】
次に、図２に示したシステム２０の動作を説明する。システム２０がＯＮする時に、ブートストラッパ２５はシステム初期化信号（例えば、パワーアップ信号とシステムリセット信号）を受け入れ、ＮＡＮＤフラッシュメモリ１８に貯蔵されたブートコードをシステムメモリ１９に伝達する。ブートコードが内部ＲＡＭ２６に伝送される間、ブートストラッパ２５はＣＰＵ１２の動作をホールドするための制御信号を発生する。ブートコードの伝送が完了された後に、制御信号はリセットされ、ＣＰＵコア１２は活性化されてポストブーティング（ｐｏｓｔ−ｂｏｏｔｉｎｇ  ｏｐｅｒａｔｉｏｎ）動作を実行する。
【００３６】
また、ＣＰＵコア１２の動作をホールドするために、コントローラ２１内にディレー（図示せず）が使用される。例えば、システム初期化信号（例えば、パワーアップ信号とシステムリセット信号）はＣＰＵコア１２に連結されたブートストラッパ２５とディレーに同時に印加される。ブートコードがＮＡＮＤフラッシュメモリ１８から内部ＲＡＭ２６に伝達された後までシステム初期化信号の到達時間が遅延される。ディレーは遅延回路によって、またはソフトウェアによって実現される。ディレーはブートコード伝送に必要な時間と同一の時間だけ、またはそれより若干長く遅延させるように設定される。
【００３７】
ＣＰＵコア１２の活性化によって、内部ＲＡＭ２６に貯蔵されたブートコードが実行される。ブートコード内のシステム初期化コードを実行することによって、システム２０のハードウェアが初期化される。ブートコードのコピーループ命令コードを実行することによって、ＣＰＵコア１２はＮＡＮＤフラッシュメモリ内に貯蔵されたＯＳのようなプログラムまたは他のデータを読み出す。望ましくは、これはインタフェース２７とブートストラッパ２５のＮＡＮＤインタフェースロジック２８を通じてページ単位に実行される。以後、ＣＰＵコア１２は読み出されたデータまたはＯＳのようなプログラムをメモリコントローラ１４とインタフェース２７を通じてシステムメモリ１９にコピーする。コピー動作が完了した後に、ＯＳが実行される。したがって、ブーティング過程が完了した時に、システム２０はシステムメモリ１９からのＯＳによって駆動される。
【００３８】
本発明の実施形態によれば、ＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを内部ＲＡＭ２６にコピーし、その次に、ＯＳをシステムメモリ１９に伝達することによって、実行されるブーティング動作は単一のＮＡＮＤインタフェースを通じて行われる。図１のシステムで示したように、二段インタフェース方式（すなわち、ＮＡＮＤインタフェース方式とＮＯＲインタフェース方式）と比較する時に、ブーティング速度をより速く実現することができる。
【００３９】
ＮＡＮＤフラッシュメモリ内に貯蔵されたブートコードをブートストラッパ２５によって読み出し、読み出されたブートコードを内部ＲＡＭ２６に伝達する動作は図２及び図３に基づいて以下詳細に説明される。図３は本発明の望ましい実施形態によるＮＡＮＤフラッシュメモリからブートコードを読み出す時のタイミング図を示す。
【００４０】
ブートストラッパ２５はシステム初期化信号に応答してＮＡＮＤフラッシュメモリに貯蔵されたブートコードを読み出すための制御信号（例えば、ＣＬＥ、ＡＬＥ、ＣＥ、ＷＥ、ＲＥ及びＲ／Ｂ）を出力する。読み出し命令はアドレスａｄ０、ａｄ１、ａｄ２と共に‘００ｈ’で生成される。システム初期化信号はパワーアップ信号（システムのパワーアップ時に生成される）、システムリセット信号、または再リセット信号を含む。
【００４１】
命令ラッチイネーブル信号ＣＬＥは所定の命令がＮＡＮＤフラッシュメモリ１８に入力される時に活性化される。アドレスラッチイネーブル信号ＡＬＥは所定のアドレスがＮＡＮＤフラッシュメモリ１８に入力される時に活性化される。
【００４２】
ＮＡＮＤフラッシュメモリ１８は命令ラッチイネーブル信号ＣＬＥ、チップイネーブル信号ＣＥ＃、及び書き込みイネーブル信号ＷＥ＃の活性化に応答してシステムバス１７を通じて読み出し命令００ｈを受け入れる。ここで、“＃”はアクティブロー状態を意味する。
【００４３】
ＮＡＮＤフラッシュメモリ１８はアドレスラッチイネーブル信号ＡＬＥ、チップイネーブル信号ＣＥ＃及び書き込みイネーブル信号ＷＥ＃の活性化に応答してシステムバス１７を通じてアドレスを受け入れる。生成されたアドレスの数はＮＡＮＤフラッシュメモリアドレスステップ選択信号に従って設定される。
【００４４】
本発明の実施形態によれば、ＮＡＮＤフラッシュメモリ１８の三段アドレス入力動作が図３に示されているが、アドレス入力過程が図３に示したことに制限されないことは、この分野の当業者に容易に理解することができる。ＮＡＮＤフラッシュメモリアドレスステップ選択信号に従って三段またはそれより多い段階からなったアドレス入力過程が使用される。
【００４５】
本発明によれば、ブートストラッパ２５はＮＡＮＤフラッシュメモリ１８に貯蔵されたブートコードを読み出すための読み出し命令００ｈを発生し、その次に、アドレスａｄ０、ａｄ１、ａｄ２を発生する。貯蔵されたブートコードは読み出し命令００ｈとアドレスａｄ０、ａｄ１、ａｄ２に従ってページ単位に読み出される。読み出されたデータはＮＡＮＤフラッシュメモリ１８の内部バッファ（図示せず）に一時的に貯蔵される。
【００４６】
制御信号Ｒ／Ｂ＃の活性化（‘ロー’）状態時に、データ（例えば、ブートコード）を内部バッファにコピーする動作が完了する。制御信号Ｒ／Ｂ＃の非活性化（‘ハイ’）状態時に、データ（ブートコード：ここで、Ｄ０、Ｄ１、Ｄ２、Ｄ３）のコピー動作は完了しない。読み出しイネーブル信号ＲＥ＃の活性化時に、内部バッファに貯蔵されたデータＤ０、Ｄ１、Ｄ２、Ｄ３はシステムバス１７に伝達される。以後、システムバス１７上のデータＤ０、Ｄ１、Ｄ２、Ｄ３は内部ＲＡＭ２６に伝達される。
【００４７】
本発明の望ましい実施形態によれば、ブートストラッパ２５はシステム初期化信号に応答してＣＰＵコア１２の動作をホールド、または遅延させ、同時に、ＮＡＮＤインタフェースロジック２８とインタフェース２７を通じてＮＡＮＤフラッシュメモリ１８に制御信号ＣＥ＃、ＣＬＥ、ＡＬＥ、ＷＥ＃、ＲＥ＃、Ｒ／Ｂ＃を出力する。ＮＡＮＤフラッシュメモリ１８から読み出されたデータはＣＥ＃、ＣＬＥ、ＡＬＥ、ＷＥ＃、ＲＥ＃及びＲ／Ｂ＃のような制御信号に応答してＮＡＮＤインタフェースロジック２８とインタフェース２７を通じてブートストラッパ２５に伝達される。ブートストラッパ２５はブートコードを内部ＲＡＭ２６に貯蔵し、ＣＰＵコア１２のホールド状態を解除する。または、ＣＰＵコア１２は内部ＲＡＭ２６にブートコードを貯蔵するのに必要な時間よりさらに長い時間、遅延される。ディレーは調節可能なタイマでる。したがって、ＣＰＵコア１２がホールド状態に維持される間、ＮＡＮＤフラッシュメモリ１８に貯蔵されたブートコードは内部ＲＡＭ２６に伝達される。
【００４８】
以後、内部ＲＡＭ２６にロードされたブートコード内のシステム初期化コードを実行することによって、システム２０のハードウェアが初期化される。ブートコード内のコピーループ命令コードを実行することによって、ＣＰＵコア２は、メモリコントローラ１４とインタフェース２７を通じてＮＡＮＤフラッシュメモリ１８からシステムメモリ１９にＯＳが伝送されるようにすることが望ましい。インタフェース２７内のマルチプレクシングまたはデータ選択回路（図示せず）はメモリバス１７へのアクセスをマルチプレクシングし、その結果、メモリコントローラ１４とブートストラッパ２５が同時にシステムバス１７をアクセスすることを防止することができる。
【００４９】
システムメモリ１９へのＯＳ伝送が完了された後に、システムメモリ１９からのＯＳが実行され、システム２０はＯＳによって駆動される。
【００５０】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第２実施形態が図４に示されている。この実施形態によれば、内部ＲＡＭ３３はブートストラッパ３２の外部に配置される。ブートストラッパ３２から内部ＲＡＭ３３へのアクセスは内部システムバス１３を通じて行われることが望ましい。それと異なり、ＮＡＮＤフラッシュメモリ１８からのデータ伝送動作は先の説明と同一である。
【００５１】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第３実施形態が図５に示されている。この実施形態によれば、ブートストラッパ３２から内部ＲＡＭ３３へのアクセスはバス３４を通じて行われることが望ましい。これと異なり、ＮＡＮＤフラッシュメモリ１８からのデータ伝送動作は先の説明と同一である。内部ＲＡＭ３４へのローディング動作のために、バス３４を使用することによって、ＮＡＮＤフラッシュメモリ１８からブートコードを伝達するのに必要な時間が減り、その結果、システム性能が向上することができる。
【００５２】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第４実施形態が図６に示されている。図６のシステム５０はコントローラ５１、ＮＡＮＤフラッシュメモリ１８、システムバス１７及びシステムメモリ１９を含む。
【００５３】
コントローラ５１はブートストラッパ５２、ＣＰＵコア１２、内部システムバス１３、内部ＲＡＭ及びメモリコントローラ５４を含み、メモリコントローラ５４はＮＡＮＤインタフェースロジック２８を有する。図６に示したように、内部ＲＡＭ５３はブートストラッパ５２内に位置するが、図４及び図５に示したように、ブートストラッパ５２の外部に配置される。この実施形態によれば、メモリコントローラ５４はシステムメモリ１９を制御し、ＮＡＮＤフラッシュメモリ１８を直接アクセスするのに使用される。したがって、この実施形態によるメモリコントローラ５４は図２に示したインタフェース２７によって、以前に実行した機能を実行することができる。
【００５４】
ブートストラッパ５２はシステム初期化信号に応答してＣＰＵコア１２の動作をホールドし、同時に、ＮＡＮＤインタフェースロジック２８によるＮＡＮＤインタフェース方式を使用して内部システムバス１３を通じてＮＡＮＤフラッシュメモリ１８に貯蔵されたブートコードを読み出す。以後、ブートストラッパ５２は読み出されたブートコードを内部ＲＡＭ５３にロードする。システム初期化信号はパワーオン信号またはリセット信号に応答して生成された信号である。
【００５５】
ブートコード内のシステム初期化コードを実行することによって、システム２０のハードウェアが初期化される。ブートコード内のコピーループ命令コードを実行することによって、ＣＰＵコア１２はメモリコントローラ５４内に貯蔵されたＯＳを読み出し、そのＯＳをシステムメモリ１９にロードする。システムメモリ１９へのＯＳ伝送が完了された後に、システムメモリ１９からのＯＳが実行される。
【００５６】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第５実施形態が図７に示されている。コントローラ６１はＣＰＵコア１２、ブートストラッパ６２、内部システムバス１３、メモリコントローラ５４及び内部ＲＡＭ６３を含む。内部ＲＡＭ６３がブートストラッパ６２の外部に配置されている。
【００５７】
ブートストラッパ６２はシステム初期化信号に応答してＣＰＵコア１２の動作をホールドし、同時にメモリコントローラ５４のＮＡＮＤインタフェースロジック２８によるＮＡＮＤインタフェース方式を利用してＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを読み出す。以後、ブートストラッパ６２は内部システムバス１３を通じて内部ＲＡＭ６３に読み出されたブートコードをロードする。
【００５８】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第６実施形態が図８に示されている。コントローラ７１はＣＰＵコア１２、ローカルバス７５、キャッシュメモリ７３、ラッパ７２、内部システムバス１３、メモリコントローラ５４及びブートストラッパ７４を含む。ラッパ７２はソフトウェアプログラムまたはハードウェアであることが望ましい。これはキャッシュメモリ７３への、またはそれからのアクセスを選択的に制御するために実行される。キャッシュメモリ７３は種々使用されたデータを一時的に貯蔵するためにＣＰＵコア１２に隣接して配置される。キャッシュメモリ７３のアクセス時間は図７の内部ＲＡＭのそれよりさらに短い。
【００５９】
キャッシュメモリ７３が内部システムバス１３を通じてアクセスされる場合に、ブートストラッパ７４はシステム初期化信号に応答してＣＰＵコア１２の動作を遅延、またはホールドし、同時に、ＮＡＮＤインタフェースロジック２８によるＮＡＮＤインタフェース方式を利用してＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを読み出す。以後、ブートストラッパ７４は内部システムバス１３を通じてキャッシュメモリ７３に読み出されたブートコードを書き込む。
【００６０】
キャッシュメモリ７３がローカルバス７５を通じてアクセスされる場合に、ブートストラッパ７４はシステム初期化信号に応答してＣＰＵコア１２の動作をホールドし、同時に、ＮＡＮＤインタフェースロジック２８を利用してＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを読み出す。以後、ブートストラッパ７４はラッパ（ｗｒａｐｐｅｒ）７２及びローカルバス７５を通じてキャッシュメモリ７３内に読み出されたブートコードを書き込む。本発明によるブートシステムを利用したシステムブーティング動作はより速く行われ、その理由は、キャッシュメモリ７３のアクセス時間がさらに短いからである。
【００６１】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第７実施形態が図９に示されている。コントローラ８１はキャッシュメモリ７３とブートストラッパ７４との間でデータを伝達するための第２ローカルバス８２を含む。図９のブートストラッパ７４は図８のブートストラッパと同一の方式で動作する。
【００６２】
ブートストラッパ７４はシステム初期化信号に応答してＣＰＵコア１２の動作をホールドし、同時に、メモリコントローラ５４のＮＡＮＤインタフェースロジック２８を利用してＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを読み出す。以後、ブートストラッパ７４はバス８２を通じてキャッシュメモリ７３内に読み出されたブートコードを書き込（コピー、ロード及び伝送）む。キャッシュメモリ７３にブートコードを貯蔵した後に、次の動作はバス８２が使用されることを除いては図６の説明と同一である。
【００６３】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第８実施形態が図１０に示されている。コントローラ９１はＣＰＵコア１２、ローカルバス７５、キャッシュメモリ７３、ラッパ７２、内部システムバス１３、メモリコントローラ５４及びキャッシュ及びブートストラッパ９２を含む。キャッシュ及びブートストラッパ９２は内蔵されたキャッシュメモリを有するブートストラッパである。
【００６４】
キャッシュ及びブートストラッパ９２はシステム初期化信号に応答してＣＰＵコア１２の動作をホールドし、同時に、ＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを読み出す。以後、キャッシュ及びブートストラッパ９２は内部システムバス１３を通じてストラッパ９２内のキャッシュメモリに読み出されたブートコードを書き込む。また、ラッパ７２はローカルバス７５を通じてブートコードをロードするように設定される。
【００６５】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第９実施形態が図１１に示されている。コントローラ１０１はＣＰＵコア１２、メモリコントローラ５４、コピーロジックブロック１０５、内部システムバス１３及びオプションピン１０６を含む。オプションピンは電源電圧ＶＣＣまたは接地電圧ＧＮＤに選択的に連結される。本発明の実施形態によれば、コントローラ１０１はシステムメモリ１９内のモードレジスタＭＲＳ（図示せず）を設定することによって、システムメモリが初期化される初期化動作を実行する。ＭＲＳはオプションピン１０６を使用して設定される。ＭＲＳは使用されるシステムメモリ１９の動作モード（例えば、ＣＡＳレイターンシまたはバストの長さ）に予め設定される。例えば、ＮＡＮＤフラッシュメモリ内で一回にシステムメモリ１９にロードされるデータの大きさはバーストの長さに従って決められる。コピーロジックブロック１０５はＯＳのようなデータまたはＮＡＮＤフラッシュメモリ１８に貯蔵された一般的なデータをシステムメモリ１９にコピーする動作を指示し、コントローラ１０１で使用される一連の命令を含む。この実施形態によれば、ブートコードは不要であり、ＮＡＮＤフラッシュメモリ１８に貯蔵される必要がない。ＣＰＵコア１２の動作は、システム初期化信号に応答してホールドされる。同時に、コピーロジックブロック１０５はＯＳのようなデータとＮＡＮＤフラッシュメモリ１８で読み出されたデータをシステムメモリ１９に貯蔵するように設定される。コピー動作が完了された後に、ＣＰＵコア１２は活性化され、システムメモリ１９内のＯＳが実行される。システム２０はその次にＯＳに応答して駆動される。
【００６６】
そのような装置１００において、システムメモリ１９を初期化するためのシステム初期化動作は、オプションピン１０６の連結情報に従って完了される。ブートコードをコントローラにコピーする動作が除去されたので、システムブーティング速度が向上する。
【００６７】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第１０実施形態が図１２に示されている。コントローラ１１０はＣＰＵコア１２、メモリコントローラ５４、内部システムバス１３及びＲＯＭブロック１１５を含む。ここで、ＲＯＭブロック１１５は図１１のコピーロジックブロック１０５を代替する。システム初期化コード及びＮＡＮＤフラッシュメモリ１８に貯蔵されたデータがシステムメモリ１９にコピーされるようにする命令を含むＲＯＭデータはＲＯＭブロック１１５に予め貯蔵される。ＲＯＭブロック１１５はマスクＲＯＭ、フラッシュメモリまたはそのようなものを含むものが望ましい。
【００６８】
システム初期化信号に応答して、ＣＰＵコア１２は活性化され、ＲＯＭブロック１１５に含まれたシステム初期化コードに従って初期化動作を実行し、ＮＡＮＤフラッシュメモリ１８に貯蔵されたＯＳまたは一般的なデータをシステムメモリ１９にコピーする。コピー動作が完了された後に、ＣＰＵコア１２は活性化され、システムメモリ１９内のＯＳが実行される。すなわち、ブーティング動作が終了される時に、システム１１０はＯＳに応答して駆動される。
【００６９】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第１１実施形態が図１３に示されている。システム１２０はコントローラ１２１、ブートストラッパ２５、ＮＡＮＤフラッシュメモリ１８及びシステムメモリ１９を含む。コントローラ１２１はＣＰＵコア１２、内部システムバス１３及びメモリコントローラ１４を有する。本発明によれば、ブートストラッパ２５はコントローラ１２１の外部に配置され、システムバス１７を通じてコントローラ１２１に選択的に連結される。
【００７０】
ＣＰＵコア１２の動作は、システム初期化信号に応答してホールドされ、ブートストラッパ２５は同時にＮＡＮＤフラッシュメモリ１８内のブートコードをシステムバス１７を通じてＲＡＭ２６にロードする。ブートコードを内部ＲＡＭ２６に貯蔵した後に、次の動作は図２で説明したことと同一である。
【００７１】
本発明によるＮＡＮＤフラッシュメモリを利用したブートシステムの第１２実施形態が図１４に示されている。システム１３０はコントローラ１３１、フラッシュメモリ１３５、システムメモリ１９及びシステムバス１７を含む。コントローラ１３１はＣＰＵコア１２、ＮＯＲインタフェースロジック２９を有する第１メモリコントローラ１３３、ＮＡＮＤインタフェースロジックを有する第２メモリコントローラ１３４、選択回路１３６及びオプションピン１３２を有する。第１及び第２メモリコントローラ１３３、１３４はフラッシュメモリ１３５の種類に従って選択回路１３６によってシステムバス１７に選択的に連結される。オプションピン１３２は電源電圧ＶＣまたは接地電圧ＧＮＤに連結される。第１メモリコントローラ１３３または第２メモリコントローラ１３４はオプションピン１３２が電源電圧ＶＣＣまたは接地電圧ＧＮＤに連結されたか否かを知らせる連結情報に従って選択的に活性化される。
【００７２】
本発明によれば、フラッシュメモリ１３５はＮＯＲフラッシュメモリ、ＮＡＮＤフラッシュメモリまたは他の形態のメモリである。ＮＯＲフラッシュメモリがフラッシュメモリ１３５として使用されれば、第１メモリコントローラ１３３はＮＯＲインタフェースロジック２９とシステムバス１７を通じてＮＯＲフラッシュメモリに連結される。この場合に、第１メモリコントローラ１３３は第１メモリコントローラ１３３内の一般的なＮＯＲインタフェース方式を使用してシステムバス１７をＮＯＲフラッシュメモリと相互連結する。したがって、システム１３０のコントローラ１３１はＮＯＲフラッシュメモリのデータ（例えば、ブートコード、ＯＳ及び一般的なデータ）を容易にアクセスすることができる。ＮＡＮＤフラッシュメモリがフラッシュメモリ１３５として使用されれば、第２メモリコントローラ１３４はＮＡＮＤインタフェースロジック２８とシステムバス１７を通じてＮＡＮＤフラッシュメモリに連結される。この場合に、第２メモリコントローラ１３４はＮＡＮＤインタフェース方式を利用して、図２乃至図１３で説明した過程に従って、システムバス１７をＮＡＮＤフラッシュメモリと相互連結する。結果的に、システム１３０のコントローラ１３１はフラッシュメモリ１３５の種類に関係なしに、データ（例えば、ブートコード、ＯＳ及び一般的なデータ）をアクセスすることができる。
【００７３】
本発明によるフラッシュメモリ内に貯蔵されたブートコードをローディングする手順を示すフローチャートが図１５に示されている。図２乃至図１３を参照すれば、各図面に示したブートストラッパの初期状態は遊休状態（ｉｄｌｅ  ｓｔａｔｅ）である（１５０段階）。
【００７４】
システム初期化信号に応答して、ブートストラッパはフラッシュメモリのページの大きさ、密度及びデータの幅を検出し、同時に、システムのＣＰＵをホールドするために制御信号を出力する。または、システムはブートコードが内部ＲＡＭにロードされるまでＣＰＵをホールドさせるためのディレーを使用する（１５１段階）。
【００７５】
ブートストラッパは図３で説明した方法に従って、フラッシュメモリ内に貯蔵されたブートコードをページ段位に読み出し、読み出されたデータを所定のバスまたはインタフェースを通じて、コントローラの内部に、または外部に位置した内部ＲＡＭにロードする（１５２段階）。
【００７６】
１５３段階、ブートストラッパはロードされたブートコードの伝送大きさを検出する。伝送の大きさが‘０’であれば、手順は１５２段階に戻す。
【００７７】
伝送の大きさが‘０’であれば、すなわち、フラッシュメモリに貯蔵されたブートコードが全部内部ＲＡＭにロードされれば、ブートストラッパはブートコードをロードすることを終了し、システムのＣＰＵを活性化させる（１５４段階）。
【００７８】
システムブーティング方法によると、フラッシュメモリに貯蔵されたブートコードはＣＰＵコアが動作する前に、コントローラ内に、または外部に位置した内部ＲＡＭにロードされる。内部ＲＡＭに貯蔵されたブートコードによって、フラッシュメモリに貯蔵された所定のＯＳが外部システムメモリ１９にコピーされる。コピー動作が完了された後に、システムメモリ１９内のＯＳが実行される。
【００７９】
ＯＳと関連したすべてのプログラム、ファイルまたはデータがシステムメモリ１９にロードされた後に、システムはシステムメモリ１９内のＯＳによって駆動される。
【００８０】
以上、本発明による回路の構成及び動作を上述の説明及び図面に従って示したが、これは例を挙げて説明したことに過ぎず、本発明の技術的思想及び範囲を逸脱しない範囲内で多様な変化及び変更が可能なことはもちろんである。
【００８１】
【発明の効果】
本発明の実施形態によれば、ＮＡＮＤフラッシュメモリ１８内に貯蔵されたブートコードを内部ＲＡＭ２６にコピーし、その次に、ＯＳをシステムメモリ１９に伝達することによって実行されるブーティング動作は単一のＮＡＮＤインタフェースを通じて行われる。図１のシステムで見られたように、二段インタフェース方式すなわち、ＮＡＮＤインタフェース方式とＮＯＲインタフェース方式）と比較する時に、本発明によるシステムのブーティング速度をより速く実現することができる。
【図面の簡単な説明】
【図１】  一般的なＮＡＮＤフラッシュメモリを有するコンピューティングシステムを示す図面。
【図２】  本発明の望ましい実施形態によるＮＡＮＤフラッシュメモリを利用したシステムを示す図面。
【図３】  フラッシュメモリからのブートコードを伝達する過程を説明するためのタイミング図。
【図４】  本発明によるコンピューティングシステムの他の実施形態。
【図５】  本発明によるコンピューティングシステムのまた他の実施形態。
【図６】  本発明によるコンピューティングシステムのまた他の実施形態。
【図７】  本発明によるコンピューティングシステムのまた他の実施形態。
【図８】  本発明によるコンピューティングシステムのまた他の実施形態。
【図９】  本発明によるコンピューティングシステムのまた他の実施形態。
【図１０】  本発明によるコンピューティングシステムのまた他の実施形態。
【図１１】  本発明によるコンピューティングシステムのまた他の実施形態。
【図１２】  本発明によるコンピューティングシステムのまた他の実施形態。
【図１３】  本発明によるコンピューティングシステムのまた他の実施形態。
【図１４】  本発明によるコンピューティングシステムのまた他の実施形態。
【図１５】  本発明によるフラッシュメモリ内に貯蔵されたブートコードをローディングする手順を示すフローチャートである。
【符号の説明】
１２  ＣＰＵコア
１３  内部システムバス
１４  メモリコントローラ
１７  システムバス
１８  ＮＡＮＤフラッシュメモリ
１９  システムメモリ
２０  システム
２１  コントローラ
２５  ブートストラッパ
２６  内部ＲＡＭ
２７  インタフェース
２８  ＮＡＮＤインタフェースロジック
【図１】
0004819301.tif 000002
【図２】
0004819301.tif 000003
【図３】
0004819301.tif 000004
【図４】
0004819301.tif 000005
【図５】
0004819301.tif 000006
【図６】
0004819301.tif 000007
【図７】
0004819301.tif 000008
【図８】
0004819301.tif 000009
【図９】
0004819301.tif 000010
【図１０】
0004819301.tif 000011
【図１１】
0004819301.tif 000012
【図１２】
0004819301.tif 000013
【図１３】
0004819301.tif 000014
【図１４】
0004819301.tif 000015
【図１５】
0004819301.tif 000016