JP5357017B2 - 高速で安価なストア−ロード競合スケジューリング及び転送機構 - Google Patents
高速で安価なストア−ロード競合スケジューリング及び転送機構 Download PDFInfo
- Publication number
- JP5357017B2 JP5357017B2 JP2009513663A JP2009513663A JP5357017B2 JP 5357017 B2 JP5357017 B2 JP 5357017B2 JP 2009513663 A JP2009513663 A JP 2009513663A JP 2009513663 A JP2009513663 A JP 2009513663A JP 5357017 B2 JP5357017 B2 JP 5357017B2
- Authority
- JP
- Japan
- Prior art keywords
- store
- load
- instruction
- data
- cache
- 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
- 238000012546 transfer Methods 0.000 title description 64
- 230000007246 mechanism Effects 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 40
- 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
- 238000012545 processing Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 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
- 230000001934 delay Effects 0.000 description 2
- 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
- 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)
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 (3)
- プロセッサにおいて命令を実行する方法であって、
ロード命令及びストア命令を受信するステップと、
前記ロード命令についてのロード・データのロード実効アドレスと前記ストア命令につ
いてのストア・データのストア実効アドレスとを計算するステップと、
前記ロード実効アドレス及び前記ストア実効アドレスにおいてページ内の場所を特定す
る部分を比較するステップと、
前記ページ内の場所を特定する部分が一致する場合に、前記ストア命令についての前記
ストア・データを、前記ストア命令が実行されている第1のパイプラインから、前記ロー
ド命令が実行されている第2のパイプラインに転送するステップであって、前記ロード命
令は、前記ストア・データを前記第1のパイプラインから受信し、要求されたデータをデ
ータ・キャッシュから受信する、ステップと、
前記ロード実効アドレスを用いて取得されたロード物理アドレスのページ番号と、前記
ストア実効アドレスを用いて取得されたストア物理アドレスのページ番号を比較するステ
ップと、
前記ページ番号が一致する場合に、前記転送されたストア・データを前記データ・キャ
ッシュからの前記要求されたデータと統合して前記ロード・データとするステップと、
を含む方法。 - キャッシュと、
第1のパイプラインと、
第2のパイプラインと、
前記キャッシュからロード命令及びストア命令を受信し、
前記ロード命令についてのロード・データのロード実効アドレスと前記ストア命令についてのストア・データのストア実効アドレスとを計算し、
前記ロード実効アドレス及び前記ストア実効アドレスにおいてページ内の場所を特定する部分を比較し、
前記ページ内の場所を特定する部分が一致する場合に、前記ストア命令についての前記ストア・データを、前記ストア命令が実行されている前記第1のパイプラインから、前記ロード命令が実行されている前記第2のパイプラインに転送し、
前記ロード実効アドレスを用いて取得されたロード物理アドレスのページ番号と、前記ストア実効アドレスを用いて取得されたストア物理アドレスのページ番号を比較し、
前記ページ番号が一致する場合に、前記転送されたストア・データを前記キャッシュからのデータと統合して前記ロード・データとする、
ように構成可能な回路と、
を備えるプロセッサ。 - コンピュータ・プログラムであって、該プログラムがコンピュータに、請求項1に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/422,630 US20070288725A1 (en) | 2006-06-07 | 2006-06-07 | A Fast and Inexpensive Store-Load Conflict Scheduling and Forwarding Mechanism |
US11/422,630 | 2006-06-07 | ||
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 JP2009540411A (ja) | 2009-11-19 |
JP5357017B2 true 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) |
Families Citing this family (61)
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 |
US20080082755A1 (en) * | 2006-09-29 | 2008-04-03 | Kornegay Marcus L | Administering An Access Conflict In A Computer Memory Cache |
US20080201531A1 (en) * | 2006-09-29 | 2008-08-21 | Kornegay Marcus L | Structure for 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 |
US7984272B2 (en) | 2007-06-27 | 2011-07-19 | International Business Machines Corporation | Design structure for single hot forward interconnect scheme for delayed execution pipelines |
US7730288B2 (en) * | 2007-06-27 | 2010-06-01 | International Business Machines Corporation | Method and apparatus for multiple load instruction execution |
US7865769B2 (en) * | 2007-06-27 | 2011-01-04 | International Business Machines Corporation | In situ register state error recovery and restart mechanism |
WO2009000624A1 (en) * | 2007-06-27 | 2008-12-31 | International Business Machines Corporation | Forwarding data in a processor |
US7769987B2 (en) | 2007-06-27 | 2010-08-03 | International Business Machines Corporation | Single hot forward interconnect scheme for delayed execution pipelines |
US20090210672A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
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 |
US7984270B2 (en) * | 2008-02-19 | 2011-07-19 | International Business Machines Corporation | System and method for prioritizing arithmetic instructions |
US20090210666A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US7870368B2 (en) * | 2008-02-19 | 2011-01-11 | International Business Machines Corporation | System and method for prioritizing branch 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 |
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 |
US20090210669A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Prioritizing Floating-Point Instructions |
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 |
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 |
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 |
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 | 演算処理装置及び演算処理方法 |
WO2013095508A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Speculative cache modification |
US10261909B2 (en) | 2011-12-22 | 2019-04-16 | Intel Corporation | Speculative cache modification |
CN104823168B (zh) | 2012-06-15 | 2018-11-09 | 英特尔公司 | 用于实现从由加载存储重新排序和优化导致的推测性转发遗漏预测/错误中恢复的方法和*** |
US9626189B2 (en) | 2012-06-15 | 2017-04-18 | International Business Machines Corporation | Reducing operand store compare penalties |
WO2013188460A2 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A virtual load store queue having a dynamic dispatch window with a distributed structure |
EP2862069A4 (en) | 2012-06-15 | 2016-12-28 | Soft Machines Inc | DEFINING INSTRUCTIONS TO REORDER AND OPTIMIZE LOADING AND STORAGE |
EP2862061A4 (en) | 2012-06-15 | 2016-12-21 | Soft Machines Inc | MEMORY PRECISION FOR VIRTUAL LOAD WITH DYNAMIC SHIPPING WINDOW WITH UNIFORM STRUCTURE |
EP2862068B1 (en) * | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
KR101818967B1 (ko) * | 2012-06-15 | 2018-01-16 | 인텔 코포레이션 | 명확화 없는 비순차 load store 큐 |
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 |
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 |
US9665468B2 (en) | 2013-08-19 | 2017-05-30 | Intel Corporation | Systems and methods for invasive debug of a processor without processor execution of instructions |
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 |
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 |
US10606590B2 (en) | 2017-10-06 | 2020-03-31 | International Business Machines Corporation | Effective address based load store unit in out of order processors |
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 |
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 |
US11175924B2 (en) | 2017-10-06 | 2021-11-16 | International Business Machines Corporation | Load-store unit with partitioned reorder queues with single cam 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 |
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 |
US10649900B2 (en) | 2017-11-06 | 2020-05-12 | Samsung Electronics Co., Ltd. | Method to avoid cache access conflict between load and fill |
JP7115203B2 (ja) * | 2018-10-10 | 2022-08-09 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
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 |
Family Cites Families (30)
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 | メモリアクセス制御装置 |
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
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 |
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 | データ処理装置 |
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 |
US6021485A (en) * | 1997-04-10 | 2000-02-01 | International Business Machines Corporation | Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching |
KR19990003937A (ko) * | 1997-06-26 | 1999-01-15 | 김영환 | 프리페치 장치 |
JPH1185513A (ja) * | 1997-09-03 | 1999-03-30 | Hitachi Ltd | プロセッサ |
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 |
JP3593490B2 (ja) * | 2000-03-28 | 2004-11-24 | 株式会社東芝 | データ処理装置 |
US6678807B2 (en) * | 2000-12-21 | 2004-01-13 | Intel Corporation | System and method for multiple store buffer forwarding in a system with a restrictive memory model |
JP4489308B2 (ja) * | 2001-01-05 | 2010-06-23 | 富士通株式会社 | パケットスイッチ |
JP2002333978A (ja) * | 2001-05-08 | 2002-11-22 | Nec Corp | Vliw型プロセッサ |
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 |
US7594078B2 (en) * | 2006-02-09 | 2009-09-22 | International Business Machines Corporation | D-cache miss prediction and scheduling |
US7447879B2 (en) * | 2006-02-09 | 2008-11-04 | International Business Machines Corporation | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss |
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 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
- 2007-06-04 WO PCT/EP2007/055459 patent/WO2007141234A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN101449237B (zh) | 2013-04-24 |
JP2009540411A (ja) | 2009-11-19 |
EP2035919A1 (en) | 2009-03-18 |
US20070288725A1 (en) | 2007-12-13 |
CN101449237A (zh) | 2009-06-03 |
WO2007141234A1 (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 | |
US10067875B2 (en) | Processor with instruction cache that performs zero clock retires | |
US20070186049A1 (en) | Self prefetching L2 cache mechanism for instruction lines | |
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 |