JPS6158854B2 - - Google Patents
Info
- Publication number
- JPS6158854B2 JPS6158854B2 JP8334379A JP8334379A JPS6158854B2 JP S6158854 B2 JPS6158854 B2 JP S6158854B2 JP 8334379 A JP8334379 A JP 8334379A JP 8334379 A JP8334379 A JP 8334379A JP S6158854 B2 JPS6158854 B2 JP S6158854B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- microinstruction
- branch
- register
- arithmetic
- 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 6
- 239000002699 waste material Substances 0.000 description 5
- 230000010365 information processing Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
Description
【発明の詳細な説明】
本発明は、情報処理装置におけるマイクロプロ
グラム制御装置に関する。DETAILED DESCRIPTION OF THE INVENTION The present invention relates to a microprogram control device in an information processing device.
第1図は従来のマイクロプログラム制御形の情
報処理装置の一例を示す回路ブロツク図である。 FIG. 1 is a circuit block diagram showing an example of a conventional microprogram-controlled information processing device.
第1図において、参照数字1はマイクロ命令ア
ドレスレジスタ、同2は一連のマイクロプログラ
ムを記憶する制御記憶、同3はマイクロ命令を解
読するデコーダ、同4は各種演算処理や制御を行
なう演算制御部、同5は入力値に値“1”を加算
する加算器、および同6は切替回路である。 In FIG. 1, reference numeral 1 is a microinstruction address register, 2 is a control memory that stores a series of microprograms, 3 is a decoder that decodes microinstructions, and 4 is an arithmetic control unit that performs various arithmetic processing and control. , 5 is an adder that adds the value "1" to the input value, and 6 is a switching circuit.
マイクロ命令アドレスレジスタ1の出力aによ
り指定されるアドレスに格納されているマイクロ
命令が、制御記憶2から読み出され、デコーダ3
により解読された制御信号により演算制御部4内
での各種演算動作の制御が行なわれる。この演算
動作においては本情報処理装置と外部装置とのイ
ンタフエースhを介してデータ等が授受される。 The microinstruction stored at the address specified by the output a of the microinstruction address register 1 is read out from the control memory 2 and sent to the decoder 3.
Various arithmetic operations within the arithmetic control section 4 are controlled by the control signals decoded by the arithmetic control section 4. In this arithmetic operation, data and the like are exchanged between the information processing device and the external device via the interface h.
さて、この従来装置はマイクロ命令サイクルに
おいて、実行されるマイクロ命令が分岐動作を指
定していない場合には、すぐ次のサイクルで実行
すべきマイクロ命令は通常、現サイクルのマイク
ロ命令のアドレスに“1”だけ加算したアドレス
に格納されている。したがつて、次のサイクルで
実行すべきマイクロ命令を読み出すためのものア
ドレスとしてマイクロ命令アドレスレジスタ1の
出力aを加算部5により“+1”した値を用いる
必要がある。すなわち、分岐指定でないので演算
制御部4から与えられる分岐成立信号dが論理
“0”となり、切替回路6の出力gには上記加算
器5の出力fが選択されて“現マイクロ命令アド
レスの値+1”が次サイクル開始時にマイクロ命
令アドレスレジスタ1に格納されることになる。 Now, in this conventional device, in a microinstruction cycle, if the microinstruction to be executed does not specify a branch operation, the microinstruction to be executed in the immediately next cycle is usually placed at the address of the microinstruction in the current cycle. It is stored at the address added by 1". Therefore, it is necessary to use the value obtained by adding "1" to the output a of the microinstruction address register 1 by the adder 5 as the address for reading the microinstruction to be executed in the next cycle. That is, since it is not a branch specification, the branch establishment signal d given from the arithmetic control unit 4 becomes logic "0", and the output f of the adder 5 is selected as the output g of the switching circuit 6, and the "value of the current microinstruction address" is output. +1” will be stored in microinstruction address register 1 at the start of the next cycle.
また、あるマイクロ命令サイクルにおいて実行
されるマイクロ命令が条件分岐動作を指定するも
のである場合には、ある一定の分岐条件が成立す
るか不成立かによりすぐ次のサイクルで実行され
るマイクロ命令のアドレスが異なつてくる。分岐
条件不成立ならば、分岐成立信号dが論理“0”
となり結局、前記分岐指定のないマイクロ命令と
同一動作となる。もし分岐条件が成立したなら
ば、分岐成立信号dが論理“1”となり演算制御
部4から別に与えられる分岐先アドレスeが切替
回路6により選択され次のサイクルで実行される
べきマイクロ命令のアドレスとしてマイクロ命令
アドレスレジスタ1に格納される。 In addition, if the microinstruction executed in a certain microinstruction cycle specifies a conditional branch operation, the address of the microinstruction to be executed in the immediately next cycle depends on whether a certain branch condition is met or not. will be different. If the branch condition is not satisfied, the branch established signal d is logic “0”
As a result, the operation is the same as that of the microinstruction without branch specification. If the branch condition is satisfied, the branch completion signal d becomes logic "1" and the branch destination address e given separately from the arithmetic control unit 4 is selected by the switching circuit 6 and is the address of the microinstruction to be executed in the next cycle. It is stored in the microinstruction address register 1 as a microinstruction address register.
上述のように従来装置では、たとえば制御記憶
2のN番地に格納されている条件分岐指定のマイ
クロ命令が実行された場合には、分岐条件成立の
ときはある任意の分岐アドレスM番地のマイクロ
命令、不成立のときはM+1番地のマイクロ命令
がそれぞれ次のマイクロ命令サイクルで実行され
る。したがつて条件分岐用マイクロ命令および条
件不成立時に次サイクルで実行されるべきマイク
ロ命令は、制御記憶2上のN番地およびN+1番
地という連続したアドレス位置に格納されている
ことが必要である。 As described above, in the conventional device, when a microinstruction specifying a conditional branch stored at address N in control memory 2 is executed, the microinstruction at an arbitrary branch address M is executed when the branch condition is met. , if not established, the microinstruction at address M+1 is executed in the next microinstruction cycle. Therefore, the microinstructions for conditional branching and the microinstructions to be executed in the next cycle when the condition is not satisfied must be stored in consecutive address locations of address N and address N+1 on the control memory 2.
例えばいま、マイクロ命令A,B,CおよびD
があつて、マイクロ命令Aは条件分岐動作を行な
い、分岐条件成立ならマイクロ命令Bを、分岐条
件不成立ならマイクロ命令Cを、次サイクルで実
行する。マイクロ命令AがN番地ならマイクロ命
令CはN+1番地に格納される。マイクロ命令B
は任意のM番地に格納される。このときX番地に
マイクロ命令Dがあつて、これも条件分岐動作を
行ない、やはりマイクロ命令Aと同じく分岐条件
成立ならマイクロ命令B分岐条件不成立ならマイ
クロ命令Cを実行するということが要求されてい
ると、マイクロ命令CはX+1番地に格納されな
ければならない。これは前記マイクロ命令Aに対
するマイクロ命令Cのアドレスの条件と矛盾す
る。この矛盾を解決するためには、マイクロ命令
Cと同内容のマイクロ命令C′をX+1番地に別
に準備することが必要となる。もしもさらにマイ
クロ命令C自身もまた条件分岐命令であればN+
2番地のマイクロ命令Eと同内容のマイクロ命令
E′をX+2番地に準備する。というように、条
件分岐動作の制限に起因するマイクロ命令の物理
的ステツプ数の増加を招く。このようなステツプ
数の増加を避けようとすれば、N+1番地のマイ
クロ命令を共通に使うために、X+1番地にマイ
クロ命令C′ではなく、例えば、N+1番地のマ
イクロ命令Cに無条件分岐するためのマイクロ命
令C″を準備するというような処置が必要になつ
てくる。このような場合のマイクロ命令C″は分
岐動作だけのために存在し、実際にはまつたく無
駄な1マイクロ命令サイクルを浪費して装置の性
能を低下させることになる。 For example, now microinstructions A, B, C and D
, microinstruction A performs a conditional branch operation, and if the branching condition is met, microinstruction B is executed, and if the branching condition is not met, microinstruction C is executed in the next cycle. If microinstruction A is at address N, microinstruction C is stored at address N+1. Microinstruction B
is stored at an arbitrary M address. At this time, there is a microinstruction D at address X, which also performs a conditional branch operation, and, like microinstruction A, is required to execute microinstruction B if the branching condition is met, and microinstruction C if the branching condition is not met. , microinstruction C must be stored at address X+1. This contradicts the address condition of microinstruction C with respect to microinstruction A. In order to resolve this contradiction, it is necessary to separately prepare a microinstruction C' having the same content as microinstruction C at address X+1. If microinstruction C itself is also a conditional branch instruction, then N+
Microinstruction with the same content as microinstruction E at address 2
Prepare E' at address X+2. As such, the number of physical steps of microinstructions increases due to limitations on conditional branch operations. In order to avoid such an increase in the number of steps, in order to commonly use the microinstruction at address N+1, it is necessary to unconditionally branch to microinstruction C at address N+1 instead of microinstruction C' at address X+1. In this case, microinstruction C'' exists only for the branch operation, and in reality it wastes one wasted microinstruction cycle. This results in waste and degrades the performance of the device.
また、例えば、制御記憶内に孤立した1個の空
き番地が存在しているとき、ここに条件分岐マイ
クロ命令をあらたに挿入しようとしてもそれは不
可能であり、他の少くとも2個以上の連続した空
き番地をさがさねばならない。これは制御記憶の
有効利用を妨げる原因にもなる。 Also, for example, when there is one isolated free address in control memory, it is impossible to insert a new conditional branch microinstruction there; I had to find a vacant address. This also becomes a cause of hindering the effective use of control memory.
上記のような問題に対処するために、たとえば
分岐条件不成立時に場合によつてはあらかじめ別
に設けたレジスタ(いまこれを定数レジスタと呼
ぶことにする)に格納した値を加算器5の出力f
のかわりに選択するような装置も従来考えられて
いる。これによつて、条件分岐マイクロ命令の格
納されているアドレスとは無関係に二方向への分
岐ができる。ただしこのような装置では前記定数
レジスタの内容が同じである限りは、どの番地に
ある条件分岐マイクロ命令も格納条件不成立時の
行先は定数レジスタで示されたところの同一ステ
ツプとならざるを得ない。 In order to deal with the above-mentioned problems, for example, when the branch condition is not met, in some cases, the value stored in a separate register (hereinafter referred to as a constant register) is set to the output f of the adder 5.
Devices that select instead of this have also been considered. This allows branching in two directions regardless of the address where the conditional branch microinstruction is stored. However, in such a device, as long as the contents of the constant register are the same, the destination of the conditional branch microinstruction at any address when the storage condition is not satisfied must be the same step as indicated by the constant register. .
これとは別に、格納条件不成立時に条件分岐マ
イクロ命令自身のアドレスから任意の相対アドレ
スへの分岐を可能とするための方法としてマイク
ロ命令アドレスレジスタ1と前記定数レジスタの
内容を加算した結果を場合によつては選択すると
いう装置も考えられる。 Separately, as a method to enable branching from the address of the conditional branch microinstruction itself to an arbitrary relative address when the storage condition is not met, the result of adding the contents of the microinstruction address register 1 and the constant register is In the end, a device for selection may also be considered.
たとえば定数レジスタに値“t”を設定して、
N番地、M番地という異なるアドレスの条件分岐
マイクロ命令において分岐条件不成立時にN+t
番地、M+t番地というそれぞれ別のステツプへ
の分岐を可能とするわけである。 For example, by setting the value "t" in the constant register,
N+t when the branch condition is not met in a conditional branch microinstruction with different addresses, N address and M address.
This makes it possible to branch to different steps such as addresses and addresses M+t.
しかしこの方法によると、逆に複数の異なる番
地から一つの定まつた番地への分岐を行ないたい
場合には定数レジスタに個々の条件分岐マイクロ
命令のアドレスに対応した固有の値を設定する必
要がでてくる。 However, according to this method, if you want to branch from multiple different addresses to one fixed address, you need to set a unique value in the constant register that corresponds to the address of each conditional branch microinstruction. It comes out.
条件分岐動作で分岐条件不成立時に“+1”し
た番地以外に分岐可能とするような前記二つのよ
うな方法においても、その分岐条件不成立時のア
ドレス生成に際して、単なる与えられた定数の
み、あるいは定数と現マイクロ命令アドレスとの
単なる加算値を一律に使用するにとどまつている
ために分岐動作が制限されてしまい物理的ステツ
プ数や実行時間上の無駄の原因となつている。 Even in the above two methods that allow a conditional branch operation to branch to an address other than the address incremented by "+1" when the branch condition is not met, when the address is generated when the branch condition is not met, only a given constant or a constant is used. Since a simple addition value to the current microinstruction address is uniformly used, branching operations are restricted, causing waste in terms of the number of physical steps and execution time.
本発明の目的はマイクロプログラミング上の制
限に起因する性能低下や物理的ステツプ数の増加
を抑え条件分岐動作の機能を充分発揮できるマイ
クロプログラム制御装置を提供することにある。 SUMMARY OF THE INVENTION An object of the present invention is to provide a microprogram control device that can fully utilize the function of conditional branching operations while suppressing performance deterioration and increase in the number of physical steps due to microprogramming limitations.
前記目的を達成するために本発明によるマイク
ロプログラム制御装置は、マイクロ命令のアドレ
ス情報を格納するマイクロ命令アドレスレジスタ
と、複数のマイクロ命令を記憶するマイクロ命令
記憶手段と、前記アドレス情報により指定される
アドレスから読出される前記マイクロ命令記憶手
段のマイクロ命令により各種演算の処理動作の制
御を行なう演算制御部と、アドレス生成のための
演算モードを格納できるモードレジスタと、アド
レス生成のための補助アドレスを格納できる補助
アドレスレジスタと、前記マイクロ命令アドレス
レジスタ、補助アドレスレジスタの内容を用いて
各種の演算可能な演算回路と分岐マイクロ命令の
分岐成立不成立により前記演算回路出力、分岐先
アドレスのいずれかを選択する切替回路とを含
み、前記分岐マイクロ命令実行時、分岐条件が成
立していないことを条件としてマイクロ命令によ
り一定の条件が前記演算制御部から前記演算回路
に指示されていないときは前記マイクロ命令アド
レスレジスタの内容とあらかじめ定められた定数
を加算し、前記マイクロ命令により一定の条件が
前記演算制御部から前記演算回路に指示されてい
るときはあらかじめマイクロ命令により格納され
ていた前記モードレジスタの内容が示す演算モー
ドに従つて前記マイクロ命令アドレスレジスタの
内容とあらかじめマイクロ命令により格納されて
いた前記補助アドレスレジスタの内容の演算処理
を行ないその演算結果をアドレス情報として前記
マイクロ命令アドレスレジスタに格納し、前記分
岐マイクロ命令の分岐条件が成立したときは前記
分岐先アドレスをアドレス情報として前記マイク
ロ命令アドレスレジスタに格納するように構成し
てある。 In order to achieve the above object, a microprogram control device according to the present invention includes a microinstruction address register that stores address information of a microinstruction, a microinstruction storage means that stores a plurality of microinstructions, and a microinstruction controller specified by the address information. an arithmetic control unit that controls processing operations of various arithmetic operations using microinstructions of the microinstruction storage means read from addresses; a mode register that can store an arithmetic mode for address generation; and an auxiliary address for address generation. Using the auxiliary address register that can be stored, the contents of the microinstruction address register, and the auxiliary address register, select either the arithmetic circuit output or the branch destination address depending on whether the branch is established or not of the branch microinstruction and the arithmetic circuit that can perform various operations. and a switching circuit to switch the branch microinstruction to the arithmetic circuit when a predetermined condition is not instructed from the arithmetic control unit to the arithmetic circuit by the microinstruction on the condition that the branch condition is not satisfied when the branch microinstruction is executed. The content of the address register and a predetermined constant are added, and when a certain condition is instructed from the arithmetic control unit to the arithmetic circuit by the microinstruction, the content of the mode register stored in advance by the microinstruction. According to the calculation mode indicated by , the contents of the microinstruction address register and the contents of the auxiliary address register stored in advance by the microinstruction are subjected to calculation processing, and the calculation result is stored in the microinstruction address register as address information. , when the branch condition of the branch microinstruction is satisfied, the branch destination address is stored as address information in the microinstruction address register.
上記構成によれば、物理的ステツプ数の無駄や
実行時間上のロスを大幅に改善することができ、
本発明の目的を完全に達成することができる。 According to the above configuration, it is possible to significantly improve the waste of physical steps and the loss in execution time.
The objectives of the invention can be fully achieved.
以下、図面を参照して本発明をさらに詳しく説
明する。 Hereinafter, the present invention will be explained in more detail with reference to the drawings.
第2図は本発明による装置の一実施例を示す図
である。本実施例はマイクロ命令アドレスレジス
タ1、マイクロプログラムを格納する制御記憶2
(マイクロ命令記憶手段)、マイクロ命令デコーダ
3、各種演算処理や制御を行なう演算制御部1
2、二入力AおよびBに対して“A+1”“A+
B”(加算)、“A−B”(減算)、“A∧B”(論理
積)、“A∨B”(論理和)を算出できる演算回路
11、分岐/非分岐アドレス用切替回路6、マイ
クロ命令によりセツトまたはリセツト可能なフリ
ツプフロツプ7、論理積回路8、マイクロ命令の
指定により任意の値を格納する補助アドレスレジ
スタ9および前記演算回路11の演算モード指定
をするモードレジスタ10とから構成されてい
る。本回路構成の中で第1図と同符号を用いた回
路部の構成は従来回路のそれと異ならない。 FIG. 2 shows an embodiment of the device according to the invention. This embodiment includes a microinstruction address register 1, a control memory 2 that stores a microprogram, and
(microinstruction storage means), microinstruction decoder 3, arithmetic control unit 1 that performs various arithmetic processing and control
2. “A+1” “A+” for two inputs A and B
Arithmetic circuit 11 capable of calculating "B" (addition), "A-B" (subtraction), "A∧B" (logical product), "A∨B" (logical sum), branch/non-branch address switching circuit 6 , a flip-flop 7 that can be set or reset by a microinstruction, an AND circuit 8, an auxiliary address register 9 that stores any value specified by the microinstruction, and a mode register 10 that specifies the operation mode of the arithmetic circuit 11. In this circuit configuration, the configurations of circuit sections using the same symbols as in FIG. 1 are the same as those of the conventional circuit.
マイクロ命令アドレスレジスタ1の出力aは制
御記憶2および演算回路11の“A”入力に供給
される。前記アドレスaの指定により制御記憶2
から読み出された出力bはデコーダ3で解読され
その出力cは演算制御部12に送られる。参照符
号dは分岐条件成立(論理“1”)か不成立(論
理“0”)かを示す分岐成立信号であり、切替回
路6を制御して条件成立のとき(無条件分岐指定
の場合を含む)には演算制御部12から与えられ
る分岐先アドレスeを選択し、条件不成立のとき
には演算回路11の出力fを選択させて出力gと
し、その値をマイクロ命令アドレスレジスタ1に
格納するために使用される。参照符号hは演算制
御部12と外部装置などとを接続するインタフエ
ースである。参照符号iおよびjは、マイクロ命
令によつて作られる、フリツプフロツプ7のセツ
トおよびリセツト信号である。参照符号kは条件
分岐指定信号であり、条件分岐指定なら論理
“1”、非分岐または無条件分岐指定なら論理
“0”となる。 The output a of the microinstruction address register 1 is supplied to the control memory 2 and the "A" input of the arithmetic circuit 11. Control memory 2 is specified by the address a.
The output b read from the decoder 3 is decoded and the output c is sent to the arithmetic control section 12. Reference numeral d is a branch established signal indicating whether the branch condition is met (logic "1") or not (logic "0"). ) selects the branch destination address e given from the arithmetic control unit 12, and when the condition is not satisfied, selects the output f of the arithmetic circuit 11 as the output g, and stores the value in the microinstruction address register 1. be done. Reference numeral h is an interface that connects the arithmetic control unit 12 and an external device. Reference symbols i and j are the set and reset signals of the flip-flop 7 produced by the microinstructions. Reference numeral k is a conditional branch designation signal, which is logic "1" if a conditional branch is designated, and logic "0" if a non-branch or unconditional branch is designated.
フリツプフロツプ7の出力lと前記条件分岐指
定信号kとの論理積結果出力mは、演算回路11
の演算動作をモードレジスタ10の出力qにした
がつて変えるかどうかを決めるモード切替信号と
して使用される。参照符号nは、補助アドレスレ
ジスタ9に設定するために演算制御部12を介し
て与えられる補助アドレスであり、補助アドレス
レジスタ9の出力oは演算回路11の“B”入力
として使用される。参照符号pはモードレジスタ
10に設定するために演算制御部12から与えら
れる入力である。演算回路11はモード切替信号
mが論理“0”であれば、“A+1”、論理“1”
であればモードレジスタ10に設定された値0、
1、2および3にしたがつて“A+B”、“A−
B”、“A∧B”および“A∨B”の演算動作がそ
れぞれ行なわれる。 The AND result output m of the output l of the flip-flop 7 and the conditional branch designation signal k is output by the arithmetic circuit 11.
It is used as a mode switching signal to decide whether to change the calculation operation according to the output q of the mode register 10. Reference numeral n is an auxiliary address given via the arithmetic control unit 12 to be set in the auxiliary address register 9, and the output o of the auxiliary address register 9 is used as the "B" input of the arithmetic circuit 11. Reference symbol p is an input given from the arithmetic control unit 12 for setting in the mode register 10. When the mode switching signal m is logic “0”, the arithmetic circuit 11 outputs “A+1” and logic “1”.
If so, the value set in mode register 10 is 0,
According to 1, 2 and 3 “A+B”, “A-
The arithmetic operations of "B", "A∧B" and "A∨B" are performed, respectively.
このような構成をとることにより本実施例では
フリツプフロツプ7がリセツト状態である場合は
従来の構成の装置とまつたく同様の動作を行な
う。すなわち、フリツプフロツプ7が“オフ”で
あるからモード切替信号mは“0”となり、演算
回路11においては常に“A+1”の演算が実行
され、出力fには“マイクロ命令アドレスレジス
タ1の内容+1”が出力される。したがつて、条
件分岐マイクロ命令実行をするときには、分岐成
立信号dが論理“1”であれば分岐先アドレスe
が、また分岐成立信号dが論理“0”であれば演
算回路11の出力f(現マイクロ命令アドレス+
1)が、それぞれマイクロ命令アドレスレジスタ
1に格納されて次のマイクロ命令サイクルにおけ
る制御記憶2からのマイクロ命令読み出しアドレ
スとして使用される。 By adopting such a configuration, in this embodiment, when the flip-flop 7 is in the reset state, the operation is exactly the same as that of a device having a conventional configuration. That is, since the flip-flop 7 is "off", the mode switching signal m becomes "0", the arithmetic circuit 11 always executes the operation "A+1", and the output f is "contents of the microinstruction address register 1 +1". is output. Therefore, when executing a conditional branch microinstruction, if the branch completion signal d is logic "1", the branch destination address e
However, if the branch establishment signal d is logic "0", the output f of the arithmetic circuit 11 (current microinstruction address +
1) are respectively stored in the microinstruction address register 1 and used as the microinstruction read address from the control memory 2 in the next microinstruction cycle.
ところが上記フリツプフロツプ7がセツト状態
(“オン”)である場合は、条件分岐マイクロ命令
の実行時に特殊な動作を行なう。すなわち、分岐
成立信号dが論理“1”であれば、フリツプフロ
ツプ7がオフのときと同様に分岐先アドレスeが
マイクロ命令アドレスレジスタ1に格納される。 However, when the flip-flop 7 is in the set state ("on"), a special operation is performed when a conditional branch microinstruction is executed. That is, if the branch taken signal d is logic "1", the branch destination address e is stored in the microinstruction address register 1 in the same way as when the flip-flop 7 is off.
しかし条件分岐指定信号kが論理“1”で、分
岐成立信号dが論理“0”であると、モード切替
信号mが論理“1”となるため演算回路11の出
力fには、マイクロ命令アドレスレジスタ1の内
容と補助アドレスレジスタ9の内容とをモードレ
ジスタ10にしたがつて演算(たとえば加算)し
た結果が得られ、これがマイクロ命令アドレスレ
ジスタ1へ格納されることになる。 However, if the conditional branch designation signal k is logic "1" and the branch established signal d is logic "0", the mode switching signal m becomes logic "1", and therefore the output f of the arithmetic circuit 11 contains the microinstruction address. The contents of register 1 and the contents of auxiliary address register 9 are operated (for example, added) according to mode register 10 to obtain a result, which is stored in microinstruction address register 1.
例えばマイクロ命令アドレスレジスタ1の値が
N、補助アドレスレジスタ9の値がt、モードレ
ジスタ10の値が0(“A+B”指定)なら、結
果的に“N+t”番地への分岐が実現される。補
助アドレスレジスタ9に前もつて設定する値t次
第で、分岐先アドレスeとあわせて任意の二方向
への分岐ができるわけである。 For example, if the value of the microinstruction address register 1 is N, the value of the auxiliary address register 9 is t, and the value of the mode register 10 is 0 (designated "A+B"), a branch to address "N+t" is eventually realized. Depending on the value t previously set in the auxiliary address register 9, along with the branch destination address e, branching can be made in any two directions.
上記のような、フリツプフロツプ7、補助アド
レスレジスタ9およびモードレジスタ10を利用
した特殊動作を可能とすることにより、従来の構
成装置では得られなかつた利点を得ることができ
る。 By enabling special operations using flip-flop 7, auxiliary address register 9, and mode register 10 as described above, advantages not available with conventional configuration devices can be obtained.
次に第3図〜第6図を参照しながら本発明の装
置を利用した具体的なマイクロプログラムの流れ
について説明する。第3図〜第5図において四角
の枠はそれぞれ1つのマイクロ命令を表わし、各
枠の右肩の符号S1,S2………は各マイクロ命令の
便宜上のステツプ名を示し、また必要な場合には
各枠の左側に各マイクロ命令の制御記憶2上での
格納アドレスを、例えばN番地であれば<N>の
ように示す。各マイクロ命令の動作のうち本発明
の装置特有のものについては枠内に示してある。
“1→F/F”および“0→F/F”はそれぞれ
第2図におけるフリツプフロツプ7をセツトおよ
びリセツトすることを意味する。 Next, a detailed flow of a microprogram using the apparatus of the present invention will be explained with reference to FIGS. 3 to 6. In Figures 3 to 5, each square frame represents one microinstruction, and the symbols S 1 , S 2 , etc. on the right side of each frame indicate convenient step names of each microinstruction, and the necessary In this case, the storage address of each microinstruction on the control memory 2 is shown on the left side of each frame, for example, if it is address N, it is indicated as <N>. Among the operations of each microinstruction, those specific to the device of the present invention are shown within the box.
"1→F/F" and "0→F/F" mean setting and resetting flip-flop 7 in FIG. 2, respectively.
“t→AREG”は第2図における補助アドレス
レジスタ9に値tを、“u−MREG”はモードレ
ジスタ10に値uをそれぞれ格納することを意味
している。 "t→AREG" means to store the value t in the auxiliary address register 9 in FIG. 2, and "u-MREG" means to store the value u in the mode register 10.
第3図の例においては、フリツプフロツプ7を
ステツプS1,S2ではセツトしステツプS3ではリセ
ツトしている。またモードレジスタ10にステツ
プS1では値0(“加算”モード)、ステツプS2では
値1(“減算”モード)を設定してある。ステツ
プS4では補助アドレスレジスタ9に値tを格納し
てある。それに続くステツプS5はN番地にあつて
分岐先アドレスW番地を指定する条件分岐マイク
ロ命令である。 In the example of FIG. 3, the flip-flop 7 is set in steps S 1 and S 2 and reset in step S 3 . Further, the mode register 10 is set to a value of 0 ("addition" mode) at step S1 and a value of 1 ("subtraction" mode) at step S2 . At step S4 , the value t is stored in the auxiliary address register 9. The subsequent step S5 is a conditional branch microinstruction that specifies the branch destination address W at address N.
ステツプS5において分岐条件成立の場合は、フ
リツプフロツプ7、補助アドレスレジスタ9やモ
ードレジスタ10の内容には無関係にW番地のス
テツプS9への分岐が行なわれる。ところが分岐条
件が不成立の場合には、フリツプフロツプ7、補
助アドレスレジスタ9およびモードレジスタ10
にしたがつて、N+t番地のステツプS6、N−t
番地のステツプS7またはN+1番地のステツプS8
へと分岐することになる。 If the branch condition is met at step S5 , a branch to step S9 at address W is made regardless of the contents of flip-flop 7, auxiliary address register 9, and mode register 10. However, if the branch condition is not satisfied, the flip-flop 7, auxiliary address register 9 and mode register 10
Accordingly, the step S 6 at address N+t, N−t
Address step S 7 or address N+1 step S 8
It will diverge into.
すなわち、S1→S4→S5→S6、S2→S4→S5→S7お
よびS3→S4→S5→S8の3種類のシーケンスがあ
る。補助アドレスレジスタに共通の値tを設定し
ながら、モードレジスタ10に設定した値0
(“加算”モード)または1(“減算”モード)等
の違いにより演算回路11の演算動作を可変とす
ることで、従来装置に比べて分岐の自由度が増
し、性能低下を伴わずにマイクロ命令の共通化を
計ることが容易になる。 That is, there are three types of sequences: S 1 →S 4 →S 5 →S 6 , S 2 →S 4 →S 5 →S 7 , and S 3 →S 4 →S 5 →S 8 . While setting the common value t in the auxiliary address register, the value 0 set in the mode register 10
By making the arithmetic operation of the arithmetic circuit 11 variable depending on the difference between (“addition” mode) or 1 (“subtraction” mode), the degree of freedom in branching increases compared to conventional devices, and micro It becomes easier to standardize instructions.
第4図に示すのは、演算回路11による“A∧
B”(論理積)の演算を利用した場合の一例であ
る。ステツプS1ではフリツプフロツプ7をセツト
し、補助アドレスレジスタ9に2進値
“111110”、そしてモードレジスタ10に値2
(“論理積”モード)を設定している。 FIG. 4 shows “A∧” by the arithmetic circuit 11.
This is an example of a case where the operation of "B" (logical product) is used. In step S1 , the flip-flop 7 is set, the binary value "111110" is stored in the auxiliary address register 9, and the value 2 is stored in the mode register 10.
(“logical AND” mode) is set.
ステツプS2はN番地にある条件分岐マイクロ命
令で、分岐条件成立時の分岐先はW番地のステツ
プS5である。いまNを偶数値たとえばN=011010
(2進)とすれば、ステツプS2において分岐条件
不成立の場合の次サイクルのマイクロ命令アドレ
スは、マイクロ命令アドレスレジスタ1と補助ア
ドレスレジスタ9の内容の論理積結果で結局元の
Nと同じアドレスになる。すなわち自分自身のス
テツプでループすることを意味する。もしNが奇
数値たとえばN=011011とすれば論理積結果は
“011010”つまり“N−1”番地を意味すること
になる。これを利用すれば、たとえば、あるカウ
ンタがオーバフローするまでの間は別の割込み信
号を待ち続けて、割込みが来たらその処理ステツ
プS4に入り、割込みがなかつたら別ルーチンS5を
実行する、というような場合に役立つ。ステツプ
S2での分岐条件をカウンタのオーバフロー信号と
し、またフリツプフロツプ7は割込み信号によつ
てリセツトされるようにするとよい。Nが偶数で
あればステツプS2で割込みを受け付けるまでルー
プし、その後ステツプS4へ抜ける。そして割込み
を受け付ける前にカウンタがオーバフローすれば
分岐条件成立のためステツプS5へ抜けるわけであ
る。Nが奇数であればN−1番地、N番地の2ス
テツプでのループによる待合せができる。ステツ
プS1ではまつたく同じ設定をしても、その後実行
されるステツプのアドレス次第でループの単位も
考えられるということである。このような機能に
よつて各種条件の判定回数を減らし、無駄な遅れ
を避けることが容易となる。 Step S2 is a conditional branch microinstruction at address N, and when the branch condition is met, the branch destination is step S5 at address W. Now set N to an even value, for example N=011010
(binary), the microinstruction address of the next cycle when the branch condition is not satisfied in step S2 is the AND result of the contents of microinstruction address register 1 and auxiliary address register 9, and is the same address as the original N. become. In other words, it means looping with its own steps. If N is an odd value, for example N=011011, the AND result will mean "011010", that is, address "N-1". If you use this, for example, you can continue waiting for another interrupt signal until a certain counter overflows, enter the processing step S4 when the interrupt occurs, and execute another routine S5 when there is no interrupt. It is useful in such cases. step
Preferably, the branch condition at S2 is a counter overflow signal, and the flip-flop 7 is reset by an interrupt signal. If N is an even number, the process loops at step S2 until an interrupt is accepted, and then the process exits to step S4 . If the counter overflows before accepting the interrupt, the branch condition is met and the process exits to step S5 . If N is an odd number, waiting can be performed by a two-step loop of addresses N-1 and N. This means that even if step S1 has exactly the same settings, the unit of loop can be considered depending on the address of the step to be executed thereafter. Such a function makes it easy to reduce the number of times various conditions are judged and avoid unnecessary delays.
第5図の例は、演算回路11における“A∧
B”(論理積)、“A∨B”(論理和)の機能を利用
している。いま理解を容易にするために第6図に
示すような制御記憶を仮定する。 In the example shown in FIG.
The functions of "B" (logical product) and "A∨B" (logical sum) are used.For ease of understanding, we will assume a control memory as shown in FIG.
第6図の制御記憶は、2進表示で000000番地か
ら111111番地までのエリアがあり、これをさらに
000000〜001111番地、010000〜011111番地、
100000〜101111番地および110000〜111111番地の
4つのサブエリア,,およびに分けて考
える。 The control memory in Figure 6 has an area from address 000000 to address 111111 in binary representation, and this area is further expanded.
000000-001111, 010000-011111,
Let's consider four subareas: 100000 to 101111 addresses, 110000 to 111111 addresses, and .
ステツプS1ではフリツプフロツプ7をセツトし
補助アドレスレジスタ9には値110000(2進)、
モードレジスタ10には値2(“論理積”モー
ド)を設定してある。ステツプS2ではフリツプフ
ロツプ7をセツトし、補助アドレスレジスタ9に
は値001111(2進)、モードレジスタ10には値
3(“論理和”モード)を設定してある。ステツ
プS3ではフリツプフロツプ7をリセツトしてい
る。 In step S1 , flip-flop 7 is set and auxiliary address register 9 has the value 110000 (binary),
The mode register 10 is set to the value 2 ("AND" mode). In step S2 , the flip-flop 7 is set, the auxiliary address register 9 is set to the value 001111 (binary), and the mode register 10 is set to the value 3 ("OR" mode). In step S3 , the flip-flop 7 is reset.
ステツプS4はN番地(この例ではN=011001)
にあつて、W番地のステツプS8を分岐先とする条
件分岐マイクロ命令である。ステツプS4において
分岐条件不成立の場合のシーケンスはS1→S4→
S5、S2→S4→S6およびS3→S4→S7の3種類があ
る。 Step S 4 is address N (N = 011001 in this example)
This is a conditional branch microinstruction whose branch destination is step S8 at address W. If the branch condition is not satisfied at step S 4 , the sequence is S 1 → S 4 →
There are three types: S 5 , S 2 →S 4 →S 6 and S 3 →S 4 →S 7 .
いまステツプS4は011001番地すなわち第6図に
おけるサブエリア内に含まれている。したがつ
てS1→S4→S5のケースでは、ステツプS5のアドレ
スは“011001”と“110000”の論理積演算の結果
“010000”番地となる。これはサブエリアの先
頭番地に他ならない。同様にステツプS6のアドレ
スは“011001”と“001111”の論理和演算の結果
“011111”番地である。これはサブエリアの最
終番地である。このことから、フリツプフロツプ
7、補助アドレスレジスタ9およびモードレジス
タ10をステツプS1,S2と同じように設定してお
けば、ステツプS4に限らずサブエリア内の任意
のアドレスの条件分岐マイクロ命令実行時、必要
な場合にはすべて“010000”番地または
“011111”番地へとぶことができることがわか
る。これを利用すれば、あるサブエリア内の特定
番地(この例では“010000”および“011111”)
を特殊ケース処理ルーチンの入口として割付けこ
こへ分岐する動作を一般ケースへ性能上の影響を
与えないで実行でき、物理的ステツプ数も節約で
きる。 Step S4 is now included in address 011001, ie, within the subarea in FIG. Therefore, in the case of S 1 -> S 4 -> S 5 , the address of step S 5 becomes address "010000" as a result of the AND operation of "011001" and "110000". This is nothing but the starting address of the subarea. Similarly, the address of step S6 is the address "011111" as a result of the OR operation of "011001" and "001111". This is the final address of the subarea. From this, if the flip-flop 7, auxiliary address register 9, and mode register 10 are set in the same way as steps S1 and S2 , the conditional branch microinstruction at any address in the subarea, not just step S4, can be executed. It can be seen that during execution, it is possible to jump to address ``010000'' or ``011111'' if necessary. By using this, you can use specific addresses within a certain subarea (in this example, "010000" and "011111")
can be assigned as the entrance to the special case processing routine, and the operation of branching to this can be executed without affecting the performance of the general case, and the number of physical steps can also be saved.
以上本実施例ではモードレジスタ10による演
算モード加算、減算、論理積および論理和の4種
類の場合を説明したが、このモードをさらに豊富
にすれば、それだけマイクロプログラミング上の
融通性を増すことができる。 In this embodiment, four types of operation modes, addition, subtraction, logical product, and logical sum, using the mode register 10 have been explained above, but if these modes are made more abundant, flexibility in microprogramming can be increased accordingly. can.
また補助アドレスレジスタ9に設定する値も、
あるマイクロ命令実行において各種演算の結果の
データを反映させるようなものとすれば、一定の
データパターンの場合のみの特殊処理ルーチンへ
の分岐などが効率良く行なえることになる。 Also, the value set in the auxiliary address register 9 is
If the data of the results of various operations are reflected in the execution of a certain microinstruction, branching to a special processing routine only in the case of a certain data pattern can be efficiently performed.
上記の例では、マイクロ命令アドレスレジスタ
1とまつたく無関係のアドレスへの分岐は挙げて
いないが、たとえば第5図のステツプS1で補助ア
ドレスレジスタ9に値“000000”を設定すれば、
これはマイクロ命令アドレスレジスタ1の値Nに
無関係にすべての場合“0”番地へとばせること
も可能である。さらに一般的には演算回路11に
“0+B”というモードを設ければ完全に補助ア
ドレスレジスタ9によつてのみ分岐条件不成立時
の分岐先を指定することさえ可能である。 In the above example, branching to an address completely unrelated to microinstruction address register 1 is not mentioned, but for example, if the value "000000" is set in auxiliary address register 9 in step S1 of FIG.
It is also possible to cause the instruction to skip to the "0" address in all cases, regardless of the value N of the microinstruction address register 1. Furthermore, in general, if the arithmetic circuit 11 is provided with a mode called "0+B", it is even possible to specify the branch destination when the branch condition is not met completely only by the auxiliary address register 9.
以上詳しく説明したように本発明によれば、分
岐動作の自由度が増加するので、マイクロプログ
ラム容量の増加や実行時間上の無駄を抑制でき、
情報処理装置の性能を向上させることが可能とな
る。 As explained in detail above, according to the present invention, the degree of freedom in branching operations is increased, so it is possible to suppress an increase in microprogram capacity and waste in execution time.
It becomes possible to improve the performance of the information processing device.
第1図は従来装置の例を示す回路ブロツク図、
第2図は本発明の一実施例を示す回路ブロツク
図、第3、第4、第5図は本発明の動作を説明す
るためのフローチヤート、第6図は第5図のフロ
ーチヤートを補助説明するための制御記憶を示す
図である。
1……マイクロ命令アドレスレジスタ、2……
制御記憶(マイクロ命令記憶手段)、3……デコ
ーダ、4,12……演算制御部、5……加算器、
6……切替回路、7……フリツプフロツプ、8…
…アンド回路、9……補助アドレスレジスタ、1
0……モードレジスタ、11……演算回路。
FIG. 1 is a circuit block diagram showing an example of a conventional device.
FIG. 2 is a circuit block diagram showing one embodiment of the present invention, FIGS. 3, 4, and 5 are flowcharts for explaining the operation of the present invention, and FIG. 6 is an auxiliary flowchart of FIG. 5. It is a figure showing control memory for explanation. 1... Microinstruction address register, 2...
Control memory (microinstruction storage means), 3... decoder, 4, 12... arithmetic control section, 5... adder,
6...Switching circuit, 7...Flip-flop, 8...
...AND circuit, 9...Auxiliary address register, 1
0...Mode register, 11...Arithmetic circuit.
Claims (1)
クロ命令アドレスレジスタと、複数のマイクロ命
令を記憶するマイクロ命令記憶手段と、前記アド
レス情報により指定されるアドレスから読出され
る前記マイクロ命令記憶手段のマイクロ命令によ
り各種演算の処理動作の制御を行なう演算制御部
と、アドレス生成のための演算モードを格納でき
るモードレジスタと、アドレス生成のための補助
アドレスを格納できる補助アドレスレジスタと、
前記マイクロ命令アドレスレジスタ、補助アドレ
スレジスタの内容を用いて各種の演算可能な演算
回路と、分岐マイクロ命令の分岐成立不成立によ
り前記演算回路出力、分岐先アドレスのいずれか
を選択する切替回路とを含み前記分岐マイクロ命
令実行時、分岐条件が成立していないことを条件
としてマイクロ命令により一定の条件が前記演算
制御部から前記演算回路に指示されていないとき
は前記マイクロ命令アドレスレジスタの内容とあ
らかじめ定められた定数を加算し、前記マイクロ
命令により一定の条件が前記演算制御部から前記
演算回路に指示されているときはあらかじめマイ
クロ命令により格納されていた前記モードレジス
タの内容が示す演算モードに従つて前記マイクロ
命令アドレスレジスタの内容とあらかじめマイク
ロ命令により格納されていた前記補助アドレスレ
ジスタの内容の演算処理を行ないその演算結果を
アドレス情報として前記マイクロ命令アドレスレ
ジスタに格納し、前記分岐マイクロ命令の分岐条
件が成立したときは前記分岐先アドレスをアドレ
ス情報として前記マイクロ命令アドレスレジスタ
に格納するように構成したことを特徴とするマイ
クロプログラム制御装置。1. A micro-instruction address register that stores address information of micro-instructions, a micro-instruction storage means that stores a plurality of micro-instructions, and various micro-instructions stored in the micro-instruction storage means that are read from addresses specified by the address information. an arithmetic control unit that controls arithmetic processing operations; a mode register that can store an arithmetic mode for address generation; and an auxiliary address register that can store an auxiliary address for address generation;
It includes an arithmetic circuit that can perform various calculations using the contents of the microinstruction address register and the auxiliary address register, and a switching circuit that selects either the arithmetic circuit output or the branch destination address depending on whether the branch of the branch microinstruction is established or not. When executing the branch micro-instruction, if a certain condition is not specified by the micro-instruction to the arithmetic circuit from the arithmetic control unit under the condition that the branch condition is not satisfied, the predetermined contents of the micro-instruction address register are determined. When a certain condition is instructed from the arithmetic control unit to the arithmetic circuit by the microinstruction, the calculation mode is added according to the arithmetic mode indicated by the contents of the mode register stored in advance by the microinstruction. Arithmetic processing is performed on the contents of the microinstruction address register and the contents of the auxiliary address register previously stored by the microinstruction, and the result of the calculation is stored as address information in the microinstruction address register, and the branching of the branch microinstruction is performed. A microprogram control device characterized in that, when a condition is met, the branch destination address is stored as address information in the microinstruction address register.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8334379A JPS567145A (en) | 1979-06-29 | 1979-06-29 | Microprogram controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8334379A JPS567145A (en) | 1979-06-29 | 1979-06-29 | Microprogram controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS567145A JPS567145A (en) | 1981-01-24 |
JPS6158854B2 true JPS6158854B2 (en) | 1986-12-13 |
Family
ID=13799785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8334379A Granted JPS567145A (en) | 1979-06-29 | 1979-06-29 | Microprogram controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS567145A (en) |
-
1979
- 1979-06-29 JP JP8334379A patent/JPS567145A/en active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS567145A (en) | 1981-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4616313A (en) | High speed address calculation circuit for a pipeline-control-system data-processor | |
US4179731A (en) | Microprogrammed control system | |
JPS6146858B2 (en) | ||
US4674063A (en) | Information processing apparatus having a sequence control function | |
JPS6158854B2 (en) | ||
US5053954A (en) | Microprogram process for single cycle jump instruction execution | |
KR100188374B1 (en) | Central processing unit and an arithmetic operation processing unit | |
JPS5860355A (en) | Information processing device | |
JPS6339928B2 (en) | ||
JPH05143447A (en) | Digital processor and control method for the processor | |
JPS63141131A (en) | Pipeline control system | |
JPS5899843A (en) | Condition branching device of microprogram | |
JPH0375904B2 (en) | ||
JPH01253032A (en) | Microprogram control type processor | |
JPS6116334A (en) | Data processor | |
JPH0557614B2 (en) | ||
JPS6226725B2 (en) | ||
JPS58169247A (en) | High-speed instruction reading system | |
JPH0810429B2 (en) | Micro program controller | |
JPS5927351A (en) | Data processing device | |
JPH0517574B2 (en) | ||
JPH04251331A (en) | Information processor | |
JPH04369723A (en) | Micro program controller | |
JPH02121033A (en) | Microprogram control device | |
JPH04355832A (en) | Microprogram controller |