CN104583978A - 与针对两级存储器系统的读取和写入窗口预算相关联的技术 - Google Patents

与针对两级存储器系统的读取和写入窗口预算相关联的技术 Download PDF

Info

Publication number
CN104583978A
CN104583978A CN201380044585.0A CN201380044585A CN104583978A CN 104583978 A CN104583978 A CN 104583978A CN 201380044585 A CN201380044585 A CN 201380044585A CN 104583978 A CN104583978 A CN 104583978A
Authority
CN
China
Prior art keywords
ablation process
storage address
data
write
backstage
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
CN201380044585.0A
Other languages
English (en)
Other versions
CN104583978B (zh
Inventor
K.潘加尔
P.丹勒
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 CN104583978A publication Critical patent/CN104583978A/zh
Application granted granted Critical
Publication of CN104583978B publication Critical patent/CN104583978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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/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/1068Adding 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
    • 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
    • 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5678Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using amorphous/crystalline phase transition storage elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

针对与针对两级存储器(2LM)系统的读取和写入窗口预算相关联的技术的示例被公开。在一些示例中,可以建立针对包括第一级存储器和第二级存储器的2LM系统的读取和写入窗口预算。建立的读取和写入窗口预算可以包括第二级存储器的第一组存储器地址和第二组存储器地址的组合。第一组存储器地址可以与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而言具有更宽的单元阈值电压分布的非易失性存储器单元相关联。根据一些示例,建立的读取和写入窗口预算可以是当履行去往第二级存储器的读取或写入请求时满足针对给定量的存储器的完成时间阈值以及针对给定量的存储器的可接受的错误率阈值二者的策略的一部分。描述和要求保护其它示例。

Description

与针对两级存储器系统的读取和写入窗口预算相关联的技术
背景技术
计算设备可以使用两级存储器(2LM)系统作为主存储器的形式。2LM系统的第一级可以被称为“近存储器”而第二级可以被称为“远存储器”。相比于第二级存储器,第一级存储器一般具有较小的存储器容量。与包括在第二级存储器中的存储器的类型相比,第一级存储器可以包括具有更快的写入和/或读取完成时间的存储器类型。因而,在2LM系统中,第一级存储器可以用作针对第二级存储器的写入和/或读取高速缓存。当确定每一级的相对容量以及包括在每一级中的存储器的类型二者时,使用存储器的两级的总写入/读取完成时间是重要的考虑。
附图说明
图1 图示了示例性两级存储器(2LM)系统。
图2图示了示例性单元阈值电压(Vt)分布。
图3图示了示例性前台写入过程。
图4图示了示例性后台写入过程。
图5图示了示例性第一写入冲突过程。
图6图示了示例性第二写入冲突过程。
图7图示了示例性读取冲突过程。
图8图示示例性装置。
图9图示了示例性逻辑流。
图10图示了示例性储存介质。
图11图示了示例性计算平台。
具体实施方式
如在本公开中所预计的,当确定每一级的相对容量以及包括在每一级中的存储器的类型二者时,使用2LM系统中的存储器的两级的总写入/读取完成时间是重要的考虑。例如,用于第一级存储器的存储器类型可以包括诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)之类的易失性存储器。包括在第二级中的存储器类型通常可以包括易失性存储器或者可以包括非易失性存储器,诸如相变存储器(PCM)、PCM和开关(PCMS)、闪速存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、诸如铁电聚合物存储器之类的聚合物存储器、纳米线、铁电晶体管随机存取存储器(FeTRAM或FeRAM)或者电可擦除可编程只读存储器(EEPROM)。易失性存储器通常具有较快的写入完成时间,但是可能制造更昂贵,并且还要求更多的能量来操作。非易失性存储器通常具有较慢的写入/读取完成时间,但是可能花费得更少来制造并且要求少很多的能量来操作。
经常达成成本和性能之间的平衡,以确定2LM系统的第一级和第二级中的存储器的相对大小和/或类型。持续进行努力以增加与第一级存储器中的易失性存储器相比的第二级存储器中的非易失性存储器的相对大小。然而,由于当使用诸如相变存储器之类的一些类型的非易失性存储器时可以减少写入/读取完成时间,写入错误也可能增加。诸如错误校正码之类的减少写入错误的技术可以被实现,但是这些技术可能增加写入/读取完成时间。因此,存在对于平衡可接受的写入/读取完成时间与针对包括在2LM系统中的第二级存储器的类型的可接受的错误量的方法的需求。正是关于这些和其它挑战,需要此处所述的示例。
在一些示例中,可以实现与针对2LM系统的读取和写入窗口预算(budget)相关联的技术。这些技术可以包括建立针对包括第一级存储器和第二级存储器的2LM系统的读取和写入窗口预算。读取和写入窗口预算可以包括第二级存储器的第一组存储器地址和第二组存储器地址的组合。第一组存储器地址可以与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而言具有更宽的单元阈值电压分布的非易失性存储器单元相关联。根据一些示例,可以接收用以将数据写入到2LM系统的写入请求,并且可以基于读取和写入窗口预算来将数据写入到第二级存储器。
图1图示了示例性2LM系统100。如在图1中所示,2LM系统100包括控制器110、第一级存储器120和第二级存储器130。根据一些示例,控制器110可以经由通信链路140接收和/或履行读取/写入请求。
虽然在图1中未示出,但是在一些示例中,通信链路140可以将控制器110通信地耦合到与针对计算设备的操作系统相关联的元件或特征。针对这些示例,2LM系统可以用作针对操作系统的主存储器。同样,控制器110可以包括逻辑和/或特征,以处理去往2LM系统100的读取/写入请求,所述2LM系统100具有作为近存储器起作用的第一级存储器120以及作为远存储器起作用的第二级存储器130。
在一些示例中,第一级存储器120可以包括易失性类型的存储器(例如DRAM、SRAM等),并且当数据从2LM系统100读取或者写入2LM系统100的时候可以作为写入/读取高速缓存起作用。针对这些示例,第二级存储器130可以包括非易失性类型的存储器(例如NOR闪速存储器、NAND闪速存储器、PCM、PCMS、SONOS存储器、聚合物存储器、纳米线、FeRAM、铁电存储器等),其具有大体上大于包括在第一级存储器120中的易失性类型的存储器的存储器容量。因而,数据可以大体上从与第二级存储器130处维护的非易失性存储器单元相关联的存储器地址读取以及向其写入。
在一些示例中,虽然图1描绘了两级存储器,但是本公开预计到具有包括大于两个存储器层的多个存储器层的存储器系统。多个存储器层可以包括来自非易失性类型的存储器或易失性类型的存储器的存储器类型的组合。例如,第一层可以包括易失性类型的存储器,而后续的层可以包括相同的或不同类型的非易失性存储器,诸如NAND闪速存储器、PCM或铁电存储器。
根据一些示例,如下面更详细所述,控制器110可以包括逻辑和/或特征,以基于满足针对履行读取或写入请求的完成时间和可接受的错误率要求二者来建立读取和写入窗口预算112。这些要求可以由对于可能使用2LM系统100作为主存储器的形式的操作系统的存储器容量需求来指示。完成时间要求可以用存储器带宽或针对给定的量的存储器的完成时间阈值来反映。例如,存储器带宽可以以兆比特每秒(MB/s)度量,而给定的完成时间阈值可以是任意数目的MB/s。错误率要求可以用比特错误率(BER)来反映,而错误阈值可以基于针对给定的量的存储器的任何数目的可接受的错误来确定。
在一些实施例中,由控制器110对读取和写入窗口预算112的建立可以表明在尝试最小化错误率的同时最大化写入完成时间的策略。减少错误的一个方式是实现错误校正码(ECC)。除了ECC之外,如下面更详细所述,可以使用多脉冲验证算法来收窄(narrow)针对非易失性存储器单元的单元阈值电压(Vt)分布。然而,实现ECC和使用多脉冲验证算法可能增加写入完成时间。
根据一些示例,读取和写入窗口预算112可以由控制器110建立,其指示了通过以下动作来服务写入请求的策略:通过将数据写入到与可以被用来存储数据而没有错误校正(例如ECC)的非易失性存储器单元相关联的第一组存储器地址,并且随后将至少一部分数据写入到与非易失性存储器单元相关联的第二组存储器地址,其可能存储至少一部分数据而同时实现ECC并使用多脉冲验证算法以收窄单元Vt分布。
在一些示例中,控制器110可以包括逻辑和/或特征,以建立针对2LM系统100的读取和写入窗口预算112,其包括第二级存储器130的第一组存储器地址和第二组存储器地址的组合。针对这些示例,第一组存储器地址可以与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元Vt分布而具有更宽的单元Vt分布的非易失性存储器单元相关联。单元Vt分布的宽度上的差异可以基于通过使用前台写入(foreground write)过程还是后台写入(background write)过程将数据写入到第一和第二存储器地址。如下面更详细所述,前台写入过程不包括错误校正,而后台写入过程包括实现ECC以及使用多脉冲验证算法以可能地收窄针对非易失性存储器单元的单元Vt分布。
根据一些示例,如在图1中所示,控制器110可以包括写入高速缓存114。针对这些示例,控制器110可以包括逻辑和/或特征,以管理或维护写入高速缓存114。如下面更详细所述,写入高速缓存114可能能够至少临时存储经由后台写入过程被写入到第二级存储器130的数据。写入高速缓存114可以包括易失性或非易失性类型的存储器,并且相比于第二级存储器130具有相对小的存储器容量。
图 2图示了示例性单元Vt分布200。在一些示例中,如在图2中所示,单元Vt分布200示出了针对前台写入过程和后台写入过程之后的单元Vt分布的宽度的可能比较。一般,针对单元Vt分布的较窄的宽度减少了从那个单元读取或写入那个单元的单元值是不正确的可能性。例如,针对为“1”的值以及针对为“0”的值的曲线的边缘相对彼此越靠近,读取错误可能发生的概率越高。因此,收窄针对非易失性存储器单元的单元Vt分布的宽度可以导致针对对这些非易失性存储器单元的读取或写入的BER的对应的减少。
根据一些示例,不包括错误校正的前台写入过程的使用对实现ECC并使用多脉冲验证算法的后台写入过程的使用可能导致图2中所示的单元Vt分布的不一致。单元Vt分布的比较仅仅描绘了差异,以促进示例性前台写入过程和后台写入过程的可能效果的描述。本公开预计到可能大于或小于图2中描绘的差异的单元Vt分布上的相对差异。
图3图示了示例性前台写入过程300。在一些示例中,控制器110可以包括逻辑和/或特征,以实现根据读取和写入窗口预算112的前台写入过程300。针对这些示例,过程可以响应于接收到写入请求来开始以将数据写入到2LM系统100。如上面提到,读取和写入窗口预算112可以包括第二级存储器130的第一组存储器地址和第二组存储器地址的组合。同样如上面提到,第一组存储器地址可以与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元Vt分布而言具有更宽的单元Vt分布的非易失性存储器单元相关联。根据一些示例,基于读取和写入窗口预算112来将数据写入到第二级存储器130可以包括通过使用前台写入过程300来将包括在写入请求中的数据写入到第一组存储器地址。
从开始移动到框310,控制器110可以包括逻辑和/或特征,以在针对与第一组存储器地址相关联的第二级存储器130的那些非易失性存储器单元来说数据=1的非易失性存储器单元的比特上引起置位脉冲(set pulse)。在一些示例中,前台写入过程300的该步骤不包括错误校正,并且可能导致到其中数据=1的这些存储器单元的相对快的写入完成时间。
从框310进行到框320,控制器110可以包括逻辑和/或特征,以在针对与第一组存储器地址相关联的第二级存储器130的那些非易失性存储器单元来说数据=0的非易失性存储器单元的比特上引起复位脉冲(reset pulse)。在一些示例中,前台写入过程300的该步骤不包括错误校正,并且可能导致到其中数据=0的这些存储器单元的相对快的写入完成时间。前台写入过程300然后来到结束。
图4图示了示例性后台写入过程400。在一些示例中,控制器110可以包括逻辑和/或特征,以根据读取和写入窗口预算112来实现后台写入过程400。针对这些示例,在前台写入过程300的完成之后该过程可以开始,所述前台写入过程300包括响应于接收到向2LM系统100写入数据的写入请求来写入数据。如上面提到,读取和写入窗口预算112可以包括向第二级存储器130的第一组存储器地址和第二组存储器地址的组合写入。
根据一些示例,包括在读取和写入窗口预算中的第二组存储器地址可以与相比于针对与用来写入在写入请求中接收到的数据的第一组存储器地址相关联的非易失性存储器单元的单元Vt分布而言具有更窄的单元Vt分布的非易失性存储器单元相关联。根据一些示例,基于读取和写入窗口预算112来向第二级存储器130写入数据可以包括通过使用后台写入过程400来向与第二组存储器地址相关联的非易失性存储器单元写入包括在写入请求中的数据的至少一部分。可以基于平衡减少的错误与增加的写入完成时间的读取和写入窗口预算112来写入数据的至少一部分。
从开始移动到框410,控制器110可以包括逻辑和/或特征,以使数据从与非易失性存储器单元相关联的存储器地址被读取。在一些示例中,存储器地址可以被包括在第一组存储器地址内,经由其数据被写入(如上面针对前台过程300所提到的)。从存储器地址读取数据可以包括从在第二级存储器130处维护的非易失性存储器单元读取数据。一旦从非易失性存储器单元读取数据,可以实现ECC方案(诸如里德所罗门(Reed-Solomon))以校正数据中的错误。
根据一些示例,控制器110可以包括逻辑和/或特征,以使经错误校正的数据被保存到写入高速缓存114。针对这些示例,写入高速缓存114可以能够至少临时存储经错误校正的数据。
从框410进行到框420,控制器110可以包括逻辑和/或特征,以使在框420处开始的多脉冲验证算法被使用。可以使用多脉冲验证算法,以便收窄针对非易失性存储器单元的单元Vt分布。在一些示例中,可以在针对其中数据=1的非易失性存储器单元的比特上断言置位脉冲。然后可以增加置位脉冲计数,还可以增加置位脉冲幅度和/或置位脉冲宽度。
从框420进行到框430,控制器110可以包括逻辑和/或特征,以使在第一级存储器120中的经校正的数据被用来验证针对其中数据=1的非易失性存储器单元的比特,并且然后使经验证的比特被关闭(turn off)。
从框430进行到决定框440,控制器110可以包括逻辑和/或特征,以确定是否所有比特已经被验证成被置位(例如写回到第二级存储器130)或者是否最大脉冲被递送。如果所有比特已经被验证成被置位或者最大脉冲被递送,那么过程移动到框450。否则过程移动到框420。
从决定框440移动到框450,控制器110可以包括逻辑和/或特征,以引起在框420处开始的多脉冲验证算法的继续使用,以便收窄针对与第二组存储器地址相关联的非易失性存储器单元的单元Vt分布。在一些示例中,可以在其中数据=0的与第二组存储器地址相关联的非易失性存储器单元的比特上断言复位脉冲。然后可以增加复位脉冲计数,还可以增加复位脉冲幅度和/或复位脉冲宽度。
从框450进行到框460,控制器110可以包括逻辑和/或特征,以使第一级存储器120中的经校正的数据被用来验证针对其中数据=0的非易失性存储器单元的比特,并且然后使经验证的比特被关闭。
从框460进行到决定框470,控制器110可以包括逻辑和/或特征,以确定是否所有比特已经被验证成被复位(例如写回到第二级存储器130)或者是否最大脉冲被递送。如果所有比特已经被验证成被复位或者最大脉冲被递送,那么针对与存储器地址相关联的非易失性存储器单元的后台写入过程400可以被完成。如果不是所有比特已经被验证成被复位或者最大脉冲被递送,那么过程移动到框450。
根据一些示例,基于读取和写入窗口预算112,包括在第一组存储器地址内的其它存储器地址可以被选择以用于通过使用后台写入过程400来存储数据,数据经由所述第一组存储器地址而被写入(如上面针对前台过程300所提到的)。因此,最终最初被写入第一组存储器地址的所有数据可以通过使用后台写入过程400而被存储到包括在第二级存储器130中的非易失性存储器。在下面的情况下这可能是有益的:其中接收到写入请求的突发,并且突发之间的周期允许足够的时间以用于后台写入过程400在被写入第一组存储器地址的大部分(如果不是所有的话)数据上完成。
在一些示例中,前台写入过程300和后台写入过程400可以表示与类似于读取和写入窗口预算112的读取和写入窗口预算相关联的两个不同的写入模式。第一模式可以与前台写入过程300相关联,并且可以与读取或选择错误发生的概率较高的存储器地址的集合一起使用,因为这些存储器地址尚未通过清理(clean-up)过程,以如针对后台过程400所述的收窄单元Vt分布。同样,第二模式可以与后台过程400相关联。第二模式可以与其中读取或选择错误发生的概率较低的存储器地址的集合一起使用,因为这些存储器地址已经通过清理过程,以收窄如针对后台过程400所述的单元Vt分布。
图5图示了示例性第一写入冲突过程500。在一些示例中,可以由控制器110接收后续的写入请求,以向2LM系统100写入附加数据。针对这些示例,读取和写入窗口预算112可以导致附加数据中的至少一些被写入到一个或多个存储器地址,经由所述存储器地址后台过程400可能仍然发生。例如,如上文提到的,读取和写入窗口预算112可以使数据通过使用前台写入过程300而被写入到第一组存储器地址,且还通过使用后台写入过程400而被写入到第二组存储器地址。根据一些示例,当后续的写入请求由控制器110服务时,读取和写入窗口预算112可能导致控制器110使附加数据通过使用第三组存储器地址和第四组存储器地址而被写入到2LM系统100。针对这些示例,控制器110可以使附加数据经由前台写入过程300的使用而被写入到与第三组存储器地址相关联的非易失性存储器单元。同样,控制器110可以使附加数据的至少一部分经由后台写入过程400的使用而被写入到与第四组存储器地址相关联的非易失性存储器单元。
在一些示例中,如之前所提到,后台写入过程400可以花更长时间来完成。作为花更长时间来完成的结果,当接收到写入附加数据的请求时,被用来向第二组存储器地址写入数据的后台写入过程400可能仍然在过程中。此外,针对通过使用前台过程300来写入附加数据而选择的第三组存储器地址可以包括与第二组存储器地址的一个或多个共同的存储器地址。一个或多个共同的存储器地址可以导致可能的写入冲突。
从开始移动到框510,控制器110可以包括逻辑和/或特征,以识别附加数据被接收到并被指定(slate)成使用前台写入过程300和后台写入过程400二者而被写入到共同的存储器地址。
从框510进行到决定框520,控制器110可以包括逻辑和/或特征,以确定在与共同的存储器地址相关联的非易失性存储器单元处的后台写入过程400的状态。如果所确定的状态指示了后台写入过程400被完成,那么过程移动到框530。否则,过程移动到框550。
从决定框520移动到框530,控制器110可以包括逻辑和/或特征,以使附加数据被放置或写入到被用作针对非易失性存储器单元的后台写入过程400的一部分的写入高速缓存(例如写入高速缓存114)。在一些示例中,这可以导致写入高速缓存中的数据被更新。
从框530进行到框540,控制器110可以包括逻辑和/或特征,以调度经更新的数据以被写入或存储回到第二级存储器的非易失性存储器单元。在一些示例中,可以通过使用前台写入过程300或者后台写入过程400来写回经更新的数据。过程然后可以来到结束。
从决定框520移动到框550,由于发现后台写入过程400被完成,可以实现前台写入过程300中的第一步骤。在一些示例中,这包括控制器110在针对非易失性存储器单元的其中数据=1的比特上引起置位脉冲。
从框550进行到框560,可以实现前台写入过程300的第二步骤。根据一些示例这包括控制器110在针对非易失性存储器单元的其中数据=0的比特上引起复位脉冲。
如在图5中所示,在框540或框560之后,过程可以被完成。在一些示例中,过程可以针对包括在第二组存储器地址和第三组存储器地址二者中的任何其它共同的地址来开始。
图6图示了示例性第二写入冲突过程600。在一些示例中,写入冲突过程600可以类似于写入冲突过程500。两个写入冲突过程之间的差异是:如果在决定框620处后台写入过程400的状态指示了后台写入过程400未被完成,那么过程移动到框630。针对这些示例,在框630处控制器110可以包括逻辑和/或特征,以终止部分完成的后台写入过程400。控制器110然后可以通过使用前台写入过程300来使附加数据被写入共同的存储器地址(如在框640和650处所示)。过程然后可以被完成。
图7图示了示例性读取冲突过程700。在一些示例中,读取请求可以由控制器110接收,以从第二级存储器130处的存储器地址读取数据。针对这些示例,存储器地址可能已经被包括在被选择以通过使用后台写入过程400来使数据写入到非易失性存储器单元的那些存储器地址中。如果后台写入过程400未被完成,那么针对该读取请求,读取冲突可能发生。
从开始移动到框710,控制器110可以包括逻辑和/或特征,以从2LM系统100的存储器地址接收读取请求。在一些示例中,如果读取请求在时间上相对接近于去往被选择用于使用后台写入过程400的写入的相同存储器地址的写入请求(例如在数秒内),那么控制器110可以已经将读取请求识别为潜在地引起读取冲突。
从框710进行到决定框720,控制器110可以包括逻辑和/或特征,以确定非易失性存储器单元处的后台写入过程400的状态。如果所确定的状态指示后台写入过程400未被完成,那么过程移动到框730。否则,过程移动到框740。
从决定框720移动到框730,控制器110包括逻辑和/或特征,以通过使数据从写入高速缓存114被读取来服务读取请求。如之前提到,写入高速缓存114处的数据可以在根据后台写入过程400的数据的ECC之后已经被放置在写入高速缓存114中。
从决定框720移动到框740,控制器110可以确定后台写入过程400已经被完成。在一些示例中,因为可能没有发生读取冲突,则控制器110使数据从非易失性存储器单元被读取以便服务所述读取请求。
如在图7中所示,在框730或框740之后,过程可以被完成。在一些示例中,如果控制器110识别了另一个潜在的读取冲突,那么过程可以重新开始。
图8图示了示例性装置800。虽然图8中所示的装置800在某个拓扑中具有有限数目的元件,可以领会的是,装置800可以在可替换的拓扑中包括更多或更少的元件,如针对给定的实现方式所期望的那样。
装置800可以包括计算机实现的装置,其可以包括上文针对对于图1至7的控制器110提到的逻辑和/或特征中的至少一些。计算机实现的装置800可以被布置成执行一个或多个软件组件822-a。值得注意的是,如此处使用的“a”和“b”和“c”以及类似的指示符旨在作为表示任何正整数的变量。因而,例如,如果实现方式设置对于a=5的值,那么软件组件822-a的完整集合可以包括模块822-1、822-2、822-3、822-4或822-5。实施例不限于本上下文。
根据一些示例,装置800可以能够与计算设备位于一起,例如,作为诸如2LM系统100之类的2LM系统的一部分。针对这些示例,装置800可以被包括在处理器或处理器电路中或者由其实现。在其它示例中,装置800可以被实现为固件(例如BIOS)的一部分,或者被实现为中间件应用。示例不限于该上下文。
在一些示例中,如果实现在处理器中,那么处理器可以被一般地布置成执行一个或多个软件组件822-a。处理器可以是各种商业可购买的处理器中的任何一个,包括但不限于AMD?Athlon?、Duron?和Opteron?处理器;ARM?应用、嵌入式和安全处理器;IBM?和Motorola?DragonBall?和PowerPC?处理器;IBM和Sony?单元处理器;Intel?Celeron?、Core(2)Duo?、Core i3、Core i5、Core i7、Pentium?和XScale?处理器;以及类似的处理器。多核处理器和其它多处理器架构也可以被采用来实现装置800。
根据一些示例,装置800可以包括预算组件822-1。预算组件822-1可以被布置以供由处理器电路820执行,以建立针对2LM系统的读取和写入窗口预算,诸如上面提到的读取和写入窗口预算112。针对这些示例,可以基于满足完成时间阈值以及可接受的错误率阈值来建立读取和写入窗口预算。这些阈值可以至少临时由预算组件822-1维护(例如存储在诸如查找表(LUT)之类的数据结构中)。阈值可以包括完成时间阈值824-a以及可接受的错误率阈值825-b。完成时间阈值824-a可以指示针对给定量的存储器的完成时间阈值,而可接受的错误率阈值825-a可以指示针对给定量的存储器的可接受的错误率阈值。
在一些示例中,装置800还可以包括请求组件822-2。请求组件822-a可以被布置以供由处理器电路820执行,以接收读取/写入请求810。根据一些示例,读取/写入请求810可以包括向2LM系统写入数据的请求。请求组件822-2也可以被布置成根据由预算组件822-1建立的读取和写入窗口预算(例如读取和写入窗口预算112)来使数据被写入到包括在2LM系统的第二级存储器(例如第二级存储器130)中的非易失性存储器单元。
在一些示例中,装置800还可以包括前台组件822-3。前台组件822-3可以被布置以供由处理器电路820执行,以使用诸如前台写入过程300之类的前台写入过程来使与读取/写入请求810相关联的数据被写入到包括在2LM系统的第二级存储器中的非易失性存储器单元(例如与第一组存储器地址相关联)。被使得由前台组件822-3写入的数据的移动在图8中被描绘为第二级存储器处的数据840。
根据一些示例,装置800还可以包括后台组件822-4。后台组件822-4可以被布置以供由处理器电路820执行,以使用诸如后台写入过程400之类的后台写入过程,以使与读取/写入请求810相关联的数据的至少一部分被写入到包括在2LM系统的第二级存储器中的非易失性存储器单元(例如与第二组存储器地址相关联)。被使得由后台组件822-4写入的数据的移动在图8中被描绘为第二级存储器处的数据840。
在一些示例中,如上文针对后台写入过程400所提到的,可以经由诸如ECC方案826-c之类的ECC方案的实现以及诸如多脉冲验证算法827-d之类的多脉冲验证算法的使用来向包括在第二级存储器中的非易失性存储器单元写入数据。针对这些示例,ECC方案826-c和多脉冲验证算法827-d可以由后台组件822-4至少临时地维护(例如存储在诸如LUT之类的数据结构中)。ECC方案826-c可以包括ECC方案,诸如但不限于里德所罗门,而多脉冲验证算法827-4可以包括针对对于图4的框420至470所述的后台写入过程400的至少一部分。同样如上面所提到的,作为后台写入过程的一部分,数据可以被至少临时地存储在写入高速缓存或写入到写入高速缓存。由后台组件822-4进行的去往写入高速缓存的数据的移动在图8中被描绘为写入高速缓存处的数据830。
根据一些示例,处理器电路820与第二级存储器处的数据840之间的双箭头可以指示:数据可以从2LM系统读取或者向其写入。在一些示例中,读取或写入冲突可以使处理器电路820的组件从写入高速缓存处的数据830和/或从第二级存储器处的数据840读取。这些组件可以读取数据,而同时实现诸如写入冲突过程500或600之类的写入冲突过程。处理器电路820的这些组件还可以响应于包括在读取/写入请求810中的读取请求、或在实现诸如读取冲突过程700之类的读取冲突过程的同时来读取数据。同样,后台组件822-4可以使数据从写入高速缓存处的数据830被读取,作为使用后台写入过程的一部分。
此处包括的是表示用于执行所公开的架构的新颖方面的示例性方法的逻辑流程的集合。虽然,为了解释的简单的目的,此处所示的一个或多个方法被示出和描述为一系列动作,但是本领域的技术人员将理解并领会的是,方法不限于动作的次序。一些动作可以根据其以不同的次序发生,和/或与来自此处示出和描述的其它动作同时发生。例如,本领域的技术人员将理解并领会的是,方法可以可替换地表示为一系列相互关联的状态或事件,诸如在状态图中。此外,对于新颖的实现可能并不要求图示在方法中的所有动作。
可以以软件、固件和/或硬件来实现逻辑流程。在软件和固件的实施例中,逻辑流程可以由存储在至少一个非临时计算机可读介质或机器可读介质(诸如光学、磁性或半导体储存)上的计算机可执行指令来实现。实施例不限于该上下文。
图9图示了逻辑流程900。逻辑流程900可以表示由此处所述的一个或多个逻辑、特征或设备(诸如装置800)所执行的操作中的一些或全部。更特别地,逻辑流程900可以由预算组件822-1、请求组件822-2、前台组件822-3或后台组件822-4实现。
根据一些示例,在框902处,逻辑流程900可以建立针对2LM系统的读取和写入窗口预算。读取和写入窗口预算可以包括2LM系统的第二级存储器的第一组存储器地址和第二组存储器地址的组合。第一组存储器地址可以与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元Vt分布而言具有更宽的单元Vt分布的非易失性存储器单元相关联。针对这些示例,读取和写入窗口预算可以由预算组件822-1建立,并且可以类似于如之前针对2LM系统100所述的读取和写入窗口预算112。
在一些示例中,在框904处,逻辑流程900可以接收写入请求以向2LM系统写入数据。针对这些示例,请求组件822-2可以从包括2LM系统100的计算设备的操作系统接收写入请求。
根据一些示例,在框906处,逻辑流程900可以基于读取和写入窗口预算来使数据被写入到第二级存储器。针对这些示例,前台组件822-3和后台组件822-4二者可以使包括在写入请求中的数据被写入到与第一和第二存储器地址相关联的非易失性存储器单元。前台组件822-3可以利用前台写入过程300来使数据被写入到非易失性存储器单元。后台组件822-4可以利用后台写入过程400来使至少一部分数据被写入到非易失性存储器单元的至少一部分。
图10图示了储存介质1000的实施例。储存介质1000可以包括制造的物品。在一些示例中,储存介质1000可以包括任何非临时计算机可读介质或机器可读介质,诸如光学、磁性或半导体储存。储存介质1000可以包括各种类型的计算机可执行指令,诸如用以实现逻辑流程900的指令。计算机可读或机器可读储存介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写入存储器等等。计算机可执行指令的示例可以包括任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象的代码、视觉代码等等。示例不限于此上下文。
图11图示了示例性计算平台1100。在一些示例中,如图11中所示,计算平台1100可以包括2LM系统1130、处理组件1140、其它平台组件1050或通信接口1160。根据一些示例,计算平台1100可以被实现在计算设备中。
根据一些示例,2LM系统1130可以类似于2LM系统100。针对这些示例,驻留在2LM系统1130或者与其位于一起的逻辑和/或特征(例如包括在控制器中)可以执行针对装置800的至少一些处理操作或逻辑。同样,2LM系统1130可以包括可以以与针对2LM系统100如上所述的类似的方式基于读取和写入窗口预算112来向其写入或从其中读取的第一和第二级存储器(未示出)。
根据一些示例,处理组件1140还可以执行针对装置800和/或储存介质1000的至少一些处理操作或逻辑。处理组件1140可以包括各种硬件元件、软件元件、或者两者的组合。硬件元件的示例可以包括设备、逻辑设备、组件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任何组合。确定是否通过使用硬件元件和/或软件元件来实现示例可以根据任何数目的因素而变化,诸如期望的计算率、功率水平、热容忍度、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其它设计或性能约束,如针对给定的示例所期望的那样。
在一些示例中,其它平台组件1150可以包括共同的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、计时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件(例如数字显示器)、电源等等。与其它平台组件1150或者2LM系统1130相关联的存储器单元的示例可以包括但不限于:以一个或多个更高速度的存储器单元的形式的各种类型的计算机可读和机器可读储存介质,诸如只读存储器(ROM)、RAM、DRAM、双数据率DRAM(DDRAM)、同步DRAM(SDRAM)、SRAM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变存储器(PCM)、相变存储器和开关(PCMS)、诸如铁电聚合物存储器之类的聚合物存储器、纳米线、铁电晶体管随机存取存储器(FeRAM)、奥式存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁性或光学卡、诸如独立盘冗余阵列(RAID)驱动之类的设备的阵列、固态存储器设备(例如USB存储器)、固态驱动(SSD)和适合于存储信息的任何其它类型的储存介质。
在一些示例中,通信接口1160可以包括逻辑和/或特征,以支持通信接口。针对这些示例,通信接口1160可以包括根据各种通信协议或标准操作以通过直接的或网络通信链路进行通信的一个或多个通信接口。直接通信可以经由使用在一个或多个工业标准中描述的通信协议或标准(包括后代和变型)来发生,诸如与系统管理总线(SMBus)规范、PCI快速规范、串行高级技术附接(SATA)规范或者通用串行总线(USB)规范相关联的那些。网络通信可以经由使用诸如在以太网标准中描述的那些之类的通信协议或标准来发生。
计算平台1100可以是计算设备的一部分,所述计算设备可以是例如用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、服务器、服务器阵列或者服务器群、web(网络)服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设施、web设施、分布式计算系统、微处理器系统、基于处理器的系统、或者其组合。因此,此处所述的计算平台1100的功能和/或特定配置可以在计算平台1100的各种实施例中被包括或省略,如合适地期望的那样。
计算平台1100的组件和特征可以通过使用分立电路、专用集成电路(ASIC)、逻辑门和/或单芯片架构的任何组合来实现。此外,计算平台1100的特征可以通过使用微控制器、可编程逻辑阵列和/或微处理器或者合适地适当的前述各项的组合来实现。应该注意的是,硬件、固件和/或软件元件可以在此共同地或者单独地被称为“逻辑”或“电路”。
应该领会的是,在图11的框图中示出的示例性的计算平台1100可以表示许多潜在实现方式的一个功能上描述性的示例。因此,在附图中描绘的框功能的分开、省略或包括不暗示用于实现这些功能的硬件组件、电路、软件和/或元件必要地在实施例中被分开、省略或包括。
至少一个示例的一个或多个方面可以由存储在至少一个机器可读介质上的代表性指令来实现,所述至少一个机器可读介质表示处理器内的各种逻辑,当其被机器、计算设备或系统读取时使机器、计算设备或系统制造逻辑以执行此处所述的技术。被称为“IP核”的这样的表示可以被存储在有形的、机器可读介质上,并且被供给到各种客户或制造设施以装载到实际上制作逻辑或处理器的制造机器中。
通过使用硬件元件、软件元件或二者的组合,可以实现各种示例。在一些示例中,硬件元件可以包括设备、组件、处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任何组合。确定是否通过硬件元件和/或软件元件来实现示例可以根据任何数目的因素而变化,诸如期望的计算率、功率水平、热容忍度、处理循环预算、输入数据率、输出数据率、存储器资源、数据总线速度以及其它设计或性能约束,如针对给定的实现方式所期望的那样。
一些示例可以包括制造的物品或者至少一个计算机可读介质。计算机可读介质可以包括非临时储存介质以存储逻辑。在一些示例中,非临时储存介质可以包括能够存储电子数据的一个或多个类型的计算机可读储存介质,包括易失性存储器或非易失性存储器、可移除或非可移除存储器、可擦除或非可擦除存储器、可写入或可重写入存储器等等。在一些示例中,逻辑可以包括各种软件元件,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任何组合。
根据一些示例,计算机可读介质可以包括非临时储存介质以存储或维持指令,所述指令当被机器、计算设备或系统执行时使机器、计算设备或系统执行根据所述示例的方法和/或操作。指令可以包括任何合适类型的代码,诸如源代码、编译的代码、解释的代码、可执行代码、静态代码、动态代码等等。指令可以根据预定义的计算机语言、方式或语法来被实现,用于指导机器、计算设备或系统来执行某个功能。通过使用任何合适的高级、低级、面向对象的、视觉、编译的和/或解释的编程语言,可以实现指令。
通过使用表述“在一个示例中”或“示例”连同其衍生物,可以描述一些示例。这些术语意指关于示例所述的特定的特征、结构或特性被包括在至少一个示例中。短语“在一个示例中”在说明书中的各种地方的出现不一定全部指的是相同的示例。
通过使用表述“耦合”和“连接”连同它们的衍生物,可以描述一些示例。这些术语不一定意图作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多个元件彼此直接物理或电接触。然而,术语“耦合”还可以意指两个或更多个元件不是彼此直接接触,但是仍然彼此协作或与彼此交互。
在一些示例中,示例性方法可以包括建立针对包括第一级存储器和第二级存储器的2LM系统的读取和写入窗口预算。读取和写入窗口预算可以包括2LM系统的第二级存储器的第一组存储器地址和第二组存储器地址的组合。第一组存储器地址与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而言具有更宽的单元阈值电压分布的非易失性存储器单元相关联。针对这些示例,可以接收写入请求以向2LM系统写入数据。然后可以基于读取和写入窗口预算来使数据被写入到第二级存储器。
根据针对示例性方法的一些示例,与第一组存储器地址相关联的非易失性存储器单元可以经由不包括错误校正的前台写入过程的使用来存储数据。
在针对示例性方法的一些示例中,与第二组存储器地址相关联的非易失性存储器单元可以经由后台写入过程的使用来存储至少一部分数据。针对这些示例,后台写入过程包括:实现针对经由前台写入过程的使用而写入到与第二组存储器地址相关联的非易失性存储器单元的至少一部分数据的ECC方案。后台写入过程还包括:在ECC方案的实现之后使至少一部分数据被存储在与第二级存储器分离的写入高速缓存中。后台写入过程还包括:通过使用多脉冲验证算法来使至少一部分数据被写回到与第二组存储器地址相关联的非易失性存储器单元。相比于针对与第一组存储器地址相关联的非易失性存储器单元的单元阈值电压分布,所述多脉冲验证算法能够收窄针对与第二组存储器地址相关联的存储器单元的单元阈值电压分布。
根据针对示例性方法的一些示例,可以接收写入附加数据的后续写入请求。可以使附加数据基于读取和写入窗口预算而被写入到第二级存储器。附加数据可以经由前台写入过程的使用而被写入到与第三组存储器地址相关联的非易失性存储器单元。同样,附加数据中的至少一些可以经由后台写入过程的使用而被写入到与第四组存储器地址相关联的非易失性存储器单元。针对这些示例,第二组存储器地址可以不同于第四组存储器地址。
在针对示例性方法的一些示例中,第三组存储器地址与第二组存储器地址可以包括至少一个共同的存储器地址。在与至少一个共同的存储器地址相关联的非易失性存储器单元中写入附加数据可以包括:确定用于写入与之前接收到的写入请求相关联的数据到非易失性存储器单元的后台写入过程的状态,以及使附加数据基于后台写入过程的状态而被写入到第二级存储器。
根据针对示例性方法的一些示例,后台写入过程的状态可以指示后台写入过程的完成。针对这些示例,使附加数据被写入到第二级存储器可以包括通过使用前台写入过程来向非易失性存储器单元写入附加数据。
在针对示例性方法的一些示例中,后台写入过程的状态可以指示后台写入过程的部分完成。针对这些示例,通过使附加数据更新作为部分完成的后台写入过程的结果而被写入到写入高速缓存的、与之前接收到的写入请求相关联的数据,可以使附加数据被写入到第二级存储器。同样,可以调度经更新的数据以被写入到第二级存储器中的非易失性存储器单元。然后可以通过使用前台写入过程或后台写入过程以使经更新的数据被写入到第二级存储器中的非易失性存储器单元。
根据针对示例性方法的一些示例,可以接收从包括在第二组存储器地址中的存储器地址读取数据的读取请求。可以确定用于向与存储器地址相关联的非易失性存储器单元写入与接收到的写入请求相关联的数据的后台写入过程的状态。然后可以使数据基于后台写入过程的状态而被读取。
在针对示例性方法的一些示例中,后台写入过程的状态可以指示后台写入过程的完成。针对这些示例,使数据被读取可以包括使数据从与存储器地址相关联的非易失性存储器单元被读取。
根据针对示例性方法的一些示例,后台写入过程的状态可以指示后台写入过程的部分完成。针对这些示例,使数据被读取可以包括使数据从写入高速缓存被读取,所述写入高速缓存被用来至少部分地完成针对存储在与存储器地址相关联的非易失性存储器单元处的数据的后台写入过程。
在针对示例性方法的一些示例中,可以基于当履行去往第二级存储器的读取或写入请求时满足针对给定量的存储器的完成时间阈值以及针对给定量的存储器的可接受的错误率阈值二者来建立读取和写入窗口预算。同样,前台写入过程相比于后台写入过程可以具有更快的完成时间。后台写入过程相比于前台写入过程可以具有更低的错误。
在针对示例性方法的一些示例中,非易失性存储器单元可以包括PCM、PCMS、NAND闪速存储器、NOR闪速存储器或铁电存储器中的一个。
根据针对示例性方法的一些示例,2LM系统的第一级存储器可以是易失性存储器,以包括动态随机存取存储器或静态随机存取存储器中的一个。
根据一些示例,包括多个指令的至少一个机器可读介质,所述多个指令响应于在系统上被执行而使系统执行如上面提到的示例性方法。
根据一些示例,示例性装置可以包括处理器电路以及预算组件,所述预算组件被布置以供由处理器电路执行,以建立针对包括第一级存储器和第二级存储器的2LM系统的读取和写入窗口预算。读取和写入窗口预算可以包括2LM系统的第二级存储器的第一组存储器地址和第二组存储器地址的组合。第一组存储器地址可以与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而言具有更宽的单元阈值电压分布的非易失性存储器单元相关联。示例性装置还可以包括请求组件,所述请求组件被布置以供由处理器电路执行,以接收向2LM系统写入数据的写入请求。请求组件还可以被布置成基于建立的读取和写入窗口预算来使数据被写入到第二级存储器。
在一些示例中,示例性装置还可以包括前台组件,所述前台组件被布置以供由处理器电路执行,以使用前台写入过程来使数据被写入到与第一组存储器地址相关联的非易失性存储器单元。针对这些示例,前台写入过程可以不包括错误校正。
在一些示例中,示例性装置还可以包括后台组件,所述后台组件被布置以供由处理器电路执行,以使用后台写入过程来使至少一部分数据被写入到与第二组存储器地址相关联的非易失性存储器单元。针对这些示例,后台写入过程的使用可以包括后台组件被布置成实现针对经由前台写入过程的使用而写入到与第二组存储器地址相关联的非易失性存储器单元的数据的至少一部分的ECC方案。后台写入过程的使用还可以包括在ECC方案的实现之后使至少一部分数据被存储在与第二级存储器分离的写入高速缓存中。后台写入过程的使用还可以包括通过使用多脉冲验证算法来使至少一部分数据被写回到与第二组存储器地址相关联的非易失性存储器单元。相比于针对与第一组存储器地址相关联的非易失性存储器单元的单元阈值电压分布,多脉冲验证算法能够收窄针对与第二组存储器地址相关联的存储器单元的单元阈值电压分布。
根据针对示例性装置的一些示例,请求组件可以被布置成接收写入附加数据的后续写入请求,并且使附加数据基于读取和写入窗口预算而被写入到第二级存储器。附加数据可以被写入到与第三组存储器地址相关联的非易失性存储器单元,并且至少一部分附加数据可以被写入到与第四组存储器地址相关联的非易失性存储器单元。针对这些示例,前台组件可以被布置成使用前台写入过程来使附加数据被写入到与第三组存储器地址相关联的非易失性存储器单元。同样,针对这些示例,后台组件可以被布置成使用后台写入过程来使至少一部分附加数据被写入到与第四组存储器地址相关联的非易失性存储器单元。
在针对示例性装置的一些示例中,第三组存储器地址与第二组存储器地址可以包括与非易失性存储器单元相关联的至少一个共同的存储器地址。针对这些示例,请求组件可以被布置成通过被布置成确定后台组件所使用以便使与之前接收到的写入请求相关联的数据被写入到非易失性存储器单元的后台写入过程的状态而使附加数据被写入到非易失性存储器单元。请求组件还可以被布置成使附加数据基于后台写入过程的状态而被写入到非易失性存储器单元。
根据针对示例性装置的一些示例,后台写入过程的状态可以指示后台组件已经完成了用于向与非易失性存储器单元相关联的至少一个共同的存储器地址写入与之前接收到的写入请求相关联的数据的后台写入过程。针对这些示例,请求组件还可以被布置成通过前台组件使附加数据被写入到非易失性存储器单元。前台组件可以通过使用前台写入过程来使附加数据被写入到非易失性存储器单元。
在针对示例性装置的一些示例中,后台写入过程的状态可以指示后台组件已经部分完成了用于向与非易失性存储器单元相关联的至少一个共同的存储器地址写入与之前接收到的写入请求相关联的数据的后台写入过程。针对这些示例,请求组件还可以被布置成,通过使附加数据更新作为后台组件部分完成后台写入过程的结果而使得被后台组件写入到写入高速缓存的、与之前接收到的写入请求相关联的数据而使附加数据被写入到第二级存储器。请求组件还可以被布置成调度附加数据以被写入到第二级存储器中的非易失性存储器单元。请求组件还可以被布置成使前台组件通过使用前台写入过程来使附加数据从写入高速缓存被写入到第二级存储器中的非易失性存储器单元。可替换地,请求组件还可以被布置成使后台组件通过使用后台写入过程来使附加数据从第一级存储器被写入到第二级存储器中的非易失性存储器单元。
根据针对示例性装置的一些示例,预算组件可以被布置成基于当履行去往第二级存储器的读取或写入请求时满足针对给定量的存储器的完成时间阈值以及针对给定量的存储器的可接受的错误率阈值二者来建立读取和写入窗口预算。前台写入过程相比于后台写入过程可以具有更快的完成时间。后台写入过程相比于前台写入过程可以具有更低的错误。
应该强调的是,公开的摘要被提供以符合37 C.F.R. 章节 1.72(b),其要求了将允许读者快速确定技术公开的本质的摘要。在理解其将不会被用来解释或限制权利要求的范围或含义的情况下而被提交。另外,在之前的具体实施方式中,可以看出的是,为了简化公开的目的,各种特征被一起成组在单个示例中。本公开的方法不被解释为反映如下意图:要求保护的示例需要比在每个权利要求中明确记载的更多的特征。而是,如下面的权利要求所反映,发明的主题在于少于单个公开的示例的所有特征。因而,下面的权利要求由此并入具体实施方式中,其中每个权利要求独自作为单独的示例。在所附权利要求中,术语“包括”以及“在其中”分别被用作相应的术语“包含”和“其中”的简明的英语的等同物。此外,术语“第一”、“第二”、“第三”等仅仅作为标签使用,而不意图对它们的对象施加数字要求。
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应该理解的是在所附权利要求中所限定的主题不一定限于上述的特定特征或动作。而是,上述的特定特征和动作作为实现权利要求的示例性形式而被公开。

Claims (20)

1.一种方法,包括:
建立针对包括第一级存储器和第二级存储器的两级存储器(2LM)系统的读取和写入窗口预算,读取和写入窗口预算包括第二级存储器的第一组存储器地址和第二组存储器地址的组合,第一组存储器地址与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而言具有更宽的单元阈值电压分布的非易失性存储器单元相关联;
接收向2LM系统写入数据的写入请求;以及
基于读取和写入窗口预算而使数据被写入到第二级存储器。
2.根据权利要求1的方法,包括与第一组存储器地址相关联的非易失性存储器单元经由不包括错误校正的前台写入过程的使用来存储数据。
3.根据权利要求2的方法,包括与第二组存储器地址相关联的非易失性存储器单元经由后台写入过程的使用来存储至少一部分数据,所述后台写入过程包括:
实现针对经由前台写入过程的使用而写入到与第二组存储器地址相关联的非易失性存储器单元的至少一部分数据的错误校正码(ECC)方案;
在ECC方案的实现之后使至少一部分数据被存储在与第二级存储器分离的写入高速缓存中;以及
通过使用多脉冲验证算法来使至少一部分数据被写回到与第二组存储器地址相关联的非易失性存储器单元,所述多脉冲验证算法能够相比于针对与第一组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而收窄针对与第二组存储器地址相关联的存储器单元的单元阈值电压分布。
4.根据权利要求3的方法,包括:
接收写入附加数据的后续写入请求;以及
使附加数据基于读取和写入窗口预算而被写入到第二级存储器,使附加数据经由前台写入过程的使用而被写入到与第三组存储器地址相关联的非易失性存储器单元,以及使附加数据中的至少一些经由后台写入过程的使用而被写入到与第四组存储器地址相关联的非易失性存储器单元。
5.根据权利要求4的方法,包括第二组存储器地址不同于第四组存储器地址。
6.根据权利要求4的方法,包括第三组存储器地址与第二组存储器地址包括至少一个共同的存储器地址,并且向与至少一个共同的存储器地址相关联的非易失性存储器单元写入附加数据包括:
确定用于写入与之前接收到的写入请求相关联的数据到非易失性存储器单元的后台写入过程的状态; 以及
使附加数据基于后台写入过程的状态而被写入到第二级存储器。
7.根据权利要求6的方法,包括后台写入过程的状态指示后台写入过程的完成,并且使附加数据被写入到第二级存储器包括通过使用前台写入过程而向非易失性存储器单元写入附加数据。
8.根据权利要求6的方法,包括后台写入过程的状态指示后台写入过程的部分完成,并且使附加数据被写入到第二级存储器包括:
使附加数据更新作为部分完成的后台写入过程的结果而被写入到写入高速缓存的、与之前接收到的写入请求相关联的数据;
调度经更新的数据以被写入到第二级存储器中的非易失性存储器单元;以及
使用前台写入过程或后台写入过程以使经更新的数据被写入到第二级存储器中的非易失性存储器单元。
9.根据权利要求3的方法,包括:
接收从包括在第二组存储器地址中的存储器地址读取数据的读取请求;
确定用于向与存储器地址相关联的非易失性存储器单元写入与接收到的写入请求相关联的数据的后台写入过程的状态;以及
使数据基于后台写入过程的状态而被读取。
10.根据权利要求9的方法,包括后台写入过程的状态指示后台写入过程的完成,并且使数据被读取包括使数据从与存储器地址相关联的非易失性存储器单元被读取。
11.根据权利要求9的方法,包括后台写入过程的状态指示后台写入过程的部分完成,并且使数据被读取包括使数据从写入高速缓存被读取,所述写入高速缓存被用来至少部分地完成针对存储在与存储器地址相关联的非易失性存储器单元处的数据的后台写入过程。
12.根据权利要求3的方法,包括基于当履行去往第二级存储器的读取或写入请求时满足针对给定量的存储器的完成时间阈值以及针对给定量的存储器的可接受的错误率阈值二者来建立读取和写入窗口预算,前台写入过程相比于后台写入过程具有更快的完成时间,后台写入过程相比于前台写入过程具有更低的错误。
13.至少一个机器可读介质,其包括多个指令,所述多个指令响应于在计算设备上被执行而使计算设备执行根据权利要求1至12中的任一项的方法。
14.一种装置,其包括用于执行权利要求1至12中的任一项的方法的部件。
15.一种装置,包括:
处理器电路;
预算组件,其被布置以供由处理器电路执行,以建立针对包括第一级存储器和第二级存储器的两级存储器(2LM)系统的读取和写入窗口预算,读取和写入窗口预算包括第二级存储器的第一组存储器地址和第二组存储器地址的组合,第一组存储器地址与相比于针对与第二组存储器地址相关联的非易失性存储器单元的单元阈值电压分布而言具有更宽的单元阈值电压分布的非易失性存储器单元相关联;以及
请求组件,其被布置以供由处理器电路执行,以接收向2LM系统写入数据的写入请求,所述请求组件还被布置成使数据基于建立的读取和写入窗口预算而被写入到第二级存储器。
16.根据权利要求15的装置,包括:
前台组件,其被布置以供由处理器电路执行,以使用前台写入过程来使数据被写入到与第一组存储器地址相关联的非易失性存储器单元,前台写入过程不包括错误校正;以及
后台组件,其被布置以供由处理器电路执行,以使用后台写入过程来使至少一部分数据被写入到与第二组存储器地址相关联的非易失性存储器单元,后台写入过程的使用包括后台组件被布置成:
实现针对经由前台写入过程的使用而写入到与第二组存储器地址相关联的非易失性存储器单元的至少一部分数据的错误校正码(ECC)方案;
在ECC方案的实现之后使至少一部分数据被存储到与第二级存储器分离的写入高速缓存;以及
通过使用多脉冲验证算法来使至少一部分数据被写回到与第二组存储器地址相关联的非易失性存储器单元,相比于针对与第一组存储器地址相关联的非易失性存储器单元的单元阈值电压分布,所述多脉冲验证算法能够收窄针对与第二组存储器地址相关联的存储器单元的单元阈值电压分布。
17.根据权利要求16的装置,包括:
请求组件被布置成接收写入附加数据的后续写入请求,并且使附加数据基于读取和写入窗口预算而被写入到第二级存储器,使附加数据被写入到与第三组存储器地址相关联的非易失性存储器单元,以及使至少一部分附加数据被写入到与第四组存储器地址相关联的非易失性存储器单元;
前台组件被布置成使用前台写入过程来使附加数据被写入到与第三组存储器地址相关联的非易失性存储器单元;以及
后台组件被布置成使用后台写入过程来使至少一部分附加数据被写入到与第四组存储器地址相关联的非易失性存储器单元。
18.根据权利要求16的装置,包括第三组存储器地址与第二组存储器地址包括与非易失性存储器单元相关联的至少一个共同的存储器地址,请求组件被布置成使附加数据被写入到非易失性存储器单元包括请求组件还被布置成:
确定后台写入过程的状态,所述后台写入过程被后台组件用来使与之前接收到的写入请求相关联的数据被写入到非易失性存储器单元;
使附加数据基于后台写入过程的状态而被写入到非易失性存储器单元。
19.根据权利要求18的装置,包括后台写入过程的状态指示后台组件已经完成了用于向与非易失性存储器单元相关联的至少一个共同的存储器地址写入与之前接收到的写入请求相关联的数据的后台写入过程,请求组件还被布置成通过前台组件使附加数据被写入到非易失性存储器单元,前台组件通过使用前台写入过程而使附加数据被写入到非易失性存储器单元。
20.根据权利要求18的装置,包括后台写入过程的状态指示后台组件已经部分完成了用于向与非易失性存储器单元相关联的至少一个共同的存储器地址写入与之前接收到的写入请求相关联的数据的后台写入过程,请求组件还被布置成使附加数据通过以下动作而被写入到第二级存储器:
使附加数据更新作为后台组件部分完成后台写入过程的结果而使得被后台组件写入到写入高速缓存的与之前接收到的写入请求相关联的数据;
调度附加数据以被写入到第二级存储器中的非易失性存储器单元;以及
使前台组件通过使用前台写入过程而使附加数据从写入高速缓存被写入到第二级存储器中的非易失性存储器单元,或者使后台组件通过使用后台写入过程而使附加数据从写入高速缓存被写入到第二级存储器中的非易失性存储器单元。
CN201380044585.0A 2012-09-26 2013-06-25 与针对两级存储器系统的读取和写入窗口预算相关联的技术 Active CN104583978B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/627,380 US8832530B2 (en) 2012-09-26 2012-09-26 Techniques associated with a read and write window budget for a two level memory system
US13/627380 2012-09-26
PCT/US2013/047453 WO2014051776A1 (en) 2012-09-26 2013-06-25 Techniques associated with a read and write window budget for a two level memory system

Publications (2)

Publication Number Publication Date
CN104583978A true CN104583978A (zh) 2015-04-29
CN104583978B CN104583978B (zh) 2018-01-19

Family

ID=50340178

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044585.0A Active CN104583978B (zh) 2012-09-26 2013-06-25 与针对两级存储器系统的读取和写入窗口预算相关联的技术

Country Status (4)

Country Link
US (1) US8832530B2 (zh)
EP (1) EP2901286B1 (zh)
CN (1) CN104583978B (zh)
WO (1) WO2014051776A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020024733A1 (en) * 2018-08-01 2020-02-06 Huawei Technologies Co., Ltd. Multi-instance 2lm architecture for scm applications
CN111258497A (zh) * 2018-11-30 2020-06-09 慧与发展有限责任合伙企业 基于队列深度阈值绕过储存级存储器读取缓存
CN111480200A (zh) * 2017-12-22 2020-07-31 美光科技公司 自动参考存储器单元读取技术
CN112380147A (zh) * 2020-11-12 2021-02-19 上海壁仞智能科技有限公司 计算装置以及用于加载或更新数据的方法
CN114144756A (zh) * 2019-07-26 2022-03-04 美光科技公司 使用写入事务数据选择读取电压
US11282574B2 (en) 2017-12-22 2022-03-22 Micron Technology, Inc. Auto-referenced memory cell read techniques
CN114144756B (zh) * 2019-07-26 2024-05-24 美光科技公司 使用写入事务数据选择读取电压

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157093B2 (en) * 2015-05-27 2018-12-18 Nxp Usa, Inc. Data integrity check within a data processing system
US10163479B2 (en) 2015-08-14 2018-12-25 Spin Transfer Technologies, Inc. Method and apparatus for bipolar memory write-verify
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10818331B2 (en) 2016-09-27 2020-10-27 Spin Memory, Inc. Multi-chip module for MRAM devices with levels of dynamic redundancy registers
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10192602B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Smart cache design to prevent overflow for a memory device with a dynamic redundancy register
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10192601B2 (en) 2016-09-27 2019-01-29 Spin Transfer Technologies, Inc. Memory instruction pipeline with an additional write stage in a memory device that uses dynamic redundancy registers
US10366774B2 (en) * 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10656994B2 (en) 2017-10-24 2020-05-19 Spin Memory, Inc. Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques
US10529439B2 (en) 2017-10-24 2020-01-07 Spin Memory, Inc. On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects
US10481976B2 (en) 2017-10-24 2019-11-19 Spin Memory, Inc. Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers
US10489245B2 (en) 2017-10-24 2019-11-26 Spin Memory, Inc. Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them
US10891997B2 (en) 2017-12-28 2021-01-12 Spin Memory, Inc. Memory array with horizontal source line and a virtual source line
US10424726B2 (en) 2017-12-28 2019-09-24 Spin Memory, Inc. Process for improving photoresist pillar adhesion during MRAM fabrication
US10360962B1 (en) 2017-12-28 2019-07-23 Spin Memory, Inc. Memory array with individually trimmable sense amplifiers
US10395712B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Memory array with horizontal source line and sacrificial bitline per virtual source
US10395711B2 (en) 2017-12-28 2019-08-27 Spin Memory, Inc. Perpendicular source and bit lines for an MRAM array
US10811594B2 (en) 2017-12-28 2020-10-20 Spin Memory, Inc. Process for hard mask development for MRAM pillar formation using photolithography
US10367139B2 (en) 2017-12-29 2019-07-30 Spin Memory, Inc. Methods of manufacturing magnetic tunnel junction devices
US10840439B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Magnetic tunnel junction (MTJ) fabrication methods and systems
US10784439B2 (en) 2017-12-29 2020-09-22 Spin Memory, Inc. Precessional spin current magnetic tunnel junction devices and methods of manufacture
US10424723B2 (en) 2017-12-29 2019-09-24 Spin Memory, Inc. Magnetic tunnel junction devices including an optimization layer
US10546624B2 (en) 2017-12-29 2020-01-28 Spin Memory, Inc. Multi-port random access memory
US10840436B2 (en) 2017-12-29 2020-11-17 Spin Memory, Inc. Perpendicular magnetic anisotropy interface tunnel junction devices and methods of manufacture
US10886330B2 (en) 2017-12-29 2021-01-05 Spin Memory, Inc. Memory device having overlapping magnetic tunnel junctions in compliance with a reference pitch
US10438995B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Devices including magnetic tunnel junctions integrated with selectors
US10438996B2 (en) 2018-01-08 2019-10-08 Spin Memory, Inc. Methods of fabricating magnetic tunnel junctions integrated with selectors
US10446744B2 (en) 2018-03-08 2019-10-15 Spin Memory, Inc. Magnetic tunnel junction wafer adaptor used in magnetic annealing furnace and method of using the same
US10784437B2 (en) 2018-03-23 2020-09-22 Spin Memory, Inc. Three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US11107978B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Methods of manufacturing three-dimensional arrays with MTJ devices including a free magnetic trench layer and a planar reference magnetic layer
US20190296220A1 (en) 2018-03-23 2019-09-26 Spin Transfer Technologies, Inc. Magnetic Tunnel Junction Devices Including an Annular Free Magnetic Layer and a Planar Reference Magnetic Layer
US11107974B2 (en) 2018-03-23 2021-08-31 Spin Memory, Inc. Magnetic tunnel junction devices including a free magnetic trench layer and a planar reference magnetic layer
US10719243B2 (en) * 2018-05-30 2020-07-21 Apple Inc. Techniques for preserving an expected lifespan of a non-volatile memory
US10411185B1 (en) 2018-05-30 2019-09-10 Spin Memory, Inc. Process for creating a high density magnetic tunnel junction array test platform
US10692569B2 (en) 2018-07-06 2020-06-23 Spin Memory, Inc. Read-out techniques for multi-bit cells
US10559338B2 (en) 2018-07-06 2020-02-11 Spin Memory, Inc. Multi-bit cell read-out techniques
US10593396B2 (en) 2018-07-06 2020-03-17 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10600478B2 (en) 2018-07-06 2020-03-24 Spin Memory, Inc. Multi-bit cell read-out techniques for MRAM cells with mixed pinned magnetization orientations
US10650875B2 (en) 2018-08-21 2020-05-12 Spin Memory, Inc. System for a wide temperature range nonvolatile memory
US10699761B2 (en) 2018-09-18 2020-06-30 Spin Memory, Inc. Word line decoder memory architecture
US10971680B2 (en) 2018-10-01 2021-04-06 Spin Memory, Inc. Multi terminal device stack formation methods
US11621293B2 (en) 2018-10-01 2023-04-04 Integrated Silicon Solution, (Cayman) Inc. Multi terminal device stack systems and methods
US11107979B2 (en) 2018-12-28 2021-08-31 Spin Memory, Inc. Patterned silicide structures and methods of manufacture
US11347477B2 (en) 2019-09-27 2022-05-31 Intel Corporation Compute in/near memory (CIM) circuit architecture for unified matrix-matrix and matrix-vector computations

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126680A1 (en) * 2006-11-03 2008-05-29 Yang-Sup Lee Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics
CN102047230A (zh) * 2008-05-28 2011-05-04 美光科技公司 混合式存储器管理
US20110131366A1 (en) * 2009-11-30 2011-06-02 Hiroto Nakai Memory management unit and memory management method
CN102667944A (zh) * 2009-10-28 2012-09-12 桑迪士克科技股份有限公司 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005021344D1 (de) 2005-07-28 2010-07-01 St Microelectronics Srl Konfigurierung eines Multibit-Flashspeichers
US7330376B1 (en) * 2006-07-27 2008-02-12 Macronix International Co., Ltd. Method for memory data storage by partition into narrower threshold voltage distribution regions
US8453022B2 (en) * 2007-12-05 2013-05-28 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
WO2010078222A1 (en) * 2009-01-05 2010-07-08 Sandisk Corporation Non-volatile memory and method with write cache partitioning
JP4956593B2 (ja) * 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080126680A1 (en) * 2006-11-03 2008-05-29 Yang-Sup Lee Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics
CN102047230A (zh) * 2008-05-28 2011-05-04 美光科技公司 混合式存储器管理
CN102667944A (zh) * 2009-10-28 2012-09-12 桑迪士克科技股份有限公司 通过写入后读取和适应性重写来管理错误的非易失性存储器和方法
US20110131366A1 (en) * 2009-11-30 2011-06-02 Hiroto Nakai Memory management unit and memory management method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111480200A (zh) * 2017-12-22 2020-07-31 美光科技公司 自动参考存储器单元读取技术
US11282574B2 (en) 2017-12-22 2022-03-22 Micron Technology, Inc. Auto-referenced memory cell read techniques
US11282571B2 (en) 2017-12-22 2022-03-22 Micron Technology, Inc. Auto-referenced memory cell read techniques
WO2020024733A1 (en) * 2018-08-01 2020-02-06 Huawei Technologies Co., Ltd. Multi-instance 2lm architecture for scm applications
US11287999B2 (en) 2018-08-01 2022-03-29 Huawei Technologies Co., Ltd. Multi-instance 2LM architecture for SCM applications
CN111258497A (zh) * 2018-11-30 2020-06-09 慧与发展有限责任合伙企业 基于队列深度阈值绕过储存级存储器读取缓存
CN111258497B (zh) * 2018-11-30 2022-03-08 慧与发展有限责任合伙企业 存储系统及其操作方法、以及包括存储介质的物品
CN114144756A (zh) * 2019-07-26 2022-03-04 美光科技公司 使用写入事务数据选择读取电压
CN114144756B (zh) * 2019-07-26 2024-05-24 美光科技公司 使用写入事务数据选择读取电压
CN112380147A (zh) * 2020-11-12 2021-02-19 上海壁仞智能科技有限公司 计算装置以及用于加载或更新数据的方法

Also Published As

Publication number Publication date
CN104583978B (zh) 2018-01-19
WO2014051776A1 (en) 2014-04-03
EP2901286A4 (en) 2016-04-20
EP2901286B1 (en) 2020-11-04
EP2901286A1 (en) 2015-08-05
US20140089762A1 (en) 2014-03-27
US8832530B2 (en) 2014-09-09

Similar Documents

Publication Publication Date Title
CN104583978A (zh) 与针对两级存储器系统的读取和写入窗口预算相关联的技术
US10540115B2 (en) Controller adaptation to memory program suspend-resume
US8335123B2 (en) Power management of memory systems
US20150113207A1 (en) Operating method of data storage device
CN104272393A (zh) 为存储器的块调整编程步长的系统和方法
US8954705B2 (en) Memory space management method and memory controller and memory storage device and memory storage using the same
US8902671B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
US20140019670A1 (en) Data writing method, memory controller, and memory storage device
CN104541253A (zh) 与保护写入到非易失性存储器的系统关键数据相关联的技术
US10552048B2 (en) Reduction of maximum latency using dynamic self-tuning for redundant array of independent disks
CN105005450A (zh) 数据写入方法、存储器存储装置及存储器控制电路单元
CN106372011B (zh) 用于pcie ssd控制器的高性能主机队列监控器
US20160179596A1 (en) Operating method of data storage device
CN103984506A (zh) 闪存存储设备数据写的方法和系统
US10866764B2 (en) Memory system with parity cache scheme and method of operating such memory system
US9032135B2 (en) Data protecting method, memory controller and memory storage device using the same
CN105321571A (zh) 数据储存装置及其操作方法
US9223688B2 (en) Data storing method and memory controller and memory storage device using the same
CN109783005A (zh) 控制记忆装置的方法、记忆装置、及其控制器和电子装置
CN109727630A (zh) 存储系统及其操作方法
CN109426627A (zh) 数据存储装置及其操作方法
US8595420B2 (en) Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus
CN103513930A (zh) 存储器管理方法、存储器控制器与存储器储存装置
US9652378B2 (en) Writing method, memory controller and memory storage device
CN102375698B (zh) 数据串分派与传送方法、存储器控制器与存储器储存装置

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