MULTI-CORE PROCESSOR SNOOP FILTERING
First Claim
1. A central processing unit comprising:
- a plurality of processor packages, each processor package including at least one processor core, each processor core having respective cache memory management hardware comprising;
a cache memory device configured to store cache lines for use by the processor core, wherein each cache line corresponds to a portion of a page of memory;
a page status table configured to store page status information, wherein the page status information indicates whether any portion of a page of memory corresponding to a cache line stored in the cache memory device is shared by another processor core from the same one of the plurality of processor packages and whether any portion of the page of memory corresponding to the cache line is shared by another processor core in a different one of the plurality of processor packages; and
a cache controller configured to determine, upon a cache miss, whether to broadcast a snoop request to any other processor cores based at least in part on the page status information stored in the page status table.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods, and devices for reducing snoop traffic in a central processing unit are provided. In accordance with one embodiment, an electronic device includes a central processing unit having a plurality of cores. A cache memory management system may be associated with each core that includes a cache memory device configured to store a plurality of cache lines, a page status table configured to track pages of memory stored in the cache memory device and to indicate a status of each of the tracked pages of memory, and a cache controller configured to determine, upon a cache miss, whether to broadcast a snoop request based at least in part on the status of one of the tracked pages in the page status table.
-
Citations
29 Claims
-
1. A central processing unit comprising:
a plurality of processor packages, each processor package including at least one processor core, each processor core having respective cache memory management hardware comprising; a cache memory device configured to store cache lines for use by the processor core, wherein each cache line corresponds to a portion of a page of memory; a page status table configured to store page status information, wherein the page status information indicates whether any portion of a page of memory corresponding to a cache line stored in the cache memory device is shared by another processor core from the same one of the plurality of processor packages and whether any portion of the page of memory corresponding to the cache line is shared by another processor core in a different one of the plurality of processor packages; and a cache controller configured to determine, upon a cache miss, whether to broadcast a snoop request to any other processor cores based at least in part on the page status information stored in the page status table. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. An electronic device comprising:
a central processing unit having a plurality of cores, wherein a cache memory management system is associated with each of the plurality of cores, the cache memory management system comprising; a cache memory device configured to store a plurality of cache lines, wherein each of the plurality of cache lines corresponds respectively to one of a plurality of lines of one of a plurality of pages of memory; a page status table configured to track a subset of pages of memory stored in the cache memory device and to indicate a status of each tracked page, wherein the status of each tracked page indicates which other cores of the plurality of cores are currently using at least one of the plurality of lines of the tracked page; and a cache controller configured to determine, upon a cache miss, whether to broadcast a snoop request to another cache controller associated with any other of the plurality of cores based at least in part on the status of one of the tracked pages when a missed cache line corresponds to one of the plurality of lines of the one of the tracked pages. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
16. A method comprising:
-
tracking, from a processor of a first processor package of a central processing unit having a plurality of processor packages, wherein each of the plurality of processor packages includes a plurality of processors, whether any line of a page of main memory is shared by another processor of the first processor package and whether any line of the page of memory is shared by a processor of another processor package; and determining, upon a cache miss in the first processor for a line of memory of the page of main memory, whether to broadcast a snoop request to any other processors based at least in part on whether any line of the page of main memory is shared by another processor of the first processor package or by a processor of another processor package. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. An electronic device comprising:
-
a memory device configured to store physically-addressed pages; and a central processing unit having a plurality of cores, wherein a cache memory management system is associated with each of the plurality of cores, the cache memory management system comprising; a translation lookaside buffer configured to map a plurality of virtually-addressed pages to a respective plurality of the physically-addressed pages; a cache memory device configured to store cache lines corresponding to one or more of the plurality of the physically-addressed pages; a page status table configured to store data indicating whether at least one other cache memory management system of the central processing unit is currently storing a cache line corresponding to one of a subset of the plurality of the physically-addressed pages; and a cache controller configured to determine, upon a cache miss, whether to broadcast a snoop request to another cache memory management system based at least in part on the data stored in the page status table; wherein the central processing unit is configured to run an operating system kernel, wherein the operating system kernel is configured to communicate to each cache memory management system when one of the physically-addressed pages has been allocated, deallocated, mapped, or unmapped by the operating system kernel. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A central processing unit comprising:
a plurality of processors, each processor comprising; a processor core configured to process data stored in cache lines; a cache memory device configured to store the cache lines, wherein each cache line corresponds to a line of a page of main memory; a page status table configured to store information indicating whether any portion of a page of main memory corresponding to a cache line stored in the cache memory device is shared by another processor; and memory snoop circuitry configured to reference page address bits of a cache tag associated with one of the cache lines but not line number bits of the cache tag when another processor attempts to access the one of the cache lines in main memory. - View Dependent Claims (28, 29)
Specification