JPH01134625A - Micro-program controller - Google Patents

Micro-program controller

Info

Publication number
JPH01134625A
JPH01134625A JP62294346A JP29434687A JPH01134625A JP H01134625 A JPH01134625 A JP H01134625A JP 62294346 A JP62294346 A JP 62294346A JP 29434687 A JP29434687 A JP 29434687A JP H01134625 A JPH01134625 A JP H01134625A
Authority
JP
Japan
Prior art keywords
address
selector
micro
output
register
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
JP62294346A
Other languages
Japanese (ja)
Inventor
Akihisa Makita
牧田 明久
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP62294346A priority Critical patent/JPH01134625A/en
Publication of JPH01134625A publication Critical patent/JPH01134625A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PURPOSE:To decrease the number of the steps of a micro-program, to eliminate a micro-instruction between sub-routines and to speed up a processing by calling plural sub-routines with one micro-instruction. CONSTITUTION:A micro-program, which is the aggregate of a micro-instruction, is stored into the control memory CS1 of a micro-program controller and an instruction selected by a selector 2 is stored temporarily into a register CSR 3. The output of the CSR 3 is decoded by a control memory control circuit CSC 4 and distributed to respective types of a control part. Either of the output selected by a selector 10 and the output of a hardware generating address HWC or an adder 6 is held by an address register 7. Either of the outputs of a branching control circuit BRC 5 or a selector 8 is held at a register CCA 9, an address control circuit 12 gives the control address carried out next, the output of the circuit 12 is temporarily held by a coincidence address register 13 and the coincidence of the contents of the register 13 and the selector 8 is obtained by a coincidence circuit 14.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、1つのマイクロ命令で複数のサブルーチンを
呼出すことを可能とするマイクロプログラム制御装置に
関する。
DETAILED DESCRIPTION OF THE INVENTION (Field of Industrial Application) The present invention relates to a microprogram control device that allows a plurality of subroutines to be called with one microinstruction.

(従来の技術) 従来、この種のマイクロプログラム制御装置は、1つの
マイクロ命令では1つのサブルーチンしか呼出すことが
できなかった。
(Prior Art) Conventionally, this type of microprogram control device has been able to call only one subroutine with one microinstruction.

(発明が解決しようとする問題点) 上述した従来のマイクロプログラム制御装置は、1つの
マイクロ命令で1つのサブルーチンしか呼出すことがで
きないので、複数のサブルーチンを順次呼出して実行す
る場合に、呼出すサブルーチンの数と同じステップ数の
マイクロ命令が必要である。このように、従来のマイク
ロプログラム制御装置には、1つのマイクロ命令で複数
のサブルーチンを呼出すことはできないという問題点が
あった。
(Problems to be Solved by the Invention) The conventional microprogram control device described above can only call one subroutine with one microinstruction, so when multiple subroutines are sequentially called and executed, The same number of steps as the number of microinstructions are required. As described above, the conventional microprogram control device has a problem in that it is not possible to call a plurality of subroutines with one microinstruction.

(問題点を解決するための手段) 上述した従来の問題点を解決するために本発明が提供す
るマイクロプログラム制御装置は、1つのマイクロ命令
でn個のサブルーチンを続けて呼出す指示をするマイク
ロ命令を記憶する手段と、前記マイクロ命令が実行され
た場合に、このマイクロ命令のアドレスの次のアドレス
とn番目のサブルーチンから2番目のサブルーチンまで
の各サブルーチンの先頭アドレスとをアドレススタック
に順次格納する格納手段と、この格納手段による格納を
終えた後に1番目のサブルーチンの先頭アドレスレジス
タプする手段と、前記1番目のサブルーチンの実行を終
了した後に前記アドレススタックに格納されている2番
目からn番目までのサブルーチンの先頭アドレスを順次
取出して実行し、前記n番目のサブルーチンの実行を終
了した後に前記アドレススタックに格納されている前記
マイクロ命令のアドレスの次のアドレスレジスタプする
手段とを有することを特徴とする。
(Means for Solving the Problems) In order to solve the above-mentioned conventional problems, the microprogram control device provided by the present invention uses a microinstruction that instructs to call n subroutines in succession using one microinstruction. means for storing, and when the microinstruction is executed, an address next to the address of the microinstruction and the start address of each subroutine from the nth subroutine to the second subroutine are sequentially stored in an address stack. storage means; means for registering the start address of the first subroutine after the storage by the storage means; and the second to nth addresses stored in the address stack after the execution of the first subroutine is finished; and means for sequentially fetching and executing the first addresses of the subroutines up to and including a means for registering the next address of the address of the microinstruction stored in the address stack after finishing the execution of the n-th subroutine. Features.

(実施例) 以下、本発明の一実施例について図面を参照して説明す
る。
(Example) Hereinafter, an example of the present invention will be described with reference to the drawings.

第1図は本発明の一実施例のマイクロプログラム制御装
置のブロック回路図である。
FIG. 1 is a block circuit diagram of a microprogram control device according to an embodiment of the present invention.

図中、1はC3(制御記憶)、2はセレクタ、3はC3
R14は制御記憶制御回路(C3C)、5は分岐制御回
路(BRC)、6は加算器、7はCIA、8はセレクタ
、9はOCA、10はセレクタ、11はアドレススタッ
ク(CAX)、12はアドレス制御回路(C3AC)、
13は一致アドレスレジスタ(CEA)、14は一致回
路をそれぞれ示す。
In the figure, 1 is C3 (control memory), 2 is selector, and 3 is C3
R14 is a control storage control circuit (C3C), 5 is a branch control circuit (BRC), 6 is an adder, 7 is CIA, 8 is a selector, 9 is OCA, 10 is a selector, 11 is an address stack (CAX), 12 is Address control circuit (C3AC),
Reference numeral 13 indicates a coincidence address register (CEA), and 14 indicates a coincidence circuit.

C81にはマイクロ命令の集合体であるマイクロプログ
ラムが記憶されている。C3R3は、セレクタ2により
選択されてC8Iから出力されたマイクロ命令を一時的
に保持するレジスタである。
A microprogram, which is a collection of microinstructions, is stored in the C81. C3R3 is a register that temporarily holds the microinstruction selected by selector 2 and output from C8I.

C3C4は、C3R3の出力をデコードし、各制御部へ
制御信号を分配する。CIA7は、セレクタ10の出力
、ハードウェア生成アドレス(HW Cにより与えられ
る)または加算器6の出力のうちのいずれかを保持する
アドレスレジスタであり、OCA9は、セレクタ8の出
力またはBCR5の出力のうちのいずれかを保持するア
ドレスレジスタである。C3AC12は、次に実行する
マイクロ命令のCSアドレスを与える制御をする。CE
A13はセレクタ10の出力を一時保持し1.−数回路
14はこのCEA13の内容とセレクタ8の内容との一
致を取る。
C3C4 decodes the output of C3R3 and distributes control signals to each control section. CIA7 is an address register that holds either the output of selector 10, a hardware generated address (given by HW C), or the output of adder 6, and OCA9 holds the output of selector 8 or the output of BCR5. This is an address register that holds one of these. The C3AC12 controls giving the CS address of the next microinstruction to be executed. C.E.
A13 temporarily holds the output of the selector 10 and performs 1. - number circuit 14 matches the contents of CEA 13 with the contents of selector 8.

第2図は本実施例のマイクロプログラム制御装置を適用
した情報処理システムの構成図である。
FIG. 2 is a configuration diagram of an information processing system to which the microprogram control device of this embodiment is applied.

この情報処理システムは、主記憶装fi(MEM)20
と、2台の中央処理装置(CPU)22と、2台のチャ
ネル制御装置(IOP)23と、これらを接続するバス
21とからなる0本実施例のマイクロプログラム制御装
置は、CPU22の中に含まれている。
This information processing system includes a main memory device fi (MEM) 20
The microprogram control device of this embodiment includes two central processing units (CPUs) 22, two channel control devices (IOPs) 23, and a bus 21 that connects them. include.

第3図は第2図のCPU22の構成を示すブロック図で
ある。
FIG. 3 is a block diagram showing the configuration of the CPU 22 in FIG. 2.

CPU22は、主記憶アクセス制御部(MBU)30と
演算制御部<EXU)31と先取り制御部(PFU)3
2とマイクロプログラム制御部(C3U)33とからな
り、本実施例のマイクロプログラム制御装置はC3U3
3に該当するものである。
The CPU 22 includes a main memory access control unit (MBU) 30, an arithmetic control unit <EXU) 31, and a prefetch control unit (PFU) 3.
2 and a microprogram control unit (C3U) 33, and the microprogram control device of this embodiment includes a C3U3
This falls under 3.

MBU30は、高速処理を実現する目的で重要なプログ
ラムだけを記憶するキャッシュメモリを有しており、こ
のキャッシュメモリ及びMEM20へのアクセスを制御
する。EXU31は、演算回路及びソフトビジプルレジ
スタを有し、演算制御を行う、PFU32は、命令及び
オペランドの先取り制御を行う。
The MBU 30 has a cache memory that stores only important programs for the purpose of realizing high-speed processing, and controls access to this cache memory and the MEM 20. The EXU 31 has an arithmetic circuit and a soft visible register, and performs arithmetic control. The PFU 32 performs prefetch control of instructions and operands.

次に、本実施例の動作について説明する。Next, the operation of this embodiment will be explained.

CPU22は、システムの初期設定が完了すると、最初
・のプログラムを実行する。まず、指定された命令カウ
ンタによって、MEM20からバス21を経由してこの
プログラムの第1番目の機械命令を取ってくる。これは
、PFU32によって起動されてM B U 30に対
してアクセスする処理である。MBU30では、キャツ
シュヒツトかどうかをチェックし、ミスヒツトのときに
はMEM20にアクセスしてブロック単位でデータをキ
ャッシュに持ってきて蓄えるとともにPFU32へ送出
する。PFU32は、MBU30から送出された第1番
目の機械命令をデコードし、このII械命令を実行する
ためのマイクロ命令のCSアドレスを生成し、C3tJ
33へ送出する。C3U33へ送出されたCSアドレス
は、セレクタ10を経由してCIA7にセットされる。
When the initial setting of the system is completed, the CPU 22 executes the first program. First, the first machine instruction of this program is fetched from the MEM 20 via the bus 21 according to the specified instruction counter. This is a process activated by the PFU 32 to access the MBU 30. The MBU 30 checks whether or not there is a cache hit, and if there is a miss, accesses the MEM 20 to bring the data block by block to the cache, store it there, and send it to the PFU 32. The PFU 32 decodes the first machine instruction sent from the MBU 30, generates the CS address of the microinstruction for executing this II machine instruction, and
Send to 33. The CS address sent to the C3U33 is set in the CIA 7 via the selector 10.

CIA7の出力は、C3AC12の制御により、セレク
タ8で選択されてC8Iに与えられる。
The output of CIA7 is selected by selector 8 and given to C8I under the control of C3AC12.

C3Iの出力は、セレクタ2を経由してC8R3にセッ
トされる。C3R3の出力は、C5C4でデコードされ
て、当該a械命令のQ FJJのマイクロプログラムス
テップが実行されることとなる。
The output of C3I is set to C8R3 via selector 2. The output of C3R3 is decoded by C5C4, and the QFJJ microprogram step of the a machine instruction is executed.

第4図(a)は従来のマイクロプログラム制御装置にお
けるマイクロプログラムのシーケンスの例を示すフロー
チャート、同図(b)は本実施例のマイクロプログラム
制御装置におけるマイクロプログラムのシーケンスの例
を示すフローチャートである。第5図(a)及び(b)
はそれぞれ第4図(a)及び(b)の動作を示すタイム
チャートである。
FIG. 4(a) is a flowchart showing an example of a microprogram sequence in a conventional microprogram control device, and FIG. 4(b) is a flowchart showing an example of a microprogram sequence in the microprogram control device of this embodiment. . Figure 5 (a) and (b)
are time charts showing the operations of FIGS. 4(a) and 4(b), respectively.

例えば第4図(a)において、従来のマイクロプログラ
ム制御装置は、ある機械命令を実行するためにマイクロ
プログラムAからサブルーチンB及びCを続けて呼出す
場合に、マイクロ命令^0゜A1を実行してからBを呼
出すマイクロ命令であるA2を実行し、Bを実行した後
にCを呼出すマイクロ命令であるA3を実行する必要が
ある。この場合のタイムチャートは、第5図(a)に示
すように、へ〇、へ1.八2.B、^3.C1^4.A
5となり、以上の流れを終えて当該機械命令が終了する
For example, in FIG. 4(a), when subroutines B and C are successively called from microprogram A to execute a certain machine instruction, the conventional microprogram control device executes microinstruction ^0゜A1. It is necessary to execute A2, which is a microinstruction that calls B from , and after executing B, execute A3, which is a microinstruction that calls C. The time chart in this case is as shown in FIG. 5(a). 82. B, ^3. C1^4. A
5, and the machine command ends after completing the above flow.

本実施例のマイクログログラム制御装置は、同様の場合
に、第4図(b)に示すように、八2を実行するだけで
サブルーチンB及びCを呼出すことができる。この場合
のタイムチャートは、第5図(b)に示すように、AO
,AI、八2 (A2−1. A2−2> 。
In the same case, the microprogram control device of this embodiment can call subroutines B and C by simply executing step 82, as shown in FIG. 4(b). The time chart in this case is as shown in FIG. 5(b).
, AI, 82 (A2-1. A2-2>.

B、C,八4.A5となり、八3を実行する必要がない
B, C, 84. It becomes A5, and there is no need to execute 83.

これは、CAXllにA4のアドレス及びCの先頭アド
レスが格納されてからサブルーチンBの先頭アドレスへ
ジャンプすることにより実現される。
This is achieved by storing the address of A4 and the start address of C in CAXll and then jumping to the start address of subroutine B.

つまり、A1の実行時に、FPtJ32によりA2の先
取り制御が行われ、A2がB及びCを呼出すマイクロ命
令であるので、戻りアドレスであるA4のアドレス及び
CのアドレスをCA X 11に格納する制御が行われ
る。この格納の指示は、C3AC12により行われ、A
4のアドレスは、A2のアドレスに加算器6で1を加算
して得、セレクタ10.CIA7.セレクタ8.加算器
6.セレクタ8.セレクタ10の順を経てCAXllに
格納される。また、セレクタ8から加算器6へ出力され
るA2のアドレスは同時にC81へも出力され、C3I
から読出されてセレクタ2を経てC3R3に保持された
八2の内容からB及びCの先頭アドレスを得る。Bの先
頭アドレスはARGIによりセレクタ10へ与えられ、
Cの先頭アドレスはARGOによりセレクタ8へ与えら
れる。
In other words, when A1 is executed, FPtJ32 performs prefetch control of A2, and since A2 is a microinstruction that calls B and C, control to store the return addresses of A4 and C in CA It will be done. This storage instruction is performed by C3AC12, and A
The address of A2 is obtained by adding 1 to the address of A2 by the adder 6, and the address of the selector 10. CIA7. Selector 8. Adder 6. Selector 8. The data is stored in CAXll through the selector 10. Further, the address of A2 output from the selector 8 to the adder 6 is also output to C81 at the same time, and the address of A2 is output from the selector 8 to the adder 6.
The start addresses of B and C are obtained from the contents of 82 read from 82, passed through selector 2, and held in C3R3. The start address of B is given to the selector 10 by ARGI,
The start address of C is given to the selector 8 by ARGO.

BRC5は、C3C4からの指示を受けて、分岐がない
ときは次のCSアドレス(セレクタ8の出力)の下位2
ビツトを、2 w a y分岐のときは次のCSアドレ
スの下位2ビツト及び分岐判定結果を示す1ビツトを、
4way分岐のときは分岐判定結果を示す2ビツトをそ
れぞれセレクタ2ヘセレクト信号として出力し、分岐の
制御を行う。
BRC5 receives the instruction from C3C4, and if there is no branch, the lower 2 of the next CS address (output of selector 8)
In the case of a 2 w a y branch, the lower 2 bits of the next CS address and 1 bit indicating the branch decision result are
In the case of a 4-way branch, two bits indicating the branch determination result are output to the selector 2 as a select signal to control the branch.

CB A 13は、サブルーチンでない他のルーチンを
呼出す場合の一致アドレス保持レジスタとして使用され
る。つまり、他のルーチンを借用する前に、CEA13
に一致アドレスをセットするマイクロ命令を実行し、こ
れにより借用ルーチンの先頭アドレス(ARGIにより
与えられる)がセレクタ10で選択されて、CE A 
13にセットされる。その後で戻りアドレスをCA X
 11にセットしてから借用ルーチンヘジャンプする。
CB A 13 is used as a matching address holding register when calling another routine that is not a subroutine. That is, before borrowing other routines, CEA13
A microinstruction is executed to set a matching address to CE A, which causes the start address of the borrow routine (given by ARGI) to be selected by selector 10, and CE A
It is set to 13. Then CA X the return address.
Set it to 11 and then jump to the borrow routine.

CEA13に保持したアドレスと同じアドレスのマイク
ロ命令が借用ルーチンで読出され、−数回路14で一致
が検出されると、CAXllにスタックされている戻り
アドレスがセレクタ8で選択されて元のルーチンが続け
て実行される。
When a microinstruction with the same address as the address held in CEA 13 is read by the borrow routine and a match is detected by the minus number circuit 14, the return address stacked in CAXll is selected by the selector 8 and the original routine continues. is executed.

(発明の効果) 以上に説明したように本発明は、1つのマイク口命令で
複数のサブルーチンを呼出すことにより、マイクロプロ
グラムのステップ数を削減できるという効果がある。
(Effects of the Invention) As described above, the present invention has the advantage that the number of steps in a microprogram can be reduced by calling a plurality of subroutines with one microphone instruction.

また、サブルーチンとサブルーチンとの間にマイクロ命
令が不要となるので、動的ステップ数が減り、処理スピ
ードの高速化を図ることができる。
Further, since microinstructions are not required between subroutines, the number of dynamic steps is reduced, and processing speed can be increased.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の一実緒例のマイクロプログラム制御装
置のブロック回路図、第2図は本実施例のマイクロプロ
グラム制御装置を適用した情報処理システムの構成図、
第3図は第2図のCPUの構成を示すブロック図、第4
図(a)は従来のマイクロプログラム制御装置における
マイクロプログラムのシーケンスの例を示すフローチャ
ート、第4図(b)は本実施ρ1のマイクロプログラム
制御装置におけるマイクロプログラムのシーケンスの例
を示すフローチャート、第5図(a)は第4図(a)の
動作を示すタイムチャート、第5図(b)は第4図(b
)の動作を示すタイムチャートである。 1・・・制御記憶(C8)、2・・・セレクタ、3・・
・C3R14・・・制御記憶制御回路(C3C)、5・
・・分岐制御回路(BRC)、6・・・加算器、7・・
・CIA、8・・・セレクタ、9・・・CCA、10・
・・セレクタ、11・・・アドレススタック(CAX)
、12・・・アドレス制御回路(C3AC)、13・・
・一致アドレスレジスタ(CEA)、14・・・一致回
路、20・・・主記憶装置(MEM)、22・・・中央
処理装置(CPU)、23・・・チャネル制御装置(I
OP)、21・・・バス、30・・・主記憶アクセス制
御部(MBU)、31・・・演算制御部(EXU)、3
2・・・先取り制御部(PFU)、33・・・マイクロ
プログラム制御部(C3U)。
FIG. 1 is a block circuit diagram of a microprogram control device according to an embodiment of the present invention, and FIG. 2 is a configuration diagram of an information processing system to which the microprogram control device of this embodiment is applied.
Figure 3 is a block diagram showing the configuration of the CPU in Figure 2;
FIG. 4(a) is a flowchart showing an example of a microprogram sequence in a conventional microprogram control device, FIG. Figure (a) is a time chart showing the operation of Figure 4 (a), Figure 5 (b) is a time chart showing the operation of Figure 4 (b).
) is a time chart showing the operation. 1... Control memory (C8), 2... Selector, 3...
・C3R14...Control memory control circuit (C3C), 5.
... Branch control circuit (BRC), 6... Adder, 7...
・CIA, 8...Selector, 9...CCA, 10・
...Selector, 11...Address stack (CAX)
, 12...address control circuit (C3AC), 13...
- Coincidence address register (CEA), 14... Coincidence circuit, 20... Main memory (MEM), 22... Central processing unit (CPU), 23... Channel control device (I
OP), 21... Bus, 30... Main memory access control unit (MBU), 31... Arithmetic control unit (EXU), 3
2... Prefetch control unit (PFU), 33... Microprogram control unit (C3U).

Claims (1)

【特許請求の範囲】[Claims] 1つのマイクロ命令でn個のサブルーチンを続けて呼出
す指示をするマイクロ命令を記憶する手段と、前記マイ
クロ命令が実行された場合に、このマイクロ命令のアド
レスの次のアドレスとn番目のサブルーチンから2番目
のサブルーチンまでの各サブルーチンの先頭アドレスと
をアドレススタックに順次格納する格納手段と、この格
納手段による格納を終えた後に1番目のサブルーチンの
先頭アドレスへジャンプする手段と、前記1番目のサブ
ルーチンの実行を終了した後に前記アドレススタックに
格納されている2番目からn番目までのサブルーチンの
先頭アドレスを順次取出して実行し、前記n番目のサブ
ルーチンの実行を終了した後に前記アドレススタックに
格納されている前記マイクロ命令のアドレスの次のアド
レスへジャンプする手段とを有することを特徴とするマ
イクロプログラム制御装置。
means for storing a microinstruction for instructing to call n subroutines in succession with one microinstruction; storage means for sequentially storing the start address of each subroutine up to the 1st subroutine in an address stack; After finishing the execution, the start addresses of the second to nth subroutines stored in the address stack are sequentially retrieved and executed, and after finishing the execution of the nth subroutine, the first addresses of the second to nth subroutines stored in the address stack are stored in the address stack. A microprogram control device comprising means for jumping to an address next to the address of the microinstruction.
JP62294346A 1987-11-20 1987-11-20 Micro-program controller Pending JPH01134625A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62294346A JPH01134625A (en) 1987-11-20 1987-11-20 Micro-program controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62294346A JPH01134625A (en) 1987-11-20 1987-11-20 Micro-program controller

Publications (1)

Publication Number Publication Date
JPH01134625A true JPH01134625A (en) 1989-05-26

Family

ID=17806519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62294346A Pending JPH01134625A (en) 1987-11-20 1987-11-20 Micro-program controller

Country Status (1)

Country Link
JP (1) JPH01134625A (en)

Similar Documents

Publication Publication Date Title
CA1223371A (en) System for by-pass control in pipeline operation of computer
CA1256216A (en) Program switching with vector registers
JPH01142831A (en) Data processing system
JPH0242569A (en) Context switching method and apparatus used for vector processing system
JPS61286931A (en) Information processor
JPS58151655A (en) Information processing device
US4287561A (en) Address formulation interlock mechanism
JPH0348536B2 (en)
JPH0682320B2 (en) Data processing device
JP2884831B2 (en) Processing equipment
US4631672A (en) Arithmetic control apparatus for a pipeline processing system
JPH01134625A (en) Micro-program controller
JPS63142431A (en) Pipeline control system
KR930003399B1 (en) Microprogrammed systems software instruction undo
JPH01134626A (en) Microprogram control device
JPH0377137A (en) Information processor
JPS60241136A (en) Data processor
JP2808558B2 (en) Information processing device
JPS607295B2 (en) data processing equipment
JPS58221447A (en) Data processor
JPS58214930A (en) Data processor
JP2583614B2 (en) Vector arithmetic unit
JPS6238946A (en) Arithmetic processor
JPS63191232A (en) High speed entry for emulation
JPH031234A (en) Information processor