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

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

Info

Publication number
JP2943464B2
JP2943464B2 JP3324417A JP32441791A JP2943464B2 JP 2943464 B2 JP2943464 B2 JP 2943464B2 JP 3324417 A JP3324417 A JP 3324417A JP 32441791 A JP32441791 A JP 32441791A JP 2943464 B2 JP2943464 B2 JP 2943464B2
Authority
JP
Japan
Prior art keywords
instruction
counter
address
execution
stored
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
Application number
JP3324417A
Other languages
English (en)
Other versions
JPH05158687A (ja
Inventor
勝彦 上田
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 JP3324417A priority Critical patent/JP2943464B2/ja
Priority to US07/989,056 priority patent/US5596760A/en
Publication of JPH05158687A publication Critical patent/JPH05158687A/ja
Application granted granted Critical
Publication of JP2943464B2 publication Critical patent/JP2943464B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はマイクロプロセッサにお
いて命令の並列実行制御を行なうプログラム制御方法及
び装置に関するものである。
【0002】
【従来の技術】近年、プログラムの高速実行、あるいは
命令メモリのワード数削減を目指し、例えば特公昭62
−42301号公報に示されているような、一旦フェッ
チした命令を繰り返し実行するプログラム制御装置が考
案されている。
【0003】以下図面を参照しながら、上記した従来の
プログラム制御装置の一例について説明する。
【0004】図12は従来のプログラム制御装置のブロ
ック図を示すものである。図12において、121はプ
ログラム繰り返し実行回数をカウントするリピートカウ
ンタ、122は命令を格納するメモリ、123はメモリ
122へアドレスを与えるプログラムカウンタ、124
はプログラムメモリ122の出力を一時保持する命令レ
ジスタ、125は命令レジスタの出力をデコードし各種
制御信号を出力する制御部である。
【0005】以上のように構成された従来のプログラム
制御装置について、以下その動作について説明する。
【0006】まず図13に示すように、メモリ122の
n番地にリピートカウンタセット命令131、n+1番
地に命令A132、n+2番地に命令B133をそれぞ
れ格納しておく。この状態でプログラムカウンタ123
がnとなるとリピートカウンタセット命令131が命令
レジスタ124に格納されると共に、命令コードに含ま
れるリピート回数(今の場合7とする)がリピートカウ
ンタ121に格納される。制御部125は命令レジスタ
124の出力を受け、次に命令レジスタ124に格納さ
れる命令をリピートカウンタ121が零になるまで繰り
返す制御を行なう。そこでプログラムカウンタ123が
n+1になり命令A132が命令レジスタ124に格納
されると、図14に示すように命令A132が7回実行
されることになる。(特公昭62−42301号公報)
【0007】
【発明が解決しようとする課題】しかしながら上記のよ
うな構成では図14に示すように、n+1番地の命令A
の繰り返し実行終了を待ってn+2番地以降の命令が実
行される。一方高速演算を目的とするディジタル信号処
理プロセッサ(Digital SignalProc
essor、以下DSPと記す)では、特定の演算命令
(例えば積和演算命令)の繰り返し実行と並列して、別
のデータを処理できる場合も多々あるが、従来のプログ
ラム制御装置ではこの並列処理を行なうことはできず、
高速演算を目的とするDSPの制御装置としては適さな
いという問題点を有していた。
【0008】本発明は上記問題点に鑑み、ある命令の繰
り返し実行と並列に別の命令を実行できるプログラム制
御装置を提供する事を目的とする。
【0009】
【課題を解決するための手段】上記問題を解決するため
に本発明のプログラム制御装置は、繰り返し実行を指示
する第1の命令と前記第1の命令の次番地に格納された
第2の命令と前記第2の命令が格納されている番地以降
に格納され命令実行同期を司る第3の命令を少なくとも
記憶するメモリと、前記メモリにアドレス信号を与える
プログラムカウンタと、前記プログラムカウンタが示す
前記メモリの内容を一時記憶する命令レジスタと、前記
命令レジスタの出力をデコードし各種の制御信号を出力
するデコーダと、前記デコーダの出力を一時保持するレ
ジスタと、前記第1の命令によりプリセットされ後述の
第1の制御手段の制御下で前記第2の命令の実行終了毎
にその値を1ずつ減じるカウンタと、前記カウンタには
前記デコーダで前記第1の命令がデコードされた時は初
期値のプリセットを前記第2の命令実行毎にカウンタ内
容のカウントダウンを指示し、前記レジスタには前記デ
コーダで前記第2の命令がデコードされた段階でデコー
ド結果取り込みとその後前記カウンタ内容が零になるま
で取り込み内容の保持を指示する第1の制御手段と、前
記第3の命令が前記デコーダでデコードされた時に動作
し、前記カウンタ内容が零ではなく前記命令2の繰り返
し処理中であることを示している場合には、前記プログ
ラムカウンタへは内容のインクリメント動作の禁止を、
前記命令レジスタには前記メモリ出力の取り込み動作の
禁止を、前記カウンタ内容が零の場合には、前記プログ
ラムカウンタへは内容のインクリメント動作を、前記命
令レジスタには前記メモリ出力の取り込み動作を指示す
る第2の制御手段という構成を備えたものである。
【0010】
【作用】本発明は上記した構成によって、前記第1の命
令と前記第1の制御手段により前記カウンタのプリセッ
ト、前記第2の命令の繰り返し実行及び繰り返し実行毎
の前記カウンタのカウントダウンを行い、前記第3の命
令と前記第2の制御手段により前記第2の命令の繰り返
し実行が終了したかを判定し終了していない場合は判定
動作を継続することで、前記第2の命令の繰り返し実行
と前記第2の命令に続き前記第3の命令までの命令実行
を並列して行えることとなる。
【0011】
【実施例】以下本発明の第1の実施例のプログラム制御
装置について、図面を参照しながら説明する。
【0012】図1は本発明の第1の実施例におけるプロ
グラム制御装置のブロック図を示すものであるが、この
装置は図2に示したように、φ1、φ2の2相クロック
で動作する。図1において、1は命令を記憶するメモ
リ、2はメモリ1にアドレス信号を与え、φ1クロック
の立ち上がりで内容がインクリメントされるプログラム
カウンタ、3はメモリ1の出力をクロックφ1の立ち上
がりで取り込む命令レジスタ、4は命令レジスタ3の出
力をデコードするデコーダ、5は演算を行なう演算器
A、6はデコーダ4から出力され演算器A5を制御する
制御信号、7は制御信号6をクロックφ1の立ち上がり
で取り込むデコーダレジスタA、8は演算を行なう演算
器B、9はデコーダ4から出力され演算器B8を制御す
る制御信号、10は制御信号9をクロックφ1の立ち上
がりで取り込むデコーダレジスタB、11は後述のリピ
ートカウンタ12の初期値を保持するラッチ、12はラ
ッチ11の出力を初期値とし、クロックφ1の立ち上が
りでカウントダウンするリピートカウンタ、13はリピ
ートカウンタ12の内容が零になった時”1”となる零
検出信号、14はデコーダ4が後述のリピートカウンタ
セット命令32をデコードした時”1”となるリピート
命令検出信号、15は零検出信号13、リピート命令検
出信号14を入力としクロックφ2の立ち上がりで内部
状態を変化させ、リピートカウンタ12へは後述のプリ
セット信号16、カウント許可信号17を、後述のゲー
ト19へは後述のデコーダレジスタ更新禁止信号18を
出力するリピート制御部、16はリピートカウンタ12
に、ラッチ11の出力をクロックφ1の立ち上がりで取
り込むことを指示するプリセット信号、17はリピート
カウンタ12にクロックφ1の立ち上がりでカウントダ
ウンを行なうことを指示するカウント許可信号、18は
デコーダレジスタA7が内容を更新することを禁止する
デコーダレジスタ更新禁止信号、19はデコーダレジス
タ更新禁止信号18とクロックφ1の論理積をとりその
結果をデコーダレジスタA7に出力するゲート、20は
デコーダ4が後述のウェイト命令35をデコードした
時”1”となるウェイト命令検出信号、21はウェイト
命令検出信号20、零検出信号13を入力としクロック
φ2の立ち上がりで内部状態を変化させ、後述の更新禁
止信号22を出力するシーケンス制御部、22はプログ
ラムカウンタ2、命令レジスタ3が内容を更新すること
を禁止する更新禁止信号、23は更新禁止信号22とク
ロックφ1の論理積をとりその結果をプログラムカウン
タ2、命令レジスタ3に出力するゲートである。
【0013】また図3はメモリ1の内容を示すものであ
って、n番地には通常に実行される命令31が、n+1
番地には次番地の命令の繰り返し実行を指示するリピー
トカウンタセット命令32が、n+2番地にはリピート
処理対象となる命令33が、n+3番地には命令33と
並列に実行され演算器B8を使用する命令34が、n+
4番地には命令33と命令36の実行の同期をとるウェ
イト命令35が、n+5番地には通常に実行される命令
36がそれぞれ格納されている。
【0014】さらに図4はリピート制御部15の内部状
態変化を示している。リピート制御部15は、停止状態
41、リピートカウンタプリセット状態42、リピート
カウンタカウントダウン状態A43、リピートカウンタ
カウントダウン状態B44、最終処理状態45の、5つ
の内部状態を持つ。停止状態41からリピートカウンタ
プリセット状態42への遷移は、デコーダ4がリピート
カウンタセット命令32を検出したことを示すリピート
命令検出信号14が”1”の時のクロックφ2で行なわ
れる。リピートカウンタプリセット状態42からリピー
トカウンタカウントダウン状態A43への遷移はクロッ
クφ2で無条件に行なわれる。リピートカウンタカウン
トダウン状態A43からリピートカウンタカウントダウ
ン状態B44への遷移はクロックφ2で無条件に行なわ
れる。リピートカウンタカウントダウン状態B44から
最終処理状態状態45への遷移は、リピートカウンタ1
1の内容が零である事を示す零検出信号13が”1”の
時のクロックφ2で行なわれる。最終処理状態状態45
から停止状態への遷移は、クロックφ2で無条件に行な
われる。またそれぞれの状態で、リピート制御部15は
図5に示したように、プリセット信号16、カウント許
可信号17、デコードレジスタ更新禁止信号18を出力
する。
【0015】図6はシーケンス制御部21内部状態変化
を示している。シーケンス制御部21は、通常状態6
1、ウェイト状態62の2つの内部状態をもつ。通常状
態61からウェイト62への遷移は、デコーダ4がウェ
イト命令35を検出したことを示すウェイト命令検出信
号20が”1”でかつ零検出信号13が”0”の時のク
ロックφ2で行なわれる。ウェイト状態62からから通
常状態61への遷移は零検出信号13が”1”の時のク
ロックφ2で行なわれる。またそれぞれの状態でシーケ
ンス制御部21は図7に示したように、更新禁止信号2
2を出力する。
【0016】さらに図8には図1に示したプログラム制
御装置を構成する各要素の状態及び各信号の動きを示
す。図8には以降の説明で使用するサイクル番号を示し
ているが、各サイクルは図2に示したようにφ1、φ2
の2つのクロックで構成される。
【0017】以上のように構成されたプログラムリピー
ト制御装置について、以下図1及び図3、図4、図5、
図6、図7、図8を用い、図8に示したサイクル番号を
基準にしてその動作を説明する。 (1)サイクル番号=1 ・プログラムカウンタ2:クロックφ1でインクリメン
トされ内容はnとなる。 ・メモリ1:n番地のアクセスを行なう。 (2)サイクル番号=2 ・プログラムカウンタ2:クロックφ1でインクリメン
トされ内容はn+1となる。 ・メモリ1:n+1番地のアクセスを行なう。 ・命令レジスタ3:クロックφ1で、前サイクルでアク
セスしたn番地の内容である命令31を取り込む。 ・デコーダ4:命令31のデコード処理を行なう。 (3)サイクル番号=3 ・プログラムカウンタ2:クロックφ1でインクリメン
トされ内容はn+2となる。 ・メモリ1:n+2番地のアクセスを行なう。 ・命令レジスタ3:クロックφ1で、前サイクルでアク
セスしたn+1番地の内容であるリピートカウンタセッ
ト命令32を取り込む。 ・デコーダ4:リピートカウンタセット命令32のデコ
ード処理を行なった結果、リピート命令検出信号14
を”1”とする。 ・リピート制御部15:リピート命令検出信号14が”
1”となるので、クロックφ2で内部状態が停止状態4
1からリピートカウンタプリセット状態42に移る。そ
の結果リピート制御部は図5中のリピートカウンタプリ
セット状態に示したようにプリセット信号16を”1”
にする。 ・デコードレジスタB10:デコーダ4での命令31の
デコード結果の中で演算器B8を制御する信号がクロッ
クφ1でラッチされ、その結果演算器B8で演算が行な
われる。 (4)サイクル番号=4 ・プログラムカウンタ2:クロックφ1でインクリメン
トされ内容はn+3となる。 ・メモリ1:n+3番地のアクセスを行なう。 ・命令レジスタ3:クロックφ1で、前サイクルでアク
セスしたn+2番地の内容である命令33を取り込む。 ・デコーダ4:命令33のデコード処理を行なう。 ・リピートカウンタ12:プリセット信号16が”1”
であるのでクロックφ1でラッチ11が保持している値
(今の場合3)を取り込む。 ・リピート制御部15:クロックφ2で内部状態がリピ
ートカウンタプリセット状態42からリピートカウンタ
カウントダウン状態A43に変化。その結果、図5中の
リピートカウンタカウントダウン状態Aに示したように
リピート制御部はカウント許可信号を”1”とする。 (5)サイクル番号=5 ・プログラムカウンタ2:クロックφ1でインクリメン
トされ内容はn+4となる。 ・メモリ1:n+4番地のアクセスを行なう。 ・命令レジスタ3:クロックφ1で、前サイクルでアク
セスしたn+3番地の内容である命令34を取り込む。 ・デコーダ4:命令34のデコード処理を行なう。 ・リピートカウンタ12:カウント許可信号17が”
1”であるのでクロックφ1で値を3から2へカウント
ダウンする。 ・リピート制御部15:クロックφ2で内部状態がリピ
ートカウンタカウントダウン状態A43からリピートカ
ウンタカウントダウン状態B44に変化。その結果リピ
ート制御部は図5中のリピートカウンタカウントダウン
状態Bに示したように、カウント許可信号、デコードレ
ジスタ更新禁止信号を”1”とする。 ・デコードレジスタ10:デコーダ4での命令33のデ
コード結果により演算器A5を制御する信号がクロック
φ1でラッチされ、これにより演算器A5で演算が行な
われる。 (6)サイクル番号=6 ・プログラムカウンタ2:クロックφ1でインクリメン
トされ内容はn+5となる。 ・メモリ1:n+5番地のアクセスを行なう。 ・命令レジスタ3:クロックφ1で、前サイクルでアク
セスしたn+4番地の内容であるウェイト命令35を取
り込む。 ・デコーダ4:命令35のデコード処理を行なう。 ・リピートカウンタ12:カウント許可信号17が”
1”であるのでクロックφ1で値を2から1へカウント
ダウンする。 ・リピート制御部15:リピートカウンタカウントダウ
ン状態B44を維持。 ・デコードレジスタA7:デコードレジスタ更新禁止信
号18が”1”であるので命令33のデコード結果がそ
のまま保持され、その結果演算器A5での演算が継続し
て行なわれる。 ・シーケンス制御部21:ウェイト命令検出信号20
が”1”となるのでクロックφ2で内部状態が通常状態
からウェイト状態に変化する。これにより図7に示した
ように更新禁止信号22を”1”とする。
【0018】このようにしてこのサイクルでは命令33
の実行と命令34の実行が並列して行なわれる。 (7)サイクル番号=7 ・プログラムカウンタ2:更新禁止信号22が”1”で
あるのでクロックφ1でインクリメントは行なわれず内
容はn+5のままとなる。 ・命令レジスタ3:更新禁止信号22が”1”であるの
でクロックφ1でn+5番地の内容の取り込みは行なわ
れずウェイト命令35のままとなる。 ・リピートカウンタ12:カウント許可信号17が”
1”であるのでクロックφ1で値を1から0へカウント
ダウンし、零検出信号13を”1”とする。 ・リピート制御部15:零検出信号13が”1”となる
のでクロックφ2で内部状態は、リピートカウンタカウ
ントダウン状態B44から最終処理状態45に移り、図
5に示したようにデコードレジスタ更新禁止信号18だ
けを”1”とする。 ・デコードレジスタA7:デコードレジスタ更新禁止信
号18が”1”であるので命令33のデコード結果がそ
のまま保持され、その結果演算器A5での演算が継続し
て行なわれる。 ・シーケンス制御部21:零検出信号13が”1”とな
るのでクロックφ2で内部状態がウェイト状態から通常
状態に変化する。これにより図7に示したように更新禁
止信号22が”0”となる。 (8)サイクル番号=8 ・プログラムカウンタ2:更新禁止信号22が”0”で
あるのでクロックφ1でインクリメントは行なわれ内容
はn+6となる。 ・メモリ1:n+6番地のアクセスを行なう。 ・命令レジスタ3:更新禁止信号22が”0”であるの
でクロックφ1でn+5番地の内容である命令36を取
り込む。 ・デコーダ4:命令36のデコード処理を行なう。 ・リピートカウンタ12:カウント許可信号17が”
0”であるのでカウントダウンは行なわない。 ・リピート制御部15:クロックφ2で最終処理状態4
5から停止状態41に移り、図5に示したようにすべて
の信号を”0”にする。 ・デコードレジスタA7:デコードレジスタ更新禁止信
号18が”1”であるので命令33のデコード結果がそ
のまま保持されその結果演算器A5での演算が継続して
行なわれる。 ・シーケンス制御部21:通常状態を維持する。 (9)サイクル番号=9 デコードレジスタ更新禁止信号18、更新禁止信号22
が共に”0”であるので命令33の繰り返し処理は終了
し、通常に命令が実行される。
【0019】以上のように本実施例のよれば、リピート
処理対象となる命令33と、命令33に続きウェイト命
令35までの命令群(本実施例では説明の簡単化のため
1個としている)を並列に実行させることができ、高速
演算実行に適したプログラム制御装置を実現することが
できる。
【0020】尚以上の説明では説明簡単化のためリピー
ト対象となる命令33とウェイト命令35の間に1つの
命令だけが存在する場合について説明したが、複数個の
命令が存在する場合、あるいは命令33の繰り返し実行
がこれに続く命令の実行よりも早く終了する場合でも本
装置は正しく動作する。
【0021】次に以下に本発明の第2の実施例について
図面を参照しながら説明する。図10は本発明の第2の
実施例におけるプログラム制御装置のブロック図を示す
ものであるが、この図と第1の実施例のブロック図であ
る図1との差異は以下に示す部分のみであり、図1と同
番号を付したユニットの動作は変わらない。101は命
令レジスタ3の出力をデコードするデコーダ、102は
デコーダ101が後述の転送命令91をデコードした
時”1”となる転送命令検出信号、103は後述マルチ
プレクサ104の出力をプリセット信号16もしくは転
送命令検出信号102が”1”の時これを初期値として
取り込み、クロックφ1の立ち上がりでカウントダウン
するリピートカウンタ、104は転送命令検出信号10
2が”0”でラッチ11出力を、”1”で演算器B8出
力をリピートカウンタ103に出力するマルチプレク
サ、105は演算器B8出力をマルチプレクサ104に
出力する演算結果出力線である。
【0022】また図9はメモリ1の内容を示すものであ
って、n番地には通常に実行される命令31が、n+1
番地には次番地の命令の繰り返し実行を指示するリピー
トカウンタセット命令32が、n+2番地にはリピート
処理対象となる命令33が、n+3番地には命令33と
並列に実行され演算器B8を使用する命令34が、n+
4番地には演算器B8出力をマルチプレクサ104経由
でリピートカウンタ103にプリセットする転送命令9
1が、n+5番地には命令33と命令36の実行の同期
をとるウェイト命令35が、n+6番地には通常に実行
される命令36がそれぞれ格納されている。
【0023】さらに図11に図10に示したプログラム
制御装置の動作を示す。図11には以降の説明で使用す
るサイクル番号を示しているが、各サイクルは図2に示
したようにφ1、φ2の2つのクロックで構成される。
【0024】以上のように構成されたプログラムリピー
ト制御装置について、以下図10及び図9、図11を用
い、図11に示したサイクル番号を基準にしてその動作
を説明する。
【0025】図9に示した命令31、ウェイト命令3
2、命令33、命令34が図10に示したプログラム制
御装置で実行される過程は第1の実施例で示した場合と
まったく同じであり、サイクル4から命令33が命令3
4以降の命令と並列して実行されることになる。但し、
今の場合ラッチ11には予め値100をセットしておく
ものとする。
【0026】サイクル4では命令34により演算器B8
を使用して演算を行なわうが、この演算は命令33の繰
り返し実行回数を計算しているものとする。すなわち図
9に示した命令群全体がサブルーチンとして使用される
時は、命令33の繰り返し実行回数をダイナミックに変
えなければならない場合多いが、この実行回数を決める
ために演算を命令34に行なわせている。このため仮の
値100をスタート値として命令33の繰り返し実行を
開始し、その後実際に必要な繰り返し回数を命令34で
求めている。
【0027】サイクル5では命令33の実行と並列して
転送命令91を実行している。すなわちデコーダ101
で転送命令91がデコードされると転送命令検出信号1
02が”1”となるので、マルチプレクサ104は演算
器B8出力をリピートカウンタ103に接続する。また
リピートカウンタ103は転送命令検出信号102が”
1”であるのでマルチプレクサ103出力で再びプリセ
ットを行なう。そこで演算器B8にある値25がリピー
トカウンタ103にセットされることになる。
【0028】サイクル6ではウェイト命令が実行される
がこの命令は先の実施例で述べたように零検出信号13
が”0”である限りプログラムカウンタ2のインクリメ
ント、命令レジスタ3の動作を禁止するので、サイクル
7以降、リピートカウンタが0になるまで命令33だけ
が実行を繰り返すことになる。
【0029】以上のように本実施例のよれば、リピート
処理対象となる命令33の繰り返し実行回数の計算を命
令33の実行と並列して行なっているため、繰り返し実
行回数計算に必要な時間が陽には現われず、高速演算実
行に適したプログラム制御装置を実現することができ
る。
【0030】尚以上の説明では説明簡単化のためリピー
ト回数計算が命令34だけで行えるものとしているが、
実際には、数ステップから数十ステップかかる場合が多
いため、これら処理に必要な時間が陽に現われない効果
は非常に大きなものとなる。
【0031】
【発明の効果】以上のように本発明は、メモリにリピー
ト処理制御命令であるリピートカウンタセット命令と、
リピート処理対象と並列して処理できない命令の実行と
の同期を行なうウェイト命令を置き、デコーダレジス
タ、リピートカウンタ、リピート制御部、シーケンス制
御部を設けることにより、リピート対象命令とリピート
対象命令に続く命令群の並列実行を制御できるプログラ
ム制御装置を実現することができる。
【0032】さらにリピート処理対象となる命令とリピ
ート処理対象となる命令に続く命令群の中にリピートカ
ウンタへ設定する値を計算する命令と計算結果をリピー
トカウンタに転送する転送命令を置き、リピート処理対
象命令のリピート実行開始後に正しいリピート回数をリ
ピートカウンタに設定することによりリピート回数計算
が陽に現われることを防ぎ、結果として高速演算が可能
となるプログラム制御装置を実現することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例におけるプログラム処理
装置のブロック図である。
【図2】同実施例において使用するクロックを示す図で
ある。
【図3】同実施例におけるメモリ1の内容を示す図であ
る。
【図4】同実施例におけるリピート制御部15の内部状
態遷移を示す図である。
【図5】同実施例におけるリピート制御部15の出力を
示す図である。
【図6】同実施例におけるシーケンス制御部21の内部
状態遷移を示す図である。
【図7】同実施例におけるシーケンス制御部21の出力
を示す図である。
【図8】同実施例における動作説明のための命令実行過
程を示す図である。
【図9】本発明第2の実施例におけるメモリ1の内容を
示す図である。
【図10】同実施例におけるプログラム処理装置のブロ
ック図である。
【図11】同実施例における動作説明のための命令実行
過程を示す図である。
【図12】従来のプログラムリピート処理装置のブロッ
ク図である。
【図13】同従来例におけるメモリ122の内容を示す
図である。
【図14】同従来例における動作説明のための命令実行
過程を示す図である。
【符号の説明】
1 メモリ 2 プログラムカウンタ 3 命令レジスタ 4 デコーダ 7 デコーダレジスタA 10 デコーダレジスタB 12 リピートカウンタ 15 リピート制御部 19 ゲート 21 シーケンス制御部 23 ゲート 101 デコーダ 103 リピートカウンタ 104 マルチプレクサ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/30 310 - 9/355 G06F 9/40 G06F 9/42 390

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令メモリのn番地に格納した第1の命
    令によりn+1番地に格納した第2の命令の繰り返し実
    行を指示し、前記第2の命令の繰り返し実行と並列にn
    +2番地以降の番地に格納した命令を順次実行し、n+
    x番地(xは3以上の正整数)に格納した第3の命令に
    より前記第2の命令の繰り返し実行が終了したか否かを
    判定し、繰り返し実行が終了している場合はn+x+1
    番地以降に格納している命令を順次実行し、繰り返し実
    行が終了していない場合は終了を待ってn+x+1番地
    以降に格納している命令を順次実行するプログラム制御
    方法。
  2. 【請求項2】 繰り返し実行を指示する第1の命令と前
    記第1の命令の次番地に格納された第2の命令と前記第
    2の命令が格納されている番地以降に格納され命令実行
    同期を司る第3の命令を少なくとも記憶するメモリと、 前記メモリにアドレス信号を与えるプログラムカウンタ
    と、 前記プログラムカウンタが示す前記メモリの内容を一時
    記憶する命令レジスタと、 前記命令レジスタの出力をデコードし各種の制御信号を
    出力するデコーダと、 前記デコーダの出力を一時保持するレジスタと、 前記第1の命令によりプリセットされ後述の第1の制御
    手段の制御下で前記第2の命令の実行終了毎にその値を
    1ずつ減じるカウンタと、 前記カウンタには前記デコーダで前記第1の命令がデコ
    ードされた時は初期値のプリセットを前記第2の命令実
    行毎にカウンタ内容のカウントダウンを指示し、前記レ
    ジスタには前記デコーダで前記第2の命令がデコードさ
    れた段階でデコード結果取り込みとその後前記カウンタ
    内容が零になるまで取り込み内容の保持を指示する第1
    の制御手段と、 前記第3の命令が前記デコーダでデコードされた時に動
    作し、前記カウンタ内容が零ではなく前記命令2の繰り
    返し処理中であることを示している場合には、前記プロ
    グラムカウンタへは内容のインクリメント動作の禁止
    を、前記命令レジスタには前記メモリ出力の取り込み動
    作の禁止を、前記カウンタ内容が零の場合には、前記プ
    ログラムカウンタへは内容のインクリメント動作を、前
    記命令レジスタには前記メモリ出力の取り込み動作を指
    示する第2の制御手段とを備えたことを特徴とするプロ
    グラム制御装置。
  3. 【請求項3】 命令メモリのn番地に格納した第1の命
    令によりn+1番地に格納した第2の命令の繰り返し実
    行を指示し、前記第2の命令の繰り返し実行と並列にn
    +2番地以降の番地に格納した命令を順次実行すると共
    にその実行の中で前記第2の命令の繰り返し実行回数を
    新めて設定し、n+x番地(xは3以上の正整数)に格
    納した第3の命令により前記第2の命令の繰り返し実行
    が終了したか否かを判定し、繰り返し実行が終了してい
    る場合はn+x+1番地以降に格納している命令を順次
    実行し、繰り返し実行が終了していない場合は終了を待
    ってn+x+1番地以降に格納している命令を順次実行
    するプログラム制御方法。
  4. 【請求項4】 繰り返し実行を指示する第1の命令と前
    記第1の命令の次番地に格納された第2の命令と前記第
    2の命令が格納されている番地以降に格納され命令実行
    同期を司る第3の命令と前記第2の命令と第3の命令が
    格納されている番地の間に格納され前記第2の命令の繰
    り返し実行回数を指示する第4の命令を少なくとも記憶
    するメモリと、 前記メモリにアドレス信号を与えるプログラムカウンタ
    と、 前記プログラムカウンタが示す前記メモリの内容を一時
    記憶する命令レジスタと、 前記命令レジスタの出力をデコードし各種の制御信号を
    出力するデコーダと、 前記デコーダの出力を一時保持するレジスタと、 前記第1の命令によりによりプリセットされ後述の第1
    の制御手段の制御下で前記第2の命令の実行終了毎にそ
    の値を1ずつ減じると共に前記第4の命令によりプリセ
    ットされるカウンタと、 前記カウンタには前記デコーダで前記第1の命令がデコ
    ードされた時は初期値のプリセットを前記第2の命令実
    行毎にカウンタ内容のカウントダウンを指示し、前記レ
    ジスタには前記デコーダで前記第2の命令がデコードさ
    れた段階でデコード結果取り込みとその後前記カウンタ
    内容が零になるまで取り込み内容の保持を指示する第1
    の制御手段と、 前記第3の命令が前記デコーダでデコードされた時に動
    作し、前記カウンタ内容が零ではなく前記命令2の繰り
    返し処理中であることを示している場合には、前記プロ
    グラムカウンタへは内容のインクリメント動作の禁止
    を、前記命令レジスタには前記メモリ出力の取り込み動
    作の禁止を、前記カウンタ内容が零の場合には、前記プ
    ログラムカウンタへは内容のインクリメント動作を、前
    記命令レジスタには前記メモリ出力の取り込み動作を指
    示する第2の制御手段と、 前記第4の命令が前記デコーダでデコードされた時前記
    カウンタへ初期値プリセット動作を指示する第3の制御
    手段とを備えたことを特徴とするプログラム制御装置。
JP3324417A 1991-12-09 1991-12-09 プログラム制御方法及びプログラム制御装置 Expired - Fee Related JP2943464B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3324417A JP2943464B2 (ja) 1991-12-09 1991-12-09 プログラム制御方法及びプログラム制御装置
US07/989,056 US5596760A (en) 1991-12-09 1992-12-09 Program control method and program control apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3324417A JP2943464B2 (ja) 1991-12-09 1991-12-09 プログラム制御方法及びプログラム制御装置

Publications (2)

Publication Number Publication Date
JPH05158687A JPH05158687A (ja) 1993-06-25
JP2943464B2 true JP2943464B2 (ja) 1999-08-30

Family

ID=18165566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3324417A Expired - Fee Related JP2943464B2 (ja) 1991-12-09 1991-12-09 プログラム制御方法及びプログラム制御装置

Country Status (2)

Country Link
US (1) US5596760A (ja)
JP (1) JP2943464B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990570B2 (en) 1998-10-06 2006-01-24 Texas Instruments Incorporated Processor with a computer repeat instruction
DE69839910D1 (de) * 1998-10-06 2008-10-02 Texas Instruments Inc Verfahren und Vorrichtung zur iterativen Befehlsausführung
US6421744B1 (en) * 1999-10-25 2002-07-16 Motorola, Inc. Direct memory access controller and method therefor
AU2001245511A1 (en) * 2000-03-10 2001-09-24 Arc International Plc Method and apparatus for enhancing the performance of a pipelined data processor
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US6937084B2 (en) * 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US7467178B2 (en) * 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US7003543B2 (en) 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6975679B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US20020184566A1 (en) * 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6934728B2 (en) * 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US20030005269A1 (en) * 2001-06-01 2003-01-02 Conner Joshua M. Multi-precision barrel shifting
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
US7788414B2 (en) * 2007-01-16 2010-08-31 Lantiq Deutschland Gmbh Memory controller and method of controlling a memory
GB2464292A (en) * 2008-10-08 2010-04-14 Advanced Risc Mach Ltd SIMD processor circuit for performing iterative SIMD multiply-accumulate operations
KR102491606B1 (ko) * 2018-01-09 2023-01-26 삼성전자주식회사 커맨드 세트 기반 리플레이를 통해 수행 정보를 수집하는 프로세서 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161026A (en) * 1977-11-22 1979-07-10 Honeywell Information Systems Inc. Hardware controlled transfers to microprogram control apparatus and return via microinstruction restart codes
JPS5617401A (en) * 1979-07-23 1981-02-19 Omron Tateisi Electronics Co Sequence controller
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
JPS59739A (ja) * 1982-06-28 1984-01-05 Fujitsu Ltd マイクロプログラム処理装置における時間保障方式
JPS5947651A (ja) * 1982-09-10 1984-03-17 Matsushita Electric Ind Co Ltd プログラム制御装置
US4947315A (en) * 1986-12-03 1990-08-07 Finnigan Corporation System for controlling instrument using a levels data structure and concurrently running compiler task and operator task
JP2675779B2 (ja) * 1987-01-12 1997-11-12 沖電気工業株式会社 命令解読装置
US5222241A (en) * 1987-06-05 1993-06-22 Mitsubishi Denki Kabushiki Kaisha Digital signal processor having duplex working registers for switching to standby state during interrupt processing
US5247628A (en) * 1987-11-30 1993-09-21 International Business Machines Corporation Parallel processor instruction dispatch apparatus with interrupt handler
CA1311063C (en) * 1988-12-16 1992-12-01 Tokumichi Murakami Digital signal processor
JPH0312742A (ja) * 1989-06-09 1991-01-21 Ricoh Co Ltd 中央演算処理装置
FR2656442B1 (fr) * 1989-12-21 1994-07-29 Bull Sa Processeur a plusieurs unites microprogrammees avec mecanisme d'execution anticipee des instructions.
JPH0475139A (ja) * 1990-07-18 1992-03-10 Toshiba Corp ループ並列化装置
CA2060555A1 (en) * 1991-04-24 1992-10-25 Robert J. Bullions, Iii System and method for draining an instruction pipeline

Also Published As

Publication number Publication date
JPH05158687A (ja) 1993-06-25
US5596760A (en) 1997-01-21

Similar Documents

Publication Publication Date Title
JP2943464B2 (ja) プログラム制御方法及びプログラム制御装置
JP2748822B2 (ja) 情報処理装置
EP1241567A2 (en) Method and apparatus for executing coprocessor instructions
JP3169713B2 (ja) データ処理システムにおけるサブモデル制御の方法および装置
JPH0512751B2 (ja)
JP2833259B2 (ja) プログラムリピート制御方法及びプログラムリピート制御装置
JP2504263B2 (ja) デ―タ処理装置
JP2552738B2 (ja) データ処理装置
JP2892375B2 (ja) パルス入力装置
JP2825315B2 (ja) 情報処理装置
JP2504224B2 (ja) デ―タ処理装置
US20100064118A1 (en) Method and Apparatus for Reducing Latency Associated with Executing Multiple Instruction Groups
JPS6242301B2 (ja)
JPH0887411A (ja) パイプライン演算方法およびパイプライン演算装置
JPS6019018B2 (ja) デ−タ処理システム
JP2721611B2 (ja) プログラマブルコントローラ
JP3074790B2 (ja) マイクロプロセッサ
JPH0792902A (ja) プログラマブルコントローラ
JPH0512009A (ja) デイジタル信号処理装置
JPH03154929A (ja) 中央処理装置
JPS59158441A (ja) パイプライン制御方式
JPS5896346A (ja) 階層型演算方式
JPH01284926A (ja) 演算装置の命令読出方式
JPH11203137A (ja) プログラム制御方法及びプログラム制御装置
JPS63153638A (ja) パイプライン処理方法

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080625

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees