P
USRE40904EExpiredUtilityPatentIndex 74

Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer

Assignee: ANALOG DEVICES INCPriority: Nov 2, 1990Filed: Apr 14, 2003Granted: Sep 1, 2009
Est. expiryNov 2, 2010(expired)· nominal 20-yr term from priority
Inventors:GARDE DOUGLAS
G06F 2205/106G06F 9/3552G06F 7/72G06F 5/10
74
PatentIndex Score
7
Cited by
27
References
18
Claims

Abstract

The invention comprises a hardware constructed address generator for a circular buffer which can be of any size and be in any position in memory. The address generator calculates both an absolute value and a wrapped value and selects one in accordance with whether the wrapped value falls within the boundaries of the buffer.

Claims

exact text as granted — not AI-modified
1. An apparatus for generating target addresses within a circular buffer extending in a memory between bounds defined by a base address and an end address, the base address being any predetermined location in the memory, responsive to the next previous address, I, accessed within said circular buffer, I,  and a specified offset, M, comprising:
 a first register for storing the previous address accessed within said buffer, I;  
 a second register means for storing information which defines the position and size of said circular buffer in memory, said second register means comprising an L register for storing the length of the circular buffer, L, and a B register for storing the base address of the circular buffer, B;  
 a third register for storing a specific offset value, M  
 a first logic circuit for generating an absolute address by calculating the value of I+M, wherein M is positive and said first logic circuit comprises an adder having a first input connected to accept the output of said first register, a second input connected to accept the output of said third register and an output which provides the sum of the values applied to first and second inputs;  
 a second logic circuit for generating a wrapped address by modifying the value I+M by the length of the buffer, said second logic circuit comprising a subtracter having a first input coupled to the output of said L register, a second input coupled to the output of said adder and an output which is the difference between the inputs, I+M−L;  
 a comparator for comparing one of the absolute address and wrapped address with a boundary of said circular buffer to determine whether one of said absolute address and said wrapped address is between the bounds of the circular buffer, said comparator having a first input coupled to the output of said subtracter, I+M−L, a second input coupled to the output of said B register, B, and an output which in a first state when said first input is greater than or equal to said second input and in a second state otherwise; and  
 means for loading said first register with the one of the absolute address and the wrapped address which is within the bounds of the circular buffer, said means for loading comprising a multiplexer having a first input coupled to the output of said adder, I+M, a second input coupled to the output of said subtractor, I+M−L, and a third input coupled to the output of said comparator and having an output coupled to the input of said I register, said output being the value at said first input responsive to said comparator output being in said second state and being the value at said second input responsive to said comparator output being in said first state.  
 
     
     
       2. The apparatus as set forth in claim  1    18  further comprising a third register for storing a standard offset value. 
     
     
       3. The apparatus as set forth in claim  2    18  further comprising an M register for storing M and wherein said first logic means  circuit comprises an adder having a first input connected to accept the output of said I  first register, a second input connected to accept the output of said M register and an output which provides the sum of the values applied to first and second inputs. 
     
     
       4. The apparatus as set forth in  claim 3  wherein M is positive and said second register means  comprises an L register for storing the length of the circular buffer, L, and a B register for storing the base of the circular buffer, B. 
     
     
       5. The apparatus as set forth in  claim 4  wherein,
 said second logic circuit comprises a subtracter having a first input coupled to the output of said L register, a second input coupled to the output of said adder and an output which is the difference between the inputs, I+M−L,  
 said comparator has a first input coupled to the output of said subtracter, I+M−L, a second input coupled to the output of said B register, B, and an output which is in a first state when said first input is greater than or equal to said second input and in a second state otherwise, and  
 said means for loading comprises a  multiplexer having  has a first input coupled to the output of said adder, I+M, a second input coupled to the output of said subtractor, I+M−L, and a third input coupled to the output of said comparator and having an output coupled to the input of said I register, said output of said multiplexer being the value at said first input responsive to said comparator output being in said second state and being the value of  at said second input responsive to said comparator output being in said first state.  
 
     
     
       6. The apparatus as set forth in  claim 3  wherein M is negative and said second register means  comprises an L register for storing the length of the circular buffer, L, and a B register for storing the lowest address in the circular buffer, B. 
     
     
       7. The apparatus as set forth in  claim 6  wherein;
 said second logic means  circuit comprises a second adder having a first input coupled to the output of said L register, a second input coupled to the output of said adder and an output which is the sum of its inputs, I+M+L,  
 said comparator means  has a first input coupled to the output of said second adder, I+M+L, a second input coupled to the output of said B register, B, and an output which is in a first state when said first input is less than or equal to said second input and in a second state otherwise, and  
 said means for loading comprises a  multiplexer having  has a first input coupled to the output of said first adder, I+M, a second input coupled to the output of said second adder, I+M+L, and a third input coupled to the output of said comparator, and having an output coupled to the input of said I register, said output of said multiplexer being the value at said first input responsive to said comparator output being in said second state and being output being the value at said second input responsive to said comparator output being in said first state.  
 
     
     
       8. The apparatus as set forth in  claim 3  wherein M is positive and said second register comprise an E register for storing the highest address in the circular buffer and an L register for storing the length of the circular buffer. 
     
     
       9. The apparatus as set forth in  claim 8  wherein,
 said second logic means comprises subtracter means having a first input coupled to the output of said L register, a second input coupled to the output of said adder and an output which is the difference between the inputs, I+M−L,    said comparator has a first input for coupled to the output of said adder means, I+M, a second input coupled to the output of said E register, E, and an output which is in a first state when said first input is less than or equal to said second input and in a second state otherwise, and    said means for loading comprises a multiplexer having a first input coupled to the output of said subtracter, I+M−L, a second input coupled to the output of said adder, I+M, and a third input coupled to the output of said comparator, and having an output coupled to the input of said I register, said output being the value at said first input responsive to said comparator output being in said second state and said output being the value at said second input responsive to said comparator output being in said first state.    
     
     
       10. The apparatus as set forth in  claim 3  wherein M is negative and said second register comprise an E register for storing the highest address in the circular buffer and an L register for storing the length of the circular buffer. 
     
     
       11. The apparatus as set forth in  claim 10  wherein,
 said second logic circuit comprises a second adder having a first input coupled to the output of said register, a second input coupled to the output of said adder and an output which is the sum of the inputs, I+M+L,    said comparator has a first input coupled to the output of said first adder, I+M, a second input coupled to the output of said E register, and an output which is in a first state when said first input is greater than or equal to said second input and in a second state otherwise, and    said means for loading comprises a multiplexer having a first input coupled to the output of said first adder, I+M, a second input coupled to the output of said second adder, I+M+L, and a third input coupled to the output of said comparator, and having an output coupled to the input of said I register, said output being the value at said second input responsive to said comparator output being in said second state and said output being the value at said first input responsive to said comparator output being in said first state.    
     
     
       12. The apparatus as set forth in  claim 3  wherein M is positive and said second register means  comprise an E register for storing the highest address in the circular buffer and a B register for storing the lowest address in the circular buffer. 
     
     
       13. The apparatus as set forth in  claim 12  wherein,
 said second logic means  circuit comprises an adder/subtracter means  having a first input coupled to the output of said E register, E, a second input coupled to the output of said B register, B, a third input coupled to the output of said adder, I+M, and an output which is the value I+M−E+B,  
 said comparator has a first input coupled to the output of said adder/subtracter means , I+M−E+B, a second input coupled to the output of said B register, B, and an output which is in a first state when said first input is greater than or equal to said second input and in a second state otherwise, and  
 said means for loading comprises a  multiplexer having  has a first input coupled to the output of said adder, I+M, a second input coupled to the output of said adder/subtracter, I+M−E+B, and a third input coupled to the output of said comparator and having an output coupled to the input of said I register, said output of said multiplexer being the value at said first input responsive to said comparator output being in said second state and said output being the value of  at said second input responsive to said comparator output being in said first state.  
 
     
     
       14. The apparatus as set forth in  claim 3  wherein M is negative and said second register comprises an E register for storing the lowest address in the circular buffer and a B register for storing the highest address in the circular buffer. 
     
     
       15. The apparatus as set forth in  claim 14  wherein,
 said second logic means  circuit comprises an adder/subtracter means  having a first input coupled to the output of said E register, E, a second input coupled to the output of said B register, B, a third input coupled to the output of said adder, I+M, and an output which is the value I+M−E+B,  
 said comparator has a first input coupled to the output of said adder/subtracter means , I+M−E+B, a second input coupled to the output of said B register, B, and an output which is in a first state when said first input is less than or equal to said second input and in a second state otherwise, and  
 said means for loading comprises a  multiplexer having  has a first input coupled to the output of said adder, I+M, a second input coupled to the output of said adder/subtractor, I+M−E+B, and a third input coupled to the output of said comparator and having an output coupled to the input of said I register, said output of said multiplexer being the value at said first input responsive to said comparator output being in said second state and said output being the value of  at said second input responsive to said comparator output being in said first state.  
 
     
     
       16. The apparatus as set forth in claim  3    4  further comprising;
 means for initializing the contents of the M, B and L registers, and means for automatically loading the I  first register with the contents of the B register.  
 
     
     
       17. The apparatus as set forth in  claim 3  further comprising,
 means for initializing the second register means , and means for automatically loading the I register with the base address of the circular buffer responsive to initialization of said second register means .  
 
     
     
       18. An apparatus for generating target addresses within a circular buffer extending in a memory between bounds defined by a base address and an end address, the base address being any predetermined location in the memory, responsive to the next previous address I accessed within said buffer and a specified offset, M, said apparatus comprising:
   a first register for storing the previous address, I, accessed within the circular buffer; a second register for storing information which defines the position and size of the circular buffer in memory;        a first logic circuit for generating an absolute address by calculating the value of I+M        a second logic circuit for generating a wrapped address by modifying the value I+M by the length of the circular buffer;        a comparator for comparing the wrapped address with a boundary of the circular buffer to determine which one of said absolute address and said wrapped address is between the bounds of the circular buffer; and        a multiplexer for loading said first register with the one of the absolute address and the wrapped address which is within the bounds of the circular buffer.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.