当前位置: 首页 > news >正文

UL grant的分配(LCP)

欢迎关注同名微信公众号“modem协议笔记”。

UE有UL data时,会发送BSR的告知网络侧自己详细的请求,期望网络能够如期下发UL grant,正常情况下网络侧会给UE足够的UL grant去发送UL data,整个过程都会比较顺利。UE收到UL grant后,欣喜若狂,接下来要分配UL grant,但是很快就有一个难题摆在眼前,有时候UE侧会有很多逻辑信道有UL data发送,也就是UE需要将多个逻辑信道复用到一个MAC PDU中,这么多逻辑信道,手心手背都是肉,那怎么分?毫无疑问spec上给出了解决方式,答案在38.321 5.4.3.1Logical channel prioritization (LCP),这部分算是很久的内容了,整体逻辑和LTE一样。在配置之初,网络侧会为每个逻辑信道分配一个priority,进而可以决定多个逻辑信道的复用顺序。拥有最高priority的逻辑信道的data会被优先处理,高优先级逻辑信道的data会优先包含在MAC PDU中,接着是第二高priority的逻辑信道的data,直到分配的UL grant被全部用完或没有UL data要发送。

 

但是又有一个难题出现了,如果高priority的逻辑信道一直有UL data要发,那这个逻辑信道就会一直占用UL grant,其他逻辑信道无法发送自己的data,从而出现问题。和LTE一样,NR引入了Prioritized Bit Ratio(PBR)和Bucket Size Duration(BSD)的概念,即通过RRC信令配置各个逻辑信道参数时,提前为每个逻辑信道配置好各自的PBR及BSD,这样使得当前逻辑信道的的发送UL data增长到PBR×BSD时,其他待传输数据就不能再继续用UL grant,剩下的UL grant就要分配给其他低优先级的逻辑信道,PBR*BSD对应的就是每个逻辑信道的最小数据速率保证,从而保证了其他低优先级逻辑信道的QoS。由于这部分R17和R15相比,基本没有什么变化,只是多了几个参数,就直接看看R17 spec是怎么写的,都有哪些规定。

 

相关参数

logical channel prioritization过程中UL data调度的相关参数如下

c918377bf0394b94b16fd11340f80b9f.png

priority: 逻辑信道的优先级,value对应1~16,value越小 优先级越高。

bucketSizeDuration(BSD): 单位是ms, ms5代表 5 ms, ms10代表 10 ms。

prioritisedBiteRate(PBR): 单位是kiloBytes/s,kBps0代表 0 kiloBytes/s ,kBps8代表 8 kiloBytes/s 依次类推,对于SRB,该值只能设置为infinity,如下,是实网环境下各个RB和逻辑信道之间的配置关系,SRB1的优先级通常是最高的,一般对应逻辑信道 id 1,只有有UL data 要发,所有的UL grant都会先分配给该逻辑信道,毕竟其他逻辑信道都是弟弟。

c9f6212a8e9843c890de689b367a6681.png

 

LCP 过程的控制参数如下

f4ed78dffc19449b9bdd8c0c860e8bf3.png

allowedServingCells 可以限制逻辑信道能够应用的服务小区。

allowedCG-List 用于限制可以configured grant的传输,具体看下面的RRC层参数的具体意义。

allowedPHY-PriorityIndex用于设定动态 grant传输 允许的PHY priority index。

allowedHARQ-mode:R17新增参数,对应uplinkHARQ-mode,可以用于控制允许的HARQ mode;uplinkHARQ-mode 可以控制enable/disable HARQ feedback,分别对应HARQmodeA/HARQmodeB,uplinkHARQ-mode介绍详见NTN(五)C-DRX。

allowedSCS-List规定了允许传输的SCS,maxPUSCH-Duration规定了传输的最大PUSCH duration,两个参数的设定与业务时延要求有关系,如果业务时延要求较短,可以将allowedSCS-List配置为较大SCS或将maxPUSCH-Duration配置为较小duration。

configuredGrantType1Allowed用于控制configured grant type 1是否可以用于上行传输。

allowedSCS-List、maxPUSCH-Duration 和 configuredGrantType1Allowed还与UE 能力挂钩,如下。

622592b305f4420ca67829f7811a5bd3.png

lcp-Restriction:指示 UE 是否支持根据 RRC 配置限制,使用 RRC 参数 allowedSCS-List、maxPUSCH-Duration 和 configuredGrantType1Allowed为每个 UL grant选择逻辑信道。

 

上述几个参数在RRC层具体描述如下:

c951651707e44cdba3cbe5b5e60163c6.png

 maxPUSCH-Duration: 某个逻辑信道配置该参数的情况下,则对应的UL MAC SDU 只能使用PUSCH持续时间小于等于该字段指示时间的UL grant进行传输;不配置时,没有限制。

configuredGrantType1Allowed:针对URLLC业务,引入这个可以避免其他业务抢占URLLC业务的Configured Grant参数,配置的话 只能是True;如果有配置这个IE或UE不支持lcp-Restriction 能力,来自该逻辑信道的 UL MAC SDU 可以用configured grant type 1 传输。否则,来自该逻辑信道的 UL MAC SDU 不能用configured frant type 1 传输。

allowedCG-List:仅适用于 Configured UL grant场景,Configured grant场景会配置对应的ConfiguredGrantConfigIndexMAC。如果有配置该IE,则来自该逻辑信道的 UL MAC SDU 只能映射到该IE指示的Configred grant的配置。如果有配置该IE 但是没有配置任何ConfiguredGrantConfigIndexMAC,则来自该逻辑信道的 UL MAC SDU 不能映射到任何已配置的configured grant 配置上 。如果该字段不存在,来自该逻辑信道的 UL MAC SDU 可以映射到任何已配置的configured grant 配置上。如果字段 configuredGrantType1Allowed 存在,则只有在该List中有指示已配置configured grant type 1 才允许由该逻辑通道使用;否则,该list不应包括任何已配置的configured grant type 1配置。

allowedServingCells:针对重复传输(Duplication),引入了这个参数,用于限制重复内容在相同的小区传输,后面,allowedServingCells也被应用来限制逻辑信道能够应用的服务小区。所以这个参数配置时需要注意,如果与逻辑信道关联的 DRB/SRB有配置PDCP CA duplication (即PDCP entity与属于相同Cell group的多个RLC entity相关联),则该字段是强制存在的,其他情况该字段是可选配置的。如果有配置该参数,则来自该逻辑信道的 UL MAC SDU 只能映射到该列表中指示的服务小区。否则,该逻辑信道的 UL MAC SDU 可以映射到对应cell group中的任何已配置服务小区。重复传输详见NR PDCP duplication。

allowedPHY-PriorityIndex:此限制仅适用于动态grant 场景。R16 可以通过配置priorityIndicatorDCI =enable,使得DCI 0_1/0_2 带有1 bit的Prority indicator field,进而告知UE 该动态调度对应的priority,priority index 非0即1,具体如下图示;如果该字段存在并且动态grant具有对应的PHY priority index,则来自该逻辑信道的 UL MAC SDU 只能映射到指示PHY priority index等于该字段配置的值的动态grant。如果该字段存在并且动态grant没有 PHY priority index(即对应priority index 0),则如果该字段的值为p0,则来自该逻辑信道的 UL MAC SDU 只能映射到该动态 grant. 如果该字段不存在,则来自该逻辑信道的 UL MAC SDU 可以映射到任何动态 grant。

7ebece00da0d4ac19685801710e8eb85.png

 

下面看下38.321 中UL grant的分配规则

390e95bf3fa2478799918ca535233d27.png

 UE为每个逻辑信道j 维护一个参数Bj,当某个logical channel j建立时,对应的Bj初始化为0。

在每次LCP 过程时,Bj增加PBR*T,其中T代表上次Bj增长后经过的时间;如果Bj>bucket size(PBR*BSD),则Bj=bucket size(PRB*BSD)。

这个bucket size(PBR*BSD)对应的是每一轮资源分配时,每个逻辑信道可以得到的最大的UL grant量。

 

Selection of logical channels

68c1cef7106947538148ebfd43829860.png

 当UE有新传要执行时,要同时满足下面的条件的前提下才能为UL grant选择逻辑信道:

  1 有配置allowedSCS-List时,allowedSCS-List 中允许的SCS index包括与 UL grant关联的SCS;

  2 有配置maxPUSCH-Duration时,UL grant 的PUSCH 传输duration 要小于等于maxPUSCH-Duration配置的值;

  3 confiuredGrantType1Allowed=true时,UL grant要对应Configured grant type 1;

  4 allowedCG-List 包含对应UL grant的configured grant index;

  5 allowedPHY-PriotityIndex 包含动态 UL grant 的priority index;

  6 allowedServingCells 对应的是允许使用UL grant的cell info(这个参数不会用于CA duplication deactive的情况);  

  7 符合allowedHARQ-mode的要求。

上面七个条件是and的关系,对应参数有配置时才要考虑。

 

Allocation of resources

e31a7fc8ccfc41639fab9251326e501a.png

逻辑信道资源分配步骤如下。

step1:对于所有Bj>0的逻辑信道,按照优先级递减顺序排序。当某个逻辑信道的PBR配置成无穷大时,只有当这个逻辑信道的资源得到满足后,才会考虑比它优先级低的逻辑信道;其他情况每个逻辑信道每次可以分的的最大UL grant只能是bucket size=PRB*BSD。

step2:Bj减去逻辑信道j在步骤1中用到MAC PDU的所有MAC SDU的大小。

step3:如果前两步执行后仍有上行资源剩余,则把剩余的资源按照逻辑信道优先级分配给各个逻辑信道,而不再比较Bj的大小。只有当所有高优先级的逻辑信道的数据都发送完毕且UL grant还未耗尽时,低优先级的逻辑信道才能得到服务。两个逻辑信道优先级相同时,就要同等服务。

112edef891cd4e348054d1c8fd707cf8.png

 举个例子如上图,假如只有两个逻辑信道要有UL data要发送,对应的bucket size(BSD*PBR)分别为橘黄色部分和蓝色部分。第一种情况,UL grant只能满足逻辑信道1 的bucket size,就先把逻辑信道1 对应量的data 送出去,剩余的UL grant全部给逻辑信道2;第二种情况,UL grant 正好可以满足两个逻辑信道的bucket size 要求,就按照优先级高低,都装进去;第三种情况,UL grant 装满两个逻辑信道的bucket size后,还有剩余,这时候,只考虑优先级的高低,优先级高的先用,优先级低的后用,直到用完或者逻辑信道没有UL data 发时为止,所以先上逻辑信道1 的其他UL data,装走逻辑信道1的剩余UL data后,UL grant还有余量 再装逻辑信道2。 

824f02206c814528a2cb1128dac1a5be.png

 UE在UL调度时要遵守以下规定:

1 一个完整的RLC SDU(或分段传输的RLC SDU或重传的RLC PDU),如果剩余UL grant足以发送,UE就不能对它执行segment,这样也可以减轻网络侧接收的处理负担;

2 如果UE需要对RLC SDU执行分段,则要按照ul grant的余量,最大化segment 的size,以便达到尽可能减少RLC SDU segment的目的;

3 UE尽可能传输数据量大的RLC SDU;

4 如果UE MAC entity收到的UL grant >=8Bytes,且有UL data要传输,则MAC entity不能只传输Padding BSR和/或Padding,也应该包含相应的上行数据。

 

具体到逻辑信道,要按照以下顺序执行优先级过程,优先级顺序由高到底排列。

85e9beb6d8524f71af55dfa9cea36a2a.png

 某些场景,网络侧和能力比较强的UE会达成共识,这样的UE收到 UL grant但是没有data发送时,就可以不发任何东西了,这样可以减轻UE的负担,网络侧也能省去一些麻烦,具体如下。

 

不生成MAC PDU的情况

90efc3b6f04e470790b1836932c48101.png

SkipUplinkTxDynamic: UE没有UL data要传输时,如果支持该功能,UE就可以在这个UL grant的资源上不发任何data

enhancedSkipUplinkTxDynamic:如果UE没有UL data和UCI要发送时,如果支持该功能,UE就可以在这个UL grant的资源上不发任何data。

简单的说就是UE 没有UL data发,网络开了skip功能,UE也支持,那UE就可以skip;不支持的话UE就要在UL grant上加padding。

0f761ca529c44193b3891b1393d285a6.png

如果MAC配置了enhancedSkipUplinkTxDynamic=ture,同时UL grant是通过C-RNTI加扰的DCI 收到的,或对应的是configured UL grant,那HARQ entity满足以下条件,MAC entity就不会生成对应的MAC PDU:

1 此次PUSCH传输不需要发送aperiodic CSI;

2 MAC PDU没有MAC SDU,就是没有data要发;

3 MAC PDU只包括 periodic BSR,同时任何逻辑信道组(LCG)都没有可发送的数据,或MAC PDU只包括Padding BSR。

4 PUSSH 传输不存在UCI复用的情况

dd3960461f3245c18527a52fa60cdc94.png

 

除了上面的情况,如果HARQ entity满足以下条件,MAC entity就不会生成对应的MAC PDU:

1 MAC配置了skipUplinkTxDynamic=ture,同时UL grant是通过C-RNTI加扰的DCI 收到的,或对应的是configured UL grant;

2 此次PUSCH传输不需要发送aperiodic CSI;

3 MAC PDU没有MAC SDU;

4 MAC PDU只包括 periodic BSR,同时任何逻辑信道组(LCG)都没有可发送的数据,或MAC PDU只包括Padding BSR。

这部分至此就结束了。回到最初的异常场景BSR->no UL grant->SR->no UL grant->trigger RACH->RAfail->RLF->RRC reestablishment,UE 收到UL grant后,要按照这篇中的规则办事,保证各个逻辑信道可以正常工作。但是BSR送出去后没有收到UL grant,最后触发了SR,如果又没有收到UL grant,这时候UE的内心或许无奈,或许又有点生气着急..... 那UE具体该怎么做?下篇SR再继续顺一遍spec中的内容。 

相关文章:

UL grant的分配(LCP)

欢迎关注同名微信公众号“modem协议笔记”。 UE有UL data时,会发送BSR的告知网络侧自己详细的请求,期望网络能够如期下发UL grant,正常情况下网络侧会给UE足够的UL grant去发送UL data,整个过程都会比较顺利。UE收到UL grant后&a…...

真我air笔记本电脑怎么重装Win10系统?

真我air笔记本电脑怎么重装Win10系统?最近真我air笔记本电脑挺多用户购买的,因为这款电脑性价比比较高,适合学生和一些办公人员来使用。但是系统预制了Win11系统,有用户想要将系统重装到Win10来使用。那么如何去进行系统的重装呢&…...

【闲聊杂谈】深入剖析SpringCloud Alibaba之Nacos源码

Nacos核心功能点 服务注册 Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中; 服…...

MySQL删除或清空表内数据的方法

MySQL删除或清空表内数据的方法 一、使用MySQL清空表数据命令:truncate SQL语法为: truncate table 表名注意: truncate该命令会直接将数据表内数据清空;truncate该命令删除数据后会重置Identity(标识列、自增字段…...

Android 权限(二): 动态权限讲解

1. 前言 继上一篇文章说到Android权限汇总, 请移步笔者的文章Android 权限(一):权限大全_broadview_java的博客-CSDN博客_android 仅使用中允许权限 先要理清楚权限分类和定义,本篇文章继续说一下动态权限的申请和框架层的实现流程, 以及如何实现赋予系统应用默认的…...

【C++】2.类和对象(上)

1.面向过程和面向对象 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2.类的引入…...

扬帆优配|3300点半日游!上证指数冲高回落;再迎重磅利好!

今天早盘,A股冲高回落,上证指数3300点得而复失,深证成指也于12000点无功而返。 盘面上,煤炭、钢铁、房地产、才智政务等板块涨幅居前,酿酒、酒店餐饮、日用化工、IT设备等板块跌幅居前。北上资金净流入7.77亿元。 房地…...

如何编写性能测试计划?一篇文章教你设计符合项目的性能测试计划

上篇文章,我们讲过性能测试计划,接下来我们就来讲讲如何设计符合项目的性能测试计划。到上篇为止,我们了解了性能测试计划中包含的内容,但是,这个颗粒度,我觉得作为一名测试经验不够丰富的性能工程师来说&a…...

第3章 Windows 下安装 Memcached教程

官网上并未提供 Memcached 的 Windows 平台install 包,咱们可以使用以下链接来download ,需要根据自己的去下载: 点击下载 在 1.4.5 版本以前 memcached 可以作为一个服务install ,而在 1.4.5 及之后的版本删除了该功能。因此咱…...

RXjava中的操作符

要使用Rxjava首先要导入两个包,其中rxandroid是rxjava在android中的扩展 implementation io.reactivex:rxandroid:1.2.1implementation io.reactivex:rxjava:1.2.0Rxjava中的操作符 创建型操作符 interval 创建一个按固定时间间隔发射整数序列的Observable&#xf…...

前端页面jquery规范写法

使用最新版本的 jQuery 最新版本的 jQuery 会改进性能和增加新功能,若不是为了兼容旧浏览器,建议使用最新版本的 jQuery。以下是三条常见的 jQuery 语句,版本越新,性能越好: $(.elem) $(.elem, context) context.find(.elem) 结果 1.6.2 版执行次数远超两个老版本。 jQ…...

【HEC-RAS水动力】HEC-RAS 1D基本原理(恒定流及非恒定流)

一、数据说明 HEC-RAS模型主要由工程文件 (.prj) 文 件 、 河道地形数据文件 ( .g01)、运行文件(p01)、非恒定流文件 ( .u01) 等部分组成。 1. 一般数据 在创建并保存project文件(*.prj)后,其他data文件均会自动以同样的名字保存,但采用不同的后缀来区分各类文件。 &qu…...

2.Gin内容介绍

目录 参考 主要内容 关于Web 创建项目 为什么要用框架 Gin框架介绍 Gin框架安装与使用 安装 第一个Gin示例: RESTful API Gin渲染 HTML渲染 自定义模板函数 静态文件处理 使用模板继承 补充文件路径处理 JSON渲染 XML渲染 YMAL渲染 protobuf渲染…...

python--matplotlib(3)

前言 Matplotlib画图工具的官网地址是 http://matplotlib.org/ Python环境下实现Matlab制图功能的第三方库,需要numpy库的支持,支持用户方便设计出二维、三维数据的图形显示,制作的图形达到出版级的标准。 其他matplotlib文章 python--matpl…...

从源码中探究React中的虚拟DOM

引文 通过本文你将了解到 什么是虚拟DOM?虚拟DOM有什么优势?React的虚拟Dom是如何实现的?React是如何将虚拟Dom转变为真实Dom? 一、概念 虚拟DOM实际上是一种用来模拟DOM结构的javascript对象。当页面变化的时候通过一种算法来…...

容器架构概述

文章目录1. 介绍容器历史2. 描述 Linux 容器架构3. Podman 管理容器1. 介绍容器历史 近年来,容器迅速流行起来。然而,容器背后的技术已经存在了相对较长的时间。2001年,Linux引入了一个名为VServer的项目。VServer 是第一次尝试在高度隔离的…...

掌握MySQL分库分表(四)分库分表中间件Sharding-Jdbc,真实表、逻辑表、绑定表、广播表,常见分片策略

文章目录什么是ShardingSphere-JDBC?Sharding-Jdbc常见概念术语数据节点Node真实表逻辑表绑定表广播表数据库表分片(水平库、表)分片键 (PartitionKey)行表达式分片策略 InlineShardingStrategy(必备)标准分片策略Stan…...

2022-06-16_555时基的迷人历史和先天缺陷!

https://www.eet-china.com/news/magazine220608.html 555时基的迷人历史和先天缺陷! 发布于2022-06-16 03:39:12 LARRY STABILE 流行数十年的555时基,业内不知晓的工程师应该寥寥无几!几乎所有的数字电路教材中,都有该芯片的身影…...

SpringBoot 基础知识汇总

一、环境准备Java:Spring Boot 3.0.2 需要 Java 17,并且与 Java 19 兼容Maven:Apache Maven 3.5 或更高版本兼容二、启动器以下应用程序启动器由 Spring Boot 在该组下提供:org.springframework.boot表 1.Spring 引导应用程序启动…...

centos7下用kvm启动Fedora36 Cloud镜像

环境 os:centos7 Arch: aarch64 安装qemu-kvm yum install qemu-kvm kvm virt-install libvirt systemctl start libvirtd.service创建镜像 下载aarch64架构的Fedora36镜像 wget https://mirrors.tuna.tsinghua.edu.cn/fedora/releases/36/Cloud/aarch64/images/Fedora-Cl…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...

Xela矩阵三轴触觉传感器的工作原理解析与应用场景

Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...