CN117234967A - 数据处理方法、装置、存储节点及存储介质 - Google Patents
数据处理方法、装置、存储节点及存储介质 Download PDFInfo
- Publication number
- CN117234967A CN117234967A CN202311021231.6A CN202311021231A CN117234967A CN 117234967 A CN117234967 A CN 117234967A CN 202311021231 A CN202311021231 A CN 202311021231A CN 117234967 A CN117234967 A CN 117234967A
- Authority
- CN
- China
- Prior art keywords
- data
- written
- address
- mode
- ram
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 32
- 238000012937 correction Methods 0.000 claims description 114
- 238000012545 processing Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 17
- 238000011084 recovery Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010009 beating Methods 0.000 claims description 7
- 239000000725 suspension Substances 0.000 abstract description 2
- 238000013461 design Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 239000007787 solid Substances 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据处理方法、装置、存储节点及存储介质,所述方法包括:获取写数据命令,写数据命令包括待写入地址和待写入数据;根据配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,生成第一数据;RAM_cfg_mode模式用于指示待写入地址和待写入数据的绑定方式;对第一数据添加校验位,获得第二数据;将第一数据和第二数据进行组合,获得第三数据,并根据待写入地址将第三数据存储至缓存中。如此,在向缓存中写入数据时,通过配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,以对地址进行保护,并对绑定所生成的数据添加校验位后进行存储,以保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,同时降低系统挂死的风险。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种数据处理方法、装置、存储节点及存储介质。
背景技术
在芯片设计中,缓存如RAM模块是其中的一个重要组成部分。在芯片工作过程中,RAM模块主要负责数据通路上数据的存储,在一定程度上确保芯片的工作可靠性。因此,芯片内部一般都会对RAM内部的存储数据进行相应的保护处理。如图1所示,硬件模块(记为Module A)需要读写RAM_wrapper中的存储数据时,会根据读写的地址将数据存储至RAM_BLOCK中或者从中读取数据。对进入RAM_BLOCK之前的数据,一般会采用错误检查和纠正(ECC)的读写保护机制对读写的数据进行1bit检错纠错处理,以保证数据的完整性。但是,对地址却没有进行任何的保护处理,而是通过addr_reg寄存器直接连接到RAM_BLOCK中进行地址的索引,以读取数据。
然而,在芯片的实际应用场景中,由于外部的恶劣环境,例如电磁干扰,辐射或者高温高压等影响,可能会导致芯片内部的少数寄存器在运行过程中出现bit翻转的情况,如果该类情况出现在RAM模块的addr_reg寄存器中,可能导致对RAM中读写的数据发生错误却未被系统识别出,不仅将无法读取到正确数据,并且可能还会导致芯片内部系统出现挂死的现象。
发明内容
本申请的目的在于提供一种数据处理方法、装置、存储节点及存储介质,能够确保读取数据时能获得正确数据,同时降低系统挂死的风险。
为达到上述目的:
第一方面,本申请提供了一种数据处理方法,应用于存储节点,所述存储节点包括缓存,所述方法包括:
获取写数据命令,所述写数据命令包括待写入地址和待写入数据;
根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待写入数据的绑定方式;
对所述第一数据添加校验位,获得第二数据;
将所述第一数据和所述第二数据进行组合,获得第三数据,并根据所述待写入地址将所述第三数据存储至所述缓存中。
在一实施方式中,所述根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据之前,包括:
对所述待写入地址和所述待写入数据进行延时打拍处理。
在一实施方式中,所述根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据,包括以下至少一种:
响应于配置的Ram_cfg_mode模式为第一模式,将所述待写入地址的高位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第二模式,将所述待写入地址的低位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第三模式,将所述待写入地址的高位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第四模式,将所述待写入地址的低位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据。
在一实施方式中,所述方法还包括:
获取配置指令,根据所述配置指令确定配置的所述RAM_cfg_mode模式。
第二方面,本申请提供了一种数据处理方法,应用于存储节点,所述存储节点包括缓存,所述方法还包括:
获取读数据命令,所述读数据命令包括读地址;
根据所述读地址从所述缓存中读取第三数据,并对所述第三数据进行解码以获得第一数据和第二数据;
对所述第一数据和所述第二数据进行纠错解码;
响应于纠错解码通过,根据配置的RAM_cfg_mode模式对纠错解码后的所述第一数据进行解绑定,获得待读取数据和所述待读取数据的写入地址;所述RAM_cfg_mode模式用于指示所述写入地址和所述待读取数据的绑定方式;
确定所述写入地址和所述读地址一致时,输出所述待读取数据。
在一实施方式中,所述对所述第一数据和所述第二数据进行纠错解码,包括:
对所述第一数据进行纠错检查,获得纠错检查结果;
比较所述第二数据和所述纠错解码检查结果,以检查所述第一数据是否出错;
响应于所述第一数据存在1bit出错,对所述第一数据进行纠错恢复,获得纠错解码后的所述第一数据;
响应于所述第一数据存在2bit及以上出错,确定纠错解码未通过,并执行异常处理机制。
第三方面,本申请提供了一种数据处理装置,所述装置位于存储节点中,包括:数据写入模块、纠错引擎模块、组合模块和缓存模块;其中,
数据写入模块,被配置为获取写数据命令,所述写数据命令包括待写入地址和待写入数据;以及,根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待写入数据的绑定方式;
纠错引擎模块,被配置为对所述第一数据添加校验位,获得第二数据;
组合模块,被配置为将所述第一数据和所述第二数据进行组合,获得第三数据,并根据所述待写入地址将所述第三数据存储至所述存储节点的缓存中。
在一实施方式中,所述数据写入模块,还被配置为:
对所述待写入地址和所述待写入数据进行延时打拍处理。
在一实施方式中,所述数据写入模块,被配置为:
响应于配置的Ram_cfg_mode模式为第一模式,将所述待写入地址的高位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第二模式,将所述待写入地址的低位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第三模式,将所述待写入地址的高位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第四模式,将所述待写入地址的低位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据。
在一实施方式中,所述数据写入模块,被配置为:
获取配置指令,根据所述配置指令确定配置的所述RAM_cfg_mode模式。
第四方面,本申请提供了一种数据处理装置,所述装置位于存储节点中,包括:数据读取模块、纠错引擎模块和组合模块;其中,
数据读取模块,被配置为获取读数据命令,所述读数据命令包括读地址;以及,根据所述读地址从所述存储节点的缓存中读取第三数据;
组合模块,被配置为对所述第三数据进行解码,获得第一数据和第二数据;
纠错引擎模块,被配置为对所述第一数据和所述第二数据进行纠错解码;
数据读取模块,还被配置为响应于纠错解码通过,根据配置的RAM_cfg_mode模式对纠错解码后的所述第一数据进行解绑定,获得待读取数据和所述待读取数据的写入地址;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待读取数据的绑定方式;以及,确定所述写入地址和所述读地址一致时,输出所述待读取数据。
在一实施方式中,所述纠错引擎模块包括纠错检查模块、比较模块和纠错恢复模块;其中,
纠错检查模块,被配置为对第一数据进行纠错检查,获得纠错检查结果;
比较模块,被配置为比较第二数据和纠错解码检查结果,以检查第一数据是否出错;
纠错恢复模块,被配置为响应于第一数据存在1bit出错,对第一数据进行纠错恢复,获得纠错解码后的第一数据;响应于第一数据存在2bit及以上出错,确定纠错解码未通过,并执行异常处理机制。
第五方面,本申请还提供了一种存储节点,所述存储节点包括:存储器、处理器,其中,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面和/或第二方面所述的数据处理方法的步骤。
第六方面,本申请还提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面和/或第二方面所述的数据处理方法的步骤。
本申请实施例提供的数据处理方法、装置、存储节点及存储介质,所述方法应用于存储节点,所述存储节点包括缓存,所述方法包括:获取写数据命令,写数据命令包括待写入地址和待写入数据;根据配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,生成第一数据;RAM_cfg_mode模式用于指示待写入地址和待写入数据的绑定方式;对第一数据添加校验位,获得第二数据;将第一数据和第二数据进行组合,获得第三数据,并根据待写入地址将第三数据存储至缓存中。如此,在向缓存中写入数据时,通过配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,以对地址进行保护,并对绑定所生成的数据添加校验位后进行存储,以确保后续读取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,即保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,提升了数据通路的稳定性,同时降低了系统挂死的风险。相应的,在从缓存中读取数据时,先对读取获得的第一数据和第二数据进行纠错解码,然后根据配置的RAM_cfg_mode模式对纠错解码后的第一数据进行解绑定,获得待读取数据和待读取数据的写入地址,并在确定写入地址和读地址一致时,输出待读取数据,从而确保读取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,即保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,同时降低系统挂死的风险。
附图说明
图1为现有数据处理方法进行数据读写的过程示意图;
图2为本发明实施例提供的数据处理方法的流程示意图一;
图3为本发明实施例提供的数据处理方法的流程示意图二;
图4为本发明实施例提供的数据处理装置的结构示意图一;
图5为本发明实施例提供的数据处理装置的结构示意图二;
图6为本发明实施例中RAM模块写方向的数据通路示意图;
图7为本发明实施例中RAM模块读方向的数据通路示意图;
图8为本发明实施例中读数据的具体流程示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本文中,采用了诸如S101、S102等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S102后执行S101等,但这些均应在本申请的保护范围之内。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
参阅图2,为本申请实施例提供的一种数据处理方法,应用于存储节点,所述存储节点包括缓存,该方法可以由本申请实施例提供的一种数据处理装置来执行,该装置可以采用软件和/或硬件的方式来实现,在具体应用中,该装置可以具体是固态硬盘控制器或芯片的控制器等。本实施例提供的数据处理方法可包括以下步骤:
步骤S101:获取写数据命令,写数据命令包括待写入地址和待写入数据。
其中,当硬件模块如主机需要将数据存储至缓存时,可以向存储节点发送写数据命令,以告知存储节点需要存储的数据以及对应的存储位置,存储节点相应的获取写数据命令。这里,主机也可以称之为计算存储节点,是指具备数据处理能力或计算能力的设备,其可包括但不限于中央处理器(CentralProcessing Unit,CPU)、通用处理器或其他设备等。同时,存储节点也可以称之为存储控制器(Controller),存储节点中的缓存可以是内存类型的缓存资源,比如随机存储器(Random-AccessMemory,RAM);还可以是硬盘或卡类型的缓存资源,比如固态硬盘(Solid State Drice,SSD)缓存、非易失性双列直插式内存模块(Non-Volatile Dual In-line Memory Module,NVDIMM)卡等。需要说明的是,写数据命令可包括多个待写入地址和多个待写入数据,且待写入地址与待写入数据是一一对应的。此外,待写入地址可具体为逻辑区块地址。
步骤S102:根据配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,生成第一数据;RAM_cfg_mode模式用于指示待写入地址和待写入数据的绑定方式。
其中,RAM_cfg_mode模式可以根据实际情况需要进行设置,以对待写入地址和待写入数据进行相应的逻辑运算,实现对待写入地址和待写入数据进行绑定。可以理解,若配置的RAM_cfg_mode模式不相同,则对待写入地址和待写入数据的绑定方式也不相同。
在一实施方式中,根据配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,生成第一数据,包括以下至少一种:
响应于配置的Ram_cfg_mode模式为第一模式,将待写入地址的高位和待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和待写入数据的高位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第二模式,将所述待写入地址的低位和待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第三模式,将待写入地址的高位和待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第四模式,将待写入地址的低位和待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和待写入数据的高位进行拼接以生成第一数据。
其中,待写入地址的高位和低位是根据待写入地址的位数进行划分的,例如,若待写入地址为16位二级制的,则将待写入地址的第0位至第7位确定为待写入地址的低位,而将待写入地址的第8位至第15位确定为待写入地址的高位。相应的,待写入数据的高位和低位是根据待写入数据的位数进行划分的,例如,若待写入数据为32位二级制的,则将待写入数据的第0位至第15位确定为待写入数据的低位,而将待写入数据的第16位至第31位确定为待写入数据的高位;再如,若待写入数据为64位二级制的,则将待写入数据的第0位至第31位确定为待写入数据的低位,而将待写入数据的第32位至第64位确定为待写入数据的高位。在实际应用中,可采用两位二进制数来表示配置的Ram_cfg_mode模式,例如,可以用二进制数“00”表示配置的Ram_cfg_mode模式为第一模式,而用二进制数“01”表示配置的Ram_cfg_mode模式为第二模式,以此类推。示例性地,假设配置的Ram_cfg_mode模式为第一模式,待写入地址为“10110011”,而待写入数据为“11001000”,则先将待写入地址的高位“1011”和待写入数据的低位“1000”进行逻辑异或运算,获得逻辑异或运算结果为“0011”,接着将逻辑异或运算结果“0011”和待写入数据的高位“1100”进行拼接,获得第一数据为“00111100”。如此,通过将待写入地址的高位和/或低位与待写入数据的高位和/或低位进行逻辑运算,再将逻辑运算结果与待写入数据的高位和/或低位进行拼接,可实现对待写入地址和待写入数据进行绑定,进而达到对待写入地址和待写入数据进行保护的目的。
在一实施方式中,所述方法还包括:
获取配置指令,根据所述配置指令确定配置的RAM_cfg_mode模式。
其中,配置指令可以是硬件模块如主机在向存储节点发送写数据命令之前或之后发送的,也可以是硬件模块如主机在向存储节点发送写数据命令的同时所发送的。当然,存储节点也可以预先存储针对不同硬件模块的配置指令,以在获取到任一硬件模块发送的写数据命令后,调用对应的配置指令,以根据配置指令确定对应的RAM_cfg_mode模式。
需要说明的是,针对发送写数据命令的硬件模块的不同,对应配置的RAM_cfg_mode模式可能不相同,具体可以在芯片初始化时为不同硬件模块配置不同的RAM_cfg_mode模式。例如,若写命令是第一主机发送的,则配置的Ram_cfg_mode模式可能为第一模式;若写命令是第二主机发送的,则配置的Ram_cfg_mode模式可能为第三模式等。如此,可实现快速配置RAM_cfg_mode模式,操作便捷。
在一实施方式中,根据配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,生成第一数据之前,包括:
对待写入地址和待写入数据进行延时打拍处理。
可以理解,为了保证待写入地址能够正确的到达存储节点的缓存的接口,需要保证在单个时钟周期内完成传输。但是,由于在后端进行布局布线时,硬件模块和存储节点的缓存不一定处于同一个层次,此时它们的Timing无法得到收敛的保证,导致可能需要后端不断调试上述两个模块的位置和形状以满足实际要求。因此,在根据配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定之前,可先对待写入地址和待写入数据进行延时打拍处理,以满足相应的Timing时序正确性。
步骤S103:对第一数据添加校验位,获得第二数据。
其中,该校验位能够用于表征第一数据的分布特性,比如第一数据的哪几位数据之间进行逻辑异或运算后结果为0或1,其目的是通过在写数据时添加校验位,以在读数据时对数据进行校验。本实施例中,以通过纠错引擎ECC对第一数据添加校验位,获得第二数据为例。
步骤S104:将第一数据和第二数据进行组合,获得第三数据,并根据待写入地址将第三数据存储至缓存中。
其中,将第一数据和第二数据进行组合,可具体为将第一数据和第二数据按照预设顺序进行拼接,以生成第三数据。比如,可以将第一数据作为第三数据的高位部分,而将第二数据作为第三数据的低位部分,或者可以将第一数据作为第三数据的低位部分,而将第二数据作为第三数据的高位部分。示例性地,假设第一数据为“10110101”和第二数据为“11000100”,则可以将第一数据作为第三数据的高位部分,而将第二数据作为第三数据的低位部分,从而生成第三数据为“1011010111000100”。可以理解,存储节点可根据预先存储的至少一个逻辑区块地址(Logical Block Address,LBA)和物理区块地址(PhysicalBlock Address,PBA)之间的对应关系,确定待写入地址(即逻辑区块地址)所对应的PBA以及该PBA所在的区块,进而将第三数据发送至位于缓存的该区块中,以将该第三数据存储至该区块中与数据的LBA所对应的PBA处,从而实现数据的存储,即完成数据写入操作。
综上,上述实施例提供的数据处理方法中,在向缓存中写入数据时,通过配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,以对地址进行保护,并对绑定所生成的数据添加校验位后进行存储,以确保后续读取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,即保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,同时降低系统挂死的风险。
基于前述实施例相同的发明构思,参阅图3,为本申请实施例提供的一种数据处理方法,应用于存储节点,所述存储节点包括缓存,该方法可以由本申请实施例提供的一种数据处理装置来执行,该装置可以采用软件和/或硬件的方式来实现,在具体应用中,该装置可以具体是固态硬盘控制器或芯片的控制器等。本实施例提供的数据处理方法包括以下步骤:
步骤S201:获取读数据命令,读数据命令包括读地址。
其中,当硬件模块如主机需要从缓存中读取数据时,可以向存储节点发送读数据命令,以告知存储节点需要读取的数据所对应的存储位置,存储节点相应的获取读数据命令。这里,主机也可以称之为计算存储节点,是指具备数据处理能力或计算能力的设备,其可包括但不限于中央处理器(CentralProcessing Unit,CPU)、通用处理器或其他设备等。同时,存储节点也可以称之为存储控制器(Controller),存储节点中的缓存可以是内存类型的缓存资源,比如随机存储器(Random-AccessMemory,RAM);还可以是硬盘或卡类型的缓存资源,比如固态硬盘(Solid State Drice,SSD)缓存、非易失性双列直插式内存模块(Non-Volatile Dual In-line Memory Module,NVDIMM)卡等。需要说明的是,读数据命令可包括多个读地址。此外,读地址可具体为逻辑区块地址。
步骤S202:根据读地址从缓存中读取第三数据,并对第三数据进行解码以获得第一数据和第二数据。
其中,由于缓存中存储的数据是对写入地址和写入数据进行绑定、添加校验位后所生成的,因此,存储节点根据读数据命令中的读地址从缓存中读取第三数据后,需要对第三数据进行解码以获得第一数据和第二数据。这里,第一数据为对写入地址和写入数据进行绑定后所生成的,第二数据为对第一数据添加校验位后生成的。
步骤S203:对第一数据和第二数据进行纠错解码。
可选地,为了检测写入地址是否发生bit翻转,即检测读取到的数据是否正确,可在获取第一数据和第二数据后,对第一数据和第二数据进行纠错解码。本实施例中,以通过纠错引擎ECC对第一数据和第二数据进行纠错解码,即对第一数据和第二数据进行ECC纠错解码为例。
在一实施方式中,对第一数据和第二数据进行纠错解码,包括:
对第一数据进行纠错检查,获得纠错检查结果;
比较第二数据和纠错检查结果,以检查第一数据是否出错;
响应于第一数据存在1bit出错,对第一数据进行纠错恢复,获得纠错解码后的所述第一数据;
响应于第一数据存在2bit及以上出错,确定纠错解码未通过,并执行异常处理机制。
具体地,存储节点先通过纠错引擎ECC对第一数据进行纠错检查,获得用于表征第一数据的校验信息的纠错检查结果;接着,比较第二数据和纠错检查结果,以检查第一数据是否出错以及对应的出错bit数;接着,响应于第一数据存在1bit出错,则对第一数据进行纠错恢复,获得纠错解码后的第一数据;响应于第一数据存在2bit及以上出错,则确定纠错解码未通过,并执行异常处理机制。
其中,在第一数据存在2bit及以上出错时,由于无法完成纠错恢复,则说明出现了不可恢复的错误,需要进行异常处理,即执行异常处理机制。这里,异常处理机制可包括告知外部异常处理系统需要丢弃第一数据和第二数据等。需要说明的,存储节点具体可以通过设置数据出错标志位来指示数据是否被检查到存在错误,以及纠错标志位来指示数据是否纠错恢复成功。例如,在第一数据出错时,可将对应的数据出错标志位置1,若第一数据存在1bit出错,且对第一数据进行纠错恢复成功,则可将纠错标志位置0;若第一数据存在2bit出错,则可将数据出错标志位和纠错标志位都置1。需要说明的是,通过纠错引擎ECC进行纠错解码的具体过程可参考现有技术,在此不再赘述。如此,通过对读取到的数据进行纠错解码,能够保证读取到的数据的正确性。
步骤S204:响应于纠错解码通过,根据配置的RAM_cfg_mode模式对纠错解码后的第一数据进行解绑定,获得待读取数据和待读取数据的写入地址;RAM_cfg_mode模式用于指示写入地址和待读取数据的绑定方式。
具体地,存储节点响应于对第一数据和第二数据的纠错解码通过,根据配置的用于指示写入地址和待读取数据的绑定方式的RAM_cfg_mode模式对纠错解码后的第一数据进行解绑定,从而获得待读取数据和待读取数据的写入地址。
这里,Ram_cfg_mode模式的具体实现过程可参考前述实施例的说明,在此不再赘述。由于根据配置的Ram_cfg_mode模式可获知如何由写入地址和待读取数据获得第一数据,因此,在已知第一数据、读地址和配置的Ram_cfg_mode模式的情况下,可反向推算出写入地址和待读取数据。可以理解,对于缓存中存储的任一数据,在将该数据存储至所述缓存中时,是根据写入地址进行存储的,而需要从所述缓存中读取该数据时,需要根据读地址从所述缓存中读取该数据,因此,对于同一数据而言,正确读取数据的前提是读地址与写入地址是相同的,对于同一地址而言,写入数据和读取数据也是相同的。也就是说,在写数据时,对应的RAM_cfg_mode模式用于指示待写入地址和待写入数据的绑定方式,而读取数据时,对应的RAM_cfg_mode模式用于指示写入地址和待读取数据的绑定方式。
需要说明的是,若纠错解码通过,说明第一数据和第二数据都是正确的,则可利用读地址作为写入地址对第一数据进行解析。本实施例中以配置的Ram_cfg_mode模式为第一模式进行举例说明,假设纠错解码后的第一数据为“00111100”,读地址为“10110011”,在配置的Ram_cfg_mode模式为第一模式的情况下,由于写入数据时需要将待写入地址的高位和待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和待写入数据的低位进行拼接以生成第一数据,则在读取数据时,可先根据纠错解码后的第一数据“00111100”可获知待读取数据的高位为“1100”,进而根据读地址可看作是写入地址,可获得待读取数据的低位为“1000”,即获得待读取数据为“11001000”。
需要说明的是,针对发送读数据命令的硬件模块的不同,对应配置的RAM_cfg_mode模式可能不相同,具体可以在芯片初始化时为不同硬件模块配置不同的RAM_cfg_mode模式。例如,若写命令是第一主机发送的,则配置的Ram_cfg_mode模式可能为第一模式;若写命令是第二主机发送的,则配置的Ram_cfg_mode模式可能为第三模式等。
步骤S205:确定写入地址和读地址一致时,输出待读取数据。
具体地,存储节点检测写入地址和读地址是否一致,若确定写入地址和读地址一致,说明读地址是正确的,则输出待读取数据;若确定写入地址和读地址不一致,说明读地址是错误的,则可执行异常处理机制,比如输出数据读取错误消息等。
综上,上述实施例提供的数据处理方法中,在从缓存中读取数据时,先对读取获得的第一数据和第二数据进行纠错解码,然后根据配置的RAM_cfg_mode模式对纠错解码后的第一数据进行解绑定,获得待读取数据和待读取数据的写入地址,并在确定写入地址和读地址一致时,输出待读取数据,从而确保读取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,即保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,同时降低系统挂死的风险。
基于前述实施例相同的发明构思,参阅图4,本申请实施例提供了一种数据处理装置,所述装置位于存储节点中,包括:数据写入模块、纠错引擎模块和组合模块;其中,
数据写入模块,被配置为获取写数据命令,所述写数据命令包括待写入地址和待写入数据;以及,根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待写入数据的绑定方式;
纠错引擎模块,被配置为对所述第一数据添加校验位,获得第二数据;
组合模块,被配置为将所述第一数据和所述第二数据进行组合,获得第三数据,并根据所述待写入地址将所述第三数据存储至所述存储节点的缓存中。
综上,上述实施例提供的数据处理装置中,在向缓存中写入数据时,通过配置的RAM_cfg_mode模式对待写入地址和待写入数据进行绑定,以对地址进行保护,并对绑定所生成的数据添加校验位后进行存储,以确保后续读取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,即保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,同时降低系统挂死的风险。
在一实施方式中,数据写入模块,还被配置为:
对所述待写入地址和所述待写入数据进行延时打拍处理。
如此,通过对待写入地址和待写入数据进行延时打拍处理,以满足相应的Timing时序正确性。
在一实施方式中,数据写入模块,被配置为:
响应于配置的Ram_cfg_mode模式为第一模式,将所述待写入地址的高位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第二模式,将所述待写入地址的低位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第三模式,将所述待写入地址的高位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第四模式,将所述待写入地址的低位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据。
如此,通过将待写入地址的高位和/或低位与待写入数据的高位和/或低位进行逻辑运算,再将逻辑运算结果与待写入数据的高位和/或低位进行拼接,可实现对待写入地址和待写入数据进行绑定,进而达到对待写入地址和待写入数据进行保护的目的。
在一实施方式中,数据写入模块,被配置为:
获取配置指令,根据所述配置指令确定配置的所述RAM_cfg_mode模式。
如此,可实现快速配置RAM_cfg_mode模式,操作便捷。
基于前述实施例相同的发明构思,参阅图5,本申请实施例提供了一种数据处理装置,所述装置位于存储节点中,包括:数据读取模块、纠错引擎模块和组合模块;其中,
数据读取模块,被配置为获取读数据命令,所述读数据命令包括读地址;以及,根据所述读地址从所述存储节点的缓存中读取第三数据;
组合模块,被配置为对所述第三数据进行解码,获得第一数据和第二数据;
纠错引擎模块,被配置为对所述第一数据和所述第二数据进行纠错解码;
数据读取模块,还被配置为响应于纠错解码通过,根据配置的RAM_cfg_mode模式对纠错解码后的所述第一数据进行解绑定,获得待读取数据和所述待读取数据的写入地址;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待读取数据的绑定方式;以及,确定所述写入地址和所述读地址一致时,输出所述待读取数据。
在一实施方式中,纠错引擎模块包括纠错检查模块、比较模块和纠错恢复模块;其中,
纠错检查模块,被配置为对第一数据进行纠错检查,获得纠错检查结果;
比较模块,被配置为比较第二数据和纠错解码检查结果,以检查第一数据是否出错;
纠错恢复模块,被配置为响应于第一数据存在1bit出错,对第一数据进行纠错恢复,获得纠错解码后的第一数据;响应于第一数据存在2bit及以上出错,确定纠错解码未通过,并执行异常处理机制。
综上,上述实施例提供的数据处理装置中,在从缓存中读取数据时,先对读取获得的第一数据和第二数据进行纠错解码,然后根据配置的RAM_cfg_mode模式对纠错解码后的第一数据进行解绑定,获得待读取数据和待读取数据的写入地址,并在确定写入地址和读地址一致时,输出待读取数据,从而确保读取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,即保证数据通路上数据和地址的正确性,从而确保读取数据时能获得正确数据,同时降低系统挂死的风险。
基于前述实施例相同的发明构思,下面通过一具体示例对前述实施例进行详细说明,本示例中以所述缓存为RAM模块,且RAM模块包括多个RAM_BLOCK为例。
在IC芯片设计中,RAM模块是其中的一个重要组成部分。在芯片工作中,RAM模块主要是数据通路上数据的存储,在一定程度上确保芯片的工作可靠性,因此芯片内部一般都会对RAM内部的存储数据进行相应的保护处理。继续参阅图1,一硬件模块A(记为Module A)需要读写RAM_wrapper(封装)中的存储数据,会发出读写的地址,以将数据存储至RAM_BLOCK中或者从中读取数据。对进入到RAM_BLOCK之前的数据,一般会采用ECC的读写保护机制,对读写的数据进行1bit检错纠错处理,以保证数据的完整性。但是,对地址却没有进行任何的处理,而是由Module A通过addr_reg寄存器直接连接到RAM_BLOCK中进行地址的索引。为了保证地址(addr)能够正确的到达RAM_BLOCK的接口,这就需要保证在单个时钟周期内完成传输。但是,在后端进行布局布线时,Module A和RAM_wrapper不一定处于同一个层次,导致它们的Timing无法得到收敛的保证,此时可能需要后端的工程师不断调试上述两个模块的位置和形状来满足实际要求,不然会影响到项目的进度。与此同时,在芯片的实际应用场景中,也可能由于外部的恶劣环境,例如电磁干扰,辐射或者高温高压等影响,导致芯片内部的少数寄存器在运行过程中出现bit翻转的情况,如果该类情况出现在RAM模块的addr_reg寄存器中,使得RAM读写的数据发生错误却未被系统识别出,不仅仅会影响芯片的数据传输,可能还会导致芯片内部系统出现挂死的现象。
因此,在现有数据处理方法进行数据读写时会存在以下的缺点:
(1)当RAM中的addr_reg中发生bit位翻转时,无法识别出错误,存在一定的安全隐患。
(2)需要后端工程师进行合理的布局布线,来满足Timing的时序要求。
针对上述问题,本申请实施例提供一种数据处理方法,以对芯片内部的RAM进行保护,不仅能加强对RAM的数据和地址进行保护,而且当获取的信息发生错误时,还能实现1bit纠错,2bit检错的功能,大大减少系统出现挂死的现象,提高了RAM使用的稳定性。
如图6所示,为RAM模块写方向的数据通路示意图,本实施例中以芯片包括WR encDesign模块、ECC enc Design模块和Combine enc Design模块为例,各模块的功能可参考下面的描述。当Module A需要将数据存储至RAM中时,通过配置RAM的待写入地址(RAM_wr_addr)和待写入数据(RAM_wr_data),告知RAM_wrapper数据存储的位置,以完成数据的存储,具体处理过程如下:
1)对于输入的地址和数据信息,首先会进入到WR enc Design模块。WR encDesign模块先对RAM_wr_addr和RAM_wr_data进行延时打拍处理,来满足相应的Timing时序正确性。之后对RAM_wr_addr和RAM_wr_data进行相应的逻辑运算。具体地,通过配置RAM_cfg_mode模式信号,可以选择将RAM_wr_addr和RAM_wr_data进行异或逻辑运算(^),甚至其他自定义的逻辑运算,从而将RAM_wr_addr和RAM_wr_data进行一个“强绑定”,生成新的数据enc_data。其中,RAM_cfg_mode模式信号的配置如表1所示。
在芯片的初始化过程中,首先可通过配置寄存器的方式来配置RAM_cfg_mode模式,告知内部的WR enc Design模块应采用哪种方式绑定地址和数据,主要是使用以下4种模式:
第一模式(标记为00):将地址的高位和数据的低位进行逻辑异或运算,然后将结果和数据的高位拼接为新数据enc_data。
第二模式(标记为01):将地址的低位和数据的高位进行逻辑异或运算,然后将结果和数据的低位拼接为新数据enc_data。
第三模式(标记为10):将地址的高位和数据的高位进行逻辑异或运算,然后将结果和数据的低位拼接为新数据enc_data。
第四模式(标记为11):将地址的低位和数据的低位进行逻辑异或运算,然后将结果和数据的高位拼接为新数据enc_data。
表1
00 | {ram_addr_high^ram_data_low,ram_data_high} |
01 | {ram_addr_low_ram_data_high,ram_data_low} |
10 | {ram_addr_high^ram_data_high,ram_data_low} |
11 | {ram_addr_low^ram_data_low,ram_data_high} |
2)ECC enc Design模块将会对enc_data数据进行处理,给数据添加对应的校验位,产生相应的ecc_data数据,供后级模块进行处理。
3)Combine enc Design模块将enc_data和ecc_data组合成新的数据data_din,写到RAM_BLOCK中特定的位置,自此完成整个数据的存储过程。
如图7所示,为RAM模块读方向的数据通路示意图,本实施例中以芯片包括RD decDesign模块、ECC dec Design模块和Combine dec Design模块为例,各模块的功能可参考下面的描述。当Module A需要读取RAM中的数据时,此时RAM必须保证输出的数据为正确的数据,不能发生任何错误,从而确保RAM中所读取数据的正确性,参阅图8,具体处理过程如下:
1)RD dec Design模块根据RAM_rd_addr的地址,获取RAM中的数据,此时从RAM_BLOCK中会获取到data_dout,它包括两部分数据,需要通过Combine dec Design模块进行相应的解码,输出ecc_data和dec_data。
2)ECC dec Design模块包括ECC CHK模块、Error Detection模块和ErrorCorrection模块,其中,首先ECC CHK模块会对dec_data和ecc_data进行ECC的检查(即纠错检查),以确保该数据的正确性。如果Error Detection模块发现ECC CHK模块输出ecc_err,则会进行判断是1bit出错,还是大于2bit出错。当数据为1bit出错时,将会由Error Correction模块进行纠错恢复,此时会将RAM_data_err置为1,告知外部异常处理系统,该数据出现bit翻转,且进行纠错成功,不会影响后续的数据通路。当数据为2bit出错时,无法完成纠错恢复,此时会将RAM_ecc_err和RAM_data_err同时置为1,告知外部异常处理系统,出现了不可恢复的错误,需要进行异常处理,该数据不可靠,需要丢弃。
3)RD dec Design模块将会把前级输入的dec_data,根据WR方向配置的RAM_cfg_mode模式进行解码的操作,分离出存储的rd_addr和rd_data,RD dec Design模块中的ADDRCHK模块会将rd_addr和RAM_rd_addr进行对比以判断两者是否一致,并在一致时将rd_data作为所读取的数据,否则Error Detection模块将会对RAM_addr_err置1。
综上,上述实施例提供的数据处理方法中,通过将芯片内置RAM的地址和数据进行“强绑定”,然后进行ECC检错纠错机制保护,使得从RAM中获取数据时,无论是地址还是数据发生单bit翻转错误时,都可以恢复成功,以保证数据通路上数据和地址的正确性,减少系统挂死的风险。
本申请实施例还提供一种存储节点,所述存储节点包括:存储器、处理器,其中,所述存储器上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的数据处理方法的步骤。
本申请实施例还提供一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的数据处理方法的步骤。
在本申请实施例提供的存储节点和存储介质的实施例中,可以包含任一上述数据处理方法实施例的全部技术特征,说明书拓展和解释内容与上述方法的各实施例基本相同,在此不再做赘述。
本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如上各种可能的实施方式中所述的数据处理方法。
本申请实施例还提供一种芯片,包括存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得安装有所述芯片的设备执行如上各种可能的实施方式中所述的数据处理方法。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例设备中的单元可以根据实际需要进行合并、划分和删减。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,除了包含所列的那些要素,而且还可包含没有明确列出的其他要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,应用于存储节点,所述存储节点包括缓存,其特征在于,所述方法包括:
获取写数据命令,所述写数据命令包括待写入地址和待写入数据;
根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待写入数据的绑定方式;
对所述第一数据添加校验位,获得第二数据;
将所述第一数据和所述第二数据进行组合,获得第三数据,并根据所述待写入地址将所述第三数据存储至所述缓存中。
2.根据权利要求1所述的数据处理方法,其特征在于,所述根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据之前,包括:
对所述待写入地址和所述待写入数据进行延时打拍处理。
3.根据权利要求1或2所述的数据处理方法,其特征在于,所述根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据,包括以下至少一种:
响应于配置的Ram_cfg_mode模式为第一模式,将所述待写入地址的高位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第二模式,将所述待写入地址的低位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第三模式,将所述待写入地址的高位和所述待写入数据的高位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的低位进行拼接以生成第一数据;
响应于配置的Ram_cfg_mode模式为第四模式,将所述待写入地址的低位和所述待写入数据的低位进行逻辑异或运算,并将逻辑异或运算结果和所述待写入数据的高位进行拼接以生成第一数据。
4.根据权利要求1所述的数据处理方法,其特征在于,所述方法还包括:
获取配置指令,根据所述配置指令确定配置的所述RAM_cfg_mode模式。
5.一种数据处理方法,应用于存储节点,所述存储节点包括缓存,其特征在于,所述方法包括:
获取读数据命令,所述读数据命令包括读地址;
根据所述读地址从所述缓存中读取第三数据,并对所述第三数据进行解码以获得第一数据和第二数据;
对所述第一数据和所述第二数据进行纠错解码;
响应于纠错解码通过,根据配置的RAM_cfg_mode模式对纠错解码后的所述第一数据进行解绑定,获得待读取数据和所述待读取数据的写入地址;所述RAM_cfg_mode模式用于指示所述写入地址和所述待读取数据的绑定方式;
确定所述写入地址和所述读地址一致时,输出所述待读取数据。
6.根据权利要求5所述的数据处理方法,其特征在于,所述对所述第一数据和所述第二数据进行纠错解码,包括:
对所述第一数据进行纠错检查,获得纠错检查结果;
比较所述第二数据和所述纠错解码检查结果,以检查所述第一数据是否出错;
响应于所述第一数据存在1bit出错,对所述第一数据进行纠错恢复,获得纠错解码后的所述第一数据;
响应于所述第一数据存在2bit及以上出错,确定纠错解码未通过,并执行异常处理机制。
7.一种数据处理装置,其特征在于,所述装置位于存储节点中,包括:数据写入模块、纠错引擎模块、组合模块和缓存模块;其中,
数据写入模块,被配置为获取写数据命令,所述写数据命令包括待写入地址和待写入数据;以及,根据配置的RAM_cfg_mode模式对所述待写入地址和所述待写入数据进行绑定,生成第一数据;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待写入数据的绑定方式;
纠错引擎模块,被配置为对所述第一数据添加校验位,获得第二数据;
组合模块,被配置为将所述第一数据和所述第二数据进行组合,获得第三数据,并根据所述待写入地址将所述第三数据存储至所述存储节点的缓存中。
8.一种数据处理装置,其特征在于,所述装置位于存储节点中,包括:数据读取模块、纠错引擎模块和组合模块;其中,
数据读取模块,被配置为获取读数据命令,所述读数据命令包括读地址;以及,根据所述读地址从所述存储节点的缓存中读取第三数据;
组合模块,被配置为对所述第三数据进行解码,获得第一数据和第二数据;
纠错引擎模块,被配置为对所述第一数据和所述第二数据进行纠错解码;
数据读取模块,还被配置为响应于纠错解码通过,根据配置的RAM_cfg_mode模式对纠错解码后的所述第一数据进行解绑定,获得待读取数据和所述待读取数据的写入地址;所述RAM_cfg_mode模式用于指示所述待写入地址和所述待读取数据的绑定方式;以及,确定所述写入地址和所述读地址一致时,输出所述待读取数据。
9.一种存储节点,其特征在于,包括:处理器和存储有计算机程序的存储器,在所述处理器运行所述计算机程序时,实现如权利要求1至6中任一项所述的数据处理方法的步骤。
10.一种存储介质,其特征在于,存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至6中任一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311021231.6A CN117234967A (zh) | 2023-08-14 | 2023-08-14 | 数据处理方法、装置、存储节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311021231.6A CN117234967A (zh) | 2023-08-14 | 2023-08-14 | 数据处理方法、装置、存储节点及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117234967A true CN117234967A (zh) | 2023-12-15 |
Family
ID=89083412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311021231.6A Pending CN117234967A (zh) | 2023-08-14 | 2023-08-14 | 数据处理方法、装置、存储节点及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117234967A (zh) |
-
2023
- 2023-08-14 CN CN202311021231.6A patent/CN117234967A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI482013B (zh) | 修復攜帶式可執行檔之系統、方法及其電腦程式產品 | |
US8261140B2 (en) | Uninitialized memory detection using error correction codes and built-in self test | |
KR101767018B1 (ko) | 비휘발성 메모리에서의 오류 정정 | |
JPS6061837A (ja) | エラ−訂正装置 | |
US10319461B2 (en) | Low-overhead mechanism to detect address faults in ECC-protected memories | |
US10636506B2 (en) | Methods for testing a storage unit and apparatuses using the same | |
US8566672B2 (en) | Selective checkbit modification for error correction | |
US9208027B2 (en) | Address error detection | |
US20130173986A1 (en) | Memory controller, data storage device, and memory controlling method | |
EP2960777B1 (en) | Data protection method, apparatus and device | |
CN106802837B (zh) | 一种更新错误检测和纠正ecc码的方法及装置 | |
US8738989B2 (en) | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page | |
US9329926B1 (en) | Overlapping data integrity for semiconductor devices | |
CN101634938A (zh) | 固态硬盘的数据迁移方法、数据迁移装置及固态硬盘 | |
US11372720B2 (en) | Systems and methods for encoding metadata | |
US11409608B2 (en) | Providing host-based error detection capabilities in a remote execution device | |
CN116932424B (zh) | 一种基于ecc检测的缓存访问方法、装置、介质和设备 | |
JP5292706B2 (ja) | コンピュータシステム | |
CN112068985A (zh) | 带编程指令识别的norflash存储器ecc检纠错方法及系统 | |
CN105023616A (zh) | 一种基于汉明码存取数据的方法及集成随机存取存储器 | |
CN108763148B (zh) | 一种支持上注的容错存储器控制器 | |
US9043655B2 (en) | Apparatus and control method | |
CN117234967A (zh) | 数据处理方法、装置、存储节点及存储介质 | |
CN114333968A (zh) | 存储器的控制方法、存储器控制器及电子装置 | |
GB2455212A (en) | Error detection in processor status register files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |