缓冲资源管理方法和电信设备技术

技术编号:10384798 阅读:168 留言:0更新日期:2014-09-05 11:48
本公开涉及无锁缓冲资源管理方案。在所提出的方案中,缓冲池被配置为具有分配列表和去分配列表。所述分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;以及头指针,指向位于分配列表头部的缓冲对象。所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;头指针,指向位于去分配列表开头的缓冲对象;以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】本公开涉及无锁缓冲资源管理方案。在所提出的方案中,缓冲池被配置为具有分配列表和去分配列表。所述分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;以及头指针,指向位于分配列表头部的缓冲对象。所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;头指针,指向位于去分配列表开头的缓冲对象;以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针。【专利说明】缓冲资源管理方法和电信设备
本公开涉及资源管理的无锁方案,具体涉及无锁缓冲资源管理方案以及采用该方案的电信设备。
技术介绍
在电信设备(如BS(基站)和/或交换机)中,总是需要管理其中的缓冲资源。例如,在LTE (长期演进)eNB (演进型节点B)中,与空中接口相比,SI处的传入/传输分组是并发异步过程。通常,存在两个分离的任务,一个通过SI接口上的套接字接收或发送并向无线UP(用户面)(roCP/RLC/MAC)栈传递分组,另一个根据调度信息由UP栈中的分组生成MAC (媒体访问控制)PDU (分组数据单元),并在空中接口上发送。图1示出了 LTE eNB中的示例产出方和消耗方模型。(SI接口上的)套接字任务是消耗方,分配来自池的缓冲对象以保持来自Si接口的分组并将其传送至UP栈,(空中接口上的)另一任务是产出方,在PDU通过接口发送后将缓冲对象释放回池。缓冲对象是在两个任务间流动的分组的容器,因此在缓冲池中循环以便重用。此时,出现以下常见问题:如何在这样的多线程执行环境中确保缓冲池的数据完整性。确保产出方-消耗方模型中的数据完整性的常见方法是M,即,强制缓冲池在多线程之间的串行访问,以确保数据完整性。锁机制通常由OS (操作系统)提供,从而可以确保原子态,如互斥体、旗语。每当任意任务希望访问缓 冲池(无论分配还是去分配),其总是需要首先取得锁。如果锁已被另一任务拥有,当前任务将必须中止其执行,直到所有者将锁释放。锁机制将不可避免地引入额外的任务切换。在一般情况下,其不会对总体性能引起较多影响。然而,在某种关键的实时环境中,任务切换的开销不可忽略。例如,在LTE eNB中,调度TTI仅1ms,而一个任务切换将消耗大约20 μ S,并且一轮任务中止和继续需要至少两个任务切换过程,即40 μ S,这成为对LTE调度性能的显著影响,在大业务量下尤其如此。通常,基带应用在便于多个任务并行执行以实现高性能的多核硬件平台上运行。然而,锁机制妨碍这样的并行模型,由于锁的实质恰恰强制串行执行以确保数据完整性。即使拥有锁的间隔极小,串行执行也将对运行上多核平台上的应用引起极大影响,并且可能成为潜在的性能瓶颈。
技术实现思路
为了解决上述问题中的至少一个,本公开提供了无锁缓冲资源管理方案以及采用该方案的电信设备。根据本公开的第一方案,提供了一种缓冲资源管理方法,其中,缓冲池被配置为具有分配列表和去分配列表。所述分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;以及头指针,指向位于分配列表头部的缓冲对象。所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;头指针,指向位于去分配列表开头的缓冲对象;以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针。在初始化中,去分配列表的头指针为空,去分配列表的尾指针指向去分配列表的头指针自身。所述缓冲资源管理方法可以包括以下接管动作的步骤:将去分配列表的头指针赋值给分配列表的头指针;将去分配列表的头指针清空;以及令去分配列表的尾指针指向去分配列表的头指针自身。在一个实施例中,所述缓冲资源管理方法还可以包括以下步骤:确定分配列表是否为空;如果分配列表为空,确定去分配列表是否为空;以及如果去分配列表不为空,执行所述接管动作的步骤。所述缓冲资源管理方法还可以包括以下步骤:如果分配列表不为空,将位于分配列表开头的缓冲对象解除链接。所述缓冲资源管理方法还可以包括以下步骤:如果去分配列表为空,分配来自堆的多个缓冲对象,并将所述多个缓冲对象链接至分配列表。在另一实施例中,所述缓冲资源管理方法还可以包括以下回收动作的步骤:令位于去分配列表结尾的缓冲对象的下一指针指向新的释放的缓冲对象,其中,去分配列表结尾的下一指针由去分配列表的尾指针寻址;以及将去分配列表的尾指针移至新的释放的缓冲对象的下一指针。所述缓冲资源管理方法还可以包括以下后调整动作的步骤:在新的释放的缓冲对象链入去分配列表后,确定去分配列表的头指针是否为空;以及如果去分配列表的头指针为空,令去分配列表的尾指针指向去分配列表的头指针自身。所述缓冲资源管理方法还可以包括以下重回收动作的步骤:在所述后调整动作后,确定分配列表的头指针是否为空以及新的释放的缓冲对象是否仍处于释放状态;以及如果分配列表的头指针为空且新的释放的缓冲对象仍处于释放状态,再次执行回收动作的步骤。作为示例,接管动作的步骤和回收动作的步骤能够在任意位置交错。根据本公开的 第二方面,提供了一种缓冲资源管理方法,其中,缓冲池被配置为具有分配列表和去分配列表。所述分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;以及头指针,指向位于分配列表开头的缓冲对象。所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;头指针,指向位于去分配列表开头的缓冲对象;以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针。在初始化中,去分配列表的头指针为空,去分配列表的尾指针指向去分配列表的头指针自身。所述缓冲资源管理方法可以包括以下回收动作的步骤:令位于去分配列表结尾的缓冲对象的下一指针指向新的释放的缓冲对象,其中,去分配列表结尾的下一指针由去分配列表的尾指针寻址;以及将去分配列表的尾指针移至新的释放的缓冲对象的下一指针。在一个实施例中,所述缓冲资源管理方法还可以包括以下后调整动作的步骤:在新的释放的缓冲对象链入去分配列表后,确定去分配列表的头指针是否为空;以及如果去分配列表的头指针为空,令去分配列表的尾指针指向去分配列表的头指针自身。所述缓冲资源管理方法还可以包括以下重回收动作的步骤:在所述后调整动作后,确定分配列表的头指针是否为空以及新的释放的缓冲对象是否仍处于释放状态;以及如果分配列表的头指针为空且新的释放的缓冲对象仍处于释放状态,再次执行回收动作的步骤。根据本公开的第三方面,提供了一种具有用于辅助电信设备中的缓冲资源管理的计算机可读指令的计算机可读存储介质,所述指令能够由计算设备执行,以执行根据本公开第一和第二方面中任一项所述的方法。根据本公开的第四方面,提供了一种包括缓冲池的电信设备,其中,所述缓冲池被配置为具有去分配列表。所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象,头指针,指向位于去分配列表开头的缓冲对象,以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针。在一个实施例中,在初始化中,去分配列表的头指针为空,去分配列表的尾指针指向去分配列表的头指本文档来自技高网
...

【技术保护点】
一种缓冲资源管理方法,其中,缓冲池被配置为具有分配列表和去分配列表,所述分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;以及头指针,指向位于分配列表头部的缓冲对象,以及所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;头指针,指向位于去分配列表开头的缓冲对象;以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针,在初始化中,去分配列表的头指针为空,去分配列表的尾指针指向去分配列表的头指针自身,所述缓冲资源管理方法包括以下接管动作的步骤:将去分配列表的头指针赋值给分配列表的头指针;将去分配列表的头指针清空;以及令去分配列表的尾指针指向去分配列表的头指针自身。

【技术特征摘要】
【国外来华专利技术】

【专利技术属性】
技术研发人员:王军
申请(专利权)人:奥普蒂斯蜂窝技术有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1