JP2005537567A - データの投機的実行をサポートするマイクロプロセッサで用いるスケジューラ - Google Patents
データの投機的実行をサポートするマイクロプロセッサで用いるスケジューラ Download PDFInfo
- Publication number
- JP2005537567A JP2005537567A JP2004532613A JP2004532613A JP2005537567A JP 2005537567 A JP2005537567 A JP 2005537567A JP 2004532613 A JP2004532613 A JP 2004532613A JP 2004532613 A JP2004532613 A JP 2004532613A JP 2005537567 A JP2005537567 A JP 2005537567A
- Authority
- JP
- Japan
- Prior art keywords
- speculative
- result
- value
- scheduler
- operand
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 189
- 230000008569 process Effects 0.000 claims abstract description 181
- 238000012545 processing Methods 0.000 claims abstract description 95
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000011010 flushing procedure Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000015654 memory Effects 0.000 description 49
- 238000012546 transfer Methods 0.000 description 26
- 239000000872 buffer Substances 0.000 description 20
- 230000001419 dependent effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000001427 coherent effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate 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/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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
Description
本発明は様々な変更や代替形態が可能であるが、本発明の個別の実施形態は、各図面において例示として示されたものであり、ここでは詳細に説明されている。しかしながら、ここで行われている実施形態の説明は、本発明を開示された特定の形態に限定することを意図するものではなく、逆に、本発明は、添付の特許請求の範囲により定義されるような本発明の精神や範囲の範疇であるすべての変更、均等物、及び代替物を含むものであることは理解すべきである。本明細書中の見出しは文章構成のためのものに過ぎず、本明細書の説明または特許請求の範囲を限定または解釈のために用いるべきものではないことに注意されたい。さらに、本明細書において用いられる「できる」という用語は、許可的な意味合い(つまり、そのような可能性を持つ、または可能である)に用いられ、強制的な意味合いではない(つまり、しなければいけない)ことに注意すべきである。「含む」という用語およびその派生語は「含むが、それに限定されない」ことを意味する。「接続される」という用語は「直接的または間接的に接続される」ことを意味し、「結合される」という用語は「直接的または間接的に結合される」ことを意味する。
図1は、マイクロプロセッサ100の一実施形態のブロック図である。マイクロプロセッサ100はシステムメモリ200に記憶された命令を実行するように構成される。これらの命令の多くはシステムメモリ200に記憶されたデータを操作するものである。システムメモリ200はコンピュータシステム全体に物理的に配置可能であり、1以上のマイクロプロセッサ100からアクセスできる。マイクロプロセッサ100は、投機的な処理および/またはオペランドが非投機的になるのに応じて、スケジューラ118からエントリの割り当てを取り消す機構を含む。本明細書において、スケジューラとは、実行のために処理をスケジューリングし、一以上の実行コアまたは処理を実行するその他の手段に処理を発行する装置のことをいう。例えば、予約(リザベーション)ステーションはスケジューラの一例である。
図2は、処理を再発行するように構成されたスケジューラ118の一実施形態を示す。スケジューラ118はスケジューラ制御ユニット304と処理記憶302とを含む。スケジューラ制御ユニット304は処理に対するエントリを割り当て、そして割り当てを取り消すために処理記憶302を制御する。スケジューラ制御ユニット304は、ディスパッチユニット104によってある処理がスケジューラにディスパッチされたときに、処理記憶302にその処理のためのエントリ320を割り当てる。エントリ320は、その処理に対して実行されるすべての投機またはその処理のオペランドのすべてが解決し、その投機の結果(例えば、投機の成功または失敗)がすべての依存する処理(例えば、オペランド値がその処理の結果として生成される処理)に対して転送されるまで、その処理に対して割り当てられ続ける。
図4は、コンピュータシステム400の一実施形態のブロック図である。コンピュータシステム400は、バスブリッジ402を介して、システムの様々な構成要素に結合されたプロセッサ100を含む。プロセッサ100は、これまでに説明したスケジューラ118の一実施形態を含む。コンピュータシステムの他の実施形態も可能であり、考慮される。図示されたシステムでは、メインメモリ200がメモリバス406を介してバスブリッジ402に結合され、グラフィクスコントローラ408がAGPバス410を介してバスブリッジ402に結合されている。いくつかのPCIデバイス412A−412BがPCIバス414を介してバスブリッジ402に結合される。セカンダリバスブリッジ416が、EISA/ISAバス420を介して1以上のEISAまたはISAデバイス418に対する電気的インターフェイスを提供するために設けられる。この例では、プロセッサ10はCPUバス424を介してバスブリッジ402に結合され、選択的なL2キャッシュ428に結合される。実施形態によっては、プロセッサ100は統合L1キャッシュ(図示せず)を含んでいてもよい。
図5は、上述の再発行可能なスケジューラを持つプロセッサ100を備えるコンピュータシステム400の別実施形態を示す。他の実施形態も可能であり、考慮される。図5の実施形態では、コンピュータシステム400は、いくつかのプロセッシングノード512A,512B,512Cおよび512Dを含む。各プロセッシングノードは、各プロセッシングノード512A−512Dに内蔵されたメモリコントローラ516A−516Dを介して対応するメモリ514A−514Dに結合される。さらに、プロセッシングノード512A−512Dは、プロセッシングノード512A−512D間の通信に用いられるインターフェイスロジックを備える。例えば、プロセッシングノード512Aはプロセッシングノード512Bと通信するためのインターフェイスロジック518Aと、プロセッシングノード512Cと通信するためのインターフェイスロジック518Bと、さらに他のプロセッシングノード(図示せず)と通信するための第3インターフェイスロジック518Cとを備える。同様に、プロセッシングノード512Bはインターフェイスロジック518D,518E,518Fを備え、プロセッシングノード512Cはインターフェイスロジック518G,518Hおよび518Iを備え、プロセッシングノード512Dはインターフェイスロジック518J,518Kおよび518Lを備える。プロセッシングノード512Dは、インターフェイスロジック518Lを介して、複数の入出力デバイス(例えば、ディジーチェイン構成のデバイス520A−520B)と通信するように結合される。他のプロセッシングノードも同様の方法で他のI/Oデバイスと通信可能である。
Claims (10)
- 複数の実行ユニット(124)と、
前記複数の実行ユニットの少なくとも1つに処理を発行するように結合されたスケジューラとを備え、前記スケジューラは、
複数のエントリ(320)を持つ処理記憶(302)であって、第1エントリは第1処理に割り当てられ、前記第1処理は一以上のオペランドを処理し、前記第1エントリは一以上のソース状態表示(330A,330B)を含み、各ソース状態表示は前記一以上のオペランドの対応するものの値が投機的であるかどうかを表示する処理記憶(320)と、
前記処理記憶(302)に結合され、前記第1エントリに含まれる前記一以上のソース状態表示(330A,330B)の一つを更新して、第2処理の結果の値が非投機的であるとの表示の受信に応答して、前記一以上のオペランドの対応するものの値が非投機的であることを表示するように構成されるスケジューラ制御ユニットとを含む、マイクロプロセッサ(100)。 - 前記複数の実行ユニットの第1実行ユニットが前記第1処理の結果を生成するために前記第1処理を実行するように構成され、前記第1処理の結果は結果表示を含み、前記結果表示は、もし前記第1エントリに含まれる前記一以上のソース状態表示のいずれもが前記一以上のオペランドの対応するものが投機的であることを示している場合には、前記第1処理の結果の値が投機的であることを示す、請求項1記載のマイクロプロセッサ。
- 前記第2処理の前記結果に対応するタグが前記一以上のオペランドの一つに対応するタグと同じであり、前記スケジューラ制御ユニットは、タグバス上において前記第2処理の前記結果に対応するタグを受信するのに応答して、前記第1エントリに含まれる前記一以上のソース状態表示の一つを更新するように構成されている、請求項1記載のマイクロプロセッサ。
- 前記スケジューラ制御ユニットは、投機的状態表示を更新するために、前記タグバス上に前記第1オペランドに対応するタグが供給されるとの表示を受信することに応答して、前記一以上のソース状態表示の一つを更新するように構成されている、請求項3記載のマイクロプロセッサ。
- 前記スケジューラ制御ユニットは、前記第1エントリに含まれる一以上のソース状態表示のそれぞれが前記一以上のオペランドの対応するものの値が非投機的であることを表示しているときは、前記第1処理の再発行に応答して、前記第1エントリの割り当てを取り消すように構成されている、請求項1記載のマイクロプロセッサ。
- 前記スケジューラに結合された分岐予測ユニットと、前記分岐予測ユニットに結合されたプリフェッチユニットとをさらに備え、もし前記第1処理が分岐処理である場合は、前記分岐予測ユニットは、前記第1処理の結果に応答して、前記第1エントリ中の前記一以上のソース状態表示のそれぞれが前記一以上のオペランドの対応するものの値が非投機的であることを示すまで、前記プリフェッチユニットのリダイレクトおよび処理パイプラインのフラッシングの両方を延期するように構成されている、請求項1記載のマイクロプロセッサ。
- 前記スケジューラ制御ユニットは、前記処理記憶中の前記複数のエントリの一つに記憶されている処理を選択し、機能ユニットに対して実行のために前記選択された処理を供給するように構成され、前記スケジューラ制御ユニットは、前記処理記憶中の各エントリに含まれるソース状態表示によって示される、非投機的オペランドを持つ処理の選択を優先するように構成される請求項1記載のマイクロプロセッサ。
- 第1処理に対する第1オペランドの値が投機的であることを示す第1ソース状態表示(330A)であって、前記第1オペランドは第2処理の結果であり、
第2処理の結果の値が非投機的であることを示す第2結果状態表示の受信に応答して、前記第1ソース状態表示を更新して、前記第1オペランドの値が非投機的であることを表示し、
前記更新に応答した、前記第1処理の結果の値が非投機的であることを示す第1結果状態表示を含む方法。 - 前記第1処理をスケジューラに対してディスパッチする段階をさらに含み、前記ディスパッチは、前記スケジューラ中の第1エントリを前記第1処理に割り当てる段階を含み、前記第1エントリは第1ソース状態表示を含む、請求項8記載の方法。
- 第1オペランドの値が投機的であることを示す第1分岐命令の第1オペランドに対応する第1ソース状態表示と、
第2処理の結果の値が非投機的であるとの表示を受信する段階であって、前記第2処理の結果が前記第1オペランドであり、
前記受信に応答して、前記第1ソース状態表示を更新して、前記第1オペランドの値が非投機的であることを示し、
前記第1分岐命令の結果の値に応答して、前記更新が行われるまで、命令プリフェッチ機構のリダイレクションおよび処理パイプラインのフラッシングを遅らせる段階とを含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/229,563 US6950925B1 (en) | 2002-08-28 | 2002-08-28 | Scheduler for use in a microprocessor that supports data-speculative execution |
PCT/US2003/022696 WO2004021174A2 (en) | 2002-08-28 | 2003-07-16 | Scheduler for use in a microprocessor that supports data-speculative-execution |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2005537567A true JP2005537567A (ja) | 2005-12-08 |
JP2005537567A5 JP2005537567A5 (ja) | 2007-12-13 |
JP4170292B2 JP4170292B2 (ja) | 2008-10-22 |
Family
ID=31976256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004532613A Expired - Lifetime JP4170292B2 (ja) | 2002-08-28 | 2003-07-16 | データの投機的実行をサポートするマイクロプロセッサで用いるスケジューラ |
Country Status (8)
Country | Link |
---|---|
US (1) | US6950925B1 (ja) |
EP (1) | EP1532521B1 (ja) |
JP (1) | JP4170292B2 (ja) |
KR (1) | KR100981168B1 (ja) |
CN (1) | CN1320452C (ja) |
AU (1) | AU2003252081A1 (ja) |
TW (1) | TWI315488B (ja) |
WO (1) | WO2004021174A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953962B2 (en) | 2007-03-20 | 2011-05-31 | Fujitsu Limited | Multiprocessor system and control method thereof |
JP2012525620A (ja) * | 2009-04-28 | 2012-10-22 | イマジネイション テクノロジーズ リミテッド | マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置 |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415597B2 (en) * | 2004-09-08 | 2008-08-19 | Advanced Micro Devices, Inc. | Processor with dependence mechanism to predict whether a load is dependent on older store |
US7552318B2 (en) * | 2004-12-17 | 2009-06-23 | International Business Machines Corporation | Branch lookahead prefetch for microprocessors |
US7444498B2 (en) * | 2004-12-17 | 2008-10-28 | International Business Machines Corporation | Load lookahead prefetch for microprocessors |
US7421567B2 (en) | 2004-12-17 | 2008-09-02 | International Business Machines Corporation | Using a modified value GPR to enhance lookahead prefetch |
US8046558B2 (en) * | 2005-09-16 | 2011-10-25 | The Research Foundation Of State University Of New York | File system having predictable real-time performance |
GB0519981D0 (en) | 2005-09-30 | 2005-11-09 | Ignios Ltd | Scheduling in a multicore architecture |
WO2007143278A2 (en) | 2006-04-12 | 2007-12-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
US8677105B2 (en) | 2006-11-14 | 2014-03-18 | Soft Machines, Inc. | Parallel processing of a sequential program using hardware generated threads and their instruction groups executing on plural execution units and accessing register file segments using dependency inheritance vectors across multiple engines |
US7730289B2 (en) * | 2007-09-27 | 2010-06-01 | Faraday Technology Corp. | Method for preloading data in a CPU pipeline |
TWI469055B (zh) * | 2008-06-27 | 2015-01-11 | Realtek Semiconductor Corp | 網路工作卸載裝置與方法 |
US20100070730A1 (en) * | 2008-09-17 | 2010-03-18 | Sebastian Pop | Minimizing memory access conflicts of process communication channels |
CN101789952A (zh) * | 2009-01-23 | 2010-07-28 | 瑞昱半导体股份有限公司 | 网络工作卸载装置与方法 |
US8977837B2 (en) * | 2009-05-27 | 2015-03-10 | Arm Limited | Apparatus and method for early issue and recovery for a conditional load instruction having multiple outcomes |
CN103250131B (zh) | 2010-09-17 | 2015-12-16 | 索夫特机械公司 | 包括用于早期远分支预测的影子缓存的单周期多分支预测 |
US9052890B2 (en) | 2010-09-25 | 2015-06-09 | Intel Corporation | Execute at commit state update instructions, apparatus, methods, and systems |
CN103547993B (zh) | 2011-03-25 | 2018-06-26 | 英特尔公司 | 通过使用由可分割引擎实例化的虚拟核来执行指令序列代码块 |
WO2012135041A2 (en) | 2011-03-25 | 2012-10-04 | Soft Machines, Inc. | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
TWI520070B (zh) | 2011-03-25 | 2016-02-01 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段 |
TWI666551B (zh) | 2011-05-20 | 2019-07-21 | 美商英特爾股份有限公司 | 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行 |
CN103649931B (zh) | 2011-05-20 | 2016-10-12 | 索夫特机械公司 | 用于支持由多个引擎执行指令序列的互连结构 |
US20150039859A1 (en) | 2011-11-22 | 2015-02-05 | Soft Machines, Inc. | Microprocessor accelerated code optimizer |
EP2783280B1 (en) | 2011-11-22 | 2019-09-11 | Intel Corporation | An accelerated code optimizer for a multiengine microprocessor |
TWI610224B (zh) * | 2011-11-23 | 2018-01-01 | 英特爾股份有限公司 | 微處理器加速編碼最佳化器 |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US9875105B2 (en) | 2012-05-03 | 2018-01-23 | Nvidia Corporation | Checkpointed buffer for re-entry from runahead |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US9645929B2 (en) | 2012-09-14 | 2017-05-09 | Nvidia Corporation | Speculative permission acquisition for shared memory |
US10001996B2 (en) | 2012-10-26 | 2018-06-19 | Nvidia Corporation | Selective poisoning of data during runahead |
US9740553B2 (en) | 2012-11-14 | 2017-08-22 | Nvidia Corporation | Managing potentially invalid results during runahead |
US9632976B2 (en) | 2012-12-07 | 2017-04-25 | Nvidia Corporation | Lazy runahead operation for a microprocessor |
US9569214B2 (en) | 2012-12-27 | 2017-02-14 | Nvidia Corporation | Execution pipeline data forwarding |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US9823931B2 (en) | 2012-12-28 | 2017-11-21 | Nvidia Corporation | Queued instruction re-dispatch after runahead |
US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
US9547602B2 (en) | 2013-03-14 | 2017-01-17 | Nvidia Corporation | Translation lookaside buffer entry systems and methods |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
EP2972836B1 (en) | 2013-03-15 | 2022-11-09 | Intel Corporation | A method for emulating a guest centralized flag architecture by using a native distributed flag architecture |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9436476B2 (en) | 2013-03-15 | 2016-09-06 | Soft Machines Inc. | Method and apparatus for sorting elements in hardware structures |
KR102063656B1 (ko) | 2013-03-15 | 2020-01-09 | 소프트 머신즈, 인크. | 블록들로 그룹화된 멀티스레드 명령어들을 실행하기 위한 방법 |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9582280B2 (en) | 2013-07-18 | 2017-02-28 | Nvidia Corporation | Branching to alternate code based on runahead determination |
US10061589B2 (en) | 2014-12-24 | 2018-08-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10387158B2 (en) | 2014-12-24 | 2019-08-20 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10387156B2 (en) | 2014-12-24 | 2019-08-20 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10303525B2 (en) | 2014-12-24 | 2019-05-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10061583B2 (en) * | 2014-12-24 | 2018-08-28 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US9785442B2 (en) | 2014-12-24 | 2017-10-10 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
US10942744B2 (en) | 2014-12-24 | 2021-03-09 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
CN108279928B (zh) * | 2018-01-30 | 2021-03-19 | 上海兆芯集成电路有限公司 | 微指令调度方法及使用此方法的装置 |
CN108415730B (zh) * | 2018-01-30 | 2021-06-01 | 上海兆芯集成电路有限公司 | 微指令调度方法及使用此方法的装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511172A (en) * | 1991-11-15 | 1996-04-23 | Matsushita Electric Co. Ind, Ltd. | Speculative execution processor |
JPH09500989A (ja) * | 1993-05-14 | 1997-01-28 | インテル・コーポレーション | 分岐ターゲット・バッファにおける推論履歴 |
US5452426A (en) * | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
US6185668B1 (en) | 1995-12-21 | 2001-02-06 | Intergraph Corporation | Method and apparatus for speculative execution of instructions |
US5966544A (en) | 1996-11-13 | 1999-10-12 | Intel Corporation | Data speculatable processor having reply architecture |
US6212626B1 (en) | 1996-11-13 | 2001-04-03 | Intel Corporation | Computer processor having a checker |
US6205542B1 (en) | 1997-12-24 | 2001-03-20 | Intel Corporation | Processor pipeline including replay |
US6094717A (en) | 1998-07-31 | 2000-07-25 | Intel Corp. | Computer processor with a replay system having a plurality of checkers |
US6163839A (en) | 1998-09-30 | 2000-12-19 | Intel Corporation | Non-stalling circular counterflow pipeline processor with reorder buffer |
US6367004B1 (en) * | 1998-12-31 | 2002-04-02 | Intel Corporation | Method and apparatus for predicting a predicate based on historical information and the least significant bits of operands to be compared |
US6564315B1 (en) | 2000-01-03 | 2003-05-13 | Advanced Micro Devices, Inc. | Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction |
JP2003259295A (ja) * | 2002-03-04 | 2003-09-12 | Canon Inc | 撮像装置 |
US6845442B1 (en) | 2002-04-30 | 2005-01-18 | Advanced Micro Devices, Inc. | System and method of using speculative operand sources in order to speculatively bypass load-store operations |
-
2002
- 2002-08-28 US US10/229,563 patent/US6950925B1/en not_active Expired - Lifetime
-
2003
- 2003-07-16 CN CNB03820181XA patent/CN1320452C/zh not_active Expired - Lifetime
- 2003-07-16 KR KR1020057003349A patent/KR100981168B1/ko active IP Right Grant
- 2003-07-16 JP JP2004532613A patent/JP4170292B2/ja not_active Expired - Lifetime
- 2003-07-16 AU AU2003252081A patent/AU2003252081A1/en not_active Abandoned
- 2003-07-16 WO PCT/US2003/022696 patent/WO2004021174A2/en active Application Filing
- 2003-07-16 EP EP03791590.7A patent/EP1532521B1/en not_active Expired - Lifetime
- 2003-08-08 TW TW092121785A patent/TWI315488B/zh not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7953962B2 (en) | 2007-03-20 | 2011-05-31 | Fujitsu Limited | Multiprocessor system and control method thereof |
JP2012525620A (ja) * | 2009-04-28 | 2012-10-22 | イマジネイション テクノロジーズ リミテッド | マルチスレッドマイクロプロセッサにおける命令の発行をスケジュールするための方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4170292B2 (ja) | 2008-10-22 |
KR20050037596A (ko) | 2005-04-22 |
EP1532521A2 (en) | 2005-05-25 |
CN1320452C (zh) | 2007-06-06 |
WO2004021174A2 (en) | 2004-03-11 |
EP1532521B1 (en) | 2014-03-12 |
AU2003252081A1 (en) | 2004-03-19 |
KR100981168B1 (ko) | 2010-09-10 |
US6950925B1 (en) | 2005-09-27 |
TWI315488B (en) | 2009-10-01 |
TW200405201A (en) | 2004-04-01 |
WO2004021174A3 (en) | 2004-06-17 |
CN1678986A (zh) | 2005-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4170292B2 (ja) | データの投機的実行をサポートするマイクロプロセッサで用いるスケジューラ | |
JP4105684B2 (ja) | ロード操作の推測結果をレジスタ値にリンクするためのシステムおよび方法 | |
JP3866261B2 (ja) | ロード/ストア操作をバイパスするために投機的ソースオペランドを使用するシステムおよび方法 | |
US7263600B2 (en) | System and method for validating a memory file that links speculative results of load operations to register values | |
US7024537B2 (en) | Data speculation based on addressing patterns identifying dual-purpose register | |
US7089400B1 (en) | Data speculation based on stack-relative addressing patterns | |
US7415597B2 (en) | Processor with dependence mechanism to predict whether a load is dependent on older store | |
US7165167B2 (en) | Load store unit with replay mechanism | |
US7363470B2 (en) | System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor | |
US7266673B2 (en) | Speculation pointers to identify data-speculative operations in microprocessor | |
US7937569B1 (en) | System and method for scheduling operations using speculative data operands | |
US7222226B1 (en) | System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060712 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070306 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20070329 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20070410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070906 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20070906 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080129 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080428 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080528 |
|
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: 20080805 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080806 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4170292 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130815 Year of fee payment: 5 |
|
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 |
|
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 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |