JPH0863355A - プログラム制御装置及びプログラム制御方法 - Google Patents

プログラム制御装置及びプログラム制御方法

Info

Publication number
JPH0863355A
JPH0863355A JP6194037A JP19403794A JPH0863355A JP H0863355 A JPH0863355 A JP H0863355A JP 6194037 A JP6194037 A JP 6194037A JP 19403794 A JP19403794 A JP 19403794A JP H0863355 A JPH0863355 A JP H0863355A
Authority
JP
Japan
Prior art keywords
loop
program
address
program counter
instruction
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.)
Pending
Application number
JP6194037A
Other languages
English (en)
Inventor
Robaato Sutoraitenberugaa
ロバート ストライテンベルガー
Hiroyuki Kawai
浩行 河合
Yoshitsugu Inoue
喜嗣 井上
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP6194037A priority Critical patent/JPH0863355A/ja
Priority to US08/509,940 priority patent/US5657485A/en
Publication of JPH0863355A publication Critical patent/JPH0863355A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30065Loop control instructions; iterative instructions, e.g. LOOP, REPEAT

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 効率的なループ処理が制御可能なプログラム
制御装置を得る。 【構成】 ループ処理のStartアドレス及びEnd
アドレスそれぞれの値は、クロックt1に同期して、レ
ジスタ(start)7及びレジスタ(end)8にそ
れぞれ記憶される。レジスタ7の格納データstart
とレジスタ8の格納データendは、それぞれコンパレ
ータ12及びコンパレータ11に入力される。コンパレ
ータ12は、遅延プログラムカウンタ18の出力とデー
タstartとを比較して、両者が等しいときのみフラ
グfstartセットし、他の場合はリセットする。コンパ
レータ11は、遅延プログラムカウンタ18の出力とデ
ータendとを比較して両者が等しいときのみフラグf
endをセットし、他の場合はリセットする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、プログラムを実行制
御するプログラム制御装置及びプログラム制御方法に関
する。
【0002】
【従来の技術】リアルタイムアプリケーションでは、命
令がスムーズに流れることが重要である。例えば、任意
の種類のプロセッサでフィルターアルゴリズムを実行す
る場合、個々のループ命令の繰り返しによる割り込みな
しに垂直方向および水平方向の走査が行われると、適用
されたマトリクスの重複走査の結果は、速度の点からみ
ると最高の結果が得られる。
【0003】したがって、プログラムの実行を制御する
プログラム制御装置は、通常、繰り返し処理を簡単に行
うべく、ループ命令の実行を可能にしている。
【0004】シングルループの場合、標準ループ命令の
構文は図17のようになる。なお、図17において、
“lc”はループカウンタ、“End”は繰り返し実行
されるループブロックの最終命令のアドレスを示す。
【0005】当該命令にはプログラマにとって厳しい制
限が1つある。すなわち、ループ命令は、ループブロッ
クの第1行目(図17の40行)の直前の行(図17の
39行)に記述しなければならない。
【0006】ネスティングされた2つのループの標準的
なプログラム記述例を図18に示す。
【0007】図18から分かるように、36行〜45行
に記述されたBlock1のループブロックが、40〜
42行に記述されたBlock2のブロックを取り囲ん
でいる。Block1のループブロックが実行される毎
に、内側のBlock2のループ命令(39行目)が繰
返し実行される。
【0008】35行、39行目にそれぞれ記述されたル
ープ命令は、情報(ループカウンタ、開始および終了ア
ドレス)の伝達を行うための命令であるため、1度実行
すれば十分である。
【0009】しかしながら、Block2のループ命令
は、Block1のループが繰り返される度に実行され
るため、(lc1−1)回余分に実行されることにな
り、非効率的な実行となる。この非効率な実行により、
フィルターアプリケーション等の実行の際には大きな悪
影響を受ける。以下、その詳細な説明を行う。
【0010】フィルターアプリケーションのプログラム
を実行する際、画素データのマトリクスが3対3要素の
重畳マスク(例えば、“ラプラシアン端線検出”)を付
与される場合、各水平方向走査線の開始と終了で特別の
処理を行わなければならない。境界画素の外挿のため、
図19に示すように、“仮想の”ゼロを境界に沿って挿
入する。
【0011】フレームの内部画素は、インデックス配列
を用いて容易に処理され、データスタックのアドレス指
定が可能となる。マスクがシフトされると、インデック
スはインクリメントされる。よって、マスクの水平方向
走査のために、繰返しブロック、すなわちループ処理を
行うことができる。しかし、マスクの境界に関しては、
ゼロ挿入のためにブロックは不規則である。
【0012】これによって、図19で示した画素をマス
ク処理するには、処理される各フレームラインの開始と
終了で、図20に示すように、別個のブロック(Blo
ckA,BlockB,BlockC)を用いてプログ
ラムを作成する必要がある。なお、図20は1水平方向
走査処理のプログラムであり、a[0]〜a[5]に画
素1〜画素6の画素データが格納されるインデックス配
列である。a[i,1]は配列a[i]の値を取り出し
た後に変数iを1インクリメントすることを意味し、a
[i,−1]は配列a[i]の値を取り出した後に変数
iを1デクリメントすることを意味している。wr
[0]〜wr[2]はマスクの第1行目の値を格納した
配列であり、loadはデータロード命令、mulac
cは演算命令である。また、図20では示していない
が、変種iの初期値は“1”である。
【0013】標準ループ命令は、BlockAとループ
ブロックBlockBとの間に位置しなければならない
(図20の39行目)。この39行目のループ命令が不
規則性を引き起こす。なぜなら、BlockBを処理す
るまでに行われる工程は、境界画素を処理するBloc
kAの3工程に加え、ループ命令を含めると4工程が必
要となり1工程増加するため、1水平方向走査のマスク
処理を3工程で行えない箇所が出現して完全なフレーム
のリアルタイム処理が禁止されるからである。
【0014】さらに、実際のフィルタリング処理は、上
記水平方向走査を内部ループとし、外部ループ(垂直方
向走査)が実行されるため、外部ループが繰り返される
度に水平方向走査のループ命令を繰返さなければならな
いために、全体の処理時間が長くなるという問題点があ
った。
【0015】
【発明が解決しようとする課題】従来のプログラム制御
装置により、ループ命令は以上のように制御されるた
め、非効率であり、フィルタ処理等のアプリケーション
の処理時間を長くしてしまうという問題点があった。
【0016】この発明は上記問題点を解決するためにな
されたもので、効率的なループ処理が制御可能なプログ
ラム制御装置及びプログラム制御方法を得ることを目的
とする。
【0017】
【課題を解決するための手段】この発明に係る請求項1
記載のプログラム制御装置は、アドレスに対応した複数
の命令からなるプログラムの実行制御を行う装置であっ
て、前記プログラム制御装置は、ループ処理実行に際
し、ループ処理の開始アドレス及び終了アドレス並びに
反復数を規定したループ命令と、前記開始アドレスと前
記終了アドレスとの間に記述された少なくとも1つの命
令からなるループ実行命令群とを前記プログラム中に記
述することを要求し、現在の実行対象の命令のアドレス
を規定するプログラムカウンタを所定時間間隔でインク
リメントして出力するプログラムカウンタ出力手段と、
前記開始アドレスを格納する開始アドレス記憶手段と、
前記終了アドレスを格納する終了アドレス記憶手段と、
前記反復数を格納する反復数記憶手段と、前記プログラ
ムカウンタと前記開始アドレスとの比較結果に基づきル
ープ処理の開始を認識し、前記プログラムカウンタと前
記終了アドレスとの比較結果に基づきループ処理の終了
を認識することにより、前記ループ実行命令群の命令が
前記反復数回、繰り返して実行されるように前記プログ
ラムカウンタを設定するループ制御手段とを備えて構成
される。
【0018】この発明に係る請求項2記載のプログラム
制御装置は、アドレスに対応した複数の命令からなるプ
ログラムの実行制御を行う装置であって、前記プログラ
ム制御装置は、ネスティングされたループ処理の実行に
際し、第1〜第n(n≧2)の順にネスティングされた
第1〜第nループ処理それぞれの開始アドレス及び終了
アドレス並びに反復数を規定した第1〜第nのループ命
令と、前記第1〜第nのループ命令それぞれで規定され
た前記開始アドレスと前記終了アドレスとの間に記述さ
れた少なくとも1つの命令からなる第1〜第nのループ
実行命令群とを前記プログラム中に記述することを要求
し、現在の実行対象の命令のアドレスを規定するプログ
ラムカウンタを所定時間間隔でインクリメントして出力
するプログラムカウンタ出力手段と、前記第1〜第nの
ループ処理の前記開始アドレスを第1〜第nの開始アド
レスとして格納する第1〜第nの開始アドレス記憶手段
と、前記第1〜第nのループ処理の前記終了アドレスを
第1〜第nの終了アドレスとして格納する第1〜第nの
終了アドレス記憶手段と、前記第1〜第nのループ処理
の前記反復数を第1〜第nの反復数として格納する第1
〜第nの反復数記憶手段と、選択制御信号に基づき、前
記第1〜第nの開始アドレスのうちの一のアドレスを選
択開始アドレスとして出力する開始アドレス選択手段
と、前記選択制御信号に基づき、前記第1〜第nの終了
アドレスのうちの一のアドレスを選択終了アドレスとし
て出力する終了アドレス選択手段と、前記選択制御信号
に基づき、前記第1〜第nの反復数のうちの一の反復数
を選択反復数として出力する反復数選択手段と、前記プ
ログラムカウンタと前記選択開始アドレスとの比較結果
及び前記プログラムカウンタと前記選択終了アドレスと
の比較結果に基づき、現在制御対象となるループ処理を
指示する選択制御信号を出力する選択制御信号出力手段
と、前記プログラムカウンタと前記選択開始アドレスと
の比較結果に基づき、選択開始アドレスに対応するルー
プ処理の開始を認識し、前記プログラムカウンタと前記
選択終了アドレスとの比較結果に基づき前記選択終了ア
ドレスに対応するループ処理の終了を認識して、制御対
象のループ処理が前記選択反復数回、繰り返して実行さ
れるように前記プログラムカウンタを設定するループ制
御手段とを備えて構成される。
【0019】この発明に係る請求項3記載のプログラム
制御方法は、アドレスに対応した複数の命令からなるプ
ログラムの実行制御を行う方法であって、前記プログラ
ム制御方法は、ループ処理実行に際し、ループ処理の開
始アドレス及び終了アドレス並びに反復数を規定したル
ープ命令と、前記開始アドレスと終了アドレスとの間に
記述された少なくとも1つの命令からなるループ実行命
令群とを前記プログラム中に記述することを要求し、
(a) 現在の実行対象の命令のアドレスを規定するプログ
ラムカウンタを前記プログラムの先頭アドレスから所定
時間間隔でインクリメントするステップと、(b) 前記プ
ログラムカウンタの指示するアドレスの命令がループ命
令である場合にループ処理の開始アドレス、終了アドレ
ス及び反復数を記憶するステップと、(c) 前記プログラ
ムカウンタと前記ステップ(b)で記憶した前記開始アド
レスとの比較結果に基づきループ処理の開始を認識し、
前記プログラムカウンタと前記ステップ(b)で記憶した
前記終了アドレスとの比較結果に基づき前記ループ処理
の終了を認識することにより、前記ループ実行命令群の
命令が前記反復数回、繰り返して実行されるように前記
プログラムカウンタを設定するステップとを備えて構成
される。
【0020】
【作用】この発明における請求項1記載のプログラム制
御装置のループ制御手段は、プログラムカウンタと開始
アドレスとの比較結果に基づきループ処理の開始を認識
することができるため、プログラム中においてループ命
令はループ実行命令群の前であれば任意の位置に記述す
ることができる。
【0021】この発明における請求項2記載のプログラ
ム制御装置は、プログラムカウンタと選択開始アドレス
との比較結果及びプログラムカウンタと選択終了アドレ
スとの比較結果に基づき、現在制御対象となるループ処
理を指示する選択制御信号を出力する選択制御信号出力
手段と、プログラムカウンタと選択開始アドレスとの比
較結果に基づき、選択開始アドレスに対応するループ処
理の開始を認識し、プログラムカウンタと選択終了アド
レスとの比較結果に基づき選択終了アドレスに対応する
ループ処理の終了を認識して、制御対象のループ処理が
前記選択反復数回、繰り返して実行されるようにプログ
ラムカウンタを設定するループ制御手段とを備えてい
る。
【0022】したがって、プログラム中において、第1
〜第nのループ命令はそれぞれ第1〜第nのループ実行
命令群の前であれば任意の位置に記述することができ
る。
【0023】この発明における請求項3記載のプログラ
ム制御方法のステップ(c)は、プログラムカウンタと開
始アドレスとの比較結果に基づきループ処理の開始を認
識し、プログラムカウンタと終了アドレスとの比較結果
に基づきループ処理の終了を認識することにより、ルー
プ実行命令群の命令が反復数回、繰り返して実行される
ようにプログラムカウンタを設定している。
【0024】したがって、プログラム中においてループ
命令はループ実行命令群の前であれば任意の位置に記述
することができる。
【0025】
【実施例】
<第1の実施例>図1はこの発明の第1の実施例である
プログラム制御装置で実行制御可能なプログラムリスト
を示す説明図である。図1は、従来例で示した図17に
対応するシングルループ命令の例を示している。
【0026】第1の実施例のプログラム制御装置は、開
始アドレスと終了アドレスとを指定してループブロック
を指示するループ命令を記述可能にする。したがって、
このループ命令は、指示するループブロックより前であ
れば記述箇所が制限されない。図1の例では、アドレス
40〜42番に記述されたループブロックB1より、2
0番前のアドレス21番にループ命令「loop l
c,Start,End」を記述している。
【0027】図1に示すように、ループ命令の開始アド
レスStartと終了アドレスEndとが独立的に割当
てられている。
【0028】図1と図17とを比較した場合、全体の処
理時間はシングルループ命令に影響されないが、リアル
タイム処理に必要な規則性は維持される。
【0029】これによって、いかなるブロック区分され
たアルゴリズムでもスムーズに処理可能になる。
【0030】図15は、第1の実施例のプログラム制御
装置を含んだプログラム実行システムの全体構成を示す
説明図である。同図に示すように、記憶装置100内に
複数の命令がアドレス(図1の行番号に相当)に対応し
て記述されたプログラム101が格納されており、プロ
グラム制御装置102は、プログラム101の先頭アド
レスからプログラムカウンタPCを所定時間間隔でイン
クリメントて命令実行装置103に出力する。この際、
ループ処理を認識した場合はループ処理が所定回数繰り
返されるようにプログラムカウンタPCを再設定する。
命令実行装置103はプログラムカウンタPCで指示さ
れたアドレスの命令を実行する。
【0031】図2及び図3は、第1の実施例のプログラ
ム制御装置の内部構成を示す回路図である。第1の実施
例のプログラム制御装置は図1で示したシングルループ
命令の実行を可能にする。図4〜図6は動作説明用の信
号波形図である。図4〜図6において、波形を小さくか
つ簡単にしておくため、2回の反復のみ選択した。ま
た、2つの重複しないクロックt1とt2とを最上段に
示している。なお、図4〜図6の波形図は、図7のプロ
グラムの実行状況を示している。図7のプログラムは従
来例で示した図20に対応している。
【0032】レジスタ(t2_PC)17及びレジスタ
(t1_PC)18はそれぞれクロックt1及びt2に
同期してプログラム制御装置のプログラムカウンタPC
をラッチする。なお、レジスタ17から出力されるプロ
グラムカウンタPCが命令実行装置103に出力され
る。
【0033】図7で示したプログラムリストは行番号
“20”から始まるが、ここで反復数を指示するループ
変数lcには“2”の値がロードされる。
【0034】本プログラムはパイプライン方式で実行さ
れていない場合、ロード命令はクロックt2の次のサイ
クルで効果を現す。
【0035】従って、ループ変数lcを格納するレジス
タ(loop)9はクロックt1に同期して“2”を格
納して、ループブロックBlockBに関する反復数を
記憶する。レジスタ9の出力信号はセレクタ(SEL_
LC)24に与えられており、このセレクタ24は、可
変ループカウンタ(LC)26をクロックt2に同期し
て駆動し、可変ループカウンタ26の出力がレジスタ
(t1_lc)28によりクロックt1に同期して格納
される。
【0036】レジスタ28の出力は、デクリメンタ(D
EC_LC)23、コンパレータ(CMP_LC_ST
ART)35およびコンパレータ(CMP_LC_EN
D)29に与えられる。
【0037】コンパレータ29は、レジスタ28に格納
されるループカウント値が“1”に等しい時にのみフラ
グfexitをセット(H(“1”)に設定)し他の場合は
リセット(L(“0”)に設定)する。コンパレータ3
5は、レジスタ28に格納されるループカウント値が
“0”に等しい時はフラグf1cをセットし、他の場合は
リセットする。
【0038】デクリメンタ23によりデクリメントされ
たループカウント値lc_decは、セレクタ(SEL
_LC)24の第2入力となる。
【0039】制御信号fsel_lcは論理回路20によって
生成されるが、これについては後述する。
【0040】図7で示したプログラムの行番号21にお
いて、ループ命令が付与される。このループ命令には、
ループブロックの開始と終了に関する情報が含まれてい
る。
【0041】デバッグ時の取扱い易さとプログラムの読
み易さのため、絶対アドレスの代わりにラベルが付けら
れている。
【0042】図7の場合、ラベル“Start”は行番
号40に対応し、ラベル“End”は行番号42に対応
する。
【0043】Startアドレス及びEndアドレスそ
れぞれの値は、クロックt1に同期して、レジスタ(s
tart)7及びレジスタ(end)8にそれぞれ記憶
される。
【0044】遅延プログラムカウンタ18の出力は、イ
ンクリメンタ(INC_PC)10、コンパレータ(C
MP_PC_START)12及びコンパレータ(CM
P_PC_END)11に付与される。
【0045】インクリメンタ10の出力信号pc_in
cとレジスタ7の格納データstartはセレクタ(S
EL_PC)15の入力となり、このセレクタ15の出
力はプログラムカウンタ17を駆動する。
【0046】レジスタ7の格納データstartとレジ
スタ8の格納データendは、それぞれコンパレータ1
2及びコンパレータ11に入力される。コンパレータ1
2は、遅延プログラムカウンタ18の出力とデータst
artとを比較して、両者が等しいときのみフラグfst
artセットし、他の場合はリセットする。コンパレータ
11は、遅延プログラムカウンタ18の出力とデータe
ndとを比較して両者が等しいときのみフラグfendを
セットし、他の場合はリセットする。
【0047】セレクタ(SEL_PC)15への選択制
御フラグfsel_pcは、フラグfend及びfexitを入力と
する論理回路(Logic_2)19によって生成され
る。この論理回路19の制御体系及びセレクタ15の選
択状況(select1)を現す真理値表を表1に示
す。
【0048】
【表1】
【0049】表1に示すように、フラグfendが“0”
ときは、フラグfexitの値に関係なく、選択制御フラグ
fsel_pcを“0”にして、セレクタ15によりインクリ
メンタ10の出力信号pc_incを選択させる。ま
た、フラグfendが“1”ときにフラグfexitが“0”
の場合に選択制御フラグfsel_pcを“1”にして、セレ
クタ15によりレジスタ7の格納データstartを選
択させ、フラグfexitが“1”の場合に選択制御フラグ
fsel_pcを“0”にして、セレクタ15によりインクリ
メンタ10の出力信号pc_incを選択させる。
【0050】一方、セレクタ24への選択制御信号fse
l_lcは、フラグfstart、fend及びflcを入力する論理
回路(Logic_1)20によって生成される。この
論理回路20の制御体系及びセレクタ24の選択状況
(select2)を示す真理値表を表2に示す。
【0051】
【表2】
【0052】表2に示すように、デフォルト値として選
択制御信号fsel_lcを“00”にして、セレクタ24に
よりレジスタ28の出力lcを選択させる。また、フラ
グfendが“1”のときは、フラグfstart、flcに関係
なく、選択制御信号fsel_lcを“01”にして、セレク
タ24よりデクリメンタ23の出力lc_decを選択
させる。さらに、フラグfendが“0”で、フラグfsta
rt、flcが“1”のときは、選択制御信号fsel_lcを
“10”にして、セレクタ24よりレジスタ9の格納デ
ータloopを選択させる。
【0053】プログラムが行番号37に達するまで、プ
ログラムカウンタは、インクリメンタ10の出力により
常にインクリメントされる。また、各プログラムの開始
時にループカウンタがリセットされるので、フラグ“f
lc”は既にセットされている。
【0054】期間T1において、プログラムカウンタP
C=“40”の時、フラグfstartはクロックt1に同
期してセットされる。フラグfstart及びflcがセット
され、フラグfendがリセットされているので、表2で
示した制御体系に基づき、フラグfsel_lcは“10”に
セットされ、セレクタ24はレジスタ9の格納データl
oopを選択する。
【0055】したがって、可変ループカウンタ26には
レジスタ9の格納データloopである“2”がロード
される。そして、1サイクル後にすべてのフラグがリセ
ットされる。
【0056】期間T2において、プログラムカウンタP
C=“42”の時、フラグfendはクロックt1に同期
してセットされる。
【0057】フラグfexitはリセットされるいるため、
論理回路19は表1の制御体系に従い、フラグfsel_pc
をセットし、セレクタ15によりデータstartが選
択され、プログラムカウンタ17及び18はレジスタ7
から格納データstartの“40”をロードする。
【0058】同時に、可変ループカウンタ26はデクリ
メンタ23によりデクリメントされた値“1”を、セレ
クタ24を介してロードし、その結果、コンパレータ2
9によりフラグfexitはセットされる。
【0059】そして、期間T3において、プログラムカ
ウンタPC=“40”の時、フラグfstartは再びセッ
トされる。fstartの最初のセットと対照すると、フラ
グflcはリセットされているため、その結果、フラグ
“fsel_lc”はリセットされる。
【0060】その後、期間T4において、再びプログラ
ムカウンタPC=“42”の時、フラグfendは再びセ
ットされる。このとき、フラグ“fexit”は既にセット
されているので、論理回路19の選択制御フラグfsel_
pcはセットされない。
【0061】したがって、セレクタ15によりインクリ
メンタ10の出力が選択されることにより、プログラム
カウンタPCは連続的にインクリメントされる。一方、
ループカウンタ26にはそのデクリメンタ23によりデ
クリメントされた値“0”をロードされる。
【0062】その結果、コンパレータ35によりフラグ
flcは強制的にセットされ、コンパレータ29によりフ
ラグfexitはリセットされる。
【0063】このように第1の実施例のプログラム制御
装置は、プログラムカウンタとループの開始アドレスと
の比較結果に基づきループ処理の開始を認識することが
できるため、プログラム中においてループ命令はループ
実行命令群の前であれば任意の位置に記述することがで
きる。
【0064】例えば、図7で示したように、ループ実行
命令群であるループブロックB[i]のループ命令「l
oop lc,Start,End」をブロックBlo
ckAよりも前の行番号21に記述することができる。
【0065】したがって、図20で示したプログラムの
ように、ブロックBlockAとループブロックBlo
ckBとの間にループ命令を記述することによる不具合
を解消することができる。なぜなら、ループブロックB
lockBを処理するまでに行われる工程は、境界画素
を処理するBlockAの3工程のみになり、ループブ
ロックBlockBの1ループサイクル及びブロックB
rockCも3工程で行えるため、1水平方向走査のマ
スク処理をすべて3工程で行うことができ、完全なフレ
ームのリアルタイム処理が実現できるからである。
【0066】すなわち、ループ命令をループ処理の実行
の妨げにならない箇所に記述することにより、効率的な
ループ処理を行うことができる。
【0067】図16は、第1の実施例のプログラム制御
装置と等価なプログラム制御方法を示すフローチャート
である。
【0068】同図を参照して、ステップS1で、ループ
プ処理の開始アドレス及び終了アドレス並びに反復数を
格納するレジスタを規定したループ命令と、開始アドレ
スと終了アドレスとの間に格納された少なくとも1つの
命令からなるループ実行命令群とからなるループ処理を
含むプログラムを読み込む。
【0069】そして、ステップS2において、ステップ
S1で読み込んだプログラムの先頭アドレスにプログラ
ムカウンタを設定する。
【0070】次に、ステップS3において、プログラム
カウンタの指示するアドレスの命令がループ命令であれ
ば、ループ処理の開始アドレス、終了アドレス及び反復
数を認識する。
【0071】そして、ステップS4において、プログラ
ムカウンタとステップS3で記憶した開始アドレスとの
比較結果に基づきループ処理の開始を認識し、プログラ
ムカウンタとステップS3で記憶した終了アドレスとの
比較結果に基づきループ処理の終了を認識し、必要があ
ればループ実行命令群の命令が反復数回、繰り返して実
行されるようにプログラムカウンタにループ開始アドレ
スを再設定する。
【0072】次に、ステップS5で現在のプログラムカ
ウンタを命令実行装置に出力する。
【0073】そして、ステップS6で、プログラムカウ
ンタがプログラムの終了アドレスを指示しているか否か
をYES/NOで判定し、YESであれば終了しNOで
あればステップS7に移行する。
【0074】ステップS7において、プログラムカウン
タをインクリメントし、ステップS3に戻る。以降、ス
テップS6でYESと判定されるまで、ステップS3〜
S7が繰り返される。
【0075】このように、このプログラム制御方法は、
ステップS4で、プログラムカウンタと開始アドレスと
の比較結果に基づきループ処理の開始を認識し、プログ
ラムカウンタと終了アドレスとの比較結果に基づきルー
プ処理の終了を認識することにより、ループ実行命令群
の命令が反復数回、繰り返して実行されるようにプログ
ラムカウンタを再設定することができる。
【0076】したがって、プログラム中においてループ
命令はループ実行命令群の前であれば任意の位置に記述
することができる。
【0077】その結果、ループ命令をループ処理の実行
の妨げにならない箇所に記述することにより、効率的な
ループ処理を行うことができる効果を奏する。
【0078】なお、図16で示したプログラム制御方法
は、図2及び図3で示した構成のプログラム制御装置以
外の構成でも実行可能であり、ソフトウェア処理で実行
することも可能であることは勿論である。
【0079】<第2の実施例>図8は第2の実施例のプ
ログラム制御装置でプログラム制御可能プログラムを示
す説明図である。図8は従来例で示した図18に対応す
る2つのループブロックB11,B12のネスティング
を示している。
【0080】同図に示すように、行番号21,23で記
述したループ命令で、ループ境界の開始アドレス(St
art_1,Start_2)及び終了アドレス(En
d_1,End_2)を独立的に指定している。
【0081】このようにネスト構造のループ命令を実行
する際においても、ループ命令自体をループブロック前
の任意の場所に記述することができる。
【0082】第2の実施例のプログラム制御装置は、繰
返しループ命令による割込みなしに、ネストされたルー
プを実行することができ、それによって、プログラムの
性能と効率を高めるとともに、リアルタイム処理を可能
にしている。
【0083】柔軟性を維持するために、ループカウンタ
の順序は制約されない。すなわち、図8で記述されたプ
ログラムにおいて、ループブロックB12も外部ループ
になりうる。
【0084】図9及び図10は、第2の実施例のプログ
ラム制御装置の内部構成を示す回路図である。第2の実
施例のプログラム制御装置は図8で示したネスティング
ループの実行を可能にする。図11〜図13は動作説明
用の波形図である。なお、図11〜図13の波形図は、
図14のプログラムの実行状況を示している。波形を読
み易くするために、ループカウンタは異なる値、例えば
“2”や“5”をロードしてある。
【0085】シングルループの複雑でない実行と対照す
ると、ネスティングはより多くのレジスタ、ネスティン
グスタック、付加的制御論理を必要とする。
【0086】ネスティングされた複数のループ処理の各
開始アドレスはレジスタRS1(Start_1)〜R
Sn(Start_n)(n≧2)に記憶され、これら
の出力はセレクタ(SEL_START)4にそれぞれ
付与される。また、各終了アドレスはレジスタRE1
(End_1)〜REn(End_n)に記憶され、こ
れらの出力はセレクタ(SEL_END)5にそれぞれ
付与される。
【0087】セレクタ4は、選択制御信号t1_con
tに基づき、レジスタRS1〜RSnの格納データのう
ち一のデータを選択開始アドレスとしてレジスタ7に出
力する。セレクタ5は、選択制御信号t1_contに
基づきレジスタRE1〜REnの格納データのうち一の
データを選択終了アドレスとしてレジスタ8に出力す
る。
【0088】各ループ処理の反復数は、各レジスタRL
1(Loop_1)〜レジスタRLn(Loop_n)
にそれぞれ記憶され、これらのレジスタRL1〜RLn
の出力はセレクタ6(SEL_LOOP)に付与され
る。セレクタ6は、選択制御信号t1_contに基づ
き、レジスタRL1〜RLnの格納データのうち一のデ
ータを選択反復数としてセレクタ24に出力する。
【0089】タイミングに関しては、レジスタRL1〜
RLn、RS1〜RSn及びRE1〜REnはクロック
t1に同期してラッチする。レジスタ7及び8はクロッ
クt1に同期してラッチする。
【0090】レジスタ7、レジスタ8の出力からは、図
2及び図3で示した第1の実施例のプログラム制御装置
と同様な回路構成となる。
【0091】可変ループカウンタ26L1〜26Lnも
また、マルチレベル・ネスティングに合わせてn個設け
られる。
【0092】ループの階層構造は、可変ループカウンタ
26L1〜26Lnをそれぞれマルチプレクシングした
りデマルチプレクシングすることによって、単純化を維
持される。従って、セレクタ25(LC_IN)は、セ
レクタ24(SEL_LC)の出力をデマルチプレクシ
ングし、その出力データをクロックt2に同期してルー
プカウンタ26L1(LC_1)〜26Ln(LC_
n)にラッチさせる。セレクタ27(LC_OUT)は
各可変ループカウンタ26L1〜26Lnの出力をマル
チプレクシングし、その出力データをクロックt1に同
期してレジスタ28(t1_lc)にラッチさせる。
【0093】レベルインジケータ33は、クロックt1
及びt2並びにコンパレータ12及び13からそれぞれ
出力されるcmp_start及びcmp_endを受け、選択制御信号
t1_cont及び選択制御信号t2_contを出力
する。表3にレベルインジケータ33の制御体系を現す
真理値表を示す。なお、選択制御信号t1_cont及
び選択制御信号t2_contのデフォルト値は“0”
である。ただし、cmp_endはcmp_startよりクロックt2
(t1)の1サイクル前の値を意味する。
【0094】
【表3】
【0095】表3に示すように、選択制御信号t1_c
ont及びt2_contは、cmp_start及びcmp_endが
共に“0”、共に“1”である場合は現在の状態が維持
され、cmp_startが“1”でcmp_endが“0”である場合
はインクリメントされ、cmp_startendが“0”でcmp_en
dが“1”である場合はデクリメントされる。
【0096】セレクタ4〜6及び27は、レベルインジ
ケータ33からの選択制御信号t1_contに基づき
選択動作を行う。セレクタ5、6及び27の選択体系を
表4に示し、セレクタ4の選択体系を表5に示す。
【0097】
【表4】
【0098】
【表5】
【0099】表4に示すように、セレクタ5、6及びセ
レクタ27は、それぞれ選択制御信号t1_contが
“0”のときレジスタRE1,レジスタRL1及び可変
ループカウンタ26L1の格納データを出力し、選択制
御信号t1_contがi(i=1〜n)のときレジス
タREi,レジスタRLi及び可変ループカウンタ26
Liの格納データを出力する。
【0100】表5に示すように、セレクタ4は、選択制
御信号t1_contがj(j=0〜(n−1))のと
きレジスタRS(j+1)の格納データを出力し、選択
制御信号t1_contがnのとき“0”を出力する。
【0101】セレクタ25は、レベルインジケータ33
の選択制御信号t2_contに基づき選択動作を行
う。セレクタ25の選択体系を表6に示す。
【0102】
【表6】
【0103】表6に示すように、セレクタ25は、選択
制御信号t2_contが“0”のとき可変ループカウ
ンタ26L1にデータを出力し、選択制御信号t2_c
ontがi(i=1〜n)のとき可変ループカウンタ2
6Liにデータを出力する。
【0104】デフォルトにより、選択制御信号t1_c
ont及び選択制御信号t2_contが“0”に設定
されているため、シングルループをエミュレートする。
【0105】図11〜図13の波形図に示すように、選
択制御信号t1_cont及び選択制御信号t2_co
ntにより、ループのネスティングの現在のレベルが現
され、選択制御信号t1_contに基づき、レジスタ
RL1〜RLn、レジスタRE1〜REn及びレジスタ
RS1〜RSnの格納データがセレクタ4、5及び6に
よりそれぞれ選択される。
【0106】同様に、可変ループカウンタ26L1〜2
6Lnの格納データについては、慎重な対処を必要とす
るため、セレクタ25は選択制御信号t2_contに
基づき、セレクタ24の出力を可変ループカウンタ26
L1〜26Lnの一に格納し、セレクタ27は選択制御
信号t1_contに基づき可変ループカウンタ26L
1〜26Lnの格納データのうち一のデータをレジスタ
28に出力する。
【0107】このように、選択制御信号t1_cont
及び選択制御信号t2_contに基づき、セレクタ4
〜6、25及び27により、レジスタRS1〜RSn、
レジスタRE1〜REn、レジスタRL1〜RLn及び
可変ループカウンタ26L1〜26Lnの格納データの
マルチプレクシングおよびデマルチプレクシングするこ
とにより、ネスティング構造のループ命令にも対応する
ことができる。
【0108】なお、それ以外の構成及び動作は、第1の
実施例のプログラム制御装置と同様であるため、説明を
省略する。
【0109】このように、第2の実施例のプログラム制
御装置は、レベルインジケータ33からの選択制御信号
t1_cont及び選択制御信号t2_contによ
り、現在制御対象となるループ処理が指示され、プログ
ラムカウンタと選択開始アドレスとの比較結果に基づ
き、制御対象のループ処理の開始を認識することができ
るため、プログラム中において第1〜第nのループ命令
は第1〜第nのループ実行命令群の前であれば任意の位
置に記述することができる。
【0110】例えば、図14で示したように、第1のル
ープ実行命令群であるブロックBlock1〜3及び第
2のループ実行命令群であるブロックBlock2の前
の行番号21に第1のループ命令「loop lc1,
Start_1,End_1」を記述し、行番号23に
第2のループ命令「loop lc2,Start_
2,End_2」を記述することができる。
【0111】したがって、図18で示したプログラムの
ように、第1及び第2のループ実行命令群からなるネス
ティング構造中に前記第1及び第2のループ命令を記述
することによる不具合を解消することができ、第1のル
ープ命令の反復回数に関係なく第2のループ命令は1回
のみ実行される。
【0112】その結果、第1〜第nのループ実行命令群
によるネスティング構造の外に第1〜第nのループ命令
を記述することにより、ネスティング構造の第1〜第n
のループ処理を効率的に行うことができる。
【0113】
【発明の効果】以上説明したように、この発明における
請求項1記載のプログラム制御装置のループ制御手段
は、プログラムカウンタと開始アドレスとの比較結果に
基づきループ処理の開始を認識することができるため、
プログラム中においてループ命令はループ実行命令群の
前であれば任意の位置に記述することができる。
【0114】その結果、ループ命令をループ処理の実行
の妨げにならない箇所に記述することにより、効率的な
ループ処理を行うことができる。
【0115】この発明における請求項2記載のプログラ
ム制御装置は、プログラムカウンタと選択開始アドレス
との比較結果及びプログラムカウンタと選択終了アドレ
スとの比較結果に基づき、現在制御対象となるループ処
理を指示する選択制御信号を出力する選択制御信号出力
手段と、プログラムカウンタと選択開始アドレスとの比
較結果に基づき、選択開始アドレスに対応するループ処
理の開始を認識し、プログラムカウンタと選択終了アド
レスとの比較結果に基づき選択終了アドレスに対応する
ループ処理の終了を認識して、制御対象のループ処理が
前記選択反復数回、繰り返して実行されるようにプログ
ラムカウンタを設定するループ制御手段とを備えてい
る。
【0116】したがって、プログラム中において、第1
〜第nのループ命令はそれぞれ第1〜第nのループ実行
命令群の前であれば任意の位置に記述することができ
る。
【0117】その結果、第1〜第nのループ実行命令群
によるネスティング構造の外に第1〜第nのループ命令
を記述することにより、ネスティング構造の第1〜第n
のループ処理を効率的に行うことができる。
【0118】この発明における請求項3記載のプログラ
ム制御方法のステップ(c)は、プログラムカウンタと開
始アドレスとの比較結果に基づきループ処理の開始を認
識し、プログラムカウンタと終了アドレスとの比較結果
に基づきループ処理の終了を認識することにより、ルー
プ実行命令群の命令が反復数回、繰り返して実行される
ようにプログラムカウンタを設定している。
【0119】したがって、プログラム中においてループ
命令はループ実行命令群の前であれば任意の位置に記述
することができる。
【0120】その結果、ループ命令をループ処理の実行
の妨げにならない箇所に記述することにより、効率的な
ループ処理を行うことができる。
【図面の簡単な説明】
【図1】 この発明の第1の実施例のプログラム制御装
置で実行制御されるプログラム例を示す説明図である。
【図2】 この発明の第1の実施例であるプログラム制
御装置の構成を示す回路図である。
【図3】 この発明の第1の実施例であるプログラム制
御装置の構成を示す回路図である。
【図4】 第1の実施例のプログラム制御装置の動作を
示す波形図である。
【図5】 第1の実施例のプログラム制御装置の動作を
示す波形図である。
【図6】 第1の実施例のプログラム制御装置の動作を
示す波形図である。
【図7】 この発明の第1の実施例のプログラム制御装
置で実行制御されるプログラム例を示す説明図である。
【図8】 この発明の第2の実施例のプログラム制御装
置で実行制御されるプログラム例を示す説明図である。
【図9】 この発明の第2の実施例であるプログラム制
御装置の構成を示す回路図である。
【図10】 この発明の第2の実施例であるプログラム
制御装置の構成を示す回路図である。
【図11】 第2の実施例のプログラム制御装置の動作
を示す波形図である。
【図12】 第2の実施例のプログラム制御装置の動作
を示す波形図である。
【図13】 第2の実施例のプログラム制御装置の動作
を示す波形図である。
【図14】 この発明の第2の実施例のプログラム制御
装置で実行制御されるプログラム例を示す説明図であ
る。
【図15】 プログラム実行システムの全体構成を示す
説明図である。
【図16】 第1の実施例のプログラム制御装置と等価
なプログラム制御方法を示すフローチャートである。
【図17】 従来のプログラム制御装置で実行制御され
るプログラム例を示す説明図である。
【図18】 従来のプログラム制御装置で実行制御され
るプログラム例を示す説明図である。
【図19】 画素のマスク処理例を示す説明図である。
【図20】 従来のプログラム制御装置で実行制御され
るプログラム例を示す説明図である。
【符号の説明】
7〜9 レジスタ、11,12 コンパレータ、19,
20 論理回路、RS1〜RSn レジスタ、RE1〜
REn レジスタ、RL1〜RLn レジスタ、26L
1〜26Ln 可変ループカウンタ、33 レベルイン
ジケータ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井上 喜嗣 兵庫県伊丹市瑞原4丁目1番地 三菱電機 株式会社システムエル・エス・アイ開発研 究所内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 アドレスに対応した複数の命令からなる
    プログラムの実行制御を行うプログラム制御装置であっ
    て、前記プログラム制御装置は、ループ処理実行に際
    し、ループ処理の開始アドレス及び終了アドレス並びに
    反復数を規定したループ命令と、前記開始アドレスと前
    記終了アドレスとの間に記述された少なくとも1つの命
    令からなるループ実行命令群とを前記プログラム中に記
    述することを要求し、 現在の実行対象の命令のアドレスを規定するプログラム
    カウンタを所定時間間隔でインクリメントして出力する
    プログラムカウンタ出力手段と、 前記開始アドレスを格納する開始アドレス記憶手段と、 前記終了アドレスを格納する終了アドレス記憶手段と、 前記反復数を格納する反復数記憶手段と、 前記プログラムカウンタと前記開始アドレスとの比較結
    果に基づきループ処理の開始を認識し、前記プログラム
    カウンタと前記終了アドレスとの比較結果に基づきルー
    プ処理の終了を認識することにより、前記ループ実行命
    令群の命令が前記反復数回、繰り返して実行されるよう
    に前記プログラムカウンタを設定するループ制御手段と
    を備える、プログラム制御装置。
  2. 【請求項2】 アドレスに対応した複数の命令からなる
    プログラムの実行制御を行うプログラム制御装置であっ
    て、前記プログラム制御装置は、ネスティングされたル
    ープ処理の実行に際し、第1〜第n(n≧2)の順にネ
    スティングされた第1〜第nループ処理それぞれの開始
    アドレス及び終了アドレス並びに反復数を規定した第1
    〜第nのループ命令と、前記第1〜第nのループ命令そ
    れぞれで規定された前記開始アドレスと前記終了アドレ
    スとの間に記述された少なくとも1つの命令からなる第
    1〜第nのループ実行命令群とを前記プログラム中に記
    述することを要求し、 現在の実行対象の命令のアドレスを規定するプログラム
    カウンタを所定時間間隔でインクリメントして出力する
    プログラムカウンタ出力手段と、 前記第1〜第nのループ処理の前記開始アドレスを第1
    〜第nの開始アドレスとして格納する第1〜第nの開始
    アドレス記憶手段と、 前記第1〜第nのループ処理の前記終了アドレスを第1
    〜第nの終了アドレスとして格納する第1〜第nの終了
    アドレス記憶手段と、 前記第1〜第nのループ処理の前記反復数を第1〜第n
    の反復数として格納する第1〜第nの反復数記憶手段
    と、 選択制御信号に基づき、前記第1〜第nの開始アドレス
    のうちの一のアドレスを選択開始アドレスとして出力す
    る開始アドレス選択手段と、 前記選択制御信号に基づき、前記第1〜第nの終了アド
    レスのうちの一のアドレスを選択終了アドレスとして出
    力する終了アドレス選択手段と、 前記選択制御信号に基づき、前記第1〜第nの反復数の
    うちの一の反復数を選択反復数として出力する反復数選
    択手段と、 前記プログラムカウンタと前記選択開始アドレスとの比
    較結果及び前記プログラムカウンタと前記選択終了アド
    レスとの比較結果に基づき、現在制御対象となるループ
    処理を指示する選択制御信号を出力する選択制御信号出
    力手段と、 前記プログラムカウンタと前記選択開始アドレスとの比
    較結果に基づき、選択開始アドレスに対応するループ処
    理の開始を認識し、前記プログラムカウンタと前記選択
    終了アドレスとの比較結果に基づき前記選択終了アドレ
    スに対応するループ処理の終了を認識して、制御対象の
    ループ処理が前記選択反復数回、繰り返して実行される
    ように前記プログラムカウンタを設定するループ制御手
    段とを備える、プログラム制御装置。
  3. 【請求項3】 アドレスに対応した複数の命令からなる
    プログラムの実行制御を行うプログラム制御方法であっ
    て、前記プログラム制御方法は、ループ処理実行に際
    し、ループ処理の開始アドレス及び終了アドレス並びに
    反復数を規定したループ命令と、前記開始アドレスと終
    了アドレスとの間に記述された少なくとも1つの命令か
    らなるループ実行命令群とを前記プログラム中に記述す
    ることを要求し、 (a) 現在の実行対象の命令のアドレスを規定するプログ
    ラムカウンタを前記プログラムの先頭アドレスから所定
    時間間隔でインクリメントするステップと、 (b) 前記プログラムカウンタの指示するアドレスの命令
    がループ命令である場合にループ処理の開始アドレス、
    終了アドレス及び反復数を記憶するステップと、 (c) 前記プログラムカウンタと前記ステップ(b)で記憶
    した前記開始アドレスとの比較結果に基づきループ処理
    の開始を認識し、前記プログラムカウンタと前記ステッ
    プ(b)で記憶した前記終了アドレスとの比較結果に基づ
    き前記ループ処理の終了を認識することにより、前記ル
    ープ実行命令群の命令が前記反復数回、繰り返して実行
    されるように前記プログラムカウンタを設定するステッ
    プとを備える、プログラム制御方法。
JP6194037A 1994-08-18 1994-08-18 プログラム制御装置及びプログラム制御方法 Pending JPH0863355A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6194037A JPH0863355A (ja) 1994-08-18 1994-08-18 プログラム制御装置及びプログラム制御方法
US08/509,940 US5657485A (en) 1994-08-18 1995-08-01 Program control operation to execute a loop processing not immediately following a loop instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6194037A JPH0863355A (ja) 1994-08-18 1994-08-18 プログラム制御装置及びプログラム制御方法

Publications (1)

Publication Number Publication Date
JPH0863355A true JPH0863355A (ja) 1996-03-08

Family

ID=16317890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6194037A Pending JPH0863355A (ja) 1994-08-18 1994-08-18 プログラム制御装置及びプログラム制御方法

Country Status (2)

Country Link
US (1) US5657485A (ja)
JP (1) JPH0863355A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011526045A (ja) * 2008-06-27 2011-09-29 クゥアルコム・インコーポレイテッド ループ制御システムおよび方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2323190B (en) * 1997-03-14 2001-09-19 Nokia Mobile Phones Ltd Executing nested loops
US5828875A (en) * 1997-05-29 1998-10-27 Telefonaktiebolaget Lm Ericsson Unroll of instructions in a micro-controller
US6230317B1 (en) * 1997-07-11 2001-05-08 Intel Corporation Method and apparatus for software pipelining of nested loops
EP1050804A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Execution of instruction loops
FR2825810A1 (fr) * 2001-06-06 2002-12-13 Koninkl Philips Electronics Nv Dispositif electronique a processeur pipeline utilisant un compactage de code et procede de gestion d'un tel processeur
WO2004049154A2 (en) * 2002-11-28 2004-06-10 Koninklijke Philips Electronics N.V. A loop control circuit for a data processor
US7937557B2 (en) 2004-03-16 2011-05-03 Vns Portfolio Llc System and method for intercommunication between computers in an array
JP2006099232A (ja) * 2004-09-28 2006-04-13 Renesas Technology Corp 半導体信号処理装置
US7593140B2 (en) * 2005-01-07 2009-09-22 Avego Technologies General Ip (Singapore) Pte. Ltd. System and method for generating dynamically modifiable timing control signals
US20070094663A1 (en) * 2005-10-25 2007-04-26 Anbarani Hossein A Flexible ordered execution mechanism for multi-threaded processors
EP1821202B1 (en) * 2006-02-16 2011-01-12 VNS Portfolio LLC Execution of instructions directly from input source
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
US7913069B2 (en) * 2006-02-16 2011-03-22 Vns Portfolio Llc Processor and method for executing a program loop within an instruction word
US7617383B2 (en) * 2006-02-16 2009-11-10 Vns Portfolio Llc Circular register arrays of a computer
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7555637B2 (en) * 2007-04-27 2009-06-30 Vns Portfolio Llc Multi-port read/write operations based on register bits set for indicating select ports and transfer directions
US20100023730A1 (en) * 2008-07-24 2010-01-28 Vns Portfolio Llc Circular Register Arrays of a Computer
US8701099B2 (en) * 2010-11-02 2014-04-15 International Business Machines Corporation Accelerating generic loop iterators using speculative execution
US10762452B2 (en) 2017-03-09 2020-09-01 At&T Intellectual Property I, L.P. System and method for designing and executing control loops in a cloud environment
US11614941B2 (en) * 2018-03-30 2023-03-28 Qualcomm Incorporated System and method for decoupling operations to accelerate processing of loop structures
CN108595210B (zh) * 2018-04-09 2021-12-10 杭州中天微系统有限公司 实现零开销循环的处理器
CN111260043B (zh) * 2018-11-30 2022-12-02 上海寒武纪信息科技有限公司 数据选择器、数据处理方法、芯片及电子设备

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE789583A (fr) * 1971-10-01 1973-02-01 Sanders Associates Inc Appareil de controle de programme pour machine de traitement del'information
US4994732A (en) * 1985-12-18 1991-02-19 Schlumberger Technologies, Inc. Automatic test system having a "true tester-per-pin" architecture
US4910664A (en) * 1987-11-27 1990-03-20 Mitsubishi Denki Kabushiki Kaisha Data processor with apparatus for reducing loop processing time
US4876642A (en) * 1988-01-19 1989-10-24 Gibson Glenn A Rules and apparatus for a loop capturing code buffer that prefetches instructions
US5117498A (en) * 1988-08-19 1992-05-26 Motorola, Inc. Processer with flexible return from subroutine
JP3102027B2 (ja) * 1990-11-20 2000-10-23 日本電気株式会社 ループ制御のネスティング管理機構

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011526045A (ja) * 2008-06-27 2011-09-29 クゥアルコム・インコーポレイテッド ループ制御システムおよび方法
JP2014170571A (ja) * 2008-06-27 2014-09-18 Qualcomm Incorporated ループ制御システムおよび方法
JP2016157463A (ja) * 2008-06-27 2016-09-01 クゥアルコム・インコーポレイテッドQualcomm Incorporated ループ制御システムおよび方法

Also Published As

Publication number Publication date
US5657485A (en) 1997-08-12

Similar Documents

Publication Publication Date Title
JPH0863355A (ja) プログラム制御装置及びプログラム制御方法
US10140123B2 (en) SIMD processing lanes storing input pixel operand data in local register file for thread execution of image processing operations
EP0334844B1 (en) Virtual processor techniques in a multiprocessor array
US6260088B1 (en) Single integrated circuit embodying a risc processor and a digital signal processor
GB2219419A (en) Event timing wrap-around in logic simulator cycle
KR102357863B1 (ko) 메모리 접근 방법 및 장치
EP4227886A1 (en) Matrix operation method and apparatus for image data, device, and storage medium
US10929965B2 (en) Histogram statistics circuit and multimedia processing system
JPS59128670A (ja) ベクトル処理装置
WO2006066262A2 (en) Evalutation unit for single instruction, multiple data execution engine flag registers
JPS6049332B2 (ja) マイクロプログラム制御方式
JPWO2016024508A1 (ja) マルチプロセッサ装置
US11614964B2 (en) Deep-learning-based image processing method and system
CN114998158B (zh) 一种图像处理方法、终端设备及存储介质
US5502834A (en) Memory interface apparatus for carrying out complex operation processing
US20220188380A1 (en) Data processing method and apparatus applied to graphics processing unit, and electronic device
US20140195776A1 (en) Memory access for a vector processor
CN115049529A (zh) 一种图像梯度确定方法、装置、设备及存储介质
CN112035656A (zh) 文档快速预览的方法、装置、计算机设备及介质
US8924654B1 (en) Multistreamed processor vector packing method and apparatus
Hambrusch et al. Parallel algorithms for gray-scale image component labeling on a mesh-connected computer
CN115665335B (zh) 图像处理方法、装置、图像形成设备及介质
US11500632B2 (en) Processor device for executing SIMD instructions
CN108399603B (zh) 一种图像快速旋转的方法及装置
CN108632497B (zh) 图像处理装置、控制方法和计算机可读记录介质