DE60025028D1 - Speicherpuffer, der daten, basierend auf index und freiwilliger weisebemusterung überträgt - Google Patents

Speicherpuffer, der daten, basierend auf index und freiwilliger weisebemusterung überträgt

Info

Publication number
DE60025028D1
DE60025028D1 DE60025028T DE60025028T DE60025028D1 DE 60025028 D1 DE60025028 D1 DE 60025028D1 DE 60025028 T DE60025028 T DE 60025028T DE 60025028 T DE60025028 T DE 60025028T DE 60025028 D1 DE60025028 D1 DE 60025028D1
Authority
DE
Germany
Prior art keywords
load
store
hit
index
hits
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 - Lifetime
Application number
DE60025028T
Other languages
English (en)
Other versions
DE60025028T2 (de
Inventor
A Hughes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE60025028D1 publication Critical patent/DE60025028D1/de
Application granted granted Critical
Publication of DE60025028T2 publication Critical patent/DE60025028T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4441Reducing the execution time required by the program code
    • G06F8/4442Reducing the number of cache misses; Data prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
DE60025028T 1999-11-10 2000-04-20 Speicherpuffer, der daten, basierend auf index und freiwilliger weisebemusterung überträgt Expired - Lifetime DE60025028T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US16452699P 1999-11-10 1999-11-10
US164526P 1999-11-10
US482399 2000-01-12
US09/482,399 US6662280B1 (en) 1999-11-10 2000-01-12 Store buffer which forwards data based on index and optional way match
PCT/US2000/010961 WO2001035212A1 (en) 1999-11-10 2000-04-20 Store buffer which forwards data based on index and optional way match

Publications (2)

Publication Number Publication Date
DE60025028D1 true DE60025028D1 (de) 2006-01-26
DE60025028T2 DE60025028T2 (de) 2006-08-24

Family

ID=26860645

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60025028T Expired - Lifetime DE60025028T2 (de) 1999-11-10 2000-04-20 Speicherpuffer, der daten, basierend auf index und freiwilliger weisebemusterung überträgt

Country Status (7)

Country Link
US (1) US6662280B1 (de)
EP (1) EP1228426B1 (de)
JP (1) JP4699666B2 (de)
KR (1) KR100708010B1 (de)
DE (1) DE60025028T2 (de)
TW (1) TW548548B (de)
WO (1) WO2001035212A1 (de)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7065632B1 (en) * 2000-04-07 2006-06-20 Ip First Llc Method and apparatus for speculatively forwarding storehit data in a hierarchical manner
JP3727244B2 (ja) * 2001-01-30 2005-12-14 Necエレクトロニクス株式会社 キャッシュシステムの制御回路
US6845233B2 (en) * 2001-10-09 2005-01-18 Freescale Semiconductor, Inc. RF receivers with reduced spurious response for mobile stations and methods therefor
US6735604B2 (en) * 2001-10-09 2004-05-11 Arthur O. Miller Method for storing and retrieving data objects
US6842822B2 (en) * 2002-04-05 2005-01-11 Freescale Semiconductor, Inc. System and method for cache external writing
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
US7028166B2 (en) * 2002-04-30 2006-04-11 Advanced Micro Devices, Inc. System and method for linking speculative results of load operations to register values
US7222226B1 (en) 2002-04-30 2007-05-22 Advanced Micro Devices, Inc. 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
US7114043B2 (en) * 2002-05-15 2006-09-26 Broadcom Corporation Ambiguous virtual channels
US7471675B2 (en) * 2002-07-12 2008-12-30 Intel Corporation Arrangements facilitating ordered transactions
US7089400B1 (en) 2002-08-29 2006-08-08 Advanced Micro Devices, Inc. Data speculation based on stack-relative addressing patterns
US7024537B2 (en) * 2003-01-21 2006-04-04 Advanced Micro Devices, Inc. Data speculation based on addressing patterns identifying dual-purpose register
US7321964B2 (en) 2003-07-08 2008-01-22 Advanced Micro Devices, Inc. Store-to-load forwarding buffer using indexed lookup
US7181590B2 (en) * 2003-08-28 2007-02-20 Intel Corporation Method for page sharing in a processor with multiple threads and pre-validated caches
WO2005086418A1 (en) * 2004-02-27 2005-09-15 Actix Limited Data storage and processing systems
US7263600B2 (en) * 2004-05-05 2007-08-28 Advanced Micro Devices, Inc. System and method for validating a memory file that links speculative results of load operations to register values
US7937569B1 (en) 2004-05-05 2011-05-03 Advanced Micro Devices, Inc. System and method for scheduling operations using speculative data operands
US8775740B2 (en) * 2004-08-30 2014-07-08 Texas Instruments Incorporated System and method for high performance, power efficient store buffer forwarding
US7464242B2 (en) * 2005-02-03 2008-12-09 International Business Machines Corporation Method of load/store dependencies detection with dynamically changing address length
US7533236B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip out of order memory allocation for a unified shader
US7533237B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip memory allocation for a unified shader
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
US7594100B2 (en) 2006-09-29 2009-09-22 Sun Microsystems, Inc. Efficient store queue architecture
US7603527B2 (en) * 2006-09-29 2009-10-13 Intel Corporation Resolving false dependencies of speculative load instructions
US7721066B2 (en) * 2007-06-05 2010-05-18 Apple Inc. Efficient encoding for detecting load dependency on store with misalignment
US8468306B2 (en) * 2008-02-15 2013-06-18 International Business Machines Corporation Microprocessor and method for deferred store data forwarding for store background data in a system with no memory model restrictions
US8214602B2 (en) * 2008-06-23 2012-07-03 Advanced Micro Devices, Inc. Efficient load queue snooping
US8521992B2 (en) * 2009-12-22 2013-08-27 International Business Machines Corporation Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
US8468325B2 (en) 2009-12-22 2013-06-18 International Business Machines Corporation Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors
US8601240B2 (en) * 2010-05-04 2013-12-03 Oracle International Corporation Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution
US8626963B2 (en) 2010-05-04 2014-01-07 Mediatek Inc. Packet based data transfer system and method for host-slave interface
US8904153B2 (en) * 2010-09-07 2014-12-02 International Business Machines Corporation Vector loads with multiple vector elements from a same cache line in a scattered load operation
US20120144118A1 (en) * 2010-12-07 2012-06-07 Advanced Micro Devices, Inc. Method and apparatus for selectively performing explicit and implicit data line reads on an individual sub-cache basis
US9152570B2 (en) * 2012-02-27 2015-10-06 Vmware, Inc. System and method for supporting finer-grained copy-on-write page sizes
US9996348B2 (en) * 2012-06-14 2018-06-12 Apple Inc. Zero cycle load
US8984254B2 (en) * 2012-09-28 2015-03-17 Freescale Semiconductor, Inc. Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
US9116817B2 (en) * 2013-05-09 2015-08-25 Apple Inc. Pointer chasing prediction
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
GB2521227B (en) * 2013-12-16 2020-11-25 Advanced Risc Mach Ltd Invalidation of index items for a temporary data store
US9418018B2 (en) 2013-12-31 2016-08-16 Samsung Electronics Co., Ltd. Efficient fill-buffer data forwarding supporting high frequencies
JP6340894B2 (ja) * 2014-04-24 2018-06-13 富士通株式会社 演算処理装置および演算処理装置の制御方法
US9710268B2 (en) 2014-04-29 2017-07-18 Apple Inc. Reducing latency for pointer chasing loads
US11068271B2 (en) 2014-07-28 2021-07-20 Apple Inc. Zero cycle move using free list counts
US9483409B2 (en) 2015-02-05 2016-11-01 International Business Machines Corporation Store forwarding cache
US9996356B2 (en) * 2015-12-26 2018-06-12 Intel Corporation Method and apparatus for recovering from bad store-to-load forwarding in an out-of-order processor
CN111782577B (zh) 2019-04-04 2023-03-24 安徽寒武纪信息科技有限公司 数据处理装置及方法以及相关产品
CN111831337B (zh) 2019-04-19 2022-11-29 安徽寒武纪信息科技有限公司 数据同步方法及装置以及相关产品
KR102550451B1 (ko) * 2019-04-04 2023-06-30 캠브리콘 테크놀로지스 코퍼레이션 리미티드 데이터 처리방법과 장치 및 관련 제품
TWI714116B (zh) * 2019-06-05 2020-12-21 大陸商合肥沛睿微電子股份有限公司 記憶體控制器、記憶體控制方法、以及電腦系統
US11200062B2 (en) 2019-08-26 2021-12-14 Apple Inc. History file for previous register mapping storage and last reference indication
US11416254B2 (en) 2019-12-05 2022-08-16 Apple Inc. Zero cycle load bypass in a decode group
US11841802B2 (en) 2021-05-07 2023-12-12 Ventana Micro Systems Inc. Microprocessor that prevents same address load-load ordering violations
US11416400B1 (en) 2021-05-07 2022-08-16 Ventana Micro Systems Inc. Hardware cache coherency using physical address proxies
US11481332B1 (en) 2021-05-07 2022-10-25 Ventana Micro Systems Inc. Write combining using physical address proxies stored in a write combine buffer
US11860794B2 (en) 2021-05-07 2024-01-02 Ventana Micro Systems Inc. Generational physical address proxies
US11868263B2 (en) 2021-05-07 2024-01-09 Ventana Micro Systems Inc. Using physical address proxies to handle synonyms when writing store data to a virtually-indexed cache
US11989286B2 (en) 2021-05-07 2024-05-21 Ventana Micro Systems Inc. Conditioning store-to-load forwarding (STLF) on past observations of STLF propriety
US11397686B1 (en) * 2021-05-07 2022-07-26 Ventana Micro Systems Inc. Store-to-load forwarding using physical address proxies to identify candidate set of store queue entries
US11989285B2 (en) 2021-05-07 2024-05-21 Ventana Micro Systems Inc. Thwarting store-to-load forwarding side channel attacks by pre-forwarding matching of physical address proxies and/or permission checking
US11836080B2 (en) 2021-05-07 2023-12-05 Ventana Micro Systems Inc. Physical address proxy (PAP) residency determination for reduction of PAP reuse
US11416406B1 (en) 2021-05-07 2022-08-16 Ventana Micro Systems Inc. Store-to-load forwarding using physical address proxies stored in store queue entries
TW202331504A (zh) * 2021-12-21 2023-08-01 美商賽發馥股份有限公司 處理器管線之儲存-載入轉送

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276828A (en) 1989-03-01 1994-01-04 Digital Equipment Corporation Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions
US5487156A (en) 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
JP2645163B2 (ja) * 1990-03-13 1997-08-25 三菱電機株式会社 非接触型icカード
US5440752A (en) 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
JP3199465B2 (ja) 1992-07-22 2001-08-20 株式会社日立製作所 情報処理装置
DE69329778T2 (de) 1992-09-29 2001-04-26 Seiko Epson Corp System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
IE80854B1 (en) 1993-08-26 1999-04-07 Intel Corp Processor ordering consistency for a processor performing out-of-order instruction execution
US5878245A (en) 1993-10-29 1999-03-02 Advanced Micro Devices, Inc. High performance load/store functional unit and data cache
US5666537A (en) * 1994-08-12 1997-09-09 Intel Corporation Power down scheme for idle processor components
US6216200B1 (en) 1994-10-14 2001-04-10 Mips Technologies, Inc. Address queue
US5848433A (en) * 1995-04-12 1998-12-08 Advanced Micro Devices Way prediction unit and a method for operating the same
US5802588A (en) 1995-04-12 1998-09-01 Advanced Micro Devices, Inc. Load/store unit implementing non-blocking loads for a superscalar microprocessor and method of selecting loads in a non-blocking fashion from a load/store buffer
US5832297A (en) 1995-04-12 1998-11-03 Advanced Micro Devices, Inc. Superscalar microprocessor load/store unit employing a unified buffer and separate pointers for load and store operations
US5887152A (en) 1995-04-12 1999-03-23 Advanced Micro Devices, Inc. Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions
US5625835A (en) 1995-05-10 1997-04-29 International Business Machines Corporation Method and apparatus for reordering memory operations in a superscalar or very long instruction word processor
US5761712A (en) 1995-06-07 1998-06-02 Advanced Micro Devices Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
US5652859A (en) 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5987561A (en) * 1995-08-31 1999-11-16 Advanced Micro Devices, Inc. Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle
US5751983A (en) 1995-10-03 1998-05-12 Abramson; Jeffrey M. Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations
US5781790A (en) 1995-12-29 1998-07-14 Intel Corporation Method and apparatus for performing floating point to integer transfers and vice versa
US5742791A (en) 1996-02-14 1998-04-21 Advanced Micro Devices, Inc. Apparatus for detecting updates to instructions which are within an instruction processing pipeline of a microprocessor
DE69638271D1 (de) * 1996-07-16 2010-11-18 Globalfoundries Inc Ladespeichereinheit und verfahren zur blockierungfreien beendigung von ladebefehlen in einem superskalaren mikroprozessor
US5768555A (en) 1997-02-20 1998-06-16 Advanced Micro Devices, Inc. Reorder buffer employing last in buffer and last in line bits
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
US6065103A (en) 1997-12-16 2000-05-16 Advanced Micro Devices, Inc. Speculative store buffer
US6266744B1 (en) * 1999-05-18 2001-07-24 Advanced Micro Devices, Inc. Store to load forwarding using a dependency link file
FR2804819B1 (fr) * 2000-02-03 2002-05-03 Gemplus Card Int Gestion de temps au niveau communication pour entite du type carte a puce
JP2001266094A (ja) * 2000-03-15 2001-09-28 Toshiba Corp 非接触通信装置及び非接触通信装置の制御方法
US20020166075A1 (en) * 2001-05-04 2002-11-07 Sanjay Agarwal Low power interface between a control processor and a digital signal processing coprocessor

Also Published As

Publication number Publication date
EP1228426A1 (de) 2002-08-07
WO2001035212A1 (en) 2001-05-17
TW548548B (en) 2003-08-21
KR100708010B1 (ko) 2007-04-16
JP4699666B2 (ja) 2011-06-15
US6662280B1 (en) 2003-12-09
DE60025028T2 (de) 2006-08-24
JP2003514299A (ja) 2003-04-15
EP1228426B1 (de) 2005-12-21
KR20020087929A (ko) 2002-11-23

Similar Documents

Publication Publication Date Title
DE60025028D1 (de) Speicherpuffer, der daten, basierend auf index und freiwilliger weisebemusterung überträgt
CN108427647B (zh) 读取数据的方法以及混合存储器模块
CN107111455B (zh) 电子处理器架构以及缓存数据的方法
US7793067B2 (en) Translation data prefetch in an IOMMU
JP2007504552A5 (de)
US7900020B2 (en) Correction of incorrect cache accesses
WO2003001384A3 (en) Fast and accurate cache way selection
JPH0326863B2 (de)
JPH0628262A (ja) ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法
KR940024591A (ko) 컴퓨터 장치
JPH08263370A (ja) キャッシュメモリシステム
US6591341B1 (en) Multilevel cache system and method having a merged tag array to store tags for multiple data arrays
KR20080063512A (ko) 변환 색인 버퍼들(tlbs) 필드의 다중 레벨 갱신
US20090292857A1 (en) Cache memory unit
US6000017A (en) Hybrid tag architecture for a cache memory
CA1262287A (en) Explicit instructions for control of translation lookaside buffers
US6338124B1 (en) Multiprocessor system bus with system controller explicitly updating snooper LRU information
EP0486154B1 (de) Verfahren zum Betreiben einer virtuellen Speicheranordnung
DE60203030D1 (de) Hochintegres Cacheverzeichnis
KR910005160A (ko) 라이트액세스시에 무효화신호를 발생하여 3가지 상태를 갖는 멀티프로세서 캐시시스템
JP2004530962A (ja) キャッシュメモリおよびアドレス指定方法
US20030033483A1 (en) Cache architecture to reduce leakage power consumption
CN117331853B (zh) 缓存处理方法、装置、电子设备及介质
US6915405B2 (en) Emulated target associative memory system with a multi-digit incrementable validity counter
US6216198B1 (en) Cache memory accessible for continuous data without tag array indexing

Legal Events

Date Code Title Description
8364 No opposition during term of opposition