4G/LTE - BL/CE

 

 

 

PDSCH Subframe Assignment

 

In LTE-M1, PDSCH can be transmitted repeatedly to increase cell coverage. Because only 1.4 Mhz (6RB) can be used and MPDCCH  takes up user data area of the subframe (similar to EPDCCH), MPDCCH and PDSCH is not transmitted in the same subframe. So subframe allocation of PDSCH becomes pretty complicated comparing to legacy LTE case. This process is defined in 36.213-7.1.11 PDSCH subframe assignment for BL/CE UE using MPDCCH and can be illustrated as follows :

Two numbers decide the answer, and the specification keeps them apart. One is how many subframes the PDSCH occupies, and the other is where the first of them sits relative to the MPDCCH that scheduled it. 36.213 7.1.11 settles both.

Followings are the topics to be covered in this page.

Which subframes carry the PDSCH

The diagram below is 36.213 7.1.11 drawn out. It fixes the reference point first, because everything else is measured from it, and that reference point is the end of the MPDCCH rather than its start.

 

Timeline with consecutive repeating MPDCCH ending at subframe n, and consecutive PDSCH repeated N times after offsets k0, k1 and kN-1

The two blocks and the offsets between them. Subframe n is the last MPDCCH subframe, not the first, and every k is measured from there.

  • The blue blocks are the MPDCCH and the red blocks are the PDSCH : both are drawn as runs of repeated subframes, which is the normal case for a BL/CE UE.
  • Subframe n is the end of the MPDCCH, not the start : 36.213 7.1.11 defines it as the last subframe the MPDCCH is transmitted in. The UE derives it from the starting subframe and the DCI subframe repetition number field.
  • The green arrows are the offsets k : the PDSCH occupies subframes n plus k, with k running from k0 up to the last one, so k0 marks the first repetition.
  • N is the number of repetitions : the note at the lower right points at it and names the three tables that supply it, which is what the next section covers.
  • There is a gap between the two blocks on purpose : the first PDSCH subframe is the second BL/CE downlink subframe after n by default, which is the cross-subframe scheduling this page opens with.

One word in that definition does more work than it looks. The PDSCH subframes are consecutive BL/CE downlink subframes, not consecutive subframes. Any subframe that is not available to a BL/CE UE is stepped over, so the elapsed time for N repetitions is longer than N milliseconds whenever the cell has such subframes.

The three repetition level tables

The repetition number field in the DCI is only two or three bits wide, so it cannot carry a repetition count directly. It carries an index instead, and a table turns that index into a number. There is one table per DCI format, and each one is a different size.

The three tables defining N values are defined as follows.

 

< 36.213-Table 7.1.11-1: PDSCH repetition levels (DCI Format 6-1A) >

36.213 Table 7.1.11-1, four repetition levels selected by pdsch-maxNumRepetitionCEmodeA

Four values per row, because the repetition number field in DCI format 6-1A is two bits wide.

 

< 36.213-36.213-Table 7.1.11-2: PDSCH repetition levels (DCI Format 6-1B) >

36.213 Table 7.1.11-2, eight repetition levels per row selected by pdsch-maxNumRepetitionCEmodeB

Eight values per row, because the repetition number field in DCI format 6-1B is three bits wide. The configured maximum is always the last entry of its row.

 

< 36.213-36.213-Table 7.1.11-3: PDSCH repetition levels (DCI Format 6-2) >

36.213 Table 7.1.11-3, four sets of eight repetition levels selected by the 2-bit DCI subframe repetition number field in DCI format 6-2

Here the row comes from a field in the DCI rather than from a higher layer parameter, so paging can move between sets without reconfiguration.

Read across the three and a pattern appears that the tables never state. The number of entries in a row is two to the power of the repetition number field width in that DCI format. Two bits give four entries for 6-1A, and three bits give eight for 6-1B and 6-2. The table exists to spread a handful of index values across a wide range of repetition counts.

The sets are not the lowest values either. Each configured row ends on the value its higher layer parameter names, and the entries below it are spaced out rather than consecutive. A network that configures r2048 for CE mode B gives the scheduler 4, 16, 64, 128, 256, 512, 1024 and 2048. Three bits therefore keep coarse control over three orders of magnitude.

Format 6-2 is selected differently again. Its row comes from the two bit DCI subframe repetition number field rather than from a configured parameter, so the network can move paging between the four sets grant by grant.

  • Row count follows the field width : four entries for a two bit field and eight for a three bit field, in every one of the three tables.
  • The configured value is the top of its row : the parameter names the maximum, and the table fills in the steps below it.
  • The steps are logarithmic rather than even : that is how three bits cover everything from 4 repetitions to 2048.
  • Only 6-2 picks its row from the DCI : 6-1A and 6-1B take theirs from a higher layer parameter, so their set is fixed until the cell is reconfigured.

How the repetition maximum is configured

Two of the three tables above have a row for every value of a higher layer parameter, and one row for that parameter not being sent at all. That parameter is where the network picks which set of repetition levels the DCI index will select from, so it decides the ceiling before any grant is issued.

The importantant thing to be noticed is that there are big difference between CEmodeA and CEmodeB in terms of max Number Repetition.  In General, CE Mode B perform much more repetition. The max number of repetition is configured by higher layer signaling (SIB2)as follows.

 

Following is based on 36.331 v19.3.0 (Release 19)

PDSCH-ConfigCommon-v1310 ::=       SEQUENCE {
    pdsch-maxNumRepetitionCEmodeA-r13   ENUMERATED {
                                            r16, r32 }          OPTIONAL,   -- Need OR
    pdsch-maxNumRepetitionCEmodeB-r13   ENUMERATED {
                                            r192, r256, r384, r512, r768, r1024,
                                            r1536, r2048}       OPTIONAL    -- Need OR
}

Both fields are OPTIONAL, and that is what the Not configured row of the two tables above is for. A network that sends neither field leaves the UE on the default set of repetition levels. The tables therefore need a row for the parameter being absent as well as one for each value it can take.

The enumerations also match the table rows one for one. The CE mode A field offers r16 and r32, which are the two configured rows of 36.213 Table 7.1.11-1. The CE mode B field offers eight values from r192 to r2048, which are the eight configured rows of Table 7.1.11-2.

 

 

The decode below is a capture from one live network rather than specification text, so read it as one operator's choice. The two fields the section is about are marked in red, together with their uplink counterparts.

Example >

sib2
    radioResourceConfigCommon
        bcch-Config
        pcch-Config
        prach-Config
        pdsch-ConfigCommon
        pusch-ConfigCommon
        pucch-ConfigCommon
        soundingRS-UL-ConfigCommon: release (0)
        uplinkPowerControlCommon
        ul-CyclicPrefixLength: len1 (0)
        bcch-Config-v1310
            modificationPeriodCoeff-v1310: n64 (0)
        pcch-Config-v1310
            paging-narrowBands-r13: 1
            mpdcch-NumRepetition-Paging-r13: r1 (0)
            nB-v1310: one64thT (0)
        freqHoppingParameters-r13
        pdsch-ConfigCommon-v1310
            pdsch-maxNumRepetitionCEmodeA-r13: r16 (0)
            pdsch-maxNumRepetitionCEmodeB-r13: r192 (0)
        pusch-ConfigCommon-v1310
            pusch-maxNumRepetitionCEmodeA-r13: r8 (0)
            pusch-maxNumRepetitionCEmodeB-r13: r192 (0)
            pusch-HoppingOffset-v1310: 1
        prach-ConfigCommon-v1310
        pucch-ConfigCommon-v1310
            n1PUCCH-AN-InfoList-r13: 1 item
                Item 0
                    N1PUCCH-AN-InfoList-r13 item: 57
            pucch-NumRepetitionCE-Msg4-Level0-r13: n1 (0)
            pucch-NumRepetitionCE-Msg4-Level1-r13: n1 (0)
    ue-TimersAndConstants
    freqInfo
        additionalSpectrumEmission: 1
    timeAlignmentTimerCommon: infinity (7)

In this capture the downlink maximum for CE mode A is r16 and for CE mode B is r192, which are the lowest value each field offers. Read those back through the tables above. A CE mode A grant in this cell selects from 1, 4, 8 and 16 repetitions, and a CE mode B grant from 1, 4, 8, 16, 32, 64, 128 and 192.

The uplink pair sits directly underneath and is configured separately. Here pusch-maxNumRepetitionCEmodeA is r8 while the downlink is r16, so this network is willing to repeat a downlink transmission twice as many times as an uplink one.

  • The tables need a Not configured row because the fields are optional : a network that sends neither leaves the UE on the default set.
  • The configured value is a ceiling, not a setting : it chooses which set of repetition levels the DCI index selects from, and the DCI still picks one of them per grant.
  • Downlink and uplink are configured independently : pdsch-maxNumRepetitionCEmode and pusch-maxNumRepetitionCEmode are separate fields and need not match.
  • A capture is one network, not the specification : the values above are what this operator chose, and any of the enumerated values is equally legal.

What changed after Release 13

The reference at the foot of this page is 36.213 V13.2.0, and clause 7.1.11 has grown since. The three tables are untouched, and so is the definition of subframe n, so everything above still describes a Release 13 network correctly. What the clause gained is a second and a third way of laying the repetitions out.

Release 16 added multiple transport blocks. The clause now counts subframes up to N times the number of scheduled transport blocks rather than up to N. That transport block count comes from the DCI when the field is present. A single grant can therefore cover several transport blocks, each repeated N times.

The same release added a gap. When multiTB-Gap is configured and the DCI CRC is scrambled by G-RNTI, the PDSCH subframes are no longer consecutive. The UE leaves a configured gap after every N subframes, which lets it sleep between transport blocks instead of receiving continuously.

One more option changes the delay this page draws as fixed. Under CE mode A the DCI can carry a field named PDSCH scheduling delay and HARQ-ACK delay for 14 HARQ. When that field is present, the first PDSCH subframe is no longer the second BL/CE downlink subframe after n, and the DCI supplies the delay instead.

Release

What 36.213 7.1.11 gained

Field

Rel-13

The picture on this page. One transport block, N consecutive BL/CE downlink subframes, starting at the second such subframe after n

pdsch-maxNumRepetitionCEmodeA-r13, pdsch-maxNumRepetitionCEmodeB-r13

Rel-16

Several transport blocks from one grant, an optional gap between them instead of a continuous run, and an interleaving option that changes which subframe belongs to which transport block

ce-PDSCH-MultiTB-Config-r16, multiTB-Gap-r16

Compared against 36.213 v19.4.0, with each release dated by the suffix of the field that configures it in 36.331. The three repetition level tables are the same in both versions.

  • The tables did not change : all three screenshots above match 36.213 v19.4.0 row for row, so nothing on this page needs correcting.
  • The subframe count is no longer just N : with multi transport block scheduling it is N times the number of transport blocks the grant carries.
  • Consecutive became optional : multiTB-Gap breaks the run into blocks with a gap, which a Release 13 UE never sees.
  • The two subframe delay has an alternative : a CE mode A DCI can carry the scheduling delay itself rather than leaving it at the default.

Reference

The clauses and tables this page is built on, and the versions they were checked against.

[1] 3GPP TS 36.213 V13.2.0 (2016-06) Physical layer procedures

[2]

[3] 3GPP TS 36.213 v19.4.0 - clause 7.1.11 PDSCH subframe assignment for BL/CE UE, with Tables 7.1.11-1, 7.1.11-2 and 7.1.11-3

[4] 3GPP TS 36.331 v19.3.0 - the PDSCH-ConfigCommon-v1310 information element, and the ce-PDSCH-MultiTB-Config and multiTB-Gap fields