KR970016969A - 데이터 프리페치 방법 및 프로세싱 시스템 - Google Patents
데이터 프리페치 방법 및 프로세싱 시스템 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract 20
- 230000004044 response Effects 0.000 claims 6
- 238000000354 decomposition reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/3802—Instruction prefetching
-
- 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/383—Operand 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)
- 프로세서(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 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 포함하는 데이터 프리페치 방법.
- 제1항에 있어서, 상기 캐시 액세스 이벤트는 캐시 적중실패(a cache miss)인 데이터 프리페치 방법.
- 제1항에 있어서, 상기 캐시 액세스 이벤트는 캐시 적중(a cache hit)인 데이터 프리페치 방법.
- 제1항에 있어서, 라인 M+1에 대해 상기 제1캐시를 탐색하는 단계와, 상기 라인 M+1이 상기 제1캐시내에서 발견되지 않으면, 상기 라인 M+1에 대해 상기 제2캐시를 탐색하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제4항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M+1을 전송하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제4항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되지 않으면, 상기 주 메모리로부터 라인 M+1을 인출하기에 앞서 상기 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제4항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되면, 상기 라인 M+1이 상기 라인 M으로부터 메모리 개개의 논리적인 블럭내에 존재하는지를 판단하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제7항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에서 존재하지 않으면, 상기 제2캐시로부터 상긴 제1캐시로 상기 라인 M+1을 전송하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제7항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에 존재하면, 상기 제2캐시내로부터 상기 제1캐시로 상기 라인 M+1을 전송하기에 앞서 상기 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해 될 때까지 대기하는 단계를 더 포함하는 데이터 프리페치 방법.
- 프로세서(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 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 포함하는 데이터 프리페치 방법.
- 제10항에 있어서, 상기 캐시 이벤트는 캐시 적중실패인 데이터 프리페치 방법.
- 제10항에 있어서, 상기 캐시 이벤트는 캐시 적중인 데이터 프리페치 방법.
- 제10항에 있어서, 상기 라인 M+1이 상기 제2캐시내에서 발견되면, 상기 라인 M+1이 상기 라인 M으로부터 메모리 개개의 논리적인 블럭내에 존재하는지를 판단하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제13항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에 존재하지 않으면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M+1을 전송하는 단계를 더 포함하는 데이터 프리페치 방법.
- 제13항에 있어서, 상기 라인 M+1이 상기 개개의 논리적인 블럭내에 상주하면, 상기 제2캐시로부터 상기 제1캐시로 상기 라인 M+1을 전송하기에 앞서 상기 라인 M 내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하는 단계를 더 포함하는 데이터 프리페치 방법.
- 프로세서와, 제1캐시와, 제2캐시와, 주 메모리와, 상기 제1캐시내에서 제1데이터에 대한 캐시 액세스 이벤트를 검출하는 수단과, 상기 캐시 액세스 이벤트에 응답하여, 상기 제1데이터에 대해 순차적인 제2데이터가 상기 제2캐시내에 존재하는지를 판단하기 위한 수단과, 상기 제2데이터가 상기 제2캐시내에 존재하지 않는다는 판단에 응답하여, 상기 주 메모리로부터 상기 제2데이터를 인출하기에 앞서 상기 제1데이터내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하기 위한 수단을 포함하는 프로세싱 시스템.
- 제16항에 있어서, 상기 캐시 액세스 이벤트는 캐시 적중실패인 프로세싱 시스템.
- 제16항에 있어서, 상기 캐시 액세스 이벤트는 개시 적중인 프로세싱 시스템.
- 제16항에 있어서, 상기 제2데이터가 상기 제2캐시내에 존재한다는 판단에 응답하여, 상기 제2데이터가 상기 제1데이터로부터 메모리 개개의 논리적인 블럭내에 존재하는지를 판단하기 위한 수단을 더 포함하는 프로세싱 시스템.
- 제19항에 있어서, 상기 제2데이터가 상기 개개의 논리적인 블럭내에 존재하지 않는다는 판단에 응답하여, 상기 제2캐시로부터 상기 제1캐시로 상기 제2데이터를 전송하기 위한 수단을 더 포함하는 프로세싱 시스템.
- 제19항에 있어서, 상기 제2데이터가 상기 개개의 논리적인 블럭내에 존재한다는 판단에 응답하여, 상기 제2캐시로부터 상기 제1캐시로 상기 제2데이터를 전송하기에 앞서 상기 제1데이터내의 모든 분해되지 않은 분기 인스트럭션이 분해될 때까지 대기하기 위한 수단을 더 포함하는 프로세싱 시스템.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100944139B1 (ko) * | 2005-02-03 | 2010-02-24 | 퀄컴 인코포레이티드 | 명령 프리페치 메카니즘 |
Families Citing this family (27)
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)
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 |
-
1995
- 1995-09-18 US US08/531,948 patent/US5721864A/en not_active Expired - Fee Related
-
1996
- 1996-07-22 JP JP19208496A patent/JP3549079B2/ja not_active Expired - Fee Related
- 1996-08-14 KR KR1019960033714A patent/KR100240914B1/ko not_active IP Right Cessation
- 1996-08-20 EP EP96306072A patent/EP0763793A2/en not_active Withdrawn
-
2002
- 2002-11-29 JP JP2002346968A patent/JP3640355B2/ja not_active Expired - Fee Related
Cited By (1)
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 |