JPS62109134A - Microprogram controller - Google Patents

Microprogram controller

Info

Publication number
JPS62109134A
JPS62109134A JP25005985A JP25005985A JPS62109134A JP S62109134 A JPS62109134 A JP S62109134A JP 25005985 A JP25005985 A JP 25005985A JP 25005985 A JP25005985 A JP 25005985A JP S62109134 A JPS62109134 A JP S62109134A
Authority
JP
Japan
Prior art keywords
branch
address
microinstruction
register
bit
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.)
Granted
Application number
JP25005985A
Other languages
Japanese (ja)
Other versions
JP2587407B2 (en
Inventor
Hiroaki Kaneko
金子 博昭
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
Priority to JP60250059A priority Critical patent/JP2587407B2/en
Application filed by NEC Corp filed Critical NEC Corp
Priority to DE3650740T priority patent/DE3650740D1/en
Priority to EP86115571A priority patent/EP0221577B1/en
Priority to DE3650473T priority patent/DE3650473T2/en
Priority to US06/928,421 priority patent/US4907192A/en
Priority to EP92108451A priority patent/EP0500151B1/en
Publication of JPS62109134A publication Critical patent/JPS62109134A/en
Priority to US07/470,259 priority patent/US5210833A/en
Application granted granted Critical
Publication of JP2587407B2 publication Critical patent/JP2587407B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PURPOSE:To obtain a microinstruction control circuit that has branching function with a short instruction word length and a fast executing time, by extracting the prescribed data out of the latched parameter group to apply a mask to an extracted parameter and defining the data obtained from masking as an address of the branching destination. CONSTITUTION:A multi-way branch register 200 is connected to a data bus 106 and holds the whole or a part of the contents of the bus 106 when a latch signal WRMBR is produced. A multiplexer 201 selects and delivers the contents MBR of the register 200 according to the value of a selection field (sel) of a multi-branch microinstruction. A multi-branch address generator 202 produces the output of the multiplexer 201 and the address of the branching destination according to a mask field 'mask' and a base field 'base' of the multi-branch microinstruction.

Description

【発明の詳細な説明】 〔産業上の利用分野J 本発明は、マイクロプログラム制御方式全採用し文情報
処理装置に関し、とくにマイクロスログラムの分岐制御
回路に関する。
DETAILED DESCRIPTION OF THE INVENTION [Industrial Field of Application J] The present invention relates to a text information processing device that entirely employs a microprogram control system, and more particularly to a microprogram branch control circuit.

〔従来の技術〕[Conventional technology]

従来プログラム・カウンタ?用いたマイクロプログラム
制御方式全採用した情報処理装置では、制御の流れ(シ
ーケンス)全変更するために、分岐マイクロ命令と呼ば
れる種類のマイクロ命令が使われている。分岐マイクロ
命令は、プログラム・カウンタの現在の内容の全部ある
いは一部ケ、分岐マイクロ命令がオペランドとして有す
る分岐先アドレス・フィールドの内容に置き換えること
に工ってシーケンスの変更全実現している。この時、分
岐マイクロ命令が他のオペランドとして条件フィールド
金持つものは、条件付き分岐マイクロ命令と呼ばれ、指
定された条件と情報処理袋区内の現在の状態が一致して
いる場合にのみ分岐動作ケ行なうものである。!2図に
、条件付き分岐マイクロ命令の一般的なフォーマットケ
示す。
Conventional program counter? In an information processing device that fully employs the microprogram control method used, a type of microinstruction called a branch microinstruction is used to completely change the control flow (sequence). The branch microinstruction accomplishes all of the sequence changes by replacing all or part of the current contents of the program counter with the contents of the branch target address field that the branch microinstruction has as an operand. At this time, a branch microinstruction that has a condition field as another operand is called a conditional branch microinstruction, and branches only if the specified condition matches the current state in the information processing block. It is something that performs an action. ! Figure 2 shows the general format of a conditional branch microinstruction.

第3図に、従来のマイクロプログラム制御方式全採用し
た情報処理装置のブロック図ケ示す。データ・バス10
6にハ、レジスタ・ファイル110お工び算術涙算処理
装置107が接続されており、レジスタ・ファイル11
0に格納されたデータに対して、算術または論理的な演
算を施すことができる。
FIG. 3 shows a block diagram of an information processing device that completely adopts the conventional microprogram control method. data bus 10
6, the register file 110 and the arithmetic processing unit 107 are connected, and the register file 11
Arithmetic or logical operations can be performed on data stored in 0.

マイクロ命令メモリ101に格納されたマイクロプログ
ラムは、アドレス・レジスタ100が指足するアドレス
によってアクセスされ、対応するマイクロ命令が命令ラ
ッチ102に一反ラッチされ友後、命令デコーダ104
によって解析され、それによって情報処理装置内の制御
虞に対する制御イg号(マイクロオーダ)が発生される
。かくして、命令テコ−ター104によって条件付き分
岐マイクロ命令が検出されると、マイクロオーダMJM
Pが発行される。分岐条件判定回路108では、MJM
P全fi4出すると分岐マイクロ命令内の条件フィール
ドN■ボDの内容と算術演算処理装置の状態を示すステ
ータス信号S’I”ATUBとt比較し、分岐条件を満
足しているか否かを判定し、満足している場合は一致信
号LDJMPk発生する。
The microprogram stored in the microinstruction memory 101 is accessed by the address indicated by the address register 100, and the corresponding microinstruction is latched in the instruction latch 102 and then transferred to the instruction decoder 104.
The information is analyzed by the following, and a control issue (micro order) for the control possibility within the information processing device is generated. Thus, when a conditional branch microinstruction is detected by the instruction taker 104, the microorder MJM
P is issued. In the branch condition determination circuit 108, MJM
When P full fi4 is issued, the contents of the condition field N■BoD in the branch microinstruction are compared with the status signal S'I''ATUB indicating the status of the arithmetic processing unit, and it is determined whether the branch condition is satisfied. If the condition is satisfied, a match signal LDJMPk is generated.

前記アドレス・レジスタ100は、Ll)JMP 信号
がインアクティブである場合は、アドレス・レジスタ1
00の内%MA’i+1歩進するインクリメント103
の内gkロードすることで、アドレス内容が順次1ずつ
インクリメントされ、マイクロ命令をシーケンシャルに
アクセスする。−万LDJMP信号が発生した場合、分
岐マイクロfr+労のアドレス・フィールドによって決
足される分岐先のアドレス全発生する分岐アドレス発生
1109の出力ケアドレス・レジスタ100にロードす
ることで、分岐動作全行なう。
The address register 100 is set to address register 1 when the Ll) JMP signal is inactive.
%MA'i+1 increment of 00 103
By loading gk, the address contents are sequentially incremented by 1, and the microinstructions are sequentially accessed. - When the LDJMP signal is generated, the entire branch operation is performed by loading the address of the branch destination determined by the address field of the branch micro FR + labor into the output care address register 100 of the branch address generation 1109. .

マイクロプログラムの実行途中で変化する単一のパラメ
ータに従って、分岐先のアドレス金変化させる工うな分
岐機能全多分岐(マルチウェイ・ブラッチ)機能と呼ぶ
A branch function that changes the branch destination address according to a single parameter that changes during the execution of a microprogram is called a multi-way branch function.

今、パラメータNがQ−nまで変化する可能性があり、
パラメータへが0の時はマイクロ命令の集合である10
シジヤ(手続)0を、パラメータNが1の時は10シジ
ヤ1を、同様にパラメータNがnの時は10シジヤnl
(実行する工うな応用を例に考える。
Now, there is a possibility that the parameter N changes up to Q-n,
When the parameter is 0, it is a set of microinstructions 10
When the parameter N is 1, the procedure is 10, and when the parameter N is n, the procedure is 10.
(Consider an example of an application that does not require execution.

従来のマイクロプログラム制御装置全採用した情報処理
装置において、前記多分岐俊熊盆実現する之めには、次
に示す工うな複数のマイクロ命令による処理が必要であ
る。
In an information processing apparatus that employs all conventional microprogram control devices, processing using a plurality of microinstructions as described below is required in order to realize the multi-branching system.

■Nが0かどうかチェックする ■0ならばプロシジャ0へ分岐する ■N−1全演算する ■結果が0ならば10シジヤ1へ分岐する■へ−n勿演
算する ■結果がOならばプロシジャnへ分岐する上記の処理に
おいて、ステップ■、■および■では減算動作?伴うの
で算術論理演算装置t107を用い、ステップ■、■お
よび■では算術論理演算装置107における演算結果が
0であるかどうか?判断する条件付き分岐マイクロ命!
に用いている。
■Check whether N is 0. ■If it is 0, branch to procedure 0. ■If the result is 0, proceed to procedure 0. ■ If the result is 0, branch to 10 or 1. In the above process of branching to n, steps ■, ■, and ■ are subtraction operations? Therefore, the arithmetic and logic unit t107 is used, and in steps ①, ②, and ②, is the operation result in the arithmetic and logic unit 107 0? Conditional branching micro-life to judge!
It is used for.

さらにパラメータINがnf超えてしまった時、これ全
不正な1直として検出するためには、加えて以下の処理
を必要とする。
Furthermore, when the parameter IN exceeds nf, the following processing is additionally required in order to detect this as an entirely invalid first shift.

■N −n 7;z演算する ■結果が正ならはエラー処理用のプロシジャへ分岐する 以上説、明したように、パラメータの1直によって実行
するプロシジャを変化させる之めには、少なくともプロ
シジャの数だけの演算マイクロ命令と、条件付き分岐マ
イクロ命令上使用するため、マイクログログラムの容量
が増加し、平均的に各プロシジャへ分岐するまでの時間
が増加するという欠点がある。
■N - n 7; Calculate z ■If the result is positive, branch to the error handling procedure As explained above, in order to change the procedure to be executed by changing one parameter, at least the procedure Since it is used for only a few arithmetic microinstructions and conditional branch microinstructions, it has the disadvantage that the capacity of the microprogram increases and the time required to branch to each procedure increases on average.

さらに、本質的に分岐機能全実現しているにもかかわら
ず、M算動作全件う之めにレジスタ・ファイル110、
データ・バス106お工び算術論理演算装置107のよ
うなデータ操作に関与するハードウェア資源を占有しな
ければならないという欠点全件っている。
Furthermore, although all branch functions are essentially realized, all M arithmetic operations are performed by the register file 110,
The data bus 106 has all the drawbacks of having to occupy hardware resources involved in data manipulation, such as the arithmetic and logic unit 107.

パラメータの匝によって実行するプロシジャ【変化させ
る必要のある処理としては、コマンドやステータスとし
てプロシジャが夷竹磯熊會指定される応用もあるが、こ
こでは二進化十進数(HC]−))の算術演算における
符号処理業例にとって脱明する。
Procedures that are executed according to the parameter values It is clear for the example of code processing in arithmetic.

Beuは、0〜9までの1直’(il−4ビツトの二進
数oooo〜1001で表現する数値表現体系である。
Beu is a numerical representation system that is expressed as a binary number from 0 to 9 (il-4 bits oooo to 1001).

各4ピツトは桁(ディジット)と呼ばれ、1バイト(8
ビツト)・データに2桁のBea’l格納する。特にこ
のよりなりCDは、パックドBCL)として、各1バイ
ト・データが1桁のbeL)’6格納するアンパックド
BUI)と区別されることがある第4図に、アンパック
)Bei)の一般的なフォーマットを示す。最大有意桁
(MSD)を含むバイト・データBn(数値紫衣現する
桁の長さが奇数である場合ンあるいは八48]Jを含む
バイト・データBnの次のバイト・データBn+1 (
数値を表現する桁の長さが偶数であ/)場合)の上位側
の桁は、符号桁として各数値を辰わす桁の例によって表
わされる十進数が正であるか、あるいは負であるかケ指
定する。これに対して、符号桁以外の桁を数1直桁と呼
ぶ。
Each 4 pits is called a digit, and 1 byte (8
2-digit Bea'l is stored in the bit) data. In particular, this type of CD may be distinguished as a packed BCL), an unpacked BUI) in which each 1-byte data stores a single digit beL), and a typical unpacked BUI) as shown in Figure 4. format. Byte data Bn containing the most significant digit (MSD) (N or 848 if the length of the digit appearing in the numerical value purple is an odd number) The next byte data Bn+1 containing the byte data Bn containing J (
If the length of digits representing a numerical value is an even number, the upper digits of (/) are used as sign digits to indicate whether the decimal number represented by the digits representing each numerical value is positive or negative. Specify. On the other hand, digits other than the code digits are called number 1 direct digits.

符号桁は、その値にLっで十進数の符号を衣わすが、最
も頻繁に使用される値としては、数1鉦として正しくな
い値、すなわち1010〜1111が用いられる。符号
桁の内容と符号な対応関係とじての代表的な側音以下に
示す。
The code digit assigns a decimal code to the value, but the most frequently used values are values that are incorrect for the number 1 key, that is, 1010 to 1111. The contents of the code digits and the corresponding relationship between the codes are shown below.

符号桁   符号 1010正 1011負 1100正 1101    狛 1110正 1111正 前記符号体系の基本的な考え万は、符号桁の最小有意ビ
ット(LSB)の値が0ならば正、1ならば負であるが
、例外として符号桁が11111)時のみは正を表わし
ている。
Code digit Code 1010 Positive 1011 Negative 1100 Positive 1101 Koma 1110 Positive 1111 Positive The basic concept of the above coding system is that if the value of the least significant bit (LSB) of the code digit is 0, it is positive, and if it is 1, it is negative. , as an exception, only when the code digit is 11111) is positive.

さらに、符号桁は上記以外の領、すなわちooo。Furthermore, the code digit is in an area other than the above, ie, ooo.

〜1001までの値(これらの頃は、数値桁としては正
しい範囲であり、数値桁の勅囲と符号桁の範囲は排反で
ある)である場合、十進数全体としての表現方法の誤り
r検卸しなければならない。
-1001 (these days are the correct range for numerical digits, and the imperial range of numerical digits and the range of code digits are mutually exclusive), there is an error in the representation method of the decimal number as a whole. Must be inspected.

符号桁の8答によって、正数を取り扱うプロシジャpr
oc−plu\負数金取り扱うグロシジャpr。
Procedure pr that handles positive numbers with 8 answers of sign digits
oc-plu\Glossija pr that handles negative numbers.

c−minuへ表現方法のエラー′r検知した場合に処
理されるプロシジャproc−errorに分岐し、そ
れぞれの処理を行なうための多分岐機能は、以下のよう
に記述される。
A multi-branching function for branching to the procedure proc-error to be processed when an error 'r in the expression method for c-minu is detected and performing each process is described as follows.

if 5IGN(1001b  then proc−
error; /*符号桁の正当性のチェック  */ if 8IGN=XXXOb then proc−p
lus;  / *正数の基本チェック  氷/ if 5IGN=1111b then proc−p
lus;  / *正数の例外チェック  */ proc−minus : ・・・・・・・・・・・・・・・  /未 負数の処理
 */proc−plug : ・・・・・・・・・・・・・・・  /* 正数の処理
 ×/proc−error: ・・・・・・・−・・・・・・・  /* エラ一時の
処理 */ただしここで、5IGNは符号桁の内容會示
す。
if 5IGN(1001b then proc-
error; /* Check validity of code digit */ if 8IGN=XXXOb then proc-p
lus; / *Basic check for positive numbers Ice/ if 5IGN=1111b then proc-p
lus; / *Exception check for positive numbers */ proc-minus: ...... ...... /* Processing of positive numbers ×/proc-error: ...... Show contents.

前記のような高級言語風の記述上マイクロプログラムで
表現すると、数倍のステップ数に展開されるため、マイ
クロプログラムの容量ならびに各70シジヤ(proc
−errorlproc−plusおLびproc−m
i nus)の実行を開始するまでの平均実行ステップ
数が長くなることになる。
When expressed in a microprogram with a high-level language-like description as described above, the number of steps is several times larger, so the capacity of the microprogram and each 70 steps (proc
-errorlproc-plus and proc-m
The average number of execution steps until the start of execution of i nus) becomes longer.

以上述べた符号桁の処理は、k3cDの演算?行なう時
に必ず実行される前処理であるため、この処理の実行時
間はBCD演算の実行時間に必ず反映される。BCD6
イ算に対して憂い性能ケ末める場合、符号桁の処理の友
めの実行時間は性能に対して支配的になる。
Is the code digit processing described above a k3cD operation? Since this is a preprocessing that is always executed when performing a BCD operation, the execution time of this process is always reflected in the execution time of the BCD operation. BCD6
When it comes to the disappointing performance of arithmetic, the execution time of code digit processing becomes dominant in terms of performance.

さらに数値桁に関しても、演算ケ開始する以前に数値桁
としての正当性をチェックする必要がある。前述のよう
に、数値桁としては0000−1001が正しい埴でめ
り、1010〜1111まではエラー金検知しなければ
ならない。数値桁は、各バイト・データの上位あるいは
下位4ピツトに分割されて格納されている几め、各桁の
正当性チェックは、偶数番目の桁か奇数番目の桁かに工
っで、LSB位置の桁合せが必要になる。
Furthermore, it is necessary to check the validity of numerical digits before starting the calculation. As mentioned above, the numerical digits 0000-1001 are correct, and the digits 1010-1111 must be detected as errors. Numerical digits are stored divided into the upper or lower 4 bits of each byte data, and the validity check of each digit is performed by checking whether it is an even numbered digit or an odd numbered digit. digit alignment is required.

符号桁の処理同様IL、BCD演算ケ行なう時に必ず実
行される前処理でろ9、全体の演算時間に対して影響力
が大であると言える。
Like code digit processing, preprocessing is always executed when IL and BCD calculations are performed9, and it can be said that it has a great influence on the overall calculation time.

〔発明が解決しようとする問題点J 不発明は、前記従来例の欠点に鑑がみ、長いパラメータ
や可変長のパラメータ、あるいは一つのパラメータの中
に被数のパラメータが圧縮されている時にその内の一つ
のパラメータによって複数の番地に分岐する際、短い命
令語長でしかも実行時間の速い分岐像能を有するマイク
ロ命令制御回路を提供することにある。
[Problem to be solved by the invention J] In view of the drawbacks of the conventional example, the problem is that when a long parameter, a variable length parameter, or a number parameter is compressed into one parameter, It is an object of the present invention to provide a microinstruction control circuit having a short instruction word length and fast execution time when branching to a plurality of addresses depending on one parameter.

〔問題点を解決するための手段J マイクロプログラム制御fcltにおいて、マイクロ命
令の実行1cよって値が設足されるラッチ、前記ラッチ
に保持され之データを抽出する手段、前記抽出手段によ
って抽出されたデータ會マスクする手段を含み、分岐ア
ドレスがマスクされtデータによって決定さnる工うに
したこと全特徴とする。
[Means for solving the problem J In the microprogram control fclt, a latch whose value is set by the execution of a microinstruction 1c, means for extracting the data held in the latch, and data extracted by the extracting means The branch address is masked and determined by the data.

〔発明の作用・原理J 本発明は、パラメータ群全前もってラッチし、ラッチし
たパラメータ群から所足りデータを抽出し、抽出したパ
ラメータにマスフケ施し、マスクすることによって得ら
れたデータ勿分岐先のアドレスとすることで、パラメー
タの実質的なIcすに短くシ、さらにマスクすることで
分割し之パラメータの中から分岐機能に関与するビット
’1選択することができるようにしたものである。
[Operation/Principle of the Invention J] The present invention latches all parameter groups in advance, extracts sufficient data from the latched parameter group, masks the extracted parameters, and masks the data obtained by masking the branch destination address. By doing so, the actual Ic of the parameter can be shortened, and by masking, it is possible to select the bit '1 that is involved in the branching function from among the divided parameters.

〔実施例〕〔Example〕

以下図面會参照して不発明の構成および動作を詳細に説
明する。
The configuration and operation of the invention will be described in detail below with reference to the drawings.

第1図は、本発明の一笑施fll ’?示す図である。Fig. 1 shows the complete explanation of the present invention. FIG.

アドレス・レジスタ203は、インクリメンタ103が
発生するシーケンシャルにマイクロ7゜グラムの実行が
進んだ場合に次に冥付すべきマイクロ命令?格納してい
るアドレス、無条件あるいは条件付き分岐マイクロ命令
を実行する時1,1)JMP信号によって分岐アドレス
発生器109が生成するブラッチ先のアドレス、および
多分岐マイクロ命令を実行する時LL)MLSi−を信
号によってマルチウェイ・ブラッチ・アドレス発生器2
02が生成するブラッチ先のアドレスケラッチするレジ
スタである。マルチウェイ・ブラッチ・レジスタ2υ0
は、データ・バス106と接続され、ラッチ信号WRM
B)tが発生した時データ・バス106の内容あるいは
その一部の内容全保持するラッチである。
The address register 203 indicates which microinstruction should be added next when the execution of the sequential micro7g generated by the incrementer 103 progresses. Stored address, when executing an unconditional or conditional branch microinstruction 1, 1) Batch destination address generated by the branch address generator 109 according to the JMP signal, and when executing a multi-branch microinstruction LL) MLSi - multiway blatch address generator 2 by signal
This register latches the address of the latch destination generated by 02. Multiway blatch register 2υ0
is connected to the data bus 106 and receives the latch signal WRM
B) A latch that holds the entire contents of data bus 106 or a portion thereof when t occurs.

マルチプレクサ201fl、マルチウェイ・ブラッチ・
レジスタ200の内容MBR全多分岐マイクロ命令の選
択フィールド5elD値に従って選択出力する。マルチ
ウェイ・ブラッチ・アドレス生成器202U、マルチプ
レクサ201の出力、多分岐マイクロ命令のマスク・フ
ィールドmaskおよびベース・フィールドbase 
K工って決定される分岐先アドレスを生成する回路であ
る。命令デコーダ204は、転送マイクロ命令がマルチ
ウェイ・ブラッチ・レジスタ200への転送を指定した
ことt示す信号WRMBルおよび多分岐マイクロ命令が
実行されることをしめす信号LIJMB几等のマイクロ
オーダを発生する手段である。
Multiplexer 201fl, multiway blatch
The contents of the register 200 are selectively output according to the selection field 5elD value of the MBR multi-branch microinstruction. Multi-way blur address generator 202U, output of multiplexer 201, mask field mask and base field base of multi-branch microinstruction
This is a circuit that generates a branch destination address determined by K steps. The instruction decoder 204 generates micro-orders such as a signal WRMB which indicates that the transfer micro-instruction specifies transfer to the multi-way blatch register 200 and a signal LIJMB which indicates that a multi-branch micro-instruction is to be executed. It is a means.

第5図は、多分岐マイクロ命令の一例會示す。FIG. 5 shows an example of a multi-branch microinstruction.

Opは多分岐マイクロ命令のオペレーション・コードを
示すフィールド、selはマルチウェイ・ブラッチ・レ
ジスタ200の内容がらマルチウェイ・ブラッチ・アド
レス生成器202に接続するデータを選択するフィール
ド、 m35にはselによって孕択されたマルチウェ
イ・ブラッチ・レジスタ200のフィールドに対してビ
ット対応の有効性r指足するフィールド、baseは分
岐先アドレスのベース・アドレス生成器するフィールド
でるる。
Op is a field that indicates the operation code of the multi-branch microinstruction, sel is a field that selects data to be connected to the multiway blatch address generator 202 based on the contents of the multiway blatch register 200, and m35 is a field that indicates the operation code of the multi-branch microinstruction. Base is a field that adds bit-corresponding validity r to the field of the selected multiway blatch register 200, and base is a field that is used as a base address generator for the branch destination address.

以下、本実施例の具体的な動作について説明する。The specific operation of this embodiment will be explained below.

M個のbビット・パラメータNm″″c構放されるデー
タparamsが、転送マイクロ命令の実行時に命令デ
コーダ204が発生するラッチ信号W悦化几によってマ
ルチウェイ・ブラッチ・レジスタ200にラッチされる
。多分岐マイクロ命令が命令ラッチ102にラッチされ
ると、命令デコーダ103はマイクロオーダLL)MB
Ri発生する。マルチプレクサ203は、多分岐マイク
ロ命令の選択フィールド5eILLよって指定されるパ
ラメータN5el p出力し、マスク・フィールドma
skとmBJi 桔に取るとともに、2個の〇七付加し
分岐先アドレスの下位側のb 十zビット全生成する。
The M b-bit parameters Nm''''c free data params are latched into the multi-way latch register 200 by the latch signal W generated by the instruction decoder 204 during execution of the transfer microinstruction. When the multi-branch micro-instruction is latched into the instruction latch 102, the instruction decoder 103 outputs the micro-order LL) MB.
Ri is generated. The multiplexer 203 outputs the parameter N5elp specified by the selection field 5eILL of the multi-branch microinstruction, and outputs the mask field ma.
Take sk and mBJi, add two 07, and generate all the lower b1z bits of the branch destination address.

多分岐マイクロ命令の検出信号LL)MBKが発生すル
ト、アドレス・レジスタ202の下位b+zuマルチウ
ェイ・ブラッチ・アドレス生成器202の出力が、上位
側には多分岐マイクロ命令のベース・フィールドbas
eがラッチされることによって、新しい分岐先のアドレ
スが決定する。この動作を、第6図に示す。
The multi-branch microinstruction detection signal LL) MBK is generated, the lower b+zu of the address register 202 is the output of the multi-way blur address generator 202, and the upper side is the base field bas of the multi-branch microinstruction.
By latching e, a new branch destination address is determined. This operation is shown in FIG.

前記の具体的な動作は、分岐先アドレスknew−ad
rsとすると、次式のように表現することができる。
The above specific operation is performed when the branch destination address knew-ad
rs, it can be expressed as the following equation.

new−adrs=base”12へb+−Z))  
 (paraTls(Seすandmask) + (
2^z); ここでparams(sel)は、選択フィールドse
lによって選択され友マルチウェイ・ブラッチ・レジス
タ200のbビット・データである。
new-adrs=base”12 b+-Z))
(paraTls(Seandmask) + (
2^z); Here params(sel) is the selection field se
b bit data of the friend multiway blatch register 200 selected by l.

第7図は、不発明のより具体的な実施例上水す図でるる
。この具体的な実施例では、8ビツトのパラメータ?二
分割し、選択されたパラメータに従って最大16ウエイ
の多分岐全可能にしている。
FIG. 7 shows a more specific embodiment of the invention. In this specific example, the 8-bit parameter ? It is divided into two parts and can be multi-branched up to 16 ways according to the selected parameters.

こまたの実施例における多分岐マイクロ命令の7オーマ
ツトは、第8図に示すようVC4ビツトのオペレーショ
ン・コード・フィールドOp、3ヒツトのベース・アド
レス−フィールドbase、 l t:’ットの選択フ
ィールドsel、4ビットのマスク・フィールドmas
kおよび本発明には関与しない1ピツ) (dly)の
13ビツトで構放される。
The multi-branch microinstruction in this embodiment has a seven format format, as shown in FIG. sel, 4-bit mask field mas
13 bits of k and 1 bit (dly) which are not involved in the present invention are left alone.

この多分岐マイクロ命令は、次のように記述されるもの
とする。
It is assumed that this multi-branch microinstruction is written as follows.

MJMPO(鋭」、丑譚建); MJMPI(閃」訓J連〕; MJMPO命令は選択フィールド5elf、(Qに、M
JMPl命令は選択フィールドsel 1klにする以
外は共通である。ニーにに16fil類の多分岐先の先
頭アドレス全記述するが、次のような制限が与えられる
MJMPO (Ei”, Utanken); MJMPI (Sen” Kun Jren); MJMPO command has selection field 5elf,
The JMPl command is the same except that the selection field is set to sel 1kl. All the starting addresses of the multi-branch destinations of the 16fil type are written on the same page, but the following restrictions are imposed.

MA %  (2△8)=adrs%(2△8片・・制
限1adrs mod (2△5)=0・・・・・・・
・・・・・・・・・・・制限2ここで−は、整数の除算
上水す演算子である。
MA % (2△8)=adrs% (2△8 pieces... limit 1adrs mod (2△5)=0...
......Restriction 2 Here, - is an integer division operator.

これらの制限は、多分岐先の先頭アドレスが32ワード
・バウンダリの先頭にあり、しかも現在のアドレス(多
分岐マイクロ命令の記述しであるアドレス)に対して、
上位8ビツトが同一のアドレスであること〒指定してい
る。これらの条件は、マイクロ命令メモリ101の論理
的なアドレス空間が十分大きい場合、マイクロプログラ
ムにとって何等欠点となるところではない。
These restrictions apply if the first address of the multi-branch destination is at the beginning of the 32-word boundary and the current address (the address where the multi-branch microinstruction is written) is
It specifies that the upper 8 bits are the same address. These conditions do not pose any disadvantage to the microprogram if the logical address space of the microinstruction memory 101 is sufficiently large.

adrs (!:ベース・アドレス・フィール)”ba
seの関係は、次式で与えられる。
adrs (!: base address feel)”ba
The relationship of se is given by the following equation.

base=(adrs%(2△5 ) )mod (2
△幻;マイクロ命令メモリ101のアドレス空間は、1
6ビツトで与えられ、アドレス・レジスタ304が次に
実行すべきマイクロ命令を格納しているアドレスMAO
−15が指示する。
base=(adrs%(2△5))mod(2
△Illusion: The address space of the microinstruction memory 101 is 1
The address MAO is given in 6 bits and the address register 304 stores the microinstruction to be executed next.
-15 indicates.

アドレス・レジスタ304は、多分岐マイクロ命令がテ
コードされたこと金示すLDMB凡信号圧信号て、最上
位8ビツトにはアドレス・レジスタの上位8ピッl−M
A8−15’に、次の3ピツトには多分岐マイクロ命令
のベース・アドレス・フィールドbaseの1直全、次
の4ビツトには2人力ANL)ゲート310〜313の
出力?、最下位ピットには論理(lラッチする。8ビツ
ト・レジスタ300h、f−トバス106の最下位8ビ
ア)に接続され、ラッチ信号WkLiViB九がアクテ
ィブになった際に、データ・バス106の最下位8ビツ
トの1直全ラツチする。4ビツト・マルチプレクサ30
1は、出力として多分岐iイクロ命合の選択フィールド
selがOの場合は8ビツト・レジスタ300の下位4
ビツト?、選択信号selが1の場合は、8ビツト・レ
ジスタの上位4ビツト全出力する。
The address register 304 contains an LDMB signal pressure signal indicating that a multi-branch microinstruction has been decoded.
A8-15', the next 3 bits contain the 1st shift of the base address field base of the multi-branch microinstruction, and the next 4 bits contain the 2-manual ANL) output of gates 310-313? , the lowest pit is connected to the logic (l latched, 8-bit register 300h, lowest 8 vias of the f-bit bus 106), and when the latch signal WkLiViB9 becomes active, the lowest bit of the data bus 106 is connected. Latch all lower 8 bits in 1st shift. 4-bit multiplexer 30
1 is the output of the lower 4 of the 8-bit register 300 when the selection field sel of the multi-branch i-microcoordination is O.
Bit? , when the selection signal sel is 1, all upper 4 bits of the 8-bit register are output.

4ビツト・マルチプレクサ301の出力および多分岐マ
イクロ命令のマスク・フィールドmaskに対応する4
ビツトのデータは、それぞれ2人力ANl)ゲート31
0〜313に接続され、論理績?アドレス・レジスタの
中位4ビツトに供給する。
4 corresponding to the output of the 4-bit multiplexer 301 and the mask field mask of the multi-branch microinstruction.
Bit data is 2-man power ANl) Gate 31
Connected to 0-313, logical score? Supply to the middle 4 bits of the address register.

次に、不実施例の動作全前記BC1)の符号処理の例を
用いて説明する。今、転送マイクロ命令の実行によって
、8ビツト・レジスタ300には工0111100b(
(JBF”h)がセットされているとすゐ。
Next, the operation of the non-embodiment will be explained using an example of the code processing described above BC1). Now, by executing the transfer microinstruction, the 8-bit register 300 is set to 0111100b (
(JBF”h) is set.

0100番地において多分岐マイクロ命令MJMi’1
(prOc−base、lll1b);が実行されよう
とすると、マイクロオーダLIJMB凡がアクティブに
なる。この時、多分岐マイクロ命令の各フィールドは、
仄のようにセットされている。
Multi-branch microinstruction MJMi'1 at address 0100
When (prOc-base, llll1b); is about to be executed, the microorder LIJMB becomes active. At this time, each field of the multi-branch microinstruction is
It is set as if it were dark.

sel・・・・・・・・1b base・・・・・・・・・001b mask・・・・・・・・・1lllbアドレス・レジ
スタ304の現在の値はoooo。
sel......1b base......001b mask......1lllb The current value of the address register 304 is oooo.

00100000000bであるから、新tにアドレス
・レジスタ304の上位8ビツトににUOOOOUOl
bが、次の3ビツトにはbaseの値ooibが、次の
4ビツトには2人力ANIJ310〜313の出力がセ
ットされろか、sel信号が1でああため8ビツト・レ
ジスタ300の上位4ビット・データ1011bに対し
てmaskの1m1111M’)論理積?取った101
1b がセットされろ。アドレス・レジスタの最下位ビ
ットは、常にOがセットされる。
Since it is 00100000000b, the upper 8 bits of the address register 304 are newly set to UOOOOOUOl.
b, the next 3 bits are set to the base value ooib, and the next 4 bits are set to the outputs of the two-manufactured ANIJ310 to 313. Since the sel signal is 1, the upper 4 bits of the 8-bit register 300 are set. 1m1111M') AND of mask for data 1011b? 101 taken
1b should be set. The least significant bit of the address register is always set to O.

以上の動作の結果、アドレス・レジスタ304は、oo
oooooloolioiiobすなわち0136番地
にセットされる。
As a result of the above operations, the address register 304 becomes oo
It is set to ooooolooolioiiob, that is, address 0136.

同様に、8ビツト着レジスタの上位4ビツト・データn
の値によって、多分岐マイクロ命令MJMP1(pro
c−base 、 111 l b) ;の実行結果、
アドレスは次のように移動する。
Similarly, the upper 4 bits of data n of the 8-bit destination register
Depending on the value of the multi-branch microinstruction MJMP1 (pro
c-base, 111 l b); execution result,
The address moves as follows.

n(二進)    二−二区(十六進)1110   
    013C 1111013E これらの分岐先アドレスには、以下に示すLうに正数の
処理を行なうproc−plug、負数の処理を打なう
proc−minus、  エラー処f9 f ′rT
fxうproc−errorへの分岐マイクロ命令JM
)’(proc−plus);、JMP (proc−
minus) ;お工びJMP (proc−erro
r)が記述されており、多分岐マイクロ合金の実行終了
後いずれかの10シジヤへ制御が遷移する。
n (binary) 2-2 ward (hexadecimal) 1110
013C 1111013E These branch destination addresses include proc-plug for processing positive numbers, proc-minus for processing negative numbers, and error processing f9 f 'rT as shown below.
Branch microinstruction JM to fx upproc-error
)'(proc-plus);, JMP (proc-
minus) ;Process JMP (proc-erro
r) is described, and after the execution of the multi-branched microalloy is completed, the control transitions to one of the 10 stages.

第9図に、これらの10シジヤならひに多分岐マイクロ
命令のロケ−シランの関係f示す。
FIG. 9 shows the location-to-run relationship of these 10 multi-branch microinstructions.

70シジヤ 処理 アドレス proc−plus  正数 0134,0138,0
130,013Hproc −mi nus  負数 
0136,013Aproc−error   エラー
 0120,0122,0124,0126,0128
゜012A、0120,01座、0130,0132上
記動作例では、0136a区制御が移っ几後、JMP 
(proc−minus ) ;命令の夷−?Tによっ
て制御はproc−minusに記述された負数の処理
プロシジャに移る。
70 Shijiya Processing Address proc-plus Positive number 0134,0138,0
130,013Hproc -minus negative number
0136,013Aproc-error Error 0120,0122,0124,0126,0128
゜012A, 0120, 01 seat, 0130, 0132 In the above operation example, after the 0136a section control is transferred, JMP
(proc-minus) ;Instruction -? By T, control is transferred to the negative number processing procedure described in proc-minus.

同様に、8ビツト・レジスタ300の上位4ビツト11
10bがセットされている場合は、013C番地ケ経由
してproc−plusへ移り正数の処理?、0010
bがセットされている場合は、0128番地全経由して
proc−errorへ移りエラーのための処理プロシ
ジャを起動することができる。
Similarly, the upper 4 bits 11 of the 8-bit register 300
If 10b is set, go to proc-plus via address 013C and process positive numbers? ,0010
If b is set, it is possible to move to proc-error via address 0128 and start a processing procedure for the error.

次に、本従来例における別の動作を説明する。Next, another operation in this conventional example will be explained.

本動作例では、第10図に示すように8ビツト・レジス
タ400には8ビツト・ステータス・レジスタ400の
値が、転送マイクロ命令の実行に工ってセットされてい
るとする。ステータス・レジスタ400の各ビットは、
次に示すようVC3つのフィールドSTO(3ビツト)
、5TI(2ビツト)およびSr1 (lビット)に分
割されており、それぞれステータス・レジスタのビット
o〜2、ビット5〜6およびビット7に配置されている
In this example of operation, it is assumed that the value of the 8-bit status register 400 is set in the 8-bit register 400 for the execution of a transfer microinstruction, as shown in FIG. Each bit of status register 400 is
VC three fields STO (3 bits) as shown below
, 5TI (2 bits) and Sr1 (1 bit), and are respectively located at bits o-2, bits 5-6 and bit 7 of the status register.

ステータス・レジスタ400のビット3お工び4は、定
義されていないが不足である。
Bits 3 and 4 of status register 400 are undefined but missing.

それぞれのフィールドをチェックするために、以下の命
令を用いる。
Use the following commands to check each field.

フィールド 多分岐マイクロ命令  号車ば「L口こL
S’l”o     MJMPO(adrsO,01l
lb); 0,2.4,6,8.OA。
Field Multi-branch microinstruction
S'l”o MJMPO(adrsO,01l
lb); 0, 2.4, 6, 8. O.A.

民、叫(+adrsO) STI    MJME’1(adrsl、0]10b
);  4.s、oe、tm(+adrsl ) Sr1    MJMPI(adrs2,1000b)
;  0,8(+adrs2)例えば、ST1フィール
ド?チェックする場合、S 1’ 1の内容がoobな
らは4番地、Olbならば8番地、10bならばOC番
地、11番地ならばOE帯地(それぞれペース・アドレ
スadr81 k刃口える)に制御を移すことができる
People, shout (+adrsO) STI MJME'1 (adrsl, 0] 10b
); 4. s, oe, tm (+adrsl) Sr1 MJMPI (adrs2, 1000b)
; 0,8 (+adrs2) For example, ST1 field? When checking, if the content of S1'1 is oob, control is transferred to address 4, if it is Olb, it is address 8, if it is 10b, it is OC address, and if it is address 11, it is transferred to OE belt (each pace address adr81k blade). be able to.

前記不発明の実施例でに、8ビツトのパラメータ全二分
割し、最大16ウエイで2.4.8.16ウエイを選択
することができたが、マルチウェイ・ブラッチ・レジス
タ200の長さ、および多分岐マイクロ命令のパラメー
タ選択用フィールドSal  の長さを増すことで、よ
り長いパラメータ全多重分割し、短い長さのマイクロ命
令によってよジ多重度の高い多分岐マイクロ命令全提供
することができる。
In the above-described uninvented embodiment, the 8-bit parameter is divided into two, and 2.4.8.16 ways can be selected from a maximum of 16 ways, but the length of the multiway blatch register 200, By increasing the length of the parameter selection field Sal of the multi-branch micro-instruction, it is possible to multiplex all of the longer parameters and provide all multi-branch micro-instructions with a high degree of multiplicity using short-length micro instructions. .

〔発明の効果) 以上説明してき窺工うに、本発明を用いることでパラメ
ータの内容によって処理を変更する必要のめるマイクロ
プログラムにおいて、パラメータの長さや埴に工らす高
速に分岐動作全行なうことができる命令語長の短い、し
かも汎用性に富んだマイクロ命令?提供することができ
る。
[Effects of the Invention] As has been explained above, by using the present invention, in a microprogram that requires changing processing depending on the contents of a parameter, all branching operations can be performed at high speed depending on the length of the parameter. Microinstructions with short instruction word length and high versatility? can be provided.

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

第1図は本発明の一笑m例ケ示す図面、第2図は条件付
きマイクロ命令の一般的なフォーマット金子す図面、第
3図は従来のマイクロスミグラム制御装置途を採用した
情報処鼎装噌の一例を示す図面、第4図はバック1−B
CHの一般的なフォーマットに示す図面、第5図は多分
岐マイクロ命令の一般的なフォーマツトラ示す図面、第
6図は多分岐マイクロ命令のアドレス指定方法全説明す
る図面、渠7図は本発明の具体的な夷n例I上水す図面
、第8図は多分岐マイクロ命令の具体的なフォーマット
金示す図面、@91図(グBCD符号処理にνけるプロ
シジャのロケーション関係金示す図面、第10図は本発
明の他の実施+9Ilにおけるステータス・レジスタの
湾造勿示す図面である。 100・・・アドレス・レジスタ、101・・・マイク
ロ命令メモリ、102・・・命令ラッチ、103・・・
インクリメンタ、104・・・命令テコーダ、105・
・・ステータス発生器、106・・・データ・バス、1
07・・・算術論理演算ユニット、108・・・プラン
ナ18号発生器、109・・・分岐アドレス発生器、1
10・・・レジスタ・ファイル、200・・・マルチウ
ェイ・ブラッチ・レジスタ、201・・・マルチプレク
サ、202・・・マルチウェイ・ブラッチ・アドレス発
生器、203・・・アドレス・レジスタ、204・・・
命令デコーダ、300・・・8ビツト・ラッチ、301
・・・4ビツト・マルチプレクサ、302・・・マルチ
ウェイ・ブラッチ・アドレス発生器、303・・・16
ビツト・アドレス・レジスタ、310〜313・・・2
人力ANL)、400・・・8ビツト・ステータス・レ
ジスタ 代理人 弁理士  内 原   。 OF     命θに一ルト 躬ぼ 第5図(従来#s ) パーイト尾ガ                   
             ハ゛イ1−Olα) 牧値
什rプ゛令1丈のf局合 ハイドBτ  ハ゛イト日ガづ           
             ハ゛イ/−0(tノンが(
簀Qオフ丁ヂ13rf!Eの#A消J 図 消乙図 Ao−t5 、竹q図
Fig. 1 is a drawing showing a simple example of the present invention, Fig. 2 is a drawing showing the general format of conditional microinstructions, and Fig. 3 is an information processing system using a conventional micro-Sumigram control device. A drawing showing an example of a spoon, Figure 4 is back 1-B
Figure 5 is a diagram showing the general format of CH, Figure 5 is a diagram showing the general format of multi-branch micro instructions, Figure 6 is a diagram fully explaining the addressing method for multi-branch micro instructions, and Figure 7 is a diagram showing the present invention. Figure 8 is a diagram showing the concrete format of multi-branch microinstructions, Figure 91 is a diagram showing the location relationship of procedures in BCD code processing, FIG. 10 is a diagram showing the structure of the status register in another embodiment +9Il of the present invention. 100...address register, 101...microinstruction memory, 102...instruction latch, 103...
Incrementer, 104... Instruction coder, 105...
...Status generator, 106...Data bus, 1
07... Arithmetic logic unit, 108... Planner No. 18 generator, 109... Branch address generator, 1
DESCRIPTION OF SYMBOLS 10... Register file, 200... Multiway blatch register, 201... Multiplexer, 202... Multiway blatch address generator, 203... Address register, 204...
Instruction decoder, 300...8-bit latch, 301
...4-bit multiplexer, 302...Multiway blatch address generator, 303...16
Bit address register, 310-313...2
Human power ANL), 400... 8-bit status register agent Uchihara, patent attorney. OF Life θ Ichiruto tripped Figure 5 (Conventional #s) Part tail moth
High 1-Olα) Makishi level 1 length f phase hide Bτ High day gap
Hi/-0 (t non is (
Screen Q Off Dingji 13rf! #A of E

Claims (1)

【特許請求の範囲】[Claims] マイクロ命令の実行によって値が設定されるラッチに保
持されたデータからデータの少なくとも一部を抽出する
手段、前記抽出手段によって抽出されたデータをマイク
ロ命令で選択的にマスクする手段を含み、分岐先アドレ
スの全てあるいは一部を前記マスクされたデータによっ
て決定することを特徴とするマイクロプログラム制御装
置。
means for extracting at least part of the data from data held in a latch whose value is set by execution of a microinstruction; and means for selectively masking the data extracted by the extraction means with the microinstruction; A microprogram control device characterized in that all or part of an address is determined by the masked data.
JP60250059A 1985-11-08 1985-11-08 Micro program controller Expired - Fee Related JP2587407B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP60250059A JP2587407B2 (en) 1985-11-08 1985-11-08 Micro program controller
EP86115571A EP0221577B1 (en) 1985-11-08 1986-11-10 Microprogram control unit
DE3650473T DE3650473T2 (en) 1985-11-08 1986-11-10 Micro program control unit
US06/928,421 US4907192A (en) 1985-11-08 1986-11-10 Microprogram control unit having multiway branch
DE3650740T DE3650740D1 (en) 1985-11-08 1986-11-10 Micro program control unit
EP92108451A EP0500151B1 (en) 1985-11-08 1986-11-10 Microprogram control unit
US07/470,259 US5210833A (en) 1985-11-08 1990-01-25 System for selectively masking data in a branch address register and replacing the microinstruction address register by the masked data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60250059A JP2587407B2 (en) 1985-11-08 1985-11-08 Micro program controller

Publications (2)

Publication Number Publication Date
JPS62109134A true JPS62109134A (en) 1987-05-20
JP2587407B2 JP2587407B2 (en) 1997-03-05

Family

ID=17202186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60250059A Expired - Fee Related JP2587407B2 (en) 1985-11-08 1985-11-08 Micro program controller

Country Status (1)

Country Link
JP (1) JP2587407B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5588140A (en) * 1978-12-27 1980-07-03 Hitachi Ltd Address branch system of microprogram controller
JPS5642857A (en) * 1979-09-17 1981-04-21 Nec Corp Address control device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5588140A (en) * 1978-12-27 1980-07-03 Hitachi Ltd Address branch system of microprogram controller
JPS5642857A (en) * 1979-09-17 1981-04-21 Nec Corp Address control device

Also Published As

Publication number Publication date
JP2587407B2 (en) 1997-03-05

Similar Documents

Publication Publication Date Title
JP5646737B2 (en) Conditional comparison instructions
US4761755A (en) Data processing system and method having an improved arithmetic unit
US4038643A (en) Microprogramming control system
US3991404A (en) Apparatus for carrying out macroinstructions in a microprogrammed computer
US3374466A (en) Data processing system
US20070124631A1 (en) Bit field selection instruction
US20070106882A1 (en) Byte-wise permutation facility configurable for implementing DSP data manipulation instructions
JPS58182754A (en) Arithmetic processor
US3001708A (en) Central control circuit for computers
JP2007122626A (en) Microprocessor
Smotherman A brief history of microprogramming
JPH034936B2 (en)
JPS62109134A (en) Microprogram controller
KR100328141B1 (en) Binary odds implemented by existing hardware with little change
JP3570287B2 (en) Microcomputer
JPH04260926A (en) Bit retrieving circuit and data processor provided with the same
US20070106881A1 (en) Bit-wise operation followed by byte-wise permutation for implementing DSP data manipulation instructions
JPH1173301A (en) Information processor
KR940002274B1 (en) Data mask circuit for processor of reduced instruction set computer
JPH1196001A (en) Device for executing program and method for converting program
JPH02146628A (en) Data processor
JP2004252556A (en) Information processor
JPH02127726A (en) Information processor
JPH01290049A (en) Memory access control system
JPS6273329A (en) Arithmetic processor

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees