JPH028332B2 - - Google Patents
Info
- Publication number
- JPH028332B2 JPH028332B2 JP20892684A JP20892684A JPH028332B2 JP H028332 B2 JPH028332 B2 JP H028332B2 JP 20892684 A JP20892684 A JP 20892684A JP 20892684 A JP20892684 A JP 20892684A JP H028332 B2 JPH028332 B2 JP H028332B2
- Authority
- JP
- Japan
- Prior art keywords
- operand
- bytes
- register
- address
- instruction
- 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
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は移動命令論理比較命令処理方式、特に
1サイクルパイプライン制御方式を採用する処理
装置における命令処理方式であつて、移動命令/
論理比較命令における例外検出による中断や、ミ
スマツチによる終了時のアドレスおよび残りバイ
ト数の補正を効率的に行い得るようにした移動命
令論理比較命令処理方式に関するものである。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a move instruction logical comparison instruction processing method, particularly an instruction processing method in a processing device that employs a one-cycle pipeline control method.
The present invention relates to a move instruction logical comparison instruction processing method that can efficiently perform interruption due to exception detection in a logical comparison instruction and correction of the end address and number of remaining bytes due to a mismatch.
第3図は2サイクルパイプラインと1サイクル
パイプラインとの比較を示す図、第4図は移動命
令におけるフローの展開パターンの例、第5図は
本発明の課題に関連した問題点を説明するための
図を示す。
Fig. 3 is a diagram showing a comparison between a 2-cycle pipeline and a 1-cycle pipeline, Fig. 4 is an example of a flow development pattern in a move instruction, and Fig. 5 explains problems related to the problems of the present invention. Here is a diagram for.
従来のパイプライン制御を行う処理装置では、
第3図イ図示のような2サイクルに1回命令が投
入される2サイクルパイプラインが多く採用され
ている。2サイクルパイプラインにおける1フロ
ーは、命令をデコードするDステージと、インデ
ツクス・ベース等を読み出すRステージと、実効
アドレスを生成するAステージと、生成アドレス
によりバツフアを検索するB1ステージおよびB2
ステージと、オペランドデータを用いて演算を実
行するE1ステージおよびE2ステージと、結果を
チエツクするCKステージと、レジスタへの書き
込みを行うWステージとからなる。 In a processing device that performs conventional pipeline control,
A two-cycle pipeline, as shown in FIG. 3A, in which an instruction is input once every two cycles, is often used. One flow in a two-cycle pipeline consists of a D stage for decoding instructions, an R stage for reading index bases, etc., an A stage for generating effective addresses, and stages B1 and B2 for searching buffers using generated addresses.
stage, an E1 stage and an E2 stage that execute operations using operand data, a CK stage that checks results, and a W stage that writes to a register.
このような2サイクルパイプラインに対して、
パイプラインの密度を濃くし、性能を向上させる
ため、各サイクル毎に命令を投入できる1サイク
ルパイプラインが考えられている。1サイクルパ
イプラインの1フローは、第3図ロ図示のよう
に、命令をデコードするDステージと、実効アド
レスを生成するAステージと、アドレス変換を行
うTステージと、バツフアを検索するBステージ
と、オペランドデータを用いて演算を実行するE
ステージと、レジスタへの書き込みを行うWステ
ージとからなる。本発明は、この1サイクルパイ
プライン制御を採用する処理装置を対象としてい
る。 For such a two-cycle pipeline,
In order to increase the density of the pipeline and improve its performance, a one-cycle pipeline is being considered in which an instruction can be input every cycle. As shown in Figure 3B, one flow of a one-cycle pipeline consists of a D stage for decoding an instruction, an A stage for generating an effective address, a T stage for address translation, and a B stage for searching a buffer. , E which performs an operation using operand data
stage, and a W stage for writing to the register. The present invention is directed to a processing device that employs this one-cycle pipeline control.
ところで、長いバイト数を1命令で処理するい
わゆる割込み可能な移動(Move Long)命令や
論理比較(Compare Logical Long)命令は、
最近オペレーテイング・システム等における使用
頻度が増え、特に移動命令においては、その処理
速度が性能に大きく影響するようになつている。
そのため、第4図イに示すように、通常のフエツ
チ/ストア・シーケンスでフローを展開するだけ
でなく、バウンダリ条件がよい場合には、第4図
ロ図示のように、8バイトのフエツチを2回繰り
返して、その後16バイトのストアを実行し、3フ
ローで16バイトの移動を可能としたり、また第2
オペランドが短く第1オペランドの領域に埋め込
み(パデイング)文字を詰めるときには、第4図
ハ図示のようにストアのみの連続処理を行つて高
速化を図ることが考慮されている。 By the way, the so-called interruptible move (Move Long) instruction and logical comparison (Compare Logical Long) instruction that process a long number of bytes in one instruction are
Recently, the frequency of use in operating systems and the like has increased, and the processing speed of movement commands in particular has come to have a large impact on performance.
Therefore, in addition to expanding the flow with a normal fetch/store sequence as shown in Figure 4B, if the boundary conditions are good, an 8-byte fetch is executed twice as shown in Figure 4B. It is repeated several times, and then a 16-byte store is executed, making it possible to move 16 bytes in 3 flows, and the second
When the operand is short and the area of the first operand is filled with padding characters, it is considered to increase the speed by performing continuous store-only processing as shown in FIG. 4C.
上記移動命令や論理比較命令では、アクセスに
対する例外が発生したとき、それまで実行した第
1オペランド、第2オペランドのアドレスやデー
タ長を補正して、それぞれの汎用レジスタへ戻さ
なければならない。論理比較命令において不一致
が検出された場合も同様に、そのバイトのところ
で処理を中断し、アドレス等を補正する必要があ
る。この処理は、パイプラインの構造によつて異
なつてくる。 In the above-mentioned move instructions and logical comparison instructions, when an exception to access occurs, the addresses and data lengths of the first and second operands that have been executed must be corrected and returned to the respective general-purpose registers. Similarly, when a mismatch is detected in a logical comparison instruction, it is necessary to interrupt processing at that byte and correct the address, etc. This process differs depending on the pipeline structure.
第5図イは、2サイクルパイプラインでアクセ
ス例外が生じた場合を示している。パイプライン
処理においては、前の処理が完了する以前に次の
処理のアクセス要求を出すのが一般的であり、ア
クセス例外が検出されるときには、次の1フロー
が流れている。これに対し、第5図ロに示した1
サイクルパイプラインの場合、アクセス例外検出
時には、後続する3フローが流れていることにな
る。 FIG. 5A shows a case where an access exception occurs in a two-cycle pipeline. In pipeline processing, it is common to issue an access request for the next process before the previous process is completed, and when an access exception is detected, the next flow is in progress. In contrast, 1 shown in Figure 5B
In the case of a cycle pipeline, three subsequent flows are in progress when an access exception is detected.
同様に論理比較命令においてミスマツチが検出
されたとき、2サイクルパイプラインでは、第5
図ハ図示のように2フロー流れる。これに対し、
1サイクルパイプラインでは、第5図ニ図示のよ
うに、4フローが流れていることになる。 Similarly, when a mismatch is detected in a logical comparison instruction, in a two-cycle pipeline, the fifth
Two flows flow as shown in FIG. On the other hand,
In a one-cycle pipeline, four flows flow as shown in FIG. 5D.
このように、従来の2サイクルパイプラインと
比較すると、1サイクルパイプラインでは、2フ
ロー余分に流れてしまうので、アドレスやバイト
数の補正が複雑になり、補正を実現することが困
難であるという問題がある。 In this way, compared to the conventional 2-cycle pipeline, in the 1-cycle pipeline, two extra flows flow, making correction of addresses and byte counts complicated and difficult to implement. There's a problem.
本発明は上記問題点の解決を図り、移動または
論理比較命令の処理において、例外検出による中
断やミスマツチによる終了時のアドレスおよび残
りバイト数の補正を、1サイクルパイプライン制
御であつても効率的に処理する手段を与える。そ
のため、本発明の移動命令論理比較命令処理方式
は、移動命令または論理比較命令における記憶装
置にアクセスすべき第1オペランドアドレスと第
2オペランドアドレスとをそれぞれ保持しておく
2つのレジスタと、処理されるべき各オペランド
の残りデータ長を保持する2つのレジスタと、各
処理毎に実効アドレスを求める加算器と、移動ま
たは論理比較されるバイト数分だけ減算する減算
器とを備え、1サイクルパイプライン制御によ
り、上記加算器および上記減算器による加算、減
算を同時に行い、その結果から次の移動または論
理比較されるバイト数を生成する処理装置におけ
る移動命令論理比較命令処理方式であつて、各パ
イプライン毎に移動または論理比較されるバイト
数を示すレジスタと、第1オペランドおよび第2
オペランド対応にそれぞれ記憶制御部へアクセス
要求を出す毎にアクセス要求が出されたバイト数
を加算すると共に正常終了するとそのバイト数を
減算する回路と、該回路の出力を保持しアクセス
要求されたバイト数と正常終了したバイト数との
差分を示すバイトカウンタとを備え、該バイトカ
ウンタに基づいて各オペランドアドレスおよびデ
ータ長を補正することを特徴としている。
The present invention aims to solve the above-mentioned problems, and efficiently corrects the address and number of remaining bytes at the time of termination due to exception detection or mismatch in the processing of move or logical comparison instructions, even with one-cycle pipeline control. to provide a means of processing. Therefore, the move instruction logical comparison instruction processing method of the present invention uses two registers that respectively hold the first operand address and second operand address to access the storage device in the move instruction or logical comparison instruction, and It is equipped with two registers that hold the remaining data length of each operand to be processed, an adder that obtains the effective address for each process, and a subtracter that subtracts by the number of bytes to be moved or logically compared. A move instruction logical comparison instruction processing method in a processing device that performs addition and subtraction by the adder and the subtracter simultaneously under control, and generates the number of bytes to be next moved or logically compared from the result. a register indicating the number of bytes to be moved or logically compared per line;
A circuit that adds the number of bytes requested to access each time an access request is issued to the storage control unit corresponding to each operand, and subtracts the number of bytes upon successful completion, and a circuit that holds the output of the circuit and the bytes requested to access. The operand address and data length are corrected based on the byte counter, and the operand address and data length are corrected based on the byte counter.
パイプライン制御において、次のフローの処理
バイトまたは展開パターンを決めるには、フロー
のできるだけ最初の部分、例えばAステージでオ
ペランドアドレスまたは残りバイト長の更新をし
たほうが制御が容易である。一方、途中で処理を
中断させる事象が発生して、そのオペランドアド
レスおよび残りバイト長の補正を行う場合には、
フローの後方において、残りバイト長の演算等を
行うほうが簡単であり、フローの最初で更新して
しまうと補正が複雑になる。本発明は、各パイプ
ライン毎に処理したバイト数を保持するように
し、Aステージにおいて残りバイト長を更新する
と共に、Aステージで更新したバイト数と正しく
実行されたバイト数との差を各オペランド毎に演
算して保持することにより、必要な場合には、こ
の値にもとづいて補正できるようにしている。そ
のため、フローの最初でオペランドアドレスおよ
び残りバイト長を更新しても、途中で処理を中断
させる事象が発生した場合、容易に補正可能にな
つている。
In pipeline control, in order to determine the processing bytes or expansion pattern of the next flow, control is easier if the operand address or remaining byte length is updated as early as possible in the flow, for example, in the A stage. On the other hand, if an event occurs that interrupts processing midway through, and the operand address and remaining byte length are corrected,
It is easier to calculate the remaining byte length at the end of the flow, and the correction becomes complicated if it is updated at the beginning of the flow. The present invention maintains the number of bytes processed for each pipeline, updates the remaining byte length in the A stage, and calculates the difference between the number of bytes updated in the A stage and the number of correctly executed bytes for each operand. By calculating and holding each value, correction can be made based on this value if necessary. Therefore, even if the operand address and remaining byte length are updated at the beginning of the flow, if an event that interrupts processing occurs midway, it can be easily corrected.
以下、図面を参照しつつ、実施例に従つて説明
する。
Hereinafter, embodiments will be described with reference to the drawings.
第1図は本発明の一実施例構成、第2図は第1
図図示実施例における論理比較命令の動作タイム
チヤートを示す。 Figure 1 shows the configuration of one embodiment of the present invention, and Figure 2 shows the configuration of the first embodiment.
5 shows an operation time chart of a logical comparison instruction in the illustrated embodiment.
第1図において、1および2は作業用アドレス
レジスタ、3はベースレジスタ、4はインデツク
スレジスタ、5はデイスプレイスメントレジス
タ、6はレジスタ1〜5の内容にもとづいてオペ
ランドの実効アドレスを生成するアドレス生成回
路、7はオペランドアドレスレジスタ、8はバツ
フア、9はオペランド語レジスタ、10はレジス
タ、11は命令を実行する実行ユニツト(E
unit)、12は結果レジスタ、13はレジスタフ
アイルを表す。 In Figure 1, 1 and 2 are working address registers, 3 is a base register, 4 is an index register, 5 is a displacement register, and 6 is an address for generating the effective address of an operand based on the contents of registers 1 to 5. 7 is an operand address register, 8 is a buffer, 9 is an operand word register, 10 is a register, 11 is an execution unit (E) that executes instructions.
unit), 12 represents a result register, and 13 represents a register file.
また、14はAステージにおいて残りバイト数
の演算を行う加減算器、15は第1オペランドの
残りバイト数を保持するレジスタ、16は第2オ
ペランドの残りバイト数を保持するレジスタ、1
7は第1オペランドの処理対象となつているアド
レスを保持するレジスタ、18は第2オペランド
の処理対象となつているアドレスを保持するレジ
スタ、19は処理すべきバイト長を決定するレン
グス生成器、20は第1オペランドの処理バイト
数を保持するレジスタ、21は第2オペランドの
処理バイト数を保持するレジスタ、22ないし2
6は各パイプライン毎に移動または論理比較され
るバイト数を記憶するレジスタ、27は第1オペ
ランド用の補正値を演算する加減算器、28は第
2オペランド用の補正値を演算する加減算器、2
9は第1オペランドの補正値を持つバイトカウン
タ、30は第2オペランドの補正値を持つバイト
カウンタ、31は処理の中断またはミスマツチが
生じたアドレスとデータ長とを演算する補正用加
減算器を表す。 Further, 14 is an adder/subtractor that calculates the number of remaining bytes in the A stage, 15 is a register that holds the remaining number of bytes of the first operand, 16 is a register that holds the remaining number of bytes of the second operand, 1
7 is a register that holds the address to be processed by the first operand; 18 is a register to hold the address to be processed by the second operand; 19 is a length generator that determines the byte length to be processed; 20 is a register that holds the number of bytes to be processed for the first operand; 21 is a register that holds the number of bytes to be processed for the second operand; 22 to 2;
6 is a register that stores the number of bytes to be moved or logically compared for each pipeline; 27 is an adder/subtractor that calculates a correction value for the first operand; 28 is an adder/subtractor that calculates a correction value for the second operand; 2
9 is a byte counter with a correction value for the first operand, 30 is a byte counter with a correction value for the second operand, and 31 is a correction adder/subtracter that calculates the address and data length where processing has been interrupted or mismatched. .
命令処理においては、Aステージにおいてアド
レス生成回路6により実効アドレスが演算され、
オペランドアドレスレジスタ7にオペランドアド
レスが格納される。このアドレスにもとづいてア
ドレス変換がなされ、オペランドがフエツチされ
て、実行ユニツト11により演算が実行され、結
果が結果レジスタに格納される。 In instruction processing, an effective address is calculated by the address generation circuit 6 in the A stage,
The operand address is stored in the operand address register 7. Address translation is performed based on this address, the operand is fetched, the operation is performed by execution unit 11, and the result is stored in the result register.
第1オペランドの処理フローにおいては、処理
対象となるオペランドアドレスがレジスタ17に
格納され、第1オペランドの処理の残りバイト数
がレジスタ15にセツトされる。同様に第2オペ
ランドの処理フローにおいては、処理対象となる
オペランドアドレスがレジスタ18に格納され、
第2オペランドの処理の残りバイト数がレジスタ
16にセツトされる。なお、周知の如く、長文字
移動や長文字論理比較の命令において、第1およ
び第2のオペランドの長さは、必ずしも同じでは
ない。 In the processing flow for the first operand, the operand address to be processed is stored in the register 17, and the number of bytes remaining for processing the first operand is set in the register 15. Similarly, in the second operand processing flow, the operand address to be processed is stored in the register 18,
The number of bytes remaining to process the second operand is set in register 16. As is well known, in long character movement and long character logical comparison instructions, the lengths of the first and second operands are not necessarily the same.
レングス生成器19は、各オペランドに対応し
て、次のフローの処理バイト数を決定し、レジス
タ20または21に処理バイト数を出力する。以
降の各オペランドの処理において、レジスタ15
または16の値は、加減算器14により、それぞ
れレジスタ20または21の値が減じられ、残り
バイト数がレジスタ15または16に再設定され
るようになつている。なお通常、レングス生成器
19は、第4図で説明したフロー展開条件に従つ
て、8または16またはそれらの端数を処理バイト
数とする。 The length generator 19 determines the number of bytes to be processed for the next flow in accordance with each operand, and outputs the number of bytes to be processed to the register 20 or 21. In the subsequent processing of each operand, register 15
For the value 16 or 16, the value in register 20 or 21 is subtracted by adder/subtractor 14, and the number of remaining bytes is reset in register 15 or 16. Normally, the length generator 19 sets the number of bytes to be processed to 8 or 16 or a fraction thereof, according to the flow expansion conditions explained in FIG.
レジスタ22〜26には、各パイプラインに対
応して、処理のバイト数が記憶されるようになつ
ており、各ステージの終了毎に順次、次のレジス
タにシフトされていくようになつている。 The number of bytes to be processed is stored in registers 22 to 26, corresponding to each pipeline, and is sequentially shifted to the next register at the end of each stage. .
バイトカウンタ29は、第1オペランドについ
て、Aステージで更新されたバイト数と正しく実
行されたバイト数との差を保持するカウンタであ
る。なお、このカウンタの幅は、パイプラインの
長さと1回にアクセスするバイト数によつて決め
られる。加減算器27は、バイトカウンタ29の
値とレジスタ20の値とを加算し、Aステージで
アクセスを出す毎にそのバイト数分の足しこみを
行い、正しく処理された場合にレジスタ26の値
を減算することにより、Wステージで正しく実行
された分だけカウンタ値を減じる。論理比較命令
において、ミスマツチが生じた場合には、レジス
タ26の値を減算する代わりに、第何番目のバイ
トでミスマツチが生じたかを示すバイト番号を減
算する。 The byte counter 29 is a counter that holds the difference between the number of bytes updated in the A stage and the number of correctly executed bytes for the first operand. Note that the width of this counter is determined by the length of the pipeline and the number of bytes accessed at one time. The adder/subtractor 27 adds the value of the byte counter 29 and the value of the register 20, adds the number of bytes each time an access is issued in the A stage, and subtracts the value of the register 26 when the process is correctly performed. By doing so, the counter value is decremented by the amount correctly executed in the W stage. In the logical comparison instruction, when a mismatch occurs, instead of subtracting the value of the register 26, a byte number indicating which byte the mismatch occurs is subtracted.
第2オペランドについても同様に、加減算器2
8により演算が逐次行われ、その結果がバイトカ
ウンタ30に保持される。 Similarly for the second operand, adder/subtractor 2
8, the calculations are performed sequentially and the results are held in the byte counter 30.
アクセス例外やミスマツチが検出された場合に
は、補正用加減算器31によるオペランドアドレ
スの補正演算結果および残りバイト長の補正演算
結果を利用する。即ち、第1オペランドアドレス
は、レジスタ17の内容からバイトカウンタ29
の値を引くことにより求められる。また、第1オ
ペランド残りバイト長は、レジスタ15の内容に
バイトカウンタ29の値を与えることにより求め
られる。同様に、第2オペランドアドレスについ
ては、レジスタ18の内容からバイトカウンタ3
0の値を引くことにより求められる。また、第2
オペランド残りバイト長は、レジスタ16の内容
にバイトカウンタ30の値を加えることにより求
められる。 When an access exception or a mismatch is detected, the results of the operand address correction and the remaining byte length by the correction adder/subtractor 31 are used. That is, the first operand address is calculated from the contents of the register 17 by the byte counter 29.
It is found by subtracting the value of . Further, the remaining byte length of the first operand is determined by giving the value of the byte counter 29 to the contents of the register 15. Similarly, for the second operand address, byte counter 3 is calculated from the contents of register 18.
It is obtained by subtracting the value of 0. Also, the second
The remaining operand byte length is determined by adding the value of the byte counter 30 to the contents of the register 16.
第2図は論理比較命令による処理動作例のタイ
ムチヤートを示している。第1オペランドの先頭
アドレスはa、そのデータ長はl、第2オペラン
ドの先頭アドレスはb、そのデータ長はmであ
る。 FIG. 2 shows a time chart of an example of a processing operation using a logical comparison instruction. The start address of the first operand is a, its data length is l, and the start address of the second operand is b, and its data length is m.
この例では、第1オペランドのEステージで両
オペランドの内容が比較され、その結果がWステ
ージに命令制御部(図示省略)へ送られてくる。
従つて、そのWステージで正しく実行した処理バ
イト数がわかる。第2図に示した例では、2回目
の比較のとき不一致(ミスマツチ)を検出してい
る。不一致が検出されたとき、オペランドアクセ
スを止めるように指示が発せられ、処理バイト数
の減算が抑止される。足しこみは、それぞれのオ
ペランドアドレスおよび残りバイト長が更新され
るので、そのたび毎に行われる。従つて、その後
の補正を行うフローでは、バイトカウンタ(OP
1LC)29およびバイトカウンタ(OP2LC)
30は、0でない値を示している。もし、最後ま
で正しく実行されたときには、これらのバイトカ
ウンタの値はゼロを示すことになる。 In this example, the contents of both operands are compared in the E stage of the first operand, and the result is sent to the instruction control unit (not shown) in the W stage.
Therefore, the number of bytes processed correctly in that W stage can be found. In the example shown in FIG. 2, a mismatch is detected during the second comparison. When a mismatch is detected, an instruction is issued to stop operand access, and subtraction of the number of bytes processed is inhibited. Addition is performed each time because each operand address and remaining byte length are updated. Therefore, in the subsequent flow of correction, the byte counter (OP
1LC) 29 and byte counter (OP2LC)
30 indicates a non-zero value. If the execution is completed correctly, the values of these byte counters will indicate zero.
補正を行うフローでは、上述のように、第2オ
ペランドアドレスは「OP2A−OP2LC」、第2
オペランド残りバイト長は「OP2L+OP2
LC」、第1オペランドアドレスは「OP1A−OP
1LC」、第1オペランド残りバイト長は「OP1
L+OP1LC」により、それぞれの補正結果が求
められる。 In the flow for performing correction, as described above, the second operand address is "OP2A-OP2LC", and the second
The remaining byte length of the operand is “OP2L+OP2
LC", the first operand address is "OP1A-OP
1LC", the remaining byte length of the first operand is "OP1
Each correction result is determined by ``L+OP1LC''.
移動命令または論理比較命令において、アクセ
ス例外が検出された場合には、次のように制御さ
れる。例えば第2オペランドでアクセス例外が検
出されたとき、フラグによりその例外を記憶して
おき、次以降の第1オペランドのWステージにお
ける減算を禁止し、オペランドアクセスを止める
ように指示する。このようにすれば、その後の処
理は上述の処理と同様になる。 When an access exception is detected in a move instruction or a logical comparison instruction, control is performed as follows. For example, when an access exception is detected in the second operand, the exception is stored using a flag, prohibiting subsequent subtraction in the W stage of the first operand, and instructing to stop operand access. If this is done, the subsequent processing will be similar to the processing described above.
以上説明した如く、本発明によれば、1サイク
ルパイプライン制御においても、アクセス例外が
検出された場合や、論理比較命令におけるミスマ
ツチが検出された場合におけるオペランドアドレ
スおよび残りバイト数の補正を、比較的簡明に行
うことができるようになり、効率的なパイプライ
ン制御を行うことができるようになる。
As explained above, according to the present invention, even in one-cycle pipeline control, the correction of the operand address and the number of remaining bytes when an access exception is detected or a mismatch in a logical comparison instruction is detected. It becomes possible to perform this process easily and efficiently, and it becomes possible to perform efficient pipeline control.
第1図は本発明の一実施例構成、第2図は第1
図図示実施例における論理比較命令の動作タイム
チヤート、第3図は2サイクルパイプラインと1
サイクルパイプラインとの比較を示す図、第4図
は移動命令におけるフローの展開パターンの例、
第5図は本発明の課題に関連した問題点を説明す
るための図を示す。
図中、6はアドレス生成回路、7はオペランド
アドレスレジスタ、8はバツフア、9はオペラン
ド語レジスタ、11は実行ユニツト、12は結果
レジスタ、13はレジスタフアイル、14は加減
算器、15ないし18はレジスタ、19はレング
ス生成器、20ないし26はレジスタ、27およ
び28加減算器、29および30はバイトカウン
タ、31は補正用加減算器を表す。
Figure 1 shows the configuration of one embodiment of the present invention, and Figure 2 shows the configuration of the first embodiment.
The operation time chart of the logical comparison instruction in the illustrated embodiment, FIG.
A diagram showing a comparison with a cycle pipeline, Figure 4 is an example of a flow development pattern in a movement instruction,
FIG. 5 shows a diagram for explaining problems related to the subject of the present invention. In the figure, 6 is an address generation circuit, 7 is an operand address register, 8 is a buffer, 9 is an operand word register, 11 is an execution unit, 12 is a result register, 13 is a register file, 14 is an adder/subtractor, and 15 to 18 are registers. , 19 is a length generator, 20 to 26 are registers, 27 and 28 are adders/subtractors, 29 and 30 are byte counters, and 31 is a correction adder/subtractor.
Claims (1)
置にアクセスすべき第1オペランドアドレスと第
2オペランドアドレスとをそれぞれ保持しておく
2つのレジスタと、処理されるべき各オペランド
の残りデータ長を保持する2つのレジスタと、各
処理毎に実効アドレスを求める加算器と、移動ま
たは論理比較されるバイト数分だけ減算する減算
器とを備え、1サイクルパイプライン制御によ
り、上記加算器および上記減算器による加算、減
算を同時に行い、その結果から次の移動または論
理比較されるバイト数を生成する処理装置におけ
る移動命令論理比較命令処理方式であつて、各パ
イプライン毎に移動または論理比較されるバイト
数を示すレジスタと、第1オペランドおよび第2
オペランド対応にそれぞれ記憶制御部へアクセス
要求を出す毎にアクセス要求が出されたバイト数
を加算すると共に正常終了するとそのバイト数を
減算する回路と、該回路の出力を保持しアクセス
要求されたバイト数と正常終了したバイト数との
差分を示すバイトカウンタとを備え、該バイトカ
ウンタに基づいて各オペランドアドレスおよびデ
ータ長を補正することを特徴とする移動命令論理
比較命令処理方式。1. Two registers that hold the first operand address and second operand address to access the storage device in a move instruction or logical comparison instruction, respectively, and two registers that hold the remaining data length of each operand to be processed. It is equipped with a register, an adder that obtains an effective address for each process, and a subtracter that subtracts by the number of bytes to be moved or logically compared, and by one-cycle pipeline control, the addition by the adder and the subtracter, A move instruction logical comparison instruction processing method in a processing device that performs subtraction simultaneously and generates the next number of bytes to be moved or logically compared from the result, and indicates the number of bytes to be moved or logically compared for each pipeline. register, the first operand and the second
A circuit that adds the number of bytes requested to access each time an access request is issued to the storage control unit corresponding to each operand, and subtracts the number of bytes upon successful completion, and a circuit that holds the output of the circuit and the bytes requested to access. 1. A move instruction logical comparison instruction processing method, comprising: a byte counter indicating a difference between the number of bytes and the number of normally completed bytes, and correcting each operand address and data length based on the byte counter.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20892684A JPS61100836A (en) | 1984-10-04 | 1984-10-04 | System for processing comparison and instruction of moving instruction logic |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP20892684A JPS61100836A (en) | 1984-10-04 | 1984-10-04 | System for processing comparison and instruction of moving instruction logic |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61100836A JPS61100836A (en) | 1986-05-19 |
| JPH028332B2 true JPH028332B2 (en) | 1990-02-23 |
Family
ID=16564412
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP20892684A Granted JPS61100836A (en) | 1984-10-04 | 1984-10-04 | System for processing comparison and instruction of moving instruction logic |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61100836A (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5168571A (en) * | 1990-01-24 | 1992-12-01 | International Business Machines Corporation | System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data |
| JPH0831032B2 (en) * | 1990-08-29 | 1996-03-27 | 三菱電機株式会社 | Data processing device |
-
1984
- 1984-10-04 JP JP20892684A patent/JPS61100836A/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61100836A (en) | 1986-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
| US5276822A (en) | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction | |
| JPH028332B2 (en) | ||
| RU2066067C1 (en) | Central processor for multiple-processor computer system | |
| JP2783285B2 (en) | Information processing device | |
| JP3490191B2 (en) | calculator | |
| JPS61110240A (en) | Optimization compiler | |
| JPS6125166B2 (en) | ||
| JPS62262146A (en) | Processor | |
| JP2812610B2 (en) | Pipeline control method | |
| JP3124361B2 (en) | Memory data loading device | |
| JPS6327746B2 (en) | ||
| JPH0238965B2 (en) | ||
| JPH0235331B2 (en) | ||
| JPH028331B2 (en) | ||
| JPH0418344B2 (en) | ||
| JP2504570B2 (en) | Storage area write inspection processing method | |
| JP3014701B2 (en) | Information processing device | |
| JPH06259254A (en) | Data processor | |
| JPH0234058B2 (en) | ||
| JPH0823820B2 (en) | Address overlap check processor | |
| JPS6238748B2 (en) | ||
| JPH0581015A (en) | Method and system for controlling pipe line operation | |
| JPH0315771B2 (en) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |