CN103959258A - 背景重排序——具有有限开销的预防性的磨损控制机制 - Google Patents

背景重排序——具有有限开销的预防性的磨损控制机制 Download PDF

Info

Publication number
CN103959258A
CN103959258A CN201180075314.2A CN201180075314A CN103959258A CN 103959258 A CN103959258 A CN 103959258A CN 201180075314 A CN201180075314 A CN 201180075314A CN 103959258 A CN103959258 A CN 103959258A
Authority
CN
China
Prior art keywords
physical address
memory devices
affairs
dimension
loss balancing
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.)
Granted
Application number
CN201180075314.2A
Other languages
English (en)
Other versions
CN103959258B (zh
Inventor
N.林科维特施
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN103959258A publication Critical patent/CN103959258A/zh
Application granted granted Critical
Publication of CN103959258B publication Critical patent/CN103959258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开的实施例描述用于防止例如存储器设备的集成电路设备的磨损的背景重排序技术和配置。在一个实施例中,方法包括:从处理器接收关于对存储器设备的一个或多个输入存取事务的信息;基于对该存储器设备的累积数量的存取事务来确定要执行损耗平衡操作,该累积数量的存取事务包括一个或多个输入存取事务;以及通过基于伪随机映射函数将存储器设备的第一物理地址映射到存储器设备的第二物理地址并且将来自第一物理地址的信息复制到第二物理地址来执行损耗平衡操作。可描述和/或要求保护其它实施例。

Description

背景重排序——具有有限开销的预防性的磨损控制机制
 
技术领域
本公开的实施例一般涉及集成电路的领域,并且更特定地,涉及用于防止例如存储器设备的集成电路设备的磨损的背景重排序技术和配置。
背景技术
例如非易失性存储器设备的存储设备可由于个体存储元件比其它存储元件更早地磨损而具有明显减少的寿命。已经开发当前的损耗平衡方法来减轻个体存储元件的磨损。例如,当前的损耗平衡方法可包括信息扇区的“不合适”存储连同垃圾收集过程。然而,这样的方法可需要存储大量的元信息来跟踪是什么信息存储在存储设备的存储位置处。该元信息可存储在存储设备自身中。用于使用这样的方法来重新组织信息的开销可随着存储设备的利用而显著增长并且与对存储设备的存取速率可具有固定关系。此外,在当前方法中,组织数据所采用的顺序可未被预先确定并且重排序可基于存储设备的个体存储元件的磨损程度。这些当前方法可不支持例如在存储设备用作处理器的主存储器的一部分时出现的对存储设备的精细粒度存取。
附图说明
实施例将通过下列详细说明连同附图而容易理解。为了便于该说明,类似的标号指代类似的结构元件。实施例通过示例而非限制的方式在附图中图示。
图1示意地图示根据一些实施例的背景重排序系统。
图2图示根据一些实施例的背景重排序的流程图。
图3图示根据一些实施例的重排序状态寄存器(RSP)。
图4图示根据一些实施例的映射函数。
图5示意地图示根据一些实施例的数据复制引擎(DCE)中的地址计算。
图6图示根据一些实施例的DCE的示例流程。
图7是根据一些实施例的背景重排序的方法的流程图。
图8示意地图示可用于实践本文描述的各种实施例的示例的基于处理器的系统。
具体实施方式
本公开的实施例描述用于防止例如存储器设备的集成电路设备的磨损的背景重排序技术和配置。在下列详细说明中,参考形成本发明一部分的附图,其中全文中类似的数字指代的类似部件并且其中通过可在其中实践本公开的主题的图示实施例的方式示出。要理解可使用其它实施例并且可进行结构的或逻辑的改变而不偏离本公开的范围。因此,下列详细说明并非在限制性的意义上理解,并且实施例的范围由附加的权利要求和它们的等同物限定。
各种操作进而采用对于理解要求保护的主题最有帮助的方式描述为多个分立动作或操作。然而,说明的顺序不应该解释为暗示这些操作必定是顺序相关的。
为了本公开的目的,短语“A和/或B”意思是(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/C”意思是(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
描述可使用短语“在实施例中”或“在多个实施例中”,其各自可指相同或不同实施例中的一个或多个。此外,如关于本公开的实施例使用的术语“包括”、“包含”、“具有”及类似物是同义的。术语“耦合”可指直接连接、间接连接或间接通信。
根据各种实施例,本公开描述一种方法,其包括:从处理器接收关于对存储器设备的一个或多个输入(incoming)存取事务的信息;基于对该存储器设备的累积数量的存取事务来确定要执行损耗平衡操作,该累积数量的存取事务包括一个或多个输入存取事务;以及通过基于伪随机映射函数将存储器设备的第一物理地址映射到存储器设备的第二物理地址,以及将来自第一物理地址的信息复制到第二物理地址来执行损耗平衡操作。
在一些实施例中,确定要执行损耗平衡操作包括将比率与预定值比较,该比率包括对存储器设备执行的损耗平衡操作的累积数量相对于对存储器设备接收的写事务的累积数量。
在一些实施例中,如果比率偏离预定值则执行损耗平衡操作。
在一些实施例中,接收的关于一个或多个输入存取事务的信息包括来自处理器的一个或多个第三物理地址,其与一个或多个输入存取事务对应,该方法进一步包括将该一个或多个第三物理地址映射到一个或多个第四物理地址。
在一些实施例中,方法包括确定在一个或多个第三物理地址处存储的信息是否已经在周转时间内重排序,该周转时间是由其中在存储设备的每个物理地址处存储的信息已经被重排序一次的时间定义的循环期,其中每个物理地址具有对应的临时属性,其指示在每个物理地址处存储的信息对于周转时间是否被重排序。
在一些实施例中,方法包括在一个或多个第四物理地址处执行一个或多个存取事务,其中如果确定在一个或多个第三物理地址的对应地址处存储的信息在周转时间内已经重排序,则一个或多个第四物理地址中的地址具有第一值,其中如果确定在一个或多个第三物理地址的对应地址处存储的信息未在周转时间内重排序,则一个或多个第四物理地址中的地址具有第二值,所述第一值代表与所述第二值不同的物理地址,一个或多个第四物理地址与一个或多个第三物理地址不同。
在一些实施例中,方法包括监视总线的活动,其中执行损耗平衡操作由空总线周期的检测而触发。
在一些实施例中,在存储器设备的至少两个维度中的第一维度中执行损耗平衡操作,该第一维度限定第一级存储器组织并且第二维度限定第二级存储器组织,第一物理地址的第一成分向第二维度提供索引,并且第一物理地址的第二成分动态映射到第一维度中的索引。在一些实施例中,对于第一维度的索引指示行内的位并且对于第二维度的索引指示该行。
在一些实施例中,对于存储器设备的一个或多个输入存取事务包括从处理器的高速缓存接收的一个或多个驱逐(evicted)的高速缓存行,其中高速缓存的磨损感知策略在第二维度中选择存储器设备的第三物理地址用于存储一个或多个驱逐的高速缓存行,该磨损感知策略感知存储器设备的磨损。
根据各种实施例,本公开描述一种装置,其包括:存取端口,用于从处理器接收关于对存储器设备的一个或多个输入存取事务的信息;重排序率控制模块,用于基于对存储器设备接收的累积数量的存取事务确定要执行损耗平衡操作,该累积数量的存取事务包括一个或多个输入存取事务;以及数据重排序模块,用于基于要执行损耗平衡的所述确定和伪随机函数通过将来自存储器设备的当前物理地址的信息复制到存储器设备的重排序物理地址来执行损耗平衡操作。
在一些实施例中,重排序率控制模块通过将比率与预定值比较来确定要执行损耗平衡操作,该比率包括对存储器设备执行的损耗平衡操作的累积数量相对于对存储器设备接收的写事务的累积数量,其中如果比率偏离预定值则执行损耗平衡操作。
在一些实施例中,由存取端口接收的信息包括一个或多个预期物理地址,其与一个或多个输入存取事务对应,并且数据重排序模块包括映射函数,其配置成计算一个或多个预期物理地址中的每个的重排序物理地址。
在一些实施例中,重排序率控制模块配置成基于要执行损耗平衡操作这一确定来设置请求标志,其中数据重排序模块包括数据复制引擎,其基于该请求标志发起从存储器设备的当前物理地址的信息到存储器设备的重排序物理地址的复制,并且其中映射函数配置成使用当前物理地址来计算损耗平衡操作的重排序物理地址。
在一些实施例中,数据复制引擎配置成确定在一个或多个预期物理地址处存储的信息是否在周转时间内重排序,该周转时间是由其中在存储器设备的每个物理地址处存储的信息已经被重排序一次的时间限定的循环期,其中临时属性对应于具有存储在其中的信息的存储器设备的每个物理地址,该临时属性指示在每个物理地址处存储的信息对于周转时间是否已被重排序。
在一些实施例中,数据重排序模块进一步包括重排序状态寄存器,其包括对每个周转时间递增的至少一个值,其中映射函数配置成基于该至少一个值计算损耗平衡操作的重排序物理地址和一个或多个预期物理地址中的每个的重排序物理地址。
在一些实施例中,数据重排序模块配置成监视存取端口的活动并且在检测到存取端口的空总线周期时被触发来执行损耗平衡操作。
在一些实施例中,存储器设备配置成在一个或多个预期物理地址中的每个的重排序物理地址处执行一个或多个存取事务,其中一个或多个存取事务与执行损耗平衡操作的数据重排序模块并行地执行。
在一些实施例中,数据重排序模块配置成在存储器设备的至少两个维度的第一维度中执行损耗平衡操作,该第一维度限定第一级存储器组织并且第二维度限定第二级存储器组织,该第二维度与该第一维度不同,其中当前物理地址的成分向第二维度提供索引,并且其中当前物理地址的另一个成分动态映射到第一维度中的索引。
在一些实施例中,对于第一维度的索引指示行内的位并且对于第二维度的索引指示该行。
在一些实施例中,对于存储器设备的一个或多个输入存取事务包括从处理器的高速缓存接收的一个或多个驱逐的高速缓存行,其中高速缓存的磨损感知策略配置成在第二维度中选择存储器设备的物理地址用于存储一个或多个驱逐的高速缓存行,该磨损感知策略感知存储器设备的磨损。
根据各种实施例,本公开描述这样的系统,其包括:处理器;存取端口,用于从处理器接收关于对存储器设备的一个或多个存取事务的信息;重排序率控制模块,用于基于对存储器设备接收的累积数量的存取事务来确定要执行损耗平衡操作,该累积数量的存取事务包括接收的一个或多个输入存取事务;以及数据重排序模块,用于基于要执行损耗平衡的所述确定通过将来自存储器设备的第一物理地址的信息复制到存储器设备的第二物理地址而执行损耗平衡操作,其中损耗平衡操作遵循预定且伪随机的顺序。
在一些实施例中,重排序率控制模块通过将比率与预定值比较来确定要执行损耗平衡操作,该比率包括对存储器设备执行的损耗平衡操作的累积数量相对于对存储器设备接收的写事务的累积数量,其中如果比率偏离预定值则执行损耗平衡操作。
在一些实施例中,关于由存取端口接收的一个或多个输入存取事务的信息包括一个或多个预期物理地址,其与一个或多个输入存取事务对应,并且数据重排序模块配置成对一个或多个预期物理地址中的每个计算重排序物理地址。
在一些实施例中,数据重排序模块配置成确定在一个或多个预期物理地址处存储的信息是否已经在周转时间内重排序,该周转时间是由其中在存储设备的每个物理地址处存储的信息已经被重排序一次的时间限定的循环期,其中每个物理地址具有对应的临时属性,其指示在每个物理地址处存储的信息对于周转时间是否被重排序。
在一些实施例中,存储器设备配置成在对应于一个或多个存取事务的重排序物理地址处执行一个或多个存取事务,其中一个或多个存取事务与数据重排序模块执行损耗平衡操作并行地执行。
在一些实施例中,数据重排序模块配置成通过使用第一物理地址计算损耗平衡操作的第二物理地址来执行损耗平衡操作。
在一些实施例中,数据重排序模块配置成监视存取端口的活动并且在检测到存取端口的空总线周期时被触发来执行损耗平衡操作。
在一些实施例中,数据重排序模块配置成在存储器设备的至少两个维度的第一维度中执行损耗平衡操作,该第一维度限定第一级存储器组织并且第二维度限定第二级存储器组织,第一维度包括位级存取并且第二维度包括行级存取,其中第一物理地址的第一成分向第二维度提供索引,并且其中第一物理地址的第二成分动态映射到第一维度中的索引。
在一些实施例中,系统进一步包括处理器的高速缓存,其中对于存储器设备的一个或多个输入存取事务包括从高速缓存接收的一个或多个驱逐的高速缓存行,其中高速缓存的磨损感知策略配置成基于潜在位错误事件的统计信息来驱逐映射到存储器设备的最小磨损物理地址的高速缓存行,该统计信息包括每块的最大观察数量的位错误和/或每块的累积数量的位错误。
图1示意地图示根据一些实施例的背景重排序系统100。该背景重排序系统100可包括处理器102,其操作地耦合于存储器设备116。在一些实施例中,该处理器102可包括例如中央处理单元(CPU)。处理器102可包括高速缓存104或与之关联,该高速缓存104存储处理器102的数据,并且存储器设备116可包括基于处理器的系统(例如,图8的基于处理器的系统800)的主存储器或是其一部分,该基于处理器的系统包括处理器102和/或存储器设备116。在一些实施例中,背景重排序系统100可支持对于细粒度存取(例如,64字节高速缓存行)的损耗平衡操作。
根据各种实施例,存储器设备116可以是非易失性存储器设备,例如相变存储器(PCM)设备或相变存储器和开关(PCMS)设备、闪速存储器(例如,NOR或NAND)及类似物。主题在该方面不受限制,并且存储器设备116可包括受益于本文描述的原理的其它类型的存储器设备。
处理器102可配置成处理、生成或用别的方式输出预期用于存储器设备116的一个或多个存取事务105。例如,该一个或多个存取事务105可包括一个或多个读事件和/或写事件。
作为损耗平衡操作的一部分,背景重排序系统100可配置成基于对存储器设备116的存取事务105的数量将存储在存储器设备116中的信息重排序。损耗平衡操作可包括例如将物理地址(PA)映射到重排序物理地址(RPA)的映射操作和使数据从物理地址移动到存储器设备116的重排序物理地址来防止存储器设备116的个体存储元件(例如,存储器单元)的过度磨损的复制事务。物理地址可对应于存储器设备116中的特定位置并且可包括例如单元或单元组。在一些实施例中,物理地址对应于具有64字节大小的行。在其它实施例中,物理地址可与其它大小的存储器粒度对应。背景重排序系统100可配置成按预定义和可再生伪随机顺序对信息重排序。
背景重排序系统100可包括重排序率控制器(RRC)106,其配置成控制在存储器设备116中的损耗平衡重排序的比率。RRC 106可配置成监视或跟踪对存储器设备116的一定数量的存取事务105并且基于存取事务105的数量设置重排序请求标志。在一些实施例中,RRC 106可配置成基于从处理器102接收的对存储器设备116的累积数量的存取事务105来确定要执行损耗平衡操作。例如,RRC 106可用配置的重排序率(CRR)来设置,CRR规定累积损耗平衡操作相对于对存储器设备116接收的一定数量的累积正常写事务(例如,不是损耗平衡操作的一部分的写操作)的目标比率。在一些实施例中,RRC 106可跟踪对于存储器设备116的一定数量的正常写事务和一定数量的损耗平衡写事务并且设置重排序请求标志以在损耗平衡事务的数量相对于正常写事务的数量的比率偏离CRR时触发损耗平衡操作。在一些实施例中,CRR具有在2%至6%之间的值,其代表用于在存储器设备116中执行损耗平衡操作的固定能量开销。在其它实施例中,CRR具有4%的值(例如,平均地在处理器设备116的寿命内每二十五个正常写事务执行单个损耗平衡操作)。
在一些实施例中,输入写事务使RRC 106的寄存器109递增权重p(例如,+1)并且损耗平衡事务使RRC 106的寄存器109递减权重n(例如,-25)。在这样的情况下,RRC 106可配置成请求损耗平衡事务来对RRC 106的寄存器109以值0为目标。在一些实施例中,当寄存器109具有0或更大的值时,触发RRC来设置重排序请求标志。
与可基于对存储器设备116的个体单元的压力触发重排序的其它技术相比,RRC 106可基于对存储器设备116的总压力来触发重排序。即,RRC 106可忽视个体行或单元的磨损程度。背景重排序系统100可具有开销(例如,能量、带宽、性能度量等),其与对存储器设备116的存取速率具有固定关系并且被预定并且在存储器设备116的寿命内恒定。
尽管在存储器设备的寿命开始时可允许不平衡的磨损(例如,在对单元的平均写计数在1E4和1E5的范围内时,写压力不平衡),磨损可随时间对存储器设备116变得更加平衡和齐平(例如,在平均写计数上升超过1E5至1E6时,写压力可平衡)。开销可保持独立于存储器设备116的容量的利用。此外,在背景重排序系统100中可不需要例如垃圾收集的复杂操作。
参考图2,描绘根据一些实施例用于背景重排序的流程图200。参考图1和2两者,在202处,一个或多个事务105和该一个或多个存取事务105的对应预期物理地址从处理器102接收。在比率匹配块A处,提供用于基于一个或多个存取事务105来生成重排序事务(例如,损耗平衡操作)的功能性。在204处,对应于一个或多个存取事务105的预期物理地址和重排序事务请求(如生成的话)发送到地址计算块B。在地址计算块B处,提供功能性(例如,数据重排序模块118)用于对对应于一个或多个事务105的预期物理地址中的每个计算重排序物理地址和重排序事务的重排序物理地址。在206处,一个或多个事务105和重排序事务的重排序物理地址发送到所述一个或多个存取事务105和重排序事务的存储器设备116。在一些实施例中,可对一个或多个存取事务105生成多个重排序事务。
回到图1,根据各种实施例,背景重排序系统100配置成接收关于一个或多个输入存取事务105的信息。例如,RRC 106可跟踪一定数量的存取事务105并且基于对于存储器设备116的累积数量的存取事务105来确定要执行损耗平衡操作。在一些实施例中,累积数量的存取事务105可包括一个或多个输入存取事务105。
在一些实施例中,接收的关于一个或多个输入存取事务105的信息包括对应于输入存取事务105中的每个的预期物理地址。数据重排序模块118可经由存取端口107来接收一个或多个预期物理地址。数据重排序模块118可包括数据复制引擎(DCE)108,其配置成接收一个或多个预期物理地址并且跟踪、确定或用别的方式提供关于存储在一个或多个预期物理地址处的信息是否在周转时间内被重排序的信息。该周转时间可以是由其中在存储器设备116的每个物理地址处存储的信息已经被重排序一次的时间限定的循环期。在一些实施例中,数据重排序(例如,损耗平衡操作)和正常存取事务可并行执行。DCE 108可提供复制进展的信息来维持事务的一致性。
在一些实施例中,每个物理地址具有对应的临时属性,其便于跟踪复制进展用于对事务重排序。例如,该临时属性可以用于确定在每个物理地址处存储的信息对于周转时间是否被重排序到新的位置。在一个实施例中,存储器设备116的所有单元可在周转时间开始时具有临时属性0并且存储器设备116的所有单元在周转时间结束时具有临时属性1。在新的周转时间开始之前,可执行“原子的”(例如,不可中断)硬件操作,其将所有单元的临时属性设置成指示单元尚未被重排序的值。
在每个周转时间结束时,DCE 108可指示重排序状态寄存器(RSR)110递增(例如,经由进位线)一个或多个值。RSR 110可代表存储器设备116重排序的临时状态。例如,RSR 110可存储种子值,其用于为映射函数114生成伪随机值。在一些实施例中,RSR 110包括:至少第一成分RSR.s,其可在伪随机映射函数f(例如,在下文“映射函数114”)的移位函数中使用;和第二成分RSR.a,其可在映射函数114的添加函数中使用。在一些实施例中,DCE 108指示RSR 110在每个周转时间结束时递增RSR.s成分和RSR.a成分两者。RSR.s和RSR.a可各自具有:第一值(共同由N表示),如果DCE 108确定在存取事务的预期物理地址处存储的信息尚未在周转时间内重排序则将该第一值发送到映射函数114;以及第二值,共同由N+1表示(例如,递增的RSR.s和RSR.a值),如果DCE 108确定在存取事务的预期物理地址处存储的信息已经在周转时间内重排序,该第二值与第一值不同。RSR.s和RSR.a的第一值N和第二值N+1对于给定周转时间可以是恒定的。
在一些实施例中,由DCE 108提供的临时属性可包括例如具有1位属性的数组A[]来区分对于存储器设备116的每个单元或物理地址的N和N+1情况。例如,值0可指示映射函数114使用N(“N映射”)来计算重排序的物理地址,并且值1可指示映射函数114使用N+1(“N+1映射”)来计算重排序的物理地址。数组A[]可对每个单元或地址具有一个条目。在其它实施例中,例如当使背景重排序系统110上电或从待命唤醒时,可计算临时属性,这可允许使背景重排序系统100掉电而不保存每个单元的全数组A[]的属性。在一些实施例中,临时属性可对每一个输入存取业务来计算。在另外的其它实施例中,可使用这些技术的组合。例如,一些临时属性可存储在存储器设备116的临界区域的数组中并且可对该临界区域外部的物理地址的每个输入存取事务计算剩余的临时属性。
DCE 108可发送(例如,经由图1中的N至N+1决策行)信息(例如,1或0),其指示的预期物理地址对于对复用器(例如对N至N+1选择器112(在下文“选择器112”))的周转时间是否被重排序。在一些实施例中,RSR 110可配置成输出存储在其中的值N。如果由DCE 108发送到选择器112的信息指示预期物理地址已经被重排序(例如,信息是具有值1的位),则来自RSR 110的输出N可递增(例如,通过递增器119)来提供N+1,其可从选择器112输出给映射函数114。如果由DCE 108发送到选择器112的信息指示预期物理地址尚未被重排序(例如,信息是具有值0的位),则来自RSR 110的输出可未递增并且N可从选择器112输出到映射函数114。
映射函数114可配置成基于来自选择器112的输出执行N映射或N+1映射。在任一个情况(N映射或N+1映射)下,对应于一个或多个存取事务105的一个或多个预期物理地址中的每个可用于根据各种实施例计算一个或多个存取事务105的重排序物理地址。即,在对应的预期物理地址已经在周转时间内重排序的情况下,并且还在对应的预期物理地址在周转时间内还未被重排序的情况下,可对一个或多个存取事务105中的每个计算重排序物理地址。N映射向映射函数114提供与N+1映射不同的输入值(例如,RSR.s和RSR.a)。从而,在一些实施例中,如果确定在存取事务的预期物理地址处存储的信息已经在周转时间内重排序,则存取事务的重排序物理地址可具有第一地址,并且如果确定在存取事务的预期物理地址处存储的信息在周转时间内还未被重新排序,则重排序的物理地址可具有第二地址,该第一地址与第二地址不同,并且第一和第二地址与预期物理地址不同。
与静态地址置乱相比,背景重排序系统100可提供动态伪随机地址映射(或“置乱”)。例如,在静态地址映射中,每当映射特定预期物理地址时,该特定预期物理地址可映射到相同的重排序物理地址。在动态地址映射中,每当映射特定预期物理地址时,该特定预期物理地址可映射到不同的重排序物理地址。在该方面,因为对于特定预期物理地址的映射可随时间改变,映射是动态的。
在一些实施例中,DCE 108可确定存取事务对应于在临时数据寄存器111中存储的“飞行中”信息。当存取事务具有是“飞行中”的对应预期物理地址(例如,存储在临时数据寄存器111中)时,存取事务映射到临时数据寄存器111。临时数据寄存器111可用于暂时将信息存储在DCE 108中,而例如,DCE 108执行由DCE 108控制的存储器区域的循环重排序。在一些实施例中,DCE 108可控制临时数据寄存器111。
在一些实施例中,可需要锁定机制来保护“进行中”的复制行。例如,在发生重排序时,单元的子集可被“锁定”。根据各种实施例,DCE 108可跟踪或提供临时属性状态,其指示一个或多个预期物理地址是被锁定还是在进行中。
在一些实施例中,额外写请求的端口可耦合于DCE 108。该端口可耦合于例如非易失性存储器控制器来对控制器指示为重排序事务保留总线周期。在一些实施例中,存取端口107配置成对一个或多个存取事务105提供地址、数据和控制信号。
参考图3,其描绘根据一些实施例的重排序状态寄存器(RSR)300,用于递增的指令可从来自DCE(例如,图1的DCE 108)的进位线接收并且可递增RSR.a成分模-2A和递增RSR.s成分模-A,其中A是RSR.a的位数。RSR 300的时期可通过lcm(A, 2A)来计算,其中lcm是最小公倍数。如果A是奇数,则时期等于A*2A。时期可在存储器设备的寿命时间内重复。在一些实施例中,A具有11个位的值。
在一些实施例中,RSR.s可包括4个位,其代表在0与10之间的值。当在周转时间结束的时候递增时,RSR.s可递增1。例如,如果RSR.s持有值1,则递增将值带到2等等直到9。如果RSR.s持有值10,则递增将值带到0。在一些实施例中,RSR.a可包括11个位,其代表在0与2047之间的值。当在周转时间结束的时候递增时,RSR.a可递增1。例如,如果RSR.a持有值0,则递增将值带到1等等直到2047。如果RSR.a持有值2047,则递增将值带到0。对于RSR.s和RSR.a的值可经由选择器(例如,图1的选择器112)输出到映射函数(例如,图1的映射函数114)。在其它实施例中,RSR 300可包括其它值或采用其它方式递增。在一些实施例中,图1的RSP 110可与结合RSR 300描述的实施例一致。
参考图4,其描绘根据一些实施例的映射函数400,RSR.s和RSR.a(例如,如结合图3的RSR 300描述的)用于基于物理地址按预定或伪随机顺序映射或计算重排序的物理地址。在一些实施例中,该物理地址可以是一个或多个输入存取事务(例如,图1的存取事务105)的预期物理地址并且可由11位值表示。根据各种实施例,RSR.s可用于使物理地址循环左移位。例如,如果RSR.s具有值0,则从移位器函数402输出的中间11位地址可具有等于PA[10:0]的值。如果RSR.s具有值1,则从移位器函数402输出的中间11位地址可具有等于2*PA[9:0]+PA[10]的值,其中较低的10个位向左移动1个位位置并且最高有效位用作中间地址中的最低有效位。如果RSR.s具有值2,则从移位器函数402输出的中间11位地址可具有等于4*PA[8:0]+PA[10:9]的值,其中较低的九个位向左移动两个位位置并且最高有效的两个位用作中间地址中的最低有效的两个位。如果RSR.s具有值3,则从移位器函数402输出的中间11位地址可具有等于8*PA[7:0]+PA[10:8]的值,其中较低的八个位向左移动三个位位置并且最高有效的三个位用作中间地址中的最低有效的三个位,等等。
从移位器402输出的中间地址可包括无符号的11位整数并且可输入加法器404。在一些实施例中,RSR.a的值添加到中间地址。在一些实施例中,RSR.a的值包括无符号的11位整数。在加法器404中可忽略进位来提供在0与2047之间的输出值。加法器404的输出是重排序的物理地址。
从而,存储数据所按照的顺序被预定,这可允许元数据与在背景章节中描述的技术方案相比极其小。例如,可需要具有仅大约6至7字节的信息用于确定1兆兆位类存储器设备中所有存储数据的位置。
在其它实施例中,映射函数400可使用备选方案或更多或更少的函数来提供物理地址到重排序物理地址的预定的且伪随机的映射。在一些实施例中,图1的映射函数114可与结合映射函数400一起描述的实施例一致。
参考图1,映射函数114配置成基于对一个或多个存取事务105的一个或多个预期物理地址和RSR 110(例如,RSR.s和RSR.a)的值(例如,N或N+1)来计算或映射一个或多个重排序物理地址。该一个或多个重排序物理地址发送到存储器设备116用于存储器设备116在一个或多个重排序物理地址处执行一个或多个存取事务105。
当一个或多个输入存取事务105触发损耗平衡操作时,RRC 106可设置重排序请求标志。DCE 108可将重排序请求标志的确认发送到RRC 106,其可基于该确认来更新跟踪累积损耗平衡操作的寄存器109。例如,RRC 106可基于确认使寄存器109递减-25。在一些实施例中,DCE 108可响应于由RRC 106设置重排序请求标志而对损耗平衡操作发起地址计算和数据复制事务。
在一些实施例中,执行损耗平衡操作的背景重排序系统100的功能性和执行正常写事务的功能性并行操作,这在至少一个实施例中意指执行损耗平衡操作的功能性配置成与执行正常写事务的功能性并发运行。例如,RRC 106可基于对存储器设备116的输入存取事务105而设置重排序请求标志来触发损耗平衡操作。背景重排序系统100可与一个或多个输入存取事务105并发或继其之后执行损耗平衡操作。
图5示意地图示根据一些实施例的数据复制引擎(DCE)(例如,图1的DCE 108)中的地址计算。实线代表一个或多个输入存取事务(例如,图1的存取事务105)的地址计算路径506并且虚线代表损耗平衡重排序(例如,损耗平衡操作)的地址计算路径508。
如之前描述的,对于输入存取事务的地址计算路径506包括向N到N+1决策块510提供输入存取事务的预期物理地址(例如,PA)。在N到N+1决策块510处,基于临时属性的计算或查找来确定是否执行该预期物理地址的N或N+1映射。例如,DCE(例如,图1的DCE 108)可计算或查找对应于该预期物理地址的临时属性并且向N到N+1选择器112发送临时属性。使用基于临时属性选择的RSR.s和RSR.a的值,映射函数114使用物理地址作为到映射函数114的直接输入来计算重排序物理地址。
损耗平衡操作的地址计算路径508包括生成物理地址来重排序和地址计算。在一些实施例中,DCE(例如,图1的DCE 108)可配置成监测总线的活动来检测空的总线周期(例如,图1的120)。在一些实施例中,总线可与图1的存取端口107对应或与具有对应于对存储器设备的输入存取事务的活动的任何其它总线(例如,为输入存取事务提供物理地址的总线)对应。在一些实施例中,有效载荷/开销选择器(在下文“选择器512”)可配置成选择对应于空总线周期的状态(例如,0的位值),其可允许损耗平衡操作在没有对存储器设备(例如,图1的存储器设备116)的输入存取事务(例如,图1的存取事务105)时继续。因此,用于执行损耗平衡操作的功能性可在背景中操作和/或具有比正常存取事务更低的优先级,使得损耗平衡操作不减少存储器设备的可用带宽或性能。在这样的实施例中,损耗平衡操作的开销可主要包括能量。
空总线周期的检测可例如触发DCE(例如,图1的DCE 108)来测试或检查重排序请求标志。如果设置了重排序请求标志,那么DCE可向RRC(例如,图1的RRC 106)发送确认指示并且发起损耗平衡操作的地址计算和数据复制事务。在一些实施例中,图6的流程600的动作由DCE从612执行直到626,当检测到空总线周期时再次回到602并且直到612。
在一些实施例中,DCE 108可生成物理地址用于重排序(例如,来接收损耗平衡操作)并且向映射功能114发送生成的物理地址用于重排序的物理地址的计算。该重排序的物理地址可基于生成的物理地址并且还基于输入到映射功能114的RSR.s和RSR.a的值来计算。信息可从生成的物理地址复制到重排序的物理地址。在一些情况下,如在图5中描绘的反映射函数f-1(下文中“反映射函数504”)可用作地址计算路径608的部分。图6的描述包括使用反映射函数504的示例。
图6图示根据一些实施例的DCE(例如,图1的DEC 108)的示例流程600。该流程的动作可由DCE的状态机或模块执行。该流程600指向与损耗平衡操作关联的动作。例如,该流程600可描述由DCE执行的动作连同生成损耗平衡操作的物理地址。尽管该流程600不明确描述属于正常存取事务的动作,注意通过改变A[]的值以及有时也改变RSR,DCE可改变损耗平衡操作后的正常存取事务的映射。
对流程600限定下列术语。术语f(x,s,a)代表映射函数(例如,图1的映射函数114),其中x指代对应于输入到映射函数的物理地址的工作寄存器,并且s指代RSR.s,并且a指代RSR.a。函数结果是从映射函数输出的重排序的物理地址。术语f-1 (y,s,a)代表反映射函数(例如,图5的反映射函数504),其可以是DCE的部分,其中y指代对应于从映射函数输出的重排序的物理地址的工作寄存器。函数结果是从反映射函数输出的物理地址。术语x、x0代表物理地址的工作寄存器,并且术语y、y’代表对于重排序的物理地址的工作寄存器。工作寄存器x、x0可用于生成物理地址用于重排序(例如,执行损耗平衡操作)。工作寄存器x、x0可在每个周转时间开始时初始化并且可用每个损耗平衡事务来修改。
图6中的术语“飞行中”代表告诉临时寄存器“tmp”(例如,图1的临时数据寄存器111)中的数据属于哪个地址的整数寄存器。术语<无>可以编码为-1。术语A[]代表N到N+1决策的1位属性的数组。值0可代表N并且值1可代表N+1。术语2N可代表重排序的存储器区域的总大小。术语c[]可代表存储器设备的存储器单元。例如,c[y]→c[y’]可意味存储器内容从位置y复制到y’。
流程600的初始化可在604和606处发生。在604处,飞行中地址可标记为无效来指示临时寄存器不包含任何数据。
在606处,存储在寄存器x0中的物理地址可设置成零来标记循环重排序方案的首地址。此外,在606处,数组A[]的所有临时属性i可设置成零来指示所有位置尚未重排序。
在608处,可确定存储在x0中的首地址的寄存器y的重排序的物理地址。这样的确定可用于指示在哪里从循环方案读取第一数据。数据可例如从存储器设备在寄存器y的重排序的物理地址读取并且保存在临时寄存器中。飞行中地址可对存储在x0中的物理地址赋值来指示临时寄存器持有属于存储在x0中的物理地址的数据。在临时寄存器中保存数据可确保存储器设备的至少一个位置对于重排序事务是空闲的。
在610处,存储在y中的重排序物理地址复制到y’来允许y’指向空闲地址,其中可以存储新数据而不重写现有数据。存储在y’处的数据可在从y复制到y’之前保存在临时寄存器中。其中y’作为输入的反映射函数的结果和递增的s与a值可存储在x中来提供物理地址(从其取得数据来移动到空闲地址)。映射函数用x、s和a的输入执行,并且结果存储在y中来便于用于重排序事务的数据复制。
在612和614处,流程600可与RRC(例如,图1的RRC 106)同步。在612处,DCE可等待空总线周期和重排序请求标志。DCE可大部分时间保持在该状态。空总线周期的测试可避免重排序事务与正常数据业务的干扰,并且标志测试可便于重排序事务与正常存取事务的期望比率的实现。在614处,DCE可响应于设置重排序请求标志发送确认(例如,向图1的RRC 106)。
在616处,将存储在x处的物理地址与存储在x0处的物理地址比较来测试存储在x处的物理地址(例如,当前地址)是否再次达到存储在x0处的首地址(例如,如果x= x0,那么是,否则不)。在618处,在确定存储在x处的物理地址不等于存储在x0处的物理地址的情况下,存储在y中的数据移动到y’并且临时属性对于存储在x中的物理地址更新到值1。可重复包括在610、612和614处的动作的数据复制动作。如果确定存储在x处的物理地址等于存储在x0处的物理地址,那么已经达到循环重排序序列(例如,动作610至618)的末尾并且可执行在620处的动作。
在620处,来自临时寄存器的数据可写入y’。存储在x中的物理地址的临时属性可设置成1,其指示物理地址已经重排序。
在622、624和626处,存储在x0处的首地址可递增直到它达到没有重排序的物理地址(例如,具有0的临时属性)。当达到没有重排序的物理地址时,这样的物理地址可存储为另一个循环方案的新的首地址。在622处,存储在x0处的首地址可递增。在624,DCE可测试x0是否达到指示周转时间完成的值。如果完成周转时间,那么在602处DCE可向RSR发送进位信号来指示RSR将它的值递增并且流程可在604继续等等。如果没有完成周转时间,那么在626 处DCE可测试与x0关联的临时属性是否等于0,如果属实,其可指示已经识别新的首地址并且流程600可在608继续等等来开始新的周期复制序列。如果测试在626处失败,那么可重复在622至626处的动作直到在626的测试为真。
在一些实施例中,反映射函数(例如,图5的反映射函数504)由DCE使用来允许非常小的临时数据寄存器,tmp,(例如,图1的临时数据寄存器111)。例如,临时数据寄存器可大小适于存储单个数据集,例如与一个单一读或写操作关联的数据的量。反映射函数可与伪随机孔移动技术结合使用。例如,在一些实施例中,DCE可挑选尚未对周转时间重排序的一个物理地址(例如,存储在x0中)。DCE可例如基于数组A[]的临时属性选择在x0的物理地址。DCE可从在y=f(x0,s,a)的重排序的物理地址读取数据,并且将它存储在临时数据寄存器中,从而在存储器设备中产生“孔”。该孔现在可需要经由N+1映射用属于该位置的数据填充。属于在x的尚未确定的物理地址的数据可从对应的N映射地址移动到对应的N+1映射地址(例如,“孔”)。孔的重排序物理地址可存储在y’处。存储在y处的物理地址(具有N+1映射)可通过对在y’的重排序物理地址执行反映射函数(例如,f-1 (y’,s+1,a+1))而获得。通过反映射函数获得的在y的物理地址可存储在x处。重排序的物理地址(具有N映射)可使用映射函数(例如,图1的映射函数114)来对在x处的物理地址计算。来自使用y=f(x,a,s)计算的重排序物理地址的数据可写入孔。从其取得数据的位置可变成新孔。实际上,孔可重复移动,并且描述的规程的重复可导致孔的伪随机移动。该重复可在孔达到它的原始位置(例如,曾经对应于x0的位置)之前停止一个操作。孔可用来自临时寄存器的数据填充。DCE可对另一个尚未重排序的物理地址重复这样的规程,并且将另一个物理地址分配给“x0”,因此重复孔移动的整个规程。当地址中的全部重排序时,完成DCE周转时间。
再次回到图1,背景重排序系统100可在两个或以上维度中组织,其中这些维度中的至少一个使用如本文描述的伪随机排序。RRC 106、RSR 110和映射函数114可如之前描述的那样配置。DCE 108可配置成跟踪两个维度中的重排序事务的进展。例如,DCE 108可在一个页面中以全周转时间开始并且在完成第一页面后以第二页面继续进行。在这样的实施例中,对于页面的计数器可用于跟踪对于不同页面的重排序的周转时间进展。在一些实施例中,映射函数114可仅应用于物理地址的子集,例如第一维度。子集外部的物理地址的剩余部分在映射中可未改变。
根据各种实施例,在存储器设备116的至少两个维度的第一维度中执行损耗平衡操作。该第一维度可限定第一级存储器组织,例如存储器设备的寻址方案(例如,位、行、页面、排、列,等),并且第二维度可限定第二级存储器组织,例如存储器存储的另一个寻址方案。作为损耗平衡操作的部分的要重排序的物理地址(例如,由DCE生成)可包括:第一成分,其向第二维度提供索引;和第二成分,其可动态映射到第一维度中的索引。在一些实施例中,第一维度可包括位级组织并且第二维度可包括行级组织。在这样的实施例中的第一维度中的索引可指示行内的位并且第二维度中的索引可指示行。在其它实施例中,第一维度可包括行级组织并且第二维度可包括页面级组织。在这样的实施例中,第二维度中的索引可指示页面内的行并且第二维度中的索引可指示存储器设备内的页面。这些实施例作为示例而提供并且第一维度和第二维度在其它实施例中可代表其它级别的存储器组织(例如,行、列等)。
在一个实施例中,向第二维度提供索引的第一成分可以是计数器,其从零到K-1计数,其中K是第二维度的地址空间。计数器可以被命名RSR.c并且可用于指向当前在重排序事务的过程中的第二维度的存储器组织级别(例如,页面)。计数器可在第二维度的存储器组织(例如,页面)内执行的每个周转时间结束时递增。即,在多尺度情景中,周转时间可以是其中第二维度的每个单元/位置已经被重排序一次的时间。在一些实施例中,计数器可递增模-K,其中递增了值K-1的情况导致0。在一些实施例中,RSR.a和RSR.s值仅在递增了K-1值导致0的情况下或在其中第二维度的每个单元/维度已经重排序一次的情况下递增。
第二成分可在第一维度中提供或生成索引。该索引可例如使用结合图6描述的流程600来生成并且可使用如例如结合图4描述的映射函数动态映射。例如,在全地址具有超出11个位的实施例中,第二成分可使用11个最低有效位结合RSR.a和RSR.s的值用于在第一维度内动态映射。
正常存取事务可通过经由映射函数来转化最低有效的11个位并且直接且未改变地使用最高有效位而映射。属性的一维列表(例如,与之前描述的A[]相似)可用于跟踪当前在重排序事务的过程中的存储器的第二维度(例如,页面)。
在多维度实施例中,N至N+1决策可包括至少两个动作。在第一动作中,由预期物理地址的最高有效位表示的最高有效地址可与计数器的值(例如,RSR.c)比较。如果最高有效地址低于计数器的值,可使用N+1映射。如果最高有效地址高于计数器的值,可使用N映射。如果最高有效地址等于计数器的值,属性的一维列表可用于如之前结合存储在图4的A[]中的临时属性描述的那样做出N或N+1映射决策。
在多维实施例中,数据重排序模块118可未跨对应于第二维度(例如,页面)的存储器的组织重排序。即,其它技术可用于确保存储器设备内存储器的所有二维组织(例如,页面)的相等磨损。
在一些实施例中,处理器102的高速缓存104可生成一个或多个存取事务105并且向对于一个或多个存取事务105的存取端口107提供物理地址。高速缓存104可包括磨损感知高速缓存替换策略。这样的策略可为主存储器(例如,在一些实施例中是存储器设备)的磨损设计并且可例如忽略高速缓存104的磨损。高速缓存104的磨损感知策略可感知存储器设备116上的磨损(例如,使用写计数器和/或ECC事件计数器)。背景重排序系统100可包括RRC 106、DCE 108、RSR 110和映射函数114,其配置成支持如之前描述的多个维度。背景重排序系统100可进一步包括目标设备(例如,存储器设备116)的每个行中的磨损跟踪寄存器和高速缓存104的每个行中的磨损程度寄存器。
在一些实施例中,磨损感知高速缓存替换策略可以是适合的。例如,当对从高速缓存104的驱逐选择高速缓存行时,可选择持有对于目标设备中的最小磨损行的数据的行。磨损程度可保持在磨损跟踪寄存器中,其可在目标设备的每个行中存在。磨损程度可例如由到行的累积数量的写来表示,该累积数量的写可等于对目标设备中行的压力。对于另一个示例,磨损程度可表示为磨损度的成本函数模型化(写和累积ECC事件的数量的组合),其对最敏感行的压力可最小。例如,背景重排序系统100可在第一维度中对目标设备的信息重排序,从而导致存储器页面内所有位置的相等压力。磨损感知高速缓存替换策略可用于实现关于页面的适合的压力级,从而在一些页面压力较少而其它较多的情况下导致适合的压力。
在一些实施例中,当高速缓存条目的替换必要时,处理器102的高速缓存104可配置成在不同的高速缓存条目之间选择用于驱逐。磨损感知策略可影响该决策(例如,使用成本函数)。所得的驱逐可基于模型生成以例如存储器页面为目标的存储器设备116的存取事务(例如,105)。此外,背景重排序系统100可根据本文描述的多维度情景对存储器页面内的数据重排序。在一些实施例中,可对存储器设备116的每个个体存储器页面提供RRC 106。
在一些实施例中,存储器设备116的一个或多个输入存取事务105包括从处理器102的高速缓存104接收的一个或多个驱逐的高速缓存行。高速缓存的磨损感知策略可在第一维度中选择存储器设备116的物理地址用于存储一个或多个驱逐的高速缓存行。背景重排序系统100可在第二维度中对一个或多个驱逐的高速缓存行重排序。在一些实施例中,高速缓存的磨损感知策略可感知另一个设备(例如,存储器设备116)上的磨损。例如,存储器设备的磨损可通过保持潜在位错误事件的统计信息(例如“每块最大观察数量的位错误”和/或“每块累积数量的位错误”)来估计。在使用“磨损”感知功能性的环境中,这样的对于最敏感单元或块的统计信息或指针可存储在主存储器中或在背景重排序系统100的专用存储器中。统计信息例如可以对所有存储器单元或块而保持,或者仅对于对磨损最敏感的存储器单元或块保持。在一些实施例中,高速缓存的磨损感知策略配置成主要驱逐映射到最小磨损存储器区域并且基于统计信息(例如,位错误事件)来对驱逐定优先级的高速缓存行。
本文描述的背景重排序系统100的RRC 106、DCE 108、RSR 110、映射函数114和其它成分每个可以是模块或可在各种模块中组合。如本文使用的,术语“模块”可指以下各项、是以下各项的一部分或包括以下各项:专用集成电路(“ASIC”)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用或群组)和/或存储器(共享、专用或群组)、组合逻辑电路和/或提供描述的功能性的其它适合部件。结合图1-6描述的实施例可在一些实施例中组合。
图7是根据一些实施例的背景重排序的方法700的流程图。在702处,该方法包括从处理器(例如,图1的处理器102)接收关于一个或多个输入存取事务(例如,图1的存取事务105)的信息。该信息可包括一个或多个预期物理地址,其与一个或多个输入存取事务对应。
在704处,方法700包括确定要执行损耗平衡操作。该确定可例如由RRC(例如,图1的RRC 106)基于对存储器设备(例如,图1的存储器设备116)的累积数量的存取事务而执行。该累积数量的存取事务可包括根据各种实施例的一个或多个输入存取事务。在一些实施例中,累积数量的存取事务可在时间上累积。确定可包括例如将比率与预定值比较,该比率包括对存储器设备执行的损耗平衡操作的累积数量相对于对存储器设备接收的写事务的累积数量。如果比率偏离预定值,则可执行损耗平衡操作。可使用本文描述的其它技术。
在706处,方法700包括确定在对于一个或多个输入存取事务的每个预期物理地址处存储的信息是否在周转时间内重排序。DCE(例如,图1的DCE 108)可对每个物理地址计算或存取临时属性,其指示在每个物理地址处存储的信息对于周转时间是否被重排序。
在708处,方法700包括计算每个预期物理地址的重排序物理地址。RSR(例如,图1的RSR 110)的寄存器值(例如,图1的RSR.s或RSR.a)可基于由DCE计算或存取的临时属性。映射函数(例如,图1的映射函数114)可使用寄存器值作为输入以基于输入存取事务的预期物理地址来计算该输入存取事务的重排序物理地址。
在710处,方法700包括执行一个或多个存取事务。映射函数可向存储器设备输出重排序的物理地址用于在重排序的物理地址处执行一个或多个存取事务。
在712处,方法700包括执行损耗平衡操作。DCE可配置成监视存储器设备的总线(例如,图1的存取端口107)的活动。在检测到空的总线周期时,DCE可检查来看是否要执行损耗平衡操作(例如,在704处)。如果确定要执行损耗平衡操作,DCE可生成要重新排序的物理地址、使用映射函数将生成的物理地址映射到重排序的物理地址以及将来自生成的物理地址的信号复制到重排序的物理地址。损耗平衡操作可根据例如结合图5-6描述的技术来执行。
本公开的实施例可使用任何适合的硬件和/或软件而在系统内实现以根据期望来配置。图8示意地图示可用于实践本文描述的各种实施例的示例基于处理器的系统800。例如,图1的背景重排序系统100可以是基于处理器的系统800的一部分。在一个实施例中,系统800包括一个或多个处理器804。一个或多个其它处理器804中的一个可与图1的处理器102对应。
系统800可进一步包括耦合于处理器804中的至少一个的系统控制模块808、耦合于系统控制模块808的系统存储器812、耦合于系统控制模块808的非易失性存储器(NVM)/存储装置816以及耦合于系统控制模块逻辑808的一个或多个无线通信接口820。在一些实施例中,图1的存储器设备116可以是系统存储器812和/或NVM/存储装置816的一部分。
对于一个实施例,系统控制模块808可包括存储器控制器模块810,用于向系统存储器812提供接口。该存储器控制器模块810可以是硬件模块、软件模块和/或固件模块。
系统存储器812可用于加载和存储例如用于系统800的数据和/或指令。对于一个实施例,系统存储器812可包括任何适合的易失性存储器,例如适合的DRAM。
对于一个实施例,系统控制模块808可包括一个或多个输入/输出(I/O)控制器,用于向NVM/存储装置816和无线通信接口820提供接口。
例如,NVM/存储装置816可用于存储数据和/或指令。NVM/存储装置816可包括任何适合的非易失性存储器,例如PCM或闪速存储器,并且/或可包括任何适合的非易失性存储设备,例如一个或多个硬盘驱动器(HDD)、一个或多个压缩盘(CD)驱动器和/或一个或多个数字多功能盘(DVD)驱动器。
NVM/存储装置816可包括存储资源,该存储资源在物理上是设备(在其上安装系统800)的一部分,或它可被设备存取,但不一定是设备的部分。例如,NVM/存储装置816可经由无线通信接口820通过网络而存取。
通信接口820可提供接口用于系统800通过一个或多个网络和/或利用任何其它适合的设备来通信。
对于一个实施例,处理器804中的至少一个可与系统控制模块808的一个或多个控制器的逻辑封装在一起。对于一个实施例,处理器804中的至少一个可与系统控制模块808的一个或多个控制器的逻辑封装在一起来形成系统级封装(SiP)。对于一个实施例,处理器804中的至少一个可集成在与系统控制模块808的一个或多个控制器的逻辑的相同芯片上。对于一个实施例,处理器804中的至少一个可集成在与系统控制模块808的一个或多个控制器的逻辑的相同芯片上来形成片上系统(SoC)。
在各种实施例中,系统800可以是但不限于服务器、工作站、台式计算设备或移动计算设备(例如,膝上型计算设备、手持式计算设备、手持送受话器、平板计算机、智能电话、上网本,等)。在各种实施例中,系统800可具有更多或更少的部件,和/或不同的架构。
尽管某些实施例已经在本文为了描述的目的图示和描述,计划用于实现相同目的的许多种替代和/或等同实施例或实现可代替示出和描述的实施例,而不偏离本公开的范围。本申请意在涵盖本文论述的实施例的任何改编形式或变化。因此,显然意图本文描述的实施例仅由权利要求及其等同物限制。

Claims (30)

1. 一种方法,包括:
从处理器接收关于对存储器设备的一个或多个输入存取事务的信息;
基于对所述存储器设备的累积数量的存取事务来确定要执行损耗平衡操作,所述累积数量的存取事务包括所述一个或多个输入存取事务;以及通过以下来执行所述损耗平衡操作:
基于伪随机映射函数将所述存储器设备的第一物理地址映射到所述存储器设备的第二物理地址;以及
将来自所述第一物理地址的信息复制到所述第二物理地址。
2. 如权利要求1所述的方法,其中确定要执行损耗平衡操作包括:
将比率与预定值比较,所述比率包括对所述存储器设备执行的损耗平衡操作的累积数量相对于对所述存储器设备接收的写事务的累积数量。
3. 如权利要求2所述的方法,其中如果所述比率偏离所述预定值则执行所述损耗平衡操作。
4. 如权利要求1所述的方法,其中接收的关于所述一个或多个输入存取事务的所述信息包括来自处理器的与所述一个或多个输入存取事务对应的一个或多个第三物理地址,所述方法进一步包括:
将所述一个或多个第三物理地址映射到一个或多个第四物理地址。
5. 如权利要求4所述的方法,其进一步包括:
确定在所述一个或多个第三物理地址处存储的信息是否已经在周转时间内重排序,所述周转时间是由其中在所述存储设备的每个物理地址处存储的信息已经被重排序一次的时间限定的循环期,其中每个物理地址具有对应的临时属性,所述临时属性指示在每个物理地址处存储的信息对于所述周转时间是否已经被重排序。
6. 如权利要求5所述的方法,其进一步包括:
在一个或多个第四物理地址处执行所述一个或多个存取事务,其中如果确定在所述一个或多个第三物理地址的对应地址处存储的信息在所述周转时间内已经重排序,则所述一个或多个第四物理地址中的地址具有第一值,其中如果确定在所述一个或多个第三物理地址的对应地址处存储的信息未在所述周转时间内重排序,则所述一个或多个第四物理地址中的地址具有第二值,所述第一值代表与所述第二值不同的物理地址,所述一个或多个第四物理地址与所述一个或多个第三物理地址不同。
7. 如权利要求1所述的方法,其进一步包括:
监视总线的活动,其中执行所述损耗平衡操作由空总线周期的检测触发。
8. 如权利要求1所述的方法,其中:
在所述存储器设备的至少两个维度的第一维度中执行所述损耗平衡操作,所述第一维度限定第一级存储器组织并且第二维度限定第二级存储器组织;
所述第一物理地址的第一成分向所述第二维度提供索引;并且
所述第一物理地址的第二成分动态映射到所述第一维度中的索引。
9. 如权利要求8所述的方法,其中:
对于所述第一维度的所述索引指示行内的位;并且
对于所述第二维度的所述索引指示所述行。
10. 如权利要求8所述的方法,其中对于所述存储器设备的一个或多个输入存取事务包括从所述处理器的高速缓存接收的一个或多个驱逐的高速缓存行,其中所述高速缓存的磨损感知策略在所述第二维度中选择所述存储器设备的第三物理地址用于存储所述一个或多个驱逐的高速缓存行,所述磨损感知策略感知所述存储器设备的磨损。
11. 一种装置,其包括:
存取端口,用于从处理器接收关于对存储器设备的一个或多个输入存取事务的信息;
重排序率控制模块,用于基于对所述存储器设备接收的累积数量的存取事务确定要执行损耗平衡操作,所述累积数量的存取事务包括所述一个或多个输入存取事务;以及
数据重排序模块,用于基于要执行所述损耗平衡的所述确定和伪随机函数通过将来自所述存储器设备的当前物理地址的信息复制到所述存储器设备的重排序物理地址来执行所述损耗平衡操作。
12. 如权利要求11所述的装置,其中所述重排序率控制模块通过将比率与预定值比较来确定要执行损耗平衡操作,所述比率包括对所述存储器设备执行的损耗平衡操作的累积数量相对于对所述存储器设备接收的写事务的累积数量,其中如果所述比率偏离所述预定值则执行所述损耗平衡操作。
13. 如权利要求11所述的装置,其中由所述存取端口接收的信息包括一个或多个预期物理地址,所述一个或多个预期物理地址与所述一个或多个输入存取事务对应;并且
其中所述数据重排序模块包括映射函数,其配置成计算所述一个或多个预期物理地址中的每个的重排序物理地址。
14. 如权利要求13所述的装置,其中所述重排序率控制模块配置成基于要执行所述损耗平衡操作的确定来设置请求标志;
其中所述数据重排序模块包括数据复制引擎,其基于所述请求标志发起从所述存储器设备的当前物理地址到所述存储器设备的重排序物理地址的信息的复制;并且
其中所述映射函数配置成使用所述当前物理地址来计算所述损耗平衡操作的重排序物理地址。
15. 如权利要求14所述的装置,其中所述数据复制引擎配置成确定在所述一个或多个预期物理地址处存储的信息是否已经在周转时间内重排序,所述周转时间是由其中在所述存储器设备的每个物理地址处存储的信息已经被重排序一次的时间限定的循环期,其中临时属性对应于具有存储在其中的信息的存储器设备的每个物理地址,所述临时属性指示在每个物理地址处存储的信息对于所述周转时间是否已经被重排序。
16. 如权利要求15所述的装置,其中所述数据重排序模块进一步包括:
重排序状态寄存器,其包括对每个周转时间递增的至少一个值,其中所述映射函数配置成基于所述至少一个值计算所述损耗平衡操作的重排序物理地址和所述一个或多个预期物理地址中的每个的重排序物理地址。
17. 如权利要求11所述的装置,其中所述数据重排序模块配置成监视所述存取端口的活动并且在检测到所述存取端口的空总线周期时被触发来执行所述损耗平衡操作。
18. 如权利要求13所述的装置,其中所述存储器设备配置成在所述一个或多个预期物理地址中的每个的重排序物理地址处执行所述一个或多个存取事务,其中所述一个或多个存取事务与所述数据重排序模块执行所述损耗平衡操作并行地执行。
19. 如权利要求11所述的装置,其中所述数据重排序模块配置成在所述存储器设备的至少两个维度的第一维度中执行所述损耗平衡操作,所述第一维度限定第一级存储器组织并且第二维度限定第二级存储器组织,所述第二维度与所述第一维度不同;
其中所述当前物理地址的成分向所述第二维度提供索引;并且
其中所述当前物理地址的另一个成分动态映射到所述第一维度中的索引。
20. 如权利要求18所述的装置,其中:
对于所述第一维度的所述索引指示行内的位;并且
对于所述第二维度的所述索引指示所述行。
21. 如权利要求18所述的装置,其中对于所述存储器设备的一个或多个输入存取事务包括从所述处理器的高速缓存接收的一个或多个驱逐的高速缓存行,其中所述高速缓存的磨损感知策略配置成在所述第二维度中选择所述存储器设备的物理地址用于存储所述一个或多个驱逐的高速缓存行,所述磨损感知策略感知存储器设备的磨损。
22. 一种系统,其包括:
处理器;
存取端口,用于从所述处理器接收关于对存储器设备的一个或多个存取事务的信息;
重排序率控制模块,用于基于对所述存储器设备接收的累积数量的存取事务来确定要执行损耗平衡操作,所述累积数量的存取事务包括接收的一个或多个输入存取事务;以及
数据重排序模块,用于基于要执行所述损耗平衡的所述确定通过将来自存储器设备的第一物理地址的信息复制到存储器设备的第二物理地址而执行所述损耗平衡操作,其中所述损耗平衡操作遵循预定且伪随机的顺序。
23. 如权利要求22所述的系统,其中所述重排序率控制模块通过将比率与预定值比较来确定要执行损耗平衡操作,所述比率包括对所述存储器设备执行的损耗平衡操作的累积数量相对于对所述存储器设备接收的写事务的累积数量,其中如果所述比率偏离所述预定值则执行所述损耗平衡操作。
24. 如权利要求22所述的系统,其中关于由所述存取端口接收的所述一个或多个输入存取事务的所述信息包括一个或多个预期物理地址,所述一个或多个预期物理地址与所述一个或多个输入存取事务对应;并且
其中所述数据重排序模块配置成对所述一个或多个预期物理地址中的每个计算重排序物理地址。
25. 如权利要求24所述的系统,其中所述数据重排序模块配置成确定在所述一个或多个预期物理地址处存储的信息是否已经在周转时间内重排序,所述周转时间是由其中在所述存储设备的每个物理地址处存储的信息已经被重排序一次的时间限定的循环期,其中每个物理地址具有对应的临时属性,所述临时属性指示在每个物理地址处存储的信息对于所述周转时间是否已经被重排序。
26. 如权利要求24所述的系统,其中所述存储器设备配置成在对应于所述一个或多个存取事务的重排序物理地址处执行所述一个或多个存取事务,其中所述一个或多个存取事务与所述数据重排序模块执行所述损耗平衡操作并行地执行。
27. 如权利要求24所述的系统,其中所述数据重排序模块配置成通过使用所述第一物理地址计算所述损耗平衡操作的第二物理地址来执行所述损耗平衡操作。
28. 如权利要求22所述的系统,其中所述数据重排序模块配置成监视所述存取端口的活动并且在检测到所述存取端口的空总线周期时被触发来执行所述损耗平衡操作。
29. 如权利要求22所述的系统,其中所述数据重排序模块配置成在所述存储器设备的至少两个维度的第一维度中执行所述损耗平衡操作,所述第一维度限定第一级存储器组织并且第二维度限定第二级存储器组织,所述第一维度包括位级存取并且所述第二维度包括行级存取;
其中所述第一物理地址的第一成分向所述第二维度提供索引;并且
其中所述第一物理地址的第二成分动态映射到所述第一维度中的索引。
30. 如权利要求29所述的系统,其进一步包括:
所述处理器的高速缓存,其中对于所述存储器设备的一个或多个输入存取事务包括从所述高速缓存接收的一个或多个驱逐的高速缓存行,其中所述高速缓存的磨损感知策略配置成基于潜在位错误事件的统计来驱逐映射到所述存储器设备的最小磨损物理地址的高速缓存行,所述统计包括每块的最大观察数量的位错误和/或每块的累积数量的位错误。
CN201180075314.2A 2011-12-05 2011-12-05 背景重排序——具有有限开销的预防性的磨损控制机制 Active CN103959258B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/063342 WO2013085488A1 (en) 2011-12-05 2011-12-05 Background reordering - a preventive wear-out control mechanism with limited overhead

Publications (2)

Publication Number Publication Date
CN103959258A true CN103959258A (zh) 2014-07-30
CN103959258B CN103959258B (zh) 2017-03-29

Family

ID=48574706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180075314.2A Active CN103959258B (zh) 2011-12-05 2011-12-05 背景重排序——具有有限开销的预防性的磨损控制机制

Country Status (3)

Country Link
US (1) US9268686B2 (zh)
CN (1) CN103959258B (zh)
WO (1) WO2013085488A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111007983A (zh) * 2018-10-05 2020-04-14 三星电子株式会社 在读取回收操作中使用缓冲存储器的存储设备
CN112418413A (zh) * 2019-08-21 2021-02-26 北京地平线机器人技术研发有限公司 存储数据的装置和方法以及执行分组卷积运算的装置

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932833B (zh) * 2014-03-21 2018-07-31 华为技术有限公司 磨损均衡方法、装置及存储设备
KR102036514B1 (ko) * 2015-07-13 2019-10-28 엘에스산전 주식회사 메모리 소자를 이용한 데이터 엑세스 장치
US10445232B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Determining control states for address mapping in non-volatile memories
US10452560B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US9921969B2 (en) 2015-07-14 2018-03-20 Western Digital Technologies, Inc. Generation of random address mapping in non-volatile memories using local and global interleaving
US10452533B2 (en) 2015-07-14 2019-10-22 Western Digital Technologies, Inc. Access network for address mapping in non-volatile memories
US10445251B2 (en) 2015-07-14 2019-10-15 Western Digital Technologies, Inc. Wear leveling in non-volatile memories
US9983930B2 (en) * 2016-07-28 2018-05-29 Qualcomm Incorporated Systems and methods for implementing error correcting code regions in a memory
US10318180B1 (en) * 2016-12-20 2019-06-11 EMC IP Holding Cmpany LLC Metadata paging mechanism tuned for variable write-endurance flash
CN111459850B (zh) * 2020-05-18 2023-08-15 北京时代全芯存储技术股份有限公司 记忆体装置以及运作方法
CN111782632B (zh) 2020-06-28 2024-07-09 百度在线网络技术(北京)有限公司 数据处理方法、装置、设备和存储介质
JP2022147574A (ja) * 2021-03-23 2022-10-06 キオクシア株式会社 メモリコントローラ、及びメモリシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061502A1 (en) * 2005-09-09 2007-03-15 M-Systems Flash Disk Pioneers Ltd. Flash memory storage system and method
CN101354681A (zh) * 2008-09-23 2009-01-28 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置
US20100027335A1 (en) * 2008-07-31 2010-02-04 Samsung Electronics Co., Ltd. Memory device and wear leveling method
US20100064094A1 (en) * 2008-09-09 2010-03-11 Phison Electronics Corp. Memory managing method for non-volatile memory and controller using the same

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
ATE372578T1 (de) 2002-10-28 2007-09-15 Sandisk Corp Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem
JP2004310650A (ja) 2003-04-10 2004-11-04 Renesas Technology Corp メモリ装置
GB0715514D0 (en) * 2007-08-10 2007-09-19 Tissuemed Ltd Coated medical devices
US20100115912A1 (en) * 2008-11-07 2010-05-13 General Electric Company Parallel turbine arrangement and method
US8312204B2 (en) * 2009-01-23 2012-11-13 Seagate Technology Llc System and method for wear leveling in a data storage device
US8732389B2 (en) 2009-06-23 2014-05-20 Seagate Technology Llc Memory wear control
TWI475564B (zh) * 2010-04-21 2015-03-01 Silicon Motion Inc 記憶體之資料寫入方法及資料儲存裝置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061502A1 (en) * 2005-09-09 2007-03-15 M-Systems Flash Disk Pioneers Ltd. Flash memory storage system and method
US20100027335A1 (en) * 2008-07-31 2010-02-04 Samsung Electronics Co., Ltd. Memory device and wear leveling method
US20100064094A1 (en) * 2008-09-09 2010-03-11 Phison Electronics Corp. Memory managing method for non-volatile memory and controller using the same
CN101354681A (zh) * 2008-09-23 2009-01-28 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111007983A (zh) * 2018-10-05 2020-04-14 三星电子株式会社 在读取回收操作中使用缓冲存储器的存储设备
CN112418413A (zh) * 2019-08-21 2021-02-26 北京地平线机器人技术研发有限公司 存储数据的装置和方法以及执行分组卷积运算的装置

Also Published As

Publication number Publication date
CN103959258B (zh) 2017-03-29
US20140379960A1 (en) 2014-12-25
WO2013085488A1 (en) 2013-06-13
US9268686B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
CN103959258A (zh) 背景重排序——具有有限开销的预防性的磨损控制机制
US10884630B2 (en) Storage system
Lee et al. FAST: An efficient flash translation layer for flash memory
EP2396729B1 (en) Memory system and method of controlling memory system
JP2021128582A (ja) メモリシステムおよび制御方法
EP2758882B1 (en) Adaptive mapping of logical addresses to memory devices in solid state drives
US20130073798A1 (en) Flash memory device and data management method
CN108139902A (zh) 用于提供混合模式来访问ssd驱动器的方法和装置
CN104346290A (zh) 存储装置、计算机系统及其操作方法
CN109800180A (zh) 用于地址映射的方法和存储器系统
CN103384877A (zh) 包括闪存的存储系统和存储控制方法
WO2013142707A1 (en) Power management in a flash module
CN103635968A (zh) 包含存储器系统控制器的设备和相关方法
CN102576330A (zh) 具有持久化无用单元收集机制的存储系统
CN102693187A (zh) 用以减少多级高速缓冲存储器层级中的掷出的设备和方法
CN102193869B (zh) 存储器管理与写入方法及其存储器控制器与储存系统
CN108228473A (zh) 通过动态地传送存储器范围分配的负载平衡
US8583890B2 (en) Disposition instructions for extended access commands
CN104011689A (zh) 非易失性存储器损耗管理
CN109923514A (zh) 对数据的存储器操作
US11698734B2 (en) Collision reduction through just-in-time resource allocation
CN110221770A (zh) 在存储装置当中改进数据分布的方法
US11829270B2 (en) Semiconductor die failure recovery in a data storage device
CN108877862B (zh) 页条带的数据组织以及向页条带写入数据的方法与装置
Xiao et al. PASM: Parallelism Aware Space Management strategy for hybrid SSD towards in-storage DNN training acceleration

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant