IP Library Granted Patent US 7,533,223
Granted Patent B1
US 7,533,223 · App. 11/784,238 · Granted May 12, 2009

System and method for handling memory requests in a multiprocessor shared memory system

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,533,223
App. No.
11/784,238
Granted
May 12, 2009
Kind
B1
Abstract

A system and method are provided for tracking memory requests within a data processing system. The system includes a request tracking circuit that is coupled to receive requests for data from multiple processors. Multiple pending requests to the same memory address are tracked using a linked list. Only the oldest pending one of these multiple requests is issued to the memory. When data is returned from the memory, the requests are processed in an order determined by the linked list. That is, the data is provided to a processor associated with the oldest request. Thereafter, the data is retrieved and provided to the processor associated with the next request, and so on. A request issued by the memory soliciting the return of the data to the memory may also be added to the linked list to be processed in the foregoing manner.

Claims (48)

1. For use in a system having multiple processors coupled to a memory contained within a storage director, a method, comprising:

receiving multiple requests for the same data from the multiple processors;

creating a linked list to record the multiple requests;

receiving from the storage director a memory request for the data;

adding the memory request to the linked list;

issuing to the storage director a request for the data;

receiving the data from the memory before invalidation operations for the data are completed; and

preventing a predetermined set of data associated with the data from being provided to the memory until the invalidation operations are completed.

2. For use in a system having multiple processors coupled to a memory contained within a storage director, a method, comprising:

receiving multiple requests for the same data from the multiple processors;

creating a linked list to record the multiple requests;

receiving from the storage director a memory request for the data;

adding the memory request to the linked list;

receiving the data from the memory;

providing the data to a processor that issued a predetermined one of the requests included in the linked list;

removing the predetermined request from the linked list;

processing all requests remaining in the linked list, wherein said processing includes performing the following steps during an indivisible operation:

making a next request in the linked list a current request;

requesting return of the data from whichever one of the multiple processors last retained the data;

providing the data to whichever one of the multiple processors is indicated by the current request; and

removing the current request from the linked list.

3. A method of processing requests to a memory contained within a storage director, including:

receiving a request for data stored in the memory, wherein the request may be received from the storage director or any of one or more requesters coupled to the storage director;

if the request is requesting the same data as another request that is already pending, linking the request to the other pending request; and

repeating the receiving and the linking steps for any additional requests for data;

selecting a request and making it a current request;

requesting that one of the requesters that retains the data that is requested by the current request return the data, the one of the requesters being required to return the data with predetermined access rights that are based on at least one of a group consisting of

a type of the current request,

a type of another request that is linked to the current request, and

access rights that were granted by the storage director for the data.

4. A system for processing requests to a memory contained within a storage director, comprising:

multiple requesters to issue requests for data to the storage director;

a request tracking circuit coupled to the multiple requesters to retain a record of each request until the request is completed, and to associate a request with any other one or more requests for the same data so that a single request for any given data is pending to the storage director at a given time;

a remote request tracking circuit coupled to the request tracking circuit to receive memory requests from the storage director for data and to associate a memory request with any request in the request tracking circuit that is requesting the same data;

an input queue to receive data from the memory before all invalidation operations for the data have been completed, and wherein the request tracking circuit includes a circuit to prevent predetermined data retained by predetermined ones of the multiple requesters from being returned to the memory before all of the invalidation operations are completed.

5. A system for processing requests to a memory contained within a storage director, comprising:

multiple requesters to issue requests for data to the storage director;

a request tracking circuit coupled to the multiple requesters to retain a record of each request until the request is completed, and to associate a request with any other one or more requests for the same data so that a single request for any given data is pending to the storage director at a given time;

a remote request tracking circuit coupled to the request tracking circuit to receive memory requests from the storage director for data and to associate a memory request with any request in the request tracking circuit that is requesting the same data;

wherein the request tracking circuit first provides the received data to one of the requesters that requested the received data, and then requires return of the received data from the one of the requesters so that the data may be provided to a next one of the requesters, the request tracking circuit requiring return of the received data with predetermined access rights that are determined based on one or more of a group consisting of

a type of request that caused the data to be provided to the one of the requesters;

a type of request that caused the data to be provided to the next one of the requesters; and

access rights granted by the memory storage director for the data.

6. A system for processing requests to a memory contained within a storage director, comprising:

multiple requesters to issue requests for data to the storage director;

a request tracking circuit coupled to the multiple requesters to retain a record of each request until the request is completed, and to associate a request with any other one or more requests for the same data so that a single request for any given data is pending to the storage director at a given time;

a remote request tracking circuit coupled to the request tracking circuit to receive memory requests from the storage director for data and to associate a memory request with any request in the request tracking circuit that is requesting the same data;

further including a control circuit to cause a requester to reissue a request if data requested by the request could not be obtained.

Assignments (13)
RELEASE OF SECURITY INTEREST Recorded Oct 28, 2020
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: UNISYS CORPORATION
Reel/Frame 054231/0496 →
RELEASE OF SECURITY INTEREST Recorded Nov 9, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION)
To: UNISYS CORPORATION
Reel/Frame 044416/0358 →
SECURITY INTEREST Recorded Oct 6, 2017
From: UNISYS CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044144/0081 →
PATENT SECURITY AGREEMENT Recorded Apr 27, 2017
From: UNISYS CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL TRUSTEE
Reel/Frame 042354/0001 →
RELEASE OF SECURITY INTEREST Recorded Mar 26, 2013
From: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
To: UNISYS CORPORATION
Reel/Frame 030082/0545 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2013
From: DEUTSCHE BANK TRUST COMPANY
To: UNISYS CORPORATION
Reel/Frame 030004/0619 →
SECURITY AGREEMENT Recorded Jun 27, 2011
From: UNISYS CORPORATION
To: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT
Reel/Frame 026509/0001 →
PATENT SECURITY AGREEMENT (JUNIOR LIEN) Recorded Oct 13, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023364/0098 →
PATENT SECURITY AGREEMENT (PRIORITY LIEN) Recorded Oct 12, 2009
From: UNISYS CORPORATION
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE
Reel/Frame 023355/0001 →
RELEASE BY SECURED PARTY Recorded Sep 14, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023263/0631 →
RELEASE BY SECURED PARTY Recorded Jul 31, 2009
From: CITIBANK, N.A.
To: UNISYS CORPORATION; UNISYS HOLDING CORPORATION
Reel/Frame 023312/0044 →
SUPPLEMENT TO SECURITY AGREEMENT Recorded Mar 6, 2008
From: UNISYS CORPORATION
To: CITIBANK, N.A.
Reel/Frame 020612/0305 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2007
From: VARTTI, KELVIN S.; WEBER, ROSS M.
To: UNISYS CORPORATION
Reel/Frame 019187/0957 →