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

Multiprocessor buffer system

Assignee: Hewlett Packard Development Co LP
•
Filing: 1992-01-10
•
Granted: 1994-05-24
•
Expires: 2012-01-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention is directed to a buffer swapping scheme to communicate a message from a first device to a second device wherein a pointer to a free buffer is returned to the first device by the second device as a condition for the first device to pass a pointer to a buffer containing a message intended for the second device.

Inventors

  • 👤 Michael J. Seaman
  • 👤 Stewart F. Bryant

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 10:44
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/54; G06F9/544; G06F15/00; G06F15/16; G06F15/163; G06F15/167

Claims Analysis

Total Claims: 37
Claim 1
Independent Claim 273 words
A computer system, which comprises: a first computer device; a second computer device; a common memory comprising a plurality of buffers for storing messages to be transferred from the first computer device to the second computer device; the first computer device and the second computer device each being coupled to the common memory; a pointer memory coupled to each of the first computer device and the second computer device, the pointer memory having a set of locations for storing pointers to the plurality of buffers of the common memory, preselected ones of the locations each storing a pointer to a buffer of the common memory that is available for use to store a message; and a pool of pointers to the plurality of buffers of the common memory that are available for use to store messages; the first computer device storing a pointer to at least one of the plurality of buffers and operating to transfer a message to the second computer device by writing the message to the one of the plurality of buffers, reading a preselected location of the pointer memory to obtain an available pointer to the plurality of buffers and writing the pointer to the one of the plurality of buffers to the preselected location of the pointer memory; the second computer device operating to read the preselected location of the pointer memory to obtain the pointer to the one of the plurality of buffers storing the message and to thereafter remove a pointer to a buffer available for use from the pool of pointers and to write the removed pointer to the preselected location of the pointer memory.
Claim 2
Dependent Claim 273 words
A computer system, which comprises: a first computer device; a second computer device; a common memory comprising a plurality of buffers for storing messages to be transferred from the first computer device to the second computer device; the first computer device and the second computer device each being coupled to the common memory; a pointer memory coupled to each of the first computer device and the second computer device, the pointer memory having a set of locations for storing pointers to the plurality of buffers of the common memory, preselected ones of the locations each storing a pointer to a buffer of the common memory that is available for use to store a message; and a pool of pointers to the plurality of buffers of the common memory that are available for use to store messages; the first computer device storing a pointer to at least one of the plurality of buffers and operating to transfer a message to the second computer device by writing the message to the one of the plurality of buffers, reading a preselected location of the pointer memory to obtain an available pointer to the plurality of buffers and writing the pointer to the one of the plurality of buffers to the preselected location of the pointer memory; the second computer device operating to read the preselected location of the pointer memory to obtain the pointer to the one of the plurality of buffers storing the message and to thereafter remove a pointer to a buffer available for use from the pool of pointers and to write the removed pointer to the preselected location of the pointer memory.
Claim 3
Dependent Claim 97 words
The computer system of claim 1, wherein each location of the pointer memory includes an ownership field having a first state and a second state, the first state indicating that the corresponding location stores a pointer to a buffer that is valid for use by the first computer device to store a message to the second computer device and the second state indicating that the corresponding location stores a pointer to a buffer valid for use by the second computer device to read a message at the buffer of the common memory pointed to by the pointer.
Claim 4
Dependent Claim 35 words
The computer system of claim 2, wherein the first computer device operates to read and write pointers from and to a location only when the ownership field of the location is in the first state.
Claim 5
Dependent Claim 57 words
The computer system of claim 3, wherein the first computer device changes the state of a location from the first state to the second state after reading a pointer to a buffer available for use from the location and writing the pointer to the one of the plurality of buffers to the location of the pointer memory.
Claim 6
Dependent Claim 35 words
The computer system of claim 2, wherein the second computer device operates to read and write pointers from and to a location only when the ownership field of the location is in the second state.
Claim 7
Dependent Claim 62 words
The computer system of claim 5, wherein the second computer device changes the state of a location from the second state to the first state after reading a pointer to the one of the plurality of buffers from the location, removing a pointer to a buffer available for use from the pool of pointers and writing the removed pointer to the location.
Claim 8
Dependent Claim 20 words
The computer system of claim 1, wherein each of the buffers of the common memory are equal in memory size.
Claim 9
Dependent Claim 55 words
The computer system of claim 7, wherein each location of the pointer memory includes a "beginning/continuation/last" marker field to link equal size buffers pointed to by pointers stored in respective locations so that a message of a size greater than the size of each buffer can be stored in buffers linked by "beginning/continuation/last" marker fields.
Claim 10
Dependent Claim 89 words
The computer system of claim 8, wherein said "beginning/continuation/last" marker field of a first location storing a pointer to a buffer storing a first portion of a message is set to a "beginning" state and the "beginning/continuation/last" marker field of each of n locations storing pointers to buffers storing n subsequent portions of the message is set to a "continuation" state and the "beginning/continuation/last" marker field of a last location storing a pointer to a buffer storing an end portion of the message is set to a "last" state.
Claim 11
Dependent Claim 56 words
The computer system of claim 1, wherein the second computer device operates to utilize the pointer to the one of the plurality of buffers to read the message stored in the one of the plurality of buffers by the first computer device and after reading the message, to place the pointer in the pool of pointers.
Claim 12
Dependent Claim 182 words
A mechanism for transferring a message from a first computer device to a second computer device, comprising: a common memory comprising a plurality of buffers for storing messages from the first computer device to the second computer device; a pointer exchange mechanism for exchanging pointers to the buffers of the common memory between the first and second computer devices; and a pool of pointers to buffers of the common memory that are available for use to store messages; the pool of pointers being coupled to the pointer exchange mechanism; the pointer exchange mechanism being adapted to interlock the first and second computer devices to accept a pointer to a buffer containing a message, from the first computer device, on a first condition that a pointer from the pool of pointers is read by the first computer device, and to make the pointer accepted from the first computer device available to the second computer device on a second condition that the second computer device places the pointer in the pool of pointers after utilizing the pointer to read the message in the buffer.
Claim 13
Dependent Claim 182 words
A mechanism for transferring a message from a first computer device to a second computer device, comprising: a common memory comprising a plurality of buffers for storing messages from the first computer device to the second computer device; a pointer exchange mechanism for exchanging pointers to the buffers of the common memory between the first and second computer devices; and a pool of pointers to buffers of the common memory that are available for use to store messages; the pool of pointers being coupled to the pointer exchange mechanism; the pointer exchange mechanism being adapted to interlock the first and second computer devices to accept a pointer to a buffer containing a message, from the first computer device, on a first condition that a pointer from the pool of pointers is read by the first computer device, and to make the pointer accepted from the first computer device available to the second computer device on a second condition that the second computer device places the pointer in the pool of pointers after utilizing the pointer to read the message in the buffer.
Claim 14
Dependent Claim 95 words
The mechanism of claim 11, wherein the pointer exchange mechanism includes a pointer memory having locations for storing pointers to the buffers of the common memory, certain ones of the locations storing pointers to buffers that are available for use to store messages obtained from the pool of pointers, the first condition of the pointer exchange mechanism requiring the first computer device to read one of the certain ones of the locations to obtain the pointer stored therein and to thereafter write the pointer to the buffer containing the message for the second computer device.
Claim 15
Dependent Claim 47 words
The mechanism of claim 12, wherein the pointer exchange mechanism includes a third condition that requires the second computer device to write a pointer from the pool of pointers into a location of the pointer memory after the second computer device reads a pointer from the location.
Claim 16
Dependent Claim 96 words
The mechanism of claim 13, wherein each location of the pointer memory includes an ownership field having a first state and a second state, the first state indicating that the corresponding location stores a pointer to a buffer that is valid for use by the first computer device to store a message to the second computer device and the second state indicating that the corresponding location stores a pointer to a buffer valid for use by the second computer device to read a message at the buffer of the common memory pointed to by the pointer.
Claim 17
Dependent Claim 98 words
The mechanism of claim 14, wherein the pointer exchange mechanism includes a fourth condition such that: i) the first computer device operates to read and write pointers from and to a location only when the ownership field of the location is in the first state, and ii) the first computer device changes the state of the location from the first state to the second state after reading a pointer to a buffer available for use from the location and writing the pointer to the one of the plurality of buffers to the preselected location of the pointer memory.
Claim 18
Dependent Claim 102 words
The mechanism of claim 15, wherein the pointer exchange mechanism includes a fifth condition such that: i) the second computer device operates to read and write pointers from and to a location only when the ownership field of the location is in the second state, and ii) the second computer device changes the state of the location from the second state to the first state after reading a pointer to the one of the plurality of buffers from the location, removing a pointer to a buffer available for use from the pool of pointers and writing the removed pointer to the location.
Claim 19
Dependent Claim 167 words
A first computer device adapted for coupling to a second computer device to receive messages from the second computer device, the coupling including a common memory having a plurality of buffers for storing messages from the second computer device to the first computer device and a pointer memory having a set of locations for storing pointers to buffers of the common memory, preselected ones of the locations each storing a pointer to a buffer of the common memory that is available for use to store a message, the first computer device comprising: a first module to read a preselected location of the pointer memory for a pointer to a buffer of the common memory storing a message from the second computer device; a pool of pointers to buffers of the common memory that are available for use to store messages; and a second module to write a pointer to a buffer from the pool of pointers to the preselected location after reading the pointer in the location.
Claim 20
Dependent Claim 167 words
A first computer device adapted for coupling to a second computer device to receive messages from the second computer device, the coupling including a common memory having a plurality of buffers for storing messages from the second computer device to the first computer device and a pointer memory having a set of locations for storing pointers to buffers of the common memory, preselected ones of the locations each storing a pointer to a buffer of the common memory that is available for use to store a message, the first computer device comprising: a first module to read a preselected location of the pointer memory for a pointer to a buffer of the common memory storing a message from the second computer device; a pool of pointers to buffers of the common memory that are available for use to store messages; and a second module to write a pointer to a buffer from the pool of pointers to the preselected location after reading the pointer in the location.
Claim 21
Dependent Claim 276 words
A mechanism for transferring a message from a first computer device to preselected ones of a plurality of other computer devices, which comprises: a common memory comprising a plurality of buffers for storing messages from the first computer device; a pointer exchange mechanism for exchanging pointers to the buffers of the common memory between the first computer device and the preselected ones of the other computer devices, each pointer pointing to one buffer of the common memory and containing a unique identification identifying one of the preselected ones of other computer devices; and a table having a set of entries, one entry for each unique identification, each entry having a flag set for each one of the preselected ones of the other computer devices to receive the message; the pointer exchange mechanism being adapted to interlock the first computer device and the other computer devices to accept from the first computer device, a pointer to a buffer containing a message, for communicating the pointer to each one of the preselected ones of the other computer devices to receive the message, on condition that the unique identification for the pointer be returned to the first computer device by each one of the preselected ones of the other computer devices upon accessing the buffer pointed to by the pointer; the first computer device operating to clear the flag in the entry of the table for the unique identification, for each one of the preselected ones of the other computer devices as the unique identification is returned by each one of the preselected ones of the other computer devices, until all of the flags of the entry are cleared.
Claim 22
Dependent Claim 276 words
A mechanism for transferring a message from a first computer device to preselected ones of a plurality of other computer devices, which comprises: a common memory comprising a plurality of buffers for storing messages from the first computer device; a pointer exchange mechanism for exchanging pointers to the buffers of the common memory between the first computer device and the preselected ones of the other computer devices, each pointer pointing to one buffer of the common memory and containing a unique identification identifying one of the preselected ones of other computer devices; and a table having a set of entries, one entry for each unique identification, each entry having a flag set for each one of the preselected ones of the other computer devices to receive the message; the pointer exchange mechanism being adapted to interlock the first computer device and the other computer devices to accept from the first computer device, a pointer to a buffer containing a message, for communicating the pointer to each one of the preselected ones of the other computer devices to receive the message, on condition that the unique identification for the pointer be returned to the first computer device by each one of the preselected ones of the other computer devices upon accessing the buffer pointed to by the pointer; the first computer device operating to clear the flag in the entry of the table for the unique identification, for each one of the preselected ones of the other computer devices as the unique identification is returned by each one of the preselected ones of the other computer devices, until all of the flags of the entry are cleared.
Claim 23
Dependent Claim 306 words
A first computer device adapted for coupling to a plurality of other computer devices for transferring messages from the first computer device to preselected ones of the other computer devices, the coupling including a common memory comprising a plurality of buffers for storing messages from the first computer device, the first computer device comprising: a first module to write a message intended for preselected ones of the other computer devices into a preselected one of the buffers; and a second module to pass a pointer to the preselected one of the buffers to each of the preselected ones of the other computer devices, the second module marking the pointer with a hook value; the second module maintaining a table of hook values with an entry for the hook value of the pointer, the entry comprising a mask to identify each of the preselected ones of the other computer devices; the second module adapted for coupling to a pointer exchange mechanism adapted to interlock the first computer device and the other computer devices to accept from the second module, the pointer to the preselected one of the buffers, for communicating the pointer to each one of the preselected ones of the other computer devices to receive the message, on condition that the unique identification for the pointer be returned to the second module by each one of the preselected ones of the other computer devices upon accessing the buffer pointed to by the pointer; the second module operating to clear the flag in the entry of the table for the unique identification, for each one of the preselected ones of the other computer devices as the unique identification is returned by each one of the preselected ones of the other computer devices via the pointer exchange mechanism, until all of the flags of the entry are cleared.
Claim 24
Dependent Claim 306 words
A first computer device adapted for coupling to a plurality of other computer devices for transferring messages from the first computer device to preselected ones of the other computer devices, the coupling including a common memory comprising a plurality of buffers for storing messages from the first computer device, the first computer device comprising: a first module to write a message intended for preselected ones of the other computer devices into a preselected one of the buffers; and a second module to pass a pointer to the preselected one of the buffers to each of the preselected ones of the other computer devices, the second module marking the pointer with a hook value; the second module maintaining a table of hook values with an entry for the hook value of the pointer, the entry comprising a mask to identify each of the preselected ones of the other computer devices; the second module adapted for coupling to a pointer exchange mechanism adapted to interlock the first computer device and the other computer devices to accept from the second module, the pointer to the preselected one of the buffers, for communicating the pointer to each one of the preselected ones of the other computer devices to receive the message, on condition that the unique identification for the pointer be returned to the second module by each one of the preselected ones of the other computer devices upon accessing the buffer pointed to by the pointer; the second module operating to clear the flag in the entry of the table for the unique identification, for each one of the preselected ones of the other computer devices as the unique identification is returned by each one of the preselected ones of the other computer devices via the pointer exchange mechanism, until all of the flags of the entry are cleared.
Claim 25
Dependent Claim 112 words
A first computer device adapted for coupling to a second computer device to receive a message from the second computer device, the coupling including a common memory comprising a plurality of buffers for storing messages from the second computer device, the second computer device adapted to send to the first computer device pointers to buffers containing messages for the first computer device, each pointer containing a unique hook value for uniquely identifying the first computer device, the first computer device comprising: a first module to receive a pointer from the second computer device on condition that the first module return the hook value of the received pointer to the second computer device.
Claim 26
Dependent Claim 112 words
A first computer device adapted for coupling to a second computer device to receive a message from the second computer device, the coupling including a common memory comprising a plurality of buffers for storing messages from the second computer device, the second computer device adapted to send to the first computer device pointers to buffers containing messages for the first computer device, each pointer containing a unique hook value for uniquely identifying the first computer device, the first computer device comprising: a first module to receive a pointer from the second computer device on condition that the first module return the hook value of the received pointer to the second computer device.
Claim 27
Dependent Claim 144 words
A first computer device adapted for coupling to a second computer device for the transfer of messages from the first computer device to the second computer device, the coupling including a common memory having a plurality of buffers for storing messages and a pool of pointers to buffers available for use to store messages, the pool of pointers being maintained by the second computer device, the first computer device comprising: a first module to write a message intended for the second computer device into a preselected one of the buffers of the common memory; and a second module to pass a pointer to the preselected one of the buffers to the second computer device on condition that the second module acquire a pointer from the pool of pointers via the second computer device when passing the pointer to the preselected one of the buffers.
Claim 28
Dependent Claim 144 words
A first computer device adapted for coupling to a second computer device for the transfer of messages from the first computer device to the second computer device, the coupling including a common memory having a plurality of buffers for storing messages and a pool of pointers to buffers available for use to store messages, the pool of pointers being maintained by the second computer device, the first computer device comprising: a first module to write a message intended for the second computer device into a preselected one of the buffers of the common memory; and a second module to pass a pointer to the preselected one of the buffers to the second computer device on condition that the second module acquire a pointer from the pool of pointers via the second computer device when passing the pointer to the preselected one of the buffers.
Claim 29
Dependent Claim 114 words
A first computer device adapted for coupling to a second computer device to receive messages from the second computer device, the coupling including a common memory having a plurality of buffers for storing messages from the second computer device and a pool of pointers to buffers available for use to store messages, the second computer device adapted to send to the first computer device, pointers to buffers of the common memory containing messages for the first computer device, the first computer device comprising: a first module to receive a pointer from the second computer device on condition that the first module return a pointer to the second computer device from the pool of pointers.
Claim 30
Dependent Claim 114 words
A first computer device adapted for coupling to a second computer device to receive messages from the second computer device, the coupling including a common memory having a plurality of buffers for storing messages from the second computer device and a pool of pointers to buffers available for use to store messages, the second computer device adapted to send to the first computer device, pointers to buffers of the common memory containing messages for the first computer device, the first computer device comprising: a first module to receive a pointer from the second computer device on condition that the first module return a pointer to the second computer device from the pool of pointers.
Claim 31
Dependent Claim 41 words
The first computer device of claim 22, wherein the first module utilizes the pointer received from the second computer device to access the common memory and thereafter returns the pointer received from the second computer device to the pool of pointers.
Claim 32
Independent Claim 138 words
A method for transferring a message from a first computer device to a second computer device, comprising the steps of: providing a common memory comprising a plurality of buffers for storing messages from the first computer device to the second computer device; providing a pool of pointers to buffers of the common memory available for use to store messages; operating the first computer device to store a message in a preselected buffer of the common memory; operating the first computer device to pass a pointer to the preselected buffer to the second computer device; and operating the second computer device to utilize the pointer to the preselected buffer to access the preselected buffer for the message stored therein; and operating the second computer device to place the pointer in the pool of pointers upon accessing the preselected buffer.
Claim 33
Independent Claim 138 words
A method for transferring a message from a first computer device to a second computer device, comprising the steps of: providing a common memory comprising a plurality of buffers for storing messages from the first computer device to the second computer device; providing a pool of pointers to buffers of the common memory available for use to store messages; operating the first computer device to store a message in a preselected buffer of the common memory; operating the first computer device to pass a pointer to the preselected buffer to the second computer device; and operating the second computer device to utilize the pointer to the preselected buffer to access the preselected buffer for the message stored therein; and operating the second computer device to place the pointer in the pool of pointers upon accessing the preselected buffer.
Claim 34
Independent Claim 146 words
A method for transferring a message from a first computer device to a second computer device, comprising the steps of: providing a common memory comprising a plurality of buffers for storing messages from the first computer device to the second computer device; providing a pool of pointers to buffers of the common memory available for use to store messages; operating the first computer device to store a message in a preselected buffer of the common memory; operating the first computer device to pass a pointer to the preselected buffer to the second computer device; and operating the second computer device to utilize the pointer to the preselected buffer to access the preselected buffer for the message stored therein and to affect a transfer of a pointer from the pool of pointers to the first computer device a condition for utilizing the pointer to the preselected buffer.
Claim 35
Independent Claim 146 words
A method for transferring a message from a first computer device to a second computer device, comprising the steps of: providing a common memory comprising a plurality of buffers for storing messages from the first computer device to the second computer device; providing a pool of pointers to buffers of the common memory available for use to store messages; operating the first computer device to store a message in a preselected buffer of the common memory; operating the first computer device to pass a pointer to the preselected buffer to the second computer device; and operating the second computer device to utilize the pointer to the preselected buffer to access the preselected buffer for the message stored therein and to affect a transfer of a pointer from the pool of pointers to the first computer device a condition for utilizing the pointer to the preselected buffer.
Claim 36
Dependent Claim 95 words
The method of claim 25 comprising the further steps of: providing a pointer memory having locations for storing pointers to buffers of the common memory, certain ones of the locations each storing a pointer to a buffer available for use to store a message; and performing the step of operating the first computer device to pass a pointer by operating the first computer device to write the pointer into the one of the certain ones of the locations after reading that location for a pointer to a buffer available for use to store a message.
Claim 37
Dependent Claim 59 words
The method of claim 26 comprising the further step of: operating the second computer device to read the one of the certain ones of the locations for the pointer to the preselected buffer and to write a pointer from the pool of pointers into that location upon and as a condition for reading the pointer to the preselected buffer.

References Cited (Backward Citations)

US4414620A Cited
US4543627A Cited
US4744023A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag