在LTE时代,下行资源分配只有Type 0(bitmap)和Type 1(bitmap子集)两种,且最终演进到Type 2(RIV)。5G NR直接在TS 38.214 Section 5.1.2.2中定义了全新的Type 0(RBG bitmap)和Type 1(RIV连续分配),并引入了动态切换(dynamicSwitch)能力——gNB可以在每个DCI中实时选择使用哪种分配方式。
这不是协议设计的冗余,而是一场频域调度灵活性与DCI信令开销之间的精确博弈:
当BWP带宽为100MHz(273个PRB)时,Type 0的bitmap长度可达17-137比特,而Type 1的RIV仅需⌈log₂(273×274/2)⌉=16比特。两者之间的开销差,在PDCCH容量紧张的场景下,直接决定了小区边缘用户能否被调度。
Type 0将BWP划分为若干个资源块组(RBG),每个RBG包含P个连续PRB。P的取值由RRC参数rbg-Size(配置1或配置2)和BWP带宽共同决定:
| BWP大小(PRB数) | 配置1的RBG大小P | 配置2的RBG大小P |
|---|---|---|
| 1–36 | 2 | 4 |
| 37–72 | 4 | 8 |
| 73–144 | 8 | 16 |
| 145–275 | 16 | 16 |
bitmap的总长度为 $N_{RBG} = \lceil N_{BWP}^{size}/P \rceil$ 比特。bitmap中的第i位为1,表示第i个RBG被分配给该UE。
当BWP的起始位置不是RBG大小的整数倍时,第一个RBG可能小于P个PRB。同理,最后一个RBG也可能不足P个PRB。这意味着:
BWP起始位置: RB_start = 10
BWP大小: N_BWP = 50 PRBs
RBG大小P = 4(配置1,37-72范围)
第一个RBG: PRB 10-11(仅2个PRB,因为10 mod 4 = 2)
中间RBG: PRB 12-15, 16-19, ..., 56-59(每个完整4 PRB)
最后一个RBG: PRB 60(仅1个PRB,因为50 mod 4 = 2,剩余2个PRB)
总RBG数 = ceil(50/4) = 13
这种非对齐带来的碎片化是Type 0的隐性成本——首尾RBG的资源利用率可能只有50%甚至更低。
sequenceDiagram
participant gNB as gNB调度器
participant DCI as DCI Format 1_1
participant UE as UE解码器
gNB->>gNB: 1. 根据CQI选择频域PRB集合
gNB->>gNB: 2. 将PRB映射为RBG bitmap
gNB->>gNB: 3. 计算bitmap长度 = ceil(N_BWP/P)
gNB->>DCI: 4. 填充Frequency domain<br/>resource assignment字段
Note over DCI: 如果dynamicSwitch:<br/>bit 0 = 0 表示Type 0<br/>后续为bitmap
DCI->>UE: 5. PDCCH发送DCI
UE->>UE: 6. 检测resource allocation type
UE->>UE: 7. 解析bitmap,定位分配的RBG
UE->>UE: 8. 从RBG展开为PRB集合
UE->>UE: 9. VRB-to-PRB映射(交织/非交织)
UE->>UE: 10. 在对应PRB上接收PDSCH
Type 1使用资源指示值(RIV)来编码一段连续的VRB分配。给定起始位置 $RB_{START}$ 和长度 $L_{RBs}$:
$$ RIV = \begin{cases} N_{BWP}^{size}(L_{RBs}-1) + RB_{START} & \text{if } L_{RBs}-1 \leq \lfloor N_{BWP}^{size}/2 \rfloor \ N_{BWP}^{size}(N_{BWP}^{size}-L_{RBs}+1) + (N_{BWP}^{size}-1-RB_{START}) & \text{otherwise} \end{cases} $$
RIV的比特宽度仅为 $\lceil\log_2(N_{BWP}^{size}(N_{BWP}^{size}+1)/2)\rceil$。
BWP大小 = 106 PRBs(40MHz FR1)
起始位置 RB_START = 20
长度 L_RBs = 30
判断: L_RBs - 1 = 29 <= floor(106/2) = 53 ✓
RIV = 106 × (30-1) + 20 = 106 × 29 + 20 = 3094
所需比特: ceil(log2(106×107/2)) = ceil(log2(5671)) = 13 bits
对比Type 0:
RBG大小P = 8(配置1,73-144范围)
Bitmap长度 = ceil(106/8) = 14 bits
加上dynamicSwitch的1 bit = 15 bits
Type 1仅用13 bits完成了30个连续PRB的指示。
RIV能表示的分配组合总数为 $N_{BWP}^{size}(N_{BWP}^{size}+1)/2$,即从1个PRB到整个BWP的所有连续分配组合。对于273个PRB的BWP,这意味着37,531种不同的分配方式,全部压缩在16个比特中。
TS 38.331中PDSCH-Config的resourceAllocation参数决定UE支持的分配类型组合:
| RRC配置值 | 含义 | DCI中的指示方式 |
|---|---|---|
resourceAllocation = "type0" |
仅Type 0 | 无额外指示位 |
resourceAllocation = "type1" |
仅Type 1 | 无额外指示位 |
resourceAllocation = "dynamicSwitch" |
两者皆可 | DCI最高位指示类型 |
当配置为dynamicSwitch时,Frequency domain resource assignment字段的编码规则:
graph TD
A[DCI Frequency Domain<br/>Resource Assignment] --> B{最高位 MSB}
B -->|MSB = 0| C[Type 0: RBG Bitmap]
B -->|MSB = 1| D[Type 1: RIV]
C --> E[bitmap长度 = ceil N_BWP/P bits]
D --> F[RIV长度 = ceil log2 N_BWP×N_BWP+1/2 bits]
E --> G[总字段长度 = 1 + max bitmap_len, RIV_len]
F --> G
style A fill:#e1f5fe
style B fill:#fff9c4
style C fill:#c8e6c9
style D fill:#ffccbc
关键设计:无论选择Type 0还是Type 1,该字段的总比特数相同,等于 $1 + \max(N_{bitmap}, N_{RIV})$。当选择Type 1时,多余的高位比特全部填0。这保证了DCI长度的一致性——UE不需要先解码类型再确定DCI长度。
Type 0和Type 1分配的都是虚拟资源块(VRB),还需要一层VRB到PRB的映射。TS 38.211 Section 7.3.1.5定义了两种映射方式:
VRB n 直接映射到PRB n,一一对应。适用于: - 频率选择性波束赋形(beamformed传输) - 信道状态信息精确已知时的集中式调度
VRB以Bundle为单位进行交织映射。Bundle大小由DCI指示:
| 资源分配类型 | Bundle大小 |
|---|---|
| Type 0 | 等于RBG大小P |
| Type 1 | 由DCI中VRB-to-PRB interleaving字段决定(2或4) |
交织操作使用块交织器,行数从{2, 3, 6}中选择,将VRB bundle分散到整个BWP带宽上,获得频率分集增益。
sequenceDiagram
participant gNB as gNB调度器
participant UE as UE物理层
gNB->>gNB: 1. 确定VRB分配(Type 0/1)
gNB->>gNB: 2. 决定VRB-to-PRB映射方式
alt 非交织映射
gNB->>UE: DCI: VRB-to-PRB = 0
UE->>UE: VRB n → PRB n(直接映射)
else 交织映射
gNB->>UE: DCI: VRB-to-PRB = 1<br/>Bundle size = 2/4
UE->>UE: VRB → Bundle分割
UE->>UE: 块交织(行数2/3/6)
UE->>UE: 映射后的PRB位置
end
UE->>UE: 在PRB位置接收PDSCH
以FR1三个典型带宽为例,计算Frequency domain resource assignment字段的比特开销:
| BWP配置 | 20MHz (51 PRB) | 40MHz (106 PRB) | 100MHz (273 PRB) |
|---|---|---|---|
| Type 0 bitmap(配置1) | 13 bits | 14 bits | 18 bits |
| Type 0 bitmap(配置2) | 7 bits | 14 bits | 18 bits |
| Type 1 RIV | 13 bits | 13 bits | 16 bits |
| Dynamic Switch总字段 | 1+max = 14 bits | 1+max = 15 bits | 1+max = 19 bits |
| 差值(max-min) | 7 bits | 2 bits | 3 bits |
DCI Format 1_1的总长度通常在60-90 bits之间(取决于RRC配置)。每多1 bit的DCI长度,在相同聚合等级(AL)下可能需要翻倍的CCE资源:
graph LR
subgraph DCI开销增加
A[DCI +1 bit] --> B{CCE需求变化?}
B -->|跨过边界| C[CCE翻倍]
B -->|未跨边界| D[CCE不变]
C --> E[PDCCH容量↓50%]
E --> F[可调度UE数减少]
F --> G[小区边缘UE<br/>可能无法调度]
end
subgraph 优化方向
H[选择Type 1 RIV] --> I[最小化DCI长度]
I --> J[相同AL下更少CCE]
J --> K[更多UE可被调度]
end
style G fill:#ffcdd2
style K fill:#c8e6c9
当小区负载高、PDCCH容量成为瓶颈时,Type 1的RIV编码成为救命的几比特。这也是为什么实际网络中,大多数调度决策默认使用Type 1——只有在信道条件好且需要频率选择性调度时才切换到Type 0。
TS 38.212和38.214定义了三种下行调度DCI格式,其对资源分配的支持能力不同:
| DCI格式 | Type 0支持 | Type 1支持 | 动态切换 | 典型场景 |
|---|---|---|---|---|
| DCI 1_0 | ❌ | ✅(强制) | ❌ | Fallback/公共搜索空间 |
| DCI 1_1 | ✅ | ✅ | ✅ | UE专用搜索空间(常规) |
| DCI 1_2 | ✅ | ✅ | ✅ | RedCap/低复杂度UE(R18+) |
DCI Format 1_2为RedCap等低复杂度UE引入了多项精简:
stateDiagram-v2
[*] --> RRC配置
RRC配置 --> 仅Type0: resourceAllocation = type0
RRC配置 --> 仅Type1: resourceAllocation = type1
RRC配置 --> 动态切换: resourceAllocation = dynamicSwitch
仅Type0 --> Type0调度: 每次DCI
仅Type1 --> Type1调度: 每次DCI
动态切换 --> Type0调度: DCI MSB=0
动态切换 --> Type1调度: DCI MSB=1
Type0调度 --> 非交织: VRBtoPRB=0
Type0调度 --> 交织: VRBtoPRB=1<br/>BundleSize=RBG_Size
Type1调度 --> 非交织2: VRBtoPRB=0
Type1调度 --> 交织2: VRBtoPRB=1<br/>BundleSize=2or4
在5G L1/L2抓包工具(如QXDM、Wireshark + MAC/PHY log)中识别PDSCH频域资源分配:
resourceAllocation参数值和rbg-Size配置| 故障现象 | 可能根因 | 排查方向 |
|---|---|---|
| UE解不出PDSCH数据 | RBG bitmap解析与RRC配置不匹配 | 检查rbg-Size配置与bitmap长度的对应关系 |
| DCI长度异常导致PDCCH漏检 | dynamicSwitch配置下DCI长度计算错误 | 对比TS 38.212 Section 7.3.1.2的DCI size计算 |
| 频率分集增益不足 | Type 1 + 非交织映射,窄带连续分配 | 检查是否应启用交织映射或切换Type 0 |
| 小区边缘吞吐量低 | PDCCH CCE受限,长DCI无法聚合 | 考虑使用Type 1减少DCI长度,降低AL需求 |
| RedCap UE调度失败 | DCI 1_2的Type 0 RBG粒度RIV配置错误 | 检查PDSCH-Config中resourceAllocation-Type0-Granularity |
| ## 九、深入分析:Type 0/1选择对系统级性能的影响 |
在MU-MIMO中,多个UE共享同一时频资源。Type 0的bitmap可以精确地分配不同的频段给不同UE,实现频域复用。而Type 1只能给每个UE分配连续的频段,在多UE频分复用时灵活性受限。
设小区有K个MU-MIMO配对UE,每个UE平均分配BWP的1/K带宽:
但Type 0的代价是每个UE的DCI更长,总DCI开销 = K × bitmap_len,可能耗尽PDCCH容量。
当系统中存在大量窄带控制信道(CORESET)、参考信号(CSI-RS、SSB)的资源预留时,可用PRB呈碎片化分布。此时:
碎片化程度越高,Type 0的调度增益越明显。这也是TDD网络(时域资源碎片更多)中Type 0使用比例略高于FDD网络的原因之一。
TS 38.214在R18/R19中引入的增强主要围绕降低DCI开销展开:
Q1: DCI Format 1_0为什么强制使用Type 1? A: DCI 1_0是fallback格式,用于UE尚未获取完整的PDSCH-Config时(如初始接入、RRC重配期间)。Type 1的RIV编码是自包含的——UE只需知道BWP起始位置和大小即可解码,无需额外的RRC参数(如rbg-Size)。这保证了在任何状态下都能正确调度。
Q2: 为什么不统一使用Type 0的bitmap?灵活性不是更高吗? A: 对于100MHz BWP(273 PRB),Type 0的bitmap可达18比特,加上dynamicSwitch指示位共19比特。而Type 1的RIV仅需16比特。在PDCCH使用AL=1(1个CCE = 54 bits有效载荷)时,这3比特的差异可能导致DCI从1个CCE膨胀到2个CCE,PDCCH容量直接减半。在小区边缘、高负载场景下,这是不可接受的。
Q3: 配置1和配置2的rbg-Size应该怎么选? A: 配置1(细粒度)适合中小带宽(20-40MHz)和频率选择性调度场景,RBG大小更小意味着bitmap更长但调度更灵活。配置2(粗粒度)适合大带宽(80-100MHz),bitmap更短节省DCI开销,但代价是每个RBG包含更多PRB,可能浪费碎片资源。实际部署中,大多数厂商在BWP > 72 PRB时选择配置1以保持8 PRB的RBG粒度。
Q4: 交织映射何时应该启用? A: 交织映射的核心价值是频率分集——将VRB分散到整个BWP上获得对抗频率选择性衰落的能力。当UE信道条件不稳定(高速移动、小区边缘、无精确CSI反馈)时启用交织映射。当信道条件稳定且有精确CSI反馈时(低移动性、近小区中心),非交织映射配合频率选择性调度可以获得更高的峰值速率。
Q5: DCI 1_2中Type 0的RBG粒度RIV是什么意思? A: 传统Type 0使用bitmap指示每个RBG是否分配。DCI 1_2引入了一种新方式:用RIV编码一段连续的RBG(而非PRB)。例如在106 PRB BWP、P=8时,传统bitmap需要14比特,而RBG粒度RIV仅需⌈log₂(14×15/2)⌉=7比特,节省了一半。代价是只能分配连续的RBG,丧失了非连续分配能力。这是为RedCap UE设计的折中方案——用Type 0的部分灵活性换取更短的DCI。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
