IP Library › Granted Patent US 11,836,376
Granted Patent B2
US 11,836,376 · App. 17/844,783 · Granted Dec 5, 2023

Convolution time de-interleaver and method for operating a convolution time de-interleaver

Inventors: Yi-Lin Shie (Hsinchu, TW); Wen-Tsai Liao (Hsinchu, TW); Lili Tan (Suzhou, CN)
Assignee: REALTEK SEMICONDUCTOR CORPORATION
G06F3/0655G06F3/0604G06F3/0673
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 11,836,376
App. No.
17/844,783
Granted
Dec 5, 2023
Kind
B2
Abstract

A convolution time de-interleaver includes an input buffer, an output buffer, a memory, an input control circuit, an output control circuit, and a controller. The memory includes a plurality of memory blocks. The input control circuit sequentially outputs a plurality of entries of data to a plurality of input register unit groups of the input buffer respectively and correspondingly. After a predetermined amount of data have been written to the input buffer, the controller writes part of data stored in the input buffer to a corresponding memory block. After the plurality of memory blocks are written, the controller writes data stored in a corresponding memory block to the output buffer. The output control circuit sequentially outputs a plurality of pieces of data stored in a plurality of output register unit groups of the output buffer.

Claims (61)

1. A convolution time de-interleaver, comprising:

an output buffer, comprising H first output register unit groups, each first output register unit group comprising W first output register units, wherein H and W are integers greater than 1;

an input buffer, comprising H first input register unit groups corresponding to the H first output register unit groups, wherein a quantity of first input register units in an h th first input register unit group is equal to a sum of W and H minus h, and h is a positive integer less than or equal to H;

a memory, comprising K first memory blocks, each first memory block comprising H first memory unit groups corresponding to the H first output register unit groups and the H first input register unit groups, and each first memory unit group comprising W first memory units, wherein K is a positive integer;

an input control unit, configured to sequentially write H entries of input data to the H first input register unit groups correspondingly;

an output control unit, configured to sequentially output H entries of output data stored in the H first output register unit groups; and

a controller, configured to, after writing one entry of input data to each of the H first input register unit groups for W times, write data stored in W first input register units that have not been written for the longest time in each of the first input register unit groups to a corresponding first memory unit group of a first memory block having a priority write order; and, after writing H times W entries of data to each of the K first memory blocks, write data stored in a first memory block having a priority read order to the H first output register unit groups of the output buffer;

wherein:

each first output register unit, each first input register unit, and each first memory unit have a same bit capacity; and

a bit capacity of each first memory block is an integer multiple of a single read/write bandwidth of the memory.

2. The convolution time de-interleaver of claim 1 , wherein:

the H first memory unit groups in each first memory block have consecutive addresses.

3. The convolution time de-interleaver of claim 1 , wherein:

the first memory block having the priority write order is a first memory block that has not been written for the longest time in the K first memory blocks.

4. The convolution time de-interleaver of claim 1 , wherein:

the first memory block having the priority read order is a first memory block that has not been written for the longest time in the K first memory blocks.

5. The convolution time de-interleaver of claim 1 , wherein the memory is a double data rate synchronous dynamic random access memory (DDR SDRAM).

6. The convolution time de-interleaver of claim 1 , wherein:

the output buffer further comprises H second output register unit groups, each second output register unit group comprising W second output register units;

the input buffer further comprises H second input register unit groups corresponding to the H second output register unit groups, wherein a quantity of second input register units in an h th second input register unit group is equal to a sum of W and H minus h; and

the memory further comprises (K−1) second memory blocks, each second memory block comprising H second memory unit groups corresponding to the H second output register unit groups and H second input register unit groups, and each second memory unit group comprising W second memory units, wherein K is an integer greater than 1.

7. The convolution time de-interleaver of claim 6 , wherein:

the input control unit is configured to, after writing H entries of input data to the H first input register unit groups, sequentially write another H entries of input data to the H second input register unit groups correspondingly; and

the output control unit is further configured to, after outputting H entries of output data stored in the H first output register unit groups, sequentially output H entries of output data stored in the H second output register unit groups.

8. The convolution time de-interleaver of claim 7 , wherein:

the controller is further configured to, after writing one entry of input data to each of the H second input register unit groups for W times, write data stored in W second input register units that have not been written for the longest time in each second input register unit group to a corresponding second memory unit group of a second memory block that has not been written for the longest time in the (K−1) second memory blocks; and, after writing H times W entries of data to each of the (K−1) second memory blocks, write data stored in a second memory block that has not been written for the longest time in the (K−1) second memory blocks to the H second output register unit groups of the output buffer.

9. The convolution time de-interleaver of claim 6 , further comprising:

(H−1) shift register unit groups, wherein an i th shift register unit group comprises (H−i) shift register units, and i is an integer less than or equal to (H−1);

wherein:

H is an integer greater than 2;

the input control unit is further configured to, after writing H entries of input data to the H second input register unit groups, sequentially write (H−1) entries of input data to (H−1) first shift register units in the (H−1) shift register unit groups correspondingly; and

the output control unit is further configured to, after outputting H entries of output data stored in the H second output register unit groups, sequentially output H entries of output data stored in (H−1) last shift register units in the (H−1) shift register unit groups.

10. The convolution time de-interleaver of claim 9 , wherein:

the input control unit is further coupled to the output control unit, and the input control unit is further configured to, after sequentially writing the (H−1) entries of input data to the (H−1) first shift register units correspondingly, directly transmit another entry of input data to the output control unit for outputting.

11. A method for operating a convolution time de-interleaver, the convolution time de-interleaver comprising an output buffer, an input buffer, and a memory, the output buffer comprising H first output register unit groups, each first output register unit group comprising W first output register units, the input buffer comprising H first input register unit groups corresponding to the H first output register unit groups, a quantity of first input register units in an h th first input register unit group being equal to a sum of W and H minus h, and h is a positive integer less than or equal to H, the memory comprising K first memory blocks, each first memory block comprising H first memory unit groups corresponding to the H first output register unit groups and H first input register unit groups, and each first memory unit groups comprising W first memory units, wherein each first output register unit, each first input register unit, and each first memory unit have a same bit capacity, a bit capacity of each first memory block is an integer multiple of a single read/write bandwidth of the memory, H and W are integers greater than 1, K is a positive integer, and h is a positive integer less than or equal to H, the method comprising:

sequentially writing H entries of input data to the H first input register unit groups correspondingly;

when sequentially writing the H entries of input data to the H first input register unit groups correspondingly, sequentially outputting H entries of output data stored in the H first output register unit groups at the same time;

after writing one entry of input data to each of the H first input register unit groups for W times, writing data stored in W first input register units that have not been written for the longest time in each of the first input register unit groups to a corresponding first memory unit group of a first memory block having a priority write order; and

after writing H times W entries of data to each of the K first memory blocks, writing data stored in a first memory block having a priority read order to the H first output register unit groups of the output buffer.

12. The method of claim 11 , wherein:

the H first memory unit groups in each first memory block have consecutive addresses.

13. The method of claim 11 , wherein:

the first memory block having the priority write order is a first memory block that has not been written for the longest time in the K first memory blocks.

14. The method of claim 11 , wherein:

the first memory block having the priority read order is a first memory block that has not been written for the longest time in the K first memory blocks.

15. The method of claim 11 , wherein the memory is a double data rate synchronous dynamic random access memory (DDR SDRAM).

16. The method of claim 11 , wherein:

the output buffer further comprises H second output register unit groups, each second output register unit groups comprising W second output register units;

the input buffer further comprises H second input register unit groups corresponding to the H second output register unit groups, wherein a quantity of second input register units in an h th second input register unit group is equal to a sum of W and H minus h; and

the memory further comprises (K−1) second memory blocks, each second memory block comprising H second memory unit groups corresponding to the H second output register unit groups and H second input register unit groups, and each second memory unit groups comprising W second memory units, wherein K is an integer greater than 1.

17. The method of claim 16 , further comprising:

after writing H entries of input data to the H first input register unit groups, sequentially writing another H entries of input data to the H second input register unit groups correspondingly; and

after outputting H entries of output data stored in the H first output register unit groups, sequentially outputting H entries of output data stored in the H second output register unit groups.

18. The method of claim 17 , further comprising:

after writing one entry of input data to each of the H second input register unit groups for W times, writing data stored in W second input register units that have not been written for the longest time in each second input register unit group to a corresponding second memory unit group of a second memory block that has not been written for the longest time in the (K−1) second memory blocks; and

after writing H times W entries of data to each of the (K−1) second memory blocks, writing data stored in a second memory block that has not been written for the longest time in the (K−1) second memory blocks to the H second output register unit groups of the output buffer.

19. The method of claim 16 , wherein the convolution time de-interleaver further comprises (H−1) shift register unit groups, wherein an i th shift register unit groups comprises (H−i) shift register units, i is an integer less than or equal to (H−1), and H is an integer greater than 2, the method further comprising:

after writing H entries of input data to the H second input register unit groups, sequentially writing (H−1) entries of input data to (H−1) first shift register units in the (H−1) shift register unit groups correspondingly; and

after outputting H entries of output data stored in the H second output register unit groups, sequentially outputting H entries of output data stored in (H−1) last shift register units in the (H−1) shift register unit groups.

20. The method of claim 19 , further comprising:

after writing the (H−1) entries of input data to the (H−1) first shift register units and outputting the (H−1) entries of output data stored in the (H−1) last shift register units, directly outputting one entry of input data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2022
From: SHIE, YI-LIN; LIAO, WEN-TSAI; TAN, LILI
To: REALTEK SEMICONDUCTOR CORPORATION
Reel/Frame 060256/0821 →
Priority Claims (1)
CN 202110697483.5 · Jun 23, 2021 · national
Continuity (1)
Related Publication 20220413747A1 · Dec 29, 2022