[发明专利]缓冲资源管理方法和电信设备在审
申请号: | 201180075492.5 | 申请日: | 2011-12-14 |
公开(公告)号: | CN104025515A | 公开(公告)日: | 2014-09-03 |
发明(设计)人: | 王军 | 申请(专利权)人: | 奥普蒂斯蜂窝技术有限责任公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;G06F12/00 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 赵伟 |
地址: | 美国德*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓冲 资源管理 方法 电信设备 | ||
技术领域
本公开涉及资源管理的无锁方案,具体涉及无锁缓冲资源管理方案以及采用该方案的电信设备。
背景技术
在电信设备(如BS(基站)和/或交换机)中,总是需要管理其中的缓冲资源。例如,在LTE(长期演进)eNB(演进型节点B)中,与空中接口相比,S1处的传入/传输分组是并发异步过程。通常,存在两个分离的任务,一个通过S1接口上的套接字接收或发送并向无线UP(用户面)(PDCP/RLC/MAC)栈传递分组,另一个根据调度信息由UP栈中的分组生成MAC(媒体访问控制)PDU(分组数据单元),并在空中接口上发送。
图1示出了LTE eNB中的示例产出方和消耗方模型。(S1接口上的)套接字任务是消耗方,分配来自池的缓冲对象以保持来自S1接口的分组并将其传送至UP栈,(空中接口上的)另一任务是产出方,在PDU通过接口发送后将缓冲对象释放回池。缓冲对象是在两个任务间流动的分组的容器,因此在缓冲池中循环以便重用。此时,出现以下常见问题:如何在这样的多线程执行环境中确保缓冲池的数据完整性。
确保产出方-消耗方模型中的数据完整性的常见方法是锁,即,强制缓冲池在多线程之间的串行访问,以确保数据完整性。
锁机制通常由OS(操作系统)提供,从而可以确保原子态,如互斥体、旗语。每当任意任务希望访问缓冲池(无论分配还是去分配),其总是需要首先取得锁。如果锁已被另一任务拥有,当前任务将必须中止其执行,直到所有者将锁释放。
锁机制将不可避免地引入额外的任务切换。在一般情况下,其不会对总体性能引起较多影响。然而,在某种关键的实时环境中,任务切换的开销不可忽略。例如,在LTE eNB中,调度TTI仅1ms,而一个任务切换将消耗大约20μs,并且一轮任务中止和继续需要至少两个任务切换过程,即40μs,这成为对LTE调度性能的显著影响,在大业务量下尤其如此。
通常,基带应用在便于多个任务并行执行以实现高性能的多核硬件平台上运行。然而,锁机制妨碍这样的并行模型,由于锁的实质恰恰强制串行执行以确保数据完整性。即使拥有锁的间隔极小,串行执行也将对运行上多核平台上的应用引起极大影响,并且可能成为潜在的性能瓶颈。
发明内容
为了解决上述问题中的至少一个,本公开提供了无锁缓冲资源管理方案以及采用该方案的电信设备。
根据本公开的第一方案,提供了一种缓冲资源管理方法,其中,缓冲池被配置为具有分配列表和去分配列表。所述分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;以及头指针,指向位于分配列表头部的缓冲对象。所述去分配列表包括:一个或更多个缓冲对象,由前一缓冲对象中的下一指针链接至下一缓冲对象;头指针,指向位于去分配列表开头的缓冲对象;以及尾指针,指向位于去分配列表结尾的缓冲对象的下一指针,其中,所述尾指针是指针的指针。在初始化中,去分配列表的头指针为空,去分配列表的尾指针指向去分配列表的头指针自身。所述缓冲资源管理方法可以包括以下接管动作的步骤:将去分配列表的头指针赋值给分配列表的头指针;将去分配列表的头指针清空;以及令去分配列表的尾指针指向去分配列表的头指针自身。
在一个实施例中,所述缓冲资源管理方法还可以包括以下步骤:确定分配列表是否为空;如果分配列表为空,确定去分配列表是否为空;以及如果去分配列表不为空,执行所述接管动作的步骤。所述缓冲资源管理方法还可以包括以下步骤:如果分配列表不为空,将位于分配列表开头的缓冲对象解除链接。所述缓冲资源管理方法还可以包括以下步骤:如果去分配列表为空,分配来自堆的多个缓冲对象,并将所述多个缓冲对象链接至分配列表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于奥普蒂斯蜂窝技术有限责任公司,未经奥普蒂斯蜂窝技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180075492.5/2.html,转载请声明来源钻瓜专利网。