CN106233258B - 可变宽度纠错 - Google Patents

可变宽度纠错 Download PDF

Info

Publication number
CN106233258B
CN106233258B CN201580023494.8A CN201580023494A CN106233258B CN 106233258 B CN106233258 B CN 106233258B CN 201580023494 A CN201580023494 A CN 201580023494A CN 106233258 B CN106233258 B CN 106233258B
Authority
CN
China
Prior art keywords
memory
address
error correction
memory controller
storage
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
Application number
CN201580023494.8A
Other languages
English (en)
Other versions
CN106233258A (zh
Inventor
P.格拉斯科夫斯基
K.斯特劳斯
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106233258A publication Critical patent/CN106233258A/zh
Application granted granted Critical
Publication of CN106233258B publication Critical patent/CN106233258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

描述了可变宽度纠错。存储器控制器可以从存储器地址确定对于该存储器地址的地址区域要应用哪种类型的纠错,以及可以生成对于存储器设备的命令。与该地址区域相关联的纠错元数据的量可以取决于地址区域的空间位置而变化。在某些情况下,可以执行两个转换:一个转换由处理器通过使用由操作系统建立的信息而执行,而另一个转换由存储器控制器(或存储器设备)执行。在另外的情况中,可以执行单个转换,例如由处理器通过使用由操作系统建立的信息而执行,其可以确定在虚拟地址区域到真实物理地址区域的转换期间的可变纠错。

Description

可变宽度纠错
背景技术
可靠的数据存储装置至少部分地取决于底层存储器技术—硬件—保持所存储的数据的精确指示的能力。由于各种因素(包括在制造、存储器使用、和外部条件方面的变化)硬件中的缺陷是很常见的。通常,存储器错误归于两类错误之一。第一种类型的错误是由于存储器硬件中的物理缺陷造成的硬错误。第二种类型的错误是软错误,它指代诸如由电磁辐射引起的那些非永久性错误。硬错误也被称为可重复的错误,因为它们倾向于是在数据中由于永久的条件(诸如停滞的比特(stuck bit))而造成的错误;而软错误把比特的自发翻转呈现为相反的状态。有时,当在存储器的相同块(或其他指定的区域)内出现多个软错误时,错误也被看作为硬错误。硬错误和软错误可以在存储器硬件的寿命期间出现,以及存储器硬件还可能随时间进一步降级。
为了使得存储器错误的有害影响最小化,可以应用各种纠错技术。存在纠错码、使用附加存储器比特的存储器奇偶校验算法和硬件解决方案、存储器控制器纠错、以及存储器逻辑纠错。
发明内容
描述了可变宽度纠错,其中变化数目的纠错资源可被应用到存储器的不同的区域。存储器设备可被评估,以便确定遭受存储器错误而导致的类似预期的(和/或经历的)弱点进行分组的物理存储器的空间集群。具有较高存储器错误的概率(或存在)或预期与敏感数据一同使用的区域可被指定以更严格的纠错,其包括附加纠错资源,诸如额外的纠错比特。其他的数据区域可以被应用变化的纠错级别(和对应的额外纠错比特)。
与存储器设备中的空间区域的存储器地址相关联的纠错资源量可以对于请求访问存储器设备的应用是透明的。与存储器地址相关联的真实物理存储器区域的大小可以等于或大于与该存储器地址相关联的物理存储器区域的预期大小。
在某些实施方案中,存储器设备可包括执行从预期物理地址到可以为请求进行服务的真实物理地址的转换的逻辑。在某些实施方案中,存储器设备可包括使得能够实现对存储器设备如何发送数据进行调整(例如,用来把数据读到用于为请求进行服务的数据缓存器和/或从数据缓存器读出数据的周期的数目)的逻辑。
在某些实施方案中,用于一个或多个存储器设备的存储器控制器可包括对于为请求进行服务的存储器设备执行预期物理地址到真实物理地址的转换的逻辑、固件、或软件。转换还可包括确定与真实物理地址相关联的存储器区域的大小或存储器如何发送数据(例如,应用来把数据读到可以为请求进行服务的存储器设备的数据缓存器和/或从其读出数据的周期的数目)。
在某些实施方案中,由计算机系统的处理系统执行的操作系统可以执行从可能是虚拟地址的存储器地址到耦合到计算机系统的存储器设备的物理地址的转换。由操作系统执行的转换可包括确定与物理地址相关联的存储器区域的对应大小。
本概要以简化的形式介绍一组概念的选择,这些概念还将在下面的详细说明中进行描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算用来限制所要求保护的主题的范围。
附图说明
图1图示了在存储器芯片上的存储器阵列的示例代表性空间图。
图2A和2B图示了地址区域的映射和在该地址区域处的比特的示例安排。
图3A和3B图示了以对于虚拟地址的请求而发起的映射过程的示例实施方案。
图4是存储器系统的框图。
图5图示了用于存储器模块的数据和纠错元数据的交织。
图6图示了可以应用可变宽度纠错的存储器模块。
图7A和7B图示了可以实施可变宽度纠错的示例存储器系统。
图8A-8D示出了图示可以由图7A和7B的示例存储器系统实行的变换的功能图。
图9A和9B图示了其中可以实行可变宽度纠错的某些实施方案的操作环境。
具体实施方式
描述了其中可以对于存储器的不同区域应用变化的数目的纠错资源的可变宽度纠错。
某些实施方案利用了并且提出了发现:存储器区域的空间集群可以示出相对于存储器错误的类似弱点。随着存储器设备继续得以开发并且寻求增加的密度,在从其形成存储器设备的基板上可能存在较高的制造偏差。这种制造偏差可能导致非均匀地牢固的存储器单元。也就是,当持有电荷时,某些单元可能比其他单元更牢固,而某些单元可能太弱,以致于它们无法持有电荷达到某个规定时间(诸如在为某些易失性存储器保存数据的存储器刷新之间的时间)。弱的单元很可能造成可靠度问题,诸如似乎随机的比特翻转(或 “软错误”)。
预期的是,弱的单元可以在存储器芯片上空间集群在一起。也就是,故障中可以存在空间位置(spatial locality)。因此,作为如今实行的常见解决方案的在整个存储器上均匀地应用纠错资源(例如,元数据比特)可能是浪费的,因为某些区域将接收比所需更多的纠错资源,而某些区域会接收比所需更少的纠错资源。
存储器设备可被评估,以便确定遭受存储器错误而导致的类似预期的(和/或经历的)弱点进行分组的物理存储器的空间集群。评估可以按照规定的条件实行—作为制造测试的一部分(后制造测试)、作为零售商测试的一部分、作为在存储器设备的初始化期间的测试的一部分(例如作为开机过程的一部分)、在运行时间期间、在(时间敏感的)存储器设备的寿命期间的指定的测试时间处、或这些时间中的任何时间的组合。具有存储器错误的较高概率(或存在)或预期与敏感数据一同使用的区域可被指定更严格的纠错,其包括附加的纠错资源,诸如额外的纠错比特。数据的其他区域可以被应用变化的纠错级别(以及对应的额外的纠错比特)。
图1图示了在存储器芯片上的存储器阵列的示例的代表性空间图。参照图1,存储器芯片100可包括具有遭受存储器错误的类似的预期的(和/或存在的)弱点的存储器单元(或块)的空间集群。例如,第一区域110可以被确定为具有第一级别的弱点,第二区域120可以被确定为具有不同于或等同于第一级别的弱点的第二级别的弱点,以及第三区域130可以被确定为具有不同于第二级别的弱点的第三级别的弱点。其余的单元140可以被确定为具有标准级别的弱点,对于标准级别的弱点可以应用标准纠错计划。
基于这些确定级别的弱点,可以应用可变宽度纠错。因此,取决于区域的弱点,地址区域(与真实物理地址相关联的存储器区域)的“宽度”或大小可以变化。
作为说明示例,包含单元140的区域的地址可以是与“标准”真实物理区域大小(例如64比特)相关联的。第一区域110和第三区域130的地址可以是与第一级别纠错大小(例如72比特)相关联的;以及第二区域120的地址可以是与第二级别纠错大小(例如80比特)相关联的。
地址区域(包括数据和元数据)的变化的“宽度”使得能够实现可变级别的纠错。变化的级别的纠错可以是与存储器的空间上不同的区域相关联的。作为变化的级别的纠错的一部分,可变数目的纠错比特可以是与包含用来存储实际数据的比特的存储器区域相关联的。也就是,取决于真实物理存储器的空间位置,数据可以具有被使用于纠错的不同量的元数据比特。
用于这些纠错的可变宽度可被保存为清单、表格、或在其中存储该信息的其他适当结构。清单、表格、或其他结构可用来存储归于第一区域110、第二区域120和第三区域130内的存储器区域的地址。清单、表格、或其他结构还可包括指示对与那些存储器地址相关联的地址区域上采取动作相关联的周期的数目值。与在地址区域上采取动作相关联的周期的数目是指读/写处理器总线周期(和定时),其常常在存储器设备处由有限状态机控制。替代地或除了指示与在地址区域上采取动作相关联的周期的数目值以外,清单、表格、或结构可以存储指示地址区域的大小或与存储器地址相关联的纠错比特的数目的值。
清单、表格、或其他结构的位置取决于实施方案以及映射(变换)在哪里发生(例如,在存储器芯片/存储器模块处、存储器控制器处,或作为与存储器模块通信的主机或其他系统的操作系统的一部分)。因此,纠错属性的所组织的信息(诸如周期数目、纠错技术、地址区域大小、纠错比特数目、总的比特数目等等)可以被生成,并且然后被使用于可变宽度纠错。
与在存储器设备中的空间区域的存储器地址相关联的纠错资源的数量可能对于请求访问存储器设备的应用是透明的(例如,对其隐藏的)。真实物理存储器区域的大小可以等于或大于与该存储器地址相关联的物理存储器区域的预期大小。在某些实施例中,纠错项目可以通过把地址区域的预期物理区域映射到相同大小或更大大小的真实物理区域而被透明地存储在物理存储器区域内。
图2A和2B图示了地址区域的映射和在该地址区域处的比特的示例安排。参照图2A,与在存储器中的地址相关联的地址区域大小可以从计算环境的某些层隐藏或是“透明的”。可以实行从初始的“预期”地址区域210到包括数据221和元数据222的真实地址区域220的映射。元数据222可提供纠错数据。取决于实施方案,映射可以在存储器设备处、在存储器控制器处、或通过操作系统实行。
可变数目的纠错比特和用来存储实际数据的比特可以互相靠近地存储,诸如互相相邻地(即,数据与元数据交织)存储在存储器设备中,或纠错比特可以与数据比特分开地存储在例如不同的芯片上或特定的存储器存储位置处。数据和元数据被相邻地放置的情况下,访问效率可以增加。
图2B示出了与实际数据221交织的、并且与其相邻地放置的元数据222。如图2B所图示的,具有固定大小的相同的预期地址区域可能占用相同大小或更大大小的真实区域大小。例如,相同的预期地址区域可被映射到不同的真实区域大小。在片段A中,映射可以是一对一的,其中预期的区域大小是与真实区域大小相同。在片段B中,因为用于纠错的额外比特的缘故,地址区域被映射到更大的真实地址区域。
图3A和3B图示了以对于虚拟地址的请求而发起的映射过程的示例实施方案。参照图3A,在一个示例性实施方案中,可以实行两次转换:从虚拟地址302到预期的物理地址303的第一转换301;和从预期的物理地址303到具有可变宽度纠错的真实物理地址312的第二转换311。第一转换301可以由处理器实行,而第二转换311可以由存储器控制器在将命令发送到与存储器控制器通讯的存储器设备之前实行。在某些情况下,其他部件可以执行这两个转换之一或二者。
例如,存储器控制器可以接收预期的物理地址,并确定真实物理地址以及用于该真实物理地址的纠错元数据的数量。存储器控制器可以负责发出具有正确的突发大小(或地址区域大小)的请求,并且使用可变大小元数据执行检错和纠错。在这样的情况下,不要求存储器芯片对于请求进行转换来支持可变纠错。存储器控制器可以计算要发送哪个请求和如何发送它。
在如图3B所示的另一个示例性实施方案中,执行单个转换321,以把虚拟地址302映射到具有可变宽度纠错322的物理地址。虚拟地址302可以通过以下步骤而被映射到具有可变宽度纠错 322的物理地址,即:操作系统把特定映射加载到页面表,并且处理器使用关于在页面表中的特定粒子映射的信息来执行单个转换321。在另一个情况下,单个转换321可以由操作系统(在处理器上执行)实行。具有可变宽度纠错的物理地址可包括对于该物理地址的开销的指示。开销是指纠错要求,它可以具有被包括在从虚拟地址到物理地址的变换中的附加信息的形式。这个附加信息可以提供对周期数目、额外比特数目、与物理地址相关联的存储器区域的大小、要应用的纠错的类型等等的参考。
应当理解,图3A和3B中图示的每个转换可能牵涉到多于一个过程,以实现从一个形式到另一个形式的转换。
实施例可应用于各种存储器设备,其包括易失性和非易失性存储器。虽然在这里具体地描述了诸如动态随机存取存储器(DRAM)那样的易失性存储器,但是本控制器和操作系统适用于与诸如快闪存储器、相变存储器、或其他类型的电阻性和磁性存储器那样的非易失性存储器一同使用;以及在某些情况下,具有混合的或易失性和非易失性存储器两者的系统可以实施所描述的技术。
DRAM芯片常常作为在线存储器模块(DIMM)中的一部分而多个地提供。存在许多类型的DIMM,其包括小型在线DIMM(SO-DIMM)、双数据速率DIMM(DDR、DDR2、DDR3)、纠错DIMM(具有额外的数据比特作为在DIMM上的附加芯片,或作为定制芯片的一部分)、负载减小的DIMM(LRDIMM)、和硅通孔(TSV)粘接的DIMM(例如,TSV DIMM)。
图4是存储器系统的框图。参照图4,存储器系统可包括存储器设备400和可以控制存储器设备400的总的输入/输出操作的存储器控制器410。
存储器设备可以由任何适当的存储器技术形成。虽然本文描述了对于DRAM技术(以及由DRAM芯片形成的存储器模块)的特定的实施方案,但其他存储器设备—易失性和非易失性—也可以从可变宽度纠错获利,其包括SRAM、相变存储器、快闪存储器、以及磁性和铁磁性/铁电性存储器(MRAM、FeRAM、STT-RAM)。在某些情况下,存储器控制器410和存储器设备400可以被集成在相同芯片上或被安排在相同模块(例如相同电路板上)上。在某些情况下,存储器设备400被提供在与存储器控制器410(例如,作为多板系统的一部分)分开的板或封装上。
对于许多存储器模块,当前的趋势是具有用于数据的8个存储器设备芯片和用于纠错的一个存储器设备芯片,或在8个芯片的每个芯片上具有可用于纠错的额外比特。本可变宽度纠错的实施方案可应用于任一种类型的存储器模块(以及任何其他结构)。
图5图示了用于存储器模块的数据和纠错元数据的交织。如图5所示,存储器模块500可包括多个芯片510,其中相邻数据520和元数据530被交织在每个芯片510内。存储器模块500可以是DIMM或其他存储器模块。数据520与元数据530的比值是d/m。在对于地址的存储器请求并且数据大小为d的情况下,代替于执行d/b转换(其中b是存储器芯片宽度)芯片每次执行(d+m)/b的转换((d+m)/b突发大小)。突发大小是指对于在有限带宽的总线上发送某个数据量所要求的周期数目。突发大小可以由存储器请求规定(在该数据模块之前或在数据模块处)。在图5所图示的示例中,元数据530可以与数据520交织,这样,元数据530以与其所保护的对应的数据在相同的转换中被转换。
另外,因为访问可能没有对准,所以有时两个突发可能用来得到组合数据和元数据的单个单元。例如,在存储器控制器执行映射的情况下,存储器控制器可能必须发出两个请求来转换整个数据和元数据,因为这样的情境要求开启新的行。在来自存储器控制器的第一请求中,来自第一行541的数据520和元数据530可以被读出。然后,在来自存储器控制器的第二请求中,来自第二行542的数据520和元数据530可以被读出。
应当理解,在图中图示的数据520和元数据530的安排不打算看作为是限制。数据和元数据可以以任何适当安排置于存储器中。
对于其中操作系统涉及预期地址与真实物理地址的转换的实施方案(例如,参阅图3B),操作系统可以把对应于多个支持的页大小的存储器的区域与数据520和元数据530的某个比值相关联。例如,如果d/m=8/1而且页大小是4 KB,则区域可以是36 KB。当然,对于其中可变宽度纠错是对于操作系统透明的实施方案,不要求应用这样的限制。
区域的大小可以通过对于其可靠度而测试存储器的各个部分(例如,通过把某个图案重复写入到存储器,从存储器读回,和对比特翻转的原始数目进行技术)而被确定。在某些情况下,测试可以在开机时例如由操作系统或存储器控制器执行。当然,测试可以在其他时间实行。一旦具有类似的可靠度结果的区域通过测试而定义,那么这些区域可以被指派特定的纠错级别(并且因此是d/m)。纠错级别提供了要应用的纠错强度的指示。
应用于每个纠错级别的特定纠错技术可以是现在已知的或是以后开发的任何适当的技术。纠错级别可以是基于要被存储在对应区域中的数据的灵敏度和/或作为某些示例通过经由测试某个区域而检测的故障量的。纠错级别可以直接指示用来执行纠错的元数据比特的数目,和/或纠错级别可以间接指示元数据比特的数目,并且按照对于特定纠错级别所选的(一个或者多个)纠错技术被确定。在某些情况下,操作系统可以确定要被存储在对应区域中的数据的灵敏度。如果数据的类型在运行时间发生改变,则操作系统可以调整灵敏度指示,以及甚至重新调整要被应用到特定区域的纠错级别。
图6图示了可以应用可变宽度纠错的存储器模块。参照图6,诸如DIMM 600那样的存储器模块可以具有多个存储器芯片(例如,存储器芯片1 610、存储器芯片2、…、存储器芯片n),以及每个芯片可以具有多个数据阵列。这些阵列的宽度通常是2kbit-8kbit;然而,其他大小也是可用的。被存储在诸如存储器芯片1 610那样的存储器芯片中的数据可以从存储器阵列被读入到行缓存器615。至少一部分数据可以从行缓存器615被发送,以对请求进行服务。阵列的特定行可以由行选择命令(其也被称为激活命令)进行选择,以及来自行的一个或多个列的数据可以由列选择命令进行选择,列选择命令将数据提供给行缓存器615。在许多当前的技术中,在读操作期间,一般选择某一行,并且然后选择列来以8 比特/周期读出。本技术的实施方案可以通过使用这样的存储器实行,但实施例不限于此。
可变宽度纠错可能必须将不同的比特数量与不同的地址请求相关联,这取决于该地址的空间位置。为了产出适当数目的比特,当对于特定地址作出读请求时,用来对请求进行服务的周期数目可以变化。
对于每次读取,标准突发大小是4周期或8周期。当在存储器读操作期间从芯片读出64比特时,可能需要72比特来提供64比特的数据和8比特的纠错。因此,在给定具有例如8的突发大小的8个芯片(例如,诸如经常在DIMM上找到的)后,数据可以从64字节块的存储器读取。64字节的读取可以通过在8个周期(和8的突发大小)经由行缓存器615从8个芯片读取8个字节而被完成。
为了得到用于纠错的额外比特,可以从8个芯片的某一行进行附加读取。由于72字节是期望的(为了提供对于64字节的8字节的纠错),因此72字节可以通过从每个芯片读取两行数据而得到(例如,从每个芯片读取64比特的第一行和64比特的第二行)。附加读取可以在相同行或在不同行。一旦72字节被占用来对请求进行服务,来自从两行读取的128字节的其余56字节一般被忽略,从而导致浪费的字节。当存储器并非特别适配于提供纠错比特或没有被提供任何信息来调整其正常操作时,这种情境可能发生。对于这种类型的情境,存储器控制器或与读出总线相关联的逻辑可以使得128字节中的72字节能够被读取。
在许多情形下,由于芯片上的插脚数目的缘故,比特/周期的数目是固定的;然而,周期可以被调整。代替于具有4周期或8周期的固定突发大小(用于每次读取),每次产出8个字节/周期(通过4或8周期),取决于对于特定存储器区域的纠错的强度,某些实施方案使得能够实现应用9周期或10周期(或更多)。取决于对应于地址的存储器的空间位置,可请求可变数目的周期。
因此,回到其中72比特(来自单个芯片)用来对64比特数据请求进行服务(由于用于纠错的额外比特)的示例情境,在单次读取操作期间,9周期可用来从一行读出72比特。在80比特用来对64比特数据请求进行服务(例如,16额外纠错比特)的情况下,在单次读取操作期间,10周期可用来从一行读出80比特。应当指出,因为存储器芯片的阵列配置,可能存在在相同请求期间下一行必须被激活以检索适当数目的比特的情景。
预期存在许多用于从缓存器检索数据的方法,以及可以使用现在已知的或将来开发的适当方法。缓存器的特定配置可以是适合于使得能够实现检索可变长度数据的任何配置。在某些情况下,预期从缓存器检索标准长度,并且然后适当的数据量被使用(例如,如在示例中,使用两次读取来检索72比特或字节的数据)。
图7A和7B图示了可以实施可变宽度纠错的示例存储器系统;以及图8A-8D示出了图示可以由图7A和7B的示例存储器系统实行的变换的功能图。
参照图7A和7B,存储器设备700-A和700-B可包括以行和列安排的存储器单元710。行解码器720和列解码器730可用来基于行选择/激活信号和列选择信号来选择特定(一个或者多个)单元740。读/写单元750可以提供逻辑与状态机,其用来从存储器阵列710读取和写入到存储器阵列710。某些纠错技术可以是可用的,作为读/写单元750的一部分以及用于从存储器控制器760-A、760-B隐藏的内置在存储器设备中的其他能力的任何控制层。
存储器控制器760-A和760-B包括控制逻辑和机器770,其用来相应地控制存储器设备700-A和700-B,从而提供对于被存储在存储器设备700-A和700-B处的读和写数据的请求。控制逻辑和机器770可包括逻辑元件和寄存器(存储装置)。仲裁可以由控制逻辑和机器770的仲裁器实行,其选择请求访问存储器的次序。静态存储器控制器一般具有预先设计的调度;而动态存储器控制器可以在运行时间调度请求。在存储器控制器(760-A、760-B)执行具有可变大小元数据的检错和纠错的情况下,纠错模块775可选地可被包括,以用于实施。
可变宽度纠错和对应的地址转换(例如,见图3A和3B)可以使得能够实现作为存储器设备700-A的一部分(使用基于存储器设备的转换或可变纠错适应)、作为存储器设备700-B的一部分(使用基于存储器设备的转换和纠错)、作为这二者的组合、或作为操作系统的一部分(以后描述的)。
参照图7A,基于存储器设备的转换模块780可以被包括作为读/写单元750的一部分或与读/写单元750通信。在读/写单元750处的静态机可以按照由转换模块780确定的值来控制用于读请求的周期的数目。某个地址到真实物理地址的转换可以在存储器控制器760-A处实行,或作为转换模块780的一部分实行。在这个地址到真实物理地址的转换在存储器控制器处发生的情况下,转换模块可以通过调整数据(和元数据)的量和数据(和元数据)如何移动跨越行缓存器(未示出)而提供可变纠错适应(例如通过调整周期数目)。
在某些实施方案中,存储器设备(经由转换模块780)可包括逻辑,其使得能够实现对于存储器设备如何发送数据(例如,用来为了对请求进行服务把数据读到数据缓存器中和/或从数据缓存器读出数据的周期的数目)的调整。
例如,参照图8A,存储器控制器760-A可以接收来自处理器的对于预期的地址A的请求(801)。存储器控制器760-A可以通过例如在被存储在存储器控制器760-A的存储系统(未示出)中的列表、表格或其他结构(“组织的信息”)中查找物理存储器地址(802)而把预期的地址A转换成真实物理地址A’。存储器控制器760-A然后可以发布请求到存储器设备700-A。所述请求可包括基于真实物理地址A’的行命令和列命令。在接收来自存储器控制器760-A的请求后,存储器设备700-A可以确定要被使用来读出在请求的地址处的数据的周期的数目(804)。
在这种情况下,存储器设备700-A可以通过使用转换模块780解译命令,以使得当读/写单元750发送控制信号来从存储器阵列读出数据或者写入数据到存储器阵列时,应用适当数目的周期(以及选择适当的(一个或者多个)行和(一个或者多个)列)。转换模块780可包括逻辑,其用来基于由存储器控制器而指示的地址,确定与命令相关联的周期数目,以对请求进行服务。读/写单元750可以使用由转换模块780所确定的真实物理地址,以对请求进行服务。
在某些实施方案中,存储器设备(经由转换模块780)可包括可对请求进行服务的、执行从预期物理地址到真实物理地址的转换的逻辑。
例如,参照图8B,从地址A到地址A’的转换可以在存储器设备处执行。在这个示例中,存储器设备接收来自存储器控制器的对于地址A的请求(和/或命令)(805)。存储器设备然后可以转换从存储器控制器发出的请求,以基于地址A获取地址A’,以及确定要被用来读出数据的周期数目(806)。存储器设备然后可以应用用于地址A’的适当的数目的周期(807)。逻辑(未示出)可被包括在存储器设备中,以便使得能够实现在存储器设备处转换(和/或变换)。另外,逻辑(未示出)可被提供来在存储器设备处实行纠错。当存储器设备执行预期地址到真实物理地址的转换时,存储器设备可以替换地或另外地把关于预期有多少数据的信息提供到存储器控制器。
参照图7B,存储器控制器760-B可包括基于控制器的转换模块790。当在存储器控制器760-B处实行转换(地址映射/纠错确定)时,存储器设备可以被配置有支持可被纠错的逻辑,或可被配置成不预期将实行可变纠错。
在某些实施方案中,存储器控制器760-B(例如,作为转换模块790的一部分)可包括对于可对请求进行服务的存储器设备700-B执行预期物理地址到真实物理地址的转换的逻辑、固件、或软件。转换还可包括确定与真实物理地址相关联的存储器区域的大小或存储器如何发送数据(例如,应当用来将数据读入到可对请求进行服务的存储器设备中的数据缓存器和/或从该数据缓存器读出数据的周期的数目)。因此,转换模块790可以把具有固定大小地址区域的预期地址转换成具有按照真实物理地址的空间位置(和对应的纠错需要)而变化的地址区域的真实物理地址。
图8C图示了对于存储器控制器操控纠错决定的情况的功能图。参照图8C,存储器控制器可以接收来自处理器的对于地址A的请求(808),和通过例如查找对应于地址A的真实物理地址A’而把地址A转换成地址A’(809)。在这种情境下,存储器控制器760-B经由基于控制器的转换模块790还可以确定用于地址A’的周期的数目(810)。步骤809和810可以是与从地址A到地址A’ 的转换有关的相同或分开的处理过程的一部分。一旦存储器控制器760-B获取了真实物理地址和开销,存储器控制器760-B可以把请求发到存储器模块700-B(811)。所述请求可包括激活行和列命令信号以及周期信息。在某些情况下,周期信息可以是独立的命令。在其他情况下,周期信息可以是嵌入在行命令和列命令之一或二者中的周期命令。例如,一个或多个额外比特可以与列命令一同提供,来规定发送数据要用的周期的数目。
在存储器设备700-B的读/写单元750处的状态机可以按照从存储器控制器760-B发送的周期信息控制用于读请求的周期的数目。周期信息可以是指示要用来从缓存器(或“寄存器”)取比特的周期的数目的值。状态机可以按照所述值执行若干周期。可包括附加的逻辑,以促进数据跨度大于1行的情况,使得状态机考虑当管理用来读出数据的周期数目时的行的改变。
另一个示例在图8D中示出,其中存储器控制器跟踪存储器区域的大小或应当用来提供数据和纠错的比特的总数,而代替于若干周期。参照图8D,存储器控制器760-B可以接收来自处理器的对于地址A的请求(812)。存储器控制器760-B例如可以通过执行对真实物理地址A’的查找(813)和通过执行查找以确定应当从地址A’读出的开销(全部比特)(814)而执行地址A到地址A’的转换。存储器控制器760-B然后发出请求到存储器设备,从而发送用来激活在存储器设备处的适当逻辑的命令(815)。存储器控制器可以确定是否要生成多个命令以用于使得存储器设备对请求进行服务。在某些情况下,存储器控制器可以取决于开始地址的位置和访问区域的大小,发送一个或多个行命令和一个或多个列命令。
由于读请求(815)的缘故,存储器控制器接收来自存储器设备的比特。在从存储器设备发出多于一个行命令和/或多于一个列命令的情况下,来自存储器设备的用于获取适当数目的比特的命令集按照任何适当的定时技术被发出。例如,在来自第一行和列的最后的比特被存储器控制器接收之前,存储器控制器可以发出对于第二列的命令(或第二行或第二行与第二列的组合)。
如果从存储器设备接收的比特满足对于地址位置预期的比特量的条件,则可以由存储器控制器作出决定。在这个示例中,如果接收的比特数目匹配于预期的比特数目(全部比特)或大于预期的比特数目,则存储器控制器可以为对于处理器的请求进行服务。如果存储器控制器接收到大于预期的比特,则当为对于处理器的请求进行服务时,只有规定的数目的比特可被发送到处理器。这可能当纠错方案在存储器控制器处被实行并且没有贯彻到处理器级别时或在存储器设备要求多次读取而代替于要求周期调整以返回适当数目的比特(以及不需要的比特被存储器控制器丢弃)的情况下发生。
在这个示例中,存储器设备可以或可以不执行与可变宽度纠错相关的任何特定的处理(例如,调整周期)。存储器控制器可以支持存储器设备中的任一种或两种类型,并且用于发出行或列命令的条件可以基于特定的实施方案。
图9A和9B图示了可以实行可变宽度纠错的某些实施方案的操作环境。图9A图示了芯片上的系统,其中集成电路(IC)900被提供具有芯片上存储器的二维(2D)或三维(3D)结构。3D IC安排的一个示例是把存储器910的多个堆栈放置在IC层920上,诸如由宽I/O DRAM标准描述的。2D IC安排的一个示例是把存储器910嵌入在与IC层920相同的裸片上,诸如eDRAM(嵌入式DRAM)。存储器控制器925可被包括在IC层920上。存储器控制器925可以是分开的部件或是与处理器930或微处理器集成在一起。如所图示的,处理器930和可选地其他逻辑940也可以是在IC层920上可提供的。
可以包括接口950,以用于传输和接收IC 900外部的信号,例如,与外围部件通信。在一种情境下,接口可被使用来与具有主机处理器962的主机960、存储包括操作系统968的软件966的存储系统964通信。在另一种情境下,操作系统和其他软件可以被存储在存储器910的一个或多个堆栈(或块)中。
图9B图示了可以对于存储器设备970例如以存储器模块的形式实行可变纠错的非限制性示例。图9B中图示的系统980可以是分布式系统的一部分,其可包括一组功能上可交换的服务器或资源。服务器或资源可包括各种存储设备或系统。这些资源可以在线或离线地取得,并且可以加入附加资源。其中一部分是由系统980形成的资源可以被一起放置在相同空间,诸如在单个数据中心处,或它们可以单独地放置和/或可以被放置在不同的地理位置处的集群中。系统980可以适合于在高性能系统中使用,高性能系统包括操控复杂计算的那些系统和/或管理大型系统的那些系统,诸如操控云服务的服务器和金融计算系统。
系统980可被实施为服务器,它可包括一个或多个计算设备。服务器可包括一个或多个刀片式服务器设备、独立服务器设备、个人计算机、路由器、集线器、交换机、桥路、防火墙设备、入侵检测设备、大型计算机、网络附着的存储设备、和其他类型的计算设备。服务器硬件可以按照任何适用的计算机架构(诸如对称多处理(SMP)架构或非均匀存储器访问(NUMA)结构)进行配置。
系统980可包括处理系统982,它可包括诸如中央处理单元(CPU)或微处理器那样的处理设备,以及从存储系统990检索与执行包括操作系统(OS)988的软件986的其他电路。处理系统982可以在单个处理设备内被实施,但也可以被分布在合作执行程序指令的多个处理设备或子系统中。
处理系统982的示例包括通用中央处理单元、特定于应用的处理器、和逻辑设备,以及任何其他类型的处理设备、组合、或其变例。所述一个或多个处理设备可包括多处理器或多核心处理器,并且可以按照一个或多个适当的指令集运行,指令集包括但不限于,精简指令集计算(RISC)指令集、复杂指令集计算(CISC)指令集、或它们的组合。在某些实施方案中,一个或多个数字信号处理器(DSP)可以代替通用CPU或除了通用CPU以外作为系统的计算机硬件的一部分被包括在内。
可以是与处理系统982集成的或与处理系统982分开的存储器控制器984可以控制存储器设备970的总的输入/输出操作。
存储系统990可包括可由处理系统982读取的和能够存储软件986的任何计算机可读存储介质。存储系统990可包括以任何方法或技术实施的用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据那样的信息的易失性和非易失性、可移除和非可移除介质。
存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘、CD、DVD、快闪存储器、盒式磁带、磁带、磁盘存储装置、或其他磁存储装置、或任何其他适当的存储介质。某些实施方案可能涉及虚拟存储器和非虚拟存储器的任一项或二者。存储介质在任何情况下都不包含传播信号。除了存储介质以外,在某些实施方案中,存储系统990还可以包括通信介质,通过该通信介质,软件986可以被内部地或外部地传送。
存储系统990可以作为单个存储装置被实施,但它也可以在被放置在一起的或相对彼此分布的多个存储装置或子系统上被实施。存储系统990可包括能够与处理系统982通信的附加元素,诸如控制器。
软件986可以以程序指令被实施,并且除了其他功能以外,当一般地由系统980执行或者特别地由处理系统982执行时将引导系统980或处理系统982支持可变纠错。例如,OS988可包括促进生成由操作系统使用的组织的信息的预处理指令,以便将虚拟地址转换成具有诸如这里描述的可变纠错的物理存储器地址。
软件986还可以包括附加进程、程序、或构件,诸如操作系统软件或其他应用软件。软件986还可以包括固件或某些其他形式的可由处理系统982执行的机器可读的处理指令。
系统980可以代表其上可以进行软件986的任何计算系统,以及通过它,软件986可被分布、输送、下载、或以其他方式提供给又一个计算系统,用于开发和执行,或又一附加分布。
应当理解,本文描述的示例和实施例仅仅用于说明目的,并且鉴于此的各种修正或改变将会对本领域技术人员提出,并且都应当被包括在本申请的精神和权限内。

Claims (10)

1.一种存储器控制器,包括:
转换模块,其将具有固定大小的地址区域的预期物理存储器地址转换成具有变化大小的地址区域的真实物理存储器地址,其中所述变化大小的地址区域与存储器的空间上不同的区域相关联,所述存储器的空间上不同的区域具有遭受存储器错误的类似预期的或经历的弱点;以及
其中所述转换模块:
接收预期物理存储器地址;
针对所述预期物理存储器地址,执行真实物理地址的查找;
以及
执行对应的所述真实物理存储器地址的纠错属性的查找,其中所述纠错属性包括用于服务对于对应的所述真实物理存储器地址的读请求的周期数目的指示,其中被指派给存储器的每个空间上不同的区域所述周期数目取决于确定的纠错要求;以及
控制逻辑,其根据由所述转换模块标识的所述真实物理地址将命令发到至少一个存储器设备,其中所述命令包括基于所述真实物理存储器地址的行命令和列命令、以及基于由所述纠错属性指示的所述周期数目的周期命令。
2.根据权利要求1所述的存储器控制器,还包括存储系统,所述存储系统提供用于所述存储器控制器的寄存器并且存储对应于用于所述真实物理存储器地址的纠错属性的组织信息,其中所述转换模块在所述存储系统中执行所述纠错属性的所述查找。
3.根据权利要求2所述的存储器控制器,其中所述组织信息通过针对空间集群的弱点测试所述至少一个存储器设备而被生成,所述存储器控制器被配置为根据规定的条件来生成所述组织信息。
4.根据权利要求3所述的存储器控制器,其中所述规定的条件包括以下至少一项:开机条件、基于运行时间的条件、以及时间敏感条件。
5.根据权利要求1所述的存储器控制器,其中所述周期命令被嵌入在所述行命令和所述列命令中的一者或二者中。
6.一种存储器控制器,包括:
转换模块,其将具有固定大小的地址区域的预期物理存储器地址转换成具有变化大小的地址区域的真实物理存储器地址,其中所述变化大小的地址区域与存储器的空间上不同的区域相关联,所述存储器的空间上不同的区域具有遭受存储器错误的类似预期的或经历的弱点;以及
其中所述转换模块:
接收预期物理存储器地址;以及
针对所述预期物理存储器地址,执行真实物理地址的查找;
以及
控制逻辑,其根据由所述转换模块标识的所述真实物理地址将命令发到至少一个存储器设备,
其中所述真实物理存储器地址存储交织数据和纠错元数据,并且包括对准的存储器地址和未对准的存储器地址,
其中对于由所述转换模块转换到未对准的存储器地址的预期物理存储器地址的读请求,所述控制逻辑发出作为相同的读请求的一部分的命令,所述命令包括第一行激活命令、第一列命令、第二行激活命令、以及第二列命令。
7.一种存储器控制器,其包括硬件并且被配置为:
将纠错要求与包含存储器模块的存储器单元或者块的物理区域相关联,所述存储器单元或者块具有遭受存储器错误并且在空间上集群的类似预期的或经历的弱点;
针对真实物理存储器地址,基于所述物理区域中由所述真实物理存储器地址寻址的存储器单元或者块所属的物理区域,确定纠错要求;以及
基于所述纠错要求,向所述存储器模块发送命令,其中所述纠错要求包括用于服务对于所述存储器模块的读请求的周期数目,所述命令包括基于由所述纠错要求指示的所述周期数目的周期命令。
8.根据权利要求7所述的存储器控制器,其中存储器控制器还被配置为:由于所述命令,根据所述纠错要求,对从所述存储器模块接收到的数据执行纠错。
9.根据权利要求7所述的存储器控制器,其中所述存储器控制器还被配置为:
接收包括预期存储器地址的请求;以及
执行从所述预期存储器地址到所述真实物理存储器地址的转换,其中对存储器模块的命令对应于所述请求。
10.根据权利要求7所述的存储器控制器,其中所述存储器控制器还被配置为:针对所述存储器模块的物理区域的空间集群的弱点,测试所述存储器模块,以及针对所述存储器模块的所述物理区域的所述真实物理存储器地址,生成纠错属性。
CN201580023494.8A 2014-04-30 2015-04-29 可变宽度纠错 Active CN106233258B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/265907 2014-04-30
US14/265,907 US9954557B2 (en) 2014-04-30 2014-04-30 Variable width error correction
PCT/US2015/028104 WO2015168190A1 (en) 2014-04-30 2015-04-29 Variable width error correction

Publications (2)

Publication Number Publication Date
CN106233258A CN106233258A (zh) 2016-12-14
CN106233258B true CN106233258B (zh) 2019-05-14

Family

ID=53277020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580023494.8A Active CN106233258B (zh) 2014-04-30 2015-04-29 可变宽度纠错

Country Status (4)

Country Link
US (1) US9954557B2 (zh)
EP (1) EP3138009B1 (zh)
CN (1) CN106233258B (zh)
WO (1) WO2015168190A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10853168B2 (en) * 2018-03-28 2020-12-01 Samsung Electronics Co., Ltd. Apparatus to insert error-correcting coding (ECC) information as data within dynamic random access memory (DRAM)
US10733046B2 (en) * 2018-04-20 2020-08-04 Micron Technology, Inc. Transaction metadata
US10628258B2 (en) * 2018-07-20 2020-04-21 Micron Technology, Inc. Die-level error recovery scheme
KR20200085515A (ko) * 2019-01-07 2020-07-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 위한 컨트롤러
CN111651295B (zh) * 2020-05-09 2023-07-04 浙江传媒学院 一种stt-ram缓存的变长纠错码方法
US11288188B1 (en) * 2021-01-21 2022-03-29 Qualcomm Incorporated Dynamic metadata relocation in memory

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800286A (en) * 1972-08-24 1974-03-26 Honeywell Inf Systems Address development technique utilizing a content addressable memory
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
US5758056A (en) * 1996-02-08 1998-05-26 Barr; Robert C. Memory system having defective address identification and replacement
EP0973095A1 (en) * 1998-07-17 2000-01-19 Advanced Technology Materials, Inc. A single chip embedded microcontroller with flash eprom and error check and correction system
US6035432A (en) * 1997-07-31 2000-03-07 Micron Electronics, Inc. System for remapping defective memory bit sets
US6115278A (en) * 1999-02-09 2000-09-05 Silicon Graphics, Inc. Memory system with switching for data isolation
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
CN102272855A (zh) * 2008-12-30 2011-12-07 韩商英得联股份有限公司 存储器控制器及存储器管理方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974564A (en) 1997-07-31 1999-10-26 Micron Electronics, Inc. Method for remapping defective memory bit sets to non-defective memory bit sets
GB9801373D0 (en) 1998-01-22 1998-03-18 Memory Corp Plc Memory system
US20030046630A1 (en) 2001-09-05 2003-03-06 Mark Hilbert Memory using error-correcting codes to correct stored data in background
US7219271B2 (en) 2001-12-14 2007-05-15 Sandisk 3D Llc Memory device and method for redundancy/self-repair
DE10206689B4 (de) 2002-02-18 2004-03-18 Infineon Technologies Ag Integrierter Speicher und Verfahren zum Betrieb eines integrierten Speichers
US6728146B1 (en) 2002-07-03 2004-04-27 Macronix International Co., Ltd. Memory device and method for automatically repairing defective memory cells
KR100490084B1 (ko) 2002-09-12 2005-05-17 삼성전자주식회사 효율적인 리던던시 구제율을 갖는 반도체 메모리 장치
DE10341616A1 (de) 2003-09-10 2005-05-04 Hyperstone Ag Verwaltung defekter Blöcke in Flash-Speichern
US7099221B2 (en) 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7810017B2 (en) 2006-03-20 2010-10-05 Micron Technology, Inc. Variable sector-count ECC
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US7996641B2 (en) * 2007-06-27 2011-08-09 International Business Machines Corporation Structure for hub for supporting high capacity memory subsystem
US20110016278A1 (en) * 2008-03-31 2011-01-20 Frederick Ware Independent Threading of Memory Devices Disposed on Memory Modules
GB2478727B (en) * 2010-03-15 2013-07-17 Advanced Risc Mach Ltd Translation table control
US8824222B2 (en) * 2010-08-13 2014-09-02 Rambus Inc. Fast-wake memory
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US8972824B1 (en) * 2012-05-22 2015-03-03 Pmc-Sierra, Inc. Systems and methods for transparently varying error correction code strength in a flash drive
US8966328B2 (en) * 2012-12-17 2015-02-24 Hewlett-Packard Development Company, L.P. Detecting a memory device defect
US10031802B2 (en) * 2013-06-28 2018-07-24 Intel Corporation Embedded ECC address mapping

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3800286A (en) * 1972-08-24 1974-03-26 Honeywell Inf Systems Address development technique utilizing a content addressable memory
US4241401A (en) * 1977-12-19 1980-12-23 Sperry Corporation Virtual address translator utilizing interrupt level code
US5758056A (en) * 1996-02-08 1998-05-26 Barr; Robert C. Memory system having defective address identification and replacement
US6035432A (en) * 1997-07-31 2000-03-07 Micron Electronics, Inc. System for remapping defective memory bit sets
EP0973095A1 (en) * 1998-07-17 2000-01-19 Advanced Technology Materials, Inc. A single chip embedded microcontroller with flash eprom and error check and correction system
US6115278A (en) * 1999-02-09 2000-09-05 Silicon Graphics, Inc. Memory system with switching for data isolation
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
CN102272855A (zh) * 2008-12-30 2011-12-07 韩商英得联股份有限公司 存储器控制器及存储器管理方法

Also Published As

Publication number Publication date
US20150318870A1 (en) 2015-11-05
EP3138009A1 (en) 2017-03-08
CN106233258A (zh) 2016-12-14
US9954557B2 (en) 2018-04-24
WO2015168190A1 (en) 2015-11-05
EP3138009B1 (en) 2018-04-18

Similar Documents

Publication Publication Date Title
CN106233258B (zh) 可变宽度纠错
US9711487B2 (en) Method and device for controlling operation using temperature deviation in multi-chip package
CN109840223A (zh) 存储器装置、包括其的电子装置和电子装置的操作方法
US10224107B1 (en) Method and apparatus for dynamically determining start program voltages for a memory device
US10503655B2 (en) Data block sizing for channels in a multi-channel high-bandwidth memory
KR20190019203A (ko) 가상 컨트롤러 모드를 가진 메모리 컨트롤러
US20180293163A1 (en) Optimizing storage of application data in memory
US11748034B2 (en) Signalling for heterogeneous memory systems
US20220293162A1 (en) Randomization of directed refresh management (drfm) pseudo target row refresh (ptrr) commands
CN105408875A (zh) 在存储器接口上的分布式过程执行和文件系统
KR20210041655A (ko) 메모리 칩, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
US10416886B2 (en) Data storage device that reassigns commands assigned to scale-out storage devices and data processing system having the same
US9436625B2 (en) Approach for allocating virtual bank managers within a dynamic random access memory (DRAM) controller to physical banks within a DRAM
US10732859B2 (en) Systems and methods for granular non-volatile memory health visibility to a host
CN105103138B (zh) 用于实时应用的嵌入式存储器管理方案
US9147499B2 (en) Memory operation of paired memory devices
US20190377671A1 (en) Memory controller with memory resource memory management
CN103885906B (zh) 存储器控制器以及包括存储器控制器的存储系统
CN115512758A (zh) 应用感知存储器巡查擦洗技术
CN109308167B (zh) 用于跟踪写入请求的设备和系统、以及控制器的方法
US8964495B2 (en) Memory operation upon failure of one of two paired memory devices
US11119676B2 (en) Using spare bits in memory systems
EP4375840A1 (en) Memory controller, electronic system including the same and method of controlling memory access
US20230222025A1 (en) Ras (reliability, availability, and serviceability)-based memory domains
US20190108896A1 (en) Systems and methods for providing post-package repair visibility to a host for memory reliability, availability, and serviceability

Legal Events

Date Code Title Description
C06 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