JP5313279B2 - 非アラインドメモリアクセス予測 - Google Patents
非アラインドメモリアクセス予測 Download PDFInfo
- Publication number
- JP5313279B2 JP5313279B2 JP2011043844A JP2011043844A JP5313279B2 JP 5313279 B2 JP5313279 B2 JP 5313279B2 JP 2011043844 A JP2011043844 A JP 2011043844A JP 2011043844 A JP2011043844 A JP 2011043844A JP 5313279 B2 JP5313279 B2 JP 5313279B2
- Authority
- JP
- Japan
- Prior art keywords
- memory access
- instruction
- pipeline
- micro
- misalignment
- 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
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 6
- 230000002902 bimodal effect Effects 0.000 abstract description 2
- 230000009977 dual effect Effects 0.000 description 22
- 230000000875 corresponding effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000002699 waste material Substances 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/22—Microcontrol or microprogram arrangements
-
- 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
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/3824—Operand accessing
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
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)
- Memory System Of A Hierarchy Structure (AREA)
Description
IF−命令フェッチ
ID−命令復号
EX1−実行(メモリアクセス命令のためのアドレスオペランドをフェッチする)
EX2−実行(メモリアクセス命令の実効アドレス演算)
MEM−メモリアクセス
WB−ライトバック
11−強くミスアラインド(Strongly misaligned)
10−弱くミスアラインド(Weakly misaligned)
01−弱くアラインド(Weakly aligned)
00−強くアラインド(Strongly aligned)
メモリアクセス命令のために実効アドレスが生成されると、対応するカウンタが更新される。ミスアラインドメモリアクセス命令は、強くミスアラインド(strongly misaligned)に向かって状態をインクリメントし、アラインドメモリアクセス命令は、強くアラインド(strongly aligned)に向かって状態をデクリメントする。このような二重モードカウンタは、ミスアラインドアクセスのストリームの始まりにおける二度の誤予測という犠牲を払って、アラインドアクセスのストリームにおける断片的ミスアラインドアクセスに関しては一度誤予測するだけである。
以下に、本願の出願当初請求項に記載された発明を付記する。
[1]
命令実行パイプラインにおいて、第1のメモリアクセスを実行するメモリアクセス命令を処理する方法であって、下記を具備する方法:
前記メモリアクセス命令のためにデータミスアラインメントを予測すること、及び、
前記メモリアクセス命令のための実効アドレス生成に先立って、前記予測に応答して前記パイプラインにおいて少なくとも1つのマイクロ操作を生成すること、前記マイクロ操作はミスアラインドデータに対する第2のメモリアクセスを実行する。
[2]
前記パイプラインにおいて少なくとも1つのマイクロ操作を生成することは、命令復号パイプステージにおいて前記マイクロ操作を生成することを具備する、上記[1]に記載の方法。
[3]
少なくとも1つのマイクロ操作を生成することは、前記マイクロ操作にパイプライン制御資源を割り当てることを具備する、上記[1]に記載の方法。
[4]
前記パイプライン制御資源は、命令トラッキングFIFOにおいて少なくとも1つのエントリを含む、上記[3]に記載の方法。
[5]
前記パイプライン制御資源は、キャッシュミスキュー中に利用可能なスロットを含む、上記[3]に記載の方法。
[6]
前記メモリアクセス命令のためにデータミスアラインメントを予測することは、ミスアラインメント予測ビットが設定されている間、全メモリアクセス命令がミスアラインドとして予測されるように、制御レジスタにおいて前記ビットを設定することを具備する、上記[1]に記載の方法。
[7]
前記メモリアクセス命令のためにデータミスアラインメントを予測することは、1以上の属性が設定される場合に、対応するページの全メモリアクセス命令がミスアラインドとして予測されるように、前記メモリアクセス命令ページテーブルエントリに前記属性を設定することを具備する、上記[1]に記載の方法。
[8]
前記メモリアクセス命令のためにデータミスアラインメントを予測することは、スタックポインタがミスアラインドであるときデータミスアラインメントを予測すること、及び前記スタックポインタがアラインドであるときデータアラインメントを予測すること、を具備する、上記[1]に記載の方法。
[9]
前記メモリアクセス命令のためにデータミスアラインメントを予測することは、アラインメントヒストリーを保存すること、及び前記アラインメントヒストリーに応答してミスアラインメントを予測すること、を具備する、上記[1]に記載の方法。
[10]
アラインメントヒストリーを保存することは、前記メモリアクセス命令に関連したアラインメントヒストリーを保存することを具備する、上記[9]に記載の方法。
[11]
前記アラインメントヒストリーは前記メモリアクセス命令に関連した複数の命令アドレスビットによってインデックスされる、上記[10]に記載の方法。
[12]
前記アラインメントヒストリーは最も新しい前記メモリアクセス命令のアラインメントを指示するフラッグを具備する、上記[11]に記載の方法。
[13]
前記アラインメントヒストリーを保存することは、各前記メモリアクセス命令のアラインメントに応答して二重モード飽和カウンタをインクリメントもしくはデクリメントすることを具備し、
前記アラインメントヒストリーに応答してデータミスアラインメントを予測することは、前記二重モード飽和カウンタのMSBを出力することを具備する、上記[11]に記載の方法。
[14]
前記アラインメントヒストリーを保存することは、各前記メモリアクセス命令のアラインメントに応答して二重モード飽和カウンタをインクリメントもしくはデクリメントすることを具備し、
前記アラインメントヒストリーに応答してデータミスアラインメントを予測することは、前記カウンタの複数のビットの符号化に基づいてデータミスアラインメント予測を出力することを具備する、上記[11]に記載の方法。
[15]
前記アラインメントヒストリーを保存することは、所定数の最も新しい前記メモリアクセス命令に関するアラインメントの複数の指示を保存することを具備し、
前記アラインメントヒストリーに応答してデータミスアラインメントを予測することは、複数の二重モードカウンタのテーブルをインデックスするために前記複数の指示を用いること、及び前記インデックスされた二重モードカウンタのMSBを出力すること、を具備する、上記[14]に記載の方法。
[16]
アラインメントヒストリーを保存することは、全メモリアクセス命令と関連したアラインメントヒストリーを保存することを具備し、
前記アラインメントヒストリーに応答してミスアラインメントを予測することは、複数の二重モードカウンタのテーブルをインデックスするために前記アラインメントヒストリーを用いること、及び前記インデックスされた二重モードカウンタのMSBを出力すること、を具備する、上記[9]に記載の方法。
[17]
前記アラインメントヒストリーを用いて複数の二重モードカウンタの前記テーブルをインデックスすることは、前記メモリアクセス命令と関連づけられた複数のアドレスビットと連結された、上記[16]に記載の方法。
[18]
前記アラインメントヒストリーを用いて複数の二重モードカウンタの前記テーブルをインデックスすることは、前記メモリアクセス命令と関連づけられた複数のアドレスビットと排他的論理和演算された、上記[16]に記載の方法。
[19]
アラインメントヒストリーを保存することは:
各前記メモリアクセス命令の前記アラインメントに応答して独立の二重飽和カウンタをインクリメントあるいはデクリメントすること、及び、
全メモリアクセス命令と関連した包括的アラインメントヒストリーを保存すること、を具備し;
前記アラインメントヒストリーに応答してミスアラインメントを予測することは:
前記メモリアクセス命令と関連した前記二重モード飽和カウンタの前記MSBを具備する第1のプレディクタを生成すること、
前記メモリアクセス命令と関連した複数のアドレスビットと排他的論理和演算された前記包括的アラインメントヒストリーによってインデックスされたテーブルにおいて二重モードカウンタの前記MSBを具備する第2のプレディクタを生成すること、及び、
選択二重モード飽和カウンタの前記MSBを出力すること、ここにおいて前記選択二重モード飽和カウンタは、前記第1のプレディクタおよび前記第2のプレディクタが一致しないとき、前記第1及び第2のプレディクタのうち正確であったものに有利な方向に、更新される、
を具備する上記[9]に記載の方法。
[20]
過去のアラインメント経験を保存することは、過去の複数のメモリアクセス命令のアラインメントの統計的平均を維持することを具備する、上記[9]に記載の方法。
[21]
過去のアラインメント経験を保存することは、所定数の最も新しいメモリアクセス命令のアラインメントのローリング平均を維持することを具備する、上記[9]に記載の方法。
[22]
過去のアラインメント経験を保存することは、アラインドと予測された複数のミスアラインドメモリアクセスのミスアラインメントキャッシュを維持することを具備し、前記アラインメントヒストリーに応答してミスアラインメントを予測することは前記ミスアラインメントキャッシュにおいてヒットすることを具備する、上記[9]に記載の方法。
[23]
前記アラインメントヒストリーに応答してミスアラインメントを予測することは、前記メモリアクセス命令の復号に先立って前記ミスアラインメントキャッシュをインデックスすることを更に具備する、上記[22]に記載の方法。
[24]
ミスアラインドと予測された複数のアラインドメモリアクセスを前記キャッシュから取り除くことを更に具備する、上記[22]に記載の方法。
[25]
前記メモリアクセス命令のためにデータミスアラインメントを予測することは、前記メモリアクセス命令におけるフラッグに応答してデータミスアラインメントを予測することを具備する、上記[1]に記載の方法。
[26]
前記メモリアクセス命令のためにデータミスアラインメントを予測することは、可能性のあるミスアラインドメモリアクセス命令を具備する前記メモリアクセス命令に応答してデータミスアラインメントを予測することを具備する、上記[1]に記載の方法。
[27]
複数のパイプステージを具備する命令実行パイプラインと;
メモリアクセス命令がミスアラインドデータにアクセスするであろうという予測を生成するミスアラインメントプレディクタと;
前記メモリアクセス命令のために実効アドレスを生成することに先立って、追加のメモリアクセスを実行するために、前記予測に応答して、前記パイプラインにおいて追加のマイクロ操作を生成する制御論理とを具備する、パイプラインされたプロセッサ。
[28]
前記追加のマイクロ操作は命令復号パイプステージにおいて生成される、上記[27]に記載のプロセッサ。
[29]
前記マイクロ操作は少なくとも1つの前記パイプステージを占有する、上記[27]に記載のプロセッサ。
[30]
前記ミスアラインメントプレディクタは前記メモリアクセス命令アラインメントヒストリーを保存するメモリを含む、上記[27]に記載のプロセッサ。
[31]
命令実行FIFOを更に具備し、前記制御論理は前記マイクロ操作に対応する前記命令実行FIFOにおいてエントリを生成する、上記[27]に記載のプロセッサ。
Claims (14)
- 下記を具備する、プロセッサによって実行される、命令実行パイプラインにおいて第1のメモリアクセスを実行するメモリアクセス命令を処理する方法:
前記メモリアクセス命令のための複数のアドレスオペランドをフェッチすることに先立って、前記命令実行パイプラインの復号ステージ中に前記メモリアクセス命令のためにデータミスアラインメントを予測すること、
前記予測に応答して前記パイプラインの前記復号ステージにおいて少なくとも1つのマイクロ操作を生成すること、前記マイクロ操作はミスアラインドデータに対する第2のメモリアクセスを実行する。 - 少なくとも1つのマイクロ操作を生成することは、前記マイクロ操作にパイプライン制御資源を割り当てることを具備する、請求項1に記載の方法。
- 前記パイプライン制御資源は、命令トラッキングFIFOにおける少なくとも1つのエントリを含む、請求項2に記載の方法。
- 前記パイプライン制御資源は、キャッシュミスキュー内に利用可能なスロットを含む、請求項2に記載の方法。
- 下記を具備する、パイプラインされたプロセッサ:
複数のパイプステージを具備する命令実行パイプライン、
前記命令実行パイプラインの復号ステージ中に、メモリアクセス命令のための複数のアドレスオペランドをフェッチすることに先立って前記メモリアクセス命令がミスアラインドデータにアクセスするであろうという予測を生成するように構成された、ミスアラインメントプレディクタ、
前記予測に応答して、前記メモリアクセス命令のために実効アドレスを生成することに先立って、追加のメモリアクセスを実行するために前記パイプラインの前記復号ステージにおいて追加のマイクロ操作を生成する制御論理。 - 前記マイクロ操作は少なくとも1つの前記パイプステージを占有する、請求項5に記載のプロセッサ。
- 前記ミスアラインメントプレディクタはメモリアクセス命令アラインメントヒストリーを保存するメモリを含む、請求項5に記載のプロセッサ。
- 命令実行FIFOを更に具備し、前記制御論理は前記マイクロ操作に対応する前記命令実行FIFOにおけるエントリを生成する、請求項5に記載のプロセッサ。
- 下記を具備する、プロセッサによって実行される、命令実行パイプラインにおいて第1のメモリアクセスを実行するメモリアクセス命令を処理する方法:
実効メモリアクセス命令の生成に関連した複数のアドレスオペランドを得ることに先立って、前記命令実行パイプラインの復号ステージ中に前記メモリアクセス命令のためにデータミスアラインメントを予測すること、
前記予測に応答して前記パイプラインの前記復号ステージにおいて少なくとも1つのマイクロ操作を生成すること、前記少なくとも1つのマイクロ操作はミスアラインドデータに対する第2のメモリアクセスを実行する。 - 少なくとも1つのマイクロ操作を生成することは、前記マイクロ操作にパイプライン制御資源を割り当てることを具備する、請求項9に記載の方法。
- 下記を具備する、パイプラインされたプロセッサ:
複数のパイプステージを具備する命令実行パイプライン、
前記命令実行パイプラインの復号ステージ中に、実効メモリアクセス命令の生成に関連した複数のアドレスオペランドを得ることに先立ってメモリアクセス命令がミスアラインドデータにアクセスするであろうという予測を生成するように構成された、ミスアラインメントプレディクタ、
前記予測に応答して、前記メモリアクセス命令のために実効アドレスを生成することに先立って、追加のメモリアクセスを実行するために前記パイプラインの前記復号ステージにおいて追加のマイクロ操作を生成する制御論理。 - 前記追加のマイクロ操作は前記複数のパイプステージのうちの少なくとも1つを占有する、請求項11に記載のプロセッサ。
- 前記ミスアラインメントプレディクタはメモリアクセス命令アラインメントヒストリーを保存するメモリを含む、請求項11に記載のプロセッサ。
- 命令実行先入れ先出し(FIFO)バッファを更に具備し、前記制御論理は前記追加のマイクロ操作に対応する前記命令実行FIFOバッファにおけるエントリを生成する、請求項11に記載のプロセッサ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/062,221 | 2005-02-17 | ||
US11/062,221 US7437537B2 (en) | 2005-02-17 | 2005-02-17 | Methods and apparatus for predicting unaligned memory access |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007556352A Division JP4856100B2 (ja) | 2005-02-17 | 2006-02-16 | 非アラインドメモリアクセス予測 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011150712A JP2011150712A (ja) | 2011-08-04 |
JP5313279B2 true JP5313279B2 (ja) | 2013-10-09 |
Family
ID=36816969
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007556352A Expired - Fee Related JP4856100B2 (ja) | 2005-02-17 | 2006-02-16 | 非アラインドメモリアクセス予測 |
JP2011043844A Expired - Fee Related JP5313279B2 (ja) | 2005-02-17 | 2011-03-01 | 非アラインドメモリアクセス予測 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007556352A Expired - Fee Related JP4856100B2 (ja) | 2005-02-17 | 2006-02-16 | 非アラインドメモリアクセス予測 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7437537B2 (ja) |
EP (1) | EP1849061B1 (ja) |
JP (2) | JP4856100B2 (ja) |
KR (1) | KR100973951B1 (ja) |
CN (2) | CN101156132B (ja) |
BR (1) | BRPI0607888A2 (ja) |
IL (1) | IL185297A0 (ja) |
TW (1) | TWI444892B (ja) |
WO (1) | WO2006089194A2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9717168B2 (en) | 2015-01-14 | 2017-07-25 | Fanuc Corporation | Composite cable mounted in industrial robot |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
US7404042B2 (en) * | 2005-05-18 | 2008-07-22 | Qualcomm Incorporated | Handling cache miss in an instruction crossing a cache line boundary |
US8219785B1 (en) * | 2006-09-25 | 2012-07-10 | Altera Corporation | Adapter allowing unaligned access to memory |
US20080320016A1 (en) * | 2007-06-19 | 2008-12-25 | Raza Microelectronics, Inc. | Age matrix for queue dispatch order |
US20080320274A1 (en) * | 2007-06-19 | 2008-12-25 | Raza Microelectronics, Inc. | Age matrix for queue dispatch order |
US8195919B1 (en) * | 2007-10-29 | 2012-06-05 | Oracle America, Inc. | Handling multi-cycle integer operations for a multi-threaded processor |
JP5395383B2 (ja) * | 2008-08-21 | 2014-01-22 | 株式会社東芝 | パイプライン演算プロセッサを備える制御システム |
JP2010157130A (ja) * | 2008-12-27 | 2010-07-15 | Toshiba Corp | メモリシステム |
US20110314263A1 (en) * | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
CN102375695B (zh) * | 2010-08-23 | 2015-09-23 | 联想(北京)有限公司 | 一种磁盘的访问方法及计算机系统 |
CN102707988B (zh) * | 2011-04-07 | 2015-09-09 | 威盛电子股份有限公司 | 微处理器及其操作方法 |
US9898402B2 (en) * | 2011-07-01 | 2018-02-20 | Micron Technology, Inc. | Unaligned data coalescing |
US10360031B2 (en) * | 2011-10-21 | 2019-07-23 | Intel Corporation | Fast unaligned memory access |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US20150188971A1 (en) * | 2013-07-31 | 2015-07-02 | Been, Inc. | Data stream monitoring |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
GB2525314B (en) * | 2014-01-17 | 2016-02-24 | Imagination Tech Ltd | Stack pointer value prediction |
US9535701B2 (en) | 2014-01-29 | 2017-01-03 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient use of branch delay slots and branch prediction in pipelined computer architectures |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US11093401B2 (en) | 2014-03-11 | 2021-08-17 | Ampere Computing Llc | Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction |
US9430245B2 (en) | 2014-03-28 | 2016-08-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Efficient branch predictor history recovery in pipelined computer architectures employing branch prediction and branch delay slots of variable size |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US9703491B2 (en) * | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US9582413B2 (en) * | 2014-12-04 | 2017-02-28 | International Business Machines Corporation | Alignment based block concurrency for accessing memory |
CN105988774A (zh) * | 2015-02-20 | 2016-10-05 | 上海芯豪微电子有限公司 | 一种多发射处理器系统和方法 |
WO2017019008A1 (en) * | 2015-07-27 | 2017-02-02 | Applied Micro Circuits Corporation | Hazard prediction for a group of memory access instructions using a buffer associated with branch prediction |
CN105446777B (zh) * | 2015-11-18 | 2019-06-04 | 上海兆芯集成电路有限公司 | 高速缓存行的非对齐加载指令的推测并行执行方法 |
EP3264317B1 (en) * | 2016-06-29 | 2019-11-20 | Arm Ltd | Permission control for contingent memory access program instruction |
CN108062236A (zh) * | 2016-11-07 | 2018-05-22 | 杭州华为数字技术有限公司 | 一种软硬件协同分支指令预测方法及装置 |
CN110347432B (zh) * | 2019-06-17 | 2021-09-14 | 海光信息技术股份有限公司 | 处理器、分支预测器及其数据处理方法、分支预测方法 |
CN111258654B (zh) * | 2019-12-20 | 2022-04-29 | 宁波轸谷科技有限公司 | 指令分支预测方法 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148536A (en) * | 1988-07-25 | 1992-09-15 | Digital Equipment Corporation | Pipeline having an integral cache which processes cache misses and loads data in parallel |
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 |
US5835967A (en) * | 1993-10-18 | 1998-11-10 | Cyrix Corporation | Adjusting prefetch size based on source of prefetch address |
US5832297A (en) * | 1995-04-12 | 1998-11-03 | Advanced Micro Devices, Inc. | Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations |
JP3507193B2 (ja) * | 1995-06-06 | 2004-03-15 | 株式会社東芝 | ロード・ストア命令処理装置 |
US5875324A (en) * | 1995-06-07 | 1999-02-23 | Advanced Micro Devices, Inc. | Superscalar microprocessor which delays update of branch prediction information in response to branch misprediction until a subsequent idle clock |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US5687336A (en) * | 1996-01-11 | 1997-11-11 | Exponential Technology, Inc. | Stack push/pop tracking and pairing in a pipelined processor |
US5761491A (en) * | 1996-04-15 | 1998-06-02 | Motorola Inc. | Data processing system and method for storing and restoring a stack pointer |
US5813045A (en) * | 1996-07-24 | 1998-09-22 | Advanced Micro Devices, Inc. | Conditional early data address generation mechanism for a microprocessor |
US6009510A (en) * | 1998-02-06 | 1999-12-28 | Ip First Llc | Method and apparatus for improved aligned/misaligned data load from cache |
US6112297A (en) * | 1998-02-10 | 2000-08-29 | International Business Machines Corporation | Apparatus and method for processing misaligned load instructions in a processor supporting out of order execution |
US6374349B2 (en) * | 1998-03-19 | 2002-04-16 | Mcfarling Scott | Branch predictor with serially connected predictor stages for improving branch prediction accuracy |
US6349383B1 (en) * | 1998-09-10 | 2002-02-19 | Ip-First, L.L.C. | System for combining adjacent push/pop stack program instructions into single double push/pop stack microinstuction for execution |
US6473832B1 (en) * | 1999-05-18 | 2002-10-29 | Advanced Micro Devices, Inc. | Load/store unit having pre-cache and post-cache queues for low latency load memory operations |
US6704854B1 (en) * | 1999-10-25 | 2004-03-09 | Advanced Micro Devices, Inc. | Determination of execution resource allocation based on concurrently executable misaligned memory operations |
US6539467B1 (en) * | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
US6581150B1 (en) * | 2000-08-16 | 2003-06-17 | Ip-First, Llc | Apparatus and method for improved non-page fault loads and stores |
JP2003296105A (ja) * | 2002-04-01 | 2003-10-17 | Mitsubishi Electric Corp | データ処理装置 |
US6851033B2 (en) * | 2002-10-01 | 2005-02-01 | Arm Limited | Memory access prediction in a data processing apparatus |
JP3974063B2 (ja) * | 2003-03-24 | 2007-09-12 | 松下電器産業株式会社 | プロセッサおよびコンパイラ |
CN100495323C (zh) * | 2004-01-13 | 2009-06-03 | 智慧第一公司 | 保持分离队列功能单元之间的状态一致性的方法及装置 |
US20060009510A1 (en) * | 2004-07-09 | 2006-01-12 | Pharmacia & Upjohn Company Llc | Method of synthesizing indolinone compounds |
US7437537B2 (en) * | 2005-02-17 | 2008-10-14 | Qualcomm Incorporated | Methods and apparatus for predicting unaligned memory access |
-
2005
- 2005-02-17 US US11/062,221 patent/US7437537B2/en active Active
-
2006
- 2006-02-16 CN CN2006800115846A patent/CN101156132B/zh not_active Expired - Fee Related
- 2006-02-16 CN CN2009101788459A patent/CN101694613B/zh not_active Expired - Fee Related
- 2006-02-16 EP EP06735444.9A patent/EP1849061B1/en not_active Not-in-force
- 2006-02-16 BR BRPI0607888-5A patent/BRPI0607888A2/pt not_active IP Right Cessation
- 2006-02-16 KR KR1020077021353A patent/KR100973951B1/ko active IP Right Grant
- 2006-02-16 JP JP2007556352A patent/JP4856100B2/ja not_active Expired - Fee Related
- 2006-02-16 WO PCT/US2006/005782 patent/WO2006089194A2/en active Application Filing
- 2006-02-17 TW TW095105325A patent/TWI444892B/zh not_active IP Right Cessation
-
2007
- 2007-08-15 IL IL185297A patent/IL185297A0/en unknown
-
2011
- 2011-03-01 JP JP2011043844A patent/JP5313279B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9717168B2 (en) | 2015-01-14 | 2017-07-25 | Fanuc Corporation | Composite cable mounted in industrial robot |
Also Published As
Publication number | Publication date |
---|---|
CN101694613A (zh) | 2010-04-14 |
TW200639702A (en) | 2006-11-16 |
US7437537B2 (en) | 2008-10-14 |
EP1849061A2 (en) | 2007-10-31 |
WO2006089194A3 (en) | 2007-03-29 |
CN101694613B (zh) | 2013-12-18 |
BRPI0607888A2 (pt) | 2009-10-20 |
US20060184738A1 (en) | 2006-08-17 |
WO2006089194A2 (en) | 2006-08-24 |
TWI444892B (zh) | 2014-07-11 |
JP4856100B2 (ja) | 2012-01-18 |
JP2008530714A (ja) | 2008-08-07 |
CN101156132A (zh) | 2008-04-02 |
KR100973951B1 (ko) | 2010-08-05 |
EP1849061B1 (en) | 2014-12-24 |
IL185297A0 (en) | 2008-02-09 |
KR20070107772A (ko) | 2007-11-07 |
JP2011150712A (ja) | 2011-08-04 |
CN101156132B (zh) | 2010-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5313279B2 (ja) | 非アラインドメモリアクセス予測 | |
JP2008530714A5 (ja) | ||
JP5059623B2 (ja) | プロセッサ及び命令プリフェッチ方法 | |
US7861066B2 (en) | Mechanism for predicting and suppressing instruction replay in a processor | |
US7685410B2 (en) | Redirect recovery cache that receives branch misprediction redirects and caches instructions to be dispatched in response to the redirects | |
JP5850532B2 (ja) | アウトオブオーダー型マイクロプロセッサにおけるオペランド・ストア比較ハザードの予測及び回避 | |
JP4763727B2 (ja) | 分岐予測ミスを訂正するシステムおよび方法 | |
US7133969B2 (en) | System and method for handling exceptional instructions in a trace cache based processor | |
US6279105B1 (en) | Pipelined two-cycle branch target address cache | |
EP2864868B1 (en) | Methods and apparatus to extend software branch target hints | |
US20100205402A1 (en) | Pipelined microprocessor with normal and fast conditional branch instructions | |
EP3171264B1 (en) | System and method of speculative parallel execution of cache line unaligned load instructions | |
US7877586B2 (en) | Branch target address cache selectively applying a delayed hit | |
JP5231403B2 (ja) | スライドウィンドウブロックベースの分岐ターゲットアドレスキャッシュ | |
JP2009536770A (ja) | ブロックに基づく分岐先アドレスキャッシュ | |
US7779234B2 (en) | System and method for implementing a hardware-supported thread assist under load lookahead mechanism for a microprocessor | |
US20040230782A1 (en) | Method and system for processing loop branch instructions | |
EP3321810A1 (en) | Processor with instruction cache that performs zero clock retires |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110330 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110330 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20130212 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130513 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130516 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130517 |
|
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: 20130604 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130703 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 5313279 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |