JP2667849B2 - Information processing device - Google Patents
Information processing deviceInfo
- Publication number
- JP2667849B2 JP2667849B2 JP63000351A JP35188A JP2667849B2 JP 2667849 B2 JP2667849 B2 JP 2667849B2 JP 63000351 A JP63000351 A JP 63000351A JP 35188 A JP35188 A JP 35188A JP 2667849 B2 JP2667849 B2 JP 2667849B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- address
- general
- operand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は命令をパイプライン制御方式によって次々と
処理することを特徴とする情報処理装置において、パイ
プラインの乱れを少なくすることにより、さらに高速な
処理を実現する情報処理装置に関する。DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention relates to an information processing apparatus which sequentially processes instructions by a pipeline control method, and further reduces the disturbance of a pipeline to achieve a higher speed. The present invention relates to an information processing device that realizes various processes.
[従来技術] パイプライン制御方式においては、命令の処理を複数
のステージに分け、各ステージをオーバラップさせなが
ら実行していく。第2図(1)は従来のパイプライン制
御方式の処理を示したものである。ここで、Dは命令語
の解読を行うステージ、Aはオペランドの実効アドレス
を計算するステージ、Bはオペランドを記憶装置から読
出すステージ、Lは記憶装置から読出したオペランドを
オペランドバッファレジスタに転送するステージ、Eは
命令個有の演算を実行するステージである。Aステージ
で行う実行アドレスの計算は、命令のインデクスパート
およびベースパートで指定した汎用レジスタの内容と命
令の一部であるディスプレイメントの値とを加算するこ
とによって行う。[Prior Art] In a pipeline control method, the processing of an instruction is divided into a plurality of stages and executed while overlapping each stage. FIG. 2 (1) shows the processing of the conventional pipeline control system. Here, D is a stage for decoding the instruction word, A is a stage for calculating the effective address of the operand, B is a stage for reading the operand from the storage device, and L is a operand for transferring the operand read from the storage device to the operand buffer register. The stage E is a stage for executing an instruction-specific operation. The calculation of the execution address performed in the A stage is performed by adding the contents of the general-purpose register designated by the index part and the base part of the instruction and the value of the displacement which is a part of the instruction.
パイプライン制御方式においては、1つの命令のDス
テージが終了すると該命令のAステージが開始され、そ
れと同時に後続命令のDステージが開始され、次々と複
数の命令がオーバラップしながら処理されていく。In the pipeline control method, when the D stage of one instruction ends, the A stage of the instruction starts, and at the same time, the D stage of the following instruction starts, and a plurality of instructions are processed one after another while overlapping. .
第2図(1)に示したのは、命令I1が演算結果を格納
することによって変更する汎用レジスタの内容を直後の
命令I2がインデクスあるいはベースレジスタとして実効
アドレス生成に使用する場合において、高速化手段を用
いない場合の命令処理の流れである。この時、命令I1の
演算ステージ(Eステージ)が終了し、演算結果が汎用
レジスタに格納された後、命令I2の実効アドレス生成ス
テージ(Aステージ)が開始されるため、図のように3
サイクルのオーバヘッドを生じてしまう。このように、
オペランドの実効アドレスを生成する時に使用する汎用
レジスタの内容を先行する命令が変更した場合をアドレ
スコンフリクトと呼び、従来よりいくつかの高速化方式
が考案されている。Shown in FIG. 2 (1), in a case where the instruction I 2 immediately after the contents of a general register to be changed by the instruction I 1 stores the operation result is used for effective address generation as an index or base register, This is a flow of instruction processing when no speed-up means is used. At this time, the end command I 1 of the arithmetic stage (E stage) is, for the operation result after it is stored in the general register, the effective address generation stage of instruction I 2 (A stage) is started, as shown in FIG. 3
It causes cycle overhead. in this way,
A case where the contents of a general-purpose register used when generating an effective address of an operand are changed by a preceding instruction is referred to as an address conflict, and several high-speed methods have been conventionally devised.
特公昭56-46170号に記載されている方法では、汎用レ
ジスタを変更する命令のうち、オペランドとして指定さ
れた記憶装置上のデータをその時汎用レジスタに格納す
る命令(以下、L系命令を略す)においてのみ高速化を
図っている。すなわち記憶装置から読出したオペランド
バッファに転送する際、同一オペランドをアドレス生成
分レジスタにも転送することにより汎用レジスタを経由
しないので、第2図(2)に示した通りオーバヘッドを
2サイクルに低減している。In the method described in Japanese Patent Publication No. 56-46170, an instruction to store data in a storage device designated as an operand in a general-purpose register at that time among instructions to change a general-purpose register (hereinafter, L-type instruction is abbreviated) We are trying to speed up only in. In other words, when transferring to the operand buffer read from the storage device, the same operand is also transferred to the register for address generation, so that the data does not pass through the general-purpose register. Therefore, the overhead is reduced to two cycles as shown in FIG. ing.
一方特願昭61-191841「先行制御方式」に示されてい
る方法は、アドレスコンフリクトを生じている後続命令
に条件を付すことによって高速化を図っている。すなわ
ち、先行する命令で変更されている汎用レジスタが後続
命令のインデクスレジスタとして指定されている場合に
は、残りのベースレジスタおよびディスプレースメント
値が共にゼロである場合に限り、また、先行命令で変更
されている汎用レジスタが後続命令のベースレジスタと
して指定されている場合には、インデクスレジスタおよ
びディスプレースメント値が共にゼロの場合に限り、記
憶装置から読出したオペランドを直接記憶装置参照用ア
ドレスレジスタに転送することにより、第2図(3)に
示した通りオーバヘッドを1サイクルに低減している。On the other hand, the method described in Japanese Patent Application No. 61-191841 "preceding control method" achieves high speed by giving a condition to a succeeding instruction causing an address conflict. In other words, if the general-purpose register changed by the preceding instruction is specified as the index register of the following instruction, the change is made only if the remaining base register and displacement value are both zero, and When the general-purpose register specified is specified as the base register of the subsequent instruction, the operand read from the storage device is directly transferred to the storage device reference address register only when both the index register and the displacement value are zero. By doing so, the overhead is reduced to one cycle as shown in FIG. 2 (3).
[発明が解決しようとする課題] 上記2つの従来技術においては、高速化を図るために
条件を付している。[Problems to be Solved by the Invention] In the above two prior arts, a condition is set in order to increase the speed.
すなわち、第一に示した例ではL系命令に対してのみ
高速化を図っており、加算命令や減算命令がアドレスコ
ンフリフトを生じている場合には高速化されない。That is, in the first example, the speed is increased only for the L-type instruction, and the speed is not increased when the addition instruction or the subtraction instruction causes the address lift.
また、第二に示した例では、インデクスレジスタとデ
ィスプレースメントあるいは、ベースレジスタとディス
プレースメントが共にゼロである場合にのみ高速化され
る。つまり,インデクスレジスタとベースレジスタを両
方共アドレス生成に使用する場合にはその効果を発揮す
ることができない。また、汎用レジスタの内容を変更す
る命令が加減算命令の場合、演算器を経由することが必
要なのでオーバヘッドが1サイクル増えてしまう。In the second example, the speed is increased only when both the index register and the displacement or the base register and the displacement are zero. That is, when both the index register and the base register are used for address generation, the effect cannot be exhibited. If the instruction for changing the contents of the general-purpose register is an addition / subtraction instruction, it is necessary to go through an arithmetic unit, so that the overhead increases by one cycle.
本発明は、L系命令のみならず加減算命令も高速化の
対象とし、かつインデクスレジスタやベースレジスタに
何ら条件を付すことなく高速化を実現する方法を提供す
るものである。The present invention provides a method for speeding up addition and subtraction instructions as well as L-system instructions, and realizing high speed without giving any condition to an index register or a base register.
[課題を解決するための手段] 上記目的を達成するために、本発明による情報処理装
置では、命令で指定されたインデクスレジスタの内容と
ベースレジスタの内容とディスプレースメントの値とか
ら実効アドレスを生成する従来の3入力アドレス加算器
の加算結果を保持するレジスタと、該レジスタの値と記
憶装置から読出したデータとを入力とする演算手段を新
たに備え、そして先行する命令が変更するレジスタの内
容を後続命令がアドレス生成に使用するというコンフリ
クトが存在することを検出する手段と、上記コンフリク
トを検出した時、上記3入力アドレス加算器においては
変更の終了していないレジスタの内容をゼロとみなして
アドレス加算を行わせしむる手段と、先行命令が記憶装
置から読出したデータが上記新設した演算手段に入力さ
れたことを認識して、記憶装置に対する参照アドレスと
して、送出する手段を有するところに特徴がある。[Means for Solving the Problems] In order to achieve the above object, an information processing apparatus according to the present invention generates an effective address from the contents of an index register, a base register, and a displacement value specified by an instruction. A register for holding the addition result of the conventional three-input address adder, and an arithmetic means for inputting the value of the register and the data read from the storage device, and the contents of the register changed by the preceding instruction And a means for detecting the presence of a conflict that a subsequent instruction uses for generating an address. When the conflict is detected, the 3-input address adder regards the contents of the register whose change has not been completed as zero. Means for performing address addition, and the data read by the preceding instruction from the storage device are stored in the newly-created arithmetic processor. It is characterized in that it has means for recognizing the input to the column and sending it out as a reference address to the storage device.
[作用] 先行命令が変更するレジスタの内容を後続命令がアド
レス生成に使用することを検出する回路は、検出結果に
よって該変更されているレジスタの読出しデータをゼロ
とすることにより、3入力アドレス加算器においてアド
レス加算の中間結果を出力せしめる。3入力アドレス加
算器の出力を保持するレジスタは、上記中間結果を先行
命令による記憶装置からのオペランド読出しまで保持
し、新設した演算手段において両者の演算を行わせる。[Operation] The circuit for detecting that the content of the register changed by the preceding instruction is used by the subsequent instruction for generating an address is to add three-input addresses by setting the read data of the changed register to zero according to the detection result. Output the intermediate result of the address addition. The register holding the output of the three-input address adder holds the intermediate result until the operand is read from the storage device by the preceding instruction, and causes the newly provided arithmetic means to perform both operations.
[実施例] 以下、本発明の一実施例を第1図〜第5図を用いて説
明する。Embodiment An embodiment of the present invention will be described below with reference to FIGS.
第1図は本発明による情報処理装置の全体構成を示し
たものであり、第3図は本発明で高速化することが可能
な命令列の一例を示したものである。まず、第3図
(1)で示した命令列の処理について、第1図を用いて
全体の流れを説明する。第3図(1)で示した命令列に
おいては、先行する命令I1がL命令であり、汎用レジス
タの3番を変更する。一方後続命令I2は加算命令(Ad
d)であり、その記憶装置上のオペランドの実効アドレ
スを計算する際に汎用レジスタ3番をベースレジスタと
して必要としている。このため、命令I1とI2は汎用レジ
スタ3番に関してアドレスコンフリクトを生じており、
命令I2のアドレスの計算は命令I1のオペランド読出しの
終了を待つことが必要である。FIG. 1 shows an overall configuration of an information processing apparatus according to the present invention, and FIG. 3 shows an example of an instruction sequence that can be speeded up by the present invention. First, the entire flow of the processing of the instruction sequence shown in FIG. 3A will be described with reference to FIG. In the instruction string shown in FIG. 3 (1), the preceding instruction I 1 is L instruction, changes the third general register. On the other hand, the subsequent instruction I 2 is an addition instruction (Ad
d), when calculating the effective address of the operand on the storage device, the general-purpose register 3 is required as the base register. Therefore, the instructions I 1 and I 2 cause an address conflict with respect to the general-purpose register 3 and
Calculation of the address of the instruction I 2 is necessary to wait for the completion of an operand read instruction I 1.
第1図において、第3図(1)の命令列が入力される
と、まず命令レジスタ1にL命令がセットされる。制御
回路CTL3は命令レジスタ1にセットされた命令がL命令
であることを認識し、該命令が命令のR1パートで指定し
た汎用レジスタすなわち3番の内容を変更することを記
憶すると共に、該命令の記憶装置上のオペランドのアド
レス生成にインデクスレジスタおよびベースレジスタと
して汎用レジスタ4番,8番をそれぞれ指定したことを解
釈し、かつ汎用レジスタ4番,8番が、先行するいかなる
命令ともアドレスコンフリクトを生じていない(すなわ
ち、汎用レジスタ4番,8番の内容を使用したアドレス加
算が実行可能である)ことを判断すると、アドレス加算
器7におけるアドレス加算を実行する。この場合信号線
22にはインデクスレジスタ番号4が送出され、信号線23
にはベースレジスタ番号8が送出される。この結果汎用
レジスタ群2からそれぞれの読出しアドレスに対応した
汎用レジスタの内容すなわち、4番と8番の内容が信号
線24,25にそれぞれ送出され、3入力アドレス加算器7
のインデクス入力レジスタ4とベース入力レジスタ5に
それぞれセットされる。この時信号線26,27は、インデ
クス入力レジスタ4,ベース入力レジスタ5への入力デー
タとして汎用レジスタから読出しデータである、信号線
24,25上のデータを選択するよう制御されているものと
する。(信号線35を選択する場合の制御については前述
の特願昭61-191841号に記載されており、本発明の特徴
ではないので説明を省略する。)一方、ディスプレース
メント入力レジスタ6には、命令の一部であるディスプ
レースメント部が、命令レジスタ1から直接入力され
る。この結果3入力アドレス加算器7において加算を行
い、L命令のアドレスを算出することができる。算出さ
れたアドレスは、記憶装置内のアドレスレジスタ11にセ
ットされる。この時、該L命令は先行命令とのコンフリ
クトを生じていないため、セレクト信号32は3入力アド
レス加算器7の出力データを選択するものとする。アド
レスレジスタ11にセットされたアドレスを利用して記憶
装置12を参照し、L命令のオペランドを読出し、読出し
たデータをデータレジスタ13にセットする。位置合わせ
回路14は、読出したデータから必要な部分を切出し、演
算に好適なように位置合わせを行う回路であり信号線42
によって制御される。データレジスタ13にセットしたデ
ータは、位置合わせ回路14を経てオペランドバッファレ
ジスタ15にセットされ、演算器16に入力される。演算器
16は命令の種類に応じて信号線43の制御を受けるがL命
令は演算を必要としないため、読出しデータをそのまま
演算器16を素通りし、信号線36を経て汎用レジスタ群2
に送られ、命令のR1パートで指定した番号の汎用レジス
タ3番に格納される。In FIG. 1, when the instruction sequence shown in FIG. 3A is input, first, an L instruction is set in the instruction register 1. The control circuit CTL3 recognizes that the instruction set in the instruction register 1 is the L instruction, stores that the instruction changes the contents of the general-purpose register designated by the R1 part of the instruction, that is, the third instruction, and stores the instruction. Interprets that the general-purpose registers 4 and 8 are specified as the index register and the base register, respectively, for generating the address of the operand on the storage device, and that the general-purpose registers 4 and 8 cause an address conflict with any preceding instruction. When it is determined that no error has occurred (that is, address addition using the contents of the general-purpose registers 4 and 8 can be performed), the address addition in the address adder 7 is performed. In this case the signal line
The index register number 4 is sent to 22 and the signal line 23
Is sent a base register number 8. As a result, the contents of the general-purpose registers corresponding to the respective read addresses from the general-purpose register group 2, that is, the contents of Nos. 4 and 8, are sent to the signal lines 24 and 25, respectively.
Are set in the index input register 4 and the base input register 5, respectively. At this time, signal lines 26 and 27 are read data from general-purpose registers as input data to index input register 4 and base input register 5,
It is assumed that data is controlled to select data on 24 and 25. (The control for selecting the signal line 35 is described in the above-mentioned Japanese Patent Application No. 61-191841 and is not a feature of the present invention, so the description thereof will be omitted.) On the other hand, the displacement input register 6 includes A displacement part, which is a part of the instruction, is directly input from the instruction register 1. As a result, the addition is performed in the 3-input address adder 7, and the address of the L instruction can be calculated. The calculated address is set in an address register 11 in the storage device. At this time, since the L instruction does not conflict with the preceding instruction, the select signal 32 selects the output data of the 3-input address adder 7. The storage device 12 is referenced using the address set in the address register 11 to read the operand of the L instruction, and the read data is set in the data register 13. The positioning circuit 14 is a circuit that cuts out a necessary portion from the read data and performs positioning so as to be suitable for the operation.
Is controlled by The data set in the data register 13 is set in the operand buffer register 15 via the positioning circuit 14, and is input to the arithmetic unit 16. Arithmetic unit
16 receives the control of the signal line 43 according to the type of the instruction, but the L instruction does not require the operation, so the read data passes through the arithmetic unit 16 as it is, and passes through the signal line 36 to the general-purpose register group 2.
And stored in the general-purpose register 3 of the number specified by the R1 part of the instruction.
一方、後続命令である加算命令は、先行命令であるL
命令に対するアドレス生成の準備が整った時点、すなわ
ち、インデクス入力レジスタ4、ベース入力レジスタ
5、ディスプレースメント入力レジスタ6にそれぞれの
データがセットされた時点で命令レジスタ1に切出され
る。この時、制御回路3において、該命令が記憶装置上
のオペランドのアドレス生成において汎用レジスタ3番
と1番の読出しを必要としていることを解読し、かつ、
汎用レジスタ3番を先行命令であるL命令が変更してい
ることを認識する。前述の特願昭61-191841号にて示さ
れた方法では、このようなケースを高速処理することが
できない。なぜならば、後続命令である加算命令の、先
行命令とコンフリクトを生じていないベースレジスタの
番号が0でないからである。しかるに本発明によれば、
次のような手法によって高速化を実現することができ
る。On the other hand, the addition instruction that is the succeeding instruction is the L instruction that is the preceding instruction.
When the preparation of the address generation for the instruction is completed, that is, when each data is set in the index input register 4, the base input register 5, and the displacement input register 6, the data is cut out to the instruction register 1. At this time, the control circuit 3 decodes that the instruction needs to read the general-purpose registers 3 and 1 in generating the address of the operand on the storage device, and
It recognizes that L instruction which is the preceding instruction has changed general register 3. The method disclosed in the aforementioned Japanese Patent Application No. 61-191841 cannot process such a case at high speed. This is because the number of the base register of the addition instruction which is the succeeding instruction and which does not conflict with the preceding instruction is not 0. However, according to the present invention,
Higher speed can be realized by the following method.
制御回路3によって命令レジスタ1に切出した命令
(加算命令)が、先行するL命令とアドレスコンフリク
トを生じていることを認識すると、コンフリクトを生じ
ている汎用レジスタ番号、すなわちこの場合インデクス
レジスタとして指定されている汎用レジスタ3番の内容
を0とみなしてアドレス加算を終了する。この結果信号
線33にはベースレジスタとして指定された汎用レジスタ
番号1の内容とディスプレースメントの値だけを加えた
結果が出力される。すなわち、従来技術で示した特公昭
56-46170号で示されたように3入力アドレス加算器7で
先行命令をオペランドの到着を待つのではなく、その前
に不完全なアドレス値を算出し、出力してしまう訳であ
る。信号線33に出力された不完全アドレスは、先行命令
のオペランド読出し終了を待ち合わせるために本発明に
より設けたレジスタ8にセットされる。一方、先行する
L命令によって記憶装置から読出されたオペランドは、
演算処理を必要としないためオペランドバッファレジス
タ15に転送それると同時に信号線35によって本発明によ
る演算手段10に入力することができる。この時、制御信
号29は信号線35を選択することを指示する。この結果、
演算手段10において、レジスタ8に格納されていたデー
タと記憶装置から読出した先行命令のオペランドデータ
を加算することができ、加算命令のオペランドアドレス
を不完全なものから完全なものとして信号線34に出力す
ることができる。また、制御回路3では、記憶装置から
オペランド読出し終了を信号線37によって認識すると、
制御信号線32により、アドレスレジスタ11の入力として
演算手段10の出力である信号線14とセレクトするよう指
示する。このようにして後続命令である加算命令のアド
レスを算出してアドレスレジスタ11にセットすることが
でき、以下L命令の場合と同様にしてオペランドを読出
す。但し、加算命令の場合にはL命令と異なり、演算器
16にて命令のR1パートで指定した汎用レジスタの内容
を、記憶装置から読出したオペランドとの加算を行い、
その結果を汎用レジスタ群2内のR1で指定された番号5
のレジスタに格納する。When the control circuit 3 recognizes that the instruction (addition instruction) cut into the instruction register 1 has generated an address conflict with the preceding L instruction, it is designated as a general-purpose register number having a conflict, that is, an index register in this case. The contents of the third general-purpose register are regarded as 0, and the address addition is completed. As a result, a result obtained by adding only the contents of the general-purpose register number 1 designated as the base register and the displacement value is output to the signal line 33. That is, the Japanese Patent Publication No.
As shown in No. 56-46170, the 3-input address adder 7 does not wait for the arrival of the operand in the preceding instruction, but before that, an incomplete address value is calculated and output. The incomplete address output to the signal line 33 is set in the register 8 provided according to the present invention in order to wait for the completion of reading the operand of the preceding instruction. On the other hand, the operand read from the storage device by the preceding L instruction is
Since no arithmetic processing is required, the data can be transferred to the operand buffer register 15 and simultaneously input to the arithmetic means 10 according to the present invention via the signal line 35. At this time, the control signal 29 instructs to select the signal line 35. As a result,
In the arithmetic means 10, the data stored in the register 8 and the operand data of the preceding instruction read from the storage device can be added, and the operand address of the addition instruction is changed from incomplete to complete in the signal line 34. Can be output. When the control circuit 3 recognizes the end of the operand reading from the storage device by the signal line 37,
The control signal line 32 instructs to select the signal line 14 which is the output of the arithmetic means 10 as the input of the address register 11. In this way, the address of the subsequent instruction, the addition instruction, can be calculated and set in the address register 11, and the operand is read out in the same manner as in the case of the L instruction. However, in the case of the addition instruction, unlike the L instruction, the operation unit
At step 16, the contents of the general-purpose register specified by the R1 part of the instruction are added to the operand read from the storage device,
The result is designated by the number 5 specified by R1 in the general-purpose register group 2.
In the register.
第3図(1)で示した命令列を処理するためには、従
来技術による高速化によっても第2図(2)あるいは第
3図(4)に示す如く2サイクルのオーバヘッドを生じ
ていたが、これを本発明では第2図(3)に示す如く1
サイクルのオーバヘッドに抑えることができる。In order to process the instruction sequence shown in FIG. 3 (1), the overhead of 2 cycles was generated as shown in FIG. 2 (2) or FIG. In the present invention, as shown in FIG.
Cycle overhead can be reduced.
次に第4図に参照して制御回路3の詳細を述べる。第
4図において、レジスタ101は命令の命令コードを、レ
ジスタ102は命令のR1パートをそれぞれ保持するもので
ある。また、デコーダ103は現在命令レジスタ1にセッ
トされている命令の命令コードを解読するものであり、
一方デコーダ104は1つ前の命令の命令コードを解読す
るものである。比較回路105,106はそれぞれ4ビットの
比較を行う回路で、1つ前の命令のR1パートすなわち、
1つ前の命令が変更する汎用レジスタ番号と、現在命令
レジスタ1に切出されている命令のインデクスパートで
指定されている汎用レジスタ番号および、ベースパート
で指定されている汎用レジスタ番号とを比較し、一致し
ているか否かを判定するものである。Next, the control circuit 3 will be described in detail with reference to FIG. In FIG. 4, a register 101 holds an instruction code of an instruction, and a register 102 holds an R1 part of the instruction. The decoder 103 decodes the instruction code of the instruction currently set in the instruction register 1;
On the other hand, the decoder 104 decodes the instruction code of the immediately preceding instruction. The comparison circuits 105 and 106 each perform a 4-bit comparison. The R1 part of the immediately preceding instruction, that is,
Compares the general register number changed by the previous instruction with the general register number specified in the index part of the instruction currently cut out to the instruction register 1 and the general register number specified in the base part Then, it is determined whether or not they match.
L命令が命令レジスタに切出されると、その命令コー
ドがレジスタ101に、そしてR1パートで指定した汎用レ
ジスタ番号がレジスタ102にそれぞれセットされる。続
いてA命令が命令レジスタ1に切出されると、まずデコ
ーダ103によって解読し、該命令が記憶装置上のオペラ
ンドのアドレスを計算する際に、インデクスパートで指
定した汎用レジスタの値と、ベースパートで指定した汎
用レジスタの値とを必要とすることを認識する。その結
果信号線135,136をそれぞれセットする。一方、先行命
令はL命令であるため、命令コードを保持したレジスタ
101の内容をデコーダ104によって解読することにより、
L命令であることを示す信号線137がセットされる。そ
して、比較回路105,106によって、A命令がアドレス計
算のために読出そうとする汎用レジスタ番号と、先行命
令であるL命令が変更する汎用レジスタ番号とを比較
し、両者の間にコンフリクトが存在するか否かをチェッ
クする。この時、A命令のインデクスレジスタ番号は信
号線132によって比較回路105に入力され、ベースレジス
タ番号は信号線133によって比較回路106に入力される。
一方L命令が変更する汎用レジスタ番号は命令のR1パー
トで指定されるのでレジスタ102に保持されており、こ
こから2つの比較回路105,106に入力される。比較の結
果、汎用レジスタ番号が一致すれば、L命令とA命令の
間にアドレスコンフリクトが生じているということを信
号線142および143をセットすることによって示す。以上
のデコード結果および比較結果を利用して、次のような
制御によってコンフリクト時の高速化を実現する。When the L instruction is cut into the instruction register, the instruction code is set in the register 101, and the general-purpose register number specified in the R1 part is set in the register 102. Subsequently, when the A instruction is cut out to the instruction register 1, it is first decoded by the decoder 103, and when the instruction calculates the address of the operand on the storage device, the value of the general-purpose register specified by the index part and the base part It recognizes that the value of the general-purpose register specified in is required. As a result, the signal lines 135 and 136 are set, respectively. On the other hand, since the preceding instruction is an L instruction, the register holding the instruction code
By decoding the contents of 101 by the decoder 104,
A signal line 137 indicating the L instruction is set. Then, the comparison circuits 105 and 106 compare the general-purpose register number to be read by the A instruction for address calculation with the general-purpose register number to be changed by the preceding instruction L, and determine whether there is a conflict between the two. Check whether or not. At this time, the index register number of the A instruction is input to the comparison circuit 105 via the signal line 132, and the base register number is input to the comparison circuit 106 via the signal line 133.
On the other hand, since the general-purpose register number changed by the L instruction is specified by the R1 part of the instruction, it is held in the register 102, and is input to the two comparison circuits 105 and 106 therefrom. As a result of the comparison, if the general register numbers match, it is indicated by setting the signal lines 142 and 143 that an address conflict has occurred between the L instruction and the A instruction. Using the above decoding result and comparison result, the following control realizes speeding up at the time of a conflict.
ANDゲート108は、先行命令がL命令であり、かつ後続
命令がオペランドのアドレス計算にインデクスパートで
指定した汎用レジスタの内容を必要とし、さらにL命令
が変更する汎用レジスタの番号とインデクスレジスタの
番号が一致した時に出力信号26をセットするものであ
る。この時コンフリクトを生じているインデクスレジス
タの内容すなわちL命令が変更しようとしている値を除
いてA命令のアドレス計算を行うために、信号線26によ
り第1図のインデクス入力レジスタ4への入力データが
ゼロとなるようセレクタを制御する。この結果、3入力
アドレス加算器7では、ベースレジスタの内容とディス
プレースメントとが加算される。同様にANDゲート109
は、先行命令がL命令であり、かつ後続命令がベースパ
ートで指定した汎用レジスタの内容をアドレス計算に必
要とし、さらにL命令が変更する汎用レジスタの番号と
ベースレジスタの番号が一致した時に出力信号27をセッ
トする。この時、3入力アドレス加算器7においてイン
デクスレジスタの内容をディスプレースメントの値のみ
を加算するように、ベース入力レジスタ5にゼロをセッ
トするべく信号線27で制御する。第3図(1)の命令列
においてはANDゲート108の出力信号26がセットされる。The AND gate 108 determines that the preceding instruction is an L instruction, the succeeding instruction requires the contents of the general-purpose register specified by the index part for calculating the address of the operand, and the number of the general-purpose register and the index register number to be changed by the L instruction Is set when the values match. At this time, the input data to the index input register 4 of FIG. 1 is changed by the signal line 26 in order to calculate the address of the A instruction except for the contents of the index register causing the conflict, that is, the value to be changed by the L instruction. Control the selector to be zero. As a result, in the three-input address adder 7, the contents of the base register and the displacement are added. Similarly AND gate 109
Is output when the preceding instruction is an L instruction, the succeeding instruction requires the contents of the general-purpose register specified by the base part for address calculation, and the number of the general-purpose register changed by the L instruction matches the base register number. Set signal 27. At this time, the three-input address adder 7 is controlled by the signal line 27 to set the base input register 5 to zero so that only the displacement value is added to the contents of the index register. In the instruction sequence shown in FIG. 3A, the output signal 26 of the AND gate 108 is set.
ANDゲート108,109少なくともどちらかが出力信号とセ
ットすると、ORゲート116を駆動し、その出力がラッチ1
17にセットされる。ラッチ117はタイミングを合わせる
ためのものであり、その出力信号31により、第1図にお
いて、3入力アドレス加算器7の出力データがレジスタ
8にセットされる。レジスタ8は、上述の通り、3入力
アドレス加算器から出力された、インデクスレジスタの
内容あるいはベースレジスタの内容を除いた不完全なア
ドレス値を保持し、先行命令であるL命令のオペランド
読出し終了を持って、読出したオペランドデータとの加
算を可能せしむるものである。When at least one of the AND gates 108 and 109 sets an output signal, the OR gate 116 is driven and its output is latched.
Set to 17. The latch 117 is for adjusting the timing, and the output data of the 3-input address adder 7 is set in the register 8 in FIG. As described above, the register 8 holds an incomplete address value output from the three-input address adder excluding the contents of the index register or the contents of the base register, and terminates the operand reading of the L instruction which is the preceding instruction. This allows addition with the read operand data.
このように、先行命令とのアドレスコンフリクトを検
出した時に、コンフリクトを生じているレジスタの3入
力加算器への入力データをゼロにするべく論理ゲート10
8,109を設けたことが本発明の大きな特徴の1つであ
る。As described above, when an address conflict with the preceding instruction is detected, the logic gate 10 is used to set the input data to the three-input adder of the register causing the conflict to zero.
The provision of 8,109 is one of the major features of the present invention.
さて、先行命令であるL命令のオペランド読出しの終
了が記憶装置12から信号線37により通知されると、第3
図のゲート118が駆動され、信号線29が動作して演算手
段10の入力データとして信号線35を選択する。その結
果、演算手段10によって完全アドレスが算出され、その
加算結果をやはり信号線32の制御により選択してアドレ
スレジスタ11にセットする。When the end of reading the operand of the L instruction which is the preceding instruction is notified from the storage device 12 via the signal line 37, the third instruction is issued.
The gate 118 shown in the figure is driven, and the signal line 29 operates to select the signal line 35 as input data of the arithmetic means 10. As a result, the complete address is calculated by the arithmetic means 10, and the addition result is also selected by the control of the signal line 32 and set in the address register 11.
次に第2の例として、第3図(2)で示した命令列を
実行した場合の、本発明の高速化手法について述べる。
今回の命令列は先行命令がA命令であり、該A命令が変
更する汎用レジスタを後続のL命令がインデクスレジス
タとして使用するものである。Next, as a second example, a method for speeding up the present invention when the instruction sequence shown in FIG. 3 (2) is executed will be described.
In the present instruction sequence, the preceding instruction is an A instruction, and the subsequent L instruction uses a general-purpose register changed by the A instruction as an index register.
先行命令であるA命令のデコード終了後、後続命令で
あるL命令が命令レジスタ1にセットされた時、第4図
の制御回路は次の動作を行う。After the decoding of the preceding instruction A is completed, when the following instruction L is set in the instruction register 1, the control circuit of FIG. 4 performs the following operation.
まず命令レジスタ1にセットされた命令の命令コード
をデコーダ103で解読し、該命令がアドレス計算を行う
ためにインデクスレジスタとベースレジスタを必要とす
ることを認識して信号線135と136をセットする。一方、
レジスタ101に保持されている先行命令の命令コードを
デコーダ104にて解読し、該命令がA命令であることを
認識すると信号線138をセットする。さらに、比較回路1
05,106によってL命令の指定するインデクスレジスタ番
号およびベースレジスタ番号と、レジスタ102に保持さ
れている先行命令であるA命令のR1パート、すなわち、
A命令が変更する汎用レジスタ番号とを比較する。その
結果番号が一致すれば、それぞれ信号線142,143をセッ
トする。第3図(2)の命令列の場合、A命令のR1パー
トとL命令のインデクスレジスタが共に汎用レジスタ3
番を指定しているため、比較回路105の出力信号142がセ
ットされる。先行する汎用レジスタ変更命令がA命令の
場合には、後続のL命令のオペランドアドレス計算を行
うために、まず汎用レジスタ番号3の内容をA命令が指
定する記憶装置上の第2オペランドの値を加算し、さら
にL命令がベースレジスタとして指定している汎用レジ
スタ番号1の内容およびディスプレースメント値を加え
ることが必要である。これを式で表わすとC(GPR3)+
C(OP2)+C(GPR1)+Dとなる。ここでC( )は
カッコ内で示された汎用レジスタの内容あるいは記憶装
置上のオペランドデータの値をここで、A命令の第2オ
ペランドデータはまだ記憶装置から読出されていない訳
であるから、残りのデータを用いてアドレスの中間加算
結果を求めることを考える。すなわち、まずA命令によ
って変更される前の汎用レジスタ番号3の内容を利用し
てC(GPR3)+C(CPR1)+Dという3つのデータの加
算を行い、A命令の第2オペランドが記憶装置から読出
された時に再度加算を行う訳である。これを実現するた
めには、まず3入力アドレス加算器7においてはL命令
のオペランドアドレスの計算を通常通り行えば良い。す
なわち、インデクスパートで指定された3番の汎用レジ
スタおよびベースパートで指定された1番の汎用レジス
タの内容をそれぞれ読出し、ディスプレースメントの値
と加算すれば良い訳である。先行命令がL命令の場合
(第3図(1))には、コンフリクトを生じたインデク
スレジスタあるいはベースレジスタの値をゼロにする必
要があったが、A命令ではその動作は不要である。それ
ゆえ、先行するA命令とコンフリクトを生じていること
を認識する制御論理としてANDゲート110,111を設けてい
る。ANDゲート110は、命令レジスタ1に切出された命令
が先行するA命令とインデクスレジスタに関してコンフ
リクトを生じている時に駆動され、ANDゲート111はベー
スレジスタに関してコンフリクトを生じている時に駆動
される。両ANDゲートの出力は、3入力アドレス加算器
の入力データ制御には利用される訳ではなく、ORゲート
116を経てラッチ117にセットされ、信号線31によって3
入力アドレス加算器7の出力結果をレジスタ8にセット
するために利用される。すなわちアドレス加算器7にお
ける加算は、コンフリクトが生じていない場合と全く同
様に行う。これ以後の動作は第3図(1)の命令列の場
合と同じで、先行するA命令のオペランド読出しが終了
した時点で、読出しデータを信号線35を経由して演算手
段10に入力し、レジスタ8に保持している不完全アドレ
スとの加算を行う。一方A命令のオペランド読出しの終
了が信号線37によって制御回路3に伝えられるとANDゲ
ート118を経て信号線29をセットし、アドレスレジスタ1
1にL命令のオペランドアドレスをセットする。こうし
てL命令の記憶装置上のオペランドの読出しが可能とな
る。First, the decoder 103 decodes the instruction code of the instruction set in the instruction register 1, recognizes that the instruction requires an index register and a base register, and sets the signal lines 135 and 136. . on the other hand,
The instruction code of the preceding instruction held in the register 101 is decoded by the decoder 104, and when the instruction is recognized as the A instruction, the signal line 138 is set. Furthermore, the comparison circuit 1
The index register number and the base register number designated by the L instruction according to 05 and 106, and the R1 part of the A instruction which is the preceding instruction held in the register 102, that is,
Compare with the general-purpose register number changed by the A instruction. As a result, if the numbers match, the signal lines 142 and 143 are set, respectively. In the case of the instruction sequence shown in FIG. 3 (2), the R1 part of the A instruction and the index register of the L instruction are both general registers 3
Since the number is designated, the output signal 142 of the comparison circuit 105 is set. When the preceding general register change instruction is the A instruction, first, the content of the general register number 3 is changed to the value of the second operand on the storage device designated by the A instruction in order to calculate the operand address of the following L instruction. It is necessary to add the contents and the displacement value of the general-purpose register number 1 designated as the base register by the L instruction. This can be expressed as C (GPR3) +
C (OP2) + C (GPR1) + D. Here, C () represents the contents of the general-purpose register indicated in parentheses or the value of the operand data on the storage device. Since the second operand data of the A instruction has not been read from the storage device yet, Suppose that a result of intermediate addition of addresses is obtained using the remaining data. That is, first, three data of C (GPR3) + C (CPR1) + D are added using the contents of the general-purpose register number 3 before being changed by the A instruction, and the second operand of the A instruction is read from the storage device. That is, when addition is performed, the addition is performed again. In order to realize this, first, the 3-input address adder 7 may calculate the operand address of the L instruction as usual. That is, the contents of the third general-purpose register specified by the index part and the contents of the first general-purpose register specified by the base part may be read and added to the displacement value. When the preceding instruction is an L instruction (FIG. 3 (1)), the value of the conflicting index register or base register must be set to zero, but the operation of the A instruction is unnecessary. Therefore, AND gates 110 and 111 are provided as control logic for recognizing that a conflict has occurred with the preceding A instruction. The AND gate 110 is driven when the instruction cut into the instruction register 1 has a conflict with the preceding A instruction with respect to the index register, and the AND gate 111 is driven when there is a conflict with the base register. The outputs of both AND gates are not used for input data control of the 3-input address adder,
It is set in the latch 117 via 116, and 3
It is used to set the output result of the input address adder 7 in the register 8. That is, the addition in the address adder 7 is performed in exactly the same manner as in the case where no conflict occurs. The operation thereafter is the same as in the case of the instruction sequence in FIG. 3 (1), and when the reading of the operand of the preceding A instruction is completed, the read data is input to the arithmetic means 10 via the signal line 35, The addition with the incomplete address held in the register 8 is performed. On the other hand, when the end of the operand reading of the A instruction is transmitted to the control circuit 3 via the signal line 37, the signal line 29 is set via the AND gate 118, and the address register 1 is set.
The operand address of the L instruction is set to 1. In this way, it is possible to read the operand on the storage device for the L instruction.
この結果、先行するA命令との間にアドレスコンフリ
クトがある場合でも第2図(3)に示した如く後続命令
の処理の高速化を図ることができる。この時制御構造上
大きな役割を果しているのが第4図110,111のANDゲート
である。この2つのゲートをL命令用のANDゲート108,1
09とは別に設けることによって、先行命令がA命令の場
合もL命令の場合と同様に高速処理することが可能とな
った。As a result, even if there is an address conflict with the preceding A instruction, the speed of the processing of the subsequent instruction can be increased as shown in FIG. 2 (3). At this time, the AND gates shown in FIGS. 110 and 111 play an important role in the control structure. These two gates are connected to AND gates 108 and 1 for the L instruction.
By providing it separately from 09, high-speed processing can be performed when the preceding instruction is an A instruction, as in the case of an L instruction.
次に、第3図の例として第3図(3)に示したよう
に、半語オペランドを扱う汎用レジスタ変更命令が先行
命令となった場合を第5図を用いて説明する。Next, as shown in FIG. 3 (3) as an example of FIG. 3, a case where a general-purpose register change instruction handling a half-word operand becomes a preceding instruction will be described with reference to FIG.
第5図の特徴は記憶装置からの読出しデータを演算手
段10に入力する際、論理回路309を経由するところにあ
る。それ以外の部分は第1図と同じである。これまで説
明に利用してきたL命令およびA命令は、共にオペラン
ドとして4バイト長のデータを扱う命令であり、記憶装
置から読出すデータや加算も全て4バイトであった。し
かるに第3図(3)に示したLH命令は、記憶装置上の2
バイト長のデータを読出し、R1パードで指定された4バ
イト幅の汎用レジスタに格納する命令で、この時記憶装
置から読出した2バイトデータの先頭ビットを符号ビッ
トとみなし、符号ビットの値を上位の2バイトに拡張す
ることにより、4バイトのデータとする。すなわち、第
6図(2)に示した如く2バイトデータの先頭ビットが
0ならば上位2バイトには0を埋め込み、‘1'ならば
‘1'を埋め込む訳である。The characteristic of FIG. 5 is that the data read from the storage device is input to the arithmetic means 10 via the logic circuit 309. Other parts are the same as those in FIG. The L instruction and the A instruction that have been used in the description so far are instructions that handle 4-byte data as operands, and the data and additions read from the storage device are all 4 bytes. However, the LH instruction shown in FIG.
An instruction to read byte-length data and store it in a 4-byte general register specified by the R1 pad. At this time, the first bit of the 2-byte data read from the storage device is regarded as a sign bit, and the value of the sign bit is higher. By expanding to 2 bytes, data of 4 bytes is obtained. That is, as shown in FIG. 6 (2), if the first bit of the 2-byte data is 0, 0 is embedded in the upper 2 bytes, and if it is '1', '1' is embedded.
さて第3図(3)の命令列において、LH命令のデコー
ドおよびオペランドアドレスの計算をオペランドの読出
しは第3図(1)で示したL命令と全く同様に処理され
る。そして後続命令であるA命令が命令レジスタ1に設
定されると、L命令の場合と同様、第4図のANDゲート1
08によってインデクスレジスタに対するコンフリクトを
認識し、LH命令のオペランドアドレス計算におけるイン
デクスレジスタの入力データをゼロとする。そして不完
全なアドレス加算結果を第5図レジスタ8に保守して、
LH命令のオペランドの読出し終了を持つ訳である。LH命
令のオペランドが読出された時、演算手段10でA命令の
オペランドアドレスを求めるが、この時2バイトのオペ
ランドデータを4バイトに符号拡張することが必要であ
る。この機能を果たすのが第5図の論理回路309で、そ
の構造を第7図に示す。LH命令では読出した2バイト長
のオペランドは、アライナ14によって4バイトのデータ
パスの右端に整列させるものとすると、L命令のような
4バイトオペランドの命令では、データ線38上のデータ
がそのままデータ線200に出力されるが、LH命令の場合
には、制御線149が働くことによって上位2バイトのデ
ータとしてビット16すなわち2バイトオペランドの符号
ビットを選択し、荷号拡張を行う。符号を拡張されたデ
ータはそのままデータ線200,201を経てデータ線39に出
力され、演算手段10への入力となる。このようにして、
先行命令がLH命令の場合にも後続命令であるA命令のア
ドレスを正しく求めることができる。この時制御線149
は、第4図において、先行する命令がLH命令であること
をデコードした信号線140と、先行する命令のR1のレジ
スタ番号と後続命令(いまの場合A命令)のインデクス
レジスタ番あるいはベースレジスタ番号が一致したこと
を示すORゲート112の出力信号146とをANDすることによ
って生成される。Now, in the instruction sequence of FIG. 3 (3), decoding of the LH instruction and calculation of the operand address and reading of the operand are performed in exactly the same manner as the L instruction shown in FIG. 3 (1). Then, when the subsequent instruction A is set in the instruction register 1, the AND gate 1 shown in FIG.
A conflict with the index register is recognized by 08, and the input data of the index register in the operand address calculation of the LH instruction is set to zero. Then, the incomplete address addition result is maintained in the register 8 in FIG.
This means that the reading of the operand of the LH instruction has been completed. When the operand of the LH instruction is read, the operand address of the A instruction is obtained by the arithmetic means 10. At this time, it is necessary to sign-extend the 2-byte operand data to 4 bytes. This function is performed by the logic circuit 309 in FIG. 5, and the structure is shown in FIG. Assuming that the 2-byte operand read in the LH instruction is aligned to the right end of the 4-byte data path by the aligner 14, the 4-byte operand instruction such as the L instruction leaves the data on the data line 38 as it is. Although output to the line 200, in the case of the LH instruction, the control line 149 operates to select the bit 16 as the upper 2 bytes of data, that is, the sign bit of the 2-byte operand, and extend the sign. The data whose sign has been extended is output as it is to the data line 39 via the data lines 200 and 201, and becomes the input to the arithmetic means 10. In this way,
Even when the preceding instruction is the LH instruction, the address of the A instruction which is the succeeding instruction can be correctly obtained. At this time, control line 149
In FIG. 4, signal line 140 that decodes that the preceding instruction is an LH instruction, the register number of R1 of the preceding instruction and the index register number or base register number of the following instruction (in this case, A instruction) Are generated by ANDing with the output signal 146 of the OR gate 112 indicating that the two match.
このように第7図に示した符号拡張回路210および第
4図に示した半語命令認識ゲート112,114を設けること
により、先行する汎用レジスタ変更命令が半語オペラン
ドを扱う場合にもL命令の場合と同様に処理の高速化を
図ることができる。また、半語オペランドを扱う命令の
うち、加算命令(AU)および減算命令(SH)も同様に高
速処理が可能となる。(減算命令については次の例で説
明する。) 次に第3図(4)の命令列の処理について説明する。
ここでは先行する汎用レジスタ変更命令が減算(S)で
ある。S命令が変更する汎用レジスタ番号3と後続命令
であるL命令のインデクスレジスタ番号が一致しており
コンフリクトが生じている。この時L命令が行うべきア
ドレス計算を式で表わすと、C(GPR3)−C(OP2)+
C(GPR1)+Dとなる。そこでA命令の場合と同様に、
まず最初にS命令の第2オペランドとの演算を除いた3
つのデータの加算すなわちC(GPR3)+C(GPR1)+D
を行い、S命令の第2オペランドを読出した時点で両者
の演算(減算)を行うことにより、L命令のペランドア
ドレスが計算できることに着目する。すなわち、先行命
令がA命令であった場合と同様に、S命令によって変更
される前のインデクスレジスタ(汎用レジスタ3番)の
内容とベースレジスタ(汎用レジスタ1番)の内容をデ
ィスプレースメント値を加算することによってL命令に
対する不完全なアドレスを求め、これをアドレスレジス
タ8に保持して、S命令のオペランドの読出しを持つ。
先行命令がA命令の場合と異なる点は、A命令の場合に
は、記憶装置から読出したオペランドデータを演算手段
10において単純に加算すれば良かったが、S命令の場合
には減算を行わねばならないところである。一般に、減
算は、2つの補数を利用することにより加算によって行
うことができる。第5図においては、レジスタ8に保持
されている値から、信号線35上に読出されてくるS命令
の第2オペランドを減じる代わりに、信号線35上のデー
タに関して2の補数をとり、レジスタ8に保持されてい
る値と加算することにより同じ結果が得られるのであ
る。そこで、論理回路309には第7図で示した通り、半
語オペランド用符号拡張回路210の他に、ビット値の反
転回路211を備えており、これを信号線30の中の信号線1
50によって制御する。単純なビットの反転では該データ
の1の補数が得られるだけであるので、信号線150を演
算手段10に入力し、イニシャルキャリー(最下位ビット
に対する桁上げ)をセットすることによりS命令の第2
オペランドの2の補数生成を実現している。信号線150
は、第4図で示した通り、先行命令が減算命令(S,SH,S
L etc.)であることを示すデコード信号141と、先行命
令のR1パートとインデクスレジスタ番号あるいは、ドー
スレジスタ番号が一致したことを示す信号線146とをゲ
ート115によってANDすることによって生成される。ラッ
チ121はタイミング調整用である。このような制御方法
により、先行命令がS命令である場合にも、第2図
(3)に示すように、先行命令がL命令あるいはA命令
である場合と同じくオーバヘッド1サイクルまで高速化
することができる。尚、半語オペランドを扱う減算命令
(SH)では、第7図において、符号拡張回路210とビッ
ト反転回路211とが同時に動作するよう、信号線149,150
を共にセットすることにより、制御することができる。By providing the sign extension circuit 210 shown in FIG. 7 and the half-word instruction recognition gates 112 and 114 shown in FIG. 4 in this manner, even when the preceding general-purpose register change instruction handles a half-word operand, The processing can be speeded up in the same manner as described above. In addition, among instructions that handle half-word operands, the addition instruction (AU) and the subtraction instruction (SH) can also perform high-speed processing. (The subtraction instruction will be described in the following example.) Next, the processing of the instruction sequence in FIG. 3 (4) will be described.
Here, the preceding general-purpose register change instruction is subtraction (S). The general-purpose register number 3 changed by the S instruction matches the index register number of the subsequent instruction L instruction, and a conflict occurs. At this time, the address calculation to be performed by the L instruction can be expressed by an expression: C (GPR3) -C (OP2) +
It becomes C (GPR1) + D. Therefore, as in the case of the A instruction,
First, 3 except the operation with the second operand of the S instruction
Addition of two data, ie, C (GPR3) + C (GPR1) + D
And read out the second operand of the S instruction, and perform the operation (subtraction) of the two, so that the perland address of the L instruction can be calculated. That is, as in the case where the preceding instruction is the A instruction, the displacement value is added to the contents of the index register (general-purpose register 3) and the contents of the base register (general-purpose register 1) before being changed by the S instruction. Thus, an incomplete address for the L instruction is obtained, and this is held in the address register 8 to read the operand of the S instruction.
The difference between the preceding instruction and the A instruction is that, in the case of the A instruction, the operand data read from the storage device is operated by the arithmetic means.
In the case of the S instruction, the subtraction has to be performed, although the simple addition should have been performed in step 10. Generally, subtraction can be performed by addition using two's complement. In FIG. 5, instead of subtracting the second operand of the S instruction read out on the signal line 35 from the value held in the register 8, the data on the signal line 35 is complemented by two's complement. The same result is obtained by adding to the value held in 8. Therefore, as shown in FIG. 7, the logic circuit 309 is provided with a bit value inversion circuit 211 in addition to the sign extension circuit 210 for half-word operands.
Control by 50. Simple inversion of the bits only yields the one's complement of the data, so the signal line 150 is input to the arithmetic means 10 and the initial carry (carry for the least significant bit) is set. 2
It implements two's complement generation of the operand. Signal line 150
Indicates that the preceding instruction is a subtraction instruction (S, SH, S
(L etc.) and the signal line 146 indicating that the R1 part of the preceding instruction and the index register number or the dose register number match with each other by the gate 115. The latch 121 is for timing adjustment. By such a control method, even when the preceding instruction is the S instruction, as shown in FIG. 2C, the overhead speed is increased to one cycle as in the case where the preceding instruction is the L instruction or the A instruction. Can be. In addition, in the subtraction instruction (SH) that handles a half-word operand, the signal lines 149 and 150 are set so that the sign extension circuit 210 and the bit inversion circuit 211 operate simultaneously in FIG.
Can be controlled by setting.
続いて、第3図(5)で示した命令列の高速処理につ
いて説明する。命令の組合せ自体は第3図(1)で示し
たが、ここではL命令で変更した汎用レジスタを、後続
のA命令がインデクスレジスタ、ベースレジスタの両方
として指定した場合である。従来装置ではこうしたケー
スの処理高速化について何の記述もないが、本発明によ
れば簡単な論理回路を付加することによって第3図
(1)〜(4)の命令列と同様の高速化を図ることがで
きる。Next, the high-speed processing of the instruction sequence shown in FIG. 3 (5) will be described. The instruction combination itself is shown in FIG. 3 (1), but here is a case where the subsequent A instruction designates a general-purpose register changed by the L instruction as both an index register and a base register. In the conventional apparatus, there is no description about the processing speedup in such a case. However, according to the present invention, by adding a simple logic circuit, the same speedup as the instruction sequence of FIGS. 3 (1) to (4) can be achieved. Can be planned.
後続命令であるA命令のオペランドアドレスは先行命
令であるL命令の第2オペランドデータを利用してC
(OP2)+C(OP2)+Dという式によって求めることが
できる。すなわち、記憶装置から読出したL命令の第2
オペランドを2倍して、ディスプレースメントと加算す
れば良い。そこで、まず3入力アドレス加算器7におい
て、コンフリクトを生じているレジスタを除いた残りの
加算(この場合はディスプレースメントだけが残る)を
行い、レジスタ8に保持する。この時第4図のANDゲー
ト108,109によって、3入力アドレス加算器7のインデ
クスレジスタ入力、およびベースレジスタ入力がゼロと
なるのは第3図(1)の命令列で説明した通りの論理動
作による。その後、L命令の第2オペランドを読出して
くると、論理回路309によって該データを2倍し、演算
手段10にてレジスタ8の内容と加算することによって、
A命令のオペランドアドレスを正しく求めることができ
る。第7図に示した2倍化回路212は単純な1ビット左
シフト回路として構成することができる。また信号線15
1は先行命令のR1パートと後続命令のインデクスおよび
ベースレジスタ番号が共に一致した場合にセットされ
る。このように先行するL命令が変更するレジスタを、
接続命令のインデクスおよびベースレジスタとして同時
に使用する場合にも、第2図(3)で示した通り、オー
バヘッドを1サイクルとすることができる。この考えは
先行命令がL命令である場合に限らず、A命令、S命令
である場合にも同様に高速化を図ることができる。The operand address of the succeeding instruction A is calculated using the second operand data of the preceding instruction L.
(OP2) + C (OP2) + D. That is, the second instruction of the L instruction read from the storage device
What is necessary is just to double the operand and add it to the displacement. Therefore, first, in the three-input address adder 7, the remaining addition except for the register causing the conflict (in this case, only the displacement remains) is performed, and the result is stored in the register 8. At this time, the reason why the index register input and the base register input of the three-input address adder 7 become zero by the AND gates 108 and 109 in FIG. 4 is based on the logical operation described in the instruction sequence of FIG. Thereafter, when the second operand of the L instruction is read, the data is doubled by the logic circuit 309 and added to the contents of the register 8 by the arithmetic means 10 to obtain
The operand address of the A instruction can be obtained correctly. The doubling circuit 212 shown in FIG. 7 can be configured as a simple 1-bit left shift circuit. Also signal line 15
1 is set when both the R1 part of the preceding instruction and the index and base register number of the following instruction match. Thus, the register changed by the preceding L instruction is
Even when the connection instruction is used as an index and a base register at the same time, the overhead can be made one cycle as shown in FIG. 2 (3). This idea is not limited to the case where the preceding instruction is the L instruction, and the speed can be similarly increased when the preceding instruction is the A instruction and the S instruction.
第4図におけるラッチ107は、アドレスモードを指定
するものである。アドレスモードとは、アドレス加算器
7から出力される記憶装置参照用オペランドアドレスの
ビット幅を決めるもので、ラッチ107の出力信号28が0
の時にはアドレスを24ビットとし、出力信号28が1の時
にはアドレスが31ビットとなるよう制御する。この結
果、24ビットあるいは31ビットのアドレスのいずれかを
利用して記憶装置12を参照することができる。ラッチ10
7のセット,リセットは、デコーダ103によってアドレス
モードを変更する命令をデコードした時に行う。第8図
にアドレスモードを変更する命令の例を示す。ここで、
‘OB'‘OC'は命令コードである。ここで示した命令はい
ずれも2バイト長の命令でR2で示したレジスタ番号がゼ
ロの場合にはNO-OPERATIONとして処理するが、R2がゼロ
でない場合にはR2で指定した汎用レジスタのビット0を
アドレスモードとする。すなわち、デコーダ103によっ
て第8図の命令をデコードすると信号線24上にセットさ
れるR2で指定された汎用レジスタのビット0の値をラッ
チ107にセットする。その出力信号28は3入力アドレス
加算器7の出力データを抑制する。アドレスモードに関
する本発明の特徴は、アドレスモード制御ラッチ107の
出力信号28を用いて3入力アドレス加算器7を制御する
だけでなく、演算手段10の出力をも制御することであ
る。ラッチ107の出力信号28によって演算手段10の出力
データにアドレスモードを反映させることにより、アド
レスモードが変わった直後でもアドレスコンフリクトの
高速化を図ることができる。The latch 107 in FIG. 4 specifies an address mode. In the address mode, the bit width of the storage device reference operand address output from the address adder 7 is determined.
In this case, the address is controlled to be 24 bits, and when the output signal 28 is 1, the address is controlled to be 31 bits. As a result, the storage device 12 can be referred to using either the 24-bit or 31-bit address. Latch 10
The setting and resetting of 7 are performed when the decoder 103 decodes an instruction to change the address mode. FIG. 8 shows an example of an instruction for changing the address mode. here,
'OB''OC' is an instruction code. All the instructions shown here are 2-byte length instructions and are processed as NO-OPERATION when the register number indicated by R2 is zero, but when R2 is not zero, bit 0 of the general-purpose register specified by R2 is used. Is an address mode. That is, when the instruction in FIG. 8 is decoded by the decoder 103, the value of the bit 0 of the general-purpose register designated by R2 set on the signal line 24 is set in the latch 107. The output signal 28 suppresses the output data of the three-input address adder 7. The feature of the present invention relating to the address mode is that not only the output signal 28 of the address mode control latch 107 is used to control the 3-input address adder 7 but also the output of the arithmetic means 10. By reflecting the address mode on the output data of the arithmetic means 10 by the output signal 28 of the latch 107, it is possible to speed up the address conflict even immediately after the change of the address mode.
もし信号線28によるアドレスモードの制御を演算手段
10の出力に対して施されない場合には、先行命令の記憶
装置から読出したオペランドデータを演算手段10に入力
することができないため、3入力加算器7あるいは汎用
レジスタ2を経由せざるを得ず、1サイクルあるいは2
サイクルオーバヘッドが増えてしまう。If the control of the address mode by the signal line 28
If it is not applied to the output of 10, the operand data read from the storage device of the preceding instruction cannot be input to the arithmetic means 10, so it must go through the three-input adder 7 or the general-purpose register 2. 1 cycle or 2
The cycle overhead increases.
第9図は、本発明の拡張の例を示したものである。情
報処理装置において、3入力アドレス加算器7から出力
されるオペランドアドレスデータは非常に重要な信号で
あり、記憶装置に送られて参照アドレスとなるばかりで
なく、記憶装置に格納する命令においては格納アドレス
にもなるし、記憶装置がヒジー状態で3入力アドレス加
算器の出力データを受取れない場合には一時的に退避バ
ッファに保結することが必要であり、また、3入力アド
レス加算器の出力を汎用レジスタに格納する命令では、
該命令のパイプライン処理ステージ対応に該アドレスデ
ータを保持しておくことが必要であるなど、アドレスデ
ータの負荷は非常に大きい。これまでの第1図〜第8図
を用いた説明では、記憶装置の参照アドレスのみに着目
し、レジスタ8、論理回路309そして加算器10を新たに
追加することにより、コンフリクトの高速化を図る手段
について述べてきた。勿論、アドレスデータの負荷数が
どんなに多くとも、アドレスレジスタ11の入力である信
号線550を必要なところ全てに直接接続することによっ
て解決することができる訳であるが、実際問題として
は、論理的,物理的な分割や、信号伝搬遅延時間などの
制限から、アドレスデータを必要とする全ての論理に、
演算手段10と同様の論理が必要になると予想される。そ
こで、第8図では、アドレスコンフリクトの高速処理用
演算手段を2つ備えた情報処理装置の全体像を示した。
レジスタ508は3入力アドレス加算器7の出力を保持
し、記憶装置からの先行命令のオペランド読出しを持つ
ためのレジスタでレジスタ8に相当するものである。論
理回路509はやはり論理回路9に相当するもので、記憶
装置から読出したオペランドデータに対し、符号拡張,
反転,2倍の各種処理を施すことが可能な回路である。そ
して演算手段510は演算手段10に相当するもので、3入
力アドレス加算器7の出力データである不完全アドレス
を完全なアドレスとする加算器である。そしてアドレス
レジスタ511は、3入力アドレス加算器7と演算手段510
の出力のうちいずれかを選択してセットするレジスタで
ある。FIG. 9 shows an example of extension of the present invention. In the information processing apparatus, the operand address data output from the three-input address adder 7 is a very important signal, and is not only sent to the storage device to be used as a reference address but also stored in an instruction to be stored in the storage device. If the storage device is in a busy state and cannot receive the output data of the 3-input address adder, it must be temporarily stored in a save buffer. Is stored in a general-purpose register,
The load of address data is very large, for example, it is necessary to hold the address data corresponding to the pipeline processing stage of the instruction. In the description using FIGS. 1 to 8 up to now, only the reference address of the storage device is focused on, and the register 8, the logic circuit 309, and the adder 10 are newly added to speed up the conflict. I have described the means. Of course, no matter how many addresses are loaded, the problem can be solved by directly connecting the signal line 550, which is the input of the address register 11, to all necessary places. Due to limitations such as physical division and signal propagation delay time, all logics that require address data
It is expected that the same logic as the arithmetic means 10 will be required. Thus, FIG. 8 shows an overall image of an information processing apparatus provided with two operation means for high-speed processing of address conflict.
The register 508 holds the output of the three-input address adder 7 and has a function of reading the operand of the preceding instruction from the storage device, and corresponds to the register 8. The logic circuit 509 also corresponds to the logic circuit 9 and performs sign extension,
It is a circuit that can perform inversion and double processing. The calculating means 510 corresponds to the calculating means 10 and is an adder for setting an incomplete address which is output data of the three-input address adder 7 to a complete address. The address register 511 comprises a three-input address adder 7 and a calculating means 510.
This register is used to select and set any one of the outputs.
これらの各回路に対して、記憶装置からの読出しデー
タ線35や演算器16の出力データ36あるいは制御回路3か
らの各種制御信号を全て入力することにより、アドレス
レジスタ511にはアドレスレジスタ11と全く同じアドレ
ス値がセットされる。そしてその値を記憶装置内のデー
タ参照以外の目的に利用できる訳である。By inputting all of the read data line 35 from the storage device, the output data 36 of the arithmetic unit 16 and various control signals from the control circuit 3 to these circuits, the address register 511 is completely different from the address register 11. The same address value is set. Then, the value can be used for purposes other than the data reference in the storage device.
このように、アドレスコンフリクト解消用加算器およ
びその周辺論理を、アドレスデータを必要とする全ての
論理に追加することによって、アドレスコンフリクト時
の高速化を、アドレスデータを必要とする全ての論理に
対して実現することができる。この時、物量は少々増加
するものの、信号伝搬遅延時間を大きくすることがない
ため、コンフリクト時の高速処理がそのまま性能向上に
つながるといえる。In this way, by adding the address conflict resolution adder and its peripheral logic to all the logics requiring address data, the speed at the time of address conflict can be increased for all the logics requiring address data. Can be realized. At this time, although the physical quantity slightly increases, the signal propagation delay time is not increased, so that high-speed processing at the time of a conflict directly leads to an improvement in performance.
[発明の効果] 本発明によれば、先行するL命令、加減算命令とアド
レスコンフリクトを生じている場合でも後続命令のデコ
ード処理の高速化を図ることが可能であり、かつこの時
後続命令に対して何ら条件を付す必要がない。また、先
行する命令が半語オペランドを扱う命令の場合、あるい
は先行命令によって後続命令のインデクスレジスタ,ベ
ースレジスタを同時に変更した場合にも高速処理可能で
ある。[Effects of the Invention] According to the present invention, even when an address conflict has occurred with the preceding L instruction, addition / subtraction instruction, it is possible to speed up the decoding processing of the subsequent instruction. There is no need to attach any conditions. Also, high-speed processing can be performed when the preceding instruction is an instruction that handles a half-word operand, or when the index register and base register of the subsequent instruction are simultaneously changed by the preceding instruction.
第1図は本発明の一実施例の全体構造図、第2図は命令
処理の流れを示した図、第3図は本発明の高速処理の対
象となる命令列の一例を示した図、第4図は第1図にお
ける制御回路の詳細図、第5図は本発明の他の実施例を
示す図、第6図は半語オペランドと符号拡張方法を示し
た図、第7図は第6図における論理回路の内部構造を示
した図、第8図はアドレスモードを変更する命令の命令
形式を示した図、第9図は本発明の拡張の一例を示した
図である。 1……命令レジスタ、2……汎用レジスタ、3……制御
回路、7……3入力アドレス加算器、8,508……3入力
アドレス加算器の出力データを保持するレジスタ、9,50
9……記憶装置から読出したデータに対して、符号拡
張,反映,2倍の各種処理を行う論理回路、11……アドレ
スレジスタ、12……記憶装置、13……データレジスタ、
14……アライナ、15……オペランドバッファレジスタ、
16……演算器、103,104……デコーダ、105,106……4ビ
ット比較器。FIG. 1 is an overall structural diagram of one embodiment of the present invention, FIG. 2 is a diagram showing a flow of instruction processing, FIG. 3 is a diagram showing an example of an instruction sequence to be subjected to high-speed processing of the present invention, FIG. 4 is a detailed view of the control circuit in FIG. 1, FIG. 5 is a view showing another embodiment of the present invention, FIG. 6 is a view showing a halfword operand and a sign extension method, and FIG. FIG. 6 is a diagram showing an internal structure of the logic circuit in FIG. 6, FIG. 8 is a diagram showing an instruction format of an instruction for changing an address mode, and FIG. 9 is a diagram showing an example of an extension of the present invention. 1 ... instruction register, 2 ... general-purpose register, 3 ... control circuit, 7 ... 3 input address adder, 8,508 ... register holding output data of 3 input address adder, 9,50
9: a logic circuit for performing sign extension, reflection, and double processing on data read from the storage device, 11: an address register, 12: a storage device, 13: a data register,
14 ... aligner, 15 ... operand buffer register,
16 arithmetic unit, 103,104 decoder, 105,106 4-bit comparator.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 釜田 栄樹 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 井上 潔 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (56)参考文献 特開 昭61−109145(JP,A) 特開 昭61−133440(JP,A) 特開 昭61−267135(JP,A) ──────────────────────────────────────────────────続 き Continuing on the front page (72) Inventor Eiki Kamata 1-280 Higashi Koikebo, Kokubunji-shi, Tokyo Inside the Central Research Laboratory of Hitachi, Ltd. (72) Inventor Kiyoshi Inoue 1-280 Higashi Koikekubo, Kokubunji-shi, Tokyo Hitachi, Ltd. (56) References JP-A-61-109145 (JP, A) JP-A-61-133440 (JP, A) JP-A-61-267135 (JP, A)
Claims (2)
指定された汎用レジスタの内容と、ベースレジスタとし
て指定された汎用レジスタの内容と、命令で指定された
ディスプレースメント値とを加算してオペランドアドレ
スを計算する3入力アドレス加算器を有する情報処理装
置であって、先行する命令が記憶装置から読出したオペ
ランドデータを汎用レジスタに格納する命令であること
を認識して該先行命令が変更する汎用レジスタ番号と後
続命令がオペランドアドレスの生成に使用するインデッ
クスレジスタ番号あるいはベースレジスタ番号とが一致
しているか否かを検出する手段を有し、該検出手段が番
号の一致を検出しない場合は、後続命令によって指定さ
れた汎用レジスタの前記3入力アドレス加算器への読出
しデータをそのまま設定して前記3入力アドレス加算器
にて加算を行わしめて後続命令のオペランドアドレスを
求め、前記検出手段が番号の一致を検出した場合は、番
号が一致している汎用レジスタの前記3入力アドレス加
算器への読出しデータをゼロに設定して該3入力アドレ
ス加算器にて先行命令によって変更される汎用レジスタ
以外のデータの加算を行わしめ、該3入力アドレス加算
器の出力データを保持する待合わせレジスタの出力と前
記記憶装置から読出した先行命令のオペランドデータを
入力として2入力加算器にて加算を行わしめて後続命令
のオペランドアドレスを求めることを特徴とする情報処
理装置。An operand address is calculated by adding the contents of a general-purpose register specified as an index register by an instruction, the contents of a general-purpose register specified as a base register, and a displacement value specified by an instruction. An information processing apparatus having an input address adder, comprising: a general register number changed by a preceding instruction by recognizing that a preceding instruction is an instruction for storing operand data read from a storage device in a general purpose register; Has a means for detecting whether or not the index register number or the base register number used for generating the operand address matches, and if the detecting means does not detect the matching of the numbers, it is specified by the subsequent instruction. Read data from the general-purpose register to the 3-input address adder as is When the set address is set and the 3-input address adder is used to obtain the operand address of the subsequent instruction, and the detecting means detects a match of the numbers, the 3-input address addition of the general-purpose registers having the same numbers is performed. The read data to the read unit is set to zero, the addition of data other than the general-purpose register changed by the preceding instruction is performed by the 3-input address adder, and a wait for holding the output data of the 3-input address adder An information processing apparatus wherein an output of a register and operand data of a preceding instruction read from the storage device are input, and addition is performed by a two-input adder to obtain an operand address of a subsequent instruction.
指定された汎用レジスタの内容と、ベースレジスタとし
て指定された汎用レジスタの内容と、命令で指定された
ディスプレースメント値とを加算してオペランドアドレ
スを計算する3入力アドレス加算器を有する情報処理装
置であって、先行する命令が記憶装置から読出したオペ
ランドデータに演算を施して結果を汎用レジスタに格納
する命令であることを認識して該先行命令が変更する汎
用レジスタ番号と後続命令がオペランドアドレスの生成
に使用するインデックスレジスタ番号あるいはベースレ
ジスタ番号とが一致しているか否かを検出する手段を有
し、該検出手段が番号の一致を検出しない場合は、後続
命令によって指定された汎用レジスタの前記3入力アド
レス加算器への読出しデータをそのまま設定して前記3
入力アドレス加算器にて加算を行わしめて後続命令のオ
ペランドアドレスを求め、前記検出手段が番号の一致を
検出した場合は、先行命令による汎用レジスタの変更が
終了する前に変更前のデータを利用して前記3入力アド
レス加算器にてそのまま実行させ、該3入力アドレス加
算器の出力を保持する待合わせレジスタの出力と記憶装
置から読出した先行命令のオペランドデータを入力とし
て2入力演算器にて演算を行わしめて後続命令のオペラ
ンドアドレスを求めることを特徴とする情報処理装置。2. An operand address is calculated by adding the contents of a general-purpose register specified as an index register by an instruction, the contents of a general-purpose register specified as a base register, and a displacement value specified by an instruction. An information processing apparatus having an input address adder, which recognizes that a preceding instruction is an instruction for performing an operation on operand data read from a storage device and storing the result in a general register, and the preceding instruction changes. When the general-purpose register number and the subsequent instruction have a means for detecting whether or not the index register number or the base register number used for generating the operand address match, and when the detecting means does not detect the number match, Reading the general-purpose register specified by the subsequent instruction into the 3-input address adder The set as the data 3
When the operand address of the subsequent instruction is obtained by performing addition with the input address adder and the detection means detects a number match, the data before the change is used before the change of the general-purpose register by the preceding instruction is completed. The input is executed by the three-input address adder as it is, and the output of the waiting register holding the output of the three-input address adder and the operand data of the preceding instruction read from the storage device are input and the two-input arithmetic unit is operated. And an operand address of a subsequent instruction is obtained.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63000351A JP2667849B2 (en) | 1988-01-06 | 1988-01-06 | Information processing device |
| US07/292,346 US5075849A (en) | 1988-01-06 | 1988-12-30 | Information processor providing enhanced handling of address-conflicting instructions during pipeline processing |
| DE3900246A DE3900246A1 (en) | 1988-01-06 | 1989-01-05 | INFORMATION PROCESSING DEVICE |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63000351A JP2667849B2 (en) | 1988-01-06 | 1988-01-06 | Information processing device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH01177127A JPH01177127A (en) | 1989-07-13 |
| JP2667849B2 true JP2667849B2 (en) | 1997-10-27 |
Family
ID=11471415
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63000351A Expired - Fee Related JP2667849B2 (en) | 1988-01-06 | 1988-01-06 | Information processing device |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5075849A (en) |
| JP (1) | JP2667849B2 (en) |
| DE (1) | DE3900246A1 (en) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2668438B2 (en) * | 1989-04-21 | 1997-10-27 | 三菱電機株式会社 | Data retrieval device |
| JP2542120B2 (en) * | 1989-11-15 | 1996-10-09 | 松下電器産業株式会社 | Information processing device |
| US5276822A (en) * | 1989-11-15 | 1994-01-04 | Matsushita Electric Industrial Co., Ltd. | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction |
| JPH04275628A (en) * | 1991-03-01 | 1992-10-01 | Mitsubishi Electric Corp | Arithmetic processor |
| US5522052A (en) * | 1991-07-04 | 1996-05-28 | Matsushita Electric Industrial Co. Ltd. | Pipeline processor for processing instructions having a data dependence relationship |
| JP2761688B2 (en) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | Data processing device |
| US6735685B1 (en) * | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| JP3644959B2 (en) * | 1992-09-29 | 2005-05-11 | セイコーエプソン株式会社 | Microprocessor system |
| JP3499135B2 (en) * | 1998-06-29 | 2004-02-23 | 富士通株式会社 | Information processing equipment |
| US6453424B1 (en) * | 1999-03-31 | 2002-09-17 | International Business Machines Corporation | System and method for temporally controlling instruction execution |
| US7107438B2 (en) | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
| US7185182B2 (en) * | 2003-02-04 | 2007-02-27 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early instruction results |
| US7100024B2 (en) | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
| US20050216713A1 (en) * | 2004-03-25 | 2005-09-29 | International Business Machines Corporation | Instruction text controlled selectively stated branches for prediction via a branch target buffer |
| US7694286B2 (en) * | 2005-02-10 | 2010-04-06 | International Business Machines Corporation | Apparatus and method for detecting base-register usage conflicts in computer code |
| US8966230B2 (en) * | 2009-09-30 | 2015-02-24 | Intel Corporation | Dynamic selection of execution stage |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CS164932B2 (en) * | 1971-09-07 | 1975-11-28 | ||
| JPS5928793B2 (en) * | 1979-09-06 | 1984-07-16 | ロス・オペレ−テイング・バルブ・カンパニ− | double safety valve |
| US4445177A (en) * | 1981-05-22 | 1984-04-24 | Data General Corporation | Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions |
| JPS59231652A (en) * | 1983-06-13 | 1984-12-26 | Hitachi Ltd | Memory access overlap detection method |
| JPS61109145A (en) * | 1984-11-01 | 1986-05-27 | Fujitsu Ltd | Calculation system for memory address |
| JPS61133440A (en) * | 1984-11-30 | 1986-06-20 | Nec Corp | Data processing unit |
| JPS61267135A (en) * | 1985-05-21 | 1986-11-26 | Nec Corp | Data processor |
| US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
| JPS6347834A (en) * | 1986-08-15 | 1988-02-29 | Hitachi Ltd | Preceding control system |
-
1988
- 1988-01-06 JP JP63000351A patent/JP2667849B2/en not_active Expired - Fee Related
- 1988-12-30 US US07/292,346 patent/US5075849A/en not_active Expired - Fee Related
-
1989
- 1989-01-05 DE DE3900246A patent/DE3900246A1/en active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| US5075849A (en) | 1991-12-24 |
| DE3900246A1 (en) | 1989-07-20 |
| DE3900246C2 (en) | 1992-01-23 |
| JPH01177127A (en) | 1989-07-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2667849B2 (en) | Information processing device | |
| JP2559399B2 (en) | Information processing device | |
| JP2965206B2 (en) | RISC-type computer for processing unaligned references and method of processing | |
| JP2000222206A (en) | Data processing device | |
| JPH03218523A (en) | Data processor | |
| JPS63273134A (en) | Method and apparatus for altering microinstruction using microinstruction pipeline | |
| JPH0831032B2 (en) | Data processing device | |
| US6615339B1 (en) | VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively | |
| US4541047A (en) | Pipelined data processing system | |
| JPH0348536B2 (en) | ||
| JP3578883B2 (en) | Data processing device | |
| US4631672A (en) | Arithmetic control apparatus for a pipeline processing system | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| JPS6112288B2 (en) | ||
| US5867696A (en) | Saving a program counter value as the return address in an arbitrary general purpose register | |
| JPS6212529B2 (en) | ||
| US5276822A (en) | System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction | |
| JP2520882B2 (en) | Data processing device and data processing method | |
| JPS623336A (en) | Conditional branch system | |
| US4991130A (en) | Normalization control system for floating point arithmetic operation | |
| JPS63245525A (en) | Microprogram processor | |
| US5784634A (en) | Pipelined CPU with instruction fetch, execution and write back stages | |
| JP2826927B2 (en) | Arithmetic processing device and processing method | |
| JP3658879B2 (en) | Pipeline calculator | |
| JPH0991139A (en) | Information processing device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |