《内存释放方法和路由系统.pdf》由会员分享,可在线阅读,更多相关《内存释放方法和路由系统.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102325091A43申请公布日20120118CN102325091ACN102325091A21申请号201110314529722申请日20111017H04L12/56200601G06F12/0220060171申请人迈普通信技术股份有限公司地址610041四川省成都市高新区九兴大道16号迈普大厦72发明人曹淋74专利代理机构北京德琦知识产权代理有限公司11018代理人杨春香宋志强54发明名称内存释放方法和路由系统57摘要本发明提供了内存释放方法和路由系统。其中,该方法包括对路由系统中的所有转发核按照设定的规则依次进行组织;每个转发核在更新资源指针指向的资源后,将。
2、该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中;每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书4页附图2页CN102325104A1/2页21一种内存释放方法,其特征在于,该方法包括对路由系统中的所有转发核按照设定的规则依次进行组织;每个转发核在更。
3、新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中;每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。2根据权利要求1所述的方法,其特征在于,所述对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环;所述下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。
4、。3根据权利要求1或2所述的方法,其特征在于,对路由系统中的所有转发核按照设定的规则进行组织,是指按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环;或者,按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。4根据权利要求1所述的方法,其特征在于,资源释放队列按照先进先出FIFO的方式组织存放的需要释放的资源。5根据权利要求1所述的方法,其特征在于,所述每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源的操作,是在处理报文之前或者处理报文之后执行。6一种路由系统,其特征在于,该路由系统包括组织单元、配置单元和多个转发核,其中,所述组织单元,用于对路由系统中的所有转发核。
5、按照设定的规则进行组织;所述配置单元,用于为每个转发核分配独立的资源释放队列;每一转发核包括第一处理单元和第二处理单元,其中,所述第一处理单元,用于在其所处的转发核更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至该转发核的下一个转发核被分配的资源释放队列中;所述第二处理单元,用于检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于其所处的转发核更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至该转发核的下一个转发核被分配的资源释放。
6、队列中。7根据权利要求6所述的路由系统,其特征在于,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环;所述下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。8根据权利要求6所述的路由系统,其特征在于,所述配置单元为每个转发核分配的资源释放队列按照先进先出FIFO的方式组织存放的需要释放的资源。9根据权利要求6所述的路由系统,其特征在于,所述第二处理单元是在处理报文之前或者处理报文之后检查其所处的转发核被分配的资源释放队列是否存在需要释放的资权利要求书CN102325091ACN102325104A2/2页3源。10根据。
7、权利要求6或7所述的路由系统,其特征在于,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是指按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环;或者,按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。权利要求书CN102325091ACN102325104A1/4页4内存释放方法和路由系统技术领域0001本发明涉及数据通信技术,特别涉及内存释放方法和路由系统。背景技术0002随着物理接口速率的不断提升,路由系统中CPU的转发核CORE数也随之增加。在路由系统中,CPU的各个转发核通过并行工作方式并行处理报文转发,以期提高报文转发性能。但是,当多个转发核同时对同一。
8、代码区记为共享资源访问时,为避免冲突,需要实现多个转发核对共享资源的互斥访问,该互斥访问不能体现出多核并行执行的优点。0003为了体现出多核并行执行的优点,就需要避免共享资源的互斥访问。现有技术提供了以下方法来取代共享资源的互斥访问通过资源指针控制共享资源的访问。该通过资源指针控制共享资源的访问具体实现时可为在读共享资源时不用互斥,可以通过资源指针直接访问;而在写共享资源时也不用互斥,即首先拷贝一份共享资源,然后在拷贝的共享资源上进行写操作,写操作完成后更新资源指针,让其指向新拷贝的共享资源。0004至于原来的共享资源,其需要释放。其中,该释放资源是基于时间的内存延迟释放方法,即从上述更新资源。
9、指针的时间点算起,在延迟一段时间后,释放原始的共享资源。该延迟的时间是静态指定的,如1秒或10秒等。0005但是,这种基于时间的内存延迟释放方法是低效、甚至是不可靠的,因为延迟的时间是静态指定的,如果指定的延迟时间过短,那么在该延迟时间到达时,还会存在该待释放的资源还有被访问的可能,这影响资源访问;如果指定的延迟时间过长,那么势必会在一段时间内减小系统可提供的空闲内存的数量,造成资源的浪费。发明内容0006本发明提供了内存释放方法和路由系统,以避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。0007本发明提供的技术方案包括0008一种内存释放方法,包括0009对路由系统中的所有转。
10、发核按照设定的规则依次进行组织;0010每个转发核在更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中;0011每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。0012一种路由系统,包括组织单元、配置单元和多个转发核,其中,0013所述组织单元,用于对路由系统中的所有转发核按照设定的规则进行组织;0014所。
11、述配置单元,用于为每个转发核分配独立的资源释放队列;说明书CN102325091ACN102325104A2/4页50015每一转发核包括第一处理单元和第二处理单元,其中,0016所述第一处理单元,用于在其所处的转发核更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至该转发核的下一个转发核被分配的资源释放队列中;0017所述第二处理单元,用于检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于其所处的转发核更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续。
12、作为需要释放的资源存放至该转发核的下一个转发核被分配的资源释放队列中。0018由以上技术方案可以看出,本发明中,每个转发核在其由于更新资源指针指向的资源而确定的需要释放的资源经过所有转发核之后才释放该资源,即在所有转发核都不访问该资源时才及时释放该资源,这一方面不会影响资源访问,另一方面也能及时释放资源,不会造成资源的浪费,避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷,完全避免了基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。附图说明0019图1为本发明实施例提供的基本流程图;0020图2为本发明实施例提供的环结构示意图;0021图3为本发明实施例提供的环结构另一示意。
13、图;0022图4为本发明实施例提供的路由系统结构图。具体实施方式0023为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。0024参见图1,图1为本发明实施例提供的基本流程图。如图1所示,该流程可包括以下步骤0025步骤101,对路由系统中的所有转发核按照设定的规则依次进行组织。0026本步骤101具体实现时可为将所有转发核按照设定的顺序依次组成一个环。0027其中,将所有转发核按照设定的顺序依次组成一个环具体可为对路由系统中的所有转发核按照顺序编号,假如路由系统中的所有转发核为CORE1,CORE2,COREN,则可从一个预先设定的初始值比如1开始对该。
14、所有转发核按照顺序编号,比如,编号为从1至N,之后将所有转发核按照编号大小依次组成一个环。其中,将所有转发核按照编号大小依次组成一个环可包括以下任一情况0028情况1按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环。以路由系统中的所有转发核为CORE1,CORE2,COREN,该各个转发核的编号为1,2,N,基于此,按照编号由小到大的顺序顺时针将所有转发核组成一个环即可如图2所示。0029情况2按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。以路由系统中的所有转发核为CORE1,CORE2,COREN,该各个转发核的编号为1,说明书CN102325091ACN102325。
15、104A3/4页62,N,基于此,按照编号由大到小的顺序顺时针将所有转发核组成一个环即可如图3所示。0030步骤102,每个转发核在更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至下一个转发核被分配的资源释放队列中。0031基于上面描述的对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环,可以得到,本步骤102中的下一个转发核为当前转发核在环中沿顺时针方向或者逆时针方向的相邻的转发核。0032另外,本步骤102中,转发核被分配的资源释放队列是预先分配的,资源释放队列用于存放需要释放的资源,并按照先进先出FIFOFIRS。
16、TINFIRSTOUT组织其存放的需要释放的资源。其中,各个转发核被分配的资源释放队列相互独立。0033以图2为例,假如本步骤102中,CORE1更新资源指针指向的资源,则该CORE1将该资源指针在更新之前指向的资源作为需要释放的资源存放至图2所示的CORE2所被分配的资源释放队列中。0034步骤103,每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于自身更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至下一个转发核被分配的资源释放队列中。0035本步骤103中。
17、,每个转发核检查自身被分配的资源释放队列是否存在需要释放的资源的操作,是在处理报文之前或者处理报文之后执行,本发明并不具体限定。0036至此,完成图1所示的流程。0037从图1所示的流程可以看出,本发明中,每个转发核在其由于更新资源指针指向的资源而确定的需要释放的资源经过所有转发核之后才释放该资源,即在所有转发核都不访问该资源时才及时释放该资源,这一方面不会影响资源访问,另一方面也能及时释放资源,不会造成资源的浪费,避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。0038至此,完成本发明提供的方法描述,下面对本发明提供的路由系统进行描述0039参见图4,图4为本发明实施例提供的路。
18、由系统结构图。如图4所示,该路由系统包括组织单元、配置单元和多个转发核,其中,0040所述组织单元,用于对路由系统中的所有转发核按照设定的规则进行组织;0041所述配置单元,用于为每个转发核分配独立的资源释放队列;具体地,每一资源释放队列是按照FIFO的方式组织存放的需要释放的资源。0042每一转发核包括第一处理单元和第二处理单元,其中,0043所述第一处理单元,用于在其所处的转发核更新资源指针指向的资源后,将该资源指针在更新之前指向的资源作为需要释放的资源,存放至该转发核的下一个转发核被分配的资源释放队列中;0044所述第二处理单元,用于检查其所处的转发核被分配的资源释放队列是否存在需要释放。
19、的资源,如果是,则依次取出每一需要释放的资源,并判断该资源是否为由于其所处的转发核更新资源指针指向的资源而确定的需要释放的资源,如果是,则释放该资源,否则,将该资源继续作为需要释放的资源存放至该转发核在的下一个转发核被分配的资源释说明书CN102325091ACN102325104A4/4页7放队列中。其中,所述第二处理单元是在处理报文之前或者处理报文之后检查其所处的转发核被分配的资源释放队列是否存在需要释放的资源。0045具体地,本发明中,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是将所有转发核按照设定的顺序依次组成一个环;相应地,所述下一个转发核为当前转发核在环中沿顺时针。
20、方向或者逆时针方向的相邻的转发核。0046优选地,本发明中,所述组织单元对路由系统中的所有转发核按照设定的规则进行组织,是指0047按照转发核的编号由小到大的顺序顺时针将所有转发核组成一个环;或者,0048按照转发核的编号由大到小的顺序顺时针将所有转发核组成一个环。0049至此,完成本发明提供的路由系统结构描述。0050由以上技术方案可以看出,本发明中,环中的每个转发核在其由于更新资源指针指向的资源而确定的需要释放的资源经过整个环的所有转发核之后才释放该资源,即在所有转发核都不访问该资源时才及时释放该资源,这一方面不会影响资源访问,另一方面也能及时释放资源,不会造成资源的浪费,避免基于时间的内存延迟释放方法所带来的低效、甚至不可靠的缺陷。0051以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说明书CN102325091ACN102325104A1/2页8图1图2图3说明书附图CN102325091ACN102325104A2/2页9图4说明书附图CN102325091A。