JPS62156738A - Program controller - Google Patents
Program controllerInfo
- Publication number
- JPS62156738A JPS62156738A JP29698185A JP29698185A JPS62156738A JP S62156738 A JPS62156738 A JP S62156738A JP 29698185 A JP29698185 A JP 29698185A JP 29698185 A JP29698185 A JP 29698185A JP S62156738 A JPS62156738 A JP S62156738A
- Authority
- JP
- Japan
- Prior art keywords
- loop
- instruction
- address
- counter
- contents
- 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
Links
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
Description
【発明の詳細な説明】
産業上の利用分野
本発明は計算機の一連の命令を予め設定した回数分高速
に繰り返し実行するためのプログラム制御装置に関する
。DETAILED DESCRIPTION OF THE INVENTION Field of the Invention The present invention relates to a program control device for repeatedly executing a series of computer instructions a preset number of times at high speed.
従来の技術
従来、ループ動作を行うためのプログラム制御装置は第
4図のように構成されている。(1)はプロセッサの命
令を格納する命令ROM、(2)は前記命令ROyt
(L)のアドレスを与えるプログラムカウンタ、(3)
はプログラムROM (1)の内容を保持する命令レジ
スタ、(4)は命令レジスタ(3)の内容を解読してプ
ロセッサ各部に制御信号を与えるデコーダ、(5)はル
ープカウンタで、一連の命令を繰り返し実行するときの
ループ回数をカウントするダウンカウンタで構成されて
いる。(6)はループカウンタ(5)の内容が零である
ことを検出する零検出回路、(7)はノット回路、(8
)はプログラムカウンタ(2)のロード信号およびルー
プカウンタ(5)のデクリメント信号を与えるアンド回
路である。2. Description of the Related Art Conventionally, a program control device for performing a loop operation is constructed as shown in FIG. (1) is an instruction ROM that stores processor instructions; (2) is the instruction ROyt;
A program counter that gives the address of (L), (3)
is an instruction register that holds the contents of the program ROM (1), (4) is a decoder that decodes the contents of the instruction register (3) and provides control signals to each part of the processor, and (5) is a loop counter that executes a series of instructions. It consists of a down counter that counts the number of loops during repeated execution. (6) is a zero detection circuit that detects that the content of the loop counter (5) is zero, (7) is a knot circuit, and (8)
) is an AND circuit that provides a load signal for the program counter (2) and a decrement signal for the loop counter (5).
第5図は第4図における命令ROM (1)の番地とそ
の命令の内容の一例を示す命令文図である。FIG. 5 is an instruction statement diagram showing an example of the address of the instruction ROM (1) in FIG. 4 and the contents of the instruction.
命令ROM (1)内の(N+’l)番地、(N+2)
番地の演算命令を(N+1)回繰り返して実行すること
を考える。このときN番地には、ループ開始のためにル
ープ回数をループカウンタ(5)に設定する命令(S
L C: Set Loop Counter命令)が
書かれ、(N+3)番地には、ループ終了のための命令
とそのオペランドであるループ先頭アドレス(N+1)
が書かれる。第6図は第4同各部のタイムチャートであ
り、Aはプログラムカウンタ(2)の出力、Bは命令レ
ジスタ(3)に保持された命令の番地、Cはプロセッサ
が実行する命令の番地、Dはループカウンタ(5)の内
容、EはSLC命令のデコード信号であって命令レジス
タ(3)からループカウンタ(5)ヘル−プ数をロード
するル−プカウンタロード信号、Fはアンド回路(8)
の出力であって命令レジスタ(3)からプログラムカウ
ンタ(2)へのロード信号およびループカウンタ(5)
のデクリメント信号、Gはループ終了命令のデコード信
号である。(N+'l) address in instruction ROM (1), (N+2)
Let us consider that an address arithmetic instruction is repeatedly executed (N+1) times. At this time, address N contains an instruction (S
L C: Set Loop Counter instruction) is written, and at address (N+3), an instruction to end the loop and its operand, the loop start address (N+1)
is written. Figure 6 is a time chart of each part of the fourth unit, where A is the output of the program counter (2), B is the address of the instruction held in the instruction register (3), C is the address of the instruction executed by the processor, and D is the content of the loop counter (5), E is the SLC instruction decode signal and is a loop counter load signal that loads the loop counter (5) help number from the instruction register (3), and F is the AND circuit (8). )
The load signal from the instruction register (3) to the program counter (2) and the loop counter (5)
, and G is a decode signal of the loop end instruction.
プログラムカウンタ(2)が命令ROM (1)のN番
地を指定すると、N番地の命令「Kをループカウンタに
設定(S L C: Set Loop Counte
r)J命令が命令レジスタ(3)に読み出される。デコ
ーダ(4)がこれを解読して第6図(E)のようにルー
プカウンタロード信号を出して命令レジスタ(3)から
指定ループ数“K ”をループカウンタ(5)に設定す
る。通常、プログラムカウンタ(2)は順にインクリメ
ントされ、命令ROM (1)の(N+1)、(N+2
)番地の内容「演算1」および「演算2」命令が命令レ
ジスタ(3)に読み出されてデコーダ(4)の制御によ
りプロセッサは演算を行う。次にプログラムカウンタ(
2)が命令ROM (1)の(N+3)番地をアクセス
すると(N+3)番地の「ループ終了」命令が命令レジ
スタ(3)に読み出され、デコーダ(4)により解読さ
れて第3図(G)のようにデコード信号が出力される。When the program counter (2) specifies the N address of the instruction ROM (1), the instruction at the N address “Set Loop Counter (SLC: Set Loop Counter)” is executed.
r) The J instruction is read into the instruction register (3). The decoder (4) decodes this, issues a loop counter load signal as shown in FIG. 6(E), and sets the specified number of loops "K" from the instruction register (3) in the loop counter (5). Normally, the program counter (2) is incremented sequentially, and (N+1) and (N+2) of the instruction ROM (1) are incremented in order.
) The contents of the address "operation 1" and "operation 2" instructions are read into the instruction register (3), and the processor performs the operation under the control of the decoder (4). Next, the program counter (
When 2) accesses the (N+3) address of the instruction ROM (1), the "loop end" instruction at the (N+3) address is read into the instruction register (3), decoded by the decoder (4), and shown in Figure 3 (G). ) The decoded signal is output as shown below.
零検出回路(6)はループカウンタ(5)が″零″であ
るときにノット回路(7)に「1」を出力し、′零″で
ないときに「0」を出力する。「ループ終了」命令がデ
コードされたときにループカウンタ(5)が“零”でな
い時には、アンド回路(8)の出力は第6図(F)のよ
うに「1」となる、この信号によりプログラムカウンタ
(2)は命令レジスタ(3)内の指定ループ先頭アドレ
ス(N+1)がロードされるとともにループカウンタ(
5)がデクリメントされる。このように「ループ終了」
命令ではループカウンタ(5)の内容が“零”でない限
りループカウンタ(5)がデクリメントされ、同時にプ
ログラムカウンタ(2)はこの命令のオペランドで指定
したループ先頭アドレス(N+1)がロードされてルー
プが形成される。ループカウンタ(5)の値が“零”に
なると零検出回路(6)の出力は「1」となり、「ルー
プ終了」命令においてはノット回路(7)の出力がrO
Jとなりアンド回路(8)の出力も「0」となるため、
ループ動作は行われない。この時点でループを終了して
ループを抜は出し、次に(N+4)番地の命令が実行さ
れる。The zero detection circuit (6) outputs "1" to the NOT circuit (7) when the loop counter (5) is "zero", and outputs "0" when it is not "zero". When the loop counter (5) is not "0" when the "loop end" command is decoded, the output of the AND circuit (8) becomes "1" as shown in Figure 6 (F). The counter (2) is loaded with the specified loop start address (N+1) in the instruction register (3), and the loop counter (
5) is decremented. "End loop" like this
In this instruction, the loop counter (5) is decremented unless the contents of the loop counter (5) is "0", and at the same time, the program counter (2) is loaded with the loop start address (N+1) specified by the operand of this instruction, and the loop ends. It is formed. When the value of the loop counter (5) becomes "0", the output of the zero detection circuit (6) becomes "1", and in the "loop end" command, the output of the not circuit (7) becomes rO
J, and the output of the AND circuit (8) also becomes "0", so
No looping occurs. At this point, the loop is terminated, the loop is exited, and the next instruction at address (N+4) is executed.
ループ動作はループカウンタ(5)の値が“K”から“
零”になるまで続くため、(N+1)番地および(N+
2)番地の命令は(N+1)回実行される。The loop operation is performed when the value of the loop counter (5) changes from “K” to “
This continues until it reaches "0", so (N+1) address and (N+
2) The instruction at address is executed (N+1) times.
発明が解決しようとする問題点
このような従来の構成では、第6図に示したタイムチャ
ートかられかるようにループを行うための制御は(N+
3)番地の「ループ終了」命令をデコーダ(4)で解読
し終えてから始めて行われる。このためプログラムカウ
ンタ(2)に戻り(W+1)番地がロードされるまでに
1マシンサイクルのオーバーヘッドが生じ、演算のルー
プ実行を行う場合の高速処理が図れないという問題点を
有していた。Problems to be Solved by the Invention In such a conventional configuration, the control for performing the loop is (N+
3) It is performed only after the decoder (4) finishes decoding the "loop end" command at the address. For this reason, an overhead of one machine cycle is generated until the program counter (2) is returned to and the address (W+1) is loaded, resulting in a problem that high-speed processing cannot be achieved when loop execution of calculations is performed.
本発明はループ毎に生ずるオーバーヘッドサイクルを取
り除き、演算のループ処理を高速に実行できるプログラ
ム制御装置を提供することを目的とする。SUMMARY OF THE INVENTION An object of the present invention is to provide a program control device that can eliminate overhead cycles occurring in each loop and execute loop processing of operations at high speed.
問題点を解決するための手段
本発明のプログラム制御装置は、命令メモリに格納され
たマイクロプログラムによりマイクロプロセッサの動作
を制御するとともに、上記命令メモリにアドレスを与え
る第1、第2のプログラムカウンタと、第1、第2のプ
ログラムカウンタのうちのいずれの内容を上記命令メモ
リに与えるかを選択する選択装置と、ループ終了アドレ
スを保持するレジスタと、上記レジスタの内容と上記命
令メモリに与えられるアドレスの一致検出を行う比較器
と、ループ回数をカウントするループカウンタを設け、
ループ開始命令において上記選択装置により選択されて
いる第1のプログラムカウンタの内容を第2のプログラ
ムカウンタヘロードして上記選択装置を切り替え、上記
比較器における比較内容が一致したときに第1のプログ
ラムカウンタの内容を第2のプログラムカウンタへ上記
ループカウンタに設定した回数だけロードするよう構成
したことを特徴とする。Means for Solving the Problems The program control device of the present invention controls the operation of a microprocessor by a microprogram stored in an instruction memory, and includes first and second program counters that provide addresses to the instruction memory. , a selection device for selecting which of the first and second program counters to give to the instruction memory; a register for holding a loop end address; and the contents of the register and the address to be given to the instruction memory. A comparator that detects a match and a loop counter that counts the number of loops are installed.
In the loop start command, the content of the first program counter selected by the selection device is loaded into a second program counter to switch the selection device, and when the comparison contents in the comparator match, the first program counter is loaded into the second program counter. The present invention is characterized in that the contents of the counter are loaded into the second program counter the number of times set in the loop counter.
作用
この構成によると、第1と第2の2本のプログラムカウ
ンタを有し、ループ処理中は、第2のプログラムカウン
タが命令ROMにアドレスを与え、第1のプログラムカ
ウンタはループ先頭アドレスを保持し、ループ終了アド
レスの次に第1のプログラムカウンタからループ開始ア
ドレスが第2のプログラムカウンタに与えられる。Effect: According to this configuration, there are two program counters, a first and a second program counter, and during loop processing, the second program counter gives an address to the instruction ROM, and the first program counter holds the loop start address. However, after the loop end address, the loop start address is given from the first program counter to the second program counter.
実施例
以下1本発明の一実施例を第1図〜第3図に基づいて説
明する。Embodiment One embodiment of the present invention will be described below with reference to FIGS. 1 to 3.
第1図は本発明のプログラム制御装置のブロック図を示
す。FIG. 1 shows a block diagram of a program control device of the present invention.
(1■)はプロセッサの命令を格納する命令ROM、(
12)(13)はそれぞれ命令R,OM(11)のアド
レスを与える第1のプログラムカウンタ(以下、PCA
と称す)および第2のプログラムカウンタ(以下。(1■) is an instruction ROM that stores processor instructions, (
12) and (13) are first program counters (hereinafter referred to as PCA) that give the addresses of instructions R and OM (11), respectively.
) and a second program counter (hereinafter referred to as ).
PCBと称す)、(14)はP CA (12)とp
CB (13)のいずれか一方の出力をセレクトして命
令ROM(11)に出力するマルチプレクサ、(15)
は命令ROM(11)から読み出された内容を保持する
命令レジスタ、(16)は命令レジスタ(15)の内容
を解読してプロセッサ各部に制御信号を与えるデコーダ
。PCB), (14) is PCB (12) and p
a multiplexer (15) that selects one of the outputs of CB (13) and outputs it to the instruction ROM (11);
An instruction register holds the contents read from the instruction ROM (11), and a decoder (16) decodes the contents of the instruction register (15) and provides control signals to each part of the processor.
(17)はダウンカウンタで、一連の命令を繰り返し実
行するときのループ回数をカウントするダウンカウンタ
で構成されている。(18)はループカウンタ(17)
の内容が零であることを検出する零検出回路、 (19
)はループの終了アドレスを保持するループアドレスレ
ジスタ(LAR:Loop Address Regi
ster)、(20)はループアドレスレジスタ(19
)の値と命令ROM(11)に与えられるアドレスの一
致検出を行う比較器、(22)はマルチプレクサ(14
)に対してP CA (12)とP CB (13)の
セレクト信号を出力し、またP CA (12)とP
CB (13)のカウントアツプ制御を行うTフリップ
フロップ、(22)はノット回路、(23)はループカ
ウンタ(17)のデクリメント信号を出力するアンド回
路、 (24)はSLC命令のデコード信号であるルー
プカウンタ(17)へのロード信号とアンド回路(23
)の出力を入力とするオア回路、 (25)はP CA
(12)のP CB (13)からのロード信号を与
えるアンド回路、(26)はPCB(13)のP CA
(12)からのロード信号を与えるアンド回路である
。(17) is a down counter that counts the number of loops when a series of instructions is repeatedly executed. (18) is the loop counter (17)
A zero detection circuit that detects that the content of is zero, (19
) is the loop address register (LAR) that holds the end address of the loop.
ster), (20) is the loop address register (19
) and the address given to the instruction ROM (11). (22) is a multiplexer (14).
), outputs select signals of PCA (12) and P CB (13), and outputs select signals of PCA (12) and P CB (13) to
CB (13) is a T flip-flop that controls the count up, (22) is a NOT circuit, (23) is an AND circuit that outputs a decrement signal for the loop counter (17), and (24) is a decode signal for the SLC instruction. Load signal to loop counter (17) and AND circuit (23)
), (25) is a PCA
(12) PCB AND circuit that gives a load signal from (13), (26) is PCB (13) PCA
This is an AND circuit that provides a load signal from (12).
第2図は第1図の命令ROM (11)の番地と命令の
内容を示す一例の命令文図である。第2図において(N
+1)番地、(N+2)番地、(N+3)番地の演算命
令を(K+1)回繰り返して実行することを考える。こ
のとき(N−1)番地はループ開始命令であって設定ル
ープ回数jgK”を指定しN番地にはその第2のオペラ
ンドとしてループ終了アドレス(N+3)が書かれる。FIG. 2 is an example of an instruction statement diagram showing the address of the instruction ROM (11) of FIG. 1 and the contents of the instruction. In Figure 2, (N
Let us consider that arithmetic instructions at addresses +1), (N+2), and (N+3) are repeatedly executed (K+1) times. At this time, the address (N-1) is a loop start command that specifies the set loop number jgK'', and the loop end address (N+3) is written at address N as its second operand.
第3図は第2図の命令実行時の第1図の各部のタイムチ
ャートで、AはP CA (12)の出力、BはP C
B (13)の出力、Cは命令レジスタ(15)に保持
された命令の番地、Dはプロセッサが実行する命令の番
地、Eはループカウンタ(17)の内容、Fはループア
ドレスレジスタ(19)の内容、Gはデコーダ(16)
の出力でループカウンタ(17)のロード信号、Hはデ
コーダ(16)の出力でループアドレスレジスタ(19
)のロード信号、IはTフリップフロップ(21)の正
出力Q、Jはアンド回路(25)の出力でPCA (1
2)のP CB (13)からのロード信号、にはアン
ド回路(26)の出力でP CB (13)のPCA(
12)からのロード信号、Lは比較器(20)の一致信
号である。Figure 3 is a time chart of each part in Figure 1 when the instruction in Figure 2 is executed, where A is the output of PCA (12) and B is the output of PCA (12).
Output of B (13), C is the address of the instruction held in the instruction register (15), D is the address of the instruction executed by the processor, E is the content of the loop counter (17), F is the loop address register (19) contents, G is the decoder (16)
The output is the load signal of the loop counter (17), and H is the output of the decoder (16), which is the loop address register (19).
), I is the positive output Q of the T flip-flop (21), J is the output of the AND circuit (25), and PCA (1
The load signal from P CB (13) in 2) is the output of the AND circuit (26) and the PCA (
12), L is the match signal of the comparator (20).
次に動作に基づいて第1図構成を詳細に説明する。Next, the configuration shown in FIG. 1 will be explained in detail based on the operation.
マルチプレクサ(14)は、Tフリップフロップ(21
)の正出力Qが「0」のときP CA (12)の内容
を出力し、Qが「1」のときP CB (13)の内容
を出力する。またP CA (12)はTフリップフロ
ップ(21)の負出力でか「1」のときのみカウントア
ツプされ、P CB (13)は正出力Qが「1」のと
きのみカウントアツプされる。The multiplexer (14) is a T flip-flop (21
) outputs the contents of PCA (12) when the positive output Q is "0", and outputs the contents of P CB (13) when Q is "1". Further, PCA (12) is counted up only when the negative output of the T flip-flop (21) is "1", and P CB (13) is counted up only when the positive output Q is "1".
今、Tフリップフロップ(21)の内容をrOJとする
と正出力Qは「0」で負出力τは「1」であり、マルチ
プレクサ(14)はP CA (12)の内容をセレク
トして出力し、P CB (13)はカウントアツプさ
れずP CA (12)のみがカウントアツプされる。Now, if the content of the T flip-flop (21) is rOJ, the positive output Q is "0" and the negative output τ is "1", and the multiplexer (14) selects and outputs the content of PCA (12). , P CB (13) are not counted up, but only PCA (12) is counted up.
すなわちこのとき命令ROM (11)はP CA (
12)を用いてアドレスが与えられている。P CA
(12)が命令ROM (11)の(N−1)番地を指
定すると(N−1)番地の命令「ループ開始しKをルー
プカウンタに設定する」命令が命令レジスタ(15)に
読み出される。That is, at this time, the instruction ROM (11) is PCA (
12) is used to give the address. PCA
When (12) specifies address (N-1) of instruction ROM (11), the instruction at address (N-1) "Start loop and set K to loop counter" is read into the instruction register (15).
デコーダ(16)がこれを解読し第3図(G)のように
ループカウンタロード信号を出力してループカウンタ(
17)にループ回数“K IIを設定する。通常、PC
A (12)はインクリメントされ、PCA(12)が
N番地を指定するとループ開始命令のオペランドの1つ
であるループ終了アドレス(N+3)が命令レジスタ(
15)に読み出される。デコーダ(16)が第3図(H
)のようにLARロード信号を出力してLAR(19)
にループ終了アドレス(N+3)を設定する。The decoder (16) decodes this and outputs the loop counter load signal as shown in FIG.
17) Set the number of loops “K II”.Usually, the PC
A (12) is incremented, and when PCA (12) specifies address N, the loop end address (N+3), which is one of the operands of the loop start instruction, is set to the instruction register (
15). The decoder (16) is
) to output the LAR load signal and load the LAR (19)
Set the loop end address (N+3) to .
また、ループカウンタロード信号Gの立上りエツジでT
フリップフロップ(21)の内容は反転されてQ出カニ
は「1」、−ζ−は「0」となる、すなわち今後は命令
ROM (11)はP CB (13)によってアドレ
スが与えられることを意味する。同時にこのループカウ
ンタロード信号Gによりオアゲート(24)を通じてア
ンドゲート(26)の出力であるPCBロード信号が第
3図(K)のように「1」となる。この信号によりP
CB (13)の内容はPCA(12)の内容(この時
点でN+1)がロードされる。Also, at the rising edge of the loop counter load signal G, T
The contents of the flip-flop (21) are inverted so that the Q output becomes "1" and the -ζ- becomes "0", which means that from now on, the address of the instruction ROM (11) will be given by PCB (13). means. At the same time, this loop counter load signal G causes the PCB load signal, which is the output of the AND gate (26), to become "1" through the OR gate (24) as shown in FIG. 3(K). This signal causes P
The contents of PCA (12) (N+1 at this point) are loaded as the contents of CB (13).
このようにループ開始命令においては、ループカウンタ
(17)にループ回数gt K jjを設定し、ループ
アドレスレジスタ(19)にループ終了アドレス(N+
3)を設定し、2つのプログラムカウンタPcA、PC
Bのうちのそれまで使用していた方のプログラムカウン
タPCA(12)の内容(N+1)をもつ他方のプログ
ラムカウンタP CB (13)にロードして使用する
プログラムカウンタを変更する。したがって、この後は
命令ROM (11)のアドレスはP CB (13)
で与えられ、PCB(12)の内容はループの先頭アド
レス(N+1)が格納されている。命令ROM (11
)の(N+1)番地に格納された命令「演算1」はP
CB (13)によってアクセスされ、命令レジスタ(
15)でラッチされた後デコーダ(16)の制御により
プロセッサは演算を行う。(N+2)番地および(N+
3)番地の命令「演算2」および「演算3」も同様にし
て実行される。In this way, in the loop start instruction, the loop count gt K jj is set in the loop counter (17), and the loop end address (N+
3) Set the two program counters PcA, PC
The program counter to be used is changed by loading the contents (N+1) of the previously used program counter PCA (12) of B into the other program counter P CB (13). Therefore, from now on, the address of instruction ROM (11) is P CB (13)
The content of PCB (12) stores the start address (N+1) of the loop. Instruction ROM (11
) The instruction “operation 1” stored at address (N+1) is P
CB (13) and is accessed by the instruction register (
15), the processor performs calculations under the control of the decoder (16). (N+2) address and (N+
3) The instructions "operation 2" and "operation 3" at the address are executed in the same way.
P CB (13)が(N+3)となったとき、命令R
OM (11)のアドレスとL A R(19)の内容
が一致し、比較器(20)は第3図(L)に示すように
一致信号を出力する。このときのループカウンタ(17
)の内容は“K tpであるので零検出回路(18)の
出力は「0」であり、ノット回路(22)の出力は「1
」となる。したがってアンド回路(23)の出力は「1
」となる。この信号によってループカウンタ(17)は
デクリメントされて値が(K−1)となるとともにオア
回路(24)を通じてアンドゲート(26)の出力であ
るPCB(13)のロード信号が第3図(K)に示すよ
うに「1」となる、この信号によりP CB (13)
の内容はPCA(12)の内容(N+1)がロードされ
る。すなわち(N+3)番地の命令の次には(N+1)
番地の命令が実行され、オーバーヘッドのないループが
形成される。When P CB (13) becomes (N+3), instruction R
The address of OM (11) and the contents of LA R (19) match, and the comparator (20) outputs a match signal as shown in FIG. 3(L). The loop counter at this time (17
) is “K tp”, the output of the zero detection circuit (18) is “0”, and the output of the not circuit (22) is “1”.
”. Therefore, the output of the AND circuit (23) is “1
”. By this signal, the loop counter (17) is decremented and the value becomes (K-1), and the load signal of the PCB (13), which is the output of the AND gate (26), is transmitted through the OR circuit (24) as shown in FIG. ), this signal becomes “1” as shown in P CB (13)
The contents (N+1) of PCA (12) are loaded. In other words, the instruction at address (N+3) is followed by (N+1)
The instruction at the address is executed, forming a loop with no overhead.
このようにP CB (13)で与えられる命令ROM
(11)のアドレスがL A R(19)の内容と一致
し、しかもループカウンタ(17)が零でない場合には
ループカウンタ(17)が“零″となるまでデクリメン
トし。In this way, the instruction ROM given by P CB (13)
If the address of (11) matches the contents of L A R (19) and the loop counter (17) is not zero, the loop counter (17) is decremented until it becomes "zero".
同時にP CA (12)に格納されているループの先
頭アドレス(N+1)がP CB (13)にロードさ
れてループを形成する。ループカウンタ(17)が″零
″′となっているときには零検出回路(18)の出力が
「1」となる。このときP CB (13)の内容が(
N+3)となってL A R(19)と一致してもルー
プ動作は行われず、P CB (13)は(N+4)と
なってループを脱出する。ループカウンタ(17)が“
K”から“零″となるまでループ動作がIt K 11
回行われるため、「演算1」「演算2」「演算3」は(
K+1)回繰り返し実行される。At the same time, the loop start address (N+1) stored in PCA (12) is loaded into P CB (13) to form a loop. When the loop counter (17) is "zero", the output of the zero detection circuit (18) is "1". At this time, the contents of P CB (13) are (
Even if P CB (13) becomes (N+3) and matches L A R (19), the loop operation is not performed, and P CB (13) becomes (N+4) and escapes from the loop. The loop counter (17) is “
The loop operation continues from “K” to “0”.
Because it is performed twice, "Operation 1", "Operation 2", and "Operation 3" are (
K+1) times.
このループを脱出した後、別のループ開始命令がある場
合は、ループ動作時のP CA (12)とPCB (
13)の役割りは逆となる。After exiting this loop, if there is another loop start instruction, PCA (12) and PCB (
The role of 13) is reversed.
以上のように「ループ終了命令」のような無駄な命令を
デコードした後でループ動作を行うことなく、プログラ
ムカウンタはループ終了アドレスの次にループ先頭アド
レスを指示することとなり、ループ動作時のオーバーヘ
ッドサイクルがなくなるためループ処理の高速化を図る
ことができる。As described above, without performing a loop operation after decoding a useless instruction such as a "loop end instruction", the program counter will point to the loop start address after the loop end address, resulting in overhead during loop operation. Since there are no cycles, it is possible to speed up loop processing.
発明の詳細
な説明したように本発明のプログラム制御装置は、第1
、第2のプログラムカウンタと、第1、第2のプログラ
ムカウンタの一方の内容を選択して命令メモリにアドレ
スを与える選択装置を設け、選択装置により選択されて
いる第1のプログラムカウンタの内容ループ開始命令に
よって第2のプログラムカウンタヘロードするとともに
上記選択装置を切り替えて第1のプログラムカウンタに
はループの先頭アドレスが格納された状態で以後節2の
プログラムカウンタが命令メモリにアドレスを与え、第
2のプログラムカウンタの内容がループ終了アドレスに
達すると次に第1のプログラムカウンタに格納されてい
るループの先頭アドレスをロードして所定回数だけルー
プ動作を実行するため、ループの最後にループ終了命令
がある従来装置におけるループ毎のオーバーヘッドサイ
クルが取除かれ、演算のループ処理を高速に実行するこ
とができ、その実用的効果は大きいものである。DETAILED DESCRIPTION OF THE INVENTION As described above, the program control device of the present invention has a first
, a second program counter and a selection device for selecting the contents of one of the first and second program counters and providing an address to the instruction memory, the contents loop of the first program counter being selected by the selection device; The start instruction loads the second program counter and switches the selection device so that the first program counter stores the start address of the loop. When the contents of the second program counter reach the loop end address, the loop start address stored in the first program counter is loaded and the loop operation is executed a predetermined number of times. Therefore, a loop end command is issued at the end of the loop. The overhead cycle for each loop in some conventional devices is removed, and the loop processing of calculations can be executed at high speed, which has a great practical effect.
第1図は本発明のプログラム制御装置の一実施例のブロ
ック図、第2図は第1図における命令ROMの番地とそ
の命令内容の一例を示す命令文図、第3図は第1図の各
部のタイムチャート図、第4図は従来のプログラム制御
装置のブロック図、第5図は第4図における命令ROM
の番地とその命令内容の一例を示す命令文図、第6図は
第4図の各部のタイムチャート図である。
(11)・・・命令ROM、(12)・・・第1のプロ
グラムカウンタ、(13)・・・第2のプログラムカウ
ンタ、(14)・・・マルチプレクサ〔選択装置〕、(
17)・・・ループカウンタ、(19)・・・ループア
ドレスレジスタ〔レジスタ〕。
(20)・・・比較器、(21)・・・Tフリップフロ
ップ代理人 森 本 義 弘
第2図
(ぬ Q 龜 −鴎 者 2 − つ
に −第4図FIG. 1 is a block diagram of an embodiment of the program control device of the present invention, FIG. 2 is an instruction text diagram showing an example of the address of the instruction ROM in FIG. 1 and its instruction contents, and FIG. A time chart diagram of each part, Figure 4 is a block diagram of a conventional program control device, and Figure 5 is an instruction ROM in Figure 4.
FIG. 6 is a time chart of each part of FIG. 4. (11)...Instruction ROM, (12)...First program counter, (13)...Second program counter, (14)...Multiplexer [selection device], (
17)...Loop counter, (19)...Loop address register [register]. (20)... Comparator, (21)... T flip-flop agent Yoshihiro Morimoto Figure 2
-Figure 4
Claims (1)
マイクロプロセッサの動作を制御するとともに、上記命
令メモリにアドレスを与える第1、第2のプログラムカ
ウンタと、第1、第2のプログラムカウンタのうちのい
ずれの内容を上記命令メモリに与えるかを選択する選択
装置と、ループ終了アドレスを保持するレジスタと、上
記レジスタの内容と上記命令メモリに与えられるアドレ
スの一致検出を行う比較器と、ループ回数をカウントす
るループカウンタを設け、ループ開始命令において上記
選択装置により選択されている第1のプログラムカウン
タの内容を第2のプログラムカウンタへロードして上記
選択装置を切り替え、上記比較器における比較内容が一
致したときに第1のプログラムカウンタの内容を第2の
プログラムカウンタへ上記ループカウンタに設定した回
数だけロードするよう構成したプログラム制御装置。1. First and second program counters that control the operation of the microprocessor by a microprogram stored in the instruction memory and provide an address to the instruction memory; a selection device for selecting whether to give contents to the instruction memory; a register for holding a loop end address; a comparator for detecting a match between the contents of the register and the address given to the instruction memory; and a comparator for counting the number of loops. A loop counter is provided, and when the contents of the first program counter selected by the selection device in the loop start command are loaded into the second program counter and the selection device is switched, and the comparison contents in the comparator match. A program control device configured to load the contents of a first program counter into a second program counter the number of times set in the loop counter.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29698185A JPS62156738A (en) | 1985-12-27 | 1985-12-27 | Program controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29698185A JPS62156738A (en) | 1985-12-27 | 1985-12-27 | Program controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS62156738A true JPS62156738A (en) | 1987-07-11 |
Family
ID=17840704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29698185A Pending JPS62156738A (en) | 1985-12-27 | 1985-12-27 | Program controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS62156738A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04227541A (en) * | 1990-04-23 | 1992-08-17 | Internatl Business Mach Corp <Ibm> | Method for processing control function of processer and loop |
JP2005352755A (en) * | 2004-06-10 | 2005-12-22 | Canon Inc | Loop control system and its control method |
JP4870307B2 (en) * | 2000-01-10 | 2012-02-08 | オーワイ ハルトン グループ リミテッド | Exhaust hood with air curtain |
JP2019509575A (en) * | 2016-03-23 | 2019-04-04 | エイアールエム リミテッド | Program loop control |
-
1985
- 1985-12-27 JP JP29698185A patent/JPS62156738A/en active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04227541A (en) * | 1990-04-23 | 1992-08-17 | Internatl Business Mach Corp <Ibm> | Method for processing control function of processer and loop |
JP4870307B2 (en) * | 2000-01-10 | 2012-02-08 | オーワイ ハルトン グループ リミテッド | Exhaust hood with air curtain |
JP2005352755A (en) * | 2004-06-10 | 2005-12-22 | Canon Inc | Loop control system and its control method |
JP2019509575A (en) * | 2016-03-23 | 2019-04-04 | エイアールエム リミテッド | Program loop control |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR19990044957A (en) | Methods and apparatus that affect the processing of subsequent instructions in a data processor | |
JPS62156738A (en) | Program controller | |
JP2694948B2 (en) | Micro program processor | |
JPS5999552A (en) | Microcomputer | |
JPH0353322A (en) | Information processor | |
JPH01286034A (en) | Information processor | |
JPS61240341A (en) | Microprogram controller | |
JPH03127171A (en) | Vector processor | |
JP2761324B2 (en) | High-speed processing method | |
JPS61187044A (en) | Information processor | |
JPS63101966A (en) | Vector processor | |
JPH02193228A (en) | Information processor | |
JPS621066A (en) | Information processor | |
JPS63305449A (en) | Microprocessor system | |
JPH01255037A (en) | Electronic computer | |
JPH01126727A (en) | Micro-program control circuit | |
JPS6349941A (en) | Arithmetic processing unit | |
JPS6349943A (en) | Arithmetic processing unit | |
JPH04180126A (en) | Program controller | |
JPS62233839A (en) | Arithmetic processor | |
JPH0340075A (en) | Microcomputer | |
JPH04167150A (en) | Computer containing list instruction processor | |
JPH03164945A (en) | Data processor | |
JPS59200343A (en) | Microprogram controller | |
JPH05204831A (en) | Microprocessor and microcomputer system with direct memory access function using the same |