IP Library Granted Patent US 10,389,481
Granted Patent B2
US 10,389,481 · App. 15/716,082 · Granted Aug 20, 2019

Methods and apparatus for calculating transport block (TB) cyclic redundancy ceck (CRC) values

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 10,389,481
App. No.
15/716,082
Granted
Aug 20, 2019
Kind
B2
Abstract

In an exemplary embodiment, a method for calculating transport block (TB) cyclic redundancy check (CRC) values includes receiving code blocks (CBs) that form code block groups (CBGs), which form a TB, generating partial TB CRC values from the CBGs, and processing the partial TB CRC values to determine a full TB CRC value. The method also includes comparing the full TB CRC value to a received TB CRC value to determine if the TB has been successfully received. An apparatus includes a receiver that receives CBs that form a TB, and a generator that generates partial TB CRC values from the CBGs. The apparatus also includes a TB CRC checker that processes the partial TB CRC values to determine a full TB CRC value that is compared to a received TB CRC value to determine if the TB has been successfully received.

Claims (61)

1. A method of receiving information by a receiver via a wireless communication network, comprising:

receiving code blocks (CBs) that form one or more code block groups (CBGs), and wherein the one or more CBGs form a transport block (TB);

generating partial TB cyclic redundancy check (CRC) values from the one or more CBGs;

processing the partial TB CRC values to determine a full TB CRC value; and

comparing the full TB CRC value to a received TB CRC value to determine if the TB has been successfully received, wherein the generating partial TB CRC values includes generating the partial TB CRC values from successfully received CBGs and determining a received CBG to be successfully received if each CB within the received CBG passes a CRC check.

2. The method of claim 1 , further comprising requesting retransmission of at least one of a CB, a CBG, or the TB, if any CB or CBG is not successfully received.

3. The method of claim 1 , wherein the operation of generating the partial TB CRC values comprises:

dividing the successfully received CBGs by a TB CRC polynomial to generate the partial TB CRC values, wherein a remainder of each division operation represents one of the partial TB CRC values; and

storing the partial TB CRC values in a memory.

4. The method of claim 1 , wherein the operation of generating the partial TB CRC values comprises determining a received CBG to be successfully received if it passes a CRC check.

5. The method of claim 1 , wherein the operation of processing the partial TB CRC values comprises:

For each CBG(i), performing operations of:

calculating a value N;

calculating a value T from the value N and a T matrix stored in memory; and

calculating a value Z(i) based on the partial TB CRC values and the value T; and

summing the Z(i) values to determine if the TB was successfully received.

6. The method of claim 5 , wherein the operation of calculating the value of N comprises calculating the value of N from [N=(N_CBG−i)*L —CBG], wherein N _CBG is a total number of CBGs, and L_CBG is a length of a CBG.

7. The method of claim 5 , wherein the operation of calculating the value of T comprises:

determining a binary representation of N expressed as (bN_max . . . b1 b0); and

calculating the value of T from an expression [T=(T(N_max) bN_max-1 . . . (T1) b0)].

8. The method of claim 5 , wherein the operation of calculating the value Z(i) is performed by calculating an expression [Z(i)=T*U(i)], wherein U(i) is a selected partial TB CRC value.

9. The method of claim 5 , wherein the operation of summing comprises determining the TB was successfully received if the sum of the Z(i) values is equal to zero.

10. An apparatus capable of receiving information via a wireless communication network, comprising:

a receiver that receives code blocks (CBs) that form one or more code block groups (CBGs), and wherein the one or more CBGs form a transport block (TB);

a generator that generates partial TB cyclic redundancy check (CRC) values from the one or more CBGs; and

a TB CRC checker that processes the partial TB CRC values to determine a full TB CRC value and compares the full TB CRC value to a received TB CRC value to determine if the TB has been successfully received,

wherein the generator generates the partial TB CRC values from successfully received CBGs, and generates the partial TB CRC values by dividing the successfully received CBGs by a TB CRC polynomial, wherein a remainder of each division operation represents one of the partial TB CRC values, and wherein the generator stores the partial TB CRC values in a memory.

11. The apparatus of claim 10 , further comprising a CRC checker that requests retransmission of at least one of a CB, a CBG, or the TB, if any CB or CBG is not successfully received.

12. The apparatus of claim 10 , wherein for each CBG(i), the TB CRC checker performs operations of:

calculating a value N;

calculating a value T from the value N and a T matrix stored in memory; and

calculating a value Z(i) based on the partial TB CRC values and the value T; and

summing the Z(i) values to determine if the TB was successfully received.

13. The apparatus of claim 12 , wherein the TB CRC checker calculates the value of N from [N=(N_CBG−i)*L_CBG], wherein N_CBG is a total number of CBGs, and L_CBG is a length of a CBG.

14. The apparatus of claim 12 , wherein the TB CRC checker calculates the value of T by determining a binary representation of N expressed as (bN—max . . . b1 0), and calculating the value of T from an expression [T=(T(N_max) bN_max-1. . . (T1) 0)].

15. The apparatus of claim 12 , wherein the TB CRC checker calculates the value Z(i) from [Z(i)=T*U(i)], wherein U(i) is a selected partial TB CRC value.

16. The apparatus of claim 12 , wherein the TB CRC checker determines that the TB was successfully received if the sum of the Z(i) values is equal to zero.

17. A method of receiving information by a receiver via a wireless communication network, comprising:

receiving code blocks (CBs) that form one or more code block groups (CBGs), and wherein the one or more CBGs form a transport block (TB);

generating partial TB cyclic redundancy check (CRC) values from the one or more CBGs;

processing the partial TB CRC values to determine a full TB CRC value; and

comparing the full TB CRC value to a received TB CRC value to determine if the TB has been successfully received,

wherein the processing the partial TB CRC values further includes:

for each CBG(i), performing operations of:

calculating a value N;

calculating a value T from the value N and a T matrix stored in memory; and

calculating a value Z(i) based on the partial TB CRC values and the value T;

summing the Z(i) values to determine if the TB was successfully received.

18. The method of claim 17 ,

wherein the calculating the value of N includes calculating the value of N from [N=(N_CBG−i)*L_CBG], wherein N_CBG is a total number of CBGs, and L_CBG is a length of a CBG; and

wherein the calculating the value of T includes determining a binary representation of N expressed as (bN 13 max . . . b1 b0); and calculating the value of T from an expression [T=(T(N 13 max) bN 13 max-1. . . (T1) b0)].

19. A receiver capable of receiving information via a wireless communication network, comprising:

a receiver that receives code blocks (CBs) that form one or more code block groups (CBGs), and wherein the one or more CBGs form a transport block (TB);

a generator that generates partial TB cyclic redundancy check (CRC) values from the one or more CBGs; and

a TB CRC checker that processes the partial TB CRC values to determine a full TB CRC value and compares the full TB CRC value to a received TB CRC value to determine if the TB has been successfully received,

wherein for each CB G(i), the TB CRC checker performs operations of:

calculating a value N;

calculating a value T from the value N and a T matrix stored in memory; and

calculating a value Z(i) based on the partial TB CRC values and the value T; and

summing the Z(i) values to determine if the TB was successfully received.

20. The receiver of claim 19 , wherein the TB CRC checker calculates the value of N from [N=(N_CBG−i)*L_CBG], wherein N_CBG is a total number of CBGs, and L_CBG is a length of a CBG.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY NAME PREVIOUSLY RECORDED AT REEL: 043858 FRAME: 0950. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 20, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 049236/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2017
From: REN, TIANMIN; KURAPATI, NAGABHUSHANA; HEIDARI, FARIBA
To: CAVIUM, INC.
Reel/Frame 043858/0950 →