Cache memory architecture and policies for accelerating graph algorithms
First Claim
Patent Images
1. An apparatus, comprising:
- a cache memory configured to store a plurality of lines that include data and metadata; and
a circuit configured to;
determine a respective number of edges associated with vertices of a plurality of vertices included in a graph data structure;
sort the graph data structure using the respective number of edges associated with the vertices of the plurality of vertices to generate a sorted graph;
determine a reuse value for a particular vertex of the plurality of vertices using results of a comparison of a respective address associated with the particular vertex in the sorted graph to a plurality of address ranges associated with corresponding addresses of the plurality of vertices, wherein the reuse value is indicative of a frequency with which a particular line of the plurality of lines associated with the particular vertex is accessed in the cache memory; and
store, in the cache memory, data and metadata associated with the particular vertex of the plurality of vertices in the particular line, wherein the metadata includes at least the reuse value for the particular vertex and a list of edges connected to the particular vertex.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache memory may be configured to store a plurality of lines, where each line includes data and metadata. A circuit may be configured to determine a respective number of edges associated with each vertex of a plurality of vertices included in a graph data structure, and sort the graph data structure using the respective number of edges. The circuit may be further configured to determine a reuse value for a particular vertex of the plurality of vertices using a respective address associated with the particular vertex in the sorted graph, and store data and metadata associated with the particular vertex in a particular line of the plurality of lines in the cache memory.
57 Citations
20 Claims
-
1. An apparatus, comprising:
-
a cache memory configured to store a plurality of lines that include data and metadata; and a circuit configured to; determine a respective number of edges associated with vertices of a plurality of vertices included in a graph data structure; sort the graph data structure using the respective number of edges associated with the vertices of the plurality of vertices to generate a sorted graph; determine a reuse value for a particular vertex of the plurality of vertices using results of a comparison of a respective address associated with the particular vertex in the sorted graph to a plurality of address ranges associated with corresponding addresses of the plurality of vertices, wherein the reuse value is indicative of a frequency with which a particular line of the plurality of lines associated with the particular vertex is accessed in the cache memory; and store, in the cache memory, data and metadata associated with the particular vertex of the plurality of vertices in the particular line, wherein the metadata includes at least the reuse value for the particular vertex and a list of edges connected to the particular vertex. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method, comprising:
-
identifying a respective number of edges connected to vertices of a plurality of vertices included in a graph data structure stored in memory of a computing system; sorting the graph data structure using the respective number of edges connected to the vertices included in the graph data structure to generate a sorted graph; determining a reuse value for a particular vertex of the plurality of vertices using results of comparing a respective address associated with the particular vertex in the sorted graph to a plurality of address ranges associated with corresponding addresses of the plurality of vertices, wherein the reuse value is indicative of a frequency with which a particular line of a plurality of lines stored in a cache memory associated with the particular vertex is accessed; and storing, in the cache memory, data and metadata associated with the particular vertex of the plurality of vertices in the particular line, wherein the metadata includes at least the reuse value for the particular vertex and a list of edges connected to the particular vertex. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14)
-
-
15. A system, comprising:
-
a memory configured to store a graph data structure that includes a plurality of vertices, and a plurality of edges, wherein each specifies a connection between two vertices of the plurality of vertices; a cache memory configured to store a plurality of lines, wherein each line of the plurality of lines includes data and metadata; and a processor configured to; determine a respective number of edges associated with vertices of the plurality of vertices; sort the graph data structure using the respective number of edges associated with the vertices of the plurality of vertices to generate a sorted graph; determine a reuse value for a particular vertex of the plurality of vertices using results of a comparison of a respective address associated with the particular vertex in the sorted graph to a plurality of address ranges associated with corresponding addresses of the plurality of vertices, wherein the reuse value is indicative of a frequency with which a particular line of the plurality of lines associated with the particular vertex is access in the cache memory; and store, in the cache memory, data and metadata associated with the particular vertex of the plurality of vertices in the particular line of the plurality of lines, wherein the metadata includes at least the reuse value for the particular vertex and a list of edges connected to the particular vertex. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification