4G/LTE - LTE Advanced

 

 

 

DCI

 

For basic introduction to DCI and Release 8 DCI, refer to DCI page. In this page, I would post on the DCIs that is new in LTE advanced. For easy comparison, I put the table showing both release 8 and release 10 DCIs. You can refer to 3GPP 36.212 5.3.3 Downlink control information for the details.

DCI Formats in Release 10

If you are not working on chipset design or early stage of chipset verification, there wouldn't be many cases where you have to look into DCI details. But understanding DCI details would give you more detailed understanding of LTE physical layer. So in terms of study purpose, it is important to understand DCI details.

 

 

Release 8

Release 10

Format 0

Format 0

Format 1

Format 1

Format 1A

Format 1A

Format 1B

Format 1B

Format 1C

Format 1C

Format 1D

Format 1D

Format 2

Format 2

Format 2A

Format 2A

 

Format 2B

 

Format 2C

Format 3

Format 3

Format 3A

Format 3A

 

Format 4

What would be the major difference between Release 8 and Release 10 in terms of DCI format ?

A couple of new DCI format is introduced ? like DCI format 2B,2C and Format 4 ?

Yes. It is a difference. But I think the more important differences is that a new field which is introduced in all Release 10 DCI formats. If you look into the DCI format description in 36.212 and compare the release 8 and release 10. You may find the following difference. In release 10, a new field called 'Carrier Indicator' field which is designed for the scheduling information for multi carrier. If you see in more detail, the bit length of the field is 0 or 3. it means that the field can be obmitted if it is not necessary.

 

Two extracts of 36.212 clause 5.3.3.1.2 Format 1, badged Release 8 and Release 10, with the Carrier indicator line underlined in red in the Release 10 extract

The same clause, 36.212 5.3.3.1.2, in two releases. One line was added and three words were inserted into the sentence above it.

  • The added line is the one underlined in red : Carrier indicator, 0 or 3 bits, with the clause deferring to its own reference [3] for when the field is present.
  • A second change sits in the opening sentence : Release 8 reads the scheduling of one PDSCH codeword; Release 10 reads one PDSCH codeword in one cell.
  • Carrier indicator is listed first : 36.212 clause 5.3.3.1 maps fields in the order they appear, with the first field at the lowest order information bit a0. The Carrier indicator therefore occupies a0 to a2 whenever it is there.
  • Both changes are still current : 36.212 v19.3.0 carries the Release 10 wording and the Carrier indicator line unchanged.
  • 0 or 3 is a length, not a value : when the field is absent the payload is three bits shorter, and payload length is what a UE matches during blind decoding.

The difference between Release 8 DCI format 0 and Release 10 DCI format 0 is as follows. Note that in Release 10 DCI format 0 can specify multicarrier information in CSI field.

One of the out standing difference you see in Release 10 DCI is the existence of 'Carrier Indicator' filed in DCI. But this is not the mandatory field. It may or may not be present in the DCI. Then, question would be how UE can figure out whether the Carrier Indicator field is present or not in the DCI it received ?

The answer is "The existence of Carrier Indicator field in DCI is notified to UE via cif-Presence IE in RRC message."

 

Format 0 (Release 8)

Format 0 (Release 10)

 

Carrier Indicator

Flag for format0/format1A differentiation

Flag for format0/format1A differentiation

Hopping flag

Hopping flag

Resource block assignment(RIV)

Resource block assignment (RIV)

MCS and RV

MCS and RV

NDI (New Data Indicator)

NDI (New Data Indicator)

TPC for PUSCH

TPC for PUSCH

Cyclic shift for DM RS

Cyclic shift for DM RS

UL index (TDD only)

UL index (TDD only)

Downlink Assignment Index (DAI)

Downlink Assignment Index (DAI)

CQI request (1 bit)

CSI request (1 or 2 bits : 2 bit is for multi carrier)

 

SRS request

 

Resource allocation type

What are new for the new DCI format : Format 2B and 2C ? I created a comparative table for you to see the difference between these new format and the existing field.

 

Format 2 (Rel 10)

Format 2A (Rel 10)

Format 2B (Rel 10)

Format 2C (Rel 10)

Carrier indicator

Carrier indicator

Carrier indicator

Carrier indicator

RA header

RA header

RA header

RA header

Resource block assignment

Resource block assignment

Resource block assignment

Resource block assignment

TPC command for PUCCH

TPC command for PUCCH

TPC command for PUCCH

TPC command for PUCCH

Downlink Assignment Index(TDD only)

Downlink Assignment Index(TDD only)

Downlink Assignment Index(TDD only)

Downlink Assignment Index(TDD only)

HARQ process number

HARQ process number

HARQ process number

HARQ process number

   

Scrambling identity

Antenna ports

Scrambling identity

Number of Layers

   

SRS request(TDD Only)

SRS request(TDD Only)

TB to CW flag

TB to CW flag

TB to CW flag

TB to CW flag

MCS for TB1

MCS for TB1

MCS for TB1

MCS for TB1

NDI for TB1

NDI for TB1

NDI for TB1

NDI for TB1

RV for TB1

RV for TB1

RV for TB1

RV for TB1

MCS for TB2

MCS for TB2

MCS for TB2

MCS for TB2

NDI for TB2

NDI for TB2

NDI for TB2

NDI for TB2

RV for TB2

RV for TB2

RV for TB2

RV for TB2

Precoding information

Precoding information

Precoding information

Precoding information

The totally new DCI introduced in Release 10, Format 4, carries the information as shown below.

 

Format 4

Carrier indicator (0 or 3 bits)

Resource block assignment

TPC command for scheduled PUSCH (2 bits)

Cyclic shift for DM RS and OCC index (3 bits)

Downlink Assignment Index (DAI) (2 bits)

CSI request (1 or 2 bits)

SRS request (2 bits)

Resource allocation type (1 bit)

MCS and RV for TB1 (5 bits)

NDI for TB1 (1 bit)

MCS and RV for TB2 (5 bits)

NDI for TB2 (1 bit)

Precoding information and number of layers

 

DCI 1 Examples

The format tables above give the field list. The tables below take a real payload and walk it field by field. That is the quickest way to see how a list of bit widths turns into one hex value, and where each field ends up inside it.

Example 1 > DCI Format 1 - 20 Mhz, Value = 0x0FC00005DC40

 

Field

Value

Value (Binary)

CarrierIndicator

0 (Dec)

000

RA header

RAType0

0

Resource block assignment

1111110000000000000000000

1111110000000000000000000

MCS

23 (Dec)

10111

HARQ process number

3 (Dec)

011

NDI

1

1

RV

0 (Dec)

00

TPC

01

01

Example 2 > DCI Format 1 - 20 Mhz, Value = 0x2FC00005DC00

 

Field

Value

Value (Binary)

CarrierIndicator

1 (Dec)

001

RA header

RAType0

0

Resource block assignment

1111110000000000000000000

1111110000000000000000000

MCS

23 (Dec)

10111

HARQ process number

3 (Dec)

011

NDI

1

1

RV

0 (Dec)

00

TPC

0 (Dec)

00

 

DCI 2A Examples

Format 2A carries two transport blocks, so modulation and coding scheme, new data indicator and redundancy version all appear twice in the field list. The example below shows both copies, and the precoding information field that 2A carries and 2C does not.

Example 1 > DCI Format 2A - 20 Mhz, Value = 0x7E000010BCBC

 

Field

Value

Value (Binary)

RA header

RAType0

0

Resource block assignment

1111110000000000000000000

1111110000000000000000000

TPC command for PUCCH

01

01

HARQ process number

0 (Dec)

000

TB to CW flag

0

0

MCS for TB1

23 (Dec)

10111

NDI for TB1

1

0

RV for TB1

0 (Dec)

00

MCS for TB2

23 (Dec)

10111

NDI for TB2

1

1

RV for TB2

0 (Dec)

00

 

DCI 2C Examples

Format 2C differs from 2A in one field. Where 2A carries precoding information, 2C carries antenna ports, scrambling identity and number of layers in three bits. It also adds an SRS request and an SRS timing offset, which 2A has neither of.

Example 1 > DCI Format 2C - 10 Mhz, Value = 0x7FFFDC3435C0

 

Field

Value

Value (Binary)

RA header

RAType0

0

Resource block assignment

11111111111111111

11111111111111111

TPC command for PUCCH

01

01

HARQ process number

6 (Dec)

110

Ports-SCID-Number of Layers

0

000

MCS for TB1

26 (Dec)

11010

NDI for TB1

0

0

RV for TB1

0 (Dec)

00

MCS for TB2

26 (Dec)

11010

NDI for TB2

1

1

RV for TB2

3 (Dec)

11

Example 2 > DCI Format 2C - 10 Mhz, Value = 0x1F3FD4202100

 

Field

Value

Value (Binary)

RA header

RAType0

0

Resource block assignment

00111110011111111

00111110011111111

TPC command for PUCCH

01

01

HARQ process number

2 (Dec)

110

Ports-SCID-Number of Layers

0

000

MCS for TB1

16 (Dec)

10000

NDI for TB1

0

0

RV for TB1

0 (Dec)

00

MCS for TB2

16 (Dec)

10000

NDI for TB2

1

1

RV for TB2

0 (Dec)

00

Who Schedule Each Component Carriers ?

When you have multiple Carriers in Carrier Aggregation, you naturally have a question. That is, who (which carrier) will be schedule resource allocation for each sub carriers ? The answer is a configuration choice rather than a fixed rule, and one RRC information element carries it for each secondary cell separately.

There are two types of method we can think of as illustrated below. In one case (Own Scheduling), each component carrier schedules for its own carrier. In the other case (Cross Carrier Scheduling), Primary Compnent Cell (or any specified serving cell) schedules the resource for all the component carriers.

Then you would have another question. How UE knows whether eNB is doing "cross carrier scheduling" or "non cross carrier scheduling" ?

This information is informed to UE via Higher Layer Signaling (RRC Message) as shown below.

 

Own Scheduling on the left, where PCC, SCC1 and SCC2 each have their own PDCCH pointing into their own PDSCH, and Cross Carrier Scheduling on the right, where only the PCC has a PDCCH and three arrows run from it into all three PDSCHs

The same three carriers under both arrangements. On the right the two secondary carriers have no PDCCH of their own, and a marker appears where their PDSCH is allowed to start.

  • On the left every carrier carries its own PDCCH : PCC, SCC1 and SCC2 each show a red PDCCH with an arrow into the yellow PDSCH beside it.
  • On the right only the PCC carries a PDCCH : three arrows leave it, one into the PCC PDSCH and one into each of the two secondary PDSCHs.
  • The secondary carriers gain a PDSCH Start marker : the green arrow labelled PDSCH Start on SCC1 and SCC2 is where their PDSCH begins. The white box before it is the space the missing PDCCH would have used.
  • The PCC keeps its own arrow in both cases : cross carrier scheduling adds the two secondary carriers to the PCC's work rather than moving that work elsewhere.

One information element carries the whole decision, and it is configured per secondary cell. 36.331 puts CrossCarrierSchedulingConfig-r10 inside physicalConfigDedicatedSCell-r10, which is where both of the captures further down find it. Its one member is a CHOICE with two branches, and the branch names say what they are for.

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

CrossCarrierSchedulingConfig-r10 ::=        SEQUENCE {
    schedulingCellInfo-r10              CHOICE {
        own-r10                             SEQUENCE {                  -- No cross carrier scheduling
            cif-Presence-r10                        BOOLEAN
        },
        other-r10                               SEQUENCE {                  -- Cross carrier scheduling
            schedulingCellId-r10                ServCellIndex-r10,
            pdsch-Start-r10                     INTEGER (1..4)
        }
    }
}

CrossCarrierSchedulingConfig-r13 ::=        SEQUENCE {
    schedulingCellInfo-r13              CHOICE {
        own-r13                             SEQUENCE {                  -- No cross carrier scheduling
            cif-Presence-r13                        BOOLEAN
        },
        other-r13                           SEQUENCE {                  -- Cross carrier scheduling
            schedulingCellId-r13                ServCellIndex-r13,
            pdsch-Start-r13                     INTEGER (1..4),
            cif-InSchedulingCell-r13                INTEGER (1..7)
        }
    }
}

The two branches are not symmetric, and that asymmetry is the answer to the question above. The own-r10 branch carries one boolean. 36.331 describes cif-Presence as indicating whether the carrier indicator field is present, value TRUE, or not, value FALSE, in PDCCH and EPDCCH DCI formats. So a cell can schedule only itself and still ask for the Carrier indicator to be sent.

The other-r10 branch carries two fields instead. schedulingCellId names the cell that signals the downlink allocations and the uplink grants for this secondary cell. pdsch-Start gives the starting OFDM symbol of PDSCH for that secondary cell. It has to be signalled, because that cell carries no PDCCH for the UE to read a control region length from.

The range of pdsch-Start looks wider than it is. 36.331 allows 1 to 4, then narrows the range by bandwidth. Values 1, 2 and 3 apply when the secondary cell's dl-Bandwidth is greater than 10 resource blocks. Values 2, 3 and 4 apply when it is 10 resource blocks or fewer. Three choices are available in either case.

Release 13 added one field to the same structure. CrossCarrierSchedulingConfig-r13 repeats both branches and gives the cross carrier branch cif-InSchedulingCell-r13, an INTEGER from 1 to 7. 36.331 describes it as the CIF value used in the scheduling cell to indicate this cell. Where the carrier indicator field is present, that value is 0. Three bits hold eight codepoints, one carrier aggregation grew past, so the mapping from codepoint to cell stopped being implicit.

  • One element, configured per secondary cell : CrossCarrierSchedulingConfig sits inside physicalConfigDedicatedSCell, so each SCell is answered separately.
  • The choice is between own and other : own-r10 means the cell schedules itself, other-r10 means another cell schedules it.
  • Only the own branch carries cif-Presence : a self-scheduling cell can still be told to expect a Carrier indicator in its DCI.
  • Only the cross carrier branch carries pdsch-Start : a cell with no PDCCH of its own cannot work out where its PDSCH begins, so it is told.
  • Release 13 added cif-InSchedulingCell : the CIF value that identifies this cell inside the scheduling cell is signalled rather than assumed.

 

Own Non Cross Carrier Scheduling

If Network (eNB) decided to do Own(Non-Cross carrier) Scheduling, it notifies UE using RRC message as shown below. This is the own-r10 branch of the CHOICE above, and the capture below shows what a UE actually receives when the eNB takes it.

RRC Connection Reconfiguration configuring own scheduling, decoded as a tree, capture. The red lines are the branch the text above is about.

rrcConnectionReconfiguration
    rrc-TransactionIdentifier: 0
    criticalExtensions: c1 (0)
        c1: rrcConnectionReconfiguration-r8 (0)
            rrcConnectionReconfiguration-r8
                radioResourceConfigDedicated
                    physicalConfigDedicated
                nonCriticalExtension
                    lateNonCriticalExtension: <MISSING>
                    nonCriticalExtension
                        nonCriticalExtension
                            sCellToAddModList-r10: 1 item
                                Item 0
                                    SCellToAddMod-r10
                                        sCellIndex-r10: 1
                                        radioResourceConfigDedicatedSCell-r10
                                            physicalConfigDedicatedSCell-r10
                                                nonUL-Configuration-r10
                                                    crossCarrierSchedulingConfig-r10
                                                        schedulingCellInfo-r10: own-r10 (0)
                                                            own-r10
                                                                .... ..0. cif-Presence-r10: False

Two things in the red lines are worth reading together. schedulingCellInfo-r10 resolves to own-r10. That branch carries no schedulingCellId and no pdsch-Start, because neither has anything to say when a cell schedules itself. Underneath it cif-Presence-r10 reads False. This UE will therefore see no Carrier indicator field in the DCI for this cell, and its DCI payloads are three bits shorter than the format tables above allow for.

 

Cross Carrier Scheduling

If Network (eNB) decided to do Cross carrier Scheduling, it notifies UE using RRC message as shown below. This is the other-r10 branch, and it is worth comparing line by line with the capture above, because the two differ in only a few lines near the bottom.

RRC Connection Reconfiguration configuring cross carrier scheduling, decoded as a tree, capture. The red lines are the other branch of the same CHOICE.

rrcConnectionReconfiguration
    rrc-TransactionIdentifier: 0
    criticalExtensions: c1 (0)
        c1: rrcConnectionReconfiguration-r8 (0)
            rrcConnectionReconfiguration-r8
                radioResourceConfigDedicated
                    physicalConfigDedicated
                nonCriticalExtension
                    lateNonCriticalExtension: <MISSING>
                    nonCriticalExtension
                        nonCriticalExtension
                            sCellToAddModList-r10: 1 item
                                Item 0
                                    SCellToAddMod-r10
                                        sCellIndex-r10: 1
                                        radioResourceConfigDedicatedSCell-r10
                                            physicalConfigDedicatedSCell-r10
                                                nonUL-Configuration-r10
                                                    crossCarrierSchedulingConfig-r10
                                                        schedulingCellInfo-r10: other-r10 (1)
                                                            other-r10
                                                                schedulingCellId-r10: 0
                                                                pdsch-Start-r10: 3

The red lines have changed branch and gained two fields. schedulingCellInfo-r10 now resolves to other-r10, schedulingCellId-r10 reads 0, which is the primary cell, and pdsch-Start-r10 reads 3. There is no cif-Presence line anywhere in this capture, because the field belongs to the branch that was not taken. A UE reading this message learns which cell will schedule this SCell and where that SCell's PDSCH begins, and nothing else about the Carrier indicator from here.

The drawing below takes the same message and puts the pdsch-Start value on a symbol ruler, which is where its effect is visible.

A subframe symbol ruler showing the PCC PDSCH starting at symbol 2 and the SCC PDSCH starting at symbol 3, with an arrow from PDSCH_Start equals 3 to pdsch-Start-r10 in a decoded RRC Connection Reconfiguration tree

The decoded message on the right and its effect on the left. The value 3 is a symbol index, and it is where the secondary cell's PDSCH is allowed to begin.

  • Symbols 0 and 1 of the PCC do two jobs : the label on them reads PCFICH / PHICH for PCC and DCI for both PCC and SCC. That is cross carrier scheduling drawn one subframe at a time.
  • The PCC PDSCH bracket starts at symbol 2 : the primary cell's own control region ends and its data begins right after it.
  • The SCC PDSCH bracket starts at symbol 3 : one symbol later than the PCC, and that offset is the signalled value rather than anything the SCC broadcast.
  • The blue arrow names the source : it runs from PDSCH_Start = 3 on the ruler to pdsch-Start-r10 3 in the tree, highlighted green, under crossCarrierSchedulingConfig-r10.
  • The tree is the same path as the capture above : sCellToAddModList-r10, SCellToAddMod-r10, radioResourceConfigDedicatedSCell-r10, physicalConfigDedicatedSCell-r10, nonUL-Configuration-r10.

The DCI formats that came after Release 10

The list above stops where Release 10 stopped, and 36.212 did not. The format list in clause 5.3.3.1 has roughly doubled since then, and the additions arrived in families rather than one at a time. Knowing which family a format belongs to is usually enough to know what it is for.

Four families account for nearly all of the growth. Licensed-Assisted Access added Formats 0A, 0B, 4A and 4B, which schedule PUSCH on an LAA SCell, and the B variants schedule several subframes at once. Sidelink added Formats 5 and 5A, which schedule PSCCH and carry SCI fields for PSSCH. Coverage enhancement added the 6-x family. Short TTI operation added the 7-x family.

The last two families are substitutions rather than extras. 36.212 says that for a BL/CE UE, format 0 is replaced by format 6-0A, and the 6-x formats travel on MPDCCH rather than PDCCH. The 7-x formats travel on SPDCCH and schedule a slot or a subslot instead of a whole subframe. Each family has its own control channel, which is why neither reuses the numbering of the formats it stands in for.

The Carrier indicator did not spread to all of them, and the pattern is worth reading. Formats 0, 0A, 0B, 1, 1A, 1B, 1D, 2, 2A, 2B, 2C, 2D, 4, 4A and 4B all carry it at 0 or 3 bits. Formats 0C, 1C, 3, 3A, 3B, 5, the whole 6-x family and the whole 7-x family carry none. Format 5A is the one exception. It carries a Carrier indicator of 3 bits with no zero length option, so there the field is always present.

Format 2D is the one addition that belongs to the family this page already covers. It takes the field list of 2C and adds a two bit PDSCH RE Mapping and Quasi-Co-Location Indicator. A UE needs that field when its PDSCH may come from more than one transmission point.

The table below lists what 36.212 v19.3.0 says each of the later formats schedules, and whether it carries a Carrier indicator.

Format

What 36.212 v19.3.0 says it schedules

Carrier indicator

Format 0A

PUSCH in an LAA SCell, or activating and releasing AUL transmission

0 or 3 bits

Format 0B

PUSCH in each of multiple subframes in an LAA SCell

0 or 3 bits

Format 0C

PUSCH in one UL cell

none

Format 2D

one PDSCH, with a PDSCH RE Mapping and Quasi-Co-Location Indicator that 2C does not carry

0 or 3 bits

Format 3B

a group of TPC commands for SRS transmissions by one or more UEs

none

Format 4A

PUSCH in an LAA SCell with multi-antenna port transmission mode

0 or 3 bits

Format 4B

PUSCH with multi-antenna port transmission mode in each of multiple subframes in an LAA SCell

0 or 3 bits

Format 5

PSCCH, and it carries SCI format 0 fields for PSSCH

none

Format 5A

PSCCH, and it carries SCI format 1 fields for PSSCH

3 bits, always present

Format 6-0A

PUSCH in one UL cell, ACK feedback and preconfigured UL resources, on MPDCCH

none

Format 6-0B

the same as 6-0A, for the other coverage enhancement mode

none

Format 6-1A

one PDSCH codeword per TTI in one cell, and a random access procedure started by a PDCCH order

none

Format 6-1B

one PDSCH codeword per TTI in one cell, and SC-MCCH change notification

none

Format 6-2

paging, direct indication, and one PDSCH codeword carrying SC-MCCH

none

Format 7-0A

PUSCH with slot or subslot duration in one UL cell, on SPDCCH

none

Format 7-0B

PUSCH with slot or subslot duration with multi-antenna port transmission mode

none

Format 7-1A to 7-1G

one PDSCH codeword with slot or subslot duration in one cell, seven variants of the same job

none

  • The later formats arrived in families : Licensed-Assisted Access, sidelink, coverage enhancement and short TTI account for nearly all of them.
  • Two families are substitutions : 36.212 replaces format 0 with format 6-0A for a BL/CE UE, and the 6-x and 7-x families ride MPDCCH and SPDCCH rather than PDCCH.
  • The Carrier indicator stayed with carrier aggregation : almost every format in the 0, 1, 2 and 4 families carries it, with 0C and 1C the exceptions. The 3, 6-x and 7-x families carry none at all, and in the 5 family only 5A has one.
  • Format 5A is the one unconditional case : its Carrier indicator is 3 bits with no zero length option.
  • Format 2D extends the family on this page : it is 2C plus a two bit PDSCH RE Mapping and Quasi-Co-Location Indicator.

Reference

Two specifications carry everything quoted on this page. 36.212 defines the DCI formats and the order their fields are mapped in. 36.331 defines the RRC element that decides which of them a UE has to expect on which carrier.

  • [1] 36.212 : 3GPP - E-UTRA; Multiplexing and channel coding, v19.3.0. Clause 5.3.3.1 holds the DCI format list and the field mapping rule.
  • [2] 36.331 : 3GPP - E-UTRA; Radio Resource Control, v19.3.0. CrossCarrierSchedulingConfig-r10 and its Release 13 successor are quoted above.
  • [3] DCI : the Release 8 DCI page on this site, which the introduction above points at.