JP2009540411A - 高速で安価なストア−ロード競合スケジューリング及び転送機構 - Google Patents
高速で安価なストア−ロード競合スケジューリング及び転送機構 Download PDFInfo
- Publication number
- JP2009540411A JP2009540411A JP2009513663A JP2009513663A JP2009540411A JP 2009540411 A JP2009540411 A JP 2009540411A JP 2009513663 A JP2009513663 A JP 2009513663A JP 2009513663 A JP2009513663 A JP 2009513663A JP 2009540411 A JP2009540411 A JP 2009540411A
- Authority
- JP
- Japan
- Prior art keywords
- store
- load
- instruction
- data
- effective address
- 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
- 238000012546 transfer Methods 0.000 title description 62
- 230000007246 mechanism Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000012795 verification Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012549 training Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 230000003111 delayed effect Effects 0.000 description 21
- 238000012790 confirmation Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 13
- 238000012360 testing method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 102100038804 FK506-binding protein-like Human genes 0.000 description 1
- 101001031402 Homo sapiens FK506-binding protein-like Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000000725 suspension 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
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
- G06F9/3828—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】 実施形態は、命令を実行するための方法及び装置を提供する。1つの実施形態においては、本方法は、ロード命令及びストア命令を受信するステップと、ロード命令についてのロード・データのロード実効アドレスとストア命令についてのストア・データのストア実効アドレスとを計算するステップと、を含む。本方法は、さらに、ロード実効アドレスをストア実効アドレスと比較するステップと、ストア命令についてのストア・データをストア命令が実行されている第1のパイプラインからロード命令が実行されている第2のパイプラインに予測的に転送するステップと、を含む。ロード命令は、ストア・データを第1のパイプラインから受信し、要求されたデータをデータ・キャッシュから受信する。ロード実効アドレスがストア実効アドレスと一致する場合には、予測的に転送されたストア・データはロード・データと統合される。ロード実効アドレスがストア実効アドレスと一致しない場合には、データ・キャッシュからの要求されたデータがロード・データと統合される。
【選択図】 図2
Description
図1は、本発明の1つの実施形態によるシステム100を示すブロック図である。システム100は、命令及びデータをストアするためのシステム・メモリ102と、グラフィックス処理のためのグラフィックス処理ユニット104と、外部装置と通信するためのI/Oインターフェース106と、命令及びデータの長期ストレージのためのストレージ・デバイス108と、命令及びデータを処理するためのプロセッサ110と、を含むことができる。
本発明の1つの実施形態は、ロード−ストア競合を解決するための方法を提供する。本方法は、第1のパイプラインにおけるロード命令の実効アドレスが第2のパイプラインにおけるストア命令の実効アドレスと一致するかどうかを判定することを含む。ストア命令の実効アドレスとロード命令の実効アドレスとが一致した場合には、ストア命令からのデータは、ロード命令を含むパイプラインに予測的に転送される。実効アドレスの比較が実施された後で転送が行われる場合もある。必要に応じて、実効アドレスの比較が完了する前に転送を行うこともできる。1つの実施形態においては、転送は、最初にロード実効アドレス及びストア実効アドレスを実アドレスに変換することなく、行うことができる(例えば、実効アドレスが、ストア・データをロード命令に転送するかどうかを判定するための唯一の根拠となる場合がある)。
ロード命令とストア命令との間で転送が不可能な場合がある。例えば、プロセッサ・コア114の設計が、転送が必要となる可能性がある全ての状況を網羅するリソースを転送パスに充てないことがあり、実行における考慮事項(例えば、コア114によって処理されているデータの一貫性を維持すること)によって転送が禁止される場合もある。他の場合には、転送は行われるが、上述されたように、競合するストア命令の数及び/又はロード・データとストア・データとの整合性によって、ストア命令からロード命令へのデータの効率的な転送が妨げられることもある。転送が使用されない場合には、競合するロード命令とストア命令の適切な実行のために、プロセッサ110は、実行を停止するか、又は、コア114において実行されている命令を一括消去することもできる。ロード−ストア競合が、命令の停止又は再実行をもたらす場合には、上述されたようにプロセッサの効率が影響を受ける。
上述されたように、(例えば、ロード命令及びストア命令の実行中に)ロード−ストア競合が検出された場合には、競合を示すロード−ストア競合情報をストアすることができる。本発明の1つの実施形態においては、ロード−ストア競合情報は、競合を示す単一のビット(LSC)を含むことができる。ビットが設定された場合には競合が予測され、ビットが設定されない場合には競合が予測されないことになる。
ロード−ストア競合情報が、どのロード命令がどのストア命令と競合するかを明確に特定することができない場合もある。例えば、各々のプロセッサのパイプラインにおけるステージの数によって、及び/又は、パイプラインの数によって、プロセッサ・コア114は、各々が互いに競合し得る複数のロード命令と複数のストア命令とを同時に実行することがある。単一のビットを(例えば、ロード命令又はストア命令に)ストアすることでは、どのロード命令がどのストア命令と具体的に競合するのかを特定できない場合がある。また、ロード命令及びストア命令に与えられるアドレス・データ(例えば、ポインタ情報)は、(例えば、ポインタがスケジューリング時点において解決されていないことがあるため)ロード命令とストア命令とが競合するかどうかを判定するのに役に立たない場合もある。したがって、プロセッサ114が、競合するロード命令及びストア命令の曖昧性解消に利用できる付加的な情報(例えば、より具体的な識別情報)をストアする場合もある。
上述されたように、ロード−ストア競合情報及び/又はターゲット・アドレスは、(例えば、情報を命令に再エンコードするか、又はデータをI−ラインに付加することによって)ロード命令を含むI−ラインにストアされる場合がある。図11Aは、本発明の1つの実施形態による、I−ライン1102におけるロード命令についてのロード−ストア競合情報及び/又はターゲット・アドレスをストアするのに用いられる、例示的なI−ライン1102を示すブロック図である。
上述されたように、ロード−ストア競合情報は、特別なキャッシュにストアすることができる。ロード命令又はストア命令のアドレス(又は、必要に応じて、1つ又は複数の命令を含むI−ラインのアドレス)は、特別なキャッシュへのインデックスとして用いることができる。特別なキャッシュは、シャドー・キャッシュと呼ばれることもある。
本発明の1つの実施形態においては、実効アドレスの一部及び他のロード−ストア競合情報は、命令の所与のセットが実行されると共にロード−ストア競合情報又は他のストアされた値が変化するように、継続的に追跡し、実行時に更新することができる。このように、ロード−ストア競合情報は、例えばプログラムが実行されるときに、動的に修正することができる。
Claims (15)
- プロセッサにおいて命令を実行する方法であって、
ロード命令及びストア命令を受信するステップと、
前記ロード命令についてのロード・データのロード実効アドレスと前記ストア命令についてのストア・データのストア実効アドレスとを計算するステップと、
前記ロード実効アドレスを前記ストア実効アドレスと比較するステップと、
前記ストア命令についての前記ストア・データを、前記ストア命令が実行されている第1のパイプラインから、前記ロード命令が実行されている第2のパイプラインに転送するステップであって、前記ロード命令は、前記ストア・データを前記第1のパイプラインから受信し、要求されたデータをデータ・キャッシュから受信する、ステップと、
前記ロード実効アドレスが前記ストア実効アドレスと一致する場合には、前記転送されたストア・データを前記ロード・データと統合するステップと、
前記ロード実効アドレスが前記ストア実効アドレスと一致しない場合には、前記データ・キャッシュからの前記要求されたデータを前記ロード・データと統合するステップと、
を含む方法。 - 前記転送されたデータは、前記ロード・データのページ番号が前記ストア・データのページ番号の一部と一致する場合にのみ統合される、請求項1に記載の方法。
- 前記転送されたデータは、前記ロード・データのロード物理アドレスの一部が前記ストア・データのストア物理アドレスの一部と一致する場合にのみ統合される、請求項1に記載の方法。
- 前記ロード物理アドレスは前記ロード実効アドレスを用いて取得され、前記ストア物理アドレスは前記ストア実効アドレスを用いて取得される、請求項3に記載の方法。
- 前記比較は、前記ロード実効アドレスの一部のみと前記ストア実効アドレスの一部のみとを用いて行われる、請求項1に記載の方法。
- 前記ロード命令及び前記ストア命令は、各々の命令についての実効アドレスを各々の命令についての実アドレスに変換することなく、前記第1のパイプライン及び前記第2のパイプラインによって実行される、請求項1に記載の方法。
- 前記転送されたストア・データを前記ロード・データと統合した後で、前記ストア・データのストア物理アドレスを前記ロード・データのロード物理アドレスと比較して、前記ストア物理アドレスが前記ロード物理アドレスと一致するかどうかを判定する検証を行うステップをさらに含む、請求項1に記載の方法。
- キャッシュと、
第1のパイプラインと、
第2のパイプラインと、
前記キャッシュからロード命令及びストア命令を受信し、
前記ロード命令についてのロード・データのロード実効アドレスと前記ストア命令についてのストア・データのストア実効アドレスとを計算し、
前記ロード実効アドレスを前記ストア実効アドレスと比較し、
前記ストア命令についての前記ストア・データを、前記ストア命令が実行されている前記第1のパイプラインから、前記ロード命令が実行されている前記第2のパイプラインに転送し、
前記ロード実効アドレスが前記ストア実効アドレスと一致する場合には、前記転送されたストア・データを前記ロード・データと統合する、
ように構成可能な回路と、
を備えるプロセッサ。 - 前記回路は、前記ロード・データのページ番号が前記ストア・データのページ番号の一部と一致する場合にのみ、前記転送されたデータを統合するように構成可能である、請求項8に記載のプロセッサ。
- 前記回路は、前記ロード・データのロード物理アドレスの一部が前記ストア・データのストア物理アドレスの一部と一致する場合にのみ、前記転送されたデータを統合するように構成可能である、請求項8に記載のプロセッサ。
- 前記回路は、前記ロード実効アドレスを用いて前記ロード物理アドレスを取得するように構成可能であり、前記ストア実効アドレスを用いて前記ストア物理アドレスを取得するように構成可能である、請求項10に記載のプロセッサ。
- 前記回路は、前記ロード実効アドレスの一部のみと前記ストア実効アドレスの一部のみとを用いて前記比較を行うように構成可能である、請求項8に記載のプロセッサ。
- 前記回路は、前記ロード命令及び前記ストア命令を、各々の命令についての実効アドレスを各々の命令についての実アドレスに変換することなく、前記第1のパイプライン及び前記第2のパイプラインにおいて、実行するように構成可能である、請求項8に記載のプロセッサ。
- 前記回路は、前記転送されたストア・データを前記ロード・データと統合した後で、前記ストア・データのストア物理アドレスを前記ロード・データのロード物理アドレスと比較して、前記ストア物理アドレスが前記ロード物理アドレスと一致するかどうかを判定する検証を行うように構成可能である、請求項8に記載のプロセッサ。
- コンピュータ・プログラムであって、該プログラムがコンピュータに、請求項1から請求項7のいずれか1項に記載の方法の各ステップを、コンピュータに実行させる、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/422,630 | 2006-06-07 | ||
US11/422,630 US20070288725A1 (en) | 2006-06-07 | 2006-06-07 | A Fast and Inexpensive Store-Load Conflict Scheduling and Forwarding Mechanism |
PCT/EP2007/055459 WO2007141234A1 (en) | 2006-06-07 | 2007-06-04 | A fast and inexpensive store-load conflict scheduling and forwarding mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009540411A true JP2009540411A (ja) | 2009-11-19 |
JP5357017B2 JP5357017B2 (ja) | 2013-12-04 |
Family
ID=38268977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009513663A Expired - Fee Related JP5357017B2 (ja) | 2006-06-07 | 2007-06-04 | 高速で安価なストア−ロード競合スケジューリング及び転送機構 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070288725A1 (ja) |
EP (1) | EP2035919A1 (ja) |
JP (1) | JP5357017B2 (ja) |
CN (1) | CN101449237B (ja) |
WO (1) | WO2007141234A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009570A (ja) * | 2007-06-27 | 2009-01-15 | Internatl Business Mach Corp <Ibm> | レジスタ状態エラー回復および再開機構 |
JP2009009569A (ja) * | 2007-06-27 | 2009-01-15 | Internatl Business Mach Corp <Ibm> | 複数のロード命令を実行するための方法および装置 |
JP2020060926A (ja) * | 2018-10-10 | 2020-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461238B2 (en) * | 2006-06-07 | 2008-12-02 | International Business Machines Corporation | Simple load and store disambiguation and scheduling at predecode |
US7600097B1 (en) * | 2006-09-05 | 2009-10-06 | Sun Microsystems, Inc. | Detecting raw hazards in an object-addressed memory hierarchy by comparing an object identifier and offset for a load instruction to object identifiers and offsets in a store queue |
US20080201531A1 (en) * | 2006-09-29 | 2008-08-21 | Kornegay Marcus L | Structure for administering an access conflict in a computer memory cache |
US20080082755A1 (en) * | 2006-09-29 | 2008-04-03 | Kornegay Marcus L | Administering An Access Conflict In A Computer Memory Cache |
US20080148020A1 (en) * | 2006-12-13 | 2008-06-19 | Luick David A | Low Cost Persistent Instruction Predecoded Issue and Dispatcher |
US8001361B2 (en) * | 2006-12-13 | 2011-08-16 | International Business Machines Corporation | Structure for a single shared instruction predecoder for supporting multiple processors |
US7945763B2 (en) * | 2006-12-13 | 2011-05-17 | International Business Machines Corporation | Single shared instruction predecoder for supporting multiple processors |
US7769987B2 (en) | 2007-06-27 | 2010-08-03 | International Business Machines Corporation | Single hot forward interconnect scheme for delayed execution pipelines |
WO2009000624A1 (en) * | 2007-06-27 | 2008-12-31 | International Business Machines Corporation | Forwarding data in a processor |
US7984272B2 (en) | 2007-06-27 | 2011-07-19 | International Business Machines Corporation | Design structure for single hot forward interconnect scheme for delayed execution pipelines |
US7882335B2 (en) * | 2008-02-19 | 2011-02-01 | International Business Machines Corporation | System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline |
US20090210677A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline |
US8095779B2 (en) * | 2008-02-19 | 2012-01-10 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
US7877579B2 (en) * | 2008-02-19 | 2011-01-25 | International Business Machines Corporation | System and method for prioritizing compare instructions |
US7865700B2 (en) * | 2008-02-19 | 2011-01-04 | International Business Machines Corporation | System and method for prioritizing store instructions |
US8108654B2 (en) * | 2008-02-19 | 2012-01-31 | International Business Machines Corporation | System and method for a group priority issue schema for a cascaded pipeline |
US20090210672A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US20090210666A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US20090210669A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Prioritizing Floating-Point Instructions |
US7870368B2 (en) * | 2008-02-19 | 2011-01-11 | International Business Machines Corporation | System and method for prioritizing branch instructions |
US7984270B2 (en) * | 2008-02-19 | 2011-07-19 | International Business Machines Corporation | System and method for prioritizing arithmetic instructions |
US7996654B2 (en) * | 2008-02-19 | 2011-08-09 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
US7975130B2 (en) * | 2008-02-20 | 2011-07-05 | International Business Machines Corporation | Method and system for early instruction text based operand store compare reject avoidance |
US9135005B2 (en) * | 2010-01-28 | 2015-09-15 | International Business Machines Corporation | History and alignment based cracking for store multiple instructions for optimizing operand store compare penalties |
US8938605B2 (en) * | 2010-03-05 | 2015-01-20 | International Business Machines Corporation | Instruction cracking based on machine state |
US8645669B2 (en) | 2010-05-05 | 2014-02-04 | International Business Machines Corporation | Cracking destructively overlapping operands in variable length instructions |
CN102567556A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 一种面向调试的处理器验证方法及验证设备 |
JP2012198803A (ja) * | 2011-03-22 | 2012-10-18 | Fujitsu Ltd | 演算処理装置及び演算処理方法 |
US10261909B2 (en) | 2011-12-22 | 2019-04-16 | Intel Corporation | Speculative cache modification |
WO2013095508A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Speculative cache modification |
EP2862061A4 (en) | 2012-06-15 | 2016-12-21 | Soft Machines Inc | MEMORY PRECISION FOR VIRTUAL LOAD WITH DYNAMIC SHIPPING WINDOW WITH UNIFORM STRUCTURE |
KR20170102576A (ko) | 2012-06-15 | 2017-09-11 | 인텔 코포레이션 | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 |
US9626189B2 (en) | 2012-06-15 | 2017-04-18 | International Business Machines Corporation | Reducing operand store compare penalties |
EP2862068B1 (en) * | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
WO2013188701A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization |
KR101826399B1 (ko) | 2012-06-15 | 2018-02-06 | 인텔 코포레이션 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
CN107220032B (zh) * | 2012-06-15 | 2020-12-15 | 英特尔公司 | 无消歧乱序加载存储队列 |
US11036505B2 (en) * | 2012-12-20 | 2021-06-15 | Advanced Micro Devices, Inc. | Store-to-load forwarding |
US9251073B2 (en) * | 2012-12-31 | 2016-02-02 | Intel Corporation | Update mask for handling interaction between fills and updates |
US9535695B2 (en) | 2013-01-25 | 2017-01-03 | Apple Inc. | Completing load and store instructions in a weakly-ordered memory model |
US9311239B2 (en) | 2013-03-14 | 2016-04-12 | Intel Corporation | Power efficient level one data cache access with pre-validated tags |
US9361113B2 (en) | 2013-04-24 | 2016-06-07 | Globalfoundries Inc. | Simultaneous finish of stores and dependent loads |
US9632947B2 (en) * | 2013-08-19 | 2017-04-25 | Intel Corporation | Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early |
US9665468B2 (en) | 2013-08-19 | 2017-05-30 | Intel Corporation | Systems and methods for invasive debug of a processor without processor execution of instructions |
US9619382B2 (en) | 2013-08-19 | 2017-04-11 | Intel Corporation | Systems and methods for read request bypassing a last level cache that interfaces with an external fabric |
US9361227B2 (en) | 2013-08-30 | 2016-06-07 | Soft Machines, Inc. | Systems and methods for faster read after write forwarding using a virtual address |
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 |
US9940264B2 (en) | 2014-10-10 | 2018-04-10 | International Business Machines Corporation | Load and store ordering for a strongly ordered simultaneous multithreading core |
US11175924B2 (en) | 2017-10-06 | 2021-11-16 | International Business Machines Corporation | Load-store unit with partitioned reorder queues with single cam port |
US10572256B2 (en) | 2017-10-06 | 2020-02-25 | International Business Machines Corporation | Handling effective address synonyms in a load-store unit that operates without address translation |
US10606591B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Handling effective address synonyms in a load-store unit that operates without address translation |
US10606590B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Effective address based load store unit in out of order processors |
US10579387B2 (en) * | 2017-10-06 | 2020-03-03 | International Business Machines Corporation | Efficient store-forwarding with partitioned FIFO store-reorder queue in out-of-order processor |
US10394558B2 (en) * | 2017-10-06 | 2019-08-27 | International Business Machines Corporation | Executing load-store operations without address translation hardware per load-store unit port |
US10417002B2 (en) | 2017-10-06 | 2019-09-17 | International Business Machines Corporation | Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses |
US10649900B2 (en) | 2017-11-06 | 2020-05-12 | Samsung Electronics Co., Ltd. | Method to avoid cache access conflict between load and fill |
CN111045818B (zh) * | 2019-11-21 | 2022-12-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多端口Cache的请求预处理电路 |
US11113056B2 (en) * | 2019-11-27 | 2021-09-07 | Advanced Micro Devices, Inc. | Techniques for performing store-to-load forwarding |
US12118355B2 (en) | 2021-10-20 | 2024-10-15 | International Business Machines Corporation | Cache coherence validation using delayed fulfillment of L2 requests |
US20240103761A1 (en) * | 2022-09-23 | 2024-03-28 | Synopsys, Inc. | Buffer circuitry for store to load forwarding |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5829186A (ja) * | 1981-08-14 | 1983-02-21 | Nec Corp | 情報処理装置 |
JPS6347857A (ja) * | 1986-08-15 | 1988-02-29 | Nec Corp | メモリアクセス制御装置 |
JPH03201130A (ja) * | 1989-12-26 | 1991-09-03 | Internatl Business Mach Corp <Ibm> | データ処理システム |
JPH04355847A (ja) * | 1991-06-04 | 1992-12-09 | Nec Corp | ストアバッファ制御装置 |
JPH04358241A (ja) * | 1991-06-04 | 1992-12-11 | Nec Corp | ストアバッファ制御装置 |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
JPH10320198A (ja) * | 1997-04-10 | 1998-12-04 | Internatl Business Mach Corp <Ibm> | データを転送する方法およびプロセッサ |
JPH1185513A (ja) * | 1997-09-03 | 1999-03-30 | Hitachi Ltd | プロセッサ |
JP2001282531A (ja) * | 2000-03-28 | 2001-10-12 | Toshiba Corp | データ処理装置 |
WO2002050668A2 (en) * | 2000-12-21 | 2002-06-27 | Intel Corporation | System and method for multiple store buffer forwarding |
JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
US20070186080A1 (en) * | 2006-02-09 | 2007-08-09 | International Business Machines Corporation | Mechanism to minimize unscheduled D-cache miss pipeline stalls |
JP2007213578A (ja) * | 2006-02-09 | 2007-08-23 | Internatl Business Mach Corp <Ibm> | データ・キャッシュ・ミス予測およびスケジューリング |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5655096A (en) * | 1990-10-12 | 1997-08-05 | Branigin; Michael H. | Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution |
US5625789A (en) * | 1994-10-24 | 1997-04-29 | International Business Machines Corporation | Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle |
US5751946A (en) * | 1996-01-18 | 1998-05-12 | International Business Machines Corporation | Method and system for detecting bypass error conditions in a load/store unit of a superscalar processor |
US5809275A (en) * | 1996-03-01 | 1998-09-15 | Hewlett-Packard Company | Store-to-load hazard resolution system and method for a processor that executes instructions out of order |
US5903749A (en) * | 1996-07-02 | 1999-05-11 | Institute For The Development Of Emerging Architecture, L.L.C. | Method and apparatus for implementing check instructions that allow for the reuse of memory conflict information if no memory conflict occurs |
KR19990003937A (ko) * | 1997-06-26 | 1999-01-15 | 김영환 | 프리페치 장치 |
US6463514B1 (en) * | 1998-02-18 | 2002-10-08 | International Business Machines Corporation | Method to arbitrate for a cache block |
US6308260B1 (en) * | 1998-09-17 | 2001-10-23 | International Business Machines Corporation | Mechanism for self-initiated instruction issuing and method therefor |
US6141747A (en) * | 1998-09-22 | 2000-10-31 | Advanced Micro Devices, Inc. | System for store to load forwarding of individual bytes from separate store buffer entries to form a single load word |
US6349382B1 (en) * | 1999-03-05 | 2002-02-19 | International Business Machines Corporation | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order |
US6728867B1 (en) * | 1999-05-21 | 2004-04-27 | Intel Corporation | Method for comparing returned first load data at memory address regardless of conflicting with first load and any instruction executed between first load and check-point |
US6481251B1 (en) * | 1999-10-25 | 2002-11-19 | Advanced Micro Devices, Inc. | Store queue number assignment and tracking |
US6598156B1 (en) * | 1999-12-23 | 2003-07-22 | Intel Corporation | Mechanism for handling failing load check instructions |
JP4489308B2 (ja) * | 2001-01-05 | 2010-06-23 | 富士通株式会社 | パケットスイッチ |
US7103880B1 (en) * | 2003-04-30 | 2006-09-05 | Hewlett-Packard Development Company, L.P. | Floating-point data speculation across a procedure call using an advanced load address table |
US7441107B2 (en) * | 2003-12-31 | 2008-10-21 | Intel Corporation | Utilizing an advanced load address table for memory disambiguation in an out of order processor |
US7461238B2 (en) * | 2006-06-07 | 2008-12-02 | International Business Machines Corporation | Simple load and store disambiguation and scheduling at predecode |
-
2006
- 2006-06-07 US US11/422,630 patent/US20070288725A1/en not_active Abandoned
-
2007
- 2007-06-04 WO PCT/EP2007/055459 patent/WO2007141234A1/en active Application Filing
- 2007-06-04 JP JP2009513663A patent/JP5357017B2/ja not_active Expired - Fee Related
- 2007-06-04 CN CN200780018506.3A patent/CN101449237B/zh not_active Expired - Fee Related
- 2007-06-04 EP EP07729847A patent/EP2035919A1/en not_active Withdrawn
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5829186A (ja) * | 1981-08-14 | 1983-02-21 | Nec Corp | 情報処理装置 |
JPS6347857A (ja) * | 1986-08-15 | 1988-02-29 | Nec Corp | メモリアクセス制御装置 |
JPH03201130A (ja) * | 1989-12-26 | 1991-09-03 | Internatl Business Mach Corp <Ibm> | データ処理システム |
JPH04355847A (ja) * | 1991-06-04 | 1992-12-09 | Nec Corp | ストアバッファ制御装置 |
JPH04358241A (ja) * | 1991-06-04 | 1992-12-11 | Nec Corp | ストアバッファ制御装置 |
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
JPH10320198A (ja) * | 1997-04-10 | 1998-12-04 | Internatl Business Mach Corp <Ibm> | データを転送する方法およびプロセッサ |
JPH1185513A (ja) * | 1997-09-03 | 1999-03-30 | Hitachi Ltd | プロセッサ |
JP2001282531A (ja) * | 2000-03-28 | 2001-10-12 | Toshiba Corp | データ処理装置 |
WO2002050668A2 (en) * | 2000-12-21 | 2002-06-27 | Intel Corporation | System and method for multiple store buffer forwarding |
JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
US20070186080A1 (en) * | 2006-02-09 | 2007-08-09 | International Business Machines Corporation | Mechanism to minimize unscheduled D-cache miss pipeline stalls |
JP2007213578A (ja) * | 2006-02-09 | 2007-08-23 | Internatl Business Mach Corp <Ibm> | データ・キャッシュ・ミス予測およびスケジューリング |
Non-Patent Citations (2)
Title |
---|
JPN6012042325; Motokazu OZAWA, Masashi IMAI, Yoichiro UENO, Hiroshi NAKAMURA, Takashi NANYA: 'A Cascade ALU Architecture for Asynchronous Super-Scalar Processors' IEICE Transactions on Electronics Vol:E84-C, No:2, 200102, Pages:229-237, The Institute of Electronics, Information an࿴ * |
JPN6012042328; 小沢基一,中村宏,南谷崇: 'Cascade ALUを用いた命令実行手法の提案と評価' 情報処理学会研究報告 Vol:99,No:41, 19990521, Pages:7-12, 社団法人情報処理学会 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009009570A (ja) * | 2007-06-27 | 2009-01-15 | Internatl Business Mach Corp <Ibm> | レジスタ状態エラー回復および再開機構 |
JP2009009569A (ja) * | 2007-06-27 | 2009-01-15 | Internatl Business Mach Corp <Ibm> | 複数のロード命令を実行するための方法および装置 |
JP2020060926A (ja) * | 2018-10-10 | 2020-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
JP7115203B2 (ja) | 2018-10-10 | 2022-08-09 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2035919A1 (en) | 2009-03-18 |
JP5357017B2 (ja) | 2013-12-04 |
CN101449237A (zh) | 2009-06-03 |
CN101449237B (zh) | 2013-04-24 |
WO2007141234A1 (en) | 2007-12-13 |
US20070288725A1 (en) | 2007-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5357017B2 (ja) | 高速で安価なストア−ロード競合スケジューリング及び転送機構 | |
US7730283B2 (en) | Simple load and store disambiguation and scheduling at predecode | |
US7447879B2 (en) | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss | |
US7594078B2 (en) | D-cache miss prediction and scheduling | |
US8812822B2 (en) | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss | |
JP5137948B2 (ja) | ローカル及びグローバル分岐予測情報の格納 | |
US20070186050A1 (en) | Self prefetching L2 cache mechanism for data lines | |
US20090006803A1 (en) | L2 Cache/Nest Address Translation | |
US20070288733A1 (en) | Early Conditional Branch Resolution | |
US7680985B2 (en) | Method and apparatus for accessing a split cache directory | |
US20070186049A1 (en) | Self prefetching L2 cache mechanism for instruction lines | |
US10067875B2 (en) | Processor with instruction cache that performs zero clock retires | |
US7937530B2 (en) | Method and apparatus for accessing a cache with an effective address | |
US8301871B2 (en) | Predicated issue for conditional branch instructions | |
US20070288732A1 (en) | Hybrid Branch Prediction Scheme | |
US20070288731A1 (en) | Dual Path Issue for Conditional Branch Instructions | |
US20080162908A1 (en) | structure for early conditional branch resolution | |
US20070288734A1 (en) | Double-Width Instruction Queue for Instruction Execution | |
US20080162907A1 (en) | Structure for self prefetching l2 cache mechanism for instruction lines | |
US20080162819A1 (en) | Design structure for self prefetching l2 cache mechanism for data lines | |
US20080162905A1 (en) | Design structure for double-width instruction queue for instruction execution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120918 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130403 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130507 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130723 |
|
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: 20130806 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130829 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |