DE69028153T2 - Cache-Speicherfehlgriffsvorhersageverfahren und -vorrichtung - Google Patents
Cache-Speicherfehlgriffsvorhersageverfahren und -vorrichtungInfo
- Publication number
- DE69028153T2 DE69028153T2 DE69028153T DE69028153T DE69028153T2 DE 69028153 T2 DE69028153 T2 DE 69028153T2 DE 69028153 T DE69028153 T DE 69028153T DE 69028153 T DE69028153 T DE 69028153T DE 69028153 T2 DE69028153 T2 DE 69028153T2
- Authority
- DE
- Germany
- Prior art keywords
- address
- pattern
- cache
- stack
- cache request
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F9/3832—Value prediction for operands; operand history buffers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6026—Prefetching based on access pattern detection, e.g. stride based prefetch
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)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/364,943 US5093777A (en) | 1989-06-12 | 1989-06-12 | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69028153D1 DE69028153D1 (de) | 1996-09-26 |
| DE69028153T2 true DE69028153T2 (de) | 1997-04-03 |
Family
ID=23436798
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69028153T Expired - Fee Related DE69028153T2 (de) | 1989-06-12 | 1990-06-08 | Cache-Speicherfehlgriffsvorhersageverfahren und -vorrichtung |
Country Status (7)
| Country | Link |
|---|---|
| US (2) | US5093777A (enExample) |
| EP (1) | EP0402787B1 (enExample) |
| JP (1) | JPH0363852A (enExample) |
| KR (1) | KR950011291B1 (enExample) |
| AU (1) | AU638716B2 (enExample) |
| DE (1) | DE69028153T2 (enExample) |
| SG (1) | SG49211A1 (enExample) |
Families Citing this family (67)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5093777A (en) * | 1989-06-12 | 1992-03-03 | Bull Hn Information Systems Inc. | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
| US5210838A (en) * | 1990-05-15 | 1993-05-11 | Sun Microsystems, Inc. | Method and apparatus for predicting the effective addresses of future memory load operations in a microprocessor |
| GB2247546B (en) * | 1990-08-31 | 1995-03-01 | Sun Microsystems Inc | Method and apparatus for predictive caching |
| US5357618A (en) * | 1991-04-15 | 1994-10-18 | International Business Machines Corporation | Cache prefetch and bypass using stride registers |
| SE469402B (sv) * | 1991-05-02 | 1993-06-28 | Swedish Inst Of Computer Scien | Foerfarande foer att haemta data till ett cache-minne |
| US5367656A (en) * | 1992-03-13 | 1994-11-22 | Bull Hn Information Systems Inc. | Controlling cache predictive prefetching based on cache hit ratio trend |
| US5787475A (en) * | 1992-07-21 | 1998-07-28 | Digital Equipment Corporation | Controlled prefetching of data requested by a peripheral |
| US5450561A (en) * | 1992-07-29 | 1995-09-12 | Bull Hn Information Systems Inc. | Cache miss prediction method and apparatus for use with a paged main memory in a data processing system |
| US5715421A (en) * | 1992-10-16 | 1998-02-03 | Seiko Epson Corporation | Apparatus and method of addressing paged mode memory including adjacent page precharging |
| US5588128A (en) * | 1993-04-02 | 1996-12-24 | Vlsi Technology, Inc. | Dynamic direction look ahead read buffer |
| WO1995001600A1 (en) * | 1993-07-02 | 1995-01-12 | Oakleigh Systems, Inc. | Predictive disk cache system |
| US5452440A (en) * | 1993-07-16 | 1995-09-19 | Zitel Corporation | Method and structure for evaluating and enhancing the performance of cache memory systems |
| US5426764A (en) * | 1993-08-24 | 1995-06-20 | Ryan; Charles P. | Cache miss prediction apparatus with priority encoder for multiple prediction matches and method therefor |
| US5701426A (en) * | 1995-03-31 | 1997-12-23 | Bull Information Systems Inc. | Data processing system and method using cache miss address prediction and forced LRU status in a cache memory to improve cache hit ratio |
| US5790823A (en) * | 1995-07-13 | 1998-08-04 | International Business Machines Corporation | Operand prefetch table |
| US6038643A (en) * | 1996-01-24 | 2000-03-14 | Sun Microsystems, Inc. | Stack management unit and method for a processor having a stack |
| JP3634379B2 (ja) * | 1996-01-24 | 2005-03-30 | サン・マイクロシステムズ・インコーポレイテッド | スタックキャッシングのための方法及び装置 |
| US6055621A (en) * | 1996-02-12 | 2000-04-25 | International Business Machines Corporation | Touch history table |
| US5854911A (en) * | 1996-07-01 | 1998-12-29 | Sun Microsystems, Inc. | Data buffer prefetch apparatus and method |
| US6009499A (en) * | 1997-03-31 | 1999-12-28 | Sun Microsystems, Inc | Pipelined stack caching circuit |
| US6289418B1 (en) | 1997-03-31 | 2001-09-11 | Sun Microsystems, Inc. | Address pipelined stack caching method |
| US6167488A (en) * | 1997-03-31 | 2000-12-26 | Sun Microsystems, Inc. | Stack caching circuit with overflow/underflow unit |
| US6131144A (en) * | 1997-04-01 | 2000-10-10 | Sun Microsystems, Inc. | Stack caching method with overflow/underflow control using pointers |
| JP3175675B2 (ja) * | 1997-12-04 | 2001-06-11 | 日本電気株式会社 | プリフェッチ制御装置 |
| US6058457A (en) * | 1997-06-23 | 2000-05-02 | Sun Microsystems, Inc. | Method for storing method frames in multiple stacks |
| US6067602A (en) * | 1997-06-23 | 2000-05-23 | Sun Microsystems, Inc. | Multi-stack-caching memory architecture |
| US6092152A (en) * | 1997-06-23 | 2000-07-18 | Sun Microsystems, Inc. | Method for stack-caching method frames |
| US6138210A (en) * | 1997-06-23 | 2000-10-24 | Sun Microsystems, Inc. | Multi-stack memory architecture |
| US6197685B1 (en) * | 1997-07-11 | 2001-03-06 | Matsushita Electronics Corporation | Method of producing multilayer wiring device with offset axises of upper and lower plugs |
| US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
| US6134643A (en) * | 1997-11-26 | 2000-10-17 | Intel Corporation | Method and apparatus for cache line prediction and prefetching using a prefetch controller and buffer and access history |
| US6484239B1 (en) * | 1997-12-29 | 2002-11-19 | Intel Corporation | Prefetch queue |
| US6170050B1 (en) | 1998-04-22 | 2001-01-02 | Sun Microsystems, Inc. | Length decoder for variable length data |
| US6275903B1 (en) | 1998-04-22 | 2001-08-14 | Sun Microsystems, Inc. | Stack cache miss handling |
| US6237086B1 (en) | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
| US6108768A (en) * | 1998-04-22 | 2000-08-22 | Sun Microsystems, Inc. | Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system |
| US6230260B1 (en) | 1998-09-01 | 2001-05-08 | International Business Machines Corporation | Circuit arrangement and method of speculative instruction execution utilizing instruction history caching |
| US7035997B1 (en) | 1998-12-16 | 2006-04-25 | Mips Technologies, Inc. | Methods and apparatus for improving fetching and dispatch of instructions in multithreaded processors |
| US7529907B2 (en) | 1998-12-16 | 2009-05-05 | Mips Technologies, Inc. | Method and apparatus for improved computer load and store operations |
| US6389449B1 (en) * | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
| US7237093B1 (en) * | 1998-12-16 | 2007-06-26 | Mips Technologies, Inc. | Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams |
| US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
| US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
| US6393527B1 (en) * | 1998-12-18 | 2002-05-21 | Ati International Srl | Prefetch buffer with continue detect |
| US6490652B1 (en) * | 1999-02-03 | 2002-12-03 | Ati Technologies Inc. | Method and apparatus for decoupled retrieval of cache miss data |
| US6311260B1 (en) | 1999-02-25 | 2001-10-30 | Nec Research Institute, Inc. | Method for perfetching structured data |
| US6580431B1 (en) | 1999-03-04 | 2003-06-17 | Nexmem | System, method, and computer program product for intelligent memory to accelerate processes |
| US20020135611A1 (en) * | 1999-03-04 | 2002-09-26 | Trevor Deosaran | Remote performance management to accelerate distributed processes |
| JP3438650B2 (ja) * | 1999-05-26 | 2003-08-18 | 日本電気株式会社 | キャッシュメモリ |
| US6442673B1 (en) * | 1999-11-05 | 2002-08-27 | I.P. First L.L.C. | Update forwarding cache for address mode |
| US6629234B1 (en) | 2000-03-30 | 2003-09-30 | Ip. First, L.L.C. | Speculative generation at address generation stage of previous instruction result stored in forward cache for use by succeeding address dependent instruction |
| EP1311947B1 (en) | 2000-07-14 | 2011-01-19 | MIPS Technologies, Inc. | Instruction fetch and dispatch in multithreaded system |
| US6584549B2 (en) | 2000-12-29 | 2003-06-24 | Intel Corporation | System and method for prefetching data into a cache based on miss distance |
| US7035979B2 (en) * | 2002-05-22 | 2006-04-25 | International Business Machines Corporation | Method and apparatus for optimizing cache hit ratio in non L1 caches |
| US7100024B2 (en) | 2003-02-04 | 2006-08-29 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early status flags |
| US7185182B2 (en) | 2003-02-04 | 2007-02-27 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for generating early instruction results |
| US7107438B2 (en) | 2003-02-04 | 2006-09-12 | Via Technologies, Inc. | Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions |
| US8966230B2 (en) | 2009-09-30 | 2015-02-24 | Intel Corporation | Dynamic selection of execution stage |
| CN102163144A (zh) * | 2011-05-05 | 2011-08-24 | 浙江大学 | 嵌入式处理器的硬件数据预取方法 |
| US8954678B2 (en) * | 2012-06-15 | 2015-02-10 | International Business Machines Corporation | Automatic pattern-based operand prefetching |
| US9015422B2 (en) | 2013-07-16 | 2015-04-21 | Apple Inc. | Access map-pattern match based prefetch unit for a processor |
| US10360159B1 (en) * | 2013-12-12 | 2019-07-23 | Groupon, Inc. | System, method, apparatus, and computer program product for providing a cache mechanism |
| US9971694B1 (en) | 2015-06-24 | 2018-05-15 | Apple Inc. | Prefetch circuit for a processor with pointer optimization |
| KR102429903B1 (ko) * | 2015-12-03 | 2022-08-05 | 삼성전자주식회사 | 비휘발성 메인 메모리 시스템의 페이지 폴트 처리 방법 |
| US10180905B1 (en) | 2016-04-07 | 2019-01-15 | Apple Inc. | Unified prefetch circuit for multi-level caches |
| US9904624B1 (en) | 2016-04-07 | 2018-02-27 | Apple Inc. | Prefetch throttling in a multi-core system |
| US10331567B1 (en) | 2017-02-17 | 2019-06-25 | Apple Inc. | Prefetch circuit with global quality factor to reduce aggressiveness in low power modes |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1515376A (en) * | 1975-07-09 | 1978-06-21 | Int Computers Ltd | Data storage systems |
| US4371924A (en) * | 1979-11-09 | 1983-02-01 | Rockwell International Corp. | Computer system apparatus for prefetching data requested by a peripheral device from memory |
| US4317168A (en) * | 1979-11-23 | 1982-02-23 | International Business Machines Corporation | Cache organization enabling concurrent line castout and line fetch transfers with main storage |
| US4370710A (en) * | 1980-08-26 | 1983-01-25 | Control Data Corporation | Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses |
| US4583165A (en) * | 1982-06-30 | 1986-04-15 | International Business Machines Corporation | Apparatus and method for controlling storage access in a multilevel storage system |
| US4679141A (en) * | 1985-04-29 | 1987-07-07 | International Business Machines Corporation | Pageable branch history table |
| IT1202687B (it) * | 1987-03-25 | 1989-02-09 | Honeywell Inf Systems | Memoria tampone a predizione di hit |
| US4991090A (en) * | 1987-05-18 | 1991-02-05 | International Business Machines Corporation | Posting out-of-sequence fetches |
| US4980823A (en) * | 1987-06-22 | 1990-12-25 | International Business Machines Corporation | Sequential prefetching with deconfirmation |
| US4943908A (en) * | 1987-12-02 | 1990-07-24 | International Business Machines Corporation | Multiple branch analyzer for prefetching cache lines |
| US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
| US5093777A (en) * | 1989-06-12 | 1992-03-03 | Bull Hn Information Systems Inc. | Method and apparatus for predicting address of a subsequent cache request upon analyzing address patterns stored in separate miss stack |
| US5269013A (en) * | 1991-03-20 | 1993-12-07 | Digital Equipment Corporation | Adaptive memory management method for coupled memory multiprocessor systems |
| US5185861A (en) * | 1991-08-19 | 1993-02-09 | Sequent Computer Systems, Inc. | Cache affinity scheduler |
| US5305389A (en) * | 1991-08-30 | 1994-04-19 | Digital Equipment Corporation | Predictive cache system |
| US5367656A (en) * | 1992-03-13 | 1994-11-22 | Bull Hn Information Systems Inc. | Controlling cache predictive prefetching based on cache hit ratio trend |
-
1989
- 1989-06-12 US US07/364,943 patent/US5093777A/en not_active Expired - Lifetime
-
1990
- 1990-06-05 AU AU56819/90A patent/AU638716B2/en not_active Ceased
- 1990-06-08 DE DE69028153T patent/DE69028153T2/de not_active Expired - Fee Related
- 1990-06-08 EP EP90110881A patent/EP0402787B1/en not_active Expired - Lifetime
- 1990-06-08 SG SG1996007658A patent/SG49211A1/en unknown
- 1990-06-09 KR KR1019900008452A patent/KR950011291B1/ko not_active Expired - Fee Related
- 1990-06-12 JP JP2153812A patent/JPH0363852A/ja active Granted
-
1992
- 1992-02-26 US US07/841,687 patent/US5694572A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| AU5681990A (en) | 1990-12-13 |
| JPH0363852A (ja) | 1991-03-19 |
| JPH0529939B2 (enExample) | 1993-05-06 |
| EP0402787B1 (en) | 1996-08-21 |
| SG49211A1 (en) | 1998-05-18 |
| EP0402787A3 (en) | 1991-09-04 |
| US5093777A (en) | 1992-03-03 |
| DE69028153D1 (de) | 1996-09-26 |
| US5694572A (en) | 1997-12-02 |
| KR910001547A (ko) | 1991-01-31 |
| AU638716B2 (en) | 1993-07-08 |
| EP0402787A2 (en) | 1990-12-19 |
| KR950011291B1 (ko) | 1995-09-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69028153T2 (de) | Cache-Speicherfehlgriffsvorhersageverfahren und -vorrichtung | |
| DE68911398T2 (de) | Methode und digitaler computer zum vorausholen von vektordaten aus dem speicher in einem für skalaverarbeitung bestimmten speichersystem. | |
| DE69228380T2 (de) | Verfahren zur erhöhung der datenverarbeitungsgeschwindigkeit in einem rechnersystem | |
| DE69332458T2 (de) | Vektorprozessor | |
| DE19526007C2 (de) | Horizontal partitionierter Befehls-Cache-Speicher | |
| DE69534148T2 (de) | Rechnersystem zur Ausführung von Verzweigungsbefehlen | |
| DE4225228C2 (de) | Vorabrufpuffer und einen derartigen Vorabrufpuffer verwendendes Informationsverarbeitungssystem | |
| DE3210816C2 (enExample) | ||
| DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
| DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
| DE3151745C2 (enExample) | ||
| DE69429226T2 (de) | Absendung von Befehlen an mehrere Verarbeitungseinheiten | |
| DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
| DE3882772T2 (de) | Vektorprozessor angepasst zum Sortieren von Vektordaten. | |
| DE68924719T2 (de) | Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung. | |
| DE69130757T2 (de) | Ausführungsvorrichtung für bedingte Verzweigungsbefehle | |
| DE2131066B2 (de) | Anordnung zum adressieren eines tabellenspeichers | |
| DE68925397T2 (de) | Pipelineprozessor | |
| DE2630323A1 (de) | Datenspeichereinrichtung | |
| DE69324967T2 (de) | Cache-Speicherfehlgriffvorhersageverfahren und -vorrichtung für einen nach Seiten organisierten Hauptspeicher in einem Datenverarbeitungssystem | |
| DE2063197A1 (de) | Anordnung zur numerischen Steuerung von Werkzeugmaschinen | |
| DE69131917T2 (de) | Cache-Speicher mit rekonfigurierbarer Blocklänge und Verfahren dafür | |
| DE3688581T2 (de) | Sortierverfahren in einem hierarchisch geordneten Speichersystem. | |
| DE3854142T2 (de) | Vektorrechner. | |
| DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |