(57)【要約】　　　（修正有）【課題】マイクロプロセッサの信号処理効率を向上するように、命令ループの実行、回路、システム、及び実行方法を改善する。【解決手段】ブロック繰返し命令が実行を開始すると、現在状態がスタックへ保存され、スタックポインタはこのスタックを維持する。ブロック繰返し命令の完了の際、保存していた状態をスタックから復元する。自動的に保存されかつ復元される状態は、ブロックスタートアドレス、ブロックエンドアドレス、現在繰返しカウンタ、他のブロック繰返し命令が入力されているかどうかを表示する状況情報である。【選択図】　　　図６
2004005603.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを有するディジタル・システム内で命令を実行する方法において、
第１型式の第１命令を取り出しかつデコードし、第１型式の命令は前記プロセッサの少なくとも第１レジスタの使用を必要とし、
前記第１命令をデコードするステップに応じて前記第１レジスタに記憶された第１データを自動的に保存し、
前記第１レジスタを使用するという仕方で前記第１命令を実行し、
前記実行するステップの後に前記保存した第１データと一緒に前記第１レジスタを自動的に復元する、ステップを備えた方法。
【請求項２】
命令メモリから取り出された命令を実行するプロセッサと、
各命令をデコードする手段と、
各命令を実行する手段と、
命令の第１型式に関係する状態データを保持する少なくとも１つの第１レジスタと、
前記第１型式の命令のデコードに応じて前記状態データを自動的に保存する手段と、
前記第１型式の前記命令の実行の後に前記状態データを復元する手段と、
を備えたディジタル・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にマイクロプロセッサ、特に命令ループの実行、回路、システム、及びその実行する方法を改善することに関する。
【０００２】
マイクロプロセッサは、汎用プロセッサであって、そこでソフトウェアを実行するために高い命令スループットを備え、かつ係わる特定ソフトウェア応用に依存して広範囲の処理要件を持つことができる。多くの様々な型式のプロセッサが知られており、ここでのマイクロプロセッサは１例に過ぎない。例えば、ディジタル信号プロセッサ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ：ＤＰＳ）は、移動体処理応用のような特定応用に特に広く使用される。ＤＰＳは、典型的に、関連した応用の性能を最適化するように構成され、かつこれを達成するためにＤＰＳはいっそう専門化した実行ユニット及びいっそう専門化した命令集合を採用する。特に、移動体電気通信のような応用では、これに限らず、ますます高まるＤＳＰ性能を用意する一方、電力消費を可能な限り低く維持することが望まれる。
【０００３】
時間限界的高計算タスクをプログラムするとき、同じ動作を多数回繰り返すことがしばしば必要である。例えば、米国特許第４，７１３，７４９号に説明されたＤＳＰでは、繰り返し（ｒｅｐｅａｔ；　ＲＰＴ）命令は、分岐オーバヘッドをコンパクト化しかつ減少するコードにする。その繰り返し特徴は、単一命令をＮ＋１回まで遂行することを許す。この実施の形態では、Ｎは、８ビット繰返しカウンタ（ｒｅｐｅａｔ　ｃｏｕｎｔｅｒ：　ＲＰＴＣ）によって定められ、このカウンタはＲＰＴ命令又はＲＰＴＫ命令によってデータ・バスを経由してデータ・メモリ値（ＲＰＴ命令によって）又は即値（ＲＰＴＫ命令によって）のどちかをロードされる。このオペランドの値は、次の命令を実行する回数よりも１つ少ない。次いで、直ぐ次に続く命令が実行され、かつＲＰＴＣレジスタは、それがゼロに達するまで、減分される。この繰返し特徴を使用するとき、繰り返される命令は１回だけ取り出される。結果として、多くのマルチサイクル命令は、それらが繰り返されるとき、１又は２サイクルになる。繰返し特徴は、乗算／累算（ＭＡＣＤ）、ブロック移動、Ｉ／Ｏ転送、及びテーブル読出し／書込みのような命令と共に使用することができる。正規にはマルチサイクルであるそれらの命令は、繰返し特徴を使用するときパイプライン化され、かつ実効的に単一サイクル命令になる。フィルタ実行のようなプログラムは、可能な限り少量の時間内に制御することができるループを必要とする。例えば、５０タップ・トランスバーサル・フィルタ・コードは、２つの命令、すなわち、ＲＰＴＫ４９とＭＡＣＤによって定めることができる。
【０００４】
【発明が解決しようとする課題】
或る種のＤＳＰでは、コードのブロックを特定回数繰り返すと共に、コードのブロックを通しての最初の反復の後、ゼロ・サイクル・オーバヘッドである、ハードウェアを具備する。現在までのあらゆる場合に、このハードウェアは一度に１ブロックについて働くことができるに過ぎず、かつ入れ子はレジスタを手動で保存する場合に限り維持され、これは複数サイクルを通して非効率である。
【０００５】
【課題を解決するための手段】
本発明の特定態様及び好適態様は、付随する特許請求の範囲の独立項及び従属項に記載されている。一般に、かつ本発明の形では、ディジタル・システムは命令型式を実行する手段と方法を具備し、そこではその型式の命令に関係する文脈情報がその型式の命令の実行の間中に自動的に保存されかつ復元される。
【０００６】
本発明に従う特定実施の形態を、例としてのみ、かつ添付図面を参照して説明する。これらの図面では同じ参照符号が同じ部品を表示するのに使用され、かつこれらの図は、別にことわりがなければ、図１のディジタル・システムに関する。異なった図中及び表中の異なった数字及び符号は、別に表示がなければ、相当する部品を指す。
【０００７】
【発明の実施の形態】
本発明はディジタル信号プロセッサ（ＤＳＰ）に特に応用され、例えば、特定応用向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ　Ｓｐｅｃｉｆｉｃ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ：　ＡＳＩＣ）内に実施されるが、本発明はまた他の形のプロセッサにもまた応用される。ＡＳＩＣは１つ以上のメガセルを含むことがあり、メガセルの各々は特注設計機能回路を設計ライブラリによって支給された設計前（ｐｒｅ−ｄｅｓｉｇｎｅｄ）機能回路と組み合わせて含む。
【０００８】
図１はメガセル１００内に本発明の実施の形態を含むディジタル・システムのブロック図であり、メガセルはプロセッサ・コア１１０といくつかの周辺装置を有する。図１は、本発明の実施例の理解に関係しているメガセル１００の部分を示すに過ぎない。ＤＳＰについての全体構造の詳細は、周知であり、かつ何処かで容易に見付けることができる。例えば、繰返し命令を用いるマイクロプロセッサ（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ　ｗｉｔｈ　Ｒｅｐｅａｔ　Ｉｎｓｒｕｃｔｉｏｎ）と題するメーガー・シュレンダー（Ｍａｇａｒ　Ｓｕｒｅｎｄｅｒ）他が発行した米国特許第４，７１３，７４９号は、ＤＳＰを詳細に説明する。ゲーリー・スウォボダ（Ｇａｒｙ　Ｓｗｏｂｏｄａ）他が発行した米国特許第５，３２９，４７１号は、いかにＤＳＰを試験しかつエミュレートするか詳細に説明する。本発明の実施例に関係するメガセル１００の部分の詳細は、マイクロプロセッサ技術の当業者が本発明を実施しかつ使用することを可能にするように、本明細書で下に充分詳細に説明される。
【０００９】
図１を引き続き参照すると、プロセッサ・コア１１０は、ＤＳＰであり、かつ後に更に詳細に説明する。メモリのいくつかのブロックは、プロセッサ・コア１１０に接続され、次を含む。すなわち、埋込みフラッシュ・メモリ（ＦＬＡＳＨ）の１２８Ｋ×１６及び１回プログラム可能メモリ（ｏｎｅ　ｔｉｍｅ　ｐｒｏｇｒａｍｍａｂｌｅ　ｍｅｍｏｒｙ：　ＯＰＴ）の２Ｋ×１６、各々が寸法１Ｋ×１６の単一アクセス・メモリの２ブロック（Ｍ０，Ｍ１　ＳＡＲＡＭ）、及び３ブロックＬ０、Ｌ１、Ｈ０に分割された単一アクセスＲＡＭの追加１６Ｋ×１６（４Ｋ＋４Ｋ＋８Ｋ）。プロセッサ・コア１１０に接続されたメモリ・ブロックは、プログラム及びデータ・スぺースの両方にマップされる。それゆえ、ユーザは、メモリ・ブロックのコードを実行するために又はデータ変数に使用すことができる。区分けがプログラム・リンカ（ｐｒｏｇｒａｍ　ｌｉｎｋｅｒ）内で遂行される。プロセッサ・コア１１０は、プログラマに統一メモリ・マップを提示する。これは、高レベル言語でプログラムすることをいっそう容易にする。ブート（Ｂｏｏｔ）ＲＯＭは、ブート・ローディグ・ソフトウェアを用いて工場プログラムされる。
【００１０】
周辺割込み拡張（ｐｅｒｉｐｈｅｒａｌ　ｉｎｔｅｒｒｕｐｔ　ｅｘｐａｎｓｉｏｎ：　ＰＩＥ）ブロックは、多数の割込み源を割込み入力のかなり小さい１つの集合に多重化するようにサービスする。ＰＩＥブロックは、９６までの周辺割込みをサポートすることができる。９６の割込みの各々は、ユーザが重ね書きすることができる専用ＲＡＭブロックに記憶されたそれ自体のベクトルによってサポートされる。ベクトルは、割込みをサービスする際プロセッサ・コア、すなわち、ＣＰＵ１１によって自動的に取り出される。この実施例では、ベクトルを取り出すのに９のＣＰＵクロック・サイクルを要し、限界ＣＰＵ１１０レジスタを保存する。それゆえ、ＣＰＵは、割込み事象に敏速に応答することができる。割込みの優先順位付けは、ハードウェア及びソフトウェアで制御される。各個々の割込みは、ＰＩＥブロック内で動作可能／動作禁止することができる。
【００１１】
外部インタフェース（ｅｘｔｅｒｎａｌ　ｉｎｔｅｒｆａｃｅ：　ＸＩＮＴＦ）は、プログラム可能待機状態、チップ選択、及びプログラム可能ストローブ・タイミングと共に、外部メモリ及び周辺装置へのグルーレス（ｇｌｕｅ−ｌｅｓｓ）インタフェースを可能にする。周辺信号のほとんどは、汎用Ｉ／Ｏ（ｇｅｎｅｒａｌ　ｐｕｒｐｏｓｅ　Ｉ／Ｏ：　ＧＰＩＯ）信号と多重化される。これは、周辺信号又は周辺機能が使用されないならば、ユーザにＧＰＩＯとして１つのピンを使用することを可能にする。
【００１２】
図２は、図１のシステム内のプロセッサ・コア１１０のブロック図である。プロセッサ・コア１１０は、低コスト３２ビット固定小数点ディジタル信号プロセッサ（ＤＳＰ）である。プロセッサ・コア１１０は、単一サイクル命令実行、レジスタ・対・レジスタ（ｒｅｇｉｓｅｒ−ｔｏ−ｒｅｇｉｓｔｅｒ）動作、及び修正ハーバード（ｍｏｄｉｆｉｅｄ　Ｈａｖａｒｄ）アーキテクチャ（フォン・ノイマン（Ｖｏｎ　Ｎｅｕｍａｎｎ）モードで使用可能）を行う。他の特徴は、循環アドレス能力、バイト・パッキングとアンパッキング命令、及びビット操作命令を含む。ＣＰＵの修正ハーバード・アーキテクチャは、命令取出しとデータ取出しを並列に遂行することを可能にする。ＣＰＵは、パイプラインを横断して単一サイクル命令動作をサポートするために、命令とデータを読み出す一方、同時にデータを書き込むことができる。ＣＰＵは、これを個別の６つの個別アドレス／データ・バス２００、２０２、２０４を通じて行う。オペランド・バスは、乗算器、シフタ、ＡＬＵの動作用値を供給し、及びレジスタ・バス２０６はそれらの結果をレジスタ及びメモリへ運ぶ。プログラム及びデータ制御論理は、プログラム・メモリから取り出された命令の待ち行列を記憶する。実時間エミュレーション及び可視性回路ブロック２１０は、プログラム開発ツール用制御及びインタフェースを用意する。アドレス・レジスタ算術ユニット（ａｄｄｒｅｓｓｒｅｇｉｓｔｅｒ　ａｒｉｔｈｍｅｔｒｉｃ　ｕｎｉｔ：　ＡＲＡＵ）２２０は、データ・メモリから取り出さなければならない値に対するアドレスを発生する。データ読出しに対しては、ＡＲＡＵ２２０は、そのアドレスをデータ読出しアドレス・バス２０２上に置き、データ書込みに対しては、ＡＲＡＵ２０２はデータ書込みアドレス・バス２０４をロードする。ＡＲＡＵ２２０はまた、スタック・ポインタ（ｓｔａｃｋ　ｐｏｉｎｔｅｒ：　ＳＰ）及び補助レジスタ（ａｕｘｉｌｉａｒｙ　ｒｅｇｉｓｔｅｒ：　ＸＡＲ０，ＸＡＲ１，ＸＡＲ２，ＸＡＲ３，ＸＡＲ４，ＸＡＲ５，ＸＡＲ６，ＸＡＲ７）を増分又は減分する。データ・ページ・ポインタ（ｄａｔａ　ｐａｇｅ　ｐｏｉｎｔｅｒ：　ＤＰ）レジスタは、データ・アドレスにいっそう高位のアドレス・ビットを付けることによって拡張アドレスへの到達をもたらす。
【００１３】
アトミック読出し−修正−書込み算術論理ユニット（ａｔｏｍｉｃ　ｒｅａｄ−ｍｏｄｉｆｙ−ｗｒｉｔｅ　ｌｏｇｉｃ　ｕｎｉｔ：　ＡＬＵ）２３０は３２ビットＡＬＵであって、２ｓ補数算術（２ｓ−ｃｏｍｐｌｅｍｅｎｔ　ａｒｔｈｍｅｔｒｉｃ）動作とブール（Ｂｏｏｌｅａｎ）論理動作を遂行する。その計算を行う前に、ＡＬＵは、レジスタから、またデータ・メモリから、又はプログラム制御論理からデータを受け取る。ＡＬＵは、結果をレジスタに又はデータ・メモリに保存する。固定小数点乗算器／ＡＬＵ（ｍｕｌｔｉｐｌｉｅｒ／ＡＬＵ：ＭＰＹ／ＡＬＵ）２４０は、３２ビット×３２ビットからなる２ｓ補数乗算を遂行して６４ビットの結果を生じる。この乗算器は、３２ビット被定数レジスタ（ＸＴ）、３２ビット積レジスタ（Ｐ）、及び３２ビット累算器（ａｃｃｕｍｕｌａｔｏｒ：　ＡＣＣ）に接続される。ＸＴレジスタは、乗算される値の１つを供給する。乗算の結果は、Ｐレジスタ又はＡＣＣに送ることができる。
【００１４】
スタック・ポインタ（ＳＰ）は、データ・メモリ内のソフトウェア・スタックの使用を可能にする。ＳＰは、１６ビットだけを有しかつデータ空間の低位６４Ｋをアドレス指定だけできる。ＳＰが使用されるとき、３２ビット・アドレスの高位６ビット・アドレスは強制的に０にされる。動作の間中、スタックは低メモから高メモリへと成長する。ＳＰは、スタック内の次の空き位置を常に指摘する。リセットで、ＳＰは初期化され、それであるからＳＰはアドレス００００　０４００１６を指摘する。３２ビット値がスタックへ保存されるとき、最下位１６ビットがまず保存され、かつ最上位１６ビットが次に高位アドレスへ保存される（ほとんどエンディアン（ｅｎｄｉａｎ）でないフォーマット）。３２ビット動作が３２ビット値を読み出す又は書き込むとき、ＣＰＵは、メモリ・ラッパ又は周辺−インタフェース論理がその読出し又は書込みを偶数アドレスに整列させることを期待する。例えば、ＳＰが奇数アドレス００００　００８３１６を含むならば、３２ビット読出し動作は、アドレス００００　００８２１６と００００　００８３１６から読み出す。
【００１５】
ＳＰの値がＦＦＦＦ１６を超えて増大する又は００００１６の下へ減少するならば、ＳＰはあふれる。ＳＰがＦＦＦＦを過ぎるとき、ＳＰは００００から順方向へカウントする。例えば、ＳＰ＝ＦＦＦＦかつ命令が３をＳＰに加算するならば、結果は０００１である。ＳＰが００００を過ぎて減少するとき、ＳＰはＦＦＦＦから逆方向にカウントする。例えば、ＳＰ＝０００２かつ命令が４をＳＰから減算するならば、結果はＦＦＦＦである。値がスタックへ保存中であるならば、ＳＰは、偶数アドレス又は奇数アドレスとの整列を強制されない。整列は、メモリ・ラッパ又は周辺−インタフェース論理によって強制される。
【００１６】
図３は、図２のプロセッサ・コア内の命令パイプラインの動作を例示するタイミング線図である。各命令は、命令パイプライン化を形成する８つの独立の段階を通過する。メモリからの読出しは２段階でパイプライン化されるように設計されており、これらの階段は各メモリ読出し動作に対してＣＰＵによって使用される２つのパイプライン段階に対応する。どの所与の時刻にも、各々が異なった完了の段階にある８つまでの命令が活性であり得る。必ずしも全ての読出し及び書込みが同じ段階で起こるのではなく、パイプライン保護機構は同じ場所への読出し及び書込みがこれらがプログラムされる順序で起こることを保証するために必要に応じて命令を機能停止させる。表１は、この実施例の命令パイプライン段階に関して情報を更に提供する。いうまでもなく、種々の段階の数と動作は、本発明の他の実施例では異なることがある。
【００１７】
【表１】
2004005603.tif 000003
【００１８】
パイプライン効率を最大限にするために、命令取出し機構は、パイプラインを満杯に維持するように企図する。その役割は命令取出し待ち行列を満たすことであって、この待ち行列はデコーディングと実行に命令を用意して保持する。命令取出し機構はプログラム・メモリから一度に３２ビットを取り出すが、それは１つの３２ビット命令を又は２つの１６ビット命令を取り出す。命令取出し機構は、３つのプログラム・アドレス・カウンタ、すなわち、プログラム・カウンタ（ｐｒｏｇｒａｍ　ｃｏｕｎｔｅｒ：　ＰＣ）、命令カウンタ（ｉｎｓｔｒｕｃｔｉｏｎ　ｃｏｕｎｔｅｒ：　ＩＣ）、及び取出しカウンタ（ｆｅｔｃｈ　ｃｏｕｎｔｅｒ：　ＦＣ）を使用する。パイプラインが満たされているとき、ＰＣはそのデコード２パイプライン段階にある命令を常に指摘する。ＩＣは処理される次の命令を指摘する。
【００１９】
どの命令も８段階を通過するが、どの段階も所与の命令に対して活性であるとは限らない。或るいくつかの命令はデコード２段階でそれらの動作を完了し、他のいくつかの命令は実行段階にあり、かつ更に他のいくつかは書込み段階にある。例えば、メモリから読み出さない命令は読出し段階で動作を遂行せず、またメモリに書き込まない命令は書込み段階で動作を遂行しない。
【００２０】
異なった命令がそれらの完了の異なった段階の間中にメモリ及びレジスタに修正を遂行するという理由で、無保護パイプラインは同じ位置で読出しと書込みをするに至ることもあり、意図した順序から逸脱する。ＣＰＵは、これらの読出し及び書込みが意図したように起こることを保証をするために不活性サイクルを自動的に追加する。
【００２１】
図３をなおも参照すると、この型式の線図は、特定パイプライン事象にではなくむしろ各命令の経路に焦点を当てるために有効である。サイクル８で、パイプラインは満杯である。すなわち、どのパイプライン段階にも命令がある。また、これらの命令の各々に対する有効実行時間は、１サイクルである。或るいくつかの命令はＤ２段階でそれらの活動を成し遂げ、或る命令はＥ段階にあり、また或るものはＷ段階にある。
【００２２】
図４は、本発明の特徴に従ってブロック繰返し命令を遂行する回路ブロックを例示するアドレス・ユニット２２０の部分のブロック図である。規定されたメモリ領域に記憶されたプログラムを規定された回数だけ繰り返し実行することが必要である場合がある。規定されたメモリ領域にアクセス（ブロック繰返しアクセス）を行うとき、いわゆるブロック繰返しアドレス指定方法がアドレス指定に適合している。アドレス発生回路２２０のこの部分は、プログラム・カウンタ（ＰＣ）４００、比較器４０２と４１６、エンド・レジスタ４０４、セレクタ４０６、スタート・レジスタ４０８、アップ・カウンタ４１０、ダウン・カウンタ４１２、及び繰返しブロック・カウンタ・レジスタ４１４を含む。
【００２３】
まず初めに、ブロック繰返し動作の実行の前に、ブロック繰返し（ｂｌｏｃｋｒｅｐｅａｔ：　ＲＰＴＢ）命令を取り出しかつデコードするとき、繰り返される実行に対するプログラム・ブロックのボトム・アドレス（エンド・アドレス）がレジスタ４０４内にセットされ、プログラムのトップ・アドレス（フロント・アドレス）がレジスタ４０８内にセットされ、及びサイクル繰り返し番号がレジスタ４１４内にセットされる。
【００２４】
ブロック繰返し動作の開始の後、アドレスが繰返しブロック内の各命令に対して順番にプログラム・カウンタ４００から発生される。このアドレスはプログラム・メモリ（図示してない）及びアップ・カウンタ４１０へ送られ、かつそのアドレスはまた比較器４０２へ出力される。アップ・カウンタ４１０内で１が入力されたアドレスに加算（増分され）、かつその結果がセレクタ４０６へ出力される。
【００２５】
比較器４０２では、プログラム・カウンタ４００から出力されたアドレスとレジスタ４０４に記憶されたボトム・アドレスとの間の比較が行われて、それらが互いに等しいかどうか判定する。比較器４０２がプログラム・カウンタ４００からのアドレスとボトム・アドレスとが互いに同等でないことを判定する間、ＰＣ＝ＥＮＤ信号は不活性状態に維持されかつセレクタ４０６は入力０側を選択し、かつ出力がプログラム・カウンタ４００へ与えられる。すなわち、動作のその期間中のアドレスがボトム・アドレスと等しくないとき、プログラム・カウンタ４００は増分されかつ結果がブロック動作の次の順番の命令のアドレスとしてプログラム・カウンタ４００から出力される。
【００２６】
プログラム・カウンタ４００からのアドレス出力がボトム・アドレスと等しいと比較器４０２が判定すると、ＰＣ＝ＥＮＤ信号が表明され、セレクタ４０６は入力１側を選択し、かつプログラム・カウンタ４００へ与えられた出力がスタート・レジスタ４０８から選択される。すなわち、そのアドレスがボトム・アドレスに達すると、トップ・アドレスがブロック動作の次の命令のアドレスとしてプロラム・カウンタ４００から再び出力されてＲＰＴＢ命令のオペランドによって指定された命令のブロックの次の反復を開始させる。
【００２７】
更に、ＰＣ＝ＥＮＤ信号が活性状態に入ると、ブロック・カウンタ・レジスタ４１４内のサイクル繰返し数がダウン・カウンタ４１２によって１だけ減算（減分）され、減分値がブロック・カウンタ・レジスタ４１４に記憶され、かつそれが比較器４１６へ出力される。すなわち、トップ・アドレスからボトム・アドレスへの方向にブロック繰返しプログラムの全領域を実行することによってブロック・アドレスの１反復が完了する都度、レジスタ４１４に記憶されたサイクル繰返し数が減分される。
【００２８】
前述の動作が規定されたサイクル数を繰り返された後、レジスタ４１４の値はゼロになる。比較器４１６は、レジスタ４１４に記憶されたサイクル繰返し数をゼロと比較する。それらが互いに等しいならば、完了信号ＲＰＴ＿ＤＯＮＥが表明される。完了信号が活性になるに連れて、アドレス発生回路２２０は、ブロック繰返しアクセス動作を完了する。
【００２９】
ＲＰＴＢ命令の動作は、制御回路ブロック４２０によって管理される。繰返しブロック機構が活性であるか否かを表示するために、更に、プロセッサ状態レジスタ又は個別専用レジスタ内の繰返しブロック状況フラグ４２２が必要とされる。命令デコーディング回路ブロック（図示してない）からのデコード信号ＲＰＴＢに応答して、繰返しブロック・ハードウェアが、上に論じたように、繰返しブロック命令の実行によって呼び出される。本発明の１特徴は、次のようである。すなわち、ＲＰＴＢＮ命令が実行を開始すると、繰返しブロック・ハードウェアの現在状態がメモリ４３０に置かれたスタック４３２へ保存され、このスタックは図１でプロセッサ・コア１１０に接続されたメモリ・ブロックの１つを表す。先に論じたように、スタック・ポインタ４４０は、このスタックを維持する。本発明の更に特徴は、すなわち、ＲＰＴＢ命令の完了の際、保存していた状態を完了信号ＲＰＴ＿ＤＯＮＥに応答してスタックから復元することである。自動的に保存されかつ復元される状態は、ブロック・スタート・アドレス４０８、ブロック・エンド・アドレス４０４、現在繰返しカウンタ４１４、及び他のブロック繰返し命令が入れ子に（ｎｅｓｔｅｄ）されているかどうか表示する状況情報４２２を含む。
【００３０】
図５は、入れ子（ｎｅｓｔｅｄ）ブロック繰返し命令の実行を例示する流れ図である。ここに表したコードの断片では、繰返しブロック命令５００が「ｏｕｔｅｒＬｏｏｐＥｎｄ」とラベルした命令５０６を通して命令の順番全体を含む命令の外側ブロックを開始する。命令５００は、命令５０６のアドレスを表すオペランド＃ＯｕｔｅｒＬｏｏｐＥｎｄと外側ループを横断するべき回数を定める第２オペランド＃ＯｕｔｅｒＬｏｏｐＣｏｕｎｔを含む。これら２つのオペランドは、即値データとして、繰返しブロック命令の第１形式に含まれる。もう１つの形式では、繰返しブロック命令が２つのソースオペランド・レジスタを指定し、これらのレジスタは関連エンド・アドレスとループ・カウント・データを含むことになる。他の実施例は、プロセッサの動作と一貫する種々の仕方でオペランドを提供することがある。上に説明したように、命令５００がデコードされるとき、ブロック繰返し状態情報がスタック４３２上へ自動的にプッシュされ、それで、状況ビット４２２がセットされてブロック繰返し命令５００が活性であることを表示する。直ぐ続く命令ＩｎｓｔｒＯ１のアドレスが次いでスタート・レジスタ４０８内へロードされ、オペランド＃ＯｕｔｅｒＬｏｏｐＥｎｄがエンド・レジスタ４０４内へロードされ、かつ第２オペランド＃ＯｕｔｅｒＬｏｏｐＣｏｕｎｔがカウント・レシス４１４内へロードされる。
【００３１】
内側ループは繰返しブロック命令５０２によって開始され、かつ命令５０４を通る命令の列を含む。命令５０２は命令５０４のアドレスを表すオペランド＃ＩｎｎｅｒＬｏｏｐＥｎｄ及び内側ループを横断するべき回数を定める第２オペランド＃ＩｎｎｅｒＬｏｏｐＣｏｕｎｔを含む。命令５０２がデコードされると、外側ループを定めるブロック繰返し状態情報がスタック４３２上へ自動的にプッシュされ、次いで、状況ビット４２２がセットされてブロック繰返し命令５０２が活性であることを表示する。直ぐ続く命令ＩｎｓｔｒＩ１が次いでスタート・レジスタ４０８内へロードされ、オペランド＃ＩｎｎｅｒＬｏｏｐＥｎｄがエンド・レジスタ４０４内へロードされ、及び第２オペランド＃ＩｎｎｅｒＬｏｏｐＣｏｕｎｔがカウント・レジスタ４１４内へロードされる。
【００３２】
この断片では、外側ループは、内側ループが５０２で開始されるまで、順番に実行される。次いで、内側ループ繰返しが充分に遂行され、かつ次いで実行が命令５０６まで順番に続く。外側ループ・カウントが尽きないならば、外側ループが命令ＩｎｓｔｒＯ１で開始して繰り返される。内側ループ繰返しが再び充分に遂行されかつ次いで実行が、外側ループ・カウントの尽きるまで、前のように命令５０６まで順番に続く。このようにして、内側ループは外側ループ内に入れ子されて、外側ループの各反復の間中充分に遂行される。
【００３３】
内側ループ繰返しの各完了の際、ブロック・カウント・レジスタ４０８のカウント値はゼロになりかつ信号ＲＰＴ＿ＤＯＮＥが表明される。ブロック繰返し命令５０２の実行は、保留ブロック繰返し命令５００の保存した状態をスタック４３２から自動的にポップさせかつこの情報をスタート・レジスタ４０８、エンド・レジスタ４０４、ループ・カウント・レジスタ４１４、及び状況ビット４２２に復元することによって、完了する。復元した状況ビット４２２は、それによって表明されて、繰返しブロック命令５００が保留中であったこと、かついまは活性であることを表示し、外側ループは正しく処理される。それゆえ、繰返しブロック命令５００と関連した外側ループは、繰返しブロック命令５０２と関連した入れ子内側ループから擾乱されることなく遂行される。
【００３４】
都合の良いことに、繰返しブロック命令についての状態情報は各繰返しブロック命令の実行の部分として自動的に保存されかつ復元されるから、入れ子ループの正しい動作を許すためにこの状態情報を保存しかつ復元するために命令オーバヘッドを要することはない。
【００３５】
このようにして、スタック寸法の程度まで、どんな数の繰返しブロック・ループも入れ子にすることができる。入れ子が行われている最中でない場合は、復元した状況は状況ビットを表明解除することになりかつ非入れ子繰返し命令の完了の後に更に繰返し処理が遂行されないことになる。繰返しブロック・レジスタの先行値及び状況フラグをスタック上に保存しかつ復元する手順は、多数の繰返しブロックの入れ子を可能にする手順である。
【００３６】
コードの繰返しブロックの寸法がレジスタの内容をスタックへ保存するか又はこれから復元に要するサイクル数以上ならば、レジスタの内容の保存及び復元をゼロ・サイクルで行うことができる。この条件を満たすために必要とされる命令の数は、プロセッサ・パイプラインに依存する。例えば、この実施例では、３つの状態レジスタ４０４、４０８、４１６の各々の内容は、それらが読出しバス２０２を経由してロードされている最中と同じサイクルで書込みバス２０４を経由してスタックに書き込むことができる。この実施例では、状況ビット４２２は、状態を３サイクルで保存することができるというように、ブロック・カウントに対して記憶された値の最上位ビットとして含まれる。したがって、繰り返したループ内に少なくとも３つの命令がある限り、ブロック繰返し状態情報を保存しかつ復元するオーバヘッドはゼロである。先に論じたように、命令パイプラインは、より短いループに適合するように機能停止することになる。
【００３７】
他の実施例では、状態を自動的に保存しかつ復元するために、他の手段が設けられる。例えば、レジスタ４０４、４０８、４１４の内容及び状況ビット４２２またはそのいずれかを一時的に保持する一方、状態を保存するためにシャドウ・レジスタが設けられ、そうであるからオペランドを相当する活性レジスタ内へロードすることができる。
【００３８】
図６は、本発明の特徴に従う自動文脈記憶（ａｕｔｏｍａｔｉｃ　ｃｏｎｔｅｘｔ　ｓｔｏｒａｇｅ）を用いる命令の実行を例示する流れ図である。ステップ６００で、図３を参照して説明したように、命令は、命令パイプライン内で取り出されかつデコードされる。
【００３９】
ステップ６０２〜６１０は命令の実行段階を表すが、しかし１対１対応においてではない。すなわち、これらのステップの全ては、命令の型式に依存して１サイクルに又は数サイクルに遂行されることがある。ステップ６０２の間中、状態を保存するべきかどうか判定する検査が行われる。この検査は、例えば、命令の型式、又は割込みサービス・ルーチンが遂行中であるどうかのような、種々のファクタに基づいて調整される。
【００４０】
この命令を実行するに先立ち、状態を保存するべきであるならば、ステップ６０４の間中それを保存する。保存する正確な状態は、命令の型式に依存して変動することがある。例えば、先に説明したブロック繰返し命令については、保存する状態は、スタート・アドレス、エンド・アドレス、反復カウント、及び保留ＲＰＴＢ命令を表示する状況ビットを含む。他の実施例では、繰返し単一（ＲＰＴ）命令のような命令の他の型式は、繰返しカウント値、及び、例えばＲＰＴ命令が保留中であることを表示するＲＰＴ保留状況ビットだけを保存する。
【００４１】
ＲＰＴ命令は単一命令を（Ｎ＋１）回実行することを許し、ここにＮはＲＰＴ命令のオペランドとして指定される。続く命令は、１回遂行され、次いでＮ回繰り返えされる。ＲＰＴが実行されるとき、繰返しカウンタ（ＲＰＴＣ）はＮをロードされる。次いで、ＲＰＴＣは、それが０に等しくなるまで、繰返し命令が実行される都度減分される。これは、ブロック繰返しカウンタと同じ又は異なるカウンタであってよい。
【００４２】
状態６０６の間中命令が実行される。繰返しブロック命令に対しては、このステップは、指定されたループ内の命令の全ての後続反復実行を含む。ＲＰＴ命令に対しては、このステップは、単一命令の反復実行を含む。状態を保存する命令型式に対しては、このステップは、この型式の命令が活性であることを表示するように状況ビットをセットすることを含む。
【００４３】
ステップ６０８で、この命令型式が状態を復元するべきかどうかを判定する検査が行われる。ステップ６０２の場合のように、この検査は、例えば、命令の型式、又は割込みサービス・ルーチンが遂行中であるかどうかのような、種々のファクタに基づいて調整される。例えば、ＲＰＴ命令は入れ子されないので、ＲＰＴ命令のこの例が割込みサービス・ルーチン内で実行中でないならば、状態を保存しかつ復元する必要はない。実行中であるならば、他のＲＰＴ命令が割り込まれた可能性があり、したがってＲＰＴ状態をＲＰＴ命令のこの例によって保存しかつ復元しなければならない。更に、ＲＰＴ命令が実際に割り込まれたときに限り保存ステップ及び復元ステップが遂行されるように、保存及び復元をＲＰＴ保留状況ビットによっていっそう修飾することができる。
【００４４】
ステップ６１０の間中、必要ならば、状態を復元する。
【００４５】
図７は、本発明の特徴に従う自動文脈記憶を用いる命令の入れ子実行を例示する流れ図である。この図で、ステップ７００〜７１０は、図６の相当するステップ６００〜６１０と同じである。
【００４６】
先に述べたように、ＲＰＴＢ命令の実行は、その命令のオペランドによって指定されたループ内の全命令のその後に続く反復実行を含む。ステップ７１２は、反復ループ内の各命令が実行されるに連れてそのループが図４に示したＲＰＴ＿ＤＯＮＥ信号を試験することによって完了されるかどうか判定する。
【００４７】
図５に例示したように、第２ＲＰＴＢ命令５０２は、入れ子内側ループを形成するために外側ループ内に含むことができる。この場合、ステップ７０２は、内側ループＲＰＴＢ命令５０２をデコードした後、外側ループＲＰＴＢ命令の文脈を保存する。次いで、ステップ７１２が命令５０４の実行の後、内側ループが完了していることを判定するとき、外側ループが適正反復実行を復元するように、ステップ７０８は外側ループＲＰＴＢ命令５００の状態を復元する。
【００４８】
類似の仕方で、ＲＰＴ命令がＲＰＴＢ命令と同じ繰返しカウンタを使用する実施例は、１つ以上のＲＰＴ命令をＲＰＴＢループ内に入れ子することができ、かつＲＰＴ命令がＲＰＴＢループ内で実行される都度ＲＰＴＢ文脈を自動的に保存しかつ復元することになる。
【００４９】
説明した状態保存機構では、先に論じたように、レジスタの保存と復元は、自動的にかつ一般にゼロ・サイクル・オーバヘッドで遂行することができる。先行方式におけるように手動でレジスタを保存させかつ復元することは、余剰コードと余剰サイクルを取り入れ、それゆえ、低効率である。繰返しブロック命令を呼出すとレジスタを自動的に保存することは、プログラマが繰返しブロック命令を使用する割込みサービス・ルーチンの初めと終に繰返しブロック・レジスタを保存することと状況フラグとを必要としないことを意味する。これは、さらなる性能の向上となる。
【００５０】
図８は、移動パーソナル・ディジタル・アシスタント（ＰＤＡ）１０のような、移動通信装置であるディジタル・システムの模範的実施を例示する。ＰＤＡは、ディスプレイ１４及びこれの周辺に置かれた集積入力センサ１２ａ、１２ｂを備える。図８に示したように、ＰＤＡ１０は、図１に従うメガセル１００を含み、このメガセルはアダプタ（図示してない）を経由して入力センサ１２ａ、１２ｂに接続される。情報を入力センサ１２ａ、１２ｂを経由してＰＤＡに入力させるために筆又は手指を使用することができる。ディスプレイ１４は、ローカル・フレーム・バッファを経由してメガセル１００に接続される。ディスプレイ１４は、例えば、ＭＰＥＧビデオ・ウィンドウ１４ａ、共用テキスト・ドキュメント・ウィンドウ１４ｂ、及び三次元ゲーム・ウィンドウ１４ｃのような、重なり合うウィンドウ内にグラヒック出力及びビデオ出力を与える。
【００５１】
無線周波数（ＲＦ）回路ブロック（図示してない）は、アンテナ１８に接続されかつＤＳＰ周辺装置としてのメガセル１００によって駆動され、かつ無線ネットワーク・リンクを提供する。接続器２０は、ケーブル・アダプタ−モデム（図示してない）に接続され、それからＤＳＰ周辺装置としてのメガセル１００に接続されて、例えば、オフィス環境内固定用途にある間中使用される配線ネットワークを与える。距離無線リンク２３は、受話具口２２にまた「接続」されかつＤＳＰ周辺装置としてのメガセル１００に接続された低電力送信機（図示してない）によって駆動される。マイクロホン２４は、両方向オーディオ情報をマイクロホン２４と無線受話口２２を使用して無線ネットワーク又は有線ネットワークを通じて他のユーザと交換することができるというように、メガセル１００に同様に接続される。
【００５２】
メガセル１００は、無線ネットワーク・リンク及び有線ネットワーク・リンクまたはそのいずれかを経由して送信及び受信されるオーディオ情報及びビデオ／グラフィク情報に対する全てのエンコーディングとデコーディングを行う。
【００５３】
通信システム、制御システム、及びコンピュータ・システムの多くの他の型式のもの、特に電池式のものが本発明から便益を受けることも、もとより、想定している。このような他のコンピュータ・システムの例には、ポータブル・コンピュータ、スマート・ホーン、ウェブ・ホーン、ゲーム、玩具等がある。低電力消費処理性能もまたデスクトップ・コンピュータ・システム応用及び線路電源式（ｌｉｎｅ　ｐｏｗｅｒｅｄ）コンピュータ・システム応用において、特に、信頼性の見地からまた関心事であるので、本発明がこのような線路電源式システムに便益を与えることも想定している。
【００５４】
メガセル１００の製作は、トランジスタ装置を形成するために、種々の量の不純物を半導体基板内へ打ち込みかつそれらの不純物を基板内の選択された深さに拡散させる多数のステップを含む。不純物の場所を制御するためにマスクが形成される。導体材料と絶縁材料の多数の層が堆積され、かつ種々の装置を相互接続するようにエッチングされる。これらのステップは、クリーン・ルーム環境内で遂行される。
【００５５】
データ処理装置の製造のコストのかなりの部分は、試験に係わる。ウェーハ形状である間に、個々の装置は、動作状態にバイアスされかつ基本的動作機能性をプローブ試験される。次いで、ウェーハは個々のチップに分離され、それらのチップは裸のチップ又は実装されて販売されることがある。実装の後、仕上がり部品は、動作状態にバイアスされかつ動作機能性を試験される。
【００５６】
メガセル１００は、高度デバッギング特徴用ハードウェア増設を含む。これらのハードウェア増設は、アプリケーション・システムの開発を援助する。これらの能力はＣＰＵ１１０自体のコアの部分であるから、それらの能力は拡張動作モード増設とのＪＴＡＧインタフェースのみを利用して有効である。それらは、在来のエミュレータ・システムによって要求された高価なケーブル布設及びプロセッサ・ピンへのアクセスを必要とすることなく又はシステム資源へ侵入することなく、複雑なデバッギングのためにコアへの簡単、安価かつ速度に無関係のアクセスを与えかつ経済的なシステム開発をもたらす。
【００５７】
それゆえ、ディジタル・システムは命令型式を実行する手段と方法を具備し、そこではその型式の命令に関係する文脈情報がその命令型式の実行の間中に自動的に保存されかつ復元される。
【００５８】
本明細書に使用されたように、用語「応用された（ａｐｐｌｉｅｄ）」、「接続された（ｃｏｎｎｅｃｔｅｄ）」及び「接続（ｃｏｎｎｅｃｔｉｏｎ）」は、電気接続されたことを意味し、追加素子が電気接続経路にあるかもしれない所を含む。「関連した（ａｓｓｏｃｉａｔｅｄ）」は、関連したポートによって制御されるメモリ資源のような、制御関係を意味する。用語、表明する（ａｓｓｅｒｔ）、表明（ａｓｓｅｒｔｉｏｎ）、表明解除する（ｄｅ−ａｓｅｒｔ）、表明解除（ｄｅ−ａｓｓｅｒｔｉｏｎ）、否定する（ｎｅｇａｔｅ）、及び否定（ｎｅｇａｔｉｏｎ）は、活性高信号と活性低信号の混合を扱うとき混乱を回避するために使用される。表明すると表明は、信号が活性にされているか又は論理的に真であることを表示するために使用される。表明解除する、表明解除、及び否定は、信号が不活性にされている又は論理的に偽であることを表示する。
【００５９】
本発明を例証実施例を参照して説明したが、この説明を限定的意味に解釈されることを意図していない。本発明の種々の他の実施例は、この説明を参照するならば当業者に明白である。例えば、繰返しループ命令アドレスを計算する他の手段を実施することができ、そこでは、「パイプライン化プロセッサ用ブロック繰返しアドレス指定のためのアドレス発生回路（Ａｄｄｒｅｓｓ　Ｇｅｎｅｒａｔｉｏｎ　Ｃｉｒｃｕｉｔ　Ｆｏｒ　Ｂｌｏｃｋ　Ｒｅｐｅａｔ　Ａｄｄｒｅｓｓｉｎｇ　Ｆｏｒ　Ａ　Ｐｉｐｅｌｉｎｅｄ　Ｐｒｏｃｅｓｓｏｒ）」と題する米国特許第６，０３８，６４９号に説明されたもののような、アドレス計算手段の状態を保存することによって入れ子動作が行われる。この米国特許は、ここに引用することによってその内容が本明細書に組み入れられている。
【００６０】
他の実施例では、命令パイプラインは、８より多い又は少ない段階を有することがある。パイプライン段階は、本明細書に説明したのと異なった仕方で構成されかつ動作することがある。他の実施例は、多数の相互接続実行ユニットを有することがある。
【００６１】
他の実施例では、状態をスタック内以外の何処かに記憶することができる。例えば、単一状態保存が行われることがあるか、又は限られた数の状態が限られた記憶領域に保存されることがある。スタック動作については、個別スタック及び関連スタック・ポインタが他のプロセッサ機能に使用された主スタックから与えられることがある。個々のスタック又は個々の記憶領域が状態保存動作／状態復元動作を遂行する命令の各型式に対して与えられることがある。例えば、３２ビット組織のような、１６ビット以外の他のメモリ構成が用意される。
【００６２】
ＲＰＴＢ又はＲＰＴ以外の他の実施例、命令が状態を保存しかつ復元することがある。例えば、性能及び応答上の理由から、多数実行サイクルを必要とする命令のどの型式も割り込みできることが有利である。それゆえ、明示状態保存が割込みルーチンの間中に遂行される必要がないように、割込み可能命令は自動状態保存動作から便益を受ける。このような命令は、浮動小数点計算、フィルタ動作、データ転送動作等のようなタスクを遂行するためのものであり得よう。
【００６３】
したがって、添付の特許請求の範囲は、本発明の真の範囲と精神に属するような実施の形態のいかなるこのような修正にも及ぶと考えられる。
【００６４】
以上の説明に関して更に以下の項を開示する。
【００６５】
（１）　プロセッサを有するディジタル・システム内で命令を実行する方法であって、
第１型式の第１命令を取り出しかつデコードするステップであって、第１型式の第１命令はプロセッサの少なくとも第１レジスタの使用を必要とするようになっている第１命令を取り出しかつデコードするステップと、
第１命令を取り出しかつデコードするステップに応答して第１レジスタに記憶された第１データを自動的に保存するステップと、
第１レジスタを使用するという仕方で第１命令を実行するステップと、
実行するステップの後に保存した第１データで以て第１レジスタを自動的に復元するステップと
を含む方法。
【００６６】
（２）　第１項記載の方法であって、
第１命令を実行するステップの間中に第１型式の第２命令をデコードするステップと、
第２命令を前記デコードするステップに応答して第１レジスタに記憶された第２データを自動的に保存するステップと、
第１命令を実行するステップを中断するステップと、
第１レジスタを使用するという仕方で第２命令を実行するステップと、
第２命令を実行するステップの後に保存した第２データで以て第１レジスタを自動的に復元するステップと、
第１命令を実行するステップを再開するステップと
を更に含む方法。
【００６７】
（３）　第２項記載の方法において、第１型式の命令はブロック繰返し命令であり、第１命令を前記実行するステップは第１命令によって指定された命令のブロックを実行することを含み、及び第２命令を実行するステップは第２命令によって指定された命令のブロックを実行することを含む方法。
【００６８】
（４）　第３項記載の方法において、第１データを保存するステップと第２データを保存するステップとはブロック・スタート・アドレスと、ブロック・エンド・アドレスと、繰返しカウントとを保存することと、他のブロック繰返し命令が保留中であるかどうか表示する状況情報を保存することとを含む方法。
【００６９】
（５）　第１項記載の方法において、保存するステップは第１データをスタック上へプッシュし及び復元するステップは第１データをスタックからポップする方法。
【００７０】
（６）　第１項記載の方法において、保存するステップは第１型式の命令が保留中であるかどうか表示する状況情報を保存することを含む方法。
【００７１】
（７）　第１項記載の方法であって、
いつプロセッサが割込みサービス・ルーチンを遂行中であるか表示するモード・ビットをセットするステップと、
割込みサービス・ルーチンを遂行中であることをモード・ビットが表示するときに限り保存するステップと復元するステップとが遂行されるというように保存するステップと復元するステップとを調整するステップとを更に含む方法。
【００７２】
（８）　プロセッサを有するディジタル・システム内で命令を実行する方法であって、
第１型式の第１命令を取り出しかつデコードするステップと、
第１命令をデコードするステップに応答して第１状態データを自動的に保存するステップと、
第１状態データを変化させるという仕方で第１命令を実行するステップと、
第１命令を実行するステップの後に保存した第１状態データを自動的に復元するステップと
を含む方法。
【００７３】
（９）　第８項記載の方法であって、
第１命令を実行するステップの間中に第１型式の第２命令をデコードするステップと、
第２命令をデコードするステップに応答して第２状態データを自動的に保存するステップと、
第１命令を実行するステップを中断するステップと、
第２状態データを変化させるという仕方で第２命令を実行するステップと、
第２命令を実行するステップの後に保存した第２状態データを自動的に復元するステップと、
第１命令を実行するステップを再開するステップと
を更に含む方法。
【００７４】
（１０）　命令メモリから取り出された命令を実行するプロセッサと、
各命令をデコードする手段と、
各命令を実行する手段と、
命令の第１型式に関係する状態データを保持する少なくとも第１レジスタと、第１型式の命令をデコードすることに応答して状態データを自動的に保存する手段と、
第１型式の命令の実行の後に状態データを復元する手段と
を含むディジタル・システム。
【００７５】
（１１）　第１０項記載のディジタル・システムであって、いつプロセッサが第１型式の命令をデコードしたか表示する状況ビットを更に含み、
状況ビット内のデータは自動的に保存した状態データと共に含まれるディジタル・システム。
【００７６】
（１２）　第１１項記載のディジタル・システムはパーソナル・ディジタル・アシスタント「（Ｒ）」であって、
ディスプレイ・アダプタを経由してプロセッサに接続されたディスプレイと、
プロセッサに接続された無線周波数（ＲＦ）回路ブロックと、
無線周波数回路ブロックに接続されたアンテナと
を含むディジタル・システム。
【００７７】
（１３）　ディジタル・システムは命令型式を実行する（６００）手段と方法を具備し、手段と方法では型式の命令に関係する文脈情報が命令型式の実行の間中に自動的に保存され（６０２，６０３）かつ復元される（６０８，６１０）。
【図面の簡単な説明】
【図１】本発明の実施例を含むディジタル・システムのブロック図である。
【図２】図１のシステム内のプロセッサ・コアのブロック図である。
【図３】図２のプロセッサ・コア内の命令パイプラインの動作を例示するタイミング線図である。
【図４】本発明の特徴に従うブロック繰返し命令を遂行する回路ブロックを例示する図２のプロセッサ・コアのアドレス・ユニットの部分のブロック図である。
【図５】図２のプロセッサ・コア内の入れ子ブロック繰返し命令の実行を例示する流れ図である。
【図６】図２のプロセッサ・コア内の自動文脈記憶を用いる命令の実行を例示する流れ図である。
【図７】図２のプロセッサ・コア内の自動文脈記憶を用いる命令の入れ子実行を例示するより詳細な流れ図である。
【図８】移動電話のような、移動通信装置内のディジタル・システムの模範的実施を例示する斜視図である。
【符号の説明】
１０　移動パーソナル・ディジタル・アシスタント（ＰＤＡ）
１２ａ，１２ｂ　入力センサ
１４　ディスプレイ
１８　アンテナ
１００　メガセル
１１０　プロセッサ・コア、ＣＰＵ
２００　アドレス／データ・バス
２０２　アドレス／データ・バス
２０４　アドレス／データ・バス
２０４　レジスタ・バス
２１０　実時間エミュレーション及び可視性回路ブロック
２２０　アドレス・レジスタ算術ユニット（ＡＲＡＵ）
２３０　アトミック読出し−修正−書込み算術論理ユニット
２４０　固定小数点乗算器／ＡＬＵ
４００　プログラム・カウンタ（ＰＣ）
４０２　比較器
４０４　エンド・レジスタ
４０６　セレクタ
４０８　スタート・レジスタ
４１０　アップ・カウンタ
４１２　ダウン・カウンタ
４１４　ブロック・カウンタ・レジスタ
４１６　比較器
４２０　制御回路ブロック
４２２　ブロック状況フラグ、状況ビット、状況情報
４３０　メモリ
４３２　スタック
４４０　スタック・ポインタ
５００　繰返しブロック（ＲＰＴＢ）命令
５０２　繰返しブロック（ＲＰＴＢ）命令
【図１】
2004005603.tif 000004
【図２】
2004005603.tif 000005
【図３】
2004005603.tif 000006
【図４】
2004005603.tif 000007
【図５】
2004005603.tif 000008
【図６】
2004005603.tif 000009
【図７】
2004005603.tif 000010
【図８】
2004005603.tif 000011