一种用于网络处理器的数据老化方法技术

技术编号:2865972 阅读:166 留言:0更新日期:2012-04-11 18:40
一种用于网络处理器的数据老化方法,其特征在于包括:    设置数据老化时间间隔;    在数据操作时,设置该数据的时间戳值;    在数据老化操作时,取得系统时间戳值,根据系统时间戳值与数据的时间戳值的差判断数据存储是否超时,如果超时,删除该数据。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及存储器中所存储数据的更新方法,尤其是基于网络处理器(NP)的数据更新方法。
技术介绍
对于存储在存储器中的数据来说,由于利用率的不同,通常需要对这些数据进行老化处理,即及时删除长期不用的数据,以节省存储资源存储利用率高的数据。例如,对于存储在网络处理器(NP)中的数据表来说,它在NP内存中所分配的资源是有限的,怎样合理利用数据表项资源、最大可能的存储有用的信息、删除无用信息、提高内存的利用率?是数据表管理中的一个重要问题。以网络交换设备中的二层媒体访问控制(Mac)转发表来举例,该表的内容为不断学习得到的来自源端口的Mac地址信息。因此,对于Mac转发表来说,不论分配到多大的内存资源都会有充满的时候,一旦表项资源被用光,新的Mac转发信息就没办法记录下来。此时,Mac转发表的表项中塞满了大量过去学习到的Mac信息,这些信息中大部分信息的利用率很低,甚至有的表项的信息可能永远都不会再被利用;同时又有大量的Mac信息因为没有表项资源而不能被学习到,而这些信息可能在下面的时间中会被多次使用。可见,及时对Mac转发表中的信息进行老化处理能够避免上述情况的出现。实现数据老化的方法有多种,如根据时间老化,根据访问量老化等。以根据时间对Mac转发表老化为例,就是每隔一段时间发起一轮表项的轮循检查,将那些长时间都没有用到的表项删除掉。为了判别一个表项是否需要被老化删除,在NP中处理老化的方法为在表项中设置一个老化标志(aging)位,这个aging位标志表示该表项在一段时间内是否被使用过。当一个表项新建时,该表项的aging位初始值设为“1”,当表项被使用到的时候(如被查找命中),该表项中的aging位也会被重置“1”。数据的老化操作通常定时完成,在老化过程检查到一个表项的时候,如果判断该表项的aging位为“1”,表示此表项在定时老化间隔时间内被使用过,可能利用率较高,不执行删除操作,但同时要将该aging位置为“0”;如果发现该表项的aging为“0”,则表示在定时老化间隔时间内没有被使用过,可能利用率较低,因此将该表项删除。使用上述按照时间老化存储数据的方法能够将长时间没有被用到的表项删除掉,避免表项充满而导致其它问题。上述方法的去缺点在于,一个表项被老化掉需要至少要经过两次的老化检查,即第一次老化操作时将aging位设为0,第二次老化操作时将此表项删除,在有大量的表项需要被老化掉时,如果每个表项需要被读两次才能删除,而且在第一次老化操作时还有对表项的写aging位操作,这就会大大的增加老化操作时间而导致资源损耗。另外,对于存储器中的数据来说,数据的老化操作和其它的处理操作常常是在不同的线程中进行的。以上述Mac转发表为例,假设对Mac转发表的老化操作为A线程,数据转发为B线程。当A线程中对一个表项进行老化检查,可能在刚刚读出一个表项内容后,另一个B线程正好执行将该表项内容的更新操作,此时A线程又将该表项的aging位置位后的内容写了回去,这样,这个表项的内容又被写成了更新前的内容了(除了aging位)。这时候的老化操作就是往表项中写入了无效数据,破坏了表项内容。可见,现有方法无法解决数据的安全的问题。
技术实现思路
本专利技术的目的在于提供一种效率高、使用安全的专用于网络处理器的数据老化方法。为达到上述目的,本专利技术提供的用于网络处理器的数据老化方法,包括设置数据老化时间间隔;在数据操作时,设置该数据的时间戳值;在数据老化操作时,取得系统时间戳值,根据系统时间戳值与数据的时间戳值的差判断数据存储是否超时,如果超时,删除该数据。所述判断数据存储时间是否超时,通过系统时间戳值与数据的时间戳值的差是否大于或等于所述数据老化时间间隔完成。为需要老化处理的数据设置时间戳域,用于记录该数据的时间戳的值。所述方法还包括在数据首次存储时,将系统当前时间戳值作为该数据的时间戳值。在数据更新时,使用系统的时间戳值更新该数据的时间戳值。在数据被使用时,使用系统的时间戳值更新该数据的时间戳值。将数据存储在二维数据表中。也可以将数据存储在树形数据表中。上述系统时间戳值通过实时刷新系统时间获得。由于本专利技术采用时间戳技术对数据进行老化处理,方法简单,在对数据进行老化处理时,只需根据系统时间戳值与数据的时间戳值的差即可判断数据存储的时间是否超时,从而决定是否需要将该数据老化掉。这样,能够在一次老化过程中就解决数据的老化问题,与现有方法相比减少系统的资源耗损。同时,本专利技术在老化操作时,不需要对数据进行写操作,不但提高的老化操作的效率,也能够避免对多个线程对数据的读写操作冲突而导致的无效数据的写入被老化数据,或更改数据失误的问题,提高数据操作的安全性。附图说明图1是采用本专利技术老化表项所存储数据时的表项状态变迁图; 图2是本专利技术所述方法的实施例流程图。具体实施例方式为了避免存储器中的数据过多地占用存储资源,提高存储资源的利用率,通常需要将存储器中所存储的不常用的数据删除掉,以回收其资源,为此,就需要对存储器中的数据进行老化操作。尽管对数据的老化操作有多种标准,但实际中的老化依据本质上都是时间,即将超时不用的数据删除掉,释放其占用的存储资源。由于现有老化方法需要两次老化过程以及需要写操作才能完成对数据表中一个表项的老化处理,导致了效率的降低。同时,在数据的老化操作与数据的使用等操作需要由多个线程完成的情况下,必然导致对数据的操作失误。这种失误的本质是由于多线程对同一块区域的数据同时进行写操作引起,因此,要提高数据的老化效率以及避免在表项中写入脏数据,就需要减少老化操作的过程以及减少老化过程中的读写操作,从而避免数据的老化线程与数据的其它处理线程对数据进行操作时产生的矛盾。为此,本专利技术采用时间戳技术对需要老化的数据进行处理,其主要思想就是记录并比较时间戳的值,来判断该数据是否由于超时不用而需要删除,即使用系统时间戳和需要老化数据的时间戳作为判断数据是否能够被老化掉的依据,从而在一次老化过程中完成对数据的老化处理。下面假设存储器中的数据以数据表的二维形式存储,结合附图对本专利技术作进一步详细的描述。实际中,任何存储形式的数据都能应用本专利技术进行老化处理,如采用树形结构。首先设置对数据表项中存储的数据老化时间间隔,即设置超时时间标准,并在系统的寄存器组中选择寄存器用于存储该超时时间(也可以在存储器的存储单元中选定一个或多个存储单元用于存储该超时时间)。同时,在数据表中设置一个时间戳字段,用来记录数据表中的表项中所存储数据的时间戳的值。对表项中的时间戳域操作的动作有以下几种 1)新建表项时,将系统当前的时间戳记录下来,即将系统时间戳值作为该表项所存储数据的时间戳值。2)更新表项的时候,同时也取得系统当前的时间戳,更新表项中的时间戳值,即用系统的时间戳值更新该表项所存储数据的时间戳值。3)表项被使用时,也就是该表项所存储数据被应用该数据的线程命中时,更新表项所存储数据的时间戳值,即用系统的时间戳值更新该表项所存储数据的时间戳值。上述系统时间戳值由NP处理器实时刷新系统时间获得。可见,数据表的各表项中的时间戳记录了这个表项所存储数据最近一次被使用的时间。当老化操作到来时,只需要取出系统当前的时间戳值和表项中的时间戳值做比较,就可以知道这个表项所本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:牛琨熊鹰龚华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1