JP6253706B2 - ハードウェア装置 - Google Patents
ハードウェア装置 Download PDFInfo
- Publication number
- JP6253706B2 JP6253706B2 JP2016096457A JP2016096457A JP6253706B2 JP 6253706 B2 JP6253706 B2 JP 6253706B2 JP 2016096457 A JP2016096457 A JP 2016096457A JP 2016096457 A JP2016096457 A JP 2016096457A JP 6253706 B2 JP6253706 B2 JP 6253706B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- status
- register
- hardware device
- hardware
- 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 - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 63
- 238000003860 storage Methods 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 4
- 238000011156 evaluation Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 22
- 239000013598 vector Substances 0.000 description 17
- 238000007667 floating Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 229910052698 phosphorus Inorganic materials 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 229910052717 sulfur Inorganic materials 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 229910052799 carbon Inorganic materials 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000001066 destructive effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 229910052760 oxygen Inorganic materials 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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
-
- 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
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)
Description
複数のプロセッサコアは、複数の異なる態様で、複数の異なる目的のために、複数の異なるプロセッサにおいて実装されてよい。例えば、このような複数のコアの実装は、1)汎用演算向けの汎用インオーダコア、2)汎用演算向けの高性能汎用アウトオブオーダコア、3)主にグラフィクス及び/又は科学(スループット)演算向けの特定用途向けコアを含んでよい。複数の異なるプロセッサの実装は、1)汎用演算向けの1つ又は複数の汎用インオーダコア及び/又は汎用演算向けの1つ又は複数の汎用アウトオブオーダコアを含むCPU、並びに2)主にグラフィクス及び/又は科学(スループット)向けの1つ又は複数の特定用途向けコアを含むコプロセッサを含んでよい。このような複数の異なるプロセッサは、複数の異なるコンピュータシステムアーキテクチャをもたらし、これらは、1)CPUとは別のチップ上のコプロセッサ、2)CPUと同じパッケージにおける別のダイ上のコプロセッサ、3)CPUと同じダイ上のコプロセッサ(この場合、このようなコプロセッサは、場合によっては、集積グラフィクス及び/又は科学(スループット)ロジックのような特定用途向けロジック、又は特定用途向けコア等と称される)、及び4)同じダイ上に、説明されたCPU(場合によっては、アプリケーションコア又はアプリケーションプロセッサと称される)、上述されたコプロセッサ、及び追加の機能性を含み得るシステムオンチップを含んでよい。次に、複数の例示的なコアアーキテクチャが説明された後、複数の例示的なプロセッサ及びコンピュータアーキテクチャが説明される。
インオーダ及びアウトオブオーダコアのブロック図
図6Aは、本発明の複数の実施形態に係る例示的なインオーダパイプライン及び例示的なレジスタリネーミング、アウトオブオーダ発行/実行パイプラインの両方を示すブロック図である。図6Bは、本発明の複数の実施形態に係るプロセッサに含まれるべきインオーダアーキテクチャコアの例示的な実施形態及び例示的なレジスタリネーミング、アウトオブオーダ発行/実行アーキテクチャコアの両方を示すブロック図である。図6A−Bにおける複数の実線のボックスは、インオーダパイプライン及びインオーダコアを示し、任意に追加された複数の破線のボックスは、レジスタリネーミング、アウトオブオーダ発行/実行パイプライン及びコアを示す。インオーダ態様がアウトオブオーダ態様のサブセットであるとして、アウトオブオーダ態様が説明される。
図7A−Bは、より詳細な、例示的なインオーダコアアーキテクチャのブロック図を示し、ここで、コアは、チップ内のいくつかの論理ブロック(同じタイプ及び/又は異なるタイプの複数の他のコアを含む)の中の1つであり得る。複数の論理ブロックは、アプリケーションに応じて、高帯域幅の相互接続ネットワーク(例えば、リングネットワーク)を介していくつかの固定機能ロジック、メモリI/Oインタフェース、及び他の必要なI/Oロジックと通信を行う。
図8は、本発明の複数の実施形態に係る、1つより多くのコアを有してよく、集積メモリコントローラを有してよく、集積グラフィクスを有してよい、プロセッサ800のブロック図である。図8における複数の実線のボックスは、単一のコア802A、システムエージェント810、1つ又は複数のバスコントローラユニット816のセットを備えるプロセッサ800を示し、任意に追加された複数の破線のボックスは、複数のコア802A−N、システムエージェントユニット810内の1つ又は複数の集積メモリコントローラユニット814のセット、及び特定用途向けロジック808を備える代替的なプロセッサ800を示す。
図9−12は、複数の例示的なコンピュータアーキテクチャのブロック図である。ラップトップ、デスクトップ、ハンドヘルドPC、パーソナルデジタルアシスタント、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、グラフィクスデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレイヤ、ハンドヘルドデバイス、及び様々な他の電子デバイスのための、当技術分野で既知の他の複数のシステム設計及び構成も適している。概して、本明細書において開示されるように、プロセッサ及び/又は他の実行ロジックを組み込むことが可能な多様なシステム又は電子デバイスが、概して適切である。
いくつかの場合において、命令コンバータは、ソース命令セットからターゲット命令セットに命令を変換するために用いられてよい。例えば、命令コンバータは、コアによって処理されるべき1つ又は複数の他の命令に、命令をトランスレート(例えば、静的バイナリ変換、動的コンパイルを含む動的バイナリ変換を用いて)、モーフィング、エミュレート、又は変換してよい。命令コンバータは、ソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせにおいて実装されてよい。命令コンバータは、プロセッサ上にあってよく、プロセッサ外にあってよく、又は、一部がプロセッサ上かつ一部がプロセッサ外にあってよい。
本実施形態の例を下記の各項目として示す。
[項目1]
命令をデコードするデコーダハードウェアと、
前記デコーダハードウェアによってデコードされた前記命令に関連付けられた少なくとも1つのソースオペランドからデータを取得するオペランド取得ハードウェアと、
少なくとも1つのステータスビットを含む結果を生成し、前記結果及び少なくとも1つのステータスビットを単一のデスティネーション物理格納位置に格納させるべく、前記デコードされた命令を実行する実行ハードウェアと、
を備え、
前記少なくとも1つのステータスビット及び結果は、単一の、物理レジスタの読み出しを通してアクセス可能である、ハードウェア装置。
[項目2]
前記命令のアーキテクチャレジスタを物理レジスタにマッピングし、前記ハードウェア装置のステータスレジスタを前記物理レジスタにマッピングするレジスタリネーミングハードウェアをさらに備える、項目1に記載のハードウェア装置。
[項目3]
前記物理レジスタは、複数の最下位ビット及びステータスビットのデータを複数の最上位ビットに格納する、項目1または2に記載のハードウェア装置。
[項目4]
前記物理レジスタは、複数の最上位ビット及びステータスビットのデータを複数の最下位ビットに格納する、項目1または2に記載のハードウェア装置。
[項目5]
前記少なくとも1つのステータスビットは、キャリー、サイン、オーバーフロー、パリティ、ゼロ、及びアジャストの少なくとも1つに対する複数のビットを含む、項目1から4のいずれか1項に記載のハードウェア装置。
[項目6]
前記命令は、条件付き分岐、条件付きジャンプ、条件付き移動、及び条件付きメモリオペレーションの1つである、項目1から5のいずれか1項に記載のハードウェア装置。
[項目7]
前記命令を示すオペコードを含む前記命令は、前記少なくとも1つのステータスビットを、前記結果と共に、前記単一のデスティネーション物理格納位置に格納させる、項目1から6のいずれか1項に記載のハードウェア装置。
[項目8]
前記命令を示すデスティネーションオペランドを含む前記命令は、前記少なくとも1つのステータスビットを、前記結果と共に、前記単一のデスティネーション物理格納位置に格納させる、項目1から7のいずれか1項に記載のハードウェア装置。
[項目9]
命令をデコードするデコーダハードウェアと、
前記デコーダハードウェアによってデコードされた前記命令に関連付けられた少なくとも1つのソースオペランドからデータを取得するオペランド取得ハードウェアと、
少なくとも1つのソース物理レジスタのステータス条件の評価に基づいて、前記命令のオペレーションを条件に応じて実行すべく、前記デコードされた命令を実行する実行ハードウェアと、
を備え、
前記ソースオペランドは、データに加えて少なくとも1つのステータスビットを含む、
ハードウェア装置。
[項目10]
前記命令のアーキテクチャレジスタを物理レジスタにマッピングし、前記ハードウェア装置のステータスレジスタを前記物理レジスタにマッピングするレジスタリネーミングハードウェアをさらに備える、項目9に記載のハードウェア装置。
[項目11]
前記物理レジスタは、複数の最下位ビット及びステータスビットのデータを複数の最上位ビットに格納する、項目9または10に記載のハードウェア装置。
[項目12]
前記物理レジスタは、複数の最上位ビット及びステータスビットのデータを複数の最下位ビットに格納する、項目9から11のいずれか1項に記載のハードウェア装置。
[項目13]
少なくとも1つのステータスビットは、キャリー、サイン、オーバーフロー、パリティ、ゼロ、及びアジャストの少なくとも1つに対する複数のビットを含む、項目9から12のいずれか1項に記載のハードウェア装置。
[項目14]
前記命令は、条件付き分岐、条件付きジャンプ、条件付き移動、及び条件付きメモリオペレーションの1つである、項目9から13のいずれか1項に記載のハードウェア装置。
[項目15]
前記命令を示すオペコードを含む前記命令は、少なくとも1つのステータスビット及びデータを含む前記ソース物理レジスタからステータス情報を読み出す、項目9から14のいずれか1項に記載のハードウェア装置。
[項目16]
前記命令は、前記ソース物理レジスタが少なくとも1つのステータスビット及びデータを格納することのインジケーションを含む、項目9から15のいずれか1項に記載のハードウェア装置。
[項目17]
前記命令は、デスティネーションオペランドを含む、項目9から16のいずれか1項に記載のハードウェア装置。
[項目18]
前記命令は、オフセットオペランドを含む、項目9から17のいずれか1項に記載のハードウェア装置。
[項目19]
命令をデコードするデコーダ手段と、
前記デコーダ手段によってデコードされた前記命令に関連付けられた少なくとも1つのソースオペランドからデータを取得するオペランド取得手段と、
少なくとも1つのステータスビットを含む結果を生成し、前記結果及び少なくとも1つのステータスビットを単一のデスティネーション物理格納位置に格納させるべく、前記デコードされた命令を実行する実行手段と、
を備え、
前記少なくとも1つのステータスビット及び結果は、単一の、物理レジスタの読み出しを通してアクセス可能である、ハードウェア装置。
[項目20]
前記命令のアーキテクチャレジスタを物理レジスタにマッピングし、前記ハードウェア装置のステータスレジスタを前記物理レジスタにマッピングするレジスタリネーミング手段をさらに備える、項目19に記載のハードウェア装置。
[項目21]
前記物理レジスタは、複数の最下位ビット及びステータスビットのデータを複数の最上位ビットに格納する、項目19または20に記載のハードウェア装置。
[項目22]
前記物理レジスタは、複数の最上位ビット及びステータスビットのデータを複数の最下位ビットに格納する、項目19または20に記載のハードウェア装置。
[項目23]
前記少なくとも1つのステータスビットは、キャリー、サイン、オーバーフロー、パリティ、ゼロ、及びアジャストの少なくとも1つに対する複数のビットを含む、項目19から22のいずれか1項に記載のハードウェア装置。
[項目24]
前記命令は、条件付き分岐、条件付きジャンプ、条件付き移動、及び条件付きメモリオペレーションの1つである、項目19から23のいずれか1項に記載のハードウェア装置。
[項目25]
前記命令を示すオペコードを含む前記命令は、前記少なくとも1つのステータスビットを、前記結果と共に、前記単一のデスティネーション物理格納位置に格納させる、項目19から24のいずれか1項に記載のハードウェア装置。
Claims (24)
- 命令をデコードするデコーダハードウェアと、
前記デコーダハードウェアによってデコードされた前記命令に関連付けられた少なくとも1つのソースオペランドからデータを取得するオペランド取得ハードウェアと、
少なくとも1つのステータスビットを含む結果を生成し、前記結果及び少なくとも1つのステータスビットを単一のデスティネーション物理格納位置に格納させるべく、前記デコードされた命令を実行する実行ハードウェアと、
を備え、
前記少なくとも1つのステータスビット及び結果は、単一の、物理レジスタの読み出しを通してアクセス可能であり、
前記命令のオペコードまたはオペランドは、前記単一のデスティネーション物理格納位置に前記結果及び前記少なくとも1つのステータスビットを格納することを示す、
ハードウェア装置。 - 前記命令のアーキテクチャレジスタを物理レジスタにマッピングし、前記ハードウェア装置のステータスレジスタを前記物理レジスタにマッピングするレジスタリネーミングハードウェアをさらに備える、請求項1に記載のハードウェア装置。
- 前記物理レジスタは、データを最下位ビットに格納し、前記ステータスビットを最上位ビットに格納する、請求項1または2に記載のハードウェア装置。
- 前記物理レジスタは、データを最上位ビットに格納し、前記ステータスビットを最下位ビットに格納する、請求項1または2に記載のハードウェア装置。
- 前記少なくとも1つのステータスビットは、キャリー、サイン、オーバーフロー、パリティ、ゼロ、及びアジャストの少なくとも1つに対する複数のビットを含む、請求項1から4のいずれか1項に記載のハードウェア装置。
- 前記命令は、条件付き分岐、条件付きジャンプ、条件付き移動、及び条件付きメモリオペレーションの1つである、請求項1から5のいずれか1項に記載のハードウェア装置。
- 前記命令を示すオペコードを含む前記命令は、前記少なくとも1つのステータスビットを、前記結果と共に、前記単一のデスティネーション物理格納位置に格納させる、請求項1から6のいずれか1項に記載のハードウェア装置。
- 前記命令を示すデスティネーションオペランドを含む前記命令は、前記少なくとも1つのステータスビットを、前記結果と共に、前記単一のデスティネーション物理格納位置に格納させる、請求項1から7のいずれか1項に記載のハードウェア装置。
- 命令をデコードするデコーダハードウェアと、
前記デコーダハードウェアによってデコードされた前記命令に関連付けられた少なくとも1つのソースオペランドからデータを取得するオペランド取得ハードウェアと、
少なくとも1つのソース物理レジスタのステータス条件の評価に基づいて、前記命令のオペレーションを条件に応じて実行すべく、前記デコードされた命令を実行する実行ハードウェアと、
を備え、
前記ソースオペランドは、データに加えて少なくとも1つのステータスビットを含み、
前記命令は、前記ソース物理レジスタが少なくとも1つのステータスビット及びデータを格納することのインジケーションを含む、
ハードウェア装置。 - 前記命令のアーキテクチャレジスタを物理レジスタにマッピングし、前記ハードウェア装置のステータスレジスタを前記物理レジスタにマッピングするレジスタリネーミングハードウェアをさらに備える、請求項9に記載のハードウェア装置。
- 前記ソース物理レジスタは、データを最下位ビットに格納し、前記ステータスビットを最上位ビットに格納する、請求項9または10に記載のハードウェア装置。
- 前記ソース物理レジスタは、データを最上位ビットに格納し、前記ステータスビットを最下位ビットに格納する、請求項9または10に記載のハードウェア装置。
- 少なくとも1つのステータスビットは、キャリー、サイン、オーバーフロー、パリティ、ゼロ、及びアジャストの少なくとも1つに対する複数のビットを含む、請求項9から12のいずれか1項に記載のハードウェア装置。
- 前記命令は、条件付き分岐、条件付きジャンプ、条件付き移動、及び条件付きメモリオペレーションの1つである、請求項9から13のいずれか1項に記載のハードウェア装置。
- 前記命令を示すオペコードを含む前記命令は、少なくとも1つのステータスビット及びデータを含む前記ソース物理レジスタからステータス情報を読み出す、請求項9から14のいずれか1項に記載のハードウェア装置。
- 前記命令は、デスティネーションオペランドを含む、請求項9から15のいずれか1項に記載のハードウェア装置。
- 前記命令は、オフセットオペランドを含む、請求項9から16のいずれか1項に記載のハードウェア装置。
- 命令をデコードするデコーダ手段と、
前記デコーダ手段によってデコードされた前記命令に関連付けられた少なくとも1つのソースオペランドからデータを取得するオペランド取得手段と、
少なくとも1つのステータスビットを含む結果を生成し、前記結果及び少なくとも1つのステータスビットを単一のデスティネーション物理格納位置に格納させるべく、前記デコードされた命令を実行する実行手段と、
を備え、
前記少なくとも1つのステータスビット及び結果は、単一の、物理レジスタの読み出しを通してアクセス可能であり、
前記命令のオペコードまたはオペランドは、前記単一のデスティネーション物理格納位置に前記結果及び前記少なくとも1つのステータスビットを格納することを示す、
ハードウェア装置。 - 前記命令のアーキテクチャレジスタを物理レジスタにマッピングし、前記ハードウェア装置のステータスレジスタを前記物理レジスタにマッピングするレジスタリネーミング手段をさらに備える、請求項18に記載のハードウェア装置。
- 前記物理レジスタは、データを最下位ビットに格納し、前記ステータスビットを最上位ビットに格納する、請求項18または19に記載のハードウェア装置。
- 前記物理レジスタは、データを最上位ビットに格納し、前記ステータスビットを最下位ビットに格納する、請求項18または19に記載のハードウェア装置。
- 前記少なくとも1つのステータスビットは、キャリー、サイン、オーバーフロー、パリティ、ゼロ、及びアジャストの少なくとも1つに対する複数のビットを含む、請求項18から21のいずれか1項に記載のハードウェア装置。
- 前記命令は、条件付き分岐、条件付きジャンプ、条件付き移動、及び条件付きメモリオペレーションの1つである、請求項18から22のいずれか1項に記載のハードウェア装置。
- 前記命令を示すオペコードを含む前記命令は、前記少なくとも1つのステータスビットを、前記結果と共に、前記単一のデスティネーション物理格納位置に格納させる、請求項18から23のいずれか1項に記載のハードウェア装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/752,887 | 2015-06-27 | ||
US14/752,887 US20160378480A1 (en) | 2015-06-27 | 2015-06-27 | Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017016640A JP2017016640A (ja) | 2017-01-19 |
JP6253706B2 true JP6253706B2 (ja) | 2017-12-27 |
Family
ID=56117513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016096457A Expired - Fee Related JP6253706B2 (ja) | 2015-06-27 | 2016-05-12 | ハードウェア装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20160378480A1 (ja) |
EP (1) | EP3109754A1 (ja) |
JP (1) | JP6253706B2 (ja) |
KR (1) | KR20170001578A (ja) |
CN (1) | CN106293628A (ja) |
BR (1) | BR102016012096A2 (ja) |
DE (1) | DE102016006560A1 (ja) |
TW (1) | TW201712530A (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6795992B2 (ja) | 2017-02-01 | 2020-12-02 | 西川ゴム工業株式会社 | 防音材 |
US11366663B2 (en) * | 2018-11-09 | 2022-06-21 | Intel Corporation | Systems and methods for performing 16-bit floating-point vector dot product instructions |
CN111338640B (zh) * | 2020-02-15 | 2022-06-07 | 苏州浪潮智能科技有限公司 | 一种可动态调整的非对称指令重链接方法和装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6006324A (en) * | 1995-01-25 | 1999-12-21 | Advanced Micro Devices, Inc. | High performance superscalar alignment unit |
US6604190B1 (en) * | 1995-06-07 | 2003-08-05 | Advanced Micro Devices, Inc. | Data address prediction structure and a method for operating the same |
US5864707A (en) * | 1995-12-11 | 1999-01-26 | Advanced Micro Devices, Inc. | Superscalar microprocessor configured to predict return addresses from a return stack storage |
US6263416B1 (en) * | 1997-06-27 | 2001-07-17 | Sun Microsystems, Inc. | Method for reducing number of register file ports in a wide instruction issue processor |
US6230262B1 (en) * | 1998-07-31 | 2001-05-08 | Advanced Micro Devices, Inc. | Processor configured to selectively free physical registers upon retirement of instructions |
US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7386705B2 (en) * | 2002-08-27 | 2008-06-10 | Mosaid Technologies Inc. | Method for allocating processor resources and system for encrypting data |
GB2402763B (en) * | 2003-06-13 | 2006-03-01 | Advanced Risc Mach Ltd | Data access program instruction encoding |
US7234044B1 (en) * | 2003-12-03 | 2007-06-19 | Altera Corporation | Processor registers having state information |
JP5168143B2 (ja) * | 2006-06-15 | 2013-03-21 | 日本電気株式会社 | プロセッサ、および、命令制御方法 |
JP4228241B2 (ja) * | 2006-12-13 | 2009-02-25 | ソニー株式会社 | 演算処理装置 |
GB2488980B (en) * | 2011-03-07 | 2020-02-19 | Advanced Risc Mach Ltd | Address generation in a data processing apparatus |
US9367314B2 (en) * | 2013-03-15 | 2016-06-14 | Intel Corporation | Converting conditional short forward branches to computationally equivalent predicated instructions |
US9304940B2 (en) * | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
-
2015
- 2015-06-27 US US14/752,887 patent/US20160378480A1/en not_active Abandoned
-
2016
- 2016-05-12 JP JP2016096457A patent/JP6253706B2/ja not_active Expired - Fee Related
- 2016-05-24 TW TW105116130A patent/TW201712530A/zh unknown
- 2016-05-25 DE DE102016006560.5A patent/DE102016006560A1/de not_active Withdrawn
- 2016-05-27 CN CN201610626223.8A patent/CN106293628A/zh active Pending
- 2016-05-27 BR BR102016012096-9A patent/BR102016012096A2/pt not_active IP Right Cessation
- 2016-05-27 KR KR1020160065609A patent/KR20170001578A/ko active Search and Examination
- 2016-05-31 EP EP16172343.2A patent/EP3109754A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20170001578A (ko) | 2017-01-04 |
US20160378480A1 (en) | 2016-12-29 |
CN106293628A (zh) | 2017-01-04 |
EP3109754A1 (en) | 2016-12-28 |
BR102016012096A2 (pt) | 2017-11-07 |
DE102016006560A1 (de) | 2016-12-29 |
TW201712530A (zh) | 2017-04-01 |
JP2017016640A (ja) | 2017-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6143872B2 (ja) | 装置、方法、およびシステム | |
JP6340097B2 (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
JP5829714B2 (ja) | マスクされたフルレジスタアクセスを用いて部分レジスタアクセスを実施するプロセッサ、方法、及びシステム | |
KR20170028913A (ko) | 다수의 테스트 소스를 사용한 or-테스트 및 and-테스트 기능을 제공하는 융합가능 명령어 및 논리 | |
JP5985526B2 (ja) | システムコールのためのロバスト且つ高性能な命令 | |
KR101966713B1 (ko) | 마스크 레지스터에서의 비트들을 반전 및 치환하기 위한 장치 및 방법 | |
TW201403472A (zh) | 最佳化暫存器初始化操作 | |
JP2017538213A (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
KR101723711B1 (ko) | 조건부 쇼트 포워드 브랜치들을 산술적으로 동등한 술어적 명령어들로 변환 | |
JP2021174513A (ja) | データ依存脆弱分岐の機会主義的再誘導のための命令セットアーキテクチャベース自動負荷追跡 | |
JP6253706B2 (ja) | ハードウェア装置 | |
JP2018500659A (ja) | 高速ベクトルによる動的なメモリ競合検出 | |
US20140189330A1 (en) | Optional branches | |
US10877765B2 (en) | Apparatuses and methods to assign a logical thread to a physical thread | |
CN103270489A (zh) | 用于进行段寄存器读和写而不管特权等级的系统、装置和方法 | |
JP2017538215A (ja) | 逆分離演算を実行するための命令及びロジック | |
US9710389B2 (en) | Method and apparatus for memory aliasing detection in an out-of-order instruction execution platform | |
US20220413859A1 (en) | System, apparatus and methods for performant read and write of processor state information responsive to list instructions | |
US20220413860A1 (en) | System, Apparatus And Methods For Minimum Serialization In Response To Non-Serializing Register Write Instruction | |
JP5753603B2 (ja) | データ要素内のビットをゼロ化するためのシステム、装置、および方法 | |
US20230315501A1 (en) | Performance Monitoring Emulation in Translated Branch Instructions in a Binary Translation-Based Processor | |
CN112579160A (zh) | 用于具有减少的硬件要求的存储配对的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170627 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170927 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20171031 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20171128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6253706 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |