JP3186214B2 - 繰り返し演算方法および装置 - Google Patents
繰り返し演算方法および装置Info
- Publication number
- JP3186214B2 JP3186214B2 JP14240692A JP14240692A JP3186214B2 JP 3186214 B2 JP3186214 B2 JP 3186214B2 JP 14240692 A JP14240692 A JP 14240692A JP 14240692 A JP14240692 A JP 14240692A JP 3186214 B2 JP3186214 B2 JP 3186214B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- condition
- address
- repetition
- processing
- 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.)
- Expired - Fee Related
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【0001】
【産業上の利用分野】本発明は、繰り返し演算中の特定
データの識別処理を高速に実行する繰り返し演算方法お
よび装置に関するものである。
データの識別処理を高速に実行する繰り返し演算方法お
よび装置に関するものである。
【0002】
【従来の技術】近年、数値演算の分野ではデータ処理量
の増大に伴って、数値演算を高速に、かつ小規模なハー
ドウエアを用いて処理することが必要となってきてい
る。その際、入力データに対して、同一処理を繰り返し
実行することによって出力データを得る場合が多い。こ
の繰り返し実行を制御するための従来の方式としてはた
とえば松下電子工業株式会社 MN1901/MN19
09ユーザーズマニュアル6ページおよび31ページに
記載されているコントロールカウンタを用いて行なう方
式がある。
の増大に伴って、数値演算を高速に、かつ小規模なハー
ドウエアを用いて処理することが必要となってきてい
る。その際、入力データに対して、同一処理を繰り返し
実行することによって出力データを得る場合が多い。こ
の繰り返し実行を制御するための従来の方式としてはた
とえば松下電子工業株式会社 MN1901/MN19
09ユーザーズマニュアル6ページおよび31ページに
記載されているコントロールカウンタを用いて行なう方
式がある。
【0003】以下図面を参照しながら、上記した従来繰
り返し演算装置の一例について説明する。実際には他に
も入出力部等の回路が存在するが、説明の簡単化のため
に、繰り返し演算に関する部分のみを本発明との相違点
を明確にするために構成を若干変えて示している。
り返し演算装置の一例について説明する。実際には他に
も入出力部等の回路が存在するが、説明の簡単化のため
に、繰り返し演算に関する部分のみを本発明との相違点
を明確にするために構成を若干変えて示している。
【0004】図5は従来の繰り返し演算装置のブロック
図を示すものである。図5において、1は、実行する命
令を格納し、後述のインストラクションポインタ(I
P)2が示す番地の命令を出力するインストラクション
メモリ(IMEM)、2は、IMEM1の実行番地を示
すインストラクションポインタ(IP)、3は、後述の
命令解読器(DEC)4の指示にしたがって、バスに出
力されたIPの設定値もしくは後述するスタック(ST
K)5の出力値の上位8ビットを選択するマルチプレク
サ(MPX)、4は、IMEM1が出力した命令を解読
する命令解読器(DEC)で、解読した命令が繰り返し
回数設定命令またはサブルーチンコール命令の場合には
後述のスタックポインタ(SP)6に対してデクリメン
トを指示した後、後述のSTK5のSP6が示す番地の
上位8ビットにIP2の出力を、下位8ビットに後述の
コントロールカウンタ(CC)8の出力を格納すること
を指示するとともに後述のMPX7に対して繰り返し回
数をバス(BUS)経由で選択することを指示した後、
コントロールカウンタ(CC)8にMPX7出力の格納
を指示し、解読した命令が繰り返し動作終了命令であり
かつ後述のCC8の出力が0でない場合には、MPX3
に対して後述のSTK5出力値の上位8ビットを選択す
ることを指示するとともに、IP2にMPX3出力を格
納することを指示し、後述のCC8に対してデクリメン
ト指示を行い、解読した命令が繰り返し動作終了命令で
ありかつ後述のCC8の出力が0の場合には、後述のM
PX7に対してSP6が示す番地のSTK5出力値の下
位8ビットを選択することを指示し、CC8に対してM
PX7で選択したSTK5の出力を格納することを指示
した後、SP6とIP2に対してインクリメントを指示
する。
図を示すものである。図5において、1は、実行する命
令を格納し、後述のインストラクションポインタ(I
P)2が示す番地の命令を出力するインストラクション
メモリ(IMEM)、2は、IMEM1の実行番地を示
すインストラクションポインタ(IP)、3は、後述の
命令解読器(DEC)4の指示にしたがって、バスに出
力されたIPの設定値もしくは後述するスタック(ST
K)5の出力値の上位8ビットを選択するマルチプレク
サ(MPX)、4は、IMEM1が出力した命令を解読
する命令解読器(DEC)で、解読した命令が繰り返し
回数設定命令またはサブルーチンコール命令の場合には
後述のスタックポインタ(SP)6に対してデクリメン
トを指示した後、後述のSTK5のSP6が示す番地の
上位8ビットにIP2の出力を、下位8ビットに後述の
コントロールカウンタ(CC)8の出力を格納すること
を指示するとともに後述のMPX7に対して繰り返し回
数をバス(BUS)経由で選択することを指示した後、
コントロールカウンタ(CC)8にMPX7出力の格納
を指示し、解読した命令が繰り返し動作終了命令であり
かつ後述のCC8の出力が0でない場合には、MPX3
に対して後述のSTK5出力値の上位8ビットを選択す
ることを指示するとともに、IP2にMPX3出力を格
納することを指示し、後述のCC8に対してデクリメン
ト指示を行い、解読した命令が繰り返し動作終了命令で
ありかつ後述のCC8の出力が0の場合には、後述のM
PX7に対してSP6が示す番地のSTK5出力値の下
位8ビットを選択することを指示し、CC8に対してM
PX7で選択したSTK5の出力を格納することを指示
した後、SP6とIP2に対してインクリメントを指示
する。
【0005】5は、後述のSP6が示す番地のデータを
出力し、DEC4がデータの格納を指示した場合には後
述のSP6が示すアドレスの上位8ビットにIP2出力
を格納して下位8ビットに後述のCC8出力を格納する
スタック(STK)、6は、現在処理中のSTK5の番
地を示すスタックポインタ(SP)、7は、DEC4が
BUSデータの選択を指示した場合にはBUSデータ
を、その他の場合にはSTK5の出力を選択するマルチ
プレクサ(MPX)、8は、DEC4がMPX7出力の
格納を指示した場合にはMPX7出力を格納し、デクリ
メントを指示した場合にはデータをカウントダウンする
繰り返し制御カウンタ(CC)である。
出力し、DEC4がデータの格納を指示した場合には後
述のSP6が示すアドレスの上位8ビットにIP2出力
を格納して下位8ビットに後述のCC8出力を格納する
スタック(STK)、6は、現在処理中のSTK5の番
地を示すスタックポインタ(SP)、7は、DEC4が
BUSデータの選択を指示した場合にはBUSデータ
を、その他の場合にはSTK5の出力を選択するマルチ
プレクサ(MPX)、8は、DEC4がMPX7出力の
格納を指示した場合にはMPX7出力を格納し、デクリ
メントを指示した場合にはデータをカウントダウンする
繰り返し制御カウンタ(CC)である。
【0006】従来例の動作を図5のブロック図を参照し
て図6の流れ図に示す最大値を求める場合を例にあげて
説明する。
て図6の流れ図に示す最大値を求める場合を例にあげて
説明する。
【0007】実際には、データの比較演算等のために演
算部が必要となるが、ここでは、繰り返し制御を行なう
部分に関してのみ説明し、データの加減算等を実行する
演算部での動作記述は省略する。
算部が必要となるが、ここでは、繰り返し制御を行なう
部分に関してのみ説明し、データの加減算等を実行する
演算部での動作記述は省略する。
【0008】以下では、レジスタをr0、r1、i番地
のメモリをB[i]で表し、転送命令をMOV、繰り返
し回数設定命令をSCC、インクリメント命令をIN
C、比較命令をCMP、比較結果が正数の場合に分岐す
る命令をBRP、繰り返し終了命令をLENDとする
と、IMEM1には、下記に示すプログラムが格納され
ている。以下では、CCの値を8ビット、IPの値を8
ビットとし、STKは16ビットレジスタ16本から構
成され、SPは4ビットであるとし、データは符号付き
の8ビットとしてr0は最大値の中間値(MAX)を格
納するのに使用し、最小値である−128が格納されて
いるものとする。
のメモリをB[i]で表し、転送命令をMOV、繰り返
し回数設定命令をSCC、インクリメント命令をIN
C、比較命令をCMP、比較結果が正数の場合に分岐す
る命令をBRP、繰り返し終了命令をLENDとする
と、IMEM1には、下記に示すプログラムが格納され
ている。以下では、CCの値を8ビット、IPの値を8
ビットとし、STKは16ビットレジスタ16本から構
成され、SPは4ビットであるとし、データは符号付き
の8ビットとしてr0は最大値の中間値(MAX)を格
納するのに使用し、最小値である−128が格納されて
いるものとする。
【0009】また、SP6には、初期値0が格納されて
いるものとし、NUM回処理を繰り返すものとする。
いるものとし、NUM回処理を繰り返すものとする。
【0010】 番地0 SCC NUM−1 : 繰り返し開始命令 (繰り返し数の設定) 番地1 CMP B[i],r0 : 比較命令(B[i] −r0を実行) 番地2 BRP 5 : 条件判断命令(比較 結果が正の場合に番地5へ分岐) 番地3 INC i : 条件不成立時の命令 (データの読みだし番地をインクリメント) 番地4 LEND : 繰り返し終了命令 番地5 MOV r0,B[i] : 条件成立時分岐先命 令(最大値としてデータB[i]を格納) 番地6 MOV r1,i : 条件成立時処理命令 1(最大値データの番地を格納) 番地7 INC i : 条件成立時処理命令 2 番地8 LEND : 繰り返し終了命令 1)番地0の処理(繰り返しの開始処理:繰り返し回数
設定命令解読) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
設定命令解読) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
【0011】・DEC4では、IMEM1の出力した命
令を解読し、繰り返しの開始命令であることを判別して
以下の指示を出す。
令を解読し、繰り返しの開始命令であることを判別して
以下の指示を出す。
【0012】<繰り返し処理> ・IP2をインクリメントする。
【0013】・SP6をデクリメントする。 ・SP6が示す番地に、IP2とCC8を格納する。
【0014】・命令が示す繰り返し回数をBUSに出力
する。 ・MPX7でBUSデータである繰り返し回数設定値を
選択し、CC8にMPX7出力である繰り返し回数を格
納する。
する。 ・MPX7でBUSデータである繰り返し回数設定値を
選択し、CC8にMPX7出力である繰り返し回数を格
納する。
【0015】・下記2)の処理へ続く。 2)番地1の処理(繰り返し制御命令、条件判断結果に
よる分岐命令以外の処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
よる分岐命令以外の処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
【0016】・DEC4では、IMEM1の出力した命
令を解読し、繰り返し制御命令、条件判断結果による分
岐命令以外であることを判断して以下の指示を出す。
令を解読し、繰り返し制御命令、条件判断結果による分
岐命令以外であることを判断して以下の指示を出す。
【0017】・IP2をインクリメントする。 ・下記3)の処理へ続く。 3)番地2の処理(条件判断結果による分岐処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
DEC4に出力する。
【0018】・DEC4では、IMEM1の出力した命
令を解読し、条件判断結果による分岐命令であることを
判断して条件成立、不成立それぞれの場合に以下の指示
を出す。
令を解読し、条件判断結果による分岐命令であることを
判断して条件成立、不成立それぞれの場合に以下の指示
を出す。
【0019】<<条件成立処理>> ・命令が示す分岐先番地(番地5)をBUSに出力す
る。
る。
【0020】・MPX3でBUS出力を選択し、IP2
に格納する。 ・下記5)6)の処理へ続く。
に格納する。 ・下記5)6)の処理へ続く。
【0021】<<条件不成立処理>> ・IP2をインクリメントする。
【0022】・下記4)の処理へ続く。 4)番地3の処理 ・上記2)番地1の処理に同じ。
【0023】・下記6)の処理へ続く。 5)番地5から番地7の処理 ・上記2)番地1の処理に同じ。
【0024】・下記6)の処理に続く。 6)番地4、番地8の処理 <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
DEC4に出力する。
【0025】・DEC4では、IMEM1の出力した命
令を解読し、繰り返し終了であることを判断してさらに
CC8の出力値によって以下の指示を出す。
令を解読し、繰り返し終了であることを判断してさらに
CC8の出力値によって以下の指示を出す。
【0026】<<CC8が0でない場合 :ループを繰
り返す場合>> ・SP6が示す番地のSTKの出力値上位8ビットをM
PX3で選択して、IP2に格納する。
り返す場合>> ・SP6が示す番地のSTKの出力値上位8ビットをM
PX3で選択して、IP2に格納する。
【0027】・CC8をデクリメントする。 ・上記2)から6)を繰り返す。
【0028】<<CC8が0の場合 : ループを終了す
る場合>> ・SP6が示す番地のSTKの出力値下位8ビットをM
PX7で選択し、CC8に格納する。
る場合>> ・SP6が示す番地のSTKの出力値下位8ビットをM
PX7で選択し、CC8に格納する。
【0029】・IP2をインクリメントする。 ・SP6をインクリメントする。
【0030】・繰り返しを終了し、ループの外の命令実
行に続く。
行に続く。
【0031】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では、特定条件を満足したデータを判別する場
合には、条件分岐命令によって条件を満足するかどうか
を検出した後、条件が満足した場合には該当データを転
送命令を用いて格納する必要があるため、処理時間が大
きくなるという問題点を有していた。
うな構成では、特定条件を満足したデータを判別する場
合には、条件分岐命令によって条件を満足するかどうか
を検出した後、条件が満足した場合には該当データを転
送命令を用いて格納する必要があるため、処理時間が大
きくなるという問題点を有していた。
【0032】本発明は上記問題点に鑑み、特定条件を満
たす場合のデータの判別を高速に実行する繰り返し演算
装置を提供することを目的とする。
たす場合のデータの判別を高速に実行する繰り返し演算
装置を提供することを目的とする。
【0033】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の繰り返し演算方法は、命令列を所定回数繰
り返して実行する場合の繰り返し動作中に、前記命令列
内の命令実行結果が条件成立の場合には繰り返しカウン
タの値をレジスタに格納して前記所定回数まで繰り返し
動作を続行することを特徴とする。また、本発明の繰り
返し演算装置は、命令列を所定回数繰り返して実行する
場合の繰り返し回数を保持し、前記命令列の最終を示す
命令を実行する毎に、予め設定された前記繰り返し回数
に対し、ゼロになるまで1減算する繰り返しカウンタ
と、前記命令列内の命令実行結果の条件成立を判断する
条件判断装置と、前記条件判断装置が条件成立と判断し
た場合に前記繰り返しカウンタの値をロードするバッフ
ァレジスタとを備え、前記条件判断装置が条件成立と判
断した後も、前記所定回数まで繰り返し動作を続行する
ことを特徴とする。
めに本発明の繰り返し演算方法は、命令列を所定回数繰
り返して実行する場合の繰り返し動作中に、前記命令列
内の命令実行結果が条件成立の場合には繰り返しカウン
タの値をレジスタに格納して前記所定回数まで繰り返し
動作を続行することを特徴とする。また、本発明の繰り
返し演算装置は、命令列を所定回数繰り返して実行する
場合の繰り返し回数を保持し、前記命令列の最終を示す
命令を実行する毎に、予め設定された前記繰り返し回数
に対し、ゼロになるまで1減算する繰り返しカウンタ
と、前記命令列内の命令実行結果の条件成立を判断する
条件判断装置と、前記条件判断装置が条件成立と判断し
た場合に前記繰り返しカウンタの値をロードするバッフ
ァレジスタとを備え、前記条件判断装置が条件成立と判
断した後も、前記所定回数まで繰り返し動作を続行する
ことを特徴とする。
【0034】
【作用】本発明は上記した構成によって、条件判断装置
が特定条件の発生を検出した場合には、バッファレジス
タに繰り返しカウンタの値を自動的に格納するため、繰
り返し動作終了時に、繰り返し動作中のどのデータが条
件を満足するかが判別でき、命令によるデータ格納を伴
わず、高速に特定条件判断が実行されることとなる。
が特定条件の発生を検出した場合には、バッファレジス
タに繰り返しカウンタの値を自動的に格納するため、繰
り返し動作終了時に、繰り返し動作中のどのデータが条
件を満足するかが判別でき、命令によるデータ格納を伴
わず、高速に特定条件判断が実行されることとなる。
【0035】
【実施例】以下本発明の一実施例の繰り返し演算装置に
ついて、図面を参照しながら説明する。図1は本発明の
実施例における繰り返し演算装置の構成図を示すもので
ある。図1において、図5と同一構成要素については同
一番号を付す。ここでは、従来例と同様に、CCの値を
8ビット、IPの値を8ビットとし、STKは16ビッ
トレジスタ16本から構成され、SPを4ビットとして
最大値を求める場合を例に挙げて説明する。
ついて、図面を参照しながら説明する。図1は本発明の
実施例における繰り返し演算装置の構成図を示すもので
ある。図1において、図5と同一構成要素については同
一番号を付す。ここでは、従来例と同様に、CCの値を
8ビット、IPの値を8ビットとし、STKは16ビッ
トレジスタ16本から構成され、SPを4ビットとして
最大値を求める場合を例に挙げて説明する。
【0036】図1において、9は比較演算の結果0より
大きいデータが検出された場合に、後述のCCB10に
対してデータの格納を指示する条件判定回路、10は条
件判定回路9がデータの格納を指示した場合にはCC8
出力を格納するコントロールカウンタバッファ(CC
B)である。
大きいデータが検出された場合に、後述のCCB10に
対してデータの格納を指示する条件判定回路、10は条
件判定回路9がデータの格納を指示した場合にはCC8
出力を格納するコントロールカウンタバッファ(CC
B)である。
【0037】以上のように構成された繰り返し演算装置
について動作を説明する前に、本発明の基本的な考え方
を説明する。
について動作を説明する前に、本発明の基本的な考え方
を説明する。
【0038】命令を繰り返して実行する場合にはメモリ
の連続したデータに対して処理する場合が多く、その場
合には繰り返しのn回目に処理するデータは一意に決定
できる。
の連続したデータに対して処理する場合が多く、その場
合には繰り返しのn回目に処理するデータは一意に決定
できる。
【0039】たとえば、CCに設定する繰り返し回数を
m−1回に設定して1回のループで番地kのデータから
1データずつm個のデータを処理する場合、繰り返し回
数n(CCの値がm−n)では、番地n+kのデータを
処理することになる。
m−1回に設定して1回のループで番地kのデータから
1データずつm個のデータを処理する場合、繰り返し回
数n(CCの値がm−n)では、番地n+kのデータを
処理することになる。
【0040】したがって、条件を満たす演算が発生した
時のCCの値がわかれば、その時に処理したデータがど
のデータかすなわちデータが格納されている番地は m
−(CCBに格納された値)+k である。
時のCCの値がわかれば、その時に処理したデータがど
のデータかすなわちデータが格納されている番地は m
−(CCBに格納された値)+k である。
【0041】以下で、従来例と同様に最大値が格納され
た番地を求める場合を例にあげて、動作を説明する。処
理は、図2の流れ図に示す通りであり、IMEM1に
は、下記に示すプログラムが格納されている。
た番地を求める場合を例にあげて、動作を説明する。処
理は、図2の流れ図に示す通りであり、IMEM1に
は、下記に示すプログラムが格納されている。
【0042】 番地0 SCC NUM−1 : 繰り返し開始命令 (繰り返し数の設定) 番地1 CMP B[i],r0 : 比較命令(B[i] −r0を実行) 番地2 BRP 5 : 条件判断命令(比較 結果が正の場合に番地5へ分岐) 番地3 INC i : 条件不成立時の命令 (データの読みだし番地をインクリメント) 番地4 LEND : 繰り返し終了命令 番地5 MOV r0,B[i] : 条件成立時分岐先命 令(最大値としてデータB[i]を格納) 番地6 INC i : 条件成立時処理命令 1 番地7 LEND : 繰り返し終了命令 1)番地0の処理(繰り返しの開始処理:繰り返し回数
設定命令解読) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
設定命令解読) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
【0043】・DEC4では、IMEM1の出力した命
令を解読し、繰り返しの開始命令であることを判別して
以下の指示を出す。
令を解読し、繰り返しの開始命令であることを判別して
以下の指示を出す。
【0044】<繰り返し処理> ・IP2をインクリメントする。
【0045】・SP6をデクリメントする。 ・SP6が示す番地に、IP2とCC8を格納する。
【0046】・命令が示す繰り返し回数をBUSに出力
する。 ・MPX7でBUSデータである繰り返し回数設定値を
選択し、CC8に繰り返し回数を設定する。
する。 ・MPX7でBUSデータである繰り返し回数設定値を
選択し、CC8に繰り返し回数を設定する。
【0047】・下記2)の処理へ続く。 2)番地1の処理(繰り返し制御命令、条件判断結果に
よる分岐命令以外の処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
よる分岐命令以外の処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
【0048】・DEC4では、IMEM1の出力した命
令を解読し、繰り返し制御命令、条件判断結果による分
岐命令以外であることを判断して以下の指示を出す。
令を解読し、繰り返し制御命令、条件判断結果による分
岐命令以外であることを判断して以下の指示を出す。
【0049】・IP2をインクリメントする。 <特定条件発生時の処理> 上記 命令解読処理と並列
に下記動作を行なう。
に下記動作を行なう。
【0050】・条件判定回路9が比較命令(CMP)命
令を実行した結果、0より大きい数を検出した場合(B
[i]−r0>0)に、CCB10がCC8の出力を格
納する。
令を実行した結果、0より大きい数を検出した場合(B
[i]−r0>0)に、CCB10がCC8の出力を格
納する。
【0051】・下記3)の処理に続く。 3)番地2の処理(条件判断結果による分岐処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
DEC4に出力する。
【0052】・DEC4では、IMEM1の出力した命
令を解読し、条件判断結果による分岐命令であることを
判断して条件成立、不成立それぞれの場合に以下の指示
を出す。
令を解読し、条件判断結果による分岐命令であることを
判断して条件成立、不成立それぞれの場合に以下の指示
を出す。
【0053】<<条件成立処理>> ・命令が示す分岐先番地(番地5)をBUSに出力す
る。
る。
【0054】 ・MPX3でBUS出力を選択し、IP2に格納する。 ・下記5)6)の処理へ続く。
【0055】<<条件不成立処理>> ・IP2をインクリメントする。
【0056】・下記4)の処理に続く。 4)番地3の処理 ・上記2)番地1の処理に同じ。
【0057】・下記6)の処理へ続く。 5)番地5から番地6の処理 ・上記2)番地1の処理に同じ。
【0058】・下記6)の処理へ続く。 6)番地4、番地7の処理 <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
DEC4に出力する。
【0059】・DEC4では、IMEM1の出力した命
令を解読し、繰り返し終了であることを判断してさらに
CC8の出力値によって以下の指示を出す。
令を解読し、繰り返し終了であることを判断してさらに
CC8の出力値によって以下の指示を出す。
【0060】<<CC8が0でない場合 :ループを繰
り返す場合>> ・SP6が示す番地のSTKの出力値上位8ビットをM
PX3で選択して、IP2に格納する。
り返す場合>> ・SP6が示す番地のSTKの出力値上位8ビットをM
PX3で選択して、IP2に格納する。
【0061】・CC8をデクリメントする。 ・上記2)から6)を繰り返す。
【0062】<<CC8が0の場合 : ループを終了す
る場合>> ・SP6が示す番地のSTKの出力値下位8ビットをM
PX7で選択し、CC8に格納する。
る場合>> ・SP6が示す番地のSTKの出力値下位8ビットをM
PX7で選択し、CC8に格納する。
【0063】・IP2をインクリメントする。 ・SP6をインクリメントする。
【0064】・繰り返しを終了し、ループの外の命令実
行に続く。 以上のように本実施例によれば、特定条件を判定する条
件判定回路と、その条件判定回路が条件成立を検出した
場合には繰り返し制御カウンタの値をロードするバッフ
ァレジスタを設けることにより、高速に条件判定結果の
データ判別が可能となり、特定条件を満足する回数をy
とすると、従来方式に比べ、yマシンサイクルのデータ
格納時間が削減できる。
行に続く。 以上のように本実施例によれば、特定条件を判定する条
件判定回路と、その条件判定回路が条件成立を検出した
場合には繰り返し制御カウンタの値をロードするバッフ
ァレジスタを設けることにより、高速に条件判定結果の
データ判別が可能となり、特定条件を満足する回数をy
とすると、従来方式に比べ、yマシンサイクルのデータ
格納時間が削減できる。
【0065】第2の実施例について図面を参照しながら
説明する。図3は本発明の第2の実施例を示す繰り返し
演算装置の構成図である。図3において、図1と同一構
成要素については同一番号を付す。
説明する。図3は本発明の第2の実施例を示す繰り返し
演算装置の構成図である。図3において、図1と同一構
成要素については同一番号を付す。
【0066】ここでは、従来例、第1の実施例と同様
に、CCの値を8ビット、IPの値を8ビットとする。
また、STKおよびCCSTKは16ビットレジスタ1
6本から構成され、SPおよびCCSPは4ビットとす
る場合を例に挙げて説明する。また、SP6およびCC
SP11には、初期値0が格納されているものとする。
に、CCの値を8ビット、IPの値を8ビットとする。
また、STKおよびCCSTKは16ビットレジスタ1
6本から構成され、SPおよびCCSPは4ビットとす
る場合を例に挙げて説明する。また、SP6およびCC
SP11には、初期値0が格納されているものとする。
【0067】図3において、11は後述の制御カウンタ
スタック(CCSTK)12の番地を示す制御カウンタ
スタックポインタ(CCSP)、12は条件判定回路9
が特定条件の成立を検出した場合にCCSP11が示す
番地にCC8のデータを格納する制御カウンタスタック
(CCSTK)である。
スタック(CCSTK)12の番地を示す制御カウンタ
スタックポインタ(CCSP)、12は条件判定回路9
が特定条件の成立を検出した場合にCCSP11が示す
番地にCC8のデータを格納する制御カウンタスタック
(CCSTK)である。
【0068】以上のように構成された繰り返し演算装置
について誤りデータの検出処理(真値がA[i]に格納
され、それと比較するためのデータがB[i]に格納さ
れているものとし、A[i]=B[i]でない場合のデ
ータ(誤りデータ)を検出する。)を例にあげて動作を
説明する。処理手順は図4(b)に示す。処理は、図4
の流れ図に示す通りであり、IMEM1には、下記に示
すプログラムが格納されている。
について誤りデータの検出処理(真値がA[i]に格納
され、それと比較するためのデータがB[i]に格納さ
れているものとし、A[i]=B[i]でない場合のデ
ータ(誤りデータ)を検出する。)を例にあげて動作を
説明する。処理手順は図4(b)に示す。処理は、図4
の流れ図に示す通りであり、IMEM1には、下記に示
すプログラムが格納されている。
【0069】 番地0 SCC NUM : 繰り返し開始命令 (繰り返し数NUMの設定) 番地1 CMP B[i],A[i] : 比較命令(B[i ]−A[i]を実行) 番地2 LEND : 繰り返し終了命令 1)番地0の処理(繰り返しの開始処理:繰り返し回数
設定命令解読) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
設定命令解読) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
【0070】・DEC4では、IMEM1の出力した命
令を解読し、繰り返しの開始命令であることを判別して
以下の指示を出す。
令を解読し、繰り返しの開始命令であることを判別して
以下の指示を出す。
【0071】<繰り返し処理> ・IP2をインクリメントする。
【0072】・SP6をデクリメントする。 ・SP6が示す番地に、IP2とCC8を格納する。
【0073】・命令が示す繰り返し回数をBUSに出力
する。 ・MPX7でBUSデータである繰り返し回数設定値を
選択し、CC8に繰り返し回数を設定する。
する。 ・MPX7でBUSデータである繰り返し回数設定値を
選択し、CC8に繰り返し回数を設定する。
【0074】・処理2)に続く。 2)番地1の処理(繰り返し制御命令、条件判断結果に
よる分岐命令以外の処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
よる分岐命令以外の処理) <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
【0075】・DEC4では、IMEM1の出力した命
令を解読し、繰り返し制御命令、条件判断結果による分
岐命令以外であることを判断して以下の指示を出す。
令を解読し、繰り返し制御命令、条件判断結果による分
岐命令以外であることを判断して以下の指示を出す。
【0076】・IP2をインクリメントする。 <特定条件発生時の処理> 上記 命令解読処理と並列
に下記動作を行なう。
に下記動作を行なう。
【0077】・条件判定回路9が比較命令(CMP)命
令を実行した結果、0以外の数を検出した場合(B
[i]≠A[i])に、以下の動作を行なう。
令を実行した結果、0以外の数を検出した場合(B
[i]≠A[i])に、以下の動作を行なう。
【0078】・CCSP11をディクリメントする。 ・CCSTK12のCCSP11が示す番地に、CC8
の出力を格納する。
の出力を格納する。
【0079】・処理3)に続く。 3)番地2の処理の処理 <命令解読> ・IMEM1は、IP2が示す番地の命令を読みだして
DEC4に出力する。
DEC4に出力する。
【0080】・DEC4では、IMEM1の出力した命
令を解読し、繰り返し終了であることを判断してさらに
CC8の出力値によって以下の指示を出す。
令を解読し、繰り返し終了であることを判断してさらに
CC8の出力値によって以下の指示を出す。
【0081】<<CC8が0でない場合 :ループを繰
り返す場合>> ・SP6が示す番地のSTKの出力値上位8ビットをM
PX3で選択して、IP2に格納する。
り返す場合>> ・SP6が示す番地のSTKの出力値上位8ビットをM
PX3で選択して、IP2に格納する。
【0082】・CC8をデクリメントする。 ・上記2)を繰り返す。
【0083】<<CC8が0の場合 : ループを終了す
る場合>> ・SP6が示す番地のSTKの出力値下位8ビットをM
PX7で選択し、CC8に格納する。
る場合>> ・SP6が示す番地のSTKの出力値下位8ビットをM
PX7で選択し、CC8に格納する。
【0084】・IP2をインクリメントする。 ・SP6をインクリメントする。
【0085】 ・繰り返しを終了し、ループの外の命令実行に続く。繰
り返し終了時にCCSTK12に格納された値が誤りデ
ータを処理した繰り返し回数であるため、誤りデータの
格納番地は、繰り返し回数をx、データの処理開始番地
をkとすると、データの番地は x−(CCSTKに格
納された値)+k であり、誤り個数はCCSP+16
である。
り返し終了時にCCSTK12に格納された値が誤りデ
ータを処理した繰り返し回数であるため、誤りデータの
格納番地は、繰り返し回数をx、データの処理開始番地
をkとすると、データの番地は x−(CCSTKに格
納された値)+k であり、誤り個数はCCSP+16
である。
【0086】以上のように本実施例によれば、特定条件
を判定する条件判定回路と、その条件判定回路が条件成
立を検出した場合には繰り返し制御カウンタの値をロー
ドするスタックレジスタを設けることにより、条件分岐
命令の実行とデータのロード時間を仮に1マシンサイク
ルであるとしても、繰り返し回数をx、特定条件を満足
する回数をyとすると、分岐命令を用いて条件判定を実
行する従来例に比べ、x+yマシンサイクルの処理時間
が削減可能である。
を判定する条件判定回路と、その条件判定回路が条件成
立を検出した場合には繰り返し制御カウンタの値をロー
ドするスタックレジスタを設けることにより、条件分岐
命令の実行とデータのロード時間を仮に1マシンサイク
ルであるとしても、繰り返し回数をx、特定条件を満足
する回数をyとすると、分岐命令を用いて条件判定を実
行する従来例に比べ、x+yマシンサイクルの処理時間
が削減可能である。
【0087】実際には、命令実行はパイプライン処理等
を使用するため、分岐処理には、分岐条件成立か不成立
かによって実行サイクルが異なり、成立不成立のどちら
か一方が2マシンサイクル以上の処理時間を要するのが
一般的である。したがって、x+yマシンサイクル以上
の処理時間が削減可能である。
を使用するため、分岐処理には、分岐条件成立か不成立
かによって実行サイクルが異なり、成立不成立のどちら
か一方が2マシンサイクル以上の処理時間を要するのが
一般的である。したがって、x+yマシンサイクル以上
の処理時間が削減可能である。
【0088】なお、第1、第2の実施例で特定条件判定
回路を明記したが、この条件判定は分岐条件の判定回路
と共通化が可能であるため、回路規模が小さくなる。ま
た、条件判定回路で判定する条件は、例にあげたもの以
外にも考えられる。
回路を明記したが、この条件判定は分岐条件の判定回路
と共通化が可能であるため、回路規模が小さくなる。ま
た、条件判定回路で判定する条件は、例にあげたもの以
外にも考えられる。
【0089】
【発明の効果】以上のように本発明は、繰り返し動作終
了時に、繰り返し動作中のどのデータが条件を満足する
かが判別でき、命令によるデータ格納を伴わず、高速に
条件判断が実行される。
了時に、繰り返し動作中のどのデータが条件を満足する
かが判別でき、命令によるデータ格納を伴わず、高速に
条件判断が実行される。
【図1】本発明の第1の実施例における繰り返し演算装
置の構成図
置の構成図
【図2】同実施例における繰り返し演算装置説明のため
の最大値検出処理フローを示す図
の最大値検出処理フローを示す図
【図3】本発明の第2の実施例における繰り返し演算装
置の構成図
置の構成図
【図4】同実施例における繰り返し演算装置説明のため
の誤りデータ検出処理フローを示す図
の誤りデータ検出処理フローを示す図
【図5】本発明の従来の実施例における繰り返し演算装
置の構成図
置の構成図
【図6】従来の実施例における繰り返し演算装置説明の
ための最大値検出処理フローを示す図
ための最大値検出処理フローを示す図
1 インストラクションメモリ 2 インストラクションポインタ 3、7 マルチプレクサ 4 命令解読器 5 スタック 6 スタックポインタ 8 コントロールカウンタ 9 条件判定回路 10 コントロールカウンタバッファ 11 コントロールカウンタスタックポインタ 12 コントロールカウンタスタック
フロントページの続き (56)参考文献 特開 昭60−3760(JP,A) 特開 昭62−169232(JP,A) 特開 昭60−7536(JP,A) 特開 昭58−127245(JP,A) 特開 昭60−108973(JP,A) 特開 昭61−138374(JP,A) 特開 平5−233385(JP,A) 特開 昭58−54454(JP,A) 杉村敏夫、外4名、“移動体通信音声 コーデック用LSI”、Nationa l TECHNICAL REPOR T、1996年2月18日、第42巻第1号、 p.85−93 (58)調査した分野(Int.Cl.7,DB名) G06F 9/30 - 9/42 G06F 7/02
Claims (3)
- 【請求項1】命令列を所定回数繰り返して実行する場合
の繰り返し動作中に、前記命令列内の命令実行結果が条
件成立の場合には繰り返しカウンタの値をレジスタに格
納して前記所定回数まで繰り返し動作を続行する繰り返
し演算方法。 - 【請求項2】命令列を所定回数繰り返して実行する場合
の繰り返し回数を保持し、前記命令列の最終を示す命令
を実行する毎に、予め設定された前記繰り返し回数に対
し、ゼロになるまで1減算する繰り返しカウンタと、 前記命令列内の命令実行結果の条件成立を判断する条件
判断装置と、 前記条件判断装置が条件成立と判断した場合に前記繰り
返しカウンタの値をロードするバッファレジスタとを備
え、 前記条件判断装置が条件成立と判断した後も、前記所定
回数まで繰り返し動作を続行することを特徴とする繰り
返し演算装置。 - 【請求項3】前記条件判断装置が条件成立を判断した場
合に前記繰り返しカウンタの値をプッシュするスタック
とそのスタックの番地を示すスタックポインタを有する
ことを特徴とする請求項2記載の繰り返し演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14240692A JP3186214B2 (ja) | 1992-06-03 | 1992-06-03 | 繰り返し演算方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14240692A JP3186214B2 (ja) | 1992-06-03 | 1992-06-03 | 繰り返し演算方法および装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH05334079A JPH05334079A (ja) | 1993-12-17 |
JP3186214B2 true JP3186214B2 (ja) | 2001-07-11 |
Family
ID=15314605
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP14240692A Expired - Fee Related JP3186214B2 (ja) | 1992-06-03 | 1992-06-03 | 繰り返し演算方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3186214B2 (ja) |
-
1992
- 1992-06-03 JP JP14240692A patent/JP3186214B2/ja not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
杉村敏夫、外4名、"移動体通信音声コーデック用LSI"、National TECHNICAL REPORT、1996年2月18日、第42巻第1号、p.85−93 |
Also Published As
Publication number | Publication date |
---|---|
JPH05334079A (ja) | 1993-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2539199B2 (ja) | デジタルプロセッサ制御装置 | |
US4409654A (en) | Data processor adapted for interruption to an instruction stream | |
EP1058185A1 (en) | A multiply and accumulate apparatus and a method thereof | |
JP3105738B2 (ja) | 情報処理装置 | |
US4652997A (en) | Method and apparatus for minimizing overhead when executing nested do loops | |
JPH01137331A (ja) | 制御ワード分岐方法 | |
US5142630A (en) | System for calculating branch destination address based upon address mode bit in operand before executing an instruction which changes the address mode and branching | |
JP3186214B2 (ja) | 繰り返し演算方法および装置 | |
EP0240606A2 (en) | Pipe-line processing system and microprocessor using the system | |
KR100188374B1 (ko) | 연산처리장치 | |
JPH0319974B2 (ja) | ||
JPH01183737A (ja) | 情報処理装置 | |
JPH0528431B2 (ja) | ||
US5732252A (en) | Program counter system capable of incrementing or decrementing after a conditional jump instruction | |
JP2525492B2 (ja) | プログラマブルコントロ―ラ | |
JPS6242301B2 (ja) | ||
JPS58222348A (ja) | 情報処理装置 | |
JP2853774B2 (ja) | プログラマブルコントローラ | |
JP3531856B2 (ja) | プログラム制御方法及びプログラム制御装置 | |
JP3210171B2 (ja) | データ処理装置 | |
JP2689894B2 (ja) | マイクロプログラム制御型情報処理装置 | |
JP3074790B2 (ja) | マイクロプロセッサ | |
JP3182287B2 (ja) | マイクロプロセッサ | |
JPH0481218B2 (ja) | ||
JPH0750596A (ja) | 符号化装置及び符号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |