(57)【特許請求の範囲】
【請求項１】
第１のリセット信号の入力に基づいて初期設定され、プロセッサとプロセッサの外部とのコミュニケーションをおこなうための第１のレジスタ群と、
前記第１のリセット信号の入力に基づいて初期設定されるとともに、前記第１のリセット信号とは異なる第２のリセット信号の入力に基づいて初期設定される、前記第１のレジスタ群と異なる第２のレジスタ群と、
前記第１のリセット信号の入力によってクリアされ、かつ前記第１のレジスタ群の初期設定処理の完了によってセットされる第１のフラグと、
前記第１のリセット信号または前記第２のリセット信号のいずれかの入力によってクリアされ、かつ前記第２のレジスタ群の初期設定処理の完了によってセットされる第２のフラグと、
を具備し、
前記第１または第２のリセット信号のうちのいずれかのリセット信号が入力されたときに、前記第１および第２のレジスタ群のうち、クリアされているフラグに対応するレジスタ群に対して初期設定処理をおこなうことを特徴とするプロセッサ。
【請求項２】
前記第１のリセット信号の入力に基づいて初期設定され、かつ前記第２のリセット信号の入力に基づいて初期設定されるとともに、前記第１のリセット信号および前記第２のリセット信号のいずれとも異なる第３のリセット信号の入力に基づいて初期設定される、前記第１のレジスタ群および前記第２のレジスタ群のいずれとも異なる第３のレジスタ群と、
前記第１のリセット信号、前記第２のリセット信号または前記第３のリセット信号のいずれかの入力によってクリアされ、かつ前記第３のレジスタ群の初期設定処理の完了によってセットされる第３のフラグと、
をさらに具備し、
前記第３のレジスタ群は、プロセッサの内部の命令の実行に関するレジスタ群であり、
前記第２のレジスタ群は、前記第１のレジスタ群と前記第３のレジスタ群の両方を除くレジスタ群であり、
前記第１乃至第３のリセット信号のうちのいずれかのリセット信号が入力されたときに、前記第１乃至第３のレジスタ群のうち、クリアされているフラグに対応するレジスタ群に対して初期設定処理をおこなうことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
４以上の整数のそれぞれよりなるｎに対して、前記第１乃至第（ｎ−１）の各リセット信号の入力に基づいて初期設定されるとともに、前記第１乃至第（ｎ−１）の各リセット信号のいずれとも異なる第ｎのリセット信号の入力に基づいて初期設定される、前記第１乃至第（ｎ−１）の各レジスタ群のいずれとも異なる第ｎのレジスタ群と、
前記第１乃至第ｎの各リセット信号のいずれかの入力によってクリアされ、かつ前記第ｎのレジスタ群の初期設定処理の完了によってセットされる第ｎのフラグと、
をさらに具備し、
前記第１乃至第ｎの各リセット信号のうちのいずれかのリセット信号が入力されたときに、前記第１乃至第ｎのレジスタ群のうち、クリアされているフラグに対応するレジスタ群に対して初期設定処理をおこなうことを特徴とする請求項２に記載のプロセッサ。
【請求項４】
前記各リセット信号を外部から受け取る外部入力端子を有することを特徴とする請求項１乃至３のいずれか一つに記載のプロセッサ。
【請求項５】
前記各リセット信号はプロセッサ内部で生成されることを特徴とする請求項１乃至３のいずれか一つに記載のプロセッサ。
【請求項６】
上記請求項１乃至５のいずれか一つに記載のプロセッサのリセット処理を制御するリセット制御方法であって、
前記各リセット信号の種類に対応するフラグをクリアする工程と、
前記各フラグの状態を確認し、クリアされているフラグに対応するレジスタ群に対して初期設定処理をおこない、その初期設定処理の完了後に、対応するフラグをセットする処理を、すべてのフラグがセットされた状態になるまで繰り返しおこなう工程と、
を含むことを特徴とするプロセッサのリセット制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサおよびそのリセット制御方法に関し、特に携帯端末、携帯電話またはデジタルカメラなどに使用されるプロセッサに適用して好適な技術に関する。
【０００２】
【従来の技術】
一般に、プロセッサの中には、リセット信号によりリセット割り込みを発生し、システムの初期化プログラムを実行することにより、プロセッサおよびそのプロセッサにより構成されるシステムの状態を適切に設定する機構を備えたものがある。
【０００３】
上述した機構を備えたプロセッサでは、電源投入やリセットボタンの押下などに起因して外部からリセット信号が入力されると、まずプロセッサ内部の記憶素子を初期化する起動リセット動作が実行される。つづいて、プロセッサの内部でリセット割り込みが発生し、リセットベクタと呼ばれる初期化処理用のプログラムが、プロセッサの外部にバスを介して接続されたＲＯＭ（リード・オンリー・メモリ）から読み込まれる。この初期化処理用のプログラムの実行によって、プロセッサ内部あるいはシステム上に存在する各デバイスの各設定用レジスタが設定される。このようにして、種々のアプリケーションプログラムを実行可能な状態に環境が整えられる。
【０００４】
ところで、プロセッサの低消費電力化を図るため、一定時間の間、何らかの必要とされる処理がプロセッサに発行されない場合に、プロセッサに供給するクロックを停止させる機能がある。このような機能を有するプロセッサでは、クロック停止後にプロセッサの動作を回復させるため、リセット信号を再度入力するようになっているのが一般的である。
【０００５】
【発明が解決しようとする課題】
しかしながら、ＲＯＭは低速なメモリデバイスであるため、クロックの停止等によるプロセッサの停止状態からプロセッサを再起動させてすべての初期設定処理を終えるまでに時間がかかるという問題点がある。特に、頻繁にプロセッサの停止とリセット信号による再起動がおこなわれるシステムでは、再起動時にＲＯＭへのアクセスが毎回実行されることによるシステムの起動待ち時間が増大するという問題点がある。
【０００６】
本発明は、上記問題点に鑑みてなされたものであって、停止状態からの再起動が高速におこなえるプロセッサを提供することを目的とする。また、本発明の他の目的は、停止状態からプロセッサを高速に再起動させることができるリセット制御方法を提供することである。
【０００７】
【課題を解決するための手段】
リセット信号によって初期設定される領域を、たとえばプロセッサとプロセッサの外部とのコミュニケーションをおこなうために必須となるレジスタ群よりなる第１の初期設定領域と、第１の初期設定領域のレジスタ群およびプロセッサの内部の命令の実行に関するレジスタ群の両方を除く第２の初期設定領域と、プロセッサの内部の命令の実行に関するレジスタ群よりなる第３の初期設定領域とに分ける。第１の初期設定領域は、第１のリセット信号に基づいて初期設定される領域とする。第２の初期設定領域は、第１のリセット信号と第２のリセット信号のどちらかに基づいて初期設定される領域とする。第３の初期設定領域は、第１のリセット信号、第２のリセット信号、第３のリセット信号のどれか一つに基づいて初期設定される領域とする。
【０００８】
そして、第１、第２および第３の各初期設定領域にそれぞれ対応する第１、第２および第３のフラグをさらに設ける。第１のリセット信号によってすべてのフラグがクリアとなる。第２のリセット信号によって第１のフラグを除く残りのフラグがクリアされる。第３のリセット信号によって第３のフラグのみがクリアとなる。第１のフラグは、第１の初期設定領域の初期設定処理が完了すると、セットされる。第２のフラグおよび第３のフラグは、それぞれ第２の初期設定領域および第３の初期設定領域の初期設定処理が完了すると、セットされる。
【０００９】
この発明によれば、第１のリセット信号によってプロセッサ全体が初期設定されるが、第２のリセット信号によっては、プロセッサとプロセッサの外部とのコミュニケーションをおこなうために必須となるレジスタ群を除く領域が初期設定される。また、第３のリセット信号によっては、プロセッサの内部の命令の実行に関するレジスタ群のみが初期設定される。
【００１０】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照しつつ詳細に説明する。図１は、本発明の実施の形態にかかるプロセッサの要部の構成を示すブロック図である。このプロセッサ１は、命令フェッチ制御部１１、命令実行部１２、キャッシュメモリおよびキャッシュ制御部よりなるキャッシュユニット１３、バス制御部１４、クロック制御部１５、第１のレジスタ群１６、リセットレジスタ（ＲＳＴＲ）２および設定完了表示レジスタ（ＲＳＴＣＲ）３を備えている。
【００１１】
命令フェッチ制御部１１、命令実行部１２およびキャッシュユニット１３には、それぞれ１または２以上のレジスタよりなる第２、第３および第４のレジスタ群４１，４２，４３が設けられている。キャッシュユニット１３内の第４のレジスタ群４３には、たとえば論理アドレスを物理アドレスに変換するためのレジスタ対（ＬＰＦＲおよびＰＰＦＲ）４４が設けられている。
【００１２】
また、バス制御部１４には、プロセッサ１に対してローカルメモリとなるＲＡＭ５のアドレス範囲の開始アドレスおよび比較禁止ビットを設定するレジスタ対（ＡＳＲおよびＡＭＲ）４５が設けられている。プロセッサ１は、バス制御部１４により制御されるデータバスおよびアドレスバスを介して図示しないＲＯＭに接続される。なお、図１においては、本発明に関係のない構成については図示省略されている。
【００１３】
この実施の形態では、第１のレジスタ群１６と、ＡＳＲおよびＡＭＲで表される、ＲＡＭ５（ローカルメモリ）に対するアドレス設定レジスタ４５は、第１のリセット信号であるＰＲＳＴ信号が発生した場合に初期設定処理の対象となる。バス制御部１４に設けられた他のレジスタは、ＰＲＳＴ信号または第２のリセット信号であるＨＲＳＴ信号が発生した場合に初期設定処理の対象となる。第２、第３および第４のレジスタ群４１，４２，４３は、ＰＲＳＴ信号、ＨＲＳＴ信号または第３のリセット信号であるＳＲＳＴ信号が発生した場合に初期設定処理の対象となる。
【００１４】
つまり、ＰＲＳＴ信号が発生すると、第１のレジスタ群１６、ＡＳＲおよびＡＭＲで表されるアドレス設定レジスタ４５、バス制御部１４に設けられたレジスタのうち、ＡＳＲおよびＡＭＲで表されるアドレス設定レジスタ４５を除くレジスタ、第２、第３および第４のレジスタ群４１，４２，４３が初期設定処理の対象となる。ＨＲＳＴ信号が発生すると、バス制御部１４に設けられたレジスタのうち、ＡＳＲおよびＡＭＲで表されるアドレス設定レジスタ４５を除くレジスタ、第２、第３および第４のレジスタ群４１，４２，４３が初期設定処理の対象となる。
【００１５】
また、ＨＲＳＴ信号の発生により、クロック制御部１５内の、プロセッサ内部へのクロックの供給を停止させているレジスタ（図示せず）がリセットされる。それによって、クロック制御部１５は、外部から供給されたクロックの、プロセッサ各部への供給を再開する。ＳＲＳＴ信号が発生すると、第２、第３および第４のレジスタ群４１，４２，４３が初期設定処理の対象となる。
【００１６】
したがって、この実施の形態では、第１のレジスタ群１６と、ＡＳＲおよびＡＭＲで表されるアドレス設定レジスタ４５は、第１の初期設定領域に相当する。また、バス制御部１４に設けられたレジスタのうち、ＡＳＲおよびＡＭＲで表されるアドレス設定レジスタ４５を除くレジスタは、第２の初期設定領域に相当する。
【００１７】
また、第２、第３および第４のレジスタ群４１，４２，４３は第３の初期設定領域に相当する。図１において、符号１７は、外部からＰＲＳＴ信号が入力される端子（ＰＲＳＴ端子）であり、符号１８は、外部からＨＲＳＴ信号が入力される端子（ＨＲＳＴ端子）であり、符号１９は、外部からＳＲＳＴ信号が入力される端子（ＳＲＳＴ端子）である。また、符号１０は、外部からクロックが入力される端子（ＣＬＯＣＫ端子）である。
【００１８】
図２は、第１の初期設定領域に含まれるレジスタの一例を示す図表である。この一覧表において、ＡＲＳ０〜ＡＲＳ３はＤＲＡＭのアドレス領域設定レジスタである。ＡＭＫ０〜ＡＭＫ３はＤＲＡＭのアドレスマスクレジスタである。ＤＣＴＬは、ＤＲＡＭ品種ごとに異なるＤＲＡＭのオペレーション間の最小サイクル数の設定をおこなうＤＲＡＭコントロールレジスタである。ＤＡＭＣは、ＤＲＡＭに対するアクセスのモードを選択するためのＤＲＡＭアクセスモード制御レジスタである。
【００１９】
ＤＣＦＧは、ＤＲＡＭタイプ、ＤＲＡＭバスのバス幅、ＤＲＡＭ直結／ＤＩＭＭ使用などの表示および設定をおこなうＤＲＡＭコンフィギュレーションレジスタである。ＤＡＮは、４本のＤＣＳに接続するＤＲＡＭのＲＡＳアドレスビット数、ＣＡＳアドレスビット数、およびバンクアドレスビット数を設定するためのＤＲＡＭアドレスナンバレジスタである。
【００２０】
ＤＳＴＳは、ＳＤＲＡＭコントローラの状態を表すＤＲＡＭステータスレジスタである。ＤＲＣＮは、ＳＤＲＡＭのリフレッシュとして、オートリフレッシュおよびセルフリフレッシュをサポートするＤＲＡＭリフレッシュコントロールレジスタである。ＤＡＲＴは、オートリフレッシュ時のリフレッシュ間隔を規定するためのＤＲＡＭオートリフレッシュタイマレジスタである。その他、図２の表には記載されていないが、第１のレジスタ群１６には、ＤＲＡＭのメモリ領域のアドレス範囲を設定するためのＤＲＡＭアドレス領域設定レジスタ（ＤＡＲＳ）、およびＤＲＡＭのアドレス範囲を設定するためのＤＲＡＭアドレスマスクレジスタ（ＤＡＭＫ）などが含まれる。ここでは、ＤＲＡＭはプロセッサ１のローカルなメモリであるＲＡＭ５である。
【００２１】
図３は、リセットレジスタ２の構成を示す概略図である。リセットレジスタ２はＨＳビット２１とＳＳビット２２を有する。ＨＳビット２１に書き込みをおこなうことによって、ＨＲＳＴ端子１８から入力されるリセット信号であるＨＲＳＴ信号と同等の信号がプロセッサ１の内部でアサートされる。また、ＳＳビット２２に書き込みをおこなうことによって、ＳＲＳＴ端子１９から入力されるリセット信号であるＳＲＳＴ信号と同等の信号がプロセッサ１の内部でアサートされる。
【００２２】
図４は、プロセッサ１の初期化制御部の構成を示す回路図である。なお、この初期化制御部は図１では省略されている。ＰＲＳＴ端子１７を介して外部から入力されたＰＲＳＴ信号はそのままプロセッサ１内に供給される。
【００２３】
ＨＲＳＴ端子１８を介して外部から入力されたＨＲＳＴ信号（以下、外部ＨＲＳＴ信号とする）は、オア回路６１の一方の入力端子に入力される。また、リセットレジスタ２のＨＳビット２１への書き込み信号はフリップフロップ６２に入力され、このフリップフロップ６２の出力信号がオア回路６１のもう一方の入力端子に入力される。すなわち、外部ＨＲＳＴ信号の入力またはＨＳビット２１への書き込みによって、ＨＲＳＴ信号またはそれと同等の信号（以下、内部ＨＲＳＴ信号とする）がアサートされる。ＨＳビット２１への書き込み信号は複数のフリップフロップ６３，６４，６５，・・・からなるシフトレジスタに供給される。
【００２４】
このシフトレジスタを構成する複数のフリップフロップ６３，６４，６５，・・・の各出力信号はノア回路６６に入力される。ノア回路６６の出力信号は、ＨＳビット２１への書き込み信号が入力されるフリップフロップ６２のイネーブル端子（ＥＮ）に入力される。これによって、ＨＳビット２１への書き込み信号がシフトレジスタにおいてシフトされている間は、内部ＨＲＳＴ信号が発生し続けることになる。
【００２５】
ＳＲＳＴ端子１９を介して外部から入力されたＳＲＳＴ信号（以下、外部ＳＲＳＴ信号とする）、およびリセットレジスタ２のＳＳビット２２への書き込みによって発生する、外部ＳＲＳＴ信号と同等の信号（以下、内部ＳＲＳＴ信号とする）についても同様である。すなわち、ＳＳビット２２への書き込み信号は複数のフリップフロップ７３，７４，７５，・・・からなるシフトレジスタに供給される。このシフトレジスタの各段の出力信号は、ノア回路７６を介して、ＳＳビット２２への書き込み信号が入力されるフリップフロップ７２のイネーブル端子（ＥＮ）に供給される。それによって、シフトレジスタにおいてＳＳビット２２への書き込み信号のシフトが終了するまで、内部ＳＲＳＴ信号が発生し続ける。この内部ＳＲＳＴ信号および外部ＳＲＳＴ信号はオア回路７１に入力され、アサートされる。
【００２６】
図５は、設定完了表示レジスタ３の構成を示す概略図である。設定完了表示レジスタ３はＰＣビット３１とＨＣビット３２とＳＣビット３３を有する。ＰＣビット３１は第１のフラグを格納する。第１のフラグは、第１の初期設定領域の初期設定処理が済んでいるか否かを表す。ＨＣビット３２は第２のフラグを格納する。第２のフラグは、第２の初期設定領域の初期設定処理が済んでいるか否かを表す。ＳＣビット３３は第３のフラグを格納する。第３のフラグは、第３の初期設定領域の初期設定処理が済んでいるか否かを表す。
【００２７】
図６は、設定完了表示レジスタ３の要部の構成を示す回路図である。設定完了表示レジスタ３は、ＰＣビット３１、ＨＣビット３２およびＳＣビット３３にそれぞれ対応するフリップフロップ８１，８２，８３を有する。ＰＣビット３１のフリップフロップ８１のリセット端子にはＰＲＳＴ信号が入力される。フリップフロップ８１の入力端子には、第１の初期設定領域の初期設定処理の完了によって発生する信号、すなわちＰＣビット３１の第１のフラグをセットするための信号（以下、ＰＣセット信号とする）がオア回路８４を介して入力される。このオア回路８４には、フリップフロップ８１の出力信号も入力される。つまり、ＰＣビット３１は、ＰＲＳＴ信号がアサートされるとリセットされ、ＰＣセット信号が入力されると、つぎにＰＲＳＴ信号がアサートされるまでフラグをセットした状態を保持する。
【００２８】
ＨＣビット３２のフリップフロップ８２のリセット端子には、ＰＲＳＴ信号、および内部もしくは外部のＨＲＳＴ信号を入力とするオア回路８５の出力信号が入力される。フリップフロップ８２の入力端子には、第２の初期設定領域の初期設定処理の完了によって発生する信号、すなわちＨＣビット３２の第２のフラグをセットするための信号（以下、ＨＣセット信号とする）がオア回路８６を介して入力される。このオア回路８６には、フリップフロップ８２の出力信号も入力される。したがって、ＨＣビット３２は、ＰＲＳＴ信号、または内部もしくは外部のＨＲＳＴ信号がアサートされるとリセットされ、ＨＣセット信号が入力されると、つぎにＰＲＳＴ信号、または内部もしくは外部のＨＲＳＴ信号がアサートされるまでフラグをセットした状態を保持する。
【００２９】
ＳＣビット３３のフリップフロップ８３のリセット端子には、ＰＲＳＴ信号、内部もしくは外部のＨＲＳＴ信号、および内部もしくは外部のＳＲＳＴ信号を入力とするオア回路８７の出力信号が入力される。フリップフロップ８３の入力端子には、第３の初期設定領域の初期設定処理の完了によって発生する信号、すなわちＳＣビット３３の第３のフラグをセットするための信号（以下、ＳＣセット信号とする）がオア回路８８を介して入力される。このオア回路８８には、フリップフロップ８３の出力信号も入力される。したがって、ＳＣビット３３は、ＰＲＳＴ信号、内部もしくは外部のＨＲＳＴ信号、または内部もしくは外部のＳＲＳＴ信号がアサートされるとリセットされる。
【００３０】
そして、ＳＣビット３３は、ＳＣセット信号が入力されると、つぎにＰＲＳＴ信号、内部もしくは外部のＨＲＳＴ信号、または内部もしくは外部のＳＲＳＴ信号がアサートされるまでフラグをセットした状態を保持する。なお、プロセッサ１のハードウェアが自動的に初期化シーケンスを発生させる機構を有している場合には、ＰＣビット３１、ＨＣビット３２およびＳＣビット３３は、その設定シーケンスの完了をもって自動的にセットされる。そして、ＰＣビット３１、ＨＣビット３２およびＳＣビット３３は、対応するシーケンサ部分の初期化をおこなうリセット信号によりリセットされる。
【００３１】
図７および図８は、プロセッサ１に対してローカルなメモリであるＲＡＭ５のアドレス範囲の開始アドレスおよび比較禁止ビットを設定するレジスタ対（ＡＳＲおよびＡＭＲ）４５の、それぞれ開始アドレスを設定するレジスタ（ＡＳＲ）４６および比較禁止ビットを設定するレジスタ（ＡＭＲ）４７の構成を示す概略図である。また、図９は、開始アドレスを設定するレジスタ（ＡＳＲ）４６および比較禁止ビットを設定するレジスタ（ＡＭＲ）４７に基づいてＲＡＭ５にアサインされる番地の概略を示すメモリマップ図である。開始アドレスを設定するレジスタ（ＡＳＲ）４６により設定されるアドレスのうち、比較禁止ビットを設定するレジスタ（ＡＭＲ）４７によりマスクされない上位ビットで表されるアドレスがＲＡＭ５の領域のアドレスとなる。
【００３２】
つぎに、上述したプロセッサ１の起動シーケンスの実施例について説明する。まず、電源投入時にＰＲＳＴ信号がアサートされた場合の初期化シーケンスについて図１０に示すフローチャートを参照しながら説明する。図１０のフローチャートにおいて、まず、ＰＲＳＴ信号がアサートされると（ステップＳ１００１）、設定完了表示レジスタ（ＲＳＴＣＲ）３のＰＣビット３１、ＨＣビット３２およびＳＣビット３３がたとえば「０」にリセットされる（ステップＳ１００２）。その後、ＰＲＳＴ信号がネゲートされると（ステップＳ１００３）、たとえば「０ｘＦＦ００＿００００」の初期アドレスからの命令フェッチ要求が発行される。ここで、電源投入直後はＲＡＭ５に有効なデータが保持されていないため、プロセッサ１は外部バス上のＲＯＭにアクセスする。
【００３３】
このＲＯＭに格納されている初期化プログラムはＰＣビット３１の値を参照し（ステップＳ１００４）、その値がたとえば「０」であることを認識する（ステップＳ１００４：Ｙｅｓ）。それによって、ＰＲＳＴ信号がアサートされた場合に必要な処理を含むルーチンが実行される。プロセッサ１が起動した後、ＲＡＭ５をアクセスするためのアドレス情報が、たとえばアドレス範囲の開始アドレスを設定するレジスタ（ＡＳＲ）４６およびアドレス範囲の比較禁止ビットを設定するレジスタ（ＡＭＲ）４７に設定される。
【００３４】
たとえば、開始アドレスを設定するレジスタ（ＡＳＲ）４６に「０ｘ００００＿００００」が設定され、比較禁止ビットを設定するレジスタ（ＡＭＲ）４７に「０ｘ０１ＦＦ＿ＦＦＦＦ」が設定されることによって、「０ｘ００００＿００００」番地から「０ｘ０１ＦＦ＿ＦＦＦＦ」番地までがＲＡＭ５にアサインされる。また、第１のレジスタ群１６も設定され、第１の初期設定領域に含まれるレジスタのセットが完了する（ステップＳ１００５）。この時点で初期化プログラムはＰＣビット３１に書き込みをおこない、このビットをたとえば「１」にセットする（ステップＳ１００６）。
【００３５】
しかる後、初期化プログラムはＨＣビット３２の値を参照する（ステップＳ１００７）。ここでは、ステップＳ１００２でＨＣビット３２をリセットしているため、当然のことながらＨＣビット３２の値は「０」である（ステップＳ１００７：Ｙｅｓ）。したがって、外部または内部のＨＲＳＴ信号がアサートされた場合に必要な処理を含むルーチンが実行され、第２の初期設定領域に含まれるレジスタのセットが完了する（ステップＳ１００８）。そして、初期化プログラムはＨＣビット３２に書き込みをおこない、このビットをたとえば「１」にセットする（ステップＳ１００９）。
【００３６】
つづいて、初期化プログラムはＳＣビット３３の値を参照する（ステップＳ１０１０）。ＨＣビット３２と同様に、ここでも当然のことながらＳＣビット３３の値は「０」である（ステップＳ１０１０：Ｙｅｓ）。したがって、外部または内部のＳＲＳＴ信号がアサートされた場合に必要な処理を含むルーチンが実行され、第３の初期設定領域に含まれるレジスタのセットが完了する（ステップＳ１０１１）。そして、初期化プログラムはＳＣビット３３に書き込みをおこない、このビットをたとえば「１」にセットする（ステップＳ１０１２）。以上の処理によって、アプリケーションを開始する準備が完了する（ステップＳ１０１３）。
【００３７】
つぎに、プロセッサ１の起動後、一定時間必要とされる処理がプロセッサ１に発行されなかったことを契機としてプロセッサ１が自らクロック制御部１５に対してすべてのクロックを停止させた状態において、必要性が発生した時点で外部ＨＲＳＴ信号により再起動がおこなわれる場合の再起動シーケンスについて図１１に示すフローチャートを参照しながら説明する。図１１のフローチャートにおいて、まず外部よりＨＲＳＴ信号がアサートされる（ステップＳ１１０１）。
【００３８】
それによって、クロック制御部１５でクロックを停止させているレジスタがリセットされ、プロセッサ１の内部へのクロックの供給が開始される。また、設定完了表示レジスタ（ＲＳＴＣＲ）３のＨＣビット３２およびＳＣビット３３がたとえば「０」にリセットされる（ステップＳ１１０２）。その際、ＰＣビット３１に対するリセット動作はおこなわれない。したがって、ＲＡＭ５には有効なデータが保持されたままである。
【００３９】
つぎに、外部ＨＲＳＴ信号がネゲートされると（ステップＳ１１０３）、ＲＡＭ５に格納されている初期化プログラムはＰＣビット３１の値を参照する（ステップＳ１１０４）。ＰＣビット３１の値が「１」であれば（ステップＳ１１０４：Ｎｏ）、第１の初期設定領域に含まれるレジスタはすべてセットされた状態であるため、第１の初期設定領域に対する初期設定処理（ステップＳ１１０５、ステップＳ１１０６）は省略される。
【００４０】
そして、初期化プログラムはＨＣビット３２の値を参照する（ステップＳ１１０７）。ここでは、ＨＣビット３２の値は当然のことながら「０」であるため（ステップＳ１１０７：Ｙｅｓ）、第２の初期設定領域に含まれるレジスタがセットされ（ステップＳ１１０８）、ＨＣビット３２の値が「１」にセットされる（ステップＳ１１０９）。
【００４１】
つづいて、初期化プログラムはＳＣビット３３の値を参照する（ステップＳ１１１０）が、ＳＣビット３３の値も当然のことながら「０」であるため（ステップＳ１１１０：Ｙｅｓ）、第３の初期設定領域に含まれるレジスタがセットされ（ステップＳ１１１１）、その後にＳＣビット３３の値が「１」にセットされる（ステップＳ１１１２）。以上の処理によって、アプリケーションを開始する準備が完了する（ステップＳ１１１３）。なお、図１１に示す再起動シーケンスは、内部ＨＲＳＴ信号がアサートされた場合も同様である。
【００４２】
ここで、ステップＳ１１０２において設定完了表示レジスタ（ＲＳＴＣＲ）３のＰＣビット３１をリセットしていないにもかかわらず、ステップＳ１１０４においてＰＣビット３１の値を参照する理由は、たとえばＰＲＳＴ信号のアサートによって図１０に示す初期化シーケンスの実行中で、第１の初期設定領域の初期設定処理が完了していないときに、外部ＨＲＳＴ信号または内部ＨＲＳＴ信号がアサートされた場合に、第１の初期設定領域の初期設定処理を完了させる必要があるからである。これは、本実施の形態のプロセッサ１が設定完了表示レジスタ（ＲＳＴＣＲ）３を備えており、このレジスタを参照すれば各初期設定領域の初期設定処理が完了しているか否かを知ることができる構成となっていることにより実現される。
【００４３】
したがって、設定完了表示レジスタ（ＲＳＴＣＲ）３を設けずに、複数のリセット信号と各リセット信号に対応する複数の初期設定領域を設け、アサートされたリセット信号に対応する領域の初期設定処理をおこなう構成とした場合には、ＰＲＳＴ信号のアサートによる初期化シーケンスの実行中に外部ＨＲＳＴ信号または内部ＨＲＳＴ信号がアサートされると、第１の初期設定領域の初期設定が完全におこなわれないまま、第２および第３の初期設定領域の初期設定処理が完了してしまう場合がある。つまりプロセッサ１が完全な起動状態にならないという不具合が発生してしまう。
【００４４】
このような不具合の発生を防ぐために、ステップＳ１１０４でＰＣビット３１の値を参照する。そして、その値がリセットされた値であれば、第１の初期設定領域の初期設定処理をおこなう（ステップＳ１１０５）。その後、ＰＣビット３１の値をセットし（ステップＳ１１０６）、ステップＳ１１０７へ進む。
【００４５】
つぎに、外部ＳＲＳＴ信号または内部ＳＲＳＴ信号による起動処理シーケンスについて図１２に示すフローチャートを参照しながら説明する。図１２のフローチャートにおいて、まず外部または内部のＳＲＳＴ信号がアサートされると（ステップＳ１２０１）、命令フェッチ制御部１１、命令実行部１２およびキャッシュユニット１３内のすべてのレジスタが初期化される。また、設定完了表示レジスタ（ＲＳＴＣＲ）３のＳＣビット３３がたとえば「０」にリセットされる（ステップＳ１２０２）。その際、ＰＣビット３１とＨＣビット３２に対するリセット動作はおこなわれない。
【００４６】
内部または外部のＳＲＳＴ信号がネゲートされると（ステップＳ１２０３）、「０ｘＦＦ００＿００００」の初期アドレスからの命令フェッチ要求が発行される。ＲＡＭ５に格納されている初期化プログラムはＰＣビット３１の値を参照し（ステップＳ１２０４）、その値が「１」であれば（ステップＳ１２０４：Ｎｏ）、第１の初期設定領域に含まれるレジスタはすべてセットされた状態であるため、第１の初期設定領域に対する初期設定処理（ステップＳ１２０５、ステップＳ１２０６）は省略される。
【００４７】
そして、初期化プログラムはＨＣビット３２の値を参照し（ステップＳ１２０７）、その値が「１」であれば（ステップＳ１２０７：Ｎｏ）、第２の初期設定領域に含まれるレジスタはすべてセットされた状態であるため、第２の初期設定領域に対する初期設定処理（ステップＳ１２０８、ステップＳ１２０９）が省略される。
【００４８】
つづいて、初期化プログラムはＳＣビット３３の値を参照する（ステップＳ１２１０）が、ＳＣビット３３の値は当然のことながら「０」である（ステップＳ１２１０：Ｙｅｓ）。したがって、第３の初期設定領域に含まれるレジスタがセットされ（ステップＳ１２１１）、その後にＳＣビット３３の値が「１」にセットされる（ステップＳ１２１２）。以上の処理によって、アプリケーションを開始する準備が完了する（ステップＳ１２１３）。
【００４９】
ここで、ステップＳ１２０２において設定完了表示レジスタ（ＲＳＴＣＲ）３のＰＣビット３１とＨＣビット３２をリセットしていないにもかかわらず、ステップＳ１２０４においてＰＣビット３１の値を参照し、またステップＳ１２０７においてＨＣビット３２の値を参照する理由は、上述したＰＲＳＴ信号による初期化シーケンスの実行中に外部ＨＲＳＴ信号または内部ＨＲＳＴ信号がアサートされた場合に発生する不具合を防ぐのと同じ理由である。
【００５０】
したがって、ステップＳ１２０４でＰＣビット３１の値を参照した結果、その値がリセットされた値であれば（ステップＳ１２０４：Ｙｅｓ）、第１の初期設定領域の初期設定処理をおこない（ステップＳ１２０５）、ＰＣビット３１の値をセットした後（ステップＳ１２０６）、ステップＳ１２０７へ進む。また、ステップＳ１２０７でＨＣビット３２の値を参照し、その値がリセットされた値であれば（ステップＳ１２０７：Ｙｅｓ）、第２の初期設定領域の初期設定処理をおこない（ステップＳ１２０８）、ＨＣビット３２の値をセットした後（ステップＳ１２０９）、ステップＳ１２１０へ進む。
【００５１】
上述した実施の形態によれば、ＰＲＳＴ信号によって第１の初期設定領域、第２の初期設定領域および第３の初期設定領域が初期設定され、外部ＨＲＳＴ信号または内部ＨＲＳＴ信号によって第２の初期設定領域および第３の初期設定領域が初期設定され、外部ＳＲＳＴ信号または内部ＳＲＳＴ信号によって第３の初期設定領域が初期設定されるので、第２のリセット信号が発生した場合には第１の初期設定領域の初期設定を省略することができ、また第３のリセット信号が発生した場合には第１の初期設定領域と第２の初期設定領域の初期設定を省略することができる。
【００５２】
したがって、外部ＨＲＳＴ信号もしくは内部ＨＲＳＴ信号、または外部ＳＲＳＴ信号もしくは内部ＳＲＳＴ信号が発生した場合に、停止状態からプロセッサを高速に復帰させることが可能となる。なお、上述した実施の形態では、説明を簡素化するため、一部のレジスタだけを挙げて説明したが、実際のプロセッサでは各初期設定領域に含まれるレジスタの数が非常に多いため、初期化範囲の差がより大きくなるので、停止状態から復帰が高速になる。
【００５３】
また、上述した実施の形態によれば、ＰＣビット３１に格納された第１のフラグ、ＨＣビット３２に格納された第２のフラグ、およびＳＣビット３３に格納された第３のフラグを参照することによって、各初期設定領域の初期設定処理が完了したか否かを知ることができるので、ＰＲＳＴ信号による初期化シーケンスの実行中にさらに別のリセット信号がアサートされた場合に、第１の初期設定領域の初期設定が完全におこなわれないまま、第２および第３の初期設定領域の初期設定処理が完了してしまうという不具合の発生を防ぐことができる。
【００５４】
以上において本発明は、上述した実施の形態に限らず、種々変更可能である。たとえば、初期設定領域の数は３つに限らず、２つでもよいし、４つ以上でもよい。また、どの初期設定領域にどのレジスタが含まれるかということに関しても任意である。
【００５５】
【発明の効果】
本発明によれば、たとえば第１のリセット信号によってプロセッサ全体が初期設定され、第２のリセット信号によっては、プロセッサとプロセッサの外部とのコミュニケーションをおこなうために必須となるレジスタ群を除く領域が初期設定され、第３のリセット信号によっては、プロセッサの内部の命令の実行に関するレジスタ群のみが初期設定されるので、第２のリセット信号が発生した場合には、プロセッサとプロセッサの外部とのコミュニケーションをおこなうために必須となるレジスタ群の初期設定を省略することができ、また第３のリセット信号が発生した場合には、プロセッサの内部の命令の実行に関するレジスタ群以外の領域の初期設定を省略することができる。したがって、第２または第３のリセット信号が発生した場合に、停止状態からプロセッサを高速に復帰させることが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかるプロセッサの要部の構成を示すブロック図である。
【図２】本発明の実施の形態にかかるプロセッサにおいてＰＲＳＴ信号により初期化され、かつＨＲＳＴ信号およびＳＲＳＴ信号によっては初期化されないレジスタの一例を示す図表である。
【図３】本発明の実施の形態にかかるプロセッサのリセットレジスタの構成を示す概略図である。
【図４】本発明の実施の形態にかかるプロセッサの初期化制御部の構成を示す回路図である。
【図５】本発明の実施の形態にかかるプロセッサの設定完了表示レジスタの構成を示す概略図である。
【図６】本発明の実施の形態にかかるプロセッサの設定完了表示レジスタの要部の構成を示す回路図である。
【図７】本発明の実施の形態にかかるプロセッサに対してローカルなメモリの開始アドレスを設定するレジスタの構成を示す概略図である。
【図８】本発明の実施の形態にかかるプロセッサに対してローカルなメモリの比較禁止ビットを設定するレジスタの構成を示す概略図である。
【図９】本発明の実施の形態にかかるプロセッサに対してローカルなメモリにアサインされる番地について説明するためのメモリマップ図である。
【図１０】本発明の実施の形態にかかるプロセッサにおいてＰＲＳＴ信号によって実行される初期化処理の一例を示すフローチャートである。
【図１１】本発明の実施の形態にかかるプロセッサにおいてＨＲＳＴ信号によって実行される初期化処理の一例を示すフローチャートである。
【図１２】本発明の実施の形態にかかるプロセッサにおいてＳＲＳＴ信号によって実行される初期化処理の一例を示すフローチャートである。
【符号の説明】
１    プロセッサ
１６    第１のレジスタ群（第１の初期設定領域）
１７    ＰＲＳＴ端子（外部入力端子）
１８    ＨＲＳＴ端子（外部入力端子）
１９    ＳＲＳＴ端子（外部入力端子）
３１    ＰＣビット（第１のフラグ）
３２    ＨＣビット（第２のフラグ）
３３    ＳＣビット（第３のフラグ）
４１    第２のレジスタ群（第３の初期設定領域）
４２    第３のレジスタ群（第３の初期設定領域）
４３    第４のレジスタ群（第３の初期設定領域）
４５    ローカルメモリのアドレス範囲の開始アドレスおよび比較禁止ビットを設定するレジスタ対（第１の初期設定領域）
【図１】
0004443067.tif 000002
【図２】
0004443067.tif 000003
【図３】
0004443067.tif 000004
【図４】
0004443067.tif 000005
【図５】
0004443067.tif 000006
【図６】
0004443067.tif 000007
【図７】
0004443067.tif 000008
【図８】
0004443067.tif 000009
【図９】
0004443067.tif 000010
【図１０】
0004443067.tif 000011
【図１１】
0004443067.tif 000012
【図１２】
0004443067.tif 000013