Hashing and serial decoding techniques
First Claim
Patent Images
1. An apparatus comprising:
- a first memory device configured to store an increment array, the increment array comprising one or more bits per array element;
a second memory device configured to store at least 2N data items, where N is a positive integer;
an address shift register coupled to receive an increment from the first memory device and coupled to provide an address to the second memory device, wherein the increment is coupled to enable insertion of the increment into one or more lowest-order positions of the address shift register; and
a comparison device coupled to the second memory device to compare at least a portion of an output data item from the second memory device corresponding to the address provided by the address shift register with at least a portion of a data item to be located in the second memory device to generate a comparison result,wherein if the comparison result indicates a difference between the output data item and the data item to be located, the address shift register is shifted with the increment inserted into the one or more lowest-order positions of the address shift register.
2 Assignments
0 Petitions
Accused Products
Abstract
A technique for generating a list of all N-bit unsigned binary numbers by starting with an initial number less than some power of 2, successively multiplying the number by that power of 2 and adding the largest non-negative number less than that power of 2 such that the new number is not a duplicate of any of those already generated, and using the resulting lists to generate efficient hashing and serial decoding hardware and software.
20 Citations
10 Claims
-
1. An apparatus comprising:
-
a first memory device configured to store an increment array, the increment array comprising one or more bits per array element; a second memory device configured to store at least 2N data items, where N is a positive integer; an address shift register coupled to receive an increment from the first memory device and coupled to provide an address to the second memory device, wherein the increment is coupled to enable insertion of the increment into one or more lowest-order positions of the address shift register; and a comparison device coupled to the second memory device to compare at least a portion of an output data item from the second memory device corresponding to the address provided by the address shift register with at least a portion of a data item to be located in the second memory device to generate a comparison result, wherein if the comparison result indicates a difference between the output data item and the data item to be located, the address shift register is shifted with the increment inserted into the one or more lowest-order positions of the address shift register. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A processor-readable storage medium containing instructions that, upon execution, result in the implementation of operations comprising:
-
beginning with a current address of a location in a storage array of a size corresponding to a number of elements equal to a power of two, accessing data stored at the location corresponding to a current address; generating a next address of a location within the storage array, said generating comprising doubling the current address and inserting a least-order bit of the data into a least-order bit position of a result of doubling the current address to obtain the next address; setting the current address equal to the next address; and iterating said accessing, said generating and said setting. - View Dependent Claims (7, 8)
-
-
9. A method of serial data access, the method comprising:
-
beginning with a current address of a location in a contiguous linear storage array of size 2N for some integer N, accessing data stored at the location in the array corresponding to the current address; generating a next address of a location within the array, said generating comprising; setting the next address equal to the current address multiplied by 2M, where M is a positive integer, and inserting M bits of the data into M least-order bit positions of the next address; and iterating said accessing and said generating to serially access data stored in the array. - View Dependent Claims (10)
-
Specification