CN102428451A - 用于数据存储装置的命令及中断分组 - Google Patents

用于数据存储装置的命令及中断分组 Download PDF

Info

Publication number
CN102428451A
CN102428451A CN2010800203190A CN201080020319A CN102428451A CN 102428451 A CN102428451 A CN 102428451A CN 2010800203190 A CN2010800203190 A CN 2010800203190A CN 201080020319 A CN201080020319 A CN 201080020319A CN 102428451 A CN102428451 A CN 102428451A
Authority
CN
China
Prior art keywords
order
group
main frame
data storage
storage device
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
CN2010800203190A
Other languages
English (en)
Other versions
CN102428451B (zh
Inventor
安德鲁·T·斯温
阿尔贝特·T·博尔歇斯
格兰特·格林德勒
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.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN102428451A publication Critical patent/CN102428451A/zh
Application granted granted Critical
Publication of CN102428451B publication Critical patent/CN102428451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Abstract

一种数据存储装置可包括多个存储器芯片及一控制器,所述控制器可操作地耦合到所述存储器芯片且经布置及配置以:从主机接收命令群组,其中所述群组中的所述命令中的每一者包括相同群组编号以将所述命令识别为所述群组的部分;使用所述存储器芯片来处理所述命令的所述群组;及在所述命令的所述群组完成处理时产生单个中断并将所述单个中断发送到所述主机。

Description

用于数据存储装置的命令及中断分组
相关申请案交叉参考
本申请案请求对在2009年4月8日提出申请且标题为“数据存储装置(DATASTORAGE DEVICE)”的第61/167,709号美国临时申请案及在2009年6月17日提出申请且标题为“快闪存储器数据存储装置中的分割及分条(PARTITIONING ANDSTRIPING IN A FLASH MEMORY DATA STORAGE DEVICE)”的第61/187,835号美国临时申请案的权益,其两者以整体引用的方式并入本文中。
技术领域
本说明涉及数据存储装置的命令及中断分组。
背景技术
可使用数据存储装置来存储数据。数据存储装置可与计算装置一同使用以提供所述计算装置的数据存储需要。在某些实例中,可期望在数据存储装置上存储大量数据。此外,可期望快速地执行从所述数据存储装置读取数据及向所述数据存储装置写入数据的命令。
所述数据存储装置上的所述命令执行的吞吐量可与可由所述数据存储装置处理的命令的数目相关。可期望通过增加可由所述数据存储装置处理的命令的数目来实现所述数据存储装置的高吞吐量。除快速地执行所述命令以外,还可期望准确地执行所述命令,使得将数据错误最小化及/或至少可在对数据吞吐量具有最小影响的情况下校正所述数据错误。
此外,可期望在所述数据存储装置上执行从所述主机接收的命令,同时最小化对主机的影响及主机上的开销。
发明内容
本文件描述一种主机,其具有将命令指定为群组的部分以由数据存储装置处理的驱动器。当所述数据存储装置完成所述群组中的所有所述命令的所述处理时,所述数据存储装置将单个中断发送回到所述主机以指示所述命令群组的所述处理完成。举例来说,一个或一个以上命令线程可由所述驱动器指定为群组。当所述数据存储装置完成所述命令线程时,所述数据存储装置产生单个中断并将所述单个中断发送到所述主机以指示那些经分组命令的所述处理完成。
通过将命令指定为群组的部分且在所述命令的所述处理完成时将单个中断发送到所述主机,可最小化对所述主机的影响。以此方式,所述主机可花费较少时间来处理中断且可将较多时间投入到执行其它任务。此外,在一些实例中,所述主机可不能够使用所述数据中的任一者,直到已处理所述群组中的所有所述命令为止。在这些实例中,当已处理少于所述群组中的所有所述命令时通知所述主机可没用。
在一个示范性实施方案中,所述主机处的所述驱动器可确定如何将所述命令分组。所述驱动器可基于某些准则将所述命令分组。举例来说,所述驱动器可基于来自与所述驱动器介接的应用程序的所要动作的大小来将所述命令分组。以此方式,所述驱动器可将为来自介接的应用程序的大输入/输出请求的一部分的命令分组在一起。因此,即使当操作系统可将所述大输入/输出请求破分成多个命令以执行所述请求时,所述驱动器也可将所述命令分组在一起。在另一实例中,所述驱动器可基于命令为相同线程的部分来将所述命令分组。
所述数据存储装置可包括多个存储器装置及一控制器。所述控制器可经配置以从所述主机接收命令且使用所述多个存储器装置来处理所述命令。当所述控制器接收到来自所述主机的被识别为群组的部分的命令时,则所述控制器可使用所述存储器装置来处理这些命令且仅在已处理所述群组中的所有所述命令时产生单个中断并将所述单个中断发送回到所述主机。以此方式,不针对所述群组中的每一命令或所述群组中的命令子组产生中断。而是,针对整个命令群组产生单个中断。
所述控制器可包括经布置及配置以追踪经分组命令的中断处理器。所述中断处理器可经配置以在来自多个命令群组的命令正由所述控制器使用所述存储器装置处理时追踪所述多个群组。在一个示范性实施方案中,所述命令包括命令标头且群组编号由所述驱动器插入到所述命令标头中使得可由所述中断处理器来追踪所述命令。所述命令标头还包括旗标,所述旗标可由所述驱动器设定以指示命令为所述群组中的最后命令。所述中断处理器可经配置以辨识所述最后命令旗标,所述最后命令旗标可充当在所述命令已完成处理时产生所述单个中断的指示符。
在一个示范性实施方案中,所述控制器可包括用于对来自主机的命令进行追踪、排序、排队及处理以在数据存储装置上执行的命令处理器。所述命令处理器可经布置及配置以通过给来自所述主机的传入命令中的每一者指派全局时隙识别符来追踪所述命令且使用基于所述命令的年龄的有序列表来对所述命令进行排队及排序。所述命令处理器可经配置以针对指定给同一存储位置的命令维持如从主机接收的命令次序。所述命令处理器还可经配置以针对指定给不同存储位置的命令无序地取命令。以此方式,在维持次序重要的情况下将命令的次序维持为如从主机接收的次序。同时,所述命令处理器通过针对指定给不同存储位置的命令无序地取命令来保持所有存储位置实质忙碌。所述命令处理器使得能够通过在命令队列中具有指定命令的实质所有存储位置并行地处理命令。
当所述命令处理器在所有个别命令正在被处理时对其进行追踪时,所述中断处理器可追踪为命令群组的部分的命令。以此方式,所述控制器可以非邻接方式来处理命令,其中包括为命令群组的部分的命令。在产生单个中断并将所述单个中断发送到主机之前,所述中断处理器将等待,直到处理群组中的所有命令为止。此使得所述命令处理器能够继续命令的并行处理,且同时减少主机用来处理可原本已从数据存储装置发送的不必要中断的开销及时间。
在一个示范性实施方案中,数据存储装置可包括经布置及配置以控制与一个或一个以上存储器芯片相关联的操作的多个通道控制器。所述存储器芯片可包括快闪存储器芯片。
在一个示范性实施方案中,所述命令处理器、所述中断处理器及所述通道控制器可实施为现场可编程门阵列(FPGA)控制器的部分,其中所述FPGA控制器可为数据存储装置的一部分。
所述数据存储装置可包括一个或一个以上存储器板,其中所述存储器板中的每一者包括多个存储器装置。在一个示范性实施方案中,所述存储器板中的每一者可包括多个快闪存储器芯片。所述存储器板可包括多个通道,可将所述快闪存储器芯片中的一者或一者以上指派给所述通道中的每一者。所述数据存储装置可包括所述存储器板可操作地连接到的控制器板。所述数据存储装置可经配置以使用接口与主机进行通信以从所述主机接收命令且使用所述快闪存储器芯片来处理这些命令。举例来说,所述主机可发送且所述控制器板可接收用以使用所述快闪存储器芯片读取、写入、拷贝及擦除数据块的命令。
在一个示范性实施方案中,所述控制器包括现场可编程门阵列(FPGA)控制器且所述主机与所述控制器板之间的接口可为高速接口,例如(举例来说)外围组件互连高速(PCIe)接口。以此方式,所述数据存储装置可包括高存储体积且可经配置以实现所述主机与所述快闪存储器芯片之间的数据传送的高性能及高速度。
在一个示范性实施方案中,所述数据存储装置可经配置而具有两个存储器板,其中所述存储器板中的每一者包括多个快闪存储器芯片。包括所述控制器板及两个存储器板的所述数据存储装置可以磁盘驱动器形式配置,使得所述数据存储装置装配于计算装置的板上驱动槽中。举例来说,所述数据存储装置可经配置以装配于服务器的板上驱动槽中以为所述服务器提供数据存储容量。所述数据存储装置可经配置而为可抽换的,使得其可容易地从所述计算装置移除且插入于不同计算装置的板上驱动槽中。
在其它示范性实施方案中,所述存储器板中的每一者可包括除快闪存储器芯片以外的存储器装置。举例来说,所述存储器板中的每一者可包括多个动态随机存取存储器(DRAM)芯片。以上文关于快闪存储器芯片所描述的相同方式,所述命令处理器及中断处理器可经配置以处理从所述主机接收的作为群组的命令且在已使用所述DRAM芯片处理所述命令时产生单个中断并将所述单个中断发送回到所述主机。在其它示范性实施方案中,所述存储器板可包括其它类型的存储器装置,其中包括(举例来说)相变存储器(PCM)芯片及其它类型的存储器装置。
根据一个一般方面,一种数据存储装置可包括多个存储器芯片及一控制器,所述控制器可操作地耦合到所述存储器芯片且经布置及配置以:从主机接收命令群组,其中所述群组中的所述命令中的每一者包括相同群组编号以将所述命令识别为所述群组的部分;使用所述存储器芯片来处理所述命令的所述群组;及在所述命令的所述群组完成处理时产生单个中断并将所述单个中断发送到所述主机。
实施方案可包括以下特征中的一者或一者以上。举例来说,所述控制器可经配置以:从所述主机接收多个命令群组,其中所述命令中的每一者包括群组编号以将所述命令识别为所述群组中的一者的部分;使用所述存储器芯片来处理所述命令的所述群组;及在所述命令的所述群组中的每一者完成处理时针对所述群组中的每一者产生单个中断并将所述单个中断发送到所述主机。所述控制器可经配置以使用所述存储器芯片按非邻接次序来处理所述命令的所述群组。
所述命令中的每一者可包括命令标头且所述命令标头包括所述群组编号。所述命令的所述群组中的最后命令可包括命令标头中的用以向所述控制器指示所述最后命令的旗标。所述群组编号可将所述命令中的每一者识别为所述群组的部分而不使用所述命令中的指针来指向所述群组中的下一命令的。
所述控制器可包括中断处理器,所述中断处理器经布置及配置以在所述命令由所述控制器处理时追踪所述命令的所述群组,且在所述命令的所述群组完成处理时产生所述单个中断并将所述单个中断发送到所述主机。所述中断处理器可包括多个计数器,其中所述计数器中的每一者被指派给由所述控制器接收的不同命令群组。所述中断处理器可包括多个不同中断机制。一个以上中断机制可在相同时间启用。所述中断机制可包括水印中断机制、超时中断机制及群组中断机制。
在一个示范性实施方案中,所述存储器芯片可为快闪存储器芯片,且所述控制器可为现场可编程门阵列(FPGA)控制器。所述数据存储装置可包括:存储器板,在所述存储器板上所述快闪存储器芯片可布置及配置成多个通道,其中所述通道中的每一者与所述快闪存储器芯片中的一者或一者以上相关联;及控制器板,其可操作地连接到所述存储器板。所述控制器板可包括:高速接口;及所述控制器,其可经布置及配置以使用所述高速接口从所述主机接收所述命令。
在另一一般方面中,一种用于在具有多个存储器芯片的数据存储装置上处理命令群组的方法可包括:从主机接收命令群组,其中所述群组中的所述命令中的每一者包括相同群组编号以将所述命令识别为所述群组的部分;使用多个存储器芯片来处理所述命令群组;及在所述命令的所述群组完成处理时产生单个中断并将所述单个中断发送到所述主机。
实施方案可包括以下特征中的一者或一者以上。举例来说,从所述主机接收所述命令的所述群组可包括从所述主机接收多个命令群组,其中所述命令中的每一者包括群组编号以将所述命令识别为所述群组中的一者的部分;处理所述命令的所述群组可包括使用所述存储器芯片来处理所述命令的所述群组;且产生并发送所述单个中断可包括在所述群组中的每一者完成处理时针对所述群组中的每一者产生单个中断并将所述单个中断发送到所述主机。处理所述命令的所述群组可包括使用所述存储器芯片按非邻接次序来处理所述命令的所述群组。
在另一一般方面中,一种用于在控制器中追踪命令的设备可包括:多个群组计数器,其中所述群组计数器中的每一者经配置以通过以下方式来追踪正由控制器处理的命令群组:在所述群组中的命令开始由所述控制器处理时递增且在所述群组中的命令完成处理时递减;及中断发送逻辑,其可操作地耦合到所述群组计数器且经布置及配置以在群组中的所有所述命令完成处理时针对所述群组计数器中的每一者产生并发送单个中断。
实施方案可包括以下特征中的一者或一者以上。举例来说,同一群组中的所述命令中的每一者可由相同群组编号来识别。所述多个群组计数器可经配置以在正由所述群组计数器中的一者追踪的命令开始处理时接收用以递增所述群组计数器的信号。所述多个群组计数器可经配置以在正由所述群组计数器中的一者追踪的命令完成处理时接收用以递减所述群组计数器的信号。所述中断发送逻辑可经配置以在群组中的最后命令开始处理且与最终命令相关联的所述群组计数器递减到零时产生并发送所述单个中断。
在另一一般方面中,一种用于在控制器中追踪命令的方法可包括:在命令群组中的命令开始处理时递增群组计数器;在所述命令群组中的命令完成处理时递减所述群组计数器;及在所述群组中的所有所述命令完成处理时针对所述命令群组产生并发送单个中断。
实施方案可包括以下特征中的一者或一者以上。举例来说,产生并发送所述单个中断可包括在所述群组中的最后命令开始处理且所述群组计数器递减到零时产生并发送所述单个中断。
在另一一般方面中,一种系统可包括:数据存储装置,其包括多个存储器芯片及用于在主机与所述多个存储器芯片之间传递数据的多个物理通道,每一通道可操作地连接到不同多个所述存储器芯片;及主机,其使用接口可操作地耦合到所述数据存储装置。所述主机可包括驱动器,所述驱动器经配置以:将命令发送到所述数据存储装置以由所述数据存储装置使用所述多个存储器芯片来进行处理;将所述命令分组成一个或一个以上不同群组且给群组中的所述命令中的每一者指派一群组编号;及标记群组中的最后命令。
实施方案可包括以下特征中的一者或一者以上。举例来说,所述数据存储装置可经配置以在处理所述群组中的所述命令之后产生单个中断并将所述单个中断发送到所述主机。所述多个存储器芯片可包括快闪存储器芯片。所述驱动器可经配置以追踪群组编号的使用。所述数据存储装置可经配置以使用所述多个存储器芯片按非邻接次序来处理所述命令的群组。
所述主机可经配置以在所述数据存储装置上启用一个或一个以上中断机制。所述中断机制可包括水印中断机制、超时中断机制及群组中断机制。
在附图及下文说明中阐述一个或一个以上实施方案的细节。从所述说明及图式且从权利要求书将明了其它特征。
附图说明
图1是主机及数据存储装置的示范性框图。
图2是中断处理器的示范性框图。
图3是数据存储装置的命令处理器的示范性框图。
图4是未决命令模块的示范性框图。
图5是所述数据存储装置的印刷电路板的示范性透视框图。
图6是与图1的数据存储装置一同使用的示范性计算装置的示范性框图。
图7是图解说明用于在数据存储装置上处理命令群组的过程的示范性流程图。
图8是图解说明用于在控制器中追踪命令的过程的示范性流程图。
具体实施方式
本文件描述用于在主机处将命令分组及在数据存储装置中处理所述命令的设备、系统及技术。所述主机可确定待将哪些命令分组在一起且可提供哪些命令在同一群组中的指示。举例来说,所述主机可指派群组编号并将所述群组编号插入到为群组的部分的每一命令的命令标头中。所述数据存储装置可包括控制器,所述控制器具有经配置以追踪所述命令的处理的中断处理器。当所述数据存储装置完成所述群组中的所有命令的处理时,所述中断处理器产生单个中断并将所述单个中断发送回到所述主机以指示所述命令群组的处理完成。
参照图1,其图解说明用于处理并追踪群组中的命令的系统的框图。图1图解说明数据存储装置100及主机106的框图。数据存储装置100可包括控制器板102及一个或一个以上存储器板104a及104b。数据存储装置100可经由接口108与主机106进行通信。接口108可在主机106与控制器板102之间。
控制器板102可包括控制器110、DRAM 111、多个通道112、电力模块114及存储器模块116。控制器110可包括命令处理器122及中断处理器124以及其它组件,所述其它组件未展示。存储器板104a及104b可包括所述存储器板中的每一者上的多个快闪存储器芯片118a及118b。存储器板104a及104b还可分别包括存储器装置120a及120b。
主机106可包括驱动器107、操作系统109及一个或一个以上应用程序113。一般来说,主机106可产生待在数据存储装置100上执行的命令。举例来说,应用程序113可经配置以产生命令以在数据存储装置100上执行。应用程序113可为可操作地耦合到操作系统109及/或驱动器107。应用程序113可产生所述命令且将所述命令传递到操作系统109。操作系统109可为可操作地耦合到驱动器107,其中驱动器107可充当主机106与数据存储装置100之间的接口。
一般来说,数据存储装置100可经配置以将数据存储于快闪存储器芯片118a及118b上。主机106可将数据写入到快闪存储器芯片118a及118b及从快闪存储器芯片118a及118b读取数据,并且引起将关于快闪存储器芯片118a及118b执行的其它操作。可经由控制器板102上的控制器110来处理且由控制器110来控制主机106与快闪存储器芯片118a及118b之间的数据读取及写入以及其它操作。控制器110可从主机106接收命令且致使使用命令处理器122以及存储器板104a及104b上的快闪存储器芯片118a及118b来执行这些命令。主机106与控制器110之间的通信可经由接口108。控制器110可使用通道112来与快闪存储器芯片118a及118b进行通信。
控制器板102可包括DRAM 111。DRAM 111可为可操作地耦合到控制器110且可用以存储信息。举例来说,DRAM 111可用以存储逻辑地址到物理地址映射及坏块信息。DRAM 111还可经配置以用作主机106与快闪存储器芯片118a及118b之间的缓冲器。
在一个示范性实施方案中,控制器板102以及存储器板104a及104b中的每一者为物理上单独的印刷电路板(PCB)。存储器板104a可在可操作地连接到控制器板102 PCB的一个PCB上。举例来说,存储器板104a可物理及/或电连接到控制器板102。类似地,存储器板104b可为与存储器板104a分开的PCB且可为可操作地连接到控制器板102PCB。举例来说,存储器板104b可物理及/或电连接到控制器板102。存储器板104a及104b每一者可单独地与控制器板102断开及从控制器板102移除。举例来说,存储器板104a可从控制器板102断开且由另一存储器板(未展示)替换,其中所述另一存储器板可操作地连接到控制器板102。在此实例中,可用其它存储器板换出存储器板104a及104b中的任一者或两者,使得所述其它存储器板可与同一控制器板102及控制器110一同操作。
在一个示范性实施方案中,控制器板102以及存储器板104a及104b中的每一者可以磁盘驱动器形状因数物理连接。所述磁盘驱动器形状因数可包括不同大小,例如(举例来说)3.5″磁盘驱动器形状因数及2.5″磁盘驱动器形状因数。
在一个示范性实施方案中,控制器板102以及存储器板104a及104b中的每一者可使用高密度球栅阵列(BGA)连接器电连接。可使用BGA连接器的其它变化形式,其中包括(举例来说)细球栅阵列(FBGA)连接器、超细球栅阵列(UBGA)连接器及微球栅阵列(MBGA)连接器。也可使用其它类型的电连接构件。
在一个示范性实施方案中,存储器芯片118a到118n可包括快闪存储器芯片。在另一示范性实施方案中,存储器芯片118a到118n可包括DRAM芯片或快闪存储器芯片与DRAM芯片的组合。存储器芯片118a到118n也可包括其它类型的存储器芯片。
在一个示范性实施方案中,使用驱动器107及数据存储装置100的主机106可使用主机存储器中缓冲器对来传递命令及响应。术语“缓冲器”与“队列”在本文件通篇中可互换使用。举例来说,命令缓冲器119可用于命令且响应缓冲器123可用于对所述命令的响应或结果。在一个示范性实施方案中,所述命令及结果可为相对小的固定大小块。举例来说,所述命令可为32个字节且所述结果或响应可为8个字节。在其它示范性实施方案中,可使用其它大小的块,其中包括可变大小块。可使用标签来将所述结果与所述命令匹配。以此方式,数据存储装置100可无序地完成命令。
尽管图1图解说明一个命令缓冲器119及一个响应缓冲器123,但可使用多个缓冲器对。举例来说,可使用多达32个缓冲器对且包括32个缓冲器对在内。在一个示范性实施方案中,数据存储装置100可以循环方式服务于命令缓冲器119,其中数据存储装置100可一次从命令缓冲器119检索固定数目个命令。响应缓冲器123可包括其自己的中断及中断参数。
在一个示范性实施方案中,每一命令可指一个存储器页(例如,一个快闪页)、一个擦除块或一个存储器芯片,此取决于所述命令。传送数据的每一命令可包括一个4K直接存储器存取(DMA)缓冲器。可通过发送多个命令来实施较大操作。驱动器107可经布置及配置以将多个命令的单个操作分组在一起,使得数据存储装置100使用快闪存储器芯片118a及118b处理所述命令且在已处理所述多个经分组命令时产生单个中断并将所述单个中断发送回到主机106。
在一个示范性实施方案中,命令缓冲器119及响应缓冲器123每一者包括头指针及尾指针。可在尾指针处插入命令及响应且在头指针处移除。主机106可为命令缓冲器119的生产者及响应缓冲器123的消费者。数据存储装置100可为命令缓冲器119的消费者及响应缓冲器123的生产者。主机106可写入命令尾指针及响应头指针且可读取命令头指针及响应尾指针。数据存储装置100可写入命令头指针及响应尾指针且可读取命令尾指针及响应头指针。在数据存储装置100中,控制器110可执行读取及写入动作。更特定来说,命令处理器122可经配置以执行针对数据存储装置100的读取及写入动作。除头及尾指针以外,主机106与数据存储装置100之间可不需要其它同步。
在一个示范性实施方案中,出于性能原因,可将命令头指针及响应尾指针存储于主机106中(例如,主机RAM中)。可将命令尾指针及响应头指针存储于数据存储装置100中控制器110内的存储器映射I/O空间中。
命令缓冲器119及响应缓冲器123可为命令或响应大小的任意倍数,且驱动器107及数据存储装置100可视需要自由地投送及处理命令及结果,只要其不超限运行命令缓冲器119及响应缓冲器123。在一个实施方案中,命令缓冲器119及响应缓冲器123为环形缓冲器,其使得能够在主机106与数据存储装置100之间进行流控制。
在一个示范性实施方案中,主机106可确定命令缓冲器119及响应缓冲器123的大小。所述缓冲器可大于数据存储装置100可在内部排队的命令的数目。
主机106可将命令写入到命令缓冲器119且更新命令尾指针以向数据存储装置100及数据存储装置100内的命令处理器122指示存在新命令。命令尾指针的写入用信号通知命令处理器122存在新命令。命令处理器122经配置以使用DMA操作从命令缓冲器119读取所述命令且经配置以使用另一DMA操作更新头指针以向主机106指示命令处理器122已接收到所述命令。
当命令处理器122完成所述命令时,命令处理器122使用DMA操作写入响应且用另一DMA操作更新响应尾指针以指示所述命令完成。中断处理器124经配置以在响应缓冲器123中新响应可用时用信号通知主机106中断。主机106经配置以从响应缓冲器123读取所述响应且更新头指针以指示其已接收到所述响应。在一个示范性实施方案中,中断处理器124可不将另一中断发送到主机106,直到前一中断已通过主机106写入到响应头指针得到确认为止。
在一个示范性实施方案中,主机106经由其驱动器107可控制中断处理器124何时应产生中断。主机106可使用一个或一个以上不同中断机制(包括不同中断机制的组合)以将关于中断处理的信息提供到中断处理器124。举例来说,主机106经由驱动器107可配置中断处理器124以使用水印中断机制、超时中断机制、群组中断机制或这些中断机制的组合。
在一个示范性实施方案中,主机106可设定确定水印的响应标记参数,且可设定确定超时的响应延迟参数。主机106可将这些参数传递到中断处理器124。如果响应缓冲器123中的新响应的计数等于或大于响应标记,那么中断处理器124产生中断且将所述计数归零。如果自从最后中断以来的时间(例如,以微秒为单位的时间)等于或大于响应延迟且响应缓冲器123中存在新响应,那么中断处理器124产生中断且将超时归零。如果主机106从响应缓冲器123移除新响应,那么更新新响应的计数且重新开始超时。以此方式,主机106可预先轮询且避免来自中断处理器124的中断。
在另一示范性实施方案中,主机106可使用群组中断机制来确定中断处理器124何时应产生中断并将所述中断发送到主机106。所述命令可共享共用值,所述共用值将命令识别为同一群组的部分。举例来说,驱动器107可将命令分组在一起且给命令群组指派相同群组编号。驱动器107可使用命令标头中的中断群组字段来给群组中的命令指派群组编号。当命令群组中的所有命令已完成且针对所有这些命令的响应已从命令处理器122传送到响应缓冲器123并更新响应尾时,则中断处理器124可产生中断并将所述中断发送到主机106。以此方式,可使用群组中断机制来减少主机106用来处理中断所需要的时间。
可单独地启用或停用中断机制中的每一者。此外,可使用中断机制的任何组合。举例来说,驱动器107可在队列控制寄存器中设定中断启用及停用旗标以确定中断机制中的哪些被启用及中断机制中的哪些被停用。以此方式,可使用中断的组合来减少主机106用来处理中断所需要的时间。主机106可使用其资源来执行其它任务。
在一个示范性实施方案中,可停用所有中断机制。在此情形中,驱动器107可经配置以轮询响应缓冲器123以确定是否存在准备处理的响应。停用所有中断机制可产生最低的可能等待时间。其还可产生驱动器107的高开销。
在另一示范性实施方案中,可连同超时中断机制及/或水印中断机制一起启用群组中断机制。以此方式,如果指定群组中的命令的数目大于响应缓冲器123,那么其它经启用中断机制中的一者将用以中断驱动器107以从响应缓冲器123清除响应,以为命令处理器122向响应缓冲器123添加更多响应而提供空间。
不同中断机制的使用(单独地或以组合方式)可用以调整关于驱动器107的等待时间及/或开销。举例来说,在一个示范性实施方案中,可仅启用超时中断机制。在此情形中,可减小驱动器107上的开销。在另一示范性实施方案中,可仅启用水印中断机制。在此情形中,可将等待时间减少到较低水平。
在一些示范性情形中,正在使用的特定类型的应用程序可作为确定启用哪些中断机制的考虑因素。举例来说,web搜索应用程序可为等待时间敏感的且可以特定组合方式启用中断机制以为web搜索应用程序提供最好等待时间敏感性。在另一实例中,web索引应用程序可不像web搜索应用程序那样对等待时间敏感。而是,处理器性能可为更重要的参数。在此应用程序中,可以特定组合方式启用中断机制以允许低开销,甚至以增加的等待时间为代价。
在一个示范性实施方案中,驱动器107可基于经由操作系统109从应用程序113接收的输入/输出(I/O)操作来确定命令群组。举例来说,应用程序113可请求多个兆字节的读取操作。在此实例中,应用程序113可不能够使用部分响应且应用程序113的唯一有用信息可为整个操作何时已完成。通常,可将所述读取操作破分成许多多个命令。驱动器107可经配置以将所述读取命令辨识为命令群组且在命令标头中的每一者中给所述群组中的命令指派相同群组编号。应用程序113与驱动器107之间的接口可用以向驱动器107指示待将某些操作视为群组。所述接口可经配置以基于不同准则来将操作分组,所述不同准则包括但不限于命令的类型、与所述命令相关联的数据请求的大小、所请求的数据(包括来自多个不同应用程序的请求)的类型、请求的优先等级及其组合。
在一些实施方案中,应用程序113可将关于操作的个别命令信息递送到操作系统109且最终传递到驱动器107。在其它示范性实施方案中,驱动器107可指定一个或一个以上命令线程以视为一群组。
参照图2,其图解说明示范性中断处理器124的框图。中断处理器124可经配置以基于由主机106启用的一个或多个中断机制来产生并发送中断。中断处理器124可包括响应新计数器280、最后响应计时器282、群组计数器284及中断发送逻辑286。
当需要水印中断机制时主机106可启用响应新计数器280。主机106可设定响应标记288,其为提供为到响应新计数器280的输入的参数,如上文所论述。响应新计数器280接收包括何时将响应传送到主机106、何时更新响应头、主机响应缓冲器123中的未完成响应的数目及何时已发送中断的信息作为输入。响应新计数器280经配置以追踪向主机106传送的所述主机迟早会看到的响应的数目。每次将响应传送到响应缓冲器123时,递增计数器。当计数器280达到或超过由主机106设定的水印水平(即,响应标记288)时,则产生水印触发器且将其发送到中断发送逻辑286。水印水平(即,响应标记288)为产生中断所需要的响应缓冲器123中的新响应的数目。如果主机106从响应缓冲器123移除新响应,那么其不朝着满足所述水印水平的方向计数。当产生中断时,将朝向响应标记的计数复位。
如果水印中断机制为唯一启用的中断,那么当达到水印时,则中断发送逻辑286产生中断并将所述中断发送到主机106。将不发送另外的中断,直到主机106确认所述中断并更新响应头。将经更新响应头作为清除中断信号传递到中断发送逻辑286。如果还启用其它中断机制,那么中断发送逻辑286可在也计及其它经启用中断机制的情况下产生中断并将所述中断发送到主机106。
当需要计时器中断机制时可启用最后响应计时器282。最后响应计时器282可经配置以追踪自从最后中断以来的时间。举例来说,最后响应计时器282可追踪自从最后中断以来的时间量(以微秒为单位)。主机106可使用参数(举例来说,响应延迟参数290)来设定所述时间量。在一个示范性实施方案中,响应延迟290超时可为在产生中断之前自从最后中断以来或自从主机106最后一次从响应缓冲器123移除新响应以来的微秒数。
最后响应计时器282接收指示何时发送中断的信号作为输入。最后响应计时器282还可接收何时更新响应头的信号,所述信号指示主机106已从响应缓冲器123移除响应。可仅在响应缓冲器123含有未完成响应的情况下产生中断。
最后响应计时器282经配置以在正由最后响应计时器282追踪的时间量大于响应延迟参数290时产生超时触发器。当此发生且响应缓冲器123含有新响应时,则将超时触发器信号发送到中断发送逻辑286。如果最后响应计时器282为唯一启用的中断机制,那么中断发送逻辑286产生中断并将所述中断发送到主机。如果还启用其它中断机制,那么中断发送逻辑286还可计及所述其它中断机制。
每一中断机制包括启用位且中断发送逻辑286可经配置以在针对经启用中断机制断言中断触发器时产生中断。所述逻辑可经配置以不产生另一中断,直到主机106确认所述中断并更新响应头。队列控制参数292可将用以指示中断机制的状态(例如,中断机制中的哪些被启用及中断机制中的哪些被停用)的输入提供到中断发送逻辑286。
群组计数器284机制可经布置及配置以追踪为由驱动器107指定的群组的部分的命令。当主机106期望追踪作为群组的部分的命令时,主机106可启用群组计数器284,使得仅在处理群组中的所有命令时产生单个中断并将所述单个中断发送回到主机106。以此方式,不针对个别命令中的每一者而是仅针对命令群组产生中断。
群组计数器284可经配置而具有多个计数器以使得能够追踪多个不同命令群组。在一个示范性实施方案中,群组计数器284可经配置以追踪多达128个不同命令群组且包括128个不同命令群组在内。以此方式,每一命令群组存在一计数器。计数器的数目可与可使用命令标头中中断群组字段指定的群组编号的数目相关。
群组计数器284可经配置以在群组的新命令已进入命令处理器122时递增所述群组的计数器。群组计数器284可在群组中的命令中的一者已完成处理时递减所述群组的计数器。以在群组的新命令进入时递增且在所述群组的命令完成时递减的此方式,每一群组中的命令的数目可能为无限的。计数器不需要经确定大小以计及群组中的可能命令的最大数目。而是,可基于数据存储装置100可一次可能处理的命令的数目来确定计数器的大小,所述数目可小于特定群组中的命令的无限数目。
在一个示范性实施方案中,群组计数器284中的每一者可使用由驱动器107指派且出现在每一命令的命令标头中的中断群组字段中的群组编号来追踪特定群组中的命令。每次具有群组编号的命令进入命令处理器122以进行处理时,群组计数器284接收一信号。响应于此信号,所述群组的计数器递增。每次具有群组编号的命令完成处理时,群组计数器284也接收一信号。响应于此信号,所述群组的计数器递减。
驱动器107可用旗标标记命令群组中的最后命令以向群组计数器284指示所述命令为群组中的最后命令。在一个示范性实施方案中,可将命令标头中的中断群组字段中的最后位用作所述旗标。群组计数器284经配置以辨识所述旗标何时被设定。以此方式,群组计数器284保持在数据存储装置100中正在处理中的特定群组中的命令的数目的计数器。群组计数器284还追踪何时已看到所述群组的结尾。
当命令从主机106发送到数据存储装置100时,递增其中断群组的计数器。当响应从数据存储装置100发送到主机106时,递减其中断群组的计数器。当在群组计数器284处接收到群组中的最后命令且所述群组的计数变为零时,产生群组触发器信号并将其发送到中断发送逻辑286。当在中断发送逻辑286处接收到所述群组触发器信号时,则将中断发送到主机106。群组计数器284接着清除所述群组的结尾群组旗标。
驱动器107可经配置以追踪使用中的群组。驱动器107可不重新使用中断群组编号,直到使用所述中断群组编号的先前命令已全部完成且已确认所述中断。
在一个示范性实施方案中,驱动器107可经配置以动态地确定其想要产生多少中断。举例来说,驱动器107可依据各种准则(包括(举例来说)体积、等待时间及主机106上的其它因数)来动态地确定命令群组的大小。
在一个示范性实施方案中,中断发送逻辑286可经配置以合并多个中断群组的多个中断且针对多个命令群组仅发送单个中断。
图3是命令处理器122的框图。命令处理器122可包括时隙追踪器模块302、命令传送模块304、未决命令模块306、命令包存储器308及任务分派模块310。命令处理器122可以硬件、软件或硬件与软件的组合来实施。在一个示范性实施方案中,命令处理器122可实施为现场可编程门阵列(FPGA)控制器的一部分。FPGA控制器可经配置以使用固件或其它指令编程FPGA控制器以执行本文中所论述的功能。
命令处理器122可经布置及配置以从主机检索命令且将来自所述主机的所述命令排队及排序以由各种存储位置进行处理。命令处理器122可经配置以通常尝试保持所有或实质所有所述存储位置忙碌来最大化所述存储位置的可存取性。命令处理器122可经配置以按次序分派指定给同一存储位置的命令,以便保持从主机接收的所述命令的次序。命令处理器122可经配置以对指定给不同存储位置的命令进行重新排序并无序地分派所述命令。以此方式,通过对指定给不同存储位置的命令进行重新排序而可并行地处理从主机接收的命令,且同时保持指定给同一存储位置的命令的次序。
在一个示范性实施方案中,命令处理器122可使用有序列表来对来自主机的命令进行排队及排序。在一个示范性实施方案中,可基于来自主机的命令的年龄来将所述有序列表分类及/或以其它方式排序。举例来说,当从主机接收到新命令时,按从主机接收这些命令的次序将其置于所述有序列表的底部处。以此方式,按正确次序维持依赖于次序的命令(例如,指定给同一存储位置的命令)。
在一个示范性实施方案中,存储位置可包括多个快闪存储器芯片。快闪存储器芯片可布置及配置成多个通道,其中所述通道中的每一者包括所述快闪存储器芯片中的一者或一者以上。命令处理器122可经布置及配置以基于所述有序列表按次序来分派指定给同一通道及/或同一快闪存储器芯片的命令。此外,命令处理器122可经布置及配置以无序地分派指定给不同通道及/或不同快闪存储器芯片的命令。以此方式,命令处理器122可在需要的情况下对来自所述有序列表的命令进行重新排序,使得可同时保持所述通道及所述快闪存储器芯片忙碌。此使得能够并行地处理来自主机的命令且使得能够在不同通道及不同快闪存储器芯片上同时处理更多命令。
可在驱动器(例如,图1的驱动器107)的控制下分派及追踪来自主机的命令,其中所述驱动器可为计算机程序产品,所述计算机程序产品有形地体现于存储媒体上且可包括用于产生并分派来自主机(例如,图1的主机106)的命令的指令。来自主机的命令可指定特定存储位置,举例来说,特定快闪存储器芯片及/或特定通道。从主机的角度,可为重要的是按主机所规定的次序执行指定给同一存储位置的命令。举例来说,可为重要的是由主机产生的某些操作在同一快闪存储器芯片上按次序发生。举例来说,主机可产生并发生针对特定快闪存储器芯片的擦除命令及写入命令,其中主机期望所述擦除命令首先发生。重要的是,所述擦除命令首先发生使得与所述写入命令相关联的数据不会在其被写入到快闪存储器芯片之后被立即擦除。
作为另一实例,对于快闪存储器芯片,可为重要的是按次序向擦除块的页写入。此操作可包括用以在同一快闪存储器芯片上执行所述操作的多个命令。在此实例中,必需按主机所规定的次序来执行此操作的这些命令。举例来说,单个写入操作可包括六十个命令以上。命令处理器122可经配置以确保使用有序列表按次序执行针对同一快闪存储器芯片的命令。
在一个示范性实施方案中,命令处理器122可经配置以追踪正在处理的命令的数目。命令处理器122可经配置以追踪可用于接收并处理命令的时隙的数目。命令处理器122的组件中的一者—时隙追踪器模块302可经配置以追踪可用于来自主机的命令的时隙。时隙追踪器模块302可追踪开放的时隙,将所述时隙提供给从主机传送的新命令且在所述命令完成后即刻将所述时隙指定为开放的。
在一个示范性实施方案中,时隙追踪器模块302可包括固定数目个时隙,其中可将每一时隙指定给单个命令。举例来说,时隙追踪器模块302可包括128个时隙。在其它示范性实施方案中,时隙追踪器模块302可包括不同数目个固定时隙。此外,举例来说,时隙的数目可为可变或可配置的。时隙追踪器模块302可以软件、硬件或硬件与软件的组合实施为寄存器或存储器模块。
时隙追踪器模块302可包括时隙的列表,其中所述时隙中的每一者与全局时隙识别符相关联。当从主机接收到命令时,所述命令被指派到可用时隙且与所述时隙的全局时隙识别符相关联。时隙追踪器模块302可经配置以给所述命令中的每一者指派全局时隙识别符,其中全局时隙识别符的数目是固定的以匹配时隙追踪器模块302中的时隙的数目。命令贯穿其处理与全局时隙识别符相关联,直到所述命令完成且时隙被释放为止。在一个示范性实施方案中,全局时隙识别符为与特定时隙相关联的标签,所述特定时隙被指派到填充所述特定时隙的命令。所述标签与所述命令相关联且属于所述命令,直到所述命令的处理完成且其所占据的时隙被释放且可用于接收新命令为止。可不按时隙的次序放置命令,而是可将命令置于可用时隙中的任一者中且给其指派与所述时隙相关联的全局时隙识别符。
在一个示范性实施方案中,命令处理器122的组件中的一者—命令传送模块304可经配置以基于时隙追踪器模块302中的可用时隙的数目及主机处新命令的可用性来从主机检索新命令。在一个示范性实施方案中,命令传送模块304可实施为状态机。
时隙追踪器模块302可将关于可用时隙的数目的信息提供到命令传送模块304。此外,命令传送模块304可关于可用时隙的数目而查询时隙追踪器模块302。
在一个示范性实施方案中,命令传送模块304可使用命令尾指针312及命令头指针314来指示主机处何时有及有多少新命令可用于检索。命令传送模块304可将命令尾指针312与命令头指针314进行比较以确定是否存在来自主机的可用于检索的命令。如果命令尾指针312与命令头指针314相等,那么无命令可用于传送。如果命令尾指针312大于命令头指针314,那么命令可用于传送。
在一个示范性实施方案中,命令尾指针312及命令头指针314可实施为经配置以保持指针值的寄存器且可为命令处理器122的一部分。命令尾指针314可由主机写入。举例来说,当主机处有命令可用于检索时,驱动器可使用存储器映射输入/输出(MMIO)写入来更新命令尾指针312。当从主机检索到命令时,命令传送模块304更新命令头指针314。
当满足主机处有可用时隙及可用命令的条件时,命令传送模块304可从主机检索所述可用命令中的一些或全部。在一个示范性实施方案中,命令传送模块304可在单个存取中检索命令群组。举例来说,命令传送模块304可经配置以使用直接存储器存取(DMA)操作一次从主机检索八个命令的群组。当检索到命令时,命令传送模块304更新命令头指针314。可经由总线主控器316从主机检索命令。命令传送模块304还可经由总线主控器316使用DMA操作来向主机命令头指针(未展示)写入以更新主机命令头指针。
队列控制件318可经配置以启动及停用命令传送模块304。队列控制件318可实施为经由驱动器从主机接收指令的寄存器。队列控制件318可为命令处理器122的组件。当队列控制件318寄存器被设定为启用时,则命令传送模块304可从主机检索命令并处理所述命令。驱动器控制队列控制件318的设定,使得命令传送模块304仅在主机准备就绪且已提供其准备就绪的指示时检索命令。当队列控制件318寄存器被设定为停用时,则命令传送模块104可不从主机检索命令及处理所述命令。
所检索的命令中的每一者由时隙追踪器模块302指派给可用时隙中的一者且与所述可用时隙的全局时隙识别符相关联。可将所述命令的数据存储于命令包存储器308中。举例来说,命令包存储器308可实施为由全局时隙识别符加索引的固定缓冲器。特定命令的数据可存储于命令包存储器308中且由其所指派全局时隙识别符加索引。特定命令的数据可保持在命令包存储器308中,直到所述命令由任务分派模块310分派到指定存储位置为止。
命令传送模块304还可经配置以给控制器的其它组件提供与由时隙加索引的命令相关的信息。举例来说,命令传送模块304可将数据提供到DMA引擎。命令传送模块304还可将状态包标头数据提供到状态处理器。命令传送模块304可将中断群组数据提供到中断处理器。举例来说,命令传送模块304可将群组信息319传送到中断处理器(例如,图1及2的中断处理器124)。
未决命令模块306可经配置以使用基于命令的年龄的有序列表来对命令进行排队及排序。在一个示范性实施方案中,未决命令模块306可实施为经配置以存储用以对命令进行排队及排序的多个指针的存储器模块。未决命令模块306可包括为未决的命令的全局时隙识别符连同存储位置识别符的列表。举例来说,存储位置识别符可包括经指定以将在其处处理命令的存储位置。存储位置识别符可包括通道识别符及/或快闪存储器芯片识别符。存储位置识别符为命令的一部分且由主机经由其驱动器来指派。
当检索到新命令时,将全局时隙识别符及存储位置信息添加到未决命令模块306中的有序列表的底部。如上文所论述,将命令的数据存储于命令包存储器308中且由全局时隙识别符加索引。当将命令添加到有序列表时,将指向前一命令的指针与所述命令一同包括在内。还包括指向下一命令的指针。以此方式,有序列表中的每一项目包括全局任务识别符、存储位置识别符、指向前一命令的指针及指向下一命令的指针。在此示范性实施方案中,所述有序列表可称作双链接列表。所述有序列表为从最老命令到最新命令排序的命令的列表。
任务分派模块310经配置以从未决命令模块306中的有序列表移除命令且将其分派到适当存储位置以进行处理。任务分派模块310可从存储位置接收用以指示其准备好接受新命令的输入。在一个示范性实施方案中,任务分派模块310可接收一个或一个以上信号320,例如,指示存储位置中的一者或一者以上准备好接受新命令的信号。未决命令模块306可经配置以首先在有序列表的顶部处以最老命令开始且使所述命令可用于任务分派模块310。未决命令模块306可继续使用有序列表按次序使命令可用于任务分派模块310,直到任务分派模块310从所述列表移除命令为止。在从未决命令模块306中的有序列表移除命令之后,未决命令模块306再次在有序列表的顶部处开始向任务分派模块310回放列表中剩余的命令。
任务分派模块310可经配置以首先在有序列表的顶部处以最老命令开始且使用信号320来确定存储位置是否可用于接收新命令。如果存储位置准备就绪,那么任务分派模块310从命令包存储器308检索命令数据且将所述命令数据及存储位置选择信号322传递到存储位置。未决命令模块306接着更新有序列表及指针以反映命令经分派以进行处理。一旦已分派命令,则任务分派模块310再次在有序列表的顶部处开始。
如果存储位置未准备好接收新命令,那么任务分派模块310移动到有序列表上的下一命令。任务分派模块310确定所述下一命令是针对相同存储位置还是与被跳过的命令不同的存储位置。如果所述下一命令是针对与被跳过的命令相同的存储位置,那么任务分派模块310也将跳过此命令。以此方式,按从主机接收的次序分派及处理指定给同一存储位置的命令。任务分派模块310保持指定给同一存储位置的命令的次序。如果命令指定给不同存储位置,那么任务分派模块310再次确定列表上的下一命令的存储位置是否准备好接受新命令。如果任务分派模块310接收到所述存储位置准备好接受新命令的信号320,那么任务分派模块310将所述命令连同存储位置选择信号322一起从命令包存储器308分派到所述存储位置。未决命令模块306从有序列表移除经分派命令且更新有序列表,其中包括更新与所述命令相关联的指针。以此方式,在移除经分派命令后即刻将剩余指针链接在一起。
还参照图4,其图解说明未决命令模块306的框图。未决命令模块306可包括具有多个端口(端口A及端口B)的单个存储器模块402。存储器模块402可存储与未决命令相关的信息,其中包括每一命令的指针信息,其中所述指针信息可指向下一命令及前一命令。
在操作中,图3的命令传送模块304将新条目请求406发送到未决命令模块306,新条目请求406请求将新命令添加到有序列表。新条目请求406由新条目模块408接收。在一个示范性实施方案中,新条目模块408可实施为状态机。
新条目模块408接收新条目请求406且在有序列表的结尾处将其添加到所述列表,作为存储器模块402中的最新命令。此外,新条目模块408向自由指针列表模块410请求指针。自由指针列表模块410可实施为维持可用于新条目的指针的列表的先输入先输出(FIFO)存储器。
当新条目模块408向自由指针列表模块410请求指针时,自由指针列表模块410将下一条目指针412提供到新条目模块408。下一条目指针412为指向在当前新条目之后的条目将在其处在有序列表上驻存的指针。列表中的当前新条目指向此地址作为其下一地址。新条目指针414为指向当前新条目将在其处在有序列表上驻存的指针,其为前一条目的下一条目指针412。列表中的最后条目指向此地址作为其下一地址。存储器模块402存储与所述命令及所述指针相关的数据字段。当添加新条目时,也更新结尾指针420。
举例来说,如果待添加条目“X”,那么下一条目指针412指向下一条目“Y”且新条目指针414指向待添加的当前条目“X”。在键入“X”且待添加条目“Y”之后,下一条目指针412指向下一条目“Z”且新条目指针414指向待添加的当前条目“Y”。
当图3的任务分派模块310确定待从存储器模块402中的有序列表移除条目时,任务分派模块发送删除请求416。所述删除请求由条目回放与删除模块418接收。条目回放与删除模块418可经配置以首先在有序列表的顶部处以最老命令开始且使所述命令可用于任务分派模块310。条目回放与删除模块418可继续使用有序列表按次序使命令可用于任务分派模块310,直到任务分派模块310从列表移除命令为止。在从有序列表移除命令之后,条目回放与删除模块418致使存储器模块402分派所述命令并将其从有序列表移除。接着释放所述指针且条目回放与删除模块418向自由指针列表模块410提供经移除命令的指针自由的指示。当移除所述命令以维持列表的正确次序时,条目回放与删除模块418还更新存储器模块402中的指针。条目回放与删除模块418还再次在有序列表的顶部处开始向任务分派模块310回放列表中剩余的命令。
在一个示范性实施方案中,条目回放与删除模块418可实施为状态机。条目回放与删除模块418还从新条目模块408接收结尾指针420的输入。可在条目回放与删除模块418正在使命令可用于任务分派模块310时及当从有序列表移除所述列表中的最后条目时使用结尾指针420。以此方式,可更新结尾指针420以指向有序列表的结尾。
返回参照图1,在一个示范性实施方案中,控制器板102(其为其自己的PCB)可在物理上位于存储器板104a及104b中的每一者之间,存储器板104a及104b在其自己单独的PCB上。还参照图5,数据存储装置100可包括一个PCB上存储器板104a、第二PCB上的控制器板102及第三PCB上的存储器板104b。存储器板104a包括多个快闪存储器芯片118a且存储器板104b包括多个快闪存储器芯片118b。控制器板102包括控制器110及到主机(未展示)的接口108以及其它组件(未展示)。
在图5所图解说明的实例中,存储器板104a可操作地连接到控制器板102且位于控制器板102的一侧520a上。举例来说,存储器板104a可连接到控制器板102的顶部侧520a。存储器板104b可操作地连接到控制器板102且位于控制器板102的第二侧520b上。举例来说,存储器板104b可连接到控制器板102的底部侧520b。
存储器板104a及104b与控制器板102之间的其它物理及/或电连接布置是可能的。图5仅图解说明一个示范性布置。举例来说,数据存储装置100可包括两个以上存储器板,例如三个存储器板、四个存储器板或四个以上存储器板,其中所有所述存储器板连接到单个控制器板。以此方式,数据存储装置可仍以磁盘驱动器形状因数来配置。此外,存储器板可在其它布置(例如(举例来说)控制器板在顶部且存储器卡在底部,或控制器板在底部且存储器卡在顶部)中连接到控制器板。
数据存储装置100可经布置及配置以与计算装置协作。在一个示范性实施方案中,控制器板102以及存储器板104a及104b可经布置及配置以装配于计算装置的驱动器托架内。参照图6,图解说明两个示范性计算装置,即服务器630及服务器640。服务器630及640可经布置及配置以提供各种不同类型的计算服务。服务器630及640可包括主机(例如,图1的主机106),所述主机包括计算机程序产品,所述计算机程序产品具有致使服务器630及640中的一个或一个以上处理器提供计算服务的指令。服务器的类型可取决于在服务器上操作的一个或一个以上应用程序(例如,图1的应用程序113)。举例来说,服务器630及640可为应用程序服务器、web服务器、电子邮件服务器、搜索服务器、串流化媒体服务器、电子商务服务器、文件传送协议(FTP)服务器、其它类型的服务器或这些服务器的组合。服务器630可配置成在服务器机架内操作的机架安装服务器。服务器640可配置成独立于服务器机架而操作的独立服务器。即使服务器640不在服务器机架内,其也可经配置而与其它服务器一起操作且可操作地连接到其它服务器。服务器630及640意在图解说明实例性计算装置且可使用其它计算装置,其中包括其它类型的服务器。
在一个示范性实施方案中,图1及图5的数据存储装置100可经确定大小以装配于服务器630的驱动器托架635或服务器640的驱动器托架645内以为服务器630及640提供数据存储功能性。举例来说,数据存储装置100可经确定大小而为3.5″磁盘驱动器形状因数以装配于驱动器托架635及645中。数据存储装置100还可配置成其它大小。数据存储装置100可使用接口108可操作地与服务器630及560连接及通信。以此方式,主机可使用接口108将命令传递到控制器板102且控制器110可使用存储器板104a及104b上的快闪存储器芯片118a及118b来执行所述命令。
返回参照图1,接口108可包括控制器110与主机106之间的高速接口。所述高速接口可使得能够在主机106与快闪存储器芯片118a及118b之间快速传送数据。在一个示范性实施方案中,所述高速接口可包括PCIe接口。举例来说,所述PCIe接口可为PCIex4接口或PCIe x8接口。PCIe接口108可包括到主机106的连接器,例如(举例来说)PCIe连接器电缆组合件。也可使用其它高速接口、连接器及连接器组合件。
在一个示范性实施方案中,控制器板102与存储器板104a及104b上的快闪存储器芯片118a及118b之间的通信可布置及配置成多个通道112。通道112中的每一者可与一个或一个以上快闪存储器芯片118a及118b通信且可由通道控制器(未展示)控制。控制器110可经配置而使得从主机106接收的命令可由控制器110使用通道112中的每一者同时或至少实质上同时执行。以此方式,可在不同通道112上同时执行多个命令,此可改善数据存储装置100的吞吐量。
在图1的实例中,图解说明二十(20)个通道112。完全实线图解说明控制器110与存储器板104a上的快闪存储器芯片118a之间的十(10)个通道。混合的实线与虚线图解说明控制器110与存储器板104b上的快闪存储器芯片118b之间的十(10)个通道。如图1中所图解说明,通道112中的每一者可支持多个快闪存储器芯片。举例来说,通道112中的每一者可支持多达32个快闪存储器芯片。在一个示范性实施方案中,所述20个通道中的每一者可经配置以支持6个快闪存储器芯片并与其通信。在此实例中,存储器板104a及104b中的每一者将各自包括60个快闪存储器芯片。依据快闪存储器芯片118a及118b的类型及数目,数据存储装置100可经配置以存储多达多个数据太字节且包括多个数据太字节在内。
控制器110可包括微控制器、FPGA控制器、其它类型的控制器或这些控制器的组合。在一个示范性实施方案中,控制器110为微控制器。可以硬件、软件或硬件与软件的组合来实施所述微控制器。举例来说,可从存储器(例如,存储器模块116)给所述微控制器加载计算机程序产品,所述计算机程序产品包括在被执行时可致使所述微控制器以某一方式执行的指令。所述微控制器可经配置以使用接口108从主机106接收命令且执行所述命令。举例来说,所述命令可包括用以使用快闪存储器芯片118a及118b读取、写入、拷贝及擦除数据块的命令以及其它命令。
在另一示范性实施方案中,控制器110为FPGA控制器。可以硬件、软件或硬件与软件的组合来实施所述FPGA控制器。举例来说,可从存储器(例如,存储器模块116)给所述FPGA控制器加载固件,所述固件包括在被执行时可致使所述FPGA控制器以某一方式执行的指令。所述FPGA控制器可经配置以使用接口108从主机106接收命令且执行所述命令。举例来说,所述命令可包括用以使用快闪存储器芯片118a及118b读取、写入、拷贝及擦除数据块的命令以及其它命令。
在一个示范性实施方案中,FPGA控制器可支持与主机106的多个接口108。举例来说,FPGA控制器可经配置以支持与主机106的多个PCIe x4或PCIe x8接口。
存储器模块116可经配置以存储数据,可将所述数据加载到控制器110。举例来说,存储器模块116可经配置以存储FPGA控制器的一个或一个以上图像,其中所述图像包括供所述FPGA控制器使用的固件。存储器模块116可与主机106介接以与主机106通信。存储器模块116可与主机106直接介接及/或可经由控制器110间接与主机106介接。举例来说,主机106可将固件的一个或一个以上图像传递到存储器模块116以进行存储。在一个示范性实施方案中,存储器模块116包括电可擦除可编程只读存储器(EEPROM)。存储器模块116还可包括其它类型的存储器模块。
电力模块114可经配置以接收电力(Vin),以执行所接收电力的任何转换且输出输出电力(Vout)。电力模块114可从主机106或从另一源接收电力(Vin)。电力模块114可将电力(Vout)提供到控制器板102及控制器板102上的组件,其中包括控制器110。电力模块114还可将电力(Vout)提供到存储器板104a及104b以及存储器板104a及104b上的组件,其中包括快闪存储器芯片118a及118b。
在一个示范性实施方案中,电力模块114可包括一个或一个以上直流(DC)/DC转换器。DC/DC转换器可经配置以接收电力输入(Vin)且将所述电力转换为一个或一个以上不同电压电平(Vout)。举例来说,电力模块114可经配置以接收+12V(Vin)且将所述电力转换为3.3v、1.2v或1.8v且将所述电力输出(Vout)供应到控制器板102以及存储器板104a及104b。
存储器板104a及104b可经配置以处置不同类型的快闪存储器芯片118a及118b。在一个示范性实施方案中,快闪存储器芯片118a及快闪存储器芯片118b可为相同类型的快闪存储器芯片,其中包括需要来自电力模块114的相同电压及来自相同快闪存储器芯片销售商。术语销售商与制造商在本文件通篇中可互换使用。
在另一示范性实施方案中,存储器板104a上的快闪存储器芯片118a可为与存储器板104b上的快闪存储器芯片118b不同的类型的快闪存储器芯片。举例来说,存储器板104a可包括SLC NAND快闪存储器芯片且存储器板104b可包括MLC NAND快闪存储器芯片。在另一实例中,存储器板104a可包括来自一个快闪存储器芯片制造商的快闪存储器芯片且存储器板104b可包括来自不同快闪存储器芯片制造商的快闪存储器芯片。具有全部相同类型的快闪存储器芯片或具有不同类型的快闪存储器芯片的灵活性使得能够使数据存储装置100适合主机106正在使用的不同应用程序113。
在另一示范性实施方案中,存储器板104a及104b可在同一存储器板上包括不同类型的快闪存储器芯片。举例来说,存储器板104a可在同一PCB上包括SLC NAND芯片及MLC NAND芯片两者。类似地,存储器板104b可包括SLC NAND芯片及MLC NAND芯片两者。以此方式,数据存储装置100可有利地经定制以满足主机106的规格。
在另一示范性实施方案中,存储器板104a及104b可包括其它类型的存储器装置,其中包括非快闪存储器芯片。举例来说,存储器板104a及104b可包括随机存取存储器(RAM),例如(举例来说)动态RAM(DRAM)及静态RAM(SRAM)以及其它类型的RAM及其它类型的存储器装置。在一个示范性实施方案中,存储器板104a及104b两者可包括RAM。在另一示范性实施方案中,所述存储器板中的一者可包括RAM且另一存储器板可包括快闪存储器芯片。此外,所述存储器板中的一者可包括RAM及快闪存储器芯片两者。
存储器板104a及104b上的存储器模块120a及120b可分别用以存储与快闪存储器芯片118a及118b相关的信息。在一个示范性实施方案中,存储器模块120a及120b可存储快闪存储器芯片的装置特性。所述装置特性可包括所述芯片为SLC芯片还是MLC芯片、所述芯片为NAND还是NOR芯片、芯片选择的数目、块的数目、每块页的数目、每页字节的数目及所述芯片的速度。
在一个示范性实施方案中,存储器模块120a及120b可包括串行EEPROM。EEPROM可存储装置特性。可针对任何给定类型的快闪存储器芯片汇编一次装置特性且可用所述装置特性产生适当EEPROM图像。当存储器板104a及104b可操作地连接到控制器板102时,则可从EEPROM读取所述装置特性,使得控制器110可自动辨识控制器110正在控制的快闪存储器芯片118a及118b的类型。另外,可针对特定类型的快闪存储器芯片118a及118b使用所述装置特性来将控制器110配置成适当参数。
参照图7,其图解说明用于在数据存储装置上处理命令群组的过程700。过程700可包括:从主机接收命令群组,其中所述群组中的所述命令中的每一者包括相同群组编号710以将所述命令识别为所述群组的部分;使用多个存储器芯片来处理所述命令群组720;及在所述命令群组完成处理时产生单个中断并将所述单个中断发送到所述主机703。
在一个示范性实施方案中,控制器110可经配置以执行过程700。举例来说,控制器110及其组件可经配置以从主机106接收命令群组,其中主机106在所述群组中的所述命令中的每一者的命令标头中指派相同群组编号以将所述命令710识别为所述群组的部分。命令处理器122可经配置以使用快闪存储器芯片118a及118b来处理所述命令720。命令处理器122可经配置以使用快闪存储器芯片118a及118b按非邻接次序来处理所述命令。中断处理器124可经配置以在所述命令群组完成处理时产生并发送单个中断730。
在一个示范性实施方案中,控制器110可经配置以从主机106接收多个命令群组,其中给所述不同命令群组中的每一者指派不同群组编号。驱动器107可经配置以追踪被指派给所述不同命令群组的群组编号。命令处理器122可经配置以处理多个命令群组。中断处理器124可经配置以在特定群组中的所有命令完成处理时针对不同命令群组中的每一者产生并发送单个中断。
参照图8,其图解说明用于在控制器中追踪命令的过程800。过程800可包括:在命令群组中的命令开始处理时递增群组计数器810;在所述命令群组中的命令完成处理时递减所述群组计数器820;及在所述群组中的所有所述命令完成处理时针对所述命令群组产生并发送单个中断830。
在一个示范性实施方案中,过程800可由控制器110及其组件执行。举例来说,中断处理器124可经配置以在所述命令群组中的命令开始处理时递增群组计数器284810。中断处理器124可经配置以在所述命令群组中的命令完成处理时递减群组计数器284820。中断处理器124可经配置以在所述群组中的所有命令完成处理时针对所述命令群组产生并发送单个中断830。在一个示范性实施方案中,中断处理器124可在所述命令群组中的最后命令开始处理且群组计数器递减到零时产生并发送单个中断命令。
本文中所描述的各种技术的实施方案可以数字电子电路或者以计算机硬件、固件、软件或其组合来实施。实施方案可实施为计算机程序产品,即,有形地体现于信息载体中(例如,体现于机器可读存储装置中)的计算机程序,以由数据处理设备(例如,可编程处理器、一计算机或多个计算机)执行或控制所述数据处理设备的操作。可以任何形式的编程语言(包含编译语言或解译语言)来写入计算机程序(例如,上文所描述的计算机程序),且可以任何形式来部署所述计算机程序,包含部署为独立程序或部署为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序可经部署以在一个计算机上或在位于一个位点处或跨越多个位点分布且由通信网络互连的多个计算机上执行。
方法步骤可由执行计算机程序的一个或一个以上可编程处理器执行,以通过处理输入数据并产生输出来执行功能。方法过程还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,且设备可实施为专用逻辑电路。
举例来说,适合执行计算机程序的处理器包括通用及专用微处理器两者,以及任何种类的数字计算机的任何一个或一个以上处理器。一般来说,处理器将从只读存储器或随机存取存储器或两者接收指令及数据。计算机的元件可包括用于执行指令的至少一个处理器及用于存储指令及数据的一个或一个以上存储器装置。一般来说,计算机还可包括用于存储数据的一个或一个以上大容量存储装置(例如,磁盘、磁光盘或光盘)或经操作地耦合以从所述一个或一个以上大容量存储装置接收数据或向其传送数据或既接收数据又传送数据。适合包含计算机程序指令及数据的信息载体包括所有形式的非易失性存储器,其中包括(举例来说):半导体存储器装置,例如EPROM、EEPROM及快闪存储器装置;磁盘,例如内部硬磁盘或可抽换式磁盘;磁光盘;及CD-ROM及DVD-ROM光盘。所述处理器及存储器可由专用逻辑电路补充或并入于专用逻辑电路中。
为提供与用户的交互,实施方案可实施于计算机上,所述计算机具有用于向所述用户显示信息的显示装置(例如,阴极射线管(CRT)或液晶显示器(LCD)监视器)及所述用户可通过其来向计算机提供输入的键盘及指向装置(例如,鼠标或轨迹球)。也可使用其它种类的装置来提供与用户的交互;举例来说,提供给所述用户的反馈可为任何形式的感观反馈,例如,视觉反馈、听觉反馈或触觉反馈;且来自所述用户的输入可以任何形式来接收,其中包括声音、语音或触觉输入。
实施方案可实施于计算系统(包括后端组件,例如,作为数据服务器;或包括中间件组件,例如,应用程序服务器;或包括前端组件,例如,具有用户可经由其来与实施方案交互的图形用户接口或Web浏览器的客户端计算机)或此类后端、中间件或前端组件的任一组合中。组件可由任何数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包括局域网(LAN)及广域网(WAN),例如因特网。
虽然本文已图解说明及描述了所描述实施方案的某些特征,然而所属领域的技术人员现在将能想出许多修改、替代、改变及等效形式。因此,应理解,所附权利要求书打算涵盖归属于本发明的范围内的所有此类修改及改变。

Claims (30)

1.一种数据存储装置(100),其包含:
多个存储器芯片(118a、118b);及
控制器(110),其可操作地耦合到所述存储器芯片(118a、118b)且经布置及配置以:
从主机(106)接收命令群组,其中所述群组中的所述命令中的每一者包括相同群组编号以将所述命令识别为所述群组的部分,
使用所述存储器芯片(118a、118b)来处理所述命令的所述群组,及
在所述命令的所述群组完成处理时产生单个中断并将所述单个中断发送到所述主机(106)。
2.根据权利要求1所述的数据存储装置(100),其中所述控制器(110)经配置以:
从所述主机(106)接收多个命令群组,其中所述命令中的每一者包括群组编号以将所述命令识别为所述群组中的一者的部分,
使用所述存储器芯片(118a、118b)来处理所述命令的所述群组;及
在所述命令的所述群组中的每一者完成处理时针对所述群组中的每一者产生单个中断并将所述单个中断发送到所述主机(106)。
3.根据权利要求2所述的数据存储装置(100),其中所述控制器(110)经配置以使用所述存储器芯片(118a、118b)按非邻接次序来处理所述命令的所述群组。
4.根据前述权利要求中任一权利要求所述的数据存储装置(100),其中所述命令中的每一者包括命令标头(314)且所述命令标头(314)包括所述群组编号。
5.根据前述权利要求中任一权利要求所述的数据存储装置(100),其中所述命令的所述群组中的最后命令包括命令标头(314)中的用以向所述控制器(110)指示所述最后命令的旗标。
6.根据前述权利要求中任一权利要求所述的数据存储装置(100),其中所述群组编号将所述命令中的每一者识别为所述群组的部分而不使用所述命令中的指针来指向所述群组中的下一命令。
7.根据前述权利要求中任一权利要求所述的数据存储装置(100),其中所述控制器(110)包含中断处理器(124),所述中断处理器(124)经布置及配置以在所述命令由所述控制器(110)处理时追踪所述命令的所述群组,且在所述命令的所述群组完成处理时产生所述单个中断并将所述单个中断发送到所述主机(106)。
8.根据权利要求7所述的数据存储装置(100),其中所述中断处理器(124)包含多个计数器,其中所述计数器中的每一者被指派给由所述控制器(110)接收的不同命令群组。
9.根据权利要求7或8所述的数据存储装置(100),其中所述中断处理器(124)包含多个不同中断机制。
10.根据权利要求9所述的数据存储装置(100),其中一个以上中断机制在相同时间启用。
11.根据权利要求9或10所述的数据存储装置(100),其中所述中断机制包括水印中断机制、超时中断机制及群组中断机制。
12.根据前述权利要求中任一权利要求所述的数据存储装置(100),其中所述存储器芯片(118a、118b)为快闪存储器芯片,且所述控制器(110)为现场可编程门阵列FPGA控制器。
13.根据权利要求12所述的数据存储装置(100),其进一步包含:
存储器板,在所述存储器板上所述快闪存储器芯片布置及配置成多个通道,其中所述通道中的每一者与所述快闪存储器芯片中的一者或一者以上相关联;及
控制器板(102),其可操作地连接到所述存储器板,其中所述控制器板(102)包含:
高速接口(108);及
所述控制器(110),其经布置及配置以使用所述高速接口(108)从所述主机(106)接收所述命令。
14.一种用于在具有多个存储器芯片(118a、118b)的数据存储装置(100)上处理命令群组的方法,所述方法包含:
从主机(106)接收(710)命令群组,其中所述群组中的所述命令中的每一者包括相同群组编号以将所述命令识别为所述群组的部分;
使用多个存储器芯片(118a、118b)来处理(720)所述命令群组;及
在所述命令的所述群组完成处理时产生(730)单个中断并将所述单个中断发送到所述主机(106)。
15.根据权利要求14所述的方法,其中:
从所述主机(106)接收所述命令的所述群组包含从所述主机(106)接收多个命令群组,其中所述命令中的每一者包括群组编号以将所述命令识别为所述群组中的一者的部分;
处理所述命令的所述群组包含使用所述存储器芯片(118a、118b)来处理所述命令的所述群组;且
产生并发送所述单个中断包含在所述群组中的每一者完成处理时针对所述群组中的每一者产生单个中断并将所述单个中断发送到所述主机(106)。
16.根据权利要求15所述的方法,其中处理所述命令的所述群组包含使用所述存储器芯片(118a、118b)按非邻接次序来处理所述命令的所述群组。
17.一种用于在控制器(110)中追踪命令的设备,所述设备包含:
多个群组计数器(284),其中所述群组计数器中的每一者经配置以通过以下方式来追踪正由控制器(110)处理的命令群组:在所述群组中的命令开始由所述控制器(110)处理时递增且在所述群组中的命令完成处理时递减;及
中断发送逻辑(286),其可操作地耦合到所述群组计数器(284)且经布置及配置以在群组中的所有所述命令完成处理时针对所述群组计数器中的每一者产生并发送单个中断。
18.根据权利要求17所述的设备,其中同一群组中的所述命令中的每一者由相同群组编号来识别。
19.根据权利要求17或18所述的设备,其中所述多个群组计数器(284)经配置以在正由所述群组计数器中的一者追踪的命令开始处理时接收用以递增所述群组计数器的信号。
20.根据权利要求17到19中任一权利要求所述的设备,其中所述多个群组计数器(284)经配置以在正由所述群组计数器中的一者追踪的命令完成处理时接收用以递减所述群组计数器的信号。
21.根据权利要求17到20中任一权利要求所述的设备,其中所述中断发送逻辑(286)经配置以在群组中的最后命令开始处理且与最终命令相关联的所述群组计数器递减到零时产生并发送所述单个中断。
22.一种用于在控制器(110)中追踪命令的方法,所述方法包含:
在命令群组中的命令开始处理时递增(810)群组计数器;
在所述命令群组中的命令完成处理时递减(820)所述群组计数器;及
在所述群组中的所有所述命令完成处理时针对所述命令群组产生(830)并发送单个中断。
23.根据权利要求22所述的方法,其中产生并发送所述单个中断包含在所述群组中的最后命令开始处理且所述群组计数器递减到零时产生并发送所述单个中断。
24.一种系统,其包含:
数据存储装置(100),其包括多个存储器芯片(118a、118b)及用于在主机(106)与所述多个存储器芯片(118a、118b)之间传递数据的多个物理通道,每一通道可操作地连接到不同多个所述存储器芯片(118a、118b);及
主机(106),其使用接口(108)可操作地耦合到所述数据存储装置(100),所述主机(106)包含驱动器,所述驱动器经配置以:
将命令发送到所述数据存储装置(100)以由所述数据存储装置(100)使用所
述多个存储器芯片(118a、118b)来进行处理,
将所述命令分组成一个或一个以上不同群组且给群组中的所述命令中的每一者指派一群组编号,及
标记群组中的最后命令。
25.根据权利要求24所述的系统,其中所述数据存储装置(100)经配置以在处理所述群组中的所述命令之后产生单个中断并将所述单个中断发送到所述主机(106)。
26.根据权利要求24或25所述的系统,其中所述多个存储器芯片(118a、118b)包含快闪存储器芯片。
27.根据权利要求24到26中任一权利要求所述的系统,其中所述驱动器经配置以追踪群组编号的使用。
28.根据权利要求24到27中任一权利要求所述的系统,其中所述数据存储装置(100)经配置以使用所述多个存储器芯片(118a、118b)按非邻接次序来处理所述命令的群组。
29.根据权利要求24到28中任一权利要求所述的系统,其中所述主机(106)经配置以在所述数据存储装置(100)上启用一个或一个以上中断机制。
30.根据权利要求29所述的系统,其中所述中断机制包括水印中断机制、超时中断机制及群组中断机制。
CN201080020319.0A 2009-04-08 2010-04-01 用于数据存储装置的命令及中断分组 Active CN102428451B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16770909P 2009-04-08 2009-04-08
US61/167,709 2009-04-08
US18783509P 2009-06-17 2009-06-17
US61/187,835 2009-06-17
US12/537,727 US8250271B2 (en) 2009-04-08 2009-08-07 Command and interrupt grouping for a data storage device
US12/537,727 2009-08-07
PCT/US2010/029679 WO2010117878A1 (en) 2009-04-08 2010-04-01 Command and interrupt grouping for a data storage device

Publications (2)

Publication Number Publication Date
CN102428451A true CN102428451A (zh) 2012-04-25
CN102428451B CN102428451B (zh) 2015-01-21

Family

ID=42935237

Family Applications (6)

Application Number Title Priority Date Filing Date
CN2010800205069A Pending CN102428454A (zh) 2009-04-08 2010-04-01 数据存储装置
CN201080020319.0A Active CN102428451B (zh) 2009-04-08 2010-04-01 用于数据存储装置的命令及中断分组
CN201711055987.7A Pending CN107832010A (zh) 2009-04-08 2010-04-01 数据存储装置
CN2010800204884A Pending CN102428455A (zh) 2009-04-08 2010-04-05 快闪存储器数据存储装置中的数据分条
CN2010800205073A Pending CN102428453A (zh) 2009-04-08 2010-04-05 用于在快闪存储器数据存储装置中存储数据的方法及设备
CN2010800204899A Pending CN102428452A (zh) 2009-04-08 2010-04-05 分割快闪存储器数据存储装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2010800205069A Pending CN102428454A (zh) 2009-04-08 2010-04-01 数据存储装置

Family Applications After (4)

Application Number Title Priority Date Filing Date
CN201711055987.7A Pending CN107832010A (zh) 2009-04-08 2010-04-01 数据存储装置
CN2010800204884A Pending CN102428455A (zh) 2009-04-08 2010-04-05 快闪存储器数据存储装置中的数据分条
CN2010800205073A Pending CN102428453A (zh) 2009-04-08 2010-04-05 用于在快闪存储器数据存储装置中存储数据的方法及设备
CN2010800204899A Pending CN102428452A (zh) 2009-04-08 2010-04-05 分割快闪存储器数据存储装置

Country Status (7)

Country Link
US (13) US8205037B2 (zh)
EP (6) EP2728488B1 (zh)
JP (6) JP5922016B2 (zh)
CN (6) CN102428454A (zh)
AU (5) AU2010234772B2 (zh)
DE (6) DE202010017661U1 (zh)
WO (5) WO2010117878A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244842B2 (en) 2009-04-08 2016-01-26 Google Inc. Data storage device with copy command
CN105938418A (zh) * 2015-03-06 2016-09-14 爱思开海力士有限公司 存储系统及其操作方法
CN107943726A (zh) * 2017-11-16 2018-04-20 郑州云海信息技术有限公司 一种基于PCIe接口的数据传输系统及方法
CN108092730A (zh) * 2017-12-27 2018-05-29 中国电子科技集团公司第五十四研究所 一种适用于多设备的时序控制方法
CN109564766A (zh) * 2016-08-10 2019-04-02 国际商业机器公司 大容量存储设备封装和这类封装的软件定义阵列
CN110046114A (zh) * 2019-03-06 2019-07-23 上海熠知电子科技有限公司 基于pcie协议的dma控制器及dma数据传输方法
CN111984186A (zh) * 2019-05-23 2020-11-24 爱思开海力士有限公司 装置及其操作方法
TWI830145B (zh) * 2022-01-18 2024-01-21 新加坡商聯發科技(新加坡)私人有限公司 傳感裝置的中斷處理方法及其積體電路

Families Citing this family (317)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8732386B2 (en) * 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
JP2010015195A (ja) * 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
WO2010005430A1 (en) * 2008-07-08 2010-01-14 Hewlett-Packard Development Company, L.P. Adaptable external drive
TWI385672B (zh) * 2008-11-05 2013-02-11 Lite On It Corp 儲存裝置之適應性多通道控制器及其方法
TWI385517B (zh) * 2008-12-05 2013-02-11 Apacer Technology Inc Storage device and data management method
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8205037B2 (en) 2009-04-08 2012-06-19 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages
KR101516580B1 (ko) 2009-04-22 2015-05-11 삼성전자주식회사 컨트롤러, 이를 포함하는 데이터 저장 장치 및 데이터 저장 시스템, 및 그 방법
EP2254280A1 (en) 2009-05-19 2010-11-24 Electrolux Home Products Corporation N.V. Bus control for a domestic appliance
EP2476055B1 (en) 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
EP2476079A4 (en) 2009-09-09 2013-07-03 Fusion Io Inc APPARATUS, SYSTEM, AND METHOD FOR STORAGE ALLOCATION
US8289801B2 (en) * 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US8972627B2 (en) 2009-09-09 2015-03-03 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
US8601222B2 (en) 2010-05-13 2013-12-03 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US9021158B2 (en) 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
TWI454906B (zh) * 2009-09-24 2014-10-01 Phison Electronics Corp 資料讀取方法、快閃記憶體控制器與儲存系統
US8244946B2 (en) * 2009-10-16 2012-08-14 Brocade Communications Systems, Inc. Interrupt moderation
US8307151B1 (en) * 2009-11-30 2012-11-06 Micron Technology, Inc. Multi-partitioning feature on e-MMC
US8285946B2 (en) * 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
KR101008923B1 (ko) * 2010-01-15 2011-01-17 주식회사 노바칩스 다양한 종류의 반도체 메모리 장치들을 구비하는 반도체 메모리 시스템 및 이의 제어 방법
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US10210162B1 (en) * 2010-03-29 2019-02-19 Carbonite, Inc. Log file management
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
US9164554B2 (en) * 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US20110252263A1 (en) * 2010-04-13 2011-10-13 Byungcheol Cho Semiconductor storage device
US8782327B1 (en) * 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8725934B2 (en) 2011-12-22 2014-05-13 Fusion-Io, Inc. Methods and appratuses for atomic storage operations
WO2012016089A2 (en) 2010-07-28 2012-02-02 Fusion-Io, Inc. Apparatus, system, and method for conditional and atomic storage operations
US8677028B2 (en) * 2010-08-23 2014-03-18 Qualcomm Incorporated Interrupt-based command processing
US8417877B2 (en) 2010-08-31 2013-04-09 Micron Technology, Inc Stripe-based non-volatile multilevel memory operation
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9003153B2 (en) 2010-11-08 2015-04-07 Greenliant Llc Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
US20120117305A1 (en) * 2010-11-08 2012-05-10 Greenliant Llc Method Of Storing Blocks Of Data In A Plurality Of Memory Devices For High Speed Sequential Read, A Memory Controller And A Memory System
JP5720204B2 (ja) * 2010-11-26 2015-05-20 富士通株式会社 アクセス制御プログラム、アクセス制御方法および情報処理装置
WO2012073071A1 (en) * 2010-12-02 2012-06-07 Freescale Semiconductor, Inc. Error correcting device, method for monitoring an error correcting device and data processing system
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US8601313B1 (en) 2010-12-13 2013-12-03 Western Digital Technologies, Inc. System and method for a data reliability scheme in a solid state memory
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US8601311B2 (en) 2010-12-14 2013-12-03 Western Digital Technologies, Inc. System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8473708B1 (en) * 2010-12-23 2013-06-25 Netapp, Inc. Method and system for managing storage units
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8700950B1 (en) 2011-02-11 2014-04-15 Western Digital Technologies, Inc. System and method for data error recovery in a solid state subsystem
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8700951B1 (en) * 2011-03-09 2014-04-15 Western Digital Technologies, Inc. System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
US8601085B1 (en) * 2011-03-28 2013-12-03 Emc Corporation Techniques for preferred path determination
US8924627B2 (en) * 2011-03-28 2014-12-30 Western Digital Technologies, Inc. Flash memory device comprising host interface for processing a multi-command descriptor block in order to exploit concurrency
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
US8694857B2 (en) * 2011-04-13 2014-04-08 Inphi Corporation Systems and methods for error detection and correction in a memory module which includes a memory buffer
US8954670B1 (en) * 2011-04-18 2015-02-10 American Megatrends, Inc. Systems and methods for improved fault tolerance in RAID configurations
US9817700B2 (en) * 2011-04-26 2017-11-14 International Business Machines Corporation Dynamic data partitioning for optimal resource utilization in a parallel data processing system
US9396106B2 (en) * 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9417894B1 (en) 2011-06-15 2016-08-16 Ryft Systems, Inc. Methods and apparatus for a tablet computer system incorporating a reprogrammable circuit module
US20120324143A1 (en) 2011-06-15 2012-12-20 Data Design Corporation Methods and apparatus for data access by a reprogrammable circuit module
US10966339B1 (en) 2011-06-28 2021-03-30 Amazon Technologies, Inc. Storage system with removable solid state storage devices mounted on carrier circuit boards
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
US20130019052A1 (en) * 2011-07-14 2013-01-17 Vinay Ashok Somanache Effective utilization of flash interface
US8868867B2 (en) * 2011-09-15 2014-10-21 The Regents Of The University Of California Method for reducing latency of accessing data stored in a file system on a computer storage device by caching file system permission information in the computer storage device
US8966172B2 (en) 2011-11-15 2015-02-24 Pavilion Data Systems, Inc. Processor agnostic data storage in a PCIE based shared storage enviroment
US8842122B2 (en) * 2011-12-15 2014-09-23 Qualcomm Incorporated Graphics processing unit with command processor
US8719647B2 (en) * 2011-12-15 2014-05-06 Micron Technology, Inc. Read bias management to reduce read errors for phase change memory
US8904091B1 (en) * 2011-12-22 2014-12-02 Western Digital Technologies, Inc. High performance media transport manager architecture for data storage systems
CN102521160B (zh) * 2011-12-22 2015-04-01 上海交通大学 写缓冲检测器、并行通道写入方法
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
CN102567257B (zh) * 2011-12-26 2014-08-27 华中科技大学 一种控制多通道固态盘数据读写的方法
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9652182B2 (en) 2012-01-31 2017-05-16 Pavilion Data Systems, Inc. Shareable virtual non-volatile storage device for a server
US9378150B2 (en) * 2012-02-28 2016-06-28 Apple Inc. Memory management unit with prefetch ability
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9135192B2 (en) 2012-03-30 2015-09-15 Sandisk Technologies Inc. Memory system with command queue reordering
KR20130114354A (ko) 2012-04-09 2013-10-18 삼성전자주식회사 메모리 시스템 및 컨트롤러의 동작 방법
US20130339583A1 (en) * 2012-06-19 2013-12-19 Marvell World Trade Ltd. Systems and methods for transferring data out of order in next generation solid state drive controllers
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US9389999B2 (en) * 2012-08-17 2016-07-12 Infineon Technologies Ag System and method for emulating an EEPROM in a non-volatile memory device
US9122401B2 (en) * 2012-08-23 2015-09-01 Apple Inc. Efficient enforcement of command execution order in solid state drives
KR20140027859A (ko) 2012-08-27 2014-03-07 삼성전자주식회사 호스트 장치 및 이를 포함하는 시스템
US9009566B2 (en) * 2012-09-12 2015-04-14 Macronix International Co., Ltd. Outputting information of ECC corrected bits
US9471484B2 (en) 2012-09-19 2016-10-18 Novachips Canada Inc. Flash memory controller having dual mode pin-out
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US8925098B2 (en) 2012-11-15 2014-12-30 Elwha Llc Data security and access tracking in memory
US9323499B2 (en) 2012-11-15 2016-04-26 Elwha Llc Random number generator functions in memory
US8996951B2 (en) 2012-11-15 2015-03-31 Elwha, Llc Error correction with non-volatile memory on an integrated circuit
US9582465B2 (en) * 2012-11-15 2017-02-28 Elwha Llc Flexible processors and flexible memory
US8966310B2 (en) 2012-11-15 2015-02-24 Elwha Llc Redundancy for loss-tolerant data in non-volatile memory
US9442854B2 (en) 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
US9026719B2 (en) 2012-11-15 2015-05-05 Elwha, Llc Intelligent monitoring for computation in memory
CN103853629A (zh) * 2012-11-29 2014-06-11 艺伦半导体技术股份有限公司 数据流存储方法及现场可编程门阵列
US9448883B1 (en) * 2012-12-04 2016-09-20 Cadence Design Systems, Inc. System and method for allocating data in memory array having regions of varying storage reliability
US9164888B2 (en) 2012-12-10 2015-10-20 Google Inc. Using a logical to physical map for direct user space communication with a data storage device
US9069658B2 (en) 2012-12-10 2015-06-30 Google Inc. Using a virtual to physical map for direct user space communication with a data storage device
US9236136B2 (en) * 2012-12-14 2016-01-12 Intel Corporation Lower page read for multi-level cell memory
US9842660B1 (en) 2012-12-28 2017-12-12 Virident Systems, Llc System and method to improve enterprise reliability through tracking I/O performance metrics in non-volatile random access memory
US9286002B1 (en) * 2012-12-28 2016-03-15 Virident Systems Inc. Dynamic restriping in nonvolatile memory systems
US8965288B2 (en) 2012-12-31 2015-02-24 Elwha Llc Cost-effective mobile connectivity protocols
US9832628B2 (en) 2012-12-31 2017-11-28 Elwha, Llc Cost-effective mobile connectivity protocols
US9781664B2 (en) 2012-12-31 2017-10-03 Elwha Llc Cost-effective mobile connectivity protocols
US9635605B2 (en) 2013-03-15 2017-04-25 Elwha Llc Protocols for facilitating broader access in wireless communications
US9980114B2 (en) 2013-03-15 2018-05-22 Elwha Llc Systems and methods for communication management
US9713013B2 (en) 2013-03-15 2017-07-18 Elwha Llc Protocols for providing wireless communications connectivity maps
US9451394B2 (en) 2012-12-31 2016-09-20 Elwha Llc Cost-effective mobile connectivity protocols
US9876762B2 (en) 2012-12-31 2018-01-23 Elwha Llc Cost-effective mobile connectivity protocols
CN103942219A (zh) * 2013-01-22 2014-07-23 鸿富锦精密工业(深圳)有限公司 存储卡分区系统及方法
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10642505B1 (en) 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9110592B2 (en) * 2013-02-04 2015-08-18 Microsoft Technology Licensing, Llc Dynamic allocation of heterogenous memory in a computing system
US8949537B2 (en) 2013-02-25 2015-02-03 Hitachi, Ltd. Storage control apparatus and method for detecting write completion of data
US9866706B2 (en) 2013-03-15 2018-01-09 Elwha Llc Protocols for facilitating broader access in wireless communications
US9706060B2 (en) 2013-03-15 2017-07-11 Elwha Llc Protocols for facilitating broader access in wireless communications
US9813887B2 (en) 2013-03-15 2017-11-07 Elwha Llc Protocols for facilitating broader access in wireless communications responsive to charge authorization statuses
US9807582B2 (en) 2013-03-15 2017-10-31 Elwha Llc Protocols for facilitating broader access in wireless communications
US9781554B2 (en) 2013-03-15 2017-10-03 Elwha Llc Protocols for facilitating third party authorization for a rooted communication device in wireless communications
US9021188B1 (en) 2013-03-15 2015-04-28 Virident Systems Inc. Small block write operations in non-volatile memory systems
US9843917B2 (en) 2013-03-15 2017-12-12 Elwha, Llc Protocols for facilitating charge-authorized connectivity in wireless communications
US9693214B2 (en) 2013-03-15 2017-06-27 Elwha Llc Protocols for facilitating broader access in wireless communications
US9596584B2 (en) 2013-03-15 2017-03-14 Elwha Llc Protocols for facilitating broader access in wireless communications by conditionally authorizing a charge to an account of a third party
US9706382B2 (en) 2013-03-15 2017-07-11 Elwha Llc Protocols for allocating communication services cost in wireless communications
US10073626B2 (en) 2013-03-15 2018-09-11 Virident Systems, Llc Managing the write performance of an asymmetric memory system
US9135164B2 (en) 2013-03-15 2015-09-15 Virident Systems Inc. Synchronous mirroring in non-volatile memory systems
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
CN103226976A (zh) * 2013-03-19 2013-07-31 中国科学院声学研究所 一种基于FPGA实现多片Nandflash存储及读取的装置
CN104102599A (zh) * 2013-04-11 2014-10-15 华邦电子股份有限公司 快闪存储器装置与数据传输方法
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US20150058529A1 (en) * 2013-08-21 2015-02-26 Sandisk Technologies Inc. Systems and methods of processing access requests at a data storage device
US9535870B2 (en) 2013-09-18 2017-01-03 HGST Netherlands B.V. Acknowledgement-less protocol for solid state drive interface
US9513869B2 (en) 2013-09-18 2016-12-06 HGST Netherlands B.V. Doorbell-less endpoint-initiated protocol for storage devices
TWI486775B (zh) * 2013-09-18 2015-06-01 Dexin Corp 輸入裝置及其資料傳輸方法
US9778859B2 (en) 2013-09-18 2017-10-03 Western Digital Technologies, Inc. Doorless protocol having multiple queue read requests in flight
CN105706071A (zh) * 2013-09-26 2016-06-22 英特尔公司 持久性存储器的块存储孔
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
CN103559156B (zh) * 2013-11-11 2016-04-06 北京大学 一种fpga与计算机之间的通信系统
US9529710B1 (en) * 2013-12-06 2016-12-27 Western Digital Technologies, Inc. Interleaved channels in a solid-state drive
CN103744744B (zh) * 2014-02-08 2017-08-25 威盛电子股份有限公司 数据储存装置以及易失性存储器的数据校验方法
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9666244B2 (en) 2014-03-01 2017-05-30 Fusion-Io, Inc. Dividing a storage procedure
US9423979B2 (en) 2014-03-10 2016-08-23 Kabushiki Kaisha Toshiba Memory system and memory controller for determining whether one or plurality of pointers can be stored in a second buffer and for executing data transfer between data buffer and host using the pointers
US9337869B2 (en) * 2014-04-30 2016-05-10 Storart Technology Co. Ltd. Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same
US10481946B2 (en) * 2014-05-12 2019-11-19 Hitachi, Ltd. Information-processing device, processing method thereof, and input/output device
KR102211709B1 (ko) 2014-05-19 2021-02-02 삼성전자주식회사 신호 송수신 특성을 향상한 불휘발성 메모리 시스템, 호스트 장치, 불휘발성 메모리 시스템 및 호스트의 동작방법
US9460019B2 (en) 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
US9477631B2 (en) 2014-06-26 2016-10-25 Intel Corporation Optimized credit return mechanism for packet sends
JP2016014972A (ja) * 2014-07-01 2016-01-28 富士通株式会社 通信制御装置,ストレージ装置及び通信制御プログラム
US10146482B2 (en) 2014-08-01 2018-12-04 Toshiba Memory Corporation Global error recovery system
US10552085B1 (en) 2014-09-09 2020-02-04 Radian Memory Systems, Inc. Techniques for directed data migration
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
JP2016057876A (ja) * 2014-09-10 2016-04-21 富士通株式会社 情報処理装置、入出力制御プログラム、及び入出力制御方法
US9582201B2 (en) 2014-09-26 2017-02-28 Western Digital Technologies, Inc. Multi-tier scheme for logical storage management
TWI556254B (zh) * 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
US9632702B2 (en) 2014-10-15 2017-04-25 International Business Machines Corporation Efficient initialization of a thinly provisioned storage array
KR20160051367A (ko) * 2014-11-03 2016-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
KR101620260B1 (ko) * 2015-01-12 2016-05-12 엘지전자 주식회사 네트워크 시스템 및 그 제어방법
US9933950B2 (en) 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
CN105808444B (zh) * 2015-01-19 2019-01-01 东芝存储器株式会社 存储装置及非易失性存储器的控制方法
US10175885B2 (en) 2015-01-19 2019-01-08 Toshiba Memory Corporation Memory device managing data in accordance with command and non-transitory computer readable recording medium
WO2016122602A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Systems and methods for sharing non-volatile memory between multiple access models
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
KR102309798B1 (ko) * 2015-04-16 2021-10-06 삼성전자주식회사 Sr-iov 기반 비휘발성 메모리 컨트롤러 및 그 비휘발성 메모리 컨트롤러에 의해 큐에 리소스를 동적 할당하는 방법
CN104811235B (zh) * 2015-05-13 2018-07-06 朱洋 双架构的直升机远程通信域互动装置
JP6205386B2 (ja) * 2015-05-18 2017-09-27 長瀬産業株式会社 半導体装置及び情報書込/読出方法
US10169258B2 (en) 2015-06-09 2019-01-01 Rambus Inc. Memory system design using buffer(s) on a mother board
US9547441B1 (en) * 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
CA3034395A1 (en) * 2015-08-24 2017-03-02 Src Labs, Llc System and method for retaining dram data when reprogramming reconfigurable devices with dram memory controllers incorporating a data maintenance block colocated with a memory module or subsystem
US9578054B1 (en) * 2015-08-31 2017-02-21 Newman H-R Computer Design, LLC Hacking-resistant computer design
US9697320B2 (en) * 2015-09-24 2017-07-04 Qualcomm Incorporated Rectilinear macros having non-uniform channel spacing
US10073652B2 (en) * 2015-09-24 2018-09-11 International Business Machines Corporation Performance optimized storage vaults in a dispersed storage network
US9977623B2 (en) 2015-10-15 2018-05-22 Sandisk Technologies Llc Detection of a sequential command stream
US10467155B2 (en) * 2015-10-26 2019-11-05 Micron Technology, Inc. Command packets for the direct control of non-volatile memory channels within a solid state drive
JP2017084063A (ja) * 2015-10-27 2017-05-18 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及び電源電圧供給制御方法
US9996262B1 (en) 2015-11-09 2018-06-12 Seagate Technology Llc Method and apparatus to abort a command
US10572180B1 (en) * 2015-11-09 2020-02-25 Seagate Technology Llc Method and apparatus to perform a function level reset in a memory controller
US10282103B1 (en) * 2015-11-09 2019-05-07 Seagate Technology Llc Method and apparatus to delete a command queue
US9779043B2 (en) 2015-11-16 2017-10-03 International Business Machines Corporation Techniques for handling queued interrupts in a data processing system
US10210298B2 (en) 2015-11-24 2019-02-19 Altera Corporation Embedded memory blocks with adjustable memory boundaries
KR102446677B1 (ko) 2015-11-26 2022-09-23 삼성전자주식회사 스토리지 컨트롤러의 동작 방법 및 상기 스토리지 컨트롤러를 포함하는 데이터 저장 장치의 동작 방법
US10817528B2 (en) * 2015-12-15 2020-10-27 Futurewei Technologies, Inc. System and method for data warehouse engine
EP3377978A4 (en) * 2016-01-13 2019-06-05 Hewlett-Packard Enterprise Development LP RESTRUCTURED INPUT / OUTPUT REQUIREMENTS
JP6544246B2 (ja) * 2016-01-15 2019-07-17 富士通株式会社 不揮発性ストレージおよび不揮発性ストレージの処理方法
US9946596B2 (en) 2016-01-29 2018-04-17 Toshiba Memory Corporation Global error recovery system
US9817586B2 (en) * 2016-02-23 2017-11-14 Samsung Electronics Co., Ltd. Method of application aware IO completion mode changer for key value device
US10198315B2 (en) 2016-02-29 2019-02-05 Sandisk Technologies Llc Non-volatile memory with corruption recovery
US10192633B2 (en) * 2016-03-01 2019-01-29 Intel Corporation Low cost inbuilt deterministic tester for SOC testing
TWI610171B (zh) * 2016-03-22 2018-01-01 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US10191358B2 (en) * 2016-04-13 2019-01-29 Angela Jorgensen Moving head projector system
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
TWI592864B (zh) * 2016-06-21 2017-07-21 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US10445018B2 (en) 2016-09-09 2019-10-15 Toshiba Memory Corporation Switch and memory device
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11250056B1 (en) * 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
KR20180064588A (ko) * 2016-12-05 2018-06-15 에스케이하이닉스 주식회사 메모리 제어 장치 및 방법
JP6667629B2 (ja) 2016-12-29 2020-03-18 華為技術有限公司Huawei Technologies Co.,Ltd. 記憶システムおよびソリッドステートディスク
CN107102818A (zh) * 2017-03-16 2017-08-29 山东大学 一种基于sd卡的高速数据存储方法
US20180321855A1 (en) * 2017-05-03 2018-11-08 Samsung Electronics Co., Ltd. Multistreaming in heterogeneous environments
US9905294B1 (en) 2017-05-03 2018-02-27 Seagate Technology Llc Writing logically offset pages of data to N-level memory cells coupled to a common word line
CN107256363B (zh) * 2017-06-13 2020-03-06 杭州华澜微电子股份有限公司 一种由加解密模块阵列组成的高速加解密装置
US10606484B2 (en) * 2017-06-23 2020-03-31 Google Llc NAND flash storage device with NAND buffer
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
CN108064374B (zh) 2017-08-10 2021-04-09 华为技术有限公司 一种数据访问方法、装置和系统
US11609623B2 (en) 2017-09-01 2023-03-21 Qualcomm Incorporated Ultra-low power neuromorphic artificial intelligence computing accelerator
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
TWI685847B (zh) * 2017-10-12 2020-02-21 慧榮科技股份有限公司 資料儲存裝置之非揮發式記憶體的命名空間規劃
CN109656833B (zh) 2017-10-12 2022-11-11 慧荣科技股份有限公司 数据储存装置
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
CN107728953B (zh) * 2017-11-03 2021-03-02 记忆科技(深圳)有限公司 一种提升固态硬盘混合读写性能的方法
DE102018123494A1 (de) 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichervorrichtung, die zum aktualisieren einesfeldprogrammierbaren gate-arrays ausgestaltetist, und betriebsverfahren dafür
US10628359B2 (en) * 2018-03-01 2020-04-21 EMC IP Holding Company LLC Storage management system and method
KR101936951B1 (ko) 2018-04-11 2019-01-11 주식회사 맴레이 메모리 제어 장치 및 이를 포함하는 메모리 시스템
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
EP3573030B1 (en) * 2018-05-23 2023-10-11 Diebold Nixdorf Systems GmbH System and method to control the access on information of a peripheral storage device
KR102560251B1 (ko) 2018-06-20 2023-07-26 삼성전자주식회사 반도체 장치 및 반도체 시스템
US10884662B2 (en) * 2018-08-06 2021-01-05 Silicon Motion, Inc. Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
US11574659B2 (en) * 2018-09-11 2023-02-07 Micron Technology, Inc. Parallel access to volatile memory by a processing device for machine learning
CN110968449A (zh) * 2018-09-28 2020-04-07 方一信息科技(上海)有限公司 用于多通道闪存控制器的bch ecc纠错资源共享系统及方法
WO2020069074A1 (en) * 2018-09-28 2020-04-02 Burlywood, Inc. Write stream separation into multiple partitions
KR102576373B1 (ko) 2018-09-28 2023-09-07 에스케이하이닉스 주식회사 저장 공간을 동적으로 할당하는 제어 장치 및 이를 포함하는 데이터 저장 장치
US10817430B2 (en) * 2018-10-02 2020-10-27 Micron Technology, Inc. Access unit and management segment memory operations
KR20200053204A (ko) 2018-11-08 2020-05-18 삼성전자주식회사 저장 장치, 저장 장치의 동작 방법 및 저장 장치를 제어하는 호스트의 동작 방법
US10871907B2 (en) * 2018-12-31 2020-12-22 Micron Technology, Inc. Sequential data optimized sub-regions in storage devices
CN109979498A (zh) * 2019-01-24 2019-07-05 深圳市景阳信息技术有限公司 磁盘视频数据写入、读取的方法及装置
CN109933291B (zh) * 2019-03-20 2022-05-06 浪潮商用机器有限公司 一种sram数据的处理方法、装置、设备及存储介质
JP7074705B2 (ja) * 2019-03-20 2022-05-24 キオクシア株式会社 メモリ装置及びメモリ装置の制御方法
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
JP2022522437A (ja) * 2019-04-30 2022-04-19 長江存儲科技有限責任公司 コントローラ、機器および方法
EP3915030B1 (en) * 2019-04-30 2023-10-18 Hewlett-Packard Development Company, L.P. Storage of network credentials
CN110209606B (zh) * 2019-04-30 2021-01-22 杭州电子科技大学 一种基于PCIe的多接口存储设备的控制方法
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
CN110175056B (zh) * 2019-05-30 2022-02-11 西安微电子技术研究所 一种异构平台远程动态加载多目标fpga的控制装置及控制方法
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
KR20210012305A (ko) * 2019-07-24 2021-02-03 삼성전자주식회사 집적회로 장치, 시스템 온 칩 및 패킷 처리 방법
CN112394887A (zh) * 2019-08-17 2021-02-23 森大(深圳)技术有限公司 Onepass打印数据高效率处理方法、装置、设备及存储介质
CN110673989B (zh) * 2019-08-27 2023-05-16 国网浙江省电力有限公司电力科学研究院 一种背板系统的子板卡识别装置与方法
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
KR20210054187A (ko) * 2019-11-05 2021-05-13 에스케이하이닉스 주식회사 메모리 시스템, 메모리 장치 및 메모리 시스템의 동작 방법
US11175984B1 (en) 2019-12-09 2021-11-16 Radian Memory Systems, Inc. Erasure coding techniques for flash memory
US11892956B2 (en) * 2019-12-31 2024-02-06 Micron Technology, Inc. Performance of memory system background operations
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
KR20210156985A (ko) 2020-06-19 2021-12-28 삼성전자주식회사 일 함수 층들을 갖는 반도체 소자들
KR20210158607A (ko) 2020-06-24 2021-12-31 삼성전자주식회사 캡핑층을 포함하는 반도체 소자
KR20210158615A (ko) 2020-06-24 2021-12-31 삼성전자주식회사 게이트 라인을 포함하는 집적회로 소자
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
KR20220067872A (ko) * 2020-11-18 2022-05-25 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11513980B2 (en) * 2021-01-21 2022-11-29 Silicon Motion, Inc. Method and apparatus for performing access management of memory device with aid of universal asynchronous receiver-transmitter connection
US20220350933A1 (en) * 2021-04-29 2022-11-03 EMC IP Holding Company LLC Methods and systems for securing data in a distributed storage system
US20230008974A1 (en) * 2021-07-08 2023-01-12 Toshiba Global Commerce Solutions Holdings Corporation Methods, systems, and computer program products configured to provide consistent look and feel for user input
CN115843379A (zh) * 2021-07-21 2023-03-24 美光科技公司 用来改进顺序存储器命令性能的存储器命令聚合
US20230120600A1 (en) * 2021-10-20 2023-04-20 Western Digital Technologies, Inc. Data Storage Devices, Systems, and Related Methods for Grouping Commands of Doorbell Transactions from Host Devices
KR102385572B1 (ko) 2021-11-02 2022-04-13 삼성전자주식회사 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법
US20230266897A1 (en) * 2022-02-24 2023-08-24 Micron Technology, Inc. Dynamic zone group configuration at a memory sub-system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802345A (en) * 1994-03-28 1998-09-01 Matsunami; Naoto Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the number of command end interrupts
CN1432929A (zh) * 2003-02-14 2003-07-30 威盛电子股份有限公司 多微处理器系统内响应中断服务要求的仲裁结构及方法

Family Cites Families (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449182A (en) * 1981-10-05 1984-05-15 Digital Equipment Corporation Interface between a pair of processors, such as host and peripheral-controlling processors in data processing systems
US4777595A (en) * 1982-05-07 1988-10-11 Digital Equipment Corporation Apparatus for transferring blocks of information from one node to a second node in a computer network
EP0617363B1 (en) * 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
JPH0398972A (ja) * 1989-09-08 1991-04-24 Mitsubishi Electric Corp エレベータの制御装置
US5663901A (en) * 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
EP0610677A3 (en) * 1993-02-12 1995-08-02 Ibm Communication device management module operating in two modes.
US5619687A (en) * 1994-02-22 1997-04-08 Motorola Inc. Queue system having a time-out feature and method therefor
JPH07234764A (ja) * 1994-02-22 1995-09-05 Toshiba Corp スケジューラ
JP3561002B2 (ja) * 1994-05-18 2004-09-02 富士通株式会社 ディスク装置
JPH0997124A (ja) * 1995-09-29 1997-04-08 Fujitsu Ltd 電子装置、メモリボード並びにメモリ装着機構
US5708814A (en) * 1995-11-21 1998-01-13 Microsoft Corporation Method and apparatus for reducing the rate of interrupts by generating a single interrupt for a group of events
JPH09305330A (ja) * 1996-05-15 1997-11-28 Oki Electric Ind Co Ltd ディスクアレイ装置
JPH10214221A (ja) * 1997-01-31 1998-08-11 Hitachi Ltd 制御装置及びメモリシステム
US6003112A (en) * 1997-06-30 1999-12-14 Intel Corporation Memory controller and method for clearing or copying memory utilizing register files to store address information
US5941998A (en) * 1997-07-25 1999-08-24 Samsung Electronics Co., Ltd. Disk drive incorporating read-verify after write method
US7088387B1 (en) * 1997-08-05 2006-08-08 Mitsubishi Electric Research Laboratories, Inc. Video recording device responsive to triggering event
US7158167B1 (en) * 1997-08-05 2007-01-02 Mitsubishi Electric Research Laboratories, Inc. Video recording device for a targetable weapon
DE19740525C1 (de) * 1997-09-15 1999-02-04 Siemens Ag Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
JP3534585B2 (ja) * 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
US6009478A (en) * 1997-11-04 1999-12-28 Adaptec, Inc. File array communications interface for communicating between a host computer and an adapter
US6175900B1 (en) * 1998-02-09 2001-01-16 Microsoft Corporation Hierarchical bitmap-based memory manager
NL1011442C2 (nl) * 1998-03-26 1999-09-28 Franciscus Hubertus Johannes M Frontwerktuigbesturing.
US6172676B1 (en) * 1998-07-17 2001-01-09 International Business Machines Corporation Method and computer program product for implementing multiple drag and drop operations for large objects without blocking an operating system interface
US6313522B1 (en) * 1998-08-28 2001-11-06 Micron Technology, Inc. Semiconductor structure having stacked semiconductor devices
JP2000357125A (ja) * 1999-06-16 2000-12-26 Matsushita Electric Ind Co Ltd バッファメモリ制御方法及び制御装置
US6866581B2 (en) * 1999-09-24 2005-03-15 Igt Video gaming apparatus for wagering with universal computerized controller and I/O interface for unique architecture
US6757797B1 (en) * 1999-09-30 2004-06-29 Fujitsu Limited Copying method between logical disks, disk-storage system and its storage medium
US7000245B1 (en) * 1999-10-29 2006-02-14 Opentv, Inc. System and method for recording pushed data
US6678463B1 (en) 2000-08-02 2004-01-13 Opentv System and method for incorporating previously broadcast content into program recording
ES2211641T3 (es) 1999-10-29 2004-07-16 Opentv, Corp. Sistema y metodo para el registro de datos "pushed".
US8250617B2 (en) * 1999-10-29 2012-08-21 Opentv, Inc. System and method for providing multi-perspective instant replay
US20020053004A1 (en) * 1999-11-19 2002-05-02 Fong Pong Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links
US7024695B1 (en) * 1999-12-30 2006-04-04 Intel Corporation Method and apparatus for secure remote system management
US8037234B2 (en) * 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US8266367B2 (en) 2003-12-02 2012-09-11 Super Talent Electronics, Inc. Multi-level striping and truncation channel-equalization for flash-memory system
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
US8341332B2 (en) * 2003-12-02 2012-12-25 Super Talent Electronics, Inc. Multi-level controller with smart storage transfer manager for interleaving multiple single-chip flash memory devices
US6317330B1 (en) * 2000-02-15 2001-11-13 Bitmicro Networks, Inc. Printed circuit board assembly
US6434660B1 (en) 2000-05-23 2002-08-13 Centennial Technologies, Inc. Emulating one tape protocol of flash memory to a different type protocol of flash memory
US6772273B1 (en) 2000-06-29 2004-08-03 Intel Corporation Block-level read while write method and apparatus
IL137085A (en) * 2000-06-29 2004-08-31 Eci Telecom Ltd Method for effective utilizing of shared resources in computerized systems
US7104804B2 (en) * 2000-07-03 2006-09-12 Advanced Interconnect Solutions Method and apparatus for memory module circuit interconnection
JP2002023962A (ja) * 2000-07-07 2002-01-25 Fujitsu Ltd ディスク装置及び制御方法
JP2004536480A (ja) 2000-08-02 2004-12-02 オープンティブイ・インコーポレーテッド 多視点即時リプレイ機能を実現するシステムと方法
JP4609680B2 (ja) * 2000-08-09 2011-01-12 ソニー株式会社 データ蓄積装置
US6820148B1 (en) * 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
US6640274B1 (en) * 2000-08-21 2003-10-28 Intel Corporation Method and apparatus for reducing the disk drive data transfer interrupt service latency penalty
US6865631B2 (en) * 2000-12-14 2005-03-08 International Business Machines Corporation Reduction of interrupts in remote procedure calls
JP4818812B2 (ja) * 2006-05-31 2011-11-16 株式会社日立製作所 フラッシュメモリストレージシステム
US6931498B2 (en) 2001-04-03 2005-08-16 Intel Corporation Status register architecture for flexible read-while-write device
US20020178307A1 (en) * 2001-05-25 2002-11-28 Pua Khein Seng Multiple memory card adapter
US6781914B2 (en) * 2001-08-23 2004-08-24 Winbond Electronics Corp. Flash memory having a flexible bank partition
ITRM20010524A1 (it) * 2001-08-30 2003-02-28 Micron Technology Inc Struttura a schiera di memoria flash.
US7631084B2 (en) 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
JP3802411B2 (ja) * 2001-12-20 2006-07-26 株式会社東芝 不揮発性半導体記憶装置のデータコピー方法
US6938188B1 (en) * 2002-01-29 2005-08-30 Advanced Digital Information Corporation Method for verifying functional integrity of computer hardware, particularly data storage devices
US6854022B1 (en) * 2002-02-22 2005-02-08 Western Digital Technologies, Inc. Disk drive using rotational position optimization algorithm to facilitate write verify operations
US7080245B2 (en) * 2002-05-23 2006-07-18 Hewlett-Packard Development Company, L.P. Method and system of switching between two or more images of firmware on a host device
US7114051B2 (en) * 2002-06-01 2006-09-26 Solid State System Co., Ltd. Method for partitioning memory mass storage device
US20040078729A1 (en) * 2002-06-26 2004-04-22 Siemens Aktiengesellschaft Method, computer, and computer program for detecting a bad block on a hard disk
JP2004071033A (ja) 2002-08-05 2004-03-04 Mitsubishi Electric Corp フラッシュメモリのデータ記録法
EP1396792B1 (en) * 2002-09-06 2005-06-15 Sun Microsystems, Inc. Memory copy command specifying source and destination of data executed in the memory controller
US7137118B2 (en) * 2002-09-27 2006-11-14 Texas Instruments Incorporated Data synchronization hardware primitive in an embedded symmetrical multiprocessor computer
US7296213B2 (en) * 2002-12-11 2007-11-13 Nvidia Corporation Error correction cache for flash memory
US6901461B2 (en) * 2002-12-31 2005-05-31 Intel Corporation Hardware assisted ATA command queuing
JP4165747B2 (ja) * 2003-03-20 2008-10-15 株式会社日立製作所 記憶システム、制御装置及び制御装置のプログラム
US7136938B2 (en) * 2003-03-27 2006-11-14 International Business Machines Corporation Command ordering based on dependencies
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7159104B2 (en) * 2003-05-20 2007-01-02 Nvidia Corporation Simplified memory detection
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7200688B2 (en) * 2003-05-29 2007-04-03 International Business Machines Corporation System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command
JP4653960B2 (ja) * 2003-08-07 2011-03-16 ルネサスエレクトロニクス株式会社 メモリカードおよび不揮発性メモリ混載マイコン
CN2662316Y (zh) * 2003-11-28 2004-12-08 中国科学院空间科学与应用研究中心 嵌入式计算机系统用的系统主板
US7865809B1 (en) 2004-03-11 2011-01-04 Super Talent Electronics, Inc. Data error detection and correction in non-volatile memory devices
US8176238B2 (en) 2003-12-02 2012-05-08 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
JP2005190106A (ja) * 2003-12-25 2005-07-14 Hitachi Ltd 論理ボリュームを管理する記憶制御サブシステム
US7370230B1 (en) * 2004-01-08 2008-05-06 Maxtor Corporation Methods and structure for error correction in a processor pipeline
US8108870B2 (en) * 2004-01-29 2012-01-31 Klingman Edwin E Intelligent memory device having ASCII-named task registers mapped to addresses of a task
US7127549B2 (en) 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7984316B2 (en) * 2004-02-24 2011-07-19 Paul Kaler Solid state disk with hot-swappable components
US7328304B2 (en) * 2004-02-27 2008-02-05 Intel Corporation Interface for a block addressable mass storage system
CA2557641A1 (en) 2004-02-27 2005-09-15 Tigi Corporation System and method for data manipulation
US7406572B1 (en) * 2004-03-26 2008-07-29 Cypress Semiconductor Corp. Universal memory circuit architecture supporting multiple memory interface options
US20080147931A1 (en) * 2006-10-17 2008-06-19 Smart Modular Technologies, Inc. Data striping to flash memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7205532B2 (en) * 2004-08-24 2007-04-17 Avago Technologies Ecbu Ip (Singapore) Pte. Ltd. Integrated ball grid array optical mouse sensor packaging
US20060053308A1 (en) * 2004-09-08 2006-03-09 Raidy 2 Go Ltd. Secured redundant memory subsystem
US7283074B2 (en) 2004-09-21 2007-10-16 Telegent Systems, Inc. Pilot-tone calibration for time-interleaved analog-to-digital converters
KR100667780B1 (ko) * 2004-11-22 2007-01-11 삼성전자주식회사 검정 방법, 기록/재생 장치 및 정보 저장 매체
US7730257B2 (en) 2004-12-16 2010-06-01 Broadcom Corporation Method and computer program product to increase I/O write performance in a redundant array
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
JP2006195569A (ja) * 2005-01-11 2006-07-27 Sony Corp 記憶装置
US7562366B2 (en) 2005-02-03 2009-07-14 Solarflare Communications, Inc. Transmit completion event batching
CN101142630A (zh) * 2005-02-11 2008-03-12 圣迪斯克以色列有限公司 Nand闪速存储器系统结构
TWI266988B (en) 2005-03-01 2006-11-21 Sunplus Technology Co Ltd Method and system for accessing A/V data in computer apparatus
US20060211388A1 (en) * 2005-03-07 2006-09-21 Lambert Grady D Stackable printed circuit boards
US20080126658A1 (en) * 2006-05-28 2008-05-29 Phison Electronics Corp. Inlayed flash memory module
US7822912B2 (en) * 2005-03-14 2010-10-26 Phision Electronics Corp. Flash storage chip and flash array storage system
US7225289B2 (en) * 2005-03-14 2007-05-29 Phison Electronics Corporation Virtual IDE storage with PCI express interface
JP2007004775A (ja) * 2005-05-23 2007-01-11 Toshiba Corp 半導体メモリカード
KR100690804B1 (ko) 2005-06-13 2007-03-09 엘지전자 주식회사 휴대단말기의 메모리 정리 방법
TWI319160B (en) * 2005-07-11 2010-01-01 Via Tech Inc Memory card capable of supporting various voltage supply and control chip and method of supporting voltage thereof
US7660306B1 (en) 2006-01-12 2010-02-09 Chelsio Communications, Inc. Virtualizing the operation of intelligent network interface circuitry
US20070079098A1 (en) * 2005-10-03 2007-04-05 Hitachi, Ltd. Automatic allocation of volumes in storage area networks
KR100993664B1 (ko) * 2005-10-17 2010-11-10 르네사스 일렉트로닉스 가부시키가이샤 반도체 장치 및 그의 제조 방법
JP2009521045A (ja) 2005-12-21 2009-05-28 エヌエックスピー ビー ヴィ ブロック消去可能なメモリ場所を有する不揮発性メモリ
US20100299494A1 (en) 2005-12-22 2010-11-25 Nxp B.V. Memory with block-erasable locations and a linked chain of pointers to locate blocks with pointer information
US20100165562A1 (en) * 2006-01-12 2010-07-01 Para Kanagasabai Segaram Memory module
US7549021B2 (en) * 2006-02-22 2009-06-16 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
WO2007096844A2 (en) 2006-02-27 2007-08-30 Nxp B.V. Memory with block-erasable locations
JP2007257791A (ja) * 2006-03-24 2007-10-04 Fujitsu Ltd 半導体記憶装置
JP4135747B2 (ja) * 2006-04-06 2008-08-20 ソニー株式会社 データ処理装置及びフラッシュメモリへのアクセス方法
US20070271495A1 (en) 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
CN100433697C (zh) * 2006-06-01 2008-11-12 东南大学 多通道高速数据处理器及处理方法
US7506098B2 (en) * 2006-06-08 2009-03-17 Bitmicro Networks, Inc. Optimized placement policy for solid state storage devices
US7613876B2 (en) * 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
WO2007146845A2 (en) 2006-06-08 2007-12-21 Bitmicro Networks, Inc. Configurable and scalable hybrid multi-tiered caching storage system
TW200805394A (en) * 2006-07-07 2008-01-16 Alcor Micro Corp Memory storage device and the read/write method thereof
US8140738B2 (en) 2006-07-20 2012-03-20 Stmicroelectronics Pvt. Ltd. Flash memory interface device
US7487428B2 (en) * 2006-07-24 2009-02-03 Kingston Technology Corp. Fully-buffered memory-module with error-correction code (ECC) controller in serializing advanced-memory buffer (AMB) that is transparent to motherboard memory controller
WO2008022094A2 (en) 2006-08-14 2008-02-21 Plankton Technologies, Llc Data storage device
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
CN100573435C (zh) 2006-08-18 2009-12-23 福昭科技(深圳)有限公司 一种基于闪存记忆体的大容量存储装置
US7904639B2 (en) * 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
KR20080017982A (ko) * 2006-08-23 2008-02-27 삼성전자주식회사 플래시 메모리 시스템 및 그 프로그램 방법
US7730269B2 (en) * 2006-08-29 2010-06-01 International Business Machines Corporation Load management to reduce communication signaling latency in a virtual machine environment
JP2008065575A (ja) * 2006-09-07 2008-03-21 Fuji Xerox Co Ltd 拡張メモリ装置、及びメモリ拡張システム
CN101118783A (zh) * 2006-09-07 2008-02-06 晶天电子(深圳)有限公司 带有闪存坏块控制系统的电子数据闪存卡
JP4452261B2 (ja) 2006-09-12 2010-04-21 株式会社日立製作所 ストレージシステムの論理ボリューム管理方法、論理ボリューム管理プログラム、及びストレージシステム
US20080077727A1 (en) 2006-09-25 2008-03-27 Baca Jim S Multithreaded state machine in non-volatile memory devices
US8051253B2 (en) * 2006-09-28 2011-11-01 Virident Systems, Inc. Systems and apparatus with programmable memory control for heterogeneous main memory
US7587575B2 (en) 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
JP4932427B2 (ja) 2006-10-20 2012-05-16 株式会社日立製作所 記憶装置及び記憶方法
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US7660911B2 (en) * 2006-12-20 2010-02-09 Smart Modular Technologies, Inc. Block-based data striping to flash memory
US7668177B1 (en) 2006-12-28 2010-02-23 Qlogic, Corporation Method and system for quality of service in host bus adapters
KR100813630B1 (ko) 2007-02-07 2008-03-14 삼성전자주식회사 독출 성능을 향상할 수 있는 플래시 메모리 시스템 및그것의 독출 방법
US20080209157A1 (en) 2007-02-27 2008-08-28 Inventec Corporation Memory partitioning method
JP5224706B2 (ja) 2007-03-23 2013-07-03 キヤノン株式会社 記憶装置及び記憶装置の制御方法
JP4781373B2 (ja) * 2007-05-14 2011-09-28 株式会社バッファロー 記憶装置
JP2008287404A (ja) * 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
JP2008293096A (ja) 2007-05-22 2008-12-04 Shinko Electric Ind Co Ltd メモリインタフェースおよびメモリシステム
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
WO2008147752A1 (en) 2007-05-24 2008-12-04 Sandisk Corporation Managing housekeeping operations in flash memory
KR20080105390A (ko) 2007-05-30 2008-12-04 삼성전자주식회사 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
US8040710B2 (en) 2007-05-31 2011-10-18 Qimonda Ag Semiconductor memory arrangement
US7898813B2 (en) * 2007-06-25 2011-03-01 Kabushiki Kaisha Toshiba Semiconductor memory device and semiconductor memory card using the same
US20090006720A1 (en) 2007-06-27 2009-01-01 Shai Traister Scheduling phased garbage collection and house keeping operations in a flash memory system
US8001444B2 (en) 2007-08-08 2011-08-16 Intel Corporation ECC functional block placement in a multi-channel mass storage device
US7639165B2 (en) 2007-08-10 2009-12-29 Marvell World Trade Ltd. Calibrating replica digital-to-analog converters
JP4977554B2 (ja) 2007-08-22 2012-07-18 株式会社日立製作所 キャッシュメモリ上のデータをバックアップする機能を備えたストレージシステム
KR101466694B1 (ko) 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
US8086936B2 (en) 2007-08-31 2011-12-27 International Business Machines Corporation Performing error correction at a memory device level that is transparent to a memory channel
US20090063895A1 (en) 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
US20090125790A1 (en) 2007-11-13 2009-05-14 Mcm Portfolio Llc Method and Apparatus of Automatically Selecting Error Correction Algorithms by a NAND Flash Controller
TWI384488B (zh) * 2007-12-24 2013-02-01 Skymedi Corp Nonvolatile storage device and its data writing method
US20100049914A1 (en) * 2008-08-20 2010-02-25 Goodwin Paul M RAID Enhanced solid state drive
US8266365B2 (en) 2008-12-17 2012-09-11 Sandisk Il Ltd. Ruggedized memory device
US20100287217A1 (en) 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US20100262979A1 (en) 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
US8447918B2 (en) 2009-04-08 2013-05-21 Google Inc. Garbage collection for failure prediction and repartitioning
US8205037B2 (en) 2009-04-08 2012-06-19 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips operating at different voltages
WO2010137178A1 (en) 2009-05-25 2010-12-02 Hitachi,Ltd. Storage subsystem
US8352681B2 (en) 2009-07-17 2013-01-08 Hitachi, Ltd. Storage system and a control method for accelerating the speed of copy processing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802345A (en) * 1994-03-28 1998-09-01 Matsunami; Naoto Computer system with a reduced number of command end interrupts from auxiliary memory unit and method of reducing the number of command end interrupts
CN1432929A (zh) * 2003-02-14 2003-07-30 威盛电子股份有限公司 多微处理器系统内响应中断服务要求的仲裁结构及方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244842B2 (en) 2009-04-08 2016-01-26 Google Inc. Data storage device with copy command
CN105938418A (zh) * 2015-03-06 2016-09-14 爱思开海力士有限公司 存储系统及其操作方法
CN105938418B (zh) * 2015-03-06 2020-05-08 爱思开海力士有限公司 存储系统及其操作方法
CN109564766A (zh) * 2016-08-10 2019-04-02 国际商业机器公司 大容量存储设备封装和这类封装的软件定义阵列
CN109564766B (zh) * 2016-08-10 2023-03-21 国际商业机器公司 大容量存储设备封装和这类封装的软件定义阵列
CN107943726A (zh) * 2017-11-16 2018-04-20 郑州云海信息技术有限公司 一种基于PCIe接口的数据传输系统及方法
CN108092730A (zh) * 2017-12-27 2018-05-29 中国电子科技集团公司第五十四研究所 一种适用于多设备的时序控制方法
CN110046114A (zh) * 2019-03-06 2019-07-23 上海熠知电子科技有限公司 基于pcie协议的dma控制器及dma数据传输方法
CN111984186A (zh) * 2019-05-23 2020-11-24 爱思开海力士有限公司 装置及其操作方法
TWI830145B (zh) * 2022-01-18 2024-01-21 新加坡商聯發科技(新加坡)私人有限公司 傳感裝置的中斷處理方法及其積體電路

Also Published As

Publication number Publication date
JP5347061B2 (ja) 2013-11-20
US8578084B2 (en) 2013-11-05
JP2015046175A (ja) 2015-03-12
WO2010117930A1 (en) 2010-10-14
DE202010017661U1 (de) 2012-04-04
JP2012523622A (ja) 2012-10-04
CN107832010A (zh) 2018-03-23
US20100262738A1 (en) 2010-10-14
US8244962B2 (en) 2012-08-14
EP2417529A1 (en) 2012-02-15
AU2010234648A1 (en) 2011-11-10
JP2012523619A (ja) 2012-10-04
US20100262762A1 (en) 2010-10-14
EP2417531A1 (en) 2012-02-15
AU2010234647A1 (en) 2011-11-10
US20100262894A1 (en) 2010-10-14
AU2010234648B2 (en) 2013-08-22
EP2417528B1 (en) 2015-02-25
JP2012523618A (ja) 2012-10-04
JP2012523623A (ja) 2012-10-04
US8566507B2 (en) 2013-10-22
US20140047172A1 (en) 2014-02-13
AU2010234647B2 (en) 2013-08-15
DE202010017667U1 (de) 2012-04-04
WO2010117929A1 (en) 2010-10-14
WO2010117928A1 (en) 2010-10-14
US8566508B2 (en) 2013-10-22
WO2010117878A1 (en) 2010-10-14
AU2010234773B2 (en) 2013-11-14
EP2728488B1 (en) 2018-01-17
US8380909B2 (en) 2013-02-19
AU2010234772A1 (en) 2011-11-10
WO2010117877A1 (en) 2010-10-14
CN102428452A (zh) 2012-04-25
US20100262773A1 (en) 2010-10-14
JP2012523624A (ja) 2012-10-04
US8239724B2 (en) 2012-08-07
JP5657641B2 (ja) 2015-01-21
US20100262757A1 (en) 2010-10-14
CN102428453A (zh) 2012-04-25
US20100262758A1 (en) 2010-10-14
US20100262759A1 (en) 2010-10-14
AU2010234646A1 (en) 2011-11-10
US8250271B2 (en) 2012-08-21
EP2728488A3 (en) 2014-06-11
EP2728488A2 (en) 2014-05-07
EP2417533A1 (en) 2012-02-15
US20100262761A1 (en) 2010-10-14
AU2010234773A1 (en) 2011-11-10
DE202010017668U1 (de) 2012-04-04
US20100262760A1 (en) 2010-10-14
CN102428455A (zh) 2012-04-25
US20100262740A1 (en) 2010-10-14
US20140108708A1 (en) 2014-04-17
EP2417530A1 (en) 2012-02-15
JP5922016B2 (ja) 2016-05-24
US8639871B2 (en) 2014-01-28
DE202010017666U1 (de) 2012-04-05
DE202010017669U1 (de) 2012-04-05
CN102428451B (zh) 2015-01-21
US20140156915A1 (en) 2014-06-05
DE202010017665U1 (de) 2012-04-04
CN102428454A (zh) 2012-04-25
EP2417528A1 (en) 2012-02-15
US8205037B2 (en) 2012-06-19
AU2010234772B2 (en) 2013-12-05
EP2417531B1 (en) 2014-03-12

Similar Documents

Publication Publication Date Title
CN102428451A (zh) 用于数据存储装置的命令及中断分组
US10949091B2 (en) Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US9824004B2 (en) Methods and apparatuses for requesting ready status information from a memory
US20190018618A1 (en) Methods and apparatuses for executing a plurality of queued tasks in a memory
US8423722B1 (en) System and method for high performance command processing in solid state drives
US20100262979A1 (en) Circular command queues for communication between a host and a data storage device
US8966164B1 (en) Storage processor managing NVME logically addressed solid state disk array
CN102171649B (zh) 用于用单个命令对多个不连续地址范围的传送进行排队的方法和系统
US20100325346A1 (en) Parallel flash memory controller, chip and control method thereof
CN105210041A (zh) 针对虚拟处理器处理并路由中断
KR20100106262A (ko) 저장 컨트롤러 및 저장 시스템
US9400614B2 (en) Method and system for programmable sequencer for processing I/O for various PCIe disk drives
US20170046102A1 (en) Flexible interface for nand flash memory
US20220350655A1 (en) Controller and memory system having the same
CN110275840A (zh) 在存储器接口上的分布式过程执行和文件系统
CN104281413A (zh) 命令队列管理方法、存储器控制器及存储器储存装置
US20210011725A1 (en) Memory controller and memory system including the same
CN104216834A (zh) 一种内存访问的方法、缓冲调度器和内存模块
CN104750547A (zh) 虚拟机的输入输出io请求处理方法及装置
US10394486B2 (en) Methods for garbage collection in a flash memory and apparatuses using the same
US8667188B2 (en) Communication between a computer and a data storage device
US11127466B2 (en) Read data sorting method and storage device for sequentially transmitting read data of continuous logic block addresses to host
CN104050116A (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
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder