Вы находитесь на странице: 1из 11

All about PDCCH and CCE allocation

PDCCH (Physical downlink Control Channel):This channel carries the control information about the data being transmitted on the
current subframe and the information about the resources which UE need to use for the
uplink data. That means it is mandatory for the UE to decode it successfully if it wants
to send some data or receive something.
After knowing PDCCH, I personally feel that it is the heart of LTE. So we should try to
understand it completely that:What information it carries?
Where it carries the information?
And for whom it carries the information?
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 signaling 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.

Format 0 for transmission of resources to UE for sending their uplink data

Format 1 for downlink allocation of resources for Single Input Multiple Output
Format 1A for downlink allocation of resources for SIMO operation or allocating
a dedicated preamble signature to a UE for random access
Format 1B for transmission control information of Multiple Input Multiple Output
(MIMO) rank 1 based compact resource assignment
Format 1C for very compact transmission of PDSCH assignment
Format 1D same as format1B with additional information of power offset
Format 2 and Format2A for transmission of DL-SCH allocation for closed and
open loop MIMO operation, respectively
Format 3 and format3A for transmission of TPC command for an uplink
We will explain the structure of each format later with their sizes and thorough
explanation of their specific use.

Allocation of resources happens in terms of CCE (Control Channel Elements).

1 CCE = 9 continuous REG's (Resource element Group)
1 REG = 4 RE (Resource Element)

CCE allocation for PDCCH:PDCCH uses the resources present in first n OFDM symbols where
n - Value present in PCFICH ( Number of OFDM symbols )
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 affect the reference signals
Lets take an example for the number of CCE available calculation:Step -1:- We need to find the total number of RE's available in first n OFDM symbols
where n is coming from the value of PCFICH.
Suppose n = 3
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
Total RE's = 3 * 12 * 50 = 1800 RE's
RE's for PDCCH = Total RE's Number of RE's used for reference signals Number of RE's used in PHICH Number of RE's used in PCFICH
CCE's available for PDCCH = RE's for PDCCH /36
as 1 CCE = 36 RE's.
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:


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

How eNodeB calculate those CCE indexes for

a UE:First we should be familiar with some terms used in this procedure:

Aggregation Level: - It is defined as number of CCE's used for sending a

control information. Its values can be 1, 2, 4 and 8. Suppose for UE named ravan
eNodeB is using some DCI format whose size comes out to be 90 bits after applying the
code rate.
Code rate: - It is mainly a physical layer funda for sending the
information in a redundant way such that chances of UE successfully decoding it gets
As we know that: 1 CCE = 36 RE's
1 RE = 2 bits (For QPSK modulation)
4 bits (For 16 QAM)
6 bits (For 64 QAM)
And eNodeB uses QPSK modulation technique for PDCCH,
Number of bits in 1 CCE = 36 * 2 = 72 bits.

In the example for UE ravan eNodeb needs to send 90 bits, so it need to use at
least 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 :-

Search space



Aggregation level

Size [in CCEs]



Number of

PDCCH Format :- There are four PDCCH formats available as shown below

The set of indexes searched by a UE depends on a formula given by spec as:-

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
(CCE index) mod 4 = 0

How to find CCE indexes on common search

space:As shown in table eNodeB uses only aggregation level 4 and 8 for the allocation in
common search space.
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

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 CCEs, 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


0 - will contain consecutive CCE's from 0 to 3

4 - will contain consecutive CCE's from 4 to 7
8 - will contain consecutive CCE's from 8 - 11
12 - will contain consecutive CCE's from 12 -15

Similarly if eNodeB wants to allocate with aggregation level 8, then possible indexes
meeting the two conditions will be
CCE index 0 - will contain consecutive CCE's from 0 to 7
CCE index 8 - will contain consecutive CCE's from 8 to 15
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
so if enodeB supports 1A and 1C DCI formats, so UE needs to do 12 tries maximum to
decode its PDCCH information.

How to find the CCE indexes in UE specific

search space in a subframe:According to the formulas in spec 36213 as:The set of indexes searched by a UE in a subframe is:-

Where Yk is defined as:

If k =0, Y-1 = RNTI value for that UE (As given in spec 36213 sec 9.1.1)
A = 39827
D = 65537

Lets take an example:Subframe number = 0

Aggregation level = 1
We know from the table above that for aggregation level 1, number of PDCCH
candidates ( 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
CCE index =

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 candidates -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
CCE index = 1 { ( 50480 + 1 ) mod ( 100 /1 )} + 0
= 81
Similarly you can calculate the remaining CCE indices for this UE in the current
Lets try to find the CCE indices for subframe 1 now with aggregation level 2:As we know that Yk value changes with subframe
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
As in Aggregation level 2, two CCE's will be allocated for the same PDCCH candidate
Second CCE will be = 2{(53948 +0)mod (100/2)} + 1
= 97
So first CCE index for this UE in subframe 1 for aggregation level 2 will be 96. This
PDCCH candidate will contain 2 CCE's with indexes 96 and 97.
In similar ways UE can find the CCE indexes available in all subframes for the different
aggregation levels.

CCE Allocation Examples:-

If terminal A is using the CCE's 16 to 23 then terminal B cannot be addressed on

Aggregation level 4 as the CCE's are already blocked by terminal A.
We can also notice that, CCE's 24- 31 belongs to both of the UE's PDCCH
candidate set for aggregation level 8. That means overlap can also happen but eNodeB
can actually use it for one terminal either A or B.
For point 1 like case, common search space CCE's can be used to resolve the
contention. This is also another important use of common search space.
It is also clear that first 16 CCE's are used for common search space in both
aggregation level 4 and 8.

How EnodeB decides which DCI Format to

use: It is decided by enodeB on the basis of transmission mode and the RNTI type used for
that particular PDCCH.
RNTI types:

SI- RNTI: - Used for transmission of system information messages.

RA-RNTI: - Used for PRACH responses.
P-RNTI :- Used for the paging messages
C-RNTI: - Used for the transmission to a specific UE after RACH.
T-CRNTI: - Mainly used during Rach.
There are tables present in spec 36213 in sec 7.1 which describes which format to use.
I am consolidating that information from spec in a easy way to understand.
Usually all the common information gets scheduled in common search space with the
CRC scrambled with all RNTI's except CRNTI. We use DCI format 1A or 1C irrespective
of Transmission mode.
Please find the table for the mapping:-

PDCCH order is also transmitted with DCI format 1A.

How EnodeB decides the Aggregation Level to


It is decided on the basis of size of DCI and the CQI (channel quality indicator) value
received in uplink. The size of different DCI formats is defined in spec. After selecting
the DCI format we know the number of bits needs to send on PDCCH after applying the
code rate.
As we know that in 1 CCE 72 bits can be transmitted as QPSK modulation is used in
PDCCH. After considering the DCI size and the CQI value, eNodeB decides the
aggregation level to use or the number of CCE's required for the control information for
this particulate DCI.

Blind Decoding of PDCCH by UE:

UE does the blind decoding because:UE does not have idea about the CCE's used by PDCCH
UE does not know the aggregation level used by eNodeB
UE do not have idea about the DCI format used by eNodeB
Steps followed by UE for the blind decoding of PDCCH:-

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.

Important points about 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.