IP Library Granted Patent US 7,844,782
Granted Patent B2
US 7,844,782 · App. 11/982,108 · Granted Nov 30, 2010

Data processing system with memory access

Assignee: Solarflare Communications, Inc.
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,844,782
App. No.
11/982,108
Granted
Nov 30, 2010
Kind
B2
Abstract

A data processing system with memory access comprising an operating system for supporting processes, such that the process are associated with one or more resources and the operating system being arranged to police the accessing by processes of resources so as to inhibit a process from accessing resources with which it is not associated. Part of this system is an interface for interfacing between each process and the operating system and a memory for storing state information for at least one process. The interface may be arranged to analyze instructions from the processes to the operating system, and upon detecting an instruction to re-initialize a process cause state information corresponding to that pre-existing state information to be stored in the memory as state information for the re-initialized process and to be associated with the resource.

Claims (35)

1. A data processing system arranged to control access by a plurality of processes to a region of shared memory, the data processing system being arranged to:

prevent more than one of the plurality of processes from concurrently accessing the region of shared memory by locking the region of shared memory;

establish a data structure for holding items of a first type each of the items configured to store a process identifier configured to identify a particular process that has attempted and failed to access the region of shared memory operation to be performed by the particular process on the region of shared memory;

store a first process identifier for the first process that has attempted and failed to access the region of shared memory, and a first operation intended to be performed by the first process on the region of shared memory, wherein the first process identifier and the first operation are stored in an item of the first type within the data structure; and

on a second process other than the first process finishing accessing the region of shared memory, read the item and perform the first operation on behalf of the first process with a process other than the first process.

2. A data processing system as claimed in claim 1 , wherein the said operation is one of: an operation for storing data in the region of shared memory; and an operation for transmitting data from the region of shared memory.

3. A data processing system as claimed in claim 1 , wherein the data structure is further arranged to hold items of a second type each comprising an indication of another of the plurality of processes, which is attempting to access the region of shared memory, and an operation of waking the particular process; the data processing system being further arranged to, on a process finishing accessing the region of shared memory, wake the indicated process.

4. A data processing system as claimed in claim 3 , wherein the items of the second type held in the data structure are accessible only by an operating system arranged to control the data processing system.

5. A data processing system as claimed in claim 1 , wherein the data structure is stored in the region of shared memory.

6. A data processing system as claimed in claim 5 , wherein the data structure can be read by the operating system and at least some of the plurality of processes.

7. A data processing system as claimed in claim 1 , wherein the data structure is accessible by the operating system and at least some of the plurality of processes.

8. A data processing system as claimed in claim 7 , wherein the content of the data structure can be modified by the operating system and at least some of the plurality of processes.

9. A data processing system as claimed in claim 1 , wherein the data processing system is arranged to: on a process finishing accessing the region of shared memory, if the item is of the first type, perform the operation stored in that item on the region of shared memory with an operating system of the data processing system.

10. A data processing system as claimed in claim 9 , wherein the operating system is provided with application specific code for enabling the operating system to perform at least the operation.

11. A data processing system as claimed in claim 1 , wherein the data processing system is arranged to: on a process finishing accessing the region of shared memory, if the item is of the first type, perform the operation stored in that item on the region of shared memory with another of the plurality of processes.

12. A data processing system as claimed in claim 1 , wherein the data structure is a lockless data structure.

13. A data processing system arranged to control access by a plurality of processes to a region of shared memory, the data processing system being arranged to:

prevent more than one process from concurrently accessing the region of shared memory;

establish a data structure for holding items of a first type each comprising an identifier of a particular process that is attempting to access the region of shared memory, and an operation intended to be performed by the particular process on the region of shared memory;

on a process being denied access to the region of shared memory, store an item comprising an identifier of the process and an operation intended to be performed by the process in the data structure; and

on becoming permitted to access the region of shared memory, read an item in the data structure and perform the operation stored in that item with other than the process identified in that item.

14. A method for controlling access by a plurality of processes to a region of shared memory data in a data processing system, the method comprising:

preventing more than one process from concurrently accessing the region of shared memory;

establishing a data structure for holding items of a first type each comprising an identifier of a particular process that is attempting to access the region of shared memory, and an operation intended to be performed by the particular process on the region of shared memory;

storing the identifier of a first process that is attempting to access the region of shared memory, and an operation intended to be performed by the first process on the region of shared memory in the data structure; and

on a second process finishing accessing the region of shared memory, reading an item in the data structure and performing on behalf of a process identified in that item the operation stored in that item by other than the process identified in that item.

15. A method for controlling access by a plurality of processes to a region of shared memory in a data processing system, the method comprising:

preventing more than one process from concurrently accessing the region of shared memory;

establishing a data structure for holding items of a first type each comprising an identifier of a particular process attempting to access the region of shared memory, and an operation intended to be performed by the particular process on the region of shared memory;

storing an identifier of a first process attempting to access the region of shared memory, and an operation intended to be performed by the first process on the region of shared memory; and

on a second process becoming permitted to access the region of shared memory, reading an item in the data structure and performing on behalf of a process identified in that item the operation stored in that item by other than the process identified in that item.

16. A data processing system arranged to control access by a plurality of threads to a region of shared memory, the data processing system being arranged to:

prevent more than one thread from concurrently accessing the region of shared memory by means of a lock;

establish a data structure for holding items of a first type each comprising an identifier of a particular thread which is attempting to access the region of shared memory, and an operation intended to be performed by the particular thread on the region of shared memory; and

on a first thread finishing its use of the region of shared memory and on determining that the next item in the data structure indicates a second thread belonging to the same application as the first thread, passing the lock to the second thread indicated in that item without unlocking the lock.

Assignments (12)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 25, 2019
From: SOLARFLARE COMMUNICATIONS, INC.
To: XILINX, INC.
Reel/Frame 051108/0209 →
RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Jul 31, 2019
From: ALLY BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 049918/0440 →
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2017
From: PACIFIC WESTERN BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 042820/0890 →
SECURITY INTEREST Recorded Mar 7, 2017
From: SOLARFLARE COMMUNICATIONS, INC.
To: ALLY BANK
Reel/Frame 041902/0527 →
SECURITY INTEREST Recorded Apr 6, 2016
From: SOLARFLARE COMMUNICATIONS, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038363/0589 →
RELEASE OF SECURITY INTEREST Recorded Nov 24, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 034255/0140 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2014
From: COMERICA BANK
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 033716/0073 →
CHANGE OF ADDRESS Recorded Oct 31, 2012
From: SOLARFLARE COMMUNICATIONS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 029360/0956 →
SECURITY AGREEMENT Recorded Jan 5, 2012
From: SOLARFLARE COMMUNICATIONS, INC., A DELAWARE CORPORATION
To: COMERICA BANK, AS AGENT, A TEXAS BANKING ASSOCIATION
Reel/Frame 027487/0097 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2009
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 022752/0318 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2009
From: LEVEL 5 NETWORKS, INC.
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 022568/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2007
From: POPE, STEVEN LESLIE; RIDDOCH, DAVID JAMES; LAW, GREG
To: SOLARFLARE COMMUNICATIONS, INC.
Reel/Frame 020121/0025 →
Continuity (2)
Division 1190037700 · Sep 10, 2007
Related Publication 20080065838A1 · Mar 13, 2008