CN111858131A - 提供针对交叉点存储器中的行方向和列方向的纠错的技术 - Google Patents
提供针对交叉点存储器中的行方向和列方向的纠错的技术 Download PDFInfo
- Publication number
- CN111858131A CN111858131A CN202010220558.6A CN202010220558A CN111858131A CN 111858131 A CN111858131 A CN 111858131A CN 202010220558 A CN202010220558 A CN 202010220558A CN 111858131 A CN111858131 A CN 111858131A
- Authority
- CN
- China
- Prior art keywords
- data
- column
- memory
- error correction
- media access
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR 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/1068—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 sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Abstract
用于提供针对交叉点存储器中的行方向和列方向的纠错的技术包括存储器,该存储器包括耦合到具有交叉点架构的存储器介质的介质访问电路。介质访问电路被配置为从存储器介质读取数据列。另外,介质访问电路被配置为从存储器介质读取附加到该数据列的列纠错码(ECC)校验数据,并利用列ECC校验数据对数据列执行纠错以产生经纠错的数据。
Description
背景技术
确保数据的可靠性是存储器和存储设备面临的重大挑战。一种典型的方法是利用存储器控制器执行纠错码(ECC)过程,该过程涉及利用冗余位对数据集编码(例如,在写入过程期间),本文中称为纠错码(ECC)校验数据,以及在使用冗余位检测并纠正数据集中的错误时对数据集解码(例如,在读取过程期间)。然后,存储器控制器可以将经纠错的数据提供给处理器或其他组件(例如,加速器设备),以对经纠错的数据执行操作。为了减少由冗余位造成的开销,要防止损坏的每个数据集的大小往往相对较大,例如,2千比特或4千比特。然而,对于可以在存储器中(例如,在存储器管芯上,而不是由处理器或计算设备的其他组件)对数据执行计算的架构,上述方案呈现低效率。更具体地,从数据所在的存储器介质向存储器控制器发送数据(例如,通过总线)以执行纠错过程然后通过总线从存储器控制器发送回经纠错的数据会消耗能量和时间,并可能降低以其他方式将通过在存储器中执行计算而获得的任何效率。此外,ECC校验数据仅与存储器中的每一行数据相关联地存储。因此,如果系统能够读取所选列(即,不读取列与之相交的所有行),则没有ECC校验数据可用,并且因此,无法对读取的列执行纠错过程。
附图说明
本文所描述的概念是通过示例而不是通过限制的方式在附图中说明的。为了图示的简单和清楚,图中所示的元件不一定按比例绘制。在认为适当的情况下,在图中重复附图标记,以指示对应的或类似的元件。
图1是用于提供针对交叉点存储器中的数据的行和列的纠错的计算设备的至少一个实施例的简化图;
图2是包括在图1的计算设备中的存储器介质的至少一个实施例的简化图;
图3是包括在图1的计算设备中的存储器中的存储器介质的分区和介质访问电路的组件的至少一个实施例的简化图;
图4是可以在图1的计算设备的存储器中执行的张量运算的至少一个实施例的简化图;
图5是相对于可以由图1的计算设备使用的数据的行和列的ECC校验数据的布局的至少一个实施例的简化框图;并且
图6-10是可以由图1的计算设备执行的用于提供针对数据的行和列的纠错的方法的至少一个实施例的简化图。
具体实施方式
虽然本公开的概念易受各种修改和替代形式的影响,但其具体实施例已在附图中通过示例的方式示出,并将在本文中详细描述。然而,应当理解,无意将本公开的概念限制于所公开的特定形式,相反,其意图是涵盖与本公开和所附权利要求一致的所有修改、等同形式和替代形式。
说明书中对“一个实施例”、“实施例”、“说明性实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但每个实施例可能会或可能不一定会包括该特定的特征、结构或特性。而且,这些短语不一定指相同的实施例。此外,当结合实施例来描述特定的特征、结构或特性时,认为无论是否明确描述,结合其他实施例来实现这种特征、结构或特性在本领域技术人员的知识范围内。此外,应理解,以“至少一个A、B 和C”的形式包括在列表中的项目可以表示(A);(B);(C);(A和B); (A和C);(B和C);或(A、B和C)。类似地,以“A、B或C中的至少一个”的形式列出的项目可以表示(A);(B);(C);(A和B);(A和C); (B和C);或(A、B和C)。
在某些情况下,可以以硬件、固件、软件或其任何组合实现所公开的实施例。所公开的实施例也可以被实现为由暂时性或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在该介质上的指令,该指令可以由一个或多个处理器读取和执行。机器可读存储介质可以体现为用于以机器可读的形式存储或传输信息的任何存储设备、机制或其他物理结构(例如,易失性或非易失性存储器、介质盘或其他介质设备)。
在附图中,可以以特定的布置和/或排序示出一些结构或方法特征。然而,应当理解的是,可能不要求这样的特定的布置和/或排序。而是,在一些实施例中,可以以与说明性附图中所示不同的方式和/或顺序来布置这些特征。另外,在特定附图中包括结构或方法特征并不意味着暗示在所有实施例中都要求这种特征,并且在一些实施例中,可以不包括这种特征或这种特征可以与其他特征组合。
现在参考图1,用于提供针对交叉点存储器中的数据的行和列的纠错的计算设备100包括处理器102、存储器104、输入/输出(I/O)子系统112、数据存储设备114(例如,固态驱动器)和通信电路122。当然,在其他实施例中,计算设备100可以包括其他或附加组件,例如,在计算机中常见的那些组件(例如,显示器、外围设备等)。另外,在一些实施例中,说明性组件中的一个或多个可以并入另一组件或以其他方式形成另一组件的一部分。如本文所描述的,计算设备100(并且尤其是计算设备100的存储器 104)提供针对数据的纠错,而不管数据是在行方向还是在列方向被访问。更具体地,对于要写入存储器104中包括的交叉点存储器介质的数据行,存储器104将纠错码(ECC)校验数据与数据行(例如,以行为主格式写入的数据,其中,行的连续元素在存储器中是连续的,沿着交叉点存储器介质中的逻辑单元行)相关联地(例如,附加到该数据行)写入交叉点存储器介质。类似地,对于要写入交叉点存储器介质的数据列,存储器104 将ECC校验数据与数据列(例如,以列为主格式写入的数据,其中列的连续元素在存储器中是连续的,沿着交叉点存储器介质中的逻辑单元列)相关联地(例如,附加到该数据列)写入交叉点存储器介质。此外,当有选择地读取列或行时,存储器104利用对应的ECC校验数据来检测并纠正数据中可能已经出现的任何错误(例如,由于损坏)。
此外,在说明性实施例中,存储器104提供多级纠错,其中一级在介质访问电路108内执行(例如,由计算类ECC逻辑单元134执行),并且另一级由存储器控制器106提供(例如,由存储类ECC逻辑单元150提供)。如本文更详细地解释的,在说明性实施例中,介质访问电路108在存储器介质110的本地(例如,在同一管芯上、在同一封装中等),并且可以对来自存储器介质110的数据执行计算操作,从而消除对(例如,通过总线) 将数据发送到处理器102或计算设备100的另一组件以对数据执行计算的需要。为了便于在介质访问电路108中执行计算操作,介质访问电路108 中的计算类ECC逻辑单元134使用上面描述的过程(即,对数据行和/或数据列执行纠错)来产生从存储器介质110读取的数据的经纠错的版本。计算类ECC逻辑单元134可以体现为被配置为确定从存储器介质110读取的数据是否包含错误并利用(多种)纠错算法(例如,Reed-Solomon码或Bose– Chaudhuri–Hocquenghem(BCH)码)纠正任何错误的任何设备或电路(例如,可重新配置电路、专用集成电路(ASIC)等)。
类似地,存储类ECC逻辑单元150可以体现为被配置为确定从存储器介质110读取的数据(例如,由介质访问电路108发送的数据)是否包含错误并利用(多种)纠错算法(例如,Reed-Solomon码、Bose–Chaudhuri– Hocquenghem(BCH)码或低密度奇偶校验(LDPC)码)纠正任何错误的任何设备或电路(例如,可重新配置电路、专用集成电路(ASIC)等)。在说明性实施例中,与可以对2千比特、4千比特或其他大小的数据集进行操作的存储类ECC逻辑单元150相比,计算类ECC逻辑单元134可以被配置为对较小的数据集(例如,512比特)进行操作。类似地,计算类ECC逻辑单元134可以执行比由存储类ECC逻辑单元150执行的算法(例如, Reed-Solomon算法)更快、计算更不密集的纠错算法(例如,BCH算法),这是由于由计算类ECC逻辑单元134纠正的数据典型地在存储器中保留更短的时间段(例如,在存储器104中执行计算操作时临时写入存储器的数据),导致的错误少于由存储类ECC逻辑单元150纠正的数据的错误。
在说明性实施例中,存储器介质110具有三维交叉点架构,该架构具有不同于其他存储器架构(例如,动态随机存取存储器(DRAM))的数据访问特性,例如,使得能够访问每个分块一位,并导致在对同一分区或其他分区的读取或写入之间的时间延迟。介质访问电路108被配置为高效地利用(例如,在功耗和速度方面)存储器介质110的架构,例如,通过在给定的分区内并行地访问多个分块,利用暂存器(例如,相对较小、低时延的存储器)暂时保留从存储器介质110读取的数据并对其进行操作,并且将从一个分区读取的数据广播到存储器104的其他部分,以使得能够在存储器104内并行地执行矩阵计算。另外,在说明性实施例中,处理器102 可以发送更高级别的请求(例如,要执行的矩阵计算的类型)并提供要在请求的操作中使用的矩阵(例如,输入矩阵、权重矩阵和输出矩阵)的(例如,在存储器中的)位置和维数,而不是向存储器104发送读取或写入请求以访问矩阵数据。此外,存储器104不是将结果数据发送回处理器102,而是仅发送回确认(例如,“完成”),该确认指示所请求的操作已经完成。因此,许多计算操作,例如,人工智能操作(例如,涉及矩阵计算的张量运算)可以在存储器104中执行,其中处理器102与存储器104之间的总线的使用量最小。在一些实施例中,介质访问电路108包括在与存储器介质110相同的管芯中。在其他实施例中,介质访问电路108位于单独的管芯上,但与存储器介质110在同一封装中。在另一实施例中,介质访问电路108位于单独的管芯和单独的封装中,但与存储器介质110位于同一双列直插式存储器模块(DIMM)或板上。
处理器102可以体现为能够执行本文描述的操作(例如,执行应用(例如,可以利用神经网络或其他机器学习结构来学习和进行推理的人工智能相关的应用))的任何设备或电路(例如,(多个)多核处理器、微控制器或其他处理器或处理/控制电路)。在一些实施例中,处理器102可以体现为、包括或耦合到FPGA、专用集成电路(ASIC)、可重新配置硬件或硬件电路或其他专用硬件,以促进本文所描述的功能的执行。
可以包括非易失性存储器(例如,两级存储器方案中的远存储器)的存储器104包括存储器介质110和在下面(例如,在较低位置)并耦合到存储器介质110的介质访问电路108(例如,诸如由互补金属氧化物半导体 (CMOS)或其他材料构成的集成电路之类的设备或电路)。介质访问电路 108还连接到存储器控制器106,存储器控制器106可以体现为被配置为有选择地从存储器介质110读取和/或写入存储器介质110并对存储器介质110 中存在的数据(例如,矩阵数据)执行张量运算(例如,响应于来自处理器102的请求,处理器102可能正在执行依赖于张量运算来训练神经网络和/或进行推理的人工智能相关的应用)的任何设备或电路(例如,处理器、协处理器、专用电路等)。简要参考图2,在说明性实施例中,存储器介质 110包括分块架构,本文中也称为交叉点架构(例如,其中存储器单元位于字线和位线的交叉处并且可单独寻址并且其中位存储基于体电阻的变化的架构),其中每个存储器单元(例如,分块)210、212、214、216、218、 220、222、224、226、228、230、232、234、236、238、240可由x参数和 y参数(例如,列和行)寻址。存储器介质110包括多个分区,其中的每个分区包括分块架构。分区可以堆叠为层202、204、206以形成三维交叉点架构(例如,Intel3D XPointTM存储器)。与其中只有固定大小的多位数据结构(例如,字节、字等)可寻址的典型存储器设备不同,介质访问电路108 被配置为在存储器控制器106的请求下从存储器介质110读取单独的位或其他数据单元,该存储器控制器106可以响应于从处理器102接收到对应的请求而产生该请求。
返回参考图1,在说明性实施例中,介质访问电路108包括张量逻辑单元130,其可以体现为被配置为从介质访问电路108的其他部分卸载张量运算的执行的任何设备或电路(例如,CMOS电路)。在说明性实施例中,张量逻辑单元130包括多个存储器暂存器132,其中的每个暂存器132可以体现为可用于提供对已从存储器介质110读取的数据(例如,矩阵数据)的相对快速(例如,低时延)访问的任何设备或电路(例如,静态随机存取存储器(SRAM)、寄存器文件等)。在说明性实施例中,与具有相对较慢的访问时间和较大容量的存储器介质110相比,暂存器132提供更快的读取和写入访问时间。张量逻辑单元130另外地包括上面讨论的计算类纠错码 (ECC)逻辑单元134。另外,在说明性实施例中,张量逻辑单元130包括多个计算逻辑单元136,其中的每个计算逻辑单元136可以体现为被配置为 (例如,在计算类ECC逻辑单元134已经对数据执行了纠错过程之后)对从存储器介质110读取的数据执行计算操作的任何设备或电路(例如,可重新配置电路、ASIC等)。
简要参考图3,在说明性实施例中,存储器104的组件被划分为群组 310、320、330(例如,组件的分组)。群组310包括存储器介质110的多个分区311、一组暂存器312、314、316(每一个都类似于图1的暂存器132) 和对应的计算逻辑单元318(类似于图1的计算逻辑单元136)。类似地,群组320包括存储器介质110的另一组分区321、对应的一组暂存器322、324、326和对应的计算逻辑单元328。群组330也包括存储器介质110的一组分区331、对应的一组暂存器332、334、336和计算逻辑单元338。在说明性实施例中,在操作中,计算逻辑单元318读取矩阵数据的子集(例如,来自一组分区(例如,分区311)的输入矩阵A的一个值)并将读取的数据提供给计算类ECC逻辑单元134,以执行纠错过程来纠正数据中的任何错误。计算逻辑单元318另外地可以(例如,在已经执行了纠错过程之后)将数据写入对应的暂存器312,并且可以将该矩阵数据的相同子集广播到其他群组的对应暂存器(例如,广播到暂存器322、332)。类似地,计算逻辑单元328可以将矩阵数据的另一子集(例如,输入矩阵A的另一个值)从对应的一组分区321读取到对应的暂存器322中,从而利用计算类 ECC逻辑单元134纠正任何错误,并将该矩阵数据的子集广播到要存储针对该矩阵的数据的其他暂存器(例如,广播到暂存器312、332)。计算逻辑单元338可以执行类似的操作。
通过将已经从存储器介质110的对应的一组分区读取的矩阵数据广播到其他暂存器,介质访问电路108减少了必须访问存储器介质110的给定部分(例如,分区的组)以获得相同的矩阵数据的次数(例如,读取的矩阵数据可以在从存储器介质110读取一次之后被广播到多个暂存器,而不是多次从存储器介质110读取相同的矩阵数据)。此外,通过利用多个计算逻辑单元318、328、338(每个计算逻辑单元都与对应的暂存器312、314、 316、322、324、326、332、334、336相关联),介质访问电路108可以同时(例如,并行)执行张量运算的部分(例如,矩阵乘法和累加)。应当理解,虽然为了简单起见在图3中示出了三个群组310、320、330,但是群组和对应的分区、暂存器和计算逻辑单元的实际数量可以取决于特定的实施例而不同。
简要参考图4,示出了可以由存储器104执行的矩阵乘法(例如,矩阵乘法和累加)运算400的示例。如图所示,将输入矩阵A中的矩阵数据乘以另一个矩阵B中的矩阵数据(例如,用于卷积神经网络的层的权重数据),并将结果数据写入输出矩阵C。图4中表示的每个矩阵作为矩阵数据临时存储在介质访问电路108的暂存器132中。在一些实施例中,输出矩阵C 可以用作后续张量运算的输入矩阵(例如,作为卷积神经网络的后续层的输入矩阵)。
简要参考图5,在说明性实施例中,由计算设备100(例如,由存储器104)利用的ECC方案是一个系统方案,这意味着数据以其原始形式(例如,未转换为具有冗余数据以启用纠错的纠错码字)被写入存储器介质110 并且可用于检测并纠正原始数据中的错误的冗余数据(本文中称为“ECC 校验数据”)被附加到原始数据。因此,存储器介质110包括用于行ECC校验数据510(例如,可用于使用纠错算法检测并纠正对应行中的一个或多个错误的冗余数据)的保留单元集和用于列ECC校验数据520(例如,可用于使用纠错算法检测并纠正对应列中的一个或多个错误的冗余数据)的保留单元集。存储器介质110另外地可以包括用于可用于纠正列ECC校验数据的行ECC校验数据530的保留单元集。例如,对于原始数据的给定行502,可用于检测并纠正该行502中的错误的对应行ECC校验数据512被附加到交叉点存储器介质110的同一逻辑行中的一组附加单元中。类似地,对于原始数据的给定列504,可用于检测并纠正列504中的错误的对应列 ECC校验数据522被附加到交叉点存储器介质110的同一逻辑列中的一组附加单元中。如上面陈述的,在一些实施例中,计算设备100(例如,存储器104)可以另外写入针对列ECC校验数据的行ECC校验数据,该行ECC 校验数据可以用于检测并纠正列ECC校验数据520中的任何错误(例如,在逐行基础上)。
返回参考图1,存储器104可以包括非易失性存储器和易失性存储器。非易失性存储器可以体现为能够以持久方式(即使到非易失性存储器的电力被中断)存储数据的任何类型的数据存储装置。例如,非易失性存储器可以体现为一个或多个非易失性存储器设备。非易失性存储器设备可以包括一个或多个这样的存储器设备:该存储器设备以实现位级可寻址性(例如,从单独的数据位而不是字节或其他更大的数据单元读取和/或写入单独的数据位而不是字节或其他更大的数据单元的能力)的交叉点架构配置,并且被说明性地体现为三维(3D)交叉点存储器。在一些实施例中,非易失性存储器可以另外包括其他类型的存储器,包括使用硫族化合物相变材料(例如,硫族化合物玻璃)的存储器设备、铁电晶体管随机存取存储器 (FeTRAM)、基于纳米线的非易失性存储器、相变存储器(PCM)、结合忆阻器技术的存储器、磁阻随机存取存储器(MRAM)或自旋转移矩(STT) -MRAM的任何组合。易失性存储器可以体现为能够在供电给易失性存储器时存储数据的任何类型的数据存储装置。例如,易失性存储器可以体现为一个或多个易失性存储器设备,并且在理解在其他实施例中易失性存储器可以体现为其他类型的非持久性数据存储装置的情况下在下文中定期地被称为易失性存储器。易失性存储器可以具有实现位级可寻址性的架构,该架构类似于上面描述的架构。
处理器102和存储器104经由I/O子系统112通信地耦合到计算设备 100的其他组件,该I/O子系统112可以体现为用于促进与处理器102和/ 或主存储器104和计算设备100的其他组件的输入/输出操作的电路和/或组件。例如,I/O子系统112可以体现为或以其他方式包括存储器控制器中心、输入/输出控制中心、集成传感器中心、固件设备、通信链路(例如,点对点链路、总线链路、电线、电缆、光导、印刷电路板迹线等)和/或用于促进输入/输出操作的其他组件和子系统。在一些实施例中,I/O子系统112 可以形成片上系统(SoC)的一部分,并且与处理器102、主存储器104和计算设备100的其他组件中的一个或多个一起并入单个芯片中。
数据存储设备114可以体现为被配置用于短期或长期数据存储的任何类型的设备,例如,存储器设备和电路、存储器卡、硬盘驱动器、固态驱动器或其他数据存储设备。在说明性实施例中,数据存储设备114包括类似于存储器控制器106的存储器控制器116、类似于存储类ECC逻辑单元 150的存储类ECC逻辑单元160、类似于存储器介质110的存储介质120 和类似于介质访问电路108的介质访问电路118,该介质访问电路118包括类似于张量逻辑单元130的张量逻辑单元140、类似于暂存器132的暂存器 142、类似于计算类ECC逻辑单元134的计算类ECC逻辑单元144和类似于计算逻辑单元136的计算逻辑单元146。因此,在说明性实施例中,数据存储设备114能够执行针对数据的行和列两者的纠错,执行多级纠错(例如,利用介质访问电路118和存储器控制器116),并且对存储在存储介质 120中的数据执行计算操作。数据存储设备114可以包括存储用于数据存储设备114的数据和固件代码的系统分区以及存储用于操作系统的数据文件和可执行文件的一个或多个操作系统分区。
通信电路122可以体现为能够在计算设备100与另一设备之间通过网络实现通信的任何通信电路、设备或其集合。通信电路122可以被配置为使用任何一种或多种通信技术(例如,有线或无线通信)和相关联的协议 (例如,以太网、WiMAX等)来实现这种通信。
说明性通信电路122包括网络接口控制器(NIC)124,其也可以称为主机结构接口(HFI)。NIC 124可以体现为一个或多个插入板、子卡、网络接口卡、控制器芯片、芯片组或计算设备100可以用于连接另一计算设备的其他设备。在一些实施例中,NIC 124可以体现为包括一个或多个处理器的片上系统(SoC)的一部分,或者被包括在还包含一个或多个处理器的多芯片封装上。在一些实施例中,NIC 124可以包括均在NIC 124本地的本地处理器(未示出)和/或本地存储器(未示出)。在这样的实施例中,NIC 124 的本地处理器能够执行处理器102的功能中的一个或多个。另外地或可替代地,在这样的实施例中,NIC 124的本地存储器可以在板级、插座级、芯片级和/或其他级别被集成到计算设备100的一个或多个组件。
现在参考图6,在操作中,计算设备100可以执行用于提供针对数据的行和列的纠错的方法600。参考存储器104描述方法600。然而,应当理解,可以另外地或可替代地使用数据存储设备114的存储器来执行方法600。方法600从框602开始,在框602中,计算设备100(例如,存储器104)确定是否启用增强的纠错(例如,针对数据的行和列的纠错)。计算设备100 可以响应于配置设置(例如,在配置文件中)指示启用增强的纠错的确定、响应于ECC逻辑单元134、150存在的确定和/或基于其他因素来启用增强的纠错。无论如何,响应于启用增强的纠错的确定,方法600前进到框604,在框604中,计算设备100(例如,存储器104)确定是否已经(例如,从执行利用一个或多个存储器内计算操作的应用的处理器102)接收到写入数据的请求。如果已经接收到该请求,则方法600前进到框606,在框606中,计算设备100利用介质访问电路108向存储器介质(例如,存储器介质110) 写入数据。在说明性实施例中,如框608中指示的,计算设备100利用与存储器介质110位于同一管芯上的介质访问电路,向存储器介质110写入数据(即,介质访问电路108与存储器介质110位于同一管芯上)。如框610 中指示的,介质访问电路108可以利用互补金属氧化物半导体(CMOS)将数据写入存储器介质110(例如,介质访问电路108可以由CMOS形成)。在说明性实施例中,如框612中指示的,介质访问电路108将数据写入具有交叉点架构(例如,其中存储器单元位于字线和位线的交叉处并且可单独寻址并且其中位存储基于体电阻的变化的架构)的存储器介质(例如,存储器介质110)。此外,并且如框614中指示的,介质访问电路108可以将数据写入具有三维交叉点架构(例如,如参考图2所描述的其中分块的组堆叠为层的架构)的存储器介质(例如,存储器介质110)。
如框616中指示的,介质访问电路108可以以列为主格式(例如,列的连续元素是连续的格式)写入数据,并且在这样做时,可以写入一个或多个数据列,如框618中指示的。此外,并且如框620中指示的,介质访问电路108可以针对被写入的数据的每列写入列ECC校验数据。在这样做时,并且如框622中指示的,介质访问电路108将列ECC校验数据附加到每个对应的数据列(例如,写入的列)。在一些实施例中,如框624中指示的,介质访问电路108可以附加由存储器控制器106或处理器102(例如,而不是由介质访问电路108本身)产生的列ECC校验数据。可替代地,如框626中指示的,介质访问电路108可以以行为主格式写入数据。在这样做时,如框628中指示的,介质访问电路108可以将一个或多个数据行写入存储器介质110。此外,如框630中指示的,介质访问电路108可以针对被写入的数据的每行写入行ECC校验数据。在这样做时,并且如框632中指示的,介质访问电路108将行ECC校验数据附加到每个对应的数据行。如框634中指示的,介质访问电路108可以附加由存储器控制器106或处理器102(例如,而不是由介质访问电路108本身)产生的行ECC校验数据。在一些实施例中,并且如框636中指示的,为了提供附加的纠错层,介质访问电路108可以以行为主格式写入针对列ECC校验数据的行ECC 校验数据(例如,以检测并纠正列ECC校验数据520中存在的任何错误),例如,在存储器介质110的部分530中。随后,方法600循环回到框602 以确定是否继续启用增强的纠错。返回参考框604,如果没有接收到写入请求(例如,如果相反地接收到读取请求),则方法600可以前进到框638,在框638中,计算设备100利用存储器104中包括的介质访问电路(例如,介质访问电路108)从存储器介质110读取数据。
现在参考图7,如框640中指示的,在从存储器介质110读取数据时,计算设备100可以利用与存储器介质110位于同一管芯上的介质访问电路从存储器介质110读取数据(例如,介质访问电路108可以与存储器介质 110位于同一管芯上)。如框642中指示的,计算设备100可以利用CMOS 从存储器介质110读取数据(例如,介质访问电路108可以由CMOS形成)。如框644中指示的,在从存储器介质110读取数据时,介质访问电路108 可以响应于执行存储器内计算操作的请求而读取数据。例如,并且如框646 中指示的,介质访问电路108可以响应于执行张量运算的请求(例如,从处理器102通过存储器控制器106发送到介质访问电路108的请求)而读取数据。如框648中指示的,在一些实施例中,介质访问电路108可以响应于执行矩阵乘法运算的请求而读取数据。例如,如框650中指示的,请求可以是执行矩阵乘法-累加运算。如框652中指示的,在读取数据时,介质访问电路108可以从具有交叉点架构(例如,其中存储器单元位于字线和位线的交叉处并且可单独寻址并且其中位存储基于体电阻的变化的架构) 的存储器介质(例如,存储器介质110)读取数据。此外,并且如框654中指示的,介质访问电路108可以从具有三维交叉点架构(例如,如参考图2 所描述的其中分块的组堆叠为层的架构)的存储器介质(例如,存储器介质110)读取数据。
如框656中指示的,在读取数据时,介质访问电路108可以读取矩阵数据(例如,要一起相乘的输入矩阵A和权重矩阵B)。此外,并且如框658 中指示的,介质访问电路108可以从存储器介质110的多个分区(例如,群组(例如,群组310)的分区)读取数据。在这样做时,如框660中指示的,介质访问电路108可以从存储器介质110的四个分区(例如,群组310 包含四个分区)读取。在说明性实施例中,如框662中指示的,每个分区保存128位,并且在从四个分区读取时,介质访问电路108读取512位。在其他实施例中,介质访问电路108可以从不同数量的分区读取和/或每个分区中的位数可以不同于128位。如框664中指示的,介质访问电路108 可以以行为主格式(例如,图5的行502)读取一个数据行,并且另外可以读取附加到该数据行的行ECC校验数据(例如,图5的行ECC校验数据 512),如框666中指示的。可替代地,如框668中指示的,介质访问电路 108可以以列为主格式(例如,图5的列504)读取一个数据列,并且另外可以读取附加到该数据列的列ECC校验数据(例如,图5的列ECC校验数据522),如框670中指示的。随后,方法600前进到图8的框672,在框 672中,计算设备100(例如,存储器104)利用介质访问电路108对读取的数据执行纠错(例如,纠错算法),以产生结果数据集(本文中称为经纠错的数据),其中,读取的数据中的一个或多个错误(如果有)已经被纠正。
现在参考图8,在说明性实施例中,并且如框674中指示的,介质访问电路108利用位于介质访问电路108中的纠错逻辑单元(例如,计算类ECC 逻辑单元134)对读取的数据执行纠错。在这样做时,并且如框676中指示的,存储器104可以利用与存储器介质110位于同一管芯中的纠错逻辑单元来执行纠错(例如,计算类ECC逻辑单元134可以与存储器介质110位于同一管芯上)。如框678中指示的,在说明性实施例中,存储器104可以利用与计算设备100的存储器控制器中的纠错逻辑单元不同的纠错逻辑单元来执行纠错(例如,计算类ECC逻辑单元134不同于存储类ECC逻辑单元150)。
如上文参考图1所讨论的,并且如框680中指示的,当在介质访问电路108中执行纠错时(例如,在计算类ECC逻辑单元134中),存储器104 可以利用被配置为与位于存储器控制器106中的纠错逻辑单元相比对不同大小的数据集进行操作的纠错逻辑单元执行纠错(例如,计算类ECC逻辑单元134被配置为与存储类ECC逻辑单元150相比对不同大小的数据集进行操作)。例如,并且如框682中指示的,存储器104可以利用被配置为与存储器控制器中的纠错逻辑单元相比对更小的数据集进行操作的纠错逻辑单元来执行纠错(例如,计算类ECC逻辑单元134被配置为与存储类ECC 逻辑单元150相比对更小的数据集进行操作)。类似地,并且如框684中指示的,存储器104可以利用被配置为与位于存储器控制器106中的纠错逻辑单元相比执行不同的纠错算法的纠错逻辑单元来执行纠错(例如,计算类ECC逻辑单元134可以被配置为执行BCH算法,并且存储类ECC逻辑单元150可以被配置为执行Reed-Solomon纠错算法。
如框686中指示的,介质访问电路108可以利用对应的列ECC校验数据(例如,列ECC校验数据522)对一个数据列(例如,列504)执行纠错,而不读取与该列相关联(例如,相交)的每一行。即,假设执行纠错所需的ECC校验数据被附加到列,则介质访问电路108不需要读取与该列相交的每一行以及与这些行相关联的行ECC校验数据,以检测并纠正列中的错误(即,从而节省了否则在对列执行纠错时可能花费的时间和能量)。如框688中指示的,在一些实施例中,介质访问电路108可以通过利用针对列ECC校验数据的行ECC校验数据(例如,行ECC校验数据530,该行ECC校验数据530包括可用于检测并纠正图5的列ECC校验数据520中的错误的冗余数据)来对列ECC数据(例如,来自框686)执行纠错。如框690中指示的,介质访问电路108可以使用对应的行ECC校验数据对行执行纠错(例如,如果读取了行,例如,行502)。在框691中,介质访问电路108基于检测到的错误是否实际上被纠错过程纠正来确定随后的动作过程。如果检测到的错误实际上被纠错过程纠正,则该方法前进到框692,在框692中,存储器104可以将计算类ECC逻辑单元134产生的经纠错的数据写入介质访问电路108中的一个或多个暂存器(例如,暂存器132中的一个或多个)。随后,方法600前进到图9的框694,在框694中,存储器104可以利用介质访问电路108对经纠错的数据(例如,利用(多个) 计算逻辑单元136)执行一个或多个存储器内计算操作。
现在参考图9,如框696中指示的,存储器104可以利用介质访问电路 108对经纠错的数据执行一个或多个张量运算,例如,一个或多个矩阵乘法运算,如框698中指示的。(多个)矩阵乘法运算可以包括一个或多个矩阵乘法-累加运算,如框700中指示的(例如,将输入矩阵A乘以权重矩阵B 并累加到输出矩阵C)。在框702中,存储器104可以向计算设备100的另一组件提供经纠错的数据。在这样做时,并且如框704中指示的,存储器 104可以利用位于介质访问电路108外部的纠错逻辑单元(例如,存储类 ECC逻辑单元150)对数据执行附加的纠错。在说明性实施例中,并且如框706中指示的,存储器104利用被配置为与介质访问电路108中的纠错逻辑单元相比对更大的数据集进行操作的纠错逻辑单元来执行附加的纠错 (例如,存储类ECC逻辑单元150被配置为与计算类ECC逻辑单元134 相比对更大的数据集进行操作)。因此,在执行附加的纠错时,存储类ECC 逻辑单元150可以对在框672中由计算类ECC逻辑单元134产生的经纠错的数据以及其他数据(例如,来自存储器介质110的附加分区的数据)进行操作。在说明性实施例中,如框708中指示的,存储器104可以利用被配置为对2千比特或4千比特数据集进行操作的纠错逻辑单元来执行附加的纠错(例如,存储类ECC逻辑单元150被配置为对2千比特或4千比特数据集进行操作)。类似地,并且如框710中指示的,存储器104可以利用被配置为与位于介质访问电路中的纠错逻辑单元相比执行不同的纠错算法的纠错逻辑单元来执行附加的纠错(例如,存储类ECC逻辑单元150可以被配置为执行Reed-Solomon纠错算法,而计算类ECC逻辑单元134可以被配置为执行BCH纠错算法)。
如框712中指示的,存储器104可以将经纠错的数据提供给计算设备100的处理器(例如,处理器102)。在这样做时,并且如框714中指示的,存储器104可以向执行人工智能应用(例如,依赖于张量运算来训练神经网络和/或进行推理的应用)的处理器(例如,处理器102)提供经纠错的数据。相关地,并且如框716中指示的,存储器104可以提供指示人工智能操作的数据(例如,提供给处理器102的经纠错的数据可以指示推理,例如,对输入图像中的对象的识别,或其他与人工智能相关的输出数据)。随后,方法600循环回到图6的框602,在框602中,计算设备100确定是否继续启用增强的纠错。
参考图8的框691,如果数据中仍然存在错误,则方法600相反地分支到图10的框718,在框718中,存储器104(例如,介质访问电路108)使用附加的列或行ECC校验数据对数据执行纠错。例如,并且如框720中指示的,介质访问电路108可以响应于在读取的行中仍然存在错误的确定,利用列ECC校验数据来执行纠错。相反地,并且如框722中指示的,介质访问电路108可以响应于在读取的列中仍然存在错误的确定,利用行ECC 校验数据来执行纠错。如框724中指示的,介质访问电路108可以迭代地对与矩阵相关联的行和列执行纠错,直到整个矩阵可行为止(例如,矩阵中的所有错误已被纠正)。在框726中,存储器104(例如,介质访问电路 108)基于是否所有错误已被纠正来确定随后的动作过程。如果所有错误已被纠正,则方法600分支到图9的框694,如上文所描述的,在框694中,介质访问电路108可以对经纠错的数据执行存储器内计算操作。否则,方法600前进到框728,在框728中,存储器104向主机(例如,向处理器 102)报告ECC致命指示(例如,提供指示纠错过程不成功的数据)。随后,如框730中指示的,主机(例如,处理器102)可以执行附加操作以获取数据。例如,并且如框732中指示的,主机可以从另一个源读取数据的冗余副本。在另一个实施例中,如框734中指示的,主机可以从RAID(廉价磁盘冗余阵列)映像重新创建数据。此外,并且如框736中指示的,主机可以将获取的数据提供给存储器104(例如,提供给介质访问电路108)。随后,方法600前进到图9的框694,如上文所描述的,在框694中,介质访问电路108可以对数据执行存储器内计算操作。尽管在上面操作被描述为对特定数据大小(例如,512比特、2千比特、4千比特)执行,但应当理解,在其他实施例中,数据大小可以不同。
示例
下面提供了本文公开的技术的说明性示例。这些技术的实施例可以包括下面描述的示例中的任意一个或多个以及其任意组合。
示例1包括一种存储器,该存储器包括耦合到具有交叉点架构的存储器介质的介质访问电路,其中介质访问电路用于:从存储器介质读取数据列;从存储器介质读取附加到该数据列的列纠错码(ECC)校验数据;以及利用列ECC校验数据对该数据列执行纠错以产生经纠错的数据。
示例2包括示例1的主题,并且其中对数据列执行纠错包括执行纠错而不读取与数据列相关联的数据行。
示例3包括示例1和2中任一个的主题,并且其中介质访问电路进一步用于利用与列ECC校验数据相关联的行ECC校验数据对列ECC校验数据执行纠错。
示例4包括示例1-3中任一个的主题,并且其中介质访问电路进一步用于以列为主格式将数据列写入存储器介质;以及将列ECC校验数据附加到数据列。
示例5包括示例1-4中任一个的主题,并且其中该电路进一步用于以行为主格式写入针对列ECC校验数据的行ECC校验数据,其中行ECC校验数据可用于检测并纠正列ECC校验数据中的至少一个错误。
示例6包括示例1-5中任一个的主题,并且其中将列ECC校验数据附加到数据列包括附加由连接到介质访问电路的存储器控制器产生的列ECC 校验数据。
示例7包括示例1-6中任一个的主题,并且其中介质访问电路进一步用于以行为主格式向存储器介质写入数据行;以及将行ECC校验数据附加到数据行,该行ECC校验数据可用于检测并纠正该数据行中存在的一个或多个错误。
示例8包括示例1-7中任一个的主题,并且其中从存储器介质读取数据列包括从具有三维交叉点架构的存储器介质读取数据列。
示例9包括示例1-8中任一个的主题,并且其中介质访问电路进一步用于将经纠错的数据写入暂存器。
示例10包括示例1-9中任一个的主题,并且其中介质访问电路进一步用于使用对应的列ECC校验数据和行ECC校验数据迭代地对矩阵的列和行执行纠错,直到在矩阵中检测到的每个错误已经被纠正为止。
示例11包括示例1-10中任一个的主题,并且其中介质访问电路进一步用于对经纠错的数据执行存储器内计算操作。
示例12包括示例1-11中任一个的主题,并且其中对经纠错的数据执行存储器内计算操作包括对经纠错的数据执行张量运算。
示例13包括一种方法,该方法包括:通过耦合到具有交叉点架构的存储器介质的介质访问电路读取数据列;通过介质访问电路从存储器介质读取附加到该数据列的列纠错码(ECC)校验数据;以及通过介质访问电路利用列ECC校验数据对该数据列执行纠错以产生经纠错的数据。
示例14包括示例13的主题,并且其中对数据列执行纠错包括执行纠错而不读取与数据列相关联的数据行。
示例15包括示例13和14中任一个的主题,并且进一步包括利用介质访问电路,利用与列ECC校验数据相关联的行ECC校验数据对列ECC校验数据执行纠错。
示例16包括示例13-15中任一个的主题,并且进一步包括通过介质访问电路以列为主格式将数据列写入存储器介质;以及通过介质访问电路将列ECC校验数据附加到数据列。
示例17包括示例13-16中任一个的主题,并且进一步包括通过介质访问电路以行为主格式写入针对列ECC校验数据的行ECC校验数据,其中行 ECC校验数据可用于检测并纠正列ECC校验数据中的至少一个错误。
示例18包括示例13-17中任一个的主题,并且其中将列ECC校验数据附加到数据列包括附加由连接到介质访问电路的存储器控制器产生的列 ECC校验数据。
示例19包括一种或多种机器可读存储介质,该机器可读存储介质包括存储在其上的多个指令,这些指令响应于被执行而使包括在存储器中的介质访问电路从具有交叉点架构的存储器介质读取数据列;从存储器介质读取附加到数据列的列纠错码(ECC)校验数据;并且利用列ECC校验数据对数据列执行纠错以产生经纠错的数据。
示例20包括示例19的主题,并且其中对数据列执行纠错包括执行纠错而不读取与数据列相关联的数据行。
Claims (20)
1.一种存储器,包括:
耦合到具有交叉点架构的存储器介质的介质访问电路,其中所述介质访问电路用于:
从所述存储器介质读取数据列;
从所述存储器介质读取附加到所述数据列的列纠错码(ECC)校验数据;以及
利用所述列ECC校验数据对所述数据列执行纠错,以产生经纠错的数据。
2.根据权利要求1所述的存储器,其中对所述数据列执行纠错包括执行所述纠错而不读取与所述数据列相关联的数据行。
3.根据权利要求1所述的存储器,其中所述介质访问电路进一步用于利用与所述列ECC校验数据相关联的行ECC校验数据对所述列ECC校验数据执行纠错。
4.根据权利要求1所述的存储器,其中所述介质访问电路进一步用于:
以列为主格式将所述数据列写入所述存储器介质;以及
将所述列ECC校验数据附加到所述数据列。
5.根据权利要求4所述的存储器,其中所述电路进一步用于以行为主格式写入针对所述列ECC校验数据的行ECC校验数据,其中所述行ECC校验数据可用于检测并纠正所述列ECC校验数据中的至少一个错误。
6.根据权利要求4所述的存储器,其中将所述列ECC校验数据附加到所述数据列包括附加由连接到所述介质访问电路的存储器控制器产生的列ECC校验数据。
7.根据权利要求1所述的存储器,其中所述介质访问电路进一步用于:
以行为主格式向所述存储器介质写入数据行;以及
将行ECC校验数据附加到所述数据行,所述行ECC校验数据可用于检测并纠正所述数据行中存在的一个或多个错误。
8.根据权利要求1所述的存储器,其中从所述存储器介质读取数据列包括从具有三维交叉点架构的存储器介质读取数据列。
9.根据权利要求1所述的存储器,其中所述介质访问电路进一步用于将所述经纠错的数据写入暂存器。
10.根据权利要求1所述的存储器,其中所述介质访问电路进一步用于使用对应的列ECC校验数据和行ECC校验数据迭代地对矩阵的列和行执行纠错,直到在所述矩阵中检测到的每个错误已经被纠正为止。
11.根据权利要求1所述的存储器,其中所述介质访问电路进一步用于对所述经纠错的数据执行存储器内计算操作。
12.根据权利要求10所述的存储器,其中对所述经纠错的数据执行存储器内计算操作包括对所述经纠错的数据执行张量运算。
13.一种存储器,包括:
用于从具有交叉点架构的存储器介质读取数据列的单元;
用于从所述存储器介质读取附加到所述数据列的列纠错码(ECC)校验数据的单元;以及
用于利用所述列ECC校验数据对所述数据列执行纠错以产生经纠错的数据的单元。
14.根据权利要求13所述的存储器,其中,用于对所述数据列执行纠错的单元包括用于执行所述纠错而不读取与所述数据列相关联的数据行的单元。
15.根据权利要求13所述的存储器,进一步包括用于利用与所述列ECC校验数据相关联的行ECC校验数据对所述列ECC校验数据执行纠错的单元。
16.根据权利要求13所述的存储器,进一步包括:
用于以列为主格式将所述数据列写入所述存储器介质的单元;以及
用于将所述列ECC校验数据附加到所述数据列的单元。
17.一种方法,包括:
通过耦合到具有交叉点架构的存储器介质的介质访问电路读取数据列;
通过所述介质访问电路从所述存储器介质读取附加到所述数据列的列纠错码(ECC)校验数据;以及
通过所述介质访问电路利用所述列ECC校验数据对所述数据列执行纠错,以产生经纠错的数据。
18.根据权利要求17所述的方法,其中,对所述数据列执行纠错包括执行所述纠错而不读取与所述数据列相关联的数据行。
19.根据权利要求17所述的方法,进一步包括利用所述介质访问电路,利用与所述列ECC校验数据相关联的行ECC校验数据对所述列ECC校验数据执行纠错。
20.根据权利要求17所述的方法,进一步包括:
通过所述介质访问电路以列为主格式将所述数据列写入所述存储器介质;以及
通过所述介质访问电路将所述列ECC校验数据附加到所述数据列。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/395,769 US20190317857A1 (en) | 2019-04-26 | 2019-04-26 | Technologies for providing error correction for row direction and column direction in a cross point memory |
US16/395,769 | 2019-04-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111858131A true CN111858131A (zh) | 2020-10-30 |
Family
ID=68161629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010220558.6A Pending CN111858131A (zh) | 2019-04-26 | 2020-03-25 | 提供针对交叉点存储器中的行方向和列方向的纠错的技术 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190317857A1 (zh) |
EP (1) | EP3731096A1 (zh) |
CN (1) | CN111858131A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835736A (zh) * | 2021-01-22 | 2021-05-25 | 张立旭 | 一种通用型数据纠错方法及系统 |
CN115985380A (zh) * | 2023-03-17 | 2023-04-18 | 之江实验室 | 一种基于数字电路控制的FeFET阵列数据校验方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11710030B2 (en) * | 2018-08-31 | 2023-07-25 | Texas Instmments Incorporated | Fault detectable and tolerant neural network |
US11023320B2 (en) * | 2019-04-04 | 2021-06-01 | Intel Corporation | Technologies for providing multiple levels of error correction |
US11657889B2 (en) * | 2020-03-23 | 2023-05-23 | Intel Corporation | Error correction for dynamic data in a memory that is row addressable and column addressable |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115837A (en) * | 1998-07-29 | 2000-09-05 | Neomagic Corp. | Dual-column syndrome generation for DVD error correction using an embedded DRAM |
US7861131B1 (en) * | 2005-09-01 | 2010-12-28 | Marvell International Ltd. | Tensor product codes containing an iterative code |
US8046660B2 (en) * | 2006-08-07 | 2011-10-25 | Marvell World Trade Ltd. | System and method for correcting errors in non-volatile memory using product codes |
KR101253187B1 (ko) * | 2007-04-05 | 2013-04-10 | 엘지전자 주식회사 | 디지털 방송 시스템 및 데이터 처리 방법 |
US9047214B1 (en) * | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
US10831596B2 (en) * | 2018-01-22 | 2020-11-10 | Micron Technology, Inc. | Enhanced error correcting code capability using variable logical to physical associations of a data block |
US10564858B2 (en) * | 2018-05-02 | 2020-02-18 | Nyquist Semiconductor Limited | Data storage device with selective connection to non-volatile memories |
-
2019
- 2019-04-26 US US16/395,769 patent/US20190317857A1/en not_active Abandoned
-
2020
- 2020-03-20 EP EP20164423.4A patent/EP3731096A1/en not_active Withdrawn
- 2020-03-25 CN CN202010220558.6A patent/CN111858131A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835736A (zh) * | 2021-01-22 | 2021-05-25 | 张立旭 | 一种通用型数据纠错方法及系统 |
CN112835736B (zh) * | 2021-01-22 | 2023-08-22 | 张立旭 | 一种通用型数据纠错方法及系统 |
CN115985380A (zh) * | 2023-03-17 | 2023-04-18 | 之江实验室 | 一种基于数字电路控制的FeFET阵列数据校验方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190317857A1 (en) | 2019-10-17 |
EP3731096A1 (en) | 2020-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3731096A1 (en) | Technologies for providing error correction for row direction and column direction in a cross point memory | |
US11687404B2 (en) | Technologies for preserving error correction capability in compute-in-memory operations | |
US20190042148A1 (en) | System and method for using host command data buffers as extended memory device volatile memory | |
US11301167B2 (en) | Technologies for providing multiple tier memory media management | |
US11237903B2 (en) | Technologies for providing ECC pre-provisioning and handling for cross-point memory and compute operations | |
US20180034477A1 (en) | Decoder with parallel decoding paths | |
US10191805B2 (en) | Semiconductor memory devices and memory systems including the same | |
US10534747B2 (en) | Technologies for providing a scalable architecture for performing compute operations in memory | |
EP3754563A1 (en) | Technologies for performing in-memory training data augmentation for artificial intelligence | |
US20190132010A1 (en) | Method of operating decoder for reducing computational complexity and method of operating data storage device including the decoder | |
CN109716661A (zh) | 用于存储装置的阶梯码编码及解码的设备及方法 | |
EP3739457A1 (en) | Technologies for performing macro operations in memory | |
US20190227750A1 (en) | Technologies for performing tensor operations in memory | |
US11023320B2 (en) | Technologies for providing multiple levels of error correction | |
EP3716076A1 (en) | Technologies for providing high efficiency compute architecture on cross point memory for artificial intelligence operations | |
US9064569B1 (en) | Memory controller with resistive random access memory (ReRAM) | |
US11086718B2 (en) | Memory system | |
CN111989746A (zh) | 使用阶层式解码器的误差校正 | |
CN115732016A (zh) | 存储器装置、存储器控制器和纠正数据错误的方法 | |
CN111984187A (zh) | 用于提供自适应存储器介质管理的技术 |
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 |