(57)【特許請求の範囲】
【請求項１】
命令パイプラインを有する中央処理装置を動作させる方法であって、前記命令パイプラインは所定遅延スロット数のパイプライン・フェーズにおいて目標アドレスを有する分岐命令を処理するように動作可能であり、前記方法は、
複数の命令フェッチ・パケットをフェッチするステップと、前記命令フェッチ・パケットの各々は１つの実行パケットとしてどの命令が並列に実行されるべきかの表示を含む、
第１の目標アドレスを有する１つの第１の分岐命令を含む第１の実行パケットを実行するステップと、
複数の第２の実行パケットを実行するステップと、前記第２の実行パケットの各々は前記第１の目標アドレスを有する１つの第２の分岐命令を有し、前記複数の第２の実行パケットの数は前記所定遅延スロット数より少ないか又は等しい、
を備え、それにより、前記第１の目標アドレスで開始する命令フェッチ・パケットに記憶された目標命令は前記第１の分岐命令に対して１回、前記第２の分岐命令の各々に対して１回実行される前記方法。
【請求項２】
請求項１に記載の方法において、さらに、
少なくとも１つの第２の分岐命令の実行を対応所定条件に基づく条件付きとするステップを備え、それにより、もし前記対応所定条件が第１のディジタル状態を有するならば前記第２の条件付き分岐命令は前記第１の目標アドレスへの分岐を実行し、もし前記対応所定条件が前記第１のディジタル状態と反対の第２のディジタル状態を有するならば前記第２の条件付き分岐命令は実行されない、
それにより、前記目標命令は前記第１の分岐命令に対して１回、第２の無条件分岐命令の各々に対して１回、前記対応所定条件が前記第１のディジタル状態を有する第２の条件付き分岐命令の各々に対して１回実行される前記方法。
【請求項３】
請求項１に記載の方法において、さらに、
前記目標命令を前記第１の目標アドレスを有する目標分岐命令とするステップを備え、それにより、前記目標命令が無期限に反復される前記方法。
【請求項４】
請求項３に記載の方法において、さらに、
前記目標分岐命令の実行を対応所定条件に基づく条件付きとするステップを備え、それにより、もし前記対応所定条件が第１のディジタル状態を有するならば前記目標分岐命令は前記第１の目標アドレスへの分岐を実行し、もし前記対応所定条件が前記第１のディジタル状態と反対の第２のディジタル状態を有するならば前記目標分岐命令は実行されない、
それにより、前記対応所定条件が前記第２のディジタル状態になるまで前記目標分岐命令が反復して実行される前記方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法に関し、特に命令実行パイプラインを有するデータ処理装置、及びこのようなデータ処理装置に備えられたマイクロプロセッサを動作させる方法に関する。
【０００２】
【従来の技術】
マイクロプロセッサの設計者は、クロック速度を増加させ、かつ並行性を付加することによって種々のマイクロプロセッサにおけるパフォーマンスを改善するようにますます努めるようになった。複雑なデータ操作は多数の命令を実行する必要があり、これらの命令は種々の形式のデータ操作のためにいくつかの反復サイクルを必要とすることがある。分岐命令は反復中に頻繁に用いられている。分岐命令は、典型的に、分岐アドレスを決定してその分岐アドレスの目標命令をフェッチするために、１又はそれより多くのクロック・サイクル即ち「遅延スロット」を必要とする。遅延分岐命令は、ある分岐命令の遅延スロット（又は複数の遅延スロット）において他の命令を実行可能にする。パイプライン化命令の実行回路を有するマイクロプロセッサは、命令実行シーケンス内で分岐アドレスを取ったために、又は取らなかったために失ってしまう恐れのある多数の実行サイクルを少なくするために、遅延分岐命令を備えることができる。しかし、もし第１の目標命令を実行する前に第２の命令に遭遇すると、命令の実行順序を保存するために命令実行パイプラインは停止される。
【０００３】
【発明が解決しようとする課題】
本発明の目的は、第１の分岐命令の遅延スロット（又は複数の遅延スロット）において第２の遅延命令が発生したときに、命令実行パイプラインが停止することを原因としたパフォーマンスの遅延を克服することである。
【０００４】
【課題を解決するための手段】
概要的に、本発明の一形式では、中央処理装置を有するデータ処理装置を備え、この中央処理装置はネストされた分岐命令を実行できる命令実行パイプラインを有する。前記パイプラインは固定数のパイプライン・フェーズにおいて目標アドレスを有する分岐命令を処理及び実行するように動作可能である。前記分岐命令の実行の最終フェーズにおいて前記目標アドレスによりプログラム・カウンタがロードされる。フェッチ回路が前記プログラム・カウンタにおけるアドレスを用いて命令をフェッチする。
【０００５】
第２の遅延分岐命令の処理は、先行する遅延分岐命令に関する処理の開始後の次のフェーズにおいて開始されてもよい。前記遅延分岐命令の目標アドレスは、前記第１の分岐命令の目標アドレスをプログラム・カウンタにロードした後の次のフェーズにおいて前記プログラム・カウンタにロードされる。従って、この発明のネスト可能な遅延分岐命令により複雑な分岐シーケンスを作成することができる。
【０００６】
例えば、ネストされた遅延分岐命令のシーケンスに同一の目標アドレスを置くことにより、単一のフェーズ反復ループを形成することができる。更に、前記目標命令のフェッチ・パケットに遅延分岐命令を置くことにより、無期限の単一フェーズ反復ループを形成することができる。選択した条件を検出したときは、このループを抜け出すことができる。
【０００７】
本発明の他の形式において、データ処理装置内の中央処理装置（ＣＰＵ）を動作させる方法は、多数のフェーズにおいて分岐命令を処理及び実行する命令実行パイプラインを設けるステップと、目標アドレスによる分岐命令を含む命令パケットをフェッチするステップと、次のパイプライン・フェーズにおいて分岐命令を有する第２の命令パケットをフェッチするステップと、前記第１の分岐命令の目標アドレスをプログラム・カウンタに受け取るステップと、前記次のパイプライン・フェーズにおいて前記第２の分岐命令の前記目標アドレスを前記プログラム・カウンタに受け取るステップとを備えている。
【０００８】
本発明の他の実施例は詳細な説明及び図面から明らかとなる。
【０００９】
本発明の他の特徴及び効果は、添付する図面に関連して考慮すれば、以下の詳細な説明を参照することにより明らかとなる。
【００１０】
異なる図面及び図表において対応する番号及びシンボルは、特に指摘しない限り対応する部分を示す。
【００１１】
【発明の実施の形態】
図１は本発明の一実施例を有するマイクロプロセッサ１のブロック図である。マイクロプロセッサ１はＶＬＩＷディジタル信号プロセッサ（ＤＳＰ）である。明確にする観点から、図１は本発明の一実施例を理解するために関係するマイクロプロセッサ１の部分のみを示す。ＤＰＳに関する一般的な構成の詳細は周知であり、他にも容易に見出すことができる。例えば、フレデリック・ブトー（Ｆｒｅｄｅｒｉｋ  Ｂｏｕｔａｕｄ）ほかに発行された米国特許第５，０７２，４１８号は、詳細にＤＳＰを説明しており、ここでは引用による関連される。ゲーリ・スボボダ（Ｇａｒｙ  Ｓｗｏｂｏｄａ）ほかに対して発行された米国特許第５，３２９，４７１号は、どのようにＤＳＰをテストし、かつエミュレートするかについて詳細に説明しており、ここでは引用による関連される。本発明の一実施例に関連するマイクロプロセッサ１の部分の詳細は、マイクロプロセッサ技術に通常に習熟する者が本発明を作成して使用するできるように、以下に十分詳細に説明されている。
【００１２】
マイクロプロセッサ１内には、中央処理装置（ＣＰＵ）１０、データ・メモリ２２、プログラム・メモリ２３、周辺装置６０、及び直接メモリ・アクセス（ＤＭＡ）を有する外部メモリ・インタフェース（ＥＭＩＦ）６１が示されている。ＣＰＵ１０は、更に、命令フェッチ／デコード装置１０ａ〜１０ｃと、算術演算及びロード／ストア装置Ｄ１、乗算器Ｍ１、ＡＬＵ／シフタ装置Ｓ１、算術論理演算装置（ＡＬＵ）Ｌ１及びデータを読み出すと共にデータを書き込む共有マルチポートのレジスタ・ファイル２０ａを含む複数の実行装置とを有する。デコードされた命令は命令フェッチ／デコード装置１０ａ〜１０ｃから図示していない種々の組の制御ラインを介して機能装置（算術演算及びロード／ストア装置Ｄ１、乗算器Ｍ１、ＡＬＵ／シフタ装置Ｓ１及びＡＬＵ  Ｌ１）に供給される。データは、レジスタ・ファイル２０ａから第１組のバス３２ａを介してレジスタ・ファイル２０ａへ又はその逆へ、第２組のバス３４ａを介して乗算器Ｍ１へ、第３組のバス３６ａを介してＡＬＵ／シフタ装置Ｓ１へ、及び第４組のバス３８ａを介してＡＬＵ  Ｌ１へ供給される。データは、メモリ２２から第５組のバス４０ａを介して算術演算及びロード／ストア装置Ｄ１へ又はその逆へ供給される。以上で説明したデータ・パスの全体は、レジスタ・ファイル２０ｂ及び実行装置Ｄ２、Ｍ２、Ｓ２及びＬ２により二重化されていることに注意すべきである。命令は、プログラム・メモリ２３から１組のバス４１を介して命令フェッチ／デコード装置１０ａに供給される。エミュレーション装置５０は、外部テスト・システム５１により制御可能にされているマイクロプロセッサ１の内部回路に対するアクセスを行う。
【００１３】
図１に示されているデータ・メモリ２２及びプログラム・メモリ２３はマイクロプロセッサ１の一部の集積回路であり、その範囲はブロック４２により表されていることに注意すべきである。データ・メモリ２２〜プログラム・メモリ２３は、マイクロプロセッサ１の集積回路４２の外部にあっても、又はその一部が集積回路４２に存在し、かつその一部が集積回路４２の外部にあってもよい。更に、他の数の実行装置を用いることもできる。
【００１４】
マイクロプロセッサ１がデータ処理システムに関連されているときは、図１に示すように、付加的なメモリ又は周辺装置をマイクロプロセッサ１に接続してもよい。例えば、ランダム・アクセス・メモリ（ＲＡＭ）７０、読み出し専用メモリ（ＲＯＭ）７１及びディスク７２は、外部バス７３を介して接続されているのが示されている。外部バス７３は集積回路４２内の機能ブロック６１の一部である外部メモリ・インタフェース（ＥＭＩＦ）に接続されている。更に、直接メモリ・アクセス（ＤＭＡ）コントローラはブロック６１にも含まれている。ＤＭＡコントローラは、通常、マイクロプロセッサ１内のメモリと周辺装置との間でデータを転送するために用いられる。
【００１５】
本発明の構成により効果が得られるいくつかのシステム例は、ここで参照により関連される米国特許第５，０７２，４１８号、特に米国特許第５，０７２，４１８号の図２−１８を参照して説明されている。パフォーマンスを改善するため、又はコストを減少させるために本発明の構成に関連するマイクロプロセッサは、米国特許第５，０７２，４１８号に説明されているシステムを更に改善するために用いられてもよい。しかし、このようなシステムは、工業的なプロセス制御、オートモティーブ車両システム、モータ制御、ロボット制御システム、衛星通信システム、エコー打ち消しシステム、モデム、ビデオ映像システム、音声認識システム、暗号によるボーコーダ・モデム・システム等に限定されない。
【００１６】
図１の種々のアーキテクチャ上の特徴の説明は共通に譲受された米国特許出願第６０／０３６，４８２号（ＴＩ文書番号Ｔ−２５３１１）に記載されている。更に、図１のマイクロプロセッサ用の完全な命令セットの説明は、共通に譲受された米国特許出願第６０／０３６，４８２号（ＴＩ文書番号Ｔ−２５３１１）に記載されている。
【００１７】
図２は図１のマイクロプロセッサの実行装置及びレジスタ・ファイルのブロック図であり、種々の機能ブロックを接続するバスの更に詳細な図を示す。この図において、全てのデータ・バスは特に記載がない限り３２ビット幅である。バス４０ａはアドレス・バスＤＡ１を有し、マルチプレクサ２００ａにより駆動される。これは、ロード／ストア装置Ｄ１又はＤ２が発生したアドレスをレジスタ・ファイル２０ａにロード即ち記憶するためのアドレスを供給可能にさせる。データ・バスＬＤ１はアドレス・バスＤＡ１により指定されたデータ・メモリ２２のアドレスによるデータを算術演算及びロード／ストア装置Ｄ１にロードさせる。算術演算及びロード／ストア装置Ｄ１はレジスタ・ファイル２０ａにデータを記憶する前に供給されたデータを操作することができる。同様に、データ・バスＳＴ１はレジスタ・ファイル２０ａからのデータをデータ・メモリ２２に記憶する。算術演算及びロード／ストア装置Ｄ１は下記のオペレーション：３２ビット加算、引算、線形及び循環アドレス計算を実行する。算術演算及びロード／ストア装置Ｄ２は、マルチプレクサ２００ｂを介して算術演算及びロード／ストア装置Ｄ１と同じように動作してアドレスを選択する。
【００１８】
ＡＬＵ  Ｌ１は下記の形式のオペレーション：３２／４０ビット算術演算オペレーション及び比較オペレーション、３２ビットについて左端１、０ビット・カウント、３２及び４０ビットについての正規化カウント、及び論理オペレーションを実行する。ＡＬＵ  Ｌ１は３２ビット・ソース・オペランド用の入力ｓｒｃ１及び第２の３２ビット・ソース・オペランドの入力ｓｒｃ２を有する。入力ｍｓｂ  ｓｒｃは８ビット値であり、４０ビット・ソース・オペランドを形成するために用いられる。ＡＬＵ  Ｌ１は３２ビット行き先オペランド用の出力ｄｓｔを有する。出力ｍｓｂ  ｄｓｔは８ビット値であり、４０ビット行き先オペランドを形成するために用いられる。レジスタ・ファイル２０ａ内の２つの３２ビットのレジスタは４０ビットのオペランドを保持するように連結されている。Ｍｕｘ２１１は入力ｓｒｃ１に接続されており、３２ビット・オペランドがバス３８ａを介してレジスタ・フアイル２０ａから、又はバス２１０を介してレジスタ・ファイル２０ｂから得られるようにする。Ｍｕｘ２１２は入力ｓｒｃ２に接続されており、３２ビット・オペランドがバス３８ａを介してレジスタ・ファイル２０ａから、又はバス２１０を介してレジスタ・ファイル２０ｂから得られるようにする。ＡＬＵ  Ｌ２はＡＬＵ  Ｌ１と同じように動作する。
【００１９】
ＡＬＵ／シフタ装置Ｓ１は下記の形式のオペレーション：３２ビットの算術演算オペレーション、３２／４０ビット・シフト、及び３２ビット・ビット・フィールド・オペレーション、３２ビット論理オペレーション、分岐、及び定数発生オペレーションを実行する。ＡＬＵ／シフタ装置Ｓ１は３２ビット・ソース・オペランド用の入力ｓｒｃ１、及び第２の３２ビット・ソース・オペランド用の入力ｓｒｃ２を有する。入力ｍｓｂ  ｓｒｃは８ビット値であり、４０ビット・ソース・オペランドを形成するために用いられる。ＡＬＵ／シフタ装置Ｓ１は３２ビット行き先オペランド用の出力ｄｓｔを有する。出力ｍｓｂ  ｄｓｔは８ビット値であり、４０ビットのソース・オペランドを形成するために用いられる。Ｍｕｘ２１３は入力ｓｒｃ２に接続されており、３２ビット・オペランドがバス３６ａを介してレジスタ・ファイル２０ａから、又はバス２１０を介してレジスタ・ファイル２０ｂから得られるようにする。ＡＬＵ  Ｓ２はＡＬＵ／シフタ装置Ｓ１と同じように動作し、制御レジスタ・ファイル１０２から／へのレジスタ転送を実行する。
【００２０】
乗算器Ｍ１は１６×１６乗算を実行する。乗算器Ｍ１は３２ビット・ソース・オペランド用の入力ｓｒｃ１及び３２ビット・ソース・オペランド用の入力ｓｒｃ２を有する。ＡＬＵ／シフタ装置Ｓ１は３２ビット行き先オペランド用の出力ｄｓｔを有する。Ｍｕｘ２１４は入力ｓｒｃ２に接続されており、３２ビット・オペランドがバス３４ａを介してレジスタ・ファイル２０ａから、又はバス２１０を介してレジスタ・ファイル２０ｂから得られるようにする。乗算器Ｍ２は乗算器Ｍ１と同じように動作する。
【００２１】
図３は図１のマイクロプロセッサ内の命令実行パイプラインの処理フェーズを示す図表である。各処理フェーズはシステム・クロックのクロック・サイクルにほぼ対応する。例えば、マイクロプロセッサ１が２００ＭＨｚで動作しているのであれば、各処理フェーズは公称５ｎｓである。しかし、ＲＡＭ７０のようなメモリ又は周辺装置からデータが期待されるフェーズにおいて、期待されるときにデータがレディーでなければ、パイプラインは停止してしまう。停止すれば、与えられたパイプラインのフェーズは多数のシステム・クロック・サイクルに対して存在することになる。
【００２２】
図３において、命令を処理する第１の処理フェーズはフェーズＰＧにおいてプログラム・アドレスを発生することである。これは制御レジスタ・ファイル１０２に位置するプログラム・フェッチ・カウンタＰＦＣをロードすることにより行われる。第２の命令の処理フェーズＰＳでは、命令フェッチ・パケットのアドレスがバス４１の一部であるプログラム・アドレス・バスＰＡＤＤＲを介してプログラム・メモリ２３に送出される。第３の処理フェーズＰＷはプログラム・メモリ２３でのアクセス時間を許容するための待機フェーズである。第４の処理フェーズＰＲでは、プログラム・フェッチ・パケットは、バス４１の一部であるデータ・バスＰＤＡＴＡ  Ｉを介してプログラム・メモリ２３から得られる。第５の処理フェーズＤＰでは、命令の並行が検出され、実行可能とされる命令が適当な機能装置に送出される。以下の記載においてこのパイプライン・オペレーションの構成を更に詳細に説明する。第６の処理フェーズＤＣでは、実行可能な命令をデコードし、種々のデータ・パス及び機能装置を制御するために制御信号を発生させる。
【００２３】
図４は図１のマイクロプロセッサ内の命令実行パイプラインの実行フェーズを説明する図表である。第１の実行フェーズＥ１では、「ＩＳＣ」と呼ばれる単一サイクル命令、及び「ＢＲ」と呼ばれる分岐命令が完結する。指定された実行装置は、制御回路１００により指示された図４に示すオペレーションを実行する。第２の実行フェーズＥ２では、下記の形式の命令：整数乗算（ＩＭＰＹ）、プログラム記憶命令（ＳＴＰ）、及びデータ記憶命令（ＳＴＤ）が制御回路１００の制御により指定された実行装置により、完結される。第３の実行フェーズＥ３では、データのロード命令（ＬＤ）の実行が、図示のように、データ・メモリ・システム（ＤＭＳ）からデータをラッチすることにより継続する。実行フェーズＥ４では、実行フェーズＥ３においてラッチされたデータが算術演算及びロード／ストア装置Ｄ１又はＤ２内のデータ入力レジスタＤＤＡＴＡ  Ｉに転送される。実行フェーズＥ５では、データ入力レジスタＤＤＡＴＡ  Ｉのデータを操作し、かつレジスタ・ファイル２０ａ又は２０ｂ内の指定されたレジスタに操作したデータを書き込むことにより、ＬＤ命令が完結する。
【００２４】
図５は、図３の処理フェーズにおける実行フェーズ命令フェッチ・パケットの処理、及び図４の実行フェーズにおける実行フェーズの実行の詳細なタイミングを示すタイミング図である。フェーズＰＳではプログラム・メモリ・レディー信号ＰＲＤＹがローであるために、フェーズＰＷにおいてパイプ停止が示されており、またフェーズＥ２ではデータ・メモリ・レディー信号ＤＲＤＹがローであるために、フェーズＥ３において第２のパイプ停止が示されていることに注意すべきである。
【００２５】
図６は、本発明により図３、図４及び図５に示した命令実行パイプラインにおける遅延分岐命令（ＢＲ）を実行するときに、含まれる遅延スロットを示す。ＢＲ命令は、ここで「目標アドレス」と呼ばれるアドレスを供給する。この目標アドレスは、マイクロプロセッサ１により実行されているプログラムの論理シーケンスにおいて次に実行されるべき命令のアドレスである。ＢＲ命令の実行フェーズＥ１では、命令フェッチ／デコード装置１０ａの一部であるプログラム・フェッチ・カウンタ（ＰＦＣ）がＢＲ命令により与えられる目標アドレスを受け取る。目標アドレスが変位値であれば、これは、プログラム・フェッチ・カウンタＰＦＣに送出される前に、シフトされて分岐命令を含むフェッチ・パケットのアドレスに加算される。目標アドレスが分岐命令により指定されたレジスタに含まれていれば、レジスタの内容をプログラム・フェッチ・カウンタにロードする。そこで、このフェーズは目標アドレスの命令処理フェーズＰＧに対応している。命令パイプラインのオペレーションに関連して以上で説明したように、目標アドレス命令がフェーズＥ１において実行を開始する前に、更に５つのフェーズＰＳ、ＰＷ、ＰＲ、ＤＰ及びＤＣを完結する。目標アドレス命令ＢＲ命令の実行フェーズＥ１と目標命令の実行フェーズＥ１との間の「遅延」は、命令アドレスの流れにおける変化のために実行パイプラインに対する「ヒット」を表している。このパイプライン・ヒットのパフォーマンス影響を最小化するために、マイクロプロセッサ１は、図７に示すように、ＢＲ命令後に逐次的にアドレス指定される下記の５命令を実行し続ける。図７において、アドレス「ｎ」からの命令はＢＲ命令であり、またＢＲ命令の目標アドレスはアドレス「ｍ」である。アドレスｎ＋１〜ｎ＋５からの命令は有効なオペレーションを実行することかできるか、又はプログラム・フローにおいて有効に実行され得るものが他になけば、ノー・オペレーション（ＮＯＰ）とすることができる。このモードの分岐オペレーションは、分岐命令後に、付加的なシーケンス命令を処理するので、「遅延分岐」と呼ばれる。
【００２６】
図８はプログラム・メモリ２３からフェッチされた命令パケットの基本フォーマットを示す。一実施例において、命令パケットには４つの３２ビット命令Ａ、Ｂ、Ｃ及びＤが含まれている。図８に示すように、命令Ａ、Ｂ、Ｃ及びＤはプログラム・メモリ２３に連続するアドレスで記憶される。従って、プログラム命令の通常的な逐次実行では、命令Ａが最初に実行され、逐次的に命令Ｂ、Ｃ及びＤが続く。
【００２７】
図８における各命令のビット０はｐビットとして表された。これらのｐビットは、命令をどのように実行するのかを定義する。図８の命令パケットのｐビットは、命令処理フェーズＤＰにおいてプログラム・ディスパッチ回路１０ｂにより左から右へ調べられる。与えられた命令のｐビットが１に等しいときは、命令パケットにおける次のシーケンス命令が最初に述べた命令と並列に実行されることになる。プログラム・ディスパッチ回路１０ｂは、命令パケット内の命令が論理０に等しいｐビットに到達するまで、このルールを適用する。
【００２８】
与えられた命令が０のｐビットを有するときは、与えられた命令の後に（及び与えられた命令と並列に実行される任意の命令の後に）、次のシーケンス命令を逐次的に実行する。プログラム・ディスパッチ回路１０ｂは、論理１のｐビットを有する命令パケット内の命令に到達するまで、このルールを適用する。
【００２９】
図３を再び参照すると、処理フェーズＰＲでは、前のフェッチ・パケットにおける少なくとも一つの命令の逐次的な実行のために新しい命令フェッチ・パケットを必要としないのであれば、新しい命令フェッチ・パケットをラッチしない。図５に示したストローブ信号ＰＤＳは、プログラム・データを必要としないのであれば、主張されない。この場合に、プログラム・データ・ラッチＰＤＡＴＡＩはプログラム・メモリ２３から得た最後のプログラム・フェッチ・パケットを保持する。
【００３０】
図９Ａ〜図１３Ａは前述のｐビット・ルールの種々の例を示す。図９Ａは全てのｐビットが０である命令パケットを示す。従って、命令Ａ〜Ｄは図９Ｂに示すように、逐次的に実行される。
【００３１】
図１０Ａは命令Ａ、Ｂ及びＣのｐビットが１に等しく、かつ命令Ｄのｐビットが０である命令パケットを示す。従って、命令Ａ、ＢＣ及びＤが同時に、即ち図１０Ｂに示すように、並列に実行される。
【００３２】
図１１Ａの命令では、命令Ｃのｐビットのみが１にセットされており、図１１Ｂの実行シーケンスに帰結し、即ち命令Ａ及びＢが逐次的に実行され、並列に実行される命令Ｃ及びＤが続く。
【００３３】
図１２Ａの命令パケットでは、命令Ｂのｐビットのみが１にセットされており、図１２Ｂに示す実行シーケンスに帰結する。即ち、命令Ａが実行され、逐次的に命令Ｂ及びＣの並列実行が続き、次いで逐次的に命令Ｄの実行が続く。
【００３４】
図１３Ａの命令パケットでは、命令Ｂ及びＣのｐビットが１にセットされており、かつ命令Ａ及びＤのｐビットが０である。これは図１３Ｂに示す命令シーケンスに帰結する。即ち、命令Ａが実行され、次いで逐次的に命令Ｂ、Ｃ及びＤの並列実行が続く。
【００３５】
開示された例における命令パケットには４プログラム命令が含まれているので、プログラム・コンパイラは常に０のｐビットを有する命令Ｄ（第４命令）を供給する。コンパイラは並列に命令Ａ及びＢを実行する特性、並列に命令Ｂ及びＣを実行する特性、及び並列に命令Ａ、Ｂ及びＣを実行する特性に基づいて、命令Ａ、Ｂ及びＣの残りのｐビットの値を判断する。例えば、命令Ａの実行により得た結果を命令Ｂの実行が必要とするときは、０のｐビットを有する命令Ａを供給し、従って命令Ａの後に逐次的に命令Ｂを実行する。他の例として、命令Ｂ及びＣが同一レジスタをアクセスするのであれば、コンパイラは、命令Ｂ及びＣを並列ではなく逐次的に実行するのを保証するように、０のｐビットを有する命令Ｂを供給することになる。
【００３６】
図１４Ａは、ネストされた遅延分岐命令を有する命令パケット・シーケンスの本発明による例を示しており、６回実行される単一のフェーズ・ループを発生するものである。アドレス位置「ｎ」からフェッチされた命令フェッチ・パケット１３１０には、「ｍ」の目標アドレスを有する分岐命令Ａが含まれている。命令Ａにおけるｐビットは１なので、同一のフェッチ・パケットにおける命令Ｂは命令Ａと並列に実行される。命令Ｂは有用な他のいくつかのオペレーションを実行してもよい。更に、命令Ｃもｍの目標アドレスを有する分岐命令である。命令Ｄは命令ＣのｐビットのためにＣと並列に実行される。本発明の一構成によれば、命令Ｃ及びＤは共に、図１４Ｂに示すように、命令Ｂにおけるｐビットのために、命令Ａの第１の遅延スロットにおいて処理を開始する。都合のよいことに、ある分岐命令に第２の分岐命令が続くときに、マイクロプロセッサ１の命令実行パイプラインにインターロック即ち遅延が発生することはない。
【００３７】
同じように、命令Ｅ、Ｇ、Ｉ及びＫはｍの目標アドレスを有する分岐命令である。命令対Ｅ〜Ｆは命令Ａの第２の遅延スロットにおいて処理を開始し、命令対Ｇ〜Ｈは命令Ａの第３の遅延スロットにおいて処理を開始し、命令対Ｉ〜Ｊは命令Ａの第４の遅延スロットにおいて処理を開始し、かつ命令対Ｋ〜Ｌは命令Ａの第５の遅延スロットにおいて処理を開始する。
【００３８】
図７によれば、この時点で、命令Ｍは分岐命令Ａに応答してアドレスｍからフェッチされているフェッチ・パケット１３４０による処理を開始する。次のフェーズでは、命令Ｍの他のコピーは分岐命令Ｃに応答してアドレスｍからフェッチされているフェッチ・パケット１３４１による処理を開始する。次のフェーズでは、命令Ｍの他のコピーは分岐命令Ｅに応答してアドレスｍからフェッチされているフェッチ・パケット１３４２による処理を開始する。次のフェーズでは、命令Ｍの他のコピーは分岐命令Ｇに応答してアドレスｍからフェッチされているフェッチ・パケット１３４３による処理を開始する。次のフェーズでは、命令Ｍの他のコピーは分岐命令Ｉに応答してアドレスｍからフェッチされているフェッチ・パケット１３４４による処理を開始する。次のフェーズでは、命令Ｍの他のコピーは分岐命令Ｋに応答してアドレスｍからフェッチされているフェッチ・パケット１３４５による処理を開始する。Ｋは最後の分岐命令であったので、命令Ｑは、フェッチ・パケット１３４５に続くアドレスｍの後に次の逐次的なアドレスとしてアドレスｍ＋１からフェッチされて、次のフェーズにおいて処理を開始する。
【００３９】
図１４Ｂを調べることにより明らかなように、命令Ｍは命令Ｑを実行する前に６回実行される。これはゼロのオーバヘッドによる反復ループを効率的に作成する。これは、データ・ブロック上で実行されるオペレーションのように種々の反復的な作業にとって都合がよい。ループの前に設定する分岐命令の数を予め選択することにより、反復ループの長さを２から６に変化させてもよいことを理解すべきである。
【００４０】
更に、分岐命令の条件特性を用いることにより、この反復ループの長さをダイナミックに変更することができる。この実施例における分岐命令は、条件によって実行される。指定された条件が真であれば、分岐命令を実行し、プログラムの流れは前述のような遅延形式により目標アドレスへ分岐する。この条件が偽であれば、分岐命令はノー・オペレーションとして取り扱われる。
【００４１】
従って、予め選択した条件が検出される適当な条件信号により満足されないと命令Ｃが判断するときは、命令Ｃを実行せず、かつ反復ループのサイズを１により減少させる。同じように、命令Ｅ、Ｇ、Ｉ又はＫは条件によって実行せずに反復ループのサイズを減少させないようにしてもよい。
【００４２】
図１５Ａは、ネストされた遅延分岐命令を有する命令パケットのシーケンスの本発明による他の例を示す。これは、条件テストが偽となるまで、実行される単一フェーズ・ループを発生する。この例は図１４Ａと同一であるが、この場合に、命令Ｍは更にそれ自身の目標アドレスを有する分岐命令である。このループは、６つの分岐命令を逐次的な処理用に設定することにより、前のように開始されて最初の分岐の遅延スロットを満たす。このループが開始されると、命令Ｍは命令フェッチ・パケット１４４０〜１４４５のように６回処理される。分岐命令Ｍが処理される度に、反復ループは１フェーズだけ延長される。従って、ゼロ・オーバヘッドの反復ループが無期限に実行される。前述のように、条件信号が偽であることを分岐命令が検出することにより、このループを抜け出すことができる。ループを完全に抜け出すためには条件信号を６回検知することに注意すべきである。
【００４３】
分岐命令の処理では、マイクロプロセッサ１が割り込み処理を禁止している。これは、割り込み処理の完了後に命令パイプラインをその割り込み前の状態に正しく復旧させるために、割り込み処理の開始時にセーブしなければならない状態量を簡単化することにある。
【００４４】
図１６はネストされた遅延分岐を用いて最適化される内側ループ及び外側ループを有するプログラムを示す、本発明によるフローチャートである。外側ループはアドレスｘから命令実行パケット１５００による実行処理を開始する。内側ループはアドレスｙから命令実行パケット１５１０による実行処理を開始する。任意数の命令パケットはパケット１５００とパケット１５１０との間で処理されてもよい。更に、パケット１５００及びパケット１５１０はいくつかの場合に同一アドレスからの同一命令パケットであってもよい。アドレスｍからの命令実行パケット１５２０は、ｙの目標アドレスによる内側ループに関する分岐命令を有し、かつ条件ｉ＿ｃｏｎｄに基づく条件付きのものである。命令実行パケット１５２１及び１５２２はパケット１５２０の遅延スロット１及び２における処理をそれぞれ開始する。命令パケット１５２２は、ｘの目標アドレスによる外側ループに関する分岐命令を有し、かつ条件ｏ＿ｃｏｎｄに基づく条件付きのものである。命令実行パケット１５２３及び１５２５はパケット１５２０の遅延スロット３〜５、更にパケット１５２２の遅延スロット１〜３にある。ｉ＿ｃｏｎｄが真であり、かつｏ＿ｃｏｎｄが偽であるときは、実行パケット１５２０はパケット１５２５後に処理を開始する。ｉ＿ｃｏｎｄが偽であり、かつｏ＿ｃｏｎｄが真であるときは、実行パケット１５２６及び１５２７は処理され、次いでパケット１５００が処理される。このようにして、小さな分岐オーバヘッドを都合良く有する２つのループが形成される。
【００４５】
明らかなように、本発明の新しい技術を用いて多くの複雑なシーケンスの分岐を実行することができる。
【００４６】
図１７〜図１６は図１のマイクロプロセッサ用の命令フォーマットを示し、特に図２６は本発明によるネスト可能な遅延分岐命令用の命令フォーマットを示す。フィールド「ｃｓｔ」には目標アドレスを定義する２１ビットのアドレス変位定数が含まれる。フィールド「ｃｒｅｇ」はレジスタ・ファイル２０内の１６レジスタのうちの一つを指定して条件テスト用に用いる。フィールド「ｚ」はテストするのは０に対してか又は１に対してかを指定する。指定した条件レジスタが指定されたテストに一致するときは、分岐命令を実行し、かつプログラムの流れが前述のように遅延した形式による目標アドレスに分岐する。テストがノーであれば、分岐命令をノー・オペレーションとして取り扱う。
【００４７】
本発明の他の実施例における新しい特徴は、命令フェッチ・パケットにおける４命令以外を有する。図２７に示されているこのような一実施例では、命令フェッチ・パケットには８命令が含まれている。命令フェッチ・パケット１７１０は送出されて、図示のように８実行装置にデコードされる。フェッチ・パケット１７２０には分岐命令１７２５が含まれている。命令フェッチ・パケット１７３０には３つの命令実行パケットが含まれている。第１の命令実行パケットには、分岐命令１７２５の第１の遅延スロットにおける処理を開始させる２つの命令、ＺＥＲＯ、ＳＨＬが含まれている。第２の命令実行パケットには、分岐命令１７２５用の第２の遅延スロットにおける処理を開始させるＡＤＤ、ＳＵＢ、ＳＴＷ、ＳＴＷが含まれている。第３の命令実行パケットには、分岐命令１７２５の第３の遅延スロットにおける処理を開始させる２つの命令ＡＤＤＫ、ＢＲが含まれている。本発明の特徴によれば、分岐命令１７３８は、分岐命令１７２５の第３の遅延スロットにおける処理を開始させ、かつ命令フェッチ／デコード装置１０ａ内のプログラム・フェッチ・カウンタＰＦＣにより分岐命令１７３８の目標アドレスを受け取った後、５つのパイプライン・フェーズが完結する。
【００４８】
本発明の他の実施例の新しい特徴には、組み合わせ機能の総ゲート・カウントを小さくするために、ここで開示した回路と組み合わせられた他の回路が含まれる。当該技術分野に習熟する者はゲート最小化の技術に通じているので、ここでこのような実施例の詳細については説明しない。
【００４９】
本発明の他の実施例の新しい特徴において、割り込み処理は分岐命令処理中に実行可能にされる。この場合に、割り込み回路９０が受け取った割り込みは、分岐命令の処理中に命令実行パイプラインに割り込みできるようにされる。割り込みに応答するために、命令フェッチ／デコード装置１０ｃは、処理フェーズＤＣに進行しなかった処理における全ての命令を無効にする。これはデコードされた全ての命令が待機中の任意の書き込み動作を完了できるようにする。従って、無効にされた命令を再フェッチ及び再処理することにより、パイプラインを再開始することができる。しかし、遅延分岐をネスト可能にする本発明の新しい特徴によれば、単純なフェッチの再開始がパイプラインを正しく再び満たすことはない。従って、遅延分岐命令の処理中に割り込みを可能にさせるために、パイプライン全体を表す状態は、割り込みを処理する前にセーブされなければならない。この状態はデータ・メモリ２２の指定された領域にセーブされてもよい。割り込み処理が完了すると、パイプラインはセーブされた状態情報により完全に復旧される。
【００５０】
本発明の他の実施例の新しい構成では、命令フェッチ／デコード装置１０ａにおけるアドレス比較回路が次のフェッチ・パケットが、例えば図１４Ｂにおけるように、フェッチ・パケット１３４１〜１３４５に対する前のフェッチ・パケットと同一アドレスからのものであるときを検出する。このような場合に、試行されたフェッチは禁止され、本発明のフェッチ・パケットが保持される。
【００５１】
ここで用いているように、用語「適用された」及び「接続された」は、電気的な接続パスに付加的な要素が存在してもよいことを含め、電気的に接続されたことを意味する。
【００５２】
実施例を参照して本発明を説明したが、この説明は限定する意味で解釈されることを意図するものではない。本発明の他の種々の実施例はこの説明を参照することにより当該技術分野に習熟する者に明らかである。従って、請求の範囲は実施例の如何なる変更も本発明の真の範囲及び精神内に属することを意図している。
【００５３】
以上の項に関して更に以下の項を開示する。
【００５４】
（１）命令実行パイプラインを有する中央処理装置であって、前記パイプラインは第１の所定数のパイプライン・フェーズにおける第１の目標アドレスを有する第１の分岐命令を処理及び実行するように動作可能な前記中央処理装置と、
前記所定数のパイプライン・フェーズの最終フェーズにおいて前記第１の目標アドレスを受け取ってフェッチ・アドレスを形成するように動作可能なプログラム・カウンタ回路と、
前記プログラム・カウンタ回路により指定された前記フェッチ・アドレスから命令フェッチ・パケットをフェッチするように動作可能なフェッチ回路であって、前記命令フェッチ・パケットは前記命令実行パイプラインにより処理をするように少なくとも一つの命令を有する前記フェッチ回路と、
前記第１の目標アドレスを有する前記第１の分岐命令の処理を開始した後、直ちにパイプライン・フェーズにおいて第２の目標アドレスを有する第２の分岐命令の処理を開始するように動作可能な前記命令実行パイプライン用の制御回路とを備え、
前記プログラム・カウンタ回路は前記第１の目標アドレスを受け取った後、直ちにパイプライン・フェーズにおいて前記第２の目標アドレスを受け取るように動作可能であるデータ処理装置。
【００５５】
（２）前記制御回路は、前記パイプライン・フェーズの前記第１の所定数より少ない、又は等しい第２数の分岐命令の連続的な処理を開始するように動作可能である第１項記載のデータ処理装置。
【００５６】
（３）前記第２数の分岐命令はそれぞれ同一目標命令パケットの目標アドレスを有し、
前記フェッチ回路は、前記目標命令パケットを含む単一のフェーズ反復ループが前記第２の回数により実行されるように、前記目標命令パケットをフェッチして前記第２の回数により連続的に処理するように動作可能である第２項記載のデータ処理装置。
【００５７】
（４）前記目標命令パケットは前記目標命令パケットの目標アドレスを有する分岐命令を含み、前記分岐命令の前記第２数は前記処理フェーズの前記所定数に等しく、かつ
前記制御回路が制御信号を受け取るまで、前記目標命令パケットを含む前記単一のフェーズ反復ループを無制限回数により実行するように、前記目標命令パケットの処理を連続的に開始するように動作可能である第３項記載のデータ処理装置。
【００５８】
（５）更に、前記反復ループの処理中は禁止されるように動作可能である割り込み回路を備えている第３項記載のデータ処理装置。
【００５９】
（６）更に、
前記反復ループの処理に割り込みをするように動作可能な割り込み回路と、
前記割り込み回路からの割り込みに応答して前記反復ループを表す状態をセーブするように動作可能な状態セーブ回路と、
前記反復ループを表す前記状態を復旧させるように動作可能な状態復旧回路とを備えている第３項記載のデータ処理装置。
【００６０】
（７）
命令実行パイプラインを有する中央処理装置であって、前記パイプラインは第１の所定数のパイプライン・フェーズにおける第１の目標アドレスを有する分岐命令を処理及び実行するように動作可能である前記中央処理装置と、
前記所定数のパイプライン・フェーズの最終フェーズにおいて前記目標アドレスを受け取ってフェッチ・アドレスを形成するように動作可能なプログラム・カウンタ回路と、
前記プログラム・カウンタ回路により指定された前記フェッチ・アドレスから目標命令フェッチ・パケットをフェッチするように動作可能なフェッチ回路であって、前記目標フェッチ・パケットは前記命令実行パイプラインにより処理をするように少なくとも一つの命令を有する前記フェッチ回路と、
前記第１の所定数のパイプライン・フェーズより少ない、又は等しい第２数の分岐命令の連続的な処理を開始するように動作可能な前記命令実行パイプライン用の制御回路と
を備え、
前記フェッチ回路は、前記目標命令パケット含む単一のフェーズ反復ループを前記第２の回数実行するように、前記目標命令フェッチ・パケットをフエッチして前記第２の回数連続的な処理をするように動作可能であるデータ処理装置。
【００６１】
（８）データ処理装置内の中央処理装置（ＣＰＵ）を動作させる方法において、
第１の所定数の命令処理フェーズ及び第２数の実行フェーズを有する命令実行パイプラインを設けるステップと、
第１フェーズの命令処理フェーズにおいて第１の命令パケットをフェッチするステップであって、前記第１の命令パケットが第１の目標アドレスにより少なくとも第１の分岐命令を有するステップと、
前記第１の命令パケットをフェッチするステップの後、直ちに第２の命令パケットをフェッチするステップであって、前記第２の命令パケットは第２の目標アドレスによる第２の命令を有するステップと、
前記第１の所定数の処理フェーズの後、前記実行フェーズのうちの所定の一フェーズにおいて前記ＣＰＵのプログラム・カウンタに前記第１の目標アドレスを受け取るステップと、
前記第１の目標アドレスを受け取った後、直ちにフェーズにおける前記プログラム・カウンタにおける前記第２の目標アドレスを受け取るステップと
を備えている方法。
【００６２】
（９）更に、
前記命令実行パイプラインにおいて第３数の分岐命令が同時に処理されるまで、他の目標アドレスによる他の分岐命令を有する他の命令パケットを反復的にフェッチするステップであって、前記第３数は前記処理フェーズの前記第１の所定数より小さい、又は等しいステップと、
前記第１の目標アドレスに前記プログラム・カウンタを受け取った後、前記第１の目標アドレスから第１の目標命令パケットをフェッチするステップと、
前記第２の目標アドレスに前記プログラム・カウンタを受け取った後、前記第１の目標アドレスをフェッチするステップであって、前記第２の目標アドレスは前記第１の目標アドレスと同一であるステップと、
前記第１の目標命令パケットを複数回フェッチするステップであって、前記目標命令パケットを含む単一のフェーズ反復ループを前記第３の回数実行するように、前記他の目標アドレスが前記第１の目標アドレスと同一であるステップと
を備えている第８項記載の方法。
【００６３】
（１０）
前記目標命令パケットは前記目標命令パケットの目標アドレスを有する分岐命令を含み、前記分岐命令の前記第３数は前記処理フェーズの第１所定数と等しく、更に、
前記目標命令パケットを含む単一のフェーズ反復ループを無限回数実行するように、制御信号を受け取るまで前記第１の目標命令パケットを複数回フェッチするステップを備えている第９項記載の方法。
【００６４】
（１１）更に、前記反復ループの処理中に割り込みを禁止するステップを備えている第１０項記載の方法。
【００６５】
（１２）更に、
前記反復ループの処理に割り込みをするステップと、
割り込みに応答して前記反復ループを表す状態をセーブするステップと、
前記割り込みを処理するステップと、
前記反復ループを表す前記状態を復旧させるステップであって、前記割り込みを処理した後に、前記反復ループを復旧させるステップと
を備えている第１０項記載の方法。
【００６６】
（１３）一つのパターンを表す物理的な入力に応答してディジタル信号を発生するセンサ手段と、
中央処理装置（ＣＰＵ）、及び前記パターンを認識するために前記ＣＰＵにより実行される複数の命令を保持する内部プログラム・メモリを有するマイクロプロセッサと
を備え、前記マイクロプロセッサは、更に、
命令実行パイプラインを有する中央処理装置であって、前記パイプラインが第１の所定数のパイプライン・フェーズにおける第１の目標アドレスを有する第１の分岐命令を処理及び実行するように動作可能な前記中央処理装置と、
前記所定数のパイプライン・フェーズの最終フェーズにおいて前記第１の目標アドレスを受け取ってフェッチ・アドレスを形成するように動作可能なプログラム・カウンタ回路と、
前記プログラム・カウンタ回路により指定された前記フェッチ・アドレスから命令フェッチ・パケットをフェッチするように動作可能なフェッチ回路であって、前記命令フェッチ・パケットは前記命令実行パイプラインにより処理するために少なくとも一つの命令を有する前記フェッチ回路と、
前記第１の目標アドレスを有する前記第１の分岐命令の処理を開始した後、直ちにパイプライン・フェーズにおいて第２の目標アドレスを有する第２の分岐命令の処理を開始するように動作可能な前記命令実行パイプライン用の制御回路とを備え、
前記プログラム・カウンタ回路は前記第１の目標アドレスを受け取った後、直ちにパイプライン・フェーズにおいて前記目標アドレスを受け取るように動作可能である信号処理システム。
【００６７】
（１４）前記センサ手段はマイクロホン及びアナログ・ディジタル変換器を含み、かつ前記プログラム・メモリは音声認識処理用の命令を保持する第１３項記載の信号処理システム。
【００６８】
（１５）マイクロプロセッサ１は、命令フェッチ／デコード装置１０ａ〜１０ｃと、算術演算及びロード／ストア装置Ｄ１、乗算器Ｍ１、ＡＬＵ／シフタ装置Ｓ１、算術論理演算器（ＡＬＵ）Ｌ１、データを読み出し、かつデータを書き込む共有マルチポート・レジスタ・ファイル２０ａを含む複数の実行装置と、データ・メモリ２２とを有する。これらの装置は、ネスト可能な遅延分岐命令が得られるように、インターロックなしに動作する命令実行パイプラインを形成する。
【００６９】
この発明は、共通に譲受され、この発明と同時出願の米国特許出願第６０／０３６，４８２号（ＴＩ文書番号Ｔ−２５３１１）に関連しており、ここではこれを引用により関連させる。
【図面の簡単な説明】
【図１】本発明の実施例を有するマイクロプロセッサのブロック図。
【図２】図１のマイクロプロセッサの実行装置及びレジスタ・ファイルのブロック図
。
【図３】図１のマイクロプロセッサにおける命令実行パイプラインの処理フェーズを
示す図表。
【図４】図１のマイクロプロセッサにおける命令実行パイプラインの実行フェーズを
示す図表。
【図５】図３の処理フェーズにおける命令フェッチ・パケットの処理及び図４の実行フェーズにおける実行パケットの実行の詳細なタイミングを示すタイミング図
。
【図６】図３及び図５に示す命令実行パイプラインにおける遅延分岐を実行するとき
に含まれる遅延スロットを示すタイミング図。
【図７】図６に示した遅延分岐をフェッチした後に命令パイプライン内で処理する命
令を示すタイム・チャート。
【図８】本発明に用いられる命令パケットの基本フォーマットを示す図。
【図９】Ａは図８の基本フォーマットによる命令パケットの１例を示す図。
Ｂは図９Ａの命令パケットにより定義された実行シーケンスを示す図。
【図１０】Ａは図８の基本フォーマットによる命令パケットの他の例を示す図。Ｂは図１０Ａの命令パケットにより定義される実行シーケンスを示す図。
【図１１】Ａは図８のフォーマットによる命令パケットの他の例を示す図。
Ｂは図９Ａの命令パケットにより定義された実行シーケンスを示す図。
【図１２】ＡはＡ図８のフォーマットによる命令パケットの他の例を示す図。
Ｂは図１２Ａの命令パケットにより定義された実行シーケンスを示す図。
【図１３】Ａは図８のフォーマットによる命令パケットの他の例を示す図。
Ｂは図１３Ａの命令パケットにより定義された実行シーケンスを示す図。
【図１４】Ａはネストされた遅延分岐命令を有する命令パケットのシーケンスであって、６回実行される単一フェーズ・ループを発生する本発明による１例を示す図
。
Ｂは図１４Ａの命令パケットにより定義された実行シーケンスを示す図。
【図１５】Ａはネストされた遅延分岐命令を有する命令パケットのシーケンスであって、条件テストを満足させるまで実行される単一のフェーズ・ループを発生する
本発明による他の例を示す図。
Ｂは図１５Ａの命令パケットにより定義された実行シーケンスを示す図。
【図１６】ネストされた遅延分岐を用いて最適化される内側ループ及び外側ループを有するプログラムを示す本発明によるフローチャート。
【図１７】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図１８】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図１９】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２０】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２１】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２２】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２３】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２４】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２５】図１のマイクロプロセッサ用の命令フォーマットを示す図。
【図２６】ネストされた遅延分岐命令用の、本発明による命令フォーマットを示す図。
【図２７】本発明の他の実施例を有し、２５６ビットの命令メモリを有するマイクロプロセッサのブロック図。
【符号の説明】
１                マイクロプロセッサ
１０              ＣＰＵ
１０ａ〜１０ｃ    命令フェッチ／デコード装置
２０ａ            レジスタ・ファイル
２３              プログラム・メモリ
４２              集積回路
５０              エミュレーション装置
１００            制御回路
【図１】
0003834145.tif 000002
【図２】
0003834145.tif 000003
【図３】
0003834145.tif 000004
【図４】
0003834145.tif 000005
【図５】
0003834145.tif 000006
【図６】
0003834145.tif 000007
【図７】
0003834145.tif 000008
【図８】
0003834145.tif 000009
【図９】
0003834145.tif 000010
【図１０】
0003834145.tif 000011
【図１１】
0003834145.tif 000012
【図１２】
0003834145.tif 000013
【図１３】
0003834145.tif 000014
【図１４】
0003834145.tif 000015
【図１５】
0003834145.tif 000016
【図１６】
0003834145.tif 000017
【図１７】
0003834145.tif 000018
【図１８】
0003834145.tif 000019
【図１９】
0003834145.tif 000020
【図２０】
0003834145.tif 000021
【図２１】
0003834145.tif 000022
【図２２】
0003834145.tif 000023
【図２３】
0003834145.tif 000024
【図２４】
0003834145.tif 000025
【図２５】
0003834145.tif 000026
【図２６】
0003834145.tif 000027
【図２７】
0003834145.tif 000028