Patent US4965718A successfully refreshed from Google Patents.
← Back to Patent Explorer
US4965718A Expired / Lapsed US ⏱️ 0.0 years remaining

Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data

Assignee: International Business Machines Corp
•
Filing: 1988-09-29
•
Granted: 1990-10-23
•
Expires: 2008-09-29
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract In a data processing system of the type including a plurality of processing elements interconnected with each other and with a plurality of memory elements by an interconnection means, a method is provided for accommodating the accessing of a selected memory location in a selected one of the memory elements by at least one requesting processing element to read data stored thereat. The method thereby permits the communication of information between the plurality of processing elements. The method comprising the steps of: sending, from the requesting processing element to the selected memory element via the interconnecting means, a directive including (1) the address of the selected memory location, (2) a comparison value, and (3) an identification of the requesting processing element sending the directive; reading in the selected memory element the data stored at the selected memory location; comparing in the memory element the read data with the comparison value; notifying the requesting processing element via the interconnection means if the read data matches the comparison value; storing the directive in the selected memory element if the read data does not match the comparison value; and repeating the reading, comparing, and notifying steps each time the data in the selected memory location is altered.

Inventors

  • 👤 David A. George
  • 👤 Bharat D. Rathi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-24 12:34
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/52

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 198 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, a method for synchronizing operation of said plurality of processing elements, said method comprising the steps of: designating a selected memory location of a selected memory element to contain semaphore data; altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; sending, from at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, and (2) an identification of the requesting processing element sending said directive; reading in said selected memory element said semaphore data; sending said semaphore data to said requesting processing element via said interconnection means; storing said directive in said memory element; monitoring in said memory element the alteration of said semaphore data; and repeating said reading and sending steps when said semaphore data is altered.
Claim 2
Dependent Claim 198 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, a method for synchronizing operation of said plurality of processing elements, said method comprising the steps of: designating a selected memory location of a selected memory element to contain semaphore data; altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; sending, from at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, and (2) an identification of the requesting processing element sending said directive; reading in said selected memory element said semaphore data; sending said semaphore data to said requesting processing element via said interconnection means; storing said directive in said memory element; monitoring in said memory element the alteration of said semaphore data; and repeating said reading and sending steps when said semaphore data is altered.
Claim 3
Dependent Claim 31 words
A method in accordance with claim 1 wherein said step of sending said directive further includes sending a timeout value; and terminating said repeating step when said timeout value is exceeded.
Claim 4
Dependent Claim 23 words
A method in accordance with claim 1 wherein said sending step includes the step of assembling said directive in said requesting processing element.
Claim 5
Dependent Claim 24 words
A method in accordance with claim 1 wherein said storing step includes storing said directive associatively with the address of said selected memory location.
Claim 6
Dependent Claim 26 words
A method in accordance with claim 1 wherein said sending step includes sending a task identification of a requesting task performed by said requesting processing element.
Claim 7
Dependent Claim 231 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, a method for synchronizing operation of said plurality of processing elements, said method comprising the steps of: designating a selected memory location of a selected memory element to contain semaphore data; altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; sending, from at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, (2) a comparison value, and (3) an identification of the requesting processing element sending said directive; reading in said selected memory element said semaphore data; comparing in said memory element said semaphore data with said comparison value; notifying said requesting processing element via said interconnection means if said semaphore data matches said comparison value; storing said directive in said selected memory element if said semaphore data does not match said comparison value; monitoring in said selected memory element the altering of said semaphore data; and repeating said reading, comparing, and notifying steps when said semaphore data is altered.
Claim 8
Dependent Claim 231 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, a method for synchronizing operation of said plurality of processing elements, said method comprising the steps of: designating a selected memory location of a selected memory element to contain semaphore data; altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; sending, from at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, (2) a comparison value, and (3) an identification of the requesting processing element sending said directive; reading in said selected memory element said semaphore data; comparing in said memory element said semaphore data with said comparison value; notifying said requesting processing element via said interconnection means if said semaphore data matches said comparison value; storing said directive in said selected memory element if said semaphore data does not match said comparison value; monitoring in said selected memory element the altering of said semaphore data; and repeating said reading, comparing, and notifying steps when said semaphore data is altered.
Claim 9
Dependent Claim 41 words
A method in accordance with claim 6 and further including the step of returning said semaphore data obtained by the first one of said reading steps to said requesting processing element regardless of whether said semaphore data matches said comparison value.
Claim 10
Dependent Claim 43 words
A method in accordance with claim 7 wherein said step of sending a directive to said selected memory element further includes the step of sending a timeout value to said memory element; and terminating said repeating step when said timeout value is exceeded.
Claim 11
Dependent Claim 31 words
A method in accordance with claim 7 wherein said step of notifying said requesting processing element includes sending said semaphore data read in said reading step to said requesting processing element.
Claim 12
Dependent Claim 21 words
A method in accordance with claim 7 and further including the step of assembling said directive in said requesting processing element.
Claim 13
Dependent Claim 27 words
A method in accordance with claim 7 wherein said storing step includes the step of storing said directive associatively with the address of said selected memory location.
Claim 14
Dependent Claim 28 words
A method in accordance with claim 7 wherein said step of sending said directive includes sending an identification of a requesting task performed by said requesting processing element.
Claim 15
Dependent Claim 208 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, apparatus for synchronizing operation of said plurality of processing elements, comprising; means for designating a selected memory location of a selected memory element to contain semaphore data; means for altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; means for sending, from at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, and (2) an identification of the requesting processing element sending said directive; means for reading in said selected memory element said semaphore data; means for ending said semaphore data to said requesting processing element via said interconnection means; means for storing said directive in said memory element; means for monitoring in said memory element the altering of said semaphore data; and means for activating said reading and sending means when said semaphore data is altered.
Claim 16
Dependent Claim 208 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, apparatus for synchronizing operation of said plurality of processing elements, comprising; means for designating a selected memory location of a selected memory element to contain semaphore data; means for altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; means for sending, from at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, and (2) an identification of the requesting processing element sending said directive; means for reading in said selected memory element said semaphore data; means for ending said semaphore data to said requesting processing element via said interconnection means; means for storing said directive in said memory element; means for monitoring in said memory element the altering of said semaphore data; and means for activating said reading and sending means when said semaphore data is altered.
Claim 17
Dependent Claim 27 words
Apparatus in accordance with claim 41 wherein said directive further includes a timeout value; and means for terminating said activating means when said timeout value is exceeded.
Claim 18
Dependent Claim 24 words
Apparatus in accordance with claim 41 wherein said means for sending said directive includes means for assembling said directive in said requesting processing element.
Claim 19
Dependent Claim 25 words
Apparatus in accordance with claim 13 wherein said storing means includes means for storing said directive associatively with the address of said selected memory location.
Claim 20
Dependent Claim 27 words
Apparatus in accordance with claim 13 wherein said sending means includes means for sending a task identification of a requesting task performed by said requesting processing element.
Claim 21
Dependent Claim 243 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, apparatus for synchronizing operation of said plurality of processing elements, comprising: means for designating a selected memory location of a selected memory element to contain semaphore data; means for altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; means for sending, from said at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, (2) a comparison value, and (3) an identification of the requesting processing element sending said directive; means for reading in said selected memory element said semaphore data; means for comparing in said memory element said semaphore data with said comparison value; means for notifying said requesting processing element via said interconnection means if said semaphore data matches said comparison value; means for storing said directive in said selected memory element if said semaphore data does not match said comparison value; means for monitoring in said memory element the altering of said semaphore data; and means for activating said reading, comparing, and notifying means when said semaphore data is altered.
Claim 22
Dependent Claim 243 words
In a data processing system including a plurality of processing elements interconnected with each other and with at least one memory element by an interconnection means, each of said processing elements selectively executing program tasks, said at least one memory element including multiple memory locations identifiable by corresponding memory addresses for storing data, apparatus for synchronizing operation of said plurality of processing elements, comprising: means for designating a selected memory location of a selected memory element to contain semaphore data; means for altering, by selected ones of said plurality of processing elements, said semaphore data whereby to indicate a status of selected tasks; means for sending, from said at least one requesting processing element to said selected memory element via said interconnecting means, a directive including (1) the address of said selected memory location, (2) a comparison value, and (3) an identification of the requesting processing element sending said directive; means for reading in said selected memory element said semaphore data; means for comparing in said memory element said semaphore data with said comparison value; means for notifying said requesting processing element via said interconnection means if said semaphore data matches said comparison value; means for storing said directive in said selected memory element if said semaphore data does not match said comparison value; means for monitoring in said memory element the altering of said semaphore data; and means for activating said reading, comparing, and notifying means when said semaphore data is altered.
Claim 23
Dependent Claim 34 words
Apparatus in accordance with claim 18 and further including means for returning the first read semaphore data to said requesting processing element regardless of whether the first read semaphore data matches said comparison value.
Claim 24
Dependent Claim 28 words
Apparatus in accordance with claim 18 wherein said directive includes a timeout value; and further including means for terminating said activating means when said timeout value is exceeded.
Claim 25
Dependent Claim 27 words
Apparatus in accordance with claim 18 wherein said means for notifying said requesting processing element includes means for sending said semaphore data to said requesting processing element.
Claim 26
Dependent Claim 19 words
Apparatus in accordance with claim 18 and further including means for assembling said directive in said requesting processing element.
Claim 27
Dependent Claim 25 words
Apparatus in accordance with claim 18 wherein said storing means includes means for storing said directive associatively with the address of said selected memory location.
Claim 28
Dependent Claim 22 words
Apparatus in accordance with claim 18 wherein said directive includes an identification of a requesting task performed by said requesting processing element.

References Cited (Backward Citations)

US3879711A Cited
US4320451A Cited
US4456952A Cited
US4118789A Cited
US4488220A Cited
US4500959A Cited
US4574350A Cited
US4642760A Cited
US4482956A Cited
US4604694A Cited
US4635189A Cited
US4584640A Cited
US4745541A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1993-10-22 1994-04-23 1994-10-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1997-10-22 1998-04-23 1998-10-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2001-10-22 2002-04-23 2002-10-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag