JPS6242301B2 - - Google Patents
Info
- Publication number
- JPS6242301B2 JPS6242301B2 JP15670382A JP15670382A JPS6242301B2 JP S6242301 B2 JPS6242301 B2 JP S6242301B2 JP 15670382 A JP15670382 A JP 15670382A JP 15670382 A JP15670382 A JP 15670382A JP S6242301 B2 JPS6242301 B2 JP S6242301B2
- Authority
- JP
- Japan
- Prior art keywords
- repeat
- counter
- memory
- instruction
- 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.)
- Expired
Links
- 238000000034 method Methods 0.000 description 21
- 238000001514 detection method Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 101000708578 Milk vetch dwarf virus (isolate N) Para-Rep C3 Proteins 0.000 description 1
- 102100026918 Phospholipase A2 Human genes 0.000 description 1
- 101710096328 Phospholipase A2 Proteins 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
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)
Description
【発明の詳細な説明】
(産業上の利用分野)
本発明は、マイクロコンピユータのプログラム
制御装置に関するものである。DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a program control device for a microcomputer.
(従来例の構成とその問題点)
マイクロコンピユータ内に、ある機械語を予め
設定した回数だけくり返し実行するプログラム制
御回路を設けておくと非常に有効である。このよ
うな制御回路をもつマイクロコンピユータで、い
わゆるストリングス処理、例えば2つの、連続し
て意味をもつ数ワードのデータの間で比較を行う
時には、比較を行う機械語をそのワード数分だけ
くり返し実行すればよい。そこで、ストリングス
処理で比較を行う時には、プログラムメモリには
比較を行う機械語を一つだけ格納しておくだけで
よく、プログラム用メモリの使用効率が上るだけ
でなく、ストリングス処理のプログラムの作成も
容易となる。(Constitution of Conventional Example and its Problems) It is very effective to provide a program control circuit in a microcomputer that repeatedly executes a certain machine language a preset number of times. When a microcomputer with such a control circuit performs so-called string processing, for example, when comparing two consecutive meaningful words of data, the machine language for comparison is executed repeatedly for the number of words. do it. Therefore, when performing a comparison using string processing, it is only necessary to store only one machine language for comparison in the program memory, which not only improves the efficiency of program memory usage but also makes it easier to create string processing programs. It becomes easier.
このように、ある機械語を予め設定した回数だ
けくり返し実行するためのプログラム制御方法と
して、制御回路の中に、くり返し回数を設定する
カウンタ(以下これをリピートカウンタと呼
ぶ)。を設け、リピートカウンタの値が零になる
まで、現在実行中のプログラムメモリのアドレを
示すプログラムカウンタの値を変化させないとい
う方法(以下これをリピート処理と呼ぶ)があ
る。そこで、リピートカウンタの値が零になるま
で、同じアドレスの命令、すなわち同じ機械語が
実行され続ける。このような制御方法を実現した
例としては、インテル社の16ビツトマイクロコン
ピユータ8086があげられる。一方、このよう
な制御方法を採用した時に問題となるのは、いわ
ゆる割込みとの関係である。割込みが起ると通
常、プログラムカウンタの値は待避され、割込み
先のアドレスがプログラムカウンタに新たに設定
され、割込み先の処理を開始する。そして割込み
先の処理が終了すると、待避しておいた値をプロ
グラムカウンタに復帰させる。その結果、割込み
前のプログラムが再び実行される。このような割
込みがリピート処理中に起つた時、リピート処理
をしている命令のオペレータとオペランドが同じ
アドレスのプログラムメモリに格納されている時
には問題は生じない。しかし、リピート処理を一
般化した時、メモリにはオペレータをひとつだけ
記憶しこのオペレータの処理対象となるオペラン
ドを順に記憶しておくという形態をとる事が考え
られる。しかしながら、このリピート処理中の割
込みは正常には動作しない。例えば第1図に示す
ように、n番地のメモリにオペレータとして比較
を指示する命令コード1が、n+1番地からn+
4番地には、オペランドとして、メモリのアドレ
スds12、dd13、ds24、dd25が格納されている
とする。そしてリピート処理で、メモリのds1番
地の内容6と、dd1番地の内容7との比較を終
え、プログラムカウンタが、n+3の値を示した
ところで割込みが発生したとする。割込み発生
後、プログラムカウンタの値、n+3は待避され
る。そして割込み先の処理が行われた後、待避し
ておいた値n+3がプログラムカウンタ復帰され
る。しかし割込み先の処理の中で新しい命令コー
ドが命令レジスタにフエツチされているため、割
込みから復帰後の命令レジスタには、比較を指示
する命令コード1は既に存在しない。そこで割込
みから復帰後はマイクロコンピユータは正しく動
作しなくなる。これを防ぐ方法として、リピート
処理中は割込み処理を行わないという方法が考え
られる。しかし、一般に割込みは速かな応答及び
処理を必要とするものであり、従つてリピート処
理中に割込みの禁止を行うというのは問題があ
る。 As described above, as a program control method for repeatedly executing a certain machine language a preset number of times, a counter (hereinafter referred to as a repeat counter) for setting the number of repetitions is provided in the control circuit. There is a method (hereinafter referred to as repeat processing) in which the value of the program counter indicating the address of the program memory currently being executed is not changed until the value of the repeat counter becomes zero. Therefore, the instruction at the same address, that is, the same machine language, continues to be executed until the value of the repeat counter becomes zero. An example of implementing such a control method is Intel's 16-bit microcomputer 8086. On the other hand, when such a control method is adopted, a problem arises in relation to so-called interrupts. When an interrupt occurs, the value of the program counter is usually saved, the address of the interrupt destination is newly set in the program counter, and processing of the interrupt destination is started. When the interrupt destination process is completed, the saved value is returned to the program counter. As a result, the program before the interrupt is executed again. When such an interrupt occurs during repeat processing, no problem occurs if the operator and operand of the instruction undergoing repeat processing are stored in the program memory at the same address. However, when repeat processing is generalized, it may be possible to store only one operator in memory and sequentially store operands to be processed by this operator. However, the interrupt during this repeat processing does not operate normally. For example, as shown in FIG.
Assume that memory addresses ds 1 2, dd 1 3, ds 2 4, and dd 2 5 are stored at address 4 as operands. Assume that an interrupt occurs when the program counter indicates the value n+3 after completing the comparison between the contents 6 of the ds 1 address and the contents 7 of the dd 1 address in the repeat process. After the interrupt occurs, the value of the program counter, n+3, is saved. After the interrupt destination processing is performed, the saved value n+3 is restored to the program counter. However, since a new instruction code has been fetched into the instruction register during processing at the interrupt destination, instruction code 1, which instructs comparison, no longer exists in the instruction register after returning from the interrupt. Therefore, the microcomputer will not operate correctly after returning from the interrupt. A possible method to prevent this is to not perform interrupt processing during repeat processing. However, interrupts generally require quick response and processing, and therefore it is problematic to prohibit interrupts during repeat processing.
(発明の目的)
本発明の目的は、従来例で述べた欠点をなく
し、オペレータの後に複数個のオペランドをもつ
形式でリピート処理を行つている時にでも、割込
み処理が可能なプログラム制御装置を提供するこ
とにある。(Objective of the Invention) An object of the present invention is to eliminate the drawbacks mentioned in the conventional example and to provide a program control device capable of processing interrupts even when repeat processing is performed in a format having multiple operands after an operator. It's about doing.
(発明の構成)
本発明のプログラム制御装置は、繰り返し実行
を指示する第1の命令と繰り返し実行対象となる
第2の命令を含む命令群、及びデータを記憶する
メモリと、前記メモリにアドレス信号を与えるプ
ログラムカウンタと、前記プログラムカウンタが
示す前記メモリ内の命令を一時記憶する命令レジ
スタと、前記第1の命令によりプリセツトされ、
前記第2の命令の実行終了毎にその値を1ずつ減
じるリピートカウンタと、前記リピートカウンタ
が最初に1だけ減じられた時セツトされ、前記リ
ピートカウンタの内容が零になつた時リセツトさ
れるリピートフラツグと、前記リピートフラツグ
がリセツトされている状態で割込を受理した時
は、その時点の前記プログラムカウンタ、前記リ
ピートカウンタ、前記リピートフラツグの内容の
前記メモリへの退避と前記リピートカウンタ、前
記リピートフラツグのリセツトを行ない、前記リ
ピートフラツグがセツトされている状態で割込を
受理した時は、これらの退避に先立ち、前記命令
レジスタの内容の前記メモリへの退避を行なう手
段と、割込からの復帰時、最初に前記メモリから
前記リピートカウンタ、前記リピートフラツグの
内容を復帰し、復帰した前記リピートフラツグが
リセツト状態なら、前記プログラムカウンタの内
容を前記メモリから復帰し、復帰した前記リセツ
トフラツグがセツト状態なら前記プログラムカウ
ンタの内容、前記命令レジスタの内容を前記メモ
リから復帰する手段とを有することを特徴とす
る。(Structure of the Invention) A program control device of the present invention includes a memory for storing an instruction group including a first instruction for instructing repeated execution and a second instruction to be repeatedly executed, and data, and an address signal for the memory. a program counter that temporarily stores an instruction in the memory indicated by the program counter; and an instruction register that is preset by the first instruction;
a repeat counter whose value is decremented by 1 each time execution of the second instruction is completed; and a repeat counter that is set when the repeat counter is first decremented by 1 and reset when the contents of the repeat counter become zero. When an interrupt is received while the flag and the repeat flag have been reset, the contents of the program counter, the repeat counter, and the repeat flag at that time are saved to the memory and the repeat counter is , means for resetting the repeat flag and, when an interrupt is received while the repeat flag is set, saving the contents of the instruction register to the memory before saving them; , when returning from an interrupt, first restore the contents of the repeat counter and the repeat flag from the memory, and if the restored repeat flag is in a reset state, restore the contents of the program counter from the memory; The present invention is characterized by comprising means for restoring the contents of the program counter and the contents of the instruction register from the memory if the restored reset flag is in the set state.
そして上記の構成により、前記リピートカウン
タが最初に1だけ減じられた時から、前記リピー
トカウンタの内容が零になるまでの間セツトされ
る前記リピートフラツグを参照することにより、
繰り返し実行中の前記第2の命令の一つの命令実
行が終了した時点で割込を受理した時、前記プロ
グラムカウンタ、前記リピートカウンタ、前記リ
ピートフラツグの内容の前記メモリへの退避、前
記リピートカウンタ、前記リピートフラツグのリ
セツト以外に、前記命令レジスタの内容の前記メ
モリへの退避を行なうか否かの判定を行ない、割
込からの復帰処理では、前記メモリから復帰した
前記リピートフラツグを参照することにより、前
記プログラムカウンタ、前記リピートカウンタの
前記メモリからの復帰以外に、前記命令レジスタ
の内容の前記メモリからの復帰を行なうか否かの
判断を行なうことにより、前記第2の命令が、前
記プログラムカウンタで示されるオペランドを持
つ場合でも、割り込み処理を可能にするという作
用効果を奏する。 With the above configuration, by referring to the repeat flag that is set from the time when the repeat counter is first decremented by 1 until the content of the repeat counter becomes zero,
Saving the contents of the program counter, the repeat counter, and the repeat flag to the memory when an interrupt is received at the end of execution of one of the second instructions being repeatedly executed; In addition to resetting the repeat flag, it is determined whether or not the contents of the instruction register are to be saved to the memory, and in the return processing from the interrupt, the repeat flag returned from the memory is referred to. By doing so, by determining whether or not to restore the contents of the instruction register from the memory in addition to restoring the program counter and the repeat counter from the memory, the second instruction Even when there is an operand indicated by the program counter, there is an effect that interrupt processing is possible.
(実施例の説明)
第2図に本発明の一実施例を示す。メモリ8
は、命令あるいは演算データを記憶し、プログラ
ムカウンタ9はメモリ8に格納されているプログ
ラムの実行アドレスを示す。命令レジスタ10
は、プログラムカウンタ9によつて示されたメモ
リ8の内容を命令コードとして一時記憶する。リ
ピートカウンタ11はデータバス12から初期値
を設定されその後零になるまで、命令レジスタ1
0に格納されていく命令コードが実行される度に
その値を減じてゆく。リピートフラツグ13は、
リピートカウンタ11に初期値が設定された後命
令レジスタ10に格納された命令コードがくり返
し実行されてゆく過程において、1回目の実行が
終了した時点でセツトされ、最終回の実行が終了
した時点でリセツトされるフラツグである。スタ
ツクポインタ14はメモリ8とアドレスバス15
と共に割込み発生時に、プログラムカウンタ9、
リピートカウンタ11、リピートフラツグ13等
を待避する手段を実現している。すなわち、割込
み発生時には、スタツクポインタ14が示すアド
レスのメモリ8に前述のプログラムカウンタ9等
を格納する。割込みフラツグ16は、外部条件で
セツトされ、割込み処理が開始された時点で、制
御部17の出力でリセツトされるフラツグであ
る。制御部17は、命令レジスタ10、リピート
フラツグ13、割込みフラツグ16のそれぞれの
出力と、リピートカウンタ11の内容が零である
ことを示す零検出信号18とを入力とし、前述の
各構成要素を制御する。(Description of Embodiment) FIG. 2 shows an embodiment of the present invention. memory 8
stores instructions or operation data, and a program counter 9 indicates the execution address of the program stored in the memory 8. instruction register 10
temporarily stores the contents of the memory 8 indicated by the program counter 9 as an instruction code. The repeat counter 11 is set with an initial value from the data bus 12, and then the instruction register 1
Each time an instruction code that is stored as 0 is executed, its value is decremented. Repeat flag 13 is
After the initial value is set in the repeat counter 11, the instruction code stored in the instruction register 10 is repeatedly executed. This is the flag that is reset. Stack pointer 14 connects memory 8 and address bus 15
When an interrupt occurs, the program counter 9,
A means for saving the repeat counter 11, repeat flag 13, etc. is realized. That is, when an interrupt occurs, the aforementioned program counter 9 and the like are stored in the memory 8 at the address indicated by the stack pointer 14. The interrupt flag 16 is a flag that is set based on external conditions and reset by the output of the control section 17 when interrupt processing is started. The control unit 17 inputs the outputs of the instruction register 10, the repeat flag 13, and the interrupt flag 16, and the zero detection signal 18 indicating that the content of the repeat counter 11 is zero, and controls each of the above-mentioned components. Control.
第3図に第2図に示した制御部17の一構成例
を示す。サイクルカウンタ19は、命令レジスタ
10に命令コードが格納された時点でリセツトさ
れ、その後1マシンサイクル毎にインクレメント
されるカウンタである。PLA(Programable
Logic Array)20は、命令レジスタ10、サイ
クルカウンタ19、割込みフラツグ16、リピー
トフラツグ13、零検出信号18を入力とし、こ
れらをそのAND部でデコードし、OR部から各種
の制御信号21を出力する。なお、後述のタイミ
ングで制御部17を動作させる都合上、PLA2
0の入力は後述のクロツクT2でイネーブルとな
るラツチ22を用いて同期をとる。 FIG. 3 shows an example of the configuration of the control section 17 shown in FIG. 2. The cycle counter 19 is a counter that is reset when the instruction code is stored in the instruction register 10, and then incremented every machine cycle. PLA (Programmable
Logic Array) 20 inputs the instruction register 10, cycle counter 19, interrupt flag 16, repeat flag 13, and zero detection signal 18, decodes these with its AND part, and outputs various control signals 21 from the OR part. do. In addition, in order to operate the control unit 17 at the timing described later, the PLA2
A zero input is synchronized using latch 22, which is enabled by clock T2, which will be described later.
第4図には、第2図に示した一実施例の動作タ
イミングを示す。1マシンサイクルをT0からT4
の5つのクロツクで構成する。T0からT1の間で
メモリ8がアクセスされ、T1で命令コードが命
令レジスタ10に格納される。またこの時サイク
ルカウンタ19はリセツトされる。命令コードが
命令レジスタ10に格納された後は、サイクルカ
ウンタ19はT1のタイミングでカウントアツプ
される。T2は、PLA20のデコードのためのタ
イミングであり、PLA19の入力部に設けた同
期用のラツチ22がイネーブルとなる。T3とT4
は、メモリ8からデータをデータバス12にとり
出したり、あるいはデータバス12の内容をメモ
リ8に書き込むために用いる。すなわちT3のタ
イミングからメモリ8のアクセスが開始され、
T4のタイミングでデータがデータバス12に出
力される。逆に、T4のタイミングでデータバス
12の内容がメモリ8に書き込まれる。またT4
のタイミングでリピートカウンタ11はデータバ
ス12から初期値を設定されたり、あるいは、そ
の値をデクリメントする。リピートフラツグ13
は、T3のタイミングでセツト、リセツトされ
る。 FIG. 4 shows the operation timing of the embodiment shown in FIG. 2. 1 machine cycle from T0 to T4
It consists of five clocks. The memory 8 is accessed between T0 and T1, and the instruction code is stored in the instruction register 10 at T1. Also, at this time, the cycle counter 19 is reset. After the instruction code is stored in the instruction register 10, the cycle counter 19 is counted up at timing T1. T2 is the timing for decoding the PLA 20, and the synchronization latch 22 provided at the input section of the PLA 19 is enabled. T3 and T4
is used to take out data from the memory 8 onto the data bus 12 or to write the contents of the data bus 12 into the memory 8. In other words, access to memory 8 starts from timing T3,
Data is output to the data bus 12 at timing T4. Conversely, the contents of the data bus 12 are written to the memory 8 at timing T4. Also T4
At this timing, the repeat counter 11 is set to an initial value from the data bus 12, or its value is decremented. Repeat flag 13
is set and reset at timing T3.
第5図に、第4図のタイミングに従うリピート
カウンタ11、リピートフラツグ13の一構成例
を示す。ダウンカウンタ23は、プリセツトデー
タ入力端子24、プリセツトイネーブル端子2
5、カウントダウンクロツク入力端子26、リセ
ツト端子27及び出力端子28を持つ。プリセツ
トイネーブル端子25が“1”になると、ダウン
カウンタ23は、プリセツトデータ入力端子24
の値を内部のフリツプフロツプにセツトする。そ
の後カウントダウンクロツク入力端子26が
“1”になるとダウンカウンタ23はその値をデ
クレメントしてゆく。ダウンカウンタ23の出力
28すなわちダウンカウンタ23を構成している
フリツプフロツプ(図示せず)の出力は、出力バ
ツフア29を通してデータバス12に出力され
る。ダウンカウンタ23の出力28は、零検出回
路30にも接続されている。零検出回路30は、
入力が総て零である時にその出力31を“1”に
する。ゲート32は制御部16の出力である制御
信号PRES33あるいはPOP34が“1”の時T4
タイミングで、プリセツトイネーブル端子26を
“1”とする。ここで制御信号PRES33は、ダ
ウンカウンタ23に初期値を設定する命令が実行
された時に“1”となり、制御信号POP34
は、割込み処理から復帰する時に“1”となる。
ゲート35は、制御部16の出力である制御出力
DEC36が“1”であり、かつ、ダウンカウン
タ23の内容が零でない時のT4タイミングで、
カウントダウンクロツク入力端子26を“1”と
する。ここで制御信号DEC36は、命令レジス
タ10に格納されている命令がリピート処理を行
えるものである時、その命令が数マシンサイクル
かかつて実行されていく中で、各最後のマシンサ
イクルで“1”となるようにPLA20をプログ
ラムしておくことにより出力される。リピートフ
ラツグ13は、フリツプフロツプ37と、出力ゲ
ート38とから構成されている。第5図に示すよ
うに、制御出力DEC36が“1”であるT3タイ
ミングの時、もしダウンカウンタ23の内容が零
でないならフリツプフロツプ37の出力REP3
9は“1”となり、ダウンカウンタ23の内容が
零であるならばREP39は“0”となる。フリ
ツプフロツプ37の出力REP39はまた、制御
信号POP34が“1”である時のT4タイミング
でデータバス12の内容に応じてセツトもしくは
リセツトされる。制御部16の出力である制御信
号PSH40は、割込み処理時に“1”となりT4
タイミングでリピートカウンタ11、リピートフ
ラツグ13の内容をデータバス12に出力する。
そしてこれらの値はスタツクポインタ14が指示
するアドレスのメモリ8に格納される。そしてそ
の後制御信号RES41が“1”となりリピート
カウンタ11、リピートフラツグ13はリセツト
される。また、零検出回路30の出力信号ZERO
18は、前述のように制御部17に接続されてい
る。 FIG. 5 shows an example of the structure of the repeat counter 11 and repeat flag 13 according to the timing shown in FIG. The down counter 23 has a preset data input terminal 24 and a preset enable terminal 2.
5, has a countdown clock input terminal 26, a reset terminal 27 and an output terminal 28. When the preset enable terminal 25 becomes "1", the down counter 23 outputs the preset data input terminal 24.
The value of is set in the internal flip-flop. Thereafter, when the countdown clock input terminal 26 becomes "1", the down counter 23 decrements its value. The output 28 of the down counter 23, that is, the output of a flip-flop (not shown) constituting the down counter 23, is outputted to the data bus 12 through an output buffer 29. The output 28 of the down counter 23 is also connected to a zero detection circuit 30. The zero detection circuit 30 is
When all inputs are zero, the output 31 is set to "1". The gate 32 outputs T4 when the control signal PRES33 or POP34, which is the output of the control unit 16, is “1”.
At this timing, the preset enable terminal 26 is set to "1". Here, the control signal PRES33 becomes "1" when the instruction to set the initial value in the down counter 23 is executed, and the control signal POP34 becomes "1".
becomes "1" when returning from interrupt processing.
The gate 35 receives a control output which is an output of the control section 16.
At T4 timing when DEC36 is "1" and the content of down counter 23 is not zero,
The countdown clock input terminal 26 is set to "1". Here, when the instruction stored in the instruction register 10 is capable of repeat processing, the control signal DEC36 becomes "1" at each last machine cycle while the instruction is executed for several machine cycles or once. This is output by programming the PLA 20 so that The repeat flag 13 is composed of a flip-flop 37 and an output gate 38. As shown in FIG. 5, at timing T3 when the control output DEC36 is "1", if the content of the down counter 23 is not zero, the output REP3 of the flip-flop 37 is
9 becomes "1", and if the content of the down counter 23 is zero, REP 39 becomes "0". The output REP39 of the flip-flop 37 is also set or reset depending on the contents of the data bus 12 at timing T4 when the control signal POP34 is "1". The control signal PSH40, which is the output of the control unit 16, becomes “1” during interrupt processing and becomes T4.
The contents of the repeat counter 11 and repeat flag 13 are output to the data bus 12 at the appropriate timing.
These values are then stored in the memory 8 at the address indicated by the stack pointer 14. Thereafter, the control signal RES41 becomes "1" and the repeat counter 11 and repeat flag 13 are reset. In addition, the output signal ZERO of the zero detection circuit 30
18 is connected to the control section 17 as described above.
第6図は、第1図に示したプログラムを実行す
る時のリピートカウンタ11、リピートフラツグ
13の動作の一例を示すタイムチヤートである。
リピートカウンタに初期値を設定する命令が命令
レジスタ10に格納されると、これが制御部17
でデコードされ、制御信号PRES33が出力され
る。この時、第6図に示すようにマシンサイクル
41のT4タイミングでゲート32の出力が
“1”となり、データバス12の内容がダウンカ
ウンタ23にプリセツトされ従つて零検出回路3
0の出力は“0”となる。ここでデータバス12
上のデータは、メモリ8の内容もしくは命令レジ
スタ10に格納されている命令データの一部であ
り今の場合2とする。 FIG. 6 is a time chart showing an example of the operation of the repeat counter 11 and repeat flag 13 when the program shown in FIG. 1 is executed.
When the instruction to set the initial value to the repeat counter is stored in the instruction register 10, this is stored in the control unit 17.
The control signal PRES33 is output. At this time, as shown in FIG. 6, the output of the gate 32 becomes "1" at timing T4 of the machine cycle 41, and the contents of the data bus 12 are preset in the down counter 23, and therefore the zero detection circuit 3
The output of 0 becomes "0". Here data bus 12
The above data is part of the contents of the memory 8 or the instruction data stored in the instruction register 10, and is set to 2 in this case.
マシンサイクル42のT2からマシンサイクル
43のT1の間に、n+1番地とn+2番地のメ
モリの内容ds1及びdd1を用いてds1番地とdd1番地
のメモリの内容が比較されリピート処理の1回目
を終了する。そして終了時のプログラムカウンタ
の値はn+3となる。マシンサイクル43のT1
では本来新しい命令コードが命令レジスタ10に
とり込まれるが零検出回路30の出力が“0”の
時は、とり込まないようにPLA20をプログラ
ムしておくことにより、マシンサイクル44から
は再び比較命令1が実行される。またマシンサイ
クル43では制御信号DEC36が“1”となる
ようにPLA20をプログラムしておく。そこで
マシンサイクル43のT4では、ゲート35の出
力は“1”となりリピートカウンタの値は1とな
る。またマシンサイクル43のT3では零検出回
路30の出力31が“0”であるのでリピートフ
ラツグが“1”となり、リピート処理の1回目が
終了したことをあらわす。 Between T2 of machine cycle 42 and T1 of machine cycle 43, the contents of memory at addresses ds 1 and dd 1 are compared using ds 1 and dd 1 , and the contents of memory at addresses n+ 1 and n+ 2 are compared, and repeat processing 1 is performed. End the episode. The value of the program counter at the end becomes n+3. Machine cycle 43 T1
In this case, a new instruction code is originally taken into the instruction register 10, but when the output of the zero detection circuit 30 is "0", by programming the PLA 20 so as not to take it in, the comparison instruction 1 is read again from machine cycle 44. is executed. Further, in the machine cycle 43, the PLA 20 is programmed so that the control signal DEC36 becomes "1". Therefore, at T4 of the machine cycle 43, the output of the gate 35 becomes "1" and the value of the repeat counter becomes "1". Further, at T3 of machine cycle 43, since the output 31 of the zero detection circuit 30 is "0", the repeat flag becomes "1", indicating that the first repeat process has been completed.
マシンサイクル44のT2からマシンサイクル
45のT1の間に、n+3番地とn+4番地のメ
モリの内容ds24、dd25が出力されてds2番地のメ
モリの内容46とdd2番地のメモリの内容47の
比較が行われてリピート処理の2回目が終了す
る。またリピートカウンタ11、リピートフラツ
グ13及び命令リピートカウンタ10の動作は、
リピート処理の1回目の場合と同様である。但
し、マシンサイクル45のT4でリピートカウン
タ11の内容は零となるので零検出回路30の出
力は“1”となる。また、マシンサイクル45が
終了した時のプログラムカウンタ9の値はn+5
となる。 Between T2 of machine cycle 44 and T1 of machine cycle 45, the contents of memory at addresses n+3 and n+4, ds 2 4 and dd 2 5, are output, and the contents of memory at address ds 2, 46, and the memory at address dd 2 are output. The contents 47 are compared and the second repeat process is completed. Furthermore, the operations of the repeat counter 11, repeat flag 13, and instruction repeat counter 10 are as follows.
This is the same as the case of the first repeat process. However, since the content of the repeat counter 11 becomes zero at T4 of the machine cycle 45, the output of the zero detection circuit 30 becomes "1". Furthermore, the value of the program counter 9 when the machine cycle 45 ends is n+5.
becomes.
マシンサイクル48からマシンサイクル49に
かけてリピート処理の3回目すなわち最終回の処
理が行われる。そしてマシンサイクル49のT3
では零検出回路30の出力は“1”であるのでリ
ピートフラツグ13の出力は“0”となる。この
ように、リピートフラツグ13は、リピート処理
の1回目の終了時から最終回の終了時までの間
“1”となる。マシンサイクル49の終了時のプ
ログラムカウンタの値はn+7となる。 The third or final repeat process is performed from machine cycle 48 to machine cycle 49. And machine cycle 49 T3
Since the output of the zero detection circuit 30 is "1", the output of the repeat flag 13 is "0". In this way, the repeat flag 13 becomes "1" from the end of the first repeat process to the end of the final repeat process. The value of the program counter at the end of machine cycle 49 is n+7.
マシンサイクル50のT2で零検出回路30の
出力は“1”でありプログラムカウンタの値はn
+7であるので新しい命令51が命令レジスタ1
0に格納される。 At T2 of machine cycle 50, the output of the zero detection circuit 30 is "1" and the value of the program counter is n.
+7, so new instruction 51 is in instruction register 1.
Stored at 0.
次に割込み処理について述べる。割込みフラツ
グ16がセツトされると、制御部17はこれをデ
コードし、割込み処理を開始する。割込み時、第
7図に示す手順に従うようにPLA20をプログ
ラムしておく。すなわち、リピートフラツグ13
が“1”ならば、スタツクポインタ14の値を1
つ減じ、この値が示すメモリ8に命令レジスタ1
0の内容を待避する。次にスタツクポインタ14
の値を1つ減じこの値が示すメモリ8にプログラ
ムカウンタ9の内容を待避する。さらにスタツク
ポインタ14の値を1つ減じると共に制御信号
PSH40を“1”にしメモリ8にリピートカウン
タ11、リピートフラツグ13を待避する。そし
て待避後は制御信号RES41を“1”にしリピ
ートカウンタ11、リピートフラツグ13をリセ
ツトする。最後に割込み先の実行アドレスをプロ
グラムカウンタ9に設定することにより割込み先
のプログラムの実行を開始する。またリピートフ
ラツグが“0”ならば、命令レジスタ10の待避
は行わない。そこで、例えば第6図のマシンサイ
クル44のT2で割込みフラツグ16がセツトさ
れるとこれ以降、制御部17は第7図に従つて制
御信号を出力する。そこでメモリ8には、比較命
令1、n+3という値をもつプログラムカウンタ
9、1という値をもつリピートカウンタ11、及
び“1”という状態をもつリピートフラツグ13
が格納される。 Next, interrupt processing will be described. When the interrupt flag 16 is set, the control section 17 decodes it and starts interrupt processing. At the time of an interrupt, the PLA 20 is programmed to follow the procedure shown in FIG. That is, repeat flag 13
is “1”, the value of stack pointer 14 is set to 1.
instruction register 1 in memory 8 indicated by this value.
Save the contents of 0. Next, stack pointer 14
The value of the program counter 9 is decreased by one and the contents of the program counter 9 are saved in the memory 8 indicated by this value. Furthermore, the value of the stack pointer 14 is decremented by one, and the control signal
The PSH 40 is set to "1" and the repeat counter 11 and repeat flag 13 are saved in the memory 8. After the evacuation, the control signal RES41 is set to "1" and the repeat counter 11 and repeat flag 13 are reset. Finally, by setting the execution address of the interrupt destination in the program counter 9, execution of the interrupt destination program is started. If the repeat flag is "0", the instruction register 10 is not saved. Therefore, for example, when the interrupt flag 16 is set at T2 of the machine cycle 44 in FIG. 6, the control section 17 outputs a control signal in accordance with FIG. 7 from then on. Therefore, the memory 8 contains a comparison instruction 1, a program counter 9 with a value of n+3, a repeat counter 11 with a value of 1, and a repeat flag 13 with a state of "1".
is stored.
割込み先のプログラムの最後には割込み復帰命
令を格納しておく。この割込み復帰命令によつ
て、第8図に示す手順に従つて制御信号を出力す
るように、PLA20をプログラムしておく。す
なわち、先ずメモリ8に待避しておいたリピート
カウンタ11、リピートフラツグ13の値を復帰
する。次にスタツクポインタ14の値を1つイン
クレメントしメモリ8に待避しておいたプログラ
ムカウンタ9の値を復帰する。そして最初に復帰
したリピートフラツグ13の値を判断し、その値
が“1”ならば、さらにスタツクポインタ14を
1つインクレメントしメモリ8に待避しておいた
命令コードを命令レジスタ10に復帰することに
より、この命令コードを実行する。復帰したリピ
ートフラツグ13の値が“0”ならば、命令レジ
スタ10への復帰は行わず、復帰したプログラム
カウンタ9によつてさし示されるメモリ8の内容
を命令レジスタ10へ格納する。次に例として第
6図に示すマシンサイクル44のT2タイミング
から割込み処理を開始したプログラムが、割込み
から復帰する場合を考える。第8図に示した手順
に従つて制御部17は制御信号を出力する。そこ
で先ずメモリ8からリピートカウンタ11、リピ
ートフラツグ13の値を復帰する。そこでリピー
トカウンタ11の値は1、リピートフラツグ13
の値は“1”となる。次にメモリ8からプログラ
ムカウンタ9の値が復帰されn+3となる。今、
復帰したリピートフラツグ13が“1”であるの
で、さらにメモリ8から命令コードが復帰され、
命令レジスタ10には比較命令1が格納される。
そしてプログラムカウンタ9の値n+3がさし示
すメモリ8の値ds24のメモリ8がアクセスされ
る。すなわち、割込みにより中断していたリピー
ト処理の2回目を開始する。 An interrupt return instruction is stored at the end of the interrupt destination program. The PLA 20 is programmed to output a control signal according to the procedure shown in FIG. 8 using this interrupt return command. That is, first, the values of the repeat counter 11 and repeat flag 13 saved in the memory 8 are restored. Next, the value of the stack pointer 14 is incremented by one, and the value of the program counter 9 saved in the memory 8 is restored. Then, the value of the repeat flag 13 that is returned first is determined, and if the value is "1", the stack pointer 14 is further incremented by one, and the instruction code saved in the memory 8 is transferred to the instruction register 10. By returning, this instruction code is executed. If the value of the restored repeat flag 13 is "0", the contents of the memory 8 indicated by the restored program counter 9 are stored in the instruction register 10 without returning to the instruction register 10. Next, as an example, consider a case where a program that starts interrupt processing at timing T2 of the machine cycle 44 shown in FIG. 6 returns from the interrupt. The control section 17 outputs a control signal according to the procedure shown in FIG. Therefore, first, the values of the repeat counter 11 and repeat flag 13 are restored from the memory 8. Therefore, the value of repeat counter 11 is 1 and repeat flag 13.
The value of is "1". Next, the value of the program counter 9 is restored from the memory 8 and becomes n+3. now,
Since the restored repeat flag 13 is "1", the instruction code is further restored from the memory 8,
Comparison instruction 1 is stored in instruction register 10 .
Then, the memory 8 whose value ds 2 4 is pointed to by the value n+3 of the program counter 9 is accessed. That is, the second repeat process that was interrupted due to the interrupt is started.
(発明の効果)
以上述べたように、本発明によればひとつのオ
ペレータとそれに続くアドレスのメモリに連続し
て複数個のオペランドを格納するという命令形式
によりストリングス処理を可能とするマイクロコ
ンピユータにおいて、プログラムカウンタが現在
実行中の命令のオペレータを示しておらずオペラ
ンドのみを示している場合においても割込みが可
能となる。すなわち、リピートカウンタが最初に
1だけ減じられた時から、リピートカウンタの内
容が零になるまでの間セツトされるリピートフラ
ツグを参照することにより、繰り返し実行中の第
2の命令の一つの命令実行が終了した時点で割込
を受理した時、プログラムカウンタ、リピートカ
ウンタ、リピートフラツグの内容のメモリへの退
避、リピートカウンタ、リピートフラツグのリセ
ツト以外に、命令レジスタの内容のメモリへの退
避を行なうか否かの判定を行なう。そして、割込
からの復帰処理では、メモリから復帰したリピー
トフラツグを参照することにより、プログラムカ
ウンタ、リピートカウンタのメモリからの復帰以
外に、命令レジスタの内容のメモリからの復帰を
行なうか否かの判断を行なう。これにより前記第
2の命令が、前記プログラムカウンタで示される
オペランドを持つ場合でも、割り込み処理を可能
にするという作用効果を奏する。したがつて、割
込みという急を要するプログラムの起動のために
設けられた機能を何ら損うことなく、ストリング
処理を行うことができる。またこれらの機能を実
現するために、従来のマイクロコンピユータのプ
ログラム制御装置に追加すべきハードウエアの主
たるものは、ダウンカウンタとフリツプフロツプ
であり、顕著なハードウエアの増加はない。(Effects of the Invention) As described above, according to the present invention, in a microcomputer that can perform string processing using an instruction format in which one operator and a plurality of operands are successively stored in the memory at the following address, Interrupts are possible even when the program counter does not indicate the operator of the instruction currently being executed, but only the operand. That is, by referring to the repeat flag that is set from when the repeat counter is first decremented by 1 until the contents of the repeat counter become zero, one of the second instructions being repeatedly executed is When an interrupt is accepted at the end of execution, the contents of the program counter, repeat counter, and repeat flag are saved to memory, and in addition to resetting the repeat counter and repeat flag, the contents of the instruction register are saved to memory. A decision is made as to whether or not to perform the process. In the process of returning from an interrupt, by referring to the repeat flag returned from memory, it is determined whether or not to restore the contents of the instruction register from memory in addition to restoring the program counter and repeat counter from memory. make a judgment. As a result, even when the second instruction has an operand indicated by the program counter, interrupt processing is possible. Therefore, string processing can be performed without impairing the interrupt function, which is provided for starting a program that requires an urgent need. Further, in order to realize these functions, the main hardware that must be added to the conventional microcomputer program control device is a down counter and a flip-flop, and there is no significant increase in hardware.
第1図はリピート処理プログラムの一例を、第
2図は本発明の一実施例を、第3図は第2図中の
制御部の一構成例を、第4図は本発明の一実施例
に用いたタイミングを、第5図は第2図中のリピ
ートカウンタ、リピートフラツグの一構成例を、
第6図は第1図に示したプログラムを第2図に示
した本発明の一実施例で実行した時のタイミング
を、第7図は割込み処理を行うために第3図中の
PLAにプログラムされている制御手順を、第8
図は、割込み復帰処理を行うために第3図中の
PLAにプログラムされている制御手順をそれぞ
れ示す。
8…メモリ、9…プログラムカウンタ、10…
命令レジスタ、11…リピートカウンタ、13…
リピートフラツグ、14…スタツクポインタ、2
3…ダウンカウンタ、30…零検出回路、37…
フリツプフロツプ。
Fig. 1 shows an example of a repeat processing program, Fig. 2 shows an embodiment of the present invention, Fig. 3 shows an example of the configuration of the control section in Fig. 2, and Fig. 4 shows an embodiment of the invention. Figure 5 shows an example of the configuration of the repeat counter and repeat flag in Figure 2.
Fig. 6 shows the timing when the program shown in Fig. 1 is executed in one embodiment of the present invention shown in Fig. 2, and Fig. 7 shows the timing when executing the program shown in Fig.
The control procedure programmed in the PLA is
The diagram shows the steps in Figure 3 to perform interrupt recovery processing.
The control procedures programmed into the PLA are shown below. 8...Memory, 9...Program counter, 10...
Instruction register, 11...Repeat counter, 13...
Repeat flag, 14...Stack pointer, 2
3...down counter, 30...zero detection circuit, 37...
Flip flop.
Claims (1)
し実行対象となる第2の命令を含む命令群、及び
データを記憶するメモリと、前記メモリにアドレ
ス信号を与えるプログラムカウンタと、前記プロ
グラムカウンタが示す前記メモリ内の命令を一時
記憶する命令レジスタと、前記第1の命令により
プリセツトされ、前記第2の命令の実行終了毎に
その値を1ずつ減じるリピートカウンタと、前記
リピートカウンタが最初に1だけ減じられた時セ
ツトされ、前記リピートカウンタの内容が零にな
つた時リセツトされるリピートフラツグと、前記
リピートフラツグがリセツトされている状態で割
込を受理した時は、その時点の前記プログラムカ
ウンタ、前記リピートカウンタ、前記リピートフ
ラツグの内容の前記メモリへの退避と前記リピー
トカウンタ、前記リピートフラツグのリセツトを
行ない、前記リピートフラツグがセツトされてい
る状態で割込を受理した時は、これらの退避に先
立ち、前記命令レジスタの内容の前記メモリへの
退避を行なう手段と、割込からの復帰時、最初に
前記メモリから前記リピートカウンタ、前記リピ
ートフラツグの内容を復帰し、復帰した前記リピ
ートフラツグがリセツト状態なら、前記プログラ
ムカウンタの内容を前記メモリから復帰し、復帰
した前記リピートフラツグがセツト状態なら前記
プログラムカウンタの内容、前記命令レジスタの
内容を前記メモリから復帰する手段とを有するこ
とを特徴とするプログラム制御装置。1. A memory that stores an instruction group including a first instruction that instructs repeated execution and a second instruction that is to be repeatedly executed, and data; a program counter that provides an address signal to the memory; and a program counter that provides an address signal to the memory; an instruction register that temporarily stores instructions in memory; a repeat counter that is preset by the first instruction and whose value is decremented by one each time execution of the second instruction is completed; and the repeat counter whose value is initially decremented by one. A repeat flag is set when the program is executed, and is reset when the contents of the repeat counter become zero, and when an interrupt is received while the repeat flag is reset, the program counter at that time is set. , the contents of the repeat counter and the repeat flag are saved to the memory, the repeat counter and the repeat flag are reset, and when an interrupt is accepted with the repeat flag set, Prior to these saves, means for saving the contents of the instruction register to the memory, and upon returning from an interrupt, first restoring the contents of the repeat counter and the repeat flag from the memory; means for restoring the contents of the program counter from the memory if the repeat flag is in the reset state, and restoring the contents of the program counter and the contents of the instruction register from the memory if the restored repeat flag is in the set state; A program control device comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15670382A JPS5947651A (en) | 1982-09-10 | 1982-09-10 | Program controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15670382A JPS5947651A (en) | 1982-09-10 | 1982-09-10 | Program controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5947651A JPS5947651A (en) | 1984-03-17 |
JPS6242301B2 true JPS6242301B2 (en) | 1987-09-08 |
Family
ID=15633486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15670382A Granted JPS5947651A (en) | 1982-09-10 | 1982-09-10 | Program controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS5947651A (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0618759B2 (en) * | 1987-03-26 | 1994-03-16 | 株式会社斎藤プラスチツク工業所 | Molding method for tableware handle made of synthetic resin |
JPH02187829A (en) * | 1989-01-13 | 1990-07-24 | Mitsubishi Electric Corp | Digital signal processor |
EP0454606A3 (en) * | 1990-04-23 | 1993-08-11 | International Business Machines Corporation | Digital processor with a pipelined architecture permitting an improved concurrent processing of multiple applications |
JP2943464B2 (en) * | 1991-12-09 | 1999-08-30 | 松下電器産業株式会社 | Program control method and program control device |
-
1982
- 1982-09-10 JP JP15670382A patent/JPS5947651A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS5947651A (en) | 1984-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS63301339A (en) | Computer device | |
JPS6239780B2 (en) | ||
JPH0769791B2 (en) | Microprocessor | |
JPH0348537B2 (en) | ||
JP2685245B2 (en) | Programmable controller | |
JP2752076B2 (en) | Programmable controller | |
JPS6242301B2 (en) | ||
JPH11110214A (en) | Command control system and method for the same | |
KR100188374B1 (en) | Central processing unit and an arithmetic operation processing unit | |
JPS6049337B2 (en) | Pipeline control method | |
JPH0377137A (en) | Information processor | |
JP2758624B2 (en) | Speed control method of micro program | |
JPH0222413B2 (en) | ||
JPS60124746A (en) | Data processing unit | |
JPH04370832A (en) | Processor circuit | |
JPH0561660B2 (en) | ||
JP2833259B2 (en) | Program repeat control method and program repeat control device | |
JPS59144955A (en) | Information processor | |
JPH0683639A (en) | Register device | |
JPH0916399A (en) | Computer | |
JPS60126733A (en) | Read resetting system of register | |
JPS6337412B2 (en) | ||
JPH0555895B2 (en) | ||
JPH06282353A (en) | Timer device having time shortening function | |
JPS58222348A (en) | Information processor |