JP2001142706A - 命令上での依存性チェックの実行方法と命令実行用のコンピュータシステム - Google Patents

命令上での依存性チェックの実行方法と命令実行用のコンピュータシステム

Info

Publication number
JP2001142706A
JP2001142706A JP2000280299A JP2000280299A JP2001142706A JP 2001142706 A JP2001142706 A JP 2001142706A JP 2000280299 A JP2000280299 A JP 2000280299A JP 2000280299 A JP2000280299 A JP 2000280299A JP 2001142706 A JP2001142706 A JP 2001142706A
Authority
JP
Japan
Prior art keywords
instruction
operand
pipeline
computer system
computer
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.)
Pending
Application number
JP2000280299A
Other languages
English (en)
Inventor
Pen Chiijui
チージュイ・ペン
Glenn A Farrall
グレン・アシュレー・ファラル
Sivaram Krishnan
シバラム・クリシュナン
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JP2001142706A publication Critical patent/JP2001142706A/ja
Pending 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 or look ahead
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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 or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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 or 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency 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)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【課題】 ハードウェアを更に複雑化することなく依存
性論理を簡素化するための要求がある。 【解決手段】 本発明によれば、パイプライン化された
アーキテクチャ内での選択されたオペランドフィールド
を設定する技術が提供される。本発明によれば、オペラ
ンドフィールドを効率的に選択する方法及びシステム
は、RISCアーキテクチャを含めて様々なコンピュー
タアーキテクチャにおいて実行可能となる。本発明はコ
ンピュータシステムのパイプライン内でのコンピュータ
命令上で依存性チェックを実行する方法を提供し、その
コンピュータシステムは、第1コンピュータ命令が第1
ソースオペランドのみを作動するオプコード262を有
するか否か、を決定することを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般にコンピュー
タ命令セットアーキテクチャに関し、特に選択されたオ
ペランドフィールドの設定(コンピュータシステム命令
内のソースオペランドを選択且つ使用する方法及びシス
テム)に関する。
【0002】
【従来の技術】過去十年間に、各命令が1つの単一演算
サイクル内で理想的に実行されたRISC(縮小命令セ
ットコンピュータ)アーキテクチャが普及した。RIS
Cアーキテクチャコンピュータは標準アーキテクチャコ
ンピュータよりも優れた幾つかの利点を有する。例え
ば、RISC命令セットは、更に短い期間に頻繁な演算
を実行できる能力により、遥かに高いデータ処理速度を
可能としている。RISCデバイスは16ビット命令セ
ットから始まり、32ビット命令セットアーキテクチャ
まで成長した。
【0003】パイプライン化技術は、データ処理能力を
増大するために、RISCアーキテクチャと共に使用さ
れている。パイプライン化がデータの縮小チェックのた
めに必要性をもたらし、そこでは1つの命令の出力がそ
の後続の命令への期待入力である。ある場合には、命令
は単項(単一ソース)命令と2項(デュアルソース)命
令とに分割され、それぞれは自己依存論理を有する。
【0004】
【発明が解決しようとする課題】パイプライン化によっ
て導入された複雑さに加えて、アプリケーションもRI
SCアーキテクチャの複雑さに寄与している。例えばゼ
ロのように、頻繁に使用される定数は、異なるソースか
ら異なる場所に設定可能である。
【0005】従って、ハードウェアを更に複雑化するこ
となく依存論理を簡素化するための要求がある。更に、
この頻繁にアクセスされた定数の使用を簡素化するため
に、ゼロ用の集中且つ公知のソースを持つ要求がある。
【0006】
【課題を解決するための手段】本発明によれば、パイプ
ライン化されたアーキテクチャにおいて選定オペランド
フィールドを設定するための技術が提供される。本発明
によればオペランドフィールドを効率的に選択する方法
及びシステムが、RISCアーキテクチャを含めて様々
なコンピュータアーキテクチャにおいて作動可能とな
る。
【0007】特定の態様では、本発明はコンピュータシ
ステムのパイプライン内でのコンピュータ命令上で依存
性チェックを実行する方法を提供し、そのコンピュータ
システムは、第1コンピュータ命令が第1ソースオペラ
ンドのみを作動するオプコードを有するか否かを決定す
ることを含む。コンピュータ命令は、例えば、1つのオ
プコード及び複数のソースオペランドを持つことができ
る。次に、追加ソースオペランドは、第1ソースオペラ
ンド又は定数ゼロオペランドと交換可能である。パイプ
ラインにおけるコンピュータ命令内のオペランドと他の
コンピュータ命令内のオペランドとの間で依存性が検出
可能である。本実施の形態において、検出は、単項命令
用の2項依存性チェックを使用できる。
【0008】別の態様において、本発明は、パイプライ
ン内でのコンピュータ命令を実行するコンピュータシス
テムを提供する。システムは、コンピュータ命令を含む
メモリを備えることができる。コンピュータ命令は、例
えば、複数のデータフィールドを有することができる。
また、全てゼロに戻すことのできるレジスタと、メモリ
内に格納されたコンピュータ命令を実行するコンピュー
タプロセッサとは、コンピュータシステムの1部分でも
あり得る。現時点において好ましい態様では、例えば、
レジスタは64ビットの読取り専用レジスタであり得
る。例えば、コンピュータシステムは1つのオペランド
内にレジスタを置くことが可能であり、コンピュータ命
令を実行可能である。
【0009】本発明によれば、選ばれた態様によって多
数の利点が提供される。態様は、選ばれたコンピュータ
アーキテクチャ用のパイプライン化された命令内で選択
オペランドフィールドを設定することに提供される。あ
る態様では、パイプライン化された命令用の依存性チェ
ックが提供され得る。多くの態様はRISC型コンピュ
ータアーキテクチャを用いて動作可能である。選ばれた
態様は、頻繁に使用される定数値等のために標準ハード
ウェアソースを供給し得る。
【0010】本発明におけるこれらの及び他の利点と特
徴とは、添付図面と共に以下の詳細な説明を読むことに
より、当該技術分野における当業者にとって明らかにな
るだろう。
【0011】
【発明の実施の形態】本発明による実施の形態は、パイ
プライン付きアーキテクチャ内で選択オペランドフィー
ルドをセットするための技術を提供できる。本発明によ
るオペランドフィールドを効率的に選択するための方法
及びシステムは、RISCアーキテクチャを含めて様々
なコンピュータアーキテクチャにおいて作動可能であ
る。
【0012】特定の実施の形態において、本発明は、6
個のユニットと脱着自在な浮動小数点ユニット(FP
U)とを含んだコアユニットを有するCPU内で実行可
能である。図1は、本発明のコアの代表的なトップレベ
ル分割における簡易なブロック図を例示する。この図
は、ここでの特許請求の範囲を限定しないほんの一例で
ある。当該技術分野における当業者は、多くの他の変
形、代替、及び変更を理解するだろう。表1は、図1の
コア(100)内で示されたユニットの機能の幾つかに
ついて説明する。
【0013】
【表1】
【0014】図2は、本発明における特定な実施の形態
の命令フェッチユニット(IFU)(210)の簡易な
ブロック図を示す。この図は、ここでの特許請求の範囲
を限定しないほんの一例である。当該技術分野における
当業者は多くの他の変形、代替、及び変更を理解するだ
ろう。図2は、命令キャッシュユニット(ICU)(1
30)からフェッチユニット(FE)(242)に入力
された命令を示す。デコーダ(DEC)(244)は、
ソースオペランドとデスティネーションオペランドとの
論理的場所を識別できる。論理的場所は、汎用レジス
タ、浮動小数点レジスタを、ターゲットアドレスレジス
タ、制御レジスタ、埋込即値定数、及び、PC等を含む
ことができる。デコーダ(244)は自己の識別情報を
パイプライン制御ユニット(PPC)(246)に通す
ことができ、そのPPCは命令の中から適切なソースオ
ペランドを選択できる。また、パイプライン制御ユニッ
ト(246)は、命令パイプラインの他のステージを介
して命令の実行も監視できる。例えば、PPC(24
6)は、命令が円滑に且つ正確に実行されることを保証
する。全てのソースオペランドが準備され、又は、命令
実行を要求された時に準備可能となるまで、当該命令は
デコードステージ内に保持される。オペランドファイル
(OF)(248)は、ソースレジスタ、即ち汎用レジ
スタ(GPR)を含むことができる。更に、IFU(2
10)における特定な実施の形態の詳細な説明が付録1
に説明されている。
【0015】図3は、本発明の特定な実施の形態におい
て、代表的で典型的なコンピュータ命令フォーマット
(260)の簡易図を示す。この図は、ここでの特許請
求の範囲を限定しないほんの一例にすぎない。当該技術
分野における当業者は、多くの他の変形、代替、及び変
更を理解するだろう。命令フォーマット(260)は、
オプコード(262)、レジスタソース1(264)、
レジスタソース2(268)、及び、デスティネーショ
ンレジスタ(270)を含んだ2項命令の一例である。
自由に、イクステンション(266)はオプトコード
(262)とリザーブドビット(272)とに設けられ
る。代替の実施の形態では、ソース2(268)は、6
ビット即値アドレスによって交換可能である。イクステ
ンション(266)及びソース2(268)は、10ビ
ット即値アドレスによって交換可能である。ソース1
(264)、イクステンション(266)、及び、ソー
ス2(268)は、16ビット即値アドレスによって交
換可能である。また、図3は、値0を格納した読取り専
用レジスタである汎用レジスタ63(GPR63)(2
80)を示す。レジスタソース(264,268)又は
デスティネーションレジスタ(270)の何れか一方を
GPR63に設定できる。
【0016】本発明の特定な実施の形態では、命令には
2つの一般カテゴリがある:浮動小数点命令(又はFP
命令)と、リセット整数、マルチメディア、ロード/ス
トア、フロー制御命令(又は簡単に整数命令)。前者は
浮動小数点レジスタ上で働き、定レジスタを有していな
い。一方、後者はとりわけ汎用レジスタ上で働き、ゼロ
定数レジスタR63を持つ。FP命令に関して、全ての
未使用第2ソースオペランドスペシファイア、即ち、第
2レジスタソースを識別する命令内のフィールドのコン
テンツは、第1ソースオペランドスペシファイアと同様
に符号化可能である。そのため、当該命令が単項又は2
項であるかを知らずに命令依存を検出するために、論理
的にチェックした一般依存が利用される。整数命令に対
して、全ての未使用第2ソースオペランドスペシファイ
アを、バイナリ「63」として符号化できる。その理由
は、定数レジスタとしてのR63がリードアフタライト
(書き込み後に読み出し)依存を持たないからである。
DR63への書き込みが不可能であり、DR63からの
読み出しが可能である。このプロパティ(特性)は単項
命令及び2項命令に対して当てはまるので、全ての未使
用第2オペランドスペシファイアが63として強制的に
符号化されることによって、整数側で一般依存チェッカ
を使ってリードアフタライト依存に対してチェックす
る。
【0017】代表的な一例において、汎用レジスタ63
(GPR63)は命令PTABSによって使用される。
表2のPTABS命令は、ソースレジスタRnによって
指定されたターゲットアドレスを与える。ターゲットア
ドレスはターゲットアドレスレジスタTRaに格納され
る。リザーブドビット20〜25は「111111」又
は63として実行される。従って、リードアフタライト
依存に対する2項依存チェッカ用のハードウェアは、P
TABS上、即ち単項命令上で使用可能である。
【0018】
【表2】
【0019】別の代表的な例において、汎用レジスタ6
3(GPR63)は命令GETTRによって使用され
る。この命令は32ビットターゲットレジスタ(TR)
を64ビットの値に符号拡張する。表3は、本発明によ
る特別な実施の形態において、GETTR命令用のフォ
ーマットを示す。GETTR命令の実行は、ターゲット
アドレスレジスタTRb 内に保持された値を、一般レジ
スタRd 内へ移動させる。GETTRによって戻された
値が保証していることは、ソースターゲットレジスタに
おける任意の未実行ハイオーダビットが、最大実行ビッ
トの符号拡張として見られることである。表3は命令の
機械コード表現を示し、アセンブリ言語ニーモニックに
よって後続される。次に、ソフトウェア、ハードウェ
ア、又は、両方において実行可能な機能アルゴリズムが
示される。
【0020】
【表3】
【0021】表3は、表2に示されたGETTR命令の
インプリメンテーション(具体例)を例示する。表3の
特定な実施の形態において、GETTR命令は第2オペ
ランド(Rn=63)を0の状態でADD.L として実
行され、符号拡張を得る。ADD.L 命令の実行の間
に、Rmの低位32ビットがRnの低位32ビットに加
えられる。符号拡張された32ビットの結果はRd内に
格納される。従って、第2ソースオペランドスペシファ
イアRnを63として符号化することにより、例えばG
ETTRのような単項命令用の32ビット符号拡張動作
が、同一回路で実行可能になる。その同一回路は、例え
ばADD.L のような2項命令用の加算符号拡張動作を
実行する。
【0022】
【表4】
【0023】ある実施の形態では、GPR63は、その
内部に格納される全てゼロを常に備えた読み取り専用レ
ジスタであっても差し支えない。ハザード検出の間に、
最新命令がデスティネーションとしてR63を有するか
否かを、PPC(246)がチェックできる。もしこれ
が正しければ、PPC246は当該命令をノンバリッド
(無効)デスティネーションとしてマークする。このよ
うにして、後続する命令はレジスタ63上でハザードを
決して発見できず、レジスタファイルから読み込まれ
る。これは更に次のように説明される。即ち、R63が
定レジスタであるので、R63をターゲットレジスタと
して指定することが、(i) R63の値を変えず、(ii)R
63をソースオペランドとして使用した後続命令からの
依存を生じさせる。アーキテクチャの特定な実施の形態
はこの特性を利用し、それを使ってキャッシュにプレフ
ェッチヒント(先取りヒント)を与える。例えば、ロー
ド命令がデコードされると、ターゲットレジスタがR6
3であるか否かを、IFUがチェックする(この論理は
依存チェックのために既に存在する)。もしターゲット
レジスタがR63であるならば、これがキャッシュヒン
トであることをLSUに知らせる。もし当該オペランド
がキャッシュ内で見付けられなければ、LSUがパイプ
ラインをストール(停動)する必要がないように、その
結果は使用されない。更に、もしロードアドレスが不良
であれば、LSUは何ら例外を起こさないはずである。
R63が書き込み不可能であるので、オペランドがキャ
ッシュ内に存在しなければ、当該オペランドをキャッシ
ュにロードするようにキャッシュコントロールが通知さ
れる場合を除き、(R63への)ロードは、NOPのよ
うにパイプラインを下方に移動する。
【0024】図4Aは、命令op1(310)とop2
(314)とop3(318)との間にデータ依存を持
たないパイプラインを示す。この図は、ここでの特許請
求の範囲を限定しないほんの一例である。当該技術分野
における当業者は多くの他の変形、代替、及び、変更を
理解するだろう。図4Aは、1つのオプトコードop1
を有し、第1ソースレジスタ(図3の符号264)の位
置R1と、第2ソースレジスタ(図3の符号268)の
位置R2と、デスティネーションレジスタ(図3の符号
270)の位置R3とによって後続される命令op1
(310)を示す。実行タイムライン(312)は、o
p1を有する命令310に対して実行サイクルを示す。
実行タイムライン(312)はデコードステージDと書
き込みステージWとを有する。符号312内には3つの
実行ステージE1,E2,E3が存在する。次の命令
(314)は、実行タイムライン(316)によって示
されるように実行される。実行タイムライン(316)
を実行タイムライン(312)と比較すれば、命令(3
14)は符号316のDとしてデコード可能であり、一
方、命令(310)は符号312の実行ステージ(E
1)内に存在する。実行タイムライン(312,31
6,320)内のデコードステージ(D)のアライメン
ト(配列)は次のことを示す。即ち、新しい命令が時間
i、i+1、i+2でデコード可能であり、そこでは実
行タイムライン(312、316、320)内のブロッ
クにおける垂直アライメントが同一時間サイクルを表
す。例えば、時間「i+1」(322)で、実行サイク
ル(312)はE1ステージ内であり、実行サイクル
(316)はDステージある。
【0025】図4Bは、本発明の特定な実施の形態にお
いて、データ依存を持つ典型的なパイプラインの簡易図
を示す。この図は、特許請求の範囲を限定しないほんの
一例である。当該技術分野における当業者は、多くの他
の変形、代替、及び、変更を理解するだろう。図4B
は、オプトコードop4とデスティネーションレジスタ
R3とを有する第1の命令(330)を示す。デスティ
ネーションレジスタR3は、オプトコードop5を備え
た後続の命令334内でソースとして用いられる。もし
デスティネーションデータが命令(330)(op4)
に対して1サイクル内で生成されるならば、実行タイム
ライン(332)は、E1でデータが後続の命令(33
4)に対して実行タイムライン(336)のデコードサ
イクルDを利用可能であることを示す。同様に、命令
(334)(op5)の結果が、実行タイムライン(3
36)によって表現された実行ステージE1により生成
される。この結果は、実行タイムライン(340)に示
された命令(338)(op6)のデコードステージD
に通(パス)される。
【0026】図4Cは、本発明の特定な実施の形態にお
いて、ストールを引き起こしたデータ依存を持つ典型的
なパイプラインの簡易図を示す。この図は、特許請求の
範囲を限定しないほんの一例である。当該技術分野にお
ける当業者は、多くの他の変形、代替、及び、変更を理
解するだろう。この例において、命令(350)(op
7)は、実行タイムライン(352)で示されたよう
に、デコードステージDの後で2つの実行ステージE
1,E2を受け取る。命令(350)におけるR3の結
果は命令(354)(op8)への入力として用いられ
る。従って、PPCは、命令(350)(op7)の処
理からR3の正しい値を得るために、実行タイムライン
(356)内の1サイクル(358)を「ストール(停
動)」する。命令(360)(op6)が命令(35
4)(op8)の結果R6を使用するので、実行タイム
ライン(362)によって示されるように、この命令の
処理も遅延する。従って、ハザードを防止するために、
命令(350)(op7)の結果レジスタR3と、命令
(354)(op8)の2つの入力ソースレジスタR
3,R5との間にデータ依存チェックが存在する。命令
の結果R6を算定するのに両ソース値が必要とされるの
で、命令(354)(op8)からの両ソースがチェッ
クされるのを必要とする。
【0027】本発明の特定な実施の形態において、単項
命令は、1つのソースレジスタ264又は268を未使
用のままの状態で、図3における符号260のフォーマ
ットのようなフォーマットを有している。もし未使用ソ
ースレジスタを使用ソースレジスタと等しく設定するな
らば、図4Cで示された依存パイプライン図を使用でき
る。個別の単項依存チェック回路は必要性としない。
【0028】本発明の特定な実施の形態では、2項フォ
ーマットを備えた単項命令の例は、FABS.D 命令で
ある。表5は、倍精度浮動小数点数の絶対値を算定する
命令FABS.D を示す。それは、DRgの値を読み取
り、その符号ビットを明確にし、DRf内の結果を格納
する。第2ソースレジスタが、リザーブドビット10〜
15又は「r1」によって表示されている。
【0029】
【表5】
【0030】従って、上記命令の「r1」を、FAB
S.D 内の使用ソースレジスタDRgの値に設定するこ
とによって、図4Cに関して既に述べたように、チェッ
クした2項依存の使用が可能となる。
【0031】単項命令内でレプリケイト(複製)された
ソースオペランドの別の利点は、一層多くの融通性を設
計に与えることである。典型的な設計では、パイプライ
ンを通り過ぎたソースオペランドバスが存在するだろ
う。複製ソースオペランドによって、ソース1バス又は
ソース2バスのどちらかでアクセスされて設計を最適に
することが可能となる。これにより、設計上の物理的レ
イアウトの点で一層多くのフレキシビリティ(融通性)
をもたらせる(それは、他方のバスよりむしろ一方のバ
スからオペランドを受け取ることが、もっと物理的に便
利である)。また、もし2つのバスが同等に利用されな
い(即ち、一方が他方より一層重くロードされている)
ならば、複製ソースオペランドによって、最少ロードバ
スが使用可能とされ、それによって、負荷を均等化でき
る。
【0032】結果 前述の明細書において、本発明の特定な典型的実施の形
態に関して本発明は開示している。他の実施の形態は、
当該技術分野における当業者にとって明白であろう。例
えば、命令の長さは16ビット、64ビット、128ビ
ット、又はそれ以上であっても差し支えなく、3つのソ
ースオペランドを備えるが、その中の1つだけを使用さ
れ(従って、他のソースオペランドにコピーされ)、又
は、パイプラインは3つ以上、又は3つ以下のステージ
を含むこともあり得る。それ故、添付特許請求の範囲及
びこれに等価な全範囲において記載された本発明の広い
思想及び範囲から逸脱することなく、種々の変更及び変
形が可能であることは明白である。
【0033】
【発明の効果】本発明によれば、パイプライン化された
アーキテクチャにおいて選定されたオペランドフィール
ドを設定するための技術が提供される。本発明によれば
オペランドフィールドを効率的に選択する方法及びシス
テムが、RISCアーキテクチャを含めて様々なコンピ
ュータアーキテクチャにおいて作動可能となる。
【0034】また、本発明によれば、選ばれたコンピュ
ータアーキテクチャ用のパイプライン化された命令内で
選択オペランドフィールドを設定することに提供され
る。パイプライン化された命令用の依存性チェックが提
供され得る。RISC型コンピュータアーキテクチャを
用いて動作可能である。頻繁に使用される定数値等のた
めに標準ハードウェアソースを供給し得る。 付録1:命令フローユニット(IFU) 1−1 概観 命令フローユニット(IFU)はS5コアのシーケンサ
として機能する。IFUはコア内の命令及びデータの流
れを調整し、且つコア内部アクティビティを伴う外部イ
ベント(事象)をマージする。その主な機能は、命令キ
ャッシュユニット(ICU)から命令をフェッチし、そ
の命令をデコードし、その相互依存性を解決し、レジス
タファイルからオペランドを読み出し、デコードされた
命令及びオペランドを実行ユニット(整数マルチメディ
アユニットIMU及びロードストアユニットLSU)に
送出し、実行ユニットからその結果を回収し、そしてレ
ジスタファイルにその結果を書き込むことである。更
に、IFUは、命令キャッシュミス時に、バスインタフ
ェースユニット(BIU)と接続し、外部メモリからの
欠落した命令で命令キャッシュを満たす。また、IFU
は、外部可観測性のためにS5コア内部データの転送を
調整するために、デバッグユニットにも接続する。
【0035】アーキテクチャはモードA及びモードBと
呼ばれ、その間で切り替わるための機構を有する2つの
命令セットを提供する。
【0036】モードA命令セットは、固定長32ビット
符号化を用いる命令を表す。モードAは、最適な動作が
必要とされる場合に、又は、CPU制御及び構成機構に
アクセスするために用いられる。典型的には、全てのモ
ードA命令は4バイト長であり、4バイト境界上のメモ
リ内に保持される。命令は、0〜31を付された32ビ
ットの集まりとして記載される。
【0037】モードB命令セットは、固定長16ビット
符号化を用いる命令を表す。モードBは、SHアーキテ
クチャの以前の態様とのユーザモード命令レベル互換性
を提供する。モードBは、コード密度或いはSH互換性
が要求される場合に用いられる。
【0038】IFUの別の主なタスクは、順序制御の役
割に加えて、全てのモードB命令のエミュレーションを
実行することである。詳細には、全てのモードB命令
は、1つのモードA命令か、又は、モードA命令のシー
ケンスのいずれかに変換される。その後、これらの(モ
ードA)命令は、元のモードA命令実行意味にわずかに
変化を加えて実行される。このエミュレーションアプロ
ーチを用いる場合、モードB命令を実行するのに必要な
論理は、数ブロック内で切り離すことができる。これ
は、モードBの定義が変化した場合に、又は、モードB
互換性に対する必要条件が欠落した場合に、少数の論理
ブロックのみが影響を受け、そのブロックしか再実行さ
れる必要がないという利点を有する。 1.1.1 ブロック図 図5は、全ての内部ブロック及び全ての外部インタフェ
ース用ユニットを有する簡単なIFUブロックを示す。
S5コアの順序制御機能のため、IFUは、コアに搭載
された大部分の他のユニットとのインタフェースを有す
る。IFUとBIUとの間のインタフェースは、命令キ
ャッシュへの命令のロードを開始する。IFUとICU
との間のインタフェースは、実行のための命令のフロー
を提供する。IFUとIMU/LSUとの間のインタフ
ェースは、命令、オペランド、結果及び命令を実行可能
にするための制御信号を送受信するための経路を提供す
る。IFUとデバッグユニットとの間のインタフェース
は、S5コアと外部デバッグ用エージェントとの間で、
サンプリングコマンド、サンプリングされたデータ及び
他のデバッグコマンドを交換するのを容易にする。これ
らのインタフェースに加えて、IFUは、外部割込みを
サンプリングし、且つ、仲介する外部割込みコントロー
ラから外部割込み信号を受信する。そのIFUは、内部
例外でその外部割込みを仲介し、非同期イベントを処理
するために適当なハンドラを起動する。
【0039】内部的には、IFUは、その機能に従って
ブロック、即ち命令キャッシュ制御ユニット、フェッチ
ユニット、分岐ユニット、デコードユニット、パイプ制
御ユニット、及び、オペランドファイルユニットに分割
されることが可能である。表6は、これらのブロック及
びその頭文字を掲載する。
【0040】
【表6】
【0041】1.1.2 IFUブロックの機能の説明 ・命令キャッシュコントロール(ICC) ICCは、命令キャッシュへのアクセスをセットアップ
するために、FEと内部的に、且つICUと外部的に通
信する。標準的には、FEは、命令フェッチアドレス
と、ICCへの「フェッチ要求」を示す1組の制御信号
とを供給する。その代わりに、ICCはFEに、2ワー
ドに整列した命令ワードを送出する。命令キャッシュが
欠落する場合に、BIUに対する再充填サイクルを開始
し、外部メモリから欠落しているキャッシュラインをロ
ードする。再充填は、FEが元のフェッチアドレスに存
続している間に生じる。別の方法では、FEは、命令を
返送する必要がない「プリフェッチ要求」を与えるか、
又は、キャッシュが欠落する場合に再充填を起動する必
要がない「フェッチ要求」を与える。これらの異なるタ
イプの要求を取り扱うために、FEとICCとの間で1
組のプロトコルが定義される。 ・フェッチユニット(FE) 命令がキャッシュからフェッチされる場合、その命令は
1組の4つの命令バッファに保管されるか、又は、ター
ゲットアドレスレジスタに関連するバッファ空間(T0
−T7、即ちIAR)に格納されるようになる。厳密に
は命令が格納される場所は、命令のFE及びISAモー
ドによりその命令がどのように要求されるかによる。し
かしながら、最終的には、2つの命令バッファのうち1
つ(モードAデコード器の場合のib0、及び、モード
Bデコード器の場合のib2)にシフト/移動し、その
中でデコードされ、実行ユニットに送出されるであろ
う。これらのバッファ間での命令のシフト/移動は、こ
れらのバッファ空間の使用率を最適化しようとするFE
により制御される。
【0042】FEの別の役割は、フェッチされた命令の
アドレスから順次アドレスを導出し、その命令が必要に
なる前にこれらの命令を「プリロード」することであ
る。「プリロード」命令は実行されることは保証され
ず、それゆえ無駄な電力消費の一因となる可能性もある
ため、FEにより実施されるプリロード動作は、過剰な
電力使用が生じるほど積極的に行うべきではない。一
方、この動作は、必要な命令のフェッチの遅れに起因し
て、過剰な無駄が生じることもないように、あまりに少
なすぎてもならない。 ・デコードユニット(DEC) S5コアがモードA(ISA==1)下で実行中に、モ
ードAデコード器は、ib0の命令をデコードし、その
デコードした命令情報を、内部ではFE、BR及びPP
Cに、外部ではIMU及びLSUに送出する。これらの
情報により、PPCが、レジスタ使用ハザード(リード
・アフター・ライトの真の依存性及びライト・アフター
・ライトの非依存性)及び命令直列化要件を迅速に解決
できるようになる。また、その情報により、IMU及び
LSUは、更に命令をデコードすることなくデータ演算
を開始できるようになる。分岐命令の場合、迅速な部分
デコード分岐命令により、BRは、分岐条件を統計的に
予測できるようになり、最も早い時間に分岐を決定する
可能性もある。
【0043】S5コアがモードB(ISA==0)下で
実行中に、全ての命令は、Tステージと呼ばれる、付加
的なモードBパイプラインステージを介して進む。その
命令は、最初にib2まで移動する必要があり、その中
でその命令は、1つ又は多数のモードAエミュレーショ
ン用命令に変換されるようになる。その後、エミュレー
ション用命令はib0に移動し、その中では標準モード
A命令の実行が再開される。いくつかの論理ブロックの
ある細部を除いて、S5コアの残りの部分は、これらの
2つのモード間の差を知るべきではない。 ・分岐ユニット(BR) 分岐ユニットは、ISA仕様書に定義される全ての分岐
に関する命令を取り扱う。分岐ユニットは、デコードさ
れた分岐命令をDECから受信し、分岐条件及びターゲ
ットアドレスがわかるか否かを決定し、その分岐を決定
/予測し始める。分岐条件が未知である場合には、分岐
命令の「1」ビットに基づいて、BRは統計的に分岐条
件を予測するであろう。その後、予測された命令がフェ
ッチされ、デコードされる。ある状況では、分岐条件が
決定される前に、予測された命令がフェッチされ、デコ
ードされる場合もある。その状況が生じる場合、BRが
その予測を正確であると判断するまで、その予測された
命令はデコードステージに保持されるであろう。
【0044】分岐命令がデコードされた場合に、ターゲ
ットアドレスが未知である場合には、ターゲットアドレ
スが使用可能になるまで、分岐命令はデコードステージ
に保持されるであろう。ターゲットアドレス転送の実施
制約条件に起因して、最適な分岐性能を得るために、準
備−ターゲット命令と分岐命令との間には適当な「間
隔」が必要とされる。 ・パイプ制御ユニット(PPC) ひとたびDECにより命令がデコードされれば、PPC
が残りのパイプステージを介してその実行状態をモニタ
する。PPCの主な機能は、(i)必要時(IMUの乗
算−累積内部転送の場合)に、全てのソースオペランド
が準備状態又は準備可能な状態になるまで命令がデコー
ドステージに保持されることになる、(ii)命令及び
内部/外部イベントにより課せられた全ての同期及び直
列化要件が生じる、(iii)全てのデータオペランド
/一時的な結果が正確に転送されるという点で、命令が
円滑、かつ正確に実行されるようにすることである。
【0045】パイプコントロール論理を簡単にするため
に、PPCはモードA命令実行時に、いくつかの観測及
び仮定を行う。その仮定の1つは、IMU命令のいずれ
も例外を生じず、全ての命令が決定的にパイプステージ
を介して流れるというものである。この仮定によりPP
Cは、IMUを、入力オペランドが到来する場所及び出
力結果が送出される場所を知る必要がない複合データ演
算エンジンとして見ることができるようになる。その
後、全てのデータ転送及びハザード検出論理は、同じ簡
単な機構を用いてPPC内に一体化させることができ
る。LSUパイプライン内の非決定的な演算に対して適
応するために、その後、この簡単な機構にいくつかの工
夫がなされる。しかしながら、その変更は、特に、LS
Uパイプラインの特異性においてターゲットとされてお
り、オーバヘッドが最小限になるようにすべきである。
【0046】PPCの別の主な機能は、命令例外、外部
割込み、リセット等のような非順次イベントを取り扱う
ことである。正常な例外条件下では、PPCの一部は常
時アイドル状態にある。イベントが生じる際に、PPC
が起動する。PPCは外部割込みコントローラから外部
割込み/リセット信号を受信する。PPCはコアの多数
の部分から内部例外を受信する。いずれの場合でも、P
PCはパイプラインを一掃し、その後、BRにコア状態
を保管することを通知し、適当なハンドラに分岐するで
あろう。多数の例外及び割込みが同時に生じる場合に、
構造的に定義された優先順位に従って、その間で仲介す
る。またPPCは、SR.BLビットを確認して、その
割込み/例外が妨げられるべきか否か、及びそのタイミ
ングを知る。 ・オペランドファイル(OF) OFユニットは構造的に定義された汎用レジスタファイ
ルを実現する。さらに、まだ完遂されていない一時的な
結果を格納し、かつ転送するために「パイプファイル」
と呼ばれる、限定形のリオーダバッファも実現する。S
5コアにより採用されたin−order(順次)実行
の性質に起因して、実行結果がout−of−orde
r(非順次)に生成される場合もある小さな時間のウイ
ンドウのみが存在する。S5コアはこの特性を利用し
て、結果が生成された直後に一時的な結果が転送される
ようにできる、簡略化した形のリオーダバッファを実現
すると共に、通常リオーダバッファに関連する高コスト
のタグ移動/一致機構をなしで済ませる。OFは、この
パイプファイルのデータ経路部分を実現する。制御はP
PCにおいて実行される。 1.1.3 IFUパイプライン構造 基本的なパイプラインフローを理解するために、以下の
図には2つの一般的な場合が示される。
【0047】図6は、データ依存性もなく、データ間の
リソース依存性もない命令シーケンスを示す。その命令
は、パイプライン内に空き(babble)がなく実行され
る。
【0048】図7は、連続した(back-to-back)依存性
を有するパイプラインフローを示す。これは、全てのI
MUの1サイクル実行命令に当てはまる。その結果は、
以下の命令に即時利用可能である。その依存性はパイプ
ラインに空きを引き起こさないであろう。
【0049】この節は、図8及び図9に示されるIFU
の観点から見たパイプライン構造を議論する。フロント
エンドパイプステージは、1.5サイクルの実行キャッ
シュアクセス時間と0.5サイクルの事前デコードステ
ージとに起因して、わずかに異なって言及されることに
注意されたい。 ・フェッチステージ(F) フェッチステージは1.5クロックサイクル(又は3ク
ロックフェーズ)間続く。Fステージ中に、ICCは、
命令キャッシュにアクセスし、FEに第3クロックフェ
ーズの開始時点でキャッシュヒット/ミスについて通知
し、ヒットの場合には、そのフェーズの最後にフェッチ
された命令を戻す。FEはFステージの1サイクル中に
フェッチアドレスをインクリメントする。フェッチアド
レスが奇数ワード境界上に位置する場合には、4だけイ
ンクリメントされ、そのインクリメントされたアドレス
が同じサイクル中にICCに送出され、後続のサイクル
(即ち、現在のFステージにおける第3のフェーズにお
いて開始するサイクル)において命令キャッシュにアク
セスする。フェッチアドレスが偶数ワード境界に位置す
る場合には、8だけインクリメントされ、そのインクリ
メントされたアドレスが、ICCに送出される前に1サ
イクル間ラッチされる。直後のサイクルの場合、FE
は、IARプリロード或いは命令キャッシュプリフェッ
チのような優先順位の低いキャッシュアクセスでそのサ
イクルを満たす。
【0050】Fステージは1.5サイクル続くが、命令
キャッシュは、各サイクルに命令キャッシュを取り扱う
ことができるようにパイプライン処理される。その結
果、FEはサイクル毎に動作する必要がある。 ・事前デコードステージ(P) 命令がフェッチされた直後に、その命令は(事前)デコ
ード論理に給送され、その中でDECが迅速に、(i)
3レジスタファイル(RF)読出しポートのうち任意の
ポートにアクセスする必要があるか否かを、及び、その
命令が、ターゲットアドレスレジスタ(IAR.A)と
それに関連するバッファ空間(IAR.T)とに読み出
される必要がある分岐命令であるか否かを判定する必要
がある。この事前デコード処理は、RF、IAR.A及
びIAR.Tが全て特別に作製したアレイとして実装さ
れ、読み出しを開始するためにきれいなクロックエッジ
を必要とするため、Dステージに対するクロックの立ち
上がり前に行われなければならない。これらの2つのタ
スクに加えて、他のデコードステージタスクは、タイミ
ング要件を満足するためにデコードステージからこのス
テージに移行される場合もある。 ・デコードステージ(D) このステージの間に、DEC及びPPCがともに命令を
デコードし、あらゆる直列化/例外/機能停止条件を検
査し、更に利用される可能性のあるソースオペランドが
RF、コントロールレジスタスタック、IAR.A等か
ら検索される間に、全ての必要とされるデータ転送を取
り扱うように動作する。全てが良好に進行するなら、デ
コードされた信号は、正確なソースオペランドととも
に、実行ユニット(IMU又はLSU)に配向され、微
視的なアーキテクチャ状態が更新され、その命令が命令
バッファから除去される。その命令が無条件又は分岐す
ると予測された命令である場合には、いずれかのターゲ
ットアドレスが次のフェッチサイクル間にIAR.Aか
ら検索されるか、又は、ターゲット命令がプリロードさ
れている場合には、その命令及び次のフェッチアドレス
が、次のデコード及びフェッチステージの間にIAR.
Tバッファから読み出される。 ・変換ステージ(T) コアがモードBで動作している場合、全ての命令がこの
変換ステージを通り、モードA命令に翻訳される。コア
の残りの部分はサイクル当たり大部分の1(モードA)
命令で処理することができるため、モードB命令が1つ
のモードA命令でエミュレートできない場合には、その
変換を取り扱うために多数サイクルかかるであろう。本
質的には、モードB命令はTステージに位置し、一方エ
ミュレート用のモードA命令は、サイクル当たり1回、
Dステージ及びパイプラインの残りの部分に給送され
る。モード切替え分岐命令を除いて、DECは単にモー
ドB命令を取り扱うための役割を果たす。 ・E1実行ステージ(E1) 条件付き分岐命令の場合、IMUは64ビット比較演算
を行うように命令され、E1ステージ中にIFUに1ビ
ットの結果を転送する。この結果ビットは、BR及びD
EC(又はPPC)により同時に検査される。それが予
測されたものである場合には、変更なく全てが進行す
る。そうでない場合には、DECがDステージの命令を
無効にし、一方BRが、次の(E2)ステージにおいて
予測誤り修復プロセスを開始する準備をする。 ・E2実行ステージ(E2) BRが前ステージ中に予測誤り分岐を検出する場合に
は、E2サイクル中に正確な経路にそのフローを再配向
する。実際の分岐方向及び正確な次の命令がフェッチさ
れたか否かにより、いくつかのバブルがパイプラインに
挿入されるようになる。
【0051】PT命令の場合、E1サイクル中にIMU
アドレス加算器により計算された、ターゲットアドレス
レジスタのための新しい内容は、OFのパイプラインを
介してこのサイクル中にBRに転送され、Wステージ中
にターゲットアドレスレジスタファイル(IAR.A)
に書き込まれるはずの、パイプラインに類似のステージ
ングキューにラッチされる。しかしながらこの新しい内
容は、即時にFEに転送され、FEが次のサイクル中に
ターゲット命令をプリロードできるようにする。 ・E3実行ステージ(E3) このサイクル中に、ICCがPT命令のターゲットをプ
リロードするためにIキャッシュ(ICache)への
アクセスを開始することができる。ターゲットプリロー
ドは性能の最適化のためであるため、より高い優先順位
のフェッチ要求が存在する場合には、プリロードは生じ
ない場合もある。他の2つの命令、ICBI及びPRE
FIは、ICC(及び、従ってIキャッシュ)に対する
異なる要求タイプを除いて、同様に処理されることに注
意されたい。
【0052】また、任意の例外条件が生じたか否かを決
定することが、このステージにおいて生じる。E3サイ
クルの終了前に、PPCは全ての発生する可能性のある
例外条件を検査し、内部フラグを立て、ライトバックス
テージにおいて即時にハンドラ開始シーケンスを開始で
きるようにする。 ・ライトバックステージ(W) Wステージ中に、例外条件が検出されない場合には、ア
ーキテクチャ状態が更新される。これは、BRにおける
レジスタファイル(RF)、ターゲットアドレスレジス
タファイル(IAR.A)、及び、コントロールレジス
タを含む。例外条件が検出された場合には、PPCがB
Rにハンドラ開始シーケンスを開始したことを通知す
る。 ・開始ステージ(L) 例外ハンドラ開始シーケンスは数サイクル間続く。
【図面の簡単な説明】
【図1】本発明の特定な実施の形態におけるコアの代表
的な最上レベル分割の簡易ブロック図である。
【図2】本発明の特定な実施の形態における典型的な命
令フローユニットの簡易ブロック図である。
【図3】本発明の特定な実施の形態において典型的なコ
ンピュータ命令フォーマットの簡易図である。
【図4A】本発明によれば特定な実施の形態において命
令間でデータ依存性を持たない典型的なパイプラインの
簡易図である。
【図4B】本発明の特定な実施の形態においてデータ依
存性を持つ典型的なパイプラインの簡素図である。
【図4C】本発明の特定な実施の形態においてストール
を生じたデータ依存性を持つ典型的なパイプラインの簡
素図である。
【図5】付録1において、全ての内部ブロック及び全て
の外部インタフェース用ユニットを有する簡単なIFU
ブロック図を示す。
【図6】付録1において、データ依存性もなく、データ
間のリソース依存性もない命令シーケンスを示す図であ
る。
【図7】付録1において連続した依存性を有するパイプ
ラインフローを示す図である。
【図8】付録1においてモードAのIFUパイプライン
を示す図である。
【図9】付録1においてモードBのIFUパイプライン
を示す図である。
【符号の説明】
100 コア 105 バスインタフェースユニット 110 命令フローユニット 120 整数/マルチメディアユニット 130 命令キャッシュユニット 140 ロード/ストアユニット 150 データキャッシュユニット 210 命令フェッチユニット 242 フェッチユニット 244 デコーダ 246 パイプライン制御ユニット 248 オペランドファイル 260 コンピュータ命令フォーマット 262 オプコード 264 ソース1 266 イクステンション 268 ソース2 270 デスティネーションレジスタ 272 リザーブドヒット 280 汎用レジスタ63 310 命令 312 実行タイムライン 314 命令 316 実行タイムライン 318 命令 320 実行タイムライン 322 時間i+1 330 命令 332 実行タイムライン 334 命令 336 実行ライムライン 338 命令 340 実行タイムライン 350 命令 352 実行タイムライン 354 命令 356 実行タイムライン 358 1サイクル 360 命令 362 実行タイムライン
───────────────────────────────────────────────────── フロントページの続き (72)発明者 シバラム・クリシュナン アメリカ合衆国、カリフォルニア州 94024−5321、ロスアルトス、ウエストブ ルック・アベニュー 1723 Fターム(参考) 5B013 CC09 5B033 AA13 BB03 BE06

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータシステムのパイプライン内
    の命令上で依存性チェックを実行し、前記パイプライン
    が第1の命令と後続の命令とを含み、前記命令がオプト
    コード、第1ソースオペランド、及び第2ソースオペラ
    ンドを含み、前記命令が、前記第1ソースオペランドの
    みで作動する単項命令と、前記第1及び第2ソースオペ
    ランドで作動する2項命令とを含む方法であって、 前記第1の命令が単項命令を含むか否かを決定し、 もし前記第1の命令が単項命令を備えているならば、前
    記第2ソースオペランドをトークンと交換し、 前記パイプラインにおける前記第1の命令内のオペラン
    ドと、前記後続の命令内のオペランドとの間で任意依存
    性を検出することを特徴とする命令上での依存性チェッ
    クの実行方法。
  2. 【請求項2】 請求項1記載の方法であって、 前記検出が、前記単項命令及び前記2項命令をチェック
    する2項依存性を実行することを更に有することを特徴
    とする命令上での依存性チェックの実行方法。
  3. 【請求項3】 請求項1記載の方法であって、 前記トークンが、前記第1オペランドを更に有すること
    を特徴とする命令上での依存性チェックの実行方法。
  4. 【請求項4】 請求項1記載の方法であって、 前記第1の命令が浮動小数点命令を有するか否かを検出
    し、 もし前記第1の命令が浮動小数点命令を有するならば、
    前記第1オペランドを前記トークンとして使用し、 もしそうでないならば、整数値を前記トークンとして使
    用することを更に有することを特徴とする命令上での依
    存性チェックの実行方法。
  5. 【請求項5】 請求項4記載の方法であって、 第3オペランドが整数値を有するか否かを検出し、 もし第3オペランドが整数値を有するならば、プレフェ
    ッチ信号をキャッシュに与えることを更に有することを
    特徴とする命令上での依存性チェックの実行方法。
  6. 【請求項6】 請求項1記載の方法であって、 前記命令がRISC命令を有することを特徴とする命令
    上での依存性チェックの実行方法。
  7. 【請求項7】 命令を実行し、前記命令が第1の命令及
    び後続の命令を有し、前記命令がオプトコード、第1の
    オペランド、及び構造のオペランドを有し、前記命令が
    単項命令及び2項命令を有し、前記単項命令が、第1の
    オペランドのみで作動するオプトコードを有し、前記2
    項命令が、第1オペランド及び第2オペランドを作動す
    るオプトコードを有するコンピュータシステムであっ
    て、 メモリと、プロセッサと、パイプラインとを備え、 前記メモリが前記命令を保持し、前記プロセッサが前記
    命令を実行するように作動可能であり、前記パイプライ
    ンのユニットが、前記メモリから受け取られた前記命令
    の前記プロセッサによって処理を制御するように作動可
    能であり、 前記パイプラインのユニットが以下のように作動上処理
    されたことを特徴とする命令実行用のコンピュータシス
    テム:前記第1の命令が単項命令を有するか否かを決定
    し、 もし前記第1の命令が単項命令を含むならば、前記後続
    のソースオペランドをトークンと交換し、 前記パイプラインにおける前記第1の命令内のオペラン
    ドと前記後続の命令内のオペランドとの間の任意依存性
    を検出する。
  8. 【請求項8】 請求項7記載のコンピュータシステムで
    あって、 前記検出が、前記単項命令及び前記2項命令用にチェッ
    クする2項依存性を実行することを更に備えたことを特
    徴とする命令実行用のコンピュータシステム。
  9. 【請求項9】 請求項7記載のコンピュータシステムで
    あって、 前記トークンが前記第1オペランドを更に有することを
    特徴とする命令実行用のコンピュータシステム。
  10. 【請求項10】 請求項7記載のコンピュータシステム
    であって、 前記パイプラインのユニットが更に以下のように作動可
    能であることを特徴とする命令実行用のコンピュータシ
    ステム:前記第1の命令が浮動小数点命令を有するか否
    かを検出し、 もし前記第1の命令が浮動小数点命令を有するならば、
    前記後続のソースオペランドを前記トークンとして使用
    し、 もしそうでないならば、整数値を前記トークンとして使
    用する。
  11. 【請求項11】 請求項7記載のコンピュータシステム
    であって、 前記命令がRISC命令を有することを特徴とする命令
    実行用のコンピュータシステム。
  12. 【請求項12】 請求項7記載のコンピュータシステム
    であって、 読取り専用であり、全てゼロに戻す64ビットレジスタ
    を更に有することを特徴とする命令実行用のコンピュー
    タシステム。
  13. 【請求項13】 請求項7記載のコンピュータシステム
    であって、 前記プロセッサが、メモリ内に格納された命令を実行す
    る64ビットコンピュータプロセッサであり、 前記実行が、前記64ビットレジスタを用いた1つのデ
    ータフィールドを有することを特徴とする命令実行用の
    コンピュータシステム。
  14. 【請求項14】 請求項12記載のコンピュータシステ
    ムであって、 前記64ビットレジスタが前記命令内のデスティネーシ
    ョンレジスタであるならば、前記パイプラインのユニッ
    トが前記64ビットレジスタをマークすることを特徴と
    する命令実行用のコンピュータシステム。
  15. 【請求項15】 コンピュータシステムのパイプライン
    内でコンピュータ命令上の依存性チェックを実行する方
    法であって、 オプトコード及び複数のソースオペランドを備えた第1
    コンピュータ命令が、 第1ソースオペランドのみを作動するオプトコードを有
    するか否かを決定し、 未使用オペランドを前記第1ソースオペランドと交換
    し、 前記未使用オペランドと第1ソースオペランドとを用い
    て2項依存性チェックを実行することによって、前記パ
    イプラインにおける前記第1コンピュータ命令内のオペ
    ランドと別のコンピュータ命令内のオペランドとの間で
    任意依存性を検出することを特徴とする命令上での依存
    性チェックの実行方法。
  16. 【請求項16】 コンピュータシステムのパイプライン
    におけるコンピュータ命令上の依存性チェックを実行す
    る方法であって、 オプトコード及び複数のソースオペランドを有する第1
    コンピュータ命令が、第1ソースオペランドのみを作動
    するオプトコードを有する否かを決定し、 ゼロを有する読取り専用レジスタに関係する特殊オペラ
    ンドと未使用オペランドを交換し、 前記未使用オペランド及び第1ソースオペランドを用い
    て2項依存性チェックを実行することによって、前記パ
    イプラインにおける前記第1コンピュータ命令内のオペ
    ランドと別のコンピュータ命令内のオペランドとの間で
    任意依存性を検出することを特徴とする命令上での依存
    性チェックの実行方法。
  17. 【請求項17】 パイプライン内のコンピュータ命令を
    実行するコンピュータシステムであって、 複数のデータフィールドを備えたコンピュータ命令を有
    するメモリと、 読取り専用であり、全てゼロに戻す64ビットレジスタ
    と、 メモリ内に格納されたコンピュータ命令を実行する64
    ビットコンピュータプロセッサとを備え、 前記実行が前記64ビットレジスタを使用した1つのデ
    ータフィールドを有することを特徴とする命令実行用の
    コンピュータシステム。
JP2000280299A 1999-10-01 2000-09-14 命令上での依存性チェックの実行方法と命令実行用のコンピュータシステム Pending JP2001142706A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/410,549 US6457118B1 (en) 1999-10-01 1999-10-01 Method and system for selecting and using source operands in computer system instructions
US09/410549 1999-10-01

Publications (1)

Publication Number Publication Date
JP2001142706A true JP2001142706A (ja) 2001-05-25

Family

ID=23625217

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000280299A Pending JP2001142706A (ja) 1999-10-01 2000-09-14 命令上での依存性チェックの実行方法と命令実行用のコンピュータシステム

Country Status (4)

Country Link
US (1) US6457118B1 (ja)
JP (1) JP2001142706A (ja)
KR (1) KR20010050812A (ja)
TW (1) TW569140B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021166030A (ja) * 2020-04-07 2021-10-14 晶心科技股▲ふん▼有限公司Andes Technology Corporation 読み取りシフタを備えたプロセッサおよびそれを用いた制御方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100354784B1 (ko) * 1999-12-30 2002-10-05 진천웅 인터넷 사이트의 아이디 및 비밀번호 관리방법
US6950926B1 (en) * 2001-03-02 2005-09-27 Advanced Micro Devices, Inc. Use of a neutral instruction as a dependency indicator for a set of instructions
US7272700B1 (en) * 2003-12-23 2007-09-18 Altera Corporation Methods and apparatus for indirect compound VLIW execution using operand address mapping techniques
GB2488985A (en) * 2011-03-08 2012-09-19 Advanced Risc Mach Ltd Mixed size data processing operation with integrated operand conversion instructions
US9652233B2 (en) * 2013-08-20 2017-05-16 Apple Inc. Hint values for use with an operand cache

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS54100634A (en) * 1978-01-26 1979-08-08 Toshiba Corp Computer
EP0165600B1 (en) 1984-06-20 1991-11-21 Convex Computer Corporation Input/output bus for computer
US4935867A (en) 1986-03-04 1990-06-19 Advanced Micro Devices, Inc. Signal processor memory management unit with indirect addressing using selectable offsets and modulo values for indexed address calculations
US4814981A (en) 1986-09-18 1989-03-21 Digital Equipment Corporation Cache invalidate protocol for digital data processing system
US5483518A (en) 1992-06-17 1996-01-09 Texas Instruments Incorporated Addressable shadow port and protocol for serial bus networks
JPH0666056B2 (ja) 1989-10-12 1994-08-24 甲府日本電気株式会社 情報処理システム
JPH03217949A (ja) 1990-01-23 1991-09-25 Hitachi Ltd 計算機システム
US5452432A (en) 1990-08-14 1995-09-19 Chips And Technologies, Inc. Partially resettable, segmented DMA counter
JP2984463B2 (ja) 1991-06-24 1999-11-29 株式会社日立製作所 マイクロコンピュータ
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5423050A (en) 1991-11-27 1995-06-06 Ncr Corporation Intermodule test across system bus utilizing serial test bus
US5724549A (en) 1992-04-06 1998-03-03 Cyrix Corporation Cache coherency without bus master arbitration signals
GB2266606B (en) 1992-04-27 1996-02-14 Intel Corp A microprocessor with an external command mode
US5448576A (en) 1992-10-29 1995-09-05 Bull Hn Information Systems Inc. Boundary scan architecture extension
JP3231429B2 (ja) 1992-11-06 2001-11-19 株式会社日立製作所 中央処理装置と乗算器とを有する半導体集積回路装置
JP3524110B2 (ja) 1992-11-06 2004-05-10 株式会社ルネサステクノロジ マイクロコンピュータシステム
JPH06150023A (ja) 1992-11-06 1994-05-31 Hitachi Ltd マイクロコンピュータ及びマイクロコンピュータシステム
US5627842A (en) 1993-01-21 1997-05-06 Digital Equipment Corporation Architecture for system-wide standardized intra-module and inter-module fault testing
JP2731692B2 (ja) 1993-04-28 1998-03-25 日本電気アイシーマイコンシステム株式会社 デバッグ装置
US5598551A (en) 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
DE69415600T2 (de) 1993-07-28 1999-07-15 Koninkl Philips Electronics Nv Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
EP0652516A1 (en) 1993-11-03 1995-05-10 Advanced Micro Devices, Inc. Integrated microprocessor
US5596734A (en) 1993-12-17 1997-01-21 Intel Corporation Method and apparatus for programming embedded memories of a variety of integrated circuits using the IEEE test access port
US5828825A (en) 1993-12-22 1998-10-27 Intel Corporation Method and apparatus for pseudo-direct access to embedded memories of a micro-controller integrated circuit via the IEEE test access port
US5434804A (en) 1993-12-29 1995-07-18 Intel Corporation Method and apparatus for synchronizing a JTAG test control signal to an on-chip clock signal
US5488688A (en) 1994-03-30 1996-01-30 Motorola, Inc. Data processor with real-time diagnostic capability
JPH07287668A (ja) 1994-04-19 1995-10-31 Hitachi Ltd データ処理装置
GB9417602D0 (en) 1994-09-01 1994-10-19 Inmos Ltd A controller for implementing scan testing
JPH08329687A (ja) 1995-06-05 1996-12-13 Hitachi Ltd 半導体集積回路
JP3672634B2 (ja) 1994-09-09 2005-07-20 株式会社ルネサステクノロジ データ処理装置
JP3713312B2 (ja) 1994-09-09 2005-11-09 株式会社ルネサステクノロジ データ処理装置
JP3740195B2 (ja) 1994-09-09 2006-02-01 株式会社ルネサステクノロジ データ処理装置
US5848247A (en) 1994-09-13 1998-12-08 Hitachi, Ltd. Microprocessor having PC card interface
US5613153A (en) 1994-10-03 1997-03-18 International Business Machines Corporation Coherency and synchronization mechanisms for I/O channel controllers in a data processing system
US5751621A (en) 1994-11-17 1998-05-12 Hitachi, Ltd. Multiply-add unit and data processing apparatus using it
TW330265B (en) 1994-11-22 1998-04-21 Hitachi Ltd Semiconductor apparatus
JP2752592B2 (ja) 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5778237A (en) 1995-01-10 1998-07-07 Hitachi, Ltd. Data processor and single-chip microcomputer with changing clock frequency and operating voltage
US5664197A (en) 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US5867726A (en) 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US5570375A (en) 1995-05-10 1996-10-29 National Science Council Of R.O.C. IEEE Std. 1149.1 boundary scan circuit capable of built-in self-testing
US5860127A (en) 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US5774701A (en) 1995-07-10 1998-06-30 Hitachi, Ltd. Microprocessor operating at high and low clok frequencies
US5708773A (en) 1995-07-20 1998-01-13 Unisys Corporation JTAG interface system for communicating with compliant and non-compliant JTAG devices
US5704034A (en) 1995-08-30 1997-12-30 Motorola, Inc. Method and circuit for initializing a data processing system
US5737516A (en) 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
JP3655403B2 (ja) 1995-10-09 2005-06-02 株式会社ルネサステクノロジ データ処理装置
JP3623840B2 (ja) 1996-01-31 2005-02-23 株式会社ルネサステクノロジ データ処理装置及びマイクロプロセッサ
US5950012A (en) 1996-03-08 1999-09-07 Texas Instruments Incorporated Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes
US5978874A (en) 1996-07-01 1999-11-02 Sun Microsystems, Inc. Implementing snooping on a split-transaction computer system bus
JPH09311786A (ja) 1996-03-18 1997-12-02 Hitachi Ltd データ処理装置
JP3579205B2 (ja) 1996-08-06 2004-10-20 株式会社ルネサステクノロジ 半導体記憶装置、半導体装置、データ処理装置及びコンピュータシステム
GB9617033D0 (en) 1996-08-14 1996-09-25 Int Computers Ltd Diagnostic memory access
US5768152A (en) 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
WO1998013759A1 (fr) 1996-09-27 1998-04-02 Hitachi, Ltd. Machine de traitement de donnees et systeme de traitement de donnees
JP3790307B2 (ja) 1996-10-16 2006-06-28 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
KR19980032776A (ko) 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
JPH10177520A (ja) 1996-10-16 1998-06-30 Hitachi Ltd データプロセッサ及びデータ処理システム
JP3641327B2 (ja) 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
GB9622686D0 (en) 1996-10-31 1997-01-08 Sgs Thomson Microelectronics A test port controller and a method of effecting communication using the same
US5983017A (en) 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US5953538A (en) 1996-11-12 1999-09-14 Digital Equipment Corporation Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US5771240A (en) 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5956477A (en) 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US5896550A (en) 1997-04-03 1999-04-20 Vlsi Technology, Inc. Direct memory access controller with full read/write capability
US5978902A (en) 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US5944841A (en) 1997-04-15 1999-08-31 Advanced Micro Devices, Inc. Microprocessor with built-in instruction tracing capability
GB9802097D0 (en) 1998-01-30 1998-03-25 Sgs Thomson Microelectronics DMA controller
GB9806184D0 (en) 1998-03-23 1998-05-20 Sgs Thomson Microelectronics A cache coherency mechanism
GB9809203D0 (en) 1998-04-29 1998-07-01 Sgs Thomson Microelectronics Packet distribution in a microcomputer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021166030A (ja) * 2020-04-07 2021-10-14 晶心科技股▲ふん▼有限公司Andes Technology Corporation 読み取りシフタを備えたプロセッサおよびそれを用いた制御方法

Also Published As

Publication number Publication date
TW569140B (en) 2004-01-01
KR20010050812A (ko) 2001-06-25
US6457118B1 (en) 2002-09-24

Similar Documents

Publication Publication Date Title
JP6143306B2 (ja) アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア比較ハザードの予測及び回避
US5958041A (en) Latency prediction in a pipelined microarchitecture
US5682492A (en) Computer processor with distributed pipeline control that allows functional units to complete operations out of order while maintaining precise interrupts
KR100783828B1 (ko) 단일 스레드 프로그램의 암시적 멀티스레디드 실행을 행할수 있는 멀티스레디드 프로세서
US5627985A (en) Speculative and committed resource files in an out-of-order processor
US8069336B2 (en) Transitioning from instruction cache to trace cache on label boundaries
JP5635701B2 (ja) コミット時における状態アップデート実行インストラクション、装置、方法、およびシステム
US5651125A (en) High performance superscalar microprocessor including a common reorder buffer and common register file for both integer and floating point operations
JP3720370B2 (ja) 自己修飾コード処理装置
US6279105B1 (en) Pipelined two-cycle branch target address cache
US7937574B2 (en) Precise counter hardware for microcode loops
JP3678444B2 (ja) パイプ制御及びレジスタ変換機能を増強したスーパースカラーパイプライン式のプロセッサ
EP1569090B1 (en) Apparatus and method for performing a load operation in a pipeline microprocessor
JP2013515306A5 (ja)
JPH07334364A (ja) スーパースカラマイクロプロセッサおよびropを処理する方法
JPH0628185A (ja) 2つのコンピュータ命令を並列に実行できるコンピュータ装置
EP3171264B1 (en) System and method of speculative parallel execution of cache line unaligned load instructions
US7272704B1 (en) Hardware looping mechanism and method for efficient execution of discontinuity instructions
US5832260A (en) Processor microarchitecture for efficient processing of instructions in a program including a conditional program flow control instruction
JPH10283181A (ja) プロセッサ内で命令を発行するための方法および装置
US20050262329A1 (en) Processor architecture for executing two different fixed-length instruction sets
US5727177A (en) Reorder buffer circuit accommodating special instructions operating on odd-width results
US20050223201A1 (en) Facilitating rapid progress while speculatively executing code in scout mode
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JP3866920B2 (ja) 命令のリタイアメント時に物理レジスタを選択的に自由にするよう構成されたプロセッサ