JPS6226542A - Pipeline system instruction processor - Google Patents

Pipeline system instruction processor

Info

Publication number
JPS6226542A
JPS6226542A JP16591085A JP16591085A JPS6226542A JP S6226542 A JPS6226542 A JP S6226542A JP 16591085 A JP16591085 A JP 16591085A JP 16591085 A JP16591085 A JP 16591085A JP S6226542 A JPS6226542 A JP S6226542A
Authority
JP
Japan
Prior art keywords
operand
processing
byte
instruction
read
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.)
Pending
Application number
JP16591085A
Other languages
Japanese (ja)
Inventor
Kazunori Kuriyama
和則 栗山
Kenichi Wada
健一 和田
Akira Yamaoka
山岡 彰
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 JP16591085A priority Critical patent/JPS6226542A/en
Publication of JPS6226542A publication Critical patent/JPS6226542A/en
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

PURPOSE:To execute a processing at a high speed by performing in parallel the first and the second operand processings by plural operand obtaining mechanisms, inhibiting an obtaining processing of each operand in response to a detection of the prescribed condition of the second operand, and starting a cyle for executing a processing which follows said inhibition. CONSTITUTION:Read-out of the first and the second operands of the translation test instruction of an instruction register 100 is opertaed asynchronously and independently by incrementers 110, 111, adders 130, 131, BSs 150, 151, aligners 160, 161, and operand buffers 170, 171, and the second operand byte is decided to be zero by an arithmetic unit 180. When non-zero byte is detected by the unit 180, its signal is sent to an end deciding circuit 400, the address calculation of the following first operand and read-out of the operand are inhibited, and also the address calculation of the following second operand and read-out of the operand are inhibited.

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明は、命令をパイプライン制御方式で実行するデー
タ処理装置に関し、特に、この型の装置において、翻訳
テスト(’l’ranslate and test)
命令で代表される特定の型の命令を処理するための機構
に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Application of the Invention] The present invention relates to a data processing device that executes instructions in a pipeline control manner, and in particular, in this type of device, translation testing ('l'ranslate and test) is performed.
It relates to a mechanism for processing specific types of instructions represented by instructions.

〔発明の背景〕[Background of the invention]

翻訳テスト命令の処理は、基本的に、命令が指定する第
1オペランドアドレスから第1オペランドの相次ぐバイ
トを読出す処理と、こうして得られた第1オペランドの
各バイトと命令が指定する第2オペランドアドレスとの
和で与えられるアドレスから第2オペランドの相次ぐバ
イトを読出す処理と、こうして得られた第2オペランド
の各バイトが零か否かを調べて、零ならば次のバイトの
処理に進なか、零でなければ、その第2オペランドバイ
トの値とアドレスとを汎用レジスタに書込むとともK、
その処理状況に応じた条件コードを設定して、命令の実
行を打切る処理とからなる。
The processing of a translation test instruction basically consists of reading successive bytes of the first operand from the first operand address specified by the instruction, and reading each byte of the first operand thus obtained and the second operand specified by the instruction. The process of reading successive bytes of the second operand from the address given by the sum with the address, and checking whether each byte of the second operand thus obtained is zero, and if it is zero, proceeding to processing the next byte. If it is not zero, write the value and address of the second operand byte to the general-purpose register, and
It consists of the process of setting a condition code according to the processing situation and aborting the execution of the instruction.

第2図は、従来の命令処理装置の概要を示す。FIG. 2 shows an outline of a conventional instruction processing device.

命令レジスタ10には翻訳テスト命令がセットされてい
る。B1フィールドとB2フィールドはそれぞれ第1及
び第2オペランドアドレスのためのベースアドレスを保
持する汎用レジスタを指定し、B1フィールドとB2フ
ィールドはそれぞれ第1及び第2オペランドアドレスの
だめのディスプレースメント値を示す。この命令の処理
は、次のようにして行われる。
A translation test instruction is set in the instruction register 10. The B1 and B2 fields specify general registers that hold the base addresses for the first and second operand addresses, respectively, and the B1 and B2 fields indicate the possible displacement values for the first and second operand addresses, respectively. Processing of this instruction is performed as follows.

まず、セレクタ20.21でそれぞれBl。First, selectors 20 and 21 select Bl, respectively.

Dlを選び、かつ、セレクタ22でインクリメント値(
0“)を選んで、加算器13により第1オペランドアド
レスを計算する。算出されたアドレス値は、第1オペラ
ンドの読出しを行うために、バッファストレージ(BS
 ) 15に送られる。
Select Dl, and use the selector 22 to set the increment value (
0'') and calculates the first operand address by the adder 13.The calculated address value is stored in the buffer storage (BS) in order to read the first operand.
) Sent to 15.

B515からは一度にnバイトのデータが読出され、こ
うして読出されたnバイトの第1オペランドデータは、
オペランドバッファ17に格納される。次に、1バイト
切出し回路23ば、オペランドバッファ17から先頭の
1バイトを取出して、信号線52に出力する。
N bytes of data are read from B515 at a time, and the n bytes of first operand data thus read are:
The data is stored in the operand buffer 17. Next, the 1-byte extraction circuit 23 extracts the first byte from the operand buffer 17 and outputs it to the signal line 52.

続いて、セレクタ20,21.22でそれぞれB2.D
、2.信号線52を選択し、加算器13で第2オペラン
ドアドレスを計算する。算出されたアドレスに従ってB
515から第2オペランドの先頭バイトが読出され、オ
ペランドバッファ17に格納される。次いで、このバイ
トは、オペランドバッファ17から演算ユニツ)18に
転送され。
Next, selectors 20, 21, and 22 select B2. D
, 2. The signal line 52 is selected and the adder 13 calculates the second operand address. B according to the calculated address
The first byte of the second operand is read from 515 and stored in the operand buffer 17. This byte is then transferred from the operand buffer 17 to the arithmetic unit 18.

演算ユニット18は、このバイトが零か否かを判牽し、
零であれば、1バイト切出し回路23により第1オペラ
ンドの次の1バイトを切出し、加算器13に入力して、
次の第2オペランドバイトのアドレス計算を行う。この
時、セレクタ20゜21.22はそれぞれB2. D2
.信号線52を選択したままである。この新たに計算さ
れたアドレスを用いてB515よシ読出した第2オペラ
ンドバイトは、前記と同様に演算ユニット18に送られ
、零か否かの判定を受ける。指定されたオペランド長(
L)を越えるかあるいは読出した第2オペランドバイト
が非零になるまで、上記動作を繰り返す。
The arithmetic unit 18 determines whether this byte is zero or not,
If it is zero, the 1-byte extraction circuit 23 extracts the next 1 byte of the first operand, inputs it to the adder 13,
Calculate the address of the next second operand byte. At this time, selectors 20°, 21.22 are set to B2. D2
.. The signal line 52 remains selected. The second operand byte read by B515 using this newly calculated address is sent to the arithmetic unit 18 in the same manner as described above, and is determined whether it is zero or not. Specified operand length (
The above operation is repeated until L) is exceeded or the read second operand byte becomes non-zero.

指定されたオペランド長全てに対して零判定を行った場
合、処理状況を条件コードに設定し、命令の処理を終了
する。この場合、汎用レジスタは書き換えない。これに
対して、零でない第2オペランドバイトを読出した場合
、条件コードを設定すると同時に、この第2オペランド
バイトのアドレス及び値を汎用レジスタに書込み、後続
の第1゜第2オペランドバイトの読出しを抑止して、命
令を終了する。
If a zero determination is made for all of the specified operand lengths, the processing status is set to the condition code and the instruction processing is terminated. In this case, general-purpose registers are not rewritten. On the other hand, if a non-zero second operand byte is read, the condition code is set and the address and value of this second operand byte are written to a general-purpose register, and subsequent reads of the first and second operand bytes are executed. Suppress and terminate the instruction.

第3図は、この命令処理の様子をパイプラインの各サイ
クルの処理ステージで表わしたものである。第3図にお
いて、D、A、L、E、Pはそれぞれパイプライン方式
における命令処理ステージを表わしている。Dは命令デ
コードステージで、命令レジスタ10内の命令を解読し
、この命令の処理に必要な情報を生成するとともに、こ
の命令のメモリオペランドの読出しに必要なアドレス計
算をアドレス加算器13にて行う。AステージではDス
テージで算出しだオペランドアドレスに基づき、B51
5からオペランドを読出し、Lステージでオペランドバ
ッファ17に格納する。Eステージでは演算ユニット1
8にて演算処理を行い、演算結果をPステージてて汎用
レジスタに格納する。
FIG. 3 shows this instruction processing in terms of the processing stages of each cycle of the pipeline. In FIG. 3, D, A, L, E, and P each represent an instruction processing stage in the pipeline system. D is an instruction decode stage which decodes the instruction in the instruction register 10, generates information necessary for processing this instruction, and performs address calculation necessary for reading the memory operand of this instruction in an address adder 13. . In the A stage, based on the operand address calculated in the D stage, B51
The operand is read from 5 and stored in the operand buffer 17 at the L stage. In the E stage, calculation unit 1
8 performs arithmetic processing, and the result of the arithmetic operation is transferred to the P stage and stored in a general-purpose register.

第3図においては、第1サイクルにて第1オペランドの
アドレス加算を行い、第3サイクルで読出した第1オペ
ランドの先頭バイトを用いて第4サイクルで第2オペラ
ンドの先頭バイトのアドレス加算を行い、第6サイクル
で第2オペランドの先頭バイトの読出しを行って、読出
した第2オペランドの先頭バイトを第7サイクルのEス
テージで零判定を行い、零であるため、第8サイクルで
第2オペランドの第2バイトのアドレス加算を行ってい
る。この動作を繰り返した後、第23サイクルのEステ
ージで非零の第2オペランドバイトを検出したので、そ
の時の処理状況に応じて条件コードを設定するとともに
、第24サイクルのPステージでこの非零の第2オペラ
ンドバイトのアドレスとその値を汎用レジスタに書込む
。この時点でこの翻訳テスト命令の処理は終了し、第2
5サイクルには次の命令の処理を開始することができる
In Figure 3, the address of the first operand is added in the first cycle, and the address of the first byte of the second operand is added in the fourth cycle using the first byte of the first operand read in the third cycle. , the first byte of the second operand is read in the sixth cycle, and the read first byte of the second operand is determined to be zero in the E stage of the seventh cycle.Since it is zero, the second operand is read in the eighth cycle. The address of the second byte of is added. After repeating this operation, a non-zero second operand byte was detected at the E stage of the 23rd cycle, so a condition code was set according to the processing situation at that time, and this non-zero byte was detected at the P stage of the 24th cycle. writes the address of the second operand byte and its value to the general-purpose register. At this point, the processing of this translation test command is finished, and the second
Processing of the next instruction can be started in the 5th cycle.

以上の説明かられかるように%容筒2オペランドバイト
の零判定が行われるまでは、次の第2オペランドバイト
のアドレス計算とオペランド読出しができず、そのため
、第2オペランドの処理は4サイクルピツチでしか行う
ことができない。また、最初に読出した第1オペランド
のnバイトを切出し尽すと、それに続く第1オペランド
のバイト群を改めて読出すことが必要になる。
As can be seen from the above explanation, the address calculation and operand reading of the next second operand byte cannot be performed until the zero determination of the % capacity cylinder 2 operand byte is performed, and therefore the processing of the second operand is performed in 4 cycle pitch. This can only be done by Furthermore, when the first n bytes of the first operand read out are exhausted, it becomes necessary to read out the subsequent byte group of the first operand anew.

アドレス計算とオペランド読出しのための機構を2組設
けて、第1及び第2オペランドの読出しを並行して遂行
することにより、翻訳テスト命令の処理の高速化を図る
ことはできるが、その場合、非零オペランドバイトを検
出した時の処理に問題がある。すなわち、非零オペラン
ドバイトが検出されると、以後における第1及び第2オ
ペランドバイトの読出しの抑止に加えて、この非零オペ
ランドバイトの値とアドレスを汎用レジスタに書込む処
理が必要である。ところが、非零オペランドバイトを検
出したステージで汎用レジスタへの書込みも開始させよ
うとすれば、汎用レジスタへの書込みの要否を決定する
ステップが必要となり、オペランドバイトが零の場合も
このステップを経由することになるので、毎回の演算ス
テージが1サイクルに収まらなくなる。
It is possible to speed up the processing of translation test instructions by providing two sets of mechanisms for address calculation and operand reading, and reading the first and second operands in parallel. There is a problem with the processing when a non-zero operand byte is detected. That is, when a non-zero operand byte is detected, it is necessary to write the value and address of this non-zero operand byte into a general-purpose register in addition to inhibiting subsequent reading of the first and second operand bytes. However, if you try to start writing to a general-purpose register at the stage where a non-zero operand byte is detected, a step is required to determine whether writing to the general-purpose register is necessary, and this step is required even if the operand byte is zero. Therefore, each calculation stage cannot be accommodated in one cycle.

〔発明の目的〕[Purpose of the invention]

本発明の目的は、翻訳テスト命令及びそれと同型の命令
の処理において、第1オペランドバイトの読出しと、第
2オペランドバイトの読出し及び判定とを並行して行う
とともに、毎回の演算ステージにおける処理を条件判定
のみとして、処理の可及的高速化を達成することにある
An object of the present invention is to perform the reading of the first operand byte and the reading and determination of the second operand byte in parallel in the processing of translation test instructions and instructions of the same type as the same, and to condition the processing at each calculation stage. The objective is to achieve as high a processing speed as possible for only the determination.

〔発明の概要〕[Summary of the invention]

本発明は、複数のオペランド取得機構により第1及び第
2オペランドの処理を並行して遂行することに加えて、
第2オペランドが所定の条件を満だすこと(例えば非零
オペランドバイトの存在)の検出に応答して、各オペラ
ンドの取得処理の抑止とそれに読く予め定められた処理
(例えば汎用レジスタへの書込み)の実行のための一連
の処理サイクルを開始するようにした。これにより、命
 。
In addition to performing the processing of the first and second operands in parallel by a plurality of operand acquisition mechanisms, the present invention provides the following features:
In response to detecting that the second operand satisfies a predetermined condition (e.g., the presence of a non-zero operand byte), the processing for obtaining each operand is suppressed and the predetermined processing for reading it (e.g., writing to a general-purpose register) is performed. ) starts a series of processing cycles for execution. This leads to life.

令処理期間中て演算ステージは所定条件の判定(例えば
零判定)のみを行えばよいから、常に1サイクルで完了
し、したがって、前記の並行処理による高速化の効果が
最大限に発揮される。
During the instruction processing period, the arithmetic stage only needs to make a determination on a predetermined condition (for example, zero determination), so it is always completed in one cycle, and therefore the speed-up effect of the parallel processing described above is maximized.

〔発明の実施例〕[Embodiments of the invention]

第1図は本発明による命令処理装置の概略構成を示した
ものであシ、この装置は、2つのメモリオペランドを必
要とする命令の処理において、各各のオペランドのだめ
のアドレス計算用加算器及びバッファストレージを独立
に持ち、第1オペランドと第2オペランドの読出しを全
く別回路にて独立に行うことができる。インクリメンタ
110゜111、加算器130,131.B5150゜
151、アライナ160,161、オペランドバッファ
170,171はそれぞれ2面ずつ設けられ、第1オペ
ランドのアドレス計算及びデータ読出しには+1で示し
た各回路を利用し、第2オペランドのアドレス計算及び
データ読出しには+2で示した各回路を利用する。
FIG. 1 shows a schematic configuration of an instruction processing device according to the present invention. In processing an instruction requiring two memory operands, this device includes an adder for calculating the address of each operand; It has independent buffer storage, and the first and second operands can be read out independently using completely separate circuits. Incrementer 110°111, adder 130, 131 . B5150゜151, aligners 160, 161, and operand buffers 170, 171 are each provided with two sides, and each circuit indicated by +1 is used for address calculation and data reading of the first operand, and address calculation and data reading of the second operand. Each circuit indicated by +2 is used for data reading.

本命令処理装置は2種類の動作姿態を持つ。すなわち、
第1オペランド読出し用回路(+1)と第2オペランド
読出し用回路(+2)が互いに同期動作を行う場合と、
両者が全く非同期かつ独立に動作する場合である。同期
動作とは、例えば、命令レジスタ100に2つのストレ
ッジオペランドを必要とする命令がセットされた場合に
、第1オペランド及び第2オペランドのアドレス計算と
オペランド読出しを、それぞれす1.す2の各回路を利
用して同期かつ同時に実行する動作を指す。
This instruction processing device has two types of operating modes. That is,
A case where the first operand read circuit (+1) and the second operand read circuit (+2) operate synchronously with each other;
This is a case where both operate completely asynchronously and independently. For example, when an instruction requiring two storage operands is set in the instruction register 100, the synchronous operation calculates the addresses of the first and second operands and reads the operands, respectively. Refers to operations that are executed synchronously and simultaneously using each of the two circuits.

本発明においては同期動作は直接の関係がないので、詳
細な説明を省く。
In the present invention, the synchronous operation is not directly related, so a detailed explanation will be omitted.

次に、非同期動作について説明する。第1図の命令レジ
スタ100に翻訳テスト命令がセットされた場合を考え
る。この時、同期動作の場合と同様に、加算器手113
0.BS+1150.アライす+1160.オペランド
バッファ+1170は全て第1オペランドのアドレス計
算及びオペランドの読出しに利用し、加算器す2131
.BS+215’l、アライナ$2161.オペランド
バッフアナ2171は全て第2オペランドのアドレス計
算及びオペランドの読出しに利用する。
Next, asynchronous operation will be explained. Consider a case where a translation test instruction is set in the instruction register 100 of FIG. At this time, as in the case of synchronous operation, the adder hand 113
0. BS+1150. Ally+1160. The operand buffer +1170 is used for calculating the address of the first operand and reading the operand, and the adder +1170 is used for calculating the address of the first operand and reading the operand.
.. BS+215'l, aligner $2161. The operand buffer analyzer 2171 is used for calculating the address of the second operand and reading the operand.

非同期動作においては、まず、加算器+ 1130で第
1オペランドの先頭アドレスを計算しくインクリメント
値=0)、BS+1 150よシ第1オペランドの先頭
1バイトを読出す。読出したデータはアライナナ116
0によって引き続く第2オペランドのアドレス計算に利
用できるようにアラインされた後、オペランドバッフア
ナ1170に格納する。上記の動作は、対応する第2オ
ペランドのオペランドアドレス計算あるいはオペランド
読出しが開始されているか否かにかかわらず、また、第
2オペランドの零判定が行われているか否かにかかわら
ず、パイプライン方式によるオーバラップ処理が可能で
ある。したがって、第1オペランドの2番目以後の相次
ぐバイトに対して、アドレス計算を加算器≠1130で
次々と行って読°出すことができる。この間、インクリ
メ/り+1110の値は1,2・・・と1ずつ増やして
いく。
In the asynchronous operation, first, adder+1130 calculates the start address of the first operand (increment value=0), and reads the first byte of the first operand from BS+1 150. The read data is sent to the aligner 116
After being aligned by 0 so that it can be used for the subsequent address calculation of the second operand, it is stored in the operand buffer analyzer 1170. The above operation is performed in a pipelined manner regardless of whether operand address calculation or operand reading of the corresponding second operand has started, and regardless of whether or not the second operand is determined to be zero. Overlapping processing is possible. Therefore, address calculation can be performed one after another by the adder≠1130 for successive bytes after the second of the first operand, and the address can be read out. During this time, the value of increment/re+1110 is increased by 1, 1, 2, and so on.

一方、オペランドバッフアナ1 170に第1オペラン
ドの読出しデータが格納されたことを認識シテ、オペラ
ンドバッファ≠1170から読出した1バイトをセレク
タ220によってセレクトし。
On the other hand, recognizing that the read data of the first operand is stored in the operand buffer analyzer 1170, the selector 220 selects the 1 byte read from the operand buffer ≠1170.

加算器す2131により第2オペランドのオペランドア
ドレスを計算する。こうして算出されたアドレスによっ
て第2オペランドの1バイトを読出し、オペランドバッ
フアナ2171に格納する。
Adder 2131 calculates the operand address of the second operand. One byte of the second operand is read using the address thus calculated and stored in the operand buffer analyzer 2171.

その後、オペランドバッファ+2171から読出した第
2オペランドバイトは演算ユニット180に転送し、零
判定を行う。判定の結果そのバイトが零であれば、次の
バイトをオペランドバッファ+2171.から読出す。
Thereafter, the second operand byte read from the operand buffer +2171 is transferred to the arithmetic unit 180, and a zero determination is made. If the result of the determination is that the byte is zero, the next byte is stored in the operand buffer +2171. Read from.

このように、第1オペランドバイトの読出しと第2オペ
ランドバイトの読出しと第2オペランドバイトの零判定
とは、次々と連続的に処理され、第4図はその処理の流
れを示したものである。ここで、DI 、 AI 、 
L+は第1オペランドバイトの読出しに要する処理ステ
ージでありh D21 A21 L21 E2は第2オ
ペランドバイトの読出し及び零判定に要する処理ステー
ジである。E2ステージでは零判定のみが行われる。そ
の結果、第4図に示されるように、第2オペランドバイ
トの零判定を1サイクルピツチで行うことができる。
In this way, the reading of the first operand byte, the reading of the second operand byte, and the zero determination of the second operand byte are successively processed one after another, and Figure 4 shows the flow of the processing. . Here, DI, AI,
L+ is a processing stage required to read the first operand byte, and h D21 A21 L21 E2 is a processing stage required to read the second operand byte and make a zero determination. In the E2 stage, only zero determination is performed. As a result, as shown in FIG. 4, the zero determination of the second operand byte can be performed at one cycle pitch.

次に、演算ユニット180にて非零バイトを検出した場
合を考える。演算ユニット180は、非零バイトを検出
すると、その旨を信号線300を経由して終了判定回路
400に連絡する。第5図に終了判定回路400の構成
を示す。翻訳テスト命令は、指定されたオペランドの全
バイトの零判定を行った場合か、あるいは非零バイトを
検出した場合に、命令処理を終了する。レジスタ401
には命令で指定されたオペランド長(L)がセットされ
、1つのバイトを処理する度に減算器403にて1ずつ
減じられる。レジスタ401の内容が所定の値(通常″
0”)になったことを比較器404にて検出すると、O
R回路405からAND回路406を経て、レジスタ4
02にてタイミングの調整をした後、信号線310で命
令処理の終了が指示される。一方、非零バイトの検出を
信号線300が知らせると、そのままOR回路405を
通り、AND回路406.レジスタ402を経て、信号
線310に終了指示が出力される。信号線50は命令の
デコード信号であシ、命令に応じて終了指示をイネーブ
ルするものである。
Next, consider a case where the arithmetic unit 180 detects a non-zero byte. When the arithmetic unit 180 detects a non-zero byte, it notifies the termination determination circuit 400 via the signal line 300. FIG. 5 shows the configuration of the end determination circuit 400. The translation test instruction ends instruction processing when all bytes of the specified operand are determined to be zero, or when a non-zero byte is detected. register 401
The operand length (L) specified by the instruction is set in , and is subtracted by 1 by the subtracter 403 each time one byte is processed. The contents of register 401 are set to a predetermined value (usually "
When the comparator 404 detects that O
From the R circuit 405 through the AND circuit 406, the register 4
After the timing is adjusted at step 02, an instruction to end the command processing is issued through the signal line 310. On the other hand, when the signal line 300 notifies the detection of a non-zero byte, it passes directly through the OR circuit 405 and the AND circuit 406. A termination instruction is output to the signal line 310 via the register 402. The signal line 50 is a command decode signal and enables a termination instruction according to the command.

命令処理の終了を指示する信号線310がセットされる
と、後続の第1オペランドのアドレス計算及びオペラン
ド読出しは直ちに抑止される。この信号はまたオペラン
ドバッフアナ1170にタイミング上対応したバッファ
410に格納され、バッファ410から信号線320に
出力された終了指示により、後続の第2オペランドのア
ドレス計算及びオペランド読出しを抑止する。信号線3
20の信号はまたオペランドバッファ$2171にタイ
ミング上対応したバッファ420に一旦保持された後、
読出されて、信号線330により演算ユニット180に
送られる。このようにして。
When the signal line 310 instructing the end of instruction processing is set, subsequent address calculation of the first operand and operand reading are immediately inhibited. This signal is also stored in a buffer 410 that corresponds in timing to the operand buffer analyzer 1170, and the termination instruction outputted from the buffer 410 to the signal line 320 inhibits subsequent second operand address calculation and operand reading. Signal line 3
The signal No. 20 is also temporarily held in a buffer 420 that corresponds in timing to the operand buffer $2171, and then
It is read out and sent to the arithmetic unit 180 via the signal line 330. In this way.

各オペランドの処理は順番に抑止されていく。Processing of each operand is inhibited in turn.

第6図に演算ユニット180の終了判定部の構造を示す
。信号線360により入力された第2オペランドバイト
の零判定を比較器181で行い、非零バイトを検出した
場合には、信号線300により前記終了判定回路400
に通知すると同時に、この非零バイトの値とそのアドレ
スを終結処理回路182にて記憶しておく。その後、終
了判定回路400よシ発した終了指示信号がバッファ4
20から信号線330に到着すると、終結処理回路18
2にて汎用レジスタ120への書込みデータ及び書込み
信号を生成し、信号線340にて汎用レジスタ120に
書込むと同時に、非零バイト検 。
FIG. 6 shows the structure of the end determination section of the arithmetic unit 180. The comparator 181 performs a zero determination on the second operand byte input through the signal line 360, and when a non-zero byte is detected, the signal line 300 determines whether the second operand byte is zero or not.
At the same time, the value of this non-zero byte and its address are stored in the finalization processing circuit 182. Thereafter, the termination instruction signal issued by the termination determination circuit 400 is transmitted to the buffer 4.
20 to the signal line 330, the termination processing circuit 18
2 generates write data and a write signal to the general-purpose register 120, and at the same time writes to the general-purpose register 120 through the signal line 340, a non-zero byte is detected.

高時の処理状況を条件コードに設定し、信号線350に
て出力する。第6図において183〜185はタイミン
グ調整に必要なレジスタを示す。
The processing status at high times is set in a condition code and output via the signal line 350. In FIG. 6, 183 to 185 indicate registers necessary for timing adjustment.

第4図には、非零バイトの検出に起因する終了処理が示
されている。すなわち、第3サイクルでアドレスが計算
されて第4,5サイクルで読出された第1オペランドバ
イトは、第6サイクルで第2オペランドバイトのアドレ
ス計算に用いられ、こうして得られたアドレスから第7
,8サイクルで読出された第2オペランドバイトは、第
9サイクルで零判定を受けて、零でないことが検出され
た。その結果、第10サイクルで終了サイクルが生成さ
れ、第11サイクル以後のオペランド処理は抑止される
。終了サイクルが処理ステージP2に入ると、必要な情
報が汎用レジスタに書込まれ。
FIG. 4 shows termination processing due to detection of a non-zero byte. That is, the first operand byte whose address was calculated in the third cycle and read out in the fourth and fifth cycles is used to calculate the address of the second operand byte in the sixth cycle, and from the address thus obtained, the first operand byte is read out in the fourth and fifth cycles.
, the second operand byte read in eight cycles was determined to be zero in the ninth cycle, and was detected to be non-zero. As a result, an end cycle is generated in the 10th cycle, and operand processing after the 11th cycle is inhibited. When the termination cycle enters processing stage P2, the necessary information is written to general purpose registers.

かつ、条件コードが設定される。And a condition code is set.

このように、終了サイクルを改めて生成し、そζで汎用
レジスタへの書込みと条件コードの設定を行うことによ
り、非零バイトの検出があるまでの間、演算ユニット1
80は零判定のみを行えばよく、そして、終了サイクル
では汎用レジスタへの書込みと条件コードの設定だけを
行えばよい。
In this way, by generating a new end cycle and then writing to the general-purpose register and setting the condition code, the arithmetic unit 1
80 only needs to perform a zero determination, and in the end cycle only needs to write to a general-purpose register and set a condition code.

その結果、パイプラインの演算処理ステージ(第4図の
E2ステージ)が短時間で終了し、相次ぐバイトの処理
を1サイクルピツチで遂行することができる。
As a result, the arithmetic processing stage (E2 stage in FIG. 4) of the pipeline is completed in a short time, and successive bytes can be processed at one cycle pitch.

本発明は、翻訳テスト命令に限らず、それと同型の処理
、すなもち、第1オペランドアドレスから読出されたデ
ータと第2オペランドアドレスとから計算されるアドレ
スを用いて第2オペランドを読出し、この第2オペラ°
ンドの値が所定の条件を満たすときて予め定められた処
理を実行して終了するという型の処理に対して、等しく
適用することができる。例えば、多重の表検索処理はこ
の型の命令で指定することができる。
The present invention is applicable not only to translation test instructions but also to the same type of processing as that, in which the second operand is read using an address calculated from the data read from the first operand address and the second operand address. 2nd opera °
The present invention can equally be applied to a type of processing that executes a predetermined process and ends when the value of the command satisfies a predetermined condition. For example, multiple table search processing can be specified using this type of command.

〔発明の効果〕〔Effect of the invention〕

本発明によれば、翻訳テスト型の命令の処理において、
第2オペランドについての条件判定結果を待つことなく
、第1オペランドの取得処理と、第2オペランドの取得
処理及び判定処理とを、並行して1サイクルピツチで遂
行することができるから、それによる処理速度の向上は
顕著である。
According to the present invention, in processing a translation test type instruction,
The acquisition processing of the first operand and the acquisition processing and determination processing of the second operand can be performed in parallel at one cycle pitch without waiting for the condition judgment result for the second operand, The speed improvement is noticeable.

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

第1図は本発明による命令処理装置の一実施例のブロッ
クダイヤグラム、第2図は従来の命令処理装置のブロッ
クダイヤグラム、第3図は従来の命令処理装置における
処理の進行図、第4図は本発明による命令処理装置にお
ける処理の進行図、第5図は第1図における°終了判定
回路のブロックダイヤグラム、第6図は第1図における
演算ユニットのブロックダイヤグラムである。 130.131・・・第1.第2オペランドのだめのア
ドレス計算用加算器、150,151・・・第1゜第2
オペランドのだめのバッファストレージ、170.17
1・・・第1.第2オペランドのためのオペランドバッ
ファ、180・・・演算ユニット、400・・・終了判
定回路%401,402・・・終了指示信号のためのバ
ッファ。
FIG. 1 is a block diagram of an embodiment of an instruction processing device according to the present invention, FIG. 2 is a block diagram of a conventional instruction processing device, FIG. 3 is a progress diagram of processing in a conventional instruction processing device, and FIG. FIG. 5 is a block diagram of the completion determination circuit in FIG. 1, and FIG. 6 is a block diagram of the arithmetic unit in FIG. 1. 130.131... 1st. Adder for calculating the address of the second operand, 150, 151...1st, 2nd
Buffer storage for operands, 170.17
1... 1st. Operand buffer for second operand, 180... Arithmetic unit, 400... End determination circuit %401, 402... Buffer for end instruction signal.

Claims (1)

【特許請求の範囲】[Claims] 1、命令により指定される第1基準アドレスに基づいて
第1オペランドを読出し、読出した相次ぐ要素データと
前記命令により指定される第2基準アドレスとを用いて
算出されるアドレスから読出される第2オペランドの相
次ぐ要素データを順次チェックして、その値が所定の条
件を満たすときに予め定められた処理を実行するととも
にその命令の処理を終了する型の命令を処理する装置に
おいて、非同期的に動作しうる複数組のアドレス計算手
段とオペランド読出手段を有して前記第1及び第2オペ
ランドの取得処理を並行してパイプライン方式で遂行す
るオペランド取得処理部と、前記第2オペランドの要素
データが前記所定の条件を満たすことを検出する判定手
段を含む演算部と、前記判定手段の検出出力に応答して
前記オペランド取得部における各オペランドの取得処理
を終了せしめるとともにそれに続く前記予め定められた
処理を実行するための一連の処理サイクルを開始する手
段とを備えた命令処理装置。
1. A first operand is read based on a first reference address specified by the instruction, and a second operand is read from an address calculated using the read successive element data and a second reference address specified by the instruction. A system that operates asynchronously in a device that processes instructions that sequentially check successive element data of operands, and when the values satisfy a predetermined condition, executes a predetermined process and terminates the processing of the instruction. an operand acquisition processing section that has a plurality of sets of address calculation means and operand reading means capable of performing the acquisition processing of the first and second operands in parallel in a pipeline manner; an arithmetic unit including a determination means for detecting that the predetermined condition is met; and a calculation unit that causes the operand acquisition unit to complete the acquisition process for each operand in response to the detection output of the determination unit, and the predetermined process that follows. an instruction processing device comprising means for initiating a series of processing cycles for executing.
JP16591085A 1985-07-29 1985-07-29 Pipeline system instruction processor Pending JPS6226542A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16591085A JPS6226542A (en) 1985-07-29 1985-07-29 Pipeline system instruction processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16591085A JPS6226542A (en) 1985-07-29 1985-07-29 Pipeline system instruction processor

Publications (1)

Publication Number Publication Date
JPS6226542A true JPS6226542A (en) 1987-02-04

Family

ID=15821330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16591085A Pending JPS6226542A (en) 1985-07-29 1985-07-29 Pipeline system instruction processor

Country Status (1)

Country Link
JP (1) JPS6226542A (en)

Similar Documents

Publication Publication Date Title
CA1242281A (en) Vector processing
JPS6028015B2 (en) information processing equipment
JPS6312029A (en) Information processor
EP0220682B1 (en) Data processing system
JPH01177127A (en) Information processor
JPH03233630A (en) Information processor
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US20080215859A1 (en) Computer with high-speed context switching
JPS6226542A (en) Pipeline system instruction processor
JPH04104350A (en) Micro processor
JP5185478B2 (en) Pipeline processing method and pipeline processing apparatus using the method
JP2812610B2 (en) Pipeline control method
JPH07110769A (en) Vliw type computer
JP2722493B2 (en) Register allocation processing method
JPS61100836A (en) System for processing comparison and instruction of moving instruction logic
JPH04316127A (en) Information processor
JPS595354A (en) Data processing device
JPH0248733A (en) Information processor
JPH02206836A (en) Data processor
JPH0452935A (en) Address trace data gathering system
JPS6063638A (en) Information processor
JPS5892041A (en) Data processor
JPH0238966B2 (en)
JPH0218732B2 (en)
JPS5936853A (en) Operation processor