KR970016969A - 데이터 프리페치 방법 및 프로세싱 시스템 - Google Patents

데이터 프리페치 방법 및 프로세싱 시스템 Download PDF

Info

Publication number
KR970016969A
KR970016969A KR1019960033714A KR19960033714A KR970016969A KR 970016969 A KR970016969 A KR 970016969A KR 1019960033714 A KR1019960033714 A KR 1019960033714A KR 19960033714 A KR19960033714 A KR 19960033714A KR 970016969 A KR970016969 A KR 970016969A
Authority
KR
South Korea
Prior art keywords
cache
line
data
main memory
logical block
Prior art date
Application number
KR1019960033714A
Other languages
English (en)
Other versions
KR100240914B1 (ko
Inventor
에이. 치아로트 케빈
제이. 메이필드 마이클
케이. 난지아 에라
제이. 피터슨 밀포드
Original Assignee
제프리 엘, 포만
인터내셔널 비지네스 머신즈 코포레이션
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 제프리 엘, 포만, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 제프리 엘, 포만
Publication of KR970016969A publication Critical patent/KR970016969A/ko
Application granted granted Critical
Publication of KR100240914B1 publication Critical patent/KR100240914B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/3802Instruction 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/383Operand prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Abstract

본 발명은 라인 M의 실행동안 L2 캐시 혹은 주 메모리부터 L1 인스트럭션내로 라인 M+1을 선택적으로 프리페치하기 위한 방법에 관한 것이다. 분해되지 않은 분기가 보류중인 라인 M 내에 존재하면, 라인 M+1은 추론적이고 주 메모리로부터가 아니라, L2캐시로부터만 L1 인스트럭션 캐시내로 프리페치될 수 있다. 보류중인 라인 M 내의 분해되지 않은 분기가 라인 M+1이 주 메모리로부터 프리페치되기에 앞서 분해된다. 분기가 분해된 경우, 라인 M은 완료되고 (“불가피한 추론”)주 메모리로부터 프레페치된다. 이러한 방법으로, 잠재적으로 낭비적인 프리페치가 실행되지 않고 주 메모리 대역폭이 보전된다.

Description

데이터 프레페치 방법 및 프로세싱 시스템
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명에 따른 프로세싱 시스템의 하이 레벨 블럭도,
제2도는 본 발명에 따른 프레-페칭 동작의 흐름도.

Claims (21)

  1. 프로세서(a prosessor), 제1캐시(a first cache), 제2캐시(a second cache) 및 주 메모리(a main memory)를 포함하는 프로세싱 시스템(a processing system)에서, 상기 제1캐시내로 데이터를 프리페치하기 위한 방법은, 상기 제1캐시내에서 라인 M에 대한 캐시 액세스 이벤트(a cache access event)를 검출하는 단계와, 상기 캐시 액세스 이벤트에 응답하여 상기 라인 M에 대한 상기 제2캐시를 탐색하는 단계와; 상기 라인 M이 상기 제2캐시내에서 발견되면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M을 전달하는 단계와; 상기 라인 M이 상기 제2캐시내에서 발견되면, 상기 주 메모리로부터 상기 라인 M을 인출하기에 앞서 라인M-1 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 포함하는 데이터 프리페치 방법.
  2. 제1항에 있어서, 상기 캐시 액세스 이벤트는 캐시 적중실패(a cache miss)인 데이터 프리페치 방법.
  3. 제1항에 있어서, 상기 캐시 액세스 이벤트는 캐시 적중(a cache hit)인 데이터 프리페치 방법.
  4. 제1항에 있어서, 라인 M+1에 대해 상기 제1캐시를 탐색하는 단계와, 상기 라인 M+1이 상기 제1캐시내에서 발견되지 않으면, 상기 라인 M+1에 대해 상기 제2캐시를 탐색하는 단계를 더 포함하는 데이터 프리페치 방법.
  5. 제4항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M+1을 전송하는 단계를 더 포함하는 데이터 프리페치 방법.
  6. 제4항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되지 않으면, 상기 주 메모리로부터 라인 M+1을 인출하기에 앞서 상기 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 더 포함하는 데이터 프리페치 방법.
  7. 제4항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되면, 상기 라인 M+1이 상기 라인 M으로부터 메모리 개개의 논리적인 블럭내에 존재하는지를 판단하는 단계를 더 포함하는 데이터 프리페치 방법.
  8. 제7항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에서 존재하지 않으면, 상기 제2캐시로부터 상긴 제1캐시로 상기 라인 M+1을 전송하는 단계를 더 포함하는 데이터 프리페치 방법.
  9. 제7항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에 존재하면, 상기 제2캐시내로부터 상기 제1캐시로 상기 라인 M+1을 전송하기에 앞서 상기 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해 될 때까지 대기하는 단계를 더 포함하는 데이터 프리페치 방법.
  10. 프로세서(a processor), 제1캐시(a first cache), 제2캐시(a second cache) 및 주 메모리(a main memory)를 포함하는 프로세싱 시스템(a processing system)에서, 상기 제1캐시내로 데이터를 프리페치하기 위한 방법은, 상기 제1캐시내에서 라인 M에 대한 캐시 액세스 이벤트(a cache access event)를 검출하는 단계와; 상기 캐시 액세스 이벤트에 응답하여 상기 라인 M+1에 대한 상기 제2캐시를 탐색하는 단계와, 상기 라인 M+1이 상기 제2캐시내에서 발견되지 않으면,상기 주 메모리로부터 상기 라인 M+1을 인출하기에 앞서 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 포함하는 데이터 프리페치 방법.
  11. 제10항에 있어서, 상기 캐시 이벤트는 캐시 적중실패인 데이터 프리페치 방법.
  12. 제10항에 있어서, 상기 캐시 이벤트는 캐시 적중인 데이터 프리페치 방법.
  13. 제10항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되면, 상기 라인 M+1이 상기 라인 M으로부터 메모리 개개의 논리적인 블럭내에 존재하는지를 판단하는 단계를 더 포함하는 데이터 프리페치 방법.
  14. 제13항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에 존재하지 않으면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M+1을 전송하는 단계를 더 포함하는 데이터 프리페치 방법.
  15. 제13항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에 상주하면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M+1을 전송하기에 앞서 상기 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 더 포함하는 데이터 프리페치 방법.
  16. 프로세서와, 제1캐시와, 제2캐시와, 주 메모리와, 상기 제1캐시내에서 제1데이터에 대한 캐시 액세스 이벤트를 검출하는 수단과, 상기 캐시 액세스 이벤트에 응답하여, 상기 제1데이터에 대해 순차적인 제2데이터가 상기 제2캐시내에 존재하는지를 판단하기 위한 수단과, 상기 제2데이터가 상기 제2캐시내에 존재하지 않는다는 판단에 응답하여, 상기 주 메모리로부터 상기 제2데이터를 인출하기에 앞서 상기 제1데이터내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하기 위한 수단을 포함하는 프로세싱 시스템.
  17. 제16항에 있어서, 상기 캐시 액세스 이벤트는 캐시 적중실패인 프로세싱 시스템.
  18. 제16항에 있어서, 상기 캐시 액세스 이벤트는 개시 적중인 프로세싱 시스템.
  19. 제16항에 있어서, 상기 제2데이터가 상기 제2캐시내에 존재한다는 판단에 응답하여, 상기 제2데이터가 상기 제1데이터로부터 메모리 개개의 논리적인 블럭내에 존재하는지를 판단하기 위한 수단을 더 포함하는 프로세싱 시스템.
  20. 제19항에 있어서, 상기 제2데이터가 상기 개개의 논리적인 블럭내에 존재하지 않는다는 판단에 응답하여, 상기 제2캐시로부터 상기 제1캐시로 상기 제2데이터를 전송하기 위한 수단을 더 포함하는 프로세싱 시스템.
  21. 제19항에 있어서, 상기 제2데이터가 상기 개개의 논리적인 블럭내에 존재한다는 판단에 응답하여, 상기 제2캐시로부터 상기 제1캐시로 상기 제2데이터를 전송하기에 앞서 상기 제1데이터내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하기 위한 수단을 더 포함하는 프로세싱 시스템.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019960033714A 1995-09-18 1996-08-14 데이터 프리페치 방법 및 프로세싱 시스템 KR100240914B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/531,948 1995-09-18
US08/531,948 US5721864A (en) 1995-09-18 1995-09-18 Prefetching instructions between caches
US08/531,948 1995-09-18

Publications (2)

Publication Number Publication Date
KR970016969A true KR970016969A (ko) 1997-04-28
KR100240914B1 KR100240914B1 (ko) 2000-01-15

Family

ID=24119741

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960033714A KR100240914B1 (ko) 1995-09-18 1996-08-14 데이터 프리페치 방법 및 프로세싱 시스템

Country Status (4)

Country Link
US (1) US5721864A (ko)
EP (1) EP0763793A2 (ko)
JP (2) JP3549079B2 (ko)
KR (1) KR100240914B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100944139B1 (ko) * 2005-02-03 2010-02-24 퀄컴 인코포레이티드 명령 프리페치 메카니즘

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887151A (en) * 1997-07-10 1999-03-23 Emc Corporation Method and apparatus for performing a modified prefetch which sends a list identifying a plurality of data blocks
US6199154B1 (en) 1997-11-17 2001-03-06 Advanced Micro Devices, Inc. Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
JP3071752B2 (ja) 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6233645B1 (en) 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high
US6349368B1 (en) * 1999-06-24 2002-02-19 International Business Machines Corporation High performance mechanism to support O state horizontal cache-to-cache transfers
US6356982B1 (en) * 1999-06-24 2002-03-12 International Business Machines Corporation Dynamic mechanism to upgrade o state memory-consistent cache lines
US6405290B1 (en) * 1999-06-24 2002-06-11 International Business Machines Corporation Multiprocessor system bus protocol for O state memory-consistent data
US6230242B1 (en) * 1999-08-05 2001-05-08 International Business Machines Corporation Store instruction having vertical memory hierarchy control bits
US6249911B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Optimizing compiler for generating store instructions having memory hierarchy control bits
US6249843B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Store instruction having horizontal memory hierarchy control bits
US6253286B1 (en) * 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
US6314431B1 (en) * 1999-09-02 2001-11-06 Hewlett-Packard Company Method, system, and apparatus to improve instruction pre-fetching on computer systems
US6557095B1 (en) * 1999-12-27 2003-04-29 Intel Corporation Scheduling operations using a dependency matrix
US6643766B1 (en) * 2000-05-04 2003-11-04 Hewlett-Packard Development Company, L.P. Speculative pre-fetching additional line on cache miss if no request pending in out-of-order processor
US7162589B2 (en) * 2002-12-16 2007-01-09 Newisys, Inc. Methods and apparatus for canceling a memory data fetch
US20050097304A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation Pipeline recirculation for data misprediction in a fast-load data cache
US7383418B2 (en) * 2004-09-01 2008-06-03 Intel Corporation Method and apparatus for prefetching data to a lower level cache memory
US20080162819A1 (en) * 2006-02-03 2008-07-03 Luick David A Design structure for self prefetching l2 cache mechanism for data lines
US20070186050A1 (en) * 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for data lines
US8756404B2 (en) * 2006-12-11 2014-06-17 International Business Machines Corporation Cascaded delayed float/vector execution pipeline
US9058269B2 (en) 2012-06-25 2015-06-16 Advanced Micro Devices, Inc. Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit
US9122612B2 (en) * 2012-06-25 2015-09-01 Advanced Micro Devices, Inc. Eliminating fetch cancel for inclusive caches
US10296463B2 (en) * 2016-01-07 2019-05-21 Samsung Electronics Co., Ltd. Instruction prefetcher dynamically controlled by readily available prefetcher accuracy
US10599577B2 (en) 2016-05-09 2020-03-24 Cavium, Llc Admission control for memory access requests
US11379372B1 (en) 2019-07-19 2022-07-05 Marvell Asia Pte, Ltd. Managing prefetch lookahead distance based on memory access latency

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0348628A3 (en) * 1988-06-28 1991-01-02 International Business Machines Corporation Cache storage system
US5590293A (en) * 1988-07-20 1996-12-31 Digital Equipment Corporation Dynamic microbranching with programmable hold on condition, to programmable dynamic microbranching delay minimization
US5155832A (en) * 1989-07-05 1992-10-13 Hewlett-Packard Company Method to increase performance in a multi-level cache system by the use of forced cache misses
US5214765A (en) * 1989-08-31 1993-05-25 Sun Microsystems, Inc. Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches
JP2509344B2 (ja) * 1989-09-19 1996-06-19 富士通株式会社 デ―タ処理装置
US5307477A (en) * 1989-12-01 1994-04-26 Mips Computer Systems, Inc. Two-level cache memory system
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
US5386547A (en) * 1992-01-21 1995-01-31 Digital Equipment Corporation System and method for exclusive two-level caching
IE940855A1 (en) * 1993-12-20 1995-06-28 Motorola Inc Data processor with speculative instruction fetching and¹method of operation
US5551001A (en) * 1994-06-29 1996-08-27 Exponential Technology, Inc. Master-slave cache system for instruction and data cache memories

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100944139B1 (ko) * 2005-02-03 2010-02-24 퀄컴 인코포레이티드 명령 프리페치 메카니즘

Also Published As

Publication number Publication date
US5721864A (en) 1998-02-24
JP3549079B2 (ja) 2004-08-04
EP0763793A2 (en) 1997-03-19
JPH0981456A (ja) 1997-03-28
JP3640355B2 (ja) 2005-04-20
KR100240914B1 (ko) 2000-01-15
JP2003186741A (ja) 2003-07-04

Similar Documents

Publication Publication Date Title
KR970016969A (ko) 데이터 프리페치 방법 및 프로세싱 시스템
US5961631A (en) Data processing apparatus and method for pre-fetching an instruction in to an instruction cache
US5761468A (en) Hardware mechanism for optimizing instruction and data prefetching by forming augmented prefetch instructions
US5473764A (en) Multilevel instruction cache
KR970012167A (ko) 데이터 프리페치 방법, 캐시 라인 프리페치 방법 및 시스템
US5838945A (en) Tunable software control of harvard architecture cache memories using prefetch instructions
KR930002945A (ko) 프리페치버퍼 및 프리페치버퍼를 적용한 정보처리장치
EP1029280B1 (en) Cache memory operation
EP0118828A2 (en) Instruction fetch apparatus and method of operating same
JPH09128294A (ja) 先取り命令を生成する方法とシステム
JPH06187241A (ja) 変換索引バッファのコヒーレンス維持方法及びシステム
KR19980034443A (ko) 슈퍼 스칼라 마이크로 프로세서의 효율적인 비티비(btb) 방법
US7797520B2 (en) Early branch instruction prediction
SE9101325L (sv) Foerfarande foer att oeka databehandlingshastigheten i datasystem
KR970071282A (ko) 메모리 제어기 및 데이타 처리 시스템
US4796175A (en) Instruction fetching in data processing apparatus
EP0655679B1 (en) Method and apparatus for controlling instruction in pipeline processor
EP0772123A2 (en) Data processing system with instruction prefetch
US5794027A (en) Method and apparatus for managing the execution of instructons with proximate successive branches in a cache-based data processing system
EP0374370A3 (en) Method for storing into non-exclusive cache lines in multiprocessor systems
US5226138A (en) Method for selectively transferring data instructions to a cache memory
US5860150A (en) Instruction pre-fetching of a cache line within a processor
US6349384B1 (en) System, apparatus and method for processing instructions
JP2508021B2 (ja) デ−タ処理装置
JPH08272610A (ja) 情報処理装置における命令プリフェッチ装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060904

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee