WO2003019384A1 - Method and apparatus for the utilization of distributed caches - Google Patents
Method and apparatus for the utilization of distributed caches Download PDFInfo
- Publication number
- WO2003019384A1 WO2003019384A1 PCT/US2002/024484 US0224484W WO03019384A1 WO 2003019384 A1 WO2003019384 A1 WO 2003019384A1 US 0224484 W US0224484 W US 0224484W WO 03019384 A1 WO03019384 A1 WO 03019384A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cache
- coherency
- caches
- sub
- transaction 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.)
- Ceased
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
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
Definitions
- the present invention pertains to a method and apparatus for utilizing distributed caches (e.g., in Very Large-Scale Integration (VLSI) devices). More particularly, the present invention pertains to a scalable method of improving the bandwidth and latency performance of caches through the implementation of distributed caches.
- VLSI Very Large-Scale Integration
- system cache in a computer system serves to enhance the system performance of modern computers. For example, a cache can maintain data between a processor and relatively slower system memory by holding recently accessed memory locations in case they are needed again. The presence of cache allows the processor to continuously perform operations utilizing the data in the faster-accessing cache.
- system cache is designed as a "monolithic" unit. In order to give a processor core simultaneous read and write access from multiple pipelines, multiple ports can be added to the monolithic cache device. However, there are several detrimental architectural and implementation impacts of using a monolithic cache device with several ports (for example, in a two-port monolithic cache).
- cache coherency is implemented to ensure that each processor retrieves only the most up-to-date version of data from the cache.
- cache coherency is the synchronization of data in a plurality of caches such that reading a memory location via any cache will return the most recent data written to that location via any other cache.
- MESI Modified-Exclusive-Shared-Invalid
- coherency protocol data can be added to cached data in order to arbitrate and synchronize multiple copies of the same data within various caches.
- processors are commonly referred to as "cacheable" devices.
- I/O components such as those coupled to a Peripheral Component Interconnect bus (PCI specification, version 2.1), are generally non-cacheable devices. That is, they typically do not implement the same cache coherency protocol that is used by the processors.
- I/O components retrieve data from memory, or a cacheable device, via a Direct Memory Access (DMA) operation.
- DMA Direct Memory Access
- An I/O device may be provided as a connection point between various I/O bridge components, to which I/O components are attached, and ultimately, to the processor.
- An input/output (I/O) device may also be utilized as a caching I/O device. That is, the I/O device includes a single, monolithic caching resource for data. Therefore, because an I/O device is typically coupled to several client ports, a monolithic I/O cache device will suffer the same detrimental architectural and performance impacts as previously discussed. Current I/O cache device designs are not efficient implementations for high performance systems.
- Fig. 1 is a block diagram of a portion of a processor cache system employing an embodiment of the present invention.
- Fig. 2 is a block diagram showing input/output cache device employing an embodiment of embodiment of the present invention.
- Fig. 3 is a flow diagram showing an inbound coherent read transaction employing an embodiment of the present invention.
- Fig. 4 is a flow diagram showing an inbound coherent write transaction employing an embodiment of the present invention.
- CPU 125 is a processor that requests data from cache-coherent CPU device 100.
- the cache-coherent CPU device 100 implements coherency by arbitrating and synchronizing the data within the distributed caches 110, 1 15, and 120.
- CPU port components 130, 135 and 140 may include, for example, system RAM. However, any suitable component for the CPU ports may be utilized as port components 130, 135 and 140.
- cache-coherent CPU device 100 is part of a chipset that provides a PCI bus to interface with I/O components (described below) and interfaces with system memory and the CPU.
- the cache-coherent CPU device 100 includes a coherency engine 105 and one or more read and write caches 1 10, 115 and 120.
- coherency engine 105 contains a directory, indexing all the data within distributed caches 110, 115 and 120.
- the coherency engine 105 may utilize, for example, the Modified-Exclusive-Shared-Invalid (MESI) coherency protocol, labeling the data with line state MESI tags: 'M'-state (Modified), 'E'-state (Exclusive), 'S'-state (Shared), or - state (Invalid).
- MMI Modified-Exclusive-Shared-Invalid
- Each new request from the cache of any of the CPU component ports 130, 135 or 140 is checked against the directory of coherency engine 105. If the request does not interfere with any data found within any of the other caches, the transaction is processed. Utilizing the MESI tags enables coherency engine 105 to quickly arbitrate between caches reading from and writing to the same data, meanwhile, keeping all data synchronized and tracked between all caches. Rather than employing a single monolithic cache, cache-coherent CPU device 100 physically partitions the caching resources into smaller, more implementable portions. Caches 110, 115 and 120 are distributed across all ports on the device, such that each cache is associated with a port component. According to an embodiment of the present invention, cache 110 is physically located on the device nearby port component 130 being serviced.
- cache 1 15 is located proximately to port component 135 and cache 120 is located proximately to port component 140, thereby reducing the latency of transaction data requests.
- This approach minimizes the latency for "cache hits" and performance is increased.
- a cache hit is a request to read from memory that may be satisfied from the cache without using main (or another) memory. This arrangement is particularly useful for data that is prefetched by port components 130, 135 and 140.
- the distributed cache architecture improves aggregate bandwidth with each port component 130, 135 and 140 capable of utilizing the full transaction bandwidth for each read/write cache 110, 1 15 and 120. Distributing caches according to this embodiment of the present invention, also provides improvements in scalability design.
- a monolithic cache Using a monolithic cache, an increase in the number of ports would make the CPU device geometrically more complex in design (e.g., a four-port CPU device would be sixteen times more complex using a monolithic cache compared to a one-port CPU device).
- the addition of another port is easier to design into the CPU device by adding an additional cache for the additional port and the appropriate connections to the coherency engine. Therefore, distributed caches are inherently more scalable.
- FIG. 2 a block diagram of an input/output cache device employing an embodiment of the present invention is shown.
- cache-coherent I/O device 200 is connected to a coherent host, here, a front-side bus 225.
- the cache-coherent I/O device 200 implements coherency by arbitrating and synchronizing the data within the distributed caches 210, 215 and 220.
- a further implementation to improve current systems involves the leveraging of existing transaction buffers to form caches 210, 215 and 220.
- Buffers are typically present in the internal protocol engines used for external systems and I/O interfaces. These buffers are used to segment and reassemble external transaction requests into sizes that are more suitable to the internal protocol logic.
- I/O components 230, 235 and 240 may include, for example, a disk drive. However, any suitable component or device for the I/O ports may be utilized as I/O components 230, 235 and 240.
- the cache-coherent I/O device 200 includes a coherency engine 205 and one or more read and write caches 210, 215 and 220.
- coherency engine 205 includes a directory, indexing all the data within distributed caches 210, 215 and 220.
- the coherency engine 205 may utilize, for example, the MESI coherency protocol, labeling the data with line state MESI tags: M-state, E-state, S-state, or I-state.
- MESI coherency protocol labeling the data with line state MESI tags: M-state, E-state, S-state, or I-state.
- the transaction is processed.
- Utilizing the MESI tags enables coherency engine 205 to quickly arbitrate between caches reading from and writing to the same data, meanwhile, keeping all data synchronized and tracked between all caches.
- cache-coherent CPU device 200 physically partitions the caching resources into smaller, more implementable portions.
- Caches 210, 215 and 220 are distributed across all ports on the device, such that each cache is associated with an I/O component.
- cache 210 is physically located on the device nearby I/O component 230 being serviced.
- cache 215 is located proximately to I/O component 235 and cache 220 is located proximately to I/O component 240, thereby reducing the latency of transaction data requests.
- This approach minimizes the latency for "cache hits" and performance is increased.
- This arrangement is particularly useful for data that is prefetched by I/O components 230, 235 and 240.
- the distributed cache architecture improves aggregate bandwidth with each port component 230, 235 and 240 capable of utilizing the full transaction bandwidth for each read/write cache 210, 215 and 220.
- Cache-coherent I/O device 200 may aggressively prefetch data. If cache-coherent device 200 speculatively requests ownership of data subsequently requested or modified by the processor system, caches 210, 215 and 220 may be "snooped" (i.e. monitored) by the processor, which, in turn, will return the data with the correct coherency state preserved. As a result, cache-coherent device 200 can selectively purge contended coherent data, rather than deleting all prefetched data in a non-coherent system where data is modified in one of the prefetch buffers. Therefore, the cache hit rate is increased, thereby increasing performance.
- Cache-coherent I/O device 200 also enables pipelining coherent ownership requests for a series of inbound write transactions destined for coherent memory. This is possible because cache-coherent I/O device 200 provides an internal cache which is maintained coherent with respect to system memory. The write transactions can be issued without blocking the ownership requests as they return. Existing I/O devices must block each inbound write transaction, waiting for the system memory controller to complete the transaction before subsequent write transactions may be issued. Pipelining I/O writes significantly improves the aggregate bandwidth of inbound write transactions to coherent memory space.
- the distributed caches serve to enhance overall cache system performance.
- the distributed caches system enhances the architecture and implementation of a cache system with multiple ports. Specifically within I/O cache systems, distributed caches conserve the internal buffer resources in I/O devices, thereby improving device size, while improving the latency and bandwidth of I/O devices to memory.
- FIG. 3 a flow diagram of an inbound coherent read transaction employing an embodiment of the present invention is shown.
- An inbound coherent read transaction originates from port component 130, 135 or 140 (or similarly from I/O component 230, 235 or 240). Accordingly, in block 300, a read transaction is issued. Control is passed to decision block 305, where the address for the read transaction is checked within the distributed caches 110, 1 15 or 120 (or similarly from caches 210, 215 or 220). If the check results in a cache hit, then the data is retrieved from the cache in block 310. Control then passes to block 315 where speculatively prefetched data in the cache can be utilized to increase the effective read bandwidth and reduce the read transaction latency.
- the speculative prefetch mechanism in block 315 can be utilized to increase the cache hit rate by speculatively reading one or more cache lines ahead of the current read request and by maintaining the speculatively read data coherent in the distributed cache.
- FIG. 4 a flow diagram of one or more inbound coherent write transactions employing an embodiment of the present invention is shown.
- An inbound coherent write transaction originates from port component 130, 135 or 140 (or similarly from I/O component 230, 235 or 240). Accordingly, in block 400, a write transaction is issued. Control is passed to block 405, where the address for the write transaction is checked within the distributed caches 1 10, 115 or 120 (or similarly from caches 210, 215 or 220). In decision block 410, a determination is made whether the check results in a "cache hit" or "cache miss.” If the cache-coherent device does not have exclusive ⁇ ' or modified 'M' ownership of the cache line, the check results in a cache miss.
- Control then passes to block 415, where the cache directory of the coherency engine will forward a "request for ownership" to an external coherency device (e.g. memory) requesting exclusive 'E' ownership of the target cache line.
- an external coherency device e.g. memory
- the cache directory marks the line as 'M'.
- the cache directory may either forward the write transaction data to the front-side bus to write data in coherent memory space in block 425, or maintain the data locally in the distributed caches in modified 'M'-state in block 430.
- the cache-coherent device If the cache directory always forwards the write data to the front-side bus upon receiving exclusive 'E' ownership of the line, then the cache-coherent device operates as a "write-through" cache, in block 425. If the cache directory maintains the data locally in the distributed caches in modified 'M'- state, then the cache-coherent device operates as a "write-back" cache, in block 430. In each instance, either forwarding the write transaction data to the front-side bus to write data in coherent memory space in block 425, or maintaining the data locally in the distributed caches in modified 'M'-state in block 430, control then passes to block 435, where the pipelining capability within distributed caches is utilized.
- the pipelining capability of global system coherency can be utilized to streamline a series of inbound write transactions, thereby improving the aggregate bandwidth of inbound writes to memory. Since global system coherency will be maintained if the write transaction data is promoted to modified 'M'-state in the same order it was received from port component 130, 135 or 140 (or similarly from I/O component 230, 235 or 240), the processing of a stream of multiple write requests may be pipelined. In this mode, the cache directory will forward a request for ownership to an external coherency device requesting exclusive 'E' ownership of the target cache line as each write request is received from port component 130, 135 or 140 (or similarly from I/O component 230, 235 or 240).
- the cache directory marks the line as modified 'M' as soon as all the preceding writes have also been marked as modified 'M'.
- a series of inbound writes from port component 130, 135 or 140 (or similarly from I/O component 230, 235 or 240) will result in a corresponding series of ownership requests, with the stream of writes being promoted to modified 'M'-state in the proper order for global system coherency. If a determination is made that the check results in a "cache hit" in decision block
- control then passes to decision block 440. If the cache-coherent device already has exclusive 'E' or modified 'M' ownership of the cache line in one of the other distributed caches, the check results in a cache hit. At this point, in decision block 440, the cache directory will manage the coherency conflict either as a write-through cache, passing control to block 445, or, as a write-back cache, passing control to block 455. If the cache directory always blocks the new write transaction until the senior write data can be forwarded to the front-side bus upon receiving a subsequent write to the same line, then the cache-coherent device operates as a write-through cache.
- the cache-coherent device operates as a write-back cache.
- the new write transaction is blocked until the older ("senior") write transaction data can be forwarded to the front-side bus to write data in coherent memory space in block 450.
- the senior write transactions After the senior write transactions have been forwarded, other write transactions can then be forwarded to the front-side bus to write data in coherent memory space in block 425.
- Control then passes to block 435, where the pipelining capability of distributed caches is utilized.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP02796369A EP1421499A1 (en) | 2001-08-27 | 2002-08-02 | Method and apparatus for the utilization of distributed caches |
| KR1020047003018A KR100613817B1 (en) | 2001-08-27 | 2002-08-02 | Method and apparatus for using distributed caches |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US09/940,324 US20030041215A1 (en) | 2001-08-27 | 2001-08-27 | Method and apparatus for the utilization of distributed caches |
| US09/940,324 | 2001-08-27 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2003019384A1 true WO2003019384A1 (en) | 2003-03-06 |
Family
ID=25474633
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2002/024484 Ceased WO2003019384A1 (en) | 2001-08-27 | 2002-08-02 | Method and apparatus for the utilization of distributed caches |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20030041215A1 (en) |
| EP (1) | EP1421499A1 (en) |
| KR (1) | KR100613817B1 (en) |
| CN (1) | CN100380346C (en) |
| WO (1) | WO2003019384A1 (en) |
Families Citing this family (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6321238B1 (en) * | 1998-12-28 | 2001-11-20 | Oracle Corporation | Hybrid shared nothing/shared disk database system |
| US6681292B2 (en) * | 2001-08-27 | 2004-01-20 | Intel Corporation | Distributed read and write caching implementation for optimized input/output applications |
| US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
| JP2004213470A (en) * | 2003-01-07 | 2004-07-29 | Nec Corp | Disk array device, and data writing method for disk array device |
| US7139772B2 (en) | 2003-08-01 | 2006-11-21 | Oracle International Corporation | Ownership reassignment in a shared-nothing database system |
| US7277897B2 (en) * | 2003-08-01 | 2007-10-02 | Oracle International Corporation | Dynamic reassignment of data ownership |
| US7120651B2 (en) * | 2003-08-01 | 2006-10-10 | Oracle International Corporation | Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping |
| US8234517B2 (en) * | 2003-08-01 | 2012-07-31 | Oracle International Corporation | Parallel recovery by non-failed nodes |
| US20050057079A1 (en) * | 2003-09-17 | 2005-03-17 | Tom Lee | Multi-functional chair |
| US7814065B2 (en) * | 2005-08-16 | 2010-10-12 | Oracle International Corporation | Affinity-based recovery/failover in a cluster environment |
| US20070150663A1 (en) * | 2005-12-27 | 2007-06-28 | Abraham Mendelson | Device, system and method of multi-state cache coherence scheme |
| US8176256B2 (en) * | 2008-06-12 | 2012-05-08 | Microsoft Corporation | Cache regions |
| US8943271B2 (en) * | 2008-06-12 | 2015-01-27 | Microsoft Corporation | Distributed cache arrangement |
| WO2010041345A1 (en) * | 2008-10-08 | 2010-04-15 | Hitachi, Ltd. | Storage system and data management method |
| US8510334B2 (en) * | 2009-11-05 | 2013-08-13 | Oracle International Corporation | Lock manager on disk |
| CN102819420B (en) * | 2012-07-31 | 2015-05-27 | 中国人民解放军国防科学技术大学 | Command cancel-based cache production line lock-step concurrent execution method |
| US9652387B2 (en) | 2014-01-03 | 2017-05-16 | Red Hat, Inc. | Cache system with multiple cache unit states |
| US9658963B2 (en) * | 2014-12-23 | 2017-05-23 | Intel Corporation | Speculative reads in buffered memory |
| CN105978744B (en) * | 2016-07-26 | 2018-10-26 | 浪潮电子信息产业股份有限公司 | A kind of resource allocation methods, apparatus and system |
| WO2022109770A1 (en) * | 2020-11-24 | 2022-06-02 | Intel Corporation | Multi-port memory link expander to share data among hosts |
| WO2022246769A1 (en) * | 2021-05-27 | 2022-12-01 | 华为技术有限公司 | Data access method and apparatus |
| US12517829B1 (en) * | 2024-09-30 | 2026-01-06 | Arteris, Inc. | Processing writes to multiple targets in a directory-based cache coherent electronic system |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0762287A1 (en) * | 1995-08-30 | 1997-03-12 | Ramtron International Corporation | Multibus cached memory system |
Family Cites Families (27)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5029070A (en) * | 1988-08-25 | 1991-07-02 | Edge Computer Corporation | Coherent cache structures and methods |
| US5193166A (en) * | 1989-04-21 | 1993-03-09 | Bell-Northern Research Ltd. | Cache-memory architecture comprising a single address tag for each cache memory |
| US5263142A (en) * | 1990-04-12 | 1993-11-16 | Sun Microsystems, Inc. | Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices |
| US5557769A (en) * | 1994-06-17 | 1996-09-17 | Advanced Micro Devices | Mechanism and protocol for maintaining cache coherency within an integrated processor |
| US5613153A (en) * | 1994-10-03 | 1997-03-18 | International Business Machines Corporation | Coherency and synchronization mechanisms for I/O channel controllers in a data processing system |
| US5813034A (en) * | 1996-01-25 | 1998-09-22 | Unisys Corporation | Method and circuitry for modifying data words in a multi-level distributed data processing system |
| JP3139392B2 (en) * | 1996-10-11 | 2001-02-26 | 日本電気株式会社 | Parallel processing system |
| US6073218A (en) * | 1996-12-23 | 2000-06-06 | Lsi Logic Corp. | Methods and apparatus for coordinating shared multiple raid controller access to common storage devices |
| US6055610A (en) * | 1997-08-25 | 2000-04-25 | Hewlett-Packard Company | Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations |
| US6587931B1 (en) * | 1997-12-31 | 2003-07-01 | Unisys Corporation | Directory-based cache coherency system supporting multiple instruction processor and input/output caches |
| US6330591B1 (en) * | 1998-03-09 | 2001-12-11 | Lsi Logic Corporation | High speed serial line transceivers integrated into a cache controller to support coherent memory transactions in a loosely coupled network |
| US6141344A (en) * | 1998-03-19 | 2000-10-31 | 3Com Corporation | Coherence mechanism for distributed address cache in a network switch |
| US6560681B1 (en) * | 1998-05-08 | 2003-05-06 | Fujitsu Limited | Split sparse directory for a distributed shared memory multiprocessor system |
| US6067611A (en) * | 1998-06-30 | 2000-05-23 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system that buffers potential third node transactions to decrease communication latency |
| US6438652B1 (en) * | 1998-10-09 | 2002-08-20 | International Business Machines Corporation | Load balancing cooperating cache servers by shifting forwarded request |
| US6526481B1 (en) * | 1998-12-17 | 2003-02-25 | Massachusetts Institute Of Technology | Adaptive cache coherence protocols |
| US6859861B1 (en) * | 1999-01-14 | 2005-02-22 | The United States Of America As Represented By The Secretary Of The Army | Space division within computer branch memories |
| JP3959914B2 (en) * | 1999-12-24 | 2007-08-15 | 株式会社日立製作所 | Main memory shared parallel computer and node controller used therefor |
| US6704842B1 (en) * | 2000-04-12 | 2004-03-09 | Hewlett-Packard Development Company, L.P. | Multi-processor system with proactive speculative data transfer |
| US6629213B1 (en) * | 2000-05-01 | 2003-09-30 | Hewlett-Packard Development Company, L.P. | Apparatus and method using sub-cacheline transactions to improve system performance |
| US6751710B2 (en) * | 2000-06-10 | 2004-06-15 | Hewlett-Packard Development Company, L.P. | Scalable multiprocessor system and cache coherence method |
| US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
| US6751705B1 (en) * | 2000-08-25 | 2004-06-15 | Silicon Graphics, Inc. | Cache line converter |
| US6493801B2 (en) * | 2001-01-26 | 2002-12-10 | Compaq Computer Corporation | Adaptive dirty-block purging |
| US6587921B2 (en) * | 2001-05-07 | 2003-07-01 | International Business Machines Corporation | Method and apparatus for cache synchronization in a clustered environment |
| US6925515B2 (en) * | 2001-05-07 | 2005-08-02 | International Business Machines Corporation | Producer/consumer locking system for efficient replication of file data |
| US7546422B2 (en) * | 2002-08-28 | 2009-06-09 | Intel Corporation | Method and apparatus for the synchronization of distributed caches |
-
2001
- 2001-08-27 US US09/940,324 patent/US20030041215A1/en not_active Abandoned
-
2002
- 2002-08-02 CN CNB028168496A patent/CN100380346C/en not_active Expired - Fee Related
- 2002-08-02 WO PCT/US2002/024484 patent/WO2003019384A1/en not_active Ceased
- 2002-08-02 EP EP02796369A patent/EP1421499A1/en not_active Withdrawn
- 2002-08-02 KR KR1020047003018A patent/KR100613817B1/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0762287A1 (en) * | 1995-08-30 | 1997-03-12 | Ramtron International Corporation | Multibus cached memory system |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP1421499A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN1549973A (en) | 2004-11-24 |
| EP1421499A1 (en) | 2004-05-26 |
| CN100380346C (en) | 2008-04-09 |
| KR20040029110A (en) | 2004-04-03 |
| KR100613817B1 (en) | 2006-08-21 |
| US20030041215A1 (en) | 2003-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7546422B2 (en) | Method and apparatus for the synchronization of distributed caches | |
| KR100545951B1 (en) | Distributed read and write caching implementation for optimized input / output applications | |
| KR100613817B1 (en) | Method and apparatus for using distributed caches | |
| US7305524B2 (en) | Snoop filter directory mechanism in coherency shared memory system | |
| US6721848B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
| EP1311956B1 (en) | Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system | |
| US6223258B1 (en) | Method and apparatus for implementing non-temporal loads | |
| US7577794B2 (en) | Low latency coherency protocol for a multi-chip multiprocessor system | |
| US20020053004A1 (en) | Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links | |
| US5909697A (en) | Reducing cache misses by snarfing writebacks in non-inclusive memory systems | |
| US8015364B2 (en) | Method and apparatus for filtering snoop requests using a scoreboard | |
| US8332592B2 (en) | Graphics processor with snoop filter | |
| JPH0721085A (en) | Streaming cache and method for caching data transferred between memory and I / O device | |
| US6636947B1 (en) | Coherency for DMA read cached data | |
| US20060179173A1 (en) | Method and system for cache utilization by prefetching for multiple DMA reads | |
| JP2002116954A (en) | Cache system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG UZ VN YU ZA ZM ZW Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BY BZ CA CH CN CO CR CU CZ DE DM DZ EC EE ES FI GB GD GE GH HR HU ID IL IN IS JP KE KG KP KR LC LK LR LS LT LU LV MA MD MG MN MW MX MZ NO NZ OM PH PL PT RU SD SE SG SI SK SL TJ TM TN TR TZ UA UG UZ VN YU ZA ZM |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 2002796369 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 20028168496 Country of ref document: CN Ref document number: 1020047003018 Country of ref document: KR |
|
| WWP | Wipo information: published in national office |
Ref document number: 2002796369 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: JP |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: JP |