3G/UMTS

 

 

 

Physical Layer - HSDPA

 

HSDPA turns the downlink from many small dedicated pipes into one shared pipe, and the Node B hands that pipe out every 2 ms. This change needs new physical channels. One carries the data, one tells each UE which subframe is its own, and one carries the feedback that drives the scheduler. This page goes through those channels first. Then it looks at the HS-SCCH field layout, the timing of one data transaction, and the way the UE splits its soft buffer between HARQ processes.

HSDPA Physical Channels

Which physical channels does an HSDPA connection use, and which of them are new? The diagram below answers both questions. The channels in red were added for HSDPA, and the channels in black are Release 99 dedicated channels that still run beside them.

Following is physical channel make-up for HSDPA network.

HSDPA physical channels between UE and Node B with HS-PDSCH, HS-SCCH and HS-DPCCH frame structures

HSDPA adds three physical channels to the Release 99 set: HS-PDSCH and HS-SCCH in the downlink, and HS-DPCCH in the uplink. All three use a 2 ms subframe of three slots.

  • HS-PDSCH : carries the HS-DSCH data. Each 2 ms subframe has three slots of 2560 chips, and the spreading factor is fixed at 16, which is the k=4 in the slot formula of 25.211 Figure 26B.
  • HS-SCCH : carries the control information for the HS-PDSCH. Its subframe is also 2 ms, with 40 bits in each slot, as 25.211 Figure 26A shows.
  • HS-DPCCH : carries HARQ-ACK in the first slot and CQI in the second and third slots. With MIMO, the PCI shares those two slots with the CQI, as the CQI/PCI label in 25.211 Figure 2A shows.
  • DL DPDCH, UL DPDCH and UL DPCCH : are the Release 99 dedicated channels. The uplink DPCCH stays even for pure HSDPA traffic, because 25.211 allows an HS-DPCCH only together with an uplink DPCCH, or with a DPCCH2 when one is configured.

In HSDPA, four new physical channels were introduced

i) HS-DSCH

ii) HS-SCCH

iii) HS-DPCCH

iv) F-DPCH

With introduction of these four channels, we could implement many of the methods to improve the data rate which has been briefly descrived in previous section.

The most important channel is definately HS-DSCH (High Speed Downlink Shared Channel). As the name implies, it is a SHARED channel whereas in R99 we used a DEDICATED channel. It means all the users within a cell is sharing a single channel which is a big pipes rather than each of the users has it's own dedicated channel which is a small pipes. With this the network can optimize the resource allocation among the multi users more efficiently. For example as an extreme case the network allocate 91% of resources to a single UE and only 1% of resources to each of the remaining 9 users when the nine user does not require much resource or those 9 users are in such a poor environment where it can utilize only small fraction of the transmission capacity. In case of using dedicated channel, we cannot do this kind of extreme resource allocation because each of the dedicated channels requires a certain level of minum resource allocation even when the real utilization is lower than the minimum resource allocation.

One naming point helps when you read 25.211 next to this page. HS-DSCH is the transport channel, and HS-PDSCH is the physical channel that carries it. The list above uses the transport channel name, while the diagram uses the physical channel name. Both refer to the same data path.

I said HS-DSCH is a shared channel. It means that the whole data in the channel is recieved by all users. Then how can a UE figure out whether the data is for that UE or for some other UEs. I also said in HSDPA multiple modulation scheme is used, QPSK and 16 QAM. Then how can a UE knows whether the data is QPSK modulated or 16 QAM modulated ? To carry all these information, another new channel was introduced and it is HS-SCCH (High Speed Shared Control Channel). The information carried by HS-SCCH is as follows :

i) Transport format information - code tree for the data, modulation scheme, transport blocksize

ii) Hybrid-ARQ related information

I said at the beginning, HSDPA uses a shared channel and try to achieve the optimum resource allocation at multi user level. To do this, the network should know the exact status of the UE. And the network should know whether the data it sent successfully reached it's destination (a specific UE). To enable this, UE reports its communication quality and the data reception status to the network repeatedly. For UE to send this information to network, it uses a special channel called HS-DPCCH. This channel carries CQI (Channel Quality Indicator) and Ack/Nak info.

So far so good. It seems there is only advantages of introducing these new channels, but there is nothing that gains 100% without losing anything. There is a drawback of relying on these shared channel method. It is about power control issue. You know that one of the critical requirement of WCDMA technology is a very sophisticated power control. If UE power is too low, Node B would have difficulties decoding it and if the power is too strong it can act as a noise to other UEs communicating with the Node B. For this purpose, Node B sends a UE a power control message periodically and this message should be different for all the UE because each UE may be in a different channel condition, meaning this power control message should be a "Dedicated" message. But as I explained HS-DSCH is a shared channel. Then how can Node B deliver the power control message for each specific UE. The solution was to use R99 dedicated channel (DPCH) carrying only the power control message. But using a full DPCH only for carrying a small power control message is waste of resource. To improve this situation, from Release 6 a new channel was introduced and it is F-DPCH (Fractional DPCH). The details of F-DPCH is out of the scope of this section and I wouldn't explain any further on this channel.

F-DPCH does not appear in the diagram above. The diagram shows the Release 5 arrangement, where a full DL DPDCH still runs beside the HS-PDSCH.

  • HS-DSCH is shared, not dedicated : the Node B can give most of the cell capacity to one UE in one subframe and to another UE in the next.
  • HS-SCCH tells the UE which subframe is its own : it carries the transport format and HARQ information for the HS-PDSCH subframe that follows it.
  • HS-DPCCH closes the loop : HARQ-ACK drives retransmission, and CQI drives the choice of modulation and transport block size.
  • Power control still needs a dedicated channel : a full DPCH in Release 5, or the lighter F-DPCH from Release 6.

Structure of HS-SCCH

HS-SCCH is the downlink control channel which carries the information for downlink data channel (HS-DSCH). If you are more familiar with LTE and study backward to UMTS, think of HS-SCCH as a DCI in LTE PDCCH. As you have several different types of DCIs in LTE, there are a couple of different types of HS-SCCH in HSDPA.

25.212 defines four of them. Type 1 is the normal format. Type 2 is used for HS-SCCH-less operation, type 3 is used in MIMO mode, and type 4 is used in MIMO mode with four transmit antennas. The same coding also carries HS-SCCH orders, which use reserved values of the type 1 fields.

HS-SCCH Type 1 which is normally used for HSDPA in non-MIMO configuration has structure as shown below (See 25.212 4.6 Coding for HS-SCCH type 1 for details)

The diagram below lists the seven type 1 fields in the order that 25.212 clause 4.6.1 gives them, with the bit width of each field in the bar at the bottom.

HS-SCCH type 1 information fields and their bit widths

HS-SCCH type 1 carries 21 bits of explicit information. The 16 bit UE identity is not sent as data. It is applied as a mask.

  • Channelization-code-set information, 7 bits : the first three bits give the number of HS-PDSCH codes P as min(P-1, 15-P). The last four bits give the code offset O, so together they say which SF16 codes carry the data.
  • Modulation scheme information, 1 bit : 0 means QPSK. 1 means the other modulation, which is 16QAM, or 64QAM when 64QAM is configured.
  • Transport-block size information, 6 bits : the TFRI value ki. MAC adds an offset for the number of codes and the modulation, and the sum points into the transport block size table of 25.321. The HSDPA TFRI page works through one example.
  • Hybrid-ARQ process information, 3 bits : the HARQ process ID, so up to 8 processes can be addressed.
  • Redundancy and constellation version, 3 bits : codes the redundancy version parameters s and r together. For 16QAM and 64QAM it also codes the constellation version b, as in 25.212 Tables 12 and 13.
  • New data indicator, 1 bit : tells the UE whether the HARQ process carries a new transport block or a retransmission of the previous one.
  • UE identity, 16 bits : the H-RNTI. 25.212 masks the CRC of part 2 with it and scrambles part 1 with a code derived from it. Only the addressed UE therefore decodes the HS-SCCH correctly.

The 21 information bits are not sent as one block. 25.212 clause 4.6.3 splits them into two parts. Part 1 holds the 7 code bits and the modulation bit. Part 2 holds the other 13 bits, and a 16 bit CRC is added to it. Part 1 is coded to 40 bits and fills the first slot of the HS-SCCH subframe. Part 2 is coded to 80 bits and fills the second and third slots.

This split explains why the HS-SCCH starts two slots before the HS-PDSCH. After the first slot, the UE already knows the codes and the modulation. It then has one more slot to set up its despreaders before the data begins. Part 2 is needed only for decoding the transport block, so it can arrive while the data is already being received.

  • Part 1 arrives first : the codes and the modulation are known one slot before the HS-PDSCH starts.
  • The UE identity is implicit : a UE finds its own HS-SCCH by checking the mask, not by reading an address field.
  • Type 1 is the non-MIMO format : MIMO and HS-SCCH-less operation use types 2, 3 and 4 with different fields.

Physical Layer Data Transaction

How long does one HSDPA transaction take, from the control message to the ACK? The timing diagram below follows one HS-SCCH, the HS-DSCH subframe that it announces, and the HS-DPCCH feedback that the UE sends back. The same cycle then repeats for the next subframe.

Time runs downward in the diagram. The NodeB sends a 2 ms HS-SCCH first, and the 2 ms HS-DSCH follows two slots later. The UE answers with a 2 ms HS-DPCCH about 7.5 slots after the end of the HS-DSCH subframe. After a further N slots, the NodeB sends the next HS-SCCH and HS-DSCH pair.

Timing of HS-SCCH, HS-DSCH and HS-DPCCH between UE and NodeB

The HS-SCCH leads the data by two slots, and the ACK or NACK follows the data after about 7.5 slots.

  • 2 slots : 25.211 clause 7.8 starts the HS-PDSCH 2 x Tslot = 5120 chips after the start of the HS-SCCH. The UE decodes part 1 of the HS-SCCH in this time.
  • 7.5 slots : about 5 ms, which the UE uses to decode the transport block, check its CRC and prepare HARQ-ACK. 25.211 clause 7.7 gives the exact HS-DPCCH start in units of 256 chips, so the real value moves slightly with the position of the HS-PDSCH subframe against the DPCH frame.
  • N slots : the time until the next transmission. It depends on the scheduler, and on whether the next subframe carries new data or a retransmission.

The HARQ round trip is the key number in the diagram above. A retransmission in one HARQ process can only follow after the NACK has arrived and the Node B has processed it. That round trip is several subframes long. So the Node B keeps other HARQ processes busy in the meantime, and a UE that receives data in every subframe needs several processes in parallel. This is the reason why the HARQ Info examples on this page configure 6 and 8 processes.

  • Control leads data : the HS-SCCH starts two slots before the HS-PDSCH subframe it describes.
  • Feedback follows after about 5 ms : the HS-DPCCH carries the ACK or NACK for exactly one HS-PDSCH subframe.
  • Parallel HARQ processes fill the gap : while one process waits for its feedback, the Node B sends data in the others.

HARQ Memory Partitioning

How much soft buffer does each HARQ process get? The UE category fixes the total, and the network decides how to split it. The split matters, because the process memory size limits how many coded bits of one transport block the UE can store for soft combining.

Total number of soft channel bits in HS-DSCH defines the maximum number of soft channel bits over all HARQ processes. When explicit signalling is used, UTRAN configures Process Memory Size for each HARQ process so that the following criterion must be fulfilled in the configuration:

Total number of soft channel bits in HS-DSCH ≥ sum of Process Memory Size of all the HARQ processes.

Example >  Take case of Cat 14

Category 14 has 259200 soft channel bits in 25.306 Table 5.1a. The two cases below split that total over 6 and over 8 processes.

Case 1 :

259200/6=43200.

And, the assignable value of 43200 is 40000.

HARQ Info from a tester configuration tree, captured. Values are from a test setup, not from the specification.

memoryPartitioning   explicit
|+explicit 6
|    + HARQMemorySize   hms40000
|    + HARQMemorySize   hms40000
|    + HARQMemorySize   hms40000
|    + HARQMemorySize   hms40000
|    + HARQMemorySize   hms40000
|    + HARQMemorySize   hms40000

Other assignable value around this are  36000 / 40000 / 44000.

And, HARQMemorySize value is less than 43200.

NOTE : In this case, you have to be carefull in designing TFRI table. You have to make it sure that TBS for a TFRI does not exceed the 4000 bits.

Case 2 :

With 8 processes, 259200/8 = 32400, and the largest HARQMemorySize value that does not exceed it is 32000.

Other assignable value around this are  30400 / 32000 / 36000.

HARQ Info from a tester configuration tree, captured. Values are from a test setup, not from the specification.

harqinfo
|++numberOfProcesses    8         <=== Set the number of HARQ value.
|++ memoryPartitioning  explicit
|    |++ explicit       8
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000
|    |    |++ HARQMemorySize       hms32000

In both cases the sum stays within the category total. Case 1 uses 6 x 40000 = 240000 bits, and case 2 uses 8 x 32000 = 256000 bits, both below 259200. The remainder is left unused, because the process memory size can only take the listed steps. With implicit partitioning, the UE splits the total equally across all processes by itself.

HARQ Info IE in 25.331

The tester trees above follow the HARQ-Info IE of 25.331. The listing below shows the original structure and the HARQMemorySize values, and these values are the only sizes that a network can signal.

Following is based on 25.331 v19.0.1 (Release 19)

HARQ-Info ::=                       SEQUENCE {
    numberOfProcesses                   INTEGER (1..8),
    memoryPartitioning                  CHOICE {
        implicit                            NULL,
        explicit                            SEQUENCE (SIZE (1..maxHProcesses)) OF
                                                HARQMemorySize
    }
}

HARQMemorySize ::=                  ENUMERATED {
                                        hms800, hms1600, hms2400, hms3200, hms4000,
                                        hms4800, hms5600, hms6400, hms7200, hms8000,
                                        hms8800, hms9600, hms10400, hms11200, hms12000,
                                        hms12800, hms13600, hms14400, hms15200, hms16000,
                                        hms17600, hms19200, hms20800, hms22400, hms24000,
                                        hms25600, hms27200, hms28800, hms30400, hms32000,
                                        hms36000, hms40000, hms44000, hms48000, hms52000,
                                        hms56000, hms60000, hms64000, hms68000, hms72000,
                                        hms76000, hms80000, hms88000, hms96000, hms104000,
                                        hms112000, hms120000, hms128000, hms136000, hms144000,
                                        hms152000, hms160000, hms176000, hms192000, hms208000,
                                        hms224000, hms240000, hms256000, hms272000, hms288000,
                                        hms304000 }

The steps in HARQMemorySize are not uniform. They are 800 up to 16000, 1600 up to 32000, 4000 up to 80000, 8000 up to 160000, and 16000 up to 304000. So the step size grows with the value, and a large process memory loses more to rounding.

Later releases keep this structure and extend it. HARQ-Info-r7 adds 12, 14 and 16 processes and a second memory list for MIMO. HARQ-Info-r11 adds 24, 28 and 32 processes and memory lists for the third and fourth MIMO streams. HARQ-Info-r13 adds the blindHARQRetransmissionsForHSDPA flag.

  • The sum rule : the total soft channel bits of the category must be at least the sum of all process memory sizes.
  • Round down to a listed value : take the total divided by the number of processes, then pick the largest HARQMemorySize value that does not exceed it.
  • Implicit means equal : with implicit partitioning, every process gets the same share of the total.

Reference

[1] 3GPP TS 25.211 v19.0.0 - HS-PDSCH, HS-SCCH and HS-DPCCH frame structures, clauses 7.7 and 7.8 for timing

[2] 3GPP TS 25.212 v19.0.0 - clause 4.6, Coding for HS-SCCH type 1

[3] 3GPP TS 25.306 v19.0.0 - Table 5.1a, FDD HS-DSCH physical layer categories

[4] 3GPP TS 25.321 v19.0.0 - clause 9.2.3, Signalling of Transport Block size for HS-DSCH

[5] 3GPP TS 25.331 v19.0.1 - clause 10.3.5.7a, HARQ Info, and the ASN.1 of clause 11.3