Transport block is nothing but the payload for physical layer, specifically for the shared channel such as PDSCH and PUSCH. The size of the transport block is chosen using several parameters, which are derived from several other parameters. In short, the transport block size itself is calculated in MAC/L2 and not in physical layer.
There is a different procedure for choosing the transport block size for each of the below scenarios,
- For downlink
- For uplink
- For SI-RNTI, RA-RNTI and P-RNTI
- For special subframe in case of TDD frame configuration
Let us consider each case one by one later, but before that, let us see what all parameters are considered for determining the transport block size,
- Amount of data available from the user
- Modulation scheme possible based on the CQI reported by the user
- Number of resource blocks available in the physical resource grid
The MAC has to first decide on the modulation scheme that can be scheduled to the user and then check the physical resource grid for availability of the resource blocks. From this step the MAC can decide upon the modulation and coding scheme index (I_MCS) and then decide upon the number of resource blocks (N_PRB), that can be allocated to the user. After this step the transport block size index (I_TBS) is derived from the look up table as specified in the LTE phy specification 36.213 sec 188.8.131.52 for downlink and sec 8.6.1 for uplink.
So after knowing the I_TBS and N_PRB, there shall be a table look up as specified in LTE phy specification 36.213, section 184.108.40.206.1, which will determine the transport block size for the current subframe for the user.
For SI-RNTI, RA-RNTI, P-RNTI
This is a special case, where the procedure for transport block size will deviate from its normal procedure. In this case, the below procedure is done,
- For DCI format1A
- Modulation scheme is always QPSK
- I_TBS is set to I_MCS
- N_PRB is decided by the least significant bit of the 2 bit TPC command field, N_PRB=2 if the bit is 0, 3 otherwise
- Table look is done using N_PRB and I_TBS from the table 220.127.116.11.1, which restricts the maximum transport block size for these RNTI to about 2216 bits
- Please note here that, the N_PRB is set to 2 or 3 only for choosing the transport block size and the scheduler has right to choose any number of resource blocks for mapping the data on the physical resource grid and at times it has to do that mandatority because of the reason that, for a transport block size of 2216 (worst case), if the physical layer maps it onto 3 resource blocks the coding rate will exceed the permissible value of 0.93 in LTE and the UE will skip decoding the transport block, this again is because of the restriction that, no other modulation scheme other than QPSK can be used
- For DCI format1C
- I_TBS is set to I_MCS
- Table look is done using N_PRB and I_TBS from the table 18.104.22.168.3-1
For Special Subframe in TDD
In case of a special subframe in TDD the transport block size is chosen as below,
- N_PRB is set to maximum of (ceil(N_PRB*0.75),1), this is due to the fact that, in special subframes, there shall be lesser number of symbols in the subframe compared to a normal subframe and hence lesser physical resource to map the data.
- Please note that, the above step is done only to choose the transport block size and not for mapping. For eg, if the original N_PRB was 40, the as per the formula the corrected N_PRB will be 30, and now the transport block size is chosen using the N_PRB=30, where as the transport block is actually mapped on to 40 PRBs itself
Apart from this, the MAC scheduler always has to keep in mind, the physical layer coding rate before scheduling for a user. The maximum supported coding rate by LTE UEs for the initial transmission is always set to 0.93. The physical layer coding rate is the ratio of transport block size and available physical resources in the downlink/uplink grid.