US5448706A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Address generator for multi-channel circular-buffer style processing
Assignee: Sharp Corp
•
Filing: 1992-05-13
•
Granted: 1995-09-05
•
Expires: 2012-05-13
Abstract
Abstract A one-chip address generator for producing a sequence of address signals for application to a memory containing a plurality of circular buffers. The address generator chip is capable of processing service requests from a plurality of channels on a prioritized basis. Service requests can arrive asynchronously at different rates. A channel-specific length or overlap value can be assigned to each servicing of a request. A seamless pipeline structure is provided for processing the service requests of subsequent channels immediately after completion of service for a first requesting channel.
Inventors
- 👤 Michael E. Fleming
- 👤 Eric C. Anderson
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-07 09:58
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/14; G06F13/16; G06F13/18
Claims Analysis
Total Claims: 30
Claim 1
Independent Claim
158 words
An address generator for generating address sequences for application to a memory containing a plurality of circular buffers, each circular buffer being for storing sequential data received from a corresponding one of a plurality of data supply channels, the address generator comprising: (a) request receiving means for receiving at a given time, one or more service requests from a corresponding one or more of the plural data supply channels; (b) request prioritizing means, coupled to the request receiving means, for selecting as active a highest prioritized one of plural service requests when more than one service requests are received simultaneously by the request receiving means and for selecting as active the received one service request when just one service request is received; and (c) address sequence outputting means, coupled and responsive to the request prioritizing means for automatically outputting a sequence of addresses corresponding to the circular buffer of service request selected as active by the prioritizing means.
Claim 2
Dependent Claim
158 words
An address generator for generating address sequences for application to a memory containing a plurality of circular buffers, each circular buffer being for storing sequential data received from a corresponding one of a plurality of data supply channels, the address generator comprising: (a) request receiving means for receiving at a given time, one or more service requests from a corresponding one or more of the plural data supply channels; (b) request prioritizing means, coupled to the request receiving means, for selecting as active a highest prioritized one of plural service requests when more than one service requests are received simultaneously by the request receiving means and for selecting as active the received one service request when just one service request is received; and (c) address sequence outputting means, coupled and responsive to the request prioritizing means for automatically outputting a sequence of addresses corresponding to the circular buffer of service request selected as active by the prioritizing means.
Claim 3
Dependent Claim
25 words
The address generator of claim 1 further comprising: (d) an integrated circuit chip on which the prioritizing means and address sequence outputting means are defined.
Claim 4
Dependent Claim
138 words
The address generator of claim 2 wherein the integrated circuit chip further comprises: (d.1) clock receiving means for receiving a series of local clock pulses and for producing therefrom an on-chip clock signal; and (d.2) synchronizing means for receiving service requests from off-chip sources and synchronizing the received service requests to the on-chip clock signal; and further wherein the address sequence outputting means includes: (c1) start pointer memory means for storing a plurality of sequence start pointers, each designating a sequence starting point for a corresponding one of the plural circular buffers; and (c.2) start pointer updating means, synchronized to the on-chip clock signal and coupled to the start pointer memory means, for changing the start pointer of the corresponding circular buffer of each active one of the synchronized service requests in sychronism with said on-chip clock signal.
Claim 5
Dependent Claim
39 words
The address generator of claim 2 wherein the integrated circuit chip further comprises: (d.1) bypass means, coupled to the on-chip prioritizing means for selectively bypassing the function of the on-chip prioritizing means, thereby to permit an off-chip prioritizing operation.
Claim 6
Dependent Claim
232 words
An address generator for generating address sequences for application to a memory containing a plurality of circular buffers, each circular buffer being for storing sequential data received from a corresponding one of a plurality of data supply channels, the address generator comprising: (a) request receiving means for receiving at a given time, one or more service requests from a corresponding one or more of the plural data supply channels; (b) request identifying means for identifying the data supply channel associated with a received request and for generating a channel number signal representing the associated channel; (c) start-pointer storage means for storing a plurality of sequence start pointers each corresponding to one of said data supply channels, the start-pointer storage means being operatively coupled to receive the channel number signal and to responsively output a start pointer signal representing the sequence start pointer of a channel identified by the channel number signal; and (d) address sequence outputting means, coupled to receive the start pointer signal output from the start-pointer storage means and the corresponding channel number signal output from the request identifying means, the address sequence outputting means being for outputting a corresponding sequence of addresses each having a more significant portion corresponding to the circular buffer of a channel identified by the channel number signal and a less significant portion corresponding to a location within the circular buffer of the identified channel.
Claim 7
Dependent Claim
232 words
An address generator for generating address sequences for application to a memory containing a plurality of circular buffers, each circular buffer being for storing sequential data received from a corresponding one of a plurality of data supply channels, the address generator comprising: (a) request receiving means for receiving at a given time, one or more service requests from a corresponding one or more of the plural data supply channels; (b) request identifying means for identifying the data supply channel associated with a received request and for generating a channel number signal representing the associated channel; (c) start-pointer storage means for storing a plurality of sequence start pointers each corresponding to one of said data supply channels, the start-pointer storage means being operatively coupled to receive the channel number signal and to responsively output a start pointer signal representing the sequence start pointer of a channel identified by the channel number signal; and (d) address sequence outputting means, coupled to receive the start pointer signal output from the start-pointer storage means and the corresponding channel number signal output from the request identifying means, the address sequence outputting means being for outputting a corresponding sequence of addresses each having a more significant portion corresponding to the circular buffer of a channel identified by the channel number signal and a less significant portion corresponding to a location within the circular buffer of the identified channel.
Claim 8
Dependent Claim
80 words
The address generator of claim 5 wherein a first of the sequence of address signals output by the address sequence outputting means references a sequence start location within the identified circular buffer corresponding to the sequence start pointer represented by the start pointer signal and where subsequent ones of the sequence of address signals output by the address sequence outputting means represent logically successive locations following the sequence start location and circling about the circular buffer for a prespecified distance.
Claim 9
Dependent Claim
64 words
The address generator of claim 6 further comprising: (e) start pointer update means, coupled to the start-pointer storage means, for changing the value of a sequence start pointer stored in said start-pointer storage means, the changed start pointer being one which points to a circular buffer location that logically precedes within the corresponding circular buffer the sequence start location specified prior to the change.
Claim 10
Dependent Claim
34 words
The address generator of claim 5 further comprising: (e) start pointer update means, coupled to the start-pointer storage means, for changing the value of a sequence start pointer stored in said start-pointer storage means.
Claim 11
Dependent Claim
27 words
The address generator of claim 5 further comprising: (e) an integrated circuit chip on which the start-pointer storage means and the address sequence outputting means are defined.
Claim 12
Dependent Claim
25 words
The address generator of claim 5 further comprising: (e) an integrated circuit chip on which the start-pointer storage means and request identifying means are defined.
Claim 13
Dependent Claim
172 words
An address generator for generating address sequences for application to a memory containing a plurality of circular buffers, the address generator comprising: (a) buffer-identifying means for outputting a buffer-identifying signal identifying one of said circular buffers; (b) pointer storage means, responsive to the buffer-identifying means, for storing a plurality of pointers, each corresponding to one of said circular buffers, and for outputting a pointer signal representing the pointer of a circular buffer identified by said buffer-identifying means; (c) signal combining means, coupled to receive the buffer-identifying signal and the corresponding pointer signal, for generating a combined signal, where the combined signal includes at least a significant part of the pointer signal and optionally, part or all of the buffer-identifying signal; and (d) signal sequencing means, for receiving said combined signal and generating therefrom a sequence of address signals, where each of the address signals of said sequence has a first part identifying one of the plural circular buffers and a second part pointing to a specific location within the identified circular buffer.
Claim 14
Dependent Claim
172 words
An address generator for generating address sequences for application to a memory containing a plurality of circular buffers, the address generator comprising: (a) buffer-identifying means for outputting a buffer-identifying signal identifying one of said circular buffers; (b) pointer storage means, responsive to the buffer-identifying means, for storing a plurality of pointers, each corresponding to one of said circular buffers, and for outputting a pointer signal representing the pointer of a circular buffer identified by said buffer-identifying means; (c) signal combining means, coupled to receive the buffer-identifying signal and the corresponding pointer signal, for generating a combined signal, where the combined signal includes at least a significant part of the pointer signal and optionally, part or all of the buffer-identifying signal; and (d) signal sequencing means, for receiving said combined signal and generating therefrom a sequence of address signals, where each of the address signals of said sequence has a first part identifying one of the plural circular buffers and a second part pointing to a specific location within the identified circular buffer.
Claim 15
Dependent Claim
49 words
An address generator according to claim 11 further comprising: (e) pointer update means, operatively coupled to the pointer storage means and to the buffer-identifying means, for changing a pointer stored in the pointer storage means, the changed pointer being that of a circular buffer identified by said buffer-identifying means.
Claim 16
Dependent Claim
53 words
An address generator according to claim 11 further comprising: (e) length storage means, operatively coupled to the buffer-identifying means, for storing a plurality of length values, each corresponding to one of said circular buffers, and for outputting a length signal representing an active length of a circular buffer identified by said buffer-identifying means.
Claim 17
Dependent Claim
54 words
An address generator according to claim 11 further comprising: (e) state sequencer means, operatively coupled to said signal sequencing means and to said buffer-identifying means, for indicating as a function of the buffer-identifying signal, the number of address signals to be included in the sequence of address signals generated by said signal sequencing means.
Claim 18
Dependent Claim
60 words
An address generator according to claim 11 further comprising: (e) field size control means, operatively coupled to said signal combining means, for determining what part of the pointer signal constitutes the significant part that is included in the combined signal and what part, if any, of the buffer-identifying signal constitutes a part that is further included in the combined signal.
Claim 19
Dependent Claim
51 words
An address generator according to claim 15 wherein said field size control means is responsive to a first-supplied number-of-buffers enumerating signal and a second-supplied memory-size defining signal, said enumerating signal indicating the number of circular buffers in said memory and said memory-size defining signal indicating the storage capacity of said memory.
Claim 20
Dependent Claim
224 words
An address generator for generating address sequences for application to a first memory containing a plurality of circular buffers, each circular buffer being for storing sequential data samples received from a corresponding one of a plurality of data supply channels, the address generator comprising: (a) channel identifying means for generating a channel signal identifying a specific one of the data supply channels; (b) second memory means, responsive to the channel signal, for storing a plurality of sequence start specifiers each specifying a sequence start location within a corresponding one of the plurality of circular buffers and for outputting a sequence start specifier corresponding to the data supply channel identified by the channel signal; (c) third memory means, responsive to the channel signal, for storing a plurality of sequence length specifiers each specifying a sequence length for a data sample sequence stored in a corresponding one of the of the plurality of circular buffers and for outputting a sequence length specifier corresponding to the data supply channel identified by the channel signal; and (d) address sequence generating means, responsive to the output sequence start specifier and to the output sequence length specifier, for generating a sequence of address signals referencing locations in the first memory corresponding to portions of the circular buffer specified by the output sequence start specifier and the output sequence length specifier.
Claim 21
Dependent Claim
224 words
An address generator for generating address sequences for application to a first memory containing a plurality of circular buffers, each circular buffer being for storing sequential data samples received from a corresponding one of a plurality of data supply channels, the address generator comprising: (a) channel identifying means for generating a channel signal identifying a specific one of the data supply channels; (b) second memory means, responsive to the channel signal, for storing a plurality of sequence start specifiers each specifying a sequence start location within a corresponding one of the plurality of circular buffers and for outputting a sequence start specifier corresponding to the data supply channel identified by the channel signal; (c) third memory means, responsive to the channel signal, for storing a plurality of sequence length specifiers each specifying a sequence length for a data sample sequence stored in a corresponding one of the of the plurality of circular buffers and for outputting a sequence length specifier corresponding to the data supply channel identified by the channel signal; and (d) address sequence generating means, responsive to the output sequence start specifier and to the output sequence length specifier, for generating a sequence of address signals referencing locations in the first memory corresponding to portions of the circular buffer specified by the output sequence start specifier and the output sequence length specifier.
Claim 22
Dependent Claim
37 words
An address generator according to claim 17 further comprising: (e) update means, responsive to the channel signal and coupled to the second memory means, for updating the stored sequence start specifier of the identified data supply channel.
Claim 23
Dependent Claim
98 words
An address generator according to claim 17 wherein the address sequence generating means includes: (d.1) field size defining means for dividing each of the generated address signals into a plurality of at least first and second fields having respective first and second numbers of bits and for defining the number of bits in each of said first and second fields, wherein the first field represents a pointer into a location within the circular buffer of the identified data supply channel, and wherein the second field represents a pointer to the circular buffer of the identified data supply channel.
Claim 24
Dependent Claim
49 words
An address generator according to claim 19 wherein: the plurality of at least first and second fields includes a third field; the field size defining means defines the number of bits in the third field; the third field represents a null portion of each of the generated address signals.
Claim 25
Independent Claim
181 words
A method for generating a sequence of address signals to be applied to a first memory containing a plurality of circular buffers, the method comprising the steps of: (a) storing a plurality of sequence start pointers in a second memory, each sequence start: pointer specifying a sequence start location within a corresponding one of said plurality of circular buffers; (b) generating a channel number signal that identifies one of said plurality of circular buffers; (c) in response to the channel number signal, reading out from the second memory the start pointer of the identified circular buffer and transmitting the read-out start pointer to a sequencer; (d) generating an updated start pointer that is derived from the read-out start pointer and, after the read-out start pointer is transmitted to the sequencer, writing the updated start pointer into the second memory at the location previously occupied by the read-out start pointer; (e) combining the read-out start pointer with the generated channel number signal to thereby produce a first absolute address signal; and (f) outputting the first absolute address signal to the first memory.
Claim 26
Independent Claim
181 words
A method for generating a sequence of address signals to be applied to a first memory containing a plurality of circular buffers, the method comprising the steps of: (a) storing a plurality of sequence start pointers in a second memory, each sequence start: pointer specifying a sequence start location within a corresponding one of said plurality of circular buffers; (b) generating a channel number signal that identifies one of said plurality of circular buffers; (c) in response to the channel number signal, reading out from the second memory the start pointer of the identified circular buffer and transmitting the read-out start pointer to a sequencer; (d) generating an updated start pointer that is derived from the read-out start pointer and, after the read-out start pointer is transmitted to the sequencer, writing the updated start pointer into the second memory at the location previously occupied by the read-out start pointer; (e) combining the read-out start pointer with the generated channel number signal to thereby produce a first absolute address signal; and (f) outputting the first absolute address signal to the first memory.
Claim 27
Dependent Claim
67 words
A sequence generating method according to claim 21 comprising the step of: (g) after outputting the first absolute address signal, generating and outputting to the first memory, a plurality of additional absolute address signals that reference successive locations in the identified circular buffer of the first memory, where the successive locations logically follow within the identified circular buffer the location referenced by the first absolute address signal.
Claim 28
Dependent Claim
106 words
A sequence generating method according to claim 22 further comprising the steps of: (h) storing a plurality of sequence length specifiers in a third memory, each sequence length specifier specifying a sequence length for a sequence within a corresponding one of said plurality of circular buffers; (i) in response to the channel number signal, reading out from the third memory the sequence length specifier of the identified circular buffer and transmitting the read-out length specifier to said sequencer; and (j) using the read-out length specifier to define the number of successive locations in the identified circular buffer that are successively referenced by said absolute address signals.
Claim 29
Dependent Claim
47 words
A sequence generating method according to claim 22 wherein the step of generating the updated start pointer and writing the updated start pointer into the second memory occurs simultaneously with said steps of generating and outputting to the first memory, the first and additional absolute address signals.
Claim 30
Dependent Claim
80 words
A sequence generating method according to claim 21 wherein the step of combining includes: (e.1) first determining the number of circular buffers contained in the first memory; (e.2) second determining the storage capacity of the first memory; and (e.3) in response to said first and second determinations, defining a first field within the first absolute address signal corresponding to the read-out start pointer and a second field within the first absolute address signal corresponding to the generated channel number signal.
References Cited (Backward Citations)
US4060850A
Cited
US4169289A
Cited
US4800524A
Cited
US4908748A
Cited
US5032986A
Cited
US5222223A
Cited
US5072418A
Cited
US5282275A
Cited
US5163018A
Cited
US5163017A
Cited
US5038311A
Cited
US5285527A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-09-04 | 1999-03-06 | 1999-09-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-09-04 | 2003-03-06 | 2003-09-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-09-04 | 2007-03-06 | 2007-09-05 | $7700.00 | Window Closed / Lapsed |