用于存储设备处的写入交易的技术的制作方法

文档序号:14958957发布日期:2018-07-18 00:08阅读:126来源:国知局

本申请要求在35u.s.c365(c)之下享有于2015年12月23日提交的美国申请号14/757,603的优先权。所述申请号14/757,603由此通过引用以其整体并入本文。

本文所描述的示例一般地涉及用于对存储设备的写入交易或写入操作的技术。



背景技术:

在一些示例中,文件系统、数据库或对象系统可以与不同类型的应用或操作系统(os)相关联。对于这些示例,应用或os可以发布交易,诸如对存储设备中所包括的非易失性存储器的一组写入操作(例如写入交易)。应用或os典型地需要确保写入交易在发布下一交易之前完成。确保写入交易完成的需要可以将与这些类型的写入交易相关联的写入操作表征为原子写入交易。

附图说明

图1图示了示例第一系统。

图2图示了示例第一过程。

图3图示了示例第二过程。

图4图示了用于装置的示例框图。

图5图示了逻辑流的示例。

图6图示了存储介质的示例。

图7图示了示例存储设备。

图8图示了示例计算平台。

具体实施方式

如在本公开中所设想到的,与文件系统、数据库或对象系统相关联的应用或os可能需要确保对存储设备的写入交易在发布下一交易之前完成。确保写入交易完成的需要要求逻辑原子写入交易以便为这些应用或os的用户提供数据一致性。逻辑原子写入交易可以允许多个操作被分组到单个逻辑实体中,该单个逻辑实体可以使得这些应用或os能够看到所有完成的写入交易或没有完成的写入交易。诸如硬盘驱动器(hdd)或固态驱动器(ssd)之类的存储设备可能不提供原子性保证。一些存储设备可以提供对512字节扇区的原子保证,而其它存储设备可以提供对4千字节(kb)页的原子保证。再其它的存储设备可以保证可以原子地写入64kb的连续块。这些技术中没有一个允许分开原子写入交易。

在一些示例中,与文件系统、数据库等相关联的应用或os可以通过使用若干经典技术(比如拷贝和更新、日志化、有序更新、两轮写入、序列化的附加元数据写入等)来综合其相应所需要的原子性保证,以用于在hdd或ssd上不可分割地写入任意大小和任意分散的数据。这些技术一般使得对存储设备的写入操作数目成倍,并且因而可能显著地伤害存储设备的性能和耐久力二者。正是关于以上提到的以及其它的挑战,需要本文所描述的示例。

图1图示了示例系统100。在一些示例中,如图1中所示,系统100包括通过输入/输出(i/o)接口103和i/o接口123耦合到存储设备120的主计算平台110。而且,如图1中所示,主计算平台110可以包括os111、一个或多个系统存储器设备112、电路116和一个或多个应用117。对于这些示例,电路116可以能够执行主计算平台110的各种功能元件,诸如可以至少部分地维持在(多个)系统存储器设备112内的(多个)应用117和os111。电路116可以包括主处理电路以包括一个或多个中央处理单元(cpu)和相关联的芯片组和/或控制器。

根据一些示例,如图1中所示,os111可以包括文件系统113和存储设备驱动器115,并且存储设备120可以包括控制器124、一个或多个存储存储器设备122和存储器126。os111可以布置成实现存储设备驱动器115以协调用于来自文件113-1至113-n之中的文件的数据到(多个)存储存储器设备122的至少临时存储,其中“n”是任何整个正整数>1。数据例如可以源自(多个)应用117和/或os111的至少部分或者可以与执行(多个)应用117和/或os111的至少部分相关联。如以下更加详细描述的,os111与存储设备120传送一个或多个命令和交易以便向存储设备120写入数据。命令和交易可以由存储设备120处的逻辑和/或特征组织和处理,以实现分开原子写入交易以便将数据写入到存储设备120。

在一些示例中,控制器124可以包括接收针对与存储设备120处的(多个)存储存储器设备122的分开原子写入交易的多块写入交易请求的逻辑和/或特征。对于这些示例,分开原子写入交易可以源自利用文件系统113通过输入/输出(i/o)接口103和123向存储设备120写入数据的应用(诸如(多个)应用117)或者由其发起。根据一些示例,控制器124的逻辑和/或特征可以向多块写入交易请求指派交易标识(例如令牌),并且向请求源发送交易标识。源(例如(多个)应用117)然后可以发送多个异步写入操作以便将数据存储到(多个)存储存储器设备122。所述多个异步写入操作中的每一个可以包括交易标识。尽管示例,但是不限于针对用于给定分开原子写入交易的交易标识的需要。在一些示例中,可以在没有对于交易标识的需要的情况下发布单个命令。

根据一些第一示例,如以下更多描述的,控制器124的逻辑和/或特征可以首先在缓冲存储器125中存储用于每一个异步写入操作的数据。对于这些第一示例,分开原子写入交易的完成的指示可以由控制器124从多块写入交易请求的源接收。响应于该指示,控制器124的逻辑和/或特征可以使得存储在缓冲存储器125中的数据被存储或提交以用于存储到(多个)存储存储器设备122。

在以上提到的第一示例的可替换方案中,可以在接收到完成指示之前接收取消或结束分开原子写入交易的指示。对于该可替换方案,可以舍弃或者可以仅仅覆盖直到取消或结束分开原子写入交易的指示为止所接收的存储在缓冲存储器125中的数据,所述数据用于异步写入操作。在舍弃或覆盖中的任一示例中,响应于取消或结束指示,不使得数据被提交以用于存储到(多个)存储存储器设备122。

在一些示例中,缓冲存储器125可以包括易失性类型的存储器,包括但不限于,随机存取存储器(ram)、动态ram(d-ram)、双数据速率同步动态ram(ddrsdram)、静态随机存取存储器(sram)、晶闸管ram(t-ram)或零电容器ram(z-ram)。然而,示例不以该方式受限,并且在一些实例中,缓冲存储器125可以包括非易失性类型的存储器,包括但不限于,3维交叉点存储器、铁电存储器、硅-氧化物-氮化物-氧化物-硅(sonos)存储器、聚合物存储器、铁电聚合物存储器、铁电晶体管随机存取存储器(fetram或feram)、奥氏存储器、纳米线、电可擦除可编程只读存储器(eeprom)、相变存储器、忆阻器或自旋转移矩-磁阻随机存取存储器(stt-mram)。

根据一些第二示例,如以下更多描述的,控制器124的逻辑和/或特征可以直接向(多个)存储存储器设备122存储用于每一个异步写入操作的数据。对于这些第二示例,在将数据存储在用于(多个)存储存储器设备122的物理存储器地址处之后,可以由控制器124的逻辑和/或特征创建交易特定逻辑到物理(l2p)间接表以用于将用于异步写入操作中的每一个的数据映射到相应的物理存储器地址。交易特定l2p间接表例如可以存储在具有(多个)交易表126-1的存储器126中。对于这些第二示例,可以由控制器124从多块写入交易请求的源接收分开原子写入交易的完成的指示。响应于该指示,控制器124的逻辑和/或特征可以使得初级l2p间接表被更新。初级l2p间接表可以存储在存储器126中并且在图1中被表示为初级表126-2。初级表126-2可以将写入到(多个)存储存储器设备122以用于所接收到的写入操作的数据映射到物理存储器地址。

在以上提到的第二示例的可替换方案中,可以在接收到完成指示之前接收取消或结束分开原子写入交易的指示。对于该可替换方案,然后可以舍弃、删除(多个)交易表126-1中所包括的交易特定l2p间接表,或者当创建随后的交易特定l2p间接表时,逻辑和/或特征可以覆盖交易特定l2p间接表。在舍弃或覆盖中的任一示例中,交易特定l2p间接表不用于响应于取消或结束指示而更新初级l2p间接表。

在一些示例中,可以布置成存储(多个)交易表126-1或初级表126-2的存储器126可以包括易失性类型的存储器,包括但不限于ram、d-ram、ddrsdram、sram、t-ram或z-ram。易失性存储器的一个示例包括dram,或某个变型,诸如sdram。如本文所描述的存储器子系统可以与数个存储器技术兼容,诸如ddr4(ddr版本4,在2012年9月由jedec公开的初始规范)、lpddr4(低功率双数据速率(lpddr)版本4,jesd209-4,由jedec在2014年8月原始公开),wio2(宽i/o2(wideio2)、jesd229-2,由jedec在2014年8月原始公开)、hbm(高带宽存储器dram,jesd235,由jedec在2013年10月原始公开),ddr5(ddr版本5,当前由jedec讨论中)、lpddr5(lpddr版本5,当前由jedec讨论中)、hbm2(hbm版本2,当前由jedec讨论中)和/或其它,以及基于这样的规范的派生物或扩展的技术。

然而,示例不以该方式受限,并且在一些实例中,存储器126可以包括非易失性类型的存储器,其状态是确定的,即便中断去到存储器126的功率。在一些示例中,存储器126可以包括非易失性类型的存储器,其是块可寻址的,诸如用于nand或nor技术。因此,存储器126还可以包括将来世代类型的非易失性存储器,诸如3维交叉点存储器,或其它字节可寻址的非易失性类型的存储器。根据一些示例,存储器126可以包括非易失性存储器的类型,包括硫属化合物玻璃、多阈值电平nand闪速存储器、nor闪速存储器、单级或多级相变存储器(pcm)、电阻式存储器、纳米线存储器、fetram、合并忆阻器技术的mram,或stt-mram,或以上中的任何的组合或其它存储器。

在一些示例中,(多个)存储存储器设备122可以是存储来自写入交易和/或写入操作的数据的设备。(多个)存储存储器设备122可以包括具有门的一个或多个芯片或管芯,所述门可以单独地包括一个或多个类型的非易失性存储器,以包括但不限于,nand闪速存储器、nor闪速存储器、3-d交叉点存储器、铁电存储器、sonos存储器、铁电聚合物存储器、fetram、feram、奥氏存储器、纳米线、eeprom、相变存储器、忆阻器或stt-mram。对于这些示例,存储设备120可以布置或配置为固态驱动器(ssd)。可以以块读取和写入数据,并且可以在(多个)交易表126-1和/或初级表126-2中保持针对块的映射或位置信息(例如l2p间接表)。

示例不限于布置或配置为ssd的存储设备,设想到其它存储设备,诸如硬盘驱动器(hdd)。在这些实例中,(多个)存储存储器设备122可以包括具有存储数据的磁体材料的一个或多个圆形磁盘片(platter)或转盘。可以以块读取和写入数据,并且可以在(多个)交易表126-1和/或初级表126-2中保持针对块的映射或位置信息。

根据一些示例,可以通过i/o接口103和i/o接口123路由存储设备驱动器115与控制器124之间的针对存储在(多个)存储存储器设备122中并且经由文件113-1至113-n访问的数据的通信。i/o接口103和123可以布置为串行高级技术附接(sata)接口以便将主计算平台110的元件耦合到存储设备120。在另一示例中,i/o接口103和123可以布置为串行附接小型计算机系统接口(scsi)(或简单地sas)接口以便将主计算平台110的元件耦合到存储设备120。在另一示例中,i/o接口103和123可以布置为快速外围组件互连(pcie)接口以便将主计算平台110的元件耦合到存储设备120。在另一示例中,i/o接口103和123可以布置为快速非易失性存储器(nvme)接口以便将主计算平台110的元件耦合到存储设备120。对于该其它示例,通信协议可以用于通过i/o接口103和123进行通信,如在工业标准或规范(包括后代或变型)中所描述的,诸如2014年11月公开的快速外围组件互连(pci)基本规范,修订本3.1(“pciexpress规范”或“pcie规范”)和/或同样在2014年11月中公开的快速非易失性存储器(nvme)规范,修订本1.2(“nvme规范”)。

在一些示例中,(多个)系统存储器设备112可以存储信息和命令,该信息和命令可以由电路116用于处理信息。而且,如图1中所示,电路116可以包括存储器控制器118。存储器控制器118可以布置成控制至少临时存储在(多个)系统存储器设备112处的数据的访问,以用于最终存储到存储设备120处的(多个)存储存储器设备122。

在一些示例中,存储设备驱动器115可以包括转发与源自(多个)应用117的一个或多个写入交易和/或写入操作相关联的命令的逻辑和/或特征。例如,存储设备驱动器115可以转发与写入交易相关联的命令,使得用于分开原子写入交易的数个异步写入操作可以使得数据被存储到存储设备120处的(多个)存储存储器设备122。更具体地,存储设备驱动器115可以使得能够实现写入操作从计算平台110处的(多个)应用117到控制器124的传送。因此,用于分开原子写入交易的写入操作的协调可以由控制器124的逻辑和/或特征处置和处理以使得队列深度(例如向(多个)存储存储器设备122写入数据的队列中的命令数目)的增加,使得可以实现命令并行化。换言之,通过允许对(多个)存储存储器设备122的写入操作通过使用分开原子写入交易而并行进行,用于对(多个)存储存储器设备122的写入操作的队列深度可以增加到2x倍或更大。而且,(多个)应用17和/或os111可以能够提供对(多个)存储存储器设备122的任意数目的分散存储器块的不可分割的写入,并且如以下更多描述的,可以使得(多个)应用117和/或os111能够发现跨中断的未完成的写入,因而移除维护显式日志/记录的需要。

(多个)系统存储器设备112可以包括具有易失性类型的存储器的一个或多个芯片或管芯,所述易失性类型的存储器诸如ram、d-ram、ddrsdram、sram、t-ram或z-ram。然而,示例不以该方式受限,并且在一些实例中,(多个)系统存储器设备112可以包括非易失性类型的存储器,包括但不限于nand闪速存储器、nor闪速存储器、3-d交叉点存储器、铁电存储器、sonos存储器、铁电聚合物存储器、fetram、feram、奥氏存储器、纳米线、eeprom、相变存储器、忆阻器或stt-mram。

根据一些示例,主计算平台110可以包括但不限于服务器、服务器阵列或服务器农场、web服务器、网络服务器、因特网服务器、工作站、微型计算机、大型计算机、超级计算机、网络器具、web器具、分布式计算系统、微处理器系统、基于处理器的系统或其组合。

图2图示了示例过程200。在一些示例中,如图2中所示的过程200描绘了实现与多块写入交易请求相关联的分开原子写入交易的过程。对于这些示例,过程200可以由图1中所示的系统100的组件或元件实现或使用其实现,诸如(多个)应用117、存储设备120、控制器124、缓冲存储器125、存储器126或(多个)存储存储器设备122。然而,过程200不限于仅由系统100的这些组件或元件实现或仅使用系统100的这些组件或元件。

在一些示例中,在210处,可以由(多个)应用117发送或提交针对分开原子写入交易的多块交易请求。分开原子写入交易可以包括允许(多个)应用117执行多个异步写入操作(以对于(多个)应用117而言方便的任何任意顺序),而同时还限制要写入到(多个)存储存储器设备122中的块的总数目。如图2中所示,从(多个)应用117向存储设备120发送multi-block_transaction_request(6,…)multi-block_transaction_request(6,…)中的值“6”指示要被写入以用于分开原子写入交易的(多个)存储存储器设备122中的六个存储器块的总数目。示例不限于六个块,可以在多块交易请求中指示任何数目的块。

根据一些示例,在220处,可以向(多个)应用117发送transaction_identification(w)。对于这些示例,控制器124的逻辑和/或特征可以生成交易标识(w),其可以充当促进随后的写入操作通过完成或早期终止的追踪的令牌,并且还可以充当已经授权multi-block_transaction_request(6,…)的指示。

在一些示例中,在230-1至230-6处,可以在存储设备120处接收一系列六个异步写入操作。例如,在230-1处,asynchronous_write(w,b1,…)可以表示来自(多个)应用117的第一异步写入操作,其力图写入到块1(b1)作为被指派交易标识或令牌(w)的六个块分开原子写入交易的部分。每一个异步写入块“bi”,其中“i”是任何整个正整数,可以是经受(多个)应用117经由multi-block_transaction_request(6,…)预留/请求的六个块的总容量的单个逻辑块地址(lba)或lba的范围。如图2中所示,在230-2至230-6处,对相应块b6、b2、b4、b3和b7的五个更多的异步写入操作指示由(多个)应用117提交的异步或分开的写入操作。相应块b6、b2、b4和b7的顺序是任意排序的,并且示例不限于图2中针对过程200所示出的顺序。而且,在一些示例中,可以将块b6、b2、b4、b3和b7写入到(多个)存储存储器设备122的分散部分。

根据一些示例,控制器124的逻辑和/或特征可以使得首先将用于每一个异步写入操作的数据写入到缓冲存储器125。缓冲器125可以是相对高速的存储器缓冲器(例如sram)以至少临时地存储与用于分开原子写入交易的异步写入操作一起接收的数据。在一些示例中,数据可以存储在缓冲存储器125中,直到分开原子写入交易的完成的指示。如图2中在260处所示,指示可以是从具有交易标识符(w)的应用发送的commit(w)命令,所述交易标识符(w)指示(多个)应用117在发送六个异步写入操作中的最后一个之后已经完成分开原子写入交易。

在一些示例中,控制器124的逻辑和/或特征可以将包括在commit(w)命令中的交易标识识别为分开原子写入交易的完成的指示符。对于这些示例,在250处,控制器124的逻辑和/或特征可以使得将经由这六个多块写入操作接收的数据提交,以存储在(多个)存储存储器设备122中,并且然后响应于具有交易标识符(w)的应用而发送commit_complete(w),交易标识符(w)指示用于在多块交易请求中发送的这六个多块写入操作的数据已经被成功地存储到(多个)存储存储器设备122。

根据一些示例,在这六个异步写入操作的提交期间,(多个)应用117不必等待整个多块写入交易的完成。而是,(多个)应用117可以检查可能以异步方式接收的从存储设备120接收的异常或指示。(多个)应用117然后可以采取补救行动,该补救行动可以包括在完成多块写入交易之前断开或结束分开原子写入交易。断开或结束分开原子写入交易可以包括(多个)应用117发送cancel(w),例如在发送之前,commit(w)可以向控制器124的逻辑和/或特征指示(多个)应用117想要取消或结束分开原子写入交易。响应于cancel(w)具有在210处给出的交易标识,控制器124的逻辑和/或特征可以使得当前存储到缓冲存储器125的数据直到接收到cancel(w)的时间被删除,或者可以使得数据不被存储或提交以用于存储到(多个)存储存储器设备122。

在一些示例中,缓冲存储器125可以包括易失性类型的存储器。对于这些示例,将数据提交以存储到(多个)存储存储器设备122之前对存储设备120的初级功率丧失或功率失效事件可以导致由(多个)应用117提交的已完成的写入操作中所包括的数据的至少部分的丢失。对于这些示例,控制器124的逻辑和/或特征可以能够检测影响存储设备120的功率失效事件,并且然后利用辅助功率来使得尚未从存储器缓冲器125存储到(多个)存储存储器设备122的任何数据被存储。辅助功率,例如,可以包括由功率丧失迫近电路(未示出)提供的基于电容的功率,并且初级功率可以包括基于电池或基于电源输出口的功率(未示出)。基于电容的功率可以包括充足的电容功率储存以便向缓冲存储器125提供辅助功率以使得能够实现需要在针对存储设备120的功率失效事件之后从缓冲存储器125向(多个)存储器设备122输送针对图2中所示的六个异步写入操作中所包括的所有六个数据块的数据的最糟情况场景。

根据一些示例,在将用于分开原子写入交易的数据存储到存储存储器设备122之后,控制器124的逻辑和/或特征可以更新存储器126的初级表126-2中所包括的初级l2p间接表,以指示从(多个)应用117接收的多块写入操作中所包括的数据的l2p映射。

图3图示了示例过程300。在一些示例中,如图3中所示的过程300描绘了实现与多块写入交易请求相关联的分开原子写入交易的过程。对于这些示例,过程300可以通过图1中所示的系统100的组件或元件实现,或者使用如图1中所示的系统100的组件或元件,诸如(多个)应用117、存储设备120、控制器124、存储器126或(多个)存储存储器设备122。然而,过程300不限于仅由系统100的这些组件或元件实现或仅使用系统100的这些组件或元件。

在一些示例中,在310处,可以由(多个)应用117发送或提交多块交易请求以用于分开原子写入交易。类似于过程200,在320处,控制器124的逻辑和/或特征可以生成交易标识以充当促进随后的写入操作通过完成或早期终止的追踪的令牌,并且还充当已经授权multi-block_transaction_request(6,…)的指示。

根据一些示例,类似于过程200,在330-1至330-6处,可以在存储设备120处接收一系列六个异步写入操作。然而,过程300不同于过程200之处在于,存储器缓冲器不用于在提交以存储到(多个)存储存储器设备122之前临时存储数据。而是,控制器124的逻辑和/或特征可以使得用于每一个异步写入操作的数据在从(多个)应用117被接收时被存储在(多个)存储存储器设备122的物理存储器地址中。在将数据存储到(多个)存储存储器设备122之后,控制器124的逻辑和/或特征可以创建用于将所述多个异步写入操作中所包括的数据映射到(多个)存储存储器设备122的物理存储器地址的交易特定l2p间接表。对于这些示例,交易特定l2p间接表可以与向所授权的多块交易请求指派的交易标识(w)或令牌相关联,并且可以与存储器126中所维护的(多个)交易表126-1一起被包括或存储。

在一些示例中,控制器124的逻辑和/或特征可以继续维护交易特定l2p间接表,直到至少在340处接收到commit(w)。响应于从(多个)应用117接收到commit(w)命令,控制器124的逻辑和/或特征在350处可以使用交易特定l2p间接表来更新存储器126中所维护的初级表126-2中所包括的初级l2p间接表。在该更新之后,控制器124的逻辑和/或特征然后可以发送commit_complete(w)响应以指示已经将用于这六个多块写入操作的数据成功地存储到(多个)存储存储器设备122。

根据一些示例,在这六个异步写入操作的提交期间,(多个)应用117不必等待所有写入操作的完成。而是,(多个)应用117可以检查从存储设备120接收的异常或指示,该异常或指示可以以异步方式接收。(多个)应用117然后可以采取补救行动,该补救行动可以包括在完成多块写入操作之前断开或结束分开原子写入交易。断开或结束分开原子写入交易可以包括(多个)应用117发送cancel(w),例如,在发送之前,commit(w)可以向控制器124的逻辑和/或特征指示(多个)应用117想要取消或结束分开原子写入交易。响应于cancel(w)具有在310处给出的交易标识,控制器124的逻辑和/或特征可以使得(多个)交易表126-1中所包括的交易特定l2p间接表被删除,或者可以使得初级l2p间接表没有被更新有交易特定l2p间接表。

在一些示例中,布置成维护(多个)交易表126-1的存储器126的至少部分可以包括易失性类型的存储器。对于这些示例,在更新初级l2p间接表之前对存储设备120的功率丧失或功率失效事件可以使得由(多个)应用117提交的写入操作中所包括的数据不可访问。对于这些示例,控制器124的逻辑和/或特征可以能够检测影响存储设备120的功率失效事件,并且然后利用辅助功率来使得基于交易特定l2p间接表更新初级l2p间接表。辅助功率例如可以包括电容功率(未示出)。该电容功率可以包括被提供以使得能够在针对存储设备120的功率失效事件之后完成更新过程的充足电容功率存储。

根据一些示例,维护(多个)交易表126-1和初级表126-2的存储器126的部分可以包括易失性类型的存储器。对于这些示例,在必须在功率失效事件之后将初级l2p间接表保存到非易失性存储器之前,更新过程使用辅助功率或许是不可能的。在一些示例中,取代于使用交易特定l2p间接表来更新初级l2p间接表,还可以使用辅助功率将交易特定l2p间接表存储到非易失性存储器。对于这些示例,一旦恢复对存储设备120的功率,然后可以将交易特定l2p间接表写入或加载回存储器126的易失性存储器部分,并且将其用于更新初级l2p间接表。

图4图示了针对装置400的示例框图。尽管图4中所示的装置400具有某个拓扑中的有限数目的元件,但是可以领会到,装置400可以包括如针对给定实现方式而言所期望的可替换拓扑中的更多或更少的元件。

装置400可以由电路420支持,并且装置400可以是存储设备处所维护的控制器,诸如用于图1中所示的系统100的存储设备120的控制器124。存储设备可以耦合到类似于同样在图1中所示的主计算平台110的主计算平台或设备。而且,如以上所提到的,存储设备可以包括存储与分开原子写入交易相关联的数据的一个或多个存储器设备或管芯,分开原子写入交易与主计算平台托管的一个或多个应用所放置的多块写入交易请求相关联。电路420可以布置成执行一个或多个软件或固件实现的组件或模块422-a(例如至少部分地由存储设备的存储控制器实现)。值得指出的是,如本文所使用的“a”、“b”、和“c”以及类似的指示符旨在作为表示任何正整数的变量。因此,例如,如果实现方式设定针对a=7的值,则用于组件或模块422-a的软件或固件的完整集合可以包括组件422-1、422-2、422-3、422-4、422-5、422-6或422-7。而且,这些“组件”可以是存储在计算机可读介质中的软件/固件,并且尽管在图4中将组件示出为分立的框,但是这不将这些组件限制成存储在分立的计算机可读介质组件(例如分离的存储器等)中。

根据一些示例,电路420可以包括处理器或处理器电路。处理器或处理器电路可以是各种商业上可得到的处理器中的任何一个,包括而没有限制,amd®athlon®、duron®和opteron®处理器;arm®应用、嵌入式和安全处理器;ibm®和motorola®dragonball®和powerpc®处理器;ibm和sony®cell处理器;intel®atom®、celeron®、core(2)duo®、corei3、corei5、corei7、itanium®、pentium®、xeon®、xeonphi®和xscale®处理器;以及类似的处理器。根据一些示例,电路420还可以包括一个或多个专用集成电路(asic),并且至少一些组件422-a可以实现为这些asic的硬件元件。

根据一些示例,装置400可以包括请求组件422-1。请求组件422-1可以是由电路420执行以接收针对与一个或多个存储存储器设备的分开原子写入交易的多块写入交易请求的逻辑和/或特征。对于这些示例,可以在请求405中包括多块写入交易请求,并且所述一个或多个存储存储器设备可以位于包括装置400的存储设备处。例如,可能已经从在与包括装置400的存储设备耦合的主计算设备处执行的应用发送了请求405。

在一些示例中,装置400还可以包括令牌组件422-2。令牌组件422-2可以是由电路420执行以向多块写入交易请求的源发送多块写入交易请求的接受指示的逻辑和/或特征。接受指示可以包括针对多块写入交易请求的交易标识。交易标识例如可以被发送至在主计算平台处执行的应用,并且可以被包括在交易id410中。而且,令牌组件422-2可以维护具有交易标识符423-a的交易标识(例如在查找表(lut)中)。

根据一些示例,装置400还可以包括交易组件422-3。交易组件422-3可以是由电路420执行以接收多个异步写入操作以将数据存储到所述一个或多个存储存储器设备的逻辑和/或特征,所述多个异步写入操作可以分离地包括交易标识。对于这些示例,可以在异步写入操作415中包括所述多个所接收的异步写入操作。

在一些示例中,装置400还可以包括存储组件422-4。存储组件422-4可以是由电路420执行以使得在所述多个异步写入操作中包括的数据被存储到所述一个或多个存储存储器设备的逻辑和/或特征。在一些第一示例中,存储组件422-4可以利用缓冲存储器来至少临时地存储数据,并且然后响应于来自多块写入交易请求的源的分开原子写入交易的完成指示,使得数据被提交以供存储到所述一个或多个存储存储器设备。提交指示可以被包括在提交430中并且可以包括交易标识。存储组件422-4然后可以在完成445中发送数据的成功存储的指示。在一些第二示例中,存储组件422-4可以不利用缓冲存储器,并且可以使得数据被直接存储到所述一个或多个存储存储器设备的物理存储器地址。对于第一或第二示例,多块交易请求的源可以在取消435中发送取消指示,以指示要终止分开原子写入交易。响应于取消指示,存储组件可以舍弃数据或者允许在缓冲存储器处盖写数据或在所述一个或多个存储存储器设备处盖写数据。

根据一些示例,装置400还可以包括表组件422-5。表组件422-5可以是由电路420执行以创建用于将用于所述多个异步写入操作的数据映射到物理存储器地址的交易特定l2p间接表的逻辑和/或特征,该物理存储器地址存储如以上针对第二示例提到的直接存储到所述一个或多个存储存储器设备的组件422-4。表组件422-5可以利用交易特定l2p间接表423-b维护交易特定l2p间接表(例如在lut中)。在一些示例中,多块交易请求的源可以在取消435中发送取消指示,以指示要终止分开原子写入交易。对于这些示例,表组件422-5可以响应于取消指示而舍弃交易特定l2p间接表。

在一些示例中,装置400还可以包括更新组件422-6。更新组件422-6可以是由电路420执行以基于由表组件422-5生成的交易特定l2p间接表而更新针对所述一个或多个存储存储设备的初级l2p间接表的逻辑和/或特征。更新可以响应于从多块交易请求的源接收的分开原子写入交易的完成的指示。可以在提交430中包括该指示。

根据一些示例,装置400还可以包括功率失效组件422-7。功率失效组件422-7可以是由电路420执行以使得存储到所述一个或多个存储器存储设备的数据在功率失效450中所指示的检测到的功率失效事件之后被保留或可访问的逻辑和/或特征。在其中包括易失性存储器的缓冲存储器用于存储针对分开原子写入交易的数据的示例中,功率失效组件422-7可以利用辅助功率源(例如基于电容的功率)来从缓冲存储器向所述一个或多个存储存储器设备输送数据。在其中存储到易失性存储器的交易特定l2p间接表用于更新初级l2p间接表的示例中,功率失效组件422-7可以利用辅助功率源来使得更新组件422-6能够在丧失所有功率之前更新初级l2p间接表,或者可以用于输送交易特定l2p间接表,并且然后一旦恢复功率,则使得更新组件422-6能够更新初级l2p间接表。

本文所包括的是代表用于执行所公开的架构的新颖方面的示例方法的一组流程图。虽然出于简化解释的目的,将本文所示的所述一个或多个方法示出和描述为一系列动作,但是本领域技术人员将理解和领会到,方法不受动作顺序限制。相应地,一些动作可以以不同的顺序和/或与来自本文所示出和描述的其它动作并发地发生。例如,本领域技术人员将理解和领会到,方法可以可替换地被表示为一系列交错的状态或事件,诸如在状态图中。而且,并非在方法中说明的所有动作对于新颖的实现方式而言都可能是必需的。

可以在软件、固件和/或硬件中实现逻辑流。在软件和固件实施例中,可以通过存储在至少一个非暂时性计算机可读介质或机器可读介质(诸如光学、磁性或半导体储存)上的计算机可执行指令来实现逻辑流。实施例在该上下文中不受限。

图5图示了逻辑流500的示例。逻辑流500可以代表由本文所描述的一个或多个逻辑、特征或设备(诸如装置400)执行的操作中的一些或全部。更特别地,逻辑流500可以通过请求组件422-1、令牌组件422-2、交易组件422-3或存储组件422-4中的一个或多个来实现。

根据一些示例,逻辑流500在块502处可以在用于存储设备的控制器处接收针对与所述一个或多个存储存储器设备的分开原子写入交易的多块写入交易请求。对于这些示例,请求组件422-1可以接收针对分开原子写入交易的多块写入交易请求。

在一些示例中,逻辑流500在块504处可以向多块写入交易请求的源发送多块写入交易请求的接受指示。对于这些示例,令牌组件422-2可以生成和发送指示。

根据一些示例,逻辑流500在块506处可以接收多个异步写入操作以将数据存储到所述一个或多个存储存储器设备,所述多个异步写入操作用于分开的原子写入操作。对于这些示例,交易组件422-3可以接收用于分开的原子写入操作的所述多个异步写入交易。

在一些示例中,逻辑流500在块508处可以使得数据被存储在所述一个或多个存储存储器设备中。对于这些示例,存储组件422-4可以使得数据被存储在所述一个或多个存储存储器设备中。

图6图示了第一存储介质的示例。如图6中所示,第一存储介质包括存储介质600。存储介质600可以包括制造品。在一些示例中,存储介质600可以包括任何非暂时性计算机可读介质或机器可读介质,诸如光学、磁性或半导体储存。存储介质600可以存储各种类型的计算机可执行指令,诸如实现逻辑流500的指令。计算机可读或机器可读存储介质的示例可以包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器等等。计算机可执行指令的示例可以包括任何合适类型的代码,诸如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码、面向对象的代码、视码等。示例在该上下文中不受限。

图7图示了示例存储设备700。在一些示例中,如图7中所示,存储设备700可以包括处理组件740、其它存储设备组件750或通信接口760。根据一些示例,存储设备700可以能够耦合到主计算设备或平台。

根据一些示例,处理组件740可以执行用于装置400和/或存储介质600的处理操作或逻辑。处理组件740可以包括各种硬件元件、软件元件或二者的组合。硬件元件的示例可以包括设备、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、asic、可编程逻辑器件(pld)、数字信号处理器(dsp)、fpga/可编程逻辑、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、设备驱动器、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件组件、例程、子例程、函数、方法、进程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现示例可以依照任何数目的因素变化,诸如期望的计算速率、功率水平、热量容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如针对给定示例所期望的那样。

在一些示例中,其它存储设备组件750可以包括常见的计算元件或电路,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、接口、振荡器、时序设备、电源等等。存储器单元的示例可以在没有限制的情况下包括,以一个或多个较高速度存储器单元的形式的各种类型的计算机可读和/或机器可读存储介质,诸如只读存储器(rom)、ram、dram、ddrdram、同步dram(sdram)、ddrsdram、sram、可编程rom(prom)、eprom、eeprom、闪速存储器、铁电存储器、sonos存储器、聚合物存储器,诸如铁电聚合物存储器、纳米线、fetram或feram、奥氏存储器、相变存储器、忆阻器、stt-mram、磁卡或光卡,以及适合于存储信息的任何其它类型的存储介质。

在一些示例中,通信接口760可以包括支持通信接口的逻辑和/或特征。对于这些示例,通信接口760可以包括根据各种通信协议或标准操作以通过直接或网络通信链路进行通信的一个或多个通信接口。直接通信可以经由诸如smbus、pcie、nvme、qpi、sata、sas或usb通信协议之类的通信协议的使用而发生。网络通信可以经由通信协议以太网、无限带宽、sata或sas通信协议的使用而发生。

存储设备700可以被布置为ssd或hdd,其可以如以上针对如图1中所示的系统100的存储设备120所描述的那样进行配置。相应地,可以如适当期望的那样,在存储设备700的各种实施例中包括或省略本文所描述的存储设备700的功能和/或具体配置。

可以使用分立电路、asic、逻辑门和/或单个芯片架构的任何组合来实现存储设备700的组件和特征。另外,在适当合适的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述各项的任何组合来实现存储设备700的特征。要指出的是,在本文中,硬件、固件和/或软件元件可以被集体地或单独地称为“逻辑”或“电路”。

应当理解到,图7的框图中所示的示例存储设备700可以表示许多潜在实现方式的一个功能描述性示例。相应地,在附图中描绘的块功能的划分、省略或包括不暗示将必然在实施例中划分、省略或包括用于实现这些功能的硬件组件、电路、软件和/或元件。

图8图示了示例计算平台800。在一些示例中,如图8中所示,计算平台800可以包括存储系统830、处理组件840、其它平台组件850或通信接口860。根据一些示例,计算平台800可以实现在计算设备中。

根据一些示例,存储系统830可以类似于如图1中所示的系统100的存储设备120,并且包括控制器832和(多个)存储器设备834。对于这些示例,驻留在控制器832处或位于控制器832处的逻辑和/或特征可以执行用于装置400的至少一些处理操作或逻辑,并且可以包括包含存储介质600的存储介质。而且,(多个)存储器设备834可以包括与以上针对图1-3中所示的存储设备120所描述的类似的类型的易失性或非易失性存储器(未示出)。

根据一些示例,处理组件840可以包括各种硬件元件、软件元件或二者的组合。硬件元件的示例可以包括设备、逻辑器件、组件、处理器、微处理器、电路、处理器电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、asic、pld、dsp、fpga/可编程逻辑、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、进程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现示例可以依照任何数目的因素变化,诸如期望的计算速率、功率水平、热量容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如针对给定示例所期望的那样。

在一些示例中,其它平台组件850可以包括常见的计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、时序设备、视频卡、音频卡、多媒体i/o组件(例如数字显示器)、电源等等。与其它平台组件850或存储系统830相关联的存储器单元的示例可以没有限制的情况下包括,以一个或多个较高速度存储器单元的形式的各种类型的计算机可读和/或机器可读存储介质,诸如rom、ram、dram、ddram、sdram、sram、prom、eprom、eeprom、闪速存储器、铁电存储器、sonos存储器、聚合物存储器,诸如铁电聚合物存储器、纳米线、fetram或feram、奥氏存储器、纳米线、eeprom、相变存储器、忆阻器、stt-mram、磁卡或光卡、诸如raid驱动器之类的设备阵列、固态存储器设备、ssd、hdd或适合于存储信息的任何其它类型的存储介质。

在一些示例中,通信接口860可以包括支持通信接口的逻辑和/或特征。对于这些示例,通信接口860可以包括根据各种通信协议或标准操作以通过直接或网络通信链路进行通信的一个或多个通信接口。直接通信可以通过直接接口经由在诸如与smbus规范、pcie规范、nvme规范、sata规范、sas规范或usb规范相关联的那些之类的一个或多个工业标准(包括后代和变型)中所描述的通信协议或标准的使用而发生。网络通信可以通过网络接口经由诸如在由ieee公布的一个或多个以太网标准中描述的那些之类的通信协议或标准的使用而发生。例如,一个这样的以太网标准可以包括ieee802.3-2012,2012年12月公开的具有冲突检测的载波侦听多路访问(csma/cd)访问方法和物理层规范(以下“ieee802.3”)。

计算平台800可以是计算设备的部分,计算设备可以是例如用户设备、计算机、个人计算机(pc)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板电脑、智能电话、嵌入式电子器件、游戏控制台、服务器、服务器阵列或服务器农场、web服务器、网络服务器、因特网服务器、工作站、微型计算机、大型计算机、超级计算机、网络器具、web器具、分布式计算系统、多处理器系统、基于处理器的系统或其组合。相应地,如适当期望的那样,可以在计算平台800的各种实施例中包括或省略本文所描述的计算平台800的功能和/或具体配置。

可以使用分立电路、asic、逻辑门和/或单个芯片架构的任何组合来实现计算平台800的组件和特征。另外,在适当合适的情况下,可以使用微控制器、可编程逻辑阵列和/或微处理器或前述各项的任何组合来实现计算平台800的特征。要指出的是,在本文中,硬件、固件和/或软件元件可以被集体地或单独地称为“逻辑”、“电路”或“电路系统”。

至少一个示例的一个或多个方面可以通过存储在至少一个机器可读介质上的代表性指令实现,该代表性指令表示处理器内的各种逻辑,在由机器、计算设备或系统读取时,使得机器、计算设备或系统制作逻辑以执行本文所描述的技术。可以在有形、机器可读介质上存储这样的表示,并且将这样的表示供给到各种消费者或制造机构以加载到实际制作逻辑或处理器的制作机器中。

可以使用硬件元件、软件元件或二者的组合来实现各种示例。在一些示例中,硬件元件可以包括设备、组件、处理器、微处理器、电路、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、asic、pld、dsp、fpga、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、进程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件实现示例可以依照任何数目的因素变化,诸如期望的计算速率、功率水平、热量容限、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其它设计或性能约束,如针对给定实现方式所期望的那样。

一些示例可以包括制造品或至少一个计算机可读介质。计算机可读介质可以包括存储逻辑的非暂时性存储介质。在一些示例中,非暂时性存储介质可以包括能够存储电子数据的一个或多个类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重写存储器等。在一些示例中,逻辑可以包括各种软件元件,诸如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、进程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。

根据一些示例,计算机可读介质可以包括存储或维护指令的非暂时性存储介质,所述指令在由机器、计算设备或系统执行时,使得机器、计算设备或系统执行依照所描述的示例的方法和/或操作。指令可以包括任何合适类型的代码,诸如源代码、经编译的代码、经解释的代码、可执行代码、静态代码、动态代码等。可以根据预定义的计算机语言、方式或语法来实现指令,以用于命令机器、计算设备或系统执行某个功能。可以使用任何合适的高级、低级、面向对象的、视觉、经编译的和/或经解释的编程语言来实现指令。

可以使用表述“在一个示例中”或“示例”连同其派生物来描述一些示例。这些术语意味着结合该示例描述的特定特征、结构或特性被包括在至少一个示例中。短语“在一个示例中”在说明书中的各种地方中的出现未必都是指相同的示例。

可以使用表述“耦合”和“连接”连同其派生物来描述一些示例。这些术语未必意图作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多元件与彼此直接物理或电气接触。然而,术语“耦合”还可以意味着两个或更多元件不与彼此直接接触,但是仍旧与彼此协作或交互。

以下示例关于本文所公开的技术的附加示例。

示例1.一种示例装置可以包括一个或多个存储器设备和包括逻辑的存储控制器,所述逻辑的至少部分在硬件中,装置的逻辑可以接收针对与所述一个或多个存储器设备的分开原子写入交易的多块写入交易请求。逻辑还可以向多块写入交易请求的源发送多块写入交易请求的接受的指示。逻辑还可以接收以任何任意顺序发送的多个异步写入操作,以便将数据存储到所述一个或多个存储器设备,所述多个异步写入操作用于分开原子写入交易。逻辑还可以使得数据被存储在所述一个或多个存储器设备中。

示例2.示例1的装置,可以包括装置与主计算设备耦合。对于该示例,多块写入交易请求的源可以是在主计算设备处执行的应用或操作系统。

示例3.示例1的装置还可以包括缓冲存储器。用于装置的逻辑还可以使得数据被存储在所述一个或多个存储器设备中包括逻辑至少临时地使得数据被存储在缓冲存储器中。

示例4.示例3的装置,多块写入交易请求的接受的指示包括用于多块写入交易请求的交易标识。所述多个所接收的异步写入操作可以分离地包括交易标识。

示例5.示例4的装置,逻辑还可以基于分开原子写入交易的完成的指示而使得数据被提交以用于存储在所述一个或多个存储器设备中。分开原子写入交易的完成的指示可以包括来自多块写入交易请求的源的包括交易标识的提交指示。

示例6.示例3的装置,逻辑还可以接收在分开原子操作的完成之前结束或取消分开原子写入交易的指示。逻辑还可以使得至少临时存储在缓冲存储器中的数据被删除,或使得数据不被存储在所述一个或多个存储器设备中。

示例7.示例4的装置,缓冲存储器可以包括非易失性或易失性类型的存储器,并且所述一个或多个存储器设备可以包括非易失性类型的存储器。

示例8.示例5的装置,缓冲存储器可以包括易失性类型的存储器。对于该示例,逻辑可以接收包括来自多块写入交易请求的源的提交指示的分开原子写入交易的完成的指示。逻辑还可以检测在已经将数据的至少部分存储在所述一个或多个存储设备中之前移除对缓冲存储器的初级功率的功率失效事件。逻辑还可以利用辅助功率以使得数据的所述至少部分从易失性类型的存储器被存储到所述一个或多个存储器设备。

示例9.示例7的装置,辅助功率可以包括基于电容的辅助功率,并且初级功率包括基于电池或基于电源输出口的功率。

示例10.示例1的装置还可以包括表格存储器。逻辑使得数据被存储在所述一个或多个存储器设备中可以包括逻辑使得用于所述多个异步写入操作的数据被存储在所述一个或多个存储器设备的物理存储器地址中。对于该示例,逻辑还可以创建用于将所述多个异步写入操作映射到物理存储器地址的l2p间接表。逻辑还可以将交易特定l2p间接表存储在表格存储器中。逻辑还可以响应于是否接收到分开原子写入交易的完成的指示或结束分开原子写入交易的指示而基于交易特定l2p间接表更新针对所述一个或多个存储器设备的初级l2p间接表。

示例11.示例10的装置,逻辑还可以接收分开原子写入交易的完成的指示。分开原子写入交易的完成的指示可以包括来自多块写入交易请求的源的提交指示。逻辑还可以响应于提交指示而基于交易特定l2p间接表而更新初级l2p间接表。

示例12.示例10的装置,逻辑还可以接收结束分开原子写入交易的指示,结束分开原子写入交易的指示包括来自多块写入交易请求的源的取消指示。逻辑还可以响应于取消指示而舍弃交易特定l2p间接表,或使得初级l2p间接表不利用交易特定l2p间接表进行更新。

示例13.示例10的装置,表格存储器可以包括非易失性类型的存储器或易失性类型的存储器。

示例14.示例13的装置,表格存储器包括易失性类型的存储器,逻辑可以接收分开原子写入交易的完成的指示,所述指示包括来自多块写入交易请求的源的提交指示。逻辑还可以检测在基于交易特定l2p间接表更新初级l2p间接表之前移除对表格存储器的初级功率的功率失效事件。逻辑还可以利用辅助功率以使得基于交易特定l2p间接表而更新初级l2p间接表。

示例15.示例14的装置,辅助功率可以包括基于电容的辅助功率。

示例16.示例13的装置,表格存储器包括非易失性类型的存储器。逻辑可以接收分开原子写入交易的完成的指示,所述指示包括来自多块写入交易请求的源的提交指示。逻辑还可以检测在基于交易特定l2p间接表更新初级l2p间接表之前移除对表格存储器的初级功率的功率失效事件。逻辑还可以响应于恢复对表格存储器的初级功率而基于交易特定l2p间接表更新初级l2p间接表。

示例17.示例1的装置,所述一个或多个存储器设备可以包括一个或多个类型的非易失性存储器以包括3维交叉点存储器、闪速存储器、铁电存储器、sonos存储器、聚合物存储器、铁电聚合物存储器、fetram、feram、奥式存储器、纳米线、电eeprom、相变存储器、忆阻器或stt-mram。

示例18.一种示例方法可以包括在用于存储设备的控制器处接收针对与所述一个或多个存储器设备的分开原子写入交易的多块写入交易请求。方法还可以包括向多块写入交易请求的源发送多块写入交易请求的接受的指示。方法还可以包括接收以任何任意顺序发送的多个异步写入操作,以便将数据存储到所述一个或多个存储器设备,所述多个异步写入操作用于分开原子写入操作。方法还可以包括使得数据被存储在所述一个或多个存储器设备中。

示例19.示例18的方法,包括存储设备与主计算设备耦合。对于该示例,多块写入交易请求的源可以是在主计算设备处执行的应用或操作系统。

示例20.示例18的方法,使得数据被存储在所述一个或多个存储器设备中可以包括在存储设备处维护的缓冲存储器中至少临时地存储数据。

示例21.示例20的方法,可以包括基于分开原子写入交易的完成的指示而使得数据被提交以用于存储在所述一个或多个存储器设备中。对于该示例,分开原子写入交易的完成的指示可以包括来自多块写入交易请求的源的提交指示。

示例22.示例20的方法,可以包括接收在分开原子操作的完成之前结束或取消分开原子写入交易的指示。方法还可以包括舍弃至少临时存储在缓冲存储器中的数据,或使得数据不被存储在所述一个或多个存储器设备中。

示例23.示例20的方法,缓冲存储器可以包括非易失性或易失性类型的存储器,并且所述一个或多个存储器设备包括非易失性类型的存储器。

示例24.示例23的方法,缓冲存储器包括易失性类型的存储器。方法还可以包括接收包括来自多块写入交易请求的源的提交指示的分开原子写入交易的完成的指示。方法还可以包括检测在已经将数据的至少部分存储在所述一个或多个存储设备中之前的针对存储设备的功率失效事件。方法还可以包括利用辅助功率以使得数据的所述至少部分从易失性类型的存储器被存储到所述一个或多个存储器设备。

示例25.示例23的方法,辅助功率可以包括基于电容的辅助功率。

示例26.示例18的方法,使得数据被存储在所述一个或多个存储器设备中可以包括使得用于所述多个异步写入操作的数据被存储在所述一个或多个存储器设备的物理存储器地址中。使得数据被存储在所述一个或多个存储设备中还可以包括创建用于将针对所述多个异步写入操作的数据映射到物理存储器地址的l2p间接表。使得数据被存储在所述一个或多个存储设备中还可以包括在存储设备处维护的表格存储器中维护交易特定l2p间接表。使得数据被存储在所述一个或多个存储设备中还可以包括响应于是否接收到分开原子写入交易的完成的指示或结束分开原子写入交易的指示而基于交易特定l2p间接表更新针对所述一个或多个存储器设备的初级l2p间接表。

示例27.示例26的方法,还可以包括接收分开原子写入交易的完成的指示。分开原子写入交易的完成的指示可以包括来自多块写入交易请求的源的提交指示。方法还可以包括响应于提交指示而基于交易特定l2p间接表而更新初级l2p间接表。

示例28.示例26的方法,还可以包括接收结束分开原子写入交易的指示。结束分开原子写入交易的指示可以包括来自多块写入交易请求的源的取消指示。方法还可以包括响应于取消指示而舍弃交易特定l2p间接表,或使得初级l2p间接表不利用交易特定l2p间接表进行更新。

示例29.示例26的方法,表格存储器可以包括非易失性类型的存储器或易失性类型的存储器。

示例30.示例29的方法,表格存储器包括易失性类型的存储器。方法还可以包括接收分开原子写入交易的完成的指示,所述指示包括来自多块写入交易请求的源的提交指示。方法还可以包括检测在基于交易特定l2p间接表更新初级l2p间接表之前的针对存储设备的功率失效事件。方法还可以包括利用辅助功率以使得基于交易特定l2p间接表而更新初级l2p间接表。

示例31.示例30的方法,辅助功率可以包括基于电容的辅助功率。

示例32.示例29的方法,表格存储器可以包括非易失性类型的存储器。方法还可以包括接收分开原子写入交易的完成的指示,所述指示包括来自多块写入交易请求的源的提交指示。方法还可以包括检测在基于交易特定l2p间接表更新初级l2p间接表之前的针对存储设备的功率失效事件。方法还可以包括响应于恢复在存储设备中的功率而基于交易特定l2p间接表更新初级l2p间接表。

示例33.示例18的方法,所述一个或多个存储器设备可以包括一个或多个类型的非易失性存储器以包括3维交叉点存储器、闪速存储器、铁电存储器、sonos存储器、聚合物存储器、铁电聚合物存储器、fetram、feram、奥式存储器、纳米线、电eeprom、相变存储器、忆阻器或stt-mram。

示例34.示例至少一个机器可读介质可以包括多个指令,所述多个指令响应于由存储设备处的系统执行,可以使得系统实施根据示例18至33中的任何一个的方法。

示例35.一种装置可以包括用于执行示例18至33中的任何一个的方法的部件。

示例36.一种示例系统可以包括用于使主计算设备执行一个或多个应用的处理器。系统还可以包括与计算平台耦合的存储设备,存储设备包括一个或多个存储器设备和包括逻辑的存储控制器,所述逻辑的至少部分在硬件中,逻辑从由处理器执行的应用接收多块写入交易请求。多块写入交易请求可以是针对与所述一个或多个存储器设备的分开原子写入交易。逻辑还可以向应用发送多块写入交易请求的接受的指示。逻辑还可以从应用接收多个异步写入操作以便将数据存储到所述一个或多个存储器设备。逻辑还可以使得数据被存储在所述一个或多个存储器设备中。

示例37.示例36的系统,存储设备可以包括缓冲存储器。对于该示例,逻辑可以使得数据被存储在所述一个或多个存储器设备中包括逻辑至少临时地使得数据被存储在缓冲存储器中。

示例38.示例37的系统,逻辑还可以基于分开原子写入交易的完成的指示而使得数据被提交以用于存储在所述一个或多个存储器设备中。对于该示例,分开原子写入交易的完成的指示可以包括来自应用的提交指示。

示例39.示例38的系统,逻辑还可以从应用接收在分开原子操作的完成之前结束或取消分开原子写入交易的指示。逻辑还可以使得至少临时存储在缓冲存储器中的数据被删除,或使得数据不被存储在所述一个或多个存储器设备中。

示例40.示例38的系统,缓冲存储器可以包括非易失性或易失性类型的存储器,并且所述一个或多个存储器设备可以包括非易失性类型的存储器。

示例41.示例40的系统,缓冲存储器包括易失性类型的存储器。对于该示例,逻辑可以接收包括来自应用的提交指示的分开原子写入交易的完成的指示。逻辑还可以检测在已经将数据的至少部分存储在所述一个或多个存储设备中之前针对存储设备的功率失效事件。逻辑还可以利用辅助功率以使得数据的所述至少部分从易失性类型的存储器被存储到所述一个或多个存储器设备。

示例42.示例40的系统,辅助功率可以包括基于电容的辅助功率。

示例43.示例36的系统,存储设备可以包括表格存储器。对于该示例,使得数据被存储在所述一个或多个存储器设备中的逻辑可以包括逻辑使得用于所述多个异步写入操作的数据被存储在所述一个或多个存储器设备的物理存储器地址中。逻辑还可以创建用于将针对所述多个异步写入操作的数据映射到物理存储器地址的l2p间接表。逻辑还可以将交易特定l2p间接表存储在表格存储器中。逻辑还可以响应于是否接收到分开原子写入交易的完成的指示或结束分开原子写入交易的指示而基于交易特定l2p间接表更新针对所述一个或多个存储器设备的初级l2p间接表。

示例44.示例43的系统,逻辑还可以接收分开原子写入交易的完成的指示。对于该示例,来自应用的分开原子写入交易的完成的指示包括提交指示。逻辑还可以响应于提交指示而基于交易特定l2p间接表而更新初级l2p间接表。

示例45.示例43的系统,逻辑还可以接收结束分开原子写入交易的指示。对于该示例,结束分开原子写入交易的指示可以包括来自应用的取消指示。逻辑还可以响应于取消指示而舍弃交易特定l2p间接表,或使得初级l2p间接表不利用交易特定l2p间接表进行更新。

示例46.示例43的系统,表格存储器可以包括非易失性类型的存储器或易失性类型的存储器。

示例47.示例46的系统,表格存储器包括易失性类型的存储器。对于该示例,逻辑可以接收分开原子写入交易的完成的指示,所述指示包括来自应用的提交指示。逻辑还可以检测在基于交易特定l2p间接表更新初级l2p间接表之前的针对存储设备的功率失效事件。逻辑还可以利用辅助功率以使得基于交易特定l2p间接表而更新初级l2p间接表。

示例48.示例47的系统,辅助功率可以包括基于电容的辅助功率。

示例49.示例46的系统,表格存储器包括非易失性类型的存储器。对于该示例,逻辑可以接收分开原子写入交易的完成的指示,所述指示包括来自应用的提交指示。逻辑还可以检测在基于交易特定l2p间接表更新初级l2p间接表之前的针对存储设备的功率失效事件。逻辑还可以响应于恢复存储设备中的功率而基于交易特定l2p间接表更新初级l2p间接表。

示例50.示例36的系统,所述一个或多个存储器设备可以包括一个或多个类型的非易失性存储器以包括3维交叉点存储器、闪速存储器、铁电存储器、sonos存储器、聚合物存储器、铁电聚合物存储器、fetram、feram、奥式存储器、纳米线、电eeprom、相变存储器、忆阻器或stt-mram。

示例51.示例36的系统还可以包括与处理器耦合以呈现用户接口视图的数字显示器。

要强调的是,提供本公开的摘要以遵守37c.f.r.章节1.72(b),其要求摘要,摘要将允许读者快速查明技术公开内容的实质。提出以下理解:其将不用于解释或限制权利要求的范围或含义。此外,在以上具体实施方式中,可以看到,在单个示例中各种特征可以成组在一起以用于流线化本公开的目的。这种公开方法不应当被解释为反映以下意图:所要求保护的示例要求比明确记载在每一个权利要求中的更多的特征。而是,如以下权利要求所反映的,发明主题在于少于单个所公开的示例的全部特征。因此,以下权利要求特此并入到具体实施方式中,其中每一个权利要求独立作为分离的示例。在随附权利要求中,术语“包含”和“在其中”分别用作相应的术语“包括”和“其中”的简明英语等同物。而且,术语“第一”、“第二”、“第三”等仅仅用作标记,并且不意图对其对象强加数值要求。

尽管已经以具体到结构特征和/或方法动作的语言描述了主题,但是要理解到,在随附权利要求中限定的主题未必限于以上所描述的具体特征或动作。而是,以上描述的具体特征和动作作为实现权利要求的示例形式而公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1