Cache metadata identifiers for isolation and sharing
First Claim
1. A system comprising:
- a multiprocessor having at least one central processing unit, the central processing unit having a cache consisting of a plurality of cache lines augmented by a plurality of cache metadata, the cache metadata including software-controlled metadata identifiers that allow a plurality of logical processors to share the cache metadata.
2 Assignments
0 Petitions
Accused Products
Abstract
Various technologies and techniques are disclosed for providing software accessible metadata on a cache of a central processing unit. A multiprocessor has at least one central processing unit. The central processing unit has a cache with cache lines that are augmented by cache metadata. The cache metadata includes software-controlled metadata identifiers that allow multiple logical processors to share the cache metadata. The metadata identifiers and cache metadata can then be used to accelerate various operations. For example, parallel computations can be accelerated using cache metadata and metadata identifiers. As another example, nested computations can be accelerated using metadata identifiers and cache metadata. As yet another example, transactional memory applications that include parallelism within transactions or that include nested transactions can be also accelerated using cache metadata and metadata identifiers.
90 Citations
20 Claims
-
1. A system comprising:
a multiprocessor having at least one central processing unit, the central processing unit having a cache consisting of a plurality of cache lines augmented by a plurality of cache metadata, the cache metadata including software-controlled metadata identifiers that allow a plurality of logical processors to share the cache metadata. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
13. A method for accelerating a parallel computation using cache metadata and metadata identifiers, comprising the steps of:
-
obtaining a metadata identifier;
when parallelizing a computation, assigning the metadata identifier to a plurality of parallel threads in the computation; and
performing at least some metadata accesses of the cache metadata from the plurality of parallel threads using the metadata identifier. - View Dependent Claims (14, 15, 16)
-
-
17. A method for accelerating nested computations using multiple metadata identifiers comprising the steps of:
-
when entering a new nest level of a computation, obtaining a new metadata identifier for the computation;
performing accesses to the cache metadata using the new metadata identifier;
upon exiting the new nest level of the computation and resuming at a prior nest level, obtaining a different metadata identifier; and
performing accesses to the cache metadata using the different metadata identifier. - View Dependent Claims (18, 19, 20)
-
Specification