专利名称:一种提高存储器数据缓存可靠性的方法和装置的制作方法
技术领域:
本发明涉及网络通信技术领域,尤其涉及提高存储器数据緩存可靠性的 方法和装置。
背景技术:
在路由交换设备中,对数据进行緩存时,如图l所示,数据緩存控制模
块101通常将数据包按照一定的规则拆分成多个数据片存储到存储器102, 在数据包输出时,再将被拆分成的多个数据片进行组合,恢复成原来的数据 包。数据包拆分的数据片长度应该与数据包最小长度、内部包处理速度、存 储器数据位宽等因素有关。队列保存通常选用不同队列存储区域动态保存的 方式,在考虑动态存储器的带宽利用率的条件下,任何空闲区域随时都可以 放入需要緩存的队列数据。
随着网络技术的发展,路由交换设备中数据动态緩存的容量越来越大, 数据緩存的可靠性问题成为不得不考虑的问题。通常的处理方式是通过纠错 码(Error correction code,简称ECC )提高数据緩存容错能力,即接收数据 时,对每个数据片生成纠错码,输出数据时,根据每个数据片的纠错码对此 数据片进行纠错后输出,以提高緩存数据的可靠性。但是ECC是通过增加 冗余数据来实现容错能力的,不同的ECC算法的冗余数据长度不同,而不 同应用场景下的数据片的长度亦不同,数据片的切分一定是将数据片地址整 数切分,加入不同的冗余数据长度后。可能会造成数据地址生成和寻址的复 杂化,所以路由交换设备中的对数据緩存时一般不考虑增加冗余数据的方 式。
发明内容
本发明要解决的技术问题是提供一种提高存储 数据緩存可靠性的方法和装置,检测存储器中是否存在不安全存储空间,并提高数据緩存的可靠 性。为了解决上述技术问题,本发明提供了一种提高存储器数据緩存可靠性 的装置,包括与所述存储器相连的数据緩存控制模块,所述数据緩存控制模 块用于将接收到的数据緩存于所述存储器中,并在緩存结束后将緩存在所述存储器的数据读出,还包括与所述数据緩存控制模块相连的数据检测模块; 所述数据緩存控制模块,还用于在所述存储器中写入緩存数据之前向所述数 据;险测模块提供待写入的緩存数据和存储器中用于存储此缓存数据的存储 空间地址;从所述存储器中的所述存储空间地址读出所述緩存数据之后,向 所述数据检测模块提供已读出的緩存数据;还用于从所述数据检测模块处获 知所述存储器中存储空间的正常或异常的状态,并只向正常的存储空间存入 后续的緩存数据;所述数据检测模块,用于判断所述已读出的緩存数据与所 述待写入的緩存数据是否相同,相同时,则判定所述存储器中用于存储此緩 存数据的存储空间正常;不相同时,判定所述存储器中用于存储此緩存数据 的存储空间异常;并将所述存储器中存储空间的正常或异常的状态通知至所 述数据緩存控制模块。进一步地,上述装置还具有以下特点所述数据检测模块包括依次相连的数据输入控制单元、存储单元、数据 输出控制单元;所述数据输入控制单元,用于从所述数据緩存控制模块处获 取所述待写入的緩存数据后,所述待写入的緩存数据生成第一校验数据并保 存至所述存储单元;还用于从所述数据緩存控制模块处获取所述已读出的緩 存数据后,根据所述已读出的緩存数据生成第二校验数据,判断所述第一校 -睑数据和第二校验数据相同时,则判定所述存储器中用于存储此緩存数据的 存储空间正常;判断所述第一校验数据和第二校验数据不同时,则判定所述 存储器中用于存储此緩存数据的存储空间异常,并将所述存储器中用于存储 此緩存数据的存储空间的正常或异常状态存储在所述存储单元;所述数据输 出控制单元,用于从所述存储单元获取所述存储器中用于存储此緩存数据的 存储空间的正常或异常状态,将此存储空间的状态通知至所述数据緩存控制 模块。进一步地,上述装置还具有以下特点所述数据检测模块包括依次相连的数据输入控制单元、存储单元、数据 输出控制单元;所述数据输入控制单元,用于从所述数据緩存控制^^莫块处获 取所述待写入的緩存数据后存储至所述存储单元;还用于从所述数据緩存控 制模块处获取所述已读出的緩存数据后,比较所述已读出的緩存数据和存储 的待写入的緩存数据相同时,则判定所述存储器中用于存储此緩存数据的存 储空间正常;比较所述已读出的緩存数据和存储的待写入的緩存数据不同 时,则判定所述存储器中用于存储此緩存数据的存储空间异常,并将所述存 储器中用于存储此緩存数据的存储空间的正常或异常状态存储在所述存储 单元;所述数据输出控制单元,用于从所述存储单元获取所述存储器中用于 存储此緩存数据的存储空间的正常或异常状态,将此存储空间的状态通知至 所述数据緩存控制模块。进一步地,上述装置还具有以下特点所述存储单元,还用于维护一存储器映射表,所述存储器映射表的组成 元素一一对应于所述存储器的存储空间段,各组成元素表示对应的存储空间 段的状态;所述数据输入控制单元,还用于判断出存储空间段的状态后,将 此存储空间段的状态写入所述存储器映射表;所述数据输出控制单元,还用 于将所述存储器映射表提供至所述数据緩存控制模块。进一步地,上述装置还具有以下特点所述存储器映射表的组成元素占用的空间为一比特,所述存储器映射表 的每个组成元素对应的存储空间段的容量相同。进一步地,上迷装置还具有以下特点所述装置应用于路由交换设备。为了解决上述技术问题,本发明还提供了 一种提高存储器数据緩存可靠 性的方法,包括在存储器中存储緩存数据;从存储器中保存所述緩存数 据的存储空间地址中读出所述緩存数据之后,判断所述已读出的緩存数据与 进行存储之前待写入的緩存数据是否相同,相同时,则判定所述存储器中用于存储此緩存数据的存储空间正常;不相同时,判定所述存储器中用于存储 此緩存数据的存储空间异常;在后续数据緩存过程中对緩存数据进行存储 时,只向存储器中处于正常状态的存储空间存入緩存数据。进一步地,上述方法还具有以下特点以判断校验数据的方式判断所述已读出的緩存数据与进行存储之前待 写入的緩存数据是否相同,具体包括根据进行存储之前所述待写入的緩存 数据生成第一校验数据并保存;从存储器中保存所述緩存数据的存储空间地 址中读出所述緩存数据之后,根据所述已读出的緩存数据生成第二校验数据 判断所述第 一校验数据和第二校验数据相同时,则判定所述存储器中用于存 储此緩存数据的存储空间正常;判断所述第一校验数据和第二校验数据不同 时,则判定所述存储器中用于存储此緩存数据的存储空间异常;存储此緩存 数据的存储空间的正常或异常状态。进一步地,上述方法还具有以下特点通过维护一存储器映射表记录所述存储器中存储空间的状态,所述存储 器映射表的组成元素一一对应于所述存储器的存储空间段,各组成元素表示 对应的存储空间段的状态;将判断出存储空间段的状态写入所述存储器映射表。进一步地,上述方法还具有以下特点所述存储器映射表的组成元素占用的空间为一比特,所述存储器映射表 的每个组成元素对应的存储空间段的容量相同。采用本发明所述方法,与现有提高容^l晉能力的纠错码技术相比,使用简 易的代码移植实现,直接应用于进行数据緩存的现有设备,检测存储器中是 否存在不安全存储空间,进一步提高数据緩存的可靠性。
图1是现有技术中路由交换设备进行数据緩存的模块结构图; 图2是实施例中提高存储器数据緩存可靠性的装置的模块结构图;图3是实施例中数据检测模块的具体组成结构图。
具体实施方式
如图2所示,提高存储器数据緩存可靠性的装置包括数据緩存控制模块 101和与数据緩存控制模块101相连的存储器102,还包括与数据緩存控制 模块101相连的数据检测模块103;数据緩存控制模块101,用于将接收到的数据緩存于存储器102中,并 在緩存结束后将緩存在所述存储器的数据读出,还用于在所述存储器中写入 緩存数据之前向所述数据检测模块提供待写入的緩存数据和存储器中用于 存储此緩存数据的存储空间地址;还用于从所述存储器中的所述存储空间地 址读出所述缓存数据之后,向所述数据检测模块提供已读出的緩存数据;还 用于从数据检测才莫块处获知所述存储器中存储空间的正常或异常情况,并只 向正常的存储空间存入緩存数据,将异常的存储空间进行隔离。数据检测模块103,用于在判断所述已读出的緩存数据与所述待写入的 缓存数据是否相同,相同时,则判定所述存储器中用于存储此緩存数据的存 储空间正常;不相同时,判定所述存储器中用于存储此緩存数据的存储空间 异常,并将所述存储器中存储空间的正常或异常情况通知至所述数据缓存控 制模块;如图3所示,数据检测模块103包括依次相连的数据输入控制单元201、 存储单元202、凄史据输出控制单元203;数据输入控制单元201 ,用于从所述数据缓存控制模块处获取所述待写 入的緩存数据后,根据所述待写入的緩存数据生成第一校验数据,并将所述 校验数据存储至所述存储单元;从所述数据緩存控制模块处获取所述已读出 的緩存数据后,才艮据所述已读出的緩存数据生成第二校验数据;判断所述第 一校验数据和第二校验数据相同时,则判定所述存储器中用于存储此緩存数 据的存储空间正常;判断所述第一校验数据和第二校验数据不同时,则判定 所述存储器中用于存储此緩存数据的存储空间异常,并将所述存储器中用于 存储此緩存数据的存储空间的正常或异常状态存储在所述存储单元;或者, 从数据緩存控制才莫块处获取所述待写入的緩存数据后存储至所述存储单元;9从所述数据緩存控制模块处获取所述已读出的緩存数据后,判断所述已读出 的緩存数据和存储的待写入的緩存数据相同时,则判定所述存储器中用于存储此缓存数据的存储空间正常;判断所述已读出的緩存数据和存储的待写入 的緩存数据不同时,则判定所述存储器中用于存储此緩存数据的存储空间异常。数据输出控制单元203,用于从所述存储单元获取所述存储器中用于存 储此缓存数据的存储空间的正常或异常状态,将此存储空间的状态通知至所 述数据緩存控制模块。存储单元202,还用于维护一存储器映射表,存储器映射表的组成元素 一一对应于所述存储器的存储空间段,存储器映射表的组成元素占用的空间 为一比特(例如,比特值为1时表示此组成元素对应的存储空间段正常,比 特值为0时表示此组成元素对应的存储空间段正常),存储器映射表的每个 组成元素对应的存储空间段的容量相同或者不同,为了存储流程的易于实 现, 一般设置存储空间段的容量相同(例如均为1K比特)。存储单元202 在设备启动时,对存储器映射表进行初始化,默认存储器中各存储地址空间 均是正常状态。数据输入控制单元201判断出存储空间段的状态后,将此存 储空间段的状态写入所述存储器映射表;数据输出控制单元203将所述存储 器映射表提供至数据緩存控制模块101,数据緩存控制模块101存储新的緩 存数据时,查询此存储器映射表,只在标识为正常的存储空间段中存储数据。上述装置中通过建立数据片的映射链表来标识物理存储区域,将写入数 据进行备份,当数据读出时做存储数据验证,将出错的数据片隔离,可以快 速检测出存储器中是否存在不安全存储空间(即由于硬件原因会造成数据存 储错误的存储空间),通过降低数据緩存的出错率来提高可靠性。相比于现 有技术的ECC容错方法,不需要生成冗余数据,易于对存储器的存储空间 地址的管理,且简单易行。使用图2图3所示的装置提高存储器数据緩存可靠性的 法包括 步骤l, i殳备在上电或复位后启动;步骤2,数据输入控制模块201自动将映射链表初始化值写入映射表, 并存入存储单元202,初始时先将映射表中所有组成元素的值均设为1,表 示存储器的各个存储空间均正常;步骤3,设备开启存储器检测状态;步骤4,在数据緩存控制模块101向存储器102中写入緩存数据之前, 数据输入控制模块201从数据緩存控制模块101获知待写入的緩存数据以及 存储器中用于存储此缓存数据的存储空间地址,并根据所述待写入的緩存数 据生成第一校验数据并保存到存储单元202;此步骤中,本发明对根据待写入的緩存数据生成校验数据的方法不做限 制,本领域技术人员可采用其知晓的检验数据生成方式。步骤5,数据緩存控制模块101在存储器102中存储所述緩存数据;步骤6,数据缓存控制模块101需要从存储器中读出所述緩存数据时, 数据输出控制模块203从数据緩存控制模块101处获得读出的緩存数据以及 存储器中用于存储此缓存数据的存储空间地址,根据此读出的缓存数据生成 第二校验数据;步骤7,数据输入控制模块201判断此存储空间地址对应的第一校验数 据和第二校验数据是否相同,如果不同,则在存储器映射表中标识存储此緩 存数据的存储空间地址对应的组成元素的值为0,表示此存储空间异常,将 更新后的存储器映射表通知至数据緩存控制模块101;如果相同,不对此存 储器映射表作标识操作;步骤8,数据緩存控制模块101在后续的数据緩存操作中只在存储器映 射表中值为1的组成元素所指示的存储空间地址中存储数据。上述方法可以方便的检测存储器中是否存在不安全存储空间,进一步提 高数据缓存的可靠性。并且,本发明适用于大量数据动态緩存,数据切分处 理的有数据緩存可靠性要求的硬件设备,典型适用于路由交换设备。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种提高存储器数据缓存可靠性的装置,包括与所述存储器相连的数据缓存控制模块,所述数据缓存控制模块用于将接收到的数据缓存于所述存储器中,并在缓存结束后将缓存在所述存储器的数据读出,其特征在于,还包括与所述数据缓存控制模块相连的数据检测模块;所述数据缓存控制模块,还用于在所述存储器中写入缓存数据之前向所述数据检测模块提供待写入的缓存数据和存储器中用于存储此缓存数据的存储空间地址;从所述存储器中的所述存储空间地址读出所述缓存数据之后,向所述数据检测模块提供已读出的缓存数据;还用于从所述数据检测模块处获知所述存储器中存储空间的正常或异常的状态,并只向正常的存储空间存入后续的缓存数据;所述数据检测模块,用于判断所述已读出的缓存数据与所述待写入的缓存数据是否相同,相同时,则判定所述存储器中用于存储此缓存数据的存储空间正常;不相同时,判定所述存储器中用于存储此缓存数据的存储空间异常;并将所述存储器中存储空间的正常或异常的状态通知至所述数据缓存控制模块。
2、 如权利要求l所述的装置,其特征在于,所述数据;险测模块包括依次相连的数据输入控制单元、存储单元、数据 输出控制单元;所述数据输入控制单元,用于从所述数据緩存控制模块处获取所述待写 入的緩存数据后,所述待写入的緩存数据生成第一校验数据并保存至所述存 储单元;还用于从所述数据緩存控制模块处获取所述已读出的緩存数据后, 根据所述已读出的緩存数据生成第二校验数据,判断所述第一校验数据和第 二校验数据相同时,则判定所述存储器中用于存储此緩存数据的存储空间正 常;判断所述第一校验数据和第二校^r数据不同时,则判定所述存储器中用 于存储此緩存数据的存储空间异常,并将所述存储器中用于存储此緩存数据 的存储空间的正常或异常状态存储在所述存储单元;所述数据输出控制单元,用于从所述存储单元获取所述存储器中用于存 储此緩存数据的存储空间的正常或异常状态,将此存储空间的状态通知至所述数据緩存控制模块。
3、 如权利要求l所述的装置,其特征在于,所述数据检测模块包括依次相连的数据输入控制单元、存储单元、数据输出控制单元;所述数据输入控制单元,用于从所述数据緩存控制模块处获取所述待写 入的緩存数据后存储至所述存储单元;还用于从所述数据緩存控制模块处获 取所述已读出的緩存数据后,比较所述已读出的緩存数据和存储的待写入的 缓存数据相同时,则判定所述存储器中用于存储此緩存数据的存储空间正 常;比较所述已读出的緩存数据和存储的待写入的緩存数据不同时,则判定 所述存储器中用于存储此緩存数据的存储空间异常,并将所述存储器中用于 存储此緩存数据的存储空间的正常或异常状态存储在所述存储单元;所述数据输出控制单元,用于从所述存储单元获取所述存储器中用于存 储此緩存数据的存储空间的正常或异常状态,将此存储空间的状态通知至所 述数据緩存控制模块。
4、 如权利要求2或3所述的装置,其特征在于,所述存储单元,还用于维护一存储器映射表,所述存储器映射表的组成 元素——对应于所述存储器的存储空间段,各组成元素表示对应的存储空间 段的状态;所述数据输入控制单元,还用于判断出存储空间段的状态后,将此存储 空间段的状态写入所述存储器映射表;所述数据输出控制单元,还用于将所述存储器映射表提供至所述数据緩 存控制模块。
5、 如权利要求4所述的装置,其特征在于,所述存储器映射表的組成元素占用的空间为一比特,所述存储器映射表 的每个组成元素对应的存储空间段的容量相同。
6、 如权利要求4所述的装置,其特征在于, 所述装置应用于路由交换设备。
7、 一种提高存储器数据緩存可靠性的方法,包括 在存储器中存储緩存数据;从存储器中保存所述緩存数据的存储空间地址中读出所述緩存数据之 后,判断所述已读出的緩存数据与进行存储之前待写入的緩存数据是否相 同,相同时,则判定所述存储器中用于存储此緩存数据的存储空间正常;不 相同时,判定所述存储器中用于存储此緩存数据的存储空间异常;在后续数据緩存过程中对緩存数据进行存储时,只向存储器中处于正常 状态的存储空间存入緩存数据。
8、 如权利要求7所述的方法,其特征在于,以判断校验数据的方式判断所述已读出的緩存数据与进行存储之前待 写入的緩存数据是否相同,具体包括根据进行存储之前所述待写入的緩存数据生成第一校验数据并保存;从存储器中保存所述緩存数据的存储空间地址中读出所述緩存数据之 后,根据所述已读出的緩存数据生成第二校验数据判断所述第 一校验数据和 第二校验数据相同时,则判定所述存储器中用于存储此緩存数据的存储空间 正常;判断所述第一校验数据和第二校验数据不同时,则判定所述存储器中 用于存储此緩存数据的存储空间异常;存储此緩存数据的存储空间的正常或 异常状态。
9、 如权利要求8所述的方法,其特征在于,通过维护一存储器映射表记录所述存储器中存储空间的状态,所述存储 器映射表的组成元素一一对应于所述存储器的存储空间革爻,各组成元素表示 对应的存储空间段的状态;将判断出存储空间段的状态写入所述存储器映射 表。
10、 如权利要求9所述的方法,其特征在于,所述存储器映射表的组成元素占用的空间为一比特,所述存储器映射表 的每个组成元素对应的存储空间^殳的容量相同。
全文摘要
本发明提供了一种提高存储器数据缓存可靠性的方法和装置,包括在存储器中存储缓存数据;从存储器中保存所述缓存数据的存储空间地址中读出所述缓存数据之后,判断所述已读出的缓存数据与进行存储之前待写入的缓存数据是否相同,相同时,则判定所述存储器中用于存储此缓存数据的存储空间正常;不相同时,判定所述存储器中用于存储此缓存数据的存储空间异常;在后续数据缓存过程中对缓存数据进行存储时,只向存储器中处于正常状态的存储空间存入缓存数据。采用本发明所述方法,应用于进行数据缓存现有设备,检测存储器中是否存在不安全存储空间,进一步提高数据缓存的可靠性。
文档编号G06F11/07GK101615145SQ200910161519
公开日2009年12月30日 申请日期2009年7月24日 优先权日2009年7月24日
发明者昶 周, 陈红旗 申请人:中兴通讯股份有限公司