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

System for reducing bus contention using counter of outstanding acknowledgement in sending processor and issuing of acknowledgement signal by receiving processor to indicate available space in shared memory

Assignee: Canon Inc
•
Filing: 1994-11-04
•
Granted: 1996-08-20
•
Expires: 2014-11-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A data transfer method in which a sending processor sends data to a receiving processor via a shared memory using a put pointer and a get pointer, the values of pointers indicate a next location in the shared memory to be written and to be read. The sending processor executes a data-sending process by (1) by referring to a counter of outstanding acknowledgements to determine if there is available space, (2) if there is available space, reading the get and put pointers and determining whether the put pointer is equal to one of plural partition indices which correspond to a number of partitions into which the shared memory is divided, (3) in the case where the value of the put pointer is equal to one of the plural predetermined partition indices, writing a command requesting the receiving processor to issue an acknowledgement and updating the counter of outstanding acknowledgements by adding one, (4) writing a block of data at a location of the put pointer, and (5) updating of the put pointer. The data-sending process is suspended when the counter of outstanding acknowledgements indicates that there is insufficient space in shared memory. An acknowledgement is received from the receiving processor and the counter of outstanding acknowledgements is updated by reducing it by one. The data-sending process is re-executed after the receiving processor issues the acknowledgement.

Inventors

  • 👤 Daniel A. Danknick

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 19:55
CPC Classifications
G; G06; G06F; G06F5/00; G06F5/06; G06F5/065; G06F13/00; G06F13/10; G06F13/12; G06F13/124; G06F13/128

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 324 words
A data transfer method in which a sending processor sends data to a receiving processor via a shared memory using a put pointer stored in the shared memory, the value of which indicates a next location in the shared memory to which the sending processor is to write, and a get pointer also stored in shared memory, the value of which indicates a next location in the shared memory from which the receiving processor is to read, said data transfer method comprising the steps of: executing a data-sending process with the sending processor, the data-sending process including the steps of (1) reading a counter of outstanding acknowledgements, the counter being stored in local memory of the sending processor, so as to determine whether there is available space in shared memory, (2) if there is available space, reading the get and put pointers from shared memory and determining whether the put pointer is equal to one of plural partition indices which correspond to a number of partitions into which the shared memory is divided, (3) in a case where the put pointer is equal to one of the plural predetermined partition indices, the data-sending process writing a command requesting the receiving processor to issue an acknowledgement over a signal line that is independent of and external to the shared memory, and updating the counter of outstanding acknowledgements in said local memory of said sending processor by adding one, (4) writing a block of data into the shared memory at a location of the put pointer, and (5) updating the put pointer; suspending the data-sending process in a case where the counter of outstanding acknowledgements indicates that there is insufficient space available in the shared memory; receiving at the sending processor an acknowledgement over the signal line from the receiving processor, and updating the counter of outstanding acknowledgements by reducing the counter by one; and re-executing the data-sending process after the receiving processor issues the acknowledgement.
Claim 2
Dependent Claim 324 words
A data transfer method in which a sending processor sends data to a receiving processor via a shared memory using a put pointer stored in the shared memory, the value of which indicates a next location in the shared memory to which the sending processor is to write, and a get pointer also stored in shared memory, the value of which indicates a next location in the shared memory from which the receiving processor is to read, said data transfer method comprising the steps of: executing a data-sending process with the sending processor, the data-sending process including the steps of (1) reading a counter of outstanding acknowledgements, the counter being stored in local memory of the sending processor, so as to determine whether there is available space in shared memory, (2) if there is available space, reading the get and put pointers from shared memory and determining whether the put pointer is equal to one of plural partition indices which correspond to a number of partitions into which the shared memory is divided, (3) in a case where the put pointer is equal to one of the plural predetermined partition indices, the data-sending process writing a command requesting the receiving processor to issue an acknowledgement over a signal line that is independent of and external to the shared memory, and updating the counter of outstanding acknowledgements in said local memory of said sending processor by adding one, (4) writing a block of data into the shared memory at a location of the put pointer, and (5) updating the put pointer; suspending the data-sending process in a case where the counter of outstanding acknowledgements indicates that there is insufficient space available in the shared memory; receiving at the sending processor an acknowledgement over the signal line from the receiving processor, and updating the counter of outstanding acknowledgements by reducing the counter by one; and re-executing the data-sending process after the receiving processor issues the acknowledgement.
Claim 3
Dependent Claim 96 words
A data transfer method according to claim 1, wherein said receiving processor executes a data-retrieving process by: reading the get pointer and the put pointer from shared memory; determining whether there is data in the shared memory which must be retrieved; reading a block of data from the shared memory at a location of the get pointer in a case where there is data which must be retrieved, and updating the get pointer; executing commands issued by the sending processor including a command to issue an acknowledgement over the signal line; and re-executing the data-retrieving process.
Claim 4
Dependent Claim 29 words
A method according to claim 2, wherein the receiving processor executes the command to issue an acknowledgement by sending an interrupt over the signal line to the sending processor.
Claim 5
Dependent Claim 46 words
A method according to claim 1, wherein the shared memory is divided into a first area in which data being transferred between the sending processor and the receiving processor is stored, and a second area in which the get pointer and the put pointer are stored.
Claim 6
Dependent Claim 16 words
A method according to claim 4, wherein the first area is configured as a ring buffer.
Claim 7
Dependent Claim 34 words
A method according to claim 5, wherein said plural predetermined partition indices comprise a first index at a beginning of the ring buffer and a second index at a midpoint of the ring buffer.
Claim 8
Dependent Claim 17 words
A method according to claim 5, wherein said plural predetermined partition indices comprise at least three indices.
Claim 9
Dependent Claim 17 words
A method according to claim 5, wherein said plural predetermined partition indices comprise at least four indices.
Claim 10
Dependent Claim 17 words
A method according to claim 5, wherein said plural predetermined partition indices comprise at least ten indices.
Claim 11
Dependent Claim 384 words
A data transfer apparatus comprising: a sending processor which sends data to a receiving processor via a shared memory using a put pointer stored in the shared memory, a value of said put pointer indicating a next location in the shared memory to which the sending processor is to write, and a get pointer also stored in shared memory, a value of said get pointer indicating a next location in the shared memory from which the receiving processor is to read; an interface to a signal line by which the sending processor can sense acknowledgements transmitted over the signal line by the receiving processor, the signal line being external of and independent of the shared memory; and a local memory of the sending processor, the local memory including at least a region for storing program instruction sequences for execution by the sending processor, and at least a region for storing a counter of outstanding acknowledgements; wherein the program instruction sequences include a data sending process in which the sending processor (1) reads the counter of outstanding acknowledgements so as to determine whether there is available space in shared memory, (2) if there is available space, reads the get and put pointers from shared memory and determines whether the put pointer is equal to one of plural partition indices which correspond to a number of partitions into which the shared memory is divided, (3) in a case where the put pointer is equal to one of the plural predetermined partition indices, the sending processor writes a command requesting the receiving processor to issue an acknowledgement over the signal line, and updates the counter of outstanding acknowledgements in said local memory of said sending processor by adding one, (4) writes a block of data into the shared memory at a location of the put pointer, and (5) updates the put pointer; and wherein the program instruction sequences further include steps to suspend the data-sending process in a case where the counter of outstanding acknowledgements indicates that there is insufficient space available in shared memory, to receive at the sending processor an acknowledgement over the signal line from the receiving processor, to update the counter of outstanding acknowledgements by reducing the counter by one, and to re-execute the data-sending process after the receiving processor issues the acknowledgement.
Claim 12
Dependent Claim 384 words
A data transfer apparatus comprising: a sending processor which sends data to a receiving processor via a shared memory using a put pointer stored in the shared memory, a value of said put pointer indicating a next location in the shared memory to which the sending processor is to write, and a get pointer also stored in shared memory, a value of said get pointer indicating a next location in the shared memory from which the receiving processor is to read; an interface to a signal line by which the sending processor can sense acknowledgements transmitted over the signal line by the receiving processor, the signal line being external of and independent of the shared memory; and a local memory of the sending processor, the local memory including at least a region for storing program instruction sequences for execution by the sending processor, and at least a region for storing a counter of outstanding acknowledgements; wherein the program instruction sequences include a data sending process in which the sending processor (1) reads the counter of outstanding acknowledgements so as to determine whether there is available space in shared memory, (2) if there is available space, reads the get and put pointers from shared memory and determines whether the put pointer is equal to one of plural partition indices which correspond to a number of partitions into which the shared memory is divided, (3) in a case where the put pointer is equal to one of the plural predetermined partition indices, the sending processor writes a command requesting the receiving processor to issue an acknowledgement over the signal line, and updates the counter of outstanding acknowledgements in said local memory of said sending processor by adding one, (4) writes a block of data into the shared memory at a location of the put pointer, and (5) updates the put pointer; and wherein the program instruction sequences further include steps to suspend the data-sending process in a case where the counter of outstanding acknowledgements indicates that there is insufficient space available in shared memory, to receive at the sending processor an acknowledgement over the signal line from the receiving processor, to update the counter of outstanding acknowledgements by reducing the counter by one, and to re-execute the data-sending process after the receiving processor issues the acknowledgement.
Claim 13
Dependent Claim 125 words
A data transfer apparatus according to claim 10, wherein said receiving processor includes a local memory for storing program instruction sequences for execution by the receiving processor, the program instruction sequences including a data-retrieving process in which the receiving processor (1) reads the get pointer and the put pointer from the shared memory, (2) determines whether there is data in the shared memory which must be retrieved, (3) reads a block of data from the shared memory at a location of the get pointer in a case where there is data which must be retrieved, (4) updates the get pointer, (5) executes commands issued by the sending processor including a command to issue an acknowledgement over the signal line, and (6) re-executes the data-retrieving process.
Claim 14
Dependent Claim 31 words
A data transfer apparatus according to claim 11, wherein the receiving processor executes the command to issue an acknowledgement by sending an interrupt over the signal line to the sending processor.
Claim 15
Dependent Claim 48 words
A data transfer apparatus according to claim 10, wherein the shared memory is divided into a first area in which data being transferred between the sending processor and the receiving processor is stored, and a second area in which the get pointer and the put pointer are stored.
Claim 16
Dependent Claim 18 words
A data transfer apparatus according to claim 13, wherein the first area is configured as a ring buffer.
Claim 17
Dependent Claim 36 words
A data transfer apparatus according to claim 14, wherein said plural predetermined partition indices comprise a first index at a beginning of the ring buffer and a second index at a midpoint of the ring buffer.
Claim 18
Dependent Claim 19 words
A data transfer apparatus according to claim 14, wherein said plural predetermined partition indices comprise at least three indices.
Claim 19
Dependent Claim 19 words
A data transfer apparatus according to claim 14, wherein said plural predetermined partition indices comprise at least four indices.
Claim 20
Dependent Claim 19 words
A data transfer apparatus according to claim 14, wherein said plural predetermined partition indices comprise at least ten indices.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-08-20 2000-02-19 2000-08-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-08-20 2004-02-19 2004-08-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-08-20 2008-02-19 2008-08-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag