5GNR 2-Step RACH

2-Step RACH

In Earlier versions of NR  3GPP Releases i.e. Rel.15, There was only one type of RACH procedure was defined, which is similar to LTE RACH procedure also known as 4-Step RACH procedure. In Release-16 NR version, 3GPP Introduced a new 2-Step RACH procedure which aims to improve the overall latency of RACH procedure. So the benefit of having a 2-Step RACH process over 4-Step RACH process is it reduces the network access latency.

Now, there are two RACH procedures and 3GPP has categorized it as follow:

  • Type-1 Random access procedure(4-Step-RACH)
  • Type-2 Random access procedure(2-Step-RACH)

Why 2-Step RACH

3GPP has defined following design targets which show the motivation behind implementing 2-Step RACH Procedure,

  • All main use cases of 5G-NR (mMTC, URLLC and eMBB) and for both licensed and unlicensed spectrum shall use common design
  • 2-step RACH procedure improves channel access
  • The triggers for 4-step RACH are also applicable to 2-step RACH and hence 2-step RACH could be applied for all RRC states
  • 2-step RACH is applied for RRC_INACTIVE , RRC_CONNECTED and RRC_IDLE state
  • 2-step RACH is applicable to any cell size supported in Rel-15 NR and shall be able operate regardless of whether the UE has valid Timing Alignment(TA) or not.

RACH Call-flow 

High level call-flow for 2-Step RACH & 4-Step RACH Procedure is shown below.

The Preamble selection process remains same in 2-Step RACH process but there is further more information in MsgA. 2-Step RACH consists of 1 round trip transfer of control signaling between UE and gNB.

  • MsgA Transmission from UE to gNB
  • MsgB Reception at UE from gNB.

RACH MsgA (Preamble + Data)

MsgA can be represented as combination of Msg1 + Msg3. MsgA has following information.

    • PRACH Preamble Transmission
    • MsgA-PUSCH Transmission
  • PRACH Preamble Transmission
    • The Preamble Selection and transmission is same as 4-Step RACH process, UE follows the similar Procedure of 4-Step RACH while selecting a Random Access preamble.
    • All the preamble formats and the PRACH configuration indexes defined in Rel-15 and in Rel-16 NR-U can be used.
    • In case of shared time domain PRACH resources between 4-step RACH and 2-step RACH, different preambles are allocated to differentiate the RA types.
    • The mapping between SSB and PRACH occasion reuses that for 4-step RACH.
    • The PRACH occasion can be shared between 2-StepRA and 4-step RA procedure.
  • How does the UE knows which RACH type to use for Initial access or any other IDLE or Connected mode scenarios ?
    • In the Case of Initial Access
      • UE checks SIB message to see what Type of RA is defined, If both 2-step and 4-step RA type Random Access Resources are configured then
      • UE will check if RSRP of the downlink pathloss reference is above msgA-RSRP-Threshold
      • If its above msgA-RSRP-Threshold then it will select 2-Step RA else it will select 4-Step RA
      • Or if only 2-step RA is configured then UE will select 2-Step RA
      • Or if only 4- Step RA is configured then UE will select 4-Step RA
    •  In the case of reconfiguration with sync (Mobility/RRC Connected)
      • If the contention-free Random Access Resources for 2-step RA type have been explicitly provided in rach-ConfigDedicated for the BWP selected for Random Access procedure then, the UE will select 2-stepRA or,
      • If the contention-free Random Access Resources for 4-step RA type have been explicitly provided in rach-ConfigDedicated for the BWP selected for Random Access procedure then, the UE will select 4-stepRA.
  • msgA-PUSCH transmission
    • PUSCH message is transmitted in the case of 2-Step RA as part of msgA. How and when this message is transmitted by UE is discussed in this section
    • What is a PUSCH Occasion?
      • A PUSCH occasion for PUSCH transmission is defined by a frequency resource and a time resource, and is associated with a DMRS resource. The DMRS resources are provided by msgA-DMRS-Configuration. Simply put PUSCH occasions are time and frequency resources where a UE can send PUSCH in uplink.
    • How UE knows when to transmit PUSCH for MsgA ?
      • There are a couple of ways the UE gets this information from the network, either in SIB1 when the UE is not in connected state, or when the UE is RRC Connected state and this information is passed on to UE by dedicated signaling for example during a handover procedure.
    • When does the UE transmit MsgA PUSCH?
      • UE transmits PUSCH message after PRACH is transmitted.
      • The first PUSCH transmitted is encoded with Redundancy version 0 i.e RV=0.
      • There is no HARQ ACK for msg-A PUSCH transmission.
      • The PUSCH is transmitted after N symbols of PRACH transmission,
      • where N=2 for u = 0 or u=1
      • where N=4 for u = 2 or u=3
    • Where u is the SCS for UL BWP
      • PUSCH is transmitted by UE at PUSCH Occasions configured by network in RRC message IE msgA-PUSCH-Config
      • In the case of initial access msgA-PUSCH-Config is provided in initial UL BWP of SIB1 RRC message
      • If the UE is in RRC Connected mode the network can configure msgA-PUSCH-Config as part of active UL BWP

There are Two aspects related to information regarding MsgA Pusch transmission Time domain information and Frequency domain information

Frequency domain information : 

Most of the information relayed below is represented in the above diagram.

  • The number of PUSCH occasions available in the frequency domain is provided by nrMsgA-PO-FDM.
  • Consecutive PUSCH occasions in the frequency domain are separated by a number of RBs provided by guardBandMsgA-PUSCH.
  • The starting PRB of PUSCH Occasion is given by an offset value with respect to PRB#0 and is provided by frequencyStartMsgA-PUSCH
  • Th number of Frequency multiplexed PUSCH occasions in a time instance is provided by nrofMsgA-PO-FDM
  • The number of PRB’s per PUSCH occasion is provided by i.e. nrofPRBs-PerMsgA-PO.
  • Frequency Hopping for msgA-PUSCH transmission if configured is indicated by msgA-intraSlotFrequencyHopping .
  • The Frequency offset for the second hop is determined by msgA-HoppingBits .
  •  If guardPeriodMsgA-PUSCH is provided, a first symbol of the second hop is separated by guardPeriodMsgA-PUSCH symbols from the end of a last symbol of the first hop; otherwise, there is no time separation of the PUSCH transmission before and after frequency hopping.
  • If a UE is provided with useInterlacePUCCH-PUSCH in BWP-UplinkCommon, the UE shall transmit PUSCH without frequency hopping
  • PUSCH is CRC scrambled with MsgB-RNTI .
  • Similar to RACH GroupA and Group B Preambles, PUSCH resources for GroupA preambles and GroupB preambles can be defined separately.
  • msgA-PUSCH-ResourceGroupA : MsgA PUSCH resources that the UE shall use when performing MsgA transmission using preambles group A.
  • msgA-PUSCH-ResourceGroupB : MsgA PUSCH resources that the UE shall use when performing MsgA transmission using preambles group B.

Time Domain information: 

  • When a First PUSCH Occasion is available after PRACH slot is determined by msgA-PUSCH-TimeDomainOffset in an active UL BWP.
  • A Single time offset with respect to the start of each PRACH slot and PUSCH occasion slot is given by msgA-PUSCH-TimeDomainOffset.
  • An important thing to note here is that PRACH and PUSCH transmission cannot happen in the same slot, there should be a min gap of atleast 1 slot.
  • msgA-PUSCH-TimeDomainOffset provides an offset in number of slots in the active UL BWP from the start if a PRACH slot.
  • The number of Consecutive PUSCH occasions within each slot are separated by guard Period in symbols defined by
  • The number of time domain PUSCH occasions in each slot is provided by nrofMsgA-PO-perSlot
  • The number of consecutive slots that include PUSCH occasions is provided by nrofSlotsMsgA-PUSCH.
  • Similar to regular PUSCH transmissions, for msgA PUSCH transmissions SLIV and PUSCH type can be defined in rrc message by IE msgA-PUSCH-TimeDomainAllocation
  • msgA-PUSCH-TimeDomainAllocation points to the PUSCH-TimeDomainResourceAllocationList provided in PUSCHConfigCommon.
  • If there is no table provided in PUSCHConfigCommon then UE will lookup the default 3GPP table from Table 6.1.2.1.1-2 in 38.214
  • The Value of K2 is not used for msgA PUSCH.
  • UE can use startSymbolAndLengthMsgA-PO-r16 for SLIV and mappingTypeMsgA-PUSCH-r16 for Pusch mapping type if msgA-PUSCH-TimeDomainAllocation IE is not present.
  • A UE is provided a DMRS configuration for a PUSCH transmission in a PUSCH occasion in an active UL BWP by msgA-DMRS-Config.
  • A UE is provided an MCS for data information in a PUSCH transmission for a PUSCH occasion by msgA-MCS

Restrictions on msA-PUSCH Transmission

  • For Paired Spectrum (FDD)
    • A PUSCH occasion is valid if it does not overlap in time and frequency with any PRACH occasion associated with either a Type-1 random access procedure or a Type-2 random access procedure.
  •  For un-paired Spectrum (TDD)
    • Case1 : If the IE tdd-UL-DL-ConfigurationCommon is configured
      • A PUSCH occasion is valid if the PUSCH occasion does not precede a SS/PBCH block in the PUSCH slot and,
      • PUSCH occasion starts at least symbols after a last SS/PBCH block symbol
    • Case2 : If the IE tdd-UL-DL-ConfigurationCommon is not configured
      • A PUSCH occasion is valid if the PUSCH occasion is within UL symbols, or
      • The PUSCH occasion does not precede a SS/PBCH block in the PUSCH slot, and
      • The PUSCH occasion starts at least N_”gap” symbols after a last downlink symbol and at least N_”gap” symbols after a last SS/PBCH block symbol

Article by Syed Syed Mohiuddin 

Syed is currently working as 5G Wireless Systems Engineer with Apple. He Completed his Masters from Concordia University and graduation from India. He have over 9+ years of experience in Wireless communications industry working on cellular modem and radio access networks(RAN).
you may reach out her at LinkedIn: https://www.linkedin.com/in/syed-a-mohiuddin/

 

 

 

Related Posts: