CN116820830A - 数据写入方法以及处理系统 - Google Patents

数据写入方法以及处理系统 Download PDF

Info

Publication number
CN116820830A
CN116820830A CN202210283000.1A CN202210283000A CN116820830A CN 116820830 A CN116820830 A CN 116820830A CN 202210283000 A CN202210283000 A CN 202210283000A CN 116820830 A CN116820830 A CN 116820830A
Authority
CN
China
Prior art keywords
memory
data
memory space
processing system
redundancy ratio
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
Application number
CN202210283000.1A
Other languages
English (en)
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 CN202210283000.1A priority Critical patent/CN116820830A/zh
Priority to PCT/CN2023/082920 priority patent/WO2023179634A1/zh
Publication of CN116820830A publication Critical patent/CN116820830A/zh
Pending legal-status Critical Current

Links

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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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

本申请提供了一种数据写入方法以及处理系统,用于降低芯片中的纠错码ECC编码电路的复杂度,降低ECC编码电路的部署成本。本申请实施例方法应用于处理系统,该处理系统包括多种类型的内存;方法包括:获取第一待写入数据,所述第一待写入数据为待写入所述处理系统中的第一内存的数据;根据所述第一内存对应的第一冗余比确定第一码字长度;根据所述第一码字长度对所述第一待写入数据进行ECC编码,得到第一冗余数据,所述第一冗余比等于所述第一待写入数据包括的数据比特与所述第一冗余数据包括的冗余比特之间的比值;获取所述第一内存的内存类型;根据所述内存类型将所述第一待写入数据和所述第一冗余数据写入所述第一内存。

Description

数据写入方法以及处理系统
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据写入方法以及处理系统。
背景技术
在计算机领域,内存数据的可靠性对整个系统的性能至关重要,特别是系统核心数据或重要的应用程序数据,其数据的可靠性直接影响整个系统的运行。为此,数据纠错技术便应运而生,通过采用纠错技术通过预定的纠错算法判定当前的数据是否为正确数据,而确定当前读取的数据的可靠性。
目前一般会采用纠错码(error correction code,ECC)技术实现数据纠错。然而,不同厂家对不同内存颗粒以及不同内存类型采用的ECC空间和ECC算法都不一样,因此对需要部署每种内存颗粒和内存类型对应的ECC编码电路。而在“芯片荒”的背景下,无疑是一种挑战。因此,如何实现对不同内存颗粒以及不同内存类型的数据进行ECC编码,是值得考虑的问题。
发明内容
本申请提供了一种数据写入方法以及处理系统,用于降低芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本。
本申请第一方面提供一种数据写入方法,该方法应用于处理系统,该处理系统包括多种类型的内存;方法包括:
获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据;根据第一内存对应的第一冗余比确定第一码字长度;根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值;获取第一内存的内存类型,根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。
由上述技术方案可知,处理系统可以根据第一内存对应的第一冗余比确定第一码字长度,并通过第一码字长度对第一待写入数据进行ECC编码。处理系统通过该第一内存对应的第一冗余比实现对第一待写入数据的ECC编码,无需结合第一内存的内存类型进行ECC编码。处理系统中配置支持第一冗余比的ECC编码电路,该支持第一冗余比的ECC编码电路适用于对第一冗余比的内存的数据进行ECC编码。因此,处理系统无需针对每种内存类型都部署相应的ECC编码电路,降低了芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本。
一种可能的实现方式中,根据第一内存对应的第一冗余比确定第一码字长度之前,方法还包括:确定第一内存对应的第一冗余比。
在该实现方式中,处理系统可以先确定该第一内存对应的第一冗余比,以便于通过该第一内存对应的第一冗余比实现对第一待写入数据的ECC编码。
另一种可能的实现方式中,确定该第一内存对应的第一冗余比,包括:根据第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比。
在该实施方式中提供处理系统确定第一冗余比的一种方式。处理系统可以结合第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比。从而便于处理系统选择合适的ECC编码电路对第一待写入数据进行编码。处理系统无需针对每种内存类型都部署相应的ECC编码电路,降低了芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本。
另一种可能的实现方式中,根据第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比,包括:将数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。
在该实现方式中,处理系统将数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。从而实现处理系统结合第一内存中的内存空间的用途确定第一冗余比,有利于处理系统采用合适的冗余比对第一待写入数据进行ECC编码。有利于充分利用第一内存的ECC内存空间,实现当数据出错时通过ECC比特对数据进行纠正。提升系统的稳定性。
另一种可能的实现方式中,确定第一内存对应的第一冗余比,包括:根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比。
在该实现方式中,提供了处理系统确定第一冗余比的另一种方式。在第一内存中存在需要隔离的内存空间的情况下,处理系统应当结合该第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比。从而结合第一内存的具体情况合适利用第一内存的可用作ECC内存空间的内存空间。实现当数据出错时通过ECC比特对数据进行纠正。提升系统的稳定性。
另一种可能的实现方式中,根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比,包括:
确定第i中间冗余比,第i中间冗余比对应第i降级内存空间,第i中间冗余比等于数据内存空间的大小与第一数值之间的比值,第一数值等于ECC内存空间的大小减去第i降级内存空间的大小,i为大于或等于1的整数;判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小;若是,则将第i中间冗余比作为第一冗余比。
在该实现方式中,提供了处理系统根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比的具体实现方式。处理系统可以先初步为第一内存确定第i中间冗余比。然后,处理系统再判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小。也就是处理系统对第一内存进行降级处理,也就是减少第一内存中作为ECC内存空间的内存空间。然后,处理系统判断是否减少的ECC内存空间的大小是否大于或等于隔离内存空间的大小。处理系统一步步降低第一内存对应的冗余比,有利于为第一内存选择合适的冗余比。并且有利于选择处理系统支持的冗余比对第一待写入数据进行ECC编码,从而进一步降低芯片中ECC编码电路的复杂度。
另一种可能的实现方式中,方法还包括:输出第i个警告信息,第i个警告信息用于指示第一内存出现隔离内存空间。
在该实现方式中,处理系统在对第一内存进行一次降级处理,处理系统可以输出相应的警告信息。从而便于提醒用户该第一内存出现隔离内存空间。有利于用户及时更换合适的内存,避免系统崩溃或宕机时用户才发现问题。
另一种可能的实现方式,若该第i中间冗余比等于0,该第i个警告信息还用于指示更换该第一内存。
在该实现方式中,当第i中间冗余比等于0,第i个警告信息还用于指示更换第一内存。在第i中间冗余比等于0时,表示该第一内存中可用作ECC内存的空间已经没有,也就是第一内存需要隔离的内存空间大于或等于第一内存中原本用作ECC内存的空间。处理系统可以通过该第i个警告信息提醒用户该第一内存已经没有ECC功能,需要及时更换第一内存。避免无法对数据进行ECC编码,造成系统不稳定的问题。
另一种可能的实现方式,若隔离内存空间的大小等于第i降级内存空间的大小,方法还包括:确定第i+1中间冗余比,第i+1中间冗余比对应第i+1降级内存空间,第i+1中间冗余比等于数据内存空间的大小与第二数值之间的比值,第二数值等于ECC内存空间的大小减去第i+1降级内存空间的大小;判断隔离内存空间的大小是否小于或等于第i+1降级内存空间的大小;若是,则将第i+1中间冗余比作为第一冗余比。
在该实现方式中,如果隔离内存空间的大小等于第i降级内存空间的大小,处理系统可以对第一内存再进一步作降级处理,以便于处理系统采用合适的冗余比对第一待写入数据进行ECC编码。
另一种可能的实现方式,方法还包括:输出第i+1个警告信息,第i+1个警告信息用于指示第一内存出现隔离内存空间。
在该实施方式中,处理系统对第一内存进行一次降级处理,处理系统可以输出相应的警告信息。从而有利于提醒用户该第一内存出现隔离内存空间,应当及时跟进该第一内存的情况,必要时更换该第一内存,以保障系统的稳定。
另一种可能的实现方式,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
在该实现方式中,处理系统对第一内存进行降级的过程中,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。从而有利于处理系统合理的降低第一内存中作为ECC内存的空间。
另一种可能的实现方式,确定第一内存对应的第一冗余比,包括:读取记录的第一内存对应的第一冗余比。
在该实现方式中,该处理系统可以记录该第一内存对应的冗余比,从而便于读取该第一冗余比。
另一种可能的实现方式中,根据内存类型将第一待写入数据和第一冗余数据写入第一内存,包括:
将第一冗余数据中的冗余比特连接到第一待写入数据包括的数据比特之后,得到第一比特序列;复制第一比特序列中待写入隔离内存空间的数据比特;将待写入隔离内存空间的数据比特连接到第一比特序列中最后一个比特之后,得到第二比特序列;按照第二比特序列的比特顺序将第二比特序列写入第一内存中。
在该实现方式中,对于存在隔离内存空间的场景,处理系统应当将第一待写入数据中原本待存储到隔离内存空间的比特存储到对应的替换内存空间,从而成功避开出现故障的隔离内存空间。
本申请实施例第二方面提供一种处理系统,该处理系统包括多种类型的内存;该处理系统包括:
获取单元,用于获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据;
编码单元,用于根据第一内存对应的第一冗余比确定第一码字长度;根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值;
获取单元,还用于获取第一内存的内存类型;
写入单元,用于根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。
一种可能的实现方式中,处理系统还包括确定单元;
确定单元,用于确定第一内存对应的第一冗余比。
另一种可能的实现方式中,确定单元具体用于:
根据第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比。
另一种可能的实现方式中,确定单元具体用于:
将数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。
另一种可能的实现方式中,确定单元具体用于:
根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比。
另一种可能的实现方式中,确定单元具体用于:
确定第i中间冗余比,第i中间冗余比对应第i降级内存空间,第i中间冗余比等于数据内存空间的大小与第一数值之间的比值,第一数值等于ECC内存空间的大小减去第i降级内存空间的大小,i为大于或等于1的整数;判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小;若是,则将第i中间冗余比作为第一冗余比。
另一种可能的实现方式中,处理系统还包括输出单元;
输出单元,用于输出第i个警告信息,第i个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,若该第i中间冗余比等于0,该第i个警告信息还用于指示更换该第一内存。
另一种可能的实现方式,若隔离内存空间的大小等于第i降级内存空间的大小,确定单元还用于:
确定第i+1中间冗余比,第i+1中间冗余比对应第i+1降级内存空间,第i+1中间冗余比等于数据内存空间的大小与第二数值之间的比值,第二数值等于ECC内存空间的大小减去第i+1降级内存空间的大小;
判断隔离内存空间的大小是否小于或等于第i+1降级内存空间的大小;若是,则将第i+1中间冗余比作为第一冗余比。
另一种可能的实现方式,输出单元还用于:
输出第i+1个警告信息,第i+1个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
另一种可能的实现方式,确定单元还用于:
读取记录的第一内存对应的第一冗余比。
另一种可能的实现方式中,写入单元具体用于:
将第一冗余数据中的冗余比特连接到第一待写入数据包括的数据比特之后,得到第一比特序列;复制第一比特序列中待写入隔离内存空间的数据比特;将待写入隔离内存空间的数据比特连接到第一比特序列中最后一个比特之后,得到第二比特序列;按照第二比特序列的比特顺序将第二比特序列写入第一内存中。
本申请第三方面提供一种处理系统,该处理系统包括多种类型的内存和内存控制器;内存控制器用于执行以下方案:
获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据;根据第一内存对应的第一冗余比确定第一码字长度;根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值;获取第一内存的内存类型,根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。
一种可能的实现方式中,内存控制器具体用于:
确定第一内存对应的第一冗余比。
另一种可能的实现方式中,内存控制器具体用于:
根据第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比。
另一种可能的实现方式中,内存控制器具体用于:
将数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。
另一种可能的实现方式中,内存控制器具体用于:
根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比。
另一种可能的实现方式中,内存控制器具体用于:
确定第i中间冗余比,第i中间冗余比对应第i降级内存空间,第i中间冗余比等于数据内存空间的大小与第一数值之间的比值,第一数值等于ECC内存空间的大小减去第i降级内存空间的大小,i为大于或等于1的整数;判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小;若是,则将第i中间冗余比作为第一冗余比。
另一种可能的实现方式中,内存控制器还用于:
输出第i个警告信息,第i个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,若该第i中间冗余比等于0,该第i个警告信息还用于指示更换该第一内存。
另一种可能的实现方式,若隔离内存空间的大小等于第i降级内存空间的大小,内存控制器还用于:
确定第i+1中间冗余比,第i+1中间冗余比对应第i+1降级内存空间,第i+1中间冗余比等于数据内存空间的大小与第二数值之间的比值,第二数值等于ECC内存空间的大小减去第i+1降级内存空间的大小;判断隔离内存空间的大小是否小于或等于第i+1降级内存空间的大小;若是,则将第i+1中间冗余比作为第一冗余比。
另一种可能的实现方式,内存控制器还用于:
输出第i+1个警告信息,第i+1个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
另一种可能的实现方式,内存控制器具体用于:
读取记录的第一内存对应的第一冗余比。
另一种可能的实现方式中,内存控制器具体用于:
将第一冗余数据中的冗余比特连接到第一待写入数据包括的数据比特之后,得到第一比特序列;复制第一比特序列中待写入隔离内存空间的数据比特;将待写入隔离内存空间的数据比特连接到第一比特序列中最后一个比特之后,得到第二比特序列;按照第二比特序列的比特顺序将第二比特序列写入第一内存中。
本申请第五方面提供一种处理系统,处理系统包括处理器,
处理器、存储器以及输入输出接口,该处理器、该存储器与该输入输出接口连接;该存储器,用于存储程序代码;该处理器调用该存储器中的程序代码用于执行如第一方面所示的方法。
本申请实施例第六方面提供一种存储介质,包括计算机指令,当其在计算机上运行时,用于执行上述第一方面中处理系统所设计的程序。
本申请实施例第七方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如本申请第一方面任一可选实施方式中所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
经由上述技术方案可知,本申请提供一种数据写入方法,该方法应用于处理系统,该处理系统包括多种类型的内存;获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据。根据第一内存对应的第一冗余比确定第一码字长度,再根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值。获取第一内存的内存类型,根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。由此可知,本申请的技术方案中,处理系统可以根据第一内存对应的第一冗余比确定第一码字长度,并通过第一码字长度对第一待写入数据进行ECC编码。也就是处理系统通过获知该第一内存对应的第一冗余比实现对第一待写入数据的ECC编码,无需结合第一内存的内存类型进行ECC编码。处理系统中配置支持第一冗余比的ECC编码电路,该支持第一冗余比的ECC编码电路适用于对第一冗余比的内存的数据进行ECC编码。处理系统无需针对每种内存类型都部署相应的ECC编码电路,从而降低芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本。
附图说明
图1是本申请实施例提供的一种内存的示意图;
图2为本申请实施例处理系统的一个示意图;
图3为本申请实施例数据写入方法的一个实施例示意图;
图4为本申请实施例数据写入方法的一个过程示意图;
图5A为本申请实施例第一内存的一个示意图;
图5B为本申请实施例第一内存的另一个示意图;
图5C为本申请实施例第一内存的另一个示意图;
图5D为本申请实施例第一内存的另一个示意图;
图5E为本申请实施例第一内存的另一个示意图;
图6A为本申请实施例第一内存的另一个示意图;
图6B为本申请实施例第一内存的另一个示意图;
图7A为本申请实施例第一内存的另一个示意图;
图7B为本申请实施例第一内存的另一个示意图;
图8为本申请实施例数据写入方法的另一个实施例示意图;
图9为本申请实施例第一内存的另一个示意图;
图10为本申请实施例处理系统的一个结构示意图;
图11为本申请实施例处理系统的另一个结构示意图。
具体实施方式
本申请实施例提供了一种数据写入方法以及处理系统,用于降低芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c;a和b;a和c;b和c;或a和b和c。其中a,b,c可以是单个,也可以是多个。
下面介绍本申请涉及的一些技术术语。
缓存行(cache line),是指处理器中的缓存模块(cache unit)缓存一笔数据的大小。根据处理器的不同,cache line的大小是不一样的。当前主流的电脑和服务器中,cacheline的大小为64字节(Byte)。一般来说,处理器内部搬运可被缓存的数据也采用同样大小64Byte。
内存颗粒(device),是内存条核心的部件,是内存的存储介质,可以直接关系到内存的性能。请参见图1,图1是本申请实施例提供的一种内存的示意图。从图1可以看出,内存100是由一个或多个内存颗粒组成的,根据内存颗粒中存放内容不同,内存颗粒又分为数据颗粒102和ECC颗粒101,内存颗粒的规格通常有X4 device、X8 device和X16device。X4、X8和X16分别代表每个内存颗粒对外的数据线路是4DQ、8DQ和16DQ,一个DQ对应物理上的双列直插式存储模块(dual-Inline-memory-modules,DIMM)上的一个管脚(pin)。DQ可以翻译为数据传输信号(data strobe signals)
本申请实施应用于处理系统,该处理系统是由多个硬件和软件组成的集合。该处理系统可以为存储系统,该处理系统可以集成在节点设备或服务器中,具体本申请不做限定。
下面结合图2介绍本申请提供的处理系统的一种可能的示意图。
图2为本申请实施例处理系统的一个示意图。请参阅图2,处理系统包括中央处理器和多种类型的内存。如图2所示,中央处理器(central processing unit,CPU)中集成有内存控制器,中央处理器通过内存控制器与第一内存、第二内存和第三内存连接。其中,第一内存、第二内存和第三内存之间的内存类型不同。本申请实施例提供的数据写入方法可以由内存控制器来执行。
上述图2所示的处理系统仅仅是为了介绍本申请实施例所应用的系统架构,并不对本申请实施例所应用的系统架构进行限定。例如,本申请实施例的数据写入方法同样适用于芯片系统,在芯片系统中进行数据写入的过程。
需要说明的是,上述图2所示的处理系统仅仅是一种示例。实际应用中,该处理系统可以包括至少两个类型的内存,该内存控制器连接该至少两个类型的内存。
需要说明的是,上述图2所示的处理系统仅仅是一种示例。实际应用中,该处理系统还可以包括更多的内存控制器和更多的内存,或更多的中央处理器和更多的内存,具体本申请不做限定。
为便于理解,下面结合具体实施例介绍本申请的技术方案。
图3为本申请实施例数据写入方法的一个实施例示意图。请参阅图3,该方法应用于处理系统,该处理系统包括多种类型的内存。方法包括:
301、处理系统获取第一待写入数据。
其中,该处理系统包括多种类型的内存。该第一待写入数据是待写入第一处理系统包括的第一内存的数据。
例如,如图4所示,该处理系统缓存该第一待写入数据,该第一待写入数据的大小为64字节(Byte),也就是512比特。
该处理系统包括多种类型的内存。例如,该处理系统包括双数据速率同步动态随机存取内存5(double data rate synchronous dynamic random-access memory,DDR5)、DDR4、高带宽存储器(high bandwidth memory,HBM)、低功耗双倍数据速率同步动态随机存取内存(low power double data rate synchronous dynamic random-access memory,LPDDR)、或非联合电子设备工程委员会(joint electron device engineering council,JEDEC)标准的内存等。
302、处理系统根据第一内存对应的第一冗余比确定第一码字长度。
具体的,处理系统可以确定该第一内存对应的第一冗余比。然后,处理系统根据该第一内存对应的第一冗余比确定第一码字长度。
可选的,图3所示的实施例还包括步骤302a。步骤302a可以在步骤302之前执行。
302a、处理系统确定第一内存对应的第一冗余比。
下面介绍步骤302a的一些可能的实现方式。
实现方式1:处理系统根据第一内存的数据内存空间和ECC内存空间确定第一冗余比。
具体的,处理系统将第一内存的数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。
例如,如图5A所示,第一内存包括16个数据内存颗粒和4个ECC内存颗粒,因此处理系统可以确定该第一内存对应的第一冗余比为4:1。
例如,如图5B所示,第一内存包括16个数据内存颗粒和2个ECC内存颗粒,因此处理系统可以确定该第一内存对应的第一冗余比为8:2。
例如,如图5C所示,第一内存包括16个数据内存颗粒和1个ECC内存颗粒,因此处理系统可以确定该第一内存对应的第一冗余比为16:1。
例如,如图5D所示,第一内存包括8个数据内存颗粒和2个ECC内存颗粒,因此处理系统可以确定该第一内存对应的第一冗余比为4:1。
例如,如图5E所示,第一内存包括8个数据内存颗粒和1个ECC内存颗粒,因此处理系统可以确定该第一内存对应的第一冗余比为8:1。
需要说明的是,上述示例是以数据内存空间与ECC内存空间分别位于不同的内存颗粒为例介绍本申请的技术方案。实际应用中,数据内存空间与ECC内存空间可以位于相同的内存颗粒内,具体本申请不做限定。为了方便介绍本申请的技术方案,后文以数据内存空间与ECC内存空间分别位于不同的内存颗粒为例介绍本申请的技术方案。
实现方式2:处理系统根据第一内存的数据内存空间、ECC内存空间和隔离内存空间确定第一冗余比。
处理系统确定第一内存中的隔离内存空间。处理系统根据第一内存的数据内存空间、ECC内存空间和隔离内存空间确定第一冗余比。关于实现方式2中的具体确定过程可以参阅后文图8所示的实施例中的相关介绍。在实现方式2中,第一内存对应的第一冗余比可以理解为是第一内存对应的降级后的冗余比。
下面介绍处理系统确定第一内存中的隔离内存空间的一些可能的实现方式。
处理系统根据历史读取数据过程中出现可纠正错误(correctable error,CE)的次数确定第一内存中的隔离内存空间。或者,处理系统根据其他判定方式确定该第一内存中某些内存空间出现硬失效,则内存控制器可以将这些内存空间作为隔离内存空间。
例如,如图6A所示,处理系统从数据内存颗粒3读取数据。在历史的数据读取记录中,数据内存颗粒3出现CE的次数达到一定阈值,处理系统可以认为该数据内存颗粒3需要隔离。也就是数据内存颗粒3为隔离内存空间。处理系统可以记录第一内存中的隔离内存空间的位置。对于图6A所示的场景,处理系统可以确定该第一内存对应的第一冗余比为16:3。
例如,如图7A所示,处理系统从数据内存颗粒3和数据内存颗粒4读取数据。在历史的数据读取记录中,数据内存颗粒3和数据内存颗粒4中出现CE的次数均达到一定阈值,处理系统可以认为该数据内存颗粒3和数据内存颗粒4需要隔离。也就是数据内存颗粒3和数据内存颗粒4为隔离内存空间。处理系统可以记录第一内存中的隔离内存空间的位置。对于图7A所示的场景,处理系统可以确定该第一内存对应的第一冗余比为8:1。
实现方式3:处理系统读取记录的第一内存对应的第一冗余比。
处理系统从存储第一冗余比的内存地址中读取该第一内存对应的第一冗余比;或者,处理系统从寄存器中读取该第一内存对应的第一冗余比。
可选的,该第一内存对应的第一冗余比可以为第一内存中数据内存空间的大小与ECC内存空间的大小之间的比值。或者,该第一内存对应的第一冗余比是第一内存对应的降级后的冗余比。具体请参阅前述实现方式2中的相关介绍。
下面结合具体示例介绍处理系统根据第一内存对应的第一冗余比确定第一码字长度的过程。
例如,如图5A所示,第一内存对应的第一冗余比为4:1。结合上述图4可知,内存控制器可以选择冗余比为4:1的ECC编码电路,并将第一待写入数据输入该冗余比为4:1的ECC编码电路。以8bursts(8拍)数据组成一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。因此可知,内存控制器可以确定第一码字长度为:20*4*8=640比特。也就是一个码字中包括512个数据比特和128个ECC比特。
例如,如图5B所示,第一内存对应的第一冗余比为8:1。结合上述图4可知,内存控制器可以选择冗余比为8:1的ECC编码电路,并将第一待写入数据输入该冗余比为8:1的ECC编码电路。以8burst为一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。因此可知,内存控制器可以确定第一码字长度为:18*4*8=576比特。也就是一个码字中包括512个数据比特和64个ECC比特。
例如,如图5C所示,第一内存对应的第一冗余比为16:1。结合上述图4可知,内存控制器可以选择冗余比为16:1的ECC编码电路,并将第一待写入数据输入该冗余比为8:1的ECC编码电路。以8burst为一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。因此可知,内存控制器可以确定第一码字长度为:17*4*8=544比特。也就是一个码字中包括512个数据比特和32个ECC比特。
例如,如图5D所示,第一内存对应的第一冗余比为4:1。结合上述图4可知,内存控制器可以选择冗余比为4:1的ECC编码电路,并将第一待写入数据输入该冗余比为4:1的ECC编码电路。以16burst为一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。因此可知,内存控制器可以确定第一码字长度为:第一码字长度为:10*4*16=640比特。也就是一个码字中包括512个数据比特和128个ECC比特。
例如,如图5E所示,第一内存对应的第一冗余比为8:1。结合上述图4可知,内存控制器可以选择冗余比为8:1的ECC编码电路,并将第一待写入数据输入该冗余比为8:1的ECC编码电路。以16burst为一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。因此可知,内存控制器可以确定第一码字长度为:第一码字长度为:9*4*16=576比特。也就是一个码字中包括512个数据比特和64个ECC比特。
需要说明的是,上述示例中处理系统采用的码字长度都为640比特,实际应用中,码字长度也可以采用别的长度。例如,码字长度为320比特,处理系统可以采用多个码字进行编码,具体本申请不做限定。
例如,如图6A所示,第一内存对应的第一冗余比为16:3。结合上述图4可知,内存控制器可以选择冗余比为16:3的ECC编码电路,并将第一待写入数据输入该冗余比为16:3的ECC编码电路。以8burst为一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。由于数据内存颗粒3需要隔离,因此内存控制器可以确定第一码字长度为:19*4*8=608比特。也就是一个码字中包括512个数据比特和96个ECC比特。
例如,如图7A所示,第一内存对应的第一冗余比为8:1。结合上述图4可知,内存控制器可以选择冗余比为8:1的ECC编码电路,并将第一待写入数据输入该冗余比为8:1的ECC编码电路。以8burst为一个cacheline,第一内存的每个内存颗粒为X4内存颗粒。由于数据内存颗粒3和数据内存颗粒4需要隔离,因此内存控制器可以确定第一码字长度为:18*4*8=576比特。也就是一个码字中包括512个数据比特和64个ECC比特。
303、处理系统根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据。
可选的,该处理系统可以采用里德-所罗门码(reed-solomon,RS)编码算法对第一待写入数据进行ECC编码。
例如,如图5A所示,第一码字长度为640比特,第一待写入数据包括512比特。处理系统根据第一码字长度对第一待写入数据进行ECC编码,第一冗余数据。该第一冗余数据包括128个ECC比特。
例如,如图5B所示,第一码字长度为576比特,第一待写入数据包括512比特。处理系统根据第一码字长度对第一待写入数据进行ECC编码,第一冗余数据。该第一冗余数据包括64个ECC比特。
例如,如图6A所示,第一码字长度为608比特,第一待写入数据包括512比特。处理系统根据第一码字长度对第一待写入数据进行ECC编码,第一冗余数据。该第一冗余数据包括96个ECC比特。
例如,如图7A所示,第一码字长度为576比特,第一待写入数据包括512比特。处理系统根据第一码字长度对第一待写入数据进行ECC编码,第一冗余数据。该第一冗余数据包括64个ECC比特。
需要说明的是,上述示例中处理系统采用一个码字进行编码,实际应用中,处理系统可以采用多个码字进行编码。那么处理系统可以结合码字的数量确定该每个码字的长度。然后,处理系统根据码字的长度和码字的数目对第一待写入数据进行ECC编码。
由此可知,处理系统通过该第一内存对应的第一冗余比实现对第一待写入数据的ECC编码,无需结合第一内存的内存类型进行ECC编码。处理系统中配置支持第一冗余比的ECC编码电路,该支持第一冗余比的ECC编码电路适用于对第一冗余比的内存的数据进行ECC编码。处理系统无需针对每种内存类型都部署相应的ECC编码电路。从而降低了芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本,提升了方案的实用性。
也就是说本申请的处理系统可以支持各种内存类型,不用为每种内存类型定制相应的芯片。本申请的处理系统可以非常自然地支持各种冗余比地内存介质。例如,DDR5 8+2、DDR5 8+1、DDR4 16+2,DDR4 16+1,HBM 16+2,HBM 16+1,以及非标准的DDR4 16+3,DDR416+4、未来的存储介质(如存储级内存(storage class memory,SCM),相变存储器(phasechange memory,PCM),固态硬盘(solid state driver,SSD),硬式磁盘驱动器(hard diskdriver,HDD)等。
304、处理系统获取第一内存的内存类型。
可选的,第一内存的内存类型包括:DDR5、DDR4、HBM、LPDDR、或非JEDEC标准的内存等。
具体的,该处理系统包括多种类型的内存,从而支持对多种类型的内存的数据写入。例如,如图4所示,该处理系统支持DDR5、DDR4和HBM这三种类型的内存的数据写入。
305、处理系统根据该内存类型将第一待写入数据和第一冗余数据写入该第一内存。
该处理系统包括多种类型的内存,每种类型的内存的数据写入方式不同。该处理系统通过前述步骤301至步骤303的过程实现对第一待写入数据的ECC编码,得到第一冗余数据。处理系统将第一待写入数据和第一冗余数据存放于缓存中。处理系统可以读取第一内存的内存类型。处理系统按照该内存类型的数据写入方式将第一待写入数据和第一冗余数据写入该第一内存。
例如,第一内存为DDR5 8+2x4 DIMM,处理系统把第一内存的640比特数据传到发送缓冲区,并组织为40列*16行的一个逻辑数据区(即对应于40DQ*16bursts传输所需的数据缓冲区)。然后处理系统按照DDR5 JEDEC标准连续一次性写到第一内存中。
例如,第一内存为DDR5 8+1x4 DIMM,处理系统把第一内存的576比特数据传到发送缓冲区,并组织为36列*16行的一个逻辑数据区(即对应于36DQ*16bursts传输所需的数据缓冲区),然后处理系统按照DDR5 JEDEC标准连续一次性写到第一内存中。
例如,第一内存为DDR4 16+2x4 DIMM,处理系统把第一内存的576比特数据传到发送缓冲区,并组织为72列*8行的一个逻辑数据区(即对应于72DQ*8bursts传输所需的数据缓冲区),然后处理系统按照DDR4 JEDEC标准连续一次性写到第一内存中。
一种可能的实现方式,该第一内存对应的第一冗余比是第一内存的数据内存空间的大小与ECC内存空间的大小之间的比值,则处理系统按照传统的数据写入过程将第一待写入数据和第一冗余数据写入该第一内存。
例如,如图5A所示,处理系统将第一待写入数据写入该第一内存中的数据内存颗粒中,将第一冗余数据写入该第一内存中的ECC内存颗粒。
另一种可能的实现方式,该第一内存对应的第一冗余比是第一内存对应的降级后的冗余比,关于第一内存对应的降级后的冗余比可以参阅前述的介绍。在该实现方式下,上述步骤305具体包括步骤305a至步骤305d。
305a、处理系统将第一冗余数据中的冗余比特连接到第一待写入数据包括的数据比特之后,得到第一比特序列。
例如,第一待写入数据包括512比特。如图6A所示,处理系统通过上述步骤301至步骤303的编码过程得到第一冗余数据。该第一冗余数据包括96个ECC比特。处理系统将该第一冗余数据包括的96个ECC比特连接到该第一待写入数据包括的512比特之后,得到第一比特序列。
例如,第一待写入数据包括512比特。如图7A所示,处理系统通过上述步骤301至步骤303的编码过程得到第一冗余数据。该第一冗余数据包括64个ECC比特。处理系统将该第一冗余数据包括的64个ECC比特连接到该第一待写入数据包括的512比特之后,得到第一比特序列。
305b、处理系统复制第一比特序列中待写入隔离内存空间的数据比特。
例如,如图6A所示,数据内存颗粒3为隔离内存空间。第一待写入数据包括512比特,该512比特中第97个比特至第128个比特是待存储到数据内存颗粒3的数据比特。因此,处理系统可以复制该512比特中第97个比特至第128个比特。
例如,如图7A所示,数据内存颗粒3和数据内存颗粒4为隔离内存空间。第一待写入数据包括512比特,该512比特中第97个比特至第128个比特是待存储到数据内存颗粒3的数据比特,第129个比特至第160个比特是待存储到数据内存颗粒4的数据比特。因此,处理系统可以复制该512比特中第97个比特至第128个比特以及第129个比特至第160个比特。
305c、处理系统将待写入隔离内存空间的数据比特插入第一比特序列中最后一个比特之后,得到第二比特序列;
例如,如图6A所示,处理系统将复制得到的该512比特中第97个比特至第128个比特插入该第一比特序列中最后一个比特之后,得到第二比特序列。
例如,如图7A所示,处理系统将复制得到的该512比特中第97个比特至第160个比特插入第一比特序列中最后一个比特之后,得到第二比特序列。
305d、处理系统按照第二比特序列的比特顺序将第二比特序列写入第一内存中。
例如,如图6B所示,处理系统通过上述步骤305c至步骤305d的操作实现将第一待写入数据中待写入数据内存颗粒3的数据比特存储到原本作为ECC内存空间的ECC内存颗粒19上。也就是该ECC内存颗粒19作为数据内存颗粒,用于存储第一待写入数据中待写入数据内存颗粒3的数据。也就是处理系统将第一待写入数据中第97个比特至第128个比特存储到该原本作为ECC内存空间的ECC内存颗粒19上。
例如,如图7B所示,处理系统通过上述步骤305c至步骤305d的操作实现将第一待写入数据中待写入数据内存颗粒3的数据比特存储到原本作为ECC内存空间的ECC内存颗粒18上,将数据内存颗粒4的数据比特存储到原本作为ECC内存空间的ECC内存颗粒19上。也就是该ECC内存颗粒18作为数据内存颗粒,用于存储第一待写入数据中待写入数据内存颗粒3的数据。也就是处理系统将第一待写入数据中第97个比特至第128个比特存储到该原本作为ECC内存空间的ECC内存颗粒18上。ECC内存颗粒19作为数据内存颗粒,用于存储第一待写入数据中待写入数据内存颗粒4的数据。也就是处理系统将该第一待写入数据中第129个比特至第160个比特存储到该原本作为ECC内存空间的ECC内存颗粒19上。
需要说明的是,在处理系统对第一内存进行降级处理之前,处理系统应当将原本存储于第一内存中的数据也应当全部重新读取出来,并对第一内存中隔离内存空间的数据进行检错和纠错,得到第一内存中的全部正确的数据比特。然后,处理系统对这些数据比特进行ECC编码,具体编码过程与前述步骤301至步骤303的过程类似。处理系统再按照类似类似上述步骤305a至步骤305d的过程将这些数据比特以及编码得到的冗余比特写入第一内存。从而避开隔离内存空间,以便于后续读取数据。
在第一内存读取数据的过程中,处理系统从该第一内存中除隔离内存空间之外的其他内存空间读取数据。然后,处理系统按照上述数据写入的过程的逆过程对数据进行ECC解码。
本申请实施例中,获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据。根据第一内存对应的第一冗余比确定第一码字长度,再根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值。获取第一内存的内存类型,根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。由此可知,本申请的技术方案中,处理系统可以根据第一内存对应的第一冗余比确定第一码字长度,并通过第一码字长度对第一待写入数据进行ECC编码。也就是处理系统通过获知该第一内存对应的第一冗余比实现对第一待写入数据的ECC编码,无需结合第一内存的内存类型进行ECC编码。处理系统中配置支持第一冗余比的ECC编码电路,该支持第一冗余比的ECC编码电路适用于对第一冗余比的内存的数据进行ECC编码。处理系统无需针对每种内存类型都部署相应的ECC编码电路。从而降低芯片中的ECC编码电路的复杂度,降低ECC编码电路的部署成本。
下面结合图8所示的实施例介绍处理系统根据第一内存的数据内存空间、ECC内存空间和隔离内存空间确定第一冗余比的过程。
图8为本申请实施例数据写入方法的另一个实施例示意图。请参阅图8,方法包括:
801、确定第i中间冗余比。
其中,i为大于或等于1的整数。第i中间冗余比对应第i降级内存空间,第i降级内存空间的大小小于第一内存中ECC内存空间的大小。第i中间冗余比等于第一内存中数据内存空间的大小与第一数值之间的比值,第一数值等于第一内存中的ECC内存空间的大小减去第i降级内存空间的大小。
例如,i等于1。处理系统确定该第一内存存在隔离内存空间,处理系统可以确定第一中间冗余比。可以理解的是,处理系统可以结合处理系统中支持的ECC编码电路初步为第一内存确定第一中间冗余比。该第一中间冗余比可以理解为第一内存对应的降一级的冗余比,而第一降级内存空间即为第一内存中减少的作为ECC内存空间的内存空间。该第一中间冗余比小于该第一内存中数据内存空间与ECC内存空间的比值。例如,该第一内存中数据内存空间与ECC内存空间的比值为4:1,处理系统确定该第一内存有隔离内存空间。处理系统支持如图4所示的编码电路,处理系统可以初步为第一内存确定第一中间冗余比,例如,第一中间冗余比为16:3。
例如,图6A所示,第一内存中的数据内存颗粒3为隔离内存空间。处理系统可以确定第一中间冗余比为16:3。也就是处理系统可以初步为第一内存确定该第一中间冗余比。
例如,如图7A所示,第一内存空间的数据内存颗粒3和数据内存颗粒4为隔离内存空间。处理系统确定第一中间冗余比为16:3。也就是处理系统可以初步为第一内存确定该第一中间冗余比。该第一中间冗余比小于该第一内存中数据内存空间与ECC内存空间的比值。
例如,i等于2。处理系统确定隔离内存空间的大小大于第一降级内存空间的大小,则处理系统继续降低第一内存对应的冗余比。处理系统可以结合处理系统中支持的ECC编码电路再次为第一内存确定第二中间冗余比,该第二中间冗余比对应第2降级内存空间。第二中间冗余比可以理解为第一内存对应的降二级的冗余比,而第2降级内存空间即为第一内存中减少的作为ECC内存空间的内存空间。第二中间冗余比小于该第一内存中数据内存空间与ECC内存空间的比值。
例如,如图7A所示,第一内存空间的数据内存颗粒3和数据内存颗粒4为隔离内存空间。第一中间冗余比为16:3。处理系统支持如图4所示的编码电路,处理系统可以再次为第一内存确定第二中间冗余比,例如,第二中间冗余比为8:1。
802、判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小;若是,则执行步骤803;若否,则执行步骤805。
具体的,处理系统判断第一内存中的隔离内存空间是否小于或等于第i降级内存空间的大小;如果是,处理系统执行步骤803;如果不是,处理系统执行步骤805。
例如,如图6A所示,第一内存的隔离内存空间为数据内存颗粒3,第一降级内存空间的大小为一个内存颗粒的大小,隔离内存空间的大小等于第一降级内存空间的大小,因此处理系统可以执行步骤803。
例如,如图7A所示,第一内存的隔离内存空间为数据内存颗粒3和数据内存颗粒4,第一降级内存空间的大小为两个内存颗粒的大小。隔离内存空间的大小大于第二降级内存空间的大小,因此处理系统可以执行步骤805。
803、将第i中间冗余比作为第一内存对应的第一冗余比。
如果隔离内存空间的大小小于或等于第i降级内存空间的大小,则处理系统可以将第i中间冗余比作为第一内存对应的第一冗余比。
例如,如图6A所示,第一内存的隔离内存空间为数据内存颗粒3,第一降级内存空间的大小为一个内存颗粒的大小,隔离内存空间的大小等于第一降级内存空间的大小。因此,处理系统可以将该第一中间冗余比16:3作为该第一内存对应的第一冗余比。
可选的,图8所示的实施例还包括步骤804。步骤804可以在步骤803之前执行。
804、输出第i个警告信息。
其中,第i个警告信息用于指示第一内存存在隔离内存空间;或者,第i个警告信息用于指示对第一内存进行了降i级处理。上述步骤801至步骤803可以理解为处理系统对第一内存进行第i次降级处理的过程。
在上述步骤804中,处理系统每降一级处理,处理系统可以输出相应的警告信息。从而便于提醒用户该第一内存出现隔离内存空间,便于用户及时发现第一内存的问题。从而进一步保障系统的稳定性。
需要说明的是,可选的,若第i中间冗余比等于0,第i个警告信息还用于指示更换第一内存。在第i中间冗余比等于0时,表示该第一内存中可用作ECC内存的空间已经没有,也就是第一内存需要隔离的内存空间大于或等于第一内存中原本用作ECC内存的空间。处理系统可以通过该第i个警告信息提醒用户该第一内存已经没有ECC功能,需要及时更换第一内存。避免无法对数据进行ECC编码,造成系统不稳定的问题。
805、判断是否满足预设条件;若是,则执行步骤806;若否,则执行步骤807。
具体的,处理系统判断是否满足预设条件;如果是,则执行步骤806;如果不是,则执行步骤807。
一种可能的实现方式中,处理系统判断该第i中间冗余比是否等于0,若是,则处理系统可以执行步骤806;如果不是,处理系统可以执行步骤807。
在该实施方式中,如果该第i中间冗余比等于0,说明经过处理系统的i次降级处理第一内存中已经没有可用的ECC内存空间,或者说该第一内存原本的ECC内存空间都用于存储隔离内存空间的数据,已经没有多余的内存空间可以用于存储ECC比特。因此,处理系统无法对第一待写入数据进行ECC编码。处理系统可以执行步骤806。
另一种可能的实现方式,处理系统判断i是否大于或等于预设阈值,若是,则处理系统可以执行步骤806;如果不是,处理系统可以执行步骤807。
例如,处理系统对第一内存进行了四次降级处理,则处理系统可以执行步骤806,否则处理系统执行步骤807。
806、退出循环。
在该实施方式中,处理系统退出循环。处理系统不对第一待写入数据进行ECC编码。
807、更新i,再启动执行步骤801至步骤805的循环过程。
具体的,处理系统更新i的取值,i等于i加上1。然后,处理系统执行类似上述步骤801至步骤805的过程,也就是处理系统对第一内存进行第i+1降级处理。
下面介绍简单介绍处理系统对第一内存进行第i+1降级处理的过程。
处理系统确定第i+1中间冗余比;该第i+1中间冗余比对应第i+1降级内存空间,第i+1降级内存空间的大小小于第一内存中ECC内存空间的大小。第i+1中间冗余比等于第一内存中数据内存空间的大小与第二值之间的比值,第二数值等于第一内存中的ECC内存空间的大小减去第i+1降级内存空间的大小。处理系统判断该隔离内存空间的大小小于或等于第二降级内存空间的大小;若是,则处理系统将该第i+1中间冗余比作为第一冗余比。若否,则处理系统判断是否满足预设条件,如果满足,则退出循环,如果不满足,则再次更新i,并启动执行步骤801至步骤805的循环过程。
如果隔离内存空间的大小大于第i降级内存空间的大小,处理系统可以结合处理系统支持的ECC编码电路再次为第一内存确定第i+1中间冗余比。该第i+1中间冗余比可以理解为第一内存对应的第i+1次降级的冗余比,而第i+1降级内存空间即为第一内存中减少的作为ECC内存空间的内存空间。
例如,如图7A所示,数据内存颗粒3和数据内存颗粒4为隔离内存空间,处理系统支持冗余比8:1的ECC编码电路。处理系统可以为第一内存确定第二中间冗余比。第二中间冗余比对应的第二降级内存空间。第二降级内存空间的大小为两个内存颗粒的大小。隔离内存空间的大小等于第二降级内存空间的大小,因此处理系统可以将该第i+1中间冗余比作为第一冗余比。
可选的,第一降级内存空间的大小大于第一降级内存空间的大小与第二降级内存空间的大小之间的差。
可选的,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
例如,如图7A所示,处理系统对第一内存进行三次降级处理。具体的,处理系统初步为第一内存确定第一中间冗余比,该第一中间冗余比为16:3。第一中间冗余比对应的第一降级内存空间的大小为1个内存颗粒的内存空间。处理系统为第一内存确定第二中间冗余比,第二中间冗余比为32:5,第二中间冗余比对应的第二降级内存空间为1个内存颗粒的内存空间加上半个内存颗粒的内存空间。处理系统为第一内存确定第三中间冗余比,第三中间冗余比为16:2,第三中间冗余比对应的第三降级内存空间为2个内存颗粒的内存空间。因此可知,第一降级内存空间的大小与第二降级内存空间的大小之间的差等于半个内存颗粒的内存空间的大小。第二降级内存空间的大小与第三降级内存空间之间的差等于半个内存颗粒的内存空间的大小。因此可知,第一降级内存空间的大小大于第一降级内存空间的大小与第二降级内存空间的大小之间的差。第一降级内存空间的大小与第二降级内存空间的大小之间的差等于第二降级内存空间的大小与第三降级内存空间之间的差。
例如,如图9所示,处理系统对第一内存进行四次降级处理。具体的,处理系统初步为第一内存确定第一中间冗余比,该第一中间冗余比为16:3。第一中间冗余比对应的第一降级内存空间的大小为1个内存颗粒的内存空间。处理系统为第一内存确定第二中间冗余比,第二中间冗余比为16:2。第二中间冗余比对应的第二降级内存空间为2个内存颗粒的内存空间。处理系统为第一内存确定第三中间冗余比,第三中间冗余比为32:3,第三中间冗余比对应的第三降级内存空间为2个内存颗粒的内存空间加上半个内存颗粒的内存空间。处理系统为第一内存确定第四中间冗余比,第四中间冗余比为16:1,第四中间冗余比对应的第四降级内存空间为3个内存颗粒的内存空间。因此,第一降级内存空间与第二降级内存空间之间的差为1个内存颗粒的内存空间。第二降级内存空间与第三降级内存空间之间的差为半个内存颗粒的内存空间。第一降级内存空间与第二降级内存空间之间的差大于第二降级内存空间与第三降级内存空间之间的差。
由此可知,处理系统可以先初步为第一内存确定第i中间冗余比。然后,处理系统再判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小。也就是处理系统对第一内存进行降级处理,也就是减少第一内存中作为ECC内存空间的内存空间。然后,处理系统判断是否减少的ECC内存空间的大小是否大于或等于隔离内存空间的大小。处理系统一步步降低第一内存对应的冗余比,有利于为第一内存选择合适的冗余比。并且有利于选择处理系统支持的冗余比对第一待写入数据进行ECC编码,从而进一步降低芯片中ECC编码电路的复杂度,降低ECC编码电路的部署成本。
上面对本申请实施例中的数据写入方法进行了描述,下面对本申请实施例中的处理系统进行描述。
请参阅图10,本申请实施例处理系统的一个结构示意图。该处理系统包括获取单元1001、编码单元1002和写入单元1003;处理系统还包括确定单元1004和输出单元1005。
获取单元1001,用于获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据;
编码单元1002,用于根据第一内存对应的第一冗余比确定第一码字长度;根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值;
获取单元1001,还用于获取第一内存的内存类型;
写入单元1003,用于根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。
一种可能的实现方式中,处理系统还包括确定单元1004;
确定单元,用于确定第一内存对应的第一冗余比。
另一种可能的实现方式中,确定单元1004具体用于:
根据第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比。
另一种可能的实现方式中,确定单元1004具体用于:
将数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。
另一种可能的实现方式中,确定单元1004具体用于:
根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比。
另一种可能的实现方式中,确定单元1004具体用于:
确定第i中间冗余比,第i中间冗余比对应第i降级内存空间,第i中间冗余比等于数据内存空间的大小与第一数值之间的比值,第一数值等于ECC内存空间的大小减去第i降级内存空间的大小,i为大于或等于1的整数;判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小;若是,则将第i中间冗余比作为第一冗余比。
另一种可能的实现方式中,处理系统还包括输出单元1005;
输出单元,用于输出第i个警告信息,第i个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,若该第i中间冗余比等于0,该第i个警告信息还用于指示更换该第一内存。
另一种可能的实现方式,若隔离内存空间的大小等于第i降级内存空间的大小,确定单元1004还用于:
确定第i+1中间冗余比,第i+1中间冗余比对应第i+1降级内存空间,第i+1中间冗余比等于数据内存空间的大小与第二数值之间的比值,第二数值等于ECC内存空间的大小减去第i+1降级内存空间的大小;
判断隔离内存空间的大小是否小于或等于第i+1降级内存空间的大小;若是,则将第i+1中间冗余比作为第一冗余比。
另一种可能的实现方式,输出单元1005还用于:
输出第i+1个警告信息,第i+1个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
另一种可能的实现方式,确定单元1004还用于:
读取记录的第一内存对应的第一冗余比。
另一种可能的实现方式中,写入单元1003具体用于:
将第一冗余数据中的冗余比特连接到第一待写入数据包括的数据比特之后,得到第一比特序列;复制第一比特序列中待写入隔离内存空间的数据比特;将待写入隔离内存空间的数据比特连接到第一比特序列中最后一个比特之后,得到第二比特序列;按照第二比特序列的比特顺序将第二比特序列写入第一内存中。
请参阅图11,该处理系统1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。
其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对处理系统中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在处理系统1100上执行存储介质1130中的一系列指令操作。
处理系统1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如,微软操作系统、苹果操作系统等。
上述实施例图3和图8中由处理系统所执行的具体步骤可以基于该图11所示的处理系统结构。中央处理器1122用于执行如下方案:
获取第一待写入数据,该第一待写入数据为待写入处理系统中的第一内存的数据;根据第一内存对应的第一冗余比确定第一码字长度;根据第一码字长度对第一待写入数据进行ECC编码,得到第一冗余数据;第一冗余比等于该第一待写入数据包括的数据比特与第一冗余数据包括的冗余比特之间的比值;获取第一内存的内存类型;根据该第一内存的内存类型将第一待写入数据和第一冗余数据写入第一内存。
一种可能的实现方式中,中央处理器1122还用于:
确定第一内存对应的第一冗余比。
另一种可能的实现方式中,中央处理器1122具体用于:
根据第一内存的数据内存空间和第一内存中的ECC内存空间确定第一冗余比。
另一种可能的实现方式中,中央处理器1122具体用于:
将数据内存空间的大小与ECC内存空间的大小之间的比值作为第一冗余比。
另一种可能的实现方式中,中央处理器1122具体用于:
根据第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定第一冗余比。
另一种可能的实现方式中,中央处理器1122具体用于:
确定第i中间冗余比,第i中间冗余比对应第i降级内存空间,第i中间冗余比等于数据内存空间的大小与第一数值之间的比值,第一数值等于ECC内存空间的大小减去第i降级内存空间的大小,i为大于或等于1的整数;判断隔离内存空间的大小是否小于或等于第i降级内存空间的大小;若是,则将第i中间冗余比作为第一冗余比。
另一种可能的实现方式中,中央处理器1122还用于:
输出第i个警告信息,第i个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,若该第i中间冗余比等于0,该第i个警告信息还用于指示更换该第一内存。
另一种可能的实现方式,若隔离内存空间的大小等于第i降级内存空间的大小,中央处理器1122还用于:
确定第i+1中间冗余比,第i+1中间冗余比对应第i+1降级内存空间,第i+1中间冗余比等于数据内存空间的大小与第二数值之间的比值,第二数值等于ECC内存空间的大小减去第i+1降级内存空间的大小;
判断隔离内存空间的大小是否小于或等于第i+1降级内存空间的大小;若是,则将第i+1中间冗余比作为第一冗余比。
另一种可能的实现方式,中央处理器1122还用于:
输出第i+1个警告信息,第i+1个警告信息用于指示第一内存出现隔离内存空间。
另一种可能的实现方式,第i降级内存空间的大小与第i+1降级内存空间的大小之间的差大于或等于第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
另一种可能的实现方式,中央处理器1122还用于:
读取记录的第一内存对应的第一冗余比。
另一种可能的实现方式中,中央处理器1122还用于:
将第一冗余数据中的冗余比特连接到第一待写入数据包括的数据比特之后,得到第一比特序列;复制第一比特序列中待写入隔离内存空间的数据比特;将待写入隔离内存空间的数据比特连接到第一比特序列中最后一个比特之后,得到第二比特序列;按照第二比特序列的比特顺序将第二比特序列写入第一内存中。
本申请实施例还提供一种包括指令的计算机程序产品,当其在计算机上运行时,使得该计算机执行如上述图3和图8中所示的实施例的数据写入方法。
本申请实施例还提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行如上述图3和图8中所示的实施例的数据写入方法。
在另一种可能的设计中,当该处理系统为终端内的芯片时,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使该终端内的芯片执行上述图3和图8中所示的实施例的数据写入方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述终端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制上述图3和图8中所示的实施例的数据写入方法的程序执行的集成电路。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (16)

1.一种数据写入方法,其特征在于,所述方法应用于处理系统,所述处理系统包括多种类型的内存;所述方法包括:
获取第一待写入数据,所述第一待写入数据为待写入所述处理系统中的第一内存的数据;
根据所述第一内存对应的第一冗余比确定第一码字长度;
根据所述第一码字长度对所述第一待写入数据进行纠错码ECC编码,得到第一冗余数据,所述第一冗余比等于所述第一待写入数据包括的数据比特数目与所述第一冗余数据包括的冗余比特数目之间的比值;
获取所述第一内存的内存类型;
根据所述内存类型将所述第一待写入数据和所述第一冗余数据写入所述第一内存。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一内存对应的第一冗余比确定第一码字长度之前,所述方法还包括:
确定所述第一内存对应的第一冗余比。
3.根据权利要求2所述的方法,其特征在于,所述确定所述第一内存对应的第一冗余比,包括:
根据所述第一内存中的数据内存空间和所述第一内存中的ECC内存空间确定所述第一冗余比。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一内存的数据内存空间和所述第一内存中的ECC内存空间确定所述第一冗余比,包括:
将所述数据内存空间的大小与所述ECC内存空间的大小之间的比值作为所述第一冗余比。
5.根据权利要求3所述的方法,其特征在于,所述确定所述第一内存对应的第一冗余比,包括:
根据所述第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定所述第一冗余比。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第一内存中的数据内存空间、ECC内存空间以及隔离内存空间确定所述第一冗余比,包括:
确定第i中间冗余比,所述第i中间冗余比对应第i降级内存空间,所述第i中间冗余比等于所述数据内存空间的大小与第一数值之间的比值,所述第一数值等于所述ECC内存空间的大小减去所述第i降级内存空间的大小,所述i为大于或等于1的整数;
判断所述隔离内存空间的大小是否小于或等于所述第i降级内存空间的大小;
若是,则将所述第i中间冗余比作为所述第一冗余比。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
输出第i个警告信息,所述第i个警告信息用于指示所述第一内存出现隔离内存空间。
8.根据权利要求6或7所述的方法,其特征在于,若所述隔离内存空间的大小等于所述第i降级内存空间的大小,所述方法还包括:
确定第i+1中间冗余比,所述第i+1中间冗余比对应第i+1降级内存空间,所述第i+1中间冗余比等于所述数据内存空间的大小与第二数值之间的比值,所述第二数值等于所述ECC内存空间的大小减去所述第i+1降级内存空间的大小;
判断所述隔离内存空间的大小是否小于或等于所述第i+1降级内存空间的大小;
若是,则将所述第i+1中间冗余比作为所述第一冗余比。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
输出第i+1个警告信息,所述第i+1个警告信息用于指示所述第一内存出现隔离内存空间。
10.根据权利要求9所述的方法,若所述第i+1个中间冗余比等于0,则所述第i+1个警告信息还用于提示更换所述第一内存。
11.根据权利要求8至10中任一项所述的方法,其特征在于,所述第i降级内存空间的大小与所述第i+1降级内存空间的大小之间的差大于或等于所述第i+1降级内存空间的大小与第i+2降级内存空间的大小之间的差。
12.根据权利要求2所述的方法,其特征在于,所述确定所述第一内存对应的第一冗余比,包括:
读取记录的所述第一内存对应的第一冗余比。
13.根据权利要求5至12中任一项所述的方法,其特征在于,所述根据所述内存类型将所述第一待写入数据和所述第一冗余数据写入所述第一内存,包括:
将所述第一冗余数据中的冗余比特连接到所述第一待写入数据包括的数据比特之后,得到第一比特序列;
复制所述第一比特序列中待写入所述隔离内存空间的数据比特;
将所述待写入所述隔离内存空间的数据比特连接到所述第一比特序列中最后一个比特之后,得到第二比特序列;
按照所述第二比特序列的比特顺序将所述第二比特序列写入所述第一内存中。
14.一种处理系统,其特征在于,所述处理系统包括内存控制器和多种类型的内存;所述内存控制器用于执行如权利要求1至13中任一项所述的方法。
15.一种处理系统,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的所述程序,当所述程序被执行时,所述处理器用于执行如权利要求1至13中任一所述的步骤。
16.一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1至13中任意一项所述的方法。
CN202210283000.1A 2022-03-22 2022-03-22 数据写入方法以及处理系统 Pending CN116820830A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210283000.1A CN116820830A (zh) 2022-03-22 2022-03-22 数据写入方法以及处理系统
PCT/CN2023/082920 WO2023179634A1 (zh) 2022-03-22 2023-03-21 数据写入方法以及处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210283000.1A CN116820830A (zh) 2022-03-22 2022-03-22 数据写入方法以及处理系统

Publications (1)

Publication Number Publication Date
CN116820830A true CN116820830A (zh) 2023-09-29

Family

ID=88100035

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210283000.1A Pending CN116820830A (zh) 2022-03-22 2022-03-22 数据写入方法以及处理系统

Country Status (2)

Country Link
CN (1) CN116820830A (zh)
WO (1) WO2023179634A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0846548A (ja) * 1994-07-26 1996-02-16 Matsushita Electric Ind Co Ltd スペクトラム拡散通信方式
US6697985B1 (en) * 2000-10-04 2004-02-24 Actelis Networks Inc. Predictive forward error correction redundancy
CN107423159B (zh) * 2017-07-11 2019-06-28 华中科技大学 一种基于闪存错误模式提升ldpc译码性能的方法
CN108183774B (zh) * 2018-03-26 2021-07-27 浙江齐聚科技有限公司 一种流媒体传输的前向纠错方法和系统
CN109634740A (zh) * 2018-11-08 2019-04-16 华为技术有限公司 内存管理方法和装置
CN113835923A (zh) * 2020-06-24 2021-12-24 华为技术有限公司 一种复位系统、数据处理系统以及相关设备
CN112579342B (zh) * 2020-12-07 2024-02-13 海光信息技术股份有限公司 内存纠错方法、内存控制器及电子设备

Also Published As

Publication number Publication date
WO2023179634A1 (zh) 2023-09-28

Similar Documents

Publication Publication Date Title
KR100305311B1 (ko) 리프레시 간격 제어 장치와 방법 및 컴퓨터
US6754858B2 (en) SDRAM address error detection method and apparatus
JP4071940B2 (ja) メモリ設計のための共有式誤り訂正
US7328365B2 (en) System and method for providing error check and correction in memory systems
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
US10803971B2 (en) Device for supporting error correction code and test method thereof
US8352806B2 (en) System to improve memory failure management and associated methods
KR102571747B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
US8181094B2 (en) System to improve error correction using variable latency and associated methods
JP2006318461A (ja) 水平及び垂直のエラー訂正符号化(ecc)システム及び方法
US20130339820A1 (en) Three dimensional (3d) memory device sparing
EP3015986A1 (en) Access method and device for message-type memory module
JP4349532B2 (ja) メモリ制御装置、メモリ制御方法、情報処理システム、そのプログラム及び記憶媒体
US7873895B2 (en) Memory subsystems with fault isolation
TWI808098B (zh) 用於支持錯誤更正碼的裝置及其測試方法
US20230049851A1 (en) Ecc memory chip encoder and decoder
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
US6681299B1 (en) Cache-tag control method in information processing apparatus having cache, with error checking mechanism in cache tag, and information processing apparatus using this control method
US11726665B1 (en) Memory extension with error correction
JP4956230B2 (ja) メモリコントローラ
US20180203625A1 (en) Storage system with multi-dimensional data protection mechanism and method of operation thereof
JP7186262B2 (ja) 共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding)
US20040003165A1 (en) Memory subsystem including error correction
CN116820830A (zh) 数据写入方法以及处理系统
US10922025B2 (en) Nonvolatile memory bad row management

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