5G/NR - Configured Scheduling  

 

 

 

Configured Scheduling

Configured Scheduling is a mechanism in which gNB can schedule PDSCH/PUSCH without using DCI for every transmission. I think this is equivalent to SPS in LTE.  How gNB can schedule those physical channels without using DCI ? Simple, it configures all the detailed scheduling parameters in RRC and gNB / UE is supposed to transmit PDSCH and PUSCH according to the parameters specified in RRC. This would greatly help gNB reduce the load of PHY/MAC scheduling.

One possible drawback of this mechanism would be that gNB cannot change scheduling parameter for individual transmission, implying that there may be some issues for Radio Link Adaptation when the channel condition goes very bad.

Configured Scheduling mechanism for downlink is called SPS and Configured Scheduling mechanism for UL is called Configured Grant.

Configure CS for Downlink / SPS

The overall procedure for Configured Scheduling for downlink (SPS) can be illustrated as below.

It can be summarized

    i) gNB send RRC (RRCSetup or RRCReconfiguration) configuring all the parameters necessary for PDSCH scheduling

    ii) UE Monitor PDCCH

    iii) When gNB want to start PDSCH transmission, it sends  DCI with CS-RNTI and start PDSCH transmission.

Configure CS for Uplink

The overall procedure for Configured Scheduling for uplink (Configured Grant) can be illustrated as below. For UL there are two different types of mechanism called Type 1 and Type 2.

     

In Type 1,

    i) gNB send RRC (RRCSetup or RRCReconfiguration) configuring all the parameters necessary for PUSCH scheduling

    ii) As soon as UE processed the RRC, UE is expected to transmit PUSCH without any specific lower layer trigger (i.e, DCI Trigger).

    NOTE : Even in this situation, UE is supposed to monitor PDCCH just in case gNB transmit other type of DCI.

In Type 2,

    i) gNB send RRC (RRCSetup or RRCReconfiguration) configuring all the parameters necessary for PUSCH scheduling

    ii) When gNB want to start granting(scheduling) PUSCH, it sends DCI masked with CS-RNTI.

    iii) Once UE processed the DCI with CS-RNTI, it is supposed to transmit PUSCH as scheduled in RRC

    NOTE : Even in this situation, UE is supposed to monitor PDCCH just in case gNB transmit other type of DCI.

RRC Parameters

ConfiguredGrantConfig ::= SEQUENCE {

   frequencyHopping               ENUMERATED {intraSlot, interSlot} OPTIONAL, -- Need S

   cg-DMRS-Configuration          DMRS-UplinkConfig,

   mcs-Table                      ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S

   mcs-TableTransformPrecoder     ENUMERATED {qam256, qam64LowSE} OPTIONAL, -- Need S

   uci-OnPUSCH                    SetupRelease { CG-UCI-OnPUSCH } OPTIONAL, -- Need M

   resourceAllocation             ENUMERATED { resourceAllocationType0,

                                               resourceAllocationType1, dynamicSwitch },

   rbg-Size                       ENUMERATED {config2} OPTIONAL, -- Need S

   powerControlLoopToUse          ENUMERATED {n0, n1},

   p0-PUSCH-Alpha                 P0-PUSCH-AlphaSetId,

   transformPrecoder              ENUMERATED {enabled, disabled} OPTIONAL, -- Need S

   nrofHARQ-Processes             INTEGER(1..16),

   repK                           ENUMERATED {n1, n2, n4, n8},

   repK-RV                        ENUMERATED {s1-0231, s2-0303, s3-0000} OPTIONAL, -- Need R

   periodicity ENUMERATED {

            sym2, sym7, sym1x14, sym2x14, sym4x14, sym5x14, sym8x14, sym10x14, sym16x14,

            sym20x14, sym32x14, sym40x14, sym64x14, sym80x14, sym128x14, sym160x14, sym256x14,

            sym320x14, sym512x14, sym640x14, sym1024x14, sym1280x14, sym2560x14, sym5120x14,

            sym6, sym1x12, sym2x12, sym4x12, sym5x12, sym8x12, sym10x12, sym16x12, sym20x12,

            sym32x12, sym40x12, sym64x12, sym80x12, sym128x12, sym160x12, sym256x12, sym320x12,

            sym512x12, sym640x12, sym1280x12, sym2560x12

   },

   configuredGrantTimer            INTEGER (1..64) OPTIONAL, -- Need R

   rrc-ConfiguredUplinkGrant        SEQUENCE {

      timeDomainOffset              INTEGER (0..5119),

      timeDomainAllocation          INTEGER (0..15),

      frequencyDomainAllocation     BIT STRING (SIZE(18)),

      antennaPort                   INTEGER (0..31),

      dmrs-SeqInitialization        INTEGER (0..1) OPTIONAL, -- Need R

      precodingAndNumberOfLayers    INTEGER (0..63),

      srs-ResourceIndicator         INTEGER (0..15) OPTIONAL, -- Need R

      mcsAndTBS                     INTEGER (0..31),

      frequencyHoppingOffset        INTEGER (1.. maxNrofPhysicalResourceBlocks-1)OPTIONAL,--Need R

      pathlossReferenceIndex        INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1),

      ...,

      [[

      pusch-RepTypeIndicator-r16     ENUMERATED {pusch-RepTypeA,pusch-RepTypeB} OPTIONAL,-- Need M

      frequencyHoppingPUSCH-RepTypeB-r16     ENUMERATED {interRepetition, interSlot} OPTIONAL,

                                                                    -- Cond RepTypeB

      timeReferenceSFN-r16           ENUMERATED {sfn512} OPTIONAL -- Need S

      ]],

      [[

      pathlossReferenceIndex2-r17    INTEGER (0..maxNrofPUSCH-PathlossReferenceRSs-1) OPTIONAL,

                                                                 -- Need R

      srs-ResourceIndicator2-r17     INTEGER (0..15) OPTIONAL, -- Need R

      precodingAndNumberOfLayers2-r17              INTEGER (0..63) OPTIONAL, -- Need R

      timeDomainAllocation-v1710                   INTEGER (16..63) OPTIONAL, -- Need M

      timeDomainOffset-r17                         INTEGER (0..40959) OPTIONAL, -- Need R

      cg-SDT-Configuration-r17                     CG-SDT-Configuration-r17 OPTIONAL -- Need M

      ]]

      }

      [[

      cg-RetransmissionTimer-r16           INTEGER (1..64) OPTIONAL, -- Need R

      cg-minDFI-Delay-r16     ENUMERATED

            {sym7, sym1x14, sym2x14, sym3x14, sym4x14, sym5x14, sym6x14, sym7x14, sym8x14,

             sym9x14, sym10x14, sym11x14, sym12x14, sym13x14, sym14x14,sym15x14, sym16x14

            } OPTIONAL, -- Need R

      cg-nrofPUSCH-InSlot-r16              INTEGER (1..7) OPTIONAL, -- Need R

      cg-nrofSlots-r16                     INTEGER (1..40) OPTIONAL, -- Need R

      cg-StartingOffsets-r16               CG-StartingOffsets-r16 OPTIONAL, -- Need R

      cg-UCI-Multiplexing-r16              ENUMERATED {enabled} OPTIONAL, -- Need R

      cg-COT-SharingOffset-r16             INTEGER (1..39) OPTIONAL, -- Need R

      betaOffsetCG-UCI-r16                 INTEGER (0..31) OPTIONAL, -- Need R

      cg-COT-SharingList-r16               SEQUENCE (SIZE (1..1709))

                                                 OF CG-COT-Sharing-r16 OPTIONAL, -- Need R

      harq-ProcID-Offset-r16               INTEGER (0..15) OPTIONAL, -- Need M

      harq-ProcID-Offset2-r16              INTEGER (0..15) OPTIONAL, -- Need M

      configuredGrantConfigIndex-r16       ConfiguredGrantConfigIndex-r16 OPTIONAL,--Cond CG-List

      configuredGrantConfigIndexMAC-r16    ConfiguredGrantConfigIndexMAC-r16 OPTIONAL,

                                                     -- Cond CG-IndexMAC

      periodicityExt-r16                   INTEGER (1..5120) OPTIONAL, -- Need R

      startingFromRV0-r16                  ENUMERATED {on, off} OPTIONAL, -- Need R

      phy-PriorityIndex-r16                ENUMERATED {p0, p1} OPTIONAL, -- Need R

      autonomousTx-r16                     ENUMERATED {enabled} OPTIONAL

                                                     -- Cond LCH-BasedPrioritization

      ]],

      [[

      cg-betaOffsetsCrossPri0-r17      SetupRelease { BetaOffsetsCrossPriSelCG-r17 } OPTIONAL,

                                                                         -- Need M

      cg-betaOffsetsCrossPri1-r17      SetupRelease { BetaOffsetsCrossPriSelCG-r17 } OPTIONAL,

                                                                         -- Need M

      mappingPattern-r17               ENUMERATED {cyclicMapping, sequentialMapping} OPTIONAL,

                                                                         -- Cond SRSsets

      sequenceOffsetForRV-r17          INTEGER (0..3) OPTIONAL, -- Need R

      p0-PUSCH-Alpha2-r17              P0-PUSCH-AlphaSetId OPTIONAL, -- Need R

      powerControlLoopToUse2-r17       ENUMERATED {n0, n1} OPTIONAL, -- Need R

      cg-COT-SharingList-r17           SEQUENCE (SIZE (1..50722)) OF CG-COT-Sharing-r17 OPTIONAL,

                                                                         -- Need R

      periodicityExt-r17               INTEGER (1..40960) OPTIONAL, -- Need R

      repK-v1710                       ENUMERATED {n12, n16, n24, n32} OPTIONAL, -- Need R

      nrofHARQ-Processes-v1700         INTEGER(17..32) OPTIONAL, -- Need M

      harq-ProcID-Offset2-v1700        INTEGER (16..31) OPTIONAL, -- Need R

      configuredGrantTimer-v1700       INTEGER(33..288) OPTIONAL, -- Need R

      cg-minDFI-Delay-v1710            INTEGER (238..3584) OPTIONAL -- Need R

      ]]

}

 

CG-UCI-OnPUSCH ::= CHOICE {

    dynamic SEQUENCE (SIZE (1..4)) OF BetaOffsets,

    semiStatic BetaOffsets

}

 

SPS-Config ::= SEQUENCE {

    periodicity                       ENUMERATED {ms10, ms20, ms32, ms40, ms64, ms80, ms128,

                                                  ms160, ms320, ms640,spare6, spare5, spare4,

                                                  spare3, spare2, spare1},

    nrofHARQ-Processes                INTEGER (1..8),

    n1PUCCH-AN                        PUCCH-ResourceId OPTIONAL, -- Need M

    mcs-Table                         ENUMERATED {qam64LowSE} OPTIONAL, -- Need S

...

}

Reference

[1] How 5G reduces data transmission latency  

[2] R1-1900609 - 3GPP TSG RAN WG1 Ad-Hoc Meeting 1901 January, 2019