JPS6112289B2 - - Google Patents

Info

Publication number
JPS6112289B2
JPS6112289B2 JP54011506A JP1150679A JPS6112289B2 JP S6112289 B2 JPS6112289 B2 JP S6112289B2 JP 54011506 A JP54011506 A JP 54011506A JP 1150679 A JP1150679 A JP 1150679A JP S6112289 B2 JPS6112289 B2 JP S6112289B2
Authority
JP
Japan
Prior art keywords
instruction
register
general
queue
purpose register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
JP54011506A
Other languages
Japanese (ja)
Other versions
JPS54127649A (en
Inventor
Suteiibun Riputei Jon
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS54127649A publication Critical patent/JPS54127649A/en
Publication of JPS6112289B2 publication Critical patent/JPS6112289B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

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 The present invention relates to predecoding a plurality of system instructions, and more particularly, to predecoding system instructions using general purpose registers that have not yet been loaded by decoded and unexecuted instructions. This relates to preventing the formation of instruction addresses.

本発明は高性能のデータ処理システムへ適用す
ることができ、たとえばIBM社から発行された刊
行物「IBM System/370、Principles of
Operation」(Form No.GA22−7000)によつて
定義される如きIBMシステム/370データ処理シ
ステムで実施するのに有用である。これらのデー
タ処理システムに設けられた16個の汎用レジスタ
は命令によつてアドレス可能であり、データの一
時的記憶に使用されるか又はアドレス計算のため
に利用される。後者の場合、選択された汎用レジ
スタは、実行さるべき命令中のアドレス情報へ加
算されるような基底アドレス又はアドレス指標値
を保持する。
The present invention can be applied to high-performance data processing systems, for example, in the publication "IBM System/370, Principles of
GA22-7000). Sixteen general purpose registers in these data processing systems are addressable by instructions and are used for temporary storage of data or for address calculations. In the latter case, the selected general purpose register holds a base address or address index value that is added to the address information in the instruction to be executed.

米国特許第4200927号はIBMシステム/370の仕
様に従つたデータ処理システムを記述しており、
更に詳細には実行ユニツトへ逐次に転送さるべき
プリデコードされた諸命令をスタツク即ちキユー
することができる命令前処理ユニツトを開示す
る。この命令キユーで実行を待機している命令は
新しいデータを受取るために汎用レジスタを指定
することがあるので、後続命令が主記憶アドレス
を形成するためにこれと同じ汎用レジスタを使用
する必要がある場合には、命令レジスタにおける
該後続命令のデコードを禁止しなければならな
い。
U.S. Patent No. 4,200,927 describes a data processing system according to the IBM System/370 specifications,
More particularly, an instruction preprocessing unit is disclosed that is capable of stacking or queuing predecoded instructions for sequential transfer to an execution unit. Instructions waiting to be executed on this instruction queue may specify a general-purpose register to receive new data, so subsequent instructions must use this same general-purpose register to form main memory addresses. If so, decoding of the subsequent instruction in the instruction register must be inhibited.

IBMシステム/370には、汎用レジスタの内容
を変更するような幾つかの命令がある。これらの
命令はデータをロードさるべき1個の汎用レジス
タを「R1フイールド」で指定する。この汎用レ
ジスタR1へロードさるべきデータは、他の汎用
レジスタ、或る主記憶ロケーシヨン又は演算ユニ
ツトの出力から与えられる。汎用レジスタR1を
指定する或る種の命令は、汎用レジスタR1+1
もまたロードさるべきことを暗黙のうちに指定す
ることがある。更に或るロード命令は、複数の主
記憶ロケーシヨンをアクセスして、該ロケーシヨ
ンの内容を、汎用レジスタR1に始まり且つ汎用
レジスタR3に至る1組の汎用レジスタへロード
することを指定する。この特定命令は多重ロード
(LOAD MULTIPLE)命令と呼ばれる。
The IBM System/370 has several instructions that modify the contents of general purpose registers. These instructions specify one general-purpose register into which data should be loaded using the "R1 field." The data to be loaded into this general purpose register R1 comes from another general purpose register, some main memory location, or the output of an arithmetic unit. Certain instructions that specify general-purpose register R1 specify general-purpose register R1+1
may also implicitly specify that it should also be loaded. Further, a load instruction specifies accessing multiple main memory locations and loading the contents of the locations into a set of general purpose registers starting with general purpose register R1 and ending with general purpose register R3. This specific instruction is called a LOAD MULTIPLE instruction.

前記米国特許に開示されたものに類似する高性
能データ処理システムの代表はIBMシステム/
370モデル168であり、この計算機の命令前処理ユ
ニツトは複数の命令をプリフエツチし、プリデコ
ードし、スタツク又はキユーし、次いでこれらの
命令を実行ユニツトへ逐次に供給するように動作
する。この命令前処理ユニツトは、IBM社から発
行された刊行物「System/370 Model 168、
Theory of Operations、Diagrams Manual
(Vol.2)、I−Unit」(Form No.SY22−6932−
3)に記述されている。
Representative high-performance data processing systems similar to those disclosed in the above-mentioned U.S. patents include IBM Systems/
370 model 168, the instruction preprocessing unit of this computer operates to prefetch, predecode, stack or queue a plurality of instructions, and then sequentially provide these instructions to the execution unit. This instruction preprocessing unit is described in the publication “System/370 Model 168,” published by IBM.
Theory of Operations, Diagrams Manual
(Vol.2), I-Unit” (Form No.SY22-6932-
3).

この先行技術の計算機では、汎用レジスタの内
容を変更するような命令がデコードされ且つ命令
キューへ記入されるときはいつでも、実行ユニツ
トへ供給さるべき命令実行情報とともに、汎用レ
ジスタR1の識別子が命令キユーレジスタへ記入
される。後続命令のアドレス計算のためにこの汎
用レジスタR1が必要となるような状況では、こ
の情報を使用して、後続命令のデコードを有効に
阻止することができる。しかしながら、多重ロー
ド命令は汎用レジスタR1からR3に至る1組の汎
用レジスタを指定するから、前記のR1に関する
情報は、デコード中の後続命令が汎用レジスタ
R1より大きな識別子を有する汎用レジスタを必
要とする如き状況を検出することができない。従
つて、この先行技術の計算機では、多重ロード命
令がデコードされ且つ命令キユーへ記入されると
きはいつでも、この多重ロード命令が実行ユニツ
トへ供給されてそこで完全に実行されるまで、そ
れ以後の命令デコードを禁止することが行われ
た。
In this prior art computer, whenever an instruction that modifies the contents of a general-purpose register is decoded and placed in the instruction queue, the identifier of general-purpose register R1 is placed in the instruction queue register along with the instruction execution information to be provided to the execution unit. will be filled in. In situations where this general purpose register R1 is needed for the address calculation of a subsequent instruction, this information can be used to effectively prevent decoding of the subsequent instruction. However, since the multiple load instruction specifies a set of general-purpose registers from general-purpose registers R1 to R3, the information regarding R1 mentioned above means that the subsequent instruction being decoded will
It is not possible to detect situations such as requiring a general purpose register with an identifier larger than R1. Thus, in this prior art computer, whenever a load multiple instruction is decoded and placed into the instruction queue, subsequent instructions are It was done to prohibit decoding.

本発明の要約 IBMシステム/370モデル168の使用中、多重
ロード命令は予期された以上の頻度で使用される
ことが解つた。多重ロード命令がデコードされる
度に命令のプリデコードが停止されねばならない
とすれば、システムの効率は著しく低下すること
が容易に解る。
SUMMARY OF THE INVENTION During use of the IBM System/370 Model 168, it has been discovered that multiple load instructions are used more frequently than expected. It is easy to see that if instruction predecoding had to be stopped every time a multiple load instruction is decoded, the efficiency of the system would be significantly reduced.

本発明の主たる目的は、複数の汎用レジスタを
変更する多重ロード命令のデコード及びキユーイ
ングに続いて、各命令のプリデコード及びキユー
イングを許すことである。
A primary objective of the present invention is to allow pre-decoding and queuing of each instruction following decoding and queuing of multiple load instructions that modify multiple general purpose registers.

本発明の他の目的は、1個の汎用レジスタ、1
対の汎用レジスタ、或る領域の2個以上の汎用レ
ジスタを指定するロード命令に適合するよう十分
に汎用化されたアドレス形成インターロツク論理
を与えることである。
Another object of the invention is to provide one general purpose register, one
The object is to provide address forming interlock logic that is sufficiently generalized to accommodate paired general purpose registers, load instructions that specify more than one general purpose register in a region.

上記の目的は、命令キユーへ入れられる各々の
プリデコードされた命令へ2つの汎用レジスタ指
定フイールドを与えることによつて達成される。
命令キユー・レジスタ位置の各々は関連した比較
回路を有する。この比較回路は、基底アドレス情
報又はアドレス指標情報として利用される、デコ
ードされつつある命令の汎用レジスタ指定フイー
ルドと上記2つの汎用レジスタ指定フイールドと
を比較する。比較回路は十分に汎用化されてお
り、1個又は1対又は或る領域の汎用レジスタ群
を指定する3種のロード命令へ十分に適合させる
ため、命令キユーへ情報を入れる前に比較論理が
与えられる。更に多重ロード命令は、終端汎用レ
ジスタ(R3)より大きい値を有する開始汎用レ
ジスタ(R1)を指定してよい。更に比較論理
は、インターロツクが起る時に正しいインターロ
ツクを与えるよう適合されている。
The above objectives are accomplished by providing two general purpose register specification fields to each predecoded instruction entered into the instruction queue.
Each instruction queue register location has an associated compare circuit. This comparison circuit compares the general register designation field of the instruction being decoded, which is used as base address information or address index information, with the two general register designation fields. The comparison circuit is sufficiently generalized to accommodate three types of load instructions that specify one, a pair, or an area of general-purpose registers, so that the comparison logic must be used before placing the information in the instruction queue. Given. Additionally, the multiple load instruction may specify a starting general register (R1) having a larger value than an ending general register (R3). Additionally, the comparison logic is adapted to provide the correct interlock when it occurs.

本発明の開示 第1図は高性能データ処理システムの主たる機
能部分を示す。本発明は命令前処理機能ユニツト
(IPPF)20中に存在する。IPPF20は、高速
バツフア即ちキヤツシユを含むプロセツサ記憶制
御機能ユニツト(PSCF)21と通信し、プロセ
ツサ記憶機構22から一連の命令を取出して実行
ユニツト即ちE機能ユニツト23へデータ・オペ
ランドの転送を開始する。更にIPPF20はE機
能ユニツト23と通信して、1時に1個の命令を
順次にE機能ユニツト23へ転送する。E機能ユ
ニツト23における命令実行の結果は、IPPF2
0へ戻されることにより一連の命令の実行を制御
する。本発明を理解するためにはあまり重要では
ないデータ処理システムの残りの部分はチヤンネ
ル24、制御卓25、「保守及び再試行」制御ユ
ニツト26を含む。
DISCLOSURE OF THE INVENTION FIG. 1 shows the main functional parts of a high performance data processing system. The invention resides in the instruction preprocessing function unit (IPPF) 20. IPPF 20 communicates with a processor storage control function unit (PSCF) 21, which includes a high-speed buffer or cache, to retrieve a sequence of instructions from processor storage 22 and initiate the transfer of data operands to an execution unit or E function unit 23. Furthermore, the IPPF 20 communicates with the E function unit 23 and sequentially transfers one instruction at a time to the E function unit 23. The result of the instruction execution in the E function unit 23 is the IPPF2
By returning it to 0, the execution of a series of instructions is controlled. The remaining portions of the data processing system which are not critical to an understanding of the invention include the channel 24, the control console 25, and the "maintenance and retry" control unit 26.

第2図は第1図のIPPF20における4つの主
たる機能領域を示す。これら領域は3命令ストリ
ーム・プリフエツチ論理部分27、命令プリデコ
ード部分28(これらの双方は前記米国特許中に
詳細に説明されている)、アドレス形成論理部分
29、本発明の主題であるインターロツク機構部
分30を含む。IPPF20は4個のプリデコード
された命令を記憶(即ちキユーイング)して、順
次に1時に1個宛E機能ユニツト23へ与える能
力を有する。IPPF20はフエツチされるべきデ
ータ・オペランド、使用されるべき汎用レジス
タ、マイクロプログラム制御記憶機構の開始アド
レス情報、後に詳細に説明する各種の制御信号に
関する情報等を含む。デコードされるべき大多数
の命令はIPPF20中でアドレス演算を行う必要
があり、従つてアドレス形成論理部分29が設け
られている。デコードされた命令情報を4位置キ
ユーへ入れる前に、アドレス形成及び命令プリデ
コードに使用する正しいデータが確実に得られる
ようにするため、インターロツク機構部分30が
必要である。
FIG. 2 shows four main functional areas in the IPPF 20 of FIG. These areas include three instruction stream prefetch logic sections 27, an instruction predecode section 28 (both of which are described in detail in the aforementioned US patent), an address formation logic section 29, and an interlock mechanism which is the subject of the present invention. Includes portion 30. IPPF 20 has the ability to store (ie, queue) four predecoded instructions and sequentially provide them to destination E functional unit 23, one at a time. The IPPF 20 contains information regarding the data operands to be fetched, the general purpose registers to be used, the starting address information for microprogram control storage, and various control signals to be described in detail below. The majority of instructions to be decoded require address operations to be performed in the IPPF 20, and therefore an address formation logic section 29 is provided. Interlock mechanism section 30 is required to ensure that the correct data is available for use in address formation and instruction pre-decoding before placing decoded instruction information into the four-position queue.

第3図において、命令バツフア・レジスタ3
1、32,33が示される。1つの命令バツフ
ア・レジスタが選択された時、それは命令フエツ
チ要求信号がPSCF21へ転送される度に64ビツ
トの命令情報を受取る。32個の8ビツト・バイト
命令情報がプリフエツチされ、命令バツフア・レ
ジスタ31,32,33の各々に記憶されること
ができる。
In FIG. 3, instruction buffer register 3
1, 32, and 33 are shown. When one instruction buffer register is selected, it receives 64 bits of instruction information each time an instruction fetch request signal is transferred to PSCF 21. Thirty-two 8-bit bytes of instruction information can be prefetched and stored in each of instruction buffer registers 31, 32, and 33.

開示されたシステムにおいて、命令はIPPF2
0で1時に1個宛デコードされる。デコードされ
るべき特定の命令は、適当な順序でIレジスタ3
5へ転送される。Iレジスタ35は32ビツトの命
令情報を含む。命令の実行中、複数個の命令の適
当な1個を現在使用されている命令バツフア・レ
ジスタの1つからIレジスタ35へ転送してデコ
ードするため、36で示される各種のゲート群
が、命令カウンタ・アドレス情報に従つて付勢さ
れる。ゲート群36は、IBMシステム/360及び
システム/370の命令が可変長の長さ(2個、4
個、6個の8ビツト・バイト)を取ることができ
るので、それに適合したものでなければならな
い。デコードされるべき各命令について、動作コ
ードの8ビツトがIレジスタ35のビツト位置0
〜7へ確実に置かれるようにするため、各種のゲ
ートが組合せて能動化される。Iレジスタ35で
デコードされている特定命令のフオーマツトに従
つて、該レジスタのビツト8〜15はマスク・ビ
ツトであるか、可変長フイールド・オペランドの
長さに関するコード化情報であつてよく、又は汎
用レジスタのアドレスであつてよい。ビツト12
〜15及び16〜19は、IBMシステム/360及
びシステム/370におけるアドレス形成法に従つ
て、16個の汎用レジスタの中の特定のものを指定
してよい。4バイト命令中のビツト20〜31は
アドレス変位フイールドであり、これは記憶機構
のデータ・オペランドへアクセスする時アドレス
情報を形成するために使用される。
In the disclosed system, the command is IPPF2
If it is 0, it will be decoded to one address at 1 o'clock. The specific instructions to be decoded are stored in the I register 3 in the appropriate order.
Transferred to 5. I register 35 contains 32 bits of instruction information. During the execution of an instruction, various gates indicated at 36 are used to transfer a suitable one of a plurality of instructions from one of the instruction buffer registers currently in use to the I register 35 for decoding. Energized according to counter address information. The gate group 36 has instructions for IBM System/360 and System/370 of variable length (2, 4
(6 8-bit bytes), so it must be compatible with that. For each instruction to be decoded, 8 bits of the operational code are placed in bit position 0 of I register 35.
To ensure placement at ~7, various gates are activated in combination. Depending on the format of the particular instruction being decoded in the I register 35, bits 8-15 of that register may be mask bits, encoded information regarding the length of a variable length field operand, or may be a general purpose bit. May be the address of a register. Bit 12
-15 and 16-19 may specify a particular one of the 16 general purpose registers according to address formation methods in the IBM System/360 and System/370. Bits 20-31 in the 4-byte instruction are address displacement fields, which are used to form address information when accessing data operands in storage.

IPPF20の命令デコード機構はハードウエア
解読器37、アレイ解読器38、制御記憶アドレ
ス・レジスタ(CSAR)解読器39を含む。Iレ
ジスタ35における各命令のデコードは、システ
ム内で2つのクロツク・サイクルを必要とする。
最初のクロツク・サイクルでは、デコードされて
いる命令に関する或る情報ができるだけ早く利用
可能にされねばならない。この情報はハードウエ
ア解読器37を介して与えられる。他の情報が必
要であるかどうかは命令解読の第2サイクルまで
不明である。この情報はアレイ解読器38から得
られる。そこでは動作コード・ビツト0〜7がラ
ンダム・アクセス・アレイをアドレスするために
使用され、複数本の制御信号線40及び41に出
力を与える。
The instruction decoding mechanism of IPPF 20 includes a hardware decoder 37, an array decoder 38, and a control storage address register (CSAR) decoder 39. Decoding each instruction in I register 35 requires two clock cycles in the system.
On the first clock cycle, some information about the instruction being decoded must be made available as soon as possible. This information is provided via a hardware decoder 37. It is not known whether other information is needed until the second cycle of instruction decoding. This information is obtained from array decoder 38. There, operational code bits 0-7 are used to address the random access array and provide outputs on a plurality of control signal lines 40 and 41.

これまで説明した命令解読の結果は、命令キユ
ー42の4個のレジスタの1個へ命令実行制御情
報として記憶される。実行制御情報の1部は線4
3から受取られるが、それは実行ユニツトによつ
て遂行される基本的機能を示す動作コードの8ビ
ツトである。多くの既知のマイクロプログラム制
御システムにおいて、一連のマイクロ命令の最初
のマイクロ命令をアドレスして命令実行を行うた
め、8個の動作コード・ビツトが使用される。マ
イクロプログラム制御システムの効率を高めるた
め、制御記憶機構へアクセスする時、第1サイク
ルで利用される他の2進ビツトが線44上に与え
られる。線44は、デコードされている命令のビ
ツト位置8〜15にあるマスク情報、及びアレイ
解読器38から得られる線41上の制御信号に応
答するCSAR解読器39から延長される。他の追
加的な実行制御情報は、アレイ解読器38からの
線40上で得られる。線45はアドレス形成論理
部分29(第2図)から得られるオペランド・ア
ドレス情報を表わす。命令キユー42の4個のレ
ジスタにある実行制御情報は、それぞれの実行の
ためにE機能ユニツト23へ転送される。
The result of the instruction decoding described above is stored in one of the four registers of the instruction queue 42 as instruction execution control information. Part of the execution control information is line 4
3, which are 8 bits of operational code indicating the basic functions to be performed by the execution unit. In many known microprogram control systems, eight operational code bits are used to address the first microinstruction in a series of microinstructions for instruction execution. To increase the efficiency of the microprogram control system, another binary bit is provided on line 44 which is utilized in the first cycle when accessing control storage. Line 44 extends from CSAR decoder 39 which is responsive to mask information in bit positions 8-15 of the instruction being decoded and control signals on line 41 obtained from array decoder 38. Other additional execution control information is obtained on line 40 from array decoder 38. Line 45 represents operand address information obtained from address formation logic 29 (FIG. 2). Execution control information in the four registers of instruction queue 42 is transferred to E functional unit 23 for respective execution.

特定の命令シーケンスの命令A,B,Cを命令
バツフア・レジスタ31〜33の特定の1個へプ
リフエツチすることは、1個の命令をIレジスタ
35へ与えること、及び実行制御情報を命令キユ
ー42中の4個のレジスタの空の1個へ与えるこ
とと並列に起る。命令キュー42中の4個のレジ
スタの1個からE機能ユニツト23へ順次に次の
命令実行制御情報をゲートして命令を実行させる
ため、命令実行の完了を示す信号がE機能ユニツ
トから与えられる。命令キュー42で空レジスタ
が使用可能である限り、命令のデコードと命令
キュー42へ実行制御情報を入れることとは継続
して生じる。
Prefetching instructions A, B, and C of a specific instruction sequence into a specific one of the instruction buffer registers 31 to 33 involves providing one instruction to the I register 35 and sending execution control information to the instruction queue 42. This occurs in parallel with filling an empty one of the four registers in the register. In order to sequentially gate the next instruction execution control information from one of the four registers in the instruction queue 42 to the E functional unit 23 and execute the instruction, a signal indicating completion of instruction execution is given from the E functional unit. . As long as empty registers are available in instruction queue 42, decoding of instructions and placing execution control information into instruction queue 42 will continue to occur.

命令キュー42中の4個のレジスタの全てが満
たされたために命令解読が中断される外に、広く
インターロツクとして分類される他のマシン条件
が命令解読を中断する。命令解読プロセスの1部
として、IBMシステム/360及びシステム/370で
行われるように命令に含まれるアドレス・ビツト
と、命令によつてアドレス可能な汎用レジスタの
データとを組合せて、記憶機構アドレスが形成さ
れる。もしも命令キュー42に含まれる命令が未
だ実行されておらず、この命令が現在Iレジスタ
35に含まれる命令のアドレス形成に使用される
汎用レジスタへ情報をロードすべきものである場
合、命令解読を禁止又は中断するインターロツク
機構が能動化されねばならない。この場合、Iレ
ジスタ35における命令解読は、未だ実行されて
いない命令から情報が与えられるまで中断されね
ばならない。
In addition to suspending instruction decoding because all four registers in instruction queue 42 are filled, other machine conditions, broadly classified as interlocks, suspend instruction decoding. As part of the instruction decoding process, the storage address is determined by combining the address bits contained in the instruction with data in general purpose registers addressable by the instruction, as is done on the IBM System/360 and System/370. It is formed. If the instruction contained in the instruction queue 42 has not yet been executed and this instruction is to load information into a general-purpose register used to form the address of the instruction currently contained in the I register 35, instruction decoding is prohibited. Otherwise, an interrupting interlock mechanism must be activated. In this case, instruction decoding in the I register 35 must be suspended until information is provided from the yet-to-be-executed instruction.

IBMシステム/360及びシステム/370では、命
令によつてアドレス可能な汎用レジスタを指定す
る。これら汎用レジスタは通常E機能ユニツト2
3中に物理的に設けられている。更に、アドレス
演算を高速化するため、第2群の16個の汎用レジ
スタがIPPF20中に含まれている。これらは第
3図の46で示される。汎用レジスタ群46へ情
報を入れる通常の通路はC−REGとレーベルを
付された作業レジスタを介して行われ、情報は線
47から汎用レジスタ群46へ入れられる。線4
8及び49はIレジスタ35から汎用レジスタ・
アドレス情報を受取る。汎用レジスタ群46の出
力は、Iレジスタ35から線53を介して送られ
る変位アドレス・ビツト20〜31と共にアドレ
ス加算器52へ印加される。
The IBM System/360 and System/370 specify general purpose registers that are addressable by an instruction. These general purpose registers are usually E functional unit 2.
Physically located in 3. Furthermore, a second group of 16 general-purpose registers is included in the IPPF 20 to speed up address calculations. These are indicated at 46 in FIG. The normal path for entering information into general purpose register group 46 is through a working register labeled C-REG, with information being entered into general purpose register group 46 from line 47. line 4
8 and 49 are general-purpose registers from I register 35.
Receive address information. The output of general purpose register group 46 is applied to address adder 52 along with displacement address bits 20-31 sent via lines 53 from I register 35.

第4図にはIレジスタ35、アレイ解読器3
8、命令キュー42(1部のみ)が示される。こ
れらの全ては第3図に示されている。前述した如
く、命令解読過程の1部として、動作コード・ビ
ツト0〜7がIレジスタ35からアレイ解読器3
8へ与えられ、制御信号が発生される。2種の制
御信号が線54及び55上に生じ、これら制御信
号は汎用レジスタのいずれへ記憶がなされるべき
かを指示する。
FIG. 4 shows an I register 35, an array decoder 3
8. Instruction queue 42 (only one copy) is shown. All of these are shown in FIG. As previously mentioned, as part of the instruction decoding process, operational code bits 0-7 are transferred from the I register 35 to the array decoder 3.
8 to generate a control signal. Two control signals are generated on lines 54 and 55 which indicate which of the general purpose registers a store is to be made.

第4図のIレジスタ35には、多重ロード
(LM)命令のフオーマツトが示される。汎用レ
ジスタ群56は、フイールドR1によつて指定さ
れたレジスタから始まつて、フイールドR3によ
つて指定されたレジスタへ順次にロードされねば
ならない。レジスタR1へロードされる第1オペ
ランドの主記憶アドレスは、変位アドレス・ビツ
ト(D2)を利用する。D2ビツトは、フイールド
B2で指定された汎用レジスタ(基底レジスタ)
に含まれるアドレス・ビツトへ加えられる。フイ
ールドR1がフイールドR3で指定された汎用レジ
スタに等しいか又はそれより小さい汎用レジスタ
を指定する時、ロードは57で示されるように生
じる。更に、フイールドR1の汎用レジスタはフ
イールドR3で示された汎用レジスタより大きく
てもよく、この場合、レジスタのロードはレジス
タR1から始まり、最後の汎用レジスタを経て最
初の汎用レジスタへ進み、次いでレジスタR3へ
至る。
The I register 35 in FIG. 4 shows the format of a multiple load (LM) instruction. General purpose register group 56 must be loaded sequentially, starting with the register specified by field R1 and continuing to the register specified by field R3. The main memory address of the first operand loaded into register R1 utilizes the displacement address bit (D2). D2 bit is field
General purpose register (base register) specified by B2
is added to the address bits contained in the address bit. A load occurs as shown at 57 when field R1 specifies a general purpose register that is equal to or less than the general purpose register specified by field R3. Additionally, the general purpose register in field R1 may be larger than the general purpose register indicated by field R3, in which case the register loading starts with register R1, proceeds through the last general purpose register to the first general purpose register, and then loads the registers to register R3. leading to.

第4図においては、命令キュー42の各レジス
タの1部のみが示される。即ち、本発明の理解に
資するため、適当なアドレス形成インターロツク
を発生させるレジスタ部分のみが示される。多く
の命令実行制御情報が、後に実行ユニツトへ与え
られるように、命令キュー42の各レジスタへ入
れられる。レジスタ60(キユー0)は「GR
低」とレーベルを付された4ビツト・フイールド
61と、「GR高」とレーベルを付された4ビツ
ト・フイールド62とを含む。命令がIレジスタ
35からデコードされる時、次の空のキユー・レ
ジスタ位置を指定するインポインタに従つて、実
行制御情報が命令キュー42のレジスタへ置かれ
る。情報がそのレジスタへ入れられた時、インポ
インタは次の空のレジスタへ歩進され、実行情報
を受取つたレジスタは関連したビジイ・トリガを
オンにされる。ビジイ・トリガのオンは有効情報
がそのレジスタに含まれていることを示す。
In FIG. 4, only a portion of each register of instruction queue 42 is shown. That is, to aid in understanding the invention, only those portions of the registers that generate the appropriate address formation interlocks are shown. Much instruction execution control information is placed into each register of instruction queue 42 for later provision to the execution unit. Register 60 (Q0) is “GR
4-bit field 61 labeled "GR HIGH" and a 4-bit field 62 labeled "GR HIGH". When an instruction is decoded from the I register 35, execution control information is placed into a register of the instruction queue 42 according to an pointer that points to the next empty queue register location. When information is placed into that register, the inpointer is stepped to the next empty register and the register that received the execution information has its associated busy trigger turned on. A busy trigger on indicates that valid information is contained in that register.

アレイ解読器38から来る線54及び55上の
制御信号に応答して、レジスタ変更解読器63は
線64,65,66上にゲート制御信号を与え
る。これは特定の汎用レジスタの内容を変更する
命令がIレジスタ35でデコードされたことを示
す。制御信号線54及び55が00のコードを有す
る時、汎用レジスタは変更されず、従つてフイー
ルド61及び62はリセツト状態にとどまる(0
の値)。他のコードの場合、フイールド61は常
にゲート67の付勢によつてフイールドR1の値
へセツトされ、デコードされた情報を受取る命令
キュー・レジスタのフイールド61へR1の値が
線68を介して入れられる。
In response to control signals on lines 54 and 55 coming from array decoder 38, register change decoder 63 provides gate control signals on lines 64, 65, and 66. This indicates that an instruction that changes the contents of a particular general purpose register has been decoded in I register 35. When control signal lines 54 and 55 have a code of 00, the general registers are not modified and therefore fields 61 and 62 remain in the reset state (0).
The value of the). For other codes, field 61 is always set to the value of field R1 by activation of gate 67, and the value of R1 is placed via line 68 into field 61 of the instruction queue register which receives the decoded information. It will be done.

デコードされた情報を受取る命令キュー・レジ
スタのフイールド62は、OR回路70から来る
線69の入力によつてセツトされる。OR回路7
0は線71,72,73から入力を受取る。信号
線64によつてゲートが付勢されR1のみがロー
ドされるべき時、線72はフイールド62へ情報
を与える。或る命令の場合、R1がロードされる
時、それが偶数番号レジスタを示せば、次のレジ
スタR1+1もロードされるべきことを意味す
る。R1の値は増進器74中で1だけ増進され、
ゲート75によつてOR回路70へ与えられる。
1を増進するには、R1の低順位ビツト(常に
0)を2進の1へ強制するだけでよい。多重ロー
ド命令がデコードされる場合、ゲート76は線6
6上の信号によつて付勢され、R3の値がフイー
ルド62へ入れられる。
Field 62 of the instruction queue register, which receives the decoded information, is set by the input on line 69 coming from OR circuit 70. OR circuit 7
0 receives input from lines 71, 72, 73. Line 72 provides information to field 62 when the gate is energized by signal line 64 and only R1 is to be loaded. For an instruction, when R1 is loaded, if it indicates an even numbered register, it means that the next register R1+1 should also be loaded. The value of R1 is increased by 1 in the intensifier 74;
A gate 75 provides an OR circuit 70.
To increment a 1, simply force the low order bit of R1 (always a 0) to a binary 1. If a multiple load instruction is decoded, gate 76 is connected to line 6.
6, the value of R3 is placed in field 62.

レジスタ60,77,78,79の各々に関連
して、対応する比較回路80,81,82,83
が設けられている。比較回路80〜83の各々
は、キユー・レジスタ位置が有効な命令実行情報
を含む時、関連したビジイ・トリガからの信号線
84によつて実効化される。インターロツク情報
を与えるため、ビジイのキユー・レジスタ位置に
おけるフイールド61及び62の内容は、Iレジ
スタ35でデコードされている命令(その1部の
みが85,86で示される)と比較される。この
命令は指定された汎用レジスタの内容を使用して
アドレス形成を行うものである。アドレス形成に
関与する命令フイールドは、それぞれ85及び8
6で示されるB2及びX2である。B2は基底アドレ
ス値を含む汎用レジスタを指定し、X2はアドレ
ス指標値を含む汎用レジスタを指定する。上記2
つの値は命令フイールドD2にある変位アドレス
(12個の2進ビツト)へ加算される。
In association with each of the registers 60, 77, 78, 79, a corresponding comparison circuit 80, 81, 82, 83
is provided. Each of comparator circuits 80-83 is enabled by a signal line 84 from an associated busy trigger when the queue register location contains valid instruction execution information. To provide interlock information, the contents of fields 61 and 62 in the busy queue register location are compared to the instruction being decoded in I register 35 (only a portion of which is shown at 85, 86). This instruction forms an address using the contents of a designated general-purpose register. The instruction fields involved in address formation are 85 and 8, respectively.
6 are B2 and X2. B2 specifies the general-purpose register containing the base address value, and X2 specifies the general-purpose register containing the address index value. Above 2
The value is added to the displacement address (12 binary bits) in the instruction field D2.

比較回路80〜83のいずれかによつて、デコ
ードされている命令のX2フイールド又はB2フイ
ールドが、任意の命令キュー・レジスタにおける
フイールド61及び62に含まれる値と両立しな
い(抵触する)時、関連する比較回路の線87
(Xフイールドの非両立性を示す)又は88(B
フイールドの非両立性を示す)上に信号が発生さ
れ、その非両立(抵触)性が示される。
When the X2 field or B2 field of the instruction being decoded is incompatible (conflicts) with the values contained in fields 61 and 62 in any instruction queue register by any of the comparator circuits 80-83, the associated Comparison circuit line 87
(indicating X field incompatibility) or 88 (B
A signal is generated on the field (indicating the incompatibility of the field) to indicate the incompatibility.

第5図には、キユー・レジスタ60に関連した
比較回路80の詳細が示される。命令のデコード
が完了し、情報が命令キュー42(第3図)へ入
れられるべき時、その情報は命令キューに関連し
た線89(第5図)上にあるインポインタ値によ
つて示された命令キュー位置へ入れられる。R1
の値はフイールド61へ入れられ、フイールド6
2はR1、R1+1、R3のいずれかを受取る。4ビ
ツトのB2フイールド及びX2フイールドは、全て
の命令キュー・レジスタ位置のフイールド61及
び62と比較するために、線85及び86によつ
て比較回路へ与えられる。
FIG. 5 shows details of the comparator circuit 80 associated with the queue register 60. When the decoding of an instruction is complete and the information is to be placed in the instruction queue 42 (Figure 3), that information is indicated by the inpointer value on the line 89 (Figure 5) associated with the instruction queue. placed in the instruction queue location. R1
The value of is entered into field 61 and field 6
2 receives either R1, R1+1, or R3. The 4-bit B2 and X2 fields are provided to the comparator circuit by lines 85 and 86 for comparison with fields 61 and 62 of all instruction queue register locations.

比較回路80の機能は、デコードされている命
令のX2フイールド又はB2フイールドによつて指
定された汎用レジスタが第4図の陰影領域に入る
場合を検出することである。第4図の汎用レジス
タ群56で示されるように、R1及びR3の値に従
つて2つの異つた状態が生じる。第5図の比較回
路90はR1及びR3の値を受取り、インバータ9
1を介して線92上に信号を与える。この信号の
2進状態は、R1がR3より大きい場合と小さい場
合とを識別する。残りの比較回路93〜96は、
それぞれフイールド61,62に含まれるR1及
びR3値とX2フイールド及びB2フイールドの値と
を比較し、大小又は等しいことを示す出力信号を
与える。OR回路97及び98は非両立状態を示
す信号を与える。線92上の正の出力信号によつ
て、R1がR3よりも大きいことが示されると、
AND回路99,100,101,102はB2フ
イールド又はX2フイールドが第4図の陰影領域
58又は59の中にあることを示す信号を与え
る。上記のフイールドが第4図の陰影領域57内
にある時、AND回路103及び103aが満足
されて非両立信号を与える。
The function of comparator circuit 80 is to detect when the general purpose register specified by the X2 field or B2 field of the instruction being decoded falls within the shaded area of FIG. As shown by general purpose register group 56 in FIG. 4, two different states occur depending on the values of R1 and R3. Comparator circuit 90 in FIG. 5 receives the values of R1 and R3, and inverter 9
1 on line 92. The binary state of this signal distinguishes when R1 is greater than or less than R3. The remaining comparison circuits 93 to 96 are
The R1 and R3 values contained in the fields 61 and 62, respectively, are compared with the values of the X2 field and the B2 field, and an output signal indicating that they are greater, smaller, or equal is provided. OR circuits 97 and 98 provide signals indicating incompatible conditions. If the positive output signal on line 92 indicates that R1 is greater than R3, then
AND circuits 99, 100, 101, and 102 provide signals indicating that the B2 field or the X2 field is within the shaded area 58 or 59 of FIG. When the above field is within the shaded region 57 of FIG. 4, AND circuits 103 and 103a are satisfied to provide an incompatible signal.

第6図は本発明の究極的な目的を示す。即ち、
非両立状態が存在する時、OR回路104はデコ
ード妨害出力信号を線105上に与える。この信
号はIレジスタ35(第3図、第4図)における
命令の完全なデコードを禁止する。非両立状態を
創立した命令キュー42内の命令は、Iレジスタ
35における命令のデコードが再開される前に完
全に実行されて命令キューからクリアされねばな
らない。OR回路106はB2フイールドに関して
非両立状態がある時に出力信号を与え、OR回路
107はX2フイールドに関して非両立状態があ
る時に出力信号を与える。
FIG. 6 shows the ultimate object of the invention. That is,
When an incompatible condition exists, OR circuit 104 provides a decode disturb output signal on line 105. This signal inhibits complete decoding of the instruction in the I register 35 (FIGS. 3 and 4). The instruction in instruction queue 42 that established the incompatibility condition must be completely executed and cleared from the instruction queue before decoding of instructions in I register 35 can resume. OR circuit 106 provides an output signal when there is an incompatible condition for the B2 field, and OR circuit 107 provides an output signal when there is an incompatible condition for the X2 field.

比較回路80〜83の任意のものが非両立状態
を示す信号を与えてよいが、その非両立状態が命
令の以後のデコードを禁止する必要があるものと
して認識される前に、2つの他の条件が充たされ
ねばならない。第1の条件はIBMシステム/370
設計思想上の定義に関する。この定義は、B2フ
イールド及びX2フイールドが値0を含む時に、
それらフイールドはアドレス形成に関与する汎用
レジスタを指定しないものとする。従つて、第6
図のゼロ検知回路108及び109は、関連した
インバータ110及び111を介して、これらフ
イールドがゼロ値を含むかどうかを表示する。
Any of the comparator circuits 80-83 may provide a signal indicating an incompatible condition, but two other conditions must be met. The first condition is IBM System/370
Regarding the definition of design philosophy. This definition means that when the B2 field and the X2 field contain the value 0,
These fields shall not specify general-purpose registers involved in address formation. Therefore, the sixth
The illustrated zero detection circuits 108 and 109, via associated inverters 110 and 111, indicate whether these fields contain a zero value.

第2の条件は第6図の線112及び113に関
する。それら線上には第3図及び第4図のアレイ
解読器38からの制御信号出力が存在する。これ
らの線は、Iレジスタ35中でデコードされてい
る命令がB2フイールド又はX2フイールドを有す
ることを示す。これら2つの条件が充たされた
時、AND回路114及び115は一般的に11
6及び117で示された一群のAND回路を能動
化する。これらのAND回路は、関連したキユー
(Q)レジスタがビジイであること(84)、及び
関連したキユー・レジスタの比較回路が非両立状
態を発信していること(87,88)を示す2つ
の入力を有する。
The second condition relates to lines 112 and 113 in FIG. On those lines are the control signal outputs from the array decoder 38 of FIGS. 3 and 4. These lines indicate that the instruction being decoded in I register 35 has a B2 field or an X2 field. When these two conditions are met, AND circuits 114 and 115 typically
A group of AND circuits designated 6 and 117 are activated. These AND circuits provide two signals indicating that the associated queue (Q) register is busy (84) and that the associated queue register's comparator circuit is signaling an incompatible condition (87, 88). Has input.

第7図は第5図に示される比較回路90,9
3,94,95,96の詳細な論理を示す。OR
回路119へ入力を与えるAND回路のいずれか
が能動化される時、正の出力信号がOR回路11
9から線118上に発生される。例えば、AND
回路120は、AND回路121から正の信号を
与えられた時、OR回路119へ正の信号を与え
る。AND回路121は、Z(フイールド62)
の高順位ビツト位置0が2進の1であり、かつY
(フイールド61)の高順位ビツト位置0が2進
の0である状態を示す。これはYがZより小さい
ことを示す。OR回路119へ入力を与える続く
3個のAND回路は、Y及びZの高順位2進ビツ
トが等しく、次の低順位2進ビツトでYがZより
小さくなる時を検出する。最後に、AND回路1
22は、Yの値がZの値に等しい時に出力を与え
る。
FIG. 7 shows comparison circuits 90, 9 shown in FIG.
3, 94, 95, and 96 are shown in detail. OR
When any of the AND circuits providing input to circuit 119 is activated, a positive output signal is output to OR circuit 11.
9 on line 118. For example, AND
When circuit 120 receives a positive signal from AND circuit 121, it provides a positive signal to OR circuit 119. AND circuit 121 is Z (field 62)
The high-order bit position 0 of is a binary 1, and Y
This shows that the high-order bit position 0 of (field 61) is a binary 0. This indicates that Y is smaller than Z. Three subsequent AND circuits providing input to OR circuit 119 detect when the high order binary bits of Y and Z are equal and the next low order binary bit makes Y less than Z. Finally, AND circuit 1
22 provides an output when the value of Y is equal to the value of Z.

第8図、第9図、第10図は或る命令が前の命
令によつて未だロードされていない汎用レジスタ
の内容を使用する要求を出す可能性がある場合
に、上記或る命令のデコード妨害信号の発生に関
して、本発明と先行技術との相違を説明するタイ
ミング図である。第8図の波形123は1マシ
ン・サイクルのタイミングを示す。このタイミン
グは、命令がデコードされている時、124で示
されるようにデコード及びアドレス演算(D/
A)が1マシン・サイクルで完了するようになつ
ている。第8図は汎用レジスタR1が変更される
ロード命令のデコードを示す。記憶機構のアクセ
ス・タイミングは、命令実行が125で完了し、
データが126でレジスタR1へ挿入されるよう
になつている。R1の値はインポインタによつて
指示されたキユー・レジスタ位置Qoへ127で
インゲートされる。Qoに関連したビジイ・トリ
ガは128の間オンにされる。連続した複数個の
命令は、1つのサイクルで1個の命令がデコード
されかつアドレス演算が完了するような速度でデ
コードされる。従つて、第8図に示されるよう
に、記憶(STORE)命令がデコードされており
X2フイールドがR1に等しい場合、R1が時点12
9でQoからクリアされるまでデコードは妨げら
れる。時点129において、130で示した非両
立性が除去され、記憶命令のデコード及びアドレ
ス演算が131で生じる。
Figures 8, 9, and 10 illustrate the decoding of an instruction when the instruction may request to use the contents of a general-purpose register that has not yet been loaded by a previous instruction. FIG. 3 is a timing diagram illustrating the differences between the present invention and the prior art with respect to the generation of a jamming signal. Waveform 123 in FIG. 8 shows the timing of one machine cycle. This timing is such that when an instruction is being decoded, the decode and address operation (D/
A) is designed to be completed in one machine cycle. FIG. 8 shows the decoding of a load instruction in which general register R1 is modified. The access timing of the storage mechanism is such that instruction execution is completed at 125;
Data is to be inserted into register R1 at 126. The value of R1 is ingated at 127 into the queue register location Q o pointed to by the inpointer. The busy trigger associated with Qo is turned on for 128 hours. The consecutive instructions are decoded at a rate such that one instruction is decoded and the address operation is completed in one cycle. Therefore, as shown in Figure 8, the STORE instruction is decoded.
If X2 field is equal to R1, then R1 is at time 12
Decoding is prevented until cleared from Q o at 9. At time 129, the incompatibility indicated at 130 is removed and the decoding and address operation of the store instruction occurs at 131.

第9図はR1及びR3を指定する多重ロード命令
が132でデコードされる場合を示す。Qoは1
33でビジイとして示される。先行技術によれ
ば、デコードされるべき次の命令がR1〜R3に等
しくないX2フイールド又はB2フイールドを使用
する時でも、多重ロード命令の認識は記憶命令の
デコード及びアドレス演算を妨害する。135に
おける次の記憶命令のデコード及びアドレス演算
は、134でデータが最終的にR3へ置かれるま
では生じない。
FIG. 9 shows a case where a multiple load instruction specifying R1 and R3 is decoded at 132. Q o is 1
33 is indicated as busy. According to the prior art, recognition of multiple load instructions interferes with store instruction decoding and address operations even when the next instruction to be decoded uses an X2 field or a B2 field that is not equal to R1-R3. The decoding and address operation of the next store instruction at 135 does not occur until the data is finally placed in R3 at 134.

第10図は、本発明に従つて多重ロード命令が
136でデコードされ、R1及びR3フイールドが
137で示されるようにキュー・レジスタ位置Q
oへインゲートされる時のデータ処理システムの
能力を示す。キュー・レジスタ位置Qoは前と同
じようにビジイであるとして示される。本発明に
従えば、X2フイールド及びB2フイールドのいず
れもR1〜R3の値の範囲にない時、次の記憶命令
のデコード及びアドレス演算は138で生じるこ
とを許される。デコード及びアドレス演算の進行
に伴つて得られた命令制御情報は、インポインタ
によつて示されるキュー・レジスタ位置Qo+1
へ転送される。範囲R1〜R3にある汎用レジスタ
の1個と等しいX2フイールドを必要とする次の
記憶命令がデコードされる時、キュー・レジスタ
位置QoとX2との非両立性が表示され、その命令
のデコード及びアドレス演算は、Qoがもはやビ
ジイでないことが例えば139で示されるような
時点まで妨げられる。
FIG. 10 shows that in accordance with the present invention, a multiple load instruction is decoded at 136 and the R1 and R3 fields are placed in the queue register location Q as shown at 137.
Indicates the capabilities of a data processing system when ingested into o . Queue register location Q o is shown as busy as before. In accordance with the present invention, the next store instruction decode and address operation is allowed to occur at 138 when neither the X2 field nor the B2 field is in the R1-R3 value range. The instruction control information obtained as the decoding and address operations proceed is transferred to the queue register location Q o +1 indicated by the inpointer.
will be forwarded to. When the next store instruction that requires an and address operations are prevented until such time as indicated at 139, for example, that Q o is no longer busy.

本発明に従えば、多重ロード命令に続く命令の
デコード及びアドレス形成は、Xフイールド及び
BフイールドがR1〜R3に等しくない時、138
で実行できることが第10図によつて理解されよ
う。先行技術によれば、次の命令のデコードは第
9図の135で示されるように多重ロード命令が
完全に実行される後まで生じ得ないのである。
According to the present invention, the decoding and address formation of instructions following a multiple load instruction is 138 when the X and B fields are not equal to R1 to R3.
It will be understood from FIG. 10 that this can be done. According to the prior art, decoding of the next instruction cannot occur until after the multiple load instruction has been completely executed, as shown at 135 in FIG.

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

第1図はデータ処理システムの主たる機能部分
のブロツク図、第2図は命令前処理機能部分の詳
細を示すブロツク図、第3図は命令解読、アドレ
ス形成、命令のキユーイングを示す命令前処理機
能部分の詳細ブロツク図、第4図は汎用レジスタ
指定情報を命令キユーの適当なフイールドへ入れ
るため多重ロード命令を制御する機能ユニツトを
示すブロツク図、第5図は命令キユー及びデコー
ドされている命令のフイールドにある汎用レジス
タ指定情報から入力を受取る比較回路の論理図、
第6図は以後のデコードを妨げるため命令キユー
中の汎用レジスタ・フイールドとデコードされる
べき命令中の汎用レジスタ・フイールドとの間の
非両立性に応答する論理図、第7図は2つのフイ
ールドの大小又は等価を示す信号を発生する比較
回路の詳細論理図、第8図、第9図、第10図は
先行技術のインターロツク論理と本発明のインタ
ーロツク論理との相違を説明するタイミング図で
ある。 31,32,33……命令バツフア・レジス
タ、35……命令()レジスタ、37……ハー
ドウエア解読器、38……アレイ解読器、39…
…制御記憶アドレス・レジスタ解読器、42……
命令キユー、46……汎用レジスタ群、52……
アドレス加算器、56……汎用レジスタ群、60
……レジスタ、63……レジスタ変更解読器、6
7,75,76……ゲート、80,81,82,
83……比較回路。
Figure 1 is a block diagram of the main functional parts of the data processing system, Figure 2 is a block diagram showing details of the instruction preprocessing function, and Figure 3 is the instruction preprocessing function showing instruction decoding, address formation, and instruction queuing. 4 is a block diagram showing a functional unit that controls multiple load instructions to place general register designation information into appropriate fields of the instruction queue; FIG. 5 is a block diagram showing the instruction queue and the instructions being decoded. a logic diagram of a comparison circuit that receives input from general-purpose register designation information in the field;
FIG. 6 is a logic diagram that responds to an incompatibility between a general register field in an instruction queue and a general register field in an instruction to be decoded to prevent subsequent decoding; FIG. 8, 9, and 10 are timing diagrams illustrating the differences between the interlock logic of the prior art and the interlock logic of the present invention. It is. 31, 32, 33...Instruction buffer register, 35...Instruction () register, 37...Hardware decoder, 38...Array decoder, 39...
...Control storage address register decoder, 42...
Instruction queue, 46...General-purpose register group, 52...
Address adder, 56...General-purpose register group, 60
...Register, 63...Register change decoder, 6
7, 75, 76...gate, 80, 81, 82,
83... Comparison circuit.

Claims (1)

【特許請求の範囲】 1 命令レジスタと、該命令レジスタに置かれた
命令をデコードする命令デコーダと、デコードさ
れた命令について実行制御情報を記憶する複数の
キユー・レジスタより成る命令キユーとを備え、
命令プリデコードに際し、命令中のアドレス情報
及び該命令によつて指定された汎用レジスタ中の
アドレス情報から主記憶アドレスを形成しうる命
令前処理ユニツトにおいて: 上記実行制御情報の一部として第1及び第2汎
用レジスタ指定情報を記憶するように上記キユ
ー・レジスタの各々に設けられた第1及び第2汎
用レジスタ識別部と; 少くとも1つの汎用レジスタへのロードを要求
するデコードされた命令に応答してロードすべき
最初の汎用レジスタ及び最後の汎用レジスタの各
指定情報(1つの汎用レジスタの場合はその指定
情報)を上記命令レジスタから選択された上記キ
ユー・レジスタ中の上記第1及び第2汎用レジス
タ識別部へそれぞれ転送するためのゲート手段
と; 上記キユー・レジスタに対応して設けられた複
数組の比較手段と; 上記各キユー・レジスタにおける上記第1及び
第2汎用レジスタ識別部に記憶された第1及び第
2汎用レジスタ指定情報を該キユー・レジスタに
対応する上記比較手段の組の一方の入力へそれぞ
れ接続する手段と; 上記命令レジスタに置かれた命令中の少くとも
1つの汎用レジスタ指定情報であつて、上記主記
憶アドレスを形成するために使用すべき汎用レジ
スタの指定情報を上記複数組の比較手段の他方の
入力へそれぞれ接続する手段と; 該汎用レジスタ指定情報が所与の上記第1ない
し第2汎用レジスタ指定情報の範囲内にあること
を検知する上記複数組の比較手段に応答して上記
命令デコーダの後続動作を禁止する信号手段とを
備えてなるインターロツク機構。
[Scope of Claims] 1. An instruction queue comprising an instruction register, an instruction decoder for decoding instructions placed in the instruction register, and a plurality of queue registers for storing execution control information for the decoded instructions,
In an instruction pre-processing unit that can form a main memory address from address information in an instruction and address information in a general-purpose register specified by the instruction when pre-decoding an instruction: first and second general purpose register identifiers disposed in each of said queue registers to store second general purpose register designation information; responsive to a decoded instruction requesting a load into at least one general purpose register; The designation information of the first general-purpose register and the last general-purpose register to be loaded (in the case of one general-purpose register, the designation information) is stored in the first and second general-purpose registers in the queue register selected from the instruction register. gate means for respectively transferring data to the general-purpose register identification sections; a plurality of comparison means provided corresponding to the queue registers; and storage in the first and second general-purpose register identification sections in each of the queue registers. means for respectively connecting first and second general-purpose register designation information corresponding to the queue register to one input of the set of comparison means; at least one general-purpose register among the instructions placed in the instruction register; means for respectively connecting register designation information, which is designation information of a general-purpose register to be used to form the main memory address, to the other input of the plurality of sets of comparison means; and signal means for inhibiting subsequent operations of the instruction decoder in response to the plurality of comparison means for detecting that the instruction decoder is within the range of the first or second general register designation information.
JP1150679A 1978-03-16 1979-02-05 Interlock mechanism Granted JPS54127649A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US88709378A 1978-03-16 1978-03-16

Publications (2)

Publication Number Publication Date
JPS54127649A JPS54127649A (en) 1979-10-03
JPS6112289B2 true JPS6112289B2 (en) 1986-04-07

Family

ID=25390443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1150679A Granted JPS54127649A (en) 1978-03-16 1979-02-05 Interlock mechanism

Country Status (5)

Country Link
JP (1) JPS54127649A (en)
DE (1) DE2906685A1 (en)
FR (1) FR2420168B1 (en)
GB (1) GB2016753A (en)
IT (1) IT1166667B (en)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2561429B1 (en) * 1984-03-13 1986-09-19 Trt Telecom Radio Electr ADDRESSING DEVICE FOR PROVIDING ADDRESS CODES TO A MEMORY
DE3581556D1 (en) * 1984-04-27 1991-03-07 Bull Hn Information Syst CONTROL UNIT IN A DIGITAL COMPUTER.
EP0205193B1 (en) * 1985-06-17 1996-10-23 Nec Corporation Information processing system comprising a register renewal waiting control circuit with renewal register number registering means
JPS6227829A (en) * 1985-07-30 1987-02-05 Fujitsu Ltd Control system for multiplex load instruction
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142631A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
US5450555A (en) * 1990-06-29 1995-09-12 Digital Equipment Corporation Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions
EP0463965B1 (en) * 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
US11457671B2 (en) 2019-12-20 2022-10-04 Maddox Holdings Inc. Maternity undergarment for gentle support and shape enhancement

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4912742A (en) * 1972-05-09 1974-02-04
JPS4946347A (en) * 1972-09-06 1974-05-02
JPS5041442A (en) * 1973-08-16 1975-04-15
JPS5318931A (en) * 1976-08-06 1978-02-21 Hitachi Ltd Information processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3477063A (en) * 1967-10-26 1969-11-04 Ibm Controller for data processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4912742A (en) * 1972-05-09 1974-02-04
JPS4946347A (en) * 1972-09-06 1974-05-02
JPS5041442A (en) * 1973-08-16 1975-04-15
JPS5318931A (en) * 1976-08-06 1978-02-21 Hitachi Ltd Information processor

Also Published As

Publication number Publication date
IT1166667B (en) 1987-05-06
DE2906685A1 (en) 1979-09-20
DE2906685C2 (en) 1988-04-14
JPS54127649A (en) 1979-10-03
FR2420168A1 (en) 1979-10-12
GB2016753A (en) 1979-09-26
IT7920567A0 (en) 1979-02-27
GB2016753B (en)
FR2420168B1 (en) 1986-09-26

Similar Documents

Publication Publication Date Title
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
EP0162778B1 (en) Instruction prefetch system for conditional branch instruction for central processor unit
CA1323938C (en) Control of multiple function units with parallel operation in a microcoded execution unit
EP0380846B1 (en) Apparatus for resolving a variable number of potential memory access conflicts in a pipeline computer system and method therefor
EP0380859B1 (en) Method of preprocessing multiple instructions
EP0380850B1 (en) Method and digital computer for preproccessing multiple instructions
US4200927A (en) Multi-instruction stream branch processing mechanism
US6157996A (en) Processor programably configurable to execute enhanced variable byte length instructions including predicated execution, three operand addressing, and increased register space
JP3055980B2 (en) Method for ensuring data integrity in a multiprocessor or pipeline processor system
US4398245A (en) Data processing system having an instruction pipeline for processing a transfer instruction
US5694617A (en) System for prioritizing quiesce requests and recovering from a quiescent state in a multiprocessing system with a milli-mode operation
JPH03116235A (en) Data processor branch processing method
JPH08278886A (en) Method and system for operation of extended system management in data-processing system
US4287561A (en) Address formulation interlock mechanism
EP0458305B1 (en) Microprocessor having branch prediction function
KR100335785B1 (en) Execution of data processing instructions
JPS61109147A (en) Data processor
EP0066376B1 (en) Data processing system
JPH02257235A (en) Apparatus and method for loading cash memory from related main memory selectively
US4541047A (en) Pipelined data processing system
US5416911A (en) Performance enhancement for load multiple register instruction
KR100682635B1 (en) Microprocessor Including Multiple Register Files Occupying The Same Logical Space
JPS6112289B2 (en)
US5897654A (en) Method and system for efficiently fetching from cache during a cache fill operation
US5381532A (en) Microprocessor having branch aligner between branch buffer and instruction decoder unit for enhancing initiation of data processing after execution of conditional branch instruction