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.
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.

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) |
||
|
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 > ----------------------------------------------------------------------------------------
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 > ----------------------------------------------------------------------------------------
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 > ----------------------------------------------------------------------------------------
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 ?
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 (Non Cross Carrier) Scheduling >
If Network (eNB) decided to do Own(Non-Cross carrier) Scheduling, it notifies UE using RRC message as shown below.
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
If Network (eNB) decided to do Cross carrier Scheduling, it notifies UE using RRC message as shown below.
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
