Cache coherency using flexible directory bit vectors
First Claim
1. In a node comprising at least a portion of main memory having a plurality of memory blocks, said node being part of a computer system having a plurality of partitions each comprising a plurality of nodes, a method for denoting nodes in which said memory blocks are cached, said method comprising the steps of:
- (1) maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; and
(2) maintaining an entry of said directory in a modified fine bit vector format when a memory block associated with said entry is cached in one or more nodes all of which are within a single partition of said computer system, said entry when maintained in said modified fine bit vector format comprising a partition field storing information identifying said single partition, and a modified fine bit vector field storing information identifying nodes in said single partition where said memory block is cached.
12 Assignments
0 Petitions
Accused Products
Abstract
A memory controller in a computer system is described. The memory controller maintains a directory comprising a plurality of entries. Each entry is associated with a memory block. The memory controller maintains an entry of the directory in a modified fine bit vector format when a memory block associated with the entry is cached in one or more nodes all of which are within a single partition of the computer system. The entry when maintained in the modified fine bit vector format comprises a partition field storing information identifying the single partition, and a modified fine bit vector field storing information identifying nodes in the single partition where the memory block is cached. The memory controller maintains the entry in a modified coarse bit vector format when the memory block is cached in multiple nodes distributed among P partitions of the computer system, where P is greater than one. The entry when maintained in the modified coarse bit vector format comprises Q partition fields each storing information identifying one of the P partitions, and Q modified coarse bit vector fields each storing information identifying nodes in one of the P partitions where the memory block is cached.
-
Citations
17 Claims
-
1. In a node comprising at least a portion of main memory having a plurality of memory blocks, said node being part of a computer system having a plurality of partitions each comprising a plurality of nodes, a method for denoting nodes in which said memory blocks are cached, said method comprising the steps of:
-
(1) maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; and (2) maintaining an entry of said directory in a modified fine bit vector format when a memory block associated with said entry is cached in one or more nodes all of which are within a single partition of said computer system, said entry when maintained in said modified fine bit vector format comprising a partition field storing information identifying said single partition, and a modified fine bit vector field storing information identifying nodes in said single partition where said memory block is cached. - View Dependent Claims (2)
-
-
3. In a node comprising at least a portion of main memory having a plurality of memory blocks, said node being part of a computer system having a plurality of partitions each comprising a plurality of nodes, a method for denoting nodes in which said memory blocks are cached, said method comprising the steps of:
-
(1) maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; and (2) maintaining an entry of said directory in a modified coarse bit vector format when a memory block associated with said entry is cached in multiple nodes distributed among P partitions of said computer system, P being greater than one, said entry when maintained in said modified coarse bit vector format comprising Q partition fields each storing information identifying one of said P partitions, and Q modified coarse bit vector fields each storing information identifying nodes in one of said P partitions where said memory block is cached, Q being greater than or equal to P. - View Dependent Claims (4)
-
-
5. In a node comprising at least a portion of main memory having a plurality of memory blocks, said node being part of a computer system having a plurality of partitions each comprising a plurality of nodes, a method for denoting nodes in which said memory blocks are cached, said method comprising the steps of:
-
(1) maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; (2) maintaining an entry of said directory in a modified fine bit vector format when a memory block associated with said entry is cached in one or more nodes all of which are within a single partition of said computer system, said entry when maintained in said modified fine bit vector format comprising a partition field storing information identifying said single partition, and a modified fine bit vector field storing information identifying nodes in said single partition where said memory block is cached; (3) maintaining said entry in a modified coarse bit vector format when said memory block is cached in multiple nodes distributed among P partitions of said computer system, P being greater than one, said entry when maintained in said modified coarse bit vector format comprising Q partition fields each storing information identifying one of said P partitions, and Q modified coarse bit vector fields each storing information identifying nodes in one of said P partitions where said memory block is cached; and (4) dynamically switching in real time between at least said modified fine bit vector format and said modified coarse bit vector format, depending upon a current cache state of said memory block. - View Dependent Claims (6, 7)
-
-
8. A computer system, comprising:
-
a communication network; and a plurality of nodes, each connected to said communication network and comprising at least a portion of main memory having a plurality of memory blocks and a memory controller; said memory controller comprising; directory maintaining means for maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; and modified fine bit vector format maintaining means for maintaining an entry of said directory in a modified fine bit vector format when a memory block associated with said entry is cached in one or more nodes all of which are within a single partition of said computer system, said entry when maintained in said modified fine bit vector format comprising a partition field storing information identifying said single partition, and a modified fine bit vector field storing information identifying nodes in said single partition where said memory block is cached. - View Dependent Claims (9, 10, 11)
-
-
12. In a node comprising at least a portion of main memory having a plurality of memory blocks, said node being part of a computer system having a plurality of partitions each comprising a plurality of nodes, a memory controller comprising:
-
directory maintaining means for maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; and modified fine bit vector format maintaining means for maintaining an entry of said directory in a modified fine bit vector format when a memory block associated with said entry is cached in one or more nodes all of which are within a single partition of said computer system, said entry when maintained in said modified fine bit vector format comprising a partition field storing information identifying said single partition, and a modified fine bit vector field storing information identifying nodes in said single partition where said memory block is cached. - View Dependent Claims (13, 14, 15)
-
-
16. In a node comprising at least a portion of main memory having a plurality of memory blocks, said node being part of a computer system having a plurality of partitions each comprising a plurality of nodes, a memory controller comprising:
-
directory maintaining means for maintaining a directory comprising a plurality of entries, each entry associated with one or more of said memory blocks; and modified coarse bit vector format maintaining means for maintaining each said entry in a modified coarse bit vector format when said one or more associated memory blocks is stored in multiple nodes distributed among P partitions of said computer system, said entry when maintained in said modified coarse bit vector format comprising Q partition fields each storing information identifying one of said P partitions, and Q modified coarse bit vector fields each storing information identifying nodes in one of said P partitions where said memory block is stored. - View Dependent Claims (17)
-
Specification