硬件数据更新方法和设备的制作方法

文档序号:7706676阅读:316来源:国知局
专利名称:硬件数据更新方法和设备的制作方法
技术领域
本发明涉及硬件数据更新方法和设备,更具体地,涉及基于代价的硬件 数据更新方法和设备。
背景技术
很多应用涉及硬件数据的更新。例如,在数据通信领域中,路由表在路 由器中指导路由转发,通俗一点就是"问路"。路由器存储的就是"去哪怎么 走"的信息,即目的地址和路径。
一个数据包进入路由器后,包头里面携带 了它的"目的地址",通过目的地址,查找到路径,然后完成转发。目前网络 上的计算机越来越多,所以路由表的规模是越来越大,电信运营商要求达到
IOO万以上的路由表表项。另外随着网络应用的丰富,网络带宽要求也飞速
增长,对路由查找的性能要求也越来越高。
路由查找表是一种路由表,就是将路由信息压缩整理成一定格式的表,
完成转发过程中的高速查找(一般是30Mpps以上)。路由查找表将会以一种 "方便快速查找"的格式或者方式存在于路由查找硬件中。
随着路由表表项数量的不断增加,目前主流已经达到百万数量级别,相 应的对于路由表表项更新(包括添加和删除)速率的要求也不断增长,以达 到快速更新路由,减少业务中断时间的目的。
路由器算法查找系统一般由一套维护软件和一套硬件组成。软件通过计 算,产生一个或者多个算法查找结构中的节点,在硬件中通过"最小"访问 硬件,完成快速的转发查找。在一条表项添加过程中,4艮据算法方案的不同, 需要更新一次或者多次硬件数据,随后的表项添加,也同样需要更新一次或 者多次硬件数据并且随着表项数量的增长,更新量变大的几率也会增长。
路由更新速率逐渐成为各种算法容量不断扩大的一个技术瓶颈,目前没 有比较好的解决办法, 一般是在算法本身做出一些优化来达到提速的目的。
现有的技术方案是逐条添加表项,同时完成硬件数据的更新。图5示出 了现有表项操作过程的示意图。对于一个表项操作,算法查找维护软件产生相应的一系列硬件操作,然后按照这些硬件操作,逐条将数据更新到硬件。 发明人在研究过程中发现,由于对于每一个表项操作,现有技术方案独立进 行处理,因此对于批量接收的表项操作请求,会引起大量重复、冗余和无效 的硬件操作。因此现有技术的缺点是不能利用路由器软件批量表项下发的信 息,造成硬件更新操作的浪费。而且,大量表项刷新过程中,刷新时间长。 因此,存在对于优化的硬件数据更新方案的需求。

发明内容
因此,本发明实施例的一个目的是基于代价来更新硬件的数据。 本发明实施例的另 一 目的是提高硬件数据的更新速度。
本发明实施例的另 一 目的是使得硬件数据的更新不会影响路由查找,即 没有中间的"错误状态"。
本发明实施例的另 一 目的是提高路由查找算法中固定二叉树的更新速率。
为了实现上述以及其他目的,本发明实施例提供了 一种硬件数据更新设
备,用于更新硬件中存储的数据。该设备包括接收模块,接收至少一个请
求操作并将至少一个请求操作定义为批量操作;以及维护模块,对于批量操
作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价, 并基于所估计的代价更新硬件中存储的数据。每个硬件操作集包括至少两个 硬件操作。各个硬件操作集对硬件的操作结果是等价的。
为了实现上述以及其他目的,本发明实施例还提供了 一种硬件数据更新
方法,用于更新硬件中存储的数据。该方法包括接收至少一个请求操:作并 将所述至少一个请求操作定义为批量操作;对于批量操作中的每个请求操作 产生至少两个硬件操作集;估计每个硬件操作集的代价;以及基于所估计的 代价更新所述硬件中存储的数据。每个硬件操作集包括至少两个硬件操作。 各个硬件操作集对硬件的操作结果是等价的。
为了实现上述以及其他目的,本发明实施例还l是供了一种系统,包括用 于存储数据的硬件。该系统还包括硬件数据更新设备,用于更新硬件中存储 的数据。该硬件数据更新设备包括接收模块,接收至少一个请求操作并将 至少一个请求操作定义为批量操作;以及维护模块,对于批量操作中的每个 请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所
7估计的代价更新硬件中存储的数据。每个硬件操作集包括至少两个硬件操:作。 各个硬件操作集对硬件的操作结果是等价的。
通过本发明的实施例,给批量操作导致硬件多次无效更新情况提供了 一 种减少硬件操作代价的方案,并可以给分层二叉树的^各由查找方案提供一种 快速刷新表项的方法和i殳备。


根据结合附图的以下描述,将更充分地理解本发明的其他优点、特征和 细节。
图1是示出根据本发明实施例的硬件数据更新设备的框图。
图2是示出根据本发明实施例的硬件数据更新方法的流程图。 图3是示出分层二叉树的示意图。
图4是示出根据本发明实施例在分层二叉树中使用硬件代价策略的表项 操作的示意图。
图5示出了现有表项操作过程的示意图。
具体实施例方式
下面参照附图描述本发明的实施例。应注意,在附图中,相同的附图标 记始终表示相同或相似的元素。
应当理解,在此描述的本发明的各个实施例仅仅是为了更好地解释本发 明的原理和概念,而不是要限制本发明。在阅读这样的描述之后,本领域技 术人员很容易构造其他修改或替换,这样的修改或替换应被理解为落入本发 明的范围中。
图1是示出根据本发明实施例的硬件数据更新设备100的框图。硬件数 据更新设备100用于更新硬件200中存储的数据。该硬件数据更新设备100 包括接收模块105和维护模块110。
接收模块105可以从硬件数据更新设备100外部接收针对硬件200的请 求操作,例如请求更新硬件200中数据的操作。接收模块105可一次性或分 多次接收多个请求操作(requested operation)。例如,4妄收才莫块105可包括与外 部通信的数据接口等,以便接收外部设备的请求操作。各个请求操作有可能 会相互影响到硬件更新结果。接收模块105将接收到的(一个或多个)请求操作定义为批量操作1050。批量操作1050可以有一个明确的长度。批量操 作1050中的请求操作可以在整个操作过程中一次完成,也可以根据需要在某 个请求操作后即更新硬件,然后再继续执行。 一般来说,该批量操作1050中 的一个请求操作将造成一个或者多个硬件操作(包括^旦不限于对硬件200中 存储的数据的添加、删除、替换、搬移等)。如果批量冲喿作中只有一个请求操 作,则要求这个请求操作能够产生不同的硬件操作集("硬件操作集"在下文 中描述)。
维护模块110依次针对批量操作1050中的每个请求操作,产生相应的一 个或多个硬件操作。 一般来说, 一个请求操作可对应于不同的一系列硬件操 作(称为"硬件操作集")。维护模块110可根据预先定义的方案,产生两个 或更多个硬件操作集1101、 ...、 110i等。产生的每个石更件操作集1101、...、 110i中的硬件操作和其他硬件操作集中的硬件操作可以是相同种类(添加、 删除、替换、搬移等)的,也可以是完全不同的。每个硬件操作集完成硬件 操作后,其导致的结果是一致和等价的。
维护模块110可以估计所产生的每个硬件操作集的代价。每一种硬件操 作(添加、删除、替换、搬移等)所需的硬件代价可能是不同的。因而,可 对每一种硬件操作赋予相应的权值,由此估计硬件操作集的代价。
维护模块110可以在产生硬件操作集的过程中并行地估计代价,也可以 在产生整个硬件操作集之后再估计代价。
维护模块110还可以根据所估计的代价,更新硬件200中存储的数据。 维护模块110可选择具有最小代价的硬件操作集作为优选操作集,并按照该 优选操作集中的硬件操作来更新硬件200中的数据。
对于操作的硬件对象, 一般来说其访问速度是比较慢的,而维护模块和
代价模块的速度相比要快得多。通过上述基于代价的硬件数据更新设备100, 能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬 件的更新速度。
图2是示出根据本发明实施例的硬件数据更新方法1000的流程图。硬件 数据更新方法1000可以由图1所示的硬件数据更新设备100来执行,也可以 由具有处理能力的其他设备来执行。
在S1005,接收针对硬件200 (见图1)的请求操作。可一次性或分多次 接收多个请求操作。各个请求操作有可能会相互影响到硬件更新结果。将接收到的(一个或多个)请求操作定义为批量操作1050 (见图1)。批量操作 1050中的请求操作可以在整个操作过程中一次完成,也可以根据需要在某个 请求操作后即更新硬件,然后再继续执行。 一般来说,该批量操作中的一个 请求操作将造成一个或者多个硬件操作(包括但不限于对硬件200中存储的
数据的添加、删除、替换、搬移等)。如果批量操作中只有一个请求操:作,则
要求这个请求操作能够产生不同的硬件操作集。
在S1010,依次针对批量操作1050中的每个请求才喿作,产生相应的一个 或多个硬件操作。 一般来说, 一个请求操作可对应于不同的硬件操作集。可 根据预先定义的方案,产生两个或更多个硬件操作集1101、 ...、 110i等(见
图1)。产生的每个硬件操作集1101..... 110i中的硬件操作和其他硬件操作
集中的硬件操作可以是相同种类(添加、删除、替换、搬移等)的,也可以 是完全不同的。每个硬件操作集完成硬件操作后,其导致的结果是一致和等 价的。
在S1015,估计在S1010中产生的每个硬件操作集的代价。每一种硬件 操作(添加、删除、替换、搬移等)所需的硬件代价可能是不同的。因而, 可对每一种硬件操作赋予相应的权值,由此估计硬件操:作集的代价。
S1015可以与S1010并行执行,即在产生硬件操作集的过程中并行地估 计代价,也可以在S1010之后执行,即,在产生整个石更件操作集之后再估计 代价。
在S1020,根据在S1015中估计出的代价,更新石更件200中存储的数据。 可选择代价最小的硬件操作集作为优选操作集,并按照该优选操作集中的硬 件操作来更新硬件200中的数据。
对于操作的硬件对象, 一般来说其访问速度是比较慢的,而维护模块和 代价模块的速度相比要快得多。通过上述基于代价的硬件数据更新方法1000, 能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬 件的更新速度。
路由查找硬件就是针对高速查找的 一种硬件,可以是某种算法实现的方 案,也可以是某种硬件电路实现的查找方案(例如TCAM)。算法查找方案具 有容量大,功耗小,成本低的优点。路由表的更新是算法查找方案中的一个 主要问题,更新速度反映了路由器在发生网络故障时的反应能力,即需要快 速更新大量路由信息,完成"正确"的转发。下面以路由查找硬件的数据更新操作(路由查找表表项操作)为例,更 详细地说明根据本发明实施例的硬件数据更新方法。
路由查找硬件的数据更新操作可以在分层固定二叉树中实现。图3是示 出分层二叉树的示意图。分层二叉树是一种查找方案,其特点是大树节点和 小树节点通过指针完成物理上的分离,但逻辑上仍然是一棵有序的二叉树。 小树是一棵固定大小的有序二叉树。每个请求操作会产生相应的对大树节点 或小树节点的一个或多个硬件操作(称为"节点操作")。
分层二叉树和节点的内容在软件和硬件中都存储,它们的内容如果是直 接同步,会造成中间的"错误状态",在路由器上就表现为"丟包"等,所以 需要定义多组不造成中间"错误状态"的操作集,用来完成硬件的同步,也 就是说,同步过程"不中断服务",不需要中断同步过程中外部的查找请求(不 是操作请求)。
大树节点和小树节点主要体现出分层的概念
1. 大树节点和小树节点--对应;
2. 大树节点作为对小树节点的资源分配单位;
3. —组大树节点和一组小树节点组成一个有序的二叉树;
4. 一组大树节点和对应的一组小树节点构成一个查找表。 根据本发明的实施例,可定义两种硬件更新方式
a) 节点操作更新按照对于节点(大树节点和小树节点)的节点操作来 更新硬件;以及
b) —次更新按照"一次更新操作" 一次性更新一个小树的所有节点, 即将小树节点一次更新到硬件的一棵新小树中,然后^^改大树节点指针。
换句话说,硬件操作可包括节点操作和一次更新操作。
图4是示出根据本发明实施例在分层二叉树中使用硬件代价策略的表 项操作的示意图。该实施例可用于更新路由查找硬件200,中存储的数据。具 体地,路由查找硬件200,中存储了分层二叉树的节点数据。
接收模块105,接收来自外部的表项操作1.....n,作为请求操作,并建
立表项批量操作1050,。
路由查找维护模块110,建立和维护硬件操作集(队列)。例如,建立一 个或者几个大小为小树大小的队列(以下称为"节点操作队列,,),用来緩存 单个小树在硬件的操作。同时另外建立一个队列(以下称为"小树更新队列,,),
ii緩存"一次更新"操作。
针对某一请求操作,以节点添加为例,在一个节点加入后,可能造成多 个节点的搬移,所有对节点的操作緩存在"节点操作队列"中。节点操作队 列只属于对一棵小树的操作。节点才喿作队列数量可以是有限的几个。如果节 点操作队列用完,则需要将緩存的硬件操作更新到硬件中。在完成更新之后, 再继续緩存后面的操作。
路由查找维护模块IIO,可估计和比较节点操作队列的硬件操作代价和小 树的一次更新操作的代价。将节点操作队列的代价定义为它所包括的节点操 作的代价。 一颗小树的"一次更新操作"的代价可以是一个固定值,例如对 应于一颗小树的节点数。该维护模块110,在一次批量刷新过程中,将维护"硬
件操作"队列,选择代价最小的队列作为该节点添加请求操作的硬件操作队
列,并且将执行该硬件操作队列中的硬件操作,以便更新硬件200,中的数据。 换句话说,在节点添加过程中,如果发现一棵小树中节点操作次数(代 价)超过整棵小树更新的代价,则应选择一次更新方式,以小树更新队列作 为优选的硬件操作队列。这时将节点操作队列释放,记录该小树到小树更新 队列中。在此情况下,路由查找维护模块IIO,在小树更新队列中写入"一次 更新"操作。否则,应选择节点操作更新方式,以节点操作队列作为优选的 硬件操作队列。
这样,对于批量操作1050,,所得到的最小代价的硬件操作集将仅仅包 括优选的硬件操作队列。路由查找维护模块IIO,按照该最小代价的硬件操作 集中的硬件操作来更新硬件200,中的数据。
应注意,对于批量操作中大树节点发生变化的情况,如果有两棵及以上 大树节点发生变化,将会影响路由查找过程,可能中断用户的正常使用。所 以一旦发生大树节点发生变化(更新)时,需要及时更新硬件。换句话说, 如果发生大树节点被修改的情况,则马上根据已有计算结果,更新硬件数据, 然后再处理后面的其他表项操作。
另外,如果更新涉及的小树数量超过节点操作队列的数量,即节点操作 队列已用完,则同样需要先将已有数据同步到硬件后再继续处理后面的其他 表项操作。
由于上述最小代价的硬件操作集的确定过程是软件层面上的,比硬件操 作速度要快得多,因而能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬件的更新速度。 ,
图5是示出了根据本发明一个实施例的在分层二叉树中使用硬件代价
策略的表项操作方法2000的流程的图。
方法2000在S2001判断批量操作中是否緩存有操作(表项操作)。如果 有,则方法2000前进到S2005,从批量操作队列中取出一个表项操作。
然后在S2010,完成节点的更新,在此过程中将产生相应的一系列硬件 操作。
随后,在S2015,判断小树是否已经拥有节点操作队列。如果该小树被 操作过,将有节点操作队列,或者已经进入小树更新队列。如果在S2015判 断小树没有节点操作队列,则方法2000前进到S2020,判断小树是否在小树 更新队列。
在S2020,如果判断为在小树更新队列,则该小树的操作不需要记录, 方法前进到S2040(下文将描述)。如果判断为不在小树更新队列,则方法2000 前进到S2025,判断是否还有可用的节点操作队列。
在S2025,如果还有可用的节点搮:作队列,则方法2000前进到S2045(下 文将描述)。如果没有节点操作队列可用,则方法2000前进到S2030,需要 先将目前队列中的硬件操作更新到硬件,然后再给本次硬件操作申请队列。
随后,在S2035,将本次硬件操作入节点操作队列。然后在S2040,判 断大树节点是否受到影响。如果大树节点受到影响,则方法2000需要前进到 S2045和S2050,及时将目前緩存在节点操作队列和小树更新队列中的硬件操 作刷新到硬件中,以免后续刷新影响硬件查找。具体地,首先在S2045,将 小树中的节点操作更新到硬件,然后才在S2050,更新整棵小树到硬件。在 更新整棵小树时,需要先申请一个空闲的小树,更新数据到硬件后,修改相 应大树的指针,然后释放原来的小树。
完成刷新之后,方法2000前进到S2055,判断是否要结束整个方法。如 果要结束,则方法2000完成并终止。如果不要结束,则返回S2001继续循环, 处理下一个表项纟喿作。如果在S2040,判断为大树节点不受影响,则方法2000 也返回S2001继续循环,处理下一个表项操作。
返回S2015,当判断小树拥有节点操作队列时,说明小树已经被操作过。 在此情况下,方法2000前进到S2060,比较硬件代^介,根据代价决定硬件更 新策略。具体地,在S2060,判断节点操作代价是否超过小树更新代价。如说明应选择小树更新操作(上文描述的"一次更 新"操作),则方法2000前进到S2065,释放节点操作队列,以供其他小树 使用。这是因为对于需要整棵更新的小树来说,操作入队列是没有意义的。 然后在S2070,清空节点操作队列。将节点操作队列清空可以防止后面的误 操作。随后,在S2075,入小树更新队列,即,记录要更新的小树。在小树 后续会被销毁的情况下,也可在S2075处感知到这一情况,以免做无效或者 错误更新。
随后,方法2000前进到S2040。 S2040以及后续已经在上文中进行了详 细描述,在此不再赘述。
返回S2060,如果判断结果为"是",即节点操作代价不超过小树更新代 价,则应选择节点操作更新方式。因此,方法2000前进到S2035,将硬件梯: 作入节点操作队列。S2035以及后续步骤已经在上文中进行了详细描述,在 此不再赘述。
返回S2001,如果判断结果为"否",即没有待处理的表项操作,或者说 已经将緩存的所有表项操作处理完,则方法2000前进到S2045和S2050,将 目前緩存在节点操作队列和小树更新队列中的硬件操作刷新到硬件中。 S2045、 S2050以及后续步骤已经在上文中进行了详细描述,在此不再赘述。
上面以分层二叉树为例说明了路由查找硬件表项更新的方法。但本领域 技术人员很清楚,上述例子只是为了更好地解释本发明的原理,而不构成对 本发明范围的限制。例如,本发明实施例也可应用于其他种类的硬件数据的 更新。硬件数据的存储方式不限于分层二叉树,其他数据存储结构也可采用 本发明实施例的原理。在任何数据同步到硬件中时,定义一个批量更新硬件 操作的开始和结束点,在此过程中,如果后面的更新硬件操作可能会影响前 面的更新结果,导致前面的更新"无效",就可以使用该设备来完成优化减少 硬件更新操作。
另外,本发明实施例中描述了用于更新整颗小树的"一次更新操作"作 为节点操作的替代方法。但本领域技术人员明白,"一次更新操作"不对本发 明的范围构成限制,也可以采用其他的同步更新方法。例如可以进行"局部" 更新,效率会提高一些,但是代价计算会相对复杂。这样的局部更新操作也 在本发明的范围内。
因此,通过本发明的实施例,给批量操作导致硬件多次无效更新情况提
14供了 一种减少硬件操作的方案,并可以给分层二叉树的路由查找方案提供一 种快速刷新表项的方法和设备。
尽管已示出和描述了本发明的 一些实施例,但本领域技术人员应理解, 在不脱离本发明的原理和精神的情况下,可对这些实施例进行各种修改,这 样的修改应落入本发明的范围内。
权利要求
1、一种硬件数据更新设备,用于更新硬件中存储的数据,其特征在于,包括接收模块,接收至少一个请求操作并将所述至少一个请求操作定义为批量操作;以及维护模块,对于所述批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新所述硬件中存储的数据,其中每个硬件操作集包括至少两个硬件操作,并且所述至少两个硬件操作集对所述硬件的操作结果是等价的。
2、 如权利要求1所述的硬件数据更新设备,其特征在于,所述维护模块 基于所估计的代价更新所述硬件中存储的数据包括所述维护模块在所估计 的代价中选择最小代价,并按照对应于该最小代价的硬件操作集中的硬件操 作来更新所述硬件中存储的数据。
3、 如权利要求1所述的硬件数据更新设备,其特征在于,所述维护模块 根据硬件操作的种类而对该硬件操作赋予权值,以估计硬件操作集的代价。
4、 如权利要求1所述的硬件数据更新设备,其特征在于,所述数据被存 储为分层二叉树的节点,其中所述分层二叉树包括大树节点和小树节点。
5、 如权利要求4所述的硬件数据更新设备,其特征在于,所述硬件操作 包括节点操作和一次更新操作,其中所述节点操作是按照所述请求操作而产 生的对分层二叉树的节点的操作,所述一次更新操作是一次性更新一个小树 的所有节点的操作。
6、 如权利要求5所述的硬件数据更新设备,其特征在于,所述硬件操作 集包括节点操作队列和小树更新队列,其中所述节点操作队列緩存单个小树 的所述节点操作,所述小树更新队列緩存所述一次更新操作。
7、 如权利要求6所述的硬件数据更新设备,其特征在于, 所述估计每个硬件操作集的代价包括针对特定请求操作,所述维护模块估计所述节点操作队列和所述一次更新操作的代价,所述基于所估计的代价更新所述硬件中存储的数据包括如果所述节点 操作队列的代价不超过所述一次更新操作的代价,则所述維护模块确定所述节点操作队列作为所述特定请求操作的硬件操作队列,如果所述节点操:作队 列的代价超过所述一次更新操作的代价,则所述维护模块确定所述小树更新 队列作为所述特定请求操作的硬件操作队列,并且按照所确定的硬件操作队 列来更新所述硬件中存储的数据。
8、 如权利要求6所述的硬件数据更新设备,其特征在于,如果所述节点 操作队列用完,则所述维护模块按照目前的节点操作队列和小树更新队列中 的硬件操作而更新所述硬件中存储的数据。
9、 如权利要求4所述的硬件数据更新设备,其特征在于,如果更新所述 大树节点,则所述维护模块按照目前的节点操作队列和小树更新队列中的硬 件操作而更新所述硬件中存储的数据。
10、 如权利要求6所述的硬件数据更新设备,其特征在于,所述小树的 一次更新梯:作包括申请新小树;将小树节点一次更新到所述新小树中;以 及修改大树节点指针。
11、 一种硬件数据更新方法,用于更新硬件中存储的数据,其特征在于,包括接收至少 一个请求操作并将所述至少 一个请求操作定义为批量操作; 对于所述批量操作中的每个请求操作产生至少两个硬件操作集; 估计每个硬件操作集的代价;以及 基于所估计的代价更新所述硬件中存储的数据,其中每个硬件操作集包括至少两个硬件操作,并且所述至少两个硬件操 作集对所述硬件的操作结果是等价的。
12、 如权利要求11所述的硬件数据更新方法,其特征在于,所述基于所 估计的代价更新所述硬件中存储的数据包括在所估计的代价中选择最小代 价,并按照对应于该最小代价的硬件操作集中的硬件操作来更新所述硬件中 存储的数据。
13、 如权利要求11所述的硬件数据更新方法,其特征在于,所述估计每 个硬件操作集的代价包括根据硬件操作的种类而对该硬件操作赋予权值, 以估计硬件操作集的代价。
14、 如权利要求11所述的硬件数据更新方法,其特征在于,所述数据被 存储为分层二叉树的节点,其中所述分层二叉树包括大树节点和小树节点。
15、 如权利要求14所述的硬件数据更新方法,其特征在于,所述硬件操作包括节点操作和一次更新操作,其中所述节点操作是按照所述请求操作而 产生的对分层二叉树的节点的操作,所述一次更新才乘作是一次性更新一个小 树的所有节点的操作。
16、 如权利要求15所述的硬件数据更新方法,其特征在于,所述硬件搡 作集包括节点操作队列和小树更新队列,其中所述节点操作队列缓存单个小 树的所述节点操作,所述小树更新队列緩存所述一次更新操作。
17、 如权利要求16所述的硬件数据更新方法,其特征在于, 所述估计每个硬件操作集的代价包括针对特定请求操作,估计节点操作队列和所述一次更新操作的代〗介,以及所述基于所估计的代价更新所述硬件中存储的数据包括如果所述节点 操作队列的代价不超过所述一次更新操作的代价,则所述维护模块确定所述 节点操作队列作为所述特定请求操作的硬件操作队列,如果所述节点梯:作队 列的代价超过所述一次更新操作的代价,则所述维护模块确定所述小树更新 队列作为所述特定请求操作的硬件操作队列,并且按照所确定的硬件操作队 列来更新所述硬件中存储的数据。
18、 如权利要求16所述的硬件数据更新方法,其特征在于,所述更新所 述硬件中存储的数据包括如果所述节点操作队列用完,则按照目前的节点 操作队列和小树更新队列中的硬件操作而更新所述硬件中存储的数据。
19、 如权利要求14所述的硬件数据更新方法,其特征在于,所述更新所 述硬件中存储的数据包括如果更新所述大树节点,则所述维护模块按照目 前的节点操作队列和小树更新队列中的硬件操作而更新所述硬件中存储的数 据。
20、 如权利要求16所述的硬件数据更新方法,其特征在于,所述小树的 一次更新操作包括申请新小树;将小树节点一次更新到所述新小树中;以及 修改大树节点指针。
21、 一种系统,包括用于存储数据的硬件,其特征在于,所述系统还包 括硬件数据更新设备,用于更新所述硬件中存储的数据,所述硬件数据更新 设备包括接收模块,接收至少一个请求操作并将所述至少一个请求操作定义为批量操作;以及维护模块,对于批量操作中的每个请求操作产生至少两个硬件操作集, 估计每个硬件操作集的代价,并基于所估计的代价更新所述硬件中存储的数 据,其中每个硬件操作集包括至少两个硬件操作,并且所述至少两个硬件操 作集对所述硬件的操作结果是等价的。
全文摘要
本发明实施例提供了一种硬件数据更新设备和方法,用于更新硬件中存储的数据。该设备包括接收模块,接收至少一个请求操作并将至少一个请求操作定义为批量操作;以及维护模块,对于批量操作中的每个请求操作产生至少两个硬件操作集,估计每个硬件操作集的代价,并基于所估计的代价更新硬件中存储的数据。每个硬件操作集包括至少两个硬件操作。至少两个硬件操作集对硬件的操作结果是等价的。该设备能以最小的代价来访问硬件,减少无效或冗余的硬件操作,从而大大提高硬件的更新速度。
文档编号H04L12/24GK101515866SQ20091013182
公开日2009年8月26日 申请日期2009年4月8日 优先权日2009年4月8日
发明者董伟峰 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1