(57)【要約】【課題】多重化されたループ動作の制御をオーバヘッドを少なくして実行するためのループ制御回路及びループ制御方法を提供する。【解決手段】多重ループの第２段目以降の階層のループ命令を最初に実行するときに，そのループ命令のアドレス若しくはそのループ命令の１つ前の命令のアドレスを記憶する手段と，記憶したループ命令のアドレス若しくはループ命令の１つ前の命令のアドレスとプログラムカウンタとを比較して第２段目以降の階層のループ命令の再到来を予測する手段と，ループ命令が次に到来することが予測されたときに，そのループ命令を飛び越える手段とを有することを特徴とするループ制御回路。【選択図】　図１
2004030277.tif 000002
【特許請求の範囲】
【請求項１】
多重ループの第２段目以降の階層のループ命令を最初に実行するときに，そのループ命令のアドレス若しくはそのループ命令の１つ前の命令のアドレスを記憶する手段と，
前記記憶したループ命令のアドレス若しくはループ命令の１つ前の命令のアドレスとプログラムカウンタとを比較して前記第２段目以降の階層のループ命令の再到来を予測する手段と，
前記ループ命令が次に到来することが予測されたときに，そのループ命令を飛び越える手段とを有することを特徴とするループ制御回路。
【請求項２】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを「ループ命令レジスタ」に記憶する手段と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とを比較して前記ループ命令の再到来を予測する手段と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致して前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記「ループ命令レジスタ」に記憶したループ先頭アドレス，ループ回数，及びループ最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とするループ制御回路。
【請求項３】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループ回数，及びそのループの最終アドレスを「ループ命令レジスタ」に記憶する手段と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とを比較して前記ループ命令の再到来を予測する手段と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致して前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記ワード数を加えて得られたプログラムカウンタ値をループ先頭アドレスとして「ループ先頭アドレス」スタックにプッシュ・ダウンし，
かつ，前記「ループ命令レジスタ」に記憶したループ回数，及びループ最終アドレスを，それぞれ「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とするループ制御回路。
【請求項４】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，複数組ある内の最先にデータが入力された１組の「ループ命令レジスタ」に記憶する手段と，
前記各組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレス及び有効なループ最終アドレスと，プログラムカウンタ値とを比較して，前記ループ命令の再到来を予測する手段と，
前記いずれかの組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致し，かつ，前記有効なループ最終アドレスとプログラムカウンタ値とが一致しないで，前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記ループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致した組の「ループ命令レジスタ」に記憶したループ先頭アドレス，ループ回数，及びループ最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とするループ制御回路。
【請求項５】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループ回数，及びそのループの最終アドレスを，複数組ある内の最先にデータが入力された１組の「ループ命令レジスタ」に記憶する手段と，
前記各組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレス及び有効なループ最終アドレスと，プログラムカウンタ値とを比較して，前記ループ命令の再到来を予測する手段と，
前記いずれかの組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致し，かつ，前記有効なループ最終アドレスとプログラムカウンタ値とが一致しないで，前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記ワード数を加えて得られたプログラムカウンタ値をループ先頭アドレスとして「ループ先頭アドレス」スタックにプッシュ・ダウンし，
かつ，前記ループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致した組の「ループ命令レジスタ」に記憶したループ回数，及びループ最終アドレスを，それぞれ「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とするループ制御回路。
【請求項６】
多重ループの第２段目以降の階層のループ命令を最初に実行するときに，そのループ命令のアドレス若しくはそのループ命令の１つ前の命令のアドレスを記憶する段階と，
前記記憶したループ命令のアドレス若しくはループ命令の１つ前の命令のアドレスとプログラムカウンタとを比較して前記第２段目以降の階層のループ命令の再到来を予測する段階と，
前記ループ命令が次に到来することが予測されたときに，そのループ命令を飛び越える段階とを有することを特徴とするループ制御方法。
【請求項７】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを「ループ命令レジスタ」に記憶する段階と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とを比較して前記ループ命令の再到来を予測する段階と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致して前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記「ループ命令レジスタ」に記憶したループ先頭アドレス，ループ回数，及びループ最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする段階とを含むことを特徴とするループ制御方法。
【請求項８】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループ回数，及びそのループの最終アドレスを「ループ命令レジスタ」に記憶する段階と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とを比較して前記ループ命令の再到来を予測する段階と，
前記「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致して前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記ワード数を加えて得られたプログラムカウンタ値をループ先頭アドレスとして「ループ先頭アドレス」スタックにプッシュ・ダウンし，
かつ，前記「ループ命令レジスタ」に記憶したループ回数，及びループ最終アドレスを，それぞれ「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする段階とを含むことを特徴とするループ制御方法。
【請求項９】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，複数組ある内の最先にデータが入力された１組の「ループ命令レジスタ」に記憶する段階と，
前記各組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレス及び有効なループ最終アドレスと，プログラムカウンタ値とを比較して，前記ループ命令の再到来を予測する段階と，
前記いずれかの組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致し，かつ，前記有効なループ最終アドレスとプログラムカウンタ値とが一致しないで，前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記ループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致した組の「ループ命令レジスタ」に記憶したループ先頭アドレス，ループ回数，及びループ最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする段階とを含むことを特徴とするループ制御方法。
【請求項１０】
ループ命令を最初に実行するときに，
そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，
かつ，そのループ命令の１つ前の命令のアドレス，そのループ回数，及びそのループの最終アドレスを，複数組ある内の最先にデータが入力された１組の「ループ命令レジスタ」に記憶する段階と，
前記各組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレス及び有効なループ最終アドレスと，プログラムカウンタ値とを比較して，前記ループ命令の再到来を予測する段階と，
前記いずれかの組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致し，かつ，前記有効なループ最終アドレスとプログラムカウンタ値とが一致しないで，前記ループ命令が次に到来することが予測されたときに，
プログラムカウンタ値にそのループ命令を構成するワード数を加え，
かつ，前記ワード数を加えて得られたプログラムカウンタ値をループ先頭アドレスとして「ループ先頭アドレス」スタックにプッシュ・ダウンし，
かつ，前記ループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致した組の「ループ命令レジスタ」に記憶したループ回数，及びループ最終アドレスを，それぞれ「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする段階とを含むことを特徴とするループ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，ループ制御回路及びループ制御方法に関し，特に，多重化されたループの制御を少ないオーバーヘッドで実行するループ制御回路及びループ制御方法に関する。
【０００２】
【従来の技術】
ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）などのプロセッサでは，何度も繰り返し行われる処理にループ命令が使用される。
【０００３】
以下，図面を用いて，従来のループ制御方法について説明する。図８は，従来のループ制御回路の動作を説明するブロック回路図である。スタックの段数がこのループ制御装置で実現できるループの多重階層数を示す。図８に示す回路では，３重のループに対応している。ここで「スタック」とは，後入れ先出し（ＬＩＦＯ；Ｌａｓｔ　ｉｎ　Ｆｉｒｓｔ　ｏｕｔ）のメモリである。以下，スタックにデータを記録することを「プッシュ・ダウン」といい，スタックからデータを取り出すことを「ポップ・アップ」という。図８のループ制御回路では，図９に示すフロー図のように，ループ命令があれば以下の３つの処理（段階Ｓ１）が同時に行われる。
【０００４】
・ループ命令の次命令であるループ先頭アドレスを，「ループ先頭アドレス」スタック４にプッシュ・ダウンする。
・ループ命令に記述されるループ回数を，「ループ回数」スタック５にプッシュ・ダウンする。
・ループ命令に記述されるループ最終アドレスを，「ループ最終アドレス」スタック６にプッシュ・ダウンする。
【０００５】
そして，ループ制御動作では，以下の動作が実行される。ここで「ＰＣ」とは，「プログラムカウンタ」を表す。ＰＣは，次の命令アドレス値を保持するメモリである。
【０００６】
まず，段階Ｓ２で，「ＰＣ値」と「ループ最終アドレス」スタック６のスタック値とを比較する（段階Ｓ２）。もし「ＰＣ値」が「ループ最終アドレス」スタック６のスタック値と等しければ，段階Ｓ３で，「ＰＣ値」を「ループ先頭アドレス」スタック４のスタック値とし（段階Ｓ３），段階Ｓ４で，「ループ回数」スタック５のスタック値から「１」を引く（段階Ｓ４）。段階Ｓ２で，「ＰＣ値」が「ループ最終アドレス」スタック６のスタック値と等しくなければ，ループ制御動作は終了する。
【０００７】
次に，段階Ｓ５で，「ループ回数」スタック５のスタック値と「０」とを比較する（段階Ｓ５）。もし「ループ回数」スタック５のスタック値が「０」であれば，段階Ｓ６で，「ループ先頭アドレス」スタック４をポップ・アップし，「ループ回数」スタック５をポップ・アップし，「ループ最終アドレス」スタック６をポップ・アップする（段階Ｓ６）。そして，ループ制御動作は終了する。
【０００８】
もし段階Ｓ２で「ＰＣ値」が「ループ最終アドレス」スタック６のスタック値と等しくなければ，段階プログラムカウンタ１の値に「１」が加えられ（段階Ｓ７），ループ制御動作は終了し，データ処理は次のアドレスの命令に移る。
【０００９】
この一連の動作によりループ制御装置は，ループ命令によりスタックにセットされる「ループ先頭アドレス」，「ループ回数」，「ループ最終アドレス」の３つの情報を使用してループ動作を実行する。
【００１０】
図１０は，ループ命令のプログラムの例である。図１０に示される命令「ループ命令（１）１００，Ｌｏｏｐ１」は，命令１から命令５までを１００回繰り返すことを意味する。同様に，「ループ命令（２）２，Ｌｏｏｐ２」は，命令３から命令４までを２回繰り返すことを意味する。ここで，図１０のように，ループ命令（１）（外側のループ命令）のループの中に他のループ命令（２）（内側のループ命令）が入っていることを多重ループという。図１１は，図１０のプログラムを実行した場合の命令の処理手順を示している。図１１に示されるように，図１０のプログラムは，「ループ命令（１）→命令１→命令２→ループ命令（２）→命令３→命令４→命令３→命令４→命令５→命令１→命令２→ループ命令（２）→・・・→命令５」と処理される。図１０のプログラムは，命令１から命令５までの処理を１００回繰り返し実行する。
【００１１】
【発明が解決しようとする課題】
しかしながら従来のループ制御方法では，多重ループ命令を実行する場合，内側のループ命令を外側のループの回数分実行する必要があった。図１１では，ループ命令（２）９００が１００回繰り返し実行される。ここで，ループ命令（２）は，命令３及び命令４を２回繰り返すことを単に指示しているだけであり，実際のデータ処理を行っていない。そのため，プログラム全体の処理効率を考えると，内側のループ命令は，オーバーヘッドを増やすという問題があった。
【００１２】
そこで本発明は，多重化されたループの制御を少ないオーバヘッドで実行するループ制御回路及びループ制御方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するための本発明のループ制御回路は，多重ループの第２段目以降の階層のループ命令を最初に実行するときに，そのループ命令のアドレス若しくはそのループ命令の１つ前の命令のアドレスを記憶する手段と，記憶したループ命令のアドレス若しくはループ命令の１つ前の命令のアドレスとプログラムカウンタとを比較して第２段目以降の階層のループ命令の再到来を予測する手段と，ループ命令が次に到来することが予測されたときに，そのループ命令を飛び越える手段とを有することを特徴とする。
【００１４】
また，上記目的を達成するための本発明の他のループ制御回路は，
ループ命令を最初に実行するときに，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，かつ，そのループ命令の１つ前の命令のアドレス，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを「ループ命令レジスタ」に記憶する手段と，
「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とを比較してループ命令の再到来を予測する手段と，
「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致してループ命令が次に到来することが予測されたときに，プログラムカウンタ値にそのループ命令を構成するワード数を加え，かつ，「ループ命令レジスタ」に記憶したループ先頭アドレス，ループ回数，及びループ最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とする。
【００１５】
このような構成により，多重化されたループ動作の制御をオーバヘッドを少なくして実行することができる。
【００１６】
また，上記目的を達成するための本発明の他のループ制御回路は，
ループ命令を最初に実行するときに，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，かつ，そのループ命令の１つ前の命令のアドレス，そのループ回数，及びそのループの最終アドレスを「ループ命令レジスタ」に記憶する手段と，
「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とを比較してループ命令の再到来を予測する手段と，
「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致してループ命令が次に到来することが予測されたときに，プログラムカウンタ値にそのループ命令を構成するワード数を加え，かつ，ワード数を加えて得られたプログラムカウンタ値をループ先頭アドレスとして「ループ先頭アドレス」スタックにプッシュ・ダウンし，かつ，「ループ命令レジスタ」に記憶したループ回数，及びループ最終アドレスを，それぞれ「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とする。
【００１７】
このような構成により，多重化されたループ動作の制御をオーバヘッドを少なくして実行することができ，更に，ループ命令レジスタに記憶するデータ量を少なくしたのでハードウェア資源がより節約できる。
【００１８】
また，上記目的を達成するための本発明の他のループ制御回路は，
ループ命令を最初に実行するときに，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，かつ，そのループ命令の１つ前の命令のアドレス，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，複数組ある内の最先にデータが入力された１組の「ループ命令レジスタ」に記憶する手段と，
各組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレス及び有効なループ最終アドレスと，プログラムカウンタ値とを比較して，ループ命令の再到来を予測する手段と，
いずれかの組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致し，かつ，有効なループ最終アドレスとプログラムカウンタ値とが一致しないで，ループ命令が次に到来することが予測されたときに，プログラムカウンタ値にそのループ命令を構成するワード数を加え，かつ，ループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致した組の「ループ命令レジスタ」に記憶したループ先頭アドレス，ループ回数，及びループ最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とする。
【００１９】
ここで，「有効なループ最終アドレス」とは，その時点でループ制御回路が維持しているループ最終アドレスをいう。以下の記述も同様である。
【００２０】
このような構成により，多重化されたループ動作の制御をオーバヘッドを少なくして実行することができる。更に，第２段目以降の階層に同レベルの複数のループ命令が存在してもこれに対応できる。
【００２１】
また，上記目的を達成するための本発明の他のループ制御回路は，
ループ命令を最初に実行するときに，そのループの先頭アドレス，そのループ回数，及びそのループの最終アドレスを，それぞれ「ループ先頭アドレス」スタック，「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンし，かつ，そのループ命令の１つ前の命令のアドレス，そのループ回数，及びそのループの最終アドレスを，複数組ある内の最先にデータが入力された１組の「ループ命令レジスタ」に記憶する手段と，
各組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレス及び有効なループ最終アドレスと，プログラムカウンタ値とを比較して，ループ命令の再到来を予測する手段と，
いずれかの組の「ループ命令レジスタ」に記憶したループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致し，かつ，有効なループ最終アドレスとプログラムカウンタ値とが一致しないで，ループ命令が次に到来することが予測されたときに，プログラムカウンタ値にそのループ命令を構成するワード数を加え，かつ，ワード数を加えて得られたプログラムカウンタ値をループ先頭アドレスとして「ループ先頭アドレス」スタックにプッシュ・ダウンし，かつ，ループ命令の１つ前の命令のアドレスとプログラムカウンタ値とが一致した組の「ループ命令レジスタ」に記憶したループ回数，及びループ最終アドレスを，それぞれ「ループ回数」スタック，及び「ループ最終アドレス」スタックにプッシュ・ダウンする手段とを含むことを特徴とする。
【００２２】
このような構成により，多重化されたループ動作の制御をオーバヘッドを少なくして実行することができる。また，第２段目以降の階層に同レベルの複数のループ命令が存在してもこれに対応できる。更に，ループ命令レジスタに記憶するデータ量を少なくしたのでハードウェア資源がより節約できる。
【００２３】
また，上記目的を達成するための本発明のループ制御方法は，多重ループの第２段目以降の階層のループ命令を最初に実行するときに，そのループ命令のアドレス若しくはそのループ命令の１つ前の命令のアドレスを記憶する段階と，記憶したループ命令のアドレス若しくはループ命令の１つ前の命令のアドレスとプログラムカウンタとを比較して第２段目以降の階層のループ命令の再到来を予測する段階と，ループ命令が次に到来することが予測されたときに，そのループ命令を飛び越える段階とを有することを特徴とする。
【００２４】
【発明の実施の形態】
以下，本発明の実施の形態を図面に基づいて説明する。なお，本発明の実施の形態を説明するための全図において，同一機能を有するものは同一符号を付与し，その繰り返しの説明は省略する。
【００２５】
（第１の実施の形態）
図１は，本発明による第１の実施の形態のループ制御回路のブロック回路図である。第１の実施の形態のループ制御回路は，以下のように動作する。
【００２６】
まず，ループ命令を実行するときは，そのループ命令で指示された「ループ先頭アドレス」を，「ループ先頭アドレス」スタック１４にプッシュ・ダウンし，「ループ回数」を，「ループ回数」スタック１５にプッシュ・ダウンし，「ループ最終アドレス」を，「ループ最終アドレス」スタック１６にプッシュ・ダウンする。
【００２７】
そして，ループ命令レジスタ１７に，「ループ命令の１つ前の命令アドレス」，「ループ先頭アドレス」，「ループ回数」，「ループ最終アドレス」をそれぞれの格納場所に格納する。
【００２８】
次に，ループ命令制御回路１３は，ループ命令レジスタ１７に格納されている「ループ命令の１つ前の命令アドレス」とＰＣ１１の「ＰＣ値」とを比較し，もしそれらが等しければ，以下の４動作を同時に実行する。
【００２９】
・「ＰＣ値」を，ループ命令を迂回する値とする。
・ループ命令レジスタ１７に格納される「ループ先頭アドレス」を，「ループ先頭アドレス」スタック１４にプッシュ・ダウンする。
・ループ命令レジスタ１７に格納される「ループ回数」を，「ループ回数」スタック１５にプッシュ・ダウンする。
・ループ命令レジスタ１７に格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック１６にプッシュ・ダウンする。
【００３０】
なお，ループ命令を迂回するときにＰＣ値に加える値は，ループ命令のワード数によって決まり，２ワードなら＋２，３ワードなら＋３である。本実施の形態では，ＰＣ値に２を加えている。
【００３１】
以下は，従来のループ制御方法と同様，図９に示した段階Ｓ２〜段階Ｓ７の処理が行われ，次の命令のためのプログラムアドレスが出力され，ループ制御は一端終了する。
【００３２】
上記の動作により，内側の第２回目のループ命令が迂回されてループ命令レジスタ内の値によりループ制御回路が動作することとなり，第２回目以降のループ命令は実行されず，従ってそのループ命令の処理時間も不要になる。
【００３３】
更に，第１の実施の形態の動作を，図２に示すプログラム例１を例に挙げて説明する。第１の実施の形態では，プログラム例１の第２行目の「ループ命令（１）」の実行時に，まず，命令１のアドレスを，「ループ先頭アドレス」スタック１４にプッシュ・ダウンし，ループ回数「１００」を，「ループ回数」スタック１５にプッシュ・ダウンし，命令５のアドレスを，「ループ最終アドレス」スタック１６にプッシュ・ダウンする。そして，命令０のアドレスを，ループ命令レジスタ１７の「ループ命令の１つ前の命令アドレス」の格納場所に格納し，命令１のアドレスを，ループ命令レジスタ１７の「ループ先頭アドレス」の格納場所に格納し，ループ回数「１００」を，ループ命令レジスタ１７の「ループ回数」の格納場所に格納し，命令５のアドレスを，ループ命令レジスタ１７の「ループ最終アドレス」の格納場所に格納する。
【００３４】
そして，第５行目の「ループ命令（２）」の実行時に，命令３のアドレスを，「ループ先頭アドレス」スタック１４にプッシュ・ダウンし，ループ回数「２」を，「ループ回数」スタック１５にプッシュ・ダウンし，命令４のアドレスを，「ループ最終アドレス」スタック１６にプッシュ・ダウンする。そして，命令２のアドレスを，ループ命令レジスタ１７の「ループ命令の１つ前の命令アドレス」の格納場所に格納（上書き）し，命令３のアドレスを，ループ命令レジスタ１７の「ループ先頭アドレス」の格納場所に格納（上書き）し，ループ回数「２」を，ループ命令レジスタ１７の「ループ回数」の格納場所に格納（上書き）し，命令４のアドレスを，ループ命令レジスタ１７の「ループ最終アドレス」の格納場所に格納（上書き）する。
【００３５】
これでループ命令（２）によるループ動作が完了し，次に，ループ命令（１）による動作制御により命令５，命令１，命令２と実行が進む。そして，命令２を実行している時に，ループ命令レジスタ１７の「ループ命令の１つ前の命令アドレス」と「ＰＣ値」とが等しくなる。この時，以下の４動作が同時に実行される。
【００３６】
・ＰＣ１１の「ＰＣ値」を，ループ命令を迂回する値とする（ＰＣをＰＣ＋２とする。この動作により，次は命令３が実行される）。
・ループ命令レジスタ１７に格納される「ループ先頭アドレス」を，「ループ先頭アドレス」スタック１４にプッシュ・ダウンする。
・ループ命令レジスタ１７に格納される「ループ回数」を，「ループ回数」スタック１５にプッシュ・ダウンする。
・ループ命令レジスタ１７に格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック１６にプッシュ・ダウンする。
【００３７】
そして，図９に示す段階Ｓ２で，「ＰＣ値」と「ループ最終アドレス」スタック１６のスタック値とを比較する（段階Ｓ２）。もし「ＰＣ値」が「ループ最終アドレス」スタック１６のスタック値と等しければ，段階Ｓ３で，「ＰＣ値」を「ループ先頭アドレス」スタック１６のスタック値とする（段階Ｓ３）。
【００３８】
次に，段階Ｓ４で，「ループ回数」スタック１５のスタック値から，「１」を引く（段階Ｓ４）。そして，段階Ｓ５で，「ループ回数」スタック１５のスタック値と「０」とを比較する（段階Ｓ５）。もし「ループ回数」スタック１５のスタック値が「０」であれば，段階Ｓ６で，「ループ先頭アドレス」スタック１４をポップ・アップし，「ループ回数」スタック１５をポップ・アップし，「ループ最終アドレス」スタック１６をポップ・アップする（段階Ｓ６）。
【００３９】
もし「ＰＣ値」が「ループ最終アドレス」スタック１６のスタック値と等しくなければ，プログラムカウンタ１１の値に「１」が加えられ（段階Ｓ７），ループ制御は一端終了し，データ処理は次のアドレスの命令に移る。
【００４０】
以上の動作により，ループ命令（２）を第２回目以降に処理するためのサイクルタイムが不要になり，オーバーヘッドを少なくすることができる。図３は，第１の実施の形態で図２のプログラム例１を実施したときの処理手順の一部である。第１の実施の形態によれば，従来直列に処理していたループ命令（２）と命令２とは，図３に示されるように並列に処理される。
【００４１】
（第２の実施の形態）
図４は，本発明による第２の実施の形態のループ制御回路のブロック回路図である。第２の実施の形態のループ制御回路は，以下のように動作する。
【００４２】
まず，ループ命令を実行するときは，そのループ命令で指示された「ループ先頭アドレス」を，「ループ先頭アドレス」スタック２４にプッシュ・ダウンし，「ループ回数」を，「ループ回数」スタック２５にプッシュ・ダウンし，「ループ最終アドレス」を，「ループ最終アドレス」スタック２６にプッシュ・ダウンする。
【００４３】
そして，ループ命令レジスタ２７に，「ループ命令の１つ前の命令アドレス」，「ループ回数」，「ループ最終アドレス」をそれぞれの格納場所に格納する。
【００４４】
次に，ループ命令制御回路２３は，ループ命令レジスタ２７に格納されている「ループ命令の１つ前の命令アドレス」とＰＣ２１の「ＰＣ値」とを比較し，もしそれらが等しければ，以下の４動作を同時に実行する。
【００４５】
・「ＰＣ値」を，ループ命令を迂回する値とする（本実施の形態では，ＰＣ＝ＰＣ＋２）。
・得られた「ＰＣ値」を「ループ先頭アドレス」とし，「ループ先頭アドレス」スタック２４にプッシュ・ダウンする。
・ループ命令レジスタ２７に格納される「ループ回数」を，「ループ回数」スタック２５にプッシュ・ダウンする。
・ループ命令レジスタ２７に格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック２６にプッシュ・ダウンする。
【００４６】
なお，ループ命令を迂回するときにＰＣ値に加える値は，ループ命令のワード数によって決まり，２ワードなら＋２，３ワードなら＋３である。本実施の形態では，ＰＣ値に２を加えている。
【００４７】
以下は，従来のループ制御方法と同様，図９に示した段階Ｓ２〜段階Ｓ７の処理が行われ，次の命令のためのプログラムアドレスが出力され，ループ制御は一端終了する。
【００４８】
上記の動作により，内側の第２回目のループ命令が迂回されてループ命令レジスタ内の値によりループ制御回路が動作することとなり，第２回目以降のループ命令は実行されず，従ってそのループ命令の処理時間も不要になる。
【００４９】
第２の実施の形態の動作については，「ループ先頭アドレス」を「ＰＣ値」から計算する点以外は，第１の実施の形態と同様である。第２の実施の形態では，第１の実施の形態の効果に加え，「ループ先頭アドレス」をループ命令レジスタ２７に格納する必要が無くなり，ハードウェア資源が節約できる。
【００５０】
（第３の実施の形態）
図５は，本発明による第３の実施の形態のループ制御回路のブロック回路図である。第３の実施の形態のループ制御回路は，以下のように動作する。
【００５１】
まず，ループ命令を実行するときは，そのループ命令で指示された「ループ先頭アドレス」を，「ループ先頭アドレス」スタック３４にプッシュ・ダウンし，「ループ回数」を，「ループ回数」スタック３５にプッシュ・ダウンし，「ループ最終アドレス」を，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。
【００５２】
そして，２組のループ命令レジスタ３７ａ，３７ｂの内の，最先にデータが入力された１組に，「ループ命令の１つ前の命令アドレス」，「ループ先頭アドレス」，「ループ回数」，「ループ最終アドレス」をそれぞれの格納場所に格納する。
【００５３】
次に，ループ命令制御回路３３は，ループ命令レジスタＡ３７ａ及びループ命令レジスタＢ３７ｂに格納されている，各「ループ命令の１つ前の命令アドレス」（２個）と，ＰＣ３１の「ＰＣ値」とを比較し，もしそれらが等しく，かつ，ＰＣ３１の「ＰＣ値」が有効なループ最終アドレスでないならば，以下の４動作を同時に実行する。ここでは，ループ命令レジスタＡ３７ａに格納されている「ループ命令の１つ前の命令アドレス」とＰＣ３１の「ＰＣ値」とが等しいとする。
【００５４】
・「ＰＣ値」を，ループ命令を迂回する値とする。
・ループ命令レジスタＡ３７ａに格納される「ループ先頭アドレス」を，「ループ先頭アドレス」スタック３４にプッシュ・ダウンする。
・ループ命令レジスタＡ３７ａに格納される「ループ回数」を，「ループ回数」スタック３５にプッシュ・ダウンする。
・ループ命令レジスタＡ３７ａに格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。
【００５５】
なお，ループ命令を迂回するときにＰＣ値に加える値は，ループ命令のワード数によって決まり，２ワードなら＋２，３ワードなら＋３である。本実施の形態では，ＰＣ値に２を加えている。
【００５６】
以下は，従来のループ制御方法と同様，図９に示した段階Ｓ２〜段階Ｓ７の処理が行われ，次の命令のためのプログラムアドレスが出力され，ループ制御は一端終了する。
【００５７】
上記の動作により，内側の第２回目のループ命令が迂回されてループ命令レジスタ内の値によりループ制御回路が動作することとなり，第２回目以降のループ命令は実行されず，従ってそのループ命令の処理時間も不要になる。
【００５８】
更に，第３の実施の形態の動作を，図６のプログラム例２を例に挙げて説明する。第３の実施の形態では，プログラム例２の第２行目の「ループ命令（１）」の実行時に，まず，命令１のアドレスを，「ループ先頭アドレス」スタック３４にプッシュ・ダウンし，ループ回数「１００」を，「ループ回数」スタック３５にプッシュ・ダウンし，命令７のアドレスを，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。そして，命令０のアドレスを，ループ命令レジスタＡ３７ａの「ループ命令の１つ前の命令アドレス」の格納場所に格納し，命令１のアドレスを，ループ命令レジスタＡ３７ａの「ループ先頭アドレス」の格納場所に格納し，ループ回数「１００」を，ループ命令レジスタＡ３７ａの「ループ回数」の格納場所に格納し，命令７のアドレスを，ループ命令レジスタＡ３７ａの「ループ最終アドレス」の格納場所に格納する。
【００５９】
そして，第５行目の「ループ命令（２）」の実行時に，命令３のアドレスを，「ループ先頭アドレス」スタック３４にプッシュ・ダウンし，ループ回数「２」を，「ループ回数」スタック３５にプッシュ・ダウンし，命令４のアドレスを，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。
【００６０】
そして，命令２のアドレスを，ループ命令レジスタＢ３７ｂの「ループ命令の１つ前の命令アドレス」の格納場所に格納し，命令３のアドレスを，ループ命令レジスタＢ３７ｂの「ループ先頭アドレス」の格納場所に格納し，ループ回数「２」を，ループ命令レジスタＢ３７ｂの「ループ回数」の格納場所に格納し，命令４のアドレスを，ループ命令レジスタＢ３７ｂの「ループ最終アドレス」の格納場所に格納する。
【００６１】
そして，第８行目の「ループ命令（３）」の実行時に，命令５のアドレスを，「ループ先頭アドレス」スタック３４にプッシュ・ダウンし，ループ回数「３」を，「ループ回数」スタック３５にプッシュ・ダウンし，命令６のアドレスを，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。
【００６２】
そして，命令４のアドレスを，ループ命令レジスタＡ３７ａの「ループ命令の１つ前の命令アドレス」の格納場所に格納（上書き）し，命令５のアドレスを，ループ命令レジスタＡ３７ａの「ループ先頭アドレス」の格納場所に格納（上書き）し，ループ回数「３」を，ループ命令レジスタＡ３７ａの「ループ回数」の格納場所に格納（上書き）し，命令６のアドレスを，ループ命令レジスタＡ３７ａの「ループ最終アドレス」の格納場所に格納（上書き）する。
【００６３】
これでループ命令（３）によるループ動作が完了し，次に，ループ命令（１）による動作制御により命令７，命令１，命令２と実行が進む。そして，命令２を実行している時にループ命令レジスタＢ３７ｂの「ループ命令の１つ前の命令アドレス」とＰＣ３１の「ＰＣ値」とが等しくなり，かつ，「ＰＣ値」が有効なループ最終アドレスでないため，以下の４動作が同時に実行される。
【００６４】
・ＰＣ３１の「ＰＣ値」を，ループ命令を迂回する値とする（ＰＣをＰＣ＋２とする。この動作により，次は命令３が実行される）。
・ループ命令レジスタＢ３７ｂに格納される「ループ先頭アドレス」を，「ループ先頭アドレス」スタック３４にプッシュ・ダウンする。
・ループ命令レジスタＢ３７ｂに格納される「ループ回数」を，「ループ回数」スタック３５にプッシュ・ダウンする。
・ループ命令レジスタＢ３７ｂに格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。
【００６５】
以上の動作により，ループ制御回路にＬｏｏｐ２の情報が格納され，Ｌｏｏｐ２の動作（すなわち，命令３及び命令４の２回のループ動作）がループ制御回路により実行される。
【００６６】
次に，ループ命令（２）によるループ動作が完了した時，ループ命令レジスタＡ３７ａの「ループ命令の１つ前の命令アドレス」と「ＰＣ値」とが等しくなり，かつ，ＰＣ値が有効なループ最終アドレスでないため，以下の４動作が同時に実行される。
【００６７】
・ＰＣ３１の「ＰＣ値」を，ループ命令を迂回する値とする（ＰＣをＰＣ＋２とする。この動作により，次は命令５が実行される）。
・ループ命令レジスタＡ３７ａに格納される「ループ先頭アドレス」を，「ループ先頭アドレス」スタック３４にプッシュ・ダウンする。
・ループ命令レジスタＡ３７ａに格納される「ループ回数」を，「ループ回数」スタック３５にプッシュ・ダウンする。
・ループ命令レジスタＡ３７ａに格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック３６にプッシュ・ダウンする。
【００６８】
この４動作により，ループ制御回路にＬｏｏｐ３の情報が格納され，Ｌｏｏｐ３の動作（すなわち，命令５及び命令６の３回のループ動作）がループ制御回路により実行される。
【００６９】
そして，図９に示す段階Ｓ２で，「ＰＣ値」と「ループ最終アドレス」スタック３６のスタック値とを比較する（段階Ｓ２）。もし「ＰＣ値」が「ループ最終アドレス」スタック３６のスタック値と等しければ，段階Ｓ３で，「ＰＣ値」を「ループ先頭アドレス」スタック３６のスタック値とする（段階Ｓ３）。
【００７０】
次に，段階Ｓ４で，「ループ回数」スタック３５のスタック値から，「１」を引く（段階Ｓ４）。そして，段階Ｓ５で，「ループ回数」スタック３５のスタック値と「０」とを比較する（段階Ｓ５）。もし「ループ回数」スタック３５のスタック値が「０」であれば，段階Ｓ６で，「ループ先頭アドレス」スタック３４をポップ・アップし，「ループ回数」スタック３５をポップ・アップし，「ループ最終アドレス」スタック３６をポップ・アップする（段階Ｓ６）。
【００７１】
もし「ＰＣ値」が「ループ最終アドレス」スタック３６のスタック値と等しくなければ，プログラムカウンタ３１の値に「１」が加えられ（段階Ｓ７），ループ制御は一端終了し，データ処理は次のアドレスの命令に移る。
【００７２】
このように，Ｌｏｏｐ２及びＬｏｏｐ３のループ命令は，第２回目以降は実行されない。従って，外側のＬｏｏｐ１の内側のループ命令（Ｌｏｏｐ２及びＬｏｏｐ３）の２回目以降の処理時間が不要になる。
【００７３】
従来のループ制御回路では，Ｌｏｏｐ１内の命令を実行するために，１５０１カウント（サイクル）が必要であったが，同じ命令を第３の実施の形態では，１３０３カウント（サイクル）で実行できる。
【００７４】
（第４の実施の形態）
図７は，本発明による第４の実施の形態のループ制御回路のブロック回路図である。第４の実施の形態のループ制御回路は，以下のように動作する。
【００７５】
まず，ループ命令を実行するときは，そのループ命令で指示された「ループ先頭アドレス」を，「ループ先頭アドレス」スタック４４にプッシュ・ダウンし，「ループ回数」を，「ループ回数」スタック４５にプッシュ・ダウンし，「ループ最終アドレス」を，「ループ最終アドレス」スタック４６にプッシュ・ダウンする。
【００７６】
そして，２組のループ命令レジスタ４７ａ，４７ｂの内の，最先にデータが入力された１組に，「ループ命令の１つ前の命令アドレス」，「ループ回数」，「ループ最終アドレス」をそれぞれの格納場所に格納する。
【００７７】
次に，ループ命令制御回路４３は，ループ命令レジスタＡ４７ａ及びループ命令レジスタＢ４７ｂに格納されている，各「ループ命令の１つ前の命令アドレス」（２個）と，ＰＣ４１の「ＰＣ値」とを比較し，もしそれらが等しく，かつ，ＰＣ４１の「ＰＣ値」が有効なループ最終アドレスでないならば，以下の４動作を同時に実行する。ここでは，ループ命令レジスタＡ４７ａに格納されている「ループ命令の１つ前の命令アドレス」とＰＣ４１の「ＰＣ値」とが等しいとする。
【００７８】
・「ＰＣ値」を，ループ命令を迂回する値とする（本実施の形態では，ＰＣ＝ＰＣ＋２）。
・得られた「ＰＣ値」を「ループ先頭アドレス」とし，「ループ先頭アドレス」スタック４４にプッシュ・ダウンする。
・ループ命令レジスタＡ４７ａに格納される「ループ回数」を，「ループ回数」スタック４５にプッシュ・ダウンする。
・ループ命令レジスタＡ４７ａに格納される「ループ最終アドレス」を，「ループ最終アドレス」スタック４６にプッシュ・ダウンする。
【００７９】
なお，ループ命令を迂回するときにＰＣ値に加える値は，ループ命令のワード数によって決まり，２ワードなら＋２，３ワードなら＋３である。本実施の形態では，ＰＣ値に２を加えている。
【００８０】
そして，図９に示す段階Ｓ２で，「ＰＣ値」と「ループ最終アドレス」スタック４６のスタック値とを比較する（段階Ｓ２）。もし「ＰＣ値」が「ループ最終アドレス」スタック４６のスタック値と等しければ，段階Ｓ３で，「ＰＣ値」を「ループ先頭アドレス」スタック４６のスタック値とする（段階Ｓ３）。
【００８１】
次に，段階Ｓ４で，「ループ回数」スタック４５のスタック値から，「１」を引く（段階Ｓ４）。そして，段階Ｓ５で，「ループ回数」スタック４５のスタック値と「０」とを比較する（段階Ｓ５）。もし「ループ回数」スタック４５のスタック値が「０」であれば，段階Ｓ６で，「ループ先頭アドレス」スタック４４をポップ・アップし，「ループ回数」スタック４５をポップ・アップし，「ループ最終アドレス」スタック４６をポップ・アップする（段階Ｓ６）。
【００８２】
もし「ＰＣ値」が「ループ最終アドレス」スタック４６のスタック値と等しくなければ，プログラムカウンタ４１の値に「１」が加えられ（段階Ｓ７），ループ制御は一端終了し，データ処理は次のアドレスの命令に移る。
【００８３】
上記の動作により，内側の第２回目のループ命令が迂回されてループ命令レジスタ内の値によりループ制御回路が動作することとなり，第２回目以降のループ命令は実行されず，従ってそのループ命令の処理時間も不要になる。
【００８４】
第４の実施の形態の動作については，ループ先頭アドレスをＰＣ値から計算する点以外は，第３の実施の形態と同様である。第４の実施の形態では，第３の実施の形態の効果に加え，ループ先頭アドレスをループ命令レジスタに格納する必要が無くなり，ハードウェア資源が節約できる。
【００８５】
なお，本発明のループ制御方法は，上記本発明のループ制御回路の説明によって説明される。
【００８６】
以上，添付図面を参照しながら本発明のループ制御回路及びループ制御方法の好適な実施の形態について説明したが，本発明はこれらの例に限定されない。いわゆる当業者であれば，特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり，それらについても当然に本発明の技術的範囲に属するものと了解される。また，本明細書では，２重または３重ループの動作について説明したが，それ以上の多重ループでも本発明が適用できることはいうまでもない。
【００８７】
【発明の効果】
本発明により，多重化されたループ動作の制御をオーバヘッドを少なくして実行するためのループ制御回路及びループ制御方法が提供できた。
【図面の簡単な説明】
【図１】図１は，第１の実施の形態のループ制御回路のブロック回路図である。
【図２】図２は，多重ループプログラム例１である。
【図３】図３は，第１の実施の形態でプログラム例１を実施したときの処理手順の一部である。
【図４】図４は，第２の実施の形態のループ制御回路のブロック回路図である。
【図５】図５は，第３の実施の形態のループ制御回路のブロック回路図である。
【図６】図６は，多重ループプログラム例２である。
【図７】図７は，第４の実施の形態のループ制御回路のブロック回路図である。
【図８】図８は，従来のループ制御回路のブロック回路図である。
【図９】図９は，一般的なループ処理を示すフロー図である。
【図１０】図１０は，多重ループプログラム例３である。
【図１１】図１１は，プログラム例３をべた書きにした処理手順の一部である。
【符号の説明】
１，１１，２１，３１，４１　　ＰＣ（プログラムカウンタ）
２，１２，２２，３２，４２　　ループ制御回路
３，１３，２３，３３，４３　　ループ命令制御回路
４，１４，２４，３４，４４　　「ループ先頭アドレス」スタック
５，１５，２５，３５，４５　　「ループ回数」スタック
６，１６，２６，３６，４６　　「ループ最終アドレス」スタック
１７，２７　　　　ループ命令レジスタ
３７ａ，４７ａ　　ループ命令レジスタＡ
３７ｂ，４７ｂ　　ループ命令レジスタＢ
８，１８，２８，３８，３９ａ，３９ｂ，３９ｃ，４８，４９ａ，４９ｂ　セレクタ
【図１】
2004030277.tif 000003
【図２】
2004030277.tif 000004
【図３】
2004030277.tif 000005
【図４】
2004030277.tif 000006
【図５】
2004030277.tif 000007
【図６】
2004030277.tif 000008
【図７】
2004030277.tif 000009
【図８】
2004030277.tif 000010
【図９】
2004030277.tif 000011
【図１０】
2004030277.tif 000012
【図１１】
2004030277.tif 000013