JPS62262142A - 複数実行ユニツト・ユニプロセツサ・システム - Google Patents

複数実行ユニツト・ユニプロセツサ・システム

Info

Publication number
JPS62262142A
JPS62262142A JP62077654A JP7765487A JPS62262142A JP S62262142 A JPS62262142 A JP S62262142A JP 62077654 A JP62077654 A JP 62077654A JP 7765487 A JP7765487 A JP 7765487A JP S62262142 A JPS62262142 A JP S62262142A
Authority
JP
Japan
Prior art keywords
execution unit
sink
tag
source
gpr
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
JP62077654A
Other languages
English (en)
Other versions
JPH0260010B2 (ja
Inventor
ジェームズ・ハーバート・ポメリン
トーマス・ロバーツ・プサック
ルドルフ・ナサン・レクトシャッフェン
フランク・ジョン・スパラシオ
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 JPS62262142A publication Critical patent/JPS62262142A/ja
Publication of JPH0260010B2 publication Critical patent/JPH0260010B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming

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)

Abstract

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

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A”、産業上の利用分野 B、従来技術・ C0発明が解決しようとする問題点 り1問題点を解決するための手段 E、実施例 El、本発明の基本的概念(第1図) E2.汎用レジスタ及びタグ・フィールド(第2図) E3.動作の具体例(第3図) E4.動作のフローチャート (第4図〜第9A、9B図) F0発明の効果 A、産業上の利用分野 本発明は、毎秒数百万の命令を実行する能力をもつ複雑
且つ高速な電子計算システムの分野に特定の用途がある
。さらに詳しくは、本発明は、単一命令ストリーム上で
同時にまたは重なり合う実行構成中で動作し得る複数の
異なる実行ユニットをもつシステムに関する。より詳し
くは、本発明は、非同期的に動作し得る個別の実行ユニ
ットによってそのようなシステムの汎用レジスタに配置
され、またはそのような汎用レジスタから引き出された
データの論理的完全性を保証する、汎用レジスタ中のデ
ータの管理のための制御機構及びアーキテクチャに関す
る。
B、従来技術 現在の汎用コンピュータのアーキテクチャ上の定義は、
暗黙のうちに、命令実行の順次性な性質ということを含
んでいる。並列動作が構築されているような1例えばチ
ャネルの動作がCPUのプログラムの実行と並列的であ
るような領域においては、アーキテクチャ中に、プログ
ラマがCPUプログラムを非同期I10動作と同期させ
ることを可能ならしめる特殊な手段が設けられる。そし
てプログラマは、順次的に構築されてすべての命令が順
次的に開始及び終了されるということを正しく仮定する
何年も前に、高性能順次的マシンの設計者は、命令を並
列的に実行することがマシンの性能を改善するために有
用であるであろうということを認識していた。この方向
に沿う最初の試みは、命令の実行の異なるステージに対
して個別のハードウェア機構を設けることであった。こ
うして、もし命令の実行が“N ′1サイクルを要し、
命令の各サイクルが異なるハードウェア機構を利用する
なら、この設計構造は理論的には異なる完了ステージ毎
にN″′個の命令を実行することができよう、この概念
は一般にはパイプライン化と呼ばれる。
パイプライン化マシンの設計者は、異なる程度のパイプ
ライン化、すなわち性能を与えるために数個または多数
のハードウェア機構を使用した。
尚、論理的インターロック(例えばN番目の命令入力情
報がN−1番目の命令の出力から来るということ)及び
ハードウェア機能上での待ち合せにより、パイプライン
化されたマシンが、サイクル毎に1つの命令というその
理論的な限界よりも相当に低い性能で動作するようにさ
れることに注意されたい、パイプライン化された370
マシンの場合(すべてのデータ及び命令がキャッシュに
存在していると仮定して)、通常の商用コード上で3マ
シン・サイクル毎に1命令という実行速度を得ればよい
と考えられている。3081及び3090は、IBMシ
ステム370のパイプライン化された高性能システムの
例である。これらのマシンは常に1M次的な順序で命令
を終了する。
さらに性能を向上するために、設計者は通常、実行ユニ
ット、キャッシュ及びデータ・バス上で待ち合わせが問
題となる場合にハードウェア機構を倍加させるという施
策をとることができ、これにより非順次的実行の完了が
可能となる。これらのパイプライン化の拡張はハードウ
ェア上の待ち合せの問題を解消し、論理的インターロッ
クの影響を低減する。(そのことは、例えば、最初の命
令が完了する前に“N”個よりも多数の命令が初期化さ
れることを可能ならしめる。) その性能の向上に対して支払われる代償はハードウェア
の追加であり、アーキテクチャが要求する論理的順次性
を維持するための制御の複雑さの増大である。 I 8
M91/95/195プロセツサは、システム360ア
ーキテクチヤの浮動点動作のための複数実行ユニット及
び非順次実行完了を利用したものである。また、CDC
6600及び7600システムも上述の拡張及びパイプ
ライン化を利用している。
本発明は、タグ付は及び計数スキームによって。
システム370アーキテクチヤの各汎用レジスタ(GP
R)に、そのGPH上で順次に実行されなくてはならな
い演算のストリングを割り当てることを可能ならしめる
独得の方法を与えるものである。さらに、これらの割り
当ては、他のGPHのための類似の演算ストリングと相
互に混合することができる。この技術は、複数の独立な
演算ストリームの各々が、順次的ではあるが互いに共時
的に処理されることを可能ならしめる枠組みを与えるこ
とになる。この技術は各ストリーム内及び共時的ストリ
ーム間の両方で適正な論理ストリームを与え、これによ
りGPHの利用の論理的完全性が保持される。
従迷m代 特開昭57−166649号公報は、システム370の
16個のGPRを256個のハードウェア・レジスタに
改名(’rena■ing)する方法を記述する。これ
らのレジスタは、GPRの前のロード命令上でアドレス
されたメモリ位置の内容を含む。
そしてもし、後のロード命令がX2.B2及びB2によ
って示されたのと同一のメモ□す位置に行くなら、この
ことは、ポインタ・スタック(改名ポインタ記憶)の゛
完全に連想的な走査によって決定される。このスタック
の一部の内容は、以前のロードのメモリ・データを含む
レジスタのアレイ(拡張レジス゛り)中のレジスタのア
ドレスを含む。
このデータは、メモリからの実データのフェッチが実行
され拡張レジスタからのデータに比較されている間に直
ちに使用される。そして、データの不一致が生じたとき
に回復措置がとられる。
上述のように、この特許公゛開公報の意図と実施技術は
本発明とは全く異なる。
米国特許第3346851号は、特定のレジスタをシン
ク//−X (S INK/5OURCE)として使用
する命令と、この同一のレジスタをシンク/ソースとし
て使用する今後の命令との間に順次化を行うためにタグ
付はスキームを使用することを開示する。簡単に述べる
と、これの構成は、ト・フィールドを含んでいる。それ
らは、第2の実行ユニットのソース・オペランドが第1
の実行ユニットのシンク・オペランドを利用することに
なり、第1の実行ユニットが、第2の実行ユニット中の
動作に先立つ動作を実行中であるときは何時でも第1の
実行ユニットの“タグまたは識別子をつけてロードされ
る。もし上述の例において、第1の実行ユニットが第2
の実行ユニット中の動作よりも後の動作を実行中であっ
たなら、第1の実行ユニットは第2の実行ユニットがこ
のソースを利用し終るまでそのシンク・オペランドを第
2の実行ユニットのソース・オペランド・レジスタへの
書込を禁止されることになる。このことは。
F指定子([)esignator)と呼ばれる各実行
ユニットに関連づけられた第2の組の3ビツト・フィー
ルドの間合せによって行なわれる。このF指定子フィー
ルドは、ソース及びシンク・オペランドの両方に使用す
べき基本的なレジスタ名称、すなわち1,2.3,4な
どを保持する。こうして、問合せが実行ユニットのシン
ク・オペランド・アドレスのソースF指定子に遭遇する
と、その実行ユニットはそのシンク・オペランド・レジ
スタの更新を阻止されることになる。この特許は、本発
明とは異なる様に動作するのみならず1次のような機能
的な差異もある。
(1)まだ未完了の命令と同じ程度に前の、同一のシン
ク・レジスタを用いる命令はデコーダから発行すること
ができない。
(2)実行ユニットは、加算、乗算1割算、シフトなど
のタイプに関連して特異的であり、もし命令がデコード
されたときにその特異的なユニットが使用中であるなら
、その命令はデコーダから発行することができない。
米国特許第4313161号は、共用記憶に接続された
複数のプロセッサを含むシステムを開示する。これにお
いては、他のプロセッサを“ロック・アウト”するため
に、記憶アドレス中でフラグ・フィールドが利用される
。これはかなり慣用的な構成である。
米国特許第3718912号は、連続した命令にレジス
タ記憶スペースを割りあてることに関連する。これにお
いては、汎用レジスタの各々が、記憶されたデータの性
質を示す関連づけられたタグを持っている。この特許は
複数実行ユニット・システム、あるいは同一の実行ユニ
ット間の使用の同期的な登録のための手段に関するもの
ではない0本発明で定義された特定のフラグ及びその用
途は、この特許の示唆するところとは全く異なる。
米国特許第3778776号及び第4334269号は
、ともに複数仮想メモリに関する。しかしこのどちらの
特許も、基本的には順次的であるアーキテクチャにおけ
る異なる汎用レジスタ上で。
共時的な動作ストリームの非順次的実行のために論理的
な順序づけを行うことには関与していない。
米国特許第4334269号は、複数の汎用レジスタを
もつポツプ・アップCPUの有効なアーキテクチャの定
義をとり扱っている。これには。
そこに開示されたアーキテクチャにより、ポツプ・アッ
プ・スタックCPUと広く関連づけられた簡単なコンパ
イラが、ポツプ・アップ・スタックをもたない複数GP
Rアーキテクチャと広く関連づけられた複雑なコンパイ
ラと同程度に少ない命令によりデータ処理アプリケーシ
ョンを実行することになる、と述べられている。この特
許もまた、基本的には順次的であるアーキテクチャにお
ける異なる汎用レジスタ上で、共時的な動作ストリーム
の非順次的実行のために論理的な順序づけを行なうこと
には関与していない。
尚、先行技術調査の結果、次のような文献も見出された
が、これらは、レジスタの割当てと管理スキームを扱う
こと以外には本発明にはあまり関連がない、よって1文
献名を挙げるにとどめる。
米国特許第3611306号、米国特許第437318
0号、米国特許第4363096号、米国特許第405
8711号、及びIBMテクニカル・ディスクロジャ・
プルティン(TechnicalDisclosure
 Bulletin)、Vol、 I I、 ml 1
.1969年4月、p9.1496−1497のり、W
スミス(Swith)による“命令順次化シスチムニn (##3truction Sequencing S
ystem)”と題する論文。
C0発明が解決しようとする問題点 本発明の主な目的は、複数非同期実行ユニット・ユニプ
ロセッサの汎用レジスタに記憶され、及び汎用レジスタ
に到達することによってアクセスされたデータの論理的
完全性を保証するための方法及び装置を提供することに
ある。
本発明の別の目的は、上記レジスタを、命令ストリーム
に関連して非順次的に使用することを可能ならしめる方
法及び装置を提供することにある。
本発明のさらに別の目的は、上記レジスタ中のデータの
論理的完全性を保持するために、各汎用レジスタと実行
ユニットに結合して、独特の方法で、特殊な同期化タグ
及びカウンタを使用する方法及び装置を提供することに
ある。
本発明のさらに別の目的は、所与の汎用レジスタを、あ
る単一の命令によって記述された所与の実行ユニットの
ためのソース及びシンクとして同時に使用することがで
きるように、上記タグとカウンタを使用する方法及び装
置を提供することにある。
D1問題点を解決するための手段 上述の目的は、一般的には、単一のCPU内に複数の実
行ユニットを含む高速複合マシンの汎用レジスタに対す
るアクセスを制御するための装置によって達成される。
本発明を利用することによって、N個の実行ユニットが
異なる汎用レジスタをシンクまたはソースとして使用す
ることによりN個までの命令を同時に実行できると同時
に、汎用レジスタ(GPR)内でデータの論理的完全性
を保持できる。本発明は、順次的動作のみが実行される
場合に可能であるよりも相当に高い程度の命令実行の並
列性が可能ならしめられる。
各汎用レジスタのアクセス制御回路には、少くとも4個
の特殊目的タグ・フィールドのグループが関連づけられ
ている。
また、N個の実行ユ、ニットの各々とともに2個のタグ
・タイプが利用される。各々の汎用レジスタと各々の実
行ユニットに関連づけられたタグは。
命令ユニット・デコーダに接続された制御回路と、GP
Rと、必要な論理的完全性を維持しつつレジスタの条里
的使用を可能ならしめる個々の実行ユニットとともに使
用される。簡単に述べると、このことは1個々のGPR
と実行ユニットの間に実行ユニット/GPRシーケンス
・トレールを記憶し、以て所与の実行ユニットが特定の
汎用レジスタ(G P R)をシンクとして利用するこ
とが許可される前に、異なる実行ユニットによる直前の
シンク動作が完了されていなくてはならないようにする
ことによって達成される。同様に、単数または複数の実
行ユニットによる所与のGPRへのすべてのソースのア
クセスが、後のシンク動作が生じ得るようにする前に完
了されることが保証される。
E、実施例 El、本発明の基本的概念 本発明の基本的概念は、第1図の高レベル機能ブロック
図を参照することによって最も良く理解することができ
よう、すなわち、第1図は、本発明のアーキテクチャ上
の環境を図示するが、より広い意味では、任意の高速複
合複数実行ユニット・プロセッサのための共通のアーキ
テクチャ環境を含む、こうして第1図に開示されている
ハードウェアは計算システムの演算の3つの本質的なフ
ェーズ、すなわち命令のフェッチと、命令のデコードと
、命令の実行を行い得る。命令ユニット10は、メモリ
からの命令にアクセスし、関与するさまざまなアドレス
発生フェーズを包含し、それらを局所命令レジスタに配
置するという機能を実行する。デコーダ及び制御機構(
CTL)12は個々の命令をデコードし、それをさまざ
まな実行ユニットに割当て、実行ユニットに、所与の命
令に対応してシンクまたはソースとして使用すべき特定
の汎用レジスタを割当てる0本発明の目的にとってさら
に重要なことは、この制御機構が、さまざまな同期化タ
グ・フィールドが動作のレジスタ割当てフェーズの間に
セットされるように、必要な動作をセットアツプするこ
とである。これらのタグ・フィールドはアクセスが許可
される前の動作の実行フェーズの間にチェックされるが
、これについては後で詳しく説明する。メモリ14は実
際上慣用的なものであり、命令にアクセスするための命
令ユニット、またはデータにアクセスしまたはデータを
記憶するための実行ユニットによ1てアドレスされる。
汎用レジスタ(GPR)16は実際上慣用的なものであ
るが、それらの動作に関しては、特殊な複数の同期化タ
グ・フィールドが設けられているという点で本発明に独
特である。これについては。
後に第2図を参照して詳細に説明する。
同様に、N個の実行ユニット18は実際上慣用的なもの
であって、それらは同一のユニットであhプ÷ トノ 
東ヱ1%l峰唾すs 2−胤他t±、h環f、sス1ニ
ットであってもよい。これらの能力及び機能はもちろん
デコーダによって知られている必要があろう0本発明に
必須である実行ユニットの固有的特徴は、個々の実行ユ
ニットに機能的に関連づけられたタグ・フィールドを設
けたことにある。これについても第2図に関連してより
詳しく説明する。   。
本発明の本質的な特徴は、独特の方法で管理される実行
ユニットと、汎用レジスタの両方に特殊な同期化タグを
設は管理することにある。そして。
汎用レジスタの必要な論理的完全性が維持され、論理的
な独立なレジスタを用いる動作は命令ストリーム中のも
とのシーケンスから外れて実行することができる。
E2.汎用レジスタ及びタグ・フィールドこれらのタグ
・フィールド及びその機能的位置は第2図に明確に示さ
れている。尚、第2図中の数字12.16及び18は第
1図と同一の機能ブロックを示すことに注意されたい。
個々のタグの特定の定義及びその説明に進む前に、本発
明の基本的な思想が、ユニットを実行するためにさまざ
まな汎用レジスタの割当てシーケンスの軌跡を保つこと
であることが理解されなくてはならない、各実行ユニッ
トと汎用レジスタ内に配置され、または関連づけられた
さまざまなタグ・フィールドは、この機能を実行するた
めに利用される。
さらに詳しくは、各実行ユニットには、実際上。
そのユニットがシンク動作のためにレジスタを時期尚早
に使用することを防止するべく、このユニット自体の要
求の直前のシンク動作のためにどの実行ユニットにレジ
スタの使用が割当てられたかを通知される。同様に実行
ユニットは、その実行ユニットがレジスタをソースとし
て使用できるようになる直前にどの実行ユニットがその
レジスタをシンクとして使用しなくてはならないかを通
知される。理解されるように、このことは、適正なソー
ス値またはオペランドが、要求している実行ユニットに
与えられることを保証する。
5.第2図を参照すると、ブロック16において。
複数のタグ・フィールドが各GPRと関連づけられてい
ることが見てとれる。これらは、第2図で5INK  
FWD  TAG、5INK  EXECTAG、SR
CTAG (0−N)及び5RCCTR(0−N)とし
て定義されている。実行ユニット・ブロック18を参照
すると、各実行ユニットには1例えば個々の命令レジス
タ中で、EXEC:LニットIDタグ、複数17)SK
  V  5RCTAG (1−M)(M=16までの
整数)、動作(operation)を保持するための
フィールド及びメモリ・オペランドが関連づけられてい
る。
尚、ライフながら、SK  V  SRCTAGの(1
−M)のタグが複数である理由は、所与の動作のために
2個以上のGPHにアクセスする必要がある場合の動作
を許容するためであることに注意されたい。
このシステムの以下に説明を理解しやすくするために、
各フィールドに何が格納されその全体的な動作スキーム
における概要的な機能が正確にはどのようであるかを説
明するために、各タグの定義を次のとおり与えておこう
各GPHに関連づけられ、どの実行ユニットがシンクと
してGPRを使用する権限を与えられた最後のユニット
であり且つまだこの権限を実行していないかを記述すり
タグ(または識別子)フィールド、もし未実行の要求を
もつ実行ユニットがないなら、そのタグは“ホーム”・
ステータスにあることになる。    ′ 各GPHに関連づけられ、どの実行ユニットが流にシン
クとしてGPRを利用することができるかを記述するタ
グ・フィールド、もし保留の要求をもつ実行ユニットが
ないなら、そのタグは゛ホーム”・ステータスにあるこ
とになる。
ソース・タグ(0−N)(2図ではSRCTA立[ Rをソースとして使用する権限が与えられた時点でシン
ク前タグを記述するタグ(もし動作がその同一のGPR
をシンクとして使用するなら、このタグは活動化されな
い、)連続的なソース・タグが、連続的な未実行ソース
要求上で異なるシンク前方タグとともに利用されること
になる。
同一のシンク前方タグとともにGPRをソースとして使
用する権限を与えられた実行ユニットの数をカウントす
るカウンタ・フィールド。これは特定のソース・タグと
関連づけられている。そのソース・タグに対していかな
る要求も保留状態にない場合、タグとそれに関連するカ
ウンタは“ホーム”・ステータスにある。
各実行ユニットには永久的にIDタグが割当てられてい
る。
′−ユニット・シンクまたはソース−タグ  2実行ユ
ニットがGPRをソースまたはシンクとして使用する権
限を与えられるとき実行ユニットが受は取る動作に応じ
て、めいめいがシンクまたはソース・タグのどちらかで
ある。実行ユニット中のタグ・フィールド。
第3図及び、第4図ないし第9A、9B図のフローチャ
ートを参照してシステムの順次的動作の特定の説明を行
う前に1本発明の構成が各タグフィールドをアーキテク
チャ上どのように使用するかについて一般的な説明を与
えておこう、この説明は本発明の概念の理解を助けるも
のであると信じる。
すなわち、シンク前方タグは実質的にシステムの動作の
割当サイクルの間に利用される。このとき特定のGPR
が順次的にさまざまな実行ユニットに割当てられ、その
割当の列はシンク前方タグに反映される。デコーダ制御
がGPRを実行ユニットに割当てることを希望する場合
は常に、シンク前方タグがデコーダ制御に、そのレジス
タをシンクとして使用した最後の実行ユニットを通知す
る。
シンク実行タグは動作の実行フェーズの間に利用される
。任意の時点で、シンク実行タグは、あるシンク動作に
対してどの実行ユニットが最後にレジスタを利用したの
かを表示する。各実行ユニットがGPRをシンクとして
利用するにつれて、そのユニット自体のIDがシンク実
行タグ・フィールド中に配置される。
ソース・タグ・フィールドは、現在のGPRをソースと
して使用する要求された使用の直前にGPRをシンクと
して利用した実行ユニットの実行ユニットIDを記憶す
る。このように、所与のソース動作が生じるためには、
シンク実行タグがソース・タグに等しくなくてはならな
い。
ソース・カウンタは、特定のGPR値をソースとして使
用している実行ユニットの数の計算値を保持する。各実
行ユニットはそれと同一のシンク値を所望しなくてはな
らない。許容し得るアクセスの数は、所与のソース・タ
グに関連づけられたソース・カウンタによって表示され
、割当フェーズの間に必要応じてインクリメントされる
第2図に示されている複数のソース・タグ/ソース・カ
ウンタ対は、異なるシンクを必要とする2つ以上の未実
行ソース動作が待機され得るという条件を扱うためのも
のである。理解されるように、ソース要求がなされると
きは何時でも、GPR制御が、どのソース・タグ・フィ
ールドが一致するかを判断する必要がある。尚、N個の
ソース・タグ/ソース・カウンタ対が図示されているけ
れども、実際の環境では、そのような対は、わずかの個
数(おそらく2個)で必要且つ十分であろう。
ここで実行ユニットを参照すると、実行ユニットIDタ
グは単に、特定の実行ユニットのコード番号、すなわち
、1〜Nを示すにすぎない、理解されるように、このI
Dタグは、システム全体を通じて一貫して使用され、実
行ユニット識別子として利用されることになる。例えば
、これらの実1、=  +  −−HA  I   T
  fi  h # lj  +V  m  ++  
r?  l−デ Sノ 〜ノ)1  fh 士Atグ・
フィールドと、シンクまたはソース・タグ・フィー/L
/ド(SK  V  SRCTAG) に格納される。
実行ユニット中のシンクまたはソース・タグ・フィール
ドは、前記定義で述べたように、いかなる場合にも、要
求を出している実行ユニットによって現在要求されてい
る動作が許容される前に最も最近に実行されたに違いな
い特定のシンク動作を表示する。このとき、シンクとソ
ースのどちらの要求がなされたかに拘らず、実際のタグ
・フィールドは、他の実行ユニットによる直前のシンク
使用要求を反映する。
もし3個以上のGPRに関与する動作を扱う必要がある
場合には、シンク/ソース・タグ・フィールドの数が増
加されなくてはならない。明らかなように、このシステ
ムにおいてはGPRが16個しかないので、この数は最
大16である。しかし1本発明の趣旨から離れることな
くより少ない数のソースを使用することもできる。また
明らかなように、所与の動作が単数または複数のGPR
からのシンクまたはソースを特徴とする特定の実行ユニ
ットによって実行されるためには、その動作が完了する
前に各GPR中で利用可能条件が満足される必要があろ
う、各GPH毎のアクセス動作は1本質的に、独立であ
るが、単一のGPR及びそれに接続されたレジスタ・ア
クセスのための制御のみを注目する後記の例(第7図)
のとおりである。
今までの説明から1本発明は実際上アーキテクチャ的な
ものであり、従って、ここに開示する実施例は1本発明
を実施するための構成例をアーキテクチャ的に開示する
ものであることが容易に理解されよう、必要なレジスタ
位置はすべて第2図に明確に表示され、本発明を実施す
るための必要な制御シーケンスは第4図ないし第9図の
フローチャートに明確に示されている。
システム・ハードウェアの必要とされる実際の動作はき
わめて簡単でよく知られたものである。
本質的にはその動作には、タグ・フィールドにアクセス
するGPRと実行ユニットに関連づけられた制御メモリ
の必要なタグ・フィールドにさまざまな実行ユニットI
Dをゲートすることと、必要な比較を行うことと、必要
に応じて1つのタグ・フィールドから別のタグ・フィー
ルドへタグを伝播することを含む。これらの機能を実行
するための特定のハードウェアは旧く、この分野でよく
知られている。また、制御シーケンスの設計は、後に示
すフローチャートから、この分野の当業者には明らかで
あろう。
第1図及び第2図に図示されているように、制御機構1
2はシステム全体に分散され、それゆえ制御動作は関連
づけられた機能ユニットである。
各制御機構の必要な動作シーケンスは第4図ないし第9
A、9B図のフローチャートに明確に示されている。
尚、本発明の任意の物理的実施例が、本発明の技術思想
から逸脱することなく多くの態様をとりうることももち
ろん理解されるであろう、必要とされるさまざまな機能
は、ハードウェアと慣用的なROM制御メモリの組み合
わせ、または全体をハードウェアで構成することにより
達成することができる。しかし1本発明の主な用途は高
速複合処理システムであるので制御機構をすべてハード
ウェアにするのが好ましい、実際のタグ・フィールド記
憶位置は、第2図に示すように、さまざまな実行ユニッ
ト及びGPR中に位置づけられている。
第4図ないし第9図のフローチャートを参照して本発明
の詳細な説明する前に、第3図の例を参照しておくこと
により開示されたシステムの全体の動作を理解すること
が一層容易になると考えられる。第3図はシステム中で
まさに起こることを明確に図示したものである。゛尚、
第3図では単一のGPHにしか言及されていないが、そ
れと全く同一のことが、連続的なシンク及びソース動作
が生じるにつれてシステム中の各GPRで起こること理
解されたい。
E3.動作の具体例 第3図を参照すると、特定のGPR及びそのG異なる実
行ユニット内でさまざまな制御シーケンス及びタグをセ
ットするためにこのシステムがどのように動作するかと
いうことの例が示されている。上述のように、この例は
特に単一のGPHに係るものであるが、命令ユニット・
デコーダまたは実行ユニットによって処理されつつある
所与の命令ストリームによって参照され得る他の任意の
GPHにおいてもそれと全く同一のタイプの動作が生じ
る。
第3図においては、この特定の例に関係があるタグ・フ
ィールドのみが示されている。
上述のように、この例は単一のGPRレジスタの制御の
範囲内のデータの流れ及び動作に関与し、すなわち、す
べての要求は同一のGPRレジスタに対するものである
。こうして、第3図の左方において、例えば4つのシン
ク要求と1つのソース要求を入力する5つのレジスタ要
求が互いに順次的であるが、異なるレジスタを要求する
これらの命令の間で互いに介在するきわめて多くの命令
が、I+ &3 Fjろごとが揮解さ力、よう− i、
か1、 笛7M出例に関連して記述される動作は他のレ
ジスタにおいても制御ユニットの機能と動作において同
一であることも理解すべきである。
この例に進む前に、第3図は実質的に5個の列を含むこ
とに注意されたい、シンク前方タグ、シンク実行タグ、
ソース・タグ0”及びソース・カウンタ“40″と名付
けられた4つの列はすべて。
第2図に明確に示されているようにGPR制御と関連づ
けられている。実行ユニットID及びシンクまたはソー
ス・タグと名付けられた列は実行ユニット制御に関連づ
けられている。
シンク前方タグ、シンク実行タグ、ソース・タグ°“0
″及びソース・カウンタ“0”と名付けられた列は各々
1つのレジスタ位置をあられす、これらの列における異
なるブロックは、この例の異なる順次的な点においてレ
ジスタ・フィールドに記憶された値をあられす、実行ユ
ニットID及びシンクまたはソース・タグと名付けられ
た列においては、各ブロックが表示された各実行ユニッ
ト中の異なるレジスタをあられす(すなわち、この例で
は5個の異なる実行ユニットが示されている)。
そして1判断された値がまた、判断されたシーケンスの
点で、レジスタの内容をあられす。
丸で囲まれた動作番号すなわち■〜0はこの例における
シーケンス点をあられし、特定の与えられた命令シーケ
ンスによって必要とされるデータの論理的完全性を保証
するために、実際に特定のGPRレジスタを所与の実行
ユニットを割当ててGPR制御と実行制御の両方におけ
る特定のさまざまな同期化タグをセットするべく命令デ
コーダと制御機構によって行なわれる順次的動作に関す
る。これらの番号付けされたシーケンス点は1か610
まで順次的である。尚、同一のシーケンス番号があられ
れている箇所では、2つの表示された動作がほぼ並列的
に起こっていることに注意されたい。
最後に、実行ユニットID及びシンクまたはソース・タ
グと名付けられた列と、シンク実行タグと名付けられた
列の間に亘る破線矢印は、実行ユニットによる動作の実
行フェーズの間に生じ、レジスタ及び実行ユニット・タ
グの割当てとは独立に起こることにも注意されたい、こ
の矢印は、図示されているように、実行ユニットIDの
シンク実行タグへの転送を意味する。さらにまた、実行
フェーズは、最初の実行ユニットがGPR制御から必要
なソースまたはシンク・レジスタを得ることができるよ
うになるまで始まることができないことも理解されるべ
きである。
第3図を参照すると、この図の左側のシーケンス点■は
、実行ユニット6 (EXEC,6)の特定のGPRに
対する将来のシンク動作のためのデコード制御による要
求をあられす、最初に、GPR制御中のすべてのタグ及
びカウンタが“ホーム″・ステータスまたは“0”にセ
ットされることに注意されたい。このことは、現在GP
Rシンク前方タグ・フィールドにあるシンク前方タグ゛
0″を、実行ユニット6のシンクまたはソース・タグ・
フィールドへ転送させる。現時点で実行ユニット6のI
Dタグは、G P Rのためのシンク前方タグ・フィー
ルドに格納されている。
次に生じるシーケンスは、デコード制御が、実行ユニッ
ト8のためにそのGPRのシンクとしての将来の使用を
要求することである。このことは。
現在のシンク前方タグ6を実行ユニット8のシンクまた
はソース・タグ中に配置させ、それと同時に実行ユニッ
ト8のためのIDタグがGPRのシンク前方タグ・フィ
ールド中に配置される(シーケンス■)。
シーケンス点■が生じると、デコーダ制御は、実行ユニ
ット1のためにGPRの将来のシンクとしての使用を要
求し、これにより(■の時点で)シンク前方タグ8が実
行ユニット1のシンクまたはソース・タグ・フィールド
に格納され、また実行ユニット1のIDがGPRのシン
ク前進タグに配置される。この時点で、実行ユニット6
.8及び1による3つの連続的なシンク要求のそれぞれ
が起こり、何の動作も行なわれていないので、GPRの
シンク実行タグは依然としてセロにセットされたままで
ある。
シーケンス点、刀で、実行ユニット4のために、デコー
ド制御によって将来のソースを求める要求が行な力れる
。これにより、シーケンス点■で、実行ユニット1のた
めのシンク前方タグが実行ユニット4のシンクまたはソ
ース・タグ・フィールド中に配置される。それと同時に
、これはソース要求であるので実行ユニット1を記述す
るGPHのシンク前方タグを不変にとどめるべしという
判断がなされる。
同時に、シーケンス点■の間に、実行ユニット1のため
の実行ユニットIDがソース・タグ゛′0”に配置され
、ソース・カウンタ“′0”は1にセットされる。これ
により、実行ユニット4がGPRをソースとして使用す
ることを要望するときに実行ユニット1が最初にそれを
シンクとして使用していることを保証する。ソース・カ
ウンタ110”を1にセットするということは、実行ユ
ニット1のシンクとして先便用の後に、唯一つの実行ユ
ニットのみがGPRをソースとして使用するために待機
していることをあられす。
シーケンス点■は、デコード制御による実行ユニット3
のための将来のシンク動作の要求をあられす。これによ
り(シーケンス点[相]で)GPHの現在のシンク前方
タグ(すなわち実行ユニット1のID)が実行ユニット
3のシンクまたはソース・タグ・フィールドに転送され
ることになる。同時に、シーケンス点[相]の間に、実
行ユニット3の実行ユニットIDがシンク前方タグ中に
配置される。
この処理は、この特定のGPRがデコーダによって、要
求を出している実行ユニットに割当てられることになっ
たときに再び開始される。
今まで起こったことを要約すると、シーケンス点■の終
わりに、シンク前方タグが実行ユニット3のIDにセッ
トされ、実行ユニット6.8.1.4.3が、第3図に
示すようなシンクまたはソース・タグを含む。
ソース・タグ“0″は実行ユニット1の実行ユニットI
Dを含み、ソース・カウンタ“0″は1にセットさ九る
ことになる。
ここで、実行ユニットが動作を開始しつつあると仮定し
よう。理解されるように、実行ユニット6のみが、シン
ク動作のためGPRにアクセスを得ることができるよう
になっている。これは、そのユニットのシンクまたはソ
ース・タグが′01″であるからであり、この値は、現
在そのタグ・フィールドに格納されているシンク実行タ
グに一致する。こうして、シンク要求(REQ、SK、
)が許諾され、実行ユニット6によって実行された動作
の結果はGPRに適宜格納され、それと同時に実行ユニ
ット6の実行ユニットIDが、GPRのためのシンク実
行タグに配置される。この時点で、上述と同じ理由で実
行ユニット8のみがGPRにアクセスを得ることができ
る。なぜなら、実行ユニット8のシンクまたはソース・
タグが、現在シンク実行タグ・フィールドにあるシンク
実行タグに一致する“6′″だからである。従って、そ
の動作が許容され、実行ユニット8の実行ユニットより
がシンク実行タグ・フィールドに格納されることになる
。次に、実行ユニット1と制御機構が上記と全く同様に
動作し、その実行ユニットID7!116PRのかぬの
シン/7零行タグ・フィールドに配置される。
この時点で、実行ユニット4は制御機構に対するソース
要求であり、シンクまたはソース・タグがシンク実行タ
グ・フィールドに比較される。そして、それらはともに
実行ユニット1のための実行ユニットIDを含んでいる
ので、一致が見出される。しかし、これはソース動作で
あるので、シンクまたはソース・タグはまたソース・タ
グ゛0′″にも比較され、一致が見出されるので、ソー
ス要求(REQ、SRC,’)が許容される。ソース・
タグ“o″はここで“ホーム′″・ステータス、すなわ
ち(” O” )にリセットされ、ソース・カウンタ“
0′″が0″にリセットされる。これはソース動作であ
ったので、実行ユニット1を識別するシンク実行タグは
不変のままである。
次は、実行ユニット3がシンク要求を出す。実行ユニッ
ト3のシンクまたはソース・タグは現在実行ユニット1
の実行ユニットIDにセットされており、これがシンク
実行タグ・フィールドと比較されてその2つの値の一致
が見出される。従つて、シンク要求が許諾され、次に実
行ユニット3のための実行ユニットIDがシンク実行タ
グ・フィールドに入力される。
この時点で、シンク前方タグが現在実行ユニット3の実
行ユニットIDにセットされ、同様に。
シンク実行タグ・フィールドが実行ユニット3の実行ユ
ニットIDにセットされていることが見てとれよう、制
御機構は周期的にこの条件をチェックし、その両タグが
等しく且つソース・カウンタが“0”にセットされてい
るときは常に、その両方タグが“ホーム”・ステータス
にリセットされる。これは、GPHの使用のために現在
待機している実行ユニットがないことを意味する。
前述のように、上記の例は単一のGPHに対する動作を
示す、しかし、他の任意のGPHについても各GPHの
制御内で全く同一の動作シーケンスが生じ得ることを理
解されたい、また、この例では、ソース・タグ0”とソ
ース・カウンタ“O”のみが使用されたことに注意され
たい、しかし、もし異なるシンク値に基づく2個以上の
ソース要求が存在していたとしたら、以下のソース・カ
ウンタ及びソース・タグはセットされていたであろうし
、特定の実行ユニットがソース動作を要求したときは何
時でも、GPR制御が、可能な一致を求めてそのすべて
のソース・タグとインタラクションしたであろう、こう
して、多くのソース・タグ/ソース・カウンタ対が存在
したかもしれない。現実的には、この数はおそらくハー
ドウェアの制約により限定されるであろう。
同様に、実行ユニット内に格納された任意の動作がシン
クまたはソースとして2個以上のGPRを要求するとい
うことの可能性がある。ある所与のGPHに関する限り
は、そのGPRに対するシンクまたはソース要求はその
GPHの制御によって認識されるのだけれども、別のG
PRにおけるシンクまたはソースの使用はこの例と全く
同様に処理され、個々のタグが一致する場合にのみその
GPHに対する要求が許諾されることになる。
これで第3図の説明を完了する。この例からは、システ
ム中で動作の適正なシーケンス(すなわち、GPRへの
アクセス)が保たれ、GPR制御が、もとの命令シーケ
ンスから外れてGPRレジスタがシンクまたはソースと
して使用されることに由来する論理的な矛盾を自動的に
防止するように適切に働くことが見てとれよう。
こうして、これらの制御により、個々のレジスタ動作が
、命令ストリーム中のシーケンスから外れてシステム内
で生起し得ることになる。しかし。
この制御を使用することにより、レジスタ内のデコーダ
流の論理的完全性が完全に維持される。実行ユニットは
非同期的に動作するとしても、それらは事実上互いにオ
ーバーランしたり、不正確なデータにアクセスしまたは
それを記憶することはあり得ない。
E4.動作のフローチャート 本発明の動作の詳細は、第4図ないし第9図のフローチ
ャートを参照することにより最も良く理解することがで
きる。それらのフローチャートは。
GPR,実行ユニット及びデコーダ制御によって実行さ
れなくてはならない動作シーケンスを記述する。
第4図は、特定のGPRが、デコーダによる直接の使用
、または将来の使用のためにGPRを特定の実行ユニッ
トに割当てるべくデコーダによって使用するために、シ
ンクとして要求されている場合の本発明のシステム動作
フェーズにおけるGPR制御のフローチャートを含む。
第5図は、GPRのソースとしての使用が、デコーダに
よる即時的使用、または実行ユニットへの将来の割当て
のために要求されている場合の制御シーケンスを開示す
る。第3図にきわめて類似するGPR制御のフローチャ
ートである。
第6図は、シンク要求が、例えばこのシステムの動作の
実行フェーズの間に、実行ユニットによる即時的使用の
ための要求である場合に生じなくてはならない事象をあ
られす実行シーケンスのためのGPR制御シーケンスの
フローチャートである。
同様に、第7図は、要求が、実行が割当て動作に関する
期間に実行ユニットによる即時的使用を求めるものであ
る場合の、ソース要求の実行フェーズのフローチャート
である。
第4図の参照すると、ブロック1は単に、デコーダ制御
機構によってGPHに対するシンク要求がなされている
ことをあられす、ブロック2においては、デコーダがG
PRに、アドレス生成の目的等のために、デコーダ自体
の即時的要求をしているのか否かについての判断が行な
われる。もしこれが正しければ、システムはブロック3
に進む。
ブロック3においては、先ず、前のシンクまたはソース
動作が、そのGPHに関与する実行中で未完了であるか
否かについての判断が行なわれる。
もしそうなら、ブロック4で示されるように、そのよう
な前の動作が完了するまでシステムは待機する。
この時点で、制御は、特定のGPR使用を求めるデコー
ダ要求に承認が与えられるところのブロック5に進む。
ブロック3の判断を行うための1つの方法は、シンク前
方タグ、シンク実行タグ及びすべてのソース・タグがす
べてゼロであるかどうかを判断することである。このこ
とは、その特定のGPRが利用可能であることを意味す
る。
ブロック1に戻って、次に、デコーダがデコーダ自体の
即時的使用のためにGPRを要求しているのではないこ
とをシステムが示していると仮定しよう。すると、これ
によりGPR制御はブロック6へと分岐され、そこで、
デコーダがある実行ユニットのためにGPRの将来の使
用を求める要求をしているかどうかの判断がなされる。
ブロック6での判断が肯定的であると仮定すると、シス
テムはブロック7に分岐する。ブロック7は、そのGP
Hに関連づけられた現在のシンク前方のタグをデコーダ
制御にひき渡させ、デコーダ制御はそのタグを、割当て
られた実行ユニットに送ることになる。シンク前方タグ
中には、特定の命令のための実行ユニットIDタグが格
納される。これにより、現在の動作シーケンスが完了し
、デコーダが、デコード及びレジスタ割当てのために別
の命令を受は入れる準備ができたことになる。
第5図を参照すると、これは、特定のGPRをソースと
して使用することを求める要求がなされた場合のGPR
制御の必要なシーケンスを規定するフローチャートであ
る。この図において、ブロック1はソース要求のデコー
ディングを示す、ブロック2.3,4及び5は、それら
がソースGPRに対するものであることを除いては、第
4図のブロック2.3,4及び5と実質的に同一である
かまたは同一の機能を実行する。これらは単に、デコー
ダ制御が、デコーダ自体の即時的使用のため、または実
行ユニットのためのソースとしてGPRを将来使用する
ために、特定のGPRを使用することを要望する状況を
検出するにすぎない。
デコーダの即時的使用を得るために、ブロック3の判断
が否定的でありブロック5で要求が許容されるまで、継
続的にGPR制御が、そのGPRに関連づけられた制御
ビットを監視する。
さて、第5図のブロック2の判断で否定的応答がなされ
たとしよう。すると、第5図のブロック6が、GPRに
対する要求が、デコーダ制御による実行ユニットのため
の将来の使用を求めるもの。
すなわちGPR割当てか否かの判断という、第4図のブ
ロック6に類似の判断を行う、このブロック6での判断
が肯定的であると仮定すると、GPR制御は、ソース・
タグが使用可能であるか否かを判断するブロック7に進
む。尚、このシステムの前の説明で、特に第2図に関連
して、このシステムでは単数または複数のソース・タグ
/ソース・カウンタが利用可能であると述べたことを思
い出されたい、もしそのようなタグが1つしか利用可能
でないなら、システムはソース要求を1つしかスタック
できないが、もしそのようなタグが3つあれば、システ
ムは3つのソース要求をスタックすることができる。本
質的には、ブロック7の判断は、新しい利用可能なソー
スをさがすがまたは、現存するソース・タグの数が限界
に達していないかどうかを判断している。そのどちらも
不可であるなら、GPR制御は、システムが、特定のG
PRがソース・タグを利用可能とするために十分なソー
ス動作を処理するまでGPRの制御ビットを監視する。
ブロック7の判断が肯定的であると仮定すると。
システムは、ブロック9と12に並列的に進行する。
ブロック9では、GPHの現在のシンク前方タグがソー
ス・タグに等しいか否かの判断がなされる。もしそうな
ら、そのことは、この要求が、GPR中のその同一の値
に応じてソース動作を要求する少なくとも第2の要求で
あることを意味する。
この場合、GPR制御はブロック10に分岐し、そこで
、ソースのアクセスが開始されるときに適正な数のアク
セスがGPHに許容されるようにソース・カウンタが1
だけインクリメントされる。
ブロック9での判断が否定的であると仮定すると、GP
R制御はブロック11へ進む。
ブロック11では、2つのことが起こる。すなわち、G
PR制御がシンク前方タグをGPHのソース・タグ・フ
ィールドに移送する。さらに、GPR制御はまた、ソー
ス・カウンタを1だけインクリメントさせる。尚、これ
らの動作はすべて。
第3図のシーケンス点■に明確に示されていることに注
意されたい。
ブロック12では、GPR制御が、シンク前方タグをデ
コーダ制御機構に移送させる。デコーダ制御はその一方
で、シンク前方タグが、実行ユニットに関連づけられた
シンクまたはソース□・タグ・フィールドに格納されて
いる場合に、そのシンク前方タグをその実行ユニットに
ひき渡させる。制御シーケンスは次に、将来の使用を求
めるソース要求が許諾されたことを示し1手続はブロッ
ク12の底から脱出する。
第6図の、シンク動作のためにGPRを即時的に使用す
るための、実行ユニットの1つによる要求をあられす制
御フローチャートである。
第6図はブロック1は、実行ユニットのためにシンクと
して即時的にGPRを使用する要求がGPR制御によっ
て検出されたことを示す0次に制御シーケンスはブロッ
ク2に進む、このブロックにおいては、実行ユニットに
よって提供されるシンク前方タグが、現在特定のGPR
中にあるシンク実行タグに等しいか否かの判断がなされ
る。この判断は、命令ストリームによってGPRに割当
てられた直前のシンク動作が完了しているか否かを確立
する。要約すると、各実行ユニットが動作を完了すると
、その実行ユニット自体のIDが、GPRのシンク実行
タグ・フィールド中にセットされる。さらに、実行ユニ
ット中に格納されたシンク・タグは、その動作が、現在
の実行ユニットの要求の直前のGPRシンク要求を含ん
でいたような実行ユニットの識別子を表示する。こうし
て、ブロック2の判断により、GPR中のデータの無矛
盾性または論理的完全性が保証される。ブロック3は、
理解されるように、すべての実行ユニットからの、ブロ
ック2に記述した条件を、GPR制御によって継続的に
モニタすることを単に示すにすぎない。
ここで、ブロック2における判断で肯定的な結果が検出
され、GPR制御がブロック4に進むと仮定しよう。す
ると、ブロック4では、ゼロよすに等しいソース・タグ
が存在するか否かの判断が行なわれる。この判断は、G
PR中に格納された現在の値に使用を要求する別の実行
ユニットによりシステム中で未完了である別のソース動
作が存在する間に、実行ユニットが現在そのGPRをシ
ンクとして利用しようと試みているか否かを判断するた
めに利用される。
この動作は、第3図のシーケンス点OΦを参照すること
により、よりよく理解される。そこで、実行ユニット3
が、GPRのシンクとしての使用を求めてムるが、実行
ユニット4がまだGPRのソースとしての使用を要求し
ていないと仮定する。
この場合、この例に示されているソース・タグ“0″は
依然として実行ユニット1のIDにセットされ、ソース
・カウンタは依然として1にセットされていることにな
る。(この例においては、)ブロック74において、実
行ユニット3によってなされた判断がこの条件を検出し
、実行ユニット4がそのソース要求を実行してしまうま
で実行ユニット3によってなされたシンク要求はブロッ
ク2を介して待機する必要があり、ソース・タグ及びソ
ース・カウンタがともにゼロにリセットされる。
次に、システムがブロック6に進むと仮定する。
ブロック6においては、GPR制御が、シンク使用要求
を許容し、GPRのシンク実行タグの現在の値が実行ユ
ニットIDタグ、例えば、GPRをシンクとして使用す
ることを許諾されたばかりの実行ユニットIDタグと置
き換えられる。制御シーケンスは次に、GPRのシンク
実行タグがGPRシンク前方タグに等しいかどうかの判
断がなされるブロック7に進む、もしこの判断の結果が
否定的であるなら、手続は完了する1判断ブロック7の
結果が肯定的であるとシーケンスはブロック8に移動す
る。ブロック8では、GPRのすべてのソース・カウン
タがゼロに等しいか否かの判断がなされる。もしこの判
断の結果が否定的であるなら、手続は終了する。この判
断は意味は、それ以上のソース動作がGPR中ではまだ
未完了であり、許容されたばかりの動作に応答してタグ
・フィールドを変更する必要はない、ということである
次に、ブロック8の判断が肯定的であると仮定すると、
システムはブロック9に進む。GPR制御は、ブロック
9に到達すると、どの実行ユニット中にも、このGPH
に関与して未完了である前のシンクまたはソース動作が
存在しないことを示す、この制御は、シンク実行タグ及
びシンク前方タグをして、ゼロにリセットさせるかまた
は゛ホーム”・ステータスにセットさせる。
尚、シンク実行タグ及びシンク前方タグの等しいセット
が“ホーム″′・ステータスに変更されない場合にさえ
も、システム制御が動作を行うことになることに注意さ
れたい。ブロック9からの脱出がこの手続の完了を示す
次に第7図を参照すると、このシーケンスは、GPRの
ソースとしての即時的な使用を要求する実行ユニットの
要求をあらねす、このことはそのブロック1に明示され
ている。ブロック20制御シーケンスは、要求を出して
いる実行ユニットによって提供される。ソース・タグが
GPRの現在のシンク実行タグと等しいか否かの判断を
引き起こす、もしこの判断に対する答えが否定的である
なら、そのことは、要求されたソース・オペランドが前
のシンク動作によってGPR中に配置されておらず、従
って制御は、適正なシンク実行タグが配置されるまでブ
ロック3を経由して待機する。
この判断の結果が肯定的であると仮定すると。
システムはブロック4と5に並列に進む、ブロック4は
ソース要求が許諾されたことを示し、ブロック5はさら
なる判断を開始する。このブロック5において、GPR
中のソース・タグが実行ユニットからのソース・タグに
等しいか否かの判断が行なわれる。先ずその判断結果が
否定的であると仮定する。このことは実行ユニットに送
られた動作が、シンクGPHに等しいソースGPRをも
つ、ということを意味する。これは、第4図に関する説
明(特に第4図のブロック6付近を参照)において、特
定の動作が同一のGPRをシンク及びソ実行準備完了と
なったときシンク要求制御のセット動作が前のソース要
求を自動的に処理する゛ような場合である。ブロック5
の判断シーケンスからの否定的な結果は1手続が終了し
たことを示す。
次に、ブロック5のシーケンスの結果が肯定的であると
仮定すると、システムは次にブロック6及び7に並列に
進行する。ブロック6では、ソース・タグに関連づけら
れたソース・カウンタが1だけデクリメントされる。ブ
ロック7では、GPR制御がソース・カウンタ中の値に
判断させる(このことは、ブロック6におけるカウンタ
のデクリメントに先立って行なわれる)。もし判断の結
果が否定的であるなら、それ以上何も行なわれない、も
しその判断が肯定的であるなら(デクリメントが行なわ
れるとゼロになる)、そのことは、現在GPR中に格納
されている値のすべてのソースの使用が完了し、ソース
・タグがホーム・ステータスに戻されるかまたはゼロに
セットされるべきことを意味する。そのホーム・ステー
タスは。
ウンタが、GPR制御に与えられるとき、実行ユニット
からのさらなるソース使用要求に対して利用可能である
ことを示す、そして、ソース・タグをホーム・ステータ
スに戻すとこのシーケンスが完了する。
さて、第4図から第7図までに示されたGPR制御のた
めの必要な動作シーケンスを説明したので、これに続い
て実行ユニット及びデコーダの必要な制御シーケンスに
ついて簡単な説明を与える。
尚、システム全体のうち本発明に関連するレジスタ割当
及び同期化フェーズにあてはまるこれら2つのユニット
についての制御シーケンスのみが示されているにすぎな
いことが容易に理解されよう。
また、実行ユニット及びデコーダの全体の動作シーケン
スはここに図示されているよりはるかに複雑であるが、
その詳細は本発明自体とは直接関係がないことも理解さ
れよう。
第8図を参照すると、関連する実行ユニット制御のフロ
ーチャートが示されている。この図においては、実行ユ
ニットが、実行中の特定の命令のだめのGPRを必要と
することを示すGPR要求がブロック10を介して入力
される。フローチャートは次に、ブロック12.14及
び16に並列的に進行する。先ずブロック12を参照す
ると、この時間フレームにおいては、−G P R制御
に対するもとのレジスタ割当フェーズ(デコード時間の
間に発生する)の間にGPR制御から受は取ったシンク
前方タグを実行ユニット制御が送る。これらのタグが、
シンクまたはソース・タグとして実行ユニット制御に格
納されていることが理解されよう、もし現在の要求(ま
たは、現在の要求のうちの1つ)がシンク・レジスタを
求めるものであるなら、データはGPHに至るデータ・
バス上に配置される。尚、このとき、そのデータはGP
Rが要求を許諾するまで特定のGPR中へは実際にはゲ
ートされないことを理解されたい。
ブロック18及び21は、現在の要求よりも前に完了さ
れるべきGPR制御中の必要なさまざまな動作が受は入
れられるようになるまで、実行ユニット制御を遊ばせて
おくことを可能ならしめる判断及び待機シーケンスをあ
られす。そして、が求の許諾が完了すると、実行ユニッ
トはブロック20へ進む。
ブロック20においては、実行ユニット制御が次のよう
な動作を行う、すなわち、もし完了したばかりの要求が
シンク要求であったなら、GPR制御に対する要求が除
去され、特定の要求されたGPRの入力ゲートに対する
データが除去される。
もし、受領されたばかりの要求がソース要求であるなら
、そのデータは実行のため特定の実行ユニットのオペラ
ンド・レジスタ中ヘゲートされる。
上述のように、ブロック10からの出力はブロック14
と16に並列的に進み、そこで、現在の要求がソースま
たはシンクのどちらを求めるものであるかの識別がなさ
れる。もし動作がソース動作を要求するなら、システム
はブロック16へ進み、もし動作がシンク動作を要求す
るなら、システムはブロック14へ進む。
もしブロック14で示すように、要求されたアクセスが
シンク動作を求めるものならば、GPR制御に対する要
求は、第6図に示すGPR制御シーケンスを開始させ、
逆に要求されたアクセスがレジスタ中のソース動作を要
求するものであるなら、第7図に示されたGPR制御中
の制御シーケンスが入力されることになる。ブロック2
2及び24は実際に第6図及び第7図のそれぞれにおい
て要求を発生させる。尚、ブロック14及び16によっ
て生起された実行ユニットの動作は、ブロック12及び
20において実行される動作とは並列的であることを思
い出されたい。実行ユニット制御の、ブロック14及び
16中で生じる動作は、GPR制御中の必要な活動を開
始させる。同様に、ブロック12及び20は、実行ユニ
ット内で必要な動作を開始させる。
(ブロック20からの“脱出”によって示されるように
)GPRアクセス・フェーズが完了すると、実行ユニッ
ト制御は、もし要求がソース動作を求めるものなら命令
の実行に進むことができ、もし要求がシンク動作を求め
るものであったなら命令が完了されることになる。
第9A図と第9B図を参照すると、本発明の動作に必要
なデコーダ制御シーケンスが開示されている。これらの
図において、ブロック1及び2は。
単に、デコーダがGPR動作の必要性を検出したことを
示すにすぎない。このことが起こると、システムは次に
、その要求がデコーダによる“′即時的使用″を求める
ものであるか、またはGPRレジスタが特定の実行ユニ
ットに割当てられるべき将来の使用を求めるものである
かの判断をしなくてはならない。この判断は、ブロック
、3及び4において並列的に行なわれる。もしその要求
が“アドレス発生″′などの即時的使用を求めるもので
あるなら、システムはブロック5に進み、その動作に必
要なGPRの制御機構に対して必要なシンクまたはソー
ス要求がなされる。理解されるように。
このブロックは本質的には、GPRの“即時的”使用要
求を意味する第4図及び第5図上のGPR−制御シーケ
ンス・ブロック1に入る。デコーダ制御はブロック6中
で、GPRを求める要求が許諾されるまで待機する。そ
して、要求されたGPRがデコーダに対して−たん利用
可能になると、特定の動作がブロック7で実行される。
ブロック4では、デコーダ制御が要求された動作を実行
することができるか否かが判断される。
この制御は、もしすべての必要なGPRが直ちに利用可
能である訳ではないなら実行ユニットに動作を渡すこと
ができる。追加的な必要条件は、動作が、1マシン・サ
イクル(例えば固定点の加算)で完了されなくてはなら
ない、ということである。
ブロック8,9及び10で実行される動作は本質的には
、前記ブロック5,6及び7と同一であるが、ただし、
要求されたすべてのGPRが即時的に利用可能でなくて
はならず、もしブロック9で必要な時間内に利用可能で
あることの表示が受は取られないなら要求が取り下げら
れ、動作は順に従って実行ユニットに渡される、という
点では異なる。
ここで動作が実行ユニットが渡されると仮定すると、制
御シーケンスはブロック12へ移行する(第9B図)、
このブロックでは、利用可能な実行ユニットが動作に割
当てられるかまたは、そのような実行ユニットが利用可
能になるまでシステムが待機する。この時点で、シーケ
ンスはブロック13に進む。ブロック13では、デコー
ダ制御が、その動作に必要な特定のGPR制御に、必要
なシンクまたはソース要求を行う、デコーダ制御は、そ
の動作に必要なGPRに実行ユニットの識別タグを与え
る。そして最後に、デコーダ制御は。
シンクまたはソース要求がなされた場合にGPR制御か
らシンク前方タグを受は取り、これらのタグを、この動
作に割当てられた特定の実行ユニットに送らせる。
こうして、要約すると、ブロック13は、要求された使
用がシンクであるかソースであるかに応じて、GPR制
御の第4図または第5図のうちのどちらかのブロック1
を開始させる。実行ユニットよりは、第4図のブロック
7中のGPR制御に与えられる。この動作は、理解され
るように、要求がソース使用を求めるものなら不要であ
る。ブ図のブロック7及び第5図のブロック12と協働
して実行される。
尚、適切な実行ユニット中のシンクまたはソース・タグ
・フィールド中のGPRからのシンク前方タグは、命令
が、命令の一部として実行ユニット命令レジスタに適切
に格納されている場合に特定の実行ユニットに対する命
令割当て動作の一部としてデコーダにより直接実行され
ることに注意されたい。
デコーダ制御フロー・シーケンスの動作の説明は以上の
とおりである。前述のように、このフロー・シーケンス
は、デコーダ制御シーケンスのうち1本発明に関与する
部分を示すにすぎない。この技術分野の当業者によって
理解されるように、デコーダにおいては他の多くの動作
も生じなくてはならないことが明らかである。
F0発明の詳細 な説明したように、この発明によれば、特殊なタグとカ
ウンタの組合せの使用によって、複数汎用レジスタのデ
ータの論理的完全性を維持することができるという効果
が得られる。
【図面の簡単な説明】
第1図は、複数の実行ユニットをもつ複合高速ユニプロ
セッサの機能ブロック図。 第2図は、実行ユニットと汎用レジスタの詳細な構成を
示すブロック図、 第3図は、タグ及びカウンタを利用する動作の例を示す
図、 第4図は、GPRのシンクとしての使用を示すフローチ
ャート、 第5図は、GPHのソースとしての使用を示すフローチ
ャート、 第6図は、GPRのシンクとしての即時使用を示すフロ
ーチャート、 第7図は、ソースとしてのGPR要求を示すフローチャ
ート、 第8図は、実行ユニット制御のフローチャート。 第9A図及び第9B図は、デコーダ制御のフローチャー
トである。 1o・・命令ユニット・デコーダ、12・・制御機構、
16・・汎用レジスタ、18・・実行ユニット。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  山  本  仁  朗(外1名) GPRのシンクヒしヱの使用 第4図 脱血 第6図   悦獣 ソースとしマのGPR零求 第7図 テ“フーグ制仰 第9B図

Claims (1)

  1. 【特許請求の範囲】 N個の実行ユニット及び、各々が該実行ユニットの各々
    にアクセス可能である複数の汎用レジスタをもつ複数実
    行ユニット・ユニプロセッサ・システムにおいて、 (a)各汎用レジスタに関連づけられた少くとも4個の
    特殊目的タグ・フィールドであるシンク前方タグと、シ
    ンク実行タグと、少くとも1つのソース・タグまたはソ
    ース・カウンタ・タグと、(b)各実行ユニットに関連
    づけられ、該実行ユニットにより実行すべき命令を格納
    するためのフィールドのみならず、該実行ユニットに固
    有なタグ及び少くとも1つのシンクまたはソース・タグ
    を格納するための少くとも2個の特殊目的タグ・フィー
    ルドを有する命令レジスタ記憶手段と、(c)上記シン
    ク前方タグ・フィールド中に、任意の実行ユニットによ
    る特定の汎用レジスタを求める使用要求の経時的シーケ
    ンスの記録を保持するための手段を含み、システム動作
    の命令デコード・フェーズの間に上記実行ユニット及び
    上記汎用レジスタ中に上記特殊目的タグ・フィールドを
    ロードするための制御機構と、 (d)第1の実行ユニットのシンクまたはソース・タグ
    ・フィールド中で、該第1の実行ユニットの直前に、上
    記汎用レジスタをシンクとして利用しなくてはならない
    第2の実行ユニットを識別するための手段と、 (e)上記実行ユニットが割当てられたタスクを実行す
    るときに、さまざまな実行ユニットによる上記汎用レジ
    スタの使用の経時的シーケンスを該汎用レジスタのシン
    ク実行タグに保持するように動作する手段、 とを具備する複数実行ユニット・ユニプロセッサ・シス
    テム。
JP62077654A 1986-05-02 1987-04-01 複数実行ユニツト・ユニプロセツサ・システム Granted JPS62262142A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/859,156 US4903196A (en) 1986-05-02 1986-05-02 Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US859156 1986-05-02

Publications (2)

Publication Number Publication Date
JPS62262142A true JPS62262142A (ja) 1987-11-14
JPH0260010B2 JPH0260010B2 (ja) 1990-12-14

Family

ID=25330196

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62077654A Granted JPS62262142A (ja) 1986-05-02 1987-04-01 複数実行ユニツト・ユニプロセツサ・システム

Country Status (4)

Country Link
US (1) US4903196A (ja)
EP (1) EP0243892B1 (ja)
JP (1) JPS62262142A (ja)
DE (1) DE3750306T2 (ja)

Families Citing this family (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置
US5822578A (en) * 1987-12-22 1998-10-13 Sun Microsystems, Inc. System for inserting instructions into processor instruction stream in order to perform interrupt processing
JPH06105460B2 (ja) * 1988-06-07 1994-12-21 富士通株式会社 マルチプロセッサのプロセッサ切換え装置
EP0378415A3 (en) * 1989-01-13 1991-09-25 International Business Machines Corporation Multiple instruction dispatch mechanism
US5167026A (en) * 1989-02-03 1992-11-24 Digital Equipment Corporation Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers
US5142631A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation System for queuing individual read or write mask and generating respective composite mask for controlling access to general purpose register
US5293500A (en) * 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
US5781753A (en) 1989-02-24 1998-07-14 Advanced Micro Devices, Inc. Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
JPH0353328A (ja) * 1989-07-20 1991-03-07 Hitachi Ltd レジスタ退避回復方法ならびに処理装置
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
JPH03150637A (ja) * 1989-11-08 1991-06-27 Oki Electric Ind Co Ltd パイプライン対応のレジスタ割付け方式
US5555384A (en) * 1989-12-01 1996-09-10 Silicon Graphics, Inc. Rescheduling conflicting issued instructions by delaying one conflicting instruction into the same pipeline stage as a third non-conflicting instruction
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
US5410691A (en) * 1990-05-07 1995-04-25 Next Computer, Inc. Method and apparatus for providing a network configuration database
US5450555A (en) * 1990-06-29 1995-09-12 Digital Equipment Corporation Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions
US5432918A (en) * 1990-06-29 1995-07-11 Digital Equipment Corporation Method and apparatus for ordering read and write operations using conflict bits in a write queue
EP0463965B1 (en) * 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
US5471591A (en) * 1990-06-29 1995-11-28 Digital Equipment Corporation Combined write-operand queue and read-after-write dependency scoreboard
JP2771683B2 (ja) * 1990-07-17 1998-07-02 三菱電機株式会社 並列処理方式
EP0477597A3 (en) * 1990-09-26 1995-09-27 Siemens Ag Method for parallel processing of programm instructions and processor to perform this process
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
US5329626A (en) * 1990-10-23 1994-07-12 Digital Equipment Corporation System for distributed computation processing includes dynamic assignment of predicates to define interdependencies
US5459845A (en) * 1990-12-20 1995-10-17 Intel Corporation Instruction pipeline sequencer in which state information of an instruction travels through pipe stages until the instruction execution is completed
GB9027853D0 (en) * 1990-12-21 1991-02-13 Inmos Ltd Multiple instruction issue
US5446850A (en) * 1991-01-15 1995-08-29 International Business Machines Corporation Cross-cache-line compounding algorithm for scism processors
DE69228083T2 (de) * 1991-03-14 1999-05-20 Fujitsu Ltd Verfahren und Vorrichtung zur Steuerung von Pipelineoperationen
JP2908598B2 (ja) * 1991-06-06 1999-06-21 松下電器産業株式会社 情報処理装置
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
US5493687A (en) 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) * 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5961629A (en) * 1991-07-08 1999-10-05 Seiko Epson Corporation High performance, superscalar-based computer system with out-of-order instruction execution
US5826055A (en) * 1991-07-08 1998-10-20 Seiko Epson Corporation System and method for retiring instructions in a superscalar microprocessor
US5412784A (en) * 1991-07-15 1995-05-02 International Business Machines Corporation Apparatus for parallelizing serial instruction sequences and creating entry points into parallelized instruction sequences at places other than beginning of particular parallelized instruction sequence
US5408658A (en) * 1991-07-15 1995-04-18 International Business Machines Corporation Self-scheduling parallel computer system and method
US5347639A (en) * 1991-07-15 1994-09-13 International Business Machines Corporation Self-parallelizing computer system and method
US5363495A (en) * 1991-08-26 1994-11-08 International Business Machines Corporation Data processing system with multiple execution units capable of executing instructions out of sequence
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
US5379392A (en) * 1991-12-17 1995-01-03 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
US5414821A (en) * 1991-12-17 1995-05-09 Unisys Corporation Method of and apparatus for rapidly loading addressing environment by checking and loading multiple registers using a specialized instruction
US5438668A (en) * 1992-03-31 1995-08-01 Seiko Epson Corporation System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer
WO1993020505A2 (en) * 1992-03-31 1993-10-14 Seiko Epson Corporation Superscalar risc instruction scheduling
JP3637920B2 (ja) * 1992-05-01 2005-04-13 セイコーエプソン株式会社 スーパースケーラマイクロプロセサに於て命令をリタイアさせるシステム及び方法
KR100248903B1 (ko) * 1992-09-29 2000-03-15 야스카와 히데아키 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템
US6735685B1 (en) 1992-09-29 2004-05-11 Seiko Epson Corporation System and method for handling load and/or store operations in a superscalar microprocessor
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
DE69330889T2 (de) * 1992-12-31 2002-03-28 Seiko Epson Corp System und Verfahren zur Änderung der Namen von Registern
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5604912A (en) * 1992-12-31 1997-02-18 Seiko Epson Corporation System and method for assigning tags to instructions to control instruction execution
US5493669A (en) * 1993-03-03 1996-02-20 Motorola, Inc. Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits
TW242673B (ja) * 1993-08-18 1995-03-11 Ibm
US5446912A (en) * 1993-09-30 1995-08-29 Intel Corporation Partial width stalls within register alias table
US5499364A (en) * 1993-10-14 1996-03-12 Digital Equipment Corporation System and method for optimizing message flows between agents in distributed computations
US5721854A (en) * 1993-11-02 1998-02-24 International Business Machines Corporation Method and apparatus for dynamic conversion of computer instructions
US5627985A (en) * 1994-01-04 1997-05-06 Intel Corporation Speculative and committed resource files in an out-of-order processor
US5420991A (en) * 1994-01-04 1995-05-30 Intel Corporation Apparatus and method for maintaining processing consistency in a computer system having multiple processors
US5452426A (en) * 1994-01-04 1995-09-19 Intel Corporation Coordinating speculative and committed state register source data and immediate source data in a processor
US5524263A (en) * 1994-02-25 1996-06-04 Intel Corporation Method and apparatus for partial and full stall handling in allocation
US5659722A (en) * 1994-04-28 1997-08-19 International Business Machines Corporation Multiple condition code branching system in a multi-processor environment
US5666506A (en) * 1994-10-24 1997-09-09 International Business Machines Corporation Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle
TW295646B (ja) * 1995-01-25 1997-01-11 Ibm
US5689673A (en) * 1995-02-14 1997-11-18 Hal Computer Systems, Inc. Apparatus and method for controlling instruction flow by using a matrix of transmission gates in super-scaler microprocessor and selectively delaying microprocessor instruction execution based on resource availability
US5734817A (en) * 1995-03-01 1998-03-31 Unisys Corporation Method for making a data base available to a user program during data base recovery
US5699536A (en) * 1995-04-13 1997-12-16 International Business Machines Corporation Computer processing system employing dynamic instruction formatting
US5664120A (en) * 1995-08-25 1997-09-02 International Business Machines Corporation Method for executing instructions and execution unit instruction reservation table within an in-order completion processor
US5765215A (en) * 1995-08-25 1998-06-09 International Business Machines Corporation Method and system for efficient rename buffer deallocation within a processor
US5850563A (en) * 1995-09-11 1998-12-15 International Business Machines Corporation Processor and method for out-of-order completion of floating-point operations during load/store multiple operations
US5694565A (en) * 1995-09-11 1997-12-02 International Business Machines Corporation Method and device for early deallocation of resources during load/store multiple operations to allow simultaneous dispatch/execution of subsequent instructions
US5761740A (en) * 1995-11-30 1998-06-02 Unisys Corporation Method of and apparatus for rapidly loading addressing registers
JP2806359B2 (ja) * 1996-04-30 1998-09-30 日本電気株式会社 命令処理方法及び命令処理装置
US5848256A (en) * 1996-09-30 1998-12-08 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for address disambiguation using address component identifiers
US5864341A (en) * 1996-12-09 1999-01-26 International Business Machines Corporation Instruction dispatch unit and method for dynamically classifying and issuing instructions to execution units with non-uniform forwarding
US5918033A (en) * 1997-01-08 1999-06-29 Intel Corporation Method and apparatus for dynamic location and control of processor resources to increase resolution of data dependency stalls
US6662216B1 (en) * 1997-04-14 2003-12-09 International Business Machines Corporation Fixed bus tags for SMP buses
US6044453A (en) * 1997-09-18 2000-03-28 Lg Semicon Co., Ltd. User programmable circuit and method for data processing apparatus using a self-timed asynchronous control structure
US6088790A (en) * 1997-12-19 2000-07-11 Intel Corporation Using a table to track and locate the latest copy of an operand
US6161174A (en) * 1998-11-05 2000-12-12 Wilhite; John E. Pipelined central processor incorporating indicator busy sensing and responsive pipeline timing modification
US6266759B1 (en) * 1998-12-14 2001-07-24 Cray, Inc. Register scoreboarding to support overlapped execution of vector memory reference instructions in a vector processor
US6643762B1 (en) * 2000-01-24 2003-11-04 Hewlett-Packard Development Company, L.P. Processing system and method utilizing a scoreboard to detect data hazards between instructions of computer programs
US6715060B1 (en) * 2000-01-28 2004-03-30 Hewlett-Packard Development Company, L.P. Utilizing a scoreboard with multi-bit registers to indicate a progression status of an instruction that retrieves data
US6952763B1 (en) * 2000-10-02 2005-10-04 International Business Machines Corporation Write before read interlock for recovery unit operands
US7055021B2 (en) * 2002-02-05 2006-05-30 Sun Microsystems, Inc. Out-of-order processor that reduces mis-speculation using a replay scoreboard
EP1462934A1 (en) * 2003-03-29 2004-09-29 Deutsche Thomson-Brandt Gmbh Method and apparatus for forwarding of results
US7490226B2 (en) * 2005-02-09 2009-02-10 International Business Machines Corporation Method using vector component comprising first and second bits to regulate movement of dependent instructions in a microprocessor
US20070043932A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Wakeup mechanisms for schedulers
US7594058B2 (en) * 2005-11-07 2009-09-22 Via Technologies, Inc. Chipset supporting a peripheral component interconnection express (PCI-E) architecture
US7475226B2 (en) * 2006-09-20 2009-01-06 International Business Machines Corporation System for managing data dependency using bit field instruction destination vector identifying destination for execution results
US8165864B2 (en) * 2008-02-08 2012-04-24 International Business Machines Corporation Method, system and computer program product for verifying address generation, interlocks and bypasses
US11762566B2 (en) 2018-01-22 2023-09-19 Arm Limited Programmable mapping of guard tag storage locations
GB2570326B (en) * 2018-01-22 2020-06-10 Advanced Risc Mach Ltd Multiple guard tag setting instruction

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3346851A (en) * 1964-07-08 1967-10-10 Control Data Corp Simultaneous multiprocessing computer system
US3573736A (en) * 1968-01-15 1971-04-06 Ibm Interruption and interlock arrangement
US3718912A (en) * 1970-12-22 1973-02-27 Ibm Instruction execution unit
US4224664A (en) * 1976-05-07 1980-09-23 Honeywell Information Systems Inc. Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system
FR2399693A1 (fr) * 1977-08-04 1979-03-02 Int Computers Ltd Structure de registres pour un systeme informatique
US4249241A (en) * 1978-10-23 1981-02-03 International Business Machines Corporation Object access serialization apparatus for a data processing system
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
US4384324A (en) * 1980-05-06 1983-05-17 Burroughs Corporation Microprogrammed digital data processing system employing tasking at a microinstruction level
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
US4604694A (en) * 1983-12-14 1986-08-05 International Business Machines Corporation Shared and exclusive access control

Also Published As

Publication number Publication date
US4903196A (en) 1990-02-20
EP0243892A2 (en) 1987-11-04
DE3750306D1 (de) 1994-09-08
DE3750306T2 (de) 1995-03-09
EP0243892B1 (en) 1994-08-03
EP0243892A3 (en) 1990-05-02
JPH0260010B2 (ja) 1990-12-14

Similar Documents

Publication Publication Date Title
JPS62262142A (ja) 複数実行ユニツト・ユニプロセツサ・システム
CN108027771B (zh) 基于块的处理器核复合寄存器
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
US5150470A (en) Data processing system with instruction queue having tags indicating outstanding data status
EP0330836B1 (en) Method for multiprocessor system having self-allocating processors
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
KR100334479B1 (ko) 컴퓨터 처리 시스템에서 로드 동작의 순서 변경 방법 및 장치
EP0096575B1 (en) Concurrent processing elements for using dependency free code
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
US7398376B2 (en) Instructions for ordering execution in pipelined processes
US4493019A (en) Pipelined microprogrammed digital data processor employing microinstruction tasking
JP3335352B2 (ja) アウトオブオーダジョブ処理方法および装置
JP2000148489A (ja) コンピュ―タシステム
JPH0668726B2 (ja) レジスタ管理システム
JPH03282958A (ja) 電子計算機
US11416258B2 (en) Method of debugging a processor that executes vertices of an application, each vertex being assigned to a programming thread of the processor
US6378062B1 (en) Method and apparatus for performing a store operation
JPH1097424A (ja) スーパースカラープロセッサの中央処理ユニット
JPH08505725A (ja) 命令実行を制御するため命令にタグを割り当てるシステム及び方法
Pumma et al. Parallel I/O optimizations for scalable deep learning
CN101322111A (zh) 每个线程具有多个并发流水线的多线程处理器
JP2001249808A (ja) 情報処理装置
US5623685A (en) Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency
US6311267B1 (en) Just-in-time register renaming technique
US4456958A (en) System and method of renaming data items for dependency free code