CN119248182B - 存储级内存、数据处理方法和处理器系统 - Google Patents
存储级内存、数据处理方法和处理器系统 Download PDFInfo
- Publication number
- CN119248182B CN119248182B CN202411165652.0A CN202411165652A CN119248182B CN 119248182 B CN119248182 B CN 119248182B CN 202411165652 A CN202411165652 A CN 202411165652A CN 119248182 B CN119248182 B CN 119248182B
- Authority
- CN
- China
- Prior art keywords
- memory
- error correction
- type
- particles
- data
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
公开了存储级内存、数据处理方法和处理器系统,涉及计算机领域。存储级内存包括的多个内存颗粒被划分为至少一个组。每组包括第一类内存颗粒和第二类内存颗粒。第二类内存颗粒用于存储运行误差校正码,第一类内存颗粒用于存储数据和重误差校正码。运行误差校正码用于对同一组的第一类内存颗粒存储的数据进行一级内存纠错。重误差校正码用于当一级内存纠错失败时,对第一类内存颗粒存储的数据进行二级内存纠错。通过两级内存纠错机制确保存储级内存存储数据的高可靠性时使访问时延尽可能低。另外,通过对存储级内存的内存颗粒进行排布,使存储级内存的位宽满足DDR协议指示的内存位宽,存储级内存兼容DDR协议。
Description
本申请要求于2021年12月13日提交国家知识产权局、申请号为202111513788.2、申请名称为“传输数据的方法及存储装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请是分案申请,原申请的申请号是202210114650.3,原申请日是2022年01月30日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机领域,尤其涉及一种存储级内存、数据处理方法和处理器系统。
背景技术
存储级内存(storage class memory,SCM)是一类新型存储介质,存储容量、存取速度和成本介于主存(如:动态随机存取存储器(Dynamic Random Access Memory,DRAM))和硬盘(如:与非门闪存(NAND flash))之间。例如,相比于DRAM,SCM具有持久化能力,掉电后数据不会丢失,存储容量更大。相比于NAND flash,SCM具有更快的存取速度。
目前,SCM基于内置的控制器实现内存纠错。由于控制器中的存储介质可能缓存数据,由此导致SCM的访问时延不确定,无法兼容双倍数据速率(Double Data Rate,DDR)协议,SCM通用性较低。因此,如何在SCM兼容DDR协议的情况下,提高SCM的可靠性以及尽可能降低SCM的访问时延是目前亟需解决的问题。
发明内容
本申请提供了存储级内存、数据处理方法和处理器系统,由此可以在SCM兼容DDR协议的情况下,提高SCM的可靠性以及尽可能降低SCM的访问时延。
第一方面,提供了一种存储级内存,存储级内存包括的多个内存颗粒被划分为至少一个组;至少一个组中每组包括第一类内存颗粒和第二类内存颗粒;第二类内存颗粒用于存储运行误差校正码,第一类内存颗粒用于存储数据和重误差校正码。运行误差校正码用于对同一组的第一类内存颗粒存储的数据进行一级内存纠错。重误差校正码用于当一级内存纠错失败时,对第一类内存颗粒存储的数据进行二级内存纠错。
如此,通过两级内存纠错机制确保存储级内存存储数据的高可靠性时使访问时延尽可能低。相对于SCM内置的控制器采用复杂度较高的纠错算法进行内存纠错,导致访问时延较长,本申请实施例通过两级内存纠错机制,在存储级内存的出错率较低时,采用一级内存纠错可以确保存储级内存存储数据的高可靠性时有效地缩短访问时延;在存储级内存的出错率较高时,采用二级内存纠错也可以确保存储级内存存储数据的高可靠性,结合一级内存纠错整体性缩短访问时延。另外,通过对存储级内存的内存颗粒进行排布,使存储级内存的位宽满足双倍数据速率(Double Data Rate,DDR)协议指示的内存位宽,从而实现存储级内存兼容DDR协议,使得存储级内存可以连接更多种类的处理器(processor),提高存储级内存的通用性。
其中,每组中第一类内存颗粒的数量和第二类内存颗粒的数量是依据第一类内存颗粒的位宽、第二类内存颗粒的位宽和DDR协议指示的内存位宽确定的。
示例地,DDR协议指示的内存位宽为80比特(bit),第一类内存颗粒的位宽和第二类内存颗粒的位宽均为8比特,存储级内存包含的10个内存颗粒被划分为2组,每组包括4个第一类内存颗粒和1个第二类内存颗粒;每组包含的4个第一类内存颗粒和1个第二类内存颗粒的位宽之和为40比特,每位的单位访问数据量为16字节(byte)或32字节。
在一种可能的实现方式中,第一类内存颗粒包括M个第一类单元和N个第二类单元。第一类单元用于存储数据。第二类单元用于存储重误差校正码。从而,可以由内存控制器或固件(firmware,FW)根据使用场景进行在线切换或升级第一类单元的数量和第二类单元的数量,从而提升适配不同系统可靠性需求的灵活性。
在另一种可能的实现方式中,第一类单元的单位访问数据量和第二类单元的单位访问数据量均为第一类内存颗粒的位宽中一位的单位访问数据量。从而使存储级内存的单位访问数据量满足与其连接的处理器的缓存线(cacheline)长度,从而提升存储级内存的通用性。
在另一种可能的实现方式中,第一类内存颗粒还包括第三类单元。第三类单元用于实现对第一类内存颗粒的单元进行坏块管理的功能。从而,节省了存储级内存的空间,使存储级内存更易兼容满足DDR协议的内存(如:DRAM),提升存储级内存的通用性。
第二方面,提供了一种数据处理方法,方法由控制器执行,控制器连接上述第一方面或第一方面任一种可能的存储级内存和处理器;方法包括:控制器获取存储级内存中同一组的第一类内存颗粒存储的数据进行一级内存纠错;当一级内存纠错失败时,控制器获取每个第一类内存颗粒对第一类内存颗粒存储的数据进行二级内存纠错。
示例地,控制器对存储级内存中同一组的第一类内存颗粒存储的数据进行一级内存纠错,包括:控制器采用汉明码或分组码对存储级内存中同一组的第一类内存颗粒存储的数据进行一级内存纠错。控制器对存储级内存中同一组的第一类内存颗粒存储的数据的128字节至512字节中单个比特进行一级内存纠错。
示例地,控制器对第一类内存颗粒存储的数据进行二级内存纠错,包括:控制器采用分组码或低密度奇偶校验码对第一类内存颗粒存储的数据进行二级内存纠错。控制器对第一类内存颗粒存储的数据的2048字节至4096字节中百个比特进行二级内存纠错。
在一种可能的实现方式中,方法还包括:控制器将处理器的指令转换为存储级内存的指令,以及将存储级内存的指令转换为处理器的指令。从而,以便于处理器对存储级内存进行读写操作。
第三方面,提供了一种处理器系统,所述处理器系统包括控制器和上述第一方面或第一方面任一种可能的存储级内存和处理器,控制器分别连接处理器和至少一个存储级内存,控制器用于执行上述第二方面或第二方面任一种可能的所述的方法的操作步骤。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
图1为本申请实施例提供的一种存储级内存的结构示意图;
图2为本申请实施例提供的一种存储级内存的物理划分示意图;
图3为本申请实施例提供的一种第一类内存颗粒的结构示意图;
图4为本申请实施例提供的一种运行误差校正码和重误差校正码的生成的示意图;
图5为本申请实施例提供的另一种存储级内存的结构示意图;
图6为本申请实施例提供的又一种存储级内存的结构示意图;
图7为本申请实施例提供的一种处理器系统的结构示意图;
图8为本申请实施例提供的另一种处理器系统的结构示意图;
图9为本申请实施例提供的一种数据处理方法的示意图。
具体实施方式
在数字电路中,最小数据单位是比特(bit),比特也是内存(或称主存)的最小数据单位。一个比特的取值为“0”或“1”,连续的8个比特构成一个字节(byte)。在机器语言里,字节代表一个字母或者数字。电场、磁场甚至宇宙射线干扰,都会造成内存存储的单个比特的取值发生变化。如果对于系统运行很重要的字节中单个比特的值发生变化可能发生系统出错,导致宕机或者其他故障。
误差校正码(Error Correcting Code,ECC)是一种能够实现检查错误和纠正错误的技术。纠错内存(Error-correcting code memory,ECC memory)是一种应用了ECC技术的内存,即能够实现检查错误和纠正错误的内存。纠错内存多应用在服务器及图形工作站上,可提高计算机运行的稳定性和可靠性。
本申请实施例提供一种存储级内存,尤其是提供一种具有高可靠性低时延的存储级内存,即通过两级内存纠错机制确保存储级内存存储数据的高可靠性时使访问时延尽可能低。另外,通过对存储级内存的内存颗粒进行排布,使存储级内存的位宽满足双倍数据速率(Double Data Rate,DDR)协议指示的内存位宽,从而实现存储级内存兼容DDR协议,使得存储级内存可以连接更多种类的处理器(processor),提高存储级内存的通用性。
本申请实施例中,内存颗粒可以是指相变存储器(Phase Change Memory,PCM)。相变存储器是利用特殊材料(如:硫族化合物)在晶态和非晶态之间相互转化时所表现出来的导电性差异来存储数据的一种存储装置。内存位宽是指内存一次能传输的数据量。位宽越大,一次性能传输的数据量越大。内存位宽也可以称为数据位宽或简称位宽。
存储级内存包括的多个内存颗粒被划分为至少一个组。至少一个组中每组包括第一类内存颗粒和第二类内存颗粒。可理解地,至少一个组是指DDR的至少一个通道(channel)。每组中第一类内存颗粒的数量和第二类内存颗粒的数量是依据第一类内存颗粒的位宽、第二类内存颗粒的位宽和DDR协议指示的内存位宽确定的,从而使存储级内存的位宽满足DDR协议指示的内存位宽。
第二类内存颗粒用于存储运行误差校正码。运行误差校正码用于对同一组的第一类内存颗粒存储的数据进行一级内存纠错。应理解,运行误差校正码可以是根据属于同一组的第一类内存颗粒存储的数据生成的。一级内存纠错是指对属于同一组的第一类内存颗粒存储的数据进行内存纠错。例如,第1组包含的第二类内存颗粒存储的运行误差校正码是根据第1组包含的第一类内存颗粒存储的数据生成的。第1组包含的第二类内存颗粒存储的运行误差校正码用于对第1组包含的第一类内存颗粒存储的数据进行一级内存纠错。
第一类内存颗粒用于存储数据和重误差校正码。重误差校正码用于当一级内存纠错失败时,对第一类内存颗粒存储的数据进行二级内存纠错。应理解,重误差校正码可以是根据第一类内存颗粒存储的数据生成的。二级内存纠错是指对每个第一类内存颗粒存储的数据进行内存纠错。例如,第1组包含的第一类内存颗粒存储的重误差校正码是根据同一个第一类内存颗粒存储的数据生成的。第1组包含的第一类内存颗粒存储的重误差校正码用于对同一个第一类内存颗粒存储的数据进行二级内存纠错。
本申请各实施例中,所述运行误差校正码又可以称为第一级校正码,所述重误差校正码又可以称为第二级校正码。
在另一些实施例中,第一类内存颗粒还用于实现对第一类内存颗粒进行坏块管理的功能。相对于在存储级内存上设置用于实现坏块管理的内存颗粒,在第一类内存颗粒内设置用于实现坏块管理的介质,节省了存储级内存的空间,使存储级内存更易兼容满足DDR协议的内存(如:DRAM),提升存储级内存的通用性。
存储级内存还可以包括其他芯片,如时钟芯片等。
下面结合附图对本申请实施例提供的存储级内存进行详细说明。
以存储级内存兼容DDR5的内存位宽为80比特(bit)为例。图1为本申请实施例提供的一种存储级内存的结构示意图。存储级内存100包括10个内存颗粒110,每个内存颗粒110的位宽为8比特。10个内存颗粒110被划分为2组,每组包括5个内存颗粒110,每组包括的5个内存颗粒110的位宽之和为40比特。2组包括的5个内存颗粒110的位宽之和为80比特,则存储级内存100兼容DDR5的内存位宽。可理解地,10个内存颗粒110被划分得到的2组是指DDR5的2个子通道(sub-channel),兼容了DDR5的双通道标准。每个子通道的位宽为40比特。
其中,每组包含4个第一类内存颗粒111和1个第二类内存颗粒112。内存颗粒110的位宽中每位的单位访问数据量为16字节或32字节,即每次访问存储级内存一定时延后,可获得16B或32B的数据。如果一次访问4个第一类内存颗粒111可以读或写64B数据,如果一次访问8个第一类内存颗粒111可以读或写128B,64B或128B等于处理器的缓存线(cacheline)长度,从而提升存储级内存的通用性。
第二类内存颗粒112用于存储运行误差校正码。第一类内存颗粒111用于存储数据和重误差校正码。运行误差校正码码字的长度由组内的第一类内存颗粒111和第二类内存颗粒112决定。例如,如果一次访问4个第一类内存颗粒111可以读或写64B数据,运行误差校正码码字的长度为64B+16B;如果一次访问8个第一类内存颗粒111可以读或写128B数据,运行误差校正码码字的长度为128B+32B。重误差校正码可以根据可靠性需求自行设置重误差校正码码字的长度。
可理解地,如图2所示,存储级内存100的物理划分从大到小可以分为面(rank)120、内存颗粒(chip)110、单元(bank)130和存储单元(cell)140。面120包括存储级内存100上安装的所有内存颗粒110。每个内存颗粒110包括多个单元130。每个单元130包括存储单元140。每个存储单元140由行(row)和列(column)决定。
在一些实施例中,第一类内存颗粒111用于存储重误差校正码的介质可以是第一类内存颗粒111包含的多个单元130中的部分单元130。例如,第一类内存颗粒111包括M个第一类单元131和N个第二类单元132。第一类单元131用于存储数据。第二类单元132用于存储重误差校正码。在实际应用中,可以根据可靠性要求灵活配置第一类单元131的数量M和第二类单元132的数量N。如果可靠性要求较低,二级内存纠错的数据量少,可以配置较少的第二类单元132以及较多的第一类单元131;如果可靠性要求较高,二级内存纠错的数据量多,可以配置较多的第二类单元132。可以由内存控制器或固件(firmware,FW)根据使用场景进行在线切换或升级第一类单元131的数量M和第二类单元132的数量N,从而提升适配不同系统可靠性需求的灵活性。
示例地,如图3所示,第一类内存颗粒111包括16个可独立操作的单元130。第1个单元130至第14个单元130作为第一类单元131,用于存储数据。第15个单元130作为第二类单元132,用于进行二级内存纠错。可选地,第一类内存颗粒111中的第16个单元130作为第三类单元133,用于实现对第一类内存颗粒111的单元130进行坏块管理的功能。在第1个单元130至第15个单元130中某个单元故障时,可以用第16个单元130替换故障的单元130,从而避免存储级内存100发生故障。例如,当第1个单元130至第15个单元130中某个单元的某些地址损坏时,控制器将对应的16B地址重新映射到预留的第16个单元130上,即可实现坏块管理功能。
一次访问单元130可以读或写16B或32B的数据。假设一次访问单元130可以读或写16B的数据,重误差校正码码字的长度可以为224B(16*14)+16B。由于重误差校正码码字较长,二级内存纠错的纠错能力也较强。这仅是构建重误差校正码码字的方式之一。在另一些实施例中,也可采用多个第一类单元131中部分第一类单元131存储的数据构建重误差校正码码字。二级内存纠错时,对第一类内存颗粒111包括的单元130循环进行检查错误和纠正错误。
示例地,如图4所示,一级内存纠错的数据和二级内存纠错的数据可以组成一个二维矩阵。x维表示4个第一类内存颗粒111和1个第二类内存颗粒112,y维表示内存颗粒的最小访问单元16B的地址。4个第一类内存颗粒111存储数据和重误差校正码,1个第二类内存颗粒112存储运行误差校正码,每行构成1个64B+16B的运行误差校正码码字,整个二维矩阵构成1个512B+208B的重误差校正码码字。当任何一行运行误差校正码码解码失败后,系统读出这个二维矩阵数据进行二级内存纠错,即对每列的数据进行二级内存纠错。系统可以并行进行横向解码和纵向解码,有效地降低系统的纠错率。
在一些实施例中,该二维矩阵中每列的第一类内存颗粒111的数据可以是第1个单元130至第14个单元130中任意8个单元130的数据,该8个单元130可以是连续的。例如,第1列第一类内存颗粒111的数据可以是第1个单元130至第8个单元130的数据,第1列第一类内存颗粒111存储的重误差校正码是根据第1个单元130至第8个单元130的数据生成的。第1列第一类内存颗粒111存储的重误差校正码是对第1个单元130至第8个单元130的数据进行内存纠错。
又如,第2列第一类内存颗粒111的数据可以是第3个单元130至第10个单元130的数据,第2列第一类内存颗粒111存储的重误差校正码是根据第3个单元130至第10个单元130的数据生成的。第2列第一类内存颗粒111存储的重误差校正码是对第3个单元130至第10个单元130的数据进行内存纠错。
另外,根据可靠性要求选择第一类内存颗粒111用于生成重误差校正码的数据,即如果可靠性要求较高,二维矩阵中每列包括较多单元130的数据;如果可靠性要求较低,二维矩阵中每列包括较少单元130的数据。第一类内存颗粒111中第二类单元132可以存储由不同第一类单元131生成的重误差校正码,比如第1列第一类内存颗粒111中第二类单元132可以存根据第1个单元130至第8个单元130的数据生成的重误差校正码,以及第3个单元130至第10个单元130的数据生成的重误差校正码。以便于控制器对不同第一类单元131的数据进行内存纠错。
本申请实施例提供的一级内存纠错和二级内存纠错所使用的纠错算法包括奇偶校验码、汉明码(hamming code)、分组码和纠错码中任一种。一级内存纠错所使用的纠错算法和二级内存纠错所使用的纠错算法可以相同也可以不同,不予限定。
在一种示例中,一级内存纠错可以复用DDR5的纠错方式。例如,一级内存纠错可以采用汉明码或分组码。由于DDR5的内存纠错方式时延低,纠错能力可以覆盖存储级内存的大部分出错场景,因此在存储级内存的出错率较低时,可以确保存储级内存存储数据的高可靠性的条件下,有效地降低访问时延。
当一级内存纠错无法纠错或纠错失败时,可以利用单个或多个第一类内存颗粒111内的重误差校正码进行二级内存纠错。例如,二级内存纠错可以采用分组码或低密度奇偶校验码。在存储级内存的出错率较高时,二级内存纠错可以有效降低存储级内存的出错率,确保存储级内存存储数据的高可靠性,延长存储级内存的使用寿命。
上述示例了一级内存纠错设置在第一类内存颗粒111之间,即用属于同一组(通道)的第一类内存颗粒111的数据构建运行误差校正码码字,二级内存纠错设置在第一类内存颗粒111内,即用第一类内存颗粒111的数据构建重误差校正码码字。在实际应用中,存储级内存的两级内存纠错还可以采用其他设置方式。
上述实施例是以内存颗粒的位宽为8比特为例进行说明。在另一实施例中,存储级内存所使用的内存颗粒的位宽还可以是4比特。
示例地,如图5所示,存储级内存500包括20个内存颗粒510,每个内存颗粒510的位宽为4比特。20个内存颗粒510被划分为4组,每组包括5个内存颗粒510,每组包括的5个内存颗粒510的位宽之和为20比特。4组包括的20个内存颗粒510的位宽之和为80比特,则存储级内存500兼容DDR5的内存位宽。每组包含4个第一类内存颗粒511和1个第二类内存颗粒512。
可选地,如图6所示,存储级内存500包括的20个内存颗粒510还可以被划分为2组,每组包括10个内存颗粒510,每组包括的10个内存颗粒510的位宽之和为40比特。2组包括的20个内存颗粒510的位宽之和为80比特,则存储级内存500兼容DDR5的内存位宽。每组包含9个第一类内存颗粒511和1个第二类内存颗粒512。
关于第一类内存颗粒511和1个第二类内存颗粒512的详细解释可以参考上述第一类内存颗粒111和1个第二类内存颗粒112的阐述。
存储级内存作为主存使用时,存储级内存可以采用双列直插式存储模块(Dual-Inline-Memory-Modules,DIMM)接口安装在计算机设备上,以便于计算机设备的处理器对存储级内存进行读写操作。计算机设备可以是独立的服务器或者计算集群中的计算设备。
存储级内存与处理器之间还需要设置控制器,控制器用于实现指令转换、内存纠错、坏块管理和地址映射等功能。相对于存储级内存内置的控制器实现内存纠错,控制器连接的DRAM缓存数据导致SCM的访问时延不确定性的方案,本申请实施例提供的存储级内存无需内置控制器和DRAM,采用与存储级内存连接的处理器自带的内存控制器控制存储级内存,或在处理器和存储级内存之间外接其他控制器,来实现控制存储级内存,以及确保访问存储级内存的确定性时延,兼容DDR协议。
图7为本申请实施例提供的一种处理器系统示意图。处理器系统700包括控制器710、存储级内存720和处理器730。处理器系统700可以是一种计算机设备、服务器或者计算集群中的计算设备等。
处理器730是处理器系统700的运算核心和控制核心。处理器730可以是一块超大规模的集成电路。处理器730中安装有操作系统731和其他软件程序,使得处理器730实现对存储级内存720及各种快捷外围部件互连标准(Peripheral Component InterconnectExpress,PCIe)设备的访问。处理器730包括一个或多个处理器核(core)732。处理器730中的处理器核732例如是中央处理器(Central Processing unit,CPU)或其他特定集成电路(Application Specific Integrated Circuit,ASIC)。处理器730还可以是是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。实际应用中,处理器系统700也可以包括多个处理器。
本申请实施例中,处理器730用于向存储级内存720写入数据或从存储级内存720读取数据。
存储级内存720可以是处理器系统700的主存。存储级内存720通常用来存放操作系统731中各种正在运行的软件、输入和输出数据以及与外存交换的信息等。为了提高处理器730的访问速度,存储级内存720需要具备访问速度快的优点。处理器730能够通过控制器710高速访问存储级内存720,对存储级内存720中的任意一个存储单元进行读操作和写操作。
控制器710是处理器系统700内部控制存储级内存720并用于管理与规划从存储级内存720到处理器核732间的数据传输的总线电路控制器。通过控制器710,存储级内存720与处理器核732之间可以交换数据。
控制器710可以被集成到处理器730中,也可以被内置于北桥中,还可以是一块独立的内存控制器芯片。控制器710可以是一个单独的芯片,并通过系统总线与处理器核732连接。例如,与上述图7所示的处理器系统的区别在于,如图8所示,控制器710可以是存储级内存720和处理器730之间外接的控制器。该外接的控制器可以是一种集中式控制器,该控制器可以连接多个存储级内存720,从而,可以扩展处理器系统的主存的存储容量,还可以使存储级内存的更易兼容DDR协议,降低控制器的成本。
本申请实施例不对内存控制器的具体位置和存在形式进行限定。实际应用中,控制器710可以控制必要的逻辑以将数据写入存储级内存720或从存储级内存720中读取数据。控制器710可以是通用处理器、专用加速器、GPU、FPGA、嵌入式处理器等处理器系统中的内存控制器。
处理器系统700还包括各种输入/输出(Input/Output,I/O)设备740。I/O设备740是指进行数据传输的硬件,也可以理解为与I/O接口对接的设备。常见的I/O设备有网卡、打印机、键盘、鼠标等。所有的外存也可以作为I/O设备,如硬盘、软盘、光盘等。
处理器730、存储级内存720、控制器710和I/O设备740通过总线750相连。总线750可以包括一通路,用于在上述组件(如处理器730、存储级内存720)之间传送信息。总线750除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线750。总线750可以是PCIe总线,或扩展工业标准结构(extended industry standard architecture,EISA)总线、统一总线(unified bus,Ubus或UB)、计算机快速链接(compute express link,CXL)、缓存一致互联协议(cachecoherent interconnect for accelerators,CCIX)等。例如,处理器730可以通过PCIe总线访问这些I/O设备740。处理器730通过双倍速率(doubledata rate,DDR)总线和存储级内存720相连。这里,不同的存储级内存720可能采用不同的数据总线与处理器730通信,因此,DDR总线也可以替换为其他类型的数据总线,本申请实施例不对总线类型进行限定。
处理器系统700还包括DPU760,DPU760可以通过PCIe总线与处理器730连接。DPU760卸载处理器系统700其他芯片(如:处理器730)运行的与人工智能,存储等相关应用,提升处理器系统700的数据处理性能,降低处理器系统700的负载。处理器系统700还可以包括其他专用处理器。专用处理器是针对特定应用或者领域的处理器。例如用于处理图像数据的图像处理单元(graphics processing unit,GPU)或用于处理信号的DSP。
需要说明的是,处理器系统700可以称为主机。图7只是示意图,该处理器系统700中还可以包括其它部件,如还可以包括硬盘、光驱、电源、机箱、散热系统以及其他输入输出控制器和接口,在图7中未画出。本申请的实施例对该处理器系统700中包括的处理器、存储级内存和控制器的数量不做限定。
接下来,图9为本申请实施例提供的一种数据处理方法的示意图。以图7所示的结构为例进行说明。假设处理器730向存储级内存720写入或读取数据。本申请实施例提供的数据处理方法包括以下步骤。
在一些实施例中,处理器730向存储级内存720写入数据时执行S910至S930。
S910、控制器710执行指令转换,即控制器710将处理器730的写指令转换为存储级内存720可以识别的写指令。
S920、控制器710根据待写入数据生成运行误差校正码和重误差校正码。
控制器710确定待写入数据写入存储级内存720中第一类内存颗粒的位置。例如,控制器710进行地址映射,即将逻辑块地址转换为物理块地址。逻辑块地址(Logic BlockAddress,LBA)描述存储设备上数据所在区块的虚拟地址,一般用在如硬盘这样的辅助记忆设备。LBA可以指某个数据区块的地址或是某个地址所指向的数据区块。物理块地址(Physical Block Address,PBA)描述存储设备上数据所在区块的物理地址。LBA和PBA存在一一映射的关系,该映射关系通常保存在主存内。在申请实施例中,LBA和PBA的映射关系可以存储在存储级内存中。控制器710确定将待写入数据写入存储级内存720时,先确定逻辑块地址,再根据逻辑快地址,以及LBA和PBA的映射关系确定存储级内存720的物理块地址,根据该物理块地址将待写入数据写入存储级内存720中。
进而,控制器710基于纠错算法(如:汉明码或分组码)利用待写入数据中写入同一组第一类内存颗粒的数据生成运行误差校正码,基于纠错算法(如:分组码或低密度奇偶校验码)利用写入同一第一类内存颗粒的数据生成重误差校正码。
S930、控制器710向存储级内存720写入运行误差校正码、重误差校正码和待写入数据。
控制器710将待写入数据写入确定的第一类内存颗粒的位置,将运行误差校正码写入第二类内存颗粒。将重误差校正码写入第一类内存颗粒的第二类单元。
在另一些实施例中,处理器730从存储级内存720读取数据时执行S940至S970。
S940、控制器710执行指令转换,即控制器710将处理器730的读指令转换为存储级内存720可以识别的读指令。
S950、控制器710从存储级内存720读取数据、运行误差校正码和重误差校正码。
控制器710确定数据的在存储级内存720中的存储位置,即先确定逻辑块地址,再根据逻辑快地址,以及LBA和PBA的映射关系确定存储级内存720的物理块地址,根据该物理块地址从存储级内存720中读取数据。
S960、控制器710对读取数据进行一级内存纠错,即利用运行误差校正码校验读取的数据。
在一些实施例中,控制器710确定数据的存储位置,根据存储位置读取数据和运行误差校正码。控制器710基于纠错算法(如:汉明码或分组码)利用读取数据生成临时运行误差校正码,比较临时运行误差校正码和运行误差校正码,如果临时运行误差校正码和运行误差校正码相同,表示读取的数据正确;如果临时运行误差校正码和运行误差校正码不同,表示读取的数据存在误差。如果读取的数据与存储的代码不匹配,可以用奇偶校验位对读取的数据进行解密,以确定哪位出错,然后纠正出错的位。
可选地,如果一级内存纠错失败,执行S970、控制器710进行二级内存纠错,即利用重误差校正码校验第一类内存颗粒的数据。例如,控制器710采用分组码或低密度奇偶校验码利用重误差校正码对第一类内存颗粒存储的数据进行二级内存纠错。
在数据处理过程中,控制器710可以使用算法(如:汉明码)算法不断扫描数据,以检查并纠正每位的内存错误。
本申请实施例对控制器710将数据写入存储级内存720的位置以及从存储级内存720读取数据时的位置的确定方法不予限定,可以参考现有技术。以及,关于运行误差校正码和重误差校正码的生成方法,以及利用运行误差校正码和重误差校正码对读取的数据的校验方法也可以复用现有技术。
可以理解的是,为了实现上述实施例中的功能,计算设备包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
本实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种存储级内存,其特征在于,应用于处理器系统,所述处理器系统包括所述存储级内存和控制器,所述存储级内存包括多个内存颗粒,所述多个内存颗粒被划分为至少一个组;所述至少一个组中的第一组包括第一类内存颗粒和第二类内存颗粒;
所述第二类内存颗粒用于存储运行误差校正码,所述第二类内存颗粒兼容DDR协议,通过使用所述运行误差校正码,使所述控制器基于所述DDR协议对所述第一组中的所述第一类内存颗粒存储的数据通过复用DDR5的纠错方式进行一级内存纠错;
所述第一类内存颗粒用于存储数据和重误差校正码,所述重误差校正码用于当所述控制器用所述误差校正码对所述第一类内存颗粒存储的数据进行一级内存纠错失败时,对所述第一类内存颗粒存储的数据进行二级内存纠错,所述二级内存纠错能力强于所述一级内存纠错能力。
2.根据权利要求1所述的存储级内存,其特征在于,所述第一类内存颗粒包括M个第一类单元和N个第二类单元,所述第一类单元用于存储数据,所述第二类单元用于存储所述重误差校正码。
3.根据权利要求2所述的存储级内存,其特征在于,所述第一类单元的单位访问数据量和所述第二类单元的单位访问数据量均为所述第一类内存颗粒的位宽中一位的单位访问数据量。
4.根据权利要求1-3中任一项所述的存储级内存,其特征在于,所述第一类内存颗粒还包括第三类单元,所述第三类单元用于实现对所述第一类内存颗粒的单元进行坏块管理的功能。
5.根据权利要求1-3中任一项所述的存储级内存,其特征在于,所述存储级内存的位宽满足双倍数据速率DDR协议指示的内存位宽。
6.根据权利要求5所述的存储级内存,其特征在于,每组中第一类内存颗粒的数量和第二类内存颗粒的数量是依据所述第一类内存颗粒的位宽、所述第二类内存颗粒的位宽和所述DDR协议指示的内存位宽确定的。
7.根据权利要求6所述的存储级内存,其特征在于,所述DDR协议指示的内存位宽为80比特,所述第一类内存颗粒的位宽和所述第二类内存颗粒的位宽均为8比特,所述存储级内存包含的10个内存颗粒被划分为2组,每组包括4个第一类内存颗粒和1个第二类内存颗粒;所述每组包含的4个第一类内存颗粒和1个第二类内存颗粒的位宽之和为40比特,每位的单位访问数据量为16字节或32字节。
8.一种数据处理方法,其特征在于,所述方法由控制器执行,所述控制器连接至少一个存储级内存,所述存储级内存包括多个内存颗粒,所述多个内存颗粒被划分为至少一个组,所述至少一个组中的第一组包括第一类内存颗粒和第二类内存颗粒,所述第二类内存颗粒兼容DDR协议,所述方法包括:
所述控制器基于DDR协议对所述存储级内存中的第一组的第一类内存颗粒存储的数据通过复用DDR5的纠错方式进行一级内存纠错;
当所述一级内存纠错失败时,所述控制器获取所述第一类内存颗粒的数据,对所述第一类内存颗粒存储的数据进行二级内存纠错,所述二级内存纠错能力强于所述一级内存纠错能力。
9.根据权利要求8所述的方法,其特征在于,所述控制器对所述第一类内存颗粒存储的数据进行一级内存纠错,包括:
所述控制器采用汉明码或分组码对所述存储级内存中的第一类内存颗粒存储的数据进行一级内存纠错;
所述控制器对所述第一类内存颗粒存储的数据进行二级内存纠错,包括:
所述控制器采用分组码或低密度奇偶校验码对所述第一类内存颗粒存储的数据进行二级内存纠错。
10.根据权利要求8或9所述的方法,其特征在于,所述控制器对所述第一类内存颗粒存储的数据进行一级内存纠错,包括:
所述控制器对所述第一类内存颗粒存储的数据的128字节至512字节中单个比特进行内存纠错;
所述控制器对所述第一类内存颗粒存储的数据进行二级内存纠错,包括:
所述控制器对所述第一类内存颗粒存储的数据的2048字节至4096字节中百个比特进行二级内存纠错。
11.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述控制器将处理器的指令转换为所述存储级内存的指令,以及将所述存储级内存的指令转换为所述处理器的指令。
12.一种处理器系统,其特征在于,所述处理器系统包括控制器和至少一个如权利要求1-7中任一项所述的存储级内存和处理器,所述控制器分别连接所述处理器和至少一个所述存储级内存,所述控制器用于执行上述权利要求8-11中任一项所述的方法的操作步骤。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111513788 | 2021-12-13 | ||
| CN2021115137882 | 2021-12-13 | ||
| CN202210114650.3A CN116263643A (zh) | 2021-12-13 | 2022-01-30 | 存储级内存、数据处理方法和处理器系统 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210114650.3A Division CN116263643A (zh) | 2021-12-13 | 2022-01-30 | 存储级内存、数据处理方法和处理器系统 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN119248182A CN119248182A (zh) | 2025-01-03 |
| CN119248182B true CN119248182B (zh) | 2025-07-08 |
Family
ID=86722774
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210114650.3A Pending CN116263643A (zh) | 2021-12-13 | 2022-01-30 | 存储级内存、数据处理方法和处理器系统 |
| CN202411165652.0A Active CN119248182B (zh) | 2021-12-13 | 2022-01-30 | 存储级内存、数据处理方法和处理器系统 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210114650.3A Pending CN116263643A (zh) | 2021-12-13 | 2022-01-30 | 存储级内存、数据处理方法和处理器系统 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20240330109A1 (zh) |
| EP (1) | EP4428671B1 (zh) |
| KR (1) | KR20240112955A (zh) |
| CN (2) | CN116263643A (zh) |
| WO (1) | WO2023109571A1 (zh) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116841795B (zh) * | 2023-08-29 | 2024-01-12 | 苏州浪潮智能科技有限公司 | 一种内存设备控制方法、装置、电子设备及存储介质 |
| CN117971113B (zh) * | 2023-11-30 | 2024-12-03 | 中科驭数(北京)科技有限公司 | 存储阵列的动态资源分配方法、装置、电子设备、介质 |
| CN117971507B (zh) * | 2024-03-29 | 2024-06-21 | 苏州元脑智能科技有限公司 | 一种内存模组及数据存取方法 |
| CN120929420A (zh) * | 2024-05-11 | 2025-11-11 | 华为技术有限公司 | 内存模块、装置和服务器 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11170869B1 (en) * | 2020-06-04 | 2021-11-09 | Western Digital Technologies, Inc. | Dual data protection in storage devices |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6479638B2 (ja) * | 2015-12-09 | 2019-03-06 | 株式会社東芝 | ビデオサーバ装置およびデータ書き込み/読み出し方法 |
| CN107239361B (zh) * | 2016-03-29 | 2019-05-07 | 华为技术有限公司 | 数据处理装置及数据处理方法 |
| CN107516547A (zh) * | 2016-06-16 | 2017-12-26 | 中兴通讯股份有限公司 | 内存硬错误的处理方法及装置 |
| US10579470B1 (en) * | 2018-07-26 | 2020-03-03 | Cadence Design Systems, Inc. | Address failure detection for memory devices having inline storage configurations |
| KR102719499B1 (ko) * | 2018-10-15 | 2024-10-21 | 에스케이하이닉스 주식회사 | 에러 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템 |
| US11061767B2 (en) * | 2019-01-09 | 2021-07-13 | Synopsys, Inc. | Post-ECC CRC for DDR CRC retry performance improvement |
| CN111124741B (zh) * | 2019-12-12 | 2023-02-28 | 上海高性能集成电路设计中心 | 一种面向存储器特征的增强型校验纠错装置 |
| TWI732642B (zh) * | 2020-08-03 | 2021-07-01 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 |
| CN111679934B (zh) * | 2020-08-13 | 2020-11-17 | 杭州阿姆科技有限公司 | 基于raid信息的纠错方法、计算机可读存储介质及处理器 |
| US20220012126A1 (en) * | 2021-09-23 | 2022-01-13 | Intel Corporation | Translation cache and configurable ecc memory for reducing ecc memory overhead |
-
2022
- 2022-01-30 CN CN202210114650.3A patent/CN116263643A/zh active Pending
- 2022-01-30 CN CN202411165652.0A patent/CN119248182B/zh active Active
- 2022-12-06 EP EP22906321.9A patent/EP4428671B1/en active Active
- 2022-12-06 KR KR1020247022331A patent/KR20240112955A/ko active Pending
- 2022-12-06 WO PCT/CN2022/136844 patent/WO2023109571A1/zh not_active Ceased
-
2024
- 2024-06-11 US US18/740,001 patent/US20240330109A1/en active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11170869B1 (en) * | 2020-06-04 | 2021-11-09 | Western Digital Technologies, Inc. | Dual data protection in storage devices |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4428671A4 (en) | 2025-02-26 |
| CN119248182A (zh) | 2025-01-03 |
| KR20240112955A (ko) | 2024-07-19 |
| CN116263643A (zh) | 2023-06-16 |
| US20240330109A1 (en) | 2024-10-03 |
| EP4428671B1 (en) | 2025-11-26 |
| WO2023109571A1 (zh) | 2023-06-22 |
| EP4428671A1 (en) | 2024-09-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN119248182B (zh) | 存储级内存、数据处理方法和处理器系统 | |
| US11282552B2 (en) | Memory buffer with data scrambling and error correction | |
| US10459793B2 (en) | Data reliability information in a non-volatile memory device | |
| CN111831579B (zh) | 控制器及其操作方法和包括控制器的存储器系统 | |
| JP2017079050A (ja) | 保護されたデータとは別個のパリティデータの記憶 | |
| US20120066568A1 (en) | Storage device, electronic device, and data error correction method | |
| US9053009B2 (en) | High throughput flash memory system | |
| JP2017073121A (ja) | 軟判定復号のための物理アドレスの相互関連付け | |
| CN117171060A (zh) | 用于数据和额外数据部分的存储器子系统寻址 | |
| US11269725B2 (en) | Storage system and method for direct quad-level cell (QLC) programming | |
| US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
| US8533549B2 (en) | Memory system and computer system | |
| US11901032B2 (en) | Memory device and memory system capable of using redundancy memory cells | |
| CN113590038B (zh) | 固态硬盘的管理方法和固态硬盘 | |
| EP4524712A1 (en) | Storage system and data center includuing the same | |
| CN119917426B (zh) | 存储器管理方法及存储器控制器 | |
| US12019903B2 (en) | Data storage device with flow tracking ability | |
| US20240004579A1 (en) | Computational storage device, and computational storage system and electronic system including the same |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |