All About PDCCH - Aggregation Level - CCE - DCI
All About PDCCH - Aggregation Level - CCE - DCI
After knowing PDCCH, I personally feel that it is the heart of LTE . So we should try to
understand it completely that:-
PDCCH carries a message called DCI ( Downlink Control Information ) which includes
resource assignments for a UE or group of UE's. EnodeB can transmit many DCI's or
PDCCH's in a subframe. Actually enodeB need to send a lot of parameters to the UE for
its operation but there may be the cases that some information is not required for a
particular UE.
For Example:- Some UE does not support MIMO ( Multiple Input Multiple Output ), so
for that UE there is no need to send the MIMO related parameters because they will
increase the signalling overhead.
There comes in the picture the different formats for sending the information which are
called DCI formats. Even we would not like to have so many formats because they will
increase the complexity. So to cover the most useful cases we have following DCI
formats:-
DCI format 0 is used for uplink allocation, all other formats are used for allocating the
resources in downlink.
So the number of CCE's present to transmit the control information will be variable
depending on the
PCFICH value
Bandwidth of the system from 1.4 Mhz to 20 Mhz.
Number of antenna ports present which in turn will effect the reference signals
present.
Total RE's = n * x * y
n - PCFICH value
x - number of subcarriers in 1 RB
y - total number of RB's considering 10 Mhz bandwidth
eNodeB uses the PDCCH for sending the control information for a particular UE or a
group of UE's. It means eNodeB uses the PDCCH for some broadcast information also
which is common for all the UE's. So to make that process easier eNodeB divided its
CCE's into two parts which we call them as search space:
1. Common search space :- It consists of CCE's which are used for sending the
control information which is common for all the UE's .Maximum number of CCE present
in common search space is 16. For Example:- Common search space CCE's are used by
eNodeB for sending the control information of SIB's which is common for all UE's.
2. UE specific search space :- CCE's belonging to UE specific space are used for
sending the control information for a particular UE only. That means information
present on UE specific CCE's can only be decoded by a specific UE.
eNodeB can also send the control information for a specific UE on the common search
space.
Lets suppose there are total 100 CCE's eNodeB has for sending the control information
combining both common space and UE specific search space.
Suppose enodeB has used 85th CCE number for a UE named ravan for sending his
control information.
Now how the Ravan will come to know which CCE he needs to decode for getting his
information. Either he needs to scan all 100 CCE's one by one and try to find the
information. This procedure will consume a lot of battery power for the UE. So to
simplify this process,
eNodeB has fixed some indexes for a particulat UE based on the rnti and the subframe,
so now ravan needs to find his control information only on those specific CCE indexes.
In the example for UE ravan eNodeb needs to send 90 bits , so it need to use
atleast 2 CCE's for the control information on PDCCH. It means it will send the control
information with aggregation level 2.
It is also possible that enodeB uses a higher aggregation level( more number of
CCE's) even if the bits transmitted on PDCCH are less. This happens when channel
conditions are bad , so to provide more redundant information to UE such that it can
decode the PDCCH.
PDCCH candidates :- Number of CCE indexes serached by a UE in a subframe
for a particular search space. These values are fixed by spec 36213 as mentioned in
table :-
PDCCH Format :- There are four PDCCH formats available as shown below
where Yk is defined as
L - Aggregation level
A PDCCH consisting of n consecutive CCE's may only start on a CCE index fulfilling
i mod n = 0
where i = CCE number
For Example:-
eNodeB wants to allocate PDCCH for some UE or group of UE's on aggregation level 4
( Means 4 CCE's are required), Then it can only allocate CCE's starting with indexes
which satisfies
Maximum number of CCE's present in common search space is fixed as 16. If the total
number of CCE's available in the system are less than 16 for any bandwidth then all the
CCE's will be present in common search space.
The position of Common search space CCE's is always fixed starting from the first CCE
index.
For example:-
We have 100 CCE's belonging to PDCCH as shown above from CCE index 0 to 99.
As we know that starting CCE's are common search space CCE's , so in the diagram
green color CCE's are common search space CCE's from index 0 to 15.
Suppose eNodeB wants to allocate CCE's for SIB on common search space for
aggregation level 4
And we know that it should satisfy the formula
1. (CCE Index ) mod 4 = 0,
2. And from the table above , the number of PDCCH candidates ( starting CCE indexes)
for aggregation level 4 in common space can be 4.
By meeting the above two conditions 4 indexes will be supported by aggregation level 4
in common space as
Similarly if eNodeB wants to allocate with aggregation level 8, then possible indexes
meeting the two conditions will be
As we know that UE does the blind PDCCH decoding , means it does not have any idea
about the aggregation level or DCI format used by the eNodeB. So a UE in common
space needs to make
(4 try in aggregation level 4 + 2 try in aggregation level 8 ) * DCI format supported
for common space
only small sizes DCI formats are supported in common search space as 0/1A/3/3A/ and
1C
if k =0 , Y-1 = RNTI value for that UE ( As given in spec 36213 sec 9.1.1 )
A = 39827
D = 65537
Subframe number = 0
Aggregation level = 1
We know from the table above that for aggregation level 1, number of PDCCH
canditates ( CCE indexes) can be 6.
Yk = (A * Yk-1 ) mod D
k = subframe number
As k = 0
Yk-1 = RNTI value for that UE, lets suppose its 100.
Yk = (39827 * 100) mod 65537
= 50480
L = aggregation level
i = 0 to (Aggregation Level - 1)
Ncce = Number of CCE's available for PDCCH ( suppose 100)
m' = 0 to ( Number of PDCCH canditates -1 )
CCE index = 1 { (50480 + 0 ) mod (100/1)} + 0
= 80
So first CCE index for aggregation level 1 for this UE in subframe 0 will be 80.
Lets calculate next CCE index for the same UE in the same subframe.
Yk value changes with the subframe only so withion the subframe same value will be
used.
Similarly you can calculate the remaining CCE indices for this UE in the current
subframe
Lets try to find the CCE indices for subframe 1 now with aggregation level 2:-
Yk = (A * Yk-1) mod D
= (39827 * 50480) mod 65537
= 53948
Yk-1 will be the value calculated for subframe 0
For aggregation level two also
m' will be 0 to 5 as number of PDCCH candidates are 6 for aggregation level 2
CCE index = 2 {(53948 + 0) mod (100/2)} + 0
=96
As in Aggregation level 2, two CCE's will be allocated for the same PDCCh candidate
In similar ways UE can find the CCE indexes available in all subframes for the different
aggregation levels.
RNTI types:-
After each blind detection UE checks the CRC with the corresponding RNTI. If CRC is
decoded successfully with that RNTI, UE can find the DCI format from the payload size
and the RNTI in that PDCCH .
ULSCH PDCCH or DCI format 0 which is used for uplink grant is scrambled with
Antenna selection mask . It is done to intimidate the UE about the antenna port it
needs to use for its transmission.
PDCCH shall be transmitted on the same set of antenna ports as PBCH.
PDCCH is transmitted in starting OFDM symbols to save battery at UE.
In one subframe or 1 ms , multiple DCI's needs to be send by eNodeB for
sending the data to different UE's.
For 1 UE, eNodeB can send multiple DCI's if it needs to send data and give
uplink grant in the same tick.
UE needs to keep on decoding CCE's if it is expecting more than one DCI's.