IP Library Granted Patent US 7,945,745
Granted Patent B2
US 7,945,745 · App. 11/856,210 · Granted May 17, 2011

Methods and systems for exchanging data

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,945,745
App. No.
11/856,210
Granted
May 17, 2011
Kind
B2
Abstract

A method for exchanging data between a producer and a consumer is provided. The method includes writing the data with the producer without blocking the consumer and without waiting for access to the consumer. The method also includes reading the data with the consumer without blocking the producer and without waiting for access to the producer. The data is exchanged from the producer to the consumer upon reading the data.

Claims (63)

1. A method for exchanging data between a first module and a second module, said method comprising:

generating a producer status at the first module, the producer status including an indication of a buffer bin;

generating data at the first module into the indicated buffer bin, the first module configured to allow the second module to substantially continuously access the data;

reading the producer status at the second module to determine the buffer bin from which the second module can read the data;

reading the data at the second module from the indicated buffer bin, the second module configured to allow the first module to substantially continuously generate data; and

exchanging the data between the first module and the second module upon reading the data.

2. A method in accordance with claim 1 further comprising:

generating a consumer status indicative of a consumption cycle of the second module; and

reading the consumer status to indicate a buffer bin in which the first module can write the data.

3. A method in accordance with claim 1 further comprising:

generating data during a first production cycle of the first module; and

reading a consumer status indicative of a consumption cycle of the second module to determine a location to write production data for a second production cycle.

4. A method in accordance with claim 3 further comprising:

generating data to a first buffer bin of a plurality of buffer bins during the first production cycle; and

generating data to a second buffer bin of the plurality of buffer bins during the second production cycle.

5. A method in accordance with claim 1 further comprising:

reading data during a first consumer cycle of the second module; and

reading a producer status indicative of a production cycle to determine whether new production data is available for a second consumer cycle.

6. A method in accordance with claim 5 further comprising:

reading data from a first buffer bin of a plurality of buffer bins during the first consumer cycle; and

reading data from a second buffer bin of the plurality of buffer bins during the second consumer cycle.

7. A system comprising:

a controller; and

an input/output module configured to exchange data with the controller over a shared memory interface, wherein the data is exchanged by:

generating a status associated with a cycle of at least one of the first module and the second module, the status indicative of a specified buffer bin;

generating the data with a first module into the specified buffer bin;

reading the data at a second module from the specified buffer bin; and

exchanging the data from the first module to the second module upon reading the data, wherein the first module is configured to allow the second module to substantially continuously access the data; and the second module is configured to allow the first module to substantially continuously generate the data.

8. A system in accordance with claim 7 , wherein the data is further exchanged by:

reading the status to indicate at least one of a first buffer bin from which the second module can read data and a second buffer bin to which the first module can generate data.

9. A system in accordance with claim 7 , wherein the data is further exchanged by:

writing data during a first production cycle of the first module; and

reading a consumer status indicative of a consumption cycle of the second module to determine a location to write production data for a second production cycle.

10. A system in accordance with claim 9 , wherein the data is further exchanged by:

writing data to a first buffer bin of a plurality of buffer bins during the first production cycle; and

writing data to a second buffer bin of a plurality of buffer bins during the second consumption cycle.

11. A system in accordance with claim 7 , wherein the data is further exchanged by:

reading data during a first consumer cycle of the second module; and

reading a producer status indicative of a production cycle to determine whether new production data is available for a second consumer cycle.

12. A system in accordance with claim 11 , wherein the data is further exchanged by:

reading data from a first buffer bin of a plurality of buffer bins during the first consumer cycle; and

reading data from a second buffer bin of the plurality of buffer bins during the second consumer cycle.

13. A computer program installed in an input/output module, said computer program comprising at least one code segment configured to instruct the input/output module to exchange data between a first module and a second module by:

generating a consumer status at the second module, the consumer status including an indication of a buffer bin;

reading the consumer status at the first module to determine the buffer bin in which the first module can write data;

generating data at the first module into the indicated buffer bin, the first module configured to allow the second module to substantially continuously access the data;

reading the data at the second module from the indicated buffer bin, the second module configured to allow the first module to substantially continuously generate data; and

exchanging the data between the first module and the second module upon reading the data.

14. A computer program in accordance with claim 13 , wherein said computer program further comprises at least one code segment configured to instruct the input/output module to:

generate a producer status indicative of a production cycle of the first module; and

read the producer status to indicate a buffer bin from which the second module can read the data.

15. A computer program in accordance with claim 13 , wherein said computer program further comprises at least one code segment configured to instruct the input/output module to:

generate data during a first production cycle of the first module; and

read a consumer status indicative of a consumption cycle of the second module to determine a location to write production data for a second production cycle.

16. A computer program in accordance with claim 15 , wherein said computer program further comprises at least one code segment configured to instruct the input/output module to:

generate data to a first buffer bin of a plurality of buffer bins during the first production cycle; and

generate data to a second buffer bin of a plurality of buffer bins during the second production cycle.

17. A computer program in accordance with claim 13 , wherein said computer program further comprises at least one code segment configured to instruct the input/output module to:

read data during a first consumer cycle of the second module; and

read a producer status indicative of a production cycle to determine whether new production data is available for a second consumer cycle.

18. A computer program in accordance with claim 17 , wherein said computer program further comprises at least one code segment configured to instruct the input/output module to:

read data from a first buffer bin of a plurality of buffer bins during the first consumer cycle; and

read data from a second buffer bin of the plurality of buffer bins during the second consumer cycle.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2019
From: GENERAL ELECTRIC COMPANY
To: INTELLIGENT PLATFORMS, LLC
Reel/Frame 049309/0210 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2007
From: SMITH, GLENN
To: GENERAL ELECTRIC COMPANY
Reel/Frame 019833/0511 →