JP2620505B2 - スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム - Google Patents
スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステムInfo
- Publication number
- JP2620505B2 JP2620505B2 JP5319296A JP31929693A JP2620505B2 JP 2620505 B2 JP2620505 B2 JP 2620505B2 JP 5319296 A JP5319296 A JP 5319296A JP 31929693 A JP31929693 A JP 31929693A JP 2620505 B2 JP2620505 B2 JP 2620505B2
- Authority
- JP
- Japan
- Prior art keywords
- source
- instruction
- operands
- instructions
- destination
- 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
Links
- 238000000034 method Methods 0.000 title claims description 34
- 230000001419 dependent effect Effects 0.000 claims description 24
- 230000001568 sexual effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
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
【0001】
【産業上の利用分野】本発明は、全般的に、改良された
データ処理システムに関し、詳しくは、スーパースカラ
・プロセッサ・システムの命令同期化効率の向上に関す
る。さらに詳細には、本発明は、データ依存性インタロ
ック回路を使用してインタロックできるよりも多くのソ
ース・オペランドを有する命令を含むスーパースカラ・
プロセッサ・システムのデータ依存性ハザードを解消す
るための改良された方法およびシステムに関する。
データ処理システムに関し、詳しくは、スーパースカラ
・プロセッサ・システムの命令同期化効率の向上に関す
る。さらに詳細には、本発明は、データ依存性インタロ
ック回路を使用してインタロックできるよりも多くのソ
ース・オペランドを有する命令を含むスーパースカラ・
プロセッサ・システムのデータ依存性ハザードを解消す
るための改良された方法およびシステムに関する。
【0002】
【従来の技術】現代の最新データ処理システムの設計者
は、絶えずそのようなシステムの性能面の向上に努めて
いる。データ処理システム効率を向上させる1つの技法
は、サイクル・タイムを短くし、1命令当たりサイクル
(CPI)率を下げることである。このような技法を拡
張データ処理システムに巧みに応用した例に、インター
ナショナル・ビジネス・マシーンズ・コーポレーション
(IBM)のRISCシステム/6000(RS/60
00)コンピュータがある。RS/6000システム
は、数値中心の科学技術の応用分野およびマルチユーザ
商業環境でうまく機能するように設計されている。RS
/6000プロセッサは、スーパースカラ実施態様を使
用する。すなわち、複数の命令が同時に発行され実行さ
れる。
は、絶えずそのようなシステムの性能面の向上に努めて
いる。データ処理システム効率を向上させる1つの技法
は、サイクル・タイムを短くし、1命令当たりサイクル
(CPI)率を下げることである。このような技法を拡
張データ処理システムに巧みに応用した例に、インター
ナショナル・ビジネス・マシーンズ・コーポレーション
(IBM)のRISCシステム/6000(RS/60
00)コンピュータがある。RS/6000システム
は、数値中心の科学技術の応用分野およびマルチユーザ
商業環境でうまく機能するように設計されている。RS
/6000プロセッサは、スーパースカラ実施態様を使
用する。すなわち、複数の命令が同時に発行され実行さ
れる。
【0003】複数の命令を同時に発行して実行するに
は、高命令帯域幅で同時に実行できる独立した機能ユニ
ットが必要である。RS/6000システムは、本来的
にパイプライン式の別々のブランチ処理ユニット、固定
小数点処理ユニット、および浮動小数点処理ユニットを
使ってこれを実現している。そのようなシステムにおけ
るプロセッサのパイプライン式という性質にかんがみ、
後続命令をディスパッチする前に、後続命令の実行に必
要な特定の命令の結果が得られるように配慮しなければ
ならない。そのようないわゆる「データ依存性ハザー
ド」が発生しないようにするための1つの技法は、特定
の命令のディスパッチを、たとえば、すべての先行命令
がディスパッチされるまで制限することである。この技
法によってデータ依存性ハザードは発生しなくなるが、
この技法を用いて発生する性能上の不利益は大きい。
は、高命令帯域幅で同時に実行できる独立した機能ユニ
ットが必要である。RS/6000システムは、本来的
にパイプライン式の別々のブランチ処理ユニット、固定
小数点処理ユニット、および浮動小数点処理ユニットを
使ってこれを実現している。そのようなシステムにおけ
るプロセッサのパイプライン式という性質にかんがみ、
後続命令をディスパッチする前に、後続命令の実行に必
要な特定の命令の結果が得られるように配慮しなければ
ならない。そのようないわゆる「データ依存性ハザー
ド」が発生しないようにするための1つの技法は、特定
の命令のディスパッチを、たとえば、すべての先行命令
がディスパッチされるまで制限することである。この技
法によってデータ依存性ハザードは発生しなくなるが、
この技法を用いて発生する性能上の不利益は大きい。
【0004】そのため、現代のスーパースカラ・データ
処理システムは、しばしばいわゆる「データ依存性イン
タロック回路」を使用している。そのような回路は、命
令ディスパッチ回路と協調して動作し、たとえばその命
令の正しい実行に必要な、先行命令の結果が得られる時
まで命令をディスパッチしないようにする論理機構を含
む。データ依存性インタロック回路を実現するのに必要
な論理の量は、各命令内のソース・オペランドの数に正
比例する。ソース・オペランドとは、命令の実行に使用
するために、レジスタ・ファイル内のオペランドにアク
セスするのに使用される、命令内のフィールドである。
処理システムは、しばしばいわゆる「データ依存性イン
タロック回路」を使用している。そのような回路は、命
令ディスパッチ回路と協調して動作し、たとえばその命
令の正しい実行に必要な、先行命令の結果が得られる時
まで命令をディスパッチしないようにする論理機構を含
む。データ依存性インタロック回路を実現するのに必要
な論理の量は、各命令内のソース・オペランドの数に正
比例する。ソース・オペランドとは、命令の実行に使用
するために、レジスタ・ファイル内のオペランドにアク
セスするのに使用される、命令内のフィールドである。
【0005】データ依存性インタロック回路を用いる
と、上述の大きな性能上の不利益を発生させずにデータ
依存性ハザードを回避することができるが、多数のソー
ス・オペランドおよび宛先オペランドを含む命令用のデ
ータ依存性インタロック回路の設計および実施は極めて
複雑になる。既存のスーパースカラ・データ処理システ
ムは、2個のソース・オペランドを含む命令をしばしば
使用する。しかし、これらのシステムの複雑さが増大す
るにつれて、3個のソース・オペランド命令を使用する
方法がより一般的になりつつある。3N個のソース・オ
ペランドと2N個の宛先オペランドを含むことが可能な
N個の命令を処理することのできるデータ依存性インタ
ロック回路は、きわめて扱いにくい。
と、上述の大きな性能上の不利益を発生させずにデータ
依存性ハザードを回避することができるが、多数のソー
ス・オペランドおよび宛先オペランドを含む命令用のデ
ータ依存性インタロック回路の設計および実施は極めて
複雑になる。既存のスーパースカラ・データ処理システ
ムは、2個のソース・オペランドを含む命令をしばしば
使用する。しかし、これらのシステムの複雑さが増大す
るにつれて、3個のソース・オペランド命令を使用する
方法がより一般的になりつつある。3N個のソース・オ
ペランドと2N個の宛先オペランドを含むことが可能な
N個の命令を処理することのできるデータ依存性インタ
ロック回路は、きわめて扱いにくい。
【0006】したがって、既存のデータ依存性インタロ
ック回路を使用してインタロックできるよりも多くのソ
ース・オペランドが含まれる命令を、効率的に同期化で
きるようにする方法およびシステムが必要なことは明白
である。
ック回路を使用してインタロックできるよりも多くのソ
ース・オペランドが含まれる命令を、効率的に同期化で
きるようにする方法およびシステムが必要なことは明白
である。
【0007】
【発明が解決しようとする課題】本発明の一目的は、改
良されたデータ処理システムを提供することである。
良されたデータ処理システムを提供することである。
【0008】本発明の他の目的は、スーパースカラ・プ
ロセッサ・システムの命令同期化効率を上げるための改
良された方法およびシステムを提供することである。
ロセッサ・システムの命令同期化効率を上げるための改
良された方法およびシステムを提供することである。
【0009】本発明の他の目的は、データ依存性インタ
ロック回路を使用してインタロックできるよりも多くの
ソース・オペランドを有する命令を含むスーパースカラ
・プロセッサ・システムのデータ依存性ハザードを解消
するための改良された方法およびシステムを提供するこ
とである。
ロック回路を使用してインタロックできるよりも多くの
ソース・オペランドを有する命令を含むスーパースカラ
・プロセッサ・システムのデータ依存性ハザードを解消
するための改良された方法およびシステムを提供するこ
とである。
【0010】
【課題を解決するための手段】前述の目的は、以下に述
べるようにして達成される。複数の命令を同時にディス
パッチすると、ある命令の結果が第2の命令を実行する
ために必要になるので、ソース宛先間のデータ依存性の
問題が発生する。データ依存性ハザードは、各命令のデ
ィスパッチを、先行する命令が完了することによって可
能なすべてのデータ依存性が解決されるまで、禁止する
ことによって解消することができる。しかし、この技法
を使用すると、命令ディスパッチ効率が大幅に下がる。
データ依存性インタロック回路を使用して、データ依存
性ハザードを解消することができる。しかし、インタロ
ックされるソースおよび宛先の数が増すにつれて、その
ような回路の複雑さが劇的に増大する。本発明の方法お
よびシステムは、各命令用の2個の宛先オペランドによ
って2個のソース・オペランドをインタロックすること
のできる、データ依存性インタロック回路を使用する。
3個以上のソース・オペランドを有する命令は、最初の
2個のソース・オペランドについて、既存のデータ依存
性インタロック回路を使用してディスパッチ段階でイン
タロックされる。その後は、データ依存性インタロック
回路を使用して最初の2個のソース・オペランドについ
てデータ依存性ハザードが解消され、その命令に先行す
るすべての命令が完了しそのため第3のソース・オペラ
ンドについてのデータ依存性ハザードがなくなった後に
始めて、命令がディスパッチされる。このようにして、
3個のソース・オペランドを含む命令を、データ依存性
インタロック回路を大幅に増加する必要もなく、システ
ム効率がわずかに低下するだけで、同期化することがで
きる。
べるようにして達成される。複数の命令を同時にディス
パッチすると、ある命令の結果が第2の命令を実行する
ために必要になるので、ソース宛先間のデータ依存性の
問題が発生する。データ依存性ハザードは、各命令のデ
ィスパッチを、先行する命令が完了することによって可
能なすべてのデータ依存性が解決されるまで、禁止する
ことによって解消することができる。しかし、この技法
を使用すると、命令ディスパッチ効率が大幅に下がる。
データ依存性インタロック回路を使用して、データ依存
性ハザードを解消することができる。しかし、インタロ
ックされるソースおよび宛先の数が増すにつれて、その
ような回路の複雑さが劇的に増大する。本発明の方法お
よびシステムは、各命令用の2個の宛先オペランドによ
って2個のソース・オペランドをインタロックすること
のできる、データ依存性インタロック回路を使用する。
3個以上のソース・オペランドを有する命令は、最初の
2個のソース・オペランドについて、既存のデータ依存
性インタロック回路を使用してディスパッチ段階でイン
タロックされる。その後は、データ依存性インタロック
回路を使用して最初の2個のソース・オペランドについ
てデータ依存性ハザードが解消され、その命令に先行す
るすべての命令が完了しそのため第3のソース・オペラ
ンドについてのデータ依存性ハザードがなくなった後に
始めて、命令がディスパッチされる。このようにして、
3個のソース・オペランドを含む命令を、データ依存性
インタロック回路を大幅に増加する必要もなく、システ
ム効率がわずかに低下するだけで、同期化することがで
きる。
【0011】本発明の前記その他の目的、特徴、および
利点は、以下の詳細な説明において明らかになろう。
利点は、以下の詳細な説明において明らかになろう。
【0012】
【実施例】図面、特に図1を参照すると、本発明の方法
およびシステムを実施するために利用できるスーパース
カラ・データ処理システム10の高水準ブロック図が示
されている。図のように、スーパースカラ・データ処理
システム10は、データ、命令などを記憶するために利
用されるメモリ18を含む。メモリ18内に記憶される
データまたは命令には、当業者に周知の方法でキャッシ
ュ/メモリ・インタフェース20を使用してアクセスす
ることが好ましい。キャッシュ・メモリ・システムのサ
イズ設定および利用法は、データ処理技術分野内の周知
の一部門であり、本発明では取り上げない。しかし、現
代の連想式キャッシュ技術を使用することにより、キャ
ッシュ/メモリ・インタフェース20内に一時的に記憶
されたデータを利用して高率のメモリ・アクセスを達成
できることが、当業者には理解されよう。
およびシステムを実施するために利用できるスーパース
カラ・データ処理システム10の高水準ブロック図が示
されている。図のように、スーパースカラ・データ処理
システム10は、データ、命令などを記憶するために利
用されるメモリ18を含む。メモリ18内に記憶される
データまたは命令には、当業者に周知の方法でキャッシ
ュ/メモリ・インタフェース20を使用してアクセスす
ることが好ましい。キャッシュ・メモリ・システムのサ
イズ設定および利用法は、データ処理技術分野内の周知
の一部門であり、本発明では取り上げない。しかし、現
代の連想式キャッシュ技術を使用することにより、キャ
ッシュ/メモリ・インタフェース20内に一時的に記憶
されたデータを利用して高率のメモリ・アクセスを達成
できることが、当業者には理解されよう。
【0013】キャッシュ/メモリ・インタフェース20
からの命令は通常、好ましくは複数の待ち行列位置を含
む命令待ち行列22にロードされる。スーパースカラ・
データ処理システムの典型的な実施例では、命令待ち行
列内の各位置が、4個ないし6個の命令を含むことがで
きるので、所与のサイクル中に、キャッシュ/メモリ・
インタフェース20によって渡される有効な命令の数
と、命令待ち行列22内で利用可能な空間の量に応じ
て、命令待ち行列22に最高で6個の命令をロードする
ことができる。
からの命令は通常、好ましくは複数の待ち行列位置を含
む命令待ち行列22にロードされる。スーパースカラ・
データ処理システムの典型的な実施例では、命令待ち行
列内の各位置が、4個ないし6個の命令を含むことがで
きるので、所与のサイクル中に、キャッシュ/メモリ・
インタフェース20によって渡される有効な命令の数
と、命令待ち行列22内で利用可能な空間の量に応じ
て、命令待ち行列22に最高で6個の命令をロードする
ことができる。
【0014】そのようなスーパースカラ・データ処理シ
ステムでは普通であるが、命令待ち行列22が、複数の
実行ユニット24に命令をディスパッチするために使用
される。図1に示すように、スーパースカラ・データ処
理システム10は、浮動小数点処理ユニット24、固定
小数点処理ユニット26、およびブランチ処理ユニット
28を含む。したがって、命令待ち行列22は、単一の
サイクル中に、複数の命令を各実行ユニットに1個ずつ
ディスパッチすることができる。
ステムでは普通であるが、命令待ち行列22が、複数の
実行ユニット24に命令をディスパッチするために使用
される。図1に示すように、スーパースカラ・データ処
理システム10は、浮動小数点処理ユニット24、固定
小数点処理ユニット26、およびブランチ処理ユニット
28を含む。したがって、命令待ち行列22は、単一の
サイクル中に、複数の命令を各実行ユニットに1個ずつ
ディスパッチすることができる。
【0015】次に図2を参照すると、本発明の方法およ
びシステムを実施するために使用できる図1のスーパー
スカラ・データ処理システムの命令ディスパッチ回路の
さらに詳細なブロック図が示されている。この図には、
命令を命令待ち行列22(図1を参照)からスーパース
カラ・データ処理システム10内の複数の実行ユニット
にディスパッチするために使用される命令ディスパッチ
機構40が示されている。これらの実行ユニットは、図
2では実行ユニット48として集合的に示されている。
命令ディスパッチ機構40からの命令のディスパッチ
は、制御ユニット42を使用して制御される。制御ユニ
ット42は、ハードウェアまたはソフトウェア要素を使
用して実施することができ、命令ディスパッチ機構40
による実行ユニット48への命令のディスパッチを制御
する働きをする。この図では、命令ディスパッチ機構4
0内に、3個のソース・オペランド、すなわちS1、S
2、S3を含む単一の命令が詳細に示してある。
びシステムを実施するために使用できる図1のスーパー
スカラ・データ処理システムの命令ディスパッチ回路の
さらに詳細なブロック図が示されている。この図には、
命令を命令待ち行列22(図1を参照)からスーパース
カラ・データ処理システム10内の複数の実行ユニット
にディスパッチするために使用される命令ディスパッチ
機構40が示されている。これらの実行ユニットは、図
2では実行ユニット48として集合的に示されている。
命令ディスパッチ機構40からの命令のディスパッチ
は、制御ユニット42を使用して制御される。制御ユニ
ット42は、ハードウェアまたはソフトウェア要素を使
用して実施することができ、命令ディスパッチ機構40
による実行ユニット48への命令のディスパッチを制御
する働きをする。この図では、命令ディスパッチ機構4
0内に、3個のソース・オペランド、すなわちS1、S
2、S3を含む単一の命令が詳細に示してある。
【0016】既存のスーパースカラ・データ処理システ
ムでは普通のことであるが、2個のソース・オペランド
を2個の宛先オペランドでインタロックすることのでき
るソース宛先間インタロック回路44を提供して、これ
らのオペランドを含む命令をディスパッチする前にその
ようなデータ依存性ハザードを解消しておくことが可能
である。当業者には明らかなように、各ソース・オペラ
ンドは、レジスタ・ファイル46内のオペランドにアク
セスするために使用される。
ムでは普通のことであるが、2個のソース・オペランド
を2個の宛先オペランドでインタロックすることのでき
るソース宛先間インタロック回路44を提供して、これ
らのオペランドを含む命令をディスパッチする前にその
ようなデータ依存性ハザードを解消しておくことが可能
である。当業者には明らかなように、各ソース・オペラ
ンドは、レジスタ・ファイル46内のオペランドにアク
セスするために使用される。
【0017】本発明の重要な特徴によれば、ソース・オ
ペランドS1およびS2はソース宛先間インタロック回
路44を使用してインタロックされ、ソース・オペラン
ドS3は実行ユニット48に直接結合される。こうすれ
ば、実行ユニット48は、ソース・オペランドS3をレ
ジスタ・ファイル46に結合し、ソース・オペランドS
3に関連するオペランドを見つけてそれにアクセスする
ことができる。
ペランドS1およびS2はソース宛先間インタロック回
路44を使用してインタロックされ、ソース・オペラン
ドS3は実行ユニット48に直接結合される。こうすれ
ば、実行ユニット48は、ソース・オペランドS3をレ
ジスタ・ファイル46に結合し、ソース・オペランドS
3に関連するオペランドを見つけてそれにアクセスする
ことができる。
【0018】本発明の重要な特徴によれば、ソース宛先
インタロック回路44が、ソース・オペランドS1およ
びS2についてのデータ依存性ハザードが解消されたと
判定し、これらのソース・オペランドに関連するレジス
タ・ファイル46からのデータが実行ユニット48に返
された後、ソース・オペランドS3に先行するすべての
命令が完了したか否かを判定する。すべての先行する命
令が完了した後、ソース・オペランドS3に関連するデ
ータが、レジスタ・ファイル46から実行ユニット48
に返され、3個のソース命令が実行ユニットにディスパ
ッチされる。
インタロック回路44が、ソース・オペランドS1およ
びS2についてのデータ依存性ハザードが解消されたと
判定し、これらのソース・オペランドに関連するレジス
タ・ファイル46からのデータが実行ユニット48に返
された後、ソース・オペランドS3に先行するすべての
命令が完了したか否かを判定する。すべての先行する命
令が完了した後、ソース・オペランドS3に関連するデ
ータが、レジスタ・ファイル46から実行ユニット48
に返され、3個のソース命令が実行ユニットにディスパ
ッチされる。
【0019】このようにして、ソース・オペランドおよ
び宛先オペランドをインタロックするために必要なイン
タロック回路の複雑さが33%削減され、スーパースカ
ラ・データ処理システム10の全体的な性能はわずかだ
け低下する。なぜなら、3個のソース・オペランドが頻
繁に使用されることはないからである。したがって、本
発明の方法およびシステムは、そのような命令のディス
パッチを、すべての先行する命令が完了するまで遅延さ
せておくことによって、3個のソース・オペランドを処
理し、データ依存性ハザードを解消する。3個以上のソ
ース・オペランドを含む命令だけのディスパッチを遅延
させることによって、システムの全体的な性能は、すべ
ての命令のディスパッチをたとえば先行命令が完了する
時まで遅延させるシステムに比べて、大幅に向上する。
び宛先オペランドをインタロックするために必要なイン
タロック回路の複雑さが33%削減され、スーパースカ
ラ・データ処理システム10の全体的な性能はわずかだ
け低下する。なぜなら、3個のソース・オペランドが頻
繁に使用されることはないからである。したがって、本
発明の方法およびシステムは、そのような命令のディス
パッチを、すべての先行する命令が完了するまで遅延さ
せておくことによって、3個のソース・オペランドを処
理し、データ依存性ハザードを解消する。3個以上のソ
ース・オペランドを含む命令だけのディスパッチを遅延
させることによって、システムの全体的な性能は、すべ
ての命令のディスパッチをたとえば先行命令が完了する
時まで遅延させるシステムに比べて、大幅に向上する。
【0020】次に図3を参照すると、本発明の方法およ
びシステムによる命令ディスパッチ・プロセスを示す論
理フローチャートが示されている。図のように、プロセ
スはブロック60から開始し、次にブロック62に進
む。ブロック62で、現命令が3ソース・オペランド命
令であるか否か判定する。3ソース・オペランド命令で
ない場合は、たとえば3ソース・オペランド命令が発生
する時まで、このプロセスが単に繰り返される。さらに
ブロック62を参照すると、現命令が3ソース・オペラ
ンド命令である場合、ブロック64に進む。ブロック6
4で、従来技術で周知の方法でソース宛先間インタロッ
ク回路ユニット44を使用して最初の2個のソース・オ
ペランドをインタロックする。
びシステムによる命令ディスパッチ・プロセスを示す論
理フローチャートが示されている。図のように、プロセ
スはブロック60から開始し、次にブロック62に進
む。ブロック62で、現命令が3ソース・オペランド命
令であるか否か判定する。3ソース・オペランド命令で
ない場合は、たとえば3ソース・オペランド命令が発生
する時まで、このプロセスが単に繰り返される。さらに
ブロック62を参照すると、現命令が3ソース・オペラ
ンド命令である場合、ブロック64に進む。ブロック6
4で、従来技術で周知の方法でソース宛先間インタロッ
ク回路ユニット44を使用して最初の2個のソース・オ
ペランドをインタロックする。
【0021】次にブロック66に進む。ブロック66
で、現命令中の最初の2個のソース・オペランドがデー
タ依存性を解消しているか否か判定する。解消していな
い場合は、たとえばソース宛先インタロック回路44が
最初の2個のソース・オペランドがデータ依存性を解消
したと判定する時まで、そのプロセスが単に繰り返され
る。その後ブロック68に進む。ブロック68で、現命
令の最初の2個のオペランドに関連するデータをレジス
タ・ファイル46(図2を参照)から実行ユニットに戻
す。このデータは次に、ブロック70で、実行ユニット
内に置かれる。
で、現命令中の最初の2個のソース・オペランドがデー
タ依存性を解消しているか否か判定する。解消していな
い場合は、たとえばソース宛先インタロック回路44が
最初の2個のソース・オペランドがデータ依存性を解消
したと判定する時まで、そのプロセスが単に繰り返され
る。その後ブロック68に進む。ブロック68で、現命
令の最初の2個のオペランドに関連するデータをレジス
タ・ファイル46(図2を参照)から実行ユニットに戻
す。このデータは次に、ブロック70で、実行ユニット
内に置かれる。
【0022】次にブロック72に進む。ブロック72
で、3個のソース・オペランドを含む現命令に先行する
すべての命令が解消されたか否か判定する。解消されて
いない場合は、すべての先行する命令が解消される時ま
で、そのプロセスが単に繰り返される。第3のソース・
オペランドを含む命令に先行するすべての命令が解消さ
れた後、ブロック74に進む。ブロック74で、第3の
ソース・オペランド用のデータをレジスタ・ファイルか
ら戻す。次に、ブロック76で、データが実行ユニット
内に置かれる。最後に、ブロック78で、プロセスがリ
ターンする。
で、3個のソース・オペランドを含む現命令に先行する
すべての命令が解消されたか否か判定する。解消されて
いない場合は、すべての先行する命令が解消される時ま
で、そのプロセスが単に繰り返される。第3のソース・
オペランドを含む命令に先行するすべての命令が解消さ
れた後、ブロック74に進む。ブロック74で、第3の
ソース・オペランド用のデータをレジスタ・ファイルか
ら戻す。次に、ブロック76で、データが実行ユニット
内に置かれる。最後に、ブロック78で、プロセスがリ
ターンする。
【0023】前述の内容を参照すれば、3個以上のソー
ス・オペランドを含む命令を、通常最初の2個のソース
・オペランドについてインタロックできるようにし、そ
の後すべての先行する命令についてデータ依存性を想定
することによって、そのようなオペランドを含む命令を
処理する際の命令ディスパッチ効率を上げる方法が本発
明者等によって提供されたことが、当業者には理解され
よう。したがって、第3のソース・オペランドを含む命
令は、すべての先行する命令が完了するまで、ディスパ
ッチされない。このようにして、ソース宛先間インタロ
ック回路ユニットの複雑さを増大する必要をなくするこ
とにより、3個のソース・オペランドを含む命令の発生
時にシステムの性能がごくわずかしか低下せずに、シス
テムの効率が大幅に向上する。
ス・オペランドを含む命令を、通常最初の2個のソース
・オペランドについてインタロックできるようにし、そ
の後すべての先行する命令についてデータ依存性を想定
することによって、そのようなオペランドを含む命令を
処理する際の命令ディスパッチ効率を上げる方法が本発
明者等によって提供されたことが、当業者には理解され
よう。したがって、第3のソース・オペランドを含む命
令は、すべての先行する命令が完了するまで、ディスパ
ッチされない。このようにして、ソース宛先間インタロ
ック回路ユニットの複雑さを増大する必要をなくするこ
とにより、3個のソース・オペランドを含む命令の発生
時にシステムの性能がごくわずかしか低下せずに、シス
テムの効率が大幅に向上する。
【図1】本発明の方法およびシステムを実施するために
使用できるスーパースカラ・データ処理システムの高水
準ブロック図である。
使用できるスーパースカラ・データ処理システムの高水
準ブロック図である。
【図2】本発明の方法およびシステムを実施するために
使用できる図1のスーパースカラ・データ処理システム
の命令ディスパッチ回路のさらに詳細なブロック図であ
る。
使用できる図1のスーパースカラ・データ処理システム
の命令ディスパッチ回路のさらに詳細なブロック図であ
る。
【図3】本発明の方法およびシステムによる命令ディス
パッチ・プロセスを示す論理フローチャートである。
パッチ・プロセスを示す論理フローチャートである。
10 スーパースカラ・データ処理システム 18 メモリ 20 キャッシュ/メモリ・インタフェース 22 命令待ち行列 24 浮動小数点処理ユニット 26 固定小数点処理ユニット 28 ブランチ処理ユニット 40 命令ディスパッチ機構 42 制御ユニット 44 ソース宛先間インタロック回路 46 レジスタ・ファイル
Claims (6)
- 【請求項1】複数のソース・オペランドおよび宛先オペ
ランドを有する複数のスカラ命令を同時にディスパッチ
することができ、N(N>1)個のソース・オペランド
および複数の宛先オペランドをインタロックしてデータ
依存性ハザードを防止することのできるソース宛先間依
存性インタロック回路を有する、スーパースカラ・プロ
セッサ・システムの命令同期化効率を向上させる方法で
あって、 前記ソース宛先間依存性インタロック回路が、データ依
存性ハザードが解消されたことを示したときに、N個の
ソース・オペランドを含む前記スーパースカラ・プロセ
ッサ・システム内の各スカラ命令をディスパッチするス
テップと、 すべての先行する命令が完了した時に限って、N個より
多くのソース・オペランドを含む各スカラ命令をディス
パッチするステップとを含み、 追加の依存性インタロック回路を必要とせずに、前記デ
ィスパッチされたスカラ命令のうち3つ以上のソース・
オペランドを含むスカラ命令についてデータ依存性が解
消されることを特徴とする方法。 - 【請求項2】すべての先行する命令が完了した時に限っ
て、N個より多くのソース・オペランドを含む各スカラ
命令をディスパッチする前記ステップが、前記ソース宛
先間インタロック回路を使用して前記ソース・オペラン
ドのうちの最初のN個をインタロックするステップと、
前記ソース宛先間依存性インタロック回路が、前記ソー
ス・オペランドのうちの前記最初の2つについてデータ
依存性ハザードが解消されたことを示し、すべての先行
するスカラ命令が完了したときに限って、N個より多く
のソース・オペランドを含む前記スカラ命令をディスパ
ッチするステップとをさらに含む請求項1に記載のスー
パースカラ・プロセッサ・システムの命令同期化効率を
向上させる方法。 - 【請求項3】前記スーパースカラ・プロセッサ・システ
ムがレジスタ・ファイルを含み、各スカラ命令内の各ソ
ース・オペランドに応じて、前記レジスタ・ファイルか
ら指定されたオペランドを読み取るステップをさらに含
む請求項1に記載のスーパースカラ・プロセッサ・シス
テムの命令同期化効率を向上させる方法。 - 【請求項4】複数のソース・オペランドおよび宛先オペ
ランドを有する複数のスカラ命令を同時にディスパッチ
することができ、N(N>1)個のソース・オペランド
および複数の宛先オペランドをインタロックしてデータ
依存性ハザードを防止することのできるソース宛先間依
存性インタロック回路を有する、スーパースカラ・プロ
セッサ・システムの命令同期化効率を向上させるシステ
ムであって、 前記ソース宛先間依存性インタロック回路が、データ依
存性ハザードが解消されたことを示したときに、N個の
ソース・オペランドを含む前記スーパースカラ・プロセ
ッサ・システム内の各スカラ命令をディスパッチする手
段と、 すべての先行する命令が完了した時に限って、N個より
多くのソース・オペランドを含む各スカラ命令をディス
パッチする手段とを備え、 追加の依存性インタロック回路を必要とせずに、前記デ
ィスパッチされたスカラ命令のうち3つ以上のソース・
オペランドを含むスカラ命令についてデータ依存性が解
消されることを特徴とするシステム。 - 【請求項5】すべての先行する命令が完了した時に限っ
て、N個より多くのソース・オペランドを含む各スカラ
命令をディスパッチする前記手段が、前記ソース宛先間
インタロック回路を使用して前記ソース・オペランドの
うちの最初のN個をインタロックし、前記ソース宛先間
依存性インタロック回路が、前記ソース・オペランドの
うちの前記最初の2個についてデータ依存性ハザードが
解消されたことを示し、すべての先行するスカラ命令が
完了したときに限って、N個より多くのソース・オペラ
ンドを含む前記スカラ命令をディスパッチする手段をさ
らに備える請求項4に記載のスーパースカラ・プロセッ
サ・システムの命令同期化効率を向上させるシステム。 - 【請求項6】前記スーパースカラ・プロセッサ・システ
ムがレジスタ・ファイルを含み、各スカラ命令内の各ソ
ース・オペランドに応じて、前記レジスタ・ファイルか
ら指定されたオペランドを読み取る手段をさらに含む請
求項4に記載のスーパースカラ・プロセッサ・システム
の命令同期化効率を向上させるシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/001,863 US5761473A (en) | 1993-01-08 | 1993-01-08 | Method and system for increased instruction synchronization efficiency in a superscalar processsor system utilizing partial data dependency interlocking |
US001863 | 1993-01-08 | ||
US1863 | 1997-12-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06236272A JPH06236272A (ja) | 1994-08-23 |
JP2620505B2 true JP2620505B2 (ja) | 1997-06-18 |
Family
ID=21698171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5319296A Expired - Lifetime JP2620505B2 (ja) | 1993-01-08 | 1993-12-20 | スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム |
Country Status (4)
Country | Link |
---|---|
US (1) | US5761473A (ja) |
EP (1) | EP0605870A1 (ja) |
JP (1) | JP2620505B2 (ja) |
CA (1) | CA2107045A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870616A (en) * | 1996-10-04 | 1999-02-09 | International Business Machines Corporation | System and method for reducing power consumption in an electronic circuit |
US5974538A (en) * | 1997-02-21 | 1999-10-26 | Wilmot, Ii; Richard Byron | Method and apparatus for annotating operands in a computer system with source instruction identifiers |
US6564298B2 (en) | 2000-12-22 | 2003-05-13 | Intel Corporation | Front end system having multiple decoding modes |
US7000095B2 (en) * | 2002-09-06 | 2006-02-14 | Mips Technologies, Inc. | Method and apparatus for clearing hazards using jump instructions |
CA2930737C (en) | 2013-11-22 | 2023-02-21 | Pharmakea, Inc. | Autotaxin inhibitor compounds |
US9051320B1 (en) | 2014-08-18 | 2015-06-09 | Pharmakea, Inc. | Methods for the treatment of metabolic disorders by a selective small molecule autotaxin inhibitor |
KR20240060887A (ko) | 2015-05-27 | 2024-05-08 | 사브레 테라퓨틱스 엘엘씨 | 오토탁신 억제제 및 이의 용도 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3651482A (en) * | 1968-04-03 | 1972-03-21 | Honeywell Inc | Interlocking data subprocessors |
US3718912A (en) * | 1970-12-22 | 1973-02-27 | Ibm | Instruction execution unit |
US4287561A (en) * | 1978-03-16 | 1981-09-01 | International Business Machines Corporation | Address formulation interlock mechanism |
US5051940A (en) * | 1990-04-04 | 1991-09-24 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
US4855947A (en) * | 1987-05-27 | 1989-08-08 | Amdahl Corporation | Microprogrammable pipeline interlocks based on the validity of pipeline states |
US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
US5131086A (en) * | 1988-08-25 | 1992-07-14 | Edgcore Technology, Inc. | Method and system for executing pipelined three operand construct |
US5150470A (en) * | 1989-12-20 | 1992-09-22 | International Business Machines Corporation | Data processing system with instruction queue having tags indicating outstanding data status |
US5163139A (en) * | 1990-08-29 | 1992-11-10 | Hitachi America, Ltd. | Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions |
US5253349A (en) * | 1991-01-30 | 1993-10-12 | International Business Machines Corporation | Decreasing processing time for type 1 dyadic instructions |
-
1993
- 1993-01-08 US US08/001,863 patent/US5761473A/en not_active Expired - Fee Related
- 1993-09-27 CA CA002107045A patent/CA2107045A1/en not_active Abandoned
- 1993-12-20 JP JP5319296A patent/JP2620505B2/ja not_active Expired - Lifetime
- 1993-12-27 EP EP93120938A patent/EP0605870A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
CA2107045A1 (en) | 1994-07-09 |
US5761473A (en) | 1998-06-02 |
EP0605870A1 (en) | 1994-07-13 |
JPH06236272A (ja) | 1994-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3120152B2 (ja) | コンピューターシステム | |
US5655096A (en) | Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution | |
US6047369A (en) | Flag renaming and flag masks within register alias table | |
EP0762270B1 (en) | Microprocessor with load/store operation to/from multiple registers | |
US5421020A (en) | Counter register implementation for speculative execution of branch on count instructions | |
EP0789299A1 (en) | Method for executing speculative load instructions in high-performance processors | |
JP2783505B2 (ja) | 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム | |
JPH02227769A (ja) | データ処理システム | |
JPH06236273A (ja) | スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム | |
US20040139299A1 (en) | Operand forwarding in a superscalar processor | |
US4967338A (en) | Loosely coupled pipeline processor | |
US5898864A (en) | Method and system for executing a context-altering instruction without performing a context-synchronization operation within high-performance processors | |
JPH06242955A (ja) | スーパースカラ・プロセッサ・システムにおける中間記憶バッファの割当てをインデックスする方法およびシステム | |
JP2742374B2 (ja) | スーパースカラ・プロセッサ・システムにおける命令ディスパッチ効率を向上させる方法およびシステム | |
US6862676B1 (en) | Superscalar processor having content addressable memory structures for determining dependencies | |
JP3207124B2 (ja) | カウント/リンク・レジスタ変更命令の投機実行をサポートする方法及び装置 | |
JP2843750B2 (ja) | スーパースカラ・プロセッサ・システムにおける非逐次命令ディスパッチおよび実行のための方法およびシステム | |
JP2620505B2 (ja) | スーパースカラ・プロセッサ・システムの同期化効率を向上させる方法およびシステム | |
US20040199749A1 (en) | Method and apparatus to limit register file read ports in an out-of-order, multi-stranded processor | |
Hicks et al. | POWER2 floating-point unit: Architecture and implementation | |
US5878242A (en) | Method and system for forwarding instructions in a processor with increased forwarding probability | |
JPH06266556A (ja) | データ処理装置 | |
US5410657A (en) | Method and system for high speed floating point exception enabled operation in a multiscalar processor system | |
US7127591B2 (en) | Instruction control device and method therefor | |
US6944750B1 (en) | Pre-steering register renamed instructions to execution unit associated locations in instruction cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040922 |
|
A131 | Notification of reasons for refusal |
Effective date: 20041102 Free format text: JAPANESE INTERMEDIATE CODE: A131 |
|
A02 | Decision of refusal |
Effective date: 20050329 Free format text: JAPANESE INTERMEDIATE CODE: A02 |