CN100445963C - 一种实现高可靠性空闲链表的方法及装置 - Google Patents

一种实现高可靠性空闲链表的方法及装置 Download PDF

Info

Publication number
CN100445963C
CN100445963C CNB2007100793183A CN200710079318A CN100445963C CN 100445963 C CN100445963 C CN 100445963C CN B2007100793183 A CNB2007100793183 A CN B2007100793183A CN 200710079318 A CN200710079318 A CN 200710079318A CN 100445963 C CN100445963 C CN 100445963C
Authority
CN
China
Prior art keywords
pointer
check information
backup
memory block
chained list
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.)
Expired - Fee Related
Application number
CNB2007100793183A
Other languages
English (en)
Other versions
CN101030168A (zh
Inventor
张彦军
郭英辉
任广涛
张瑞合
杨名
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2007100793183A priority Critical patent/CN100445963C/zh
Publication of CN101030168A publication Critical patent/CN101030168A/zh
Priority to PCT/CN2008/070290 priority patent/WO2008098513A1/zh
Application granted granted Critical
Publication of CN100445963C publication Critical patent/CN100445963C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供了一种实现高可靠性链表的方法及装置,属于数据存储领域。为了解决现有技术中只能纠正链表指针的单比特错误,并且纠错成本高的问题,本发明提供了一种实现高可靠性链表的方法及装置,所述方法包括判断指针和备份指针是否相等,如果不相等,则判断指针的校验信息和备份指针的校验信息是否相等,如果相等,则验证指针是否正确,如果不正确,则将指针的值赋为所述备份指针的值。本发明还提供了一种实现高可靠性链表的装置,所述装置包括指针信息获取模块、判断模块、验证模块和指针维护模块。采用本发明所述方案能够纠正多比特错误,使链表具有高可靠性,提高了系统的可靠性和可用性。并且不需要增加时钟和额外校验存储器,节约了成本。

Description

一种实现高可靠性空闲链表的方法及装置
技术领域
本发明涉及数据存储领域,特别涉及一种实现高可靠性空闲链表的方法及装置。
背景技术
存储器(Memory)是电子系统中最常用的部件之一。CPU的运行代码、数据记录都需要保存在存储器中。
在对存储器进行空间管理的方法中,空闲链表(freelist)是一种常用的、简单有效的内存管理方式。其结构如下:
Figure C20071007931800051
链表有一个头指针变量Head,它存放一个地址,该地址指向一个元素。链表中每一个元素称为节点,每个节点都应包括两个部分:一为用户需要用的实际数据Data,二为下一个节点的指针Next。因此,head指向第一个元素Data 1;第一个元素Data 1又指向第二个元素Data 2;……;直到最后一个元素Data n,该元素不再指向其它元素,它称为表尾,它的指针部分放一个NULL(表示空指针),链表到此结束。
在上述空闲链表中,如果指针发生错误,会导致对存储器内存混乱,甚至系统崩溃。为了避免上述问题,会在分配内存和释放内存时对空闲链表进行维护,现有技术采用以下两种方式:
1.增加奇偶校验。该方法就是利用计算数据的各个比特之和的奇偶性来检验数据的正确性。其优点是实现比较简便,一般CPU都带有该功能。但其只能检测出单比特的错误,且不能纠错。该方法在对可靠性要求不太高的情况下可使用。
2.增加ECC(Error Check and Correct,错误检查和纠正)校验。该方法是目前采用最为广泛、而且效果最好的方法。在服务器等对可靠性要求很高的应用场合,都采用了ECC功能模块。和奇偶校验技术一样,ECC纠错技术也需要额外的空间来储存校正码,但其占用的位数跟数据的长度并非成线性关系。具体来说,它是以8位数据、5位ECC码为基准,随后每增加一个8位数据只需另增加一位ECC码即可。例如,一个8位的数据产生的ECC码要占用5位的空间,而一个16位数据ECC码只需在原来基础上再增加一位,也就是6位;而32位的数据则只需再在原来基础增加一位,即7位的ECC码即可,如此类推。
每一次数据写入内存的时候,ECC码使用一种特殊的算法对数据进行计算,其结果称为校验位(check bits)。然后将所有校验位加在一起的和是校验和(checksum),校验和与数据一起存放。当这些数据从内存中读出时,采用同一算法再次计算校验和,并和前面的计算结果相比较,如果结果相同,说明数据是正确的,反之说明有错误,ECC可以从逻辑上分离错误并通知系统。
参见图1,为ECC原理图。
1.增加一片8比特的DRAM作为校验字的存储空间。
2.CPU数据写入DRAM时,ECC采用确定的算法计算出数据的校验值,和原始的数据一起写入内存。数据写入主存,校验比特写入校验存储器。
3.CPU读取数据时,相应的数据和其校验字被ECC读回,ECC根据数据算出校验字和回读的校验字比较,如果校验字相同才被写入CPU,如果不同启动纠错算法,将错误比特纠正后再写入CPU。
ECC校验能纠正所有单比特错误,同时发现2比特的错误,部分发现2比特以上错误,因而只能纠正单比特错误。在纠错的情况下,要增加额外的一个时钟,还需要增加额外的校验存储器,这样增加一定的成本。
发明内容
为了解决现有技术中对空闲链表维护时只能纠正单比特错误,并且纠错成本高的问题,本发明实施例提供了一种实现高可靠性空闲链表的方法及装置。所述技术方案如下:
一种实现高可靠性空闲链表的方法,所述空闲链表包括指向节点的头指针,所述节点包括内存块和指向下一节点或空节点的指针,在每个内存块增加备份指针及备份指针的校验信息,所述方法包括以下步骤:
获取头指针所指内存块的指针、指针的校验信息、备份指针、备份指针的校验信息;
判断所述指针和所述备份指针是否相等,如果不相等,则判断所述指针的校验信息和所述备份指针的校验信息是否相等,如果所述指针的校验信息和所述备份指针的校验信息相等,则验证所述指针是否正确,如果所述指针不正确,则将所述指针的值赋为所述备份指针的值。
本发明实施例还提供了一种实现高可靠性空闲链表的装置,所述空闲链表包括指向节点的头指针,所述节点包括内存块和指向下一节点或空节点的指针,在每个内存块增加备份指针及备份指针的校验信息,所述装置包括指针信息获取模块、判断模块、验证模块和指针维护模块;
所述指针信息获取模块用于获取头指针所指内存块的指针、备份指针及指针的校验信息、备份指针的校验信息并发送给所述判断模块;
所述判断模块用于获取所述指针信息获取模块发送的指针、备份指针及指针的校验信息、备份指针的校验信息,判断所述指针和所述备份指针是否相等,如果不相等,则判断所述指针的校验信息和所述备份指针的校验信息是否相等,如果所述指针的校验信息和所述备份指针的校验信息相等,则向所述验证模块发送验证请求;
所述验证模块用于接收所述判断模块发送的验证请求后,验证所述指针是否正确,并将验证结果发送给所述指针维护模块;
所述指针维护模块用于接收所述验证模块发送的验证结果,如果所述指针不正确,则将所述指针的值赋为所述备份指针的值。
本发明实施例所述的技术方案带来的有益效果是:
通过本发明实施例提供的一种实现高可靠性空闲链表的方法及装置,采用本发明实施例所述的技术方案,能够纠正多比特错误,使空闲链表具有高可靠性,提高了系统的可靠性和可用性。并且不需要增加时钟和额外校验存储器,节约了成本。
附图说明
图1是现有技术中ECC原理图;
图2是本发明实施例1所述实现高可靠性空闲链表方法中分配内存块之前对freelist维护过程流程图;
图3是本发明实施例1所述实现高可靠性空闲链表方法中在释放内存时对freelist的维护过程流程图;
图4是本发明实施例2所述实现高可靠空闲性链表装置的结构图;
图5是本发明实施例3所述实现高可靠性空闲链表装置的结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但本发明不局限于以下实施例。
本发明实施例主要采用指针备份的方法来实现对freelist链表的维护,即在每个内存块的尾部(也可以是其它部位)增加备份指针及备份指针的校验信息。
以网络处理器Rainier下的存储器Z0(36比特)的Freelist保护为例,参见表1,32比特用以存放指针NextPtr,该指针指向下一个内存块。采用用户选择的算法计算指针校验信息Parity保存在4比特的内存中。该算法可以是奇偶校验算法、ECC校验算法或其它任何一种校验算法。备份指针Backup NextPtr及备份指针校验信息Backup Parity则是对指针及指针校验信息的备份。在正常情况下,指针等于备份指针,而且指针校验信息和备份指针校验信息也相等。
 LW0   NextPtr(32bit)  Parity(4bit)
 LW1   Backup NextPtr(32bit)  Backup Parity(4bit)
表1
实施例1
参见图2,从freelist中分配内存块之前,对freelist维护过程如下:
步骤101:获取freelist中内存块的数量。
步骤102:判断freelist中内存块数量是否大于1,如果大于1,说明有内存块需要维护,则执行步骤103;如果不大于1,则说明存在两种情况,一种是内存块数量为0,无需维护,另一种是只有一个内存块,该内存块的指针为空,不存在指向下一个内存块的指针,也无需维护,则返回,在需要释放内存块的时候可以释放该内存块。
步骤103:获取freelist中的头指针。
步骤104:判断头指针是否为本freelist的地址,如果不是说明该头指针不是本freelist的有效头指针,无需维护,则返回;如果是,则继续执行步骤105。
步骤105:获取头指针所指内存块的指针及该指针的校验值。
步骤106:获取头指针所指内存块的备份指针及备份指针的校验值。
步骤107:判断头指针所指内存块的指针是否等于备份指针。如果相等,说明指针正确,不需要维护,则返回,在需要释放内存块的时候可以释放该内存块。如果不相等,说明指针可能错误,需要进一步判断,执行步骤108。
步骤108:判断指针的校验信息和备份指针的校验信息是否相等。如果不相等,说明指针和备份指针中有一个是错误的,而指针的校验信息和备份指针的校验信息中也有一个是错误的,这时,我们认为内存已经不可信,不做处理,则返回;如果相等,说明指针的校验信息和备份指针的校验信息都正确,可以根据这两个校验信息判断是否指针错误,执行步骤109。
步骤109:计算备份指针的校验信息。
步骤110:将步骤109中计算出来的备份指针的校验信息与内存中保存的备份指针的校验信息相比较,如果不相等,说明指针正确,备份指针错误,不需要维护,则返回,在需要释放内存块的时候可以释放该内存块。如果相等,说明指针错误,备份指针正确,需要维护,执行步骤111。
步骤111:将指针值赋值为备份指针的值,并返回,在需要释放内存块的时候可以释放该内存块。
本发明实施例中,备份指针和指针出错有四种情况:
1、备份指针正确指针正确;
2、备份指针正确指针错误;
3、备份指针错误指针正确;
4、备份指针错误指针错误。
本发明对于情况1、2、3都是有效的,可以进行维护。对于情况4我们认为内存已经不可信,只能重新进行设备初始化操作了。指针发生错误而无法校正(备份指针也错误)的概率(假设单比特错误的概率是A=0.001)如下:
指针有1比特错误而无法校正的概率:
A*(1-A)^31*32*[32*A*(1-A)^31+(32*31)/2*A^2*(1-A)^30+(32*31*30)/(2*3)*A^3*(1-A)^29+......+A^32]=0.001;
指针有2比特错误而无法校正的概率:
A^2*(1-A)^30*(32*31)/2*[32*A*(1-A)^31+(32*31)/2*A^2*(1-A)^30+(32*31*30)/(2*3)*A^3*(1-A)^29+......+A^32]=0.00002;
也就是说,指针发生错误而无法校正(备份指针也错误)的概率大约为
0.001+0.00002=0.00102;
在内存块使用完毕后,需要把该内存释放回freelist中,在释放内存时也需要对freelist进行维护。
本实施例所述技术方案在释放内存之前,需要判断freelist中是否还有内存块,如果有内存块,则在释放内存块以后需要更新freelist倒数第二个(也即释放之前的最后一个)内存块指针的校验值、备份指针及备份指针的校验值。如果没有内存块,将该内存块释放到freelist中,由于释放内存块之后freelist中只有一个内存块,不需要更新上述信息。
参见图3,本发明实施例在释放内存时对freelist的维护过程如下:
步骤201:获取freelist中内存块的数量。
步骤202:判断freelist中内存块的数量是否为零,如果freelist中内存块的数量为零,说明freelist中没有内存块,则将变量pTail赋值为0xFFFF,执行步骤206。如果freelist中内存块的数量不为零,说明freelist中有内存块,需要进行维护,执行步骤203。
步骤203:获取freelist中最后一个内存块的指针NxtPtr的地址FL_tail。
步骤204:判断FL_tail是否为freelist地址,若是则执行步骤205,若不是则pTail赋值为0xFFFF,执行步骤206。
步骤205:把FL_tail赋值给变量pTail,执行步骤206。
步骤206:释放内存。把释放的内存块挂到freelist的尾部,将释放之前的最后一个内存块的指针值NxtPtr更新为被释放的内存块的地址。
步骤207:判断pTail是否为0xFFFF,如果是,说明freelist中没有内存块或FL_tail不是本freelist地址,无需对freelist进行维护,则返回。如果不是,需要更新freelist倒数第二个(也即释放之前的最后一个)内存块的指针的校验值、备份指针及备份指针的校验值,执行步骤208。
步骤208:读取pTail的内容NxtPtr,也就是获取释放之前空闲链表中的最后一个内存块的指针。
步骤209:计算指针的校验信息。
步骤210:把指针的校验信息写到内存块校验信息区,即更新所述指针的校验信息。
步骤211:把指针和指针的校验信息分别写到内存块备份指针和备份指针的校验信息区,并返回。即把所述释放之前空闲链表中的最后一个内存块的备份指针和备份指针的校验信息更新为所述指针和指针的校验信息。
实施例2
参见图4,本发明还提供了一种实现高可靠性链表的装置,在每个内存块的尾部或其它部位增加备份指针及备份指针的校验信息,该装置包括指针信息获取模块301、判断模块302、验证模块303和指针维护模块304;
指针信息获取模块301用于获取头指针所指内存块的指针、指针的校验信息、备份指针、备份指针的校验信息并发送给判断模块302;
判断模块302用于获取所述指针信息获取模块301发送的指针、指针的校验信息、备份指针、备份指针的校验信息,判断所述指针和所述备份指针是否相等,如果相等,则分配所述内存块,如果不相等,则判断所述指针的校验信息和所述备份指针的校验信息是否相等,如果所述指针的校验信息和所述备份指针的校验信息相等,则向验证模块303发送验证请求;
验证模块303用于接收判断模块302发送的验证请求后,验证所述指针是否正确,并将验证结果发送给指针维护模块304;
其中,验证模块303具体包括校验信息计算单元303a和校验信息验证单元303b。
校验信息计算单元303a用于计算指针的校验信息,并将所述计算出来的校验信息发送给校验信息验证单元303b;
校验信息验证单元303b用于接收所述校验信息验证单元发送的校验信息,判断所述计算出来的指针的校验信息与内存中保存的指针的校验信息是否相等,如果相等,则所述指针正确,如果不相等,则所述指针不正确。
指针维护模块304用于接收所述验证模块发送的验证结果,如果所述指针正确,则分配所述内存块,如果所述指针不正确,则将所述指针的值赋为所述备份指针的值,并分配所述内存块。
本发明实施例所述装置还可以包括更新模块,用于判断空闲链表中是否有内存块,如果有内存块,则在释放内存块之后获取释放之前空闲链表中的最后一个内存块的指针,并计算并更新所述指针的校验信息,把所述释放之前空闲链表中的最后一个内存块的备份指针和备份指针的校验信息更新为所述指针和指针的校验信息。
实施例3
参见图5,上述实施例1中,验证模块303也可以具体为备份校验信息计算单元303c和备份校验信息验证单元303d。其它部分同实施例1,不再赘述。
备份校验信息计算单元303c用于计算备份指针的校验信息,并将所述计算出来的校验信息发送给备份校验信息验证单元303d;
备份校验信息验证单元303d用于接收所述备份校验信息计算单元发送的校验信息,判断所述计算出来的备份指针的校验信息与内存中保存的备份指针的校验信息是否相等,如果相等,则所述指针不正确,如果不相等,则所述指针正确。
以上实施例中所提供的方案对应的软件可以存储在一个计算机可读取存储介质中,如硬盘、软盘、光盘中。
采用本发明实施例所述的技术方案,能够纠正多比特错误,使链表具有高可靠性,提高了系统的可靠性和可用性。并且不需要增加时钟和额外校验存储器,节约了成本。
以上所述的实施例,只是本发明的一种较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。

Claims (8)

1.一种实现高可靠性空闲链表的方法,其特征在于,所述空闲链表包括指向节点的头指针,所述节点包括内存块和指向下一节点或空节点的指针,在每个内存块增加备份指针及备份指针的校验信息,所述方法包括以下步骤:
获取头指针所指内存块的指针、指针的校验信息、备份指针、备份指针的校验信息;
判断所述指针和所述备份指针是否相等,如果不相等,则判断所述指针的校验信息和所述备份指针的校验信息是否相等,如果所述指针的校验信息和所述备份指针的校验信息相等,则验证所述指针是否正确,如果所述指针不正确,则将所述指针的值赋为所述备份指针的值。
2.如权利要求1所述的一种实现高可靠性空闲链表的方法,其特征在于,所述验证所述指针是否正确的步骤具体包括:
计算指针的校验信息;
判断所述计算出来的指针的校验信息与内存中保存的指针的校验信息是否相等,如果相等,则所述指针正确,如果不相等,则所述指针不正确。
3.如权利要求1所述的一种实现高可靠性空闲链表的方法,其特征在于,所述验证所述指针是否正确的步骤具体包括:
计算备份指针的校验信息;
判断所述计算出来的备份指针的校验信息与内存中保存的备份指针的校验信息是否相等,如果相等,则所述指针不正确,如果不相等,则所述指针正确。
4.如权利要求1-3中任意一项权利要求所述的一种实现高可靠性空闲链表的方法,其特征在于,所述方法还包括以下步骤:
将使用完的内存块释放回空闲链表时,判断空闲链表中是否有内存块,如果有内存块,则在释放内存块之后获取释放之前空闲链表中的最后一个内存块的指针,把释放的内存块挂在空闲链表尾部,将所述指针更新为被释放的内存块的地址,计算并更新所述指针的校验信息,把所述释放之前空闲链表中的最后一个内存块的备份指针和备份指针的校验信息更新为所述指针和指针的校验信息。
5.一种实现高可靠性空闲链表的装置,其特征在于,所述空闲链表包括指向节点的头指针,所述节点包括内存块和指向下一节点或空节点的指针,在每个内存块增加备份指针及备份指针的校验信息,所述装置包括指针信息获取模块、判断模块、验证模块和指针维护模块;
所述指针信息获取模块用于获取头指针所指内存块的指针、指针的校验信息、备份指针、备份指针的校验信息并发送给所述判断模块;
所述判断模块用于获取所述指针信息获取模块发送的指针、指针的校验信息、备份指针、备份指针的校验信息,判断所述指针和所述备份指针是否相等,如果不相等,则判断所述指针的校验信息和所述备份指针的校验信息是否相等,如果所述指针的校验信息和所述备份指针的校验信息相等,则向所述验证模块发送验证请求;
所述验证模块用于接收所述判断模块发送的验证请求后,验证所述指针是否正确,并将验证结果发送给所述指针维护模块;
所述指针维护模块用于接收所述验证模块发送的验证结果,如果所述指针不正确,则将所述指针的值赋为所述备份指针的值。
6.如权利要求5所述的一种实现高可靠性空闲链表的装置,其特征在于,所述验证模块具体包括校验信息计算单元和校验信息验证单元;
所述校验信息计算单元用于计算指针的校验信息,并将所述计算出来的指针的校验信息发送给所述校验信息验证单元;
所述校验信息验证单元用于接收所述校验信息计算单元发送的计算出来的指针的校验信息,判断所述计算出来的指针的校验信息与内存中保存的指针的校验信息是否相等,如果相等,则所述指针正确,如果不相等,则所述指针不正确。
7.如权利要求5所述的一种实现高可靠性空闲链表的装置,其特征在于,所述验证模块具体包括备份校验信息计算单元和备份校验信息验证单元;
所述备份校验信息计算单元用于计算备份指针的校验信息,并将所述计算出来的备份指针的校验信息发送给所述备份校验信息验证单元;
所述备份校验信息验证单元用于接收所述备份校验信息计算单元发送的校验信息,判断所述计算出来的备份指针的校验信息与内存中保存的备份指针的校验信息是否相等,如果相等,则所述指针不正确,如果不相等,则所述指针正确。
8.如权利要求5-7所述的一种实现高可靠性空闲链表的装置,其特征在于,所述装置还包括更新模块,用于在将使用完的内存块释放回空闲链表时,判断空闲链表中是否有内存块,如果有内存块,则在释放内存块之后获取释放之前空闲链表中的最后一个内存块的指针,把释放的内存块挂在空闲链表尾部,将所述指针更新为被释放的内存块的地址,并计算并更新所述指针的校验信息,把所述释放之前空闲链表中的最后一个内存块的备份指针和备份指针的校验信息更新为所述指针和指针的校验信息。
CNB2007100793183A 2007-02-15 2007-02-15 一种实现高可靠性空闲链表的方法及装置 Expired - Fee Related CN100445963C (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CNB2007100793183A CN100445963C (zh) 2007-02-15 2007-02-15 一种实现高可靠性空闲链表的方法及装置
PCT/CN2008/070290 WO2008098513A1 (fr) 2007-02-15 2008-02-05 Procédé et dispositif d'élaboration d'une table d'enchaînement d'une grande fiabilité

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2007100793183A CN100445963C (zh) 2007-02-15 2007-02-15 一种实现高可靠性空闲链表的方法及装置

Publications (2)

Publication Number Publication Date
CN101030168A CN101030168A (zh) 2007-09-05
CN100445963C true CN100445963C (zh) 2008-12-24

Family

ID=38715534

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007100793183A Expired - Fee Related CN100445963C (zh) 2007-02-15 2007-02-15 一种实现高可靠性空闲链表的方法及装置

Country Status (2)

Country Link
CN (1) CN100445963C (zh)
WO (1) WO2008098513A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100445963C (zh) * 2007-02-15 2008-12-24 华为技术有限公司 一种实现高可靠性空闲链表的方法及装置
CN101594478B (zh) * 2008-05-30 2013-01-30 新奥特(北京)视频技术有限公司 一种超长字幕数据处理的方法
CN101334797B (zh) * 2008-08-04 2010-06-02 中兴通讯股份有限公司 一种分布式文件系统及其数据块一致性管理的方法
EP2738677B1 (en) 2011-08-23 2015-03-18 Huawei Technologies Co., Ltd. Method and device for detecting data reliability
CN102929818B (zh) * 2012-10-23 2015-12-16 华为技术有限公司 PCIe接口的传输报文数据方法、桥接模块、读取模块和系统
CN104125169B (zh) * 2013-04-26 2017-12-01 联发科技股份有限公司 链表处理装置、链表处理方法及相关网络交换机
CN105095261A (zh) * 2014-05-08 2015-11-25 北京奇虎科技有限公司 数据插入方法和装置
CN106126435B (zh) * 2016-06-28 2019-07-23 武汉众邦领创技术有限公司 一种实现链表流水操作的电路结构及操作方法
CN112181713B (zh) * 2020-10-10 2021-06-04 上海威固信息技术股份有限公司 一种计算机存储系统的数据恢复方法及恢复系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN88100490A (zh) * 1987-02-13 1988-08-24 国际商用机器公司 大存储器有效地址测试法
US5611042A (en) * 1995-10-10 1997-03-11 Lordi; Angela L. Data error detection and correction for a shared SRAM
US5644700A (en) * 1994-10-05 1997-07-01 Unisys Corporation Method for operating redundant master I/O controllers
CN1208236A (zh) * 1997-08-11 1999-02-17 日本电气株式会社 半导体存储器
CN1352427A (zh) * 2001-11-26 2002-06-05 北京实达铭泰计算机应用技术开发有限公司 一种计算机系统恢复方法
US20040143719A1 (en) * 2003-01-21 2004-07-22 Vincent Nguyen System and method for testing for memory errors in a computer system
JP2004272312A (ja) * 2003-03-05 2004-09-30 Fuji Electric Device Technology Co Ltd テスト装置及びテスト方法
JP2005149248A (ja) * 2003-11-18 2005-06-09 Nec Corp メタデータ修復方式,方法および記憶装置ならびにプログラム
CN1821978A (zh) * 2006-01-16 2006-08-23 深圳创维-Rgb电子有限公司 在嵌入系统的非易失存储器中进行数据操作的方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652545B2 (ja) * 1985-12-26 1994-07-06 トツパン・ム−ア株式会社 デ−タ管理手段を有するicカ−ド
FR2720529B1 (fr) * 1994-05-31 1996-08-14 Aton Systemes Sa Procédé pour la sauvegarde de l'image des données d'une unité de stockage et son transfert vers une unité de sauvegarde.
US6581151B2 (en) * 2001-07-18 2003-06-17 Ip-First, Llc Apparatus and method for speculatively forwarding storehit data based on physical page index compare
CN100445963C (zh) * 2007-02-15 2008-12-24 华为技术有限公司 一种实现高可靠性空闲链表的方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN88100490A (zh) * 1987-02-13 1988-08-24 国际商用机器公司 大存储器有效地址测试法
US5644700A (en) * 1994-10-05 1997-07-01 Unisys Corporation Method for operating redundant master I/O controllers
US5611042A (en) * 1995-10-10 1997-03-11 Lordi; Angela L. Data error detection and correction for a shared SRAM
CN1208236A (zh) * 1997-08-11 1999-02-17 日本电气株式会社 半导体存储器
CN1352427A (zh) * 2001-11-26 2002-06-05 北京实达铭泰计算机应用技术开发有限公司 一种计算机系统恢复方法
US20040143719A1 (en) * 2003-01-21 2004-07-22 Vincent Nguyen System and method for testing for memory errors in a computer system
JP2004272312A (ja) * 2003-03-05 2004-09-30 Fuji Electric Device Technology Co Ltd テスト装置及びテスト方法
JP2005149248A (ja) * 2003-11-18 2005-06-09 Nec Corp メタデータ修復方式,方法および記憶装置ならびにプログラム
CN1821978A (zh) * 2006-01-16 2006-08-23 深圳创维-Rgb电子有限公司 在嵌入系统的非易失存储器中进行数据操作的方法

Also Published As

Publication number Publication date
WO2008098513A1 (fr) 2008-08-21
CN101030168A (zh) 2007-09-05

Similar Documents

Publication Publication Date Title
CN100445963C (zh) 一种实现高可靠性空闲链表的方法及装置
US7765454B2 (en) Fault tolerant memory system
CN105260258B (zh) 层级ecc单芯片和双芯片chipkill方案
EP3566138B1 (en) Transaction identification synchronization
US8041990B2 (en) System and method for error correction and detection in a memory system
CN102981927B (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
CN101558452B (zh) 用于在闪速eeprom存储页中重构可靠性数据的方法和装置
US10891185B2 (en) Error counters on a memory device
US20140068319A1 (en) Error Detection And Correction In A Memory System
CN104798047A (zh) 错误检测和校正装置及方法
CN101473308A (zh) 非易失性存储器纠错系统和方法
CN106201338A (zh) 数据存储方法及装置
CN107807792A (zh) 一种基于副本存储系统的数据处理方法及相关装置
US8181094B2 (en) System to improve error correction using variable latency and associated methods
CN114245891A (zh) 用于持久性存储器系统等的数据完整性
CN108268340A (zh) 校正存储器中的错误的方法
US9898365B2 (en) Global error correction
CN109785893B (zh) 用于验证存储器适当操作的错误纠正码校验位的冗余存储
US20040225944A1 (en) Systems and methods for processing an error correction code word for storage in memory components
US7401269B2 (en) Systems and methods for scripting data errors to facilitate verification of error detection or correction code functionality
US9189327B2 (en) Error-correcting code distribution for memory systems
US7971092B2 (en) Methods and devices for high performance consistency check
US8661320B2 (en) Independent orthogonal error correction and detection
CN117413252A (zh) 具有内置错误纠正和检测的存储器的错误率
US11030061B2 (en) Single and double chip spare

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: 20081224

Termination date: 20160215