JPS633338B2 - - Google Patents

Info

Publication number
JPS633338B2
JPS633338B2 JP59149848A JP14984884A JPS633338B2 JP S633338 B2 JPS633338 B2 JP S633338B2 JP 59149848 A JP59149848 A JP 59149848A JP 14984884 A JP14984884 A JP 14984884A JP S633338 B2 JPS633338 B2 JP S633338B2
Authority
JP
Japan
Prior art keywords
instruction
event
register
cycle
registers
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
JP59149848A
Other languages
Japanese (ja)
Other versions
JPS6065343A (en
Inventor
Chirinsukii Heruberuto
Jei Getsutsurafu Kurausu
Hatsuju Yohan
Rihitaa Sutefuan
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
Priority claimed from EP83109174A external-priority patent/EP0114188B1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS6065343A publication Critical patent/JPS6065343A/en
Publication of JPS633338B2 publication Critical patent/JPS633338B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、パイプラインプロセツサにおいて、
中断を強制する事象が発生した際に命令を中断し
事象解決後にその命令を繰り返すための命令処理
装置に関する。
[Detailed Description of the Invention] [Industrial Application Field] The present invention provides a pipeline processor that includes:
The present invention relates to an instruction processing device for interrupting an instruction when an event that forces the interruption occurs and repeating the instruction after the event is resolved.

[従来技術] データ処理システムにおいて、命令処理中に、
特定の状況が発生するために、そうした命令処理
の遂行が中断される場合がある。特定の状況(以
下これを事象と呼ぶ)は、中断された命令処理を
続行する前に、そうした事象によつて引き起きさ
れるオペレーシヨンを遂行するために短い割込み
を強制する。
[Prior Art] In a data processing system, during instruction processing,
Performance of such instruction processing may be interrupted due to the occurrence of certain conditions. Certain situations (hereinafter referred to as events) force a brief interrupt to complete the operation caused by the event before continuing interrupted instruction processing.

例えば、主記憶と処理装置との間のバツフアと
してキヤツシユが具備されているデータ処理シス
テムに、こうした事象が発生する。デイレクトリ
はキヤツシユに在るデータのアドレスを絶えず記
憶している。プロセツサがキヤツシユをアクセス
するたびに、キヤツシユに所望のデータが記憶さ
れているかどうかということについてデイレクト
リが照会される。こうして命令の実行に備えてキ
ヤツシユによつてプロセツサにデータを供給でき
るかどうかが調べられる。所望のデータを有する
アドレスがデイレクトリにない場合は、そのデー
タを主記憶からキヤツシユに記憶しなければなら
ない。そのときデイレクトリに新しい登録が行な
われる。そうして初めて直前の命令を繰り返して
命令処理を再開することができる。
For example, such an event occurs in data processing systems in which a cache is provided as a buffer between main memory and a processing unit. The directory constantly remembers the addresses of data in the cache. Each time the processor accesses the cache, the directory is queried to see if the desired data is stored in the cache. This checks to see if the cache can provide data to the processor in preparation for execution of the instruction. If an address with the desired data is not found in the directory, the data must be stored from main memory to the cache. A new registration is then made in the directory. Only then can instruction processing be resumed by repeating the previous instruction.

しかしながら、こうした命令の繰り返しは、オ
ペレーシヨンレジスタの内容が保管されてはじめ
て可能となる。ここで言うオペレーシヨンレジス
タの内容は、その命令、特に、オペレーシヨンコ
ード及びオペランドアドレス(必要ならば、その
命令がさらに含むことのできる付加的な情報も)
である。よく知られたデータ処理システムは、こ
の目的のために、並行命令処理の度合に応じた数
のバツクアツプレジスタを使用する。これによつ
て、繰返すべき命令に戻ることができる。
However, such instruction repetition is only possible if the contents of the operation register are saved. The contents of the operation register here refer to the instruction, in particular the operation code and operand address (as well as any additional information that the instruction may contain, if necessary).
It is. Well-known data processing systems use backup registers for this purpose, the number of which depends on the degree of parallel instruction processing. This allows returning to the instruction to be repeated.

[発明が解決しようとする問題点] このような付加的な構成要素はそれ自体好まし
くないのであるが、その他の問題として、1個な
いし数個のクロツクから成る命令サイクル全体を
繰り返さなければならないので、かなりの時間を
ロスしてしまう。
[Problems to be Solved by the Invention] Although such additional components are not desirable in themselves, another problem is that the entire instruction cycle consisting of one or several clocks must be repeated. , a considerable amount of time is lost.

従つて本発明の目的は、中断を強制するような
特定の事象が発生した際に、余分のバツクアツプ
レジスタを必要とせず事象を処理しかつ中断され
た命令の繰り返しに要する時間をできる限り少な
くした命令処理装置を提供することにある。
It is therefore an object of the present invention to handle a particular event that forces an interrupt without the need for extra backup registers and to minimize the time required to repeat the interrupted instruction. The object of the present invention is to provide an instruction processing device with a high level of accuracy.

[問題点を解決するための手段] パイプライン式プロセツサにおいて、命令の中
断を強制する事象が発生した際に命令を中断し事
象解決後にその命令を繰り返すための本発明の命
令処理装置は、(a)それぞれ通常の命令を記憶し、
命令の中断を強制する事象が発生したときはその
時点で記憶している命令をそのまま保存する直列
的に接続された複数のレジスタから成る第1のレ
ジスタ群と、(b)この第1のレジスタ群を構成する
各レジスタに対応して設けられ、中断を強制する
事象が発生しないときは、これらの各レジスタの
記憶している命令を復号する複数の復号手段と、
(c)事象を処理するための制御情報を生成する第2
のレジスタ群と、(d)事象が発生したときは第1の
レジスタ群で保存された命令の代わりに第2のレ
ジスタ群の生成する制御情報を前記複数の復号手
段へ転送し、事象解決終了時に、事象発生時の命
令を保存している第1のレジスタ群のうちの1つ
のレジスタの出力の行先を前記複数の復号手段の
1つへ順次的に切り替える手段と、を有すること
を特徴としている。
[Means for Solving the Problems] In a pipelined processor, the instruction processing device of the present invention suspends an instruction when an event that forces suspension of an instruction occurs and repeats the instruction after the event is resolved. a) memorize each normal command;
(b) a first register group consisting of a plurality of serially connected registers that stores the instruction stored at that time as is when an event that forces an instruction to be interrupted occurs; and (b) this first register. a plurality of decoding means provided corresponding to each register constituting the group and decoding instructions stored in each of these registers when an event that forces an interruption does not occur;
(c) a second generating control information for processing the event;
and (d) when an event occurs, the control information generated by the second register group is transferred to the plurality of decoding means instead of the instruction stored in the first register group, and the event resolution is completed. and means for sequentially switching the destination of the output of one register of the first register group storing the instruction at the time of occurrence of the event to one of the plurality of decoding means. There is.

以上のような復号手段への切替えを行うことに
より、余分のバツクアツプレジスタは不要とな
り、しかも中断された命令の繰り返しに要する時
間を短縮できる。
By switching to the decoding means as described above, an extra backup register becomes unnecessary, and the time required to repeat the interrupted instruction can be shortened.

[実施例] 第4図に示すように、並行命令処理が想定され
ている。第4図の上から第1行及び第2行は、命
令クロツク即ち命令サイクルに係るAクロツク
(A−CL)及びBクロツク(B−CL)のタイミ
ングをそれぞれ表わしている。第3行のT0及至
T5が命令サイクルを表わす。これらのAクロツ
ク及びBクロツクは、主に、プロセツサ論理の主
たる構成要素であるマスタ/スレーブ・フリツプ
フロツプ(第2図)を作動させるために使用され
る。
[Embodiment] As shown in FIG. 4, parallel instruction processing is assumed. The first and second rows from the top of FIG. 4 respectively represent the timing of the A clock (A-CL) and the B clock (B-CL) related to the instruction clock, that is, the instruction cycle. To T0 in the 3rd row
T5 represents an instruction cycle. These A and B clocks are primarily used to operate the master/slave flip-flop (FIG. 2), which is the main component of the processor logic.

大部分のデータ処理システムの命令セツトに
は、長さが異なる命令、即ち、処理に1個乃至数
個の命令サイクルを要する命令が存在している。
命令の処理は、通常、2段階で交互に遂行され
る。即ち、命令段階と実行段階である。直接的と
いうよりはむしろ解釈的に実行可能な命令の場合
は、3命令サイクル以内の命令段階で、主記憶ま
たはバツフアからの命令取出し、制御記憶からの
制御用マイクロ命令の取出し、及びそのマイクロ
命令の復号が行われる。この復号によつて命令の
実際の実行段階が始まる。実行段階は4命令サイ
クル以内で遂行される。即ち、第1オペランド読
取り、第2オペランド読取りとこれに伴うALU
(算術論理機構)の入力レジスタへの両オペラン
ド転送、オペランドの実際の算術処理または論理
処理、及び定められた記憶場所への結果の記憶、
である。
The instruction set of most data processing systems includes instructions of varying lengths, ie, instructions that require one to several instruction cycles to process.
Processing of instructions is typically performed in two alternating stages. That is, the instruction stage and the execution stage. For instructions that can be executed interpretively rather than directly, the instruction phase, within three instruction cycles, involves fetching the instruction from main memory or buffer, fetching the controlling microinstruction from control storage, and is decrypted. This decoding begins the actual execution phase of the instruction. The execution phase is accomplished within four instruction cycles. That is, the first operand read, the second operand read, and the associated ALU
transfer of both operands to the input registers of the (arithmetic logic unit), actual arithmetic or logical processing of the operands, and storage of the result in a defined storage location;
It is.

パイプラインプロセツサ、即ち、並行命令処理
によるプロセツサにおいては、その並行の度合に
依存して命令サイクルTiあたり、幾つかの命令
の処理が部分的に遂行される。第3図に示すよう
な2つのオペレーシヨンレジスタ4及び5を用い
ると、所定の初期走行の後、命令サイクルTiあ
たり3つの異なつた逐次命令の部分的処理が可能
である。第1の命令サイクルT0が始まると、命
令アドレスレジスタ2(第1図)内の命令アドレ
ス(例えばA)を有する命令が命令記憶から読み
取られる。次の命令サイクルT1で、両オペラン
ドが取り出され、同時に命令アドレスBを有する
次の命令が命令記憶から取り出される。
In a pipeline processor, ie, a processor with parallel instruction processing, several instructions are partially processed per instruction cycle Ti depending on the degree of parallelism. With two operation registers 4 and 5 as shown in FIG. 3, after a certain initial run, partial processing of three different sequential instructions is possible per instruction cycle Ti. When the first instruction cycle T0 begins, the instruction having the instruction address (eg, A) in the instruction address register 2 (FIG. 1) is read from the instruction store. In the next instruction cycle T1, both operands are fetched and at the same time the next instruction with instruction address B is fetched from the instruction store.

第3の命令サイクルT2で、オペランドをALU
で算術的または論理的に組合せて、その結果を所
定のレジスタ(または記憶場所)に記憶する。さ
らに、次のオペランド対が取り出され、同時に次
の命令(第3の命令)が命令記憶から選択され
る。
In the third instruction cycle T2, the operand is ALU
arithmetically or logically combine and store the result in a predetermined register (or memory location). Additionally, the next operand pair is retrieved and at the same time the next instruction (third instruction) is selected from the instruction store.

分岐命令が成功するとこうして構成されたパイ
プラインは中断され、新たなパイプラインが設定
される。ここでもまた、3ウエイ並行処理のパイ
プラインを充填する2つの命令サイクルの初期走
行が存在する。
If the branch instruction is successful, the pipeline configured in this way is interrupted and a new pipeline is established. Again, there is an initial run of two instruction cycles that fills the three-way parallel processing pipeline.

オペレーシヨンレジスタ4がソースを選択しオ
ペレーシヨンレジスタ5がターゲツトを選択する
ことによつて、これら2つのオペレーシヨンレジ
スタは並行命令処理を支援する。用語“ソース”
は、処理されるべきオペランドまたは他のデータ
(例えば或るアドレスの)のことを言い、“ターゲ
ツト”は、結果を生成してその転送先を決定する
ようなデータ処理要素のことを言う。
These two operation registers support parallel instruction processing, with operation register 4 selecting the source and operation register 5 selecting the target. The term “source”
refers to an operand or other data (eg, at an address) to be processed, and a "target" refers to a data processing element that produces a result and determines where to forward it.

第3図に示すプロセツサのデータ流れは、命令
記憶1が命令を連続的にオペレーシヨンレジスタ
4に転送することを表わしている。オペレーシヨ
ンレジスタ4は後続の命令サイクルにおいて自身
の有する命令をオペレーシヨンレジスタ5に転送
する。これは、次の命令サイクルで命令記憶1か
ら命令を再びロードできるようにするためであ
る。オペレーシヨンレジスタ4及び5の各々の出
力はオペレーシヨン復号部6及びオペレーシヨン
復号部7にそれぞれ接続される。
The processor data flow shown in FIG. 3 represents the instruction store 1 continuously transferring instructions to the operation register 4. The processor data flow shown in FIG. Operation register 4 transfers its own instructions to operation register 5 in the subsequent instruction cycle. This is to enable the instruction to be loaded again from instruction storage 1 in the next instruction cycle. The outputs of operation registers 4 and 5 are connected to operation decoding section 6 and operation decoding section 7, respectively.

オペレーシヨンレジスタ4に在る命令はオペレ
ーシヨン復号部6を介してソース、即ちデータ局
所記憶部(DLS)36に在るレジスタ、を選択
する。オペレーシヨンレジスタ5に在る命令はオ
ペレーシヨン復号部7を介してターゲツトを選択
する。第3図の例では、このターゲツトはALU
39の入力レジスタ37及び入力レジスタ38で
ある。命令がオペレーシヨンレジスタに達すれ
ば、オペランドがデータ局所記憶部36から取り
出される。このために、例えば、2つの汎用レジ
スタの内容または、1つのベースレジスタと変位
の内容がALU39の入力レジスタ37,38に
読み込まれる。変位の内容は個有の接続線40を
介して命令記憶1から直接的に転送される。
The instruction residing in the operation register 4 selects the source, ie, the register residing in the data local storage (DLS) 36, via the operation decoder 6. The instruction in the operation register 5 selects a target via the operation decoder 7. In the example in Figure 3, this target is the ALU
39 input registers 37 and input registers 38. Once the instruction reaches the operation register, the operands are retrieved from data local storage 36. For this purpose, for example, the contents of two general purpose registers or the contents of one base register and a displacement are read into the input registers 37, 38 of the ALU 39. The displacement contents are transferred directly from the command store 1 via its own connection line 40.

次の命令サイクルで、オペレーシヨンレジスタ
4はその内容をオペレーシヨンレジスタ5に転送
する。オペレーシヨンレジスタ5は結果レジスタ
だけでなくターゲツト(例えばALU39の機能)
も選択する。一方これと同時に、オペレーシヨン
レジスタ4は次の命令を受け取つて次のソースを
選択する。
On the next instruction cycle, operation register 4 transfers its contents to operation register 5. Operation register 5 is not only a result register but also a target (for example, ALU39 function).
Also select. Meanwhile, at the same time, the operation register 4 receives the next instruction and selects the next source.

並行処理はプロセツサのデータ局所記憶部36
及びALU39にも生じる。データ局所記憶部3
6は、ALU39が当面のオペランドを用いて結
果を生成している間に、次のオペランドを出力す
る。この並行処理はパイプライン式コンピユータ
の基本的な原理であり、これは主にデータ局所記
憶部36の3重制御によつて可能となつている。
記憶オペランドを用いる命令の場合は、接続線4
0は直接的にベースレジスタ及び変位の計算を支
援するが、これもまた他の処理を並行して遂行さ
れる。
Parallel processing is performed using the data local storage unit 36 of the processor.
and also occurs in ALU39. Data local storage unit 3
6 outputs the next operand while the ALU 39 generates a result using the current operand. This parallel processing is the basic principle of pipelined computers, and is made possible primarily by triple control of the data local storage 36.
For instructions that use storage operands, connection line 4
0 directly supports base register and displacement calculations, which are also performed in parallel with other processing.

第1図に示すように、オペレーシヨンレジスタ
4及び5は、特定の制御オペレーシヨンのため
に、それらに関連する命令サイクルカウンタ
(CC1)8及び命令サイクルカウンタ(CC2)9
をそれぞれ有する。オペレーシヨンレジスタ4
は、クロツクパルス1Tiを供給する命令サイクル
カウンタ8と協働して、ソース選択制御を開始す
る。一方、オペレーシヨンレジスタ5は、クロツ
クパルス2Tiを供給する命令サイクルカウンタ9
と協働して、ターゲツト変更制御を管理する。
As shown in FIG. 1, operation registers 4 and 5 contain their associated instruction cycle counter (CC1) 8 and instruction cycle counter (CC2) 9 for specific control operations.
have each. Operation register 4
initiates the source selection control in conjunction with the instruction cycle counter 8 which provides clock pulses 1Ti. On the other hand, the operation register 5 has an instruction cycle counter 9 which supplies the clock pulse 2Ti.
Manage target change control in collaboration with

第4図からわかるように、第1の命令サイクル
T0で、命令アドレスレジスタ(IAR)2に在る
アドレスAを有する命令が取り出されて、第2の
命令サイクルT1でオペレーシヨンレジスタ4に
記憶される。第2の命令サイクルは、しかしなが
ら、命令サイクルカウンタ8から見れば第1の命
令サイクル1TOである。ところで、アドレスA
の命令は2サイクル命令であるので、オペレーシ
ヨンレジスタ4に関連する命令サイクルカウンタ
8は、さらに、クロツクパルス1TLを発生する必
要がある。
As can be seen from Figure 4, the first instruction cycle
At T0, the instruction with address A present in the instruction address register (IAR) 2 is fetched and stored in the operation register 4 in the second instruction cycle T1. The second instruction cycle, however, is the first instruction cycle 1TO from the point of view of the instruction cycle counter 8. By the way, address A
Since the instruction is a two-cycle instruction, the instruction cycle counter 8 associated with the operation register 4 also needs to generate a clock pulse 1TL.

時間をずらして考えれば、以上の制御はオペレ
ーシヨンレジスタ5にも適用できる。命令サイク
ルカウンタ9もまた2つのクロツクパルス、即ち
2TO及び2TLを発生する。
Considering the time shift, the above control can also be applied to the operation register 5. The instruction cycle counter 9 also receives two clock pulses, viz.
Generates 2TO and 2TL.

以上で機械設計について記したので、次に本発
明を説明する。
Having described the mechanical design above, the present invention will now be described.

命令サイクルA2TLの間に、例えばキヤツシユ
内に所望のオペランドがないというような事象が
発生する場合がある。今ここで問題としているの
は、事象解決後即ちキヤツシユが必要なオペラン
ドを再び供給できるようになつた場合のアドレス
Aを有する命令全体を繰り返すことではなく、直
前の命令サイクルA1TL及びA2TLだけを繰り返
すことである。従つて、この繰り返しは命令全体
即ち全ての命令サイクルを繰り返すことに比べて
ごくわずかの時間だけですみ、繰返しに際してア
ドレスAは要求されず、従つて命令アドレス及び
オペランドのいずれにとつてもバツクアツプレジ
スタは必要でない。
During instruction cycle A2TL, an event may occur, such as a desired operand not being found in the cache. The problem here is not to repeat the entire instruction with address A after the event is resolved, i.e. when the cache is again able to supply the required operands, but only the previous instruction cycles A1TL and A2TL. That's true. Therefore, this repetition takes only a fraction of the time compared to repeating the entire instruction, i.e., every instruction cycle, and address A is not required during the repetition, so there is no backup for either the instruction address or the operands. No registers are required.

バツクアツプレジスタを追加することなく命令
サイクルA1TL及びA2TLを繰り返すことは、対
応する事象信号が命令アドレスレジスタ2の内容
及びオペレーシヨンレジスタ4,5の内容をただ
ちに保持(凍結)させることによつて達成され
る。この事象信号は、例えば必要なオペランドを
キヤツシユが有しないような、前述の事象(第1
図においてこの事象をCMと記す)である。命令
サイクルA1TLが繰り返されるまでは、これらの
レジスタに保持(凍結)された内容は変化しな
い。
Repeating instruction cycles A1TL and A2TL without adding backup registers is achieved by the corresponding event signal immediately holding (freezing) the contents of instruction address register 2 and operation registers 4 and 5. be done. This event signal is generated by the above-mentioned event (the first
In the figure, this event is denoted as CM). The contents held (frozen) in these registers do not change until instruction cycle A1TL is repeated.

所望のオペランドが主記憶からキヤツシユにロ
ードされ命令実行に備えて使用可能になつた場
合、即ち事象解決後、1命令サイクルの間、オペ
レーシヨンレジスタ5及び命令サイクルカウンタ
9を、オペレーシヨンレジスタ4及びそれに関連
する命令サイクルカウンタ8の出力へ切替えるこ
とが、さらに必要である。
When the desired operand is loaded into cache from main memory and available for instruction execution, that is, after the event is resolved, operation register 5 and instruction cycle counter 9 are It is further necessary to switch to the output of the instruction cycle counter 8 associated therewith.

事象を解決している間は2つのオペレーシヨン
レジスタはオフされているので、これらのオペレ
ーシヨンレジスタの出力が制御信号を発生するこ
とはない。さらに、オペレーシヨンレジスタの内
容に代つて全ての事象機能をそれらの出力の方へ
切替えるので、個々の復号機能の最適な配分を達
成でき全体として接続点の量は少なくてすむ、と
いう利点もある。
Since the two operation registers are turned off while resolving an event, the outputs of these operation registers do not generate control signals. Furthermore, since all event functions are switched to their outputs instead of the contents of the operation registers, an optimal distribution of individual decoding functions can be achieved and the overall amount of connection points can be reduced. .

本実施例の回路構成(第1図)及びその動作
(第5図)を次に説明する。
The circuit configuration (FIG. 1) and its operation (FIG. 5) of this embodiment will be explained next.

命令サイクルT0において命令アドレスAが命
令アドレスレジスタ2に存在する。次の命令サイ
クルT1において命令が命令記憶1からオペレー
シヨンレジスタ4に読み取られ、これと同時に、
次の命令アドレスBが命令アドレスレジスタ2に
読み込まれる。さらに、現時点でオペレーシヨン
レジスタ4に在る命令(この命令は2サイクル命
令である)は、オペレーシヨンレジスタ4に関連
する命令サイクルカウンタ8と組合せて、一般書
込モードA1TOにおいて、有効オペレーシヨン
EFOP1として使用可能である。オペレーシヨン
復号部6において、この有効オペレーシヨン
EFOP1が復号され、データフロー制御信号
(DF)が発生される。このデータフロー制御信号
は、命令の命令段階を制御する。各サイクルで命
令の繰り返しを含む強制されたオペレーシヨンの
実行を必要とする事象が全く発生しておらずゲー
ト17及び18が活動化されているので、命令は
オペレーシヨンレジスタ4からオペレーシヨン復
号部6に移行する。従つて強制されたオペレーシ
ヨン(FO)を要求するための事象信号CM,xo-1
またはxoが存在しないので、多重電線によるライ
ン41,42、及び43が2進値0に対応する信
号を伝達する。ライン41の多重電線の本数は考
えられる様々な事象信号の数に対応する。各事象
信号はさらにフリツプフロツプ(FF1)24乃至
26と、同時にフリツプフロツプ(FF2)28乃
至30と、に送られる。ライン42は命令サイク
ルカウンタ27の出力だけでなくフリツプフロツ
プ(FF1)24乃至26の出力も伝達するので、
ライン42の多重電線の本数は事象信号の数に依
存する。実施例ではライン43を介して命令サイ
クルカウンタ(CC3)27の出力だけでなくフリ
ツプフロツプ(FF2)28乃至30が供給される
ので、ライン43はライン42と同じ本数の電線
を有する。
Instruction address A exists in instruction address register 2 in instruction cycle T0. In the next instruction cycle T1, the instruction is read from the instruction memory 1 into the operation register 4, and at the same time,
The next instruction address B is read into the instruction address register 2. Furthermore, the instruction currently in the operation register 4 (this instruction is a two-cycle instruction), in combination with the instruction cycle counter 8 associated with the operation register 4, can be used as a valid operation in the general write mode A1TO.
Can be used as EFOP1. In the operation decoding section 6, this effective operation
EFOP1 is decoded and a data flow control signal (DF) is generated. This data flow control signal controls the instruction phase of the instruction. Since no event has occurred requiring the execution of the forced operation involving repetition of the instruction in each cycle and gates 17 and 18 are activated, the instruction is transferred from operation register 4 to the operation decoder. Move to 6. Therefore the event signal CM, x o-1 for requesting a forced operation (FO)
or x o does not exist, so multi-conductor lines 41, 42, and 43 carry a signal corresponding to the binary value 0. The number of multiple wires in line 41 corresponds to the number of different possible event signals. Each event signal is further sent to flip-flops (FF1) 24-26 and simultaneously to flip-flops (FF2) 28-30. Since line 42 carries not only the output of instruction cycle counter 27 but also the output of flip-flops (FF1) 24-26,
The number of multiple wires in line 42 depends on the number of event signals. In the preferred embodiment, line 43 has the same number of wires as line 42, since not only the output of command cycle counter (CC3) 27 but also flip-flops (FF2) 28-30 are supplied via line 43.

フリツプフロツプ24乃至26に並列して記憶
された各々の信号は、必要ならば、付加的なモー
ドビツトを組合せた後に、強制されたオペレーシ
ヨンのためにデータフロー制御ワードFOP1を
形成する。同様に、フリツプフロツプ28乃至3
0に並列して記憶されたデータとさらにモードビ
ツトと組合せて、強制されたオペレーシヨンのた
めの制御ワードFOP2を形成する。対応するオ
ペレーシヨン復号部6,7に転送されるこれらの
制御ワードは、命令サイクルカウンタ27と協働
して、強制されたオペレーシヨンの実行を制御す
る。
Each signal stored in parallel in flip-flops 24-26, after combining with additional mode bits if necessary, forms the data flow control word FOP1 for forced operation. Similarly, flip-flops 28 to 3
The data stored in parallel with 0 is further combined with the mode bit to form the control word FOP2 for the forced operation. These control words, which are transferred to the corresponding operation decoders 6, 7, cooperate with the instruction cycle counter 27 to control the execution of the forced operation.

ライン41乃至43の電線は制御のためにOR
ゲート31,33,34及び35で組合わされ
る。ORゲート31の出力は、インバータ(I)
32を介して供給される(出力信号B〓)。イン
バータ(I)47の出力信号はA〓で示す。出力
信号A〓及びB〓はANDゲート3,12、及び
13の入力に送られる。出力信号A〓はさらに
ANDゲート49を制御する。
The wires of lines 41 to 43 are ORed for control.
They are combined at gates 31, 33, 34 and 35. The output of the OR gate 31 is the inverter (I)
32 (output signal B〓). The output signal of the inverter (I) 47 is indicated by A〓. The output signals A and B are sent to the inputs of AND gates 3, 12 and 13. The output signal A〓 is further
Controls AND gate 49.

ANDゲート3,12、及び13は、さらに2
つの入力を有する。その1つの入力はセツト信号
Sを受け取り、もう1つの入力はAクロツクA−
CLを受け取る。
AND gates 3, 12, and 13 are further
It has two inputs. Its one input receives the set signal S, and the other input receives the A clock A-
Receive CL.

ANDゲート3は次の命令サイクルで新しい命
令アドレスを命令アドレスレジスタ2にロードで
きるように、その出力を介して命令アドレスレジ
スタ2を制御する。しかしながらこのANDゲー
ト3の一致条件が満たされない場合は、こうした
ロードは行われない。
The AND gate 3 controls the instruction address register 2 via its output so that a new instruction address can be loaded into the instruction address register 2 in the next instruction cycle. However, if the match condition of AND gate 3 is not met, such loading is not performed.

標準的なオペレーシヨンの場合は、第1の命令
サイクルにおいてアドレスAで読取りが行われた
後(例えば、第5図の上から3行目に表わされる
T0)、第2の命令サイクルT1においてその命令
が活動化されたANDゲート12によつてオペレ
ーシヨンレジスタ4に到達する。そうして、オペ
レーシヨンレジスタ4の出力はゲート17,18
を介して有効オペレーシヨンEOP1としてオペ
レーシヨン復号部6に到達する。事象信号
(CM,……,xo-1、及びxo)が存在しないので、
ORゲート31,33,34、及び35の出力は
2進値0に対応する信号を発生する。ORゲート
34の出力信号はインバータ14の入力へ印加さ
れそこで反転されて2進値1に対応する信号とな
る。この反転された信号はゲート17の制御入力
44に印加されてゲート17を切替える。同様
に、ORゲート33の出力はインバータ15へ印
加されその反転信号が制御入力45を介してゲー
ト18へ印加されそれを切替える。
For standard operation, after a read is performed at address A in the first instruction cycle (e.g.,
T0), the instruction reaches the operation register 4 by means of the activated AND gate 12 in the second instruction cycle T1. Then, the output of operation register 4 is sent to gates 17 and 18.
It reaches the operation decoding unit 6 as the effective operation EOP1. Since there are no event signals (CM,..., x o-1 , and x o ),
The outputs of OR gates 31, 33, 34, and 35 produce signals corresponding to a binary zero value. The output signal of OR gate 34 is applied to the input of inverter 14 where it is inverted to a signal corresponding to a binary value of one. This inverted signal is applied to the control input 44 of gate 17 to switch gate 17. Similarly, the output of OR gate 33 is applied to inverter 15 and its inverted signal is applied via control input 45 to gate 18 to switch it.

第5図の命令サイクルT1に示すように、オペ
レーシヨンレジスタ4に在るアドレスAを有する
命令は命令カウンタ8の命令サイクル1T0に係つ
ている。命令カウンタ8の命令サイクルT0を第
5図で1T0と記す。
As shown in instruction cycle T1 in FIG. 5, the instruction having address A located in operation register 4 is associated with instruction cycle 1T0 of instruction counter 8. The instruction cycle T0 of the instruction counter 8 is indicated as 1T0 in FIG.

続く命令サイクルT2において、その命令はオ
ペレーシヨンレジスタ5に到達する。この命令は
命令サイクルカウンタ9の命令サイクルT0に係
る。命令サイクルカウンタ9の命令サイクルT0
を第5図で2T0と記す。
In the following instruction cycle T2, the instruction reaches the operation register 5. This instruction relates to instruction cycle T0 of instruction cycle counter 9. Instruction cycle T0 of instruction cycle counter 9
is written as 2T0 in Figure 5.

オペレーシヨン復号部6は、さらに、回路手段
を含み、この回路手段はデータフロー制御信号
(DF)とは別に、出力信号1T,2T,……,(n
+1)Tを発生する。これらの出力信号は復号さ
れた各命令のサイクルの長さを示している。出力
信号1Tは、1命令サイクルTの長さを有する1
つの命令が存在することを意味する。以下同様に
して命令サイクルの長さに応じて2T,……,(n
+1)Tと記す。
The operation decoding unit 6 further includes circuit means, which output signals 1T, 2T, . . . , (n
+1) Generate T. These output signals indicate the cycle length of each decoded instruction. The output signal 1T has a length of 1 instruction cycle T.
This means that there are two instructions. Similarly, depending on the length of the instruction cycle, 2T, ..., (n
+1) Marked as T.

第5図に示すように、アドレスAの命令は、2
命令サイクルにおよぶ長さを有し、さらにその最
後のサイクルTLは復号部10の第2の命令サイ
クルT1に対応している。復号部10,ANDゲー
ト20,21,22、及びORゲート23から成
る回路が信号TLを発生する。信号TLはある命令
の最後の命令サイクルに対応しており、その命令
の長さには無関係である。第1図に示すように、
この制御信号TLは、ANDゲート3と協働して命
令アドレスレジスタ2の新しい命令アドレスを管
理し、さらにANDゲート12と協働してオペレ
ーシヨンレジスタ4及び5の新しい命令を管理す
る。
As shown in FIG. 5, the instruction at address A is 2
It has a length as long as an instruction cycle, and its last cycle TL corresponds to the second instruction cycle T1 of the decoder 10. A circuit consisting of a decoder 10, AND gates 20, 21, 22, and an OR gate 23 generates a signal TL. Signal TL corresponds to the last instruction cycle of an instruction and is independent of the length of that instruction. As shown in Figure 1,
This control signal TL cooperates with AND gate 3 to manage a new instruction address in instruction address register 2, and further cooperates with AND gate 12 to manage a new instruction in operation registers 4 and 5.

さらに第5図に示すように、命令サイクルT3
において事象(図中CMと記す)が発生してい
る。この事象(CM)は命令実行に必要なオペラ
ンドがキヤツシユにないことを意味する。キヤツ
シユへのアクセスが存在し(制御信号CA)キヤ
ツシユデイレクトリが探索されて(信号CDA)
それが成功しない場合に、この事象が検知され
る。
Further, as shown in FIG. 5, instruction cycle T3
An event (denoted as CM in the figure) has occurred. This event (CM) means that the operands required to execute the instruction are not in the cache. Access to the cache exists (control signal CA) and the cache directory is explored (signal CDA)
If it is not successful, this event is detected.

命令サイクルT3でこの事象が発生するまでは、
パイプラインは除々に成立するので、各命令サイ
クルの間は命令アドレスレジスタ2に新しい命令
アドレスをロードすることはできない。従つて、
命令アドレスレジスタ2に存在するのは第3の命
令のアドレスCだけである。事象(CM)発生時
は、オペレーシヨンレジスタ4はアドレスBの命
令を有し、これに関連する命令サイクルカウンタ
8はサイクル時間1T0または1TLをそれぞれ示し
ている。何故ならこの命令は1サイクル命令だか
らである。オペレーシヨンレジスタ5はアドレス
Aの命令を有し、命令サイクルカウンタ9は2TL
にセツトされている。
Until this event occurs in instruction cycle T3,
Since the pipeline is established gradually, no new instruction address can be loaded into the instruction address register 2 during each instruction cycle. Therefore,
Only the address C of the third instruction exists in the instruction address register 2. When an event (CM) occurs, the operation register 4 has the instruction at address B, and the associated instruction cycle counter 8 indicates the cycle time 1T0 or 1TL, respectively. This is because this instruction is a one-cycle instruction. Operation register 5 has an instruction at address A, and instruction cycle counter 9 has a value of 2TL.
is set to .

命令サイクルカウンタ8及び9は1命令サイク
ル時間だけずらして接続してあるので、命令サイ
クルカウンタ9は1だけ小さいサイクル時間を示
している。これは次のようにして行われている。
命令サイクルカウンタ8がその時点で有効な値よ
りも1だけ増分された値を増分器11を介して受
け取る前、または命令サイクルカウンタ8の出力
が命令サイクルTLを示していた場合は初期値
“0”を受け取る前に、命令サイクルカウンタ8
の出力を命令サイクルカウンタ9にロードする。
第5図も、命令サイクルカウンタ8が命令サイク
ルカウンタ9よりも常に1ステツプだけ先行して
いることを示す。
Since instruction cycle counters 8 and 9 are connected with a difference of one instruction cycle time, instruction cycle counter 9 indicates a cycle time that is one smaller. This is done as follows.
Before the instruction cycle counter 8 receives a value incremented by 1 from the current valid value via the incrementer 11, or when the output of the instruction cycle counter 8 indicates an instruction cycle TL, the initial value is "0". ”, instruction cycle counter 8
The output of is loaded into the instruction cycle counter 9.
FIG. 5 also shows that instruction cycle counter 8 is always ahead of instruction cycle counter 9 by one step.

パイプラインの効果によつて、事象(CM)の
発生が特定の状況−事象検知時に既に存在する新
しいデータによつてオペレーシヨンレジスタ4の
ソース選択データが書き替えられる−を引き起こ
す。そうした状況は2つの動作を要する。1つは
強制されたオペレーシヨンの実行であり、上の例
では、先行サイクルにおいてキヤツシユに存存し
なかつたオペランドを構成するデータを、主記憶
からキヤツシユへ再ロードすることである。
Due to the effect of the pipeline, the occurrence of an event (CM) causes a specific situation - the source selection data in the operation register 4 is rewritten by new data already present at the time of event detection. Such a situation requires two actions. One is the execution of a forced operation, in the above example, reloading from main memory into the cache the data that constituted the operands that were not present in the cache in the previous cycle.

もう1つは命令段階及び実行段階の繰り返しで
ある。命令段階(A1TL)は、事象解決のために
強制され活動化されたオペレーシヨンの前の命令
実行サイクルと、重なり合つている。前述のよう
に、この命令の実行段階の間にソース及びターゲ
ツトが選択される。
The other is the repetition of the instruction and execution stages. The instruction phase (A1TL) overlaps with the instruction execution cycle prior to the operation being forced and activated to resolve the event. As previously discussed, the source and target are selected during the execution phase of this instruction.

先行命令サイクルTLの繰り返しを含む強制さ
れたオペレーシヨンは、オペレーシヨンレジスタ
に読み取られている強制されたオペレーシヨン
(ルーチン)のアドレスの所から始まる。事象信
号CMが発生すると、それが出力信号A〓及び
ANDゲート49を介することによつてオペレー
シヨンレジスタ5に関連する命令サイクルカウン
タ9を停止する。即ち、命令サイクルカウンタ9
はそのカウント値2TLを保持(凍結)する。強制
されたオペレーシヨンFOP1及びEOP2のため
にオペレーシヨンレジスタの有する制御情報によ
つてではあるが、こうして強制されたオペレーシ
ヨンは他のマイクロコード化された命令のオペレ
ーシヨンと同様にして、実行される。
A forced operation involving a repetition of the preceding instruction cycle TL begins at the address of the forced operation (routine) that is read into the operation register. When the event signal CM occurs, it becomes the output signal A〓 and
The instruction cycle counter 9 associated with the operation register 5 is stopped by way of an AND gate 49. That is, the instruction cycle counter 9
holds (freezes) its count value 2TL. Depending on the control information contained in the operation registers for forced operations FOP1 and EOP2, these forced operations are executed in the same manner as the operations of other microcoded instructions. Ru.

再ロードオペレーシヨンが終ると(第5図の例
では、命令サイクルTi+2のところで終る)、例え
オペレーシヨンレジスタ5が通常はターゲツト選
択用のオペレーシヨン復号部7を使用するもので
あつても、オペレーシヨンレジスタ5をソース選
択手段として使用するようにして、中断した命令
のソース選択は繰り返される。ゲート17aの制
御入力44a及びゲート18aの制御入力45a
での制御信号(2進値1に対応している)によつ
て、オペレーシヨンレジスタ5の内容は有効オペ
レーシヨンEOP1としてオペレーシヨン復号部
6へ移行する。こうしてソースが選択される。
When the reload operation ends (in the example of FIG. 5, it ends at instruction cycle T i +2 ), even if the operation register 5 normally uses the operation decoder 7 for target selection. Also, the source selection of the interrupted instruction is repeated using the operation register 5 as a source selection means. Control input 44a of gate 17a and control input 45a of gate 18a
With the control signal (corresponding to the binary value 1) at , the contents of the operation register 5 are transferred to the operation decoder 6 as the valid operation EOP1. In this way, the source is selected.

続く命令サイクルTi+3において、再びオペレー
シヨンレジスタ5の出力は、有効オペレーシヨン
EOP2として、オペレーシヨン復号部7に送ら
れる。オペレーシヨン復号部7はターゲツト選択
を遂行する。これが可能である理由は、ORゲー
ト31,33,34、及び35において2進値0
に対応する信号が再び印加されているからであ
る。以上のようにして、いかなるバツクアツプレ
ジスタまたは重複回路を必要とせず、命令実行サ
イクル2TLのみが繰り返される。
In the following instruction cycle T i+3 , the output of operation register 5 again indicates the valid operation.
It is sent to the operation decoding unit 7 as EOP2. The operation decoder 7 performs target selection. This is possible because in OR gates 31, 33, 34, and 35 the binary value 0
This is because the signal corresponding to is being applied again. In this manner, only the instruction execution cycle 2TL is repeated without the need for any backup registers or redundant circuits.

[発明の効果] 以上説明したように、本発明の命令処理装置
は、中断を強制するような特定の事象が発生した
際に、バツクアツプレジスタを必要とせず事象を
処理しかつ中断された命令の繰り返しに要する時
間を減ずることができる。
[Effects of the Invention] As explained above, when a specific event that forces an interruption occurs, the instruction processing device of the invention can process the event without requiring a backup register and execute the interrupted instruction. The time required for repetition can be reduced.

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

第1図は本発明の実施例の構成を表わすブロツ
ク図、第2図は基本的なマスター/スレーブ・フ
リツプフロツプを表わす図、第3図は並列命令処
理を説明するためのブロツク図。第4図は並列命
令処理のタイミングを表わす図、第5図は事象処
理を含む並列命令処理のタイミングを表わす図で
ある。
FIG. 1 is a block diagram showing the configuration of an embodiment of the present invention, FIG. 2 is a diagram showing a basic master/slave flip-flop, and FIG. 3 is a block diagram for explaining parallel instruction processing. FIG. 4 is a diagram showing the timing of parallel instruction processing, and FIG. 5 is a diagram showing the timing of parallel instruction processing including event processing.

Claims (1)

【特許請求の範囲】 1 パイプライン式プロセツサにおいて、命令の
中断を強制する事象が発生した際に命令を中断し
事象解決後にその命令を繰り返すための命令処理
装置であつて、 それぞれ通常の命令を記憶し、命令の中断を強
制する事象が発生したときはその時点で記憶して
いる命令をそのまま保存する直列的に接続された
複数のレジスタから成る第1のレジスタ群と、 前記第1のレジスタ群を様成する各レジスタに
対応して設けられ、中断を強制する事象が発生し
ないときはこれらの各レジスタの記憶している命
令を復号する複数の復号手段と、 前記事象を処理するための制御情報を生成する
第2のレジスタ群と、 前記事象が発生したときは前記第1のレジスタ
群で保存された命令の代わりに前記第2のレジス
タ群の生成する制御情報を前記複数の復号手段へ
転送し、事象解決終了時に、事象発生時の命令を
保存している前記第1のレジスタ群のうちの1つ
のレジスタの出力の行先を前記複数の復号手段の
1つへ順次的に切り替える手段と、 を有することを特徴とする命令処理装置。
[Scope of Claims] 1. An instruction processing device for interrupting an instruction when an event that forces the suspension of an instruction occurs in a pipelined processor, and repeating the instruction after the event is resolved, wherein each instruction is a first register group consisting of a plurality of serially connected registers that stores the instruction stored at that time and stores the instruction stored at that time as is when an event that forces suspension of the instruction occurs; a plurality of decoding means provided corresponding to each register forming the group and decoding the instructions stored in each of these registers when an event that forces an interruption does not occur; and for processing the event. a second register group that generates control information of the plurality of registers; and when the event occurs, the control information generated by the second register group is transferred to the plurality of registers instead of the instruction stored in the first register group. the output of one register of the first register group storing the instruction at the time of occurrence of the event is sequentially transferred to one of the plurality of decoding means when the event resolution is completed; An instruction processing device comprising: switching means;
JP59149848A 1983-09-16 1984-07-20 Instruction processor Granted JPS6065343A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE83109176.4 1983-09-16
EP83109174A EP0114188B1 (en) 1982-12-22 1983-09-16 Process and apparatus for the elimination of heavy tar obtained by the cooling of coke oven gas

Publications (2)

Publication Number Publication Date
JPS6065343A JPS6065343A (en) 1985-04-15
JPS633338B2 true JPS633338B2 (en) 1988-01-22

Family

ID=8190685

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59149848A Granted JPS6065343A (en) 1983-09-16 1984-07-20 Instruction processor

Country Status (1)

Country Link
JP (1) JPS6065343A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH048847Y2 (en) * 1986-10-06 1992-03-05

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH048847Y2 (en) * 1986-10-06 1992-03-05

Also Published As

Publication number Publication date
JPS6065343A (en) 1985-04-15

Similar Documents

Publication Publication Date Title
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5051896A (en) Apparatus and method for nullifying delayed slot instructions in a pipelined computer system
US5768559A (en) Multiple bank structured memory access device having flexible setting of a pipeline stage number
US3983541A (en) Polymorphic programmable units employing plural levels of phased sub-instruction sets
US4558411A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US4980819A (en) Mechanism for automatically updating multiple unit register file memories in successive cycles for a pipelined processing system
JPH08241291A (en) Processor
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
US4656578A (en) Device in the instruction unit of a pipeline processor for instruction interruption and repetition
JPS6058490B2 (en) Instruction branch mechanism
JPS6239780B2 (en)
KR20040016829A (en) Exception handling in a pipelined processor
JPS6351287B2 (en)
JP2008181551A (en) Vector tailgating for computer provided with vector register
JPH08509082A (en) Multi-phase, multi-access pipeline memory system
US5434986A (en) Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
JP3789937B2 (en) Chunk chain for vector processors
US4124892A (en) Data processing systems
US8200943B2 (en) Microprocessor
JPS633338B2 (en)
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
KR20080049727A (en) Processor array with separate serial module
JP3043341B2 (en) Microcomputer system
JP2668987B2 (en) Data processing device