Queue control for shared memory access
First Claim
1. A memory controller for accessing shared memory objects from local and remote locations by read requests and write requests made to a memory, the memory controller comprising:
- a lock address list configured to register address locations of the shared memory objects in the memory, and having a plurality of slots each associated with a lock bit;
a read wait queue and a write wait queue configured to selectively input, output, hold, and purge the requests from processor cores and network inputs and outputs;
a read initiated queue and a write initiated queue configured to selectively input and purge the requests transferred from the read wait queue and the write wait queue, respectively, upon initiation and completion of corresponding accesses to the memory; and
a queue controller configured to control the wait queues using policies by determining which of the requests to output, which of the requests to hold, and which of the requests to purge, based on an entry of the lock address list, a status of a corresponding lock bit and Time To Live information set to each of the requests upon a hold being applied thereto and decremented in each cycle.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory controller is provided for accessing shared memory objects by read and write requests made to a memory. The memory controller includes a list for registering address locations of the shared objects in the memory, and having slots for a lock bit. The memory controller includes a read wait queue and a write wait queue for selectively inputting, outputting, holding, and purging requests. The memory controller includes a read initiated queue and a write initiated queue for selectively inputting and purging requests transferred from the read wait queue and the write wait queue, respectively, upon memory access initiation and completion. The memory controller includes a controller for controlling the wait queues using policies by determining which requests to output, hold, and purge, based on a list entry, a lock bit and TTL information set to each request upon a hold being applied thereto and decremented in each cycle.
-
Citations
13 Claims
-
1. A memory controller for accessing shared memory objects from local and remote locations by read requests and write requests made to a memory, the memory controller comprising:
-
a lock address list configured to register address locations of the shared memory objects in the memory, and having a plurality of slots each associated with a lock bit; a read wait queue and a write wait queue configured to selectively input, output, hold, and purge the requests from processor cores and network inputs and outputs; a read initiated queue and a write initiated queue configured to selectively input and purge the requests transferred from the read wait queue and the write wait queue, respectively, upon initiation and completion of corresponding accesses to the memory; and a queue controller configured to control the wait queues using policies by determining which of the requests to output, which of the requests to hold, and which of the requests to purge, based on an entry of the lock address list, a status of a corresponding lock bit and Time To Live information set to each of the requests upon a hold being applied thereto and decremented in each cycle. - View Dependent Claims (6, 7)
-
- 2. The memory controller of 1, further comprising a read reserved queue configured to selectively input, hold and purge the requests transferred from the read initiated queue upon initiation of the shared memory object read accesses and held or purged based on the following write requests and Time To Live information set to each request upon hold and decremented in each cycle.
-
8. A computer processing system, comprising:
-
a processor; a non-volatile memory; and a memory controller for accessing shared memory objects from local and remote locations by read requests and write requests made to the non-volatile memory, the memory controller including; a lock address list configured to register address locations of the shared memory objects in the non-volatile memory, and having a plurality of slots each associated with a lock bit; a read wait queue and a write wait queue configured to selectively input, output, hold, and purge the requests from processor cores and network inputs and outputs; a read initiated queue and a write initiated queue configured to selectively input and purge the requests transferred from the read wait queue and the write wait queue, respectively, upon initiation and completion of corresponding accesses to the non-volatile memory; and a queue controller configured to control the wait queues using policies by determining which of the requests to output, which of the requests to hold, and which of the requests to purge, based on an entry of the lock address list, a status of a corresponding lock bit and Time To Live information set to each of the requests upon a hold being applied thereto and decremented in each cycle. - View Dependent Claims (9, 10, 11, 12, 13)
-
Specification