(57)【要約】一実施例において、拡張リセットでプロセッサの命令フェッチ要求を保持するための方法が示される。プロセッサがリセットされているとき、フェッチ要求は不能である。リセットが終了したとき、命令メモリがロードされている場合にはフェッチ要求は不能のままである。命令メモリのロードが終了したとき、フェッチ要求が可能になる。
2004516545.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサをリセットする方法において、
リセット・モードを入力する段階と、
前記プロセッサと関連する命令メモリをロードする段階と、
前記命令メモリがロードされるまで命令フェッチを保留する段階と、
から成ることを特徴とする方法。
【請求項２】
命令メモリ・ロード信号を受け取る段階と、
前記命令メモリ・ロード信号が表明される間に、前記命令メモリをロードする段階と、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項３】
拡張されたリセット信号を表明する段階と、
前記拡張されたリセット信号が表明されるときに、命令フェッチを保留する段階と、
をさらに含むことを特徴とする請求項１記載の方法。
【請求項４】
リセット信号を受け取る段階と、
命令メモリ・ロード信号を受け取る段階と、を含み、
前記リセット信号が受け取られるとき、および前記命令メモリ・ロード信号が受け取られるときに、前記拡張されたリセット信号が表明されることを特徴とする請求項３記載の方法。
【請求項５】
前記リセット信号がクリアされるとき、および前記命令メモリ・ロード信号がクリアされるときに、前記拡張されたリセット信号がクリアされることを特徴とする請求項４記載の方法。
【請求項６】
命令フェッチを保留する段階が、命令要求ロジックを不能にする段階を含むことを特徴とする請求項１記載の方法。
【請求項７】
命令フェッチを保留する段階が、命令レジスタを不能にする段階を含むことを特徴とする請求項１記載の方法。
【請求項８】
リセット・モードを入力する段階と、
命令メモリに命令がロードされていることを示す信号を受け取る段階と、
前記命令メモリから命令をフェッチすることを不能にする段階と、
から成ることを特徴とする方法。
【請求項９】
前記信号が第１信号であり、前記方法は、
前記命令メモリがもはやロードされていないことを示す第２信号を受け取る段階と、
前記命令メモリから命令をフェッチすることを可能にする段階と、
をさらに含むことを特徴とする請求項８記載の方法。
【請求項１０】
命令を命令メモリにロードする段階をさらに含むことを特徴とする請求項８記載の方法。
【請求項１１】
命令のフェッチを不能にする段階が、命令要求ロジックを不能にする段階を含むことを特徴とする請求項８記載の方法。
【請求項１２】
命令のフェッチを不能にする段階が、命令レジスタを不能にする段階を含むことを特徴とする請求項８記載の方法。
【請求項１３】
リセット信号を受け取る段階と、
命令メモリ・ロード信号を受け取る段階と、
前記リセット信号および前記命令メモリ・ロード信号の結果として、拡張されたリセット信号を生成する段階と、
から成ることを特徴とする方法。
【請求項１４】
前記リセット信号が受け取られるときに、前記拡張されたリセット信号が表明されることを特徴とする請求項１３記載の方法。
【請求項１５】
前記命令メモリ・ロード信号がクリアされるときに、前記拡張されたリセット信号がクリアされることを特徴とする請求項１３記載の方法。
【請求項１６】
前記拡張されたリセット信号が表明されるときに、命令フェッチを保留する段階をさらに含むことを特徴とする請求項１３記載の方法。
【請求項１７】
命令フェッチを保留する段階が、命令要求ロジックを不能にする段階を含むことを特徴とする請求項１６記載の方法。
【請求項１８】
命令フェッチを保留する段階が、命令レジスタを不能にする段階を含むことを特徴とする請求項１６記載の方法。
【請求項１９】
前記命令メモリ・ロード信号が受け取られるときに、前記命令メモリをロードする段階をさらに含むことを特徴とする請求項１３記載の方法。
【請求項２０】
リセット信号を受け取るために適合された第１入力と、
命令メモリ・ロード信号を受け取るために適合された第２入力と、
出力と、
前記第１入力、前記第２入力、および前記出力に結合された回路であって、前記リセット信号および前記命令メモリ・ロード信号に基づいて拡張されたリセット信号を前記出力に提供するために適合される、回路と、
から構成されることを特徴とする装置。
【請求項２１】
前記リセット信号が受け取られるときに、前記回路が前記拡張されたリセット信号を表明することを特徴とする請求項２０記載の装置。
【請求項２２】
前記命令メモリ・ロード信号がクリアされるときに、前記回路が前記拡張されたリセット信号をクリアすることを特徴とする請求項２０記載の装置。
【請求項２３】
スタティック・ランダム・アクセス・メモリ装置と、
前記スタティック・ランダム・アクセス・メモリ装置に結合されたデジタル・プロセッサであって、前記デジタル・プロセッサは命令メモリから命令をフェッチするために形成され、
前記命令メモリに命令がロードされているときに、前記デジタル・プロセッサが、前記デジタル・プロセッサによってフェッチすることを不能にするために適合されたリセット・ロジックを含む、デジタル・プロセッサと、
から構成されることを特徴とするシステム。
【請求項２４】
前記命令メモリをロードするために適合された前記命令メモリに結合された不揮発性メモリをさらに含み、
前記リセット・ロジックは、命令が前記不揮発性メモリから前記命令メモリへロードされるときに、前記デジタル・プロセッサによってフェッチすることを不能にするために適合される、
ことを特徴とする請求項２３記載のシステム。
【請求項２５】
前記リセット・ロジックは、命令が前記命令メモリにロードされた後、デジタル・プロセッサによってフェッチすることを可能にするために適合されることを特徴とする請求項２４記載のシステム。
【請求項２６】
前記リセット・ロジックは信号を生成するために配置され、フェッチが不能になることが前記信号の結果であることを特徴とする請求項２３記載のシステム。
【請求項２７】
前記命令メモリが、スタティック・ランダム・アクセス・メモリを含むことを特徴とする請求項２３記載のシステム。
【請求項２８】
前記デジタル・プロセッサが、パイプライン・プロセッサを含むことを特徴とする請求項２３記載のシステム。
【請求項２９】
前記デジタル・プロセッサが、制御ユニットを含むことを特徴とする請求項２３記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラム可能なプロセッサに関する。
【０００２】
【従来の技術】
コンピュータまたはデジタル信号処理システムのためのマイクロプロセッサのようなプログラム可能なプロセッサは、典型的には、プロセッサによって実行される命令を保持するメモリを含む。さらに、プロセッサは、典型的には、プロセッサが所定の状態へ初期化されるリセット動作をサポートする。例えば、リセットは、プロセッサに電源を投入するときに使用される。リセット動作において、命令を保持するために使用されるメモリは、典型的には所定の状態にリセットされ、その結果メモリに格納された命令の消失が生じる。
【０００３】
【実施例の詳細な説明】
図１は、実行パイプライン１４、制御ユニット１２および命令メモリ１６を有するプログラム可能なプロセッサ１０を図示するブロック図である。命令メモリ１６は、パイプライン１４によって実行される命令を保持する。命令メモリ１６は、図１ではプロセッサ１０内に含まれるように示されているが、プロセッサ１０の外部であってもよい。制御ユニット１２は、パイプライン１４を通過する命令およびデータのフローを制御する。例えば、命令の処理中に、制御ユニット１２は、パイプライン１４の多様なコンポーネントに対して、命令をデコードし、かつ対応する動作を正確に実行することを命令する。さらに、制御ユニット１２は、命令メモリ１６を管理し、典型的には他の機能を実行することもできる。
【０００４】
命令メモリ１６は、典型的には、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）のような揮発性メモリを含む。図１でプロセッサ１０の外部に示されているメモリ２０は、フラッシュ・メモリ、リード・オンリー・メモリ、またはフロッピー・ディスクのような不揮発性メモリ要素を含む。メモリ２０はまた、プロセッサ１０内に含まれてもよい。パイプライン１４は、命令メモリ１６への直接アクセス２６を有し、これによって、制御ユニット１２が介在しなくても、命令メモリ１６からパイプライン１４へ直接命令を送ることができる。パイプライン１４が命令をフェッチするとき、パイプライン１４は、命令メモリ１６中の命令を見つけようとする。以下に記述される技術は、命令のフェッチが始まる前に、命令が命令メモリ１６にロードされることを可能にする。
【０００５】
時々、プロセッサ１０はリセットされる。リセットは、パイプライン１４を所定の状態にセットする。プロセッサ１０がリセットされている間、命令メモリ１６も同様にリセットされる。リセットによって、命令メモリ１６に格納された命令が消失する。メモリ２０から命令メモリ１６へ命令をロードすることにより、命令が命令メモリ１６に再格納される。通常は、直接記憶アクセス（ＤＭＡ）２８経由で、命令がメモリ２０から命令メモリ１６へロードされる。パイプライン１４は、リセット中は命令メモリ１６から新しい命令をフェッチしないが、リセットに引き続いて直ちに命令メモリ１６から命令をフェッチすることができる。しかしながら、命令はリセットされたばかりの命令メモリ１６には存在せず、命令をメモリ２０から獲得しなければならないので、リセットに引き続いて命令をフェッチすることは効率的でない。以下に記述された技術は、命令メモリ１６がロードされるまで、命令のフェッチを保留することによって効率を改善する。
【０００６】
図１において、制御ユニット１２はリセット・ロジック１８を含む。リセット・ロジック１８は、制御ユニット１２と分離していてもよい。プロセッサ１０がリセットを入力するとき、進行中のリセットを示すフラグ・ビットは、レジスタのようなメモリ要素内にセットされ格納される。プロセッサ１０のリセットが終了するとき、「Ｒｅｓｅｔ＿Ｓｉｇｎａｌ」５０として以下でより詳細に説明されるフラグ・ビットがクリアされる。図１で示されるように、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０は、プロセッサ１０の外部で生成されたリセット信号であり、例えば、イベント制御装置、またはプロセッサ１０と協働する他のプロセッサから到来する。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０は、例えば、プロセッサ１０と協働するシステムの一般的なリセットに起因する。図１には示されないが、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０は、リセット・サービス・ルーチンを開始する、プロセッサ１０に供給されるリセット信号とは区別される。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０は、リセット・ロジック１８によって受け取られる。リセット・ロジック１８はまた、命令が命令メモリ１６にロードされることを示す信号３０を受け取る。信号３０は、「ＩＭ＿Ｉｎｉｔ」信号３０として以下で説明される。リセット・ロジック１８の出力は、「Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ」２４として以下で説明される拡張されたリセット信号であって、パイプライン１４によって命令メモリ１６へのフェッチ要求を制御する。Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がセットされるとき、フェッチ要求は保留され、また、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がクリアされるとき、フェッチ要求が開始される。
【０００７】
図２はタイミング図を示す。参照線５２によって示されるように、プロセッサ１０が通常のリセット・モードに設定されているとき、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０が表明（ａｓｓｅｒｔ）され、プロセッサ１０が通常のリセット・モードであることを示す。プロセッサ１０が動作のリセットを終了するとき、参照線５４によって示されるように、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされる。命令メモリ１６がロードされる場合、ＩＭ＿Ｉｎｉｔ３０がセットされる。動作のリセットが終了するとすぐに（５４）、命令メモリ１６がロードされる（５５）。命令メモリ１６のロードが終了するまで、ＩＭ＿Ｉｎｉｔ３０はセットされ続け、その後、参照線５６によって示されるように、ＩＭ＿Ｉｎｉｔ３０がクリアされる。
【０００８】
通常、パイプライン１４は、動作のリセットが終了した直後に（５４）、命令をフェッチする準備をしている。パイプライン１４が命令をフェッチする準備をしているとき、通常は命令メモリ１６の準備ができておらず、そして、命令がメモリ２０からロードされるまで準備が整わない。命令メモリ１６がＳＲＡＭを含む場合、例えば、命令が命令メモリ１６にロードされるまで、パイプライン１４は通常は命令をフェッチすることができない。拡張されたリセット信号Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４で命令メモリ１６へのフェッチ要求を制御することによって、プロセッサ１０がリセットしている間、ならびに命令メモリ１６がロードされている間はフェッチ要求が保留される。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がセットされるときに、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がセットされ（５２）、また、ＩＭ＿Ｉｎｉｔ３０がクリアされるときに、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がクリアされる（５６）。Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がクリアされるときに（５６）、命令メモリ１６へのフェッチ要求が始まる。
【０００９】
図３は、リセット・ロジック１８の一実施例を図示する。図３で示されるロジックは典型例であり、本発明の範囲を制限することを意図するものではない。リセット・ロジック１８の出力、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４は、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４が表明される限りフェッチ要求を保留することにより、パイプライン１４のフェッチ要求を制御する。リセット・ロジック１８への入力は、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０およびＩＭ＿Ｉｎｉｔ３０である。
【００１０】
プロセッサ１０がリセット動作を開始するとき、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０が表明される。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０は、レジスタ６０のようなメモリ要素に格納される。プロセッサ１０が通常のリセット・モードにある限り、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０が表明される。プロセッサ１０がリセット動作を終了し、通常のリセット・モードが終了するとき、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされる。ＯＲゲート６２は、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４が表明されるであろうこと、および、少なくともＲｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアするまで、パイプライン１４が命令をフェッチしないであろうことを保証する。
【００１１】
ＯＲゲート６２は、通常のリセットに続いて命令メモリ１６のロードが生じるときに、ロードが終了するまでＥｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４が表明され続けるであろうことをさらに保証する。命令メモリ１６のロードが望まれないとき、すなわち、ＩＭ＿Ｉｎｉｔ３０が表明されないときは、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がＲｅｓｅｔ＿Ｓｉｇｎａｌ５０に続き、従って、パイプライン１４は拡張リセット状態に入らない。しかしながら、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０が表明されている間であって、かつＲｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアする前に、ＩＭ＿Ｉｎｉｔ３０が表明されるときは、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４はＲｅｓｅｔ＿Ｓｉｇｎａｌ５０に続かず、そしてＩＭ＿Ｉｎｉｔ３０がクリアするまでクリアしないであろう。
【００１２】
Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０が表明されている間にＩＭ＿Ｉｎｉｔ３０が表明されるとき、ＩＭ＿Ｉｎｉｔ３０はＥｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４に対して即時的な効果を有しない。立下がり端検出器６４は、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０を感知して、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされるまで、電圧低出力７４を生成する。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされるとき、立下がり端検出器６４は、１クロック・サイクルの間、電圧高信号７４を生成する。電圧高信号７４および表明されたＩＭ＿Ｉｎｉｔ信号３０は、ＡＮＤゲート７６からの電圧高信号７０になり、次に、ＯＲゲート８０の出力８２を上昇させる結果となる。ＯＲゲート８０の電圧高出力８２はＯＲゲート６２に適用され、たとえＲｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされたとしてもＥｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４を高く保つ。さらに、ＯＲゲート８０の電圧高出力８２はレジスタ８４によって捕らえられ、レジスタ８４によって１クロック・サイクル遅らされ、ＡＮＤゲート７８へフィード・バックされる。ＩＭ＿Ｉｎｉｔ３０が表明される限り、ＡＮＤゲート７８の出力７２は高いままである。ＩＭ＿Ｉｎｉｔ３０がクリアされるとき、ＡＮＤゲート７８の出力７２、およびＯＲゲート８０の出力８２は低くなる。従って、ＯＲゲート６２への両者の入力は低く、その結果Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４がクリアされる。
【００１３】
図４は典型的なパイプライン１４を示す。パイプライン１４は、５つのステージ：命令フェッチ（ＩＦ）、命令デコード（ＤＥＣ）、アドレス計算（ＡＣ）、実行（ＥＸ）およびライト・バック（ＷＢ）を有する。命令はフェッチ・ユニット９０によって第１ステージ（ＩＦ）中に命令メモリ１６からフェッチされ、第２ステージ（ＤＥＣ）中にデコードされる（９２）。次のクロック・サイクルで、その結果が第３ステージ（ＡＣ）に渡され、そこで、データ・アドレス生成器９６が、動作を実行するための任意のメモリ・アドレスを計算する。実行ステージ（ＥＸ）中に、実行ユニット９８は、例えば２つの数を加算または乗算するような所定の動作を実行する。最終段階（ＷＢ）中に、その結果が、メモリ２０またはデータ・レジスタ１００へライト・バックされる。
【００１４】
リセット・ロジック１８は、ユニット９０をフェッチするためにＥｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４を供給する。Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４は、命令メモリ１６から命令をフェッチすることを規制する。典型的なフェッチ・ユニットは、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４によって規制される１つ以上の要素を含む。Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４は、例えば、命令に命令メモリ１６からフェッチすることを許可する要求ロジックを可能または不能にし、あるいは命令レジスタを可能または不能にすることができる。
【００１５】
図５は上述された技術の一実施例を図示するフローチャートである。プロセッサ１０がリセット・モードに設定されるとき（９０）、プロセッサ１０がＲｅｓｅｔ＿Ｓｉｇｎａｌ５０を表明する（９２）。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０の表明によって、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ２４も同様に表明される（９２）。リセット動作が終了するとすぐに、Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされる（９４）。Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０がクリアされたときは、リセット・ロジック１８が、ＩＭ＿Ｉｎｉｔ３０が表明されたかどうかを感知する（９６）。ＩＭ＿Ｉｎｉｔ３０が表明されないときは、Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０はクリアされ（１０８）、命令のフェッチが始まる（１１０）。しかしながら、ＩＭ＿Ｉｎｉｔ３０が表明されたときは、命令のフェッチが不能になる（９８）。プロセッサ１０は、割込みハンドラが命令メモリ１６（１０２）のロードが終了する前にフェッチを開始することを防止するために、随意に割込み（１００）を不能にすることができる。命令メモリ１６（１０２）のロードが終了したとき、ＩＭ＿Ｉｎｉｔ３０がクリアされる（１０４）。割込みは、不能になった場合には（１００）、再度可能になる（１０６）。Ｅｘｔ＿Ｒｅｓｅｔ＿Ｓｉｇｎａｌ５０はクリアされ（１０８）、命令フェッチ要求が可能となり、命令のフェッチが開始される（１１０）。第１のフェッチ命令は、例えば、リセット・サービス・ルーチンの最初の命令である。
【００１６】
本発明の多くの実施例が記述された。例えば、プロセッサをリセットする方法が記述され、そこでは、プロセッサがリセットされるとき、フェッチ要求が不能になり、命令メモリがロードされているときには不能のままであることが述べられた。プロセッサは、汎用計算機システム、デジタル処理システム、ラップトップ・コンピューター、パーソナル・デジタル情報処理端末（ＰＤＡ）および携帯電話を含む多種多様のシステムで実行することができる。これに関連して、上述されたリセット技術は、プロセッサの性能を改善するために容易に使用することができる。そのようなシステムでは、プロセッサは、オペレーティング・システムおよび他のソフトウェア・アプリケーションを格納することができる、フラッシュ・メモリ・デバイスまたはＳＲＡＭデバイスのようなメモリ・デバイスに結合される。これらおよび他の実施例は、添付の請求項の範囲内である。
【図面の簡単な説明】
【図１】パイプライン方式のプログラム可能なプロセッサの一例を図示するブロック図である。
【図２】信号のタイミング図である。
【図３】リセット・ロジックの図である。
【図４】実行パイプラインの一例を図示する概略図である。
【図５】リセットを拡張するためのプロセスを図示するフローチャートである。
【図１】
2004516545.tif 000003
【図２】
2004516545.tif 000004
【図３】
2004516545.tif 000005
【図４】
2004516545.tif 000006
【図５】
2004516545.tif 000007
【国際公開パンフレット】
2004516545.tif 000008
2004516545.tif 000009
2004516545.tif 000010
2004516545.tif 000011
2004516545.tif 000012
2004516545.tif 000013
2004516545.tif 000014
2004516545.tif 000015
2004516545.tif 000016
2004516545.tif 000017
2004516545.tif 000018
2004516545.tif 000019
2004516545.tif 000020
2004516545.tif 000021
2004516545.tif 000022
2004516545.tif 000023
2004516545.tif 000024
2004516545.tif 000025
2004516545.tif 000026
2004516545.tif 000027
2004516545.tif 000028
2004516545.tif 000029
2004516545.tif 000030
【国際公開パンフレット（コレクトバージョン）】
2004516545.tif 000031
【国際調査報告】
2004516545.tif 000032
2004516545.tif 000033