JP2000020308A - プログラム制御方法およびその装置 - Google Patents

プログラム制御方法およびその装置

Info

Publication number
JP2000020308A
JP2000020308A JP10185206A JP18520698A JP2000020308A JP 2000020308 A JP2000020308 A JP 2000020308A JP 10185206 A JP10185206 A JP 10185206A JP 18520698 A JP18520698 A JP 18520698A JP 2000020308 A JP2000020308 A JP 2000020308A
Authority
JP
Japan
Prior art keywords
loop
instruction
instructions
nop
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP10185206A
Other languages
English (en)
Other versions
JP3498831B2 (ja
Inventor
Masayuki Yamazaki
雅之 山▲崎▼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP18520698A priority Critical patent/JP3498831B2/ja
Publication of JP2000020308A publication Critical patent/JP2000020308A/ja
Application granted granted Critical
Publication of JP3498831B2 publication Critical patent/JP3498831B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 命令をパイプライン処理する情報処理装置に
おいて複数の命令を繰り返し実行させるループ処理のプ
ログラム制御方法および装置に関して、ループ対象命令
数に応じた適切な数のNOP命令を挿入することによ
り、パイプライン段数が増えてもループ処理したい命令
の最小数を限定せずに、高速にループ処理するプログラ
ム制御方法および装置を提供すること。 【解決手段】 本発明によるプログラム制御方法は、命
令をパイプライン処理する情報処理装置において、ルー
プ命令に続く複数の命令を繰り返し実行するループ処理
に関するプログラム制御方法であって、前記ループ命令
をデコードすることによりループ対象命令数Lを得るス
テップと、前記ループ対象命令数Lが所定の数N以下の
場合にNOP命令をM回実行するステップと、前記複数
の命令を実行するステップと、前記複数の命令を実行す
る前記ステップが所定のループ回数だけ行われたか否か
を判定するステップと、を含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令をパイプライ
ン処理する情報処理装置におけるループ処理のプログラ
ム制御方法およびその装置に関する。
【0002】
【従来の技術】命令をパイプライン処理する情報処理装
置において、従来から複数の命令を繰り返し実行させる
ループ命令がある。このループ命令は、ループ対象とな
る命令の数(以下ループ対象命令数と表記)を指定する
ことにより、ループ対象の命令を指定した回数繰り返し
実行するループ処理を行うことを指示する。
【0003】図10は、3段パイプラインの情報処理装
置におけるループ処理の動作を示す。いま、ループ対象
命令が格納されている先頭の番地に分岐するか否かを判
定することができるのは、現在実行中のループ処理を指
示したループ命令を処理するステージのEXステージ以
降であると仮定する。この仮定の下では、ループ対象命
令が格納されている先頭の番地に分岐するか否かを判定
するまでに、ループ命令に続くいくつかの命令が実行さ
れてしまうことになる。図10に示されるような、IF
ステージ、DEステージ、EXステージから構成される
3段パイプラインの場合には、ループ命令のEXステー
ジはループ命令の次の命令1のDEステージ、命令1の
次の命令2のIFステージに相当する。よって、命令1
と命令2の2命令の処理が開始される前には、ループ命
令による分岐判定をすることはできない。その結果、ル
ープ命令が実行される場合には、ループ命令の直後の命
令1と命令2は常に実行されることとなる。そのため、
ループ処理の対象にできる命令の最小数(以下「最小ル
ープ対象命令数」と表記する。)は2である。もし、ル
ープ処理の対象としたい命令が1命令である場合には、
ループ命令の次に無処理命令(以下「NOP命令」と表
記する。)をコンパイラ等が挿入しておく必要がある。
しかし、ループ命令の次にNOP命令を挿入した場合、
NOP命令がループ対象命令に含まれるため、ループ処
理を行う回数だけ無駄なNOP命令が実行されることに
なる。
【0004】図11は、4段パイプラインの情報処理装
置におけるループ処理の動作を示す。上述した3段パイ
プラインの情報処理装置と同じ仮定の下では、命令1と
命令2と命令3の3命令の処理が開始される前には、ル
ープ命令による分岐判定をすることはできない。その結
果、ループ命令が実行される場合には、ループ命令の直
後の命令1と命令2と命令3の3命令は常に実行される
こととなる。そのため、最小ループ対象命令数は3であ
る。もし、ループ処理の対象としたい命令が1命令であ
る場合には、ループ命令の次にNOP命令を2回挿入し
ておく必要がある。ループ命令の次にNOP命令を2回
挿入した場合、ループ処理を行う回数の2倍の回数だけ
無駄なNOP命令が実行されることになる。
【0005】このような無駄なNOP命令の実行を回避
するために、ループ命令を複数サイクル命令にする方法
がある。すなわち、ループ命令がデコードされると、ル
ープ命令の直後にハードウェアによってNOP命令を挿
入することにより、ループ命令を処理に複数サイクルを
要する命令として取り扱う方法である。NOP命令を挿
入する回数は、最小ループ対象命令数と、ループ命令に
よる分岐判定を行うことが可能になるステージが当該ル
ープ命令を処理するパイプラインステージのうちの何番
目のステージであるかに依存する。例えば、最小ループ
対象命令数を1とすると、上述した3段パイプラインの
例では1回であり、4段パイプラインの例では2回とな
る。上記の方法により、ループ命令の直後にNOP命令
をコンパイラ等が挿入しておく必要がなくなり、ループ
処理を行う度に無駄なNOP命令が実行されることがな
くなる。ループ命令を複数サイクル命令にする方法は、
例えば、日本テキサス・インスツルメンツ株式会社のT
MS320C30ユーザーズ・マニュアルの7−2頁、
7−3頁、11−153頁、11−154頁に記載され
ている。しかし、この方法を用いた場合には、ループ対
象命令数に関係なくNOP命令が挿入されるため、ルー
プ対象命令数が最小ループ対象命令数より多い場合にも
無駄なNOP命令が挿入されるという問題があった。
【0006】
【発明が解決しようとする課題】上述したように、従来
の情報処理装置におけるループ処理では、ループ命令に
よる分岐判定を行うことが可能になるステージが当該ル
ープ命令を処理するパイプラインステージのうちの何番
目のステージであるかに依存して、最小ループ対象命令
数が限定される。その結果、ループ処理の対象としたい
命令の数が最小ループ対象命令数より少ない場合には、
無駄なNOP命令を挿入しておく必要があった。
【0007】また、ループ命令を複数サイクル命令とし
た場合、コンパイラ等が無駄なNOP命令を挿入してお
く必要はなくなるが、ループ命令を実行する毎に常にN
OP命令がハードウェアによって挿入されるため、ルー
プ処理の対象としたい命令の数が最小ループ対象命令数
より多い場合には無駄なNOP命令が挿入されることに
なっていた。
【0008】本発明は以上の点に鑑み、命令をパイプラ
イン処理する情報処理装置において複数の命令を繰り返
し実行させるループ処理のプログラム制御方法および装
置に関して、ループ対象命令数に応じた適切な数のNO
P命令を挿入することにより、パイプライン段数が増え
てもループ処理したい命令の最小数を限定せずに、高速
にループ処理するプログラム制御方法およびその装置を
提供することを目的とする。
【0009】
【課題を解決するための手段】本発明によるプログラム
制御方法は、命令をパイプライン処理する情報処理装置
において、ループ命令に続く複数の命令を繰り返し実行
するループ処理に関するプログラム制御方法であって、
前記ループ命令をデコードすることによりループ対象命
令数Lを得るステップと、前記ループ対象命令数Lが所
定の数N以下の場合にNOP命令をM回実行するステッ
プと、前記複数の命令を実行するステップと、前記複数
の命令を実行する前記ステップが所定のループ回数だけ
行われたか否かを判定するステップと、を含む。
【0010】前記判定するステップは、前記ループ命令
を処理するステージのうちQ段目のステージ以降におい
て行われ、N=Q−2であり、かつ、M=Nであっても
よい。
【0011】前記判定するステップは、前記ループ命令
を処理するステージのうちQ段目のステージ以降におい
て行われ、N=Q−2であり、かつ、M=N−L+1で
あってもよい。
【0012】本発明によるプログラム制御装置は、命令
をパイプライン処理する情報処理装置において、ループ
命令に続く複数の命令を繰り返し実行するループ処理の
実行を制御する、プログラム制御装置であって、前記ル
ープ命令をデコードすることによりループ対象命令数L
を出力し、前記ループ対象命令数Lが所定の数N以下の
場合にNOP挿入信号をM回だけ出力するループ制御手
段と、前記ループ対象命令数Lと前記NOP挿入信号に
従って、前記情報処理装置が前記ループ処理を実行する
ように実行アドレスを出力するループ実行手段と、前記
NOP挿入信号に従って、前記実行アドレスに対応する
命令とNOP命令のいずれかを出力する命令出力手段
と、を備えている。
【0013】前記ループ実行手段は、前記ループ命令を
処理するステージのうちQ段目のステージ以降におい
て、前記複数の命令が所定のループ回数だけ行われたか
否かを判定する判定手段を備え、N=Q−2であり、か
つ、M=Nであってもよい。
【0014】前記ループ実行手段は、前記ループ命令を
処理するステージのうちQ段目のステージ以降におい
て、前記複数の命令が所定のループ回数だけ行われたか
否かを判定する判定手段を備え、N=Q−2であり、か
つ、M=N−L+1であってもよい。
【0015】前記ループ制御手段は前記ループ命令をデ
コードすることによりさらにループ信号を出力し、前記
ループ実行手段は、前記NOP挿入信号に従って、前記
実行アドレスを生成する実行アドレス生成手段と、所定
のループ信号に従って、前記実行アドレスをスタートア
ドレスとして格納するスタートアドレス格納手段と、前
記ループ信号に従って、前記実行アドレスに前記ループ
対象命令数を加算したエンドアドレスを格納するエンド
アドレス格納手段と、前記実行アドレスと前記エンドア
ドレスが一致した場合に、前記複数の命令が前記ループ
回数だけ行われたか否かを判定し、前記判定に従って分
岐信号を出力するループ分岐判定手段と、前記分岐信号
に従って、前記実行アドレスと前記スタートアドレスの
いずれかを出力するアドレス出力手段とを備えていても
よい。
【0016】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を説明する。
【0017】(実施形態1)図1は、本発明によるプロ
グラム制御装置7の構成を示す。プログラム制御装置7
を含む情報処理装置は、パイプライン動作により、メモ
リ2に格納されたプログラムを実行する。プログラム制
御装置7は、ループ実行部1と、NOP生成部3と、ル
ープ制御部4とを含む。プログラム制御装置7を含む情
報処理装置はさらに、デコーダ5と、演算部6とを含
む。プログラム制御装置7から出力された命令は、デコ
ーダ5によってデコードされることにより、演算部6に
おいて実行される。
【0018】ループ実行部1は、ループ処理の実行に必
要なメモリ2上のアドレスを出力する。すなわち、ルー
プ実行部1は、入力されたNOP挿入信号13とループ
命令信号14とループ対象命令数15に応じて、第1の
アドレス10を出力する。メモリ2は、プログラム制御
装置7を含む情報処理装置が実行するプログラムを格納
する。メモリ2は、入力された第1のアドレス10上に
ある命令を、第1の命令コード11として出力する。N
OP生成部3は、メモリ2に格納されたプログラム中の
複数の命令の間に必要に応じてNOP命令を挿入し、プ
ログラム制御装置7を含む情報処理装置が次に実行すべ
き命令を出力する。NOP生成部3は、NOP挿入信号
13に従って、入力された第1の命令コード11とNO
P生成部3が生成するNOP命令のいずれかを第2の命
令コード12として出力する。ループ制御部4はループ
処理を実行する場合に、プログラム制御装置7を制御す
る。ループ制御部4は、入力された第2の命令コード1
2をデコードすることにより、NOP挿入信号13とル
ープ命令信号14とループ対象命令数15とを出力す
る。デコーダ5は入力された第2の命令コード12をデ
コードすることにより、演算部6を制御する制御信号を
出力する。演算部6は、デコーダ5から出力された制御
信号に従って、加算、減算等の各種の演算を実行する。
【0019】NOP挿入信号13の値は、第2の命令コ
ード12としてNOP命令を出力しない場合には「0」
であり、第2の命令コード12としてNOP命令を出力
する場合には「1」である。ループ命令信号14の値
は、ループ制御部4に入力された第2の命令コード12
がループ命令でない場合には「0」であり、ループ制御
部4に入力された第2の命令コード12がループ命令で
ある場合には「1」である。
【0020】図2は本発明によるプログラム制御装置7
に含まれるNOP生成部3の構成を示す。NOP生成部
3は、命令レジスタ101と、第1のマルチプレクサ1
02とを含む。命令レジスタ101は、NOP挿入信号
13の値が「0」のとき、入力された第1の命令コード
11を格納する(ラッチする)。命令レジスタ101
は、NOP挿入信号13の値が「1」のとき、その格納
している命令を保持する。また、命令レジスタ101
は、現在格納している命令を命令レジスタ出力112と
して出力する。第1のマルチプレクサ102は、入力さ
れた命令レジスタ出力112とNOPコード111のい
ずれかを選択し第2の命令コード12として出力する。
第1のマルチプレクサ102は、NOP挿入信号13の
値が「0」のとき、命令レジスタ出力112の内容を第
2の命令コード12として出力する。第1のマルチプレ
クサ102は、NOP挿入信号13の値が「1」のと
き、NOPコード111を第2の命令コード12として
出力する。
【0021】図3は本発明によるプログラム制御装置7
に含まれるループ実行部1の構成を示す。ループ実行部
1は、アドレスレジスタ201と、第2のマルチプレク
サ202と、スタートアドレスレジスタ203と、第1
の加算器204と、第2の加算器205と、エンドアド
レスレジスタ206と、第1の比較器207と、ループ
カウンタ208と、論理積ゲート209とを含む。
【0022】アドレスレジスタ201と、第2のマルチ
プレクサ202と、スタートアドレスレジスタ203
と、第1の加算器204は、第1のアドレス10として
メモリ2に出力する実行アドレスを生成する。アドレス
レジスタ201は、NOP挿入信号13の値が「0」の
とき、入力された第2のマルチプレクサ出力213をラ
ッチする。アドレスレジスタ201は、NOP挿入信号
13の値が「1」のとき、その格納しているアドレスを
保持する。アドレスレジスタ201は、現在格納してい
るアドレスを第1のアドレス10として出力する。第2
のマルチプレクサ202は、入力された第1の加算器出
力212とスタートアドレス214のいずれかを選択し
第2のマルチプレクサ出力213として出力する。第2
のマルチプレクサ202は、分岐信号219の値が
「0」のとき、第1の加算器出力212の内容を第2の
マルチプレクサ出力213として出力する。第2のマル
チプレクサ202は、分岐信号219の値が「1」のと
き、スタートアドレス214の内容を第2のマルチプレ
クサ出力213として出力する。スタートアドレスレジ
スタ203は、ループ処理の対象となる1つ以上の命令
の最初のアドレスであるスタートアドレスを格納する。
スタートアドレスレジスタ203は、ループ命令信号1
4の値が「0」のとき、その格納しているアドレスを保
持する。スタートアドレスレジスタ203は、ループ命
令信号14の値が「1」のとき、入力された第1のアド
レス10をラッチする。また、スタートアドレスレジス
タ203は、現在格納しているアドレスをスタートアド
レス214として出力する。第1の加算器204は、入
力された第1のアドレス10に一定の値を加算して(イ
ンクリメントして)得られたアドレスを、第1の加算器
出力212として出力する。
【0023】第2の加算器205と、エンドアドレスレ
ジスタ206は、ループ処理の対象となる1つ以上の命
令の最後のアドレスであるエンドアドレスを生成し保持
する。第2の加算器205は、入力された第1のアドレ
ス10にループ対象命令数15を加算して得られたアド
レスを、第2加算器出力215として出力する。エンド
アドレスレジスタ206は、エンドアドレスを格納す
る。エンドアドレスレジスタ206は、ループ命令信号
14の値が「0」のとき、その格納しているアドレスを
保持する。エンドアドレスレジスタ206は、ループ命
令信号14の値が「1」のとき、入力された第2の加算
器出力215をラッチする。また、エンドアドレスレジ
スタ206は、現在格納しているアドレスをエンドアド
レス216として出力する。
【0024】第1の比較器207と、ループカウンタ2
08と、論理積ゲート209は、ループ命令による分岐
判定を行う。第1の比較器207は、入力されたエンド
アドレス216と第1のアドレス10を比較し、比較の
結果に従ってエンド信号217を出力する。第1の比較
器207は、エンドアドレス216と第1のアドレス1
0が一致しないとき、エンド信号217の値を「0」と
する。第1の比較器207は、エンドアドレス216と
第1のアドレス10が一致するとき、エンド信号217
の値を「1」とする。ループカウンタ208は、ループ
処理の対象となる1つ以上の命令が実行された回数であ
る実行済ループ回数をカウントし、カウントの結果に応
じてゼロ信号218を出力する。ループカウンタ208
は、エンド信号217が入力されるとその保持する残り
ループ回数から1を減算する。残りループ回数が0でな
いときループカウンタ208は、ゼロ信号218の値を
「0」とする。残りループ回数が0になる、すなわち実
行済ループ回数が指定されたループ回数に達すると、ル
ープカウンタ208は、ゼロ信号218の値を「1」と
する。論理積ゲート209は、入力されたエンド信号2
17とゼロ信号218との論理積(AND)を取り、分
岐信号219として出力する。すなわち、論理積ゲート
209は、エンド信号217とゼロ信号218のいずれ
かの値が「0」のときは、分岐信号219の値を「0」
とする。論理積ゲート209は、エンド信号217とゼ
ロ信号218の値がともに「1」のときは、分岐信号2
19の値を「1」とする。
【0025】なお、ループ回数をループカウンタ208
に設定する方法には以下の3つの方法がある。(1)ル
ープ命令を実行する前に別の命令によって設定する。
(2)ループ命令により、ループ命令の命令コード中に
含まれているループ回数を設定する。(3)ループ命令
により、演算器にある汎用レジスタ等のレジスタからル
ープ回数を転送して設定する。
【0026】図4は本発明の実施形態1のプログラム制
御装置7に含まれるループ制御部4の構成を示す。ルー
プ制御部4は、デコーダ301と、第2の比較器302
と、論理積ゲート303と、レジスタ304と、論理和
ゲート305とを含む。デコーダ301は、入力された
第2の命令コード12をデコードし、デコードの結果に
応じてループ命令信号14とループ対象命令数15を出
力する。デコーダ301は、デコードした命令がループ
命令でないときは、ループ命令信号14の値を「0」と
する。デコーダ301は、デコードした命令がループ命
令であるときは、ループ命令信号14の値を「1」と
し、ループ命令のオペランドであるループ対象命令数を
ループ対象命令数15に出力する。第2の比較器302
は、入力されたループ対象命令数15と数値「2」を比
較し、比較の結果を第2の比較器出力313として出力
する。第2の比較器302は、ループ対象命令数15の
値が「2」より大きいときは、第2の比較器出力313
の値を「0」とする。第2の比較器302は、ループ対
象命令数15の値が「2」以下であるときは、第2の比
較器出力313の値を「1」とする。論理積ゲート30
3は、入力された第2の比較器出力313とループ命令
信号14との論理積である、論理積出力314を出力す
る。すなわち、論理積ゲート303は、第2の比較器出
力313とループ命令信号14のいずれかの値が「0」
のときは、論理積出力314の値を「0」とする。論理
積ゲート303は、第2の比較器出力313とループ命
令信号14の値がともに「1」のときは、論理積出力3
14の値を「1」とする。
【0027】レジスタ304は、入力された論理積出力
314をラッチする。また、レジスタ304は、現在格
納している値をレジスタ出力315として出力する。論
理和ゲート305は、論理積出力314とレジスタ出力
315との論理和(OR)をNOP挿入信号13として
出力する。すなわち、論理和ゲート305は、論理積出
力314とレジスタ出力315の値がともに「0」のと
きは、NOP挿入信号13の値を「0」とする。論理和
ゲート305は、論理積出力314とレジスタ出力31
5のいずれかの値が「1」のときは、NOP挿入信号1
3の値を「1」とする。
【0028】以下、図1〜図4および図6を参照して、
本発明によるプログラム制御装置7の動作を説明する。
【0029】(命令のシーケンシャル実行)まず、命令
をシーケンシャルに実行する場合のプログラム制御装置
7の動作を説明する。命令をシーケンシャルに実行する
場合には、NOP挿入信号13は「0」である。その結
果、ループ実行部1は、順次インクリメントされた第1
のアドレス10を出力する。メモリ2は、順次インクリ
メントされた第1のアドレス10が入力されることによ
り、メモリ2に格納された命令を順次第1の命令コード
11として出力する。NOP生成部3は、NOP挿入信
号13が「0」であるため、NOP命令を挿入せずに、
入力された第1の命令11をそのまま第2の命令コード
12として出力する。NOP生成部3から出力された第
2の命令コード12は、デコーダ5によりデコードさ
れ、演算部6において実行される。このように、メモリ
2に格納された命令がプログラム制御装置7を含む情報
処理装置においてシーケンシャルに実行される。
【0030】命令をシーケンシャルに実行する場合のル
ープ実行部1の動作を以下に説明する。上述のように、
命令をシーケンシャルに実行する場合にはNOP挿入信
号13は「0」である。NOP挿入信号13が「0」で
あるとき、アドレスレジスタ201は第2のマルチプレ
クサ出力213をラッチし、第1のアドレス10として
出力する。第1の加算器204は、入力された第1のア
ドレス10をインクリメントし、第1の加算器出力21
2として出力する。第2のマルチプレクサ202は、第
1の加算器出力212を選択し、第2のマルチプレクサ
出力213として出力する。以上の動作を繰り返す事に
より第1のアドレス10は順次インクリメントされてい
く。
【0031】また、NOP生成部3においては、NOP
挿入信号13が「0」であるとき、命令レジスタ101
は第1の命令コード11をラッチし、命令レジスタ出力
112として出力する。NOP挿入信号13が「0」で
あるとき、第1のマルチプレクサ102は、命令レジス
タ出力112を選択し、第2の命令コード12として出
力する。
【0032】ループ制御部4に含まれるデコーダ301
は第2の命令コード12をデコードする。第2の命令コ
ード12がループ命令でなければ、ループ信号14の値
を「0」とし、ループ対象命令数15は出力しない。ル
ープ信号14の値が「0」である限り、論理積ゲート3
03の出力である論理積出力314の値は「0」であり
続ける。そのため、レジスタ304の値は「0」とな
り、レジスタ出力315の値も「0」となる。論理積出
力314とレジスタ出力315の値がともに「0」であ
るため、論理和ゲート305の出力であるNOP挿入信
号13の値は「0」となる。値「0」を有するNOP挿
入信号13がループ実行部1に入力されることにより、
上述の動作が繰り返される。
【0033】以上の動作を繰り返す事で、メモリ2に格
納された命令がプログラム制御装置7を含む情報処理装
置によってシーケンシャルに実行されることとなる。
【0034】(ループ命令の実行)次に、ループ命令を
実行する場合のプログラム制御装置7の動作を説明す
る。プログラム制御装置7を含む情報処理装置が命令を
シーケンシャルに実行している状態で、NOP生成部3
によって第2の命令コード12としてループ命令が出力
されたと仮定する。ループ制御部4に含まれるデコーダ
301は、入力された第2の命令コード12がループ命
令であると、ループ命令信号14を「1」にし、ループ
対象命令数15を出力する。
【0035】ループ命令信号14が「1」になると、ル
ープ実行部1においてスタートアドレスレジスタ203
は、第1のアドレス10をラッチする。また、第2の加
算器205が第1のアドレス10とループ対象命令数1
5を加算し、第2の加算器出力215として出力する。
ループ命令信号14は「1」であるから、エンドアドレ
スレジスタ206は第2の加算器出力215をラッチす
る。このように、ループ実行部1において、スタートア
ドレスとエンドアドレスがラッチされる。
【0036】ループ制御部4の動作は、ループ対象命令
数15の値が「2」より大きいか、「2」以下であるか
によって異なる。ループ制御部4において、第2の比較
器302は、入力されたループ対象命令数15の値が
「2」より大きい場合には第2の比較器出力313の値
を「0」とする。その結果、論理積出力314の値は
「0」のまま変化せず、NOP挿入信号13の値も
「0」のまま変化しない。従って、ループ対象命令数1
5の値が「2」より大きい場合には、NOP生成部3に
おいてNOP命令の挿入は行われない。
【0037】入力されたループ対象命令数15の値が
「2」以下の場合は、第2の比較器302は、第2の比
較器出力313の値を「1」にする。デコーダ301が
ループ命令をデコードした時点におけるループ命令信号
14の値は「1」であるから、論理積ゲート303は、
第2の比較器出力313の値が「1」になると論理積出
力314の値を「1」とする。論理積出力314の値が
「1」となる結果、レジスタ304は値「1」をラッチ
する。また、論理積出力314の値が「1」となる結
果、論理和ゲート305は出力するNOP挿入信号13
の値を「1」にする。
【0038】NOP挿入信号13が「1」になると、N
OP生成部3において、命令レジスタ101は格納して
いる命令をそのまま保持し、第1のマルチプレクサ10
2はNOPコード111を選択する。その結果、第1の
マルチプレクサ102が出力する第2の命令コード12
はNOP命令となる。また、ループ実行部1に含まれる
アドレスレジスタ201は、NOP挿入信号13が
「1」になると、格納しているアドレスをそのまま保持
する。このように、NOP挿入信号13が「1」になる
と、命令レジスタ101およびアドレスレジスタ201
は更新を停止し、NOP生成部3から第2の命令コード
12としてNOP命令が出力される。
【0039】デコーダ301に第2の命令コード12と
してNOP命令が入力されると、NOP命令はループ命
令ではないため、ループ命令信号14の値は「0」とな
る。このデコーダ301に入力されたNOP命令は、プ
ログラム制御装置7を含む情報処理装置においてループ
命令の次に実行される命令である。ループ命令信号14
の値が「0」になると、論理積出力314の値は「0」
となる。しかし、レジスタ304がその保持する値
「1」をレジスタ出力315として出力するため、論理
和ゲート305の出力するNOP挿入信号13の値は再
度「1」となる。なお、レジスタ304は、値「1」を
レジスタ出力315として出力した後、論理積出力31
4の値「0」をラッチする。
【0040】NOP挿入信号13の値が再び「1」であ
るため、命令レジスタ101およびアドレスレジスタ2
01は更新を停止したままとなり、NOP生成部3から
第2の命令コード12としてNOP命令が再度出力され
る。デコーダ301に第2の命令コード12としてNO
P命令が再度入力されると、NOP命令はループ命令で
はないため、ループ命令信号14の値は「0」となる。
このデコーダ301に再度入力されたNOP命令は、プ
ログラム制御装置7を含む情報処理装置においてループ
命令の2つ後に実行される命令である。ループ命令信号
14の値が「0」になると、論理積出力314の値は
「0」となる。レジスタ304はその保持する値「0」
をレジスタ出力315として出力するため、論理和ゲー
ト305の出力するNOP挿入信号13の値は今度は
「0」となる。
【0041】NOP挿入信号13の値が「0」になる
と、NOP生成部3に含まれる第1のマルチプレクサ1
02は命令レジスタ出力112を選択する。すなわち、
NOP生成部3は、NOP命令の挿入を行わない。
【0042】以上のように、ループ対象命令数15の値
が「2」以下である場合には、NOP挿入信号13の値
が2回「1」となる。その結果、NOP生成部3におい
てNOP命令が2回挿入される。
【0043】(ループ処理中の実行)次に、ループ処理
中のプログラム制御装置7の動作を説明する。上述した
ように、ループ対象命令数が2より大きいければNOP
挿入信号13の値が「0」のまま変化せず、ループ対象
命令数が2以下であればNOP命令挿入後にNOP挿入
信号13の値は「0」となる。
【0044】ループ対象命令数は1以上であるため、ル
ープ命令の実行直後には、ループ実行部1において、第
1のアドレス10の値とエンドアドレス216の値は一
致しない。ループ対象命令数が2以下である場合の、挿
入されたNOP命令の実行直後も同様である。従って、
ループ命令の実行直後には、第1の比較器207は出力
するエンド信号217の値を「0」とする。エンド信号
217の値が「0」であるため、論理積ゲート出力21
9の値は「0」である。その結果、第2のマルチプレク
サ202は、第1の加算器出力214を選択し、第2の
マルチプレクサ出力213として出力する。アドレスレ
ジスタ201は、現在格納しているアドレス、すなわち
ループ命令の次のアドレスを第1のアドレス10として
出力する。NOP挿入信号13の値は「0」であるた
め、アドレスレジスタ201は第2のマルチプレクサ出
力213をラッチする。
【0045】第1のアドレス10はループ命令の次のア
ドレスであるから、メモリ2は、ループ命令の格納され
たアドレスの次のアドレスに格納された命令を、第1の
命令コード11として出力する。NOP挿入信号13の
値は「0」であるから、NOP生成部3に含まれる第1
のマルチプレクサ102は命令レジスタ出力112を選
択し、第2の命令コード12として出力する。また、命
令レジスタ101は第1の命令コード11をラッチす
る。すなわち、NOP生成部3は、NOP命令の挿入を
行わず、メモリ2から出力された第1の命令コード11
の内容を順次第2の命令コード12として出力する。こ
れは、ループ実行部1において第1の比較器207がエ
ンド信号217の値を「1」にするまで続けられる。
【0046】ループ実行部1において、第1の比較器2
17は、エンドアドレス216と第1のアドレス10が
一致するとエンド信号217の値を「1」とする。ルー
プカウンタ208は、エンド信号217の値が「1」に
なるとそのカウンタ値を1減算する。そして、ループカ
ウンタ208はそのカウンタ値が「0」になると、ゼロ
信号218の値を「1」とする。エンド信号217の値
が「1」であるとき、論理積ゲート209は、ゼロ信号
210の値が「1」になると分岐信号219の値を
「1」にする。分岐信号219が「1」になると、第2
のマルチプレクサ202はスタートアドレス214を選
択する。そのため、スタートアドレスレジスタ203の
値がアドレスレジスタ201でラッチされる。その結
果、スタートアドレスが第1のアドレス10として出力
されることとなる。以上の動作により、ループカウンタ
208の値が「0」になるまで、アドレスレジスタ20
1の保持するアドレスがエンドアドレスになると、アド
レスレジスタ201の保持するアドレスがスタートアド
レスになることが繰り返される。第1のアドレス10に
はアドレスレジスタ201が現在格納しているアドレス
が出力されるため、情報処理装置において実行される命
令のメモリ2上のアドレスは、エンドアドレスに到達す
るとスタートアドレスに分岐することとなる。この分岐
が、ループカウンタ208の値が「0」になるまで繰り
返される。
【0047】図6は、本発明の実施形態1によるループ
処理のプログラム制御方法を示す。
【0048】ここで、ループ回数LNは、ループ命令の
実行前に設定されていると仮定する。実施形態1におい
ては、ループ命令による分岐を行うか否かの判定(以
下、「分岐判定」という。)がループ命令を処理するス
テージのうちQ段目のステージ以降において行われると
き、NOP命令の挿入を行う場合の最大ループ対象命令
数をNとし、NOP命令を挿入する回数をMとすると、
N=Q−2、M=Nの関係が成立する。
【0049】以下、第1〜第4の各ステップについて説
明する。 (第1のステップ)ループ命令をデコードし、ループ対
象命令数Lが得られる。 (第2のステップ)ループ対象命令数LがN以下である
か比較し、N以下の場合にはNOPがM回挿入される。
また、ループ対象命令数LがMより大きい場合にはNO
Pは挿入されない。 (第3のステップ)ループ対象命令を実行する。 (第4のステップ)ループ回数LNから1を減算し、ル
ープ回数LNが0にならなければ第3のステップに戻
り、ループ回数LNが0になれば終了する。
【0050】なお、上述の例ではループ命令実行前にル
ープ回数LNが設定されていると説明したが、ループ命
令実行時にループ回数LNを設定してもよい。
【0051】図7は、本発明の実施形態1のプログラム
制御方法によるループ処理の動作を示す。ここで、パイ
プラインステージは、IFステージ、D1ステージ、D
2ステージ、EXステージの4つからなるものとする。
また、分岐判定はループ命令のEXステージ(4段目の
ステージ)終了後に可能であるとする。Q=4であるか
ら、N=Q−2、M=Nより、N=2、M=2となる。
【0052】図7(a)はループ対象命令数L=1の場
合の動作を示す。情報処理装置はループ命令のD1ステ
ージにおいてループ命令をデコードする。ループ対象命
令数Lが2以下なので、情報処理装置はNOP命令を2
回挿入する。その後、情報処理装置は、ループ対象命令
である命令1を実行する。ループ命令のEXステージ
は、命令1のIFステージに対応するから、命令1のI
Fステージ終了後に分岐判定が可能となる。命令1のI
Fステージ終了時にループ回数LNから1を減算し、ル
ープ回数LN=0でなければ、情報処理装置は再度命令
1を実行する。情報処理装置は、命令1のIFステージ
終了時にLNから1を減算し、LN=0でなければ再度
命令1を実行する動作をLN=0になるまで繰り返す。
LN=0になると、情報処理装置はループ処理を終了し
命令2を実行する。
【0053】なお、図7(a)において、2つのNOP
命令のIFステージは点線で示されているが、これはN
OP命令のIFステージが実際には存在しないことを示
している。すなわち、NOP命令はメモリからフェッチ
する必要がないため、IFステージは不要である。その
ため、D1ステージの終了後以降にしかループ命令であ
ることは判定できないにもかかわらず、ループ命令の直
後にNOP命令を挿入することが可能となっている。以
下の図においても同様である。図7(b)はループ対象
命令数L=2の場合の動作を示す。L=1の場合と同様
にループ対象命令数Lが2以下なので、情報処理装置は
ループ命令のD1ステージで命令をデコードし、NOP
命令を2回挿入する。その後、情報処理装置は、命令
1、命令2を実行する。ループ命令のEXステージの終
了後、命令2のIFステージにおいて分岐判定がされ
る。命令2のIFステージ終了時にループ回数LNから
1を減算し、ループ回数LN=0でなければ、情報処理
装置は再度命令1、命令2を実行する。情報処理装置
は、命令2のIFステージ終了時にLNから1を減算
し、LN=0でなければ再度命令1、命令2を実行する
動作をLN=0になるまで繰り返す。LN=0になる
と、情報処理装置はループ処理を終了し命令2に続く命
令3を実行する。
【0054】図7(c)はループ対象命令数L=3の場
合の動作を示す。ループ対象命令数が2より大きいの
で、ループ命令のD1ステージで命令をデコードし、情
報処理装置は、NOP命令を挿入しないで命令1、命令
2、命令3を実行するループ命令のEXステージの終了
後、命令3のIFステージで分岐判定がされる。命令3
のIFステージ終了時にループ回数LNから1を減算
し、ループ回数LN=0でなければ、情報処理装置は再
度命令1、命令2、命令3を実行する。情報処理装置
は、命令3のIFステージ終了時にLNから1を減算
し、LN=0でなければ再度命令1、命令2、命令3を
実行する動作をLN=0になるまで繰り返す。LN=0
になると、情報処理装置はループ処理を終了し命令3に
続く命令4を実行する。
【0055】以上のように本実施形態によれば、プログ
ラム制御装置7がループ実行手段となるループ実行部1
と、NOP挿入手段となるNOP生成部3と、ループ制
御手段となるループ制御部4とを備えることにより、命
令格納手段であるメモリ2に格納されたループ命令をデ
コードし、デコードにより得たループ対象命令数が2以
下の場合にはNOP命令を2回挿入してループ処理を実
行し、ループ対象命令数が2より大きい場合にはNOP
命令を挿入しないでループ処理を実行することができ
る。
【0056】(実施形態2)次に、本発明の実施形態2
のプログラム制御方法および装置について図面を参照し
て説明する。実施形態2において、図1〜図3に示され
たプログラム制御装置7の構成はループ制御部4の構成
を除いて実施形態1と共通である。
【0057】図5は本発明の実施形態2のプログラム制
御装置7に含まれるループ制御部4の構成を示す。図5
に示されたループ制御部4が図4に示されたループ制御
部4と異なる点は、論理積ゲート306と、第3の比較
器307を設け、レジスタ304の入力を論理積出力3
14から論理積出力318に変更した点である。図5に
おいて、図4と同一の機能を有するものには同一の符号
を付してその詳細な説明を省略する。
【0058】論理積ゲート306は、ループ命令信号1
4と第3の比較器出力317の論理積を論理積出力31
8として出力する。第3の比較器307は、入力された
ループ対象命令数15の値と数値「1」316を比較
し、比較の結果を第3の比較器出力317として出力す
る。第3の比較器307は、ループ対象命令数15の値
が「1」より大きいときは、第3の比較器出力317の
値を「0」とする。第3の比較器307は、ループ対象
命令数15の値が「1」であるときは、第3の比較器出
力317の値を「1」とする。
【0059】以下、図1〜図3、図5および図7を参照
して、ループ命令を実行する場合の本発明によるプログ
ラム制御装置7の動作を説明する。なお、命令をシーケ
ンシャルに実行する場合およびループ処理中のプログラ
ム制御装置7の動作は、実施形態1と同様であるので省
略する。また、ループ命令を実行する場合においても、
NOP挿入信号13、ループ命令信号14およびループ
対象命令数15によって制御される、ループ実行部1お
よびNOP生成部3の動作は、実施形態1と同様である
ので省略する。
【0060】ループ制御部4に含まれるデコーダ301
は、入力された第2の命令コード12がループ命令であ
ると、ループ命令信号14を「1」にし、ループ対象命
令数15を出力する。第2の比較器302は、入力され
たループ対象命令数15の値が「2」以下の場合に第2
の比較器出力313を「1」にする。第3の比較器30
7は、入力されたループ対象命令数15の値が「1」の
場合に第3の比較器出力317を「1」にする。ループ
命令信号14の値が「1」であるとき、論理積ゲート3
03は第2の比較器出力313が「1」になると論理積
出力314を「1」にする。また、ループ命令信号14
の値が「1」であるとき、論理積ゲート306は第3の
比較器出力317が「1」になると論理積出力318を
「1」にする。
【0061】上記より、ループ対象命令数15の値が
「1」の場合、第2の比較器出力313および第3の比
較器出力317の値はともに「1」となる。デコーダ3
01がループ命令をデコードした時点におけるループ命
令信号14の値は「1」であるから、論理積出力314
および論理積出力318の値はともに「1」となる。そ
の結果、論理和ゲート305が出力するNOP挿入信号
13の値は「1」となり、レジスタ304は値「1」を
ラッチする。次にデコーダ301がNOP命令をデコー
ドした時点でも、レジスタ304の出力するレジスタ出
力315の値は「1」であるから、論理和ゲート305
が出力するNOP挿入信号13の値は再度「1」とな
る。しかし、デコーダ301がNOP命令をデコードし
た時点では、ループ命令信号14の値は「0」となるた
め、論理積出力318の値は「0」となる。その結果レ
ジスタ304は値「0」をラッチする。従って、デコー
ダ301が2回目のNOP命令をデコードする時点に
は、ループ命令信号14の値が「0」であるため論理積
出力314の値が「0」、レジスタ304の出力するレ
ジスタ出力315の値も「0」となる。その結果、論理
和ゲート305が出力するNOP挿入信号13の値は
「0」となる。
【0062】このように、ループ対象命令数15の値が
「1」である場合には、NOP挿入信号13の値が2回
「1」となる。その結果、NOP生成部3においてNO
P命令が2回挿入される。
【0063】ループ対象命令数15の値が「2」の場
合、第2の比較器出力313の値は「1」となり、第3
の比較器出力317の値は「0」となる。デコーダ30
1がループ命令をデコードした時点におけるループ命令
信号14の値は「1」であるから、第2の比較器出力3
13の値が「1」であることより、論理積出力314の
値は「1」となる。論理積出力314の値が「1」であ
るため、論理和ゲート305が出力するNOP挿入信号
13の値は「1」となる。一方、第3の比較器出力31
7の値が「0」であることより、論理積出力318の値
は「0」となる。論理積出力318の値が「0」である
ため、レジスタ304は値「0」をラッチする。従っ
て、デコーダ301が次にNOP命令をデコードする時
点には、ループ命令信号14の値が「0」であるため論
理積出力314の値が「0」、レジスタ304の出力す
るレジスタ出力315の値も「0」となる。その結果、
論理和ゲート305が出力するNOP挿入信号13の値
は「0」となる。
【0064】このように、ループ対象命令数15の値が
「2」である場合には、NOP挿入信号13の値が1回
「1」となる。その結果、NOP生成部3においてNO
P命令が1回挿入される。
【0065】以上のように、ループ対象命令数15の値
が「1」である場合には2回、ループ対象命令数15の
値が「2」である場合には1回、NOP生成部3におい
てNOP命令が挿入されることとなる。
【0066】図8は、本発明の実施形態2によるループ
処理のプログラム制御方法を示す。
【0067】実施形態1と同様に、ループ回数LNはル
ープ命令の実行前に設定されていると仮定する。実施形
態2においては、分岐判定がループ命令を処理するステ
ージのうちQ段目のステージ以降において行われると
き、ループ対象命令数をLとし、NOP命令の挿入を行
う場合の最大ループ対象命令数をNとし、NOP命令を
挿入する回数をMとすると、N=Q−2、M=N−L+
1の関係が成立する。パイプラインステージは4ステー
ジからなり、分岐判定はループ命令のEXステージ終了
後に可能であると仮定する。
【0068】以下、第1〜第5の各ステップについて説
明する。 (第1のステップ)ループ命令をデコードし、ループ対
象命令数Lが得られる。 (第2のステップ)ループ対象命令数LがN以下である
か判断し、N以下の場合にはNOPが1回挿入される。
また、ループ対象命令数LがNより大きい場合にはNO
Pは挿入されない。 (第3のステップ)ループ対象命令数LがN−1以下で
あるか判断し、N−1以下の場合にはNOPが1回挿入
される。また、ループ対象命令数LがN−1より大きい
場合にはNOPは挿入されない。
【0069】以下、第3のステップと同様のステップが
N−2、N−3・・・のように、ループ対象命令数Lが
1と比較されるまで繰り返される。 (第4のステップ)ループ対象命令を実行する。 (第5のステップ)ループ回数LNから1を減算し、ル
ープ回数LNが0にならなければ第4のステップに戻
り、ループ回数LNが0になれば終了する。
【0070】なお、ループ命令実行時にループ回数LN
を設定してもよいのは、実施形態1と同様である。
【0071】図9は、本発明の実施形態2のプログラム
制御方法によるループ処理の動作を示す。実施形態1と
同様に、パイプラインステージは4ステージからなり、
分岐判定はループ命令のEXステージ終了後に可能であ
ると仮定する。Q=4であるから、N=Q−2、M=N
−L+1より、N=2、M=3−Lとなる。
【0072】図9(a)はループ対象命令数L=1の場
合の動作を示す。この場合の情報処理装置の動作は、図
7(a)に示された実施形態1の場合と同様である。
【0073】図9(b)はループ対象命令数L=2の場
合の動作を示す。L=1の場合と同様にループ対象命令
数Lが1なので、情報処理装置はループ命令のD1ステ
ージで命令をデコードし、NOP命令を1回挿入する。
その後、情報処理装置は、命令1、命令2を実行する。
命令2のIFステージにおいて分岐判定がされる。命令
2のIFステージ終了時にループ回数LNから1を減算
し、ループ回数LN=0でなければ、情報処理装置は再
度命令1、命令2を実行する。情報処理装置は、命令2
のIFステージ終了時にLNから1を減算し、LN=0
でなければ再度命令1、命令2を実行する動作をLN=
0になるまで繰り返す。LN=0になると、情報処理装
置はループ処理を終了し命令2に続く命令3を実行す
る。
【0074】図9(c)はループ対象命令数L=3の場
合の動作を示す。この場合の情報処理装置の動作は、図
7(c)に示された実施形態1の場合と同様である。
【0075】以上のように本実施形態によれば、プログ
ラム制御装置7がループ実行手段となるループ実行部1
と、NOP挿入手段となるNOP生成部3と、ループ制
御手段となるループ制御部4とを備えることにより、命
令格納手段であるメモリ2に格納されたループ命令をデ
コードし、デコードにより得たループ対象命令数が1の
場合にはNOP命令を2回挿入しループ処理を実行し、
ループ対象命令数が2の場合にはNOP命令を1回挿入
しループ処理を実行し、ループ対象命令数が2より大き
い場合にはNOP命令を挿入しないでループ処理を実行
することができる。実施形態2では、実施形態1と比較
して、ループ対象命令数が2の場合に挿入するNOP命
令の数を1回削減することができる。
【0076】なお、上述の実施形態1および実施形態2
において、情報処理装置のパイプライン段数を4として
説明したが、パイプライン段数は任意の段数でよいこと
は明らかである。また、分岐判定はループ命令のEXス
テージ以降に行うことができるとしたが、分岐判定を行
うことができるようになる位置は任意の位置にしてよい
ことは明らかである。
【0077】
【発明の効果】ループ命令をデコードすることにより得
たループ対象命令数が所定の数N以下の場合にはNOP
命令をM回挿入してループ処理を実行し、ループ対象命
令数がNより大きい場合にはNOP命令を挿入しないで
ループ処理を実行するように制御することで、ループ対
象命令数がN以下の場合であってもループ処理を実行可
能にするとともに、ループ対象命令数がNより大きい場
合には無駄なNOP命令が挿入されないようにすること
が可能となる。また、ループ対象命令数がN以下の場合
にNOP命令が挿入される数を削減することも可能とな
る。
【図面の簡単な説明】
【図1】本発明によるプログラム制御装置の構成を示す
図である。
【図2】本発明によるプログラム制御装置に含まれるN
OP生成部の構成を示す図である。
【図3】本発明によるプログラム制御装置に含まれるル
ープ実行部の構成を示す図である。
【図4】本発明の実施形態1のプログラム制御装置に含
まれるループ制御部の構成を示す図である。
【図5】本発明の実施形態2のプログラム制御装置に含
まれるループ制御部の構成を示す図である。
【図6】本発明の実施形態1によるループ処理のプログ
ラム制御方法を示す図である。
【図7】本発明の実施形態1のプログラム制御方法によ
るループ処理の動作を示す図である。
【図8】本発明の実施形態2によるループ処理のプログ
ラム制御方法を示す図である。
【図9】本発明の実施形態2のプログラム制御方法によ
るループ処理の動作を示す図である。
【図10】3段パイプラインの情報処理装置におけるル
ープ処理の動作を示す図である。
【図11】4段パイプラインの情報処理装置におけるル
ープ処理の動作を示す図である。
【符号の説明】
1 ループ実行部 2 メモリ 3 NOP生成部 4 ループ制御部 5 デコーダ 6 演算部 7 プログラム制御装置 10 第1のアドレス 11 第1の命令コード 12 第2の命令コード 13 NOP挿入信号 14 ループ命令信号 15 ループ対象命令数 101 命令レジスタ 102 第1のマルチプレクサ 111 NOPコード 201 アドレスレジスタ 202 第2のマルチプレクサ 203 スタートアドレスレジスタ 204 第1の加算器 205 第2の加算器 206 エンドアドレスレジスタ 207 第1の比較器 208 ループカウンタ 209、303、306 論理積ゲート 214 スタートアドレス 216 エンドアドレス 217 エンド信号 218 ゼロ信号 219 分岐信号 301 デコーダ 302 第2の比較器 304 レジスタ 305 論理和ゲート 307 第3の比較器

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 命令をパイプライン処理する情報処理装
    置において、ループ命令に続く複数の命令を繰り返し実
    行するループ処理に関するプログラム制御方法であっ
    て、 前記ループ命令をデコードすることによりループ対象命
    令数Lを得るステップと、 前記ループ対象命令数Lが所定の数N以下の場合にNO
    P命令をM回実行するステップと、 前記複数の命令を実行するステップと、 前記複数の命令を実行する前記ステップが所定のループ
    回数だけ行われたか否かを判定するステップと、 を含むプログラム制御方法。
  2. 【請求項2】 前記判定するステップが、前記ループ命
    令を処理するステージのうちQ段目のステージ以降にお
    いて行われ、 N=Q−2であり、かつ、M=Nである、 請求項1に記載のプログラム制御方法。
  3. 【請求項3】 前記判定するステップが、前記ループ命
    令を処理するステージのうちQ段目のステージ以降にお
    いて行われ、 N=Q−2であり、かつ、M=N−L+1である、 請求項1に記載のプログラム制御方法。
  4. 【請求項4】 命令をパイプライン処理する情報処理装
    置において、ループ命令に続く複数の命令を繰り返し実
    行するループ処理の実行を制御する、プログラム制御装
    置であって、 前記ループ命令をデコードすることによりループ対象命
    令数Lを出力し、前記ループ対象命令数Lが所定の数N
    以下の場合にNOP挿入信号をM回だけ出力するループ
    制御手段と、 前記ループ対象命令数Lと前記NOP挿入信号に従っ
    て、前記情報処理装置が前記ループ処理を実行するよう
    に実行アドレスを出力するループ実行手段と、 前記NOP挿入信号に従って、前記実行アドレスに対応
    する命令とNOP命令のいずれかを出力する命令出力手
    段と、 を備えたプログラム制御装置。
  5. 【請求項5】 前記ループ実行手段は、前記ループ命令
    を処理するステージのうちQ段目のステージ以降におい
    て、前記複数の命令が所定のループ回数だけ行われたか
    否かを判定する判定手段を備え、 N=Q−2であり、かつ、M=Nである、 請求項4に記載のプログラム制御装置。
  6. 【請求項6】 前記ループ制御手段は前記ループ命令を
    デコードすることによりさらにループ回数を出力し、 前記ループ実行手段は、前記ループ命令を処理するステ
    ージのうちQ段目のステージ以降において、前記複数の
    命令が所定のループ回数だけ行われたか否かを判定する
    判定手段を備え、 N=Q−2であり、かつ、M=N−L+1である、 請求項4に記載のプログラム制御装置。
  7. 【請求項7】 前記ループ制御手段は前記ループ命令を
    デコードすることによりさらにループ信号を出力し、 前記ループ実行手段は、 前記NOP挿入信号に従って、前記実行アドレスを生成
    する実行アドレス生成手段と、 前記ループ信号に従って、前記実行アドレスをスタート
    アドレスとして格納するスタートアドレス格納手段と、 前記ループ信号に従って、前記実行アドレスに前記ルー
    プ対象命令数を加算したエンドアドレスを格納するエン
    ドアドレス格納手段と、 前記実行アドレスと前記エンドアドレスが一致した場合
    に、前記複数の命令が所定のループ回数だけ行われたか
    否かを判定し、前記判定に従って分岐信号を出力するル
    ープ分岐判定手段と、 前記分岐信号に従って、前記実行アドレスと前記スター
    トアドレスのいずれかを出力するアドレス出力手段とを
    備えている、請求項4に記載のプログラム制御装置。
JP18520698A 1998-06-30 1998-06-30 プログラム制御方法およびその装置 Expired - Fee Related JP3498831B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18520698A JP3498831B2 (ja) 1998-06-30 1998-06-30 プログラム制御方法およびその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18520698A JP3498831B2 (ja) 1998-06-30 1998-06-30 プログラム制御方法およびその装置

Publications (2)

Publication Number Publication Date
JP2000020308A true JP2000020308A (ja) 2000-01-21
JP3498831B2 JP3498831B2 (ja) 2004-02-23

Family

ID=16166738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18520698A Expired - Fee Related JP3498831B2 (ja) 1998-06-30 1998-06-30 プログラム制御方法およびその装置

Country Status (1)

Country Link
JP (1) JP3498831B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862680B2 (en) 2001-05-11 2005-03-01 Renesas Technology Corp. Microprocessor processing specified instructions as operands
JP2007207145A (ja) * 2006-02-06 2007-08-16 Nec Electronics Corp ループ制御回路及びループ制御方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862680B2 (en) 2001-05-11 2005-03-01 Renesas Technology Corp. Microprocessor processing specified instructions as operands
JP2007207145A (ja) * 2006-02-06 2007-08-16 Nec Electronics Corp ループ制御回路及びループ制御方法

Also Published As

Publication number Publication date
JP3498831B2 (ja) 2004-02-23

Similar Documents

Publication Publication Date Title
US5727194A (en) Repeat-bit based, compact system and method for implementing zero-overhead loops
US6272623B1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
JPH05158687A (ja) プログラム制御方法及びプログラム制御装置
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
JP2007207145A (ja) ループ制御回路及びループ制御方法
JPS623342A (ja) パイプラインプロセツサ
WO2002042905A2 (en) Method and apparatus for processing program loops
JP3498831B2 (ja) プログラム制御方法およびその装置
JP3532835B2 (ja) データ処理装置およびプログラム変換装置
WO2002037270A2 (en) Hardware loops
JP3759729B2 (ja) スペキュレーティブ・レジスタの調整
US20030061468A1 (en) Forwarding the results of operations to dependent instructions quickly
JP2002342075A (ja) マイクロプロセッサ
KR920005230B1 (ko) 명령 큐 관리장치
WO2002039272A9 (en) Method and apparatus for reducing branch latency
JP3211791B2 (ja) ループ処理方式
JP2636192B2 (ja) 情報処理装置
JP3431503B2 (ja) 情報処理装置およびプログラム制御方法
JP2825315B2 (ja) 情報処理装置
JP2835179B2 (ja) 並列処理計算機
JPH0512009A (ja) デイジタル信号処理装置
JPH11219294A (ja) プログラム制御方法及び装置
JP2010140398A (ja) データ処理装置及びデータ処理方法
JPS63298633A (ja) パイプライン処理装置における命令フェッチ制御方式
WO2002042897A2 (en) Data processing apparatus

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031119

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071205

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081205

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091205

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091205

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101205

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees