CN101971581A - 嵌入式或无线通信系统中用于存储器分配的系统和方法 - Google Patents

嵌入式或无线通信系统中用于存储器分配的系统和方法 Download PDF

Info

Publication number
CN101971581A
CN101971581A CN2009801093157A CN200980109315A CN101971581A CN 101971581 A CN101971581 A CN 101971581A CN 2009801093157 A CN2009801093157 A CN 2009801093157A CN 200980109315 A CN200980109315 A CN 200980109315A CN 101971581 A CN101971581 A CN 101971581A
Authority
CN
China
Prior art keywords
memory
item
head
payload
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2009801093157A
Other languages
English (en)
Other versions
CN101971581B (zh
Inventor
S·马赫施瓦瑞
T·克林根伯恩
V·A·库玛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN101971581A publication Critical patent/CN101971581A/zh
Application granted granted Critical
Publication of CN101971581B publication Critical patent/CN101971581B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Abstract

嵌入式或无线设备中用于改进的存储器分配服务的系统和方法。使用容器存储器项的组合并引用存储器项来分配存储器。

Description

嵌入式或无线通信系统中用于存储器分配的系统和方法
相关申请的交叉引用
本申请要求于2008年4月2日提交的题为MEMORY ALLOCATION SCHEME FOR EMBEDDED OR WIRELESS COMMUNICATION SYSTEMS(用于嵌入式或无线通信系统的存储器分配方案)的美国临时专利申请S/N.61/041,878的权益。该申请的全部内容通过援引纳入于此。
背景
发明领域
本领域一般涉及存储器分配,尤其涉及嵌入式或无线通信系统中的存储器分配。
背景技术
存储器分配服务利用存储器项池。在一些情形中,存储器项基于存储器项的大小被分序到不同的池中。例如,一个池可能包括许多小存储器项,而另一个池可能包括相对少的大存储器项。响应于存储器分配请求,可从特定池中选择恰适数据项并将其返回给请求方实体。该系统导致显著的存储器和处理器资源浪费。例如,在小存储器项的情况下,头部与有效载荷之比较高,导致低效率的存储器使用。进一步,当整个存储器项被分配时,任何特定数据项的显著数据部分可能处于未使用。另外,在这些分配服务中,没有统计复用可用。处理器资源也因多个小存储器项的链接而被消耗。
在无线通信系统中,分组常常被分段成较小的固定大小——例如40字节——的“无线电链路”分组,以确保可靠的无线电传输。为了高效率地使用存储器,一种办法是创建各保持40字节块的相对小存储器项的大池,这些存储器项最终在较高层上被链接在一起以形成较大的数据块(例如,1500字节的IP分组)。此服务的一个缺点在于一些空间可能被浪费,因为这些存储器项可能必须对准高速缓存行(32或64字节),这可能不适合小的无线电链路分组大小。另外,不同技术可能共享相同的存储器项池以减小整个存储器,在这种情形中必须将存储器项有效载荷大小选取为适合最大的无线电链路分组大小,其会进一步增加浪费。
发明概述
在一个实施例中,提供了一种提供存储器管理的系统。该系统包括处理器和可在该处理器上执行的存储器管理服务。该存储器管理服务可配置成生成第一存储器项,其中第一存储器项中的每一者包括头部和有效载荷,有效载荷可配置成存储多个可独立分配的存储器大块,第一存储器项的头部引用有效载荷中的可分配空间;生成第二存储器项,其中第二存储器项中的每一者包括引用第一存储器项的有效载荷中的一个或多个存储器大块的头部;以及响应于存储器分配请求返回来自或者第一或者第二存储器项的头部的引用。
在另一个实施例中,提供了一种用于存储器管理的方法。该方法包括分配第一存储器项,第一存储器项各自包括第一头部和有效载荷,有效载荷包括可独立分配的存储器大块,第一头部包括对有效载荷中未分配存储器的引用;分配第二存储器项,第二存储器项各自包括第二头部,第二头部包括对第一存储器项的有效载荷中获分配存储器大块的引用;接收对存储器分配的请求;以及通过返回来自第一或者第二存储器项的头部的引用来响应对存储器分配的请求。
在另一个实施例中,提供了一种存储器管理系统。该系统包括用于分配第一存储器项的装置,第一存储器项各自包括第一头部和有效载荷,有效载荷包括可独立分配的存储器大块,第一头部包括对有效载荷中未分配存储器的引用;用于分配第二存储器项的装置,第二存储器项各自包括第二头部,第二头部包括对第一存储器项的有效载荷中获分配存储器大块的引用;用于接收对存储器分配的请求的装置;以及用于通过返回来自第一或者第二存储器项的头部的引用来响应对存储器分配的请求的装置。
在另一个实施例中,提供了编码有计算机指令的计算机可读介质。这些指令在被执行时使得处理器分配第一存储器项,第一存储器项各自包括第一头部和有效载荷,有效载荷包括可独立分配的存储器大块,第一头部包括对有效载荷中未分配存储器的引用;分配第二存储器项,第二存储器项各自包括第二头部,第二头部包括对第一存储器项的有效载荷中获分配存储器大块的引用;接收对存储器分配的请求;以及通过返回来自第一或者第二存储器项的头部的引用来响应对存储器分配的请求。
附图简要描述
图1是图解移动设备的示例的框图。
图2是图解存储器项的示例的框图。
图3是图解存储器项的另一个示例的框图。
图4A和4B是图解用于分配存储器的方法的示例的框图。
图5是图解存储器分配服务的执行的各种示例的框图。
图6是图解用于分配存储器的方法的另一个示例的框图。
优选实施例的详细描述
以下详细描述涉及本发明的某些具体实施例。然而,本发明可用众多不同方式来体现。应显然的是,本文中的各方面可用各种各样的形式来体现并且本文中所公开的任何具体结构、功能或这两者仅仅是代表性的。基于本文中的教示,本领域技术人员应领会,本文中所公开的一方面可独立于任何其他方面来实现,以及这些方面中的两个或多个可按各种方式被组合。例如,使用本文中阐述的任何数目的方面,可实现装置或可实践方法。此外,可使用其他结构、功能性或使用除本文中所阐述的方面中的一个或多个之外的或与之不同的结构、功能性来实现这样的装置或实践这样的方法。
移动设备典型地利用存储器分配服务来进行操作。本文中描述用以降低移动设备中各种子系统所需的存储器的总量以及用以减少移动设备所消耗的处理资源的方法和设备。以下阐述的是可联合所描述的方法和设备使用的一些架构。
图1是图解移动设备102的示例的框图。设备102包括与存储器204通信的处理器202以及用于经由无线链路106通信的网络接口206。可任选地,设备102还可以包括以下各项中的一者或多者:显示器210;诸如按键、触摸屏、或其他合适的触觉型输入设备之类的用户输入设备212;包括适于基于在无线链路106上接收到的信号提供音频输出的换能器的扩音器214;和/或包括适于提供可在无线链路106上传送的信号的音频输入的换能器的话筒216。例如,电话可包括适于提供图形用户界面(GUI)的视觉输出的显示器210。
网络接口206可包括任何合适的天线(未图示)、接收机220、和发射机222,以使得示例性设备102可在无线链路106上与一个或多个设备通信。可任选地,网络接口206还可以具有用以减少处理器202的处理需求的处理能力。
可任选地,设备102可包括经由链路108在网络110上通信的第二网络接口208。例如,设备102可经由有线或无线通信链路来提供与其他网络110(例如,诸如因特网之类的广域网)的连通性。因此,设备102可使得其他设备102(例如,Wi-Fi站)能接入其他网络110。此外应领会,设备102中的一个或多个可以是便携式的,或者在一些情形中为相对非便携式的。第二网络接口208可传送和接收根据IEEE 802.11标准(包括IEEE 802.11(a)、(b)、或(g))、蓝牙标准的RF信号、和/或CDMA、GSM、AMPS信号或用于在无线蜂窝电话网络中通信的其他已知信号。此外,第二网络接口208可包括任何合适的有线网络接口,诸如以太网(IEEE802.3)、USB、或MDDI。
设备102可包括用以向设备102的一个或多个组件供电的电池231。设备102可包括电话、智能电话、个人数字助理(PDA)、超级移动个人计算机(UMPC)、移动因特网设备(MID)、或任何其他移动设备中的至少之一。具体而言,本文中的教示可被纳入多种设备102中(例如,实现在其中或由其执行)。
本文中所描述的组件可用多种方式来实现。参考图1,设备或装置102被表示为一系列互相关的功能性块,这些功能性块可代表由例如处理器202、软件、其某种组合、或以如本文中教示的其他某种方式来实现的功能。例如,处理器202可便于用户经由输入设备212输入。进一步,发射机222可包括用于传送的处理器,该处理器提供与向另一个设备102传送信息有关的各种功能性。接收机220可包括用于接收的处理器,该处理器提供与如本文中所教示地接收来自另一个设备102的信息有关的各种功能性。
处理器202还与存储器分配服务203通信。在一个实施例中,存储器分配服务203在处理器202上运行。存储器分配服务203响应于来自在设备102中操作的一个或多个子系统的对存储器的请求。存储器分配服务203的方法和操作将在以下更详细地描述。
如以上所注意到的,图1图解了在一些方面中,这些组件可经由恰适的处理器组件来实现。这些处理器组件在一些方面中可至少部分地使用如本文中所教示的结构来实现。在一些方面中,处理器可适于实现这些组件中的一个或多个的功能性的一部分或全部。在一些方面中,由虚线框所表示的组件中的一个或多个是可任选的。
在一个或多个示例性实施例中,所描述的功能可以在硬件、软件、固件、或其任何组合中实现。如果在软件中实现,则这些功能可以作为一条或多条指令或代码存储在计算机可读介质上或在其上传送。计算机可读介质包括计算机存储介质和通信介质两者,后者包括便于将计算机程序从一处转移到另一处的任何介质。存储介质可以是可被通用或专用计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或可用来携带或存储指令或数据结构形式的合需程序代码手段且能可通用或专用计算机、或者通用或专用处理器访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。本文中所使用的盘和碟包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘通常磁性地再现数据,而碟用激光来光学地再现数据。以上的组合也应被包括在计算机可读介质的范围之内。
根据存储器分配服务的一方面,小存储器块被包装成较大的固定大小的单元(称为“DSM项”)。使用“DUP”(复制)项来保持对这些较小块中的每一者的跟踪,DUP项指向DSM内的有效载荷。由于DSM项的大小有限,并且可假定DSM内的所有块具有近似的有限寿命,因此没有必要处理每一个DSM内的自由存储器的碎片。这样的益处在于存储器利用率可被极大地减少,因为每个DSM内仅很少的存储器被浪费掉,但复杂度却是具有高包装效率的其他存储器分配技术的分数。考虑这方面的另一种途径是这是固定大小和灵活大小分配服务的混合,其中整个存储器按固定大小块被分配,但在这些块内允许灵活大小分配,因为预期这些灵活分配具有较短的寿命。
在一方面,基础存储器块被称为DSM项。其包括头部和有效载荷部分。当有数据块必须被存储在存储器中时,分配新的DSM项并且该数据被复制到DSM的有效载荷部分中。因此,头部被更新以反映该数据的开始和长度。如果该数据的长度超过有效载荷部分的大小,则多个DSM项可被链接在一起成为链表。
进一步,定义了特殊类型的DSM项,记为DUP(“复制”)。DUP使用与常规DSM相同的头部结构,但没有其自己的有效载荷部分。作为代替,其可指向其它地方的数据部分,例如正常DSM内部的数据部分。为了跟踪有多少DUP指向同一DSM项中的数据,存在被记为“ref_count(引用_计数)”的头部字段,其计数对该DSM项的引用的数目并且在原始DSM首次被分配时被设为1。每次创建指向该DSM项内部的新DUP时,该DSM项的ref_count递增。同样,当DUP被释放时,原始DSM项的ref_count递减。这样,分配算法可知晓该DSM项何时可实际被释放,这仅在没有其他DUP指向该分组的有效载荷部分时发生,即在ref_count已变回0时发生。
DUP可被用于拆分分组、重新排序数据、移除头部等,而不必触及原始数据。所有这些仅通过操纵DSM和DUP头部就能达成。
根据另一方面,允许将数据包装成相同的DSM项以提高存储器效率的技术可解决先前所提及的缺点中的一些。根据这方面,定义了较大DSM项的池。大DSM大小将允许来自多个无线电链路分组的数据被级联到同一DSM项中。
图2是图解用于存储器分配服务的存储器项的框图。存储器分配服务可包括应用编程接口(“API”)。此API可供诸如设备102中存在的子系统之类的子系统访问用。此存储器分配服务可整体或部分地由处理器202或其他类似处理设备来执行。进一步,API可构成诸如设备102之类的移动或无线设备的操作系统的一部分。或者,API可构成软件库的一部分。在图2中,示出第一类存储器项610。此第一类存储器项610可被称为数据服务管理(“DSM”)项。或者,它可被称为容器项。这些容器类存储器项610被组织成存储器项池605。虽然图解了单个池605,但是应领会也可以使用多个DSM项池。每个池可由诸如项大小或该池所服务的子系统之类的一个或多个公共特性来表征。
图2中还提供了存储器项610的展开图。如该展开图中可见,这些容器类项610包括多个部分。存储器项的第一部分可被称为头部615。头部615既可包含关于存储器项610的其余部分的信息,也可包含其他信息。存储器项610的第二部分可被称为有效载荷。有效载荷自身可具有若干获分配存储器部分或块620。此外,有效载荷可具有未分配或未使用空间625。在一个实施例中,有效载荷包括大致1500字节,约为存储IP分组所需的大小。
存储器项610的头部615可包括诸如对存储器项610中未分配空间625的引用之类的信息。在一个示例中,此引用采取指针的形式来指示存储器项610中未分配空间625的开始地址。对数据项610中未分配空间625的此引用也可被称为“data_ptr(数据_指针)”。头部还可以包含指示已分配存储器620的大小的字段。此已分配空间的量可被称为有效载荷中的“已使用”空间。头部还可以包含指示标识与存储器项610相关联的存储器池605的标识符的字段。此标识符可被称为“pool_id(池_id)”。头部还可以包含指示对存储器项610的引用的数目的字段。例如,如以下所描述的,存储器项610可被其他存储器项引用。例如,有效载荷的已分配大块620中的每一个被不同的存储器项引用。进一步,存储器项610的头部615引用有效载荷的未分配部分625。这些引用的计数尤其可用于确定存储器项610何时可被释放完并返回池605中以供后续再分配。此引用计数可被称为“引用”。头部615还可以包含对其他存储器项的一个或多个引用。例如,如果所请求的存储器大块太大而不适合单个存储器项610,则头部中的引用可被用于指示可被链接在一起以满足该请求的一个或多个附加存储器项。取决于被引用的存储器项的类型,这些引用可被称为“pkt_ptr(分组_指针)”或“dup_ptr”。例如,pkt_ptr可引用0个或多个DSM或容器项,而dup_ptr可引用0个或多个DUP项。除所标识出的字段以外,头部615可包括诸如用户定义字段或用于测试目的的字段之类的附加字段。此外,头部615可省略所标识出的字段中的一个或多个。
图2还图解了第二类存储器项630。此第二类存储器项可被称为复制或“DUP”存储器项。这些DUP项630包括与容器存储器项610的头部615相类似的头部。例如,DUP项可具有与DSM项头部615相同的字段。或者,DUP项可具有更多或更少字段。然而,这些DUP项不具有其自己的有效载荷。相反,DUP项头部630包含对容器存储器项的引用。在一个特定示例中,DUP项630包含指示存储器项610的已分配部分620中的第一个分配存储器块的指针。这些DUP项630也可以被安排成一个或多个池640。像容器项的池605那样,可以使用多个DUP项池。例如,图2图解了两个DUP项池640和650。在一个示例中,嵌入式设备或无线通信设备中的每个子系统具有其自己的DUP项池。在本实施例中,池640可对应于一个特定子系统,而池650可对应于另一个子系统。如图2中可见的,一个实施例提供了来自分开的诸池的DUP项可引用单个DSM项610中的存储器块620。
图3示出了图2中所图解的存储器项的替换实施例。像之前的那样,可使用单个DSM项池715。然而这次,每个DUP项池730和735分别引用不同DSM项725和720的已分配部分。如上所述,一旦对该有效载荷的全部引用都已被释放,DSM项就可返回DSM池715中以供再分配。然而,当允许多个子系统使DUP引用到同一DSM项中时,可能出现碎片。例如,特定DSM中被分配给第一子系统的所有存储器可能已被释放。然而,如果有小块仍被来自另一个子系统的DUP引用,则该有效载荷中的其余存储器可能在第二子系统释放其小存储器块之前都必须等待被释放。为使此问题最小化,每个子系统可使其自己的DUP引用到其自己的DSM中。这样,特定DSM中已分配存储器部分的寿命更可能相同。寿命的近似性导致碎片减少。
图4A和4B图解用于分配存储器的方法780的实施例。此方法780可作为在诸如处理器202之类的处理器上运行的服务来执行。方法780便于接收存储器分配请求以及返回对已分配存储器的引用。如以下所描述的,所指派的特定引用可以是请求方子系统的当前存储器分配境况和所请求存储器块的大小的函数。注意,这些步骤中的一些可被省略以满足特定应用的要求或规范。还应注意,本文中所描述的这些步骤中的一些是优化且由此可按照系统设计者的决定被选择性地使用或省略。
方法780在存储器分配服务在步骤785处接收到存储器请求时开始。作为存储器请求的一部分,请求方子系统可指定所请求的存储器大小。请求方子系统还可以提供子系统ID以使得存储器分配服务可为该子系统选择恰适的DSM项。在接收到存储器请求之后,存储器分配服务如判定步骤790中所示地确定所请求大小是否小于当前DSM容器项中未分配存储器的大小。如参照图2和3所讨论的,DSM项在有效载荷部分中可具有未分配空间。判定步骤790可通过将未分配部分的大小与所请求大小作比较来执行。或者,由于有效载荷的总大小是已知的,因此可以将所请求量与有效载荷的已分配部分的大小作比较。在另一个实施例中,并非使用所请求的存储器大小来作比较,而是存储器分配系统可增大请求的大小以使得扩增后的请求与高速缓存边界对准。例如,可增大实际请求以使得结果所得请求是诸如16、32、64、或128字节之类的特定高速缓存行大小的倍数。无论是所请求的存储器大小还是扩增后的对准版本适合未分配部分,该方法都前进至步骤800。
继续到判定步骤800,存储器分配系统确定所请求大小加上当前DSM项的先前已分配部分的大小是否大于第一阈值。例如,如果DSM有效载荷是大致1500字节长,则阈值可为1200字节。因此,存储器分配系统将确定已分配存储器的大小加上所请求存储器的大小是否超过1200字节极限。在一个实施例中,阈值可被选为DSM项的有效载荷大小的特定百分比。例如,阈值可为有效载荷大小的大致70%-80%。在另一个实施例中,阈值大小可被选取成反映诸如对用以存储IP分组的存储器的请求之类的公共请求的大小特性。在另一个实施例中,并非将已分配存储器的大小与阈值作比较,而是可将剩余未分配存储器的大小与阈值作比较。在本实施例中,如果分配了所请求或经调整的存储器大小,则该服务将计算有效载荷中将保持未分配的部分。剩余未分配存储器与此阈值的比较随后将以与先前所讨论的已分配存储器与阈值的比较类似的方式来使用。
通过执行判定步骤800,如果标识出的总和大于阈值,则该方法前进至步骤805。在步骤805处继续,存储器分配系统向请求方子系统返回引用。在一个实施例中,所返回的引用是来自当前DSM项的头部的data_ptr。有利地,通过返回来自DSM项的头部的引用,存储器分配系统节省了在创建DUP项和返回来自DUP头部的引用时所涉及的开销和资源。进一步,分配DSM有效载荷的剩余部分而非仅仅所请求的大小使得存储器分配服务能避免在有效载荷的尾部的小块,否则这些小块若被使用将会导致链接。
返回到判定步骤800,如果所请求存储器大小加上已分配存储器大小并未大于阈值,则该方法前进至步骤810。在步骤810中,存储器分配服务创建DUP项,分配所请求的存储器,并且向请求方子系统返回DUP中的引用。有利地,在多次迭代下,本方法允许存储器分配服务能将多个分配包装成单个DSM项。此包装允许存储器资源的高效率使用并且在存储器使用和处理使用两者中皆提供增益。
返回到步骤790,若所请求的存储器大小大于当前DSM项中的未分配空间,则该方法继续到图4B的判定步骤845。在判定步骤845中,存储器分配服务确定所请求大小是否大于第二阈值。此第二阈值像第一阈值一样可被设为固定数目的字节。例如,如果DSM项有效载荷的大小为1600字节,则第二阈值可为1200字节。或者,第二阈值也可为被确定为有效载荷大小的百分比。例如,第二阈值可为有效载荷大小的65%-75%。在另一实施例中,该阈值可被动态地确定。例如,该阈值可被设为等于DSM项中已分配存储器的总量。在本实施例中,当所请求大小超过DSM中的已分配空间时,所请求大小将超过该阈值。不管如何确定该阈值,如果所请求大小大于此阈值,则存储器分配服务就将如步骤850中所示地分配新DSM项并且向请求方子系统返回来自新DSM项头部的data_ptr。类似于步骤805,返回来自新DSM项的头部的引用的此过程节省了创建新DUP项的开销。请求方子系统被给予多于其要求的——即整个DSM项,并且此分配允许后续分配请求能用当前DSM项中剩余的未分配存储器来满足。
返回到步骤845,如果所请求大小小于此第二阈值,则该方法前进至步骤855。在步骤855中,删除对DSM有效载荷的未分配部分的DSM项头部引用。实际上,这释放完DSM项中的剩余部分。此外,创建新DSM项。分配该新DSM项中的存储器块并且创建相应的DUP。新DUP中对新DSM项的引用随后被返回给请求方子系统。
出于解释目的,在图5中图解了前述方法的示例。在情形1中,图解了当前DSM项910。当前DSM具有已分配部分915和未分配部分920。所请求分组大小925被示为在第一阈值930中。如图所示,已分配部分915的大小加上所请求部分925的大小小于第一阈值930。因此,如图所示,DSM项935的大块被分配,以及新DUP项被创建且其引用被返回给调用方子系统。该新DUP项包括指向新分配数据的开始的对DSM 935中的引用。
在情形2中,联合另一个所请求分组960示出当前DSM 955。如图所示,DSM955的已分配部分的大小加上所请求分组的大小超过第一阈值,但总和并未超过总有效载荷长度。因此,对DSM项965的未分配部分的引用被返回给请求方子系统。结果是除了获得所请求存储器大小或甚至是稍大的经调整行分配之外,请求方子系统将获得DSM 965中的所有剩余未分配空间980。再次,返回来自DSM项头部的引用节省了创建DUP的开销并且消除了否则将会留下的残端980所创建的链接可能性。
在情形3中,与另一个所请求存储器块990一起示出当前DSM 985。如图所示,所请求分组太大而不适合当前DSM的未分配部分。此外,所请求大小小于第二阈值995。因此,删除当前DSM 1000的头部中对有效载荷的未分配部分的引用。创建新DSM 1005。分配来自该DSM的存储器块并且创建引用该新DSM中获分配块的新DUP项。来自该新DUP项的引用随后被返回给请求方子系统。再次将领会,虽然第二阈值995被示为静态的,但该阈值可诸如通过将其设为等于初始已分配存储器的大小来动态地确定。
在情形4中,连同所请求存储器块1015一起示出当前DSM 1010。如同情形3那样,所请求大小太大而不适合当前DSM项1010的未分配部分。此外,所请求块大小1015大于第二阈值995。结果是当前DSM 1020被保留在其当前状态。同时,创建新DSM 1025并且返回该新DSM头部中对有效载荷的未分配部分的引用。
图6类似于图4A和4B中所图解的方法。然而,图6提供相对于用于分配存储器的服务的一个实施例中所使用的特定参数的变型。图6中所图解的方法1080为存储器分配请求提供API。在一个特定实施例中,方法1080为子系统提供可用于请求存储器分配的函数调用。如图所示,该函数可以采取所请求的存储器分配大小作为参数。此外,该函数可采取诸如标识请求方子系统的子系统ID之类的其他参数。图6所代表的服务可被配置成在诸如设备102的处理器202之类的处理器上运行。响应于分配请求,该服务如以下所讨论地准备指向大小大于或等于所请求大小的获分配存储器块的指针。因此,使用该服务的API的子系统被返回指向获分配存储器的指针。在一个特定实施例中,图6中所图解的方法在其操作期间使用以下值中的一些或全部:
current_dsm_item_ptr[](当前_dsm_项_指针[]):这是每个子系统的指向当前DSM项的指针集。
aligned_pkt_size(经对准_分组_大小):这是所请求的存储器块的大小,其被调整成与诸如16、32、64、或128之类的大小的高速缓存行对准。
pkt_ptr(分组_指针):即将被返回的指向获分配存储器的指针。
DSMI_MEM_THRESHOLD_TO_FREE_DSM(DSMI_存储器_阈值_用以_释放_DSM):用于确定应返回DUP还是DSM引用的第一阈值。如果在分配存储器块之后,剩余未分配存储器将小于此阈值,则返回DSM引用,从而有效地分配该DSM项中的所有剩余未分配存储器。
DSMI_THRESHOLD_FOR_COMPLETE_ITEM_ALLOCATION(DSMI_阈值_用以_完整_项_分配):用于确定应返回DUP还是DSM引用的第二阈值。如果所请求分组大小大于此阈值,则创建新DSM项并返回来自新DSM的头部的引用。当前DSM被保留。
图6中所图解的方法始于1085处所示的函数调用。作为该请求的参数,分配服务接收所请求的分组大小“pkt_size”。此外,在一些实施例中,还将向函数调用传递另一个参数,即子系统ID。前进至步骤1100,该方法锁定特定DSM项池以避免并发访问问题。在锁定池之后,该方法前进到判定步骤1105。在判定步骤1105处,该服务确定pkt_ptr是否为空。如果针对该请求尚未分配存储器,则该指针可为空。然而,如果该指针具有非空值,则服务前进至解锁池(1140)并返回指针(1145)。然而,如果指针为空,则服务前进至判定步骤1110。
在判定步骤1110处继续,服务确定current_dsm_item_ptr是否为空。如果先前迭代已导致不存在当前DSM项,则服务前进至创建一个DSM项(1115),并且若这样的创建失败则退出(1120、1140、1145)。一旦确认存在或创建了有效的当前DSM,该方法前进至判定步骤1125。在判定步骤1125处,服务确定经对准的所请求大小是否小于当前DSM中未分配空间的大小。如果是,则服务随后在步骤1130处确定DSM中在分配所请求存储器之后将剩余的未分配空间是否小于第一阈值。若如此,则服务创建DUP并且在当前DSM中分配经对准的所请求存储器(1135),解锁池(1140),并返回DUP指针(1145)。若否,则服务创建全新的DSM(1150),解锁池(1140),并返回来自该新DSM的头部的指针(1145)
返回到步骤1125,如果所请求大小大于剩余未分配空间,则该方法前进至判定步骤1155。在步骤1155处,该服务确定所请求大小是否大于或等于第二阈值。若如此,则服务创建全新的DSM(1165),解锁池(1140),并返回来自该新DSM的头部的指针(1145)若否,则该服务释放当前DSM中的剩余存储器并前进至在步骤1105处再次开始该方法。结果是新DSM被创建,引用该新DSM的主体的DUP被创建,并且DUP指针被返回给请求方子系统。
本存储器分配服务的附加特征和实施例也在本文中呈现:
用于不同用户的多DSM指针
为了处置其中期望数据块的寿命对于不同用户实质地不同的情形,该算法可维护多个DSM指针,并且仅将具有近似寿命的数据块包装成相同的DSM。例如,用户专用ID可连同分配请求一起被传递,以使得仅来自此用户的数据将会被包装成相同的DSM项。来自其他用户的请求将会被包装成其他DSM。此处,“用户”可以是用以将一组用户简档与其他的区别开来的一组任务或子任务或层或函数,或这些的任何其他组合。
支持在DSM的前部(或后部)添加数据
为了高效率地处置在现有DSM或DUP项的前部中添加数据(即,添加协议头部)而不必分配新DSM项和执行链接,建议允许分配在前部中具有自由空间的DSM。通过“偏移量”头部来保持对该自由空间的跟踪。这样,DUP或DSM可被分配给定偏移量,并且以后若有更多数据需要被插入DSM的前部中,这可以不进行新DSM分配及随后的链接就能完成。可允许用于在DSM的尾部中添加数据的类似服务。
多个池
该服务允许多个DSM池,从而允许为特定用户预留给定数目的项。这样,该用户将不必担忧因为另一个用户已分配到全部DSM项而突然没有更多自由DSM项。另外,这提供了更好的存储器超支问题(其中一个用户超驰分配的边界)的调试能力,因为该问题被局限在仅此用户的代码库中。
作为多个池的替换方案的配额服务
达成相同目的的另一种途径是具有一个池,但每个用户具有他可分配的DSM项的最大配额(字节)。一旦他已达到其配额,他为了分配新项就必须释放一些项,以避免其他用户的存储器匮乏。其胜于多池办法的一项益处在于仍可达成共享。例如,如果有4个用户,其自己的池为X项,则可能需要存储器有4X项。然而由于极不可能所有4个用户将同时分配所有项,因此配额服务可允许将总存储器减少到比方说3X,假定如果一个用户取得其所有存储器=X,则其余3个用户将能够共享剩余存储器=2X。
用于不同大小的多DSM指针
在这方面,可基于所请求的存储器空间来划分DSM分配(与使用以上的子系统ID相反)。本提议并非使用跨多个层/子系统共享的多种大小的池的常规途径来满足所有任务/侧面的需要,而是可存在支持多个DSM指针的规定,根据该规定每个DSM指针可分配仅特定大小的块。例如,我们可具有用于128、256、512、768、1024、1536字节块大小等的DSM指针。
每当任何层/模块请求特定大小的存储器时,算法可确定最合适的DSM指针并在所请求的大小可用的情况下提供dup。如果所请求大小不可用,则释放该大小的DSM指针(若非空)并分配来自较大项的全局池的较大项(例如,大于预定字节数目的项,在一个示例中为大于或等于768字节的项),以及随后复制(DUP)该最合适块大小并将该DUP返回给调用者。
本分配还具有胜于现有技术的若干截然不同的优点。本服务的实施例减少了存储器占用量。较少池的使用允许更好的统计复用。该服务助益更好的包装效率。DSM项即使带有用于DUP的增添开销也具有更少的开销。CPU处理开销(MIPS)因较少的链接而被减少。该服务允许使用较大的DSM项来避免长分组链(尤其是有较大分组大小时),从而减少DSM分配/释放操作的次数。各实施例简化了与涉及多个存储器池的更常规办法相关联的维护。该服务可被实现为具有用于进行处置的中央API,这避免了每子系统必须实现这样的功能性,从而避免了复制代码。避免了每目标对单独的池大小和项大小的需要。在没有本文中所勾勒的技术的情况下,任何人可能需要在许多地方(例如,诸如分组服务模块(PS)、高速USB(HS-USB)模块等堆栈中的各种或多个层)分开实现代码,这更倾向于出错等。可例如通过在低等待时间存储器(例如,内部随机存取存储器(IRAM))中定义DUP池来在高速存储器中定义DUP池以进一步改进性能(例如,有益于高速缓存)。若此应用编程接口(API)仅使用一个池,则可获得DSM检查的减少。当前DSM基于作为参数来传递的池ID(标识)执行一些检查。

Claims (26)

1.一种存储器管理系统,包括:
处理器;以及
可在所述处理器上执行的存储器管理服务,所述存储器管理服务可配置成:
生成第一存储器项,其中所述第一存储器项中的每一者包括头部和有效载荷,所述有效载荷可配置成存储多个可独立分配的存储器大块,所述第一存储器项的所述头部引用所述有效载荷中的可分配空间;
生成第二存储器项,其中所述第二存储器项中的每一者包括引用所述第一存储器项的所述有效载荷中的一个或多个存储器大块的头部;以及
响应于存储器分配请求返回来自或者第一或者第二存储器项的所述头部的引用。
2.如权利要求1所述的存储器管理系统,其特征在于,所述第一存储器项的所述头部维持对所述第一存储器项的引用的计数。
3.如权利要求1所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成为多个子系统中的每一个生成单独的第一存储器项。
4.如权利要求1所述的存储器管理系统,其特征在于,所述存储器分配请求包括所请求存储器大小。
5.如权利要求4所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成确定特定第一存储器项的有效载荷中已分配存储器的大小与所述所请求存储器大小的总和,并且将所述总和与阈值作比较。
6.如权利要求5所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成当所述总和小于所述阈值时生成特定第二存储器项并返回来自所述特定第二存储器项的头部的引用。
7.如权利要求6所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成在所述总和大于所述阈值时返回来自所述特定第一存储器项的所述头部的引用。
8.如权利要求4所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成确定特定第一存储器项的有效载荷中已分配存储器的大小与所述所请求存储器大小的总和,将所述总和与所述特定第一存储器项的所述有效载荷的大小作比较,以及将所述所请求存储器大小与阈值作比较。
9.如权利要求8所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成在所述总和大于所述特定第一存储器项的所述有效载荷的所述大小并且所述所请求存储器大小小于所述阈值时生成另一个特定第一存储器项,生成引用所述另一个特定第一存储器项的有效载荷的特定第二存储器项,并返回来自所述特定第二存储器项的头部的引用。
10.如权利要求8所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成在所述总和大于所述特定第一存储器项的所述有效载荷的所述大小并且所述所请求存储器大小大于所述阈值时生成另一个特定第一存储器项,并返回来自所述另一个特定第一存储器项的头部的引用。
11.如权利要求8所述的存储器管理系统,其特征在于,所述阈值是所述特定第一存储器项中已分配存储器的大小。
12.如权利要求4所述的存储器管理系统,其特征在于,所述存储器管理服务可进一步配置成增大所述所请求存储器大小以使所述所请求存储器大小与高速缓存线边界对准。
13.一种存储器管理方法,所述方法包括:
分配第一存储器项,所述第一存储器项各自包括第一头部和有效载荷,所述有效载荷包括可独立分配的存储器大块,所述第一头部包括对所述有效载荷中未分配存储器的引用;
分配第二存储器项,所述第二存储器项各自包括第二头部,所述第二头部包括对第一存储器项的所述有效载荷中获分配存储器大块的引用;
接收对存储器分配的请求;以及
通过返回来自第一或者第二存储器项的所述头部的引用来响应对存储器分配的请求。
14.如权利要求13所述的方法,其特征在于,所述第一头部还包括对所述第一存储器项的引用的计数。
15.如权利要求13所述的方法,其特征在于,所述分配第一存储器项进一步包括为多个子系统中的每一个分配单独的第一存储器项。
16.如权利要求13所述的方法,其特征在于,所述存储器分配请求包括所请求存储器大小。
17.如权利要求16所述的方法,其特征在于,还包括确定特定第一存储器项的有效载荷中已分配存储器的大小与所述所请求存储器大小的总和,并且将所述总和与阈值作比较。
18.如权利要求17所述的方法,其特征在于,还包括在所述总和小于所述阈值时分配特定第二存储器项并返回来自所述特定第二存储器项的头部的引用。
19.如权利要求18所述的方法,其特征在于,还包括在所述总和大于所述阈值时返回来自所述特定第一存储器项的所述头部的引用。
20.如权利要求16所述的方法,其特征在于,还包括:
确定特定第一存储器项的有效载荷中已分配存储器的大小与所述所请求存储器大小的总和;
将所述总和与所述特定第一存储器项的所述有效载荷的大小作比较;以及
将所述所请求存储器大小与阈值作比较。
21.如权利要求20所述的方法,其特征在于,还包括:
生成另一个特定第一存储器项;
生成引用所述另一个特定第一存储器项的有效载荷的特定第二存储器项;以及
当所述总和大于所述特定第一存储器项的所述有效载荷的所述大小并且所述所请求存储器大小小于所述阈值时返回来自所述特定第二存储器项的头部的引用。
22.如权利要求20所述的方法,其特征在于,还包括:
生成另一个特定第一存储器项;以及
当所述总和大于所述特定第一存储器项的所述有效载荷的所述大小并且所述所请求存储器大小大于所述阈值时返回来自所述另一个特定第一存储器项的头部的引用。
23.如权利要求20所述的方法,其特征在于,所述阈值是所述特定第一存储器项中已分配存储器的大小。
24.如权利要求16所述的方法,其特征在于,还包括增大所述所请求存储器大小以使所述所请求存储器大小与高速缓存线边界对准。
25.一种存储器管理系统,包括:
用于分配第一存储器项的装置,所述第一存储器项各自包括第一头部和有效载荷,所述有效载荷包括可独立分配的存储器大块,所述第一头部包括对所述有效载荷中未分配存储器的引用;
用于分配第二存储器项的装置,所述第二存储器项各自包括第二头部,所述第二头部包括对第一存储器项的所述有效载荷中获分配存储器大块的引用;
用于接收对存储器分配的请求的装置;以及
用于通过返回来自第一或者第二存储器项的所述头部的引用来响应对存储器分配的请求的装置。
26.一种编码有计算机指令的计算机可读介质,所述指令在被执行时使得处理器:
分配第一存储器项,所述第一存储器项各自包括第一头部和有效载荷,所述有效载荷包括可独立分配的存储器大块,所述第一头部包括对所述有效载荷中未分配存储器的引用;
分配第二存储器项,所述第二存储器项各自包括第二头部,所述第二头部包括对第一存储器项的所述有效载荷中获分配存储器大块的引用;
接收对存储器分配的请求;以及
通过返回来自第一或者第二存储器项的所述头部的引用来响应对存储器分配的请求。
CN200980109315.7A 2008-04-02 2009-04-02 嵌入式或无线通信系统中用于存储器分配的系统和方法 Expired - Fee Related CN101971581B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4187808P 2008-04-02 2008-04-02
US61/041,878 2008-04-02
US12/416,759 US8321651B2 (en) 2008-04-02 2009-04-01 System and method for memory allocation in embedded or wireless communication systems
US12/416,759 2009-04-01
PCT/US2009/039243 WO2009124164A1 (en) 2008-04-02 2009-04-02 System and method for memory allocation in embedded or wireless communication systems

Publications (2)

Publication Number Publication Date
CN101971581A true CN101971581A (zh) 2011-02-09
CN101971581B CN101971581B (zh) 2013-11-06

Family

ID=41134319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980109315.7A Expired - Fee Related CN101971581B (zh) 2008-04-02 2009-04-02 嵌入式或无线通信系统中用于存储器分配的系统和方法

Country Status (11)

Country Link
US (1) US8321651B2 (zh)
EP (1) EP2266265B1 (zh)
JP (1) JP5265758B2 (zh)
KR (1) KR101134195B1 (zh)
CN (1) CN101971581B (zh)
AT (1) ATE516647T1 (zh)
CA (1) CA2718291A1 (zh)
ES (1) ES2367605T3 (zh)
RU (1) RU2460222C2 (zh)
TW (1) TW201018142A (zh)
WO (1) WO2009124164A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572498A (zh) * 2014-12-26 2015-04-29 曙光信息产业(北京)有限公司 报文的缓存管理方法和装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100182970A1 (en) * 2009-01-21 2010-07-22 Qualcomm Incorporated Multiple Subscriptions Using a Single Air-Interface Resource
US9442846B2 (en) * 2009-03-17 2016-09-13 Cisco Technology, Inc. High speed memory systems and methods for designing hierarchical memory systems
US8433880B2 (en) 2009-03-17 2013-04-30 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US8788782B2 (en) * 2009-08-13 2014-07-22 Qualcomm Incorporated Apparatus and method for memory management and efficient data processing
US8762532B2 (en) * 2009-08-13 2014-06-24 Qualcomm Incorporated Apparatus and method for efficient memory allocation
US20110041128A1 (en) * 2009-08-13 2011-02-17 Mathias Kohlenz Apparatus and Method for Distributed Data Processing
US9038073B2 (en) * 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
US8838910B2 (en) 2010-06-07 2014-09-16 International Business Machines Corporation Multi-part aggregated variable in structured external storage
US8341368B2 (en) 2010-06-07 2012-12-25 International Business Machines Corporation Automatic reallocation of structured external storage structures
US9351196B2 (en) * 2012-08-31 2016-05-24 International Business Machines Corporation Byte caching in wireless communication networks
KR102150262B1 (ko) * 2013-09-25 2020-09-01 현대모비스 주식회사 차량 정보 시스템의 메모리 관리 방법
CN105573711B (zh) 2014-10-14 2019-07-19 深圳市中兴微电子技术有限公司 一种数据缓存方法及装置
CN110245091B (zh) * 2018-10-29 2022-08-26 浙江大华技术股份有限公司 一种内存管理的方法、装置及计算机存储介质
US11206222B2 (en) 2020-02-07 2021-12-21 Wipro Limited System and method of memory management in communication networks

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0574140A1 (en) * 1992-05-29 1993-12-15 Hewlett-Packard Company Network adapter which places a network header and data in separate memory buffers
JP3177047B2 (ja) * 1993-01-27 2001-06-18 大日本印刷株式会社 メモリ領域の管理方法
RU2037874C1 (ru) 1993-05-10 1995-06-19 Валерий Алексеевич Харитонов Устройство управления памятью
JP2778913B2 (ja) * 1994-04-26 1998-07-23 株式会社東芝 マルチプロセッサシステム及びメモリアロケーション方法
US7269171B2 (en) * 2002-09-24 2007-09-11 Sun Microsystems, Inc. Multi-data receive processing according to a data communication protocol
US7334123B2 (en) 2003-05-02 2008-02-19 Advanced Micro Devices, Inc. Computer system including a bus bridge for connection to a security services processor
JP2005100262A (ja) * 2003-09-26 2005-04-14 Seiko Epson Corp メモリ管理装置およびメモリ管理プログラム、並びにメモリ管理方法
US20050125550A1 (en) * 2003-12-09 2005-06-09 Bajikar Sundeep M. Location information via DHCP
US7930422B2 (en) * 2004-07-14 2011-04-19 International Business Machines Corporation Apparatus and method for supporting memory management in an offload of network protocol processing
WO2006015513A1 (en) * 2004-08-12 2006-02-16 Intel Corporation Method and system for processing multicast packets
JP4144609B2 (ja) * 2004-09-29 2008-09-03 ソニー株式会社 情報処理装置、メモリ領域管理方法、並びにコンピュータ・プログラム
FR2879874B1 (fr) * 2004-12-16 2008-11-07 Eads Telecom Soc Par Actions S Procede de demarrage d'une station ip, systeme, serveur et station le mettant en oeuvre et procede d'etablissement d'appel telephonique
US7433673B1 (en) * 2004-12-17 2008-10-07 Sprint Spectrum L.P. Method and system for providing location information for a wireless local area network (WLAN)
US8139593B2 (en) * 2006-03-31 2012-03-20 Qualcomm Incorporated Memory management for high speed media access control
US7685396B2 (en) * 2007-03-05 2010-03-23 Research In Motion Limited System and method for dynamic memory allocation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572498A (zh) * 2014-12-26 2015-04-29 曙光信息产业(北京)有限公司 报文的缓存管理方法和装置

Also Published As

Publication number Publication date
TW201018142A (en) 2010-05-01
KR101134195B1 (ko) 2012-04-09
US8321651B2 (en) 2012-11-27
ES2367605T3 (es) 2011-11-04
RU2010144764A (ru) 2012-05-10
CA2718291A1 (en) 2009-10-08
RU2460222C2 (ru) 2012-08-27
KR20100126592A (ko) 2010-12-01
ATE516647T1 (de) 2011-07-15
EP2266265A1 (en) 2010-12-29
JP2011521313A (ja) 2011-07-21
EP2266265B1 (en) 2011-07-13
WO2009124164A1 (en) 2009-10-08
JP5265758B2 (ja) 2013-08-14
CN101971581B (zh) 2013-11-06
US20090254731A1 (en) 2009-10-08

Similar Documents

Publication Publication Date Title
CN101971581B (zh) 嵌入式或无线通信系统中用于存储器分配的系统和方法
JP4595190B2 (ja) ダウンロード方法およびそのダウンロード方法を実施するユーザ端末、配信サーバ
US20160381640A1 (en) Managing contact status updates in a presence management system
CN104954468A (zh) 资源的分配方法及装置
CN101237331B (zh) 话单文件的生成方法、传输方法、系统和装置
CN101809950A (zh) 为移动通信网络的控制平面实施负载均衡的方法和设备
CN108270581A (zh) 共享资源计费处理方法及装置
CN109348434A (zh) 一种场景信息的发送方法、发送装置及终端设备
JP4412369B2 (ja) 分散型処理システム、分散型処理方法、端末、及び、プログラム
CN102143440A (zh) 短消息业务处理的方法和装置
CN109614345B (zh) 一种协议层之间通信的内存管理方法及装置
CN100450218C (zh) 一种集群系统中动态查询群组成员状态方法
WO2006027654A1 (en) System and method for data dispatch
CN102355493A (zh) 数据传输系统和数据传输方法
CN108536854A (zh) 数据交互的方法、装置及计算机可读存储介质
US20110264763A1 (en) Method for retrieving object from device management client and associated device management system
CN115334010A (zh) 查询信息的处理方法和装置、存储介质及电子装置
CN109379748B (zh) 信号收发单元的小区划分方法、装置及计算机设备
KR100758282B1 (ko) 비트맵 메모리를 이용한 메모리 관리 장치 및 그 방법
CN101662740A (zh) 一种彩信附件在网络侧的传输方法及设备
CN102857978B (zh) 资源处理方法及装置
CN104899247A (zh) 一种信息订制方法和系统
CN105530162A (zh) 离线消息处理方法及装置
CN103544292A (zh) 基于HASH表的Diameter消息处理方法和装置
CN101426218B (zh) 一种通信系统性能统计的计数器适配方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131106

Termination date: 20210402