JPS6127776B2 - - Google Patents
Info
- Publication number
- JPS6127776B2 JPS6127776B2 JP53109707A JP10970778A JPS6127776B2 JP S6127776 B2 JPS6127776 B2 JP S6127776B2 JP 53109707 A JP53109707 A JP 53109707A JP 10970778 A JP10970778 A JP 10970778A JP S6127776 B2 JPS6127776 B2 JP S6127776B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- jump
- data
- microprogram
- address
- 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
- 230000004044 response Effects 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 23
- 238000000034 method Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 101150065817 ROM2 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
本発明は計算機内のバス上のデータに基づき、
多数のジヤンプ先アドレスを高速に決定するバス
マルチジヤンプ方式に関する。[Detailed Description of the Invention] The present invention is based on data on a bus in a computer.
This invention relates to a bus multi-jump method that quickly determines a large number of jump destination addresses.
マイクロプログラム方式による計算機の制御の
流れは、マイクロプログラムの指定アドレスを逐
次インクリメント又は新しいアドレスを再設定
(ジヤンプ(分岐)と呼ぶ)することにより行わ
れている。このアドレス分岐をいかにするかによ
りその制御内容が変化する。従来マイクロプログ
ラムのアドレス分岐は第1図に示す様に命令をも
つてくる命令フエツチサイクルから、その持つて
こられた命令の実行ルーチン13A〜13Eへの
分岐12は、持つてきた命令の内容、一般には命
令はインストラクシヨンレジスタ(IR)に格納
されるのでIRの内容に従つて、一義的に決めら
れた、その命令の実行ルーチン13A〜13Eの
先頭へと分岐している。しかし、その命令の実行
ルーチン例えば13Eでは先頭の処理ルーチン1
4Aの後、種々の条件下で分岐する。この分岐
は、例えばあるレジスタの内容が、マイナスか否
かの判断1を行ない、マイナスのときはある処理
14B、零のときはある別な処理15Bなど種々
の判断15A,15B,15Cに従つた処理14
B,14C,14D,14Eを行つている。この
方式では判断要素15A〜15Cが多数になつた
場合、判断用回路の増加を招くとともに一連の判
断が一連の処理中に直列的に行われていくため、
何度も判断用マイクロプログラムを入れなければ
ならず、命令処理連度の低下を招くことになる。
第2図に従来の計算機のデータストラクチヤ部
(データの転送、演算を行う部)215とコント
ロールストラクチヤ部(命令の判断、分岐など制
御関係を行う部)216のブロツク図を示す。本
図からも明らかなようにデータストラクチヤ部2
15とコントロールストラクチヤ部216とはほ
ぼきれいに分離されているといつても過言ではな
く、命令による分岐はデータバス201上の命令
をコントロールストラクチヤ部216内のインス
トラクシヨンレジスタ202に書きこみ、このレ
ジスタ202の内容を命令デコーダ及びエンコー
ダ203で種々修飾を加え、この内容を出力バツ
フア204Aを通してROMアドレスレジスタ2
05にセツトする。ROMアドレスレジスタ20
5にセツトされた内容は命令の内容に修飾を加え
たものでこの修飾は各種の機種により任意の形で
都合のよいように加えられるものである。ROM
206はこのレジスタ205の内容をアドレスと
してそれに対応して複数ビツトの制御信号をマイ
クロインストラクシヨンレジスタ220にセツト
した後、デコーダ214に送る。デコーダ214
でデコードされた制御信号は夫々制御対象へ供給
される。ROM206から読み出された制御情報
の1部は出力バツフア204Bを介してROMア
ドレスレジスタ205に入力される。デコーダ2
14でデコードされた制御信号の一部はインバー
タ207を介して出力バツフア204Aに、また
直接に出力バツフア204Bに入力され、これら
のバツフアの開閉を制御する。データストラクチ
ヤ部215はデコーダ214でデコードされた制
御信号に従つて動作を行う。例えば加算を例とす
ると、データバス201上のデータがバツフアレ
ジスタ208に格納され演算ゲート209の一方
へ接続される。又演算ゲート209の他方には被
加数がレジスタフアイル211より読み出されて
加えられる。演算回路209ではこれら2つの入
力の加算を行つた後バツフアレジスタ210へ一
担格納し、又これをレジスタフアイル211中の
格納対象レジスタへ格納して処理を終了する。こ
の処理結果はまた、出力バツフア204Cを介し
てレジスタフアイル211からデータバス201
に必要に応じて送られる。この演算結果に関する
正,負,偶数,奇数オーバーフロー、キヤリーの
発生などの演算時のステータス情報はフラグ記憶
レジスタ212に記憶される。このステータス情
報はマイクロプログラムの分岐情報として使用さ
れており、前述の実行ルーチン内での判断分岐を
行うために、判断すべき内容指定をROM206
より出力し、マイクロインストラクシヨンレジス
タ220にセツトした後デコーダ214でデコー
ドし、データセレクタ213の選択入力端子に入
力する。フラグ記憶レジスタ212のステータス
情報はデータセレクタ213のデータ入力として
加えられており、セレクタ端子により選択された
内容が、条件成立信号線217に乗る。条件成立
信号線217はROMアドレスレジスタ205に
接続されており出力バツフア204A又は204
Bにより加えられた制御情報を該レジスタ205
に再記憶させるか、又は現在記憶している内容の
インクリメントをするかの指定を行う。これによ
り条件成立信号線217の内容により分岐を行つ
ている。このため、データバス201上のデータ
の内容により分岐したいときはこのデータを一担
データストラクチヤ部215に取り込み、さらに
フラグ記憶レジスタ212にそのステータスをセ
ツトし、マイクロプログラムで分岐したい指定を
出して、分岐しなければならず、特に判断がいく
つもあり、多分岐を行いたいときはマイクロプロ
グラムステツプが多数かかり処理の遅れを招いて
いる。 The control flow of a computer based on the microprogram method is performed by sequentially incrementing the designated address of the microprogram or resetting a new address (referred to as a jump). The control content changes depending on how this address branch is performed. As shown in FIG. 1, address branching in a conventional microprogram starts with an instruction fetch cycle that brings an instruction, and branches 12 to execution routines 13A to 13E for the fetched instruction. Generally, an instruction is stored in an instruction register (IR), and therefore, according to the contents of the IR, a branch is made to the beginning of a uniquely determined execution routine 13A to 13E for that instruction. However, in the execution routine of that instruction, for example 13E, the first processing routine 1
After 4A, it branches under various conditions. In this branch, for example, a judgment 1 is made as to whether the contents of a certain register are negative or not, and various judgments 15A, 15B, and 15C are followed, such as a certain process 14B if the content is negative, and another process 15B if it is zero. Processing 14
B, 14C, 14D, and 14E are being performed. In this method, when the number of judgment elements 15A to 15C increases, the number of judgment circuits increases, and a series of judgments are performed serially during a series of processes.
The judgment microprogram must be inserted many times, leading to a decrease in the instruction processing rate.
FIG. 2 shows a block diagram of a data structure section 215 (a section that transfers data and performs calculations) and a control structure section 216 (a section that performs control relations such as determining instructions and branching) of a conventional computer. As is clear from this figure, the data structure section 2
It is no exaggeration to say that the control structure section 216 and the control structure section 216 are almost neatly separated, and branching by instructions writes the instruction on the data bus 201 to the instruction register 202 in the control structure section 216. The contents of this register 202 are modified in various ways by the instruction decoder and encoder 203, and the contents are passed through the output buffer 204A to the ROM address register 204.
Set to 05. ROM address register 20
The content set to 5 is the content of the command with a modification added, and this modification can be added in any form convenient for various types of machines. ROM
206 uses the contents of this register 205 as an address and sets a corresponding plural-bit control signal in the microinstruction register 220, and then sends it to the decoder 214. Decoder 214
The control signals decoded by are respectively supplied to the controlled objects. A portion of the control information read from the ROM 206 is input to the ROM address register 205 via the output buffer 204B. Decoder 2
A part of the control signal decoded at 14 is inputted to the output buffer 204A via the inverter 207 and directly to the output buffer 204B to control the opening and closing of these buffers. The data structure section 215 operates according to the control signal decoded by the decoder 214. For example, in the case of addition, data on the data bus 201 is stored in a buffer register 208 and connected to one of the arithmetic gates 209. Further, the summand is read from the register file 211 and added to the other side of the arithmetic gate 209. After adding these two inputs, the arithmetic circuit 209 stores it in the buffer register 210, and stores it in the storage target register in the register file 211, and ends the process. This processing result is also transferred from the register file 211 to the data bus 201 via the output buffer 204C.
will be sent as necessary. Status information at the time of the operation, such as positive, negative, even, odd overflow, occurrence of carry, etc. regarding the result of this operation is stored in the flag storage register 212. This status information is used as branch information of the microprogram, and in order to make a decision branch in the execution routine mentioned above, the contents to be decided are specified in the ROM 206.
After being set in the microinstruction register 220, it is decoded by the decoder 214 and input to the selection input terminal of the data selector 213. The status information of the flag storage register 212 is added as a data input to the data selector 213, and the contents selected by the selector terminal are transferred to the condition fulfillment signal line 217. The condition fulfillment signal line 217 is connected to the ROM address register 205 and is connected to the output buffer 204A or 204.
The control information added by B is stored in the register 205.
Specify whether to re-store the data or increment the currently stored content. As a result, branching is performed depending on the content of the condition fulfillment signal line 217. Therefore, when it is desired to branch based on the content of data on the data bus 201, this data is taken into the data structure unit 215, the status is set in the flag storage register 212, and the microprogram specifies the desired branch. , branches have to be made, especially when there are a number of decisions to be made, and when multiple branches are desired, a large number of microprogram steps are required, causing processing delays.
本発明は、多数の分岐を高速に行いうるマルチ
ジヤンプ方式を提供することであり、より具体的
には、従来の判断による分岐方式においてレジス
タの内容に従つて多分岐できる回路を加え、任意
の時点で、マイクロプログラムで指定することに
より、デーバス上のデータの一部又は全部を多分
岐するための要素(現実的にはROMのアドレ
ス)として用いることができる様にし、命令の実
行ルーチン内で種々の処理サブルーチンへ一発で
多分岐できるようにしたところに特徴がある。 The present invention is to provide a multi-jump method that can perform a large number of branches at high speed.More specifically, it is an object of the present invention to provide a multi-jump method that can perform a large number of branches at high speed. At this point, by specifying it in the microprogram, part or all of the data on the device can be used as an element for multi-branching (in reality, a ROM address), and in the instruction execution routine. The feature is that multiple branches can be made to various processing subroutines in one go.
本発明の実施例を第3図を用いて説明する。本
発明はとくにコントロールストラクチヤ部の改良
にある。なお、第3図では図面の簡単化のため、
改良されたコントロールストラクチヤ部のみ示
し、第2図で示したデータストラクチヤ部は図示
されていない。コントロールストラクチヤ部にデ
ータバス201に接続してジヤンプデータラツチ
レジスタ303を設ける。線352上のマイクロ
プログラムからの指定により発生されるジヤンプ
データセツト信号と線353上のタイミングパル
スがANDゲート306Aを介してレジスタ30
3のセツト端子に入力され、データのセツトが、
行われる。このタイミングパルスは計算機内の制
御回路(図示せず)により発生されるものであ
る。 An embodiment of the present invention will be described with reference to FIG. In particular, the present invention is an improvement in the control structure. In addition, in Figure 3, to simplify the drawing,
Only the improved control structure is shown; the data structure shown in FIG. 2 is not shown. A jump data latch register 303 connected to the data bus 201 is provided in the control structure section. The jump data set signal generated by the specification from the microprogram on line 352 and the timing pulse on line 353 are sent to register 30 via AND gate 306A.
3 is input to the set terminal, and the data set is
It will be done. This timing pulse is generated by a control circuit (not shown) within the computer.
レジスタ303の出力をデータセレクタ304
を通してマイクロプログラムアドレスジエネレー
タ203Aに入力する。このマイクロプログラム
アドレスジエネレータ203Aは次に実行すべき
マイクロプログラムのアドレスを作成するもの
で、本回路は一般に入力信号のビツト数とROM
のアドレスビツト数が異るため、ビツト長の変
換、極性の変更、ビツト配列の入れ替え等信号の
修飾に用いられ、PLA,ROM、又はランダムゲ
ート等で構成される。データセレクタ304の他
方の入力はインストラクシヨンレジスタ202の
出力に接続されており命令の実行ルーチンへの多
分岐に用いられている。また該アドレスジエネレ
ータ203Aの出力は出力バツフア204Aを通
してROMアドレスレジスタ205に入力され
る。本レジスタ205の出力は、ROM206に
アドレス情報として加えられる。ROM206か
らの出力はマイクロインストラクシヨンレジスタ
220にラツチされ、その出力はデコーダ214
に加えられて、デコードされた後、制御信号とし
て各制御対象に接続される。線351上のバスマ
ルチジヤンプフラグセツト信号は、ジヤンプデー
タラツチレジスタ303の内容により多分岐する
ためのバスマルチジヤンプ実行用のバスマルチジ
ヤンプフラグレジスタ305のセツト入力端子に
線353上のタイミングパルスとANDゲート3
06BでANDを取られた後、入力される。ま
た、このバスマルチジヤンプフラグレジスタ30
5のリセツト端子には、線350上の信号と、線
353上のタイミングパルスとがANDゲート3
06CでANDを取られた後、入力される。該フ
ラグレジスタ305の出力はデータセレクタ30
4の選択信号入力端子に入力されている。該フラ
グレジスタ305がセツトされている時はマイク
ロプログラムアドレスジエネレータ203Aへは
ジヤンプデータラツチレジスタ303の内容がデ
ータセレクタ304により入力され、該フラグレ
ジスタ305がリセツトされているときはインス
トラクシヨンレジスタ202の内容がデータセレ
クタ304により入力される。このジエネレータ
203Aにはフラグレジスタ305の出力が入力
されており、フラグレジスタ305がセツト状態
にあるときには、レジスタ303内のジヤンプデ
ータに対するアドレスを発生し、フラグレジスタ
305がリセツト状態にあるときはインストラク
シヨンレジスタ202内のインストラクシヨンに
対するアドレス発生を行う。このようにすること
により、ROMアドレスレジスタ205にはデー
タバス201の内容をセツトすることが可能とな
り、データバス201上のデータの内容により多
分岐することが可能となる。また、出力バツフア
204A,204Bは3ステートバツフア又はオ
ープンコレクタの出力バツフアで、ROMアドレ
スレジスタ205に、ROM206の内容をジヤ
ンプ先アドレスをしてセツトする時に用いるもの
で常に出力バツフア204A,204Bは正反対
に働く。すなわち204A,204Bはいづれか
一方のみ開いている。すなわち線350上のデコ
ードされた信号により出力バツフア204Aが開
かれている時にはアドレスジエネレータ203A
の出力がROMアドレスレジスタ205にセツト
される。なお、この時出力バツフア204Bに
は、線350上の信号をインバータ312により
反転した信号が印加される。従つて出力バツフア
204Bは閉となる。逆に線350上の信号によ
り出力バツフア204Aが閉となるときには出力
バツフア204Bは開であり従つて、線362上
の信号がROMアドレスレジスタ205にセツト
される。これらの出力バツフアはROMアドレス
が常にインクリメント(+1)だけではマイクロ
プログラムの配列が不可能であるため、ジヤンプ
する必要がある時、例えばマルチジヤンプ指定で
ない時の分岐又はジヤンプの時に用いられる。す
なわちデータストラクチヤ部(図示せず)内のフ
ラグ記憶レジスタ(図示せず)から選択されたス
テータス情報に基づき、条件判定が行われ、線2
17上に条件成立信号が出力されるとROMアド
レスレジスタ205は出力バツフア204A,2
04Bの出力を取り込み、線217上に条件成立
信号が出力されていない時は、ROMアドレスレ
ジスタ205は、現在記憶しているアドレスを+
1だけインクリメントしたアドレスを記憶する。
第4図は本発明を用いて多分岐を行うときのマイ
クロプログラムの指定例を示す。第5図a,b,
c,dは、第4図に示したマイクロプログラムの
指定と、データラツチレジスタ、マルチジヤンプ
フラグレジスタのセツト、リセツトのタイミング
を示したものである。以下、第4図,第5図に基
づき、第3図によるマルチジヤンプ動作を説明す
る。なお、第5図aは各時刻において、実行され
るマイクロプログラムの指定を表わし、bは線3
53上のタイミングパルスを表わし、c,dはそ
れぞれ、ジヤンプデータラツチレジスタ及びマル
チジヤンプフラグレジスタのセツト、リセツト状
態を示す。マルチジヤンプのためマイクロプログ
ラムの指定は、第5図に示すごとく、セツトジヤ
ンプデータ指定400、セツトバスマルチジヤン
プフラグ指定402、マルチジヤンプ指定404
よりなる。第5図aに示すごとく、時刻T11にお
いてセツトジヤンプデータ指定400がROM2
06から読み出され、マイクロインストラクシヨ
ンレジスタ220にセツトされる。この結果、デ
コーダ214から線352上にジヤンプデータラ
ツチレジスタ303をセツトする信号が出力され
る。このラツチレジスタ303はデータバス20
1上のジヤンプデータをセツトする。時刻T12に
おいて、第5図bに示すごとく、線353上のタ
イミングパルスが高レベルから低レベルに低下す
る。この結果、アンドゲート306Aの出力は高
レベルから低レベルに低下する。ジヤンプデータ
ラツチレジスタ303は、第5図cに示すごと
く、このアンドゲート306Aの出力の変化に応
答して、データバス201上の信号をセツトす
る。次に、時刻T21においてセツトバスマルチジ
ヤンプフラグ指定がマイクロインストラクシヨン
レジスタ220にセツトされる。この結果、デコ
ーダ214により、線351上に2つのフラグセ
ツトのための信号が出力される。時刻T21におい
て、線353上のタイミングパルスが低レベルか
ら高レベルに変化するが、その後、時刻T31にお
いて、再び高レベルから低レベルに変化する。こ
の変化がアンドゲート306Bの出力も表われ
る。バスマルチジヤンプフラグレジスタ305は
この変化に応答してセツト状態となる。この結
果、データセレクタ304はジヤンプデータラツ
チレジスタ303にラツチされているジヤンプデ
ータをマイクロプログラムアドレスジエネレータ
203Aに入力する。その結果、このアドレスジ
エネレータ203Aは、ジヤンプデータに対応す
るROMアドレスを発生することになる。その
後、時刻T31において、マルチジヤンプ指定がマ
イクロインストラクシヨンレジスタに読み出され
る。この結果、デコーダ214から線350上に
マルチジヤンプ起動信号が出力される。この信号
により出力バツフア204Aが開くなり、出力バ
ツフア204Bは閉となる。この結果、ROM2
06からのアドレス出力はROMアドレスレジス
タには入力されずに、マイクロプログラムアドレ
スジエネレータ203Aの出力がROMアドレス
レジスタに入力される。このジエネレータ203
Aからは、ジヤンプデータラツチレジスタ303
に記憶されているジヤンプデータに対する、
ROMアドレスが出力されているので、結局、
ROMアドレスレジスタ205にはデータバス2
01から送られてきたジヤンプデータに対する
ROMアドレスがセツトされることになる。バス
マルチジヤンプフラグレジスタ305はアドレス
データがROMアドレスレジスタ309にセツト
された時点で不要となり、又次の命令フエツチの
場合のインストラクシヨンレジスタ202の内容
(命令)による命令実行ルーチンへの多分岐時ま
でセツトしておくことはできないため、マルチジ
ヤンプ指定404の実行時に線350の信号と線
353上のタイミング信号をアンドゲート306
Cを介して、このフラグ305のリセツト端子に
入力してあり、時刻T32において、タイミングパ
ルスの立下がり時に自動的にリセツトされる。こ
うしてマルチジヤンプの1ジヤンプ動作が終了す
る。本方式を用いることにより、従来の判断、分
岐によるマイクロプログラムの流れを、本発明の
一発で行う多分岐で処理でき処理速度の向上が図
れるが、その具体的使用例として、命令コードの
拡張を行つた場合の処理を例として説明する。計
算機の命令は第6図に示される如く命令部、アド
レス修飾を行う修飾部、ADDR部で構成される。
ここで命令部は“READ”,“WRITE”,“ADD”
等の処理命令を示すが、この部のみの処理では処
理が不足の場合、又はユーザに命令仕様を開放し
自由に拡張される場合等命令部に特定コードを割
当て実際の処理内容は実効アドレスのデータに
“FUNCTION”の形で与え、CPUはこれを判別
して処理を行うものとする。本例ではその処理例
を第7図に示す。すなわち、プロテクシヨン機
能、タイマー機能の操作をFUNCTION部にて指
示するものである。 The output of the register 303 is sent to the data selector 304
is input to the microprogram address generator 203A through the microprogram address generator 203A. This microprogram address generator 203A creates the address of the microprogram to be executed next, and this circuit generally uses the input signal bit number and ROM
Since the number of address bits differs, it is used for signal modification such as bit length conversion, polarity change, and bit arrangement swapping, and is composed of PLA, ROM, or random gates. The other input of the data selector 304 is connected to the output of the instruction register 202 and is used for multi-branching to an instruction execution routine. Further, the output of the address generator 203A is input to the ROM address register 205 through an output buffer 204A. The output of this register 205 is added to the ROM 206 as address information. The output from ROM 206 is latched into microinstruction register 220, and the output is sent to decoder 214.
After being decoded, it is connected to each controlled object as a control signal. The bus multi-jump flag set signal on line 351 is ANDed with the timing pulse on line 353 to the set input terminal of bus multi-jump flag register 305 for executing bus multi-jump to perform multiple branches according to the contents of jump data latch register 303. gate 3
After being ANDed at 06B, it is input. In addition, this bus multi-jump flag register 30
The signal on line 350 and the timing pulse on line 353 are connected to the reset terminal of AND gate 3.
After being ANDed at 06C, it is input. The output of the flag register 305 is sent to the data selector 30.
It is input to the selection signal input terminal No. 4. When the flag register 305 is set, the contents of the jump data latch register 303 are input to the microprogram address generator 203A by the data selector 304, and when the flag register 305 is reset, the contents of the jump data latch register 303 are input to the microprogram address generator 203A. The contents of are inputted by the data selector 304. The output of the flag register 305 is input to this generator 203A, and when the flag register 305 is in the set state, it generates an address for the jump data in the register 303, and when the flag register 305 is in the reset state, it generates the address for the jump data in the register 303. An address for the instruction in the instruction register 202 is generated. By doing this, it becomes possible to set the contents of the data bus 201 in the ROM address register 205, and it becomes possible to perform multiple branches depending on the contents of the data on the data bus 201. The output buffers 204A and 204B are 3-state buffers or open collector output buffers, and are used when setting the jump destination address of the contents of the ROM 206 in the ROM address register 205.The output buffers 204A and 204B are always opposite. to work. That is, only one of 204A and 204B is open. That is, when output buffer 204A is opened by the decoded signal on line 350, address generator 203A
The output of is set in the ROM address register 205. Note that at this time, a signal obtained by inverting the signal on line 350 by inverter 312 is applied to output buffer 204B. Therefore, output buffer 204B is closed. Conversely, when the signal on line 350 causes output buffer 204A to close, output buffer 204B is open and therefore the signal on line 362 is set in ROM address register 205. These output buffers are used when it is necessary to jump, for example when branching or jumping when a multi-jump is not specified, since it is impossible to arrange a microprogram if the ROM address is always incremented (+1). That is, condition determination is performed based on status information selected from a flag storage register (not shown) in a data structure section (not shown), and line 2
17, the ROM address register 205 outputs the output buffer 204A, 2
When the output of 04B is taken in and the condition fulfillment signal is not output on the line 217, the ROM address register 205 stores the currently stored address as +
Store the address incremented by 1.
FIG. 4 shows an example of specifying a microprogram when performing multi-branching using the present invention. Figure 5 a, b,
4. c and d show the designation of the microprogram shown in FIG. 4, and the timing of setting and resetting the data latch register and multi-jump flag register. Hereinafter, the multi-jump operation according to FIG. 3 will be explained based on FIGS. 4 and 5. Note that FIG. 5a represents the designation of the microprogram to be executed at each time, and b represents the line 3.
53, and c and d indicate the set and reset states of the jump data latch register and multi-jump flag register, respectively. As shown in FIG. 5, microprogram specifications for multi-jump include set jump data specification 400, set bus multi-jump flag specification 402, and multi-jump specification 404.
It becomes more. As shown in FIG. 5a, at time T11 , the set jump data designation 400 is
06 and set in the microinstruction register 220. As a result, decoder 214 outputs a signal on line 352 that sets jump data latch register 303. This latch register 303 is connected to the data bus 20
Set the jump data above 1. At time T12 , the timing pulse on line 353 drops from a high level to a low level, as shown in FIG. 5b. As a result, the output of AND gate 306A drops from a high level to a low level. Jump data latch register 303 sets the signal on data bus 201 in response to a change in the output of AND gate 306A, as shown in FIG. 5c. Next, the set bus multi-jump flag designation is set in the microinstruction register 220 at time T21 . As a result, decoder 214 outputs signals for two flag sets on line 351. At time T 21 , the timing pulse on line 353 changes from low to high, but then changes from high to low again at time T 31 . This change also appears in the output of AND gate 306B. Bus multi-jump flag register 305 enters the set state in response to this change. As a result, data selector 304 inputs the jump data latched in jump data latch register 303 to microprogram address generator 203A. As a result, this address generator 203A will generate a ROM address corresponding to the jump data. Thereafter, at time T31 , the multijump designation is read into the microinstruction register. As a result, a multi-jump activation signal is output from decoder 214 on line 350. This signal causes output buffer 204A to open and output buffer 204B to close. As a result, ROM2
The address output from 06 is not input to the ROM address register, but the output of the microprogram address generator 203A is input to the ROM address register. This generator 203
From A, jump data latch register 303
For the jump data stored in
Since the ROM address is output, in the end,
The ROM address register 205 has data bus 2.
Regarding jump data sent from 01
The ROM address will be set. The bus multi-jump flag register 305 becomes unnecessary when the address data is set in the ROM address register 309, and when multi-branching to the instruction execution routine due to the contents (instructions) of the instruction register 202 in the case of the next instruction fetch. Since it is not possible to set up to
It is input to the reset terminal of this flag 305 via C, and is automatically reset at the falling edge of the timing pulse at time T32 . In this way, one jump operation of the multi-jump is completed. By using this method, the flow of a microprogram based on conventional judgment and branching can be processed by the multiple branching performed in one shot by the present invention, and processing speed can be improved. The following describes an example of the processing when performing the following. As shown in FIG. 6, a computer instruction consists of an instruction section, a modification section that modifies an address, and an ADDR section.
Here, the instruction part is “READ”, “WRITE”, “ADD”
However, if the processing is insufficient with only this part, or if the instruction specifications are open to the user and can be expanded freely, a specific code is assigned to the instruction part and the actual processing content is at the effective address. It is assumed that the data is given in the form of "FUNCTION", and the CPU determines this and processes it. In this example, an example of the processing is shown in FIG. That is, the FUNCTION section instructs the operation of the protection function and timer function.
この処理を従来例の判定分岐方式で実現したの
が第8図であり、命令処理ルーチンのみを示して
ある。図から解かる様にFUNCTIONの内容を解
読するためにアキユシユーレータに格納した
FUNCTIONの内容を逐一演算判読するため、ウ
オツチドグタイマースタートを実施するには10ス
テツプ以上の長い処理フロー700〜718,8
02〜810が必要となり、高速処理要求される
計算機には不適当となる。第9図は本発明を用い
たときの処理フローを示すもので、FUNCTION
はジヤンプデータレジスタにセツトされ、この内
容に従つて次の実施すべき、マイクロプログラム
アドレスへと分岐することになる。(本発明では
これをマルチジヤンプ“多分岐”と呼んでいる)
従つて処理は図示された如くどの処理に於いても
4ステツプで済むことになり、大巾な処理ステツ
プ数の低減すなわち高速化が図れたことになる。
また本方式の特徴として、データバス上の値で、
自由に分岐できるため、マイクロプログラムの分
岐先アドレスをデータストラクチヤ部(図示せ
ず)内のいかなるレジスタ(例えばアキユミレー
タ、アキユミユレータイクステンシヨン、ワーク
レジスタ、等演算に使用するレジスタでデータバ
スへ読み出し可能なレジスタ)、更にはコアメモ
リ等の主メモリの中へも格納可能であり、マイク
ロプログラムレベルでのサブルーチンのリターン
用レジスタとしても上記レジスタ類、主メモリが
自由に使用できる。 FIG. 8 shows this process realized using the conventional decision branching method, and only the instruction processing routine is shown. As you can see from the diagram, the contents of FUNCTION are stored in the accumulator in order to decode them.
In order to calculate and interpret the contents of FUNCTION one by one, starting the watchdog timer requires a long process flow of more than 10 steps 700 to 718, 8.
02 to 810 is required, making it unsuitable for computers that require high-speed processing. Figure 9 shows the processing flow when using the present invention.
is set in the jump data register, and a branch is made to the next microprogram address to be executed according to this content. (In the present invention, this is called multi-jump "multi-branching")
Therefore, as shown in the figure, any processing requires only four steps, which means that the number of processing steps can be greatly reduced, or the processing speed can be increased.
In addition, a feature of this method is that the value on the data bus
Since branching can be performed freely, the branch destination address of the microprogram can be stored in any register in the data structure section (not shown) (e.g., an accumulator, an accumulator extension, a work register, etc.) on the data bus. It can also be stored in a main memory such as a core memory, and the above registers and main memory can be freely used as a return register for a subroutine at the microprogram level.
第1図は、従来のマイクロプログラム処理の流
れを示した図、第2図は、従来の計算機のデータ
ストラクチヤ部とコントロールストラクチヤ部の
概略図、第3図は、本発明のコントロールストラ
クチヤ部のブロツク図、第4図は、本発明による
バスマルチジヤンプを使用する場合のマイクロプ
ログラム指定例、第5図a,b,c,dは、それ
ぞれ、第4図の指定のタイミング、タイミングパ
ルス波形、ジヤンプデータラツチレジスタとマル
チジヤンプフラグのセツト、リセツトのタイミン
グを示す図、第6図は計算機の命令フオーマツト
例、第7図は命令の拡張部での処理仕様例、第8
図は従来例に於ける処理フローの例、第9図は本
発明による処理フローの例である。
303…ジヤンプデータラツチレジスタ、20
2…インストラクシヨンレジスタ、304…デー
タセレクタ、203A…マイクロプログラムアド
レスジエネレータ、305…マルチジヤンプフラ
グレジスタ。
FIG. 1 is a diagram showing the flow of conventional microprogram processing, FIG. 2 is a schematic diagram of the data structure section and control structure section of a conventional computer, and FIG. 3 is a diagram showing the control structure of the present invention. 4 shows an example of microprogram specification when using the bus multi-jump according to the present invention, and FIG. 5 a, b, c, and d show the specified timing and timing pulse of FIG. 4, respectively. Figure 6 shows an example of a computer instruction format; Figure 7 shows an example of processing specifications in the instruction extension;
The figure shows an example of a processing flow in a conventional example, and FIG. 9 shows an example of a processing flow according to the present invention. 303...Jump data latch register, 20
2... Instruction register, 304... Data selector, 203A... Micro program address generator, 305... Multi-jump flag register.
Claims (1)
のアドレス決定のためのデータを記憶するジヤン
プデータラツチレジスタと、上記データバスに接
続されたインストラクシヨンレジスタと、マイク
ロプログラムを記憶した記憶装置と、ジヤンプデ
ータラツチレジスタの出力及び上記インストラク
シヨンレジスタの出力に応答して、上記記憶装置
を発生するためのマイクロプログラムアドレスジ
エネレータと、上記ジヤンプデータラツチレジス
タと上記インストラクシヨンレジスタの出力を切
換て上記マイクロプログラムアドレスジエネレー
タに入力するためのデータセレクタと、上記ジヤ
ンプデータラツチレジスタのデータに基づき、マ
イクロプログラムの実行を行なうべきことを指示
するためのマルチジヤンプフラグレジスタを設
け、該マルチジヤンプフラグレジスタはマイクロ
プログラムによりセツトおよびリセツトされるご
とく上記マイクロプログラム記憶装置に結合され
ており、上記データセレクタは、上記マルチジヤ
ンプフラグレジスタの出力により上記ジヤンプデ
ータラツチレジスタと上記インストラクシヨンレ
ジスタの出力を切換えて出力するごとく構成され
ていることを特徴とするバスマルチジヤンプ方
式。1. A jump data latch register connected to a data bus and storing data for determining the address of a microprogram, an instruction register connected to the data bus, a storage device storing a microprogram, and a jump data latch register connected to the data bus. In response to the output of the register and the instruction register, a microprogram address generator for generating the storage device, and outputs of the jump data latch register and the instruction register are switched to generate the microprogram. A data selector for inputting to the address generator and a multi-jump flag register for instructing the microprogram to be executed based on the data in the jump data latch register are provided. The data selector switches and outputs the outputs of the jump data latch register and the instruction register according to the output of the multi-jump flag register. A bus multi-jump system characterized by the following configuration.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10970778A JPS5537628A (en) | 1978-09-08 | 1978-09-08 | Bus multi-jump system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10970778A JPS5537628A (en) | 1978-09-08 | 1978-09-08 | Bus multi-jump system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS5537628A JPS5537628A (en) | 1980-03-15 |
| JPS6127776B2 true JPS6127776B2 (en) | 1986-06-27 |
Family
ID=14517172
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10970778A Granted JPS5537628A (en) | 1978-09-08 | 1978-09-08 | Bus multi-jump system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS5537628A (en) |
-
1978
- 1978-09-08 JP JP10970778A patent/JPS5537628A/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS5537628A (en) | 1980-03-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6239780B2 (en) | ||
| JPH0241053B2 (en) | ||
| JPH0248931B2 (en) | ||
| EP0388735A2 (en) | Microprogram controller having fixed-instruction generator and microprogram memory | |
| US4812970A (en) | Microprogram control system | |
| US5479620A (en) | Control unit modifying micro instructions for one cycle execution | |
| JPS6127776B2 (en) | ||
| JPH0830971B2 (en) | Programmable controller | |
| JP2619425B2 (en) | Sequence controller | |
| JPS6242301B2 (en) | ||
| JPS60108973A (en) | Method for finding the minimum value of array elements and element number of the minimum element | |
| JPS6134168B2 (en) | ||
| JPS6338732B2 (en) | ||
| JPS5999552A (en) | microcomputer | |
| JPS59105148A (en) | Microprogram controlling type central processing unit | |
| JPS59223846A (en) | Arithmetic processor | |
| JPS6115453B2 (en) | ||
| JPH0218731B2 (en) | ||
| JPS58121405A (en) | sequence controller | |
| JPS5882342A (en) | Microprogram controller | |
| JPS5875250A (en) | Digital information processor | |
| JPS6047614B2 (en) | information processing equipment | |
| JPH0319570B2 (en) | ||
| JPH0198023A (en) | Conditional subroutine calling system | |
| JPS62147531A (en) | Control ROM access method |