Read-copy update implementation for non-cache-coherent systems
First Claim
Patent Images
1. A system, comprising:
- two or more processors;
a memory coupled to said two or more processors;
incoherent caches associated with said two or more processors for caching copies of data stored in said memory without hardware-implemented cache coherency support;
said memory including a computer useable medium tangibly embodying at least one program of instructions executable by each of said two or more processors to perform read-copy update operations, said operations comprising;
recording cacheline information identifying cachelines containing data that has been rendered obsolete in an incoherent cache associated with one processor of said two or more processors due to a data update being performed by said one processor of said two or more processors;
said recording comprising said one processor of said two or more processors storing said cacheline information in a local cache record data structure associated with said one processor of said two or more processors;
communicating said recorded cacheline information to different processors of said two or more processors;
said communicating comprising either said different processors reading said local cache record data structure or said one processor of said two or more processor merging said cacheline information from said local cache record data structure into a global cache record data structure that stores cacheline information merged from two or more local cache record data structures associated with different processors, said cacheline information being merged either directly into said global cache record data structure or through a hierarchy comprising one or more levels of intermediate cache record data structures; and
using said communicated cacheline information to identify cachelines that contain said obsolete data in incoherent caches associated with said different processors and flush said obsolete data from said identified cachelines.
1 Assignment
0 Petitions
Accused Products
Abstract
A technique for implementing read-copy update in a shared-memory computing system having two or more processors operatively coupled to a shared memory and to associated incoherent caches that cache copies of data stored in the memory. According to example embodiments disclosed herein, cacheline information for data that has been rendered obsolete due to a data update being performed by one of the processors is recorded. The recorded cacheline information is communicated to one or more of the other processors. The one or more other processors use the communicated cacheline information to flush the obsolete data from all incoherent caches that may be caching such data.
65 Citations
12 Claims
-
1. A system, comprising:
-
two or more processors; a memory coupled to said two or more processors; incoherent caches associated with said two or more processors for caching copies of data stored in said memory without hardware-implemented cache coherency support; said memory including a computer useable medium tangibly embodying at least one program of instructions executable by each of said two or more processors to perform read-copy update operations, said operations comprising; recording cacheline information identifying cachelines containing data that has been rendered obsolete in an incoherent cache associated with one processor of said two or more processors due to a data update being performed by said one processor of said two or more processors; said recording comprising said one processor of said two or more processors storing said cacheline information in a local cache record data structure associated with said one processor of said two or more processors; communicating said recorded cacheline information to different processors of said two or more processors; said communicating comprising either said different processors reading said local cache record data structure or said one processor of said two or more processor merging said cacheline information from said local cache record data structure into a global cache record data structure that stores cacheline information merged from two or more local cache record data structures associated with different processors, said cacheline information being merged either directly into said global cache record data structure or through a hierarchy comprising one or more levels of intermediate cache record data structures; and using said communicated cacheline information to identify cachelines that contain said obsolete data in incoherent caches associated with said different processors and flush said obsolete data from said identified cachelines. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product, comprising:
-
one or more non-transitory machine-useable storage media; program instructions provided by said one or more non-transitory machine-useable storage media for programming a data processing system to perform read-copy update operations, said data processing system having two or more processors operatively coupled to a shared memory and to associated incoherent caches that cache copies of data stored in said memory without hardware-implemented cache coherency support, said read-copy update operations comprising; recording cacheline information for identifying cachelines containing data that has been rendered obsolete in an incoherent cache associated with one processor of said two or more processors due to a data update being performed by said one processor of said two or more processors; said recording comprising said one processor of said two or more processors storing said cacheline information in a local cache record data structure associated with said one processor of said two or more processors; communicating said recorded cacheline information to different processors of said two or more processors; said communicating comprising either said different processors reading said local cache record data structure or said one processor of said two or more processors merging said cacheline information from said local cache record data structure into a global cache record data structure that stores cacheline information merged from two or more local cache record data structures associated with different processors, said cacheline information being merged either directly into said global cache record data structure or through a hierarchy comprising one or more levels of intermediate cache record data structures; and using said communicated cacheline information to identify cachelines that contain said obsolete data in incoherent caches associated with said different processors and flush said obsolete data from said identified cachelines. - View Dependent Claims (8, 9, 10, 11, 12)
-
Specification