JPH02195432A - データ処理システム及び方法 - Google Patents

データ処理システム及び方法

Info

Publication number
JPH02195432A
JPH02195432A JP1294078A JP29407889A JPH02195432A JP H02195432 A JPH02195432 A JP H02195432A JP 1294078 A JP1294078 A JP 1294078A JP 29407889 A JP29407889 A JP 29407889A JP H02195432 A JPH02195432 A JP H02195432A
Authority
JP
Japan
Prior art keywords
instruction
instructions
execution
processor
hardwired
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.)
Granted
Application number
JP1294078A
Other languages
English (en)
Other versions
JPH0776918B2 (ja
Inventor
Daniel J Buerkle
ダニエル・ジヨセフ・バークル
Agnes Y Ngai
アグネス・イー・ナガイ
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 JPH02195432A publication Critical patent/JPH02195432A/ja
Publication of JPH0776918B2 publication Critical patent/JPH0776918B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • 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, 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、汎用ディジタル・コンピュータの分野及び高
速命令処理の方法と装置に関し、具体的にはハードワイ
ヤ式命令のパイプライン式処理制御に関する。
B、従来の技術 汎用ディジタル・コンピュータは、コンピュータの記憶
装置から順次受け取った一群の命令を処理する。コンピ
ュータのプロセッサによって処理または実行される命令
は、特定の命令がその実行でマイクロフードに依存して
いるかどうかに応じて分類できる。マイクロコードに依
存しない命令は、ハードワイヤ式命令と呼ばれ、コンピ
ュータのハードウェアのみによって実行され、コンピュ
ータの大半の基本機能を実行する。ハードワイヤ式命令
を処理する1つの方法は、前の命令が終了した後で次の
命令を開始して、それらを逐次実行するものである。こ
の方法は、実行中に命令がコンピュータのある部分から
次の部分に渡されるとき、ハードウェアの大半が遊休状
態になるので、通常、利用可能なコンピュータ・ハード
ウェアのかなりの量を消費する。別の処理方法は、ある
シーケンスの中の各命令の処理が複数の段を含むもので
ある。各段がそれ自体、プロセッサ内の他の段から独立
して処理できる場合、複数の段が同時に処理できる。そ
の結果、前の命令の第1段の実行の直後に次の命令の第
1段がプロセッサによって実行され、同時に前の命令の
第2段の実行も行なわれる。K段のパイプラインでは一
般に、ある命令のN番目の段が、その前の命令のN番目
の段の後に実行され、前のに−N個の命令のN+1段な
いし最後の段が、現命令のN番目の段と同時に実行され
る。
ハードワイヤ式命令のこれらの段には、就中、命令を読
み取って復号する適切な装置に命令を送り、命令を読み
取って復号し、次の処理のため命令に必要な情報を獲得
し、命令を実行し、その結果に作用する適切な装置に実
行の結果を送ることが含まれる。すべての段は同じ持続
時間で実行されるので、段によって実行速度が異なるこ
とはあっても、処理時間が最長の段によってすべての段
の持続時間が決まる。各段は、他の段で使用されないコ
ンピュータ装置の部分がその実行だけに必要となる点で
独自である。すなわち、命令が各段を通って移動すると
き、それぞれの段に無関係のコンビュータの他の部分は
、他の命令に対して自由に作用することができる。各命
令段は、その入力が他の段の出力に依存しているため、
その実行が他の段から完全に独立してはいないが、特定
の段への入力が利用可能になると、こうした入力を用い
た命令の実行は、他の段から独立したものとなる。した
がって、異なるすべての段が同時に実行中であり、逐次
ではなく同時にいくつかの命令を処理することがあり得
る。この方法は、利用可能なコンピュータ・ハードウェ
アをそれほど浪費せず、また命令のシーケンスを順序通
りに処理するのにそれほど時間もかからない。
このセグメント式命令処理方法はパイプライン化と呼ば
れ、たとえば、D、W、  アンダーソン(Ander
son) N F、J、  スパラーチオ(Spara
c io )及びR,M、  トマスロー(Tomas
u Io )の論文rIBMシステム/380 91型
:マシン思想及び命令処理(The IBM Syst
em/360 Model 91: MachineP
hilosophy and In5truction
 Handlfng) J 、I BMレジャール・オ
ブ・リサーチ・アンド・デベロップメント(IBM J
ournal of Re5earch andDev
elopment)  1V O1、11、No、  
1  (1967年1月)、pp、8−24に記載され
ている。
連続する命令の異なるセクションが同時に実行さレルの
で、コンピュータのスルーブツトが改善される。用語「
性能」は用語「スルーブツト」と同じ意味である。これ
は、サイクル当りの命令の数、すなわち、1マシン・サ
イクルで完了された命令の数を記録することによって測
定される。その測定値は、命令のバッチまたはプログラ
ムがプロセッサで処理されるときに生成される平均数で
ある。
この値は、命令のバッチまたはプログラムを終了するの
にかかるマシン・サイクル数の逆数である。
プログラム当りのマシン・サイクル数が少なくなるにつ
れて、性能すなわちスループットはよくなる。
コンピュータでハードワイヤ式命令を実行するのにどん
なパイプライン構造を使用するかは、コンピュータのハ
ードワイヤがどんな方式で動作するように設計されてい
るかによって決まる。通常、高性能のマシンでは、命令
の小さな部分しか実行しないが実行速度が極めて速いコ
ンピュータの部分を有する、もしくは別個のまたは異な
る命令段を特徴とする特定の計算技術によってコンピュ
ータのメモリにアクセスするなど、特別の用途用にコン
ピュータの部分を使用している。これにより、コンピュ
ータのスルーブツトが高くなるが、また一般に、個々の
命令が通過する段の数も増加する。
段の数が増加するということが、多数のハードワイヤ式
命令が特定の命令の実行中にすべての段を必要とはしな
いこととあいまって、スルーブツトが向上するとしても
、任意の時に使用されていないコンピュータ・ハードウ
ェアが依然としてかなりあることになる。これは、特定
のパイプライン構造が使用されているとき、その段がそ
の命令で必要とされる機能を実際に果たすかどうかにか
かわらず、命令がその命令のすべての段を実行しなけれ
ばならないからである。その結果、各段が、その段の実
際の実行時間にはかかわらず同じ量のプロセッサ時間を
割り当てられるので、ある命令の1つの段に関連する全
時間の間、プロセッサが遊休状態になる。命令の同時処
理では、前の命令のN番目の段の実行が終了するまで、
次の命令のN番目の段が実行を開始しないことが必要な
ので、1つの命令中のプロセッサの遊休時間は、1連の
命令の実行中に少し変動する。したがって、1つの命令
に関連するプロセッサの遊休時間によって前の命令のN
番目の段が遅延される場合、命令シーケンスの処理全体
を通じて、現命令のN番目の段なども遅延される。段の
実行の遅延がこのように連続して累計され、最終的には
プロセッサの性能上の重要な要素になる。
従来技術では、パイプライン式プロセッサの遊休プロセ
ッサ時間の問題に様々な方法で対処してきた。こうした
対処法の一つは、パイプライン式プロセッサで各命令の
復号を命令の復号とオペランド指定子の復号に分割する
ものである。次に、プロセッサがあらゆる復号段で命令
の動作及びオペランド部分を復号し、現命令がオペラン
ド復号を必要としないときは命令の後続のオペランド部
分を復号する。この処理命令方法は、取出しと緩衝記憶
を行なうため、命令の2つの部分用の2組のハードウェ
アを必要とする。さらに、この方法は、メモリからのデ
ータ取出しに関連する時間の節減だけを考えたもので、
命令の動作段の実行に関連する時間をどう節減するかの
問題に対処したものではない。遊休プロセッサ時間を減
少させる他の方法は、特定の2つの命令の組合せの順次
処理を行なって、実行結果を主記憶装置のアドレスにロ
ードし、その後は従来のパイプライン構造で必要なより
も少ない段でその命令の一組合せを実行するものである
。特定の2つの命令の組合せが繰返し現れるが、実行段
を浪費する命令の組合せが他にも多数ある。こうした組
合せに関するどの解決策も、多くの異なる命令の組合せ
で浪費される段をどう取り除くかという、より大きい一
般的な問題に対処してはいない。
他の従来方法は、パイプラインの命令取出しとアドレス
準備段の実行をオーバーラツプさせて、遊休プロセッサ
時間を減少させるものである。この場合、プロセッサは
、2つの命令からなるシーケンスの第2の命令の取出し
段が実行を完了するのをそれほど長く待つ必要はないの
で、2つの命令のシーケンス(各命令が取出し段と準備
段を含む)の第2の命令の取出しセクシヨンの実行速度
が速くなる。この命令処理方法では、取出し段またはア
ドレス準備段が実行とオーバーラツプするため、プロセ
ッサは現命令を実行するのに必要なオペランドをもつこ
とももたないこともあるので、どの命令がどの処理段に
あるかを制御し追跡するために追加の状態論理機構が必
要である。この追加の状態論理ハードウェアは、不必要
で複雑な負担であり、命令がアドレス準備段をもつ必要
がないとき、プロセッサ利用度の問題に対処するもので
もない。
他の従来技術は、命令処理用及び命令実行用の2つの固
定パイプライン構造で使用されるプロセッサ時間を減少
させようとするものである。このシステムは、パイプラ
イン制御回路を使って、各パイプラインの異なる段に命
令をゲートするものである。2つのパイプラインはそれ
ぞれ、長さが3段で、1つの段が2つのパイプライン間
でオーバーラツプする。これは、2つのパイプライン間
に5段を設ける必要があり、したがって、組み合わせた
パイプライン構造は単一の固定した構造のパイプライン
の不効率さを示す。
プロセッサの性能を改善するということは、不必要なマ
シン・サイクルを節減するということであり、そうした
サイクルをすべて迂回するだけでも、プロセッサの性能
が向上することになる。しかし、そうすると、次の2つ
の問題が生じる。
1)命令によってパイプライン長が異なることになる。
2)一部の命令は、処理を開始した順序とは違った順序
で処理を終了することになる。上記の第1の問題では、
どの命令が段を迂回したか、及びコンピュータ・ハード
ウェアがどんな条件のとき、異なる命令に対して異なる
パイプライン長が生じるのかを決定する必要がある。さ
らに、第2の問題が生じるのは、パイプ長さが短い命令
の方がパイプ長さがより長い命令よりも実行に時間がか
からず、したがってパイプ長がより長い命令より後から
実行を開始した場合でも、より早く終了するからである
。第2の問題では、どの命令がどの実行段にあり、各命
令が各段でどんな情報を必要とするかを追跡するために
、コンピュータで使用されるハードウェアの複雑さと量
を著しく増大させる必要がある。こうした複雑さは、正
当化されず、多くのシステムでは対処できない。
C0発明が解決しようとする課題 したがって、本発明の目的は、1つのコンピュータでハ
ードワイヤ式命令のシーケンスを処理する、高、速の方
法及び装置を改良することである。
本発明の他の目的は、命令のパイプライン構造を修正し
ながら、命令を順序通りに処理することである。
本発明の他の目的は、順序通り処理を行ない、プロセッ
サの性能を改善し、コンピュータ・ハードウェア要件を
最小にするため、現在実行中の命令、データ処理システ
ムの現データ記憶要件、及びデータ処理システム内での
潜在的な競合条件に応じて、命令のあるセクションを遅
延させるか、命令のあるセクションを迂回するか、また
は命令のシーケンス全体を遅延させることである。
本発明の他の目的は、複数の命令が複数のパイプライン
構造を有し、特定の命令を実行するために使用される複
数のパイプライン構造が、実行中の現在及び過去の命令
、実行中の命令の現在の記憶要件及びデータ処理システ
ムの現在の記憶能力に依存する、ハードワイヤ式命令を
処理する方法を提供することである。
本発明の他の目的は、ある命令の一部分を実行するため
の時間が、命令のすべての部分について一定であり、個
別の命令の異なる部分を実行するための異なる時間が同
期されているがオーバーラツプしないように、ハードワ
イヤ式命令を処理することである。
本発明の他の目的は、すべての命令について処理しなけ
ればならない1つの命令のセフシーンの数が固定されず
、命令がその中で実行されるパイプライン構造がその命
令の復号時に決定されるように、ハードワイヤ式命令を
処理することである。
本発明の他の目的は、各命令のパイプライン構造が命令
シーケンスの実行中に修正される、ハードウェア式命令
の複数のシーケンスを処理することである。
00課題を解決するための手段 本発明のデータ処理システムの処理装置は、複数のハー
ドワイヤ式命令を、スタック・モードまたは非スタック
・モードで実行する。処理装置は、実行モードをスタッ
ク・モードと非スタック・モードの間で切り替えるため
のシーケンス制御論理機構をもたらし、また命令の実際
の実行も行なう。
処理装置は、命令がいつ実行できる状態になるか、及び
それらの命令がどのパイプライン・モードで実行される
かを決定するだけでなく、命令の実行をも容易にする。
プロセッサによって実行される各ハードワイヤ式命令は
、複数のセクションに分割され、通常、は、1)命令取
出し、2)命令コード復号及び汎用レジスタ/局所記憶
機構(GPR/LS)読取り、3)記憶アドレス計算、
4)変換ルックアサンド・バッファ、ディレクトリ及び
キャッシュ・アクセス、5)データ・パス活動、8)実
行、及び7)GPR/LS更新からなる。
これらの段から構成された命令シーケンスは、1番目の
命令の第N段がI−1番目の命令の第N+1段と同時に
処理されるように、第1モード(スタック・モード)で
プロセッサによって順次実行される。同様に、■−1番
目の命令の第N+1段はI−2番目の命令の第N+2段
と同時間に処理され、以下同様である。処理装置は、命
令のすべてのセクションを実行することにより、処理装
置が受け取ったのと同じ順序に命令の実行を維持する。
特定の命令の実行にある段が必要でない場合でさえ、プ
ロセッサは、次の段を処理する前にその段に相当する時
間待たなければならない(すなわち、空命令を実行する
)。本発明は、実行シーケンスの処理順序を乱さずに、
不必要なすなわち空命令段を迂回する、第2の実行モー
ド(非スタック・モード)を提供する。シーケンス論理
機構が、命令シーケンスをどちらかの実行モードで実行
するのに必要な条件を決定する。プロセッサは、命令の
実行をプロセッサが受け取ったのと同じ順序に保つため
、スタック処理モードと非スタック処理モードの間で切
り替わる。非スタック実行モードによると、プロセッサ
が浪費時間を利用し、プロセッサの性能を改善すること
ができるが、スタック・モードでは、順序外れの命令処
理を追跡するための、複雑で高価な論理機構が不要であ
る。
プロセッサが受け取ったシーケンスの最初の命令が、命
令レジスタにロードされて復号される。
その命令がその実行段を完了するためにコンピュータ記
憶装置からのデータを必要とする場合は、命令はRX型
と呼ばれ、スタック・モードで実行される。その命令が
、記憶装置のデータを必要としない場合は、RR型と呼
ばれ、非スタック・モードで実行できる。シーケンスの
最初の命令がRX型の場合は、その命令は命令待ち行列
にロードされて、実行前に記憶装置からデータ・オペラ
ンドを受け取るのを待つ。次いで、そのシーケンスの第
2の命令が、工Rにロードされて復号され、それも記憶
装置のデータを必要とする場合には、命令待ち行列にロ
ードされる。データ・オペランドが戻されると、命令を
実行のため直ちにプロセッサに送ることができる。シー
ケンスの最初の命令がRR型の場合、プロセッサは、命
令実行のパイプライン構造を変えて、実行に不必要な段
を迂回する非スタック・モードで命令を実行する。プロ
セッサによって節約される時間は、後続の命令全体を通
じて少し変動する。というのは、後続の命令は、非実行
段が処理されるのを待つことによってバック・アップさ
れないからである。最初の命令がRX型で、第2の命令
がRR型の場合は、プロセッサは、RR型命令をスタッ
ク実行モードで実行する。これは、命令シーケンスが、
プロセッサが命令を受け取ったのと同じ順序で実行を終
了するようにするためである。プロセッサは、異なる命
令が異なるコンピュータ資源の使用で競合することを検
出したときも、RR型命令をスタック・モードで実行す
る。すなわち、たとえば、2つの命令が同時に1つのデ
ータ・バスへのアクセスを必要とする場合である。この
種の競合を生じる命令の組合せがプロセッサによって検
出されたとき、命令実行をスタック・モードに切り換え
ると、コンピュータ資源に対する適切な命令の優先順位
が確保される。
E、実施例 本発明のデータ処理システムの機能的記述を第1図に示
す。このシステムは、新規の実行処理装置(EPU)2
0、命令事前処理装置(IPPU)50、及び命令処理
装置(IPU)10を含み、以下で図面の第1図ないし
第4図を参照して説明する。
第1図に示す本発明のIPUIOは、I PPU3Oと
EPU20から構成されている。1連のハードワイヤ式
命令を、命令バス15と命令キャッシュ/制御記憶機構
12を介してコンピュータ・システムの記憶装置60か
らIPUIOが受け取る。
データ・バス17は、命令が要求する記憶データを、コ
ンピュータ・システムの記憶装置60からメモリ制御機
構14を介してEPUに供給する。
命令を供給するコンピュータ・システムの記憶装置は、
EPU20とlPPU3Oにデータを供給する記憶装置
と同じである必要はない。EPU20は命令の実行を担
当し、lPPU3Oは記憶装置データ・オペランド要求
、競合とインターロックの検出、及びこうした命令の実
行に関連する大域パイプライン制御を担当する。記憶装
置データ・オペランド要求は、lPPU3Oが、ある命
令がその実行のためにコンピュータのメモリからのデー
タを必要とすることを認識し、したがって、メモリから
そのデータを取り出す信号を論理機構中で生成するとい
う条件を参照する。競合とインターロックの検出は、異
なる命令がいつ同時にデータ・バスへのアクセスを要求
するかを感知する論理機構によって実行される。プロセ
ッサが1本のデータ・バスしかもたないので、lPPU
3O論理機構は、どの命令がバスに対する優先権を得る
かを判断しなければならない。lPPU3Oは、大域パ
イプライン制御機構を使用して、ある命令に対していつ
異なるパイプライン構造を使用するかを判断し、この機
構により、競合及び記憶装置データ・オペランド要求に
関する実行上の問題を軽減する。本発明のIPUIOに
よって実行される命令は、IPUIOが命令を受け取っ
たのと同じ順序(順序通りの処理)で実行される。順序
通りの処理を維持しながらI PU 10の性能を改善
するために、本発明では、特定の命令の実行に不必要な
マシン・サイクルを節約するように、実行中の命令のパ
イプライン構造が変更される。
次に第2図を参照して、本発明の命令の実行を実施する
ための新規の実行処理装置(EPU20)について説明
する。第2図で、EPU20は、命令スタック(IS)
22、命令待ち行列38.スタック3(30)、及びプ
ロセッサ34を含む。
プロセッサ34は、汎用レジスタCGPR) 、演算論
理機構(ALU) 、回転マージ機構(RMU)、及び
条件コード論理機構を含む。Isは、命令レジスタ(I
R)24を含み、命令シーケンスから1つの命令を受け
取るように命令バス15に接続されている。命令待ち行
列(36)は、スタック1 (2B)とスタック2 (
28)から構成され、lR24に接続されている。出力
32(d)は、プロセッサで実行される命令を表すスタ
ック3(30)から生成される。スタック3 (30)
中の命令は、通常実行中のものである。しかし、別個の
出力32 (a)、(b)、または(c)が、lR24
、スタック1(2θ)またはスタック2(28)からも
ゲートされる。したがって、IR1スタック1または2
中のいずれかの命令が、スタック3 (30)の命令の
代わりに実行されることがある。
命令は、直接記憶装置から受け取ると、命令スタックl
522にセーブされる。Isは、復号し実行すべき命令
をセーブ(記憶)する命令レジスタ(IR)24を含む
。必要な記憶装置データが利用可能になるまで実行でき
ない命令は、オペランド及び命令論理機構が準備できる
まで、命令待ち行列36(スタック1と2)にセーブ(
記憶)される。命令待ち行列は、命令事前処理速度をプ
ロセッサ34の実行速度に合わせるために使用される。
すなわち、プロセッサが命令を実行する方が、lPPU
3Oが処理の様々な条件を決定するよりも時間がかかる
場合、事前処理が完了した命令は待ち行列に入れられ、
lPPU3Oは他の命令を事前処理できるようになる。
lR24はを効ピットvを含む。この有効ビットは、命
令バスによって1に設定されると、有効命令がlR24
に提示されていることを示す。EPUのスタック1−3
も、それぞれ有効ビットV1、V2、V3を含む。有効
ビットV、Vl、V2、V3は、その命令がEPU20
による実行を必要とする命令であるかどうかを指定する
。有効ビットは、制御信号A1B1C,D 、(32(
a)−(b))の生成に役立つ。これらの制御信号は、
どの命令を実行のためプロセッサに渡すかを指定する。
第2図で、当該の制御信号A1B1C,またはDが1に
設定されているとき、命令スタックのlR24、スタッ
ク1(28)、スタック2 (28)またはスタック3
C30)から現れる個々の出力を直接実行することかで
きる。
lR24から命令待ち行列への命令の転送に関連する論
理機構を、第3図に示す。命令バスからの命令は、有効
ビットVがセットされるとき、ラッチ52によってlR
24にラッチされる。次いで有効ビットV1、v2、V
3が生成されるが、それは、vl、v2、v3の以前の
状態、並びに制御ラッチCI(70)及びC2(72)
の状態、lR24中の命令が実行のために記憶装置から
のデータを必要としないRR型命令であるかどうか、及
び命令が実行不能命令(NOOP)であるかどうかに依
存する。有効ビットは復号=RX論理状態とANDされ
る。有効ビットは復号=NOOP論理状態ともANDさ
れ、有効ビット2とANDされた有効ビット1の組合せ
が何効ビット3とANDされる。ANDされた論理状態
の各出力がORされて、第3図の論理ゲート54で、ス
タック1のラッチをセットするための単一出力を生成す
る。lR24中の現命令が有効でその命令がRR型のと
き、スタック1.2または3に以前の命令かない(vl
、v2、及びv3がすべてゼロ)場合、論理ゲート54
は、ラッチ56によってスタック1に命令をラッチせず
、vlはゼロのままとなる。命令がRX型の命令で、そ
の実行のために記憶装置データを必要とする場合、有効
ピッ)Vlは1にセットされ、その命令はラッチ56に
よってスタック1にラッチされる。有効ビット■1は、
制御ラッチCI(70)とC2(72)の状態に応じて
、AND論理ゲート58と60を介して有効ビットV2
とV3を生成する。次に、命令は、有効ビットv2が生
成されるときラッチ82を介してスタック1から2に渡
され、さらに有効ピッ)V3が生成されるときラッチ6
4を介してスタック8に渡される。v3が1にセットさ
れると、制御信号D (38(d) )も1にセットさ
れて、スタック3からの命令がプロセッサに渡される。
第4図には、新規な命令スタックを制御する制御ラッチ
を示す。制御ラッチC1(70)とC2(72)は、そ
れぞれスタック2 (28)とスタック1 (2B)を
プロセッサ84にゲートする。制御ラッチC1(70)
と02(72)は、それぞれ有効ビット2及び1とAN
Dされて、制御信号CとBを生成し、それらの制御信号
がスタック2(28)とスタック1 (2B)にゲート
される。
同様に、NORゲート48は、スタック1.2.3から
有効ビットv1、V2、v3を受け取って、制御信号A
 (38(a) )を生成し、すべての有効ビットv1
、v2、v3がオフ(ゼロ)になったとき、命令レジス
タlR24からプロセッサ34に命令をゲートする。こ
の条件は、待ち行列36が不要であり、命令が命令レジ
スタlR24から直接実行されることを示す。命令処理
装置(IPU)10がこのようにして命令レジスタ24
からの命令を実行するとき、IPUIOは、非スタック
・モードにあると言われ、逆に実行される命令が命令ス
タック(Is)22からくるときはスタック・モードに
あると言われる。制御ラッチC1(70)とC2(72
)の状態は、また有効ピッ)V2とv3の状態を決定す
る。vlがnl?+になり制御ラッチC2(72)の逆
数が71″になった後でだけ、有効ビットv2が1″に
セットできる。制御ラッチC1(70)は、v2がセッ
トされた後で、有効ピッ)V3に対して同じ効果をもつ
。したがって、このようにして、制御ラッチC1(70
)とC2(72)は、スタック2(28)中の既存の命
令がスタック1 (28)からの命令で重ね書きされず
、同様に、スタック3(30)の命令がスタック2 (
28)からの命令で重ね書きされないようにする。
上記の順序論理機構が、本発明のパイプライン構造とあ
いまって、IPUIO中のハードワイヤ式命令のより迅
速な処理が可能となる。第5図には、本発明の結果とし
て得られる、パイプライン構造の縮小の例を示す。ここ
で、RR−8Tシーケンスの固定パイプライン構造は、
可変パイプライン構造処理モードでは、9サイクルから
6サイクルに縮小される。大域パイプライン制御信号は
、lPPU3OからEPU20に送られる論理信号であ
り、命令のどのセクションが実行されるか、及び命令の
それらのセクションが他の命令の他のセクションに関し
ていつ実行されるかに関して、プロセッサ34の実行を
調節する。lPPU3Oは、命令が実行されるときに、
命令処理状況情報を記憶する。それには、どのセクショ
ンがどの命令から実行されたかに関する過去及び現在の
命令の状況が含まれる。また、現在実行中の命令及びデ
ータ処理システム2内の装置がバス・アクセスを要求す
るときに実行中の命令の、現在の記憶要件が含まれる。
次いで、この命令処理状況情報を使って、一部の命令の
一部のセクションの実行を迂回し、一部のセクションま
たは命令全体を遅延させる大域パイプライン制御信号が
論理機構から生成される。
大域制御信号は、IR保留、スタック・モード及びスタ
ック保留と呼ばれる。IR保留制御信号は、工PU10
に、復号セクションに現在ある命令だけを停止させてパ
イプラインの次の段に進ませないようにする。残りのパ
イプライン・セクシレンは、この制御信号の干渉を受け
ずに進む。この制御信号が活動化されるのは、lPPU
3Oの制・御論理機構が、復号セクションにある現在の
命令と以前の未完了の命令との間に潜在的衝突が存在す
ることを検出したときである。この配置により、以前に
開始した命令がパイプライン式実行を進めることができ
、したがって、以前の命令を禁止されずに進行させて衝
突を解決することができる。
スタック・モード制御信号は2つの主要機能を果たす。
第1に、この制御信号は、パイプラインの復号セクタ1
ンにある現命令の処理モードを決定する。EPU20及
びI PU 10を監視するlPPU3O内の論理機構
は一般に、スタック・モードまたは非スタック可変パイ
プライン・モードのどちらかで命令を処理するようにこ
の制御信号を設定する。第2に、この制御信号は、パイ
プラインの実行セクタ1ンに対する命令の供給源を明示
的に制御する。スタック・モード制御信号は、プロセッ
サ34に送られた命令がlR22からきたものか、それ
とも命令待ち行列36またはスタック3(30)からき
たものかを判定する。たとえば、RX命令はスタック・
モードで実行しなげればならないので、RX命令を復号
すると、スタック・モード信号を活動化させるように状
態論理機構が設定され、したがって命令がスタック・モ
ードで処理される。スタック保留制御信号は、EPU2
0に順序情報を送るのに使用される。この制御信号は、
命令スタック22と命令レジスタ24の両方で命令の進
行を停止させる。この制御信号は、命令スタック22か
らすでに離れた命令には影響を及ぼさず、それらの命令
は完了するまで処理を続けることができる。この信号は
一般に、その命令がパイプラインの実行セクションに進
んだときに、記憶データがRXまたはLD型命令に利用
できないときに使用される。こうした大域制御信号を使
って命令のセフシーンを遅延または迂回させると、ハー
ドワイヤ式命令の可変パイプライン構造がもたらされる
。大域制御信号を使用すると、lPPU3Oの順序付は
論理機構とあいまって、可変パイプライン構造をもつハ
ードワイヤ式命令の順序通りの処理が容易になる。
動作 本発明のIPUIOの設計で使用される、ハードワイヤ
式命令用の標準のパイプライン構造は、7つのセクショ
ンから構成される。各セクションは単一の実行期間また
はマシン・サイクルで処理される。各実行期間またはマ
シン間隔は同じ長さである。各セクションは以下の順序
で実行される。
サイクル番号  1234567 セクション   IRADFEW ただし、 ■は命令取出し、 Rは命令コード復号及びGPR/LS読取り、Aは記憶
アドレス計算、 DはTLB/ディレクトリ及びデータ・キャッシユ・ア
クセス、 Fはデータ・バス活動、 Eは実行、 WはGPR/LS更新である。
I PU 10の最大の性能を得るため、新しいハード
ワイヤ式命令の実行は、マシン・サイクルごとに開始す
る(順次命令処理モード)。IPUloは、第1サイク
ルで第1命令の命令取出しセクションを実行し、第2マ
シン・サイクルで第1命令の命令コード復号及びGPR
/LS (汎用レジスタ/局所記憶機構)読取りセクシ
ョンを実行する。
そのプロセッサは、各命令セクションを他のセクション
から独立して実行することができ、IPUloが第2マ
シン・サイクルで第1命令の命令コード復号とGPR/
LS読取りを処理しているときに、IPUIOは第2マ
シン・サイクルで第2命令の命令取出しセクションを自
由に処理することができる。それには、順次命令の各実
行期間が同期している必要がある。すなわち、命令のに
番目の実行期間の終わりまたは始めが、K+1番目の実
行期間の始め及びK1番目の実行期間の終わりでもある
。さらに、期間を同期させるには、命令のどの実行期間
の終わりまたは始めも、以前及び以後の命令の実行期間
の終わり及び始まりである必要がある。IPUIOは、
この同じ組立てライン方式で後続の命令を処理して、第
3のマシン・サイクルの始めに第3の命令に処理を開始
させることができる。
標準の命令は少なくとも7つのセクションを必要とする
が、すべてのハードワイヤ式命令が上記のセクションの
すべての実行を必要とするわけではない。データが記憶
装置から戻されるのを待たなければならない場合、命令
がさらに多くのセクションを必要とすることもある。本
発明は126の異なるハードワイヤ式命令を実行するも
のであるが、それらの命令の一部は、標準パイプライン
構造と様々な命令の実行中に不要なセクションを迂回ス
るパイプライン構造のどちらでも利用することができる
。異なるパイプライン構造をいつ使用するかの選択は、
どのタイプの命令を実行するかによって決まる。I P
U 10によって処理される命令は、まずその命令の機
能を実行するのに必要なハードウェア・データ流れに応
じて、範喘別に分けられる。RX型と呼ばれる一部の命
令は、必要な記憶データが利用可能になるまで実行でき
ない。RX命令は、オペランド(記憶データ)と実行論
理機構が準備できるまで、EPU20の命令スタックに
セーブされ、これらの命令は標準パイプライン構造での
み実行される。RR型命令と呼ばれる他の命令は、プロ
セッサ論理機構によって実行され、記憶データを待つ必
要はないので、RX型命令よりも迅速にかつ少ない動作
で実行でき、したがって、異なるパイプライン構造を利
用することができる。
ロード型(LD)と呼ばれる他の命令のグループは、実
行段を必要とせず、プロセッサ34の汎用レジスタに記
憶データを直接取り出す。このタイプの命令を非スタッ
ク・モードで実行すると、LD命令が取出し中のデータ
を後続の命令が必要としない限り、後続の命令は、LD
命令がその動作を終了するのを待つ必要なく、実行を始
めることができる。その場合、LD命令の後に続<RR
命令は、非スタック・モードで処理できる。というのは
、RR命令は、不必要なデータを待つ必要がないからで
ある。LDタイプ命令は、RX命令と混ざり合っている
ときはスタック・モードでも処理される。この場合、L
D命令は、パイプラインの実行セフシーン中は空動作で
あり、したがってRX命令は、バスまたは他のハードワ
イヤ衝突を回避する。
最後の命令のグループは、命令コード復号及びGPR/
LS (R)読取り段の後で、記憶アドレス計算段(A
)と実行(E)セクションの使用が同時に行なわれるこ
とを特徴とするものである。
これらの命令は、データをIPUから、他の命令の場合
のように特定のGPRではなく記憶宛先に転送する点で
、他の命令とは異なる。このグループはさらに、記憶(
ST)グループと分岐グループの2つのグループに分け
ることができる。記憶グループでは、データは記憶装置
に転送され、AセクションとEセクションの後に、TL
B/ディレクトリ及びデータ・キャッシュ・アクセス・
サイクル(D)とデータ・キャッシュ更新サイクル(S
)を必要とする。ST命令パイプラインは、I  RA
/E  D  Sであり、RR型命令と動作がよく似て
いる。RR命令とST命令の唯一の相違点は、ST命令
はRR命令とは異なる場所にデータを送るので、異なる
衝突状況が発生することである。しかし、分岐命令も、
命令の流れを変える機能を備えているので、共通のA/
Eセクシeンをもち、A/Eセクシロンの後に命令取出
し/命令キャッシュ・アクセス・セクション(I)及び
データ・バス転送セクション(F)をもつ。分岐命令パ
イプラインは、I  RA/E  I  Fである。分
岐命令は、そのパイプライン構造がST型及びRR型命
令に類似しており、主な相違点は、データをデータ・キ
ャッシュまたは指定されたGPRではなく命令キャッシ
ュに送ることである。
RR型命令は、スタック・モード動作用と非スタック・
モード動作用の2つのパイプライン構造を備えている。
スタック・モード動作及び非スタック・モード動作は、
それぞれ命令スタックからのまたは命令レジスタからの
命令の実行をいう。RX型命令のパイプライン構造は非
スタック・モード動作の場合と同じであり、上記のよう
にデータを待たなくてもよいと仮定すると、通常7つの
段から構成される。スタック・モードで動作するRR型
命令のパイプライン構造はRX命令用のものと同じであ
る。しかし、非スタック・モードで動作するRR型命令
のパイプライン構造は、4段からRX命令で使用される
段数までの間で変化する。
パイプライン構造は、いくつかの段を必要としない機能
のためにそれらの段に関連する時間をとっておく必要が
なり、シたがってそうした時間が浪費されないように、
各命令ごとに調節される。本発明のこの実施例では、こ
の調節は、RR命令のオペランドにその命令の命令コー
ド復号と同じ段でアクセスできるようにすることによっ
て行なわれる。RX命令のオペランドは、それとは対照
的に、記憶データにアクセスしないRR命令では必要で
ない3つの追加段を介してアクセスしなければならない
。すなわち、非スタック・モードで実行されるRR型命
令は、スタック・モードで実行されるときのRR命令よ
りも速く実行される。したがって、IPUIO性能の全
体的改良は、非スタック・モードでどれだけのRR型命
令が実行できるか、及びスタック・モード・バージ日ン
に比べて非スタック・モード・パイプライン構造でパイ
プライン段がどれだけ減るかによって決まる。
非スタック・モードのRR命令の順序通りの実行を維持
し、したがって、最小のハードウェア要件でIPUlo
の性能を最大にするために、本発明は、命令シーケンス
を実行するための命令事前処理装置(IPPU、50)
中での大域パイプライン動作を制御するための順序制御
論理機構を撮供する。命令は、IPUloに提示された
のと同じ順序で実行される。しかし、RX命令の後にく
るRR型命令は、RX命令よりも速く実行を完了するこ
とができ、不正確な実行順序をもたらす。
IPU順序論理機構はこの問題を認識し、したがってR
X命令に続<RR命令をEPU20のスタックにロード
して、標準パイプライン構造でスタック・モードでそれ
の命令を処理する。命令待ち行列のすべての項目が無効
の(すなわち、有効ビットがもはや設定されてない)と
き、IPUIOは自由に非スタック・モードに戻って、
EPU20の命令レジスタからの他のRR命令を非スタ
ック可変パイプライン構造で処理することができる。
制御論理機構はまた、RX命令が、データ・バスまたは
プロセッサへのアクセスを求めて、RR命令と競合し、
衝突を起こす可能性があることを認識する。同時に2つ
の実行(E)セクションを処理しようと試みる場合が、
こうしたプロセッサ衝突の一例である。制御論理機構は
、こうした命令シーケンスを検出すると、衝突を回避す
るために適切な数のサイクルだけ第2命令の開始を遅延
させる。この技術は最小の時間しか要せず、データ処理
システムの特定の部分へのアクセスを求める命令同士を
調停するために、複雑なハードウェアを必要としない。
さらに、RR命令がデータ記憶オペランドを必要としな
い場合でさえ、その実行が、潜在的なIPUデータ・バ
ス17の衝突を1弓き起こす可能性がある。こうした問
題の例は、GPR/LS (W)更新セクションがTL
B/ディレクトリ及びデータ・キャッシュ・アクセス(
D)セクションと同じ時にデータ・バスを使用しようと
するときである。順序制御論理機構は、こうした衝突を
認識して、こうした衝突が起こるときはいつでも、IP
Uloを非スタック・モードからスタック・モードの実
行に戻す。次にIPUloは、標準パイプライン構造で
命令を実行して、衝突の可能性を回避する。
RX型またはRR型命令が記憶命令または分岐命令と混
じり合っているときにも衝突は発生する。
RXの後にSTが続くときは、以下のパイプライン構造
となる。
サイクル番号 12345678910セクシロン  
IRADFEV RX セクション    I  RR*  R*  R*A/
ED  ST セクション      I  I*I*I:RA  D
F。。
次のI 木は空動作を示す。
プロセッサ34は、−時にある命令の1つの実行セクシ
ョンだけしか処理できない。したがって、記憶(ST)
命令のA/Eセクシeンを、空動作セクションによって
、同時に2つの実行セクションを処理する試みを回避す
るのに十分な数のセフシーンだけ遅延させなければなら
ない。スタック・モード・パイプラインを空にし、スタ
ック・モードを離れて、IPPU記憶アドレス計算セク
ションと同時にEPU (20)に実行セクションを実
行させるのに、3つのST空復号セクシ日ンが必要であ
る。このパイプライン構造は、3つの遅延セクションに
より次の命令取出しセクションをバックアップする。た
だし、衝突を解決するための追加の論理ハードウェアは
必要でない。分岐命令は、この点に関してST命令と同
じ問題をもっている。
というのは、分岐命令とST命令のパイプライン構造中
での唯一の相違点は共通A/Eセクシーンより後にある
からである。これらの衝突は、順序論理機構が、次に示
すようにST命令または分岐命令がその後に続<RR命
令用の最小のパイプライン構造をもたらすとき、RR命
令に関して除去される。
サイクル番号 セクション R セクション T セクション 次の1 REV I   RA/ED   S I   RA   DF、、、。、9 さらに、順序論理機構は、固定パイプライン構造だけで
はなく可変パイプライン構造をもたらすこともできるの
で、衝突を完全に削除する方法がない場合でさえ、衝突
に関連する遅延セクションの数の影響が最小になる。
I P P U 50 ニヨッテE P U 20 ニ
もたらされる順序制御機構は、各命令のパイプライン構
造、及びどのマシン・サイクルで命令が実行を開始する
かを選択するために、lPPU6OとEPU20の状況
を監視する。命令の実行は順序通りでなければならない
が、特定の命令に対する縮小パイプラインを選択し、l
PPU3Oによる命令の実行開始に適切な時間を選択す
ると、IPUIOの性能が向上する。特定の命令に対し
てどのパイプライン構造を選択するかは、命令が実行さ
れるときのEPU20の状況によって決まる。このとき
に適切なパイプライン構造を選択すると、IPUloは
、順序通りの動作を維持しながら、衝突を回避すると共
に浪費されるプロセッサ時間を最小にすることができる
可変パイプライン構造の使用の例は、RX命令がロード
・アドレス(LA)命令の後に続き、LAの結果がRX
命令のアドレス計算に使用される場合である。lPPU
3Oは、EPUに、非スタック・モードでLA命令を処
理するよう指示する。
というのは、命令が実行されるとき、lPPU3Oは、
LA命令が記憶装置からのデータを必要としないこと、
及びパイプライン中の以前のどの命令も記憶装置からの
データを必要としないことを知っているからである。R
X命令が後に続<LAの均一パイブライン構造は、次の
通りである。
サイクル番号 1 2 3 4 5 6 7 8 9 
 No  11セクシ日ン  I  RA*D*F*E
  WA セクシvr7    1:  RR*  R* R中A
  D  F  E  VRX命令が後に統<LAの可
変パイプライン構造は、次の通りである。
サイクル番号 12345678 セクション  IRE  讐 L A         +−−−+−−−+−−−+
−−−+−−−+−−−+−−−+−−−+セクション
     I  RA  D  F  E  WRX 
            ÷−−−+−−−+−−−÷
−−−十−−−+−−−+軸−+この命令シーケンスの
均一パイブライン構造を検討すると、RX命令中に3つ
の模擬サイクルがあることがわかる。これは、RXのア
ドレス生成サイクルがLAの実行サイクルの後でしが開
始できないので、この命令シーケンスを完了するのに全
部で11マシン・サイクルかがるがらである。
可変パイプライン・シーケンスでは、LA命令にはAl
D、Fの各セクションは不必要であり、したがってパイ
プラインの構造を3サイクル分縮小することができる。
その結果RXが後に続<LAも3サイクル分縮小できる
もう一つの例は、データ取出し命令がデータ記憶命令の
後に続くものである。この場合、実行の開始は1セクシ
ヨン分遅延されて、潜在的なパス衝突がなくなり、した
がって本発明は、コストのかかる調停技術を使用する必
要がない。
可変パイプライン構造は、次の通りである。
サイクル番号 1234567 セクション  IRADF 取出し    +−一−+−−−+−−−+−−−+−
一−+−−−+−−一÷セクシロン    IR*RA
/EDS記憶    十−一一一一十 *は空動作を示す。
記憶命令中に空動作がない場合、取出し命令のTLB及
びディレクトリ・アクセス◆セクション(D)は、その
実行セクション中に記憶命令と同じときにデータ・バス
の使用を試みることになる。
こうすると、均一パイブライン構造が与えられているも
のとして、(任意の調停技術によって衝突を解決するの
に1サイクルかかると仮定すると)命令シーケンスを完
了するのに合計7マシン・サイクルかかることになる。
可変パイプラインの使用中に上記のように記憶命令の開
始を1マシン・サイクル分遅延させると、また調停技術
に関連する余分なハードウェアなしで、そのシーケンス
を7マシン・サイクルで完了させることが可能になる。
EPU20とlPPU3Oの開始を監視することにより
衝突を回避すると、可変バイブライン構造の使用とあい
まって、調停のためにセクションの最良の場合1セクシ
ヨンの遅延を仮定すれば、より少ないコストと複雑さで
、少なくとも同じ性能が得られる。
EPU20に関して説明した順序付は論理機構が、上記
のパイプライン構造とあいまって、以下の例で示される
ように、IPUIO中でのハードワイヤ式命令のより迅
速な処理が可能になる。命令のシーケンスは、LA命令
、次にRX型命令、その後にLA命令という3つの非ス
タック・モード命令を含む。本発明のIPUは、以下の
ようにして命令を処理する。最初のLA命令がlR24
にラッチされ、lPPU3Oが命令を復号して、その命
令が記憶データを必要とせずより短いパイプライン構造
を使用できると判定する。次に、LA命令がEPUから
プロセッサに渡される。というのは、以前の3つの命令
がスタック・モードの処理を必要としないため、制御信
号Aが1にセットされたからである。3つの以前の命令
が、非スタック・モードで処理されるということは、有
効ビットVL V2、V3がOに設定されて、スタック
1.2または3に有効命令がなかったことを示すという
意味である。最初のLA命令がプロセッサに送られた後
、RX型命令がlR24にラッチされる。lPPU3O
は、その命令を復号して、この命令は記憶データを必要
とし、したがって完全パイプライン゛構造が必要である
と判定する。次に、順序論理機構は、その命令をスタッ
ク1にラッチし、有効ビットV1を1にセットする。R
X型命令がスタック1に入れられた後、第2のLA命令
がIRにラッチされ、続いて復号される。lPPU3O
は、この命令が非スタック・パイプライン構造を使用す
ることができると判定し、非スタック・モードで命令を
処理する。しかし、順序通りの処理が維持されるように
、スタック1中の命令は、lR24中の命令より前に処
理されなければならない。これは、順序論理機構で実施
される。
というのは、有効ビットv1がゼロにセットされるまで
、制御信号Aは、1にセットされないからである。最初
のLA命令が処理を終了した後、有効ビット、ラッチ条
件及び命令情報のタイプの組合せによって、制御信号B
が1にセットされる。
次に、制御信号Bは、スタック1中のRX命令をプロセ
ッサに送る。RX命令がプロセッサに送られると、有効
ビットv1がゼロにリセットされ、したがって制御信号
Aはこのとき1にセットされる。その結果、第2のLA
命令が非スタック・パイプライン構造で実行されるため
にプロセッサに送られる。
以上、本発明をこの特定の実施例に関して説明してきた
が、当業者なら理解できるように、本発明の範囲を逸脱
せずに他の実施例も可能である。
たとえば、スタック・モード・パイプライン構造の定義
で使用されるセクシヨンの数を増減させ、データ処理シ
ステムで使用されるハードワイヤ命令の数を増加させ、
命令を実行するためのデータ処理システムの資源内で衝
突を引き起こす記憶装置を増加させ、または別の記憶装
置を使用するのは、すべて本発明の範囲に含まれる本発
明の異なる実施例の例である。
F、効果 本発明によれば、1つのコンピュータでのハードワイヤ
式命令のシーケンス処理が改善される。
【図面の簡単な説明】 第1図は、データ処理システムの構成図である。 第2図は、IPU内の実行処理装置EPUの構成要素及
び制御線の構成図である。 第3図は、EPU内で育効ビットを生成するのに使用さ
れる制御論理機構の構成図である。 第4図は、EPU内で実行のため命令をゲートするのに
使用される制御論理機構の図である。 10・・・・命令処理装置(IPU)、12・・・・命
令キャッシュ/制御記憶機構(IC/C8)、14・・
・・メモリ制御機構、20・・・・実行処理装置(EP
U)、22・・・・命令スタック(IS)、24・・・
・命令レジスタ(IR)、2B、28.30・・・・ス
タック、34・・・・プロセッサ、36・・・・命令待
ち行列、50・・・・命令事前処理装置(I PPU)
、θ0・・・・記憶装置。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーシヨン 代理人  弁理士  頓  宮  孝 (外1名) 第111!5 第2図 命令パス

Claims (2)

    【特許請求の範囲】
  1. (1)命令のシーケンスを実行するデータ処理システム
    において、 ハードワイヤ式命令のシーケンス、 前記ハードワイヤ式命令のシーケンスを受け取るための
    実行処理装置、 前記ハードワイヤ式命令の同じ前記シーケンスを独立し
    て受け取るための命令事前処理装置、前記複数のハード
    ワイヤ式命令のシーケンスを記憶し、そこから前記実行
    処理装置と前記命令事前処理装置が前記ハードワイヤ式
    命令のシーケンスを受け取る、少なくとも1つの記憶装
    置、前記実行処理装置、前記命令事前処理装置、及び前
    記記憶装置に接続された、前記複数のハードワイヤ式命
    令のシーケンスを前記実行処理装置及び前記命令事前処
    理装置に送るための、命令バス、前記実行処理装置に接
    続された、前記実行処理装置で前記記憶データと共に前
    記ハードワイヤ式命令を実行し、またパイプライン構造
    中のそれぞれのまたは複数のハードワイヤ式命令を実行
    するために、前記記憶装置から前記実行処理装置に記憶
    データを送るための、データ・バス、及び各セクション
    がそれぞれ単一の実行期間に前記処理装置によって実行
    される、それぞれ複数の異なる数のセクションを含むパ
    イプライン構造を含み、 前記実行処理装置が、ハードワイヤ式命令の前記シーケ
    ンスを実行して、前記シーケンスから、各ハードワイヤ
    式命令に対して、実行すべき前記複数のパイプライン構
    造の1つを決定し、 実行された各命令の前記パイプライン構造が、前記ハー
    ドワイヤ式命令を含む前記複数のシーケンスのそれぞれ
    で異なる最小数の前記セクションを有し、 前記複数のシーケンスのそれぞれに対する前記ハードワ
    イヤ式命令のそれぞれの前記最小数のセクションの前記
    実行により、パイプライン構造の未使用セクションが除
    去される、 データ処理システム。
  2. (2)実行処理装置と命令事前処理装置によって、命令
    バスを介して第1記憶装置からハードワイヤ式命令のシ
    ーケンスを受け取るステップ、 前記実行処理装置が前記ハードワイヤ式命令を受け取っ
    た後で、前記ハードワイヤ式命令を、少なくともその1
    つのグループが記憶データの要件をもつ、少なくとも2
    つのグループに分割するステップ、 前記命令が完全に実行される前に前記グループの少なく
    とも一方のために前記記憶データを検索するステップ、 単一セクション実行期間中に実行される複数のセクショ
    ンを含むパイプライン構造における、複数のパイプライ
    ン構造をもつ前記ハードワイヤ式命令のそれぞれまたは
    複数を実行する第1実行ステップ、 各ハードワイヤ式命令に対して、実行される前記複数の
    パイプライン構造の1つを、前記ハードワイヤ式命令の
    シーケンスから決定するステップ、各ハードワイヤ式命
    令が前記ハードワイヤ式命令を含む前記複数のシーケン
    スのそれぞれで異なる各ハードワイヤ式命令の最小数の
    セクションを有する前記ハードワイヤ式命令の前記パイ
    プライン構造を実行する第2実行ステップ、及び 前記複数のハードワイヤ式命令のシーケンスのそれぞれ
    について前記ハードワイヤ式命令の前記最小数のセクシ
    ョンを実行することにより、パイプライン構造の未使用
    セクションを除去するステップ、 からなる、データ処理システムにおけるハードワイヤ式
    命令の処理方法。
JP1294078A 1988-12-30 1989-11-14 データ処理システム及び方法 Expired - Lifetime JPH0776918B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US292292 1988-12-30
US07/292,292 US5099421A (en) 1988-12-30 1988-12-30 Variable length pipe operations sequencing

Publications (2)

Publication Number Publication Date
JPH02195432A true JPH02195432A (ja) 1990-08-02
JPH0776918B2 JPH0776918B2 (ja) 1995-08-16

Family

ID=23124046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1294078A Expired - Lifetime JPH0776918B2 (ja) 1988-12-30 1989-11-14 データ処理システム及び方法

Country Status (3)

Country Link
US (1) US5099421A (ja)
EP (1) EP0376004A3 (ja)
JP (1) JPH0776918B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056428A (ja) * 2003-08-06 2005-03-03 Agilent Technol Inc 命令バッファリング機能付きシーケンサユニット

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5031096A (en) * 1988-06-30 1991-07-09 International Business Machines Corporation Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor
US5226127A (en) * 1989-04-07 1993-07-06 Intel Corporation Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions
US5745723A (en) * 1989-09-04 1998-04-28 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
JPH07120284B2 (ja) * 1989-09-04 1995-12-20 三菱電機株式会社 データ処理装置
US5615349A (en) * 1990-09-04 1997-03-25 Mitsubishi Denki Kabushiki Kaisha Data processing system capable of execution of plural instructions in parallel
US5185872A (en) * 1990-02-28 1993-02-09 Intel Corporation System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy
JP2818249B2 (ja) * 1990-03-30 1998-10-30 株式会社東芝 電子計算機
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
US5471626A (en) * 1992-05-06 1995-11-28 International Business Machines Corporation Variable stage entry/exit instruction pipeline
CA2123442A1 (en) * 1993-09-20 1995-03-21 David S. Ray Multiple execution unit dispatch with instruction dependency
JP3532975B2 (ja) * 1993-09-27 2004-05-31 株式会社ルネサステクノロジ マイクロコンピュータおよびそれを用いて命令を実行する方法
US5699506A (en) * 1995-05-26 1997-12-16 National Semiconductor Corporation Method and apparatus for fault testing a pipelined processor
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
US5940859A (en) * 1995-12-19 1999-08-17 Intel Corporation Emptying packed data state during execution of packed data instructions
US6122692A (en) * 1998-06-19 2000-09-19 International Business Machines Corporation Method and system for eliminating adjacent address collisions on a pipelined response bus
DE69920460T2 (de) * 1999-10-25 2005-01-20 Texas Instruments Inc., Dallas Intelligente Leistungssteuerung in verteilten Verarbeitungssystemen
US7844799B2 (en) 2000-12-23 2010-11-30 International Business Machines Corporation Method and system for pipeline reduction
EP1217514A3 (en) * 2000-12-23 2003-08-13 International Business Machines Corporation Method and apparatus for bypassing pipeline stages
JP2007528549A (ja) 2004-03-10 2007-10-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電子回路
US7945765B2 (en) * 2008-01-31 2011-05-17 International Business Machines Corporation Method and structure for asynchronous skip-ahead in synchronous pipelines

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57168350A (en) * 1981-04-09 1982-10-16 Mitsubishi Electric Corp Information processor
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
JPS6116335A (ja) * 1984-07-02 1986-01-24 Nec Corp 情報処理装置
JPS6214229A (ja) * 1985-07-12 1987-01-22 Hitachi Ltd 複数条件成立判定方式
JPS63141131A (ja) * 1986-12-04 1988-06-13 Toshiba Corp パイプライン制御方式
JPS63273134A (ja) * 1987-04-10 1988-11-10 タンデム コンピューターズ インコーポレーテッド マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1527289A (en) * 1976-08-17 1978-10-04 Int Computers Ltd Data processing systems
CA1174370A (en) * 1980-05-19 1984-09-11 Hidekazu Matsumoto Data processing unit with pipelined operands
JPS6028015B2 (ja) * 1980-08-28 1985-07-02 日本電気株式会社 情報処理装置
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
JPS58207152A (ja) * 1982-05-28 1983-12-02 Nec Corp パイプライン演算装置テスト方式
JPS592143A (ja) * 1982-06-29 1984-01-07 Hitachi Ltd 情報処理装置
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
EP0150177A1 (en) * 1983-07-11 1985-08-07 Prime Computer, Inc. Data processing system
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
US4890218A (en) * 1986-07-02 1989-12-26 Raytheon Company Variable length instruction decoding apparatus having cross coupled first and second microengines
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
US4858113A (en) * 1987-04-10 1989-08-15 The United States Of America As Represented By The Director Of The National Security Agency Reconfigurable pipelined processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57168350A (en) * 1981-04-09 1982-10-16 Mitsubishi Electric Corp Information processor
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
JPS6116335A (ja) * 1984-07-02 1986-01-24 Nec Corp 情報処理装置
JPS6214229A (ja) * 1985-07-12 1987-01-22 Hitachi Ltd 複数条件成立判定方式
JPS63141131A (ja) * 1986-12-04 1988-06-13 Toshiba Corp パイプライン制御方式
JPS63273134A (ja) * 1987-04-10 1988-11-10 タンデム コンピューターズ インコーポレーテッド マクロ命令パイプラインを用いてマイクロ命令を変更する方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005056428A (ja) * 2003-08-06 2005-03-03 Agilent Technol Inc 命令バッファリング機能付きシーケンサユニット
JP4634756B2 (ja) * 2003-08-06 2011-02-16 ヴェリジー(シンガポール) プライベート リミテッド 命令バッファリング機能付きシーケンサユニット

Also Published As

Publication number Publication date
EP0376004A2 (en) 1990-07-04
EP0376004A3 (en) 1991-10-23
JPH0776918B2 (ja) 1995-08-16
US5099421A (en) 1992-03-24

Similar Documents

Publication Publication Date Title
JPH02195432A (ja) データ処理システム及び方法
US5353418A (en) System storing thread descriptor identifying one of plural threads of computation in storage only when all data for operating on thread is ready and independently of resultant imperative processing of thread
US5968135A (en) Processing instructions up to load instruction after executing sync flag monitor instruction during plural processor shared memory store/load access synchronization
KR100368350B1 (ko) 다중 스레드를 이용하는 처리 시스템과 다중 스레드 이용방법, 다중 독립 스레드 실행 방법과 스레드 실행 제어장치, 스레드와 연계한 프리페치 버퍼 이용 방법, 및스레드 실행 콘트롤러
EP0365188B1 (en) Central processor condition code method and apparatus
US5293500A (en) Parallel processing method and apparatus
WO1990014629A2 (en) Parallel multithreaded data processing system
JPH02224023A (ja) 命令ストリーム機能を有するプロセサ制御型インターフェイス
JPH04367936A (ja) スーパースカラープロセッサ
JPH03129433A (ja) 並列処理装置および並列処理方法
JP2002268878A (ja) スレッド間優先度可変プロセッサ
US5555384A (en) Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction
JP3400458B2 (ja) 情報処理装置
JPH0232424A (ja) 命令処理装置
JPH10301779A (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
JPH01224840A (ja) 情報処理装置におけるバイパスライン制御方式
JPH04215129A (ja) 連続指令実行方法及び装置
JPH0512751B2 (ja)
US5276853A (en) Cache system
JPS6116335A (ja) 情報処理装置
JP2866421B2 (ja) 複数パス並列処理方法
JPS6134186B2 (ja)
JP2586690B2 (ja) 命令プリフェッチ装置
JPH08272608A (ja) パイプライン処理装置
JPH09146769A (ja) パイプライン処理装置