JP2587407B2 - Micro program controller - Google Patents

Micro program controller

Info

Publication number
JP2587407B2
JP2587407B2 JP60250059A JP25005985A JP2587407B2 JP 2587407 B2 JP2587407 B2 JP 2587407B2 JP 60250059 A JP60250059 A JP 60250059A JP 25005985 A JP25005985 A JP 25005985A JP 2587407 B2 JP2587407 B2 JP 2587407B2
Authority
JP
Japan
Prior art keywords
branch
microinstruction
address
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.)
Expired - Fee Related
Application number
JP60250059A
Other languages
Japanese (ja)
Other versions
JPS62109134A (en
Inventor
博昭 金子
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
Nippon Electric Co Ltd
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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、マイクロプログラム制御方式を採用した情
報処理装置に関し、とくにマイクロプログラムの分岐制
御回路に関する。
Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an information processing apparatus employing a microprogram control method, and more particularly to a microprogram branch control circuit.

〔従来の技術〕[Conventional technology]

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

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

マイクロ命令メモリ101に格納されたマイクロプログ
ラムは、アドレス・レジスタ100が指定するアドレスに
よってアクセスされ、対応するマイクロ命令が命令ラッ
チ102に一度ラッチされた後、命令デゴーダ104によって
解析され、それによって情報処理装置内の制御点に対す
る制御信号(マイクロオーダ)が発生される。かくし
て、命令デコーダ104によって条件付き分岐マイクロ命
令が検出されると、マイクロオーダMJMPが発行される。
分岐条件判定回路108では、MJMPを検出すると分岐マイ
クロ命令内の条件フィールドMCODの内容と算術演算装置
の状態を示すステータス信号STATUSとを比較し、分岐条
件を満足しているか否かを判定し、満足している場合は
一致信号LDJMPを発生する。
The microprogram stored in the microinstruction memory 101 is accessed by the address specified by the address register 100, and after the corresponding microinstruction is once latched in the instruction latch 102, the microprogram is analyzed by the instruction degoder 104, whereby the information processing is performed. A control signal (micro order) for a control point in the device is generated. Thus, when the instruction decoder 104 detects a conditional branch microinstruction, a microorder MJMP is issued.
When detecting the MJMP, the branch condition determination circuit 108 compares the content of the condition field MCOD in the branch microinstruction with the status signal STATUS indicating the state of the arithmetic operation device, and determines whether the branch condition is satisfied. If so, a coincidence signal LDJMP is generated.

前記アドレス・レジスタ100は、LDJMP信号がインアク
ティブである場合は、アドレス・レジスタ100の内容MA
を+1歩進するインクリメンタ103の内容をロードする
ことで、アドレス内容が順次1ずつインクリメントさ
れ、マイクロ命令をシーケンシャルにアクセスする。一
方LDJMPが発生した場合、分岐マイクロ命令のアドレス
・フィールドによって決定される分岐先のアドレスを発
生する分岐アドレス発生器109の出力をアドレス・レジ
スタ100にロードすることで、分岐動作を行なう。
The address register 100 stores the contents MA of the address register 100 when the LDJMP signal is inactive.
Is incremented by one, the contents of the address are sequentially incremented by one, and micro-instructions are sequentially accessed. On the other hand, when the LDJMP occurs, the branch operation is performed by loading the output of the branch address generator 109 for generating the address of the branch destination determined by the address field of the branch microinstruction into the address register 100.

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

今、パラメータNが0〜nまで変化する可能性があ
り、パラメータNが0の時はマイクロ命令の集合である
プロシジャ(手続)0を、パラメータNが1の時はプロ
シジャ1を、同様にパラメータNがnの時はプロシジャ
nを実行するような応用例を例に考える。
Now, there is a possibility that the parameter N changes from 0 to n. When the parameter N is 0, the procedure (procedure) 0 which is a set of microinstructions is set. When the parameter N is 1, the procedure 1 is set. When N is n, consider an application example in which procedure n is executed.

従来のマイクロプログラム制御装置を採用した情報処
理装置において、前記多分岐機能を実現するためには、
次に示すような複数のマイクロ命令による処理が必要で
ある。
In an information processing apparatus employing a conventional microprogram controller, in order to realize the multi-branch function,
Processing by a plurality of microinstructions as shown below is required.

Nが0かどうかチェックする 0ならばプロシジャ0へ分岐する N−1を演算する 結果が0ならばプロシジャ1へ分岐する N−nを演算する 結果が0ならばプロシジャnへ分岐する 上記の処理において、ステップ、およびでは減
算動作を伴うので算術論理演算装置107を用い、ステッ
プ、およびでは算術論理演算装置107における演
算結果が0であるかどうかを判断する条件付き分岐マイ
クロ命令を用いている。
Check whether N is 0. If 0, branch to procedure 0. Operate N-1. If result is 0, branch to procedure 1. Operate N-n. If result is 0, branch to procedure n. In the above, the arithmetic logic unit 107 is used because the step and the step involve a subtraction operation, and the conditional branch microinstruction for determining whether the operation result in the arithmetic logic unit 107 is 0 is used in the step and the step.

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

N−nを演算する 結果が正ならばエラー処理用のプロシジャへ分岐する 以上説明したように、パラメータの値によって実行す
るプロシジャを変化させるためには、少なくともプロシ
ジャの数だけの演算マイクロ命令と、条件付き分岐マイ
クロ命令を使用するため、マイクロプログラムの容量が
増加し、平均的に各プロシジャへ分岐するまでの時間が
増加するという欠点がある。
Calculate N−n If the result is positive, branch to the procedure for error processing. As described above, in order to change the procedure to be executed according to the value of the parameter, at least the number of computation micro-instructions equal to the number of procedures, The use of conditional branch microinstructions has the disadvantage that the capacity of the microprogram is increased and the time required to branch to each procedure is increased on average.

さらに、本質的に分岐機能を実現しているにもかかわ
らず、演算動作を伴うためにレジスタ・ファイル110、
データ・バス106および算術論理演算装置107のようなデ
ータ操作に関与するハードウェア資源を占有しなければ
ならないという欠点を伴っている。
In addition, the register file 110,
It has the disadvantage that it must occupy the hardware resources involved in data operations, such as data bus 106 and arithmetic logic unit 107.

パラメータの値によって実行するプロシジャを変化さ
せる必要のある処理としては、コマンドやステータスと
してプロシジャが実行機能を指定される応用もあるが、
ここでは、二進化十進数(BCD)の算術演算における符
号処理を例にとって説明する。
As a process that needs to change the procedure to be executed depending on the value of the parameter, there is an application in which the procedure specifies the execution function as a command or status.
Here, a description will be given of an example of a code process in a binary coded decimal (BCD) arithmetic operation.

BCDは、0〜9までの値を4ビットの二進数0000〜100
1で表現する数値表現体系である。各4ビットは桁(デ
ィジット)と呼ばれ、1バイト(8ビット)・データに
2桁のBCDを格納する。特にこのようなBCDは、パックト
BCDとして、各1バイト・データが1桁のBCDを格納する
アンパックトBCDと区別されることがある。
BCD is a 4-bit binary number from 0000 to 100 for values from 0 to 9.
It is a numerical representation system expressed by 1. Each 4 bits is called a digit (digit), and two bytes of BCD are stored in one byte (8 bits) of data. In particular, such BCDs are packed
The BCD may be distinguished from an unpacked BCD in which each one-byte data stores a one-digit BCD.

第4図に、アンパックトBCDの一般的なフォーマット
を示す。最大有意桁(MSD)を含むバイト・データBn
(数値を表現する桁の長さが奇数である場合)あるいは
MSDを含むバイト・データBnの次のバイト・データBn+
1(数値を表現する桁の長さが偶数である場合の上位側
の桁は符号桁として各数値を表わす桁の例によって表わ
される十進数が正であるか、あるいは負であるかを指定
する。これに対して、符号桁以外の桁を数値桁と呼ぶ。
FIG. 4 shows a general format of an unpacked BCD. Byte data Bn including the most significant digit (MSD)
(If the length of the digit representing the number is odd) or
Byte data Bn following byte data Bn including MSD +
1 (when the length of the digit representing the numerical value is an even number, the upper digit specifies whether the decimal number represented by the example of the digit representing each numerical value is positive or negative as a sign digit On the other hand, digits other than the sign digit are called numerical digits.

符号桁は、その値によって十進数の符号を表わすが、
最も頻繁に使用される値としては、数値として正しくな
い値、すなわち1010〜1111が用いられる。符号桁の内容
と符号の対応関係としての代表的な例を以下に示す。符号桁 符号 1010 正 1011 負 1100 正 1101 負 1110 正 1111 正 前記符号体系の基本的な考え方は、符号桁の最小有意
ビット(LSB)の値が0ならば正、1ならば負である
が、例外として符号桁が1111の時のみは正を表わしてい
る。
The sign digit represents the sign of the decimal number by its value,
The most frequently used value is a value that is incorrect as a numerical value, that is, 1010 to 1111. A representative example of the correspondence between the contents of the sign digits and the sign is shown below. Sign Digit Code 1010 Positive 1011 Negative 1100 Positive 1101 Negative 1110 Positive 1111 Positive The basic concept of the coding system is that if the value of the least significant bit (LSB) of the sign digit is 0, it is positive if it is 1 and negative if it is 1. As an exception, only when the sign digit is 1111, it indicates positive.

さらに、符号桁は上記以外の値、すなわち0000〜1001
までの値(これらの値は、数値桁としては正しい範囲で
あり、数値桁の範囲と符号桁の範囲は排反である)であ
る場合、十進数全体としての表現方法の誤りを検知しな
ければならない。
Furthermore, the sign digit is a value other than the above, that is,
(These values are in the correct range for numeric digits, and the range of numeric digits and the range of sign digits are disjoint.) Must.

符号桁の内容によって、正数を取り扱うプロシジャpr
oc−plus、負数を取り扱うプロシジャproc−minus、表
現方法のエラーを検知した場合に処理されるプロシジャ
proc−errorに分岐し、それぞれの処理を行なうための
多分岐機能は、以下のように記述される。
Procedure pr that handles positive numbers depending on the contents of the sign digit
oc-plus, procedure proc-minus that handles negative numbers, procedure that is processed when an error in the expression method is detected
The multi-branch function for branching to proc-error and performing each processing is described as follows.

ただしここで、SIGNは符号桁の内容を示す。前記のよ
うな高級言語風の記述をマイクロプログラムで表現する
と、数倍のステップ数に展開されるため、マイクロプロ
グラムの容量ならびに各プロシジャ(proc−error、pro
c−plusおよびproc−minus)の実行を開始するまでの平
均実行ステップ数が長くなることになる。
Here, SIGN indicates the contents of the sign digit. When the high-level language-like description as described above is expressed by a microprogram, the number of steps is expanded to several times, so that the capacity of the microprogram and each procedure (proc-error, pro
The average number of execution steps before starting execution of c-plus and proc-minus) will be longer.

以上述べた符号桁の処理は、BCDの演算を行なう時に
必ず実行される前処理であるため、この処理の実行時間
はBCD演算の実行時間に必ず反映される。BCD演算に対し
て高い性能を求める場合、符号桁の処理のための実行時
間は性能に対して支配的になる。
Since the above-described processing of the code digit is a pre-processing that is always performed when performing the BCD calculation, the execution time of this processing is always reflected in the execution time of the BCD calculation. When high performance is required for the BCD operation, the execution time for processing the code digit becomes dominant over the performance.

さらに数値桁に関しても、演算を開始する以前に数値
桁としての正当性をチェックする必要がある。前述のよ
うに、数値桁としては0000〜1001が正しい値であり、10
10〜1111まではエラーを検知しなければならない。数値
桁は、各バイト・データの上位あるいは下位4ビットに
分割されて格納されているため、各桁の正当性チェック
は、偶数番目の桁か奇数番目の桁かによって、LSB位置
の桁合せが必要になる。
Further, regarding the numerical digits, it is necessary to check the validity of the numerical digits before starting the operation. As mentioned above, the correct value for the numeric digits is 0000-101,
Errors must be detected from 10 to 1111. Numerical digits are stored by being divided into the upper or lower 4 bits of each byte data. Therefore, the validity check of each digit depends on whether it is an even-numbered digit or an odd-numbered digit. Will be needed.

符号桁の処理同様に、BCD演算を行なう時に必ず実行
される前処理であり、全体の演算時間に対して影響力が
大であると言える。
Similar to the processing of the sign digit, it is a pre-processing that is always executed when the BCD operation is performed, and can be said to have a large influence on the entire operation time.

〔発明が解決しようとする問題点〕[Problems to be solved by the invention]

本発明は、前記従来例の欠点に鑑がみ、長いパラメー
タや可変長のパラメータ、あるいは一つのパラメータの
中に複数のパラメータが圧縮されている時にその中の一
つのパラメータによって複数の番地に分岐する際、短い
命令語長でしかも実行時間の速い分岐機能を有するマイ
クロ命令制御回路を提供することにある。
The present invention has been made in view of the above-described drawbacks of the conventional example, and has been described in connection with a long parameter, a variable-length parameter, or a plurality of addresses when a plurality of parameters are compressed in one parameter. It is another object of the present invention to provide a microinstruction control circuit having a short instruction word length and a branching function with a fast execution time.

〔問題点を解決するための手段〕[Means for solving the problem]

本発明によれば、データバスに接続され転送マイクロ
命令の実行により前記データバス上のパラメータ情報を
保持するラッチと、このラッチに保持されたパラメータ
情報のうち連続する所定のビット列情報を抽出する抽出
手段と、この抽出手段によって抽出されたデータを分岐
マイクロ命令で選択的にマスクする手段とを備え、分岐
先アドレスの全てあるいは一部を前記マスクされたデー
タを直接使用することにより決定したマイクロプログラ
ム制御装置が得られる。
According to the present invention, a latch connected to a data bus and holding parameter information on the data bus by execution of a transfer microinstruction, and extraction for extracting continuous predetermined bit string information from the parameter information held in the latch Means for selectively masking the data extracted by the extracting means with a branch microinstruction, and a microprogram in which all or a part of the branch destination address is determined by directly using the masked data. A control device is obtained.

〔発明の作用・原理〕[Action and principle of the invention]

本発明は、パラメータ群を前もってラッチし、ラッチ
したパラメータ群から所定のデータを抽出し,抽出した
パラメータにマスクを施し、マスクすることによって得
られたデータを分岐先のアドレスとすることで、パラメ
ータの実質的な長さを短くし、さらにマスクすることで
分割したパラメータの中から分岐機能に関与するビット
を選択することができるようにしたものである。
According to the present invention, a parameter group is latched in advance, predetermined data is extracted from the latched parameter group, a mask is applied to the extracted parameter, and data obtained by masking is used as an address of a branch destination. Are reduced in length, and bits related to the branch function can be selected from the divided parameters by masking.

〔実施例〕〔Example〕

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

第1図は、本発明の一実施例を示す図である。アドレ
ス・レジスタ203は、インクリメンタ103が発生するシー
ケンシャルにマイクロプログラムの実行が進んだ場合に
次に実行すべきマイクロ命令を格納しているアドレス、
無条件あるいは条件付き分岐マイクロ命令を実行する時
LDJMP信号によって分岐アドレス発生器109が生成するブ
ランチ先のアドレス、および多分岐マイクロ命令を実行
する時LDMBR信号によってマルチウェイ・ブランチ・ア
ドレス発生器202が生成するブランチ先のアドレスをラ
ッチするレジスタである。マルチウェイ・ブランチ・レ
ジスタ200は、データ・バス106と接続され、ラッチ信号
WRMBRが発生した時データ・バス106の内容あるいはその
一部の内容を保持するラッチである。マルチプレクサ20
1は、マルチウェイ・ブランチ・レジスタ200の内容MBR
を多分岐マイクロ命令の選択フィールドselの値に従っ
て選択出力する。マルチウェイ・ブランチ・アドレス生
成器202は、マルチプレクサ201の出力、多分岐マイクロ
命令のマスク・フィールドmaskおよびベース・フィール
ドbaseによって決定される分岐先アドレス生成する回路
である。命令デコーダ204は、転送マイクロ命令がマル
チウェイ・ブランチ・レジスタ200への転送を指定した
ことを示す信号WRMBRおよび多分岐マイクロ命令が実行
されることをしめす信号LDMBR等のマイクロオーダを発
生する手段である。
FIG. 1 is a diagram showing one embodiment of the present invention. The address register 203 is an address that stores a microinstruction to be executed next when the microprogram is sequentially executed by the incrementer 103,
When executing an unconditional or conditional branch microinstruction
This register latches the branch destination address generated by the branch address generator 109 by the LDJMP signal and the branch destination address generated by the multi-way branch address generator 202 by the LDMBR signal when executing a multi-branch microinstruction. . The multiway branch register 200 is connected to the data bus 106 and
This latch holds the contents of the data bus 106 or a part of the contents when the WRMBR occurs. Multiplexer 20
1 is the content MBR of the multiway branch register 200
According to the value of the selection field sel of the multi-branch microinstruction. The multiway branch address generator 202 is a circuit that generates a branch destination address determined by the output of the multiplexer 201, the mask field mask of the multi-branch microinstruction, and the base field base. The instruction decoder 204 generates a micro order such as a signal WRMBR indicating that the transfer microinstruction has designated transfer to the multiway branch register 200 and a signal LDMBR indicating that the multibranch microinstruction is to be executed. is there.

第5図は、多分岐マイクロ命令の一例を示す。opは多
分岐マイクロ命令のオペレーション・コードを示すフィ
ールド、selはマルチウェイ・ブランチ・レジスタ200の
内容からマルチウェイ・ブランチ・アドレス生成器202
に接続するデータを選択するフィールド、maskはselに
よって選択されたマルチウェイ・ブランチ・レジスタ20
0のフィールドに対してビット対応の有効性を指定する
フィールド、baseは分岐先アドレスのベース・アドレス
を指定するフィールドである。
FIG. 5 shows an example of a multi-branch microinstruction. op is a field indicating the operation code of the multi-branch microinstruction, and sel is a multi-way branch address generator 202 based on the contents of the multi-way branch register 200.
A field for selecting the data to be connected to, the mask is the multi-way branch register 20 selected by sel
A field for specifying the validity of the bit correspondence for the field of 0, and base is a field for specifying the base address of the branch destination address.

以下、本実施例の具体的な動作について説明する。 Hereinafter, a specific operation of the present embodiment will be described.

M個のbビット・パラメータNmで構成されるデータpa
ramsが、転送マイクロ命令の実行時に命令デコーダ204
が発生するラッチ信号WRMBRによってマルチウェイ・ブ
ランチ・レジスタ200にラッチされる。多分岐マイクロ
命令が命令ラッチ102にラッチされると、命令デコータ2
04はマイクロオーダLDMBRを発生する。マルチプレクサ2
01は、多分岐マイクロ命令の選択フィールドselによっ
て指定されるパラメータNselを出力し、マスク・フィー
ルドmaskと論理積を取るとともに、z個の0を付加し分
岐先アドレスの下位側のb+zビットを生成する。
Data pa consisting of M b-bit parameters Nm
When the rams executes the transfer microinstruction, the instruction decoder 204
Is latched in the multi-way branch register 200 by the latch signal WRMBR generated. When the multi-branch microinstruction is latched in the instruction latch 102, the instruction decoder 2
04 generates micro-order LDMBR. Multiplexer 2
01 outputs the parameter Nsel specified by the selection field sel of the multi-branch microinstruction, ANDs it with the mask field mask and adds z zeros to generate the lower b + z bits of the branch destination address I do.

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

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

new−adrs=base(2(b+z))+ (params(sel)and mask)(2z); ここでparams(sel)は、選択フィールドselによって
選択されたマルチウェイ・ブランチ・レジスタ200のb
ビット・データである。
new-adrs = base * (2 ∧ (b + z)) + (params (sel) and mask) * (2 ∧ z); wherein params (sel), the multiway branch register selected by the selection field sel 200 b
It is bit data.

第7図は、本発明のより具体的な実施例を示す図であ
る。この具体的な実施例では、8ビットのパラメータを
二分割し、選択されたパラメータに従って最大16ウェイ
の多分岐を可能にしている。こまたの実施例における多
分岐マイクロ命令のフォーマットは、第8図に示すよう
な4ビットのオペレーション・コード・フィールドop、
3ビットのベース・アドレス・フィールドbase、1ビッ
トの選択フィールドsel、4ビットのマスク・フィール
ドmaskおよび本発明には関与しない1ビット(dly)の1
3ビットで構成される。
FIG. 7 is a diagram showing a more specific embodiment of the present invention. In this specific embodiment, an 8-bit parameter is divided into two, and a maximum of 16 ways of multi-branch can be performed according to the selected parameter. The format of the multi-branch microinstruction in this embodiment is a 4-bit operation code field op, as shown in FIG.
3-bit base address field base, 1-bit selection field sel, 4-bit mask field mask, and 1-bit (dly) 1 not related to the present invention
Consists of 3 bits.

この多分岐マイクロ命令は、次のように記述されるも
のとする。
This multi-branch microinstruction shall be described as follows.

MJMP0(adrs,mask); MJMP1(adrs,mask); MJMP0命令は選択フィールドselを0に、MJMP1命令は
選択フィールドselを1にする以外は共通である。adrs
には16種類の多分岐先の先頭アドレスを記述するが、次
のような制限が与えられる。
MJMP0 (adrs, mask); MJMP1 (adrs, mask); The MJMP0 instruction is common except that the selection field sel is set to 0, and the MJMP1 instruction is set except that the selection field sel is set to 1. adrs
Describes the start addresses of 16 types of multi-branch destinations, but is restricted as follows.

MA %(28)=adrs %(28) …制限1 adrs mod(25)=0 …制限2 ここで%は、整数の除算を示す演算子である。 MA% (2 ∧ 8) = adrs% (2 ∧ 8) ... limit 1 adrs mod (2 ∧ 5) = 0 ... limit 2 where% is an operator indicating a integer division.

これらの制限は、多分岐先の先頭アドレスが32ワード
・バウンダリの先頭にあり、しかも現在のアドレス(多
分岐マイクロ命令の記述してあるアドレス)に対して、
上位8ビットが同一のアドレスであることを指定してい
る。これらの条件は、マイクロ命令メモリ101の論理的
なアドレス空間が十分大きい場合、マイクロプログラム
にとって何等欠点となるところではない。
These restrictions are based on the fact that the start 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 described) is
The upper 8 bits specify that the addresses are the same. These conditions are not a disadvantage for the microprogram if the logical address space of the microinstruction memory 101 is sufficiently large.

adrsとベース・アドレス・フィールドbaseの関係は、
次式で与えられる。
The relationship between adrs and base address field base is
It is given by the following equation.

base=(adrs %(25))mod(23); マイクロ命令メモリ101のアドレス空間は、16ビット
で与えられ、アドレス・レジスタ304が次に実行すべき
マイクロ命令を格納しているアドレスMA0−15が指定す
る。
base = (adrs% (2 ∧ 5)) mod (2 ∧ 3); the address space of the micro-instruction memory 101 is given by 16 bits, stores the microinstruction to be executed address register 304 is then Addresses MA0-15 are specified.

アドレス・レジスタ303は、多分岐マイクロ命令がデ
コードされたことを示すLDMBR信号によって、最上位8
ビットにはアドレス・レジスタの上位8ビットMA8−15
を、次の3ビットには多分岐マイクロ命令のベース・ア
ドレス・フィールドbaseの値を、次の4ビットには2入
力ANDゲート310〜313の出力を、最下位ビットには論理
0をラッチする。8ビット・レジスタ300は、データ・
バス106の最下位8ビットに接続され、ラッチ信号WRMBR
がアクティブになった際に、データ・バス106の最下位
8ビットの値をラッチする。4ビット・マルチプレクサ
301は、出力として多分岐マイクロ命令の選択フィール
ドselが0の場合は8ビット・レジスタ300の下位4ビッ
トを、選択信号selが1の場合は、8ビット・レジスタ
の上位4ビットを出力する。4ビット・マルチプレクサ
301の出力および多分岐マイクロ命令のマスク・フィー
ルドmaskに対応する4ビットのデータは、それぞれ2入
力ANDゲート310〜313に接続され、論理積をアドレス・
レジスタの中位4ビットに供給する。
The address register 303 stores the most significant 8 bits by the LDMBR signal indicating that the multi-branch microinstruction has been decoded.
The upper 8 bits of the address register MA8-15
, The value of the base address field base of the multi-branch microinstruction in the next three bits, the output of the two-input AND gates 310 to 313 in the next four bits, and logical 0 in the least significant bit. . The 8-bit register 300 stores data
Connected to the least significant 8 bits of the bus 106, the latch signal WRMBR
Latches the value of the least significant 8 bits of the data bus 106 when is activated. 4-bit multiplexer
The output 301 outputs the lower 4 bits of the 8-bit register 300 when the selection field sel of the multi-branch microinstruction is 0, and outputs the upper 4 bits of the 8-bit register when the selection signal sel is 1. 4-bit multiplexer
The 4-bit data corresponding to the output of 301 and the mask field "mask" of the multi-branch microinstruction are connected to 2-input AND gates 310 to 313, respectively, and the logical product is addressed to the address.
Supply the middle 4 bits of the register.

次に、本実施例の動作を前記BCDの符号処理の例を用
いて説明する。今、転送マイクロ命令の実行によって、
8ビット・レジスタ300には10111100b(BCh)がセット
されているとする。0100番地において多分岐マイクロ命
令MJMP1(proc−base,1111b);が実行されようとする
と、マイクロオーダLDMBRがアクティブになる。この
時、多分岐マイクロ命令の各フィールドは、次のように
セットされている。
Next, the operation of this embodiment will be described using an example of the BCD encoding process. Now, by executing the transfer microinstruction,
It is assumed that 10111100b (BCh) is set in the 8-bit register 300. When the multi-branch microinstruction MJMP1 (proc-base, 1111b); is to be executed at the address 0100, the microorder LDMBR becomes active. At this time, each field of the multi-branch microinstruction is set as follows.

sel……1b base……001b mask……1111b アドレス・レジスタ304の現在の値は000000010000000
0bであるから、新たにアドレス・レジスタ304の上位8
ビットには00000001bが、次の3ビットにはbaseの値001
bが、次の4ビットには2入力AND310〜313の出力がセッ
トされるが、sel信号が1であるため8ビット・レジス
タ300の上位4ビット・データ1011bに対してmaskの値11
11bの論理積を取った1011bがセットされる。アドレス・
レジスタの最下位ビットは、常に0がセットされる。
sel ... 1b base ... 001b mask ... 1111b Current value of address register 304 is 0000000000000000
0b, the upper 8 bits of the address register 304 are newly added.
The bits contain 00000001b and the next three bits contain the base value 001
In the next 4 bits, the output of the 2-input AND 310 to 313 is set in the next 4 bits. However, since the sel signal is 1, the upper 4-bit data 1011b of the 8-bit register 300 has the mask value 11
1011b, which is the logical product of 11b, is set. address·
The least significant bit of the register is always set to 0.

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

同様に、8ビット・レジスタの上位4ビット・データ
nの値によって、多分岐マイクロ命令MJMP1(proc−bas
e,1111b);の実行結果、アドレスは次のように移動す
る。
Similarly, the multi-branch microinstruction MJMP1 (proc-bas
e, 1111b); As a result, the address moves as follows.

これらの分岐先アドレスには、以下に示すように正数
の処理を行なうproc−plus、負数の処理を行なうproc−
minus、エラー処理を行なうproc−errorへの分岐マイク
ロ命令JMP(proc−plus);、JMP(proc−minus);お
よびJMP(proc−error)が記述されており、多分岐マイ
クロ命令の実行終了後いずれかのプロシジャへ制御が遷
移する。
These branch destination addresses have a proc-plus for processing a positive number and a proc-plus for processing a negative number as shown below.
minus, a branch microinstruction to proc-error for error processing JMP (proc-plus); JMP (proc-minus); and JMP (proc-error) are described, and after execution of the multi-branch microinstruction Control transitions to one of the procedures.

第9図に、これらのプロシジャならびに多分岐マイク
ロ命令のロケーションの関係を示す。
FIG. 9 shows the relationship between these procedures and the location of the multi-branch microinstruction.

上記動作例では、0136番地に制御が移った後、JMP(p
roc−minus);命令の実行によって制御はproc−minus
に記述された負数の処理プロシジャに移る。
In the above operation example, after control is transferred to address 0136, JMP (p
roc-minus); control is performed by execution of an instruction.
Move to the processing procedure for negative numbers described in.

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

次に、本従来例における別の動作を説明する。本動作
例では、第10図に示すように8ビット・レジスタ400に
は図示しない8ビット・ステータス・レジスタの値が、
転送マイクロ命令の実行によってセットされているとす
る。ステータス・レジスタ400の各ビットは、次に示す
ように3つのフィールドST0(3ビット)、ST1(2ビッ
ト)およびST2(1ビット)に分割されており、それぞ
れステータス・レジスタのビット0〜2、ビット5〜6
およびビット7に配置されている。ステータス・レジス
タ400のビット3および4は、定義されていないが不定
である。
Next, another operation in the conventional example will be described. In this operation example, as shown in FIG. 10, the value of an 8-bit status register (not shown) is stored in the 8-bit register 400.
It is assumed that it has been set by executing the transfer microinstruction. Each bit of the status register 400 is divided into three fields ST0 (3 bits), ST1 (2 bits) and ST2 (1 bit) as shown below. Bits 5-6
And bit 7. Bits 3 and 4 of status register 400 are undefined but undefined.

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

例えば、ST1フィールドをチェックする場合、ST1の内
容が00bならば4番地、01bならば8番地、10bならば0C
番地、11番地ならば0E番地(それぞれベース・アドレス
adrs1を加える)に制御を移すことができる。
For example, when checking the ST1 field, if the content of ST1 is 00b, address 4; if 01b, address 8;
Address, if address 11, address 0E (each base address
control can be transferred to (adrs1).

前記本発明の実施例では、8ビットのパラメータを二
分割し、最大16ウェイで2、4、8、16ウェイを選択す
ることができたが、マルチウェイ・ブランチ・レジスタ
200の長さ、および多分岐マイクロ命令のパラメータ選
択用フィールドselの長さを増すことで、より長いパラ
メータを多重分割し、短い長さのマイクロ命令によって
より多重度の高い多分岐マイクロ命令を提供することが
できる。
In the embodiment of the present invention, the 8-bit parameter is divided into two, and 2, 4, 8, and 16 ways can be selected with a maximum of 16 ways.
By increasing the length of 200 and the length of the field sel for parameter selection of the multi-branch microinstruction, longer parameters are multiplexed and the multi-branch microinstruction with a shorter length provides more multi-branch microinstructions can do.

〔発明の効果〕〔The invention's effect〕

以上説明してきたように、本発明を用いることでパラ
メータの内容によって処理を変更する必要のあるマイク
ロプログラムにおいて、パラメータの長さや値によらず
高速に分岐動作を行なうことができる命令語長の短い、
しかも汎用性に富んだマイクロ命令を提供することがで
きる。
As described above, by using the present invention, in a microprogram whose processing needs to be changed according to the content of a parameter, a short instruction word length that can perform a branch operation at high speed regardless of the length or value of the parameter is used. ,
Moreover, it is possible to provide micro-instructions with high versatility.

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

第1図は本発明の一実施例を示す図面、第2図は条件付
きマイクロ命令の一般的なフォーマットを示す図面、第
3図は従来のマイクロプログラム制御装置を採用した情
報処理装置の一例を示す図面、第4図はパックトBCDの
一般的なフォーマットを示す図面、第5図は多分岐マイ
クロ命令の一般的なフォーマットを示す図面、第6図は
多分岐マイクロ命令のアドレス指定方法を説明する図
面、第7図は本発明の具体的な実施例を示す図面、第8
図は多分岐マイクロ命令の具体的なフォーマットを示す
図面、第9図はBCD符号処理におけるプロシジャのロケ
ーション関係を示す図面、第10図は本発明の他の実施例
におけるステータス・レジスタの構造を示す図面であ
る。 100……アドレス・レジスタ、101……マイクロ命令メモ
リ、102……命令ラッチ、103……インクリメンタ、104
……命令デコーダ、105……ステータス発生器、106……
データ・バス、107……算術論理演算ユニット、108……
ブランチ信号発生器、109……分岐アドレス発生器、110
……レジスタ・ファイル、200……マルチウェイ・ブラ
ンチ・レジスタ、201……マルチプレクサ、202……マル
チウェイ・ブランチ・アドレス発生器、203……アドレ
ス・レジスタ、204……命令デコーダ、300……8ビット
・ラッチ、301……4ビット・マルチプレクサ、302……
マルチウェイ・ブランチ・アドレス発生器、303……16
ビット・アドレス・レジスタ、310〜313……2入力AN
D、400……8ビット・ステータス・レジスタ
FIG. 1 is a diagram showing an embodiment of the present invention, FIG. 2 is a diagram showing a general format of a conditional microinstruction, and FIG. 3 is an example of an information processing apparatus employing a conventional microprogram controller. FIG. 4, FIG. 4 is a diagram showing a general format of a packed BCD, FIG. 5 is a diagram showing a general format of a multi-branch microinstruction, and FIG. FIG. 7 is a drawing showing a specific embodiment of the present invention, FIG.
FIG. 9 is a diagram showing a specific format of a multi-branch microinstruction, FIG. 9 is a diagram showing a location relationship of procedures in BCD code processing, and FIG. 10 is a diagram showing a status register structure in another embodiment of the present invention. It is a drawing. 100: Address register, 101: Micro instruction memory, 102: Instruction latch, 103: Incrementer, 104
…… Instruction decoder, 105 …… Status generator, 106 ……
Data bus, 107 ... arithmetic logic unit, 108 ...
Branch signal generator, 109 ... Branch address generator, 110
... register file, 200 ... multiway branch register, 201 ... multiplexer, 202 ... multiway branch address generator, 203 ... address register, 204 ... instruction decoder, 300 ... 8 Bit latch, 301 ... 4-bit multiplexer, 302 ...
Multiway branch address generator, 303 ... 16
Bit address register, 310 to 313 ... 2-input AN
D, 400 ... 8-bit status register

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】データバスに接続され転送マイクロ命令の
実行により前記データバス上のパラメータ情報を保持す
るラッチと、このラッチに保持されたパラメータ情報の
うち連続する所定のビット列情報を抽出する抽出手段
と、この抽出手段によって抽出されたデータを分岐マイ
クロ命令で選択的にマスクする手段とを備え、分岐先ア
ドレスの全てあるいは一部を前記マスクされたデータを
直接使用することにより決定することを特徴とするマイ
クロプログラム制御装置。
1. A latch connected to a data bus and holding parameter information on the data bus by executing a transfer microinstruction, and extracting means for extracting predetermined predetermined bit string information from the parameter information held in the latch. And a means for selectively masking the data extracted by the extracting means with a branch microinstruction, wherein all or a part of the branch destination address is determined by directly using the masked data. Microprogram control device.
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 JPS62109134A (en) 1987-05-20
JP2587407B2 true 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)

Family Cites Families (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
JPS62109134A (en) 1987-05-20

Similar Documents

Publication Publication Date Title
EP0221577B1 (en) Microprogram control unit
EP0136656B1 (en) A nibble and word addressable memory to accessing consecutive data units for supporting decimal arithmetic operations
US4363091A (en) Extended address, single and multiple bit microprocessor
US5390307A (en) Apparatus for a multi-data store or load instruction for transferring multiple contiguous storage locations in one transfer operation
US5745722A (en) Apparatus for decoding instruction immediate data to produce a string having a single bit different from other bit thereof
US5682531A (en) Central processing unit
US5210833A (en) System for selectively masking data in a branch address register and replacing the microinstruction address register by the masked data
JPH0145649B2 (en)
US5870596A (en) Data processor allowing multifunctional instruction execution
JP2587407B2 (en) Micro program controller
EP0140158B1 (en) Apparatus and method for converting a number in binary format to a decimal format
US5396610A (en) Register address specifying circuit for simultaneously accessing two registers
EP0936537B1 (en) Cyclic redundancy check in a computer system
US5349681A (en) Bit searching circuit and data processor including the same
EP0168406B1 (en) Floating point condition code generation
US4433327A (en) Apparatus for converting numeral representing data coding formats received or derived by a central processing unit
US4683546A (en) Floating point condition code generation
US4644489A (en) Multi-format binary coded decimal processor with selective output formatting
US6005502A (en) Method for reducing the number of bits needed for the representation of constant values in a data processing device
US3425036A (en) Digital computer having a generalized literal operation
JPH02278424A (en) Normalizer
IE56443B1 (en) Microprogram control
JPH0352092B2 (en)
JP2671325B2 (en) Data processing device
KR940002274B1 (en) Data mask circuit for processor of reduced instruction set computer

Legal Events

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