CN108470006B - 用于进行非阻塞控制同步操作的技术 - Google Patents
用于进行非阻塞控制同步操作的技术 Download PDFInfo
- Publication number
- CN108470006B CN108470006B CN201810154936.8A CN201810154936A CN108470006B CN 108470006 B CN108470006 B CN 108470006B CN 201810154936 A CN201810154936 A CN 201810154936A CN 108470006 B CN108470006 B CN 108470006B
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- volatile memory
- control information
- updated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
设备包含非易失性存储器和耦接到非易失性存储器的控制器。控制器包含接口,该接口配置为发送要被储存到非易失性存储器的第一数据。控制器还包含控制电路,该控制电路配置为基于将第一数据储存到非易失性存储器来产生更新的控制信息。接口还配置为同时地发送要在非易失性存储器处储存的第二数据和更新的控制信息。非易失性存储器配置为以非阻塞的形式储存第二数据和更新的控制信息。
Description
技术领域
本公开通常涉及电子装置,并且更特别地涉及数据储存装置。
背景技术
数据储存装置使得用户能够储存和取回数据。数据储存装置的示例包含易失性存储器装置和非易失性存储器装置。非易失性存储器装置在断电事件之后保留数据,并且易失性存储器装置在断电事件之后丢失数据。
数据储存装置可以储存与数据相关联的控制信息。例如,数据储存装置可以维持指示逻辑地址到物理地址的映射的管理表。在一些实现方式中,管理表维持在数据储存装置的控制器的易失性存储器中。数据储存装置可以更新易失性存储器处的管理表,并且可以周期性地将管理表发送到数据储存装置的非易失性存储器(例如,以使用控制更新操作来在非易失性存储器处“备份”管理表)。
数据储存装置可以在控制更新操作期间“阻塞”到非易失性存储器的写入操作,以创建在控制表和主机数据之间的一致性。例如,当暂停写入操作处理时,对控制表不存在进一步的更新,并且数据储存装置可以等待直到完成先前写入的主机数据的处理(例如,在系统空闲时间期间)以更新控制信息。
发明内容
本申请的一个方面包括设备,其包括:非易失性存储器;以及控制器,其耦接到所述非易失性存储器,所述控制器包含,接口,配置为发送要被储存到所述非易失性存储器的第一数据;和控制电路,配置为基于将所述第一数据储存到所述非易失性存储器来产生更新的控制信息;其中所述接口还配置为同时地发送要在所述非易失性存储器处储存的第二数据和所述更新的控制信息,并且其中所述非易失性存储器配置为以非阻塞的形式储存所述第二数据和所述更新的控制信息。
本申请的另一方面包括设备,其包括,用于储存数据的构件;用于响应于发送要在用于储存数据的构件处储存的第一数据而产生更新的映射表的构件;以及用于向用于储存数据的构件同时地发送所述更新的映射表和所述第二数据的构件。
本申请的另一方面还包括数据储存装置的操作方法,所述方法包括,发送要在数据储存装置的非易失性存储器处储存的第一数据;响应于发送要在非易失性存储器处储存的所述第一数据,产生更新的映射表;在产生所述更新的映射表之后,同时地发送要在所述非易失性存储器处储存的所述更新的映射表和第二数据;以及在非阻塞操作中储存所述产生的更新的映射表和所述第二数据。
本申请的另一方面还包括数据储存装置的操作方法,所述方法包括,向数据储存装置的命令队列提供存储器命令的第一集合和阻挡命令;响应于所述存储器命令的第一集合的执行,从所述数据储存装置的一个或多个存储器裸芯接收一个或多个消息;以及响应于所述一个或多个消息的数量满足阈值,发送要在一个或多个存储器裸芯处储存的映射表数据,其中,所述阻挡命令的执行触发了在执行所述存储器命令的第一集合之后发送要在所述一个或多个存储器裸芯处储存的映射表数据。
本申请的另一方面还包括设备,包括,用于储存存储器命令的第一集合和阻挡命令的构件;用于响应于执行所述存储器命令的第一集合和所述阻挡命令而从所述一个或多个存储器裸芯接收一个或多个消息的构件;以及用于检测所述一个或多个消息的数量满足阈值,并且用于响应于检测所述一个或多个消息的数量满足所述阈值而起始发送要在所述一个或多个存储器裸芯处储存的所述映射表数据的构件。
附图说明
图1是包含数据储存装置的系统的第一说明性示例的图,该数据储存装置配置为进行非阻塞控制同步操作。
图2描绘了可以在图1的数据储存装置处进行的编程过程的说明性示例。
图3描绘了可以在图1的数据储存装置处进行的编程过程的另一个说明性示例。
图4是包含数据储存装置的系统的第二说明性示例的图,该数据储存装置配置为进行非阻塞控制同步操作。
图5描绘了可以由图4的数据储存装置进行的操作的集合。
图6是描绘了图4的数据储存装置的示例的某些说明性方面的图。
图7是可以在图4的数据储存装置中包含的装置的图。
图8是图7的装置的说明性方面的图。
图9是描绘了图4的数据储存装置的示例的附加说明性方面的图。
图10是示出了可以由图4的数据储存装置进行的某些操作的图。
图11是图1的数据储存装置的操作的方法的特定说明性示例的流程图。
图12是图4的数据储存装置的操作的方法的特定说明性示例的流程图。
具体实施方式
根据本公开的方面的数据储存装置配置为使用一个或多个技术来使能非阻塞控制同步(CS)操作。在非阻塞CS操作中,控制信息(例如,映射表)可以与其它数据同时地写入到非易失性存储器。
在第一技术的示例中,数据储存装置配置为包含已经“安全地”写入到非易失性存储器的数据的映射表中的指示。随后写入到非易失性存储器的数据可以被指示为是“易受攻击的”数据。作为说明性示例,在可能危害“易受攻击的”数据的断电事件的事件中,诸如通过通知主机装置该数据可能是不可靠的,控制器可以使用指示来识别易受攻击的数据并且来进行一个或多个补救操作。
替代地或者除了第一技术之外,在第二技术的示例中,数据储存装置配置为基于阻挡命令来起始非阻塞CS操作。例如,数据储存装置的控制器可以向数据储存装置的一个或多个存储器裸芯提供阻挡命令,并且当一个或多个存储器裸芯已经完成执行存储器命令的第一集合时,该一个或多个存储器裸芯的每一个可以都向控制器提供通知。响应于接收特定数量的一个或多个消息,控制器可以起始非阻塞CS操作以向非易失性存储器写入控制信息。在这种情况下,阻挡命令可以使控制器能够是“确定”控制信息精确地表示了非易失性存储器的状态(由于阻挡命令的执行确保了在CS操作的起始之前完成操作的第一集合)。以下参考附图来描述本公开的其它特定方面。
在说明书中,公共或相似的特征可以通过公共的附图标记来指定。如本文所使用的,“示例性”可以指示示例、实现方式和/或方面,并且应该不被解释为限制或者指示优先实现方式的偏好。
参考图1,描绘了系统的特定说明性示例并且被总体指定为100。系统100包含数据储存装置102和装置108(例如,主机装置或存取装置)。数据储存装置102包含非易失性存储器104和控制器130。控制器130耦接于非易失性存储器104。
非易失性存储器104包含储存元件的非易失性阵列,该储存元件包含在一个或多个存储器裸芯中,诸如第一存储器裸芯106和第二存储器裸芯108。为了进一步说明,作为说明性示例,非易失性存储器104可以包含快闪存储器(例如,NAND快闪存储器)或者电阻性存储器,诸如电阻性随机存取存储器(ReRAM)。非易失性存储器104可以具有三维(3D)存储器配置。如本文所使用的,3D存储器装置可以包含储存元件的多个物理级(代替如在平面存储器装置中具有储存元件的单个物理级)。作为示例,非易失性存储器104可以具有3D垂直位线(VBL)配置。在特定实现方式中,非易失性存储器104具有3D存储器阵列配置,该3D存储器阵列配置单片地形成在存储器单元的阵列的具有设置在硅衬底之上的有源区的一个或多个物理级中。替代地,非易失性存储器104可以具有另一个配置,诸如二维(2D)存储器配置或者非单片3D存储器配置(例如,堆叠的裸芯3D存储器配置)。
非易失性存储器104包含储存元件的一个或多个区域。储存区域的示例是区块,诸如储存元件的NAND快闪擦除组,或者ReRAM实现方式中的基于电阻的储存元件的组。储存区域的另一个示例是储存元件的字线(例如,NAND快闪储存元件的字线或者基于电阻的储存元件的字线)。作为说明性示例,储存区域可以具有单级单元(SLC)配置、多级单元(MLC)配置、或者三级单元(TLC)配置。非易失性存储器104的每个储存元件可以编程到指示一个或多个值的状态(例如,快闪配置中的阈值电压或者电阻性存储器配置中的电阻态)。作为示例,在说明性TLC方案中,储存元件可以编程到指示三个值的状态。作为附加的示例,在说明性MLC方案中,储存元件可以编程到指示两个值的状态。
控制器130包含到非易失性存储器104的存储器接口132,并且还包含到装置108的装置接口172(例如,主机接口)。控制器130还可以包含快闪存储器转换层(FTL)138、控制电路140、数据队列142、易失性存储器144以及上电检测器146。作为说明性示例,易失性存储器144可以包含随机存取存储器(RAM)。
在操作期间,控制器130可以从装置180接收数据174,诸如与对非易失性存储器104的写入存取的请求相联系。控制器130可以基于数据174进行一个或多个操作以产生第一数据120,诸如通过编码数据174以产生第一数据120。在一些实现方式(例如,快闪存储器的实现方式)中,控制器130的FTL 138配置为进行逻辑到物理地址转换,以将与数据174相关联的逻辑地址转换到与第一数据120相关联的物理地址。控制器130可以配置为在数据队列142处储存(例如,缓冲或“列队”)数据174。
存储器接口132配置为向非易失性存储器104发送第一数据120。例如,控制器130可以从数据队列142取回第一数据120,并且可以向存储器接口132提供第一数据120,以将其发送到非易失性存储器104。非易失性存储器104可以将第一数据120储存到非易失性存储器104的特定区域(例如,通过将第一数据120写入到第一存储器裸芯106、写入到第二存储器裸芯108、写入到一个或多个其它存储器裸芯或者其组合)。
易失性存储器144配置为储存控制信息184。为了说明,控制信息184可以包含映射表186,并且响应于将第一数据120储存到非易失性存储器104,控制器130可以更新映射表186,诸如通过更新映射表186以指示非易失性存储器104储存了第一数据120。例如,控制电路140配置为基于将第一数据120储存到非易失性存储器104来更新控制信息184,以产生更新的控制信息124(例如,与映射表186的更新版本相对应的更新的映射表)。
控制电路140可以配置为产生指示126,并且将指示126包含在更新的控制信息124中。指示126可以指定由非易失性存储器104所储存的数据,该数据已经“安全地”写入到非易失性存储器104。例如,指示126可以指定第一数据120(以及在第一数据120之前写入到非易失性存储器104的其它数据)对应于“安全的”(或可靠的)数据。指示126可以使用与第一数据120相关联的逻辑地址、与第一数据120相关联的物理地址、其它信息或者其组合来指定第一数据120。替代地或者附加地,指示126可以指定诸如时间戳的“安全点”(或者“同步点”),其中在该安全点之前被写入到非易失性存储器104的数据对应于安全的数据,并且其中在安全点之后被写入到非易失性存储器104的数据对应于易受攻击的数据。
控制器130可以向非易失性存储器104发送更新的控制信息124(例如,以“备份”更新的控制信息124的副本),以使能更新的控制信息124的取回(例如,以在数据储存装置102处的功率周期之后使能更新的控制信息124的恢复)。与非阻塞控制同步(SC)操作(本文还称为控制更新操作或控制编程操作)相联系,更新的控制信息124可以被发送到非易失性存储器104。
根据本公开的方面,控制器130配置将更新的控制信息124和要在非易失性存储器104处储存的其它数据同时地发送到非易失性存储器104(例如,没有“阻塞”到非易失性存储器104的存取以及由非易失性存储器104所进行的其它过程)。在说明性示例中,存储器接口132配置为同时地发送要在非易失性存储器104处储存的第二数据122和更新的控制信息124。数据队列142可以配置为储存要被写入到非易失性存储器104的第二数据122。在特定示例中,控制器130可以配置为从数据队列142存取第二数据122,并且从易失性存储器144存取更新的控制信息124,并且配置为向存储器接口132同时提供第二数据122和更新的控制信息124。在说明性示例中,存储器接口132配置为向第一存储器裸芯106和第二存储器裸芯108中的一个发送第二数据122,并且同时地向第一存储器裸芯106和第二存储器裸芯108中的另一个发送更新的控制信息124。
如本文所使用的,“同时地”发送第二数据122和更新的控制信息124可以是指使用至少一个公共的时钟周期、至少一个公共的分组、或者另一个公共的技术来发送第二数据122和更新的控制信息124。为了说明,如果在公共的时钟周期期间或者使用公共的分组来发送第二数据122的至少部分和更新的控制信息124的至少部分,则第二数据122和更新的控制信息124可以是同时发送的。在一些情况下,存储器接口132可以包含耦接到非易失性存储器104的多通道总线,并且第二数据122和更新的控制信息124可以使用多通道总线来同时发送到非易失性存储器104。
非易失性存储器104配置为以非阻塞的形式储存第二数据122和更新的控制信息124。例如,非易失性存储器104可以进行非阻塞CS操作,该非阻塞CS操作将更新的控制信息124写入到非易失性存储器104而不“阻塞”第二数据122的写入。
在写入更新的控制信息124之后被写入到非易失性存储器104的数据可以对应于易受攻击的数据。为了说明,存储器接口132可以配置为在发送更新的控制信息124之后,向非易失性存储器104发送第三数据123。指示126可以指定第三数据123对应于易受攻击的数据。例如,如果断电时间发生在向非易失性存储器104写入更新的控制信息124期间或之后,并且在基于第三数据123的写入来重新更新控制信息184之前,则控制器130可能不能够确定第三数据123是否已经被成功编程(例如,导致“丢失”数据)。相应地,第三数据123可以对应于“易受攻击的”数据。
取决于特定的实现方式,与写入更新的控制信息124同时被写入到非易失性存储器104的数据可以对应于“安全的”数据或者对应于“易受攻击的”数据。在说明性示例中,控制电路140配置为在产生更新的控制信息124的期间存取在数据队列142中的第二数据122。在该示例中,控制电路140可以配置为使得指示126指定第二数据122对应于安全的数据(因为第二数据122将与更新的控制信息124同时被编程)。在其它实现方式中,第二数据122可以对应于易受攻击的数据。
为了进一步说明,上电检测器146可以配置为检测在数据储存装置102处的在向非易失性存储器104写入第二数据122和更新的控制信息124之后发生的上电事件。控制器130可以配置为响应于上电事件,使用更新的控制信息124(例如,使用指示126)来进行扫描操作,以识别第三数据123。
在隐含技术(implicit technique)的特定示例中,指示126可以隐含地指定第三数据123是易受攻击的。例如,指示126可以指示第一数据120在产生更新的控制信息124之前被储存到非易失性存储器104,以及在第一数据120之后储存的数据是易受攻击的。控制器130可以从非易失性存储器104读取第一数据120,以确定与第一数据120相关联的特定时间戳,并且可以扫描非易失性存储器104以找寻指示在与第一数据120相关联的特定时间戳之后的时间戳的数据(例如,第三数据123)。
取决于特定实现方式,响应于检测易受攻击的数据——诸如,第二数据122,数据储存装置102可以进行一个或多个操作。作为说明性示例,数据储存装置102可以通知装置180:由于数据储存装置102处的断电事件,第二数据122是易受攻击的。
数据储存装置102处的操作可以以一个或多个存储器操作继续。例如,数据储存装置102可以进行写入操作,以向非易失性存储器104写入第四数据。数据储存装置102可以基于编程第四数据来更新控制信息184以产生控制信息184的第三版本,并且数据储存装置102可以同时发送要在非易失性存储器104处储存的控制信息184的第三版本和第五数据。控制信息184的第三版本可以指定第四数据(或者第四数据和第五数据)对应于安全的数据。
参考图1描述的一个或多个方面可以改善数据储存装置102处的性能。例如,诸如通过向非易失性存储器104同时写入第二数据122和更新的控制信息124,数据储存装置102可以进行CS操作而不“阻塞”在非阻塞CS操作期间的对非易失性存储器104的其它存储器存取以及由非易失性存储器104所进行的过程。因此,与在储存更新的控制信息的同时“阻塞”存储器存取操作的装置相比较,可以改善吞吐量。
参考图2,描绘了编程过程的特定说明性示例并且被总体指定为200。编程过程200可以由图1的数据储存装置102进行。例如,可以使用图1的第一存储器裸芯106和第二存储器裸芯108来进行编程过程200。图2还描绘了可以使用第三存储器裸芯202和第四存储器裸芯204来进行编程过程200。第三存储器裸芯202和第四存储器裸芯204可以包含在图1的非易失性存储器104中。
图2描绘了在210处,数据编程操作的第一集合。例如,数据可以被编程到存储器裸芯106、108、202和204的一个或多个。数据可以包含图1的第一数据120,作为说明性示例。
在220处,编程过程200还包含同时进行控制编程操作222和一个或多个数据编程操作。例如,图2描绘了可以在第一存储器裸芯106、第二存储器裸芯108和第四存储器裸芯204处进行数据编程操作。数据可以包含图1的第二数据122,作为说明性示例。图2还描绘了第三存储器裸芯202可以进行控制编程操作222。例如,进行控制编程操作222可以包含与写入图1的第二数据122同时地将图1的更新的控制信息124编程到第三存储器裸芯202。
图2还示出了在230处,可以进行一个或多个数据编程操作的第三集合。为了说明,第一存储器裸芯106、第二存储器裸芯108和第三存储器裸芯202可以进行数据编程操作。在说明性示例中,在控制编程操作222之前被编程的数据可以对应于安全的数据。例如,在210处被编程的数据对应于安全的数据,并且图1的指示126可以指定在210处被编程的数据对应于安全的数据。同时被编程或者在控制编程操作222之后被编程的数据可以对应于易受攻击的数据。例如,在230处被编程的数据对应于易受攻击的数据,并且图1的指示126可以指定在230处被编程的数据对应于易受攻击的数据。取决于特定实现方式,与控制编程操作222同时被编程的数据可以包含安全的数据或者易受攻击的数据。例如,在220处被编程的数据对应于安全的数据或者易受攻击的数据,并且图1的指示126可以指定在220处被编程的数据对应于安全的数据或者易受攻击的数据。
参考图2描述的一个或多个方面可以改善数据储存装置(诸如图1的数据储存装置102)处的性能。例如,通过同时进行控制编程操作222和一个或多个数据编程操作,与在储存更新的控制信息的同时“阻塞”数据写入操作的装置相比较,改善了吞吐量。
参考图3,描绘了编程过程的另一特定说明性示例,并且被总体指定为300。编程过程300描绘了与主机数据区块302和控制数据区块304相关联的操作。例如,主机数据区块302可以对应于非易失性存储器104的区域(例如,物理区域、逻辑区域或者虚拟区域),并且控制数据区块304可以对应于非易失性存储器104的另一个区域(例如,物理区域、逻辑区域或者虚拟区域)。
在310处,编程过程300可以包含进行第一控制更新。第一控制更新可以包含将更新的控制信息124储存到图1的非易失性存储器104。控制更新可以对应于图2的控制更新操作222。更新的控制信息124可以包含指示126,并且指示126可以指定在进行第一控制更新之前被编程的数据包含安全的数据312。指示126还可以指定在进行第一控制更新之后被编程的数据可以包含易受攻击的数据314。
在320处,编程过程300还包含进行第二控制更新。第二控制更新可以包含将图1的控制信息184的重新更新的版本储存到图1的非易失性存储器104。通过重新更新控制信息184,重新更新的控制信息可以包含指示,其指示在重新更新控制信息184之前被编程到非易失性存储器104的数据对应于安全的数据。例如,易受攻击的数据314可以重新分类为安全的数据。另外,在第二控制更新之后被编程的数据可以指示为易受攻击的。例如,在第二控制更新之后被编程的数据324可以指示为易受攻击的。
图3示出了控制更新操作可以用于指示安全的数据、易受攻击的数据或两者。控制更新操作可以“重新分类”先前被指示为易受攻击的数据。
参考图4,描绘和总体地指定了系统的特定说明性示例400。系统400包含数据储存装置402和装置480(例如,主机装置或存取装置)。数据储存装置402包含非易失性存储器404和控制器430。控制器430耦接到非易失性存储器404。
非易失性存储器404包含储存元件的非易失性阵列,该储存元件包含在一个或多个存储器裸芯(诸如第一存储器裸芯406和第二存储器裸芯408)中。在说明性示例中,第一存储器裸芯406和第二存储器裸芯408对应于图1的第一存储器裸芯106和第二存储器裸芯108。
控制器430包含到非易失性存储器404的存储器接口432,并且还包含到装置408的装置接口472(例如,主机接口)。控制器430还可以包含快闪存储器转换层(FTL)438、控制电路440、命令队列442、易失性存储器444以及计数器446。作为说明性示例,易失性存储器444可以包含随机存取存储器(RAM)。
在操作期间,控制器430可以从装置480接收数据474,诸如与对非易失性存储器404的写入存取的请求相联系。控制器430可以基于数据474进行一个或多个操作以产生第一数据422,诸如通过编码数据474以产生第一数据422。在一些实现方式(例如,快闪存储器的实现方式)中,控制器430的FTL 438配置为进行逻辑到物理地址转换,以将与数据474相关联的逻辑地址转换到与第一数据422相关联的物理地址。
为了起始将第一数据422储存到非易失性存储器404,控制器430配置为在命令队列442处列队一个或多个存储器命令。例如,控制器430可以配置为在命令队列442处列队存储器命令的第一集合452,以起始在非易失性存储器104处的第一数据422的储存。取决于特定示例,存储器命令的第一集合452可以以非易失性存储器404的一个或多个存储器裸芯为目标,诸如第一存储器裸芯406、第二存储器裸芯408、一个或多个其它存储器裸芯、或者其组合。
易失性存储器444配置为储存控制信息484。为了说明,控制信息484可以包含映射表486,并且响应于将数据储存到非易失性存储器404,控制器430可以更新映射表486以产生更新的映射表428,诸如通过更新映射表486以指示非易失性存储器404储存第一数据422。控制电路440可以配置为基于将第一数据422储存到非易失性存储器404来产生更新的控制信息424。
为了保持更新的控制信息424的完整性(例如,在数据储存装置402处的功率周期之后),控制器430可以向非易失性存储器404发送更新的控制信息424(例如,以“备份”更新的控制信息424的副本)。与非阻塞控制同步(SC)操作(本文还称为控制更新操作)相联系,更新的控制信息424可以被发送到非易失性存储器404。
根据本公开的方面,控制器430可以配置为在存储器命令的第一集合452之后,向命令队列420提供阻挡命令454。阻挡命令454可以使存储器命令的第一集合452能够在发送要在一个或多个存储器裸芯处储存的更新的控制信息424之前执行。例如,如果控制器430向存储器裸芯406、408两者发布阻挡命令454,则控制器430可以在由存储器裸芯406、408执行阻挡命令454时从存储器裸芯406、408接收完成确认(ACK)。在这种情况下,完成ACK可以指示存储器裸芯406、408已经执行存储器命令的第一集合452。因此,响应于确定(基于完成ACK)存储器命令的第一集合452已经完成(并且更新的控制信息424精确地表示了非易失性存储器404的状态),控制器430可以储存更新的控制信息424。在说明性示例中,存储器裸芯406和408配置为紧接在执行阻挡命令454之后,几乎没有延迟或没有延迟地继续处理来自命令队列442的命令。在该示例中,控制同步操作是非阻塞操作。
为了进一步说明,通过向非易失性存储器404提供存储器命令的第一集合452,控制器430可以起始存储器命令的第一集合452的执行。在向非易失性存储器404提供存储器命令的第一集合452后,控制器430可以向非易失性存储器404提供阻挡命令454。存储器命令的第一集合452的存储器命令可以提供给第一存储器裸芯406、第二存储器裸芯408、非易失性存储器404的一个或多个其它存储器裸芯或其组合。
在执行存储器命令的第一集合452的一个或多个存储器命令时,非易失性存储器404的存储器裸芯可以执行阻挡命令454。响应于执行阻挡命令454,非易失性存储器404的存储器裸芯可以向控制器430提供消息(例如,完成ACK)。为了说明,图4描绘了控制器430可以从非易失性存储器404接收一个或多个消息426。一个或多个消息426与阻挡命令454相关联,并且可以包含来自存储器裸芯406、408中的一个或多个的完成ACK。例如,响应于第一存储器裸芯406执行阻挡命令454,第一存储器裸芯406可以向控制器430提供一个或多个消息426的第一消息。作为另一个示例,响应于第二存储器裸芯408执行阻挡命令454,第二存储器裸芯408可以向控制器430提供一个或多个消息426的第二消息。
控制器430可以配置为响应于接收一个或多个消息426中的每一个而调整由计数器446所指示的值450。取决于特定示例,控制器430可以同时地或者顺序地接收一个或多个消息426。作为说明性示例,控制器430可以基于存储器裸芯406、608的不同工作负载和写入速度来顺序地接收一个或多个消息426。
控制器430配置为确定是否满足与阻挡命令454相关联的条件,诸如一个或多个消息426的数量是否满足阈值448。在说明性示例中,阈值448对应于非易失性存储器104的执行阻挡命令454的存储器裸芯的数量。在该示例中,阈值448可以对应于要从非易失性存储器404接收的“预期”完成ACK的数量(基于非易失性存储器404的接收阻挡命令454的存储器裸芯的数量)。控制器430可以使用值450来监控接收的完成ACK的数量(例如,通过响应于每个接收的完成ACK来递增值450)。
控制器430可以配置为将值450与阈值448比较,以确定数量是否满足(例如,大于或者大于或等于)阈值448。作为说明性示例,控制电路440可以包含耦接于计数器446的比较器电路。比较器电路430可以配置为将值450与阈值448比较,以确定数量是否满足阈值448。
如果数量不能满足阈值448,则控制器430可以确定条件未满足。因此,控制器430可以等待,以接收一个或多个消息426的至少一个其它消息。作为说明性示例,如果阻挡命令454被提供给存储器裸芯406、408两者,则阈值448可以对应于2,并且等于零或等于1的数量不能满足阈值448。
替代地,如果一个或多个消息426的数量满足阈值448,则控制器430可以确定满足了与阻挡命令454相关联的条件。为了说明,如果阻挡命令454被提供给存储器裸芯406、408两者,则阈值448可以对应于2,并且等于2的数量满足阈值448。在该示例中,控制器430可以确定已经执行了存储器命令452的每个第一集合,并且更新的控制信息424精确地反映了非易失性存储器404的状态(由于存储器命令的第一集合452的执行)。在这种情况下,控制器430配置为响应于一个或多个消息426的数量满足阈值448,发送要在非易失性存储器404处储存的更新的控制信息424。
阻挡命令454可以称为“控制同步标记”。阻挡命令454接着存储器命令的第一集合452,并且完成阻挡命令的执行确保了在写入更新的控制信息424之前执行存储器命令的第一集合452。存储器命令的第二集合456可以与阻挡命令454并行地提供给非易失性存储器404(例如,使得CS操作的执行不“阻塞”到非易失性存储器404的写入命令)。
与图4的示例相联系,CS操作由数据储存装置402以非阻塞的方式进行。例如,可以与向非易失性存储器404发送更新的控制信息424同时地进行一个或多个存储器存取操作。为了进一步说明,在一些实现方式中,诸如通过使用可以包含在存储器接口432中的多通道总线,存储器命令的第二集合456的一个或多个存储器命令可以与更新的控制信息424的发送同时地发送到非易失性存储器404。
参考图4描述的一个或多个方面可以改善数据储存装置402处的性能。例如,数据储存装置402配置为在非阻塞CS操作期间进行CS操作而不“阻塞”其它存储器存取操作。因此,与在储存更新的控制信息的同时“阻塞”存储器存取操作的装置相比较,可以改善吞吐量。
参考图5,描绘了操作的集合的说明性方面并且被总体地指定为500。操作的集合500可以在图4的数据储存装置402处进行,作为说明性示例。
在502处,操作的集合500可以包含检测触发事件。触发事件可以对应于指示控制信息484将要更新并且储存在非易失性存储器404处的条件。例如,触发条件可以对应于非易失性存储器404处的操作的特定数量、从先前更新和储存控制信息484起的阈值时间持续时间、一个或多个其它条件或者其组合。
在504处,操作的集合500还包含发送阻挡命令。例如,控制器430可以向非易失性存储器404发送阻挡命令454。
在506处,操作的集合500还包含写入日志。例如,日志可以包含更新的控制信息424,并且该日志可以写入到非易失性存储器404。响应于确定一个或多个消息426的数量满足阈值448,日志可以写入到非易失性存储器404。
在508处,操作的集合500还包含检测触发事件。例如,响应于进行非易失性存储器404处的操作的特定数量、从先前更新和储存控制信息484(例如,在506处)起的阈值时间持续时间、一个或多个其它条件、或者其组合,可以检测触发事件。
在510处,操作的集合500还包含发送阻挡命令。例如,诸如与重新更新控制信息484相联系,对应于阻挡命令454的另一个阻挡命令可以由控制器430提供到非易失性存储器404。
在512处,操作的集合500还包含写入日志。例如,可以基于在非易失性存储器404处进行的一个或多个存储器操作来重新更新控制信息484,并且重新更新的控制信息可以提供给非易失性存储器404。
图5的示例示出了可以与将日志写入存储器(诸如非易失性存储器404)相联系地使用阻挡命令(例如,阻挡命令454)。阻挡命令可以确保在阻挡命令之前执行先前的存储器命令并且在阻挡命令之后执行随后的存储器命令,维持日志与存储器命令的一致性。
图6描绘了图4的数据储存装置402的方面。在图6中,参考图4的FTL 438、第一处理器602和第二处理器604来描述操作。还参考命令队列606、命令队列608、命令队列610和命令队列612来描述操作。
在操作期间,处理器602、604可以响应于FTL 438。例如,FTL 438可以向处理器602、604提供指示,以产生阻挡命令(诸如阻挡命令454)。在图6的示例中,命令队列606、608、610和612中的每一个可以与非易失性存储器404的特定存储器裸芯相关联。作为说明性示例,命令队列606可以与存储器裸芯n(例如,第一存储器裸芯406)相关联,并且命令队列608可以与存储器裸芯n+1(例如,第二存储器裸芯408)相关联,其中n是正整数。命令队列610可以与存储器裸芯0相关联,并且命令队列612可以与存储器裸芯1相关联。
在执行命令期间,阻挡命令454可以通过命令队列606、608、610和612中的每一个进行传播(例如,通过响应于前述指令的执行而“在队列中向上移动”)。由于不同的裸芯特点——诸如不同的裸芯工作负载或者不同的裸芯写入速度,非易失性存储器404的某些存储器裸芯可以在非易失性存储器404的其它存储器裸芯之前到达阻挡命令454。例如在图6中,命令队列608可以在命令队列610指示了阻挡命令454为执行做好准备之前指示阻挡命令454为执行做好准备。
执行阻挡命令454的每个存储器裸芯可以向图4的控制器430提供一个或多个消息426的相应消息。为了说明,图6在614处描绘了对应于命令队列610的特定存储器裸芯可以发送特定消息,诸如裸芯阻挡响应。在特定示例中,在614处发送裸芯阻挡响应使得一个或多个消息426的数量满足阈值448。在该示例中,控制器430可以响应于从存储器裸芯n、n+1、0和1中的每一个接收裸芯阻挡响应,而起始将向非易失性存储器404发送更新的控制信息424。在该说明性示例中,阈值448可以对应于四。由于一个或多个消息426的数量满足阈值448,控制器430可以检测更新的控制信息424将被发送到非易失性存储器404,维持更新的控制信息424相对于在非易失性存储器404处所进行的存储器操作的一致性。
参考图7,描绘了装置的说明性方面并且被总体地指定为700。图7的装置的一个或多个方面700可以在图4的控制器430内集成。例如,图7描绘了图4的FTL 438和图6的第一处理器602。
在图7中,多个队列在FTL 438和处理器602之间耦接。例如,图7描绘了队列702、队列704、队列706、队列706和队列708可以在FTL 438和处理器602之间耦接。
图7的示例示出了与不同数量的消息相关联的多个阻挡命令。为了说明,图7的示例描绘了与零的第一阻挡标识(“BarrierID”)相关联的第一阻挡命令。第一阻挡命令与一个或多个消息的第一数量(“numReqs”)相关联,该第一数量等于四(例如,因为第一阻挡命令可以提供给图7的示例中的四个存储器裸芯)。作为另一个示例,图7还描绘了第二阻挡命令,该第二阻挡命令与2的第二阻挡ID相关联并且与一个或多个消息的第二数量相关联,该第二数量等于2(例如,因为第二阻挡命令可以提供给图7的示例中的两个存储器裸芯)。
图7的阻挡命令中的任一个可以对应于图4的阻挡命令454,并且参考图7所描述的消息的数量中的任一个可以对应于图4的阈值448。队列702、704、706和708中的每一个可以与非易失性存储器404的对应裸芯相关联。
图7的示例示出了可以使用多个阻挡消息,其中阻挡消息中的每一个与对应的标识(barrierID)和对应的消息数量(numReqs)相关联。因此,图4的控制器430可以同时地调度多个操作,该多个操作使用阻挡完成并且包含一个或多个CS操作。取决于特定示例,多个操作可以包含一个或多个刷新操作、取决于先前操作的完成的一个或多个相关的控制操作、一个或多个其它操作、或者其组合。
参考图8,描绘了图7的装置700的说明性方面并且被总体上指定为800。图8的装置800可以包含在图4的数据储存装置402中。
在图8的示例中,第一处理器602包含阻挡模块806和阻挡计数器(BC)808。在特定示例中,阻挡模块806对应于控制电路440,并且BC 808对应于图4的计数器446。
在图8的示例中,第一处理器602还包含第一裸芯管理器810、第二裸芯管理器812和第三裸芯管理器814。裸芯管理器810、812和814中的每一个可以与非易失性存储器404的对应存储器裸芯相关联。作为说明性示例,第一裸芯管理器810可以管理在第一存储器裸芯406处所进行的存储器操作,并且第二裸芯管理器812可以控制在图4的第二存储器裸芯408处的存储器操作。
在图8的示例中,裸芯管理器810、812和814可以配置为从非易失性存储器404的存储器裸芯接收消息。为了说明,第一裸芯管理器810可以配置为从第一存储器裸芯406接收一个或多个消息426的第一消息,并且第二裸芯管理器812可以配置为从第二存储器裸芯408接收一个或多个消息426的第二消息。裸芯管理器810、812和814中的每一个可以配置为递增BC808,并且阻挡模块806可以配置为检测由BC 808所指示的值(例如,计数器446的值450)何时满足阈值448。
图9描绘了图4的数据储存装置402的方面。在图9中,参考图4的FTL 438和队列的集合(诸如命令队列606、608、610和612)来描述操作。图9还示出了队列的集合还可以包含队列902、队列904和队列906。
图9的队列的集合可以具有分层配置。例如,队列606、608、610和612可以对应于层级的“较低”级,并且队列902、904可以对应于层级的“较高”级。每个“较高”级队列可以连接到多个“较低”级队列。例如,队列902连接到队列606、608。作为附加示例,队列904连接到队列606、608,并且队列906连接到队列610、612。
在图9的示例中,FTL 438可以向队列的集合中的一个或多个队列发送阻挡命令。被发送到“较高”级的阻挡命令可以传播到一个或多个“较低”队列。例如,图9示出了阻挡命令454可以从队列902传播到队列606、608。作为另一个示例,9描绘了阻挡命令454可以从队列904传播到队列606、608。响应于阻挡命令454中的每一个的执行,完成消息可以被转发到FTL438。
参考图10,描绘了示出数据储存装置的操作并且被总体指定为1000的图。在说明性示例中,操作1000可以由图4的数据储存装置402进行。在图10的示例中,参考非易失性存储器404、FTL 438和阻挡模块806来描述操作1000。
在1010处,操作1000包含产生预阻挡请求。例如,FTL 438可以通知阻挡模块806以FTL 438将向阻挡模块806提供阻挡命令。
在1012处,操作1000还包含产生阻挡请求。例如,阻挡请求可以对应于阻挡命令454。FTL 438可以向阻挡模块806提供阻挡请求。在一些实现方式中,阻挡模块806可以从FTL 438取回阻挡请求。在一些示例中,阻挡模块806可以向与阻挡请求相联系的阻挡模块806提供阻挡ID。例如,阻挡ID可以对应于参考图7所描述的阻挡ID中的任一个。
在1028处,操作1000还可以包含起始计数器。例如,响应于阻挡命令454的发布,可以重设计数器446的值450。
在1032处,操作1000还包含提供阻挡服务请求。作为说明性示例,阻挡服务请求可以由阻挡模块806提供到非易失性存储器404,诸如提供到裸芯状态机,该裸芯状态机可以包含在第一存储器裸芯406或者第二存储器裸芯408中。
在1052处,操作1000还可以包含向阻挡模块806提供完成消息。在1064处,计数器可以递减,诸如通过递减计数器446的值450。在1072处,操作1000还可以包含发送完成消息(例如,到与图4的FTL 438相关联的FTL信箱)。例如,完成消息可以对应于图4的一个或多个消息426的特定消息。
参考图11,描绘了数据储存装置的操作的方法的说明性示例并且被总体地指定为1100。在说明性示例中,方法1100由图1的数据储存装置102进行。
在1102处,方法1100包含发送要在数据储存装置的非易失性存储器处储存的第一数据。例如,控制器130可以发送要在数据储存装置102的非易失性存储器104处储存的第一数据120。
在1104处,方法1100还包含响应于发送要在非易失性存储器处储存的第一数据而产生更新的映射表。例如,控制电路140可以配置为在易失性存储器144处存取控制信息184,并且更新映射表186,以产生更新的控制信息124。
在1106处,方法1100还包含在产生更新的映射表之后同时地发送要在非易失性存储器处储存的更新的映射表和第二数据。例如,控制器130可以向非易失性存储器104发送第二数据122和更新的控制信息124。
在1108处,方法1100还包含由非易失性存储器在非阻塞操作(例如,其中存储器裸芯未被暂停的非阻塞CS操作)中储存更新的映射表和第二数据。为了说明,非易失性存储器104可以在储存更新的控制信息124和第二数据122期间继续操作(例如,而不在向非易失性存储器104写入更新的控制信息124的CS操作期间“暂停”操作)。
参考图12,描绘了数据储存装置的操作的方法的说明性示例并且被总体地指定为1200。在说明性示例中,方法1200由图4的数据储存装置402进行。
在1202处,方法1200包含向数据储存装置的命令队列提供存储器命令的第一集合和阻挡命令。例如,存储器命令的第一集合452和阻挡命令454可以被提供给图4的命令队列442。
在1204处,方法1200还包含响应于存储器命令的第一集合的执行而从数据储存装置的一个或多个存储器裸芯接收一个或多个消息。例如,存储器裸芯406、408可以响应于执行阻挡命令454(并且在执行存储器命令的第一集合之后)而提供一个或多个消息426。
在1206处,方法1200还包含响应于一个或多个消息的数量满足阈值而发送要在一个或多个存储器裸芯处储存的映射表数据。阻挡命令的执行触发了在执行存储器命令的第一集合之后发送要在一个或多个存储器裸芯处储存的映射表数据。为了说明,控制器430可以响应于一个或多个消息426的数量满足阈值448,向非易失性存储器404发送更新的控制信息428。
方法1200还可以包含在非阻塞控制同步操作期间,由非易失性存储器的存储器裸芯进行对于写入到非易失性存储器的用户数据的连续处理。例如,非易失性存储器404可以在将映射表428储存到非易失性存储器404之后,进行一个或多个附加的非阻塞控制同步操作,诸如通过以非阻塞的方式向非易失性存储器404重新更新映射表428和重新储存映射表428,(例如,在进行用户数据的连续处理的同时,并且在不“阻塞”向非易失性存储器404写入用户数据的情况下,该用户数据被写入到非易失性存储器404)。
结合已描述的实施例,设备包含用于储存数据的构件(例如,非易失性存储器104)。该设备还包含用于响应于发送要在用于储存数据的构件处储存的第一数据而产生更新的映射表(例如,更新的控制信息124)的构件(例如,控制电路140)。设备还包含用于向用于储存数据的构件同时地发送更新的映射表和第二数据的构件(例如,存储器接口132)。
结合已描述的实施例,设备包含用于储存存储器命令的第一集合(例如,存储器命令的第一集合452)和阻挡命令(例如,阻挡命令454)的构件(例如,命令队列442)。设备还包含用于响应于存储器命令的第一集合的执行而从一个或多个存储器裸芯(例如,第一存储器裸芯406、第二存储器裸芯408、一个或多个其它存储器裸芯以及其组合)接收一个或多个消息(例如,一个或多个消息426)的构件(例如,存储器接口432)。设备还包含构件(例如,控制电路440),该构件用于检测一个或多个消息的数量满足阈值(例如,阈值448)并且用于响应于检测一个或多个消息的数量满足阈值而起始发送要在一个或多个存储器裸芯处储存的映射表数据(例如,更新的映射表428)。设备还可以包含用于储存一个或多个消息的数量的指示(例如,值450)的构件(例如,计数器446)。
尽管在本文中所描绘的各种组件被示出为区块组件并且以总体的术语进行描述,但是这样的组件可以包含一个或多个微处理器、状态机、或者配置为使得这样的组件能够进行本文所描述的一个或多个操作的其它电路。例如,控制器130、430的一个或多个方面可以表示物理组件——诸如硬件控制器、状态机、逻辑电路、或者其它结构,以使得控制器130、430能够进行非阻塞CS操作。
替代地或者附加地,可以使用微处理器或者微控制器来实现数据储存装置102的某些方面。在特定实施例中,可以使用处理器(例如,固件)来实现控制器130、430的一个或多个方面,该处理器执行储存在非易失性存储器104、404处的指令。替代地或者附加地,由处理器执行的可执行指令可以储存在分开的不是非易失性存储器104、404的一部分的存储器位置处,诸如在可以包含在控制器130、430中的只读存储器(ROM)处。
数据储存装置102、402可以耦接到、附接到一个或多个存取装置或者嵌入到一个或多个存取装置内,诸如在装置180的外壳内。例如,根据联合电子装置工程委员会(JEDEC)固态技术协会通用快闪储存(UFS)配置,数据储存装置102、402可以嵌入在装置180、480内。为了进一步说明,数据储存装置102可以集成在电子装置(例如,装置180或者装置480)内,该电子装置诸如移动电话、计算机(例如膝上型计算机、平板计算机或笔记本型计算机)、音乐播放器、视频播放器、游戏装置或控制台、电子书阅读器、个人数字助理(PDA)、便携式导航装置或者使用内部非易失性存储器的其它装置。
在一个或多个其它实现方式中,数据储存装置102、402可以实现在配置为可选择地耦接到一个或多个外部装置的便携式装置(诸如,主机装置)中。例如,数据储存装置102、402可以是从装置180、480可移除的(即,“可移除地”耦接到装置180、480)。作为示例,数据储存装置102、402可以根据可移除通用串行总线(USB)配置,可移除地耦接到装置180、480。
装置180、480可以对应于移动电话、计算机(例如膝上型计算机、平板计算机或笔记本型计算机)、音乐播放器、视频播放器、游戏装置或控制台、电子书阅读器、个人数字助理(PDA)、便携式导航装置、其它电子装置或其组合。装置180、480可以经由控制器通信,其可以使得装置180、480能够与数据储存装置102、402通信。装置180、480可以按照JEDEC固态技术协会行业规范(诸如嵌入式多媒体卡(eMMC)规范或通用快闪储存(UFS)主机控制器接口规范)来操作。作为说明性示例,装置180、480可以按照诸如安全数字(SD)主机控制器规范的一个或多个其它规范来操作。替代地,装置180、480可以根据另一个通信协议与数据储存装置102、402通信。在一些实现方式中,作为说明性示例,数据储存装置102、402可以在网络可存取数据储存系统(例如企业数据系统、NAS系统或云数据储存系统)内集成。
在一些实现方式中,数据储存装置102、402中的一个或两个可以包含固态驱动器(SSD)。数据储存装置102、402中的一个或两个可以起到嵌入式储存驱动器(例如,移动装置的嵌入式SSD驱动器)、企业储存驱动器(ESD)、云储存装置、网络附接储存(NAS)装置或客户端储存装置的作用,作为说明性的非限制性实例。在一些实现方式中,数据储存装置102、402中的一个或两个可以经由网络来耦接到装置180、480。例如,网络可以包含数据中心储存系统网络、企业储存系统网络、储存区域网络、云储存系统网络、局域网(LAN)、广域网(WAN)、因特网和/或其它网络。
为了进一步说明,作为说明性实例,数据储存装置102、402中的一个或两个可以配置为作为嵌入式存储器耦接到装置180、480,诸如与嵌入的多媒体卡(商标为JEDEC Solid State Technology Association,Arlington,Virginia)配置相联系,作为说明性示例。数据储存装置102、402中的一个或两个可以对应于eMMC装置。作为另一个示例,数据储存装置102、402中的一个或两个可以对应于存储器卡,诸如安全数字卡、卡、miniSDTM卡(商标为SD-3C LLC,Wilmington,
Delaware)、MultiMediaCard TM(MMCTM)卡(商标为JEDEC Solid StateTechnology Association,Arlington,Virginia)或(CF)卡(商标为SanDisk Corporation,Milpitas,California)。数据储存装置102、402中的一个或两个可以按照JEDEC工业规范来操作。例如,数据储存装置102、402可以按照JEDEC eMMC规范、JEDEC通用快闪储存(UFS)规范、一个或多个规范或其组合进行操作。
非易失性存储器104、404可以包含电阻式随机存取存储器(ReRAM)、快闪存储器(例如NAND存储器、NOR存储器、单级单元(SLC)快闪存储器、多级单元(MLC)快闪存储器、分位NOR(DINOR)存储器AND、AND存储器、高电容耦接比(HiCR)装置、非对称非接触晶体管(ACT)装置、或者另一个快闪存储器)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、只读存储器(ROM)、一次可编程存储器(OTP)、另一个类型的存储器或其组合。非易失性存储器404、404可以包含半导体存储器装置。
半导体存储器装置包含易失性存储器装置(诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置)、非易失性存储器装置(诸如电阻性随机存取存储器(“ReRAM”)、磁阻随机存取存储器(“MRAM”)、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器(其也可以被认为是EEPROM的子集)、铁电随机存取存储器(“FRAM"))、以及其它能够存储消息的半导体元件。每种类型的存储器装置可以具有不同的配置。例如,快闪存储器装置可以以NAND或NOR配置进行配置。
存储器装置可以由无源和/或有源元件以任何组合形成。通过非限制性的示例,无源半导体存储器元件包含ReRAM装置元件,在一些实施例中其包含电阻率转换储存元件(诸如反熔丝、相变材料等),并且可选择地包含导向元件(诸如二极管等)。进一步通过非限制性的示例,有源半导体存储器元件包含EEPROM和快闪存储器装置元件,一些实施例中其包含含有电荷区域的元件,诸如浮置栅极、导电纳米粒子、或电荷储存介电材料。
可以配置多个存储器元件,使得它们串联连接或者使得分别存取每个元件。作为非限制性的示例,NAND配置中的快闪存储器装置(NAND存储器)典型地含有串联连接的存储器元件。可以配置NAND存储器阵列,使得阵列由存储器的多个串组成,在存储器中串由共享单个位线的多个存储器元件构成并且成组地存取。替代地,可以配置存储器元件,使得每个元件单独地存取,例如,NOR存储器阵列。NAND和NOR存储器配置是示例性的,并且存储器元件可以以其它方式进行配置。
位于衬底内和/或衬底之上的半导体存储器元件可以以二维或三维的方式布置,诸如二维存储器结构或三维存储器结构。在二维存储器结构中,半导体存储器元件布置在单个平面或单个存储器装置级中。典型地,在二维存储器结构中,存储器元件被布置在实质上平行于支持存储器元件的衬底的主表面延伸的平面中(例如,在x-z方向的平面)。衬底可以是晶片,存储器元件的层形成在晶片上或晶片中,或者衬底可以是载体衬底,在形成存储器元件之后载体衬底被附接至存储器元件。作为非限制性的示例,衬底可以包含诸如硅的半导体。
存储器元件可以以有序阵列的方式(诸如以多个行和/或列的方式)布置在单个存储器装置级中。然而,存储器元件可以排列成非正规或非正交的配置。每个存储器元件可以具有两个或多个电极或者接触线,诸如位线和字线。
三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器装置级,从而形成三维中的结构(即在x、y和z方向,其中y方向垂直于衬底的主表面,且x方向和y方向实质上平行于衬底的主表面)。作为非限制性的示例,三维存储器结构可以被垂直地布置成多个二维存储器装置级的堆叠体。作为另一个非限制性的示例,三维存储器阵列可以被布置成多个垂直列(例如,列实质上垂直于衬底的主表面(即在y方向上)进行延伸),多个垂直列的每个列在每个列中具有多个存储器元件。列可以被布置在二维配置中(例如在x-z平面中),造成具有在多个垂直堆叠的存储器平面上的元件的存储器元件的三维布置。三维形式的存储器元件的其它配置还可以构成三维存储器阵列。
通过非限制性的示例,在三维NAND存储器阵列中,存储器元件可以被耦接在一起以形成在单个水平(例如,x-z)存储器装置级内的NAND串。替代地,存储器元件可以被耦接在一起以形成横穿多个水平存储器装置级的垂直的NAND串。可以设想其它的三维配置,其中一些NAND串在单个存储器级中含有存储器元件,而其它串含有跨越穿过多个存储器级的存储器元件。三维存储器阵列还可以以NOR配置和以ReRAM配置来设计。
典型地,在单片三维存储器阵列中,一个或多个存储器装置级形成在单个衬底的上方。可选地,单片三维存储器阵列还可以具有至少部分在单个衬底处的一个或多个存储器层。作为非限制性的示例,衬底可以包含诸如硅的半导体。在单片三维阵列中,构成阵列的每个存储器装置级的层典型地形成在阵列的下层的存储器装置级的层上。但是,单片三维存储器阵列的相邻的存储器装置级的层可以被共享或者具有在存储器装置级之间的中间层。
或者,二维阵列可以单独形成,然后封装在一起以形成具有存储器的多个层的非单片存储器装置。例如,可以通过在分开的衬底上形成存储器级并且然后在彼此顶部堆叠存储器级来构建非单片堆叠存储器。衬底在堆叠前可以变薄或者从存储器装置级移除,但是随着最初在分开的衬底上形成存储器装置级,得到的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片的或非单片的)可以在分开的芯片上形成,并且然后封装在一起,以形成堆叠芯片存储器装置。
存储器元件的操作以及与存储器元件的通信通常需要相关联的电路。作为非限制性的示例,存储器装置可以具有用于控制和驱动存储器元件以完成诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件在相同的衬底上和/或在分开的衬底上。例如,用于存储器读取-写入操作的控制器可以位于分开的控制器芯片上和/或在与存储器元件相同的衬底上。
本领域技术人员将认识到,本公开不限于所描述的二维和三维示例性结构,而是覆盖如本文所描述并如本领域技术人员所理解的在本公开的精神和范围内的所有相关存储器结构。本文所描述的实施例的图示旨在提供对各种实施例的总体理解。其它实施例可以被利用并从本公开导出,使得可以在不脱离本公开的范围的情况下进行结构上和逻辑上的替换和改变。本公开旨在覆盖各种实施例的任何和所有随后的修改或变化。本领域技术人员将认识到,这样的修改在本公开的范围内。
以上公开的主题将被认为是说明性的而不是限制性的,并且所附权利要求旨在覆盖落入本公开的范围内的所有这样的修改、增强和其它实施例。因此,在法律允许的最大范围内,本发明的范围由以下权利要求及其等同的最宽的可允许的解释来确定,并且不应被前述的详细描述所局限或限制。
Claims (14)
1.一种数据储存设备,包括:
非易失性存储器;以及
控制器,其耦接到所述非易失性存储器,所述控制器包含:
接口,配置为发送要被储存到所述非易失性存储器的第一数据;和
控制电路,配置为基于将所述第一数据储存到所述非易失性存储器来产生更新的控制信息;
其中所述接口还配置为同时地发送要在所述非易失性存储器处储存的第二数据和所述更新的控制信息,并且其中所述非易失性存储器配置为以非阻塞的形式储存所述第二数据和所述更新的控制信息。
2.如权利要求1所述的设备,其中所述更新的控制信息包含所述第一数据对应于安全的数据的指示。
3.如权利要求1所述的设备,还包括数据队列,所述数据队列配置为储存要被写入到所述非易失性存储器的所述第二数据,并且其中所述控制电路配置为在所述数据队列中存取所述第二数据,并且产生所述第二数据对应于安全的数据的指示。
4.如权利要求1所述的设备,其中所述接口还配置为在发送所述第二数据和所述更新的控制信息之后向所述非易失性存储器发送第三数据,其中所述更新的控制信息包含所述第三数据对应于易受攻击的数据的指示。
5.如权利要求1所述的设备,其中所述非易失性存储器包含至少第一存储器裸芯和第二存储器裸芯。
6.如权利要求5所述的设备,其中所述接口配置为向所述第一存储器裸芯和所述第二存储器裸芯中的一个发送所述第二数据,并且同时向所述第一存储器裸芯和所述第二存储器裸芯中的另一个发送所述更新的控制信息。
7.如权利要求1所述的设备,其中所述控制器还包含配置为检测上电事件的上电检测器。
8.如权利要求7所述的设备,其中所述控制器还配置为响应于所述上电事件而进行扫描操作,以使用所述更新的控制信息来识别所述第二数据。
9.一种数据储存设备,包括:
用于储存数据的构件;
用于响应于发送要在所述用于储存数据的构件处储存的第一数据而产生更新的映射表的构件;以及
用于向所述用于储存数据的构件同时地发送所述更新的映射表和第二数据的构件。
10.如权利要求9所述的设备,其中所述更新的映射表包含所述第一数据对应于安全的数据的指示。
11.一种数据储存装置的操作方法,所述方法包括:
发送要在数据储存装置的非易失性存储器处储存的第一数据;
响应于发送要在非易失性存储器处储存的所述第一数据,产生更新的映射表;
在产生所述更新的映射表之后,同时地发送要在所述非易失性存储器处储存的所述更新的映射表和第二数据;以及
在非阻塞操作中储存所述产生的更新的映射表和所述第二数据。
12.如权利要求11所述的方法,其中将所述第二数据被发送到所述非易失性存储器以起始写入操作。
13.如权利要求11所述的方法,其中将所述更新的映射表发送到所述非易失性存储器以起始非阻塞控制同步(CS)操作。
14.如权利要求11所述的方法,还包括响应于发送所述第一数据而接收完成确认,其中所述更新的映射表响应于所述完成确认而产生。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/440,505 | 2017-02-23 | ||
US15/440,505 US20180239532A1 (en) | 2017-02-23 | 2017-02-23 | Techniques for performing a non-blocking control sync operation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108470006A CN108470006A (zh) | 2018-08-31 |
CN108470006B true CN108470006B (zh) | 2022-09-13 |
Family
ID=63167151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810154936.8A Active CN108470006B (zh) | 2017-02-23 | 2018-02-23 | 用于进行非阻塞控制同步操作的技术 |
Country Status (2)
Country | Link |
---|---|
US (2) | US20180239532A1 (zh) |
CN (1) | CN108470006B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10534540B2 (en) * | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US10732896B2 (en) | 2017-06-12 | 2020-08-04 | Western Digital Technologies, Inc. | Method and system for reading data during control sync operations |
KR102116956B1 (ko) * | 2018-10-23 | 2020-06-01 | 요타코퍼레이션(주) | 이미지 기반 가짜 뉴스 검출 시스템 |
US11194503B2 (en) * | 2020-03-11 | 2021-12-07 | Samsung Electronics Co., Ltd. | Storage device having a configurable command response trigger |
US11816349B2 (en) | 2021-11-03 | 2023-11-14 | Western Digital Technologies, Inc. | Reduce command latency using block pre-erase |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272567B1 (en) * | 1998-11-24 | 2001-08-07 | Nexabit Networks, Inc. | System for interposing a multi-port internally cached DRAM in a control path for temporarily storing multicast start of packet data until such can be passed |
CN104813408A (zh) * | 2012-12-14 | 2015-07-29 | 桑迪士克科技股份有限公司 | 跟踪对非易失性存储器的区域的读访问 |
Family Cites Families (89)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255270A (en) * | 1990-11-07 | 1993-10-19 | Emc Corporation | Method of assuring data write integrity on a data storage device |
US6324495B1 (en) * | 1992-01-21 | 2001-11-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel system for emulation and discrete event simulation |
GB2317722B (en) * | 1996-09-30 | 2001-07-18 | Nokia Mobile Phones Ltd | Memory device |
US6526477B1 (en) | 1999-09-03 | 2003-02-25 | Adaptec, Inc. | Host-memory based raid system, device, and method |
TW579463B (en) * | 2001-06-30 | 2004-03-11 | Ibm | System and method for a caching mechanism for a central synchronization server |
GB0123415D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Method of writing data to non-volatile memory |
US6977847B2 (en) | 2001-11-23 | 2005-12-20 | M-Systems Flash Disk Pioneers Ltd. | Detecting partially erased units in flash devices |
US7526599B2 (en) | 2002-10-28 | 2009-04-28 | Sandisk Corporation | Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system |
US7472258B2 (en) * | 2003-04-21 | 2008-12-30 | International Business Machines Corporation | Dynamically shared group completion table between multiple threads |
JP4354284B2 (ja) * | 2004-01-20 | 2009-10-28 | 富士通マイクロエレクトロニクス株式会社 | メモリ制御装置およびメモリ制御システム |
US7366826B2 (en) | 2004-12-16 | 2008-04-29 | Sandisk Corporation | Non-volatile memory and method with multi-stream update tracking |
US7386655B2 (en) | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
US7937709B2 (en) | 2004-12-29 | 2011-05-03 | Intel Corporation | Synchronizing multiple threads efficiently |
US8244958B2 (en) | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
EP1883855B1 (en) * | 2005-05-16 | 2011-07-20 | Donnelly Corporation | Vehicle mirror assembly with indicia at reflective element |
WO2006126445A1 (ja) * | 2005-05-23 | 2006-11-30 | Matsushita Electric Industrial Co., Ltd. | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法 |
WO2007066326A2 (en) | 2005-12-09 | 2007-06-14 | Sandisk Il Ltd. | Method for flash-memory management |
US7564721B2 (en) | 2006-05-25 | 2009-07-21 | Micron Technology, Inc. | Method and apparatus for improving storage performance using a background erase |
US8751859B2 (en) * | 2007-05-10 | 2014-06-10 | International Business Machines Corporation | Monitoring lost data in a storage system |
US8006047B2 (en) * | 2007-06-27 | 2011-08-23 | Hitachi Global Storage Technologies Netherlands B.V. | Storage device with write barrier sensitive write commands and write barrier insensitive commands |
US7865658B2 (en) | 2007-12-31 | 2011-01-04 | Sandisk Il Ltd. | Method and system for balancing host write operations and cache flushing |
JP2009211132A (ja) * | 2008-02-29 | 2009-09-17 | Hitachi Ltd | 記憶システム及びデータ移行方法 |
US8843691B2 (en) | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US8955107B2 (en) * | 2008-09-12 | 2015-02-10 | Juniper Networks, Inc. | Hierarchical application of security services within a computer network |
EP2374063B1 (en) | 2009-01-05 | 2017-11-22 | SanDisk Technologies LLC | Non-volatile memory and method with write cache partitioning |
US9324175B2 (en) * | 2009-09-11 | 2016-04-26 | Nvidia Corporation | Memory coherency in graphics command streams and shaders |
KR20110046243A (ko) * | 2009-10-27 | 2011-05-04 | 삼성전자주식회사 | 사용자 장치 및 그것의 맵핑 데이터 관리 방법 |
US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US9514055B2 (en) * | 2009-12-31 | 2016-12-06 | Seagate Technology Llc | Distributed media cache for data storage systems |
US9069687B2 (en) * | 2010-01-29 | 2015-06-30 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Memory read-channel with selective transmission of error correction data |
WO2011148223A1 (en) * | 2010-05-27 | 2011-12-01 | Sandisk Il Ltd | Memory management storage to a host device |
CN101930404B (zh) | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
WO2012039002A1 (en) * | 2010-09-21 | 2012-03-29 | Hitachi, Ltd. | Semiconductor storage device and data control method thereof |
KR101727704B1 (ko) * | 2010-10-04 | 2017-04-18 | 삼성전자주식회사 | 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들 |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US8904118B2 (en) | 2011-01-07 | 2014-12-02 | International Business Machines Corporation | Mechanisms for efficient intra-die/intra-chip collective messaging |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
US9104614B2 (en) | 2011-09-16 | 2015-08-11 | Apple Inc. | Handling unclean shutdowns for a system having non-volatile memory |
US8607247B2 (en) * | 2011-11-03 | 2013-12-10 | Advanced Micro Devices, Inc. | Method and system for workitem synchronization |
US9146824B1 (en) * | 2011-11-04 | 2015-09-29 | Marvell International Ltd. | Management of bit line errors based on a stored set of data |
WO2013086040A2 (en) * | 2011-12-05 | 2013-06-13 | Doyenz Incorporated | Universal pluggable cloud disaster recovery system |
US8578093B1 (en) * | 2011-12-27 | 2013-11-05 | Emc Corporation | Managing indications in data storage systems |
JP5853899B2 (ja) | 2012-03-23 | 2016-02-09 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
US8966327B1 (en) * | 2012-06-21 | 2015-02-24 | Inphi Corporation | Protocol checking logic circuit for memory system reliability |
US9411633B2 (en) * | 2012-07-27 | 2016-08-09 | Futurewei Technologies, Inc. | System and method for barrier command monitoring in computing systems |
US9122401B2 (en) * | 2012-08-23 | 2015-09-01 | Apple Inc. | Efficient enforcement of command execution order in solid state drives |
US8954656B2 (en) * | 2012-12-20 | 2015-02-10 | Sandisk Technologies Inc. | Method and system for reducing mapping table size in a storage device |
KR20180049148A (ko) | 2012-12-31 | 2018-05-10 | 샌디스크 테크놀로지스 엘엘씨 | 비휘발성 메모리에서 비동기 다이 동작을 위한 방법 및 시스템 |
US9727453B2 (en) | 2013-03-14 | 2017-08-08 | Sandisk Technologies Llc | Multi-level table deltas |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
US9519591B2 (en) | 2013-06-22 | 2016-12-13 | Microsoft Technology Licensing, Llc | Latch-free, log-structured storage for multiple access methods |
US9263136B1 (en) | 2013-09-04 | 2016-02-16 | Western Digital Technologies, Inc. | Data retention flags in solid-state drives |
US20150169228A1 (en) * | 2013-12-12 | 2015-06-18 | Sandisk Technologies Inc. | System and method of storing data at a non-volatile memory |
US9229876B2 (en) | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
US9614547B2 (en) * | 2014-06-30 | 2017-04-04 | Sandisk Technologies Llc | Multi-stage decoder |
KR20160003530A (ko) * | 2014-07-01 | 2016-01-11 | 삼성전자주식회사 | 내장 저장 장치, 이와 통신 가능한 외장 저장 장치, 및 이를 포함하는 데이터 처리 시스템 |
US10073721B2 (en) | 2014-08-20 | 2018-09-11 | The Florida International University Board Of Trustees | Non-blocking writes to file data |
CN105468659B (zh) * | 2014-09-28 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
US9368218B2 (en) | 2014-10-03 | 2016-06-14 | HGST Netherlands B.V. | Fast secure erase in a flash system |
US9959059B2 (en) * | 2014-10-20 | 2018-05-01 | Sandisk Technologies Llc | Storage error management |
KR20160051367A (ko) * | 2014-11-03 | 2016-05-11 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US9588702B2 (en) * | 2014-12-30 | 2017-03-07 | International Business Machines Corporation | Adapting erase cycle parameters to promote endurance of a memory |
US9569118B2 (en) * | 2014-12-30 | 2017-02-14 | International Business Machines Corporation | Promoting consistent response times in a data storage system having multiple data retrieval mechanisms |
US10101938B2 (en) * | 2014-12-30 | 2018-10-16 | International Business Machines Corporation | Data storage system selectively employing multiple data compression techniques |
CN104716954A (zh) | 2015-03-17 | 2015-06-17 | 广东高云半导体科技股份有限公司 | 带有片上用户非易失性存储器的可编程逻辑器件 |
US9817588B2 (en) | 2015-04-10 | 2017-11-14 | Macronix International Co., Ltd. | Memory device and operating method of same |
KR102447471B1 (ko) * | 2015-06-24 | 2022-09-27 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
US10228951B1 (en) * | 2015-08-20 | 2019-03-12 | Apple Inc. | Out of order store commit |
US9870170B2 (en) * | 2015-09-10 | 2018-01-16 | Toshiba Memory Corporation | Memory controller, memory system and memory control method |
US9927984B2 (en) * | 2015-10-14 | 2018-03-27 | Samsung Electronics Co., Ltd. | Electronic system with interface control mechanism and method of operation thereof |
US10180916B2 (en) * | 2015-12-03 | 2019-01-15 | Nvidia Corporation | Managing copy operations in complex processor topologies |
US9927985B2 (en) * | 2016-02-18 | 2018-03-27 | SK Hynix Inc. | Method of dynamic table journaling |
US9927854B2 (en) * | 2016-03-08 | 2018-03-27 | Keyssa Systems, Inc. | Power sequencing circuitry and methods for systems using contactless communication units |
US9959213B2 (en) * | 2016-04-28 | 2018-05-01 | International Business Machines Corporation | Implementing barriers to efficiently support cumulativity in a weakly-ordered memory system |
US10019374B2 (en) * | 2016-04-28 | 2018-07-10 | International Business Machines Corporation | Implementing barriers to efficiently support cumulativity in a weakly-ordered memory system |
US9959044B2 (en) * | 2016-05-03 | 2018-05-01 | Macronix International Co., Ltd. | Memory device including risky mapping table and controlling method thereof |
US9633738B1 (en) | 2016-06-28 | 2017-04-25 | Sandisk Technologies Llc | Accelerated physical secure erase |
KR20180002259A (ko) * | 2016-06-29 | 2018-01-08 | 주식회사 파두 | 계층적 플래시 변환 레이어 구조 및 그 설계 방법 |
US9817593B1 (en) * | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
US9921956B2 (en) | 2016-07-20 | 2018-03-20 | Sandisk Technologies Llc | System and method for tracking block level mapping overhead in a non-volatile memory |
US10567006B2 (en) * | 2016-08-05 | 2020-02-18 | Sandisk Technologies Llc | Data relocation |
US10255177B2 (en) * | 2016-10-10 | 2019-04-09 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on read/write intensity |
CN108089991A (zh) | 2016-11-23 | 2018-05-29 | 广明光电股份有限公司 | 固态硬盘重建对照表的方法 |
US10209914B2 (en) | 2017-01-31 | 2019-02-19 | Sandisk Technologies Llc | System and method for dynamic folding or direct write based on block health in a non-volatile memory system |
US10359955B2 (en) | 2017-02-23 | 2019-07-23 | Western Digital Technologies, Inc. | Data storage device configured to perform a non-blocking control update operation |
US10372351B2 (en) | 2017-02-23 | 2019-08-06 | Western Digital Technologies, Inc. | Techniques for non-blocking control information and data synchronization by a data storage device |
US20180239532A1 (en) * | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
US20190036704A1 (en) | 2017-12-27 | 2019-01-31 | Intel Corporation | System and method for verification of a secure erase operation on a storage device |
US10658045B1 (en) | 2019-05-15 | 2020-05-19 | Western Digital Technologies, Inc. | Enhanced solid-state drive write performance with background erase |
-
2017
- 2017-02-23 US US15/440,505 patent/US20180239532A1/en not_active Abandoned
-
2018
- 2018-02-23 CN CN201810154936.8A patent/CN108470006B/zh active Active
-
2019
- 2019-02-27 US US16/287,336 patent/US11288201B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272567B1 (en) * | 1998-11-24 | 2001-08-07 | Nexabit Networks, Inc. | System for interposing a multi-port internally cached DRAM in a control path for temporarily storing multicast start of packet data until such can be passed |
CN104813408A (zh) * | 2012-12-14 | 2015-07-29 | 桑迪士克科技股份有限公司 | 跟踪对非易失性存储器的区域的读访问 |
Also Published As
Publication number | Publication date |
---|---|
US20180239532A1 (en) | 2018-08-23 |
US20190196975A1 (en) | 2019-06-27 |
US11288201B2 (en) | 2022-03-29 |
CN108470006A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11061721B2 (en) | Task queues | |
CN108470006B (zh) | 用于进行非阻塞控制同步操作的技术 | |
US10643707B2 (en) | Group write operations for a data storage device | |
CN108509480B (zh) | 配置为执行非阻塞控制更新操作的数据存储设备 | |
US10318193B2 (en) | Systems and methods of command authorization | |
US10379754B2 (en) | Memory die temperature adjustment based on a power condition | |
US8935465B1 (en) | System and method of communicating command data in a master-slave environment | |
US10289343B2 (en) | Memory die temperature adjustment based on aging condition | |
US9251891B1 (en) | Devices and methods to conditionally send parameter values to non-volatile memory | |
US20160011790A1 (en) | Systems and methods to enable access to a host memory associated with a unified memory architecture (uma) | |
CN110383250B (zh) | 配置为使用无线接口执行操作的数据存储设备 | |
US10642681B2 (en) | Memory die temperature adjustment based on aging condition | |
US10740243B1 (en) | Storage system and method for preventing head-of-line blocking in a completion path | |
CN107980126B (zh) | 用于调度多裸芯储存装置的方法、数据储存装置及设备 | |
US10372351B2 (en) | Techniques for non-blocking control information and data synchronization by a data storage device | |
US10013173B2 (en) | Data storage device with command buffer management module and method of operating same | |
US10579611B2 (en) | Selective event logging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |