IP Library Granted Patent US 9,667,962
Granted Patent B2
US 9,667,962 · App. 14/513,191 · Granted May 30, 2017

Hierarchical packing of syntax elements

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,667,962
App. No.
14/513,191
Granted
May 30, 2017
Kind
B2
Abstract

A method operates within an integrated circuit device having a plurality of processing lanes. The method determines a first number of packs among one or more first packs associated with a first processing lane of the plurality of processing lanes, associates the first number of packs with a first used field of the first processing lane, determines a second number of packs among one or more second packs associated with a second processing lane of the plurality of processing lanes, and associates the second number of packs with a second used field of the second processing lane.

Claims (71)

1. A method of operation within an integrated circuit device having a plurality of processing lanes, the method comprising:

determining a first number of packed data words among one or more first packed data words associated with a first processing lane of the plurality of processing lanes;

associating the first number of packed data words with a first used field of the first processing lane, wherein the first used field indicates the first number of packed data words in the first processing lane;

determining a second number of packed data words among one or more second packed data words associated with a second processing lane of the plurality of processing lanes;

associating the second number of packed data words with a second used field of the second processing lane, wherein the second used field indicates the second number of packed data words in the second processing lane;

generating a first sub-stream of data, including the one or more first packed data words, in the first processing lane of the plurality of processing lanes;

generating a second sub-stream of data, including the one or more second packed data words, in the second processing lane of the plurality of processing lanes, wherein the first and second sub-streams are of variable lengths; and

outputting at least the first and second sub-streams as a single bitstream, wherein said outputting at least the first and second sub-streams includes:

storing the one or more first packed data words of the first sub-stream in a variable record length memory based, at least in part, on the first used field of the first processing lane; and

storing the one or more second packed data words of the second sub-stream in the variable record length memory based, at least in part, on the second used field of the second processing lane.

2. The method of claim 1 , wherein:

said generating a first sub-stream of data comprises packing first consecutive data words among one or more first data words associated with the first processing lane into the one or more first packed data words associated with the first processing lane; and

said generating a second sub-stream of data comprises packing second consecutive data words among one or more second data words associated with the second processing lane into the one or more second packed data words associated with the second processing lane.

3. The method of claim 2 , further comprising:

summing a first number of bits among the one or more first data words associated with the first processing lane of the plurality of processing lanes;

summing a second number of bits among the one or more second data words associated with the second processing lane of the plurality of processing lanes;

determining whether the first number of bits is an exact multiple of a predetermined data word length; and

in response to determining that the first number of bits is not an exact multiple of the predetermined data word length, combining certain bits of the first processing lane with bits of the second processing lane.

4. The method of claim 3 , wherein:

said generating a first sub-stream of data further comprises packing the first consecutive data words among the one or more first data words associated with the first processing lane, excluding the certain bits combined with bits of the second processing lane, into the one or more first packed data words associated with the first processing lane, wherein a third number of bits of the one or more first packed data words associated with the first processing lane is the exact multiple of the predetermined data word length; and

said generating a second sub-stream of data comprises packing the second consecutive data words among the one or more second data words associated with the second processing lane, including the certain bits combined with bits of the second processing lane, into the one or more second packed data words associated with the second processing lane.

5. The method of claim 1 , wherein said outputting at least the first and second sub-streams comprises outputting at least the first sub-stream and the second sub-stream concurrently.

6. The method of claim 1 , wherein said outputting at least the first and second sub-streams comprises transposing at least the first and second sub-streams across the plurality of processing lanes, such that consecutive data words in each of the first and second sub-streams are distributed across different processing lanes.

7. The method of claim 1 , wherein said outputting at least the first and second sub-streams comprises:

selectively outputting at least the first and second sub-streams to a conditional output stream from respective processing lanes such that only the processing lanes having valid data words output data associated with the first and second sub-streams to the conditional output stream; and

writing the conditional output stream to a memory device.

8. The method of claim 1 , wherein said outputting at least the first and second sub-streams comprises outputting each of the first and second sub-streams based, at least in part, on an order of the respective processing lanes.

9. The method of claim 1 , wherein said outputting at least the first and second sub-streams comprises:

outputting first indices associated with corresponding data words from among one or more first data words in the first sub-stream; and

outputting second indices associated with corresponding data words from among one or more second data words in the second sub-stream.

10. The method of claim 9 , further comprising:

writing the bitstream to a memory device, wherein said writing the bitstream includes writing each of the one or more first data words to the memory device based on respective first indices; and

writing each of the one or more second data words to the memory device based on respective second indices.

11. The method of claim 10 , wherein the memory device is a dynamic random access memory.

12. A system for executing memory operations on variable length records, the system comprising:

a processing element including a plurality of processing lanes, wherein the processing element is configured to generate, concurrently, at least first and second sub-streams of data, and wherein the processing element further includes:

determining circuitry configured to:

determine a first number of packed data words among one or more first packed data words associated with a first processing lane of the plurality of processing lanes;

associate the first number of packed data words with a first used field of the first processing lane, wherein the first used field indicates the first number of packed data words in the first processing lane;

determine a second number of packed data words among one or more second packed data words associated with a second processing lane of the plurality of processing lanes; and

associate the second number of packed data words with a second used field of the second processing lane, wherein the second used field indicates the second number of packed data words in the second processing lane;

first generating circuitry configured to generate the first sub-stream of data including the one or more first packed data words in the first processing lane of the plurality of processing lanes;

second generating circuitry configured to generate the second sub-stream of data including the one or more second packed data words in the second processing lane of the plurality of processing lanes, wherein the first and second sub-streams are of variable lengths; and

third generating circuitry configured to generate a single bitstream by combining at least the first and second sub-streams;

wherein the processing element further includes output circuitry configured to:

store the one or more first packed data words of the first sub-stream in a variable record length memory based, at least in part, on the first used field of the first processing lane; and

store the one or more second packed data words of the second sub-stream in the variable record length memory based, at least in part, on the second used field of the second processing lane.

13. The system of claim 12 , wherein:

the first generating circuitry is further configured to pack first consecutive data words among one or more first data words associated with the first processing lane into the one or more first packed data words associated with the first processing lane; and

the second generating circuitry is further configured to pack second consecutive data words among one or more second data words associated with the second processing lane into the one or more second packed data words associated with the second processing lane.

14. The system of claim 13 , further comprising:

summing circuitry configured to:

sum a first number of bits among the one or more first data words associated with the first processing lane of the plurality of processing lanes; and

sum a second number of bits among the one or more second data words associated with the second processing lane of the plurality of processing lanes;

wherein the determining circuitry is further configured to determine whether the first number of bits is an exact multiple of a predetermined data word length; and

combining circuitry configured to combine certain bits of the first processing lane with bits of the second processing lane in response to determining that the first number of bits is not an exact multiple of the predetermined data word length.

15. The system of claim 14 , wherein:

the first generating circuitry is further configured to pack the first consecutive data words among the one or more first data words associated with the first processing lane, excluding the certain bits combined with bits of the second processing lane, into the one or more first packed data words associated with the first processing lane, wherein a third number of bits of the one or more first packed data words associated with the first processing lane is the exact multiple of the predetermined data word length; and

the second generating circuitry is further configured to pack the second consecutive data words among the one or more second data words associated with the second processing lane, including the certain bits combined with bits of the second processing lane, into the one or more second packed data words associated with the second processing lane.

16. The system of claim 13 , wherein the processing element further includes circuitry configured to:

output first indices associated with corresponding data words from among the one or more first data words in the first sub-stream; and

output second indices associated with corresponding data words from among the one or more second data words in the second sub-stream.

17. The system of claim 16 , further comprising:

a memory device including circuitry configured to:

store the one or more first data words based on respective first indices; and

store the one or more second data words based on respective second indices.

18. The system of claim 17 , wherein the memory device is a dynamic random access memory.

19. The system of claim 12 , wherein the processing element further includes circuitry configured to transpose at least the first and second sub-streams across the plurality of processing lanes.

20. The system of claim 12 , wherein the processing element further includes circuitry configured to:

determine whether each of the processing lanes includes one or more valid data words associated with at least the first and second sub-streams; and

selectively output at least the first and second sub-streams to a conditional output stream from respective processing lanes such that only the processing lanes having the one or more valid data words are configured to output data associated with the first and second sub-streams to the conditional output stream.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: THE SKEET PRACTICE, LLC
To: CALOS FUND LIMITED LIABILITY COMPANY
Reel/Frame 038125/0296 →
MERGER Recorded Dec 29, 2015
From: CALOS FUND LIMITED LIABILITY COMPANY
To: OL SECURITY LIMITED LIABILITY COMPANY
Reel/Frame 037373/0402 →