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

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

Info

Publication number
JPH0776918B2
JPH0776918B2 JP1294078A JP29407889A JPH0776918B2 JP H0776918 B2 JPH0776918 B2 JP H0776918B2 JP 1294078 A JP1294078 A JP 1294078A JP 29407889 A JP29407889 A JP 29407889A JP H0776918 B2 JPH0776918 B2 JP H0776918B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
execution
hardwired
sequence
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 - Lifetime
Application number
JP1294078A
Other languages
English (en)
Other versions
JPH02195432A (ja
Inventor
ダニエル・ジヨセフ・バークル
アグネス・イー・ナガイ
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 OR CALCULATING; 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
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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

【発明の詳細な説明】 A.産業上の利用分野 本発明は、汎用ディジタル・コンピュータの分野及び高
速命令処理の方法と装置に関し、具体的にはハードワイ
ヤ式命令のパイプライン式処理制御に関する。
B.従来の技術 汎用ディジタル・コンピュータは、コンピュータの記憶
装置から順次受け取った一群の命令を処理する。コンピ
ュータのプロセッサによって処理または実行される命令
は、特定の命令がその実行でマイクロコードに依存して
いるかどうかに応じて分類できる。マイクロコードに依
存しない命令は、ハードワイヤ式命令と呼ばれ、コンピ
ュータのハードウェアのみによって実行され、コンピュ
ータの大半の基本機能を実行する。ハードワイヤ式命令
を処理する1つの方法は、前の命令が終了した後で次の
命令を開始して、それらを逐次実行するものである。こ
の方法は、実行中に命令がコンピュータのある部分から
次の部分に渡されるとき、ハードウェアの大半が遊休状
態になるので、通常、利用可能なコンピュータ・ハード
ウェアのかなりの量を消費する。別の処理方法は、ある
シーケンスの中の各命令の処理が複数の段を含むもので
ある。各段がそれ自体、プロセッサ内の他の段から独立
して処理できる場合、複数の段が同時に処理できる。そ
の結果、前の命令の第1段の実行の直後に次の命令の第
1段がプロセッサによって実行され、同時に前の命令の
第2段の実行も行なわれる。K段のパイプラインでは一
般に、ある命令のN番目の段が、その前の命令のN番目
の段の後に実行され、前のK−N個の命令のN+1段な
いし最後の段が、現命令のN番目の段と同時に実行され
る。
ハードワイヤ式命令のこれらの段には、就中、命令を読
み取って復号する適切な装置に命令を送り、命令を読み
取って復号し、次の処理のため命令に必要な情報を獲得
し、命令を実行し、その結果に作用する適切な装置に実
行の結果を送ることが含まれる。すべての段は同じ持続
時間で実行されるので、段によって実行速度が異なるこ
とはあっても、処理時間が最長の段によってすべての段
の持続時間が決まる。各段は、他の段で使用されないコ
ンピュータ装置の部分がその実行だけに必要となる点で
独自である。すなわち、命令が各段を通って移動すると
き、それぞれの段に無関係のコンピュータの他の部分
は、他の命令に対して自由に作用することができる。各
命令段は、その入力が他の段の出力に依存しているた
め、その実行が他の段から完全に独立してはいないが、
特定の段への入力が利用可能になると、こうした入力を
用いた命令の実行は、他の段から独立したものとなる。
したがって、異なるすべての段が同時に実行中であり、
逐次ではなく同時にいくつかの命令を処理することがあ
り得る。この方法は、利用可能なコンピュータ・ハード
ウェアをそれほど浪費せず、また命令のシーケンスを順
序通りに処理するのにそれほど時間もかからない。
このセグメント式命令処理方法はパイプライン化と呼ば
れ、たとえば、D.W.アンダーソン(Anderson)、F.J.ス
パラーチオ(Sparacio)及びR.M.トマスロー(Tomasul
o)の論文「IBMシステム/360 91型:マシン思想及び命
令処理(The IBM System/360 Model 91:Machine Philos
ophy and Instruction Handling)」、IBMジャーナル・
オブ・リサーチ・アンド・デベロップメント(IBM Jour
nal of Research and Development)、Vol.11、No.1(1
967年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の問題では、ど
の命令がどの実行段にあり、各命令が各段でどんな情報
を必要とするかを追跡するために、コンピュータで使用
されるハードウェアの複雑さと量を著しく増大させる必
要がある。こうした複雑さは、正当化されず、多くのシ
ステムでは対処できない。
C.発明が解決しようとする課題 したがって、本発明の目的は、1つのコンピュータでハ
ードワイヤ式命令をシーケンスどおりに処理する、高速
の方法及び装置を改良することである。
本発明の他の目的は、命令のパイプライン構造を修正し
ながら、命令を順序通りに処理することである。
本発明の他の目的は、順序通り処理を行ない、プロセッ
サの性能を改善し、コンピュータ・ハードウェア要件を
最小にするため、現在実行中の命令、データ処理システ
ムの現データ記憶要件、及びデータ処理システム内での
潜在的な競合条件に応じて、命令のあるセクションを遅
延させるか、命令のあるセクションを迂回するか、また
はシーケンス命令全体を遅延させることである。
本発明の他の目的は、特定の命令が複数のパイプライン
構造を有し、特定の命令を実行するために使用される複
数のパイプライン構造が、実行中の現在及び過去の命
令、実行中の命令の現在の記憶要件及びデータ処理シス
テムの現在の記憶能力に依存する、ハードワイヤ式命令
を処理する方法を提供することである。
本発明の他の目的は、ある命令の一部分を実行するため
の時間が、命令のすべての部分について一定であり、個
別の命令の異なる部分を実行するための異なる時間が同
期されているがオーバーラップしないように、ハードワ
イヤ式命令を処理することである。
本発明の他の目的は、すべての命令について処理しなけ
ればならない1つの命令のセクションの数が固定され
ず、命令がその中で実行されるパイプライン構造がその
命令の復号時に決定されるように、ハードワイヤ式命令
を処理することである。
本発明の他の目的は、各命令のパイプライン構造がシー
ケンス命令の実行中に修正される、ハードワイヤ式命令
の複数のシーケンス命令を処理することである。
D.課題を解決するための手段 本発明のデータ処理システムの処理装置は、複数のハー
ドワイヤ式命令を、スタック・モードまたは非スタック
・モードで実行する。処理装置は、実行モードをスタッ
ク・モードと非スタック・モードの間で切り替えるため
のシーケンス制御論理機構をもたらし、また命令の実際
の実行も行なう。処理装置は、命令がいつ実行できる状
態になるか、及びそれらの命令がどのパイプライン・モ
ードで実行されるかを決定するだけでなく、命令の実行
をも容易にする。プロセッサによって実行される各ハー
ドワイヤ式命令は、複数のセクションに分割され、通常
は、1)命令取出し、2)命令コード復号及び汎用レジ
スタ/局所記憶機構(GPR/LS)読取り、3)記憶アドレ
ス計算、4)変換ルックアサイド・バッファ、ディレク
トリ及びキャッシュ・アクセス、5)データ・バス活
動、6)実行、及び7)GPR/LS更新からなる。
これらの段から構成された命令シーケンスは、I番目の
命令の第N段がI−1番目の命令の第N+1段と同時に
処理されるように、第1モード(スタック・モード)で
プロセッサによって順次実行される。同様に、I−1番
目の命令の第N+1段はI−2番目の命令の第N+2段
と同時間に処理され、以下同様である。処理装置は、命
令のすべてのセクションを実行することにより、処理装
置が受け取ったのと同じ順序に命令の実行を維持する。
特定の命令の実行にある段が必要でない場合でさえ、プ
ロセッサは、次の段を処理する前にその段に相当する時
間待たなければならない(すなわち、空命令を実行す
る)。本発明は、実行シーケンスの処理順序を乱さず
に、不必要なすなわち空命令段を迂回する、第2の実行
モード(非スタック・モード)を提供する。シーケンス
論理機構が、シーケンス命令をどちらかの実行モードで
実行するのに必要な条件を決定する。プロセッサは、命
令の実行をプロセッサが受け取ったのと同じ順序に保つ
ため、スタック処理モードと非スタック処理モードの間
で切り替わる。非スタック実行モードによると、プロセ
ッサが浪費時間を利用し、プロセッサの性能を改善する
ことができるが、スタック・モードでは、順序外れの命
令処理を追跡するための、複雑で高価な論理機構が不要
である。
プロセッサが受け取った最初のシーケンス命令が、命令
レジスタにロードされて復号される。その命令がその実
行段を完了するためにコンピュータ記憶装置からのデー
タを必要とする場合は、命令はRX型と呼ばれ、スタック
・モードで実行される。その命令が、記憶装置のデータ
を必要としない場合は、RR型と呼ばれ、非スタック・モ
ードで実行できる。最初のシーケンス命令がRX型の場合
は、その命令は命令待ち行列にロードされて、実行前に
記憶装置からデータ・オペランドを受け取るのを待つ。
次いで、第2のシーケンス命令が、IRにロードされて復
号され、それも記憶装置のデータを必要とする場合に
は、命令待ち行列にロードされる。データ・オペランド
が戻されると、命令を実行のため直ちにプロセッサに送
ることができる。最初のシーケンス命令がRR型の場合、
プロセッサは、命令実行のパイプライン構造を変えて、
実行に不必要な段を迂回する非スタック・モードで命令
を実行する。プロセッサによって節約される時間は、後
続の命令全体を通じて少し変動する。というのは、後続
の命令は、非実行段が処理されるのを待つことによって
バック・アップされないからである。最初の命令がRX型
で、第2の命令がRR型の場合は、プロセッサは、RR型命
令をスタック実行モードで実行する。これは、シーケン
ス命令が、プロセッサが命令を受け取ったのと同じ順序
で実行を終了するようにするためである。プロセッサ
は、異なる命令が異なるコンピュータ資源の使用で競合
することを検出したときも、RR型命令をスタック・モー
ドで実行する。すなわち、たとえば、2つの命令が同時
に1つのデータ・バスへのアクセスを必要とする場合で
ある。この種の競合を生じる命令の組合せがプロセッサ
によって検出されたとき、命令実行をスタック・モード
に切り換えると、コンピュータ資源に対する適切な命令
の優先順位が確保される。
E.実施例 本発明のデータ処理システムの機能的記述を第1図に示
す。このシステムは、新規の実行処理装置(EPU)20、
命令事前処理装置(IPPU)50、及び命令処理装置(IP
U)10を含み、以下で図面の第1図ないし第4図を参照
して説明する。
第1図に示す本発明のIPU10は、IPPU50とEPU20から構成
されている。1連のハードワイヤ式命令を、命令バス15
と命令キャッシュ/制御記憶機構12を介してコンピュー
タ・システムの記憶装置60からIPU10が受け取る。デー
タ・バス17は、命令が要求する記憶データを、コンピュ
ータ・システムの記憶装置60からメモリ制御機構14を介
してEPUに供給する。命令を供給するコンピュータ・シ
ステムの記憶装置は、EPU20とIPPU50にデータを供給す
る記憶装置と同じである必要はない。EPU20は命令の実
行を担当し、IPPU50は記憶装置データ・オペランド要
求、競合とインターロックの検出、及びこうした命令の
実行に関連する大域パイプライン制御を担当する。記憶
装置データ・オペランド要求は、IPPU50が、ある命令が
その実行のためにコンピュータのメモリからのデータを
必要とすることを認識し、したがって、メモリからその
データを取り出す信号を論理機構中で生成するという条
件を参照する。競合とインターロックの検出は、異なる
命令がいつ同時にデータ・バスへのアクセスを要求する
かを感知する論理機構によって実行される。プロセッサ
が1本のデータ・バスしかもたないので、IPPU50論理機
構は、どの命令がバスに対する優先権を得るかを判断し
なければならない。IPPU50は、大域パイプライン制御機
構を使用して、ある命令に対していつ異なるパイプライ
ン構造を使用するかを判断し、この機構により、競合及
び記憶装置データ・オペランド要求に関する実行上の問
題を軽減する。本発明のIPU10によって実行される命令
は、IPU10が命令を受け取ったのと同じ順序(順序通り
の処理)で実行される。順序通りの処理を維持しながら
IPU10の性能を改善するために、本発明では、特定の命
令の実行に不必要なマシン・サイクルを節約するよう
に、実行中の命令のパイプライン構造が変更される。
次に第2図を参照して、本発明の命令の実行を実施する
ための新規の実行処理装置(EPU20)について説明す
る。第2図で、EPU20は、命令スタック(IS)22、命令
待ち行列36、スタック3(30)、及びプロセッサ34を含
む。プロセッサ34は、汎用レジスタ(GPR)、演算論理
機構(ALU)、回転マージ機構(RMU)、及び条件コード
論理機構を含む。IS22は、命令レジスタ(IR)24を含
み、シーケンス命令から1つの命令を受け取るように命
令バス15に接続されている。命令待ち行列(36)は、ス
タック1(26)とスタック2(28)から構成され、IR24
に接続されている。出力32(d)は、プロセッサで実行
される命令を表すスタック3(30)から生成される。ス
タック3(30)中の命令は、通常実行中のものである。
しかし、別個の出力32(a)、(b)、または(c)
が、IR24、スタック1(26)またはスタック2(28)か
らもゲートされる。したがって、IR、スタック1または
2中のいずれかの命令が、スタック3(30)の命令の代
わりに実行されることがある。
命令は、直接記憶装置から受け取ると、命令スタックIS
22にセーブされる。ISは、復号し実行すべき命令をセー
ブ(記憶)する命令レジスタ(IR)24を含む。必要な記
憶装置データが利用可能になるまで実行できない命令
は、オペランド及び命令論理機構が準備できるまで、命
令待ち行列36(スタック1と2)にセーブ(記憶)され
る。命令待ち行列は、命令事前処理速度をプロセッサ34
の実行速度に合わせるために使用される。すなわち、プ
ロセッサが命令を実行する方が、IPPU50が処理の様々な
条件を決定するよりも時間がかかる場合、事前処理が完
了した命令は待ち行列に入れられ、IPPU50は他の命令を
事前処理できるようになる。IR24は有効ビットVを含
む。この有効ビットVは、命令バス15によって1に設定
されると、有効命令がIR24に提示されていることを示
す。EPU20のスタック1、2、3も、それぞれ有効ビッ
トV1、V2、V3を含む。有効ビットV、V1、V2、V3は、そ
の命令がEPU20による実行を必要とする命令であるかど
うかを指定する。有効ビットは、制御信号A、B、C、
D(32(a)−(d))の生成に役立つ。これらの制御
信号は、どの命令を実行のためプロセッサに渡すかを指
定する。第2図で、当該の制御信号A、B、C、または
Dが1に設定されているとき、命令スタックのIR24、ス
タック1(26)、スタック2(28)またはスタック3
(30)から現れる個々の出力を直接実行することができ
る。
IR24から命令待ち行列36への命令の転送に関連する論理
機構を、第3図に示す。命令バス15からの命令は、有効
ビットVがセットされるとき、ラッチ52によってIR24に
ラッチされる。次いで有効ビットV1、V2、V3が生成され
るが、それは、V1、V2、V3の以前の状態、並びに第4図
の制御ラッチC1(70)及びC2(72)の状態、IR24中の命
令が実行のために記憶装置60からのデータを必要としな
いRR型命令であるかどうか、及び命令が実行不能命令
(NOOP)であるかどうかに依存する。有効ビットVは復
号=RX論理状態とANDされ出力X1を得る。有効ビットV
は復号=NOOP論理状態ともANDされ(その結果を出力X2
とする)、有効ビットVとANDされた有効ビットV1の組
合せが有効ビットV3とANDされた出力のV1+V2+V3と前
記X2がANDされ出力X3を得る。前記ANDされた論理状態の
各出力X1とX3がORされて、第3図の論理ゲート54で、ス
タック1のラッチをセットするための単一出力(有効ビ
ットV1)を生成する。IR24中の現命令が有効で(即ち有
効ビットV=1)でその命令がRR型のとき(即ちX1=0
のとき)、スタック1、2または3に以前の命令がない
(V1、V2、及びV3がすべてゼロ、即ちV1+V2+V3=0で
あり、従ってX3=0)場合、(X1とX3が共に0であるか
ら)論理ゲート54は、ラッチ56によってスタック1に命
令をラッチせず、V1はゼロのままとなる。命令がRX型の
命令で、その実行のために記憶装置データを必要とする
(有効ビットV=1で且つ復号=RX=1であるからX1=
1)場合、有効ビットV1は(X1とX3のORゲートの出力で
あるから)1にセットされ、その命令はラッチ56によっ
てスタック1にラッチされる。有効ビットV1は、制御ラ
ッチC1(70)とC2(72)の状態に応じて、AND論理ゲー
ト58と60を介して有効ビットV2とV3を生成する。次に、
命令は、有効ビットV2が生成されるときラッチ62を介し
てスタック1から2に渡され、さらに有効ビットV3が生
成されるときラッチ64を介してスタック3に渡される。
V3が1にセットされると、制御信号D(38(d))も1
にセットされて、スタック3からの命令がプロセッサ34
に渡される。
第4図には、新規な命令スタックを制御する制御ラッチ
を示す。制御ラッチC1(70)とC2(72)は、それぞれス
タック2(28)とスタック1(26)をプロセッサ34にゲ
ートする。制御ラッチC1(70)とC2(72)は、それぞれ
有効ビットV2及びV1とANDされて、制御信号C(38
(c))とB(38(b))を生成し、それらの制御信号
がスタック2(28)とスタック1(26)にゲートされ
る。同様に、NORゲート74は、スタック1、2、3から
有効ビットV1、V2、V3を受け取って、制御信号A(38
(a))を生成し、すべての有効ビットV1、V2、V3がオ
フ(ゼロ)になったとき、命令レジスタIR24からプロセ
ッサ34に命令をゲートする。このすべての有効ビットV
1、V2、V3がオフという条件は、待ち行列36が不要であ
り、命令が命令レジスタIR24から直接実行されることを
示す。命令処理装置(IPU)10がこのようにして命令レ
ジスタIR24からの命令を実行するとき、IPU10は、非ス
タック・モードにあると言われ、逆に実行される命令が
命令スタック(IS)22からくるときはスタック・モード
にあると言われる。制御ラッチC1(70)とC2(72)の状
態は、また有効ビットV2とV3の状態を決定する。第3図
に示すように、V1が“1"になり制御ラッチC2(72)の逆
数が“1"になった後でだけ、有効ビットV2が“1"にセッ
トできる。制御ラッチC1(70)は、V2がセットされた後
で、有効ビットV3に対して同じ効果をもつ。したがっ
て、このようにして、制御ラッチC1(70)とC2(72)
は、スタック2(28)中の既存の命令がスタック1(2
6)からの命令で重ね書きされず、同様に、スタック3
(30)の命令がスタック2(28)からの命令で重ね書き
されないようにする。
上記の順序論理機構が、本発明のパイプライン構造とあ
いまって、IPU10中のハードワイヤ式命令のより迅速な
処理が可能となる。第43頁第12行乃至第18行には、本発
明の結果として得られる、パイプライン構造の縮小の例
を示す。ここで、PR-STシーケンスの固定パイプライン
構造は、可変パイプライン構造処理モードでは、9サイ
クルから6サイクルに縮小される。第2図に示される大
域パイプライン制御信号A、B、C、D(38(a)乃至
38(d))は、IPPU50からEPU20に送られる論理信号で
あり、命令のどのセクション(IR、1、2、3)が実行
されるか、及び命令のそれらのセクションが他の命令の
他のセクションに関していつ実行されるかに関して、プ
ロセッサ34の実行を調節する。IPPU50は、命令が実行さ
れるときに、命令処理状況情報を記憶する。それには、
どのセクションがどの命令から実行されたかに関する過
去及び現在の命令の状況が含まれる。また、現在実行中
の命令及びデータ処理システム内の装置がバス・アクセ
スを要求するときに実行中の命令の、現在の記憶要件が
含まれる。次いで、この命令処理状況情報を使って、一
部の命令の一部のセクションの実行を迂回し、一部のセ
クションまたは命令全体を遅延させる大域パイプライン
制御信号が論理機構から生成される。
大域制御信号は、IR保留、スタック・モード及びスタッ
ク保留と呼ばれる。IR保留制御信号は、IPU10に、復号
セクションに現在ある命令だけを停止させてパイプライ
ンの次の段に進ませないようにする。残りのパイプライ
ン・セクションは、この制御信号の干渉を受けずに進
む。この制御信号が活動化されるのは、IPPU50の制御論
理機構が、復号セクションにある現在の命令と以前の未
完了の命令との間に潜在的衝突が存在することを検出し
たときである。この配置により、以前に開始した命令が
パイプライン式実行を進めることができ、したがって、
以前の命令を禁止されずに進行させて衝突を解決するこ
とができる。スタック・モード制御信号は2つの主要機
能を果たす。第1に、この制御信号は、パイプラインの
復号セクションにある現命令の処理モードを決定する。
EPU20及びIPU10を監視するIPPU50内の論理機構は一般
に、スタック・モードまたは非スタック可変パイプライ
ン・モードのどちらかで命令を処理するようにこの制御
信号を設定する。第2に、この制御信号は、パイプライ
ンの実行セクションに対する命令の供給源を明示的に制
御する。スタック・モード制御信号は、プロセッサ34に
送られた命令がIR22からきたものか、それとも命令待ち
行列36またはスタック3(30)からきたものかを判定す
る。たとえば、RX命令はスタック・モードで実行しなけ
ればならないので、RX命令を復号すると、スタック・モ
ード信号を活動化させるように状態論理機構が設定さ
れ、したがって命令がスタック・モードで処理される。
スタック保留制御信号は、EPU20に順序情報を送るのに
使用される。この制御信号は、命令スタック22と命令レ
ジスタ24の両方で命令の進行を停止させる。この制御信
号は、命令スタック22からすでに離れた命令には影響を
及ぼさず、それらの命令は完了するまで処理を続けるこ
とができる。この信号は一般に、その命令がパイプライ
ンの実行セクションに進んだときに、記憶データがRXま
たはLD型命令に利用できないときに使用される。こうし
た大域制御信号を使って命令のセクションを遅延または
迂回させると、ハードワイヤ式命令の可変パイプライン
構造がもたらされる。大域制御信号を使用すると、IPPU
50の順序付け論理機構とあいまって、可変パイプライン
構造をもつハードワイヤ式命令の順序通りの処理が容易
になる。
動作 本発明のIPU10の設計で使用される、ハードワイヤ式命
令用の標準のパイプライン構造は、7つのセクションか
ら構成される。各セクションは単一の実行期間またはマ
シン・サイクルで処理される。各実行期間またはマシン
間隔は同じ長さである。各セクションは以下の順序で実
行される。
ただし、 Iは命令取出し、 Rは命令コード復号及びGPR/LS読取り、 Aは記憶アドレス計算、 DはTLB/ディレクトリ及びデータ・キャッシュ・アクセ
ス、 Fはデータ・バス活動、 Eは実行、 WはGPR/LS更新である。
IPU10の最大の性能を得るため、新しいハードワイヤ式
命令の実行は、マシン・サイクルごとに開始する(順次
命令処理モード)。IPU10は、第1サイクルで第1命令
の命令取出しセクションを実行し、第2マシン・サイク
ルで第1命令の命令コード復号及びGPR/LS(汎用レジス
タ/局所記憶機構)読取りセクションを実行する。その
プロセッサは、各命令セクションを他のセクションから
独立して実行することができ、IPU10が第2マシン・サ
イクルで第1命令の命令コード復号とGPR/LS読取りを処
理しているときに、IPU10は第2マシン・サイクルで第
2命令の命令取出しセクションを自由に処理することが
できる。それには、順次命令の各実行期間が同期してい
る必要がある。すなわち、命令のK番目の実行期間の終
わりまたは始めが、K+1番目の実行期間の始め及びK1
番目の実行期間の終わりでもある。さらに、期間を同期
させるには、命令のどの実行期間の終わりまたは始め
も、以前及び以後の命令の実行期間の終わり及び始まり
である必要がある。IPU10は、この同じ組立てライン方
式で後続の命令を処理して、第3のマシン・サイクルの
始めに第3の命令に処理を開始させることができる。
標準の命令は少なくとも7つのセクションを必要とする
が、すべてのハードワイヤ式命令が上記のセクションの
すべての実行を必要とするわけではない。データが記憶
装置から戻されるのを待たなければならない場合、命令
がさらに多くのセクションを必要とすることもある。本
発明は126の異なるハードワイヤ式命令を実行するもの
であるが、それらの命令の一部は、標準パイプライン構
造と様々な命令の実行中に不要なセクションを迂回する
パイプライン構造のどちらでも利用することができる。
異なるパイプライン構造をいつ使用するかの選択は、ど
のタイプの命令を実行するかによって決まる。IPU10に
よって処理される命令は、まずその命令の機能を実行す
るのに必要なハードウェア・データ流れに応じて、範疇
別に分けられる。RX型と呼ばれる一部の命令は、必要な
記憶データが利用可能になるまで実行できない。RX命令
は、オペランド(記憶データ)と実行論理機構が準備で
きるまで、EPU20の命令スタックにセーブされ、これら
の命令は標準パイプライン構造でのみ実行される。RR型
命令と呼ばれる他の命令は、プロセッサ論理機構によっ
て実行され、記憶データを待つ必要はないので、RX型命
令よりも迅速にかつ少ない動作で実行でき、したがっ
て、異なるパイプライン構造を利用することができる。
ロード型(LD)と呼ばれる他の命令のグループは、実行
段を必要とせず、プロセッサ34の汎用レジスタに記憶デ
ータを直接取り出す。このタイプの命令を非スタック・
モードで実行すると、LD命令が取出し中のデータを後続
の命令が必要としない限り、後続の命令は、LD命令がそ
の動作を終了するのを待つ必要なく、実行を始めること
ができる。その場合、LD命令の後に続くRR命令は、非ス
タック・モードで処理できる。というのは、RR命令は、
不必要なデータを待つ必要がないからである。LDタイプ
命令は、RX命令と混ざり合っているときはスタック・モ
ードでも処理される。この場合、LD命令は、パイプライ
ンの実行セクション中は空動作であり、したがってRX命
令は、バスまたは他のハードワイヤ衝突を回避する。
最後の命令のグループは、命令コード復号及びGPR/LS
(R)読取り段の後で、記憶アドレス計算段(A)と実
行(E)セクションの使用が同時に行なわれることを特
徴とするものである。これらの命令は、データをIPU10
から、他の命令の場合のように特定のGPRではなく記憶
宛先に転送する点で、他の命令とは異なる。このグルー
プはさらに、記憶(ST)グループと分岐グループの2つ
のグループに分けることができる。記憶グループでは、
データは記憶装置に転送され、AセクションとEセクシ
ョンの後に、TLB/ディレクトリ及びデータ・キャッシュ
・アクセス・サイクル(D)とデータ・キャッシュ更新
サイクル(S)を必要とする。ST命令パイプラインは、
I R A/E D Sであり、RR型命令と動作がよく似ている。R
R命令とST命令の唯一の相違点は、ST命令はRR命令とは
異なる場所にデータを送るので、異なる衝突状況が発生
することである。しかし、分岐命令も、命令の流れを変
える機能を備えているので、共通のA/Eセクションをも
ち、A/Eセクションの後に命令取出し/命令キャッシュ
・アクセス・セクション(I)及びデータ・バス転送セ
クション(F)をもつ。分岐命令パイプラインは、I R
A/E I Fである。分岐命令は、そのパイプライン構造がS
T型及びRR型命令に類似しており、主な相違点は、デー
タをデータ・キャッシュまたは指定されたGPRではなく
命令キャッシュに送ることである。
RR型命令は、スタック・モード動作用と非スタック・モ
ード動作用の2つのパイプライン構造を備えている。ス
タック・モード動作及び非スタック・モード動作は、そ
れぞれ命令スタックからのまたは命令レジスタからの命
令の実行をいう。RX型命令のスタック・モード動作のパ
イプライン構造は非スタック・モード動作の場合と同じ
であり、上記のようにデータを待たなくてもよいと仮定
すると、通常7つの段から構成される。スタック・モー
ドで動作するRR型命令のパイプライン構造はRX命令用の
ものと同じである。しかし、非スタック・モードで動作
するRR型命令のパイプライン構造は、4段からRX命令で
使用される段数までの間で変化する。非スタック・モー
ドで動作するRR型命令のパイプライン構造は、いくつか
の段を必要としない機能のためにそれらの段に関連する
時間をとっておく必要がなく、したがってそうした時間
が浪費されないように、各命令ごとに調節される。本発
明のこの実施例では、この調節は、RR命令のオペランド
にその命令の命令コード復号と同じ段でアクセスできる
ようにすることによって行なわれる。RX命令のオペラン
ドは、それとは対照的に、記憶データにアクセスしない
RR命令では必要でない3つの追加段を介してアクセスし
なければならない。すなわち、非スタック・モードで実
行されるRR型命令は、スタック・モードで実行されると
きのRR命令よりも速く実行される。したがって、IPU10
性能の全体的改良は、非スタック・モードでどれだけの
RR型命令が実行できるか、及びスタック・モード・バー
ジョンに比べて非スタック・モード・パイプライン構造
でパイプライン段がどれだけ減るかによって決まる。
非スタック・モードのRR命令の順序通りの実行を維持
し、したがって、最小のハードウェア要件でIPU10の性
能を最大にするために、本発明は、命令シーケンスを実
行するための命令事前処理装置(IPPU、50)中での大域
パイプライン動作を制御するための順序制御論理機構を
提供する。命令はIPU10に提示されたのと同じ順序で実
行される。しかし、RX命令の後にくるRR型命令は、RX命
令よりも速く実行を完了することができ、不正確な実行
順序をもたらす。IPU順序論理機構はこの問題を認識
し、したがってRX命令に続くRR命令をEPU20のスタック
にロードして、標準パイプライン構造でスタック・モー
ドでそれの命令を処理する。命令待ち行列のすべての項
目が無効の(すなわち、有効ビットがもはや設定されて
ない)とき、IPU10は自由に非スタック・モードに戻っ
て、EPU20の命令レジスタからの他のRR命令を非スタッ
ク可変パイプライン構造で処理することができる。制御
論理機構はまた、RX命令が、データ・バスまたはプロセ
ッサへのアクセスを求めて、RR命令と競合し、衝突を起
こす可能性があることを認識する。同時に2つの実行
(E)セクションを処理しようと試みる場合が、こうし
たプロセッサ衝突の一例である。制御論理機構は、こう
した命令シーケンスを検出すると、衝突を回避するため
に適切な数のサイクルだけ第2命令の開始を遅延させ
る。この技術は最小の時間しか要せず、データ処理シス
テムの特定の部分へのアクセスを求める命令同士を調停
するために、複雑なハードウェアを必要としない。さら
に、RR命令がデータ記憶オペランドを必要としない場合
でさえ、その実行が、潜在的なIPUデータ・バス17の衝
突を引き起こす可能性がある。こうした問題の例は、GP
R/LS(W)更新セクションがTLB/ディレクトリ及びデー
タ・キャッシュ・アクセス(D)セクションと同じ時に
データ・バスを使用しようとするときである。順序制御
論理機構は、こうした衝突を認識して、こうした衝突が
起こるときはいつでも、IPU10を非スタック・モードか
らスタック・モードの実行に戻す。次にIPU10は、標準
パイプライン構造で命令を実行して、衝突の可能性を回
避する。
RX型またはRR型命令が記憶命令または分岐命令と混じり
合っているときにも衝突は発生する。RXの後にSTが続く
ときは、以下のパイプライン構造となる。
プロセッサ34は、一時にある命令の1つの実行セクショ
ンだけしか処理できない。したがって、記憶(ST)命令
のA/Eセクションを、空動作セクションによって、同時
に2つの実行セクションを処理する試みを回避するのに
十分な数のセクションだけ遅延させなければならない。
スタック・モード・パイプラインを空にし、スタック・
モードを離れて、IPPU記憶アドレス計算セクションと同
時にEPU(20)に実行セクションを実行させるのに、3
つのST空復号セクションが必要である。このパイプライ
ン構造は、3つの遅延セクションにより次の命令取出し
セクションをバックアップする。ただし、衝突を解決す
るための追加の論理ハードウェアは必要でない。分岐命
令は、この点に関してST命令と同じ問題をもっている。
というのは、分岐命令とST命令のパイプライン構造中で
の唯一の相違点は共通A/Eセクションより後にあるから
である。これらの衝突は、順序論理機構が、次に示すよ
うにST命令または分岐命令がその後に続くRR命令用の最
小のパイプライン構造をもたらすとき、RR命令に関して
除去される。
さらに、順序論理機構は、固定パイプライン構造だけで
はなく可変パイプライン構造をもたらすこともできるの
で、衝突を完全に削除する方法がない場合でさえ、衝突
に関連する遅延セクションの数の影響が最小になる。
IPPU50によってEPU20にもたらされる順序制御機構は、
各命令のパイプライン構造、及びどのマシン・サイクル
で命令が実行を開始するかを選択するために、IPPU50と
EPU20の状況を監視する。命令の実行は順序通りでなけ
ればならないが、特定の命令に対する縮小パイプライン
を選択し、IPPU50による命令の実行開始に適切な時間を
選択すると、IPU10の性能が向上する。特定の命令に対
してどのパイプライン構造を選択するかは、命令が実行
されるときのEPU20の状況によって決まる。このときに
適切なパイプライン構造を選択すると、IPU10は、順序
通りの動作を維持しながら、衝突を回避すると共に浪費
されるプロセッサ時間を最小にすることができる。
可変パイプライン構造の使用の例は、RX命令がロード・
アドレス(LA)命令の後に続き、LAの結果がRX命令のア
ドレス計算に使用される場合である。IPPU50は、EPU
に、非スタック・モードでLA命令を処理するよう指示す
る。というのは、命令が実行されるとき、IPPU50は、LA
命令が記憶装置からのデータを必要としないこと、及び
パイプライン中の以前のどの命令も記憶装置からのデー
タを必要としないことを知っているからである。RX命令
が後に続くLAの均一パイプライン構造は、次の通りであ
る。
RX命令が後に続くLAの可変パイプライン構造は、次の通
りである。
この命令シーケンスの均一パイプライン構造を検討する
と、RX命令中に3つの模擬サイクルがあることがわか
る。これは、RXのアドレス生成サイクルがLAの実行サイ
クルの後でしか開始できないので、この命令シーケンス
を完了するのに全部で11マシン・サイクルかかるからで
ある。可変パイプライン・シーケンスでは、LA命令に
は、A、D、Fの各セクションは不必要であり、したが
ってパイプラインの構造を3サイクル分縮小することが
できる。その結果RXが後に続くLAも3サイクル分縮小で
きる。
もう一つの例は、データ取出し命令がデータ記憶命令の
後に続くものである。この場合、実行の開始は1セクシ
ョン分遅延されて、潜在的なバス衝突がなくなり、した
がって本発明は、コストのかかる調停技術を使用する必
要がない。
可変パイプライン構造は、次の通りである。
記憶命令中に空動作がない場合、取出し命令のTLB及び
ディレクトリ・アクセス・セクション(D)は、その実
行セクション中に記憶命令と同じときにデータ・バスの
使用を試みることになる。こうすると、均一パイプライ
ン構造が与えられているものとして、(任意の調停技術
によって衝突を解決するのに1サイクルかかると仮定す
ると)命令シーケンスを完了するのに合計7マシン・サ
イクルかかることになる。可変パイプラインの使用中に
上記のように記憶命令の開始を1マシン・サイクル分遅
延させると、また調停技術に関連する余分なハードウェ
アなしで、そのシーケンスを7マシン・サイクルで完了
させることが可能になる。EPU20とIPPU50の開始を監視
することにより衝突を回避すると、可変パイプライン構
造の使用とあいまって、調停のためにセクションの最良
の場合1セクションの遅延を仮定すれば、より少ないコ
ストと複雑さで、少なくとも同じ性能が得られる。
EPU20に関して説明した順序付け論理機構が、上記のパ
イプライン構造とあいまって、以下の例で示されるよう
に、IPU10中でのハードワイヤ式命令のより迅速な処理
が可能になる。命令のシーケンスは、LA命令、次にRX型
命令、その後にLA命令という3つの非スタック・モード
命令を含む。本発明のIPUは、以下のようにして命令を
処理する。最初のLA命令がIR24にラッチされ、IPPU50が
命令を復号して、その命令が記憶データを必要とせずよ
り短いパイプライン構造を使用できると判定する。次
に、LA命令がEPUからプロセッサに渡される。というの
は、以前の3つの命令がスタック・モードの処理を必要
としないため、制御信号Aが1にセットされたからであ
る。3つの以前の命令が、非スタック・モードで処理さ
れるということは、有効ビットV1、V2、V3が0に設定さ
れて、スタック1、2または3に有効命令がなかったこ
とを示すという意味である。最初のLA命令がプロセッサ
に送られた後、RX型命令がIR24にラッチされる。IPPU50
は、その命令を復号して、この命令は記憶データを必要
とし、したがって完全パイプライン構造が必要であると
判定する。次に、順序論理機構は、その命令をスタック
1にラッチし、有効ビットV1を1にセットする。RX型命
令がスタック1に入れられた後、第2のLA命令がIRにラ
ッチされ、続いて復号される。IPPU50は、この命令が非
スタック・パイプライン構造を使用することができると
判定し、非スタック・モードで命令を処理する。しか
し、順序通りの処理が維持されるように、スタック1中
の命令は、IR29中の命令より前に処理されなければなら
ない。これは、順序論理機構で実施される。というの
は、有効ビット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/CS)、14……メモリ制御機構、20…
…実行処理装置(EPU)、22……命令スタック(IS)、2
4……命令レジスタ(IR)、26、28、30……スタック、3
4……プロセッサ、36……命令待ち行列、50……命令事
前処理装置(IPPU)、60……記憶装置。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−273134(JP,A) 特開 昭63−141131(JP,A) 特開 昭57−168350(JP,A) 特開 昭61−16335(JP,A) 特開 昭58−101346(JP,A)

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 JPH02195432A (ja) 1990-08-02
JPH0776918B2 true 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)

Families Citing this family (21)

* 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
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
US5745723A (en) * 1989-09-04 1998-04-28 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
EP1096360B1 (en) * 1999-10-25 2004-09-22 Texas Instruments Incorporated Intelligent power management for distributed processing systems
EP1217514A3 (en) * 2000-12-23 2003-08-13 International Business Machines Corporation Method and apparatus for bypassing pipeline stages
US7844799B2 (en) 2000-12-23 2010-11-30 International Business Machines Corporation Method and system for pipeline reduction
EP1505491A3 (en) 2003-08-06 2005-03-02 Agilent Technologies Inc Sequencer unit with instruction buffering
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

Family Cites Families (19)

* 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 日本電気株式会社 情報処理装置
JPS57168350A (en) * 1981-04-09 1982-10-16 Mitsubishi Electric Corp Information processor
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
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
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
JPS6116335A (ja) * 1984-07-02 1986-01-24 Nec Corp 情報処理装置
JPH0642199B2 (ja) * 1985-07-12 1994-06-01 株式会社日立製作所 複数条件成立判定方式
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
JPS63141131A (ja) * 1986-12-04 1988-06-13 Toshiba Corp パイプライン制御方式
US5005118A (en) * 1987-04-10 1991-04-02 Tandem Computers Incorporated Method and apparatus for modifying micro-instructions using a macro-instruction pipeline
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

Also Published As

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

Similar Documents

Publication Publication Date Title
US5099421A (en) Variable length pipe operations sequencing
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
US7162616B2 (en) Floating point unit pipeline synchronized with processor pipeline
US5499349A (en) Pipelined processor with fork, join, and start instructions using tokens to indicate the next instruction for each of multiple threads of execution
US5193157A (en) Piplined system includes a selector for loading condition code either from first or second condition code registers to program counter
US5293500A (en) Parallel processing method and apparatus
JP2500036B2 (ja) ハイブリッドパイプライン接続プロセッサおよびその処理方法
JP2503164B2 (ja) デ―タ処理システム
JP2788605B2 (ja) 計算機システム及び命令実行方法
JPH04367936A (ja) スーパースカラープロセッサ
US5778248A (en) Fast microprocessor stage bypass logic enable
US6101596A (en) Information processor for performing processing without register conflicts
JPWO1996027833A1 (ja) 情報処理装置
US5226166A (en) Parallel operation processor with second command unit
JPH09138778A (ja) セマフォ命令用のセマフォ・バッファを用いた装置と方法
JPH0232424A (ja) 命令処理装置
JP3790626B2 (ja) デュアルワードまたは複数命令をフェッチしかつ発行する方法および装置
US5926645A (en) Method and system for enabling multiple store instruction completions in a processing system
JPH0512751B2 (ja)
US20070260857A1 (en) Electronic Circuit
JPH08305567A (ja) 演算命令の並列処理方法および並列処理装置
JPH0769825B2 (ja) 並列処理装置
JP3520372B2 (ja) メモリ制御ユニット並びに入出力制御ユニットの動作におけるクリティカル・パスの削除
JPH08272608A (ja) パイプライン処理装置
JP2586690B2 (ja) 命令プリフェッチ装置