JP2004533079A5 - - Google Patents

Download PDF

Info

Publication number
JP2004533079A5
JP2004533079A5 JP2003507694A JP2003507694A JP2004533079A5 JP 2004533079 A5 JP2004533079 A5 JP 2004533079A5 JP 2003507694 A JP2003507694 A JP 2003507694A JP 2003507694 A JP2003507694 A JP 2003507694A JP 2004533079 A5 JP2004533079 A5 JP 2004533079A5
Authority
JP
Japan
Prior art keywords
cache
speculative
storage
store
processor
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
Application number
JP2003507694A
Other languages
English (en)
Other versions
JP4050225B2 (ja
JP2004533079A (ja
Filing date
Publication date
Application filed filed Critical
Priority claimed from PCT/US2002/022157 external-priority patent/WO2003001369A2/en
Publication of JP2004533079A publication Critical patent/JP2004533079A/ja
Publication of JP2004533079A5 publication Critical patent/JP2004533079A5/ja
Application granted granted Critical
Publication of JP4050225B2 publication Critical patent/JP4050225B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Claims (19)

  1. マルチプロセッサシステムにおける推測的格納動作を容易にする方法であって、
    該マルチプロセッサシステムにおけるL2キャッシュにおいて、処理中の推測的格納動作のレコードを維持することであって、
    推測的格納動作は、前の格納動作が復帰する前に推測的に実行される格納動作である、ことと、
    該マルチプロセッサシステムにおけるプロセッサに接続されるL1キャッシュからL2キャシュにおいてロード動作を受信することと、
    該ロード動作に関するのと同一の位置に関する整合する推測的格納動作が存在するかどうかを判定するために、推測的格納動作の該レコードを検査することと、
    整合する推測的格納動作が存在する場合、該整合する推測的格納動作が完了した後に該ロード動作が起こることを保証すること
    を包含する、方法。
  2. 前記整合する推測的格納動作が完了した後に前記ロード動作が起こることを保証することは、リトライ動作を前記プロセッサに送信して、後で該プロセッサに該ロード動作をリトライさせるか、または、L2キャッシュにおいて該ロード動作が完了する前に完了するように、該整合する推測的格納動作を待つことを包含する、請求項1に記載の方法。
  3. 前記L2キャッシュにおいて前記整合する推測的格納動作が完了すると、該L2キャッシュは、前記格納動作が起こることを可能にし、かつ、該整合する推測的格納動作により無効化されるラインを含む他のL1キャッシュに無効化信号を送信する、請求項に記載の方法。
  4. 前記L2キャッシュにおいて所与の格納動作が完了すると、
    該所与の格納動作を開始させたソースプロセッサにアクノリッジを送信することと、
    アクノリッジに応答して該ソースプロセッサから移動信号を受信すると、該所与の格納動作がもはや推測的ではないことを示すようにレコードを更新すること
    をさらに包含する、請求項1に記載の方法。
  5. 前記ソースプロセッサにおいて前記アクノリッジを受信すると、該ソースプロセッサは、前記L2キャッシュに前記移動信号を送信する前に、全ての前の格納動作が完了するまで待ち、前記方法は、該L2キャッシュにおいて前記所与の格納動作が完了すると、該所与の格納動作により上書きされるキャッシュラインを含むL1キャッシュに無効化信号を送信することをさらに包含する、請求項に記載の方法。
  6. 前記L2キャッシュは複数のバンクを含み、かつ、各L2キャッシュに対して、推測的格納動作の前記レコードは、L2キャッシュに接続される各プロセッサに対する格納キューを含み、所与の格納キューは、推測的格納動作を含む、請求項1に記載の方法。
  7. 前記マルチプロセッサシステムにおけるプロセッサに接続されるL1キャッシュからL2キャシュにおいて格納動作を受信することと、
    該格納動作に関するのと同一の位置に関する整合する推測的格納動作が存在するかどうかを判定するために、推測的格納動作の前記レコードを検査することと、
    整合する推測的格納動作が存在する場合、該格納動作をドロップすること
    をさらに包含する、請求項1に記載の方法。
  8. ターゲットキャッシュラインに対する自分への読み出し(read−to−own)要求を受信して、前記ターゲットキャシュラインに対する所与の格納動作を実行することと、
    該ターゲットキャッシュラインに関する整合する推測的格納動作が存在するかどうかを判定するために、推測的格納動作の前記レコードを検査することと、
    整合する推測的格納動作が存在する場合、該ターゲットキャッシュラインを要求するプロセッサにライトオンリー状態で送ることにより、該要求するプロセッサは、該ターゲットキャッシュラインに対して書き込み動作を実行することができ、それにより、デッドロック条件を回避すること
    をさらに包含する、請求項1に記載の方法。
  9. マイクロプロセッサシステムにおいて推測的格納動作を容易にする装置であって、
    L2キャッシュと、
    該L2キャッシュにおいて処理中の推測的格納動作を識別する情報を含む、L2キャッシュにおけるレコードであって、
    推測的格納動作は、前の格納動作が復帰する前に推測的に実行される格納動作であるレコードと、
    L2キャッシュにおけるロード処理メカニズムであって、プロセッサと接続されるL1キャッシュからロード動作を受信する、ロード処理メカニズム
    を備え、
    該ロード処理メカニズムは、
    該ロード動作に関するのと同一の位置に関する整合する推測的格納動作が存在するかどうかを判断するために、推測的格納動作の該レコードを検査し、
    整合する推測的格納動作が存在するとき、該整合する推測的格納動作が完了した後に該ロード動作が起こることを保証するように構成される、装置。
  10. 前記ロード処理メカニズムは、前記プロセッサにリトライ動作を送信して、後で前記プロセッサに該ロード動作をリトライさせるかことにより、または、前記L2キャシュにおいて該ロード動作を完了させる前に完了するように、前記整合する推測的格納動作を待つことにより、該整合する推測的格納動作が完了した後に、該ロード動作が起こることを保証するように構成される、請求項に記載の装置。
  11. 前記L2キャッシュにおける前記整合する推測的格納動作が完了すると、該L2キャッシュは、前記ロード動作が起こることを可能にし、かつ、該整合する推測的格納動作により無効化されるラインを含む他のL1キャッシュに無効化信号を送信するように構成される、請求項10に記載の装置。
  12. 前記L2キャッシュにおいて所与のプロセッサから所与の推測的格納動作を受信し、ここで、該所与の推測的格納動作は、それが推測的であることを示すようにマークされ、かつ、
    前記レコードに該所与の推測的格納動作を格納する
    ように構成される格納処理メカニズムをさらに備える、請求項に記載の装置。
  13. 前記L2キャッシュにおいて所与の格納動作が完了すると、該所与の格納動作を開始させたソースプロセッサにアクノリッジを送信するように構成され、
    アクノリッジに応答して該ソースプロセッサから移動信号を受信すると、該所与の格納動作がもはや推測的ではないことを示すようにレコードを更新するように構成される、
    格納処理メカニズムをさらに備える、請求項に記載の装置。
  14. 前記ソースプロセッサにおいて前記アクノリッジを受信すると、該ソースプロセッサは、前記L2キャッシュに前記移動信号を送信する前に、全ての前の格納動作が完了するまで待つように構成される、かつ、該L2キャッシュにおいて前記所与の格納動作が完了すると、前記格納処理メカニズムは、該所与の格納動作により上書きされるL1キャッシュラインを含むL1キャッシュに無効化信号を送信するように構成される、請求項13に記載の装置。
  15. 前記L2キャシュは、複数のバンクを含み、
    各L2バンクに対して、推測的格納動作の前記レコードは、該L2キャッシュに接続される各プロセッサに対する格納キューを含み、所与の格納キューは、推測的格納動作を含む、請求項に記載の装置。
  16. 前記ロード処理メカニズムは、
    ターゲットキャッシュラインに対する自分への読み出し(read−to−own)要求を受信して、該ターゲットキャシュラインに対する所与の格納動作を実行し、かつ、
    該ターゲットキャッシュラインに関する整合する推測的格納動作が存在するかどうかを判定するために、推測的格納動作の前記レコードを検査するように構成され、
    整合する推測的格納動作が存在する場合、該ロード処理メカニズムは、該ターゲットキャッシュラインを要求するプロセッサにライトオンリー状態で送ることにより、該要求するプロセッサは、該ターゲットキャッシュラインに対して書き込み動作を実行することができ、それにより、デッドロック条件を回避するように構成される、請求項に記載の装置
  17. 前記L2キャッシュにおける格納処理メカニズムをさらに含み、プロセッサに接続されるL1キャッシュから格納動作を受信すると、該格納処理メカニズムは、
    前記格納動作に関するのと同一の位置に関する整合する推測的格納動作が存在するかどうかを判定するために、推測的格納動作の前記レコードを検査し、
    整合する推測的動作が存在する場合、該格納動作をドロップするように構成される、請求項に記載の装置。
  18. 推測的格納動作を容易にするマルチプロセッサシステムであって、
    L2キャッシュと、
    該L2キャッシュに接続される複数のL1キャッシュと、
    該複数のL1キャッシュに接続される複数のプロセッサと、
    該L2キャッシュにおいて処理中の推測的格納動作を識別する情報を含む該L2キャッシュにおけるレコードであって、推測的格納動作は、前の格納動作が復帰する前に推測的に実行される格納動作であるレコードと、
    該L2キャッシュにおけるロード処理メカニズムと
    を備え、
    該複数のL1キャッシュにおいてL1キャッシュからロード動作を受信すると、該ロード処理メカニズムは、
    該ロード動作に関するのと同一の位置に関する整合する推測的格納動作が存在するかどうかを判定するために、推測的格納動作の該レコードを検査し、
    整合する推測的格納動作が存在する場合、該整合する推測的格納動作が完了した後に、該ロード動作が起こることを保証するように構成される、マルチプロセッサシステム。
  19. 前記ロード処理メカニズムは、前記L1キャッシュにリトライ動作を送信し、後で該L1キャッシュに前記ロード動作をリトライさせることにより、または、前記L2キャッシュにおける該ロード動作を完了させる前に完了するように、前記整合する格納動作を待つことにより、該整合する推測的格納動作が完了した後にロード動作が起こることを保証するように構成される、請求項18に記載のマルチプロセッサシステム。
JP2003507694A 2001-06-26 2002-06-26 マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置 Expired - Lifetime JP4050225B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US30119601P 2001-06-26 2001-06-26
PCT/US2002/022157 WO2003001369A2 (en) 2001-06-26 2002-06-26 Method and apparatus for facilitating speculative stores in a multiprocessor system

Publications (3)

Publication Number Publication Date
JP2004533079A JP2004533079A (ja) 2004-10-28
JP2004533079A5 true JP2004533079A5 (ja) 2006-01-05
JP4050225B2 JP4050225B2 (ja) 2008-02-20

Family

ID=23162357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003507694A Expired - Lifetime JP4050225B2 (ja) 2001-06-26 2002-06-26 マルチプロセッサシステムにおける推測的な格納を容易にする方法および装置

Country Status (5)

Country Link
US (1) US6704841B2 (ja)
EP (1) EP1402349A2 (ja)
JP (1) JP4050225B2 (ja)
KR (1) KR100567099B1 (ja)
WO (1) WO2003001369A2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128448A1 (en) * 2002-12-31 2004-07-01 Intel Corporation Apparatus for memory communication during runahead execution
US7266673B2 (en) * 2003-05-02 2007-09-04 Advanced Micro Devices, Inc. Speculation pointers to identify data-speculative operations in microprocessor
US7363470B2 (en) * 2003-05-02 2008-04-22 Advanced Micro Devices, Inc. System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor
US7284097B2 (en) * 2003-09-30 2007-10-16 International Business Machines Corporation Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes
US7769950B2 (en) * 2004-03-24 2010-08-03 Qualcomm Incorporated Cached memory system and cache controller for embedded digital signal processor
US7484045B2 (en) 2004-03-30 2009-01-27 Intel Corporation Store performance in strongly-ordered microprocessor architecture
JP2006155080A (ja) * 2004-11-26 2006-06-15 Fujitsu Ltd メモリ制御装置およびメモリ制御方法
US7984248B2 (en) * 2004-12-29 2011-07-19 Intel Corporation Transaction based shared data operations in a multiprocessor environment
US20060179174A1 (en) * 2005-02-02 2006-08-10 Bockhaus John W Method and system for preventing cache lines from being flushed until data stored therein is used
US7644221B1 (en) * 2005-04-11 2010-01-05 Sun Microsystems, Inc. System interface unit
US7376793B2 (en) 2005-07-21 2008-05-20 Sun Microsystems, Inc. Cache coherence protocol with speculative writestream
US20070186056A1 (en) * 2006-02-07 2007-08-09 Bratin Saha Hardware acceleration for a software transactional memory system
US7404041B2 (en) * 2006-02-10 2008-07-22 International Business Machines Corporation Low complexity speculative multithreading system based on unmodified microprocessor core
JP4297968B2 (ja) 2006-02-14 2009-07-15 富士通株式会社 コヒーレンシ維持装置およびコヒーレンシ維持方法
KR100673497B1 (ko) * 2006-04-14 2007-01-24 (주)핸스건설 유압전달장치
US20080005504A1 (en) * 2006-06-30 2008-01-03 Jesse Barnes Global overflow method for virtualized transactional memory
US9798590B2 (en) * 2006-09-07 2017-10-24 Intel Corporation Post-retire scheme for tracking tentative accesses during transactional execution
US8060482B2 (en) * 2006-12-28 2011-11-15 Intel Corporation Efficient and consistent software transactional memory
US8370705B1 (en) * 2009-09-23 2013-02-05 Nvidia Corporation System and method for calculating a checksum address while maintaining error correction information
US9052967B2 (en) * 2010-07-30 2015-06-09 Vmware, Inc. Detecting resource deadlocks in multi-threaded programs by controlling scheduling in replay
KR101702788B1 (ko) * 2012-06-15 2017-02-03 소프트 머신즈, 인크. 스토어 상위 서열에 기초하여 상이한 스레드들로부터의 포워딩을 구현하는 스레드에 무관한 로드 스토어 버퍼
EP2862058B1 (en) * 2012-06-15 2021-05-19 Intel Corporation A semaphore method and system with out of order loads in a memory consistency model that constitutes loads reading from memory in order
CN104823154B (zh) 2012-06-15 2017-12-29 英特尔公司 包括虚拟加载存储队列的处理器和系统
EP2862062B1 (en) 2012-06-15 2024-03-06 Intel Corporation A virtual load store queue having a dynamic dispatch window with a distributed structure
WO2013188306A1 (en) 2012-06-15 2013-12-19 Soft Machines, Inc. Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
EP2862069A4 (en) 2012-06-15 2016-12-28 Soft Machines Inc DEFINING INSTRUCTIONS TO REORDER AND OPTIMIZE LOADING AND STORAGE
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
KR101745640B1 (ko) * 2012-06-15 2017-06-09 인텔 코포레이션 공유 메모리 자원들을 사용하는 메모리 일관성 모델에서 비순차 load들에 대한 로크 기반 및 동기화 기반 방법
KR101818967B1 (ko) 2012-06-15 2018-01-16 인텔 코포레이션 명확화 없는 비순차 load store 큐
CN104583939B (zh) * 2012-06-15 2018-02-23 英特尔公司 用于选择指令的系统和方法
US10574727B2 (en) * 2015-10-21 2020-02-25 Honeywell International Inc. MIB data broadcast using inexpensive method incorporating microcontroller and FPGA
JP6318440B2 (ja) * 2016-10-07 2018-05-09 インテル・コーポレーション 無制限トランザクショナルメモリ(utm)システムの最適化
US10303603B2 (en) 2017-06-13 2019-05-28 Microsoft Technology Licensing, Llc Low power multi-core coherency
US10282298B2 (en) 2017-06-13 2019-05-07 Microsoft Technology Licensing, Llc Store buffer supporting direct stores to a coherence point
US10691593B1 (en) * 2018-12-19 2020-06-23 Micron Technology, Inc. Predictive data storage hierarchical memory systems and methods
US11061824B2 (en) * 2019-09-03 2021-07-13 Microsoft Technology Licensing, Llc Deferring cache state updates in a non-speculative cache memory in a processor-based system in response to a speculative data request until the speculative data request becomes non-speculative
US10983801B2 (en) * 2019-09-06 2021-04-20 Apple Inc. Load/store ordering violation management
US11960400B2 (en) * 2022-04-26 2024-04-16 Cadence Design Systems, Inc. Managing multiple cache memory circuit operations

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5623628A (en) * 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
US5765208A (en) * 1995-09-29 1998-06-09 Motorola, Inc. Method of speculatively executing store instructions prior to performing snoop operations
US5838943A (en) * 1996-03-26 1998-11-17 Advanced Micro Devices, Inc. Apparatus for speculatively storing and restoring data to a cache memory
US6065103A (en) * 1997-12-16 2000-05-16 Advanced Micro Devices, Inc. Speculative store buffer
US6463507B1 (en) * 1999-06-25 2002-10-08 International Business Machines Corporation Layered local cache with lower level cache updating upper and lower level cache directories
US6473833B1 (en) * 1999-07-30 2002-10-29 International Business Machines Corporation Integrated cache and directory structure for multi-level caches
US6523109B1 (en) * 1999-10-25 2003-02-18 Advanced Micro Devices, Inc. Store queue multimatch detection
US6535962B1 (en) * 1999-11-08 2003-03-18 International Business Machines Corporation System and method for prefetching data using a hardware prefetch mechanism

Similar Documents

Publication Publication Date Title
JP2004533079A5 (ja)
US8327074B2 (en) Synchronizing access to data in shared memory via upper level cache queuing
US5652859A (en) Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
EP0735487B1 (en) A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system
EP0669578B1 (en) Improved ordered cache-coherency scheme
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
US8756377B2 (en) Area and power efficient data coherency maintenance
US20050210204A1 (en) Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
US9396127B2 (en) Synchronizing access to data in shared memory
JP3317329B2 (ja) 逐次符号化スヌープ応答を使用してキャッシュの一貫性を保つ方法およびシステム
JP2020009492A5 (ja)
US7200717B2 (en) Processor, data processing system and method for synchronizing access to data in shared memory
US8301843B2 (en) Data cache block zero implementation
KR101928770B1 (ko) 제1 및 제2의 프로토콜 도메인을 갖는 데이터 처리장치와, 그 데이터 처리장치의 방법
US20040068622A1 (en) Mechanism for resolving ambiguous invalidates in a computer system
US20070083715A1 (en) Early return indication for return data prior to receiving all responses in shared memory architecture
GB2296353A (en) Cache memory system with reduced request-blocking
US20050071573A1 (en) Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes
US7533223B1 (en) System and method for handling memory requests in a multiprocessor shared memory system
US10140052B2 (en) Memory access in a data processing system utilizing copy and paste instructions
US20100199051A1 (en) Cache coherency in a shared-memory multiprocessor system
US5263144A (en) Method and apparatus for sharing data between processors in a computer system
US20070061519A1 (en) Early return indication for read exclusive requests in shared memory architecture
US6078981A (en) Transaction stall technique to prevent livelock in multiple-processor systems
US9015424B2 (en) Write transaction management within a memory interconnect