JPS595934B2 - information processing equipment - Google Patents

information processing equipment

Info

Publication number
JPS595934B2
JPS595934B2 JP54140828A JP14082879A JPS595934B2 JP S595934 B2 JPS595934 B2 JP S595934B2 JP 54140828 A JP54140828 A JP 54140828A JP 14082879 A JP14082879 A JP 14082879A JP S595934 B2 JPS595934 B2 JP S595934B2
Authority
JP
Japan
Prior art keywords
instruction
data
control
signal line
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP54140828A
Other languages
Japanese (ja)
Other versions
JPS5665250A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP54140828A priority Critical patent/JPS595934B2/en
Publication of JPS5665250A publication Critical patent/JPS5665250A/en
Publication of JPS595934B2 publication Critical patent/JPS595934B2/en
Expired legal-status Critical Current

Links

Landscapes

  • Retry When Errors Occur (AREA)

Description

【発明の詳細な説明】 本発明は割込みオーバラン方式を採用した情報処理装置
に関するものである。
DETAILED DESCRIPTION OF THE INVENTION The present invention relates to an information processing device that employs an interrupt overrun method.

通常、情報処理装置においては、演算結果がオーバフロ
ーしたときはプログラム割込みを起こしてソフトウェア
に連絡するが、このような割込みは演算結果を使つて判
断するため時間的にクリテイカルパスとなり易く、シス
テム全体のマシンサイクルを決める要因となりかねない
Normally, in information processing equipment, when a calculation result overflows, a program interrupt is generated to notify the software, but since such an interrupt is made using the calculation result, it tends to become a critical path in terms of time, and the entire system is This could be a factor in determining the machine cycle.

そこで、割込みの発生を1サイクル以上遅らせるオーバ
ラン方式を採用することがある。この場合、次の命令は
実行してしまうため、割込み処理のハードウェアが完了
していた命令を実行前の状態に戻す操作を必要とする。
一方、命令の実行中にエラーを生じた場合も、可用性を
上げるため、その命令の実行前の状態に戻して再実行す
る方式をとつていることが多いが、この場合も実行前の
状態に戻す操作が必要である。ところで命令の実行前の
状態に戻すには、それまでのデータをバッファレジスタ
に退避しなければならないが、割込みオーバランの回復
のためのデータ退避バッファと命令再実行のためのデー
タ退避バッファを別々に、しかも各各要請を最大限満足
するだけのバッファ量を持つことは、金物の増加となり
、システム全体として過大な投資となる。本発明は上述
の事情に鑑みなされたもので、割込みオーバランの回復
のためのデータ退避バッファと命令再実行のためのデー
タ退避バッファとを共用し、しかもそのバッファ量を必
要最少限とすることを可能とした情報処理装置を提供す
ることにある。
Therefore, an overrun method is sometimes used to delay the occurrence of an interrupt by one cycle or more. In this case, since the next instruction will be executed, it is necessary for the interrupt processing hardware to return the completed instruction to the state before execution.
On the other hand, even if an error occurs during the execution of an instruction, in order to increase availability, a method is often used to return to the state before the instruction was executed and re-execute it. Reverting operation is required. By the way, in order to return to the state before the instruction was executed, the data up to that point must be saved to a buffer register, but the data save buffer for interrupt overrun recovery and the data save buffer for instruction re-execution are separated. Moreover, having a buffer amount sufficient to satisfy each request to the maximum extent would result in an increase in hardware, resulting in an excessive investment for the system as a whole. The present invention was made in view of the above-mentioned circumstances, and it is an object of the present invention to share a data save buffer for interrupt overrun recovery and a data save buffer for instruction re-execution, and to minimize the amount of the buffer. The objective is to provide an information processing device that enables

本発明は命令分解制御に適用した場合に特に有効である
ので、以下、それの実施例について説明するが、初め命
令分解方式の概要を説明する。
Since the present invention is particularly effective when applied to instruction disassembly control, an embodiment thereof will be described below, but first an outline of the instruction disassembly method will be explained.

周知のように、大型のデータ処理装置では命令を高速に
処理するためパイプライン方式を採用している。この方
式では命令のデコード、オペランドアドレス計算、オペ
ランド読出し、演算の実行毎に独立したハードウエアを
用意し、複数の命令を並列に処理している。この場合、
演算の処理はマイクロプログラムで処理し、その他はハ
ードウエアで処理することが多い。そして、命令をデコ
ードし、オペランドアドレスを計算し、オペランドを読
出すことを制御しているユニツトを先行制脚ユニツト、
演算の実行部を演算ユニツトと呼んでいる。普通、1命
令の処理は先行制御ユニツトで前処理され、その後マイ
クロプログラムを起動して終了する。オペランド長が可
変であるような複雑な命令も同様の流れをするが、特に
このようなケースを高速化するため、命令ユニツトで複
雑な命令を一連の簡単な命令の連続に分解し、同一のマ
イクロプログラムを必要な回数だけ起動する制御を採用
している。これが命令分解方式である。この場合、同一
のマイクロプログラムを何度も起動するため、命令の終
り等、必要な情報はハードウエアが制御する。割込みの
オーバランを考えてみるに、次の命令がこの命令分解形
式の命令であると、割込みオーバランにより分解した一
連の命令群の一部が実行されてしまうため、やはり実行
前の状態に戻す操作が必要となる。命令の再実行を考え
た場合も同様である。本発明の特徴は割込みオーバラン
の回復論理と命令の再実行論理を共用したことにあり、
特に命令分解制御にもこれを適用したことにある。第1
図は本発明の情報処理装置の一実施例の全体構成を示す
As is well known, large-scale data processing devices employ a pipeline system to process instructions at high speed. In this method, independent hardware is prepared for instruction decoding, operand address calculation, operand reading, and operation execution, and multiple instructions are processed in parallel. in this case,
Arithmetic processing is often handled by microprograms, and other processing is done by hardware. The unit that decodes the command, calculates the operand address, and controls the reading of the operand is called the advance control unit.
The part that executes calculations is called a calculation unit. Normally, the processing of one instruction is preprocessed by a preceding control unit, and then a microprogram is started and terminated. Complex instructions with variable operand length follow a similar flow, but in order to speed up such cases in particular, the instruction unit decomposes a complex instruction into a series of simple instructions, and It uses a control system that starts the microprogram as many times as necessary. This is the instruction disassembly method. In this case, since the same microprogram is activated many times, necessary information such as the end of an instruction is controlled by hardware. Considering an interrupt overrun, if the next instruction is an instruction in this instruction disassembly format, part of the disassembled instruction group will be executed due to the interrupt overrun, so it is necessary to return to the state before execution. Is required. The same holds true when considering re-execution of an instruction. The feature of the present invention is that interrupt overrun recovery logic and instruction re-execution logic are shared.
In particular, this is applied to instruction disassembly control. 1st
The figure shows the overall configuration of an embodiment of an information processing apparatus of the present invention.

図において、1は命令のデコード、オペランドアドレス
計算、オペランド読出しを制御する先行制御装置、2は
演算装置、3はマイクロプログラムを格納する制御記憶
装置、4はデータ退避制御部、5はデータ退避用バツフ
アレジスタ、6は主記憶装置、7は入出力制御装置であ
る。通常、命令は主記憶装置6から読み出され、信号線
110を通じて先行制御装置1に運ばれる。先行制御装
置1では、該命令をデコードし、主記憶装置6に対し信
号線108を通じてアドレスを送つてオペランド読出し
を起動し、さらに必要なマイクロプログラムを動かすた
め信号線100を通じて制御記憶装置3へマイクロ命令
アドレスを送る。先行制御装置1で起動したオペランド
は信号線110を通じて該先行制御装置に運ばれ、必要
なキユーイングが行われた後、信号線101を通じて演
算装置2の所定のワークレジスタにセツトされる。一方
、制御記憶装置3では先行制御装置1から送られたマイ
クロ命令アドレスをもとに所定のマイクロプログラムが
起動されて演算装置2、データ退避制御部4、データ退
避バツフアレジスタ5を制御する。命令が終了すると、
制御記憶装置3はEOP(エンド・オブ・オペレーシヨ
ン)を送出し、先行制御装置1から再びマイクロ命令ア
ドレスをうける。EOP以外のときは、制御記憶装置3
はマイクロ命令で次のマイクロ命令アドレスを指定する
。データ退避用バツフアレジスタ5は命令再実行及び割
込みオーバランの回復のためのデータ退避に共通に用い
られるもので、この実施例では8バイト×4個の構成を
とるものとする。退避データは信号線105を通じて演
算装置2から送られ、回復のための読出しデータは信号
線106から送出され仏このデータ退避用バツフアレジ
スタ5に対して、データ退避制御部4からは信号線11
3を通じて書込みポインタ(4個のレジスタのうちのど
れを示すかという情報)及び書込みパルス、もしくは読
出しポインタ及び読出しパルスが送られる。データ退避
制御部4は該バツフアレジスタ5を制御するところで、
制御記憶装置3から信号線107を通じて送られるマイ
クロ命令による退避指示及び先行制御装置1から信号線
104を通じて送られる制御信号をもとに、上記読み書
きポインタ及び読み書きパルスを作成する。入出力制御
装置7は先行制御装置1から信号線109を通じて送ら
れる入出力アドレスにより、主記憶装置6と端末装置(
図示せず)との間でのデータ転送を制御するところであ
るが、本発明に直接関係しないのでこれ以上の説明は省
略する。先に述べた様に、本発明は命令分解制御に適用
した場合に有効である。
In the figure, 1 is a preceding control device that controls instruction decoding, operand address calculation, and operand reading, 2 is an arithmetic unit, 3 is a control storage device that stores a microprogram, 4 is a data save control unit, and 5 is for data save. 6 is a buffer register, 6 is a main storage device, and 7 is an input/output control device. Typically, instructions are read from the main memory 6 and conveyed to the advance control device 1 via a signal line 110. The advance control device 1 decodes the instruction, sends the address to the main memory 6 through the signal line 108 to start operand reading, and further sends the microprogram to the control memory 3 through the signal line 100 to run the necessary microprogram. Send command address. The operand activated by the preceding control device 1 is conveyed to the preceding control device through the signal line 110, and after necessary queuing is performed, it is set in a predetermined work register of the arithmetic unit 2 through the signal line 101. On the other hand, in the control storage device 3, a predetermined microprogram is activated based on the microinstruction address sent from the preceding control device 1, and controls the arithmetic unit 2, data save control section 4, and data save buffer register 5. When the command is finished,
The control memory 3 issues an EOP (end of operation) and receives a microinstruction address from the preceding controller 1 again. When other than EOP, control storage device 3
is a microinstruction that specifies the next microinstruction address. The data saving buffer register 5 is commonly used for saving data for instruction re-execution and interrupt overrun recovery, and in this embodiment, it has a configuration of 8 bytes x 4. Saving data is sent from the arithmetic unit 2 through the signal line 105, and read data for recovery is sent from the signal line 106.
3, a write pointer (information indicating which of the four registers is indicated) and a write pulse, or a read pointer and a read pulse are sent. The data save control unit 4 controls the buffer register 5.
The above-mentioned read/write pointer and read/write pulse are created based on an evacuation instruction by a microinstruction sent from the control storage device 3 through the signal line 107 and a control signal sent from the preceding control device 1 through the signal line 104. The input/output control device 7 controls the main storage device 6 and the terminal device (
(not shown), but since it is not directly related to the present invention, further explanation will be omitted. As mentioned above, the present invention is effective when applied to instruction disassembly control.

この命令分解制御として、こkではロード・マルチプル
命令(以下、LM命令と略称する)を取り上げることに
する。第2図はLM命令のフオーマツトを示す。即ち、
LM命令は32ビツト(4バイト)からなり、前半の8
ビツト(1バイト)が命令コード、次の4ビットがR1
フイールド、同4ビツトがR3フイールド、同4ビツト
がB2フイールド、最後の12ビツトがD2フイールド
である。この命令は、B2フイールドで指定される汎用
レジスタの内容とD2フイールドの内容とを加算した値
を主記憶装置上の先頭アドレスとし、該アドレス以降の
データを、R1フイールドで指定される汎用レジスタか
らR3フイールドで指定される汎用レジスタまで書き込
む命令である。これを8バイト(或いは4バイト)単位
で毎回、オペランドを先行制御装置1が読出し、演算装
置2では毎回それを汎用レジスタへ書込むだけの処理を
するというように、8バイト(或いは4バイト)のオペ
ランドのロード命令の連続に分解して処理しようとする
のが命令分解方式である。命令の再実行に必要なデータ
は次の通りである。
As part of this instruction disassembly control, a load multiple instruction (hereinafter abbreviated as LM instruction) will be taken up here. FIG. 2 shows the format of the LM command. That is,
The LM instruction consists of 32 bits (4 bytes), and the first 8
The bit (1 byte) is the instruction code, and the next 4 bits are R1.
The 4 bits are the R3 field, the 4 bits are the B2 field, and the last 12 bits are the D2 field. This instruction sets the value obtained by adding the contents of the general-purpose register specified by the B2 field and the contents of the D2 field as the first address on the main memory, and data after this address is transferred from the general-purpose register specified by the R1 field. This is an instruction to write to the general-purpose register specified by the R3 field. Each time, the advance control unit 1 reads the operand in units of 8 bytes (or 4 bytes), and the arithmetic unit 2 performs the processing of writing it to the general-purpose register each time. The instruction disassembly method attempts to process the operands by disassembling them into a series of load instructions. The data required to re-execute the instruction is as follows.

即ち、この命令の実行後壊されるもので、かつ再実行に
必要なデータが対象である。具体的には、命令そのもの
(ストア命令等で壊されるかもしれないため)、ベース
用(インデクス用)の汎用レジスタ、浮動小数点レジス
タ等が該当するが、LM命令の場合はベースレジスタ(
B2フイールドで指定されるレジスタ)の内容だけであ
る。一方、割込みのオーバランの回復を考えてみる。次
の命令が庚命令であるとき、前の命令の実行後、完了形
割込みが起きたケースでも、次のLM命令が一部実行さ
れてしまう。どのくらい実行されるかは装置の設計方針
によるが、一般的には1〜2サイクル分オーバランする
と考えてよい。この場合、LM命令の最初の1〜2サイ
クルが実行されてしまう。1サイクルでは高々8バイト
(汎用レジスタ2個分)しか壊さないので、8〜16バ
イト分の汎用レジスタの内容を退避する必要がある。
That is, the target is data that is destroyed after execution of this instruction and that is necessary for re-execution. Specifically, this includes the instruction itself (because it may be destroyed by a store instruction, etc.), general-purpose registers for the base (for index), floating point registers, etc., but in the case of LM instructions, the base register (
only the contents of the register specified by field B2). On the other hand, let's consider recovery from an interrupt overrun. When the next instruction is a long instruction, even if a completion type interrupt occurs after the previous instruction is executed, the next LM instruction will be partially executed. The amount of execution depends on the design policy of the device, but generally it can be considered that the overrun will be one to two cycles. In this case, the first one or two cycles of the LM instruction will be executed. Since only 8 bytes (corresponding to 2 general-purpose registers) are destroyed in one cycle, it is necessary to save the contents of 8 to 16 bytes of general-purpose registers.

この様に、LM命令に関して命令再実行に必要なデータ
及び割込みオーバランの回復に必要なデータを合せると
、ベースレジスタの内容及び最初の1〜2サイクルで壊
される汎用レジスタ群の内容ということになる。
In this way, the data required for re-execution of the LM instruction and the data required for recovery from interrupt overruns are combined into the contents of the base register and the contents of the general-purpose registers that are destroyed in the first 1 to 2 cycles. .

さて、主記憶装置に対するデータの読み書きは8バイト
単位で行い、また汎用レジスタ群は各々4バイト構造で
あるとする。
Now, assume that data is read and written to and from the main memory in units of 8 bytes, and that each general-purpose register group has a 4-byte structure.

従つて、LM命令の場合、毎回、主記憶装置から読み出
された8バイトのデータはR1フイールドで示される汎
用レジスタとR1フイールドで示されるアドレス+1の
汎用レジスタとに書き込まれることになる。この書込み
動作に先立つてデータ退避のため、やはり毎回、R1フ
イールドで示される汎用レジスタとR1フイールド+1
で示される汎用レジスタのデータが読み出されることに
なる。第2図の命令フオーマツトより汎用レジスタは1
6個あり、従つてLM命令では最大16X4−64バイ
ト分読み出す可能性がある。このデータを全て退避する
ことが好ましいが、一般的に云つて、この分の退避バツ
フアを持つことは金物の増加となり、システム全体とし
ては過大な投資となる(LM命令でしか有効に使用され
ないため)。そこで、第1図に示す本発明の実施例では
、前に述べた様にデータ退避バツフアレジスタ5は8バ
イトX4個の32バイト分だけしか持たせず、LM命令
の場合、毎回、汎用レジスタから読み出したデータのう
ち、退避の必要な分を識別し、そのデータだけをデータ
退避バツフアレジスタ5へ退避する制御を行3う。具体
的には、LM命令の場合(一般には命令分解制御の場合
)、最初から2サイクルまではデータ退避バツフアレジ
スタ5のポインタを順次アツプデートして退避データが
保存されるようにするが、3サイクル以降はポインタを
アツプデートしないように制御して、同じポインタで示
されている退避バツフアヘデータを上がきしていく。
Therefore, in the case of the LM instruction, 8 bytes of data read from the main memory are written to the general-purpose register indicated by the R1 field and the general-purpose register at the address +1 indicated by the R1 field each time. To save data prior to this write operation, the general-purpose register indicated by the R1 field and the R1 field +1
The data in the general-purpose register indicated by will be read. According to the instruction format in Figure 2, the number of general-purpose registers is 1.
There are 6, so there is a possibility of reading a maximum of 16x4-64 bytes with the LM instruction. It is preferable to save all of this data, but generally speaking, having a buffer for saving this amount will increase the amount of hardware, making it an excessive investment for the system as a whole (because it is effectively used only by LM instructions) ). Therefore, in the embodiment of the present invention shown in FIG. 1, the data save buffer register 5 only has 32 bytes (8 bytes x 4) as described above, and in the case of an LM instruction, the general-purpose register Out of the data read from the , data that needs to be saved is identified, and control is performed to save only that data to the data save buffer register 5 . Specifically, in the case of an LM instruction (generally in the case of instruction disassembly control), the pointer of the data save buffer register 5 is updated sequentially from the first to the second cycle so that the save data is saved; After the cycle, the pointer is controlled not to be updated, and data is uploaded to the save buffer indicated by the same pointer.

これは前に述べた様に、割込みオーバランの場合、次が
LM命令であるとき、その最初の1〜2サイクルが実行
されてしまうことによる。又、さらにLM命令の場合、
ベースレジスタの内容が壊されるときは無条件にデータ
退避バツフアレジスタ5のポインタをアツプデートして
、そのデータを保存する制御を行う。ベースレジスタの
内容が壊されるか否かは、R1フイールドの内容とB2
フイールドの内容を比較することにより行う。一方、命
令分解制御以外の命令の場合は、その都度、データ退避
バツフアレジスタ5のポインタをアツプデートしてフア
ーストイン・フアーストアウト形式にデータを保存して
いく。これにより、割込みのオーバランの回復及び再実
行に必要なデータは全て退避され、しかもデータ退避バ
ツフアは少ないデータ量で実現できる。以下、第1図に
おいて、特に本発明と関係のある先行制御装置1及びデ
ータ退避制御部4の具体的構成例を説明する。
This is because, as described above, in the case of an interrupt overrun, when the next LM instruction is executed, the first one or two cycles thereof are executed. Furthermore, in the case of the LM command,
When the contents of the base register are destroyed, control is performed to unconditionally update the pointer of the data save buffer register 5 and save the data. Whether or not the contents of the base register are destroyed depends on the contents of the R1 field and B2.
This is done by comparing the contents of the fields. On the other hand, in the case of instructions other than instruction disassembly control, the pointer of the data save buffer register 5 is updated each time, and the data is saved in a first-in/first-out format. As a result, all the data necessary for interrupt overrun recovery and re-execution is saved, and the data save buffer can be realized with a small amount of data. Hereinafter, with reference to FIG. 1, a specific configuration example of the advance control device 1 and the data save control section 4, which are particularly related to the present invention, will be explained.

第3図は第1図の先行制御装置1をさらに詳細に示した
図である。
FIG. 3 is a diagram showing the advance control device 1 of FIG. 1 in more detail.

図において、11は命令バツフア、12は命令レジスタ
、13は汎用レジスタ群、14はアドレス制御回路、1
5はアドレス計算等を行う加算器、16は加算結果を保
持するアドレスレジスタ、17は命令分解制御に用いら
れる+2回路、18は命令のデコード開始、デコード成
功等を制御するステージ制御回路、19は比較器群、2
0はLM命令用ステージ制御回路、21は演算装置へ制
御を渡すための命令キユーバツフアである。命令は主記
憶装置6から読み出され、信号線110を通じて命令バ
ツフア11に貯えられる。
In the figure, 11 is an instruction buffer, 12 is an instruction register, 13 is a general-purpose register group, 14 is an address control circuit, 1
5 is an adder that performs address calculations, etc., 16 is an address register that holds the addition result, 17 is a +2 circuit used to control instruction disassembly, 18 is a stage control circuit that controls the start of instruction decoding, success of decoding, etc., and 19 is an address register that holds the addition result. Comparator group, 2
0 is a stage control circuit for LM instructions, and 21 is an instruction buffer for passing control to the arithmetic unit. Instructions are read from main memory 6 and stored in instruction buffer 11 via signal line 110.

その後、適当な時期に該命令バツフア11より命令が4
バイト切り出されて命令レジスタ12にセツトされる。
Cxでは、命令レジスタ12にLM命令がセツトされた
として以後の説明を行う。命令レジスタ12にセツトさ
れた命令(LM命令)の0pコードは必要なキユーイン
グが施こされて命令キユーバツフア21にセツトされ、
適当な時期に信号線100を通じて制御記憶装置3へ、
必要なマイクロプログラムを動かすためのマイクロ命令
アドレスとして送られる。一方、オペランドアドレスは
加算器15を使つて計算され、アドレスレジスタ16に
セツトされる。即ち、命令レジスタ12のB2フイール
ドがアドレス制御回路14で選択されて、該B2フイー
ルドで指定される汎用レジスタ13の内容が加算器15
の一方の入力となり、命令レジスタ12のD2フイール
ドの内容がそのまk加算器15の他方の入力となり、両
者を加算した値がオペランドアドレスとしてアドレスレ
ジスタ16にセツトされる。このオペランドアドレスは
信号線108を通じて主記憶装置6へ送られ、その結果
、主記憶装置6から読み出されたデータ(8バイト)は
、命令レジスタ12のR1フイールドで示される汎用レ
ジスタとその次の汎用レジスタとに4バイトずつ分割さ
れて書き込まれる。その間に、アドレスレジスタ16の
オペランドアドレスは加算器15によつて+8され、再
びアドレスレジスタ16にセツトされる0又、命令レジ
スタ12のR1フイールドの値は+2回路17でもつて
+2されてR1フイールドに戻される。その後、命令キ
ユーバツフア21の回一内容が再び制御記憶装置3へ送
られ、又、アドレスレジスタ16のオペランドアドレス
は主記憶装置6へ送られて、次のオペランド・データの
ロードが実行される。以下、同様の動作を繰り返すだけ
である。即ち、I命令が8バイトのオペランドのロード
命令の連続として処理される。後述する様に、比較器群
19の一つは命令レジスタ12のR1フイールドとR3
フイールドの内容を比較するために用いられ、両者が一
致すると、信号線130を通じてステージ制御回路18
へLM命令の終了が発せられる。
Thereafter, at an appropriate time, the instruction 4 is transferred from the instruction buffer 11.
A byte is extracted and set in the instruction register 12.
The following explanation will be given assuming that the LM instruction is set in the instruction register 12 in Cx. The 0p code of the instruction (LM instruction) set in the instruction register 12 is subjected to necessary queuing and set in the instruction queue buffer 21.
to the control storage device 3 through the signal line 100 at an appropriate time;
It is sent as a microinstruction address to run the required microprogram. On the other hand, the operand address is calculated using adder 15 and set in address register 16. That is, the B2 field of the instruction register 12 is selected by the address control circuit 14, and the contents of the general-purpose register 13 specified by the B2 field are transferred to the adder 15.
The content of the D2 field of the instruction register 12 directly becomes the other input of the k adder 15, and the value obtained by adding the two is set in the address register 16 as the operand address. This operand address is sent to the main memory device 6 through the signal line 108, and as a result, the data (8 bytes) read from the main memory device 6 is transferred to the general register indicated by the R1 field of the instruction register 12 and the next one. The data is divided into 4 bytes and written to the general register. In the meantime, the operand address of the address register 16 is incremented by 8 by the adder 15 and set to 0 again in the address register 16. Also, the value of the R1 field of the instruction register 12 is incremented by 2 by the +2 circuit 17 and set to the R1 field. be returned. Thereafter, the contents of the instruction buffer 21 are sent to the control storage device 3 again, and the operand address of the address register 16 is sent to the main storage device 6 to execute loading of the next operand data. Thereafter, the same operation is repeated. That is, the I instruction is processed as a series of load instructions for 8-byte operands. As will be described later, one of the comparators 19 compares the R1 field and R3 field of the instruction register 12.
It is used to compare the contents of the fields, and if they match, the stage control circuit 18 is sent through the signal line 130.
The end of the LM command is issued to.

これによりステージ制御回路18は次の命令のデコード
開始等の状態に遷移する。比較器群19の残りのものは
本発明により新たに用意されたもので、ベースレジスタ
の内容が壊されるとき信号線131を゛1゛とするもの
である。Lステージ制御回路20も本発明により用意さ
れたもので、命令レジスタ12の0Pコードを入力して
、LM命令の場合、信号線140を継続して”1゛とし
、又、信号線141はLM命令の最初のサイクルでのみ
゛1゛とするものである。該LMステージ制御回路20
の動作タイミングはステージ制御回路18から信号線1
34を通して与えられるタイミング信号により規制され
る。第4図は第3図の比較器群19、濯ステージ制御回
路20をさらに詳細に示した図である。
This causes the stage control circuit 18 to transition to a state such as starting decoding of the next instruction. The remaining comparators 19 are newly prepared according to the present invention, and set the signal line 131 to "1" when the contents of the base register are destroyed. The L stage control circuit 20 is also prepared according to the present invention, and when the 0P code of the instruction register 12 is input and the LM instruction is issued, the signal line 140 is continuously set to "1", and the signal line 141 is set to LM. The LM stage control circuit 20 is set to "1" only in the first cycle of the instruction.
The operation timing is determined by the signal line 1 from the stage control circuit 18.
34. FIG. 4 is a diagram showing the comparator group 19 and rinse stage control circuit 20 of FIG. 3 in more detail.

図において、190はR1=R3またはR1+1R3の
比較器で、LM命令の処理の終了を検出するのに用いら
れる。即ち、R1−R3またはR1+1−R3のとき、
比較器190の出力信号線130は“1゛となる。19
1はR1+1=B2の比較器、192はR1−B2の比
較器である。
In the figure, 190 is a comparator with R1=R3 or R1+1R3, which is used to detect the end of processing of the LM instruction. That is, when R1-R3 or R1+1-R3,
The output signal line 130 of the comparator 190 becomes "1".19
1 is a comparator with R1+1=B2, and 192 is a comparator with R1-B2.

193はR1−R3の比較器で、比較器191,192
の出力を制御するのに用いられる。
193 is a comparator for R1-R3, and comparators 191 and 192
used to control the output of

即ち、比較器192によりR1=B2が成立した場合、
信号線131は無条件に“1゛となるが、それ以外の場
合は、比較器193によりR1−R3が成立しないとい
う条件のもとで、比較器191でR1+1−B2が成立
したとき信号線131は゛1゛となる。容易に理解され
る後に、上記信号線131が“1゛゜になるということ
は、オペランド・データがベースレジスタに書き込まれ
ることを意味する。云い換えれば、ベースレジスタのそ
れまでの内容が壊されることを意味する。一方、30は
LM命令のデコード回路、31はラツチ回路であり、デ
コード回路30がLM命令をデコードすると、信号線1
34を通じてステージ制御回路18から与えられるタイ
ミング信号でもつてラツチ回路31に゛1゛がラツチさ
れる。ラツチ回路31が”1゛になると信号線140も
”1゛となる。即ち、信号線140が゛1゛ということ
は、LM命令のデコードが成功したことを意味する。3
2は微分回路で、140が“0”から゛1゛に立ち上つ
た所定の期間だけ信号線141を゛1゛とするものであ
る。
That is, when R1=B2 is established by the comparator 192,
The signal line 131 becomes "1" unconditionally, but in other cases, under the condition that R1-R3 is not established by the comparator 193, when R1+1-B2 is established by the comparator 191, the signal line is 131 becomes "1". After being easily understood, when the signal line 131 becomes "1", it means that the operand data is written to the base register. In other words, the previous contents of the base register are destroyed. On the other hand, 30 is a decoding circuit for the LM instruction, and 31 is a latch circuit. When the decoding circuit 30 decodes the LM instruction, the signal line 1
1 is latched in the latch circuit 31 by a timing signal applied from the stage control circuit 18 through the stage control circuit 34. When the latch circuit 31 becomes "1", the signal line 140 also becomes "1". That is, the fact that the signal line 140 is "1" means that the LM instruction has been successfully decoded. 3
Reference numeral 2 denotes a differentiating circuit which sets the signal line 141 to ``1'' only during a predetermined period when 140 rises from ``0'' to ``1''.

即ち、信号線141が゛1゛の期間は、LM命令の実行
の最初のサイクルであることを示している。第1図のデ
ータ退避制御部4は先行制御装置1より上述の信号線1
31,140,141の状態を受け取り、データ退避バ
ツフアレジスタ5のポインタのアツプデートを制御する
のである。
That is, the period when the signal line 141 is "1" indicates the first cycle of execution of the LM instruction. The data save control section 4 in FIG.
It receives the states of 31, 140, and 141 and controls the updating of the pointer of the data save buffer register 5.

第1図において、信号線104は130,140,14
1の信号線をまとめて示したものである。第5図に本発
明の特徴であるデータ退避制御部4の一実施例を示す。
第5図の動作をまとめて云うと次の通りである。まず命
令分解制御以外の命令が示された場合は、そのたびにデ
ータ退避バツフアレジスタのポインタをアツプデートし
ていく。従つて、この場合、アツプデートしたポインタ
で示されるバツフアに新しいデータが退避されて、それ
までの古いデータが消され、データ退避バツフアレジス
タ5全体としては、常にその容量分、即ち8X4−32
バイト分の最新の退避データが保存される。次に、LM
命令で代表される命令分解制御形式の命令が示された場
合は、先に説明した原則にもとづいて最初から2サイク
ルまではポインタをアツプデートし、それ以降はアツプ
デートしないように制御する。従つて、LM命令の場合
、最初から2サイクルまでは退避データが保存されるこ
とになる。さらにLM命令の処理において、ベースレジ
スタの内容が更新される(壊される)場合は無条件にポ
インタをアツプデートする。さて第5図において、30
,31がLM命令等の命令分解制御において最初からh
サイクルまでをカウントするポインタ、40,41がデ
ータ退避バツフアレジスタの入力ポインタを保持するラ
ツチである。32はラツチ30の入力の選択回路、33
はラツチ30の動作を制御する回路、43はラツチ40
の動作を制御する回路、44は信号線107のマイクロ
命令のデコード回路、34,42は+1回路を示す。
In FIG. 1, the signal lines 104 are 130, 140, 14
1 shows all signal lines. FIG. 5 shows an embodiment of the data save control section 4, which is a feature of the present invention.
The operations shown in FIG. 5 can be summarized as follows. First, when an instruction other than instruction disassembly control is indicated, the pointer of the data save buffer register is updated each time. Therefore, in this case, new data is saved to the buffer indicated by the updated pointer, and old data is erased, and the data save buffer register 5 as a whole is always filled with its capacity, that is, 8X4-32.
The latest bytes of saved data are saved. Next, L.M.
When an instruction in the instruction disassembly control format, which is represented by an instruction, is indicated, the pointer is updated for the first two cycles based on the principle described above, and is controlled not to be updated thereafter. Therefore, in the case of the LM instruction, save data is saved for the first two cycles. Furthermore, in the processing of the LM instruction, if the contents of the base register are updated (destroyed), the pointer is updated unconditionally. Now, in Figure 5, 30
, 31 is h from the beginning in instruction disassembly control such as LM instructions.
Pointers 40 and 41 that count up to a cycle are latches that hold the input pointer of the data save buffer register. 32 is a selection circuit for the input of the latch 30; 33
43 is a circuit that controls the operation of latch 30;
44 is a microinstruction decoding circuit for the signal line 107, and 34 and 42 are +1 circuits.

ラツチ30,31は実際には2ビツトからなり、従つて
、信号線200,201,202は実際には2本である
。ラツチ40,41も実際には2ビツトで構成される。
選択回路32は、信号線140の反転状態と信号線14
の状態との論理和を示す信号線142が゛1゛のとき、
即ち、LM命令のような命令分解制御でない(信号線1
40が゛O”)か、又は命令分解制御で第1サイクル(
信号線141が“1゛)のとき、信号線131を選択し
て、この信号線131が゛O”の場合は信号線202に
゛00゛を出力し、信号線131が゛1゛の場合は信号
線202に゛011を出力する。第4図で説明した様に
、信号線131が゛1”ということは、ベースレジスタ
の内容が壊されることを意味している。一方、信号線1
42が”O゛のとき、即ち、命令分解制御で第2サイク
ル以降のとき、選択回路32は信号線200の内容を信
号線202に帰還する。つまり、ラツチ30,31から
なるポインタは、命令分解制御の第1サイクル又は命令
分解制御でないとぎ00″又は101″にイニシヤラィ
ズされ、命令分解制御の第2サイクル以降では、そのカ
ウント値が歩進される。I命令の場合(一般には命令分
解制御の場合)、上記ラツチ30,31で構成されるポ
インタは゛11”まで歩進すると、それ以降は該゛1F
゛の状態を保持することになるが、この制御を司どるの
が制御回路33である。
The latches 30, 31 actually consist of two bits, so the signal lines 200, 201, 202 are actually two. The latches 40 and 41 are also actually composed of 2 bits.
The selection circuit 32 selects the inverted state of the signal line 140 and the signal line 14.
When the signal line 142 indicating the logical sum with the state of is "1",
In other words, it is not an instruction disassembly control like the LM instruction (signal line 1
40 is "O") or the first cycle (
When the signal line 141 is "1", select the signal line 131, and when the signal line 131 is "O", output "00" to the signal line 202, and when the signal line 131 is "1" outputs “011” to the signal line 202. As explained in FIG. 4, the fact that the signal line 131 is "1" means that the contents of the base register are destroyed.
42 is "O", that is, after the second cycle in the instruction disassembly control, the selection circuit 32 returns the contents of the signal line 200 to the signal line 202.In other words, the pointer consisting of latches 30 and 31 It is initialized to 00'' or 101'' in the first cycle of instruction disassembly control or when it is not instruction disassembly control, and from the second cycle of instruction disassembly control onwards, the count value is incremented.In the case of an I instruction (generally ), when the pointer constituted by the latches 30 and 31 advances to ``11'', from then on
This state is maintained, and the control circuit 33 is in charge of this control.

第6図は第5図の制御回路33をさらに詳細に示した図
である。
FIG. 6 is a diagram showing the control circuit 33 of FIG. 5 in more detail.

第6図において、第5図のラツチ30をセツトする信号
線330が゛1”となる条件は、LM命令でないか(1
40−″0゛)、I命令の第1サイクルか(141−゛
1″)、I命令でラツチ31の出力信号線201が゛1
F′でないかのいずれかである。
In FIG. 6, the condition that the signal line 330 that sets the latch 30 in FIG.
40-"0"), the first cycle of the I command (141-"1"), the output signal line 201 of the latch 31 becomes "1" in the I command.
Either F' or not.

LM命令であるかどうかは、信号線107に乗るマイク
ロ命令をデコードすることによつて分かる。これらの条
件のうち、LM命令でないか又はLM命令の第1サイク
ルの場合は、第5図より信号線142が゛1゛であるた
め、ラツチ30は600゛又は”0r゛にイニシヤライ
ズされる。又、LM命令の第2サイクル以降の場合で、
信号線201が゛11”でないとき、ラツチ31の内容
を+1回路で歩進した値がラツチ30にセツトされる。
一方、LM命令で信号線201が゛1r゛の場合、信号
線330ばO゛であり、ラツチ30のセツト動作は禁止
される。即ち、I命令の場合、ラツチ30,31よりな
るポインタは、その値が゛1r゛となつたら該命令の処
理が終るまで11r゛の状態に保持される。第5図のラ
ツチ40,41よりなるポインタは、ラツチ31の出力
信号線201が11r゛以外の場合には1ずつ歩進し、
信号線201が゛1F”になると、それまでの状態を保
持する。
Whether it is an LM instruction or not can be determined by decoding the microinstruction on the signal line 107. Among these conditions, in the case of a non-LM instruction or the first cycle of an LM instruction, as shown in FIG. 5, the signal line 142 is ``1'', so the latch 30 is initialized to 600'' or ``0r''. Also, in the case after the second cycle of the LM instruction,
When the signal line 201 is not "11", the value obtained by incrementing the contents of the latch 31 by +1 circuit is set in the latch 30.
On the other hand, when the signal line 201 is '1r' in the LM command, the signal line 330 is O', and the setting operation of the latch 30 is prohibited. That is, in the case of an I instruction, once the pointer formed by latches 30 and 31 reaches the value ``1r'', it is held in the 11r'' state until the processing of the instruction is completed. The pointer composed of latches 40 and 41 in FIG. 5 increments by 1 when the output signal line 201 of latch 31 is other than 11r.
When the signal line 201 becomes "1F", the previous state is maintained.

さらに、戊命令で信号線131が゛1゛の場合には、信
号線201の状態に無関係に歩進せしめられる。このラ
ツチ40,41よりなるポインタの制御を司どるのが制
御回路43である。第7図は第5図の制御回路43をさ
らに詳細に示した図である。
Furthermore, if the signal line 131 is "1" due to a certain command, it is caused to advance regardless of the state of the signal line 201. A control circuit 43 controls the pointer made up of latches 40 and 41. FIG. 7 is a diagram showing the control circuit 43 of FIG. 5 in more detail.

第7図において、ラツチ40をセツトする信号線430
が゛1゛となる条件は、LM命令でベースレジスタの内
容が壊されるとき(131−6F゛)、LM命令以外の
マイクロ命令でデータの退避が指示されたとき、LM命
令で信号線201が゛1F゛以外のときのいずれかであ
る。LM命令であるかどうか、及びマイクロ命令でデー
タの退避が指示されているかどうかは、信号線107の
マイクロ命令をデコードして検出する。信号線430が
1r゛になることは、ラツチ40,41よりなるデータ
退避バツフアレジスタ用ポインタが1つあがることを意
味している。第5図にもどり、データ退避バツフアレジ
スタに対する退避データのセツト信号は、デコード回路
44の出力線440を通じて送られる。又、このときの
データ退避バツフアレジスタの入力ポインタ値は信号線
441を通じて送られる。これまでの説明より、信号線
441で示される退避バツフアの入力ポインタ値は、命
令分解FbI脚でない場合は1ずつアツプデートするが
、命令分解制御の場合はラツチ30,31が″1F゛に
なるまでは1ずkアツプデートし、それ以降はアツプデ
ートしないように制御されることが分かる。さらに、凄
命令の場合、ベースレジスタが更新される場合はラツチ
30,31が゛11゛になつていても、信号線441の
ポインタ値はアツプデートされることが分かる。なお、
第5図においてベースレジスタが壊される場合(131
−゛1゛)、ラツチ30を゛0F”にイニシヤライズす
るのは次の理由による。
In FIG. 7, signal line 430 sets latch 40.
The conditions for ``1'' are when the contents of the base register are destroyed by the LM instruction (131-6F''), when data saving is instructed by a microinstruction other than the LM instruction, and when the signal line 201 is Any of the cases other than ``1F''. The microinstruction on the signal line 107 is decoded to determine whether it is an LM instruction and whether the microinstruction instructs data saving. When the signal line 430 becomes 1r', it means that the data save buffer register pointer made up of latches 40 and 41 goes up by one. Returning to FIG. 5, the save data set signal for the data save buffer register is sent through the output line 440 of the decode circuit 44. Further, the input pointer value of the data save buffer register at this time is sent through the signal line 441. From the above explanation, the input pointer value of the save buffer indicated by the signal line 441 is updated by 1 in the case of not the instruction disassembly FbI leg, but in the case of instruction disassembly control until the latches 30 and 31 reach "1F". It can be seen that the command is updated at the beginning of K and is not updated thereafter.Furthermore, in the case of a special instruction, if the base register is updated, even if latches 30 and 31 are set to ``11'', It can be seen that the pointer value of the signal line 441 is updated.
In Figure 5, when the base register is destroyed (131
-'1'), the latch 30 is initialized to '0F' for the following reason.

LM命令再実行のためにはベースレジスタの内容を保存
しておく必要がある。しかも、I命令終了までというこ
とでなく、LM命令終了後、2マシンサイクルの間保存
しなければならない(LM命令でマシンチエツクが発生
しても止まるまでに2サイクル実行してしまうため)。
ラツチ30を゛00゛にイニシヤライズしてしまうと、
最初のサイクルがベースレジスタ更新サイクルの場合、
2サイクル分の保存ができないので、特にその場合に限
り“0r゛にイニシヤライズするものである。以上の通
り、本発明によれば、割込みのオーバランの回復及び命
令の再実行に必要なデータは両者に共通のバツフアレジ
スタに全て退避され、しかもこの種の退避バツフアレジ
スタを少ない容量で実行することができる。
In order to re-execute the LM instruction, it is necessary to save the contents of the base register. Furthermore, the data must be saved not only until the end of the I instruction, but also for two machine cycles after the LM instruction (because even if a machine check occurs with the LM instruction, it will be executed for two cycles before it stops).
If latch 30 is initialized to '00',
If the first cycle is a base register update cycle,
Since it is not possible to save two cycles, it is initialized to "0r" only in that case.As described above, according to the present invention, the data necessary for recovering from an interrupt overrun and re-executing an instruction is stored in both. All data are saved in a common buffer register, and this type of save buffer register can be executed with a small capacity.

なお、図示の構成ぱ単なる一実施例にすぎず、本発明は
これに限定されるものでないことは当然である。
It should be noted that the illustrated configuration is merely one example, and the present invention is not limited to this.

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

第1図は本発明の情報処理装置の一実施例の全体構成図
、第2図はロード・マルチプル(LM)命令のフオーマ
ツト例を示す図、第3図は第1図の先行制御装置1をさ
らに詳細に示した図、第4図は第2図の比較器群19及
びIステージ匍脚回路20をさらに詳細に示した図、第
5図は第1図のデータ退避制御部4をさらに詳細に示し
た図、第6図は第5図の制御回路33をさらに詳細に示
した図、第7図は第5図の制御回路43をさらに詳細に
示した図である。 1・・・・・・先行制御装置、2・・・・・・演算装置
、3・・・・・・制御記憶装置、4・・・・・・データ
退避制御部、5・・・・・・データ退避バツフアレジス
タ、6・・・・・・主記憶装置、7・・・・・・入出力
制御装置。
FIG. 1 is an overall configuration diagram of an embodiment of the information processing apparatus of the present invention, FIG. 2 is a diagram showing an example of the format of a load multiple (LM) instruction, and FIG. FIG. 4 is a diagram showing the comparator group 19 and I stage leg circuit 20 in FIG. 2 in more detail, and FIG. 5 is a diagram showing the data save control section 4 in FIG. 1 in more detail. FIG. 6 is a diagram showing the control circuit 33 of FIG. 5 in more detail, and FIG. 7 is a diagram showing the control circuit 43 of FIG. 5 in more detail. DESCRIPTION OF SYMBOLS 1... Advance control device, 2... Arithmetic device, 3... Control storage device, 4... Data save control unit, 5......・Data save buffer register, 6...main storage device, 7...input/output control device.

Claims (1)

【特許請求の範囲】 1 命令の実行中にエラーを生じた場合、その命令の実
行前の状態に戻して再実行する制御、及び、割込みの検
出を遅らせて命令の実行をオーバランさせ、後でオーバ
ランして実行した命令を回復する制御を採用している情
報処理装置において、前記命令再実行のためのデータ退
避と前記割込みのオーバラン回復のためのデータ退避と
に共通に用いるデータ退避バッファ手段と、前記データ
退避バッファ手段のアドレスを指示するポインタ手段と
、前記割込みのオーバランの回復及び命令の再実行に必
要なデータ退避を検出し、それによつて前記ポインタ手
段の歩進を制御する制御手段とを具備していることを特
徴とする情報処理装置。 2 特許請求の範囲第1項記載の情報処理装置において
、制御手段は、命令分解制御形式(命令を一連の簡単な
命令の連続に分解して処理する制御形式)の命令を検出
したとき、最初から数サイクルまでは前記ポインタ手段
を順次歩進し、それ以降は歩進を禁止することを特徴と
する情報処理装置。 3 特許請求の範囲第2項記載の情報処理装置において
、制御手段は、ベースレジスタの内容が壊される場合は
前記ポインタ手段を無条件に歩進することを特徴とする
情報処理装置。
[Claims] 1. If an error occurs during the execution of an instruction, control is provided to return to the state before execution of the instruction and re-execute it, and control to overrun the execution of the instruction by delaying detection of an interrupt so that it can be executed later. In an information processing device that employs control for recovering an instruction executed in an overrun, a data saving buffer means commonly used for saving data for re-executing the instruction and saving data for recovering from an overrun of the interrupt; , a pointer means for indicating an address of the data evacuation buffer means, and a control means for detecting the data evacuation necessary for recovering from the interrupt overrun and re-executing the instruction, thereby controlling the increment of the pointer means. An information processing device comprising: 2. In the information processing device according to claim 1, when the control means detects an instruction in an instruction disassembly control format (a control format in which an instruction is disassembled into a series of simple instructions and processed), An information processing apparatus characterized in that the pointer means is sequentially incremented for several cycles from 1 to 3, and that increment is prohibited thereafter. 3. The information processing apparatus according to claim 2, wherein the control means unconditionally increments the pointer means when the contents of the base register are destroyed.
JP54140828A 1979-10-31 1979-10-31 information processing equipment Expired JPS595934B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP54140828A JPS595934B2 (en) 1979-10-31 1979-10-31 information processing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP54140828A JPS595934B2 (en) 1979-10-31 1979-10-31 information processing equipment

Publications (2)

Publication Number Publication Date
JPS5665250A JPS5665250A (en) 1981-06-02
JPS595934B2 true JPS595934B2 (en) 1984-02-08

Family

ID=15277658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54140828A Expired JPS595934B2 (en) 1979-10-31 1979-10-31 information processing equipment

Country Status (1)

Country Link
JP (1) JPS595934B2 (en)

Also Published As

Publication number Publication date
JPS5665250A (en) 1981-06-02

Similar Documents

Publication Publication Date Title
US5003462A (en) Apparatus and method for implementing precise interrupts on a pipelined processor with multiple functional units with separate address translation interrupt means
JP2597811B2 (en) Data processing system
KR100571322B1 (en) Exception handling methods, devices, and systems in pipelined processors
US4740893A (en) Method for reducing the time for switching between programs
US4745547A (en) Vector processing
JP2645669B2 (en) Data processing system
US4970641A (en) Exception handling in a pipelined microprocessor
JPS59114641A (en) Interrupt processor
JPH04296937A (en) Hardware-data-string-operatiion controller and method for performing main-storage-string operation
JPS6239780B2 (en)
JPH0157817B2 (en)
EP0094535B1 (en) Pipe-line data processing system
JP2620511B2 (en) Data processor
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
JPH0348536B2 (en)
JPH01137331A (en) Control word branching
EP0010197B1 (en) Data processing system for interfacing a main store with a control sectron and a data processing section
JPH0760388B2 (en) Pipeline control circuit
JPS623342A (en) Pipeline processor
JPS595934B2 (en) information processing equipment
EP0177712B1 (en) Masked data fetch and modifying device
EP0211487A1 (en) Conditional operations in computers
JP3100705B2 (en) Apparatus for instruction preparation in a microprocessor
JPS6242301B2 (en)
JPS6161412B2 (en)