NR PDSCH(三) TB size determination

简介: 谈TB size前,首先了解下PDSCH resource mapping,基站会通过RRC层配置的参数告知UE有一些时频资源(RB级/RE级)不能作为UE的PDSCH 资源使用,网络侧会对这些资源可能有特定用途,例如DSS场景中LTE作为NR 的inband部署时。用于发送RAR/OSI/Paging/MSG4/MSGB/SIB1 的PDSCH资源如果与SSB 的PRB overlap,overlap的PDSCH不能用于PDSCH 传输。

谈TB size前,首先了解下PDSCH resource mapping,基站会通过RRC层配置的参数告知UE有一些时频资源(RB级/RE级)不能作为UE的PDSCH 资源使用,网络侧会对这些资源可能有特定用途,例如DSS场景中LTE作为NR 的inband部署时。用于发送RAR/OSI/Paging/MSG4/MSGB/SIB1 的PDSCH资源如果与SSB 的PRB overlap,overlap的PDSCH不能用于PDSCH 传输。

4374a270841d4e9e98dfd4479fcc6bdb.png

     PDSCH resource mapping分为RB symbol level granularity和RE level granularity。


RB symbol level granularity:


RRC层PDSCH-Config/ServingCellConfigCommon/ServingCellConfig中配置rateMatchPatternToAddModList中最多配置4个BWP级的RateMatchPattern和4个cell级别RateMatchPattern。


先看下RRC 层配置参数:2eef327d5f6d4d6da6c53e1ab8a05d3b.png

RateMatchPatternId:patternType bitmaps 下有多个IE


resourceBlocks:代表频域RB的bitmap,当对应bit置1时,在symbolsInResourceBlock 代表的symbol 上,这个RB用于速率匹配,UE不可用


例如resourceBlocks  1000000.....


      symbolsInResourceBlock


       oneSlot                  1000000...(14bits)


       twoSlots                 1000000...(28bits)


如上代表频域上在当前分配的RB 资源上第一个RB不可用 ,要用于速率匹配


     在时域上 oneSlot   代表以1个slot为周期,在第一个符号上的对应RB 要用于速率匹配;twoSlots 代表以2个slot为周期,在第一个符号上 对应的RB 要用于速率匹配。


periodicityAndPattern:代表 发生的周期,当缺省时,默认为 n1


      当为n40时,会有40bit 代表对应的slot,置1 对应的slot要按照resourceBlocks 和symbolsInResourceBlock 确定的时频域资源进行 速率匹配。


     当配置有2个rateMatchPatternGroup1 和 rateMatchPatternGroup2时,要根据DCI 中的field动态进行rate matching。DCI 1_1/1_2中有Rate matching indicator :当有两个group时,最高位代表goup 1  最低位代表group 2。

8eb18f2779e64148aa1ad5e776e04012.pnge29907d24cd64322a2f1de47eaa5f695.png

    另一种 是以CORESET的形式 进行rate matching,即按照CORESET 和searchspace对应的时频域资源进行速率匹配。

ba00e48c343f4686abc65ae45ff7bb2d.png

RE level granularity


     通过配置RateMatchPatternLTE-CRS或者配置周期和非周期ZP CSI-RS资源实现。

1b21330028d241bca0bb3e24ced12912.png

1f86ce9ae68b457fbd828f43fbd3cc8f.png

配置周期和非周期ZP CSI-RS 资源

c3766c82bce949bd8ce3f088895199c4.png

     这些都在38.214 5.1.4 PDSCH resource mapping 讲述,上面方式确定的PDSCH 资源是网络侧预留的,不能用作UE PDSCH 资源。


下面看下NR TB size确定。


     首先看下Tput问题的基本流程。基站会配置CSI-RS资源,UE根据配置测量CSI-RS,然后通过PUCCH/PUSCH向UE反馈CSI report。NR的CSI比LTE 要多些内容例如CRI/LI/PMI/CQI/RI,其中CRI和LI是NR中新增的CSI,CSI相关内容在后面会有专门介绍。RI 和LTE类似,UE测量后评估得到的最佳下行transmission rank,也就是对应的传输层数。单codeword时,RI个数1~4,双Codeword时,RI 1~8。PMI是根据RI,UE推荐的PMI预编码矩阵索引;CQI是根据PMI和RI,得到合适的编码和调制方式,上报时要针对每个codeword反馈。下图是DL 调度的基本过程。

88fda03d28b34ad78cd919dbfcbc424c.png

     基站获得CSI 信息后,就会根据CSI通过DCI调度MCS  RB等资源。有一点需要注意,基站并不一定会按照UE 的要求进行资源的分配,例如UE 上报的CSI 很好,实际中可能基站分配的资源很差,导致吞吐率很低;这些情况也是可能发生的,所以实际问题中需要用公平性对比测试进一步理清问题。什么是公平性对比测试?针对Tput的问题,测试方法建议是DUT和REF 插入相同运营商SIM卡,在相同地点交叉轮流测试,多次测试取平均值的方法。为什么不能同时测试?因为网络的资源是一定的,在同时间测试时,即使DUT和REF上报的CSI 情况类似,也难免会出现资源分配不均的情况,测试期间同一区域有多少台UE在进行类似的操作,也会影响到测试结果。因而要采用在相同地点交叉轮流测试,多次测试,取平均值,进一步降低环境因素的影响。


     扯多了回到原题。我们都知道LTE中计算TB size的方法是通过DCI确定Imcs 和Nprb ,然后用Imcs查表确定Itbs,最后根据Itbs 和Nprb 联合查表确定一个TB size,统计一定时间的TB size 就可以得到一个速率。LTE是完全通过查表确定的TBS。NR 由于带宽大,速率也提升了很多,所以在计算TBS的时候有一个分段过程,没有超过协议设定的3824时,还是可以通过查表确定;超过的时候,要通过公式计算得出TBS。下面具体看下。

f91f5fd5d5934e1d819773a26e318e41.png

     确定PDSCH TB size前 要先根据DCI 中的field MCS 确定modulation order和target code rate 及RV(DCI中有对应的field)。 最后UE 结合layer数和分配的PRB确定TB size(layer数的确定在PDSCH DMRS中再说)。


     38.214针对不同的需求定义了3张MCS-table,UE要根据RRC配置选择一张表确定MCS与modulation order 和target code rate。38.214 5.1.3.1 有讲MCS-table的具体选取规则,协议上列了一大堆内容阐述了不同情况要的用不同MCS table。简单总结说就是当mcs-Table 为qam256时,用Table 5.1.3.1-2(0<=Imcs<=27);MCS-C-RNTI(使用场景为URLLC)或者msc-table为qam64LowSE(Low Spectral Efficiency)时,用Table 5.1.3.1-3(0<=Imcs<=28);其他情况用Table 5.1.3.1-1(0<=Imcs<=28)。


      这三张表有什么区别呢?Table 1和Table 2适用于EMBB场景,相比Table 1,Table 2加入了256 QAM 。 Table 3适用于URLLC高可靠场景。Table 3和Table 1一样,调制方式只支持QPSK、16 QAM和64 QAM,不支持256 QAM,URLLC场景更注重可靠性和时延,所以code rate 更加保守。

0bfbc636c3dc4666a73c39d61526cbc1.png5116773b9ea74b16a9a98f4d9188629a.png

     协议规定通过P-RNTI, RA-RNTI, SI-RNTI 调度的PDSCH ,只能用QPSK调制。

9994fb0d61fc47b29c0a1ac5607ca610.png

786827abeea547dab41535ed99585c8d.pngbb87b8ff95fd470696e1e3da74bd6625.png

6b9677445f824bbf9196099378e246b8.png

网络端可以通过RRC层配置的maxNrofCodeWordsScheduledByDCI 指示有enable两码字传输,当然网络也可以通过DCI 1_1 (Imcs=26  RVid =1)将其中的一个码字disable。如果所有的TB 都有enable, 那TB1和TB2要分别映射到codeword 0和codeword 1;如果只有enable 一个TB,则这个TB 要直接映射到codeword0 。

ea25b25f5ffe4e6ba20a6ac49f23babe.png

   例如在PDSCH-Config中mcs-Table 为qam256 ,在计算TB size时就用Table 5.1.3.1-2确定modulation order 和target code rate;maxNrofCodeWordsScheduledByDCI为1 说明只有enable 一个codeword,是单TB传输,RI个数1~4。


下面看下具体的TB size计算方法 38.214 5.1.3.2Transport block size determination。

ac6cea17b29e415198f2402bb90f072c.png

    首先确定在1个PRB内的RE数,计算公式 N'_RE=N_RB_sc *N_sh_symb-N_PRB_DMRS-N_PRB_oh。N_RB_sc=12 代表一个PRB 的子载波数;N_sh_symb代表1个slot内的PDSCH占用的符号数;N_PRB_DMRS代表PRB内DMRS占用的RE数;N_PRB_oh 为slot内额外占用的符号数,如CSI-RS CORSET0等,通过PDSCH-ServingCellConfig中的xOverhead确定,如果该参数没有配置,则N_PRB_oh=0。对于SI-RNTI/RA-RNTI/MSGB-RNTI/P-RNTI加扰的PDCCH调度的PDSCH,N_PRB_oh也为0。


     最后N'_RE 要与156比较,两者取小确定最后1个PRB内的RE数,总共的RE数为N_RE=min(156,N'_RE)*n_PRB。


     为什么这里要用156?协议上并未说明原因,这里156=13(symbol)×12(subcarrier),在计算PDSCH TBS 时,可能至少要考虑有一列是其他的dmrs,例如PDCCH DMRS,所以要排除12个RE,反正这里协议上就是定义的156,就是不让最大满配。

9b7e549679d24477964f2bc9ed343dfe.png

   通过公式N_info=N_RE*R*Qm*v ,计算N_info,其中R、Qm和 v通过DCI field的参数已经可以确定。


     如果N info <=3824 使用下图中公式对N_info做一个量化处理,得到N'_info,然后在38.214 Table5.1.3.2-2中选取一个不超过但最接近N'_info的值作为TBS。


d90596fe2b3844268633a3f3546763f0.png

从表中找一个不超过N'info的最接近的TBS值。

67527cf61f4e4223bee81e84ecd975f4.png

    如果N_info >3824, TBS太大的时候,就通过下图中的公式确定TBS,TBS 太大的话,查表都费劲,3GPP直接把具体计算TBS 的公式祭出,省去查表的麻烦。

12b4564e850b437fba422b5558df5a7d.png

      对于SI-RNTI加扰的PDCCH调度的PDSCH ,TB size不能超过2976bits。


    对于P-RNTI/RA-RNTI/MSGB-RNTI加扰的DCI 1_0调度的PDSCH,需要对N_info做个,TBS做个缩放 处理 ,N_info=S*N_RE*R*Qm*v,这个S由DCI 1_0中的TB scaling field给出,如Table 5.1.3.2-2。

ed9ba95c02924106990230d58aadcb04.png

上面有几个关键的数字8824, 3816,  R=1/4和 24。主要和NR PDSCH 的信道编码流程有关系。


NR TB data会进行LDPC编码,然后要对base graph进行选择,R=1/4 是BG1 BG2的一个分界点,R<=1/4 用BG2 , 否则用BG1;选择完base graph后,要对TB进行码块的分割,BG1会用到参数max code block(Kcb)=8448,对应每个码块的大小,由于还有24bits的CRC 长度,所以一个码块的有用data 为 8448-24=8424。BG2 max code block(Kcb)=3840,由于还有24bits的CRC 长度,所以有用data为3840-24=3816。


信道编码的过程可以看下NR PDSCH(五)PDSCH 信道编码与调制流程。其他公式都是根据几个数字的一个量化操作。

相关文章
|
调度 索引
NR PUCCH(四) UL data operation
UE 在connected mode 需要实时和网络进行上下行通信,在UE有UL data要发送但是没有UL grant时,就需要向网络端发送SR请求资源,网络收到SR就会在激活的BWP上发送 UL DCI给UE,UE 根据UL DCI 信息 获得UL grant ,然后在PUSCH对应的资源上就可以发送UL data给网络,最后网络端通过HARQ 过程指示是否有收到对应的data。这是UL data 的基本流程,下面通过实际log分别看下UL data operation的各个过程。
|
6月前
|
前端开发
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
39 0
|
6月前
What value should kernel parameter AIO-MAX-NR be set to ?
What value should kernel parameter AIO-MAX-NR be set to ?
60 0
|
6月前
|
Docker 容器
devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 163840 free dat
devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 163840 free dat
48 0
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
182 0
NR PDSCH(六) DL data operation
NR中,网络端会根据UE业务动态的调整BWP,进而改变频域资源范围;不同的BWP会配置CORESET/Searchspace确定不同的时频域资源,让UE在对应的资源上进行盲检接收DCI;通过DCI获得调度信息后,再去PDSCH对应的时域资源和频域资源上 decode data。
NR Timing Advance(TA)
这篇是NR TA的笔记,之前有对R17 NTN TA进行了简单总结,但是也仅仅局限在NTN部分,其他TA基本过程没有涉及,这篇是针对R16版本协议对NR TA相关内容做的总结。和NR PUSCH power control过程类似,NR TA也可以分为开环和闭环调整,相关内容分散在38.300,38.211,38.213,38.321,38.133和38.331。后面就按照38.300 TA相关概念,38.211中有关TA定义,38.213 TA 相关内容,38.321 TA控制过程,38.133 Timing的一些requirement的顺序展开。
|
存储 Linux Windows
ChIP-seq 分析:Call Peak(8)
ChIP-seq 分析:Call Peak(8)
314 0
|
编译器
relocation value does not fit in 26 bits (offset: 0x10, type: 1)
relocation value does not fit in 26 bits (offset: 0x10, type: 1)
199 0
【1079】Total Sales of Supply Chain (25 分)
【1079】Total Sales of Supply Chain (25 分) 【1079】Total Sales of Supply Chain (25 分)
117 0