Selecting hash values based on matrix rank
First Claim
1. A computer-implemented method for performing hashing operations in connection with one or more memory addressing operations, the method comprising:
- generating a first potential hash value;
assigning a first set of entries included in a transformation matrix to the first potential hash value;
computing a first rank of a first sub-matrix included in the transformation matrix, wherein the first sub-matrix includes the first set of entries included in the transformation matrix;
based on the first rank, determining that the first potential hash value does not satisfy a first optimization criterion;
generating a second potential hash value;
re-assigning the first set of entries included in the transformation matrix to the second potential hash value;
re-computing the first rank of the first sub-matrix included in the transformation matrix, wherein the first sub-matrix further includes the reassigned first set of entries included in the transformation matrix;
based on the first rank, determining that the second potential hash value satisfies the first optimization criterion; and
performing one or more hashing operations in connection with at least one memory addressing operation based on the transformation matrix to map a first multi-bit value to a second multi-bit value.
1 Assignment
0 Petitions
Accused Products
Abstract
One embodiment of the present invention includes a hash selector that facilitates performing effective hashing operations. In operation, the hash selector creates a transformation matrix that reflects specific optimization criteria. For each hash value, the hash selector generates a potential hash value and then computes the rank of a submatrix included in the transformation matrix. Based on this rank in conjunction with the optimization criteria, the hash selector either re-generates the potential hash value or accepts the potential hash value. Advantageously, the optimization criteria may be tailored to create desired correlations between input patterns and the results of performing hashing operations based on the transformation matrix. Notably, the hash selector may be configured to efficiently and reliably incrementally generate a transformation matrix that, when applied to certain strides of memory addresses, produces a more uniform distribution of accesses across caches lines than previous approaches to memory addressing.
-
Citations
21 Claims
-
1. A computer-implemented method for performing hashing operations in connection with one or more memory addressing operations, the method comprising:
-
generating a first potential hash value; assigning a first set of entries included in a transformation matrix to the first potential hash value; computing a first rank of a first sub-matrix included in the transformation matrix, wherein the first sub-matrix includes the first set of entries included in the transformation matrix; based on the first rank, determining that the first potential hash value does not satisfy a first optimization criterion; generating a second potential hash value; re-assigning the first set of entries included in the transformation matrix to the second potential hash value; re-computing the first rank of the first sub-matrix included in the transformation matrix, wherein the first sub-matrix further includes the reassigned first set of entries included in the transformation matrix; based on the first rank, determining that the second potential hash value satisfies the first optimization criterion; and performing one or more hashing operations in connection with at least one memory addressing operation based on the transformation matrix to map a first multi-bit value to a second multi-bit value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer-readable storage medium including instructions that, when executed by a processing unit, cause the processing unit to map multi-bit values in connection with one or more memory addressing operations, by performing the steps of:
-
generating a first potential hash value; assigning a first set of entries included in a transformation matrix to the first potential hash value; computing a first rank of a first sub-matrix included in the transformation matrix, wherein the first sub-matrix includes the first set of entries included in the transformation matrix; based on the first rank, determining that the first potential hash value does not satisfy a first optimization criterion; generating a second potential hash value; re-assigning the first set of entries included in the transformation matrix to the second potential hash value; and re-computing the first rank of the first sub-matrix included in the transformation matrix, wherein the first sub-matrix further includes the reassigned first set of entries included in the transformation matrix; based on the first rank, determining that the second potential hash value satisfies the first optimization criterion; and performing one or more hashing operations in connection with at least one memory addressing operation based on the transformation matrix to map a first multi-bit value to a second multi-bit value. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system configured to perform hashing operations in connection with one or more memory addressing operations, the system comprising:
-
a first memory that includes a first transformation matrix; a hash selector unit coupled to the first memory and configured to; generate a first potential hash value; assign a first set of entries included in the transformation matrix to the first potential hash value; compute a first rank of a first sub-matrix included in the transformation matrix, wherein the first sub-matrix includes the first set of entries included in the transformation matrix; based on the first rank, determine that the first potential hash value does not satisfy a first optimization criterion; generate a second potential hash value; and re-assign the first set of entries included in the transformation matrix to the second potential hash value; and re-compute the first rank of the first sub-matrix included in the transformation matrix, wherein the first sub-matrix further includes the reassigned first set of entries included in the transformation matrix; based on the first rank, determine that the second potential hash value satisfies the first optimization criterion; and an address swizzling unit coupled to the first memory and configured to; perform one or more hashing operations in connection with at least one memory addressing operation based on the transformation matrix to map a first multi-bit value to a second multi-bit value. - View Dependent Claims (20)
-
-
21. A system configured to perform swizzling operations based on a transformation matrix in connection with one or more memory addressing operations, the system comprising:
-
a first memory that includes the transformation matrix, wherein the transformation matrix includes a first sub-matrix, the rank of the first sub-matrix is at least a minimum rank, and the minimum rank corresponds to swizzling operations that generate outputs that exhibit a desired uniformity across a plurality of resources; a plurality of resources that are coupled to the first memory; and a swizzling unit that applies the transformation matrix to the plurality of resources in connection with at least one memory addressing operation.
-
Specification