CN105589661A - 数据存储装置、数据处理系统和操作方法 - Google Patents
数据存储装置、数据处理系统和操作方法 Download PDFInfo
- Publication number
- CN105589661A CN105589661A CN201510763404.0A CN201510763404A CN105589661A CN 105589661 A CN105589661 A CN 105589661A CN 201510763404 A CN201510763404 A CN 201510763404A CN 105589661 A CN105589661 A CN 105589661A
- Authority
- CN
- China
- Prior art keywords
- response
- stored
- data
- main frame
- complete
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
提供一种数据存储装置、数据处理系统和操作方法。一种数据处理系统包括:主机,能够通过将命令存储在缓冲器中来管道执行包括多个命令的命令集;包括NVMe控制器的数据存储装置,接收命令并控制与各个命令相应的数据存取操作的执行,在成功运行每个命令时产生完成响应,并将作为结果的完成响应存储在缓冲器中,其中,NVMe控制器提取存储在缓冲器中的完成响应中的至少两个以产生完成包,并在单个事务期间将完成包发送到主机。
Description
本申请要求于2014年11月12日提交到韩国知识产权局的第10-2014-0157400号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
本发明构思的实施例涉及数据处理装置,更具体地讲,涉及将完成包存储在缓冲器中并在单个事务中将存储的完成包顺序地发送到主机的数据存储装置,其中,每个完成包与从主机接收的多个命令相应。本发明构思的其它实施例涉及操作数据存储装置的方法,以及操作包括该类型的数据存储装置的数据处理系统的方法。
背景技术
为了执行写入操作,存储器装置通常从主机接收写入命令、写入地址和(净荷)写入数据。这里,写入地址可以是写入命令的一部分。当接收到写入命令和写入数据时,存储器装置将写入数据写入存储器装置的由写入地址指定的存储区域中。一旦写入数据已被成功写入,存储器装置可立即发送写入操作完成指示(例如,写入完成响应)。
类似地,为了执行写入操作,存储器装置接收包括读取地址的读取命令,其中,读取地址识别存储器装置的存储读取数据的存储区域。依然,一旦读取数据已被成功读取,存储器装置可立即发送读取操作完成指示(例如,读取完成响应)。因此,在由写入命令指示的写入操作完成或由读取命令指示的读取操作完成之后,数据存储装置可立即将相应完成响应发送到请求写入/读取操作的主机。以下,读取和/或写入操作后可被单独称为或统称为数据存取操作。
在这点上,即使在数据存储装置被配置为以突发(burst)模式处理多个数据存取操作的情况下,数据存储装置也可在每个数据存取操作完成时发送每个数据存取操作的各自的完成响应。当缘于各个数据存取操作的多个数据集的顺序发送被中断(或不连续)时,该方法本质上通过再次需要将完成响应发送到请求的主机来避免突发模式的使用。该结果降低了数据存储装置和数据处理系统的总体数据存取性能。
发明内容
本发明构思的实施例提供一种数据存储装置,每当被执行的一系列数据存取操作中的各个数据存取操作完成时,所述数据存储装置不需要立即将完成响应发送到主机。这种能力提高了数据存储装置和数据处理系统的性能。在本发明构思的一些实施例中,与一系列数据存取命令相关联的各个响应完成可被存储在缓冲器中。随后,一旦一系列数据存取操作被完全执行,就可在单个数据事务期间将存储的完成响应从缓冲器顺序地发送(或转储)到请求的主机。本发明构思的特定实施例涉及以前述方式操作数据存储装置和/或数据处理系统的方法。
本发明构思的一个实施例中提供一种操作从主机接收包括至少一个命令的命令集的数据存储装置的方法。所述方法包括:针对命令集中的每个命令,在完成由命令指示的相应数据存取操作时产生完成响应,并将完成响应存储在数据存储装置中的缓冲器中以产生包括针对命令集的至少一个命令的完成响应的完成包;在单个事务期间将存储在缓冲器中的完成包发送到主机。
本发明构思的另一实施例中提供一种操作从主机接收多个命令的数据存储装置的方法,所述方法包括:针对每个命令,在完成由命令指示的相应数据存取操作时产生完成响应,并将完成响应存储在数据存储装置中的缓冲器中;使用非易失性存储器表达(NVMe)控制器提取存储在缓冲器中的一个或更多个完成响应以产生至少一个完成包;在单个事务期间将所述至少一个完成包中的一个完成包发送到主机。
本发明构思的另一实施例中提供一种数据存储装置,包括:缓冲器;非易失性存储器;存储器控制器,控制非易失性存储器的操作;非易失性存储器表达(NVMe)控制器,每当由从主机获取的命令指示的数据存取操作完成时,NVMe就产生完成响应,将产生的完成响应存储在缓冲器中,并在单个事务期间将包括存储在缓冲器中的多个完成响应的完成包发送到主机。
本发明构思的另一实施例中提供一种数据处理系统,包括:主机,能够通过将命令存储在缓冲器中来管道执行包括多个命令的命令集;包括非易失性存储器表达(NVMe)控制器的数据存储装置,接收命令并控制与各个命令相应的数据存取操作的执行,在成功执行每个命令时产生完成响应,并将作为结果的完成响应存储在缓冲器中,其中,NVMe控制器提取存储在缓冲器中的完成响应中的至少两个以产生完成包,并在单个事务期间将完成包发送到主机。
附图说明
从以下结合附图对实施例的描述,本发明构思的这些和/或其它方面和优点将变得清楚且更加容易理解,在附图中:
图1是根据本发明构思的实施例的数据处理系统的框图;
图2是进一步示出图1的NVMe控制器的一个示例的框图;
图3是描述在图1的数据处理系统中执行的写入操作的数据流示图;
图4是示出包括在图1的数据处理系统中的AXI总线的使用的写入事务时序图;
图5是描述在图1的数据处理系统中执行的读取操作的数据流示图;
图6是描述包括在图1的数据处理系统中的AXI总线的使用的读取事务时序图;
图7是概括图1的数据处理系统的操作的总体流程图;
图8是概括图1的数据处理系统中执行的写入操作的流程图;
图9是概括图1的数据处理系统中执行的读取操作的流程图;
图10是概括图1的数据处理系统根据时间条件或计数条件的操作的流程图;
图11是示出由图1的数据处理系统执行的操作的框图;
图12是示出包括图1的数据处理系统的搜索系统的框图。
具体实施方式
现在将参照附图以一些额外的细节来描述本发明构思的实施例。然而,本发明构思可以以许多不同的形式来实施,而不应该被解释为仅局限于示出的实施例。相反,提供这些实施例使得本公开将是彻底和完全的,并将本发明的范围充分地传达给本领域技术人员。贯穿记载的描述和附图,相同的标号和标记用于表示相同或相似的元件。
将理解,当元件被称作“连接到”或“结合到”另一元件时,该元件可直接连接或结合到另一元件,或者可以存在中间元件。相反,当元件被称作“直接连接到”或“直接结合到”另一元件时,不存在中间元件。如在这里使用的,术语“和/或”包括一个或更多个相关所列项的任意组合和所有组合,并且可以被缩写为“/”。
将理解,尽管在这里可使用术语第一、第二等来描述各种元件,但是这些元件不应该受这些术语的限制。这些术语仅是用来将一个元件与另一个元件区分开来。例如,在不脱离本公开的教导的情况下,第一信号可以被称为第二信号,类似地,第二信号可以被称为第一信号。
这里使用的术语仅为了描述特定实施例的目的,而不意图限制本发明。如这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。还应理解的是,当在本说明书中使用术语“包括”和/或“包含”时,说明存在阐述的特征、区域、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或更多个其它特征、区域、整体、步骤、操作、元件、组件和/或它们的组。
除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域的普通技术人员所通常理解的意思相同的意思。还将理解,除非这里明确定义,否则术语(诸如在通用字典中定义的术语)应该被解释为具有与相关领域和/或本申请的环境中它们的意思一致的意思,而不以理想的或者过于正式的含义来解释它们。
术语非易失性存储器(NVM)表达(NVMe)和NVM主机控制器接口规范(NVM-HCI)是指控制能够访问经由外围组件快速互连(PCIe)总线连接的固态驱动器/盘(SSD)的这种装置的装置和相关方法。这些装置和控制方法的各种形式在商业上被本领域技术人员所理解。在这点上,背景参考可以是(2014年7月2日)在http://www.nvmexpress.org公布的NVMeRevision1.1b(NVMe修订1.1b)。如可从该背景材料中所知的那样,当今的NVMe装置/方法支持对在定义的时间段期间从主机发送到根据NVMe/NVM-HCI规范配置的数据处理系统的多个未处理命令(即,一系列多个将被执行的命令)的使用。由于许多具有NVMe能力的装置/方法支持对多个未处理命令的使用,因此这种装置/方法能够按照数据存取命令的顺序发出下一命令,而不需要等待一个或更多个先前发出的数据存取命令的完成。换言之,根据NVMe/NVM-HCI规范配置的装置可在主机与数据处理系统之间“管道传输(pipeline)”一系列数据存取命令。
图1是示出根据本发明构思的实施例的数据处理系统100的框图。数据处理系统100总体上包括经由接口110连接的主机200和数据存储装置300。
数据处理系统100可被实施为服务器计算机、个人计算机(PC)、台式计算机、膝上型计算机、工作站计算机、附网存储器(NAS)、数据中心、互联网数据中心(IDC)或移动计算装置。例如,移动计算装置可被实施为智能电话、平板PC或移动互联网装置(MID)。
主机200可用于控制通过数据存储装置300的一个或更多个数据存取操作的执行。主机200可包括CPU220、缓冲器230、存储器控制器240、存储器250和第一接口260。为了便于描述,示例性地示出图1中示出的主机200的框图,而本发明构思的技术构思不局限于图1中示出的框图。
主机200可被实施为集成电路(IC)、母板或片上系统(SoC)。根据实施例,主机200可被实施为应用处理器(AP)或移动AP。
CPU220可通过总线架构210将命令和/或数据发送到缓冲器230、存储器控制器240和第一接口260或从缓冲器230、存储器控制器240和第一接口260接收命令和/或数据。例如,总线架构(或总线)210可以以高级微控制器总线架构((AMBATM)、高级高性能总线(AHB)、高级外围总线(APB)、高级可扩展接口(AXI)、AXI一致性扩展(ACE)或高级系统总线(ASB)被实施;然而,不限于此。
如下所述,CPU220可用于产生数据存取命令(例如,一个或更多个写入和/或读取命令)。根据本发明构思的实施例,CPU220可以是可执行能够执行操作的程序的处理器。
缓冲器230可存储第一队列231和第二队列233。根据实施例,缓冲器230可被实施为寄存器或静态随机存取存储器(SRAM)。第一队列231可以是提交队列,第二队列233可以是完成队列,其中,第一队列231存储数据存取命令。
存储器控制器240可用于在CPU220的控制下将数据写入存储器250中或从存储器250读取数据。因此,存储器控制器240可至少部分用作直接存储器存取(DMA)控制器。
存储器250可被实施为易失性存储器和/或非易失性存储器。易失性存储器可被实施为随机存取存储器(RAM)、SRAM或动态RAM(DRAM)。非易失性存储器可被实施为硬盘驱动器(HDD)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、磁阻式RAM(MRAM)、自旋转矩磁性随机存取存储器(STT-MRAM)、铁电RAM(FRAM)或电阻式RAM。
图1的数据处理系统示出一个存储器控制器240和一个存储器250,但是存储器控制器240可包括多个存储器控制器,存储器250可包括多个相同类型或不同类型的存储器。例如,在多个存储器包括DRAM和NAND闪速存储器的情况下,多个存储器控制器可包括DRAM控制器和NAND闪速存储器控制器。
为了便于描述,在图1中,假设缓冲器230包括存储队列231和233的缓冲器区域。然而,可选择地,队列231和233可被交替地存储在存储器250中。
第一接口260可经由接口110连接到数据存储装置300的第二接口312。这里,在本发明构思的特定实施例中,接口110、260和312中的每个可支持PCIe协议,但是本发明构思的范围不限于此。例如,接口110可以是串行ATA(SATA)接口,接口260和312中的每个可以是PCIe接口,其中,接口260和312中的每个执行SATA接口与PCIe接口之间的协议转换。
数据存储装置300可包括控制器310、存储器340和非易失性存储器350。数据存储装置300可被实施为基于闪速的存储器装置。例如,数据存储装置300可被实施为固态驱动器(SSD)、嵌入式SSD(eSSD)、通用闪存(UFS)、多媒体卡(MMC)或嵌入式MMC(eMMC)。可选择地,数据存储装置300可被实施为硬盘驱动器(HDD)。
在特定实施例中,数据存储装置300可机械连接到主机200/与主机200断开,并可被实施为存储器模块。
每当响应于相应数据存取命令(例如,一个或更多个写入命令和/或读取命令)执行的数据存取操作(例如,一个或更多个写入操作和/或读取操作)的命令集完成时,图1的数据存储装置300将产生并提供“完成包”。各个完成响应可被存储在缓冲器中作为产生完成包的一部分。也就是说,图1的数据存储装置300(与通常配置的数据存储装置不同)不需要在每个数据存取操作完成之后立即发送完成响应。而是,在定义的时间段期间(或者作为某些其他条件的结果)通过一个或更多个数据存取操作的完成产生的一个或更多个完成响应可被共同存储在缓冲器中以产生完成包。
一旦完成包(或一组完成包)已被存储在缓冲器中,数据存储装置300就可在单个事务期间将完成包发送到主机200。在这点上,术语“单个事务”可被视为响应于从主机接收的相应的单个命令而执行的单个数据传送操作。例如,根据本发明构思的实施例的数据存储装置可在缓冲器中累积与从主机接收的命令集中的多个数据存取命令相应的多个完成响应,并随后响应于单个缓冲器转储命令将累积的响应命令作为单个完成包发送到主机。
控制器310可用于控制主机200、存储器340和非易失性存储器350之间的命令和/或数据的传输。控制器310可包括第二接口312、CPU313、存储器控制器314、NVMe控制器315和RAM316;然而,不限于此。第二接口312可经由接口110将命令和/或数据发送到主机200的第一接口260,或经由接口110从主机200的第一接口260接收命令和/或数据。
CPU313可用于经由总线架构311控制第二接口312、存储器控制器314、NVMe控制器315和RAM316的操作。虽然在图1中仅示出一个CPU313,但是在特定实施例中,可包括控制与主机200交互(例如,命令和/或数据的发送或接收)的第一CUP和控制与非易失性存储器350交互的第二CPU。在这种示例中,第一CPU可控制第二接口312的操作,第二CPU可控制存储器控制器314和/或NVMe控制器315的操作。
例如,第二接口312、CPU313、存储器控制器314、NVMe控制器315和RAM316可经由总线架构311发送或接收命令和/或数据,其中,总线架构311可以是如上所述的AMBA、AHB、APB、AXI、ACE或ASB中的任何一个。
存储器控制器314可在CPU313的控制下将数据写入存储器340中或从存储器340读取数据。此外,存储器控制器314可根据CPU313的控制将数据写入非易失性存储器350中或从非易失性存储器350读取数据。例如,当非易失性存储器350被实施为闪速存储器时,存储器控制器314可执行闪速存储器控制器的功能。闪速存储器可以是NAND闪速存储器或NOR闪速存储器。
NVMe控制器315可在CPU313的控制下将数据写入存储器340中或从存储器340读取数据。此外,每当与数据存取命令相应的数据存取操作完成时,NVMe控制器315可产生完成响应,并将产生的完成响应存储在RAM316或存储器340中。这里,RAM316(例如,SRAM)可用作存储能够存储一个或更多个完成响应的队列的缓冲器。
存储器340可被实施为如DRAM的易失性存储器。图1示出RAM316和存储器340彼此分开的实施例,但是情况不需要总是这样,RAM316和存储器340可以是一个存储器,其中,RAM316是存储器340的指定部分。非易失性存储器350可被实施为闪速存储器(例如,NAND闪速存储器或NOR闪速存储器);然而,不限于此。非易失性存储器350可包括多个闪速存储器芯片。每个闪速存储器芯片可包括二维(2D)存储器单元阵列或三维(3D)存储器单元阵列。
在本发明构思的特定实施例中,3D存储器单元阵列单片地形成在具有布置在硅基底之上的有源区和与这些存储器单元的操作相关联的电路的存储器单元的阵列的一个或更多个物理级中,而不管这种相关联的电路是在这种基底之上还是在这种基底之内。术语“单片”表示阵列的每级的层直接布置在阵列的每个下面的级的层上。
在本发明构思的实施例中,3D存储器单元阵列包括竖直方向的竖直NAND串,以使至少一个存储器单元位于另一存储器单元之上。至少一个存储器单元可包括电荷撷取层。
通过引用包含于此的以下专利文件描述了三维存储器阵列的适当配置,其中,三维存储器阵列被配置为多个级,并且在级之间共享字线和/或位线:7,679,133号美国专利、8,553,466号美国专利、8,654,587号美国专利、8,559,235号美国专利和公布的2011/0233648号美国专利申请。
图2是进一步示出图1的NVMe控制器315的一个示例的框图。参照图1和图2,NVMe控制器315包括队列管理器317、配置寄存器325和条件确定电路327。在特定实施例中,条件确定电路327可包括时间检验电路329和计数检验电路331。NVMe控制器315还可包括控制读取操作的执行的读取控制电路333和控制写入操作的执行的写入控制电路335。
为了便于描述,图2将NVMe控制器315和RAM316一起示出。因此,在该配置中,RAM316可用作完成响应缓冲器或完成响应队列。队列管理器317可被实施为硬件、固件和/或软件。
队列管理器317可用于每当与数据存取命令相应的数据存取操作完成时产生完成响应,并将产生的完成响应存储在RAM316(在下文中,被称为“缓冲器”)中。在本上下文中,完成响应可通过完成响应产生引擎321产生。队列管理器317可获取存储在缓冲器316中的一个或更多个完成响应CP1至CPm,并响应于由条件确定电路327提供的至少一个指示信号ARM1和/或ARM2经由元件311、312和110将所述一个或更多个完成响应CP1至CPm作为完成包发送到主机200。
条件确定电路327可接收存储在配置寄存器325中的条件信息,并当满足与条件信息相应的条件时产生至少一个指示信号ARM1和/或ARM2。NVMe控制器315(例如,完成DMA控制器323)可响应于至少一个指示信号ARM1和/或ARM2从缓冲器316获取存储的完成响应CP1至CPm,并在单个数据传输事务期间将完成响应CP1至CPm作为完成包发送到主机200。
当条件确定电路327包括时间检验电路329和/或计数检验电路331时,队列管理器317可响应于由时间检验电路329提供的第一指示信号ARM1和/或由计数检验电路331提供的第二指示信号ARM2,从缓冲器316获取存储的完成响应CP1至CPm,并经由元件311、312和110将完成响应CP1至CPm作为完成包发送到主机200。指向存储的完成响应的获取操作可由完成DMA控制器323执行。
在图2的示出的实施例中,命令管理器319可从主机200接收指示存储在主机200的缓冲器230的第一队列231中的命令的数量的特定指示数据(或指示信息-NCI)。存入队列的命令从而可根据接收的指示数据NCI由CPU313获取。
与CPU313相关联的固件可用于响应于存储在配置寄存器325中的使能信息EN(例如,一个或更多个控制比特)控制NVMe控制器315的操作。相应地,NVMe控制器315可控制在单个事务期间将存储在缓冲器316中的完成响应CP1至CPm发送到主机200。在这点上,本发明构思的特定实施例使用第二队列233从存储在缓冲器316中的完成响应CP1至CPm配置“单一的”完成包(即,针对单个事务期间的传输配置的单个数据结构)。一旦完成包被发送到主机200,数据存储装置300可将指示与多个完成响应CP1至CPm相关联的一个或更多个数据存取命令的完成的中断发送到主机200。主机200可从第二队列233读取多个完成响应CP1至CPm,并响应于中断完成对相关联的数据存取命令的处理。
配置寄存器325可被实施为特殊功能寄存器(SFR)。配置寄存器325可包括存储使能信息EN的区域和存储条件信息的区域,其中,条件信息包括例如参考时间计数值Tref和参考计数值Cref。这里,使能信息EN和条件信息可由主机200的CPU220设置。
时间检验电路329可响应于时钟信号CLK并进一步响应于第三指示信号IS1,开始与操作时间相关联的计数。一旦时间计数值已被产生,可将时间计数值与参考时间计数值Tref进行比较以根据比较结果产生第一指示信号ARM1。
计数检验电路331可用于关于时钟信号CLK对存储在缓冲器316中的完成响应的数量进行计数,基于计数的结果产生计数值,将产生的计数值与参考计数值Cref进行比较,并根据比较结果产生第二指示信号ARM2。根据实施例,参考计数值Cref可被提供给完成直接存储器存取(DMA)控制器323。
时间检验电路329和/或计数检验电路331可通过针对每个命令集监视完成响应产生引擎321的操作(例如,完成包产生操作)对操作时间和/或产生的完成响应的数量进行计数。这里,“命令集”可包括例如根据一个或更多个定义的标准(诸如顺序时间关系)分组的一个或更多个命令。完成响应产生引擎321可将指示针对每个命令集首次产生完成包的第三指示信号IS1发送到时间检验电路329。此时,时间检验电路329可使用第三指示信号IS1和时钟信号CLK针对每个命令集对操作时间进行计数,并产生计数值。
计数检验电路331可使用时钟信号CLK提供指示响应于命令集中的一个或更多个数据存取命令已产生一个或更多个完成响应的第四指示信号IS2,并产生计数值。
当由队列管理器317获取的缓存的完成响应被完全发送到主机200时,时间检验电路329和/或计数检验电路331可被重新初始化。因此,时间检验电路329可针对下一命令集对操作时间重新计数,计数检验电路331可对响应于下一命令集产生的完成响应的数量重新计数。
读取控制电路333可将从存储器340输出的读取数据发送到第二接口312。根据实施例,读取数据可以是在存储器控制器314的控制下从非易失性存储器350读取的数据。根据另一实施例,读取控制电路333可利用存储器控制器314执行读取操作。
写入控制电路335可将从第二接口312发送的写入数据存储在存储器340中。根据实施例,存储在存储器340中的写入数据可在存储器控制器314的控制下被写入非易失性存储器350中。根据另一实施例,写入控制电路335可利用存储器控制器314执行写入操作。
图2的数据接口DI可以是总线架构311,或者可以是可将数据写入存储器340中或从存储器340读取数据的接口。
图3是描述在图1中示出的数据处理系统中执行的写入操作的数据流。
参照图1、图2和图3,假设一个命令集包括与参考计数值Cref(=m(“m”为自然数))相应的“m”个写入命令(WCMD1至WCMDm)。此外,假设处理m个写入命令WCMD1至WCMDm所需的时间(或用于将m个写入完成响应WCP1至WCPm存储在缓冲器316中的时间)小于参考时间计数值Tref。因此,时间检验电路329提供具有第一电平(例如,逻辑“低”或“0”)的第一指示信号ARM1。
主机200的CPU220可产生多个写入命令WCMD1至WCMDm,并将包括多个写入命令WCMD1至WCMDm的第一队列231存储在缓冲器230中。根据实施例,CPU220可产生指示包括(或堆叠)在第一队列231中的命令的数量的指示数据NCI,并通过元件210、260和110将指示数据NCI发送到数据存储装置300(S110)。
NVMe控制器315可响应于指示数据NCI获取包括在存储在缓冲器230中的第一队列231中的写入命令WCMD1至WCMDm(S112和S114)。
NVMe控制器315可从主机200的存储器250获取与获取的写入命令WCMD1至WCMDm中的每个相应的写入数据WDATA1至WDATAm中的每个(S116和S118)。根据实施例,可以以突发模式获取写入数据WDATA1至WDATAm。这里,假设写入数据WDATA1至WDATAm中的每个包括写入(净荷)数据。
根据实施例,NVMe控制器315可将获取的写入数据WDATA1至WDATAm中的每个存储在非易失性存储器350中。根据另一实施例,存储器控制器314可将获取的写入数据WDATA1至WDATAm中的每个存储在非易失性存储器350中。根据另一实施例,当NVMe控制器315将获取的写入数据WDATA1至WDATAm中的每个存储在存储器340中时,存储器控制器314可将写入存储器340中的写入数据WDATA1至WDATAm中的每个存储在非易失性存储器350中
例如,当与第一写入命令WCMD1相应的第一写入数据WDATA1被完全存储在非易失性存储器350中时,NVMe控制器315产生第一写入完成响应WCP1,并将第一写入完成响应WCP1存储在缓冲器316中(S121)。此时,NVMe控制器315的完成响应产生引擎321可将指示第一写入完成响应WCP1被产生的第四指示信号IS2发送到计数检验电路331。计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值,并将产生的计数值与参考计数值Cref进行比较。
当产生的计数值小于参考计数值Cref时,计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不立即将相应的第一写入完成响应WCP1发送到主机200。也就是说,完成DMA控制器323不从缓冲器316获取第一写入完成响应WCP1。
当与第二写入命令WCMD2相应的第二写入数据WDATA2被完全存储在非易失性存储器350中时(S122),NVMe控制器315可产生第二写入完成响应WCP2,并将第二写入完成响应WCP2存储在缓冲器316中(S123)。
此时,NVMe控制器315的完成响应产生引擎321将指示第二写入完成响应WCP2被产生的第四指示信号IS2发送到计数检验电路331。计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值,并将产生的计数值与参考计数值Cref进行比较。
当产生的计数值小于参考计数值Cref时,计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不立即将第二写入完成响应WCP2发送到主机200。也就是说,完成DMA控制器323不从缓冲器316获取第二写入完成响应WCP2。
当与第m写入命令WCMDm相应的第m写入数据WDATAm被完全存储在非易失性存储器350中时(S124),NVMe控制器315可产生第m写入完成响应WCPm,并将第m写入完成响应WCPm存储在缓冲器316中(S125)。此时,NVMe控制器315的完成响应产生引擎321将指示第m写入完成响应WCPm被产生的第四指示信号IS2发送到计数检验电路331。计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值,并将产生的计数值与参考计数值Cref进行比较。
当产生的计数值等于参考计数值Cref时,计数检验电路331将具有第二电平(例如,高电平或逻辑1)的第二指示信号ARM2发送到完成DMA控制器323。
完成DMA控制器323可响应于具有第一电平的第一指示信号ARM1和具有第二电平的第二指示信号ARM2,获取存储在缓冲器316中的写入完成响应WCP1至WCPm,并在单个事务期间将获取的写入完成响应WCP1至WCPm发送到主机200(S137)。例如,完成DMA控制器323可参照参考计数值Cref获取存储在缓冲器316中的写入完成响应WCP1至WCPm。
当获取的写入完成响应WCP1至WCPm在单个事务期间被发送到主机200时,由计数检验电路331计数的计数值可被重置。例如,完成DMA控制器323可将指示写入完成响应WCP1至WCPm在单个事务期间被发送到主机200的指示信号发送到时间检验电路329和计数检验电路331。指示信号可被用作重置信号。
主机200可将包括获取的写入完成响应WCP1至WCPm的第二队列233存储在缓冲器230中(S129)。数据存储装置300(例如,CPU313或队列管理器317)可产生指示获取的写入完成响应WCP1至WCPm在单个事务期间被发送到主机200的中断,并将产生的中断发送到主机200。主机200(例如,CPU220)可响应于接收的中断读取存储在第二队列233中的完成响应WCP1至WCPm,并完成写入命令WCMD1至WCMDm的处理过程。
图4是示出包括在图1的数据处理系统中的AXI总线的使用的写入事务时序图。当假设数据存储装置300的总线架构311使用AXI总线协议时,与连续地址ADD1至ADDm相应的连续写入数据WDATA1至WDATAm可以以突发方式被发送到主机200。因此,连续写入数据WDATA1至WDATAm可被发送为突发写入数据。
也就是说,每当写入完成响应WCP1至WCPm中的每个被产生时,根据本发明构思的实施例的NMVe控制器315不立即将写入完成响应WCP1至WCPm中的每个发送到主机200,而是当与参考计数值Cref相应的写入完成响应WCP1至WCPm被堆叠在缓冲器316中时,在单个事务期间将与参考计数值Cref相应的写入完成响应WCP1至WCPm作为单一完成包发送到主机(S127)。
相反,当包括连续写入数据WDATA1至WDATAm的突发数据被特定传统数据存储装置所破坏时,需要特定时间量来计算地址ADD1至ADDm中的每个,和/或需要特定时间量来等待与包括写入命令WCMD1至WCMDm的命令集相关联的写入完成响应WCP1至WCPm中的每个,从而使传统数据处理系统的性能劣化。
然而,根据本发明构思的实施例的数据处理系统100可在单个事务期间将一组获取的写入完成响应WCP1至WCPm发送到主机200,以使包括连续写入数据WDATA1至WDATAm的写入数据的单一突发不必被破坏。因此,可提高数据处理系统100的性能。
图5是描述在图1的数据处理系统中执行的读取操作的数据流示图。将参照图1、图2、图5和图6描述在数据处理系统100中执行的读取操作。
假设命令集包括与参考计数值Cref(=m)相应的“m”个读取命令RCMD1至RCMDm。此外,假设执行m个读取命令RCMD1至RCMDm所需的时间或将m个读取完成响应RCP1至RCPm存储在缓冲器316中所需的时间小于参考时间计数值Tref。因此,条件确定电路327(例如,时间检验电路329)可输出具有第一电平的第一指示信号ARM1。
主机200的CPU220可产生多个读取命令RCMD1至RCMDm,并将包括多个读取命令RCMD1至RCMDm的第一队列231存储在缓冲器230中。根据实施例,CPU220可产生指示包括(或堆叠)在第一队列231中的命令的数量的指示数据NCI,并通过元件210、260和110将指示数据NCI发送到数据存储装置300(S210)。
NVMe控制器315可响应于指示数据NCI获取包括在存储在缓冲器230中的第一队列231中的读取命令RCMD1至RCMDm(S212和S214)。NVMe控制器315可从非易失性存储器350获取与获取的读取命令RCMD1至RCMDm中的每个相应的读取数据RDATA1至RDATAm(S216、S118……、S220)。读取数据RDATA1至RDATAm中的每个为读取(净荷)数据。
根据实施例,存储器控制器314可将获取的读取数据RDATA1至RDATAm中的每个存储在存储器340中。根据另一实施例,存储器控制器314可通过总线架构311将获取的读取数据RDATA1至RDATAm中的每个发送到NVMe控制器315。
例如,当与第一读取命令RCMD1相应的第一读取数据RDATA1被完全存储在主机200的存储器250中时(S216-1),NVMe控制器315可产生第一读取完成响应RCP1,并将第一读取完成响应RCP1存储在缓冲器316中(S217)。此时,NVMe控制器315的完成响应产生引擎321将指示第一读取完成响应RCP1被产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值,并将产生的计数值与参考计数值Cref进行比较。当产生的计数值小于参考计数值Cref时,计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不立即将第一读取完成响应RCP1发送到主机200。也就是说,完成DMA控制器323不从缓冲器316获取第一读取完成响应RCP1。
当与第二读取命令RCMD2相应的第二读取数据RDATA2被完全存储在主机200的存储器250中时(S216-1),NVMe控制器315产生第二读取完成响应RCP2,并将第二读取完成响应RCP2存储在缓冲器316中(S219)。此时,NVMe控制器315的完成响应产生引擎321将指示第二读取完成响应RCP2被产生的第四指示信号IS2发送到计数检验电路331。计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值,并将产生的计数值与参考计数值Cref进行比较。
当产生的计数值小于参考计数值Cref时,计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不立即将第二读取完成响应RCP2发送到主机200。也就是说,完成DMA控制器323不从缓冲器316获取第二读取完成响应RCP2。
当与第m读取命令RCMDm相应的第m读取数据RDATAm被完全存储在主机200的存储器250中时(S216-1),NVMe控制器315产生第m读取完成响应RCPm,并将第m读取完成响应RCPm存储在缓冲器316中(S221)。此时,NVMe控制器315的完成响应产生引擎321将指示第m读取完成响应RCPm被产生的第四指示信号IS2发送到计数检验电路331。计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值,并将产生的计数值与参考计数值Cref进行比较。
当产生的计数值等于参考计数值Cref时,计数检验电路331将具有第二电平的第二指示信号ARM2发送到完成DMA控制器323。
完成DMA控制器323可响应于具有第一电平的第一指示信号ARM1和具有第二电平的第二指示信号ARM2,获取存储在缓冲器316中的读取完成响应RCP1至RCPm,并在单个事务期间将获取的读取完成响应RCP1至RCPm发送到主机200(S223)。例如,完成DMA控制器323可参照参考计数值Cref获取存储在缓冲器316中的读取完成响应RCP1至RCPm。
当获取的读取完成响应RCP1至RCPm在单个事务期间被发送到主机200时,由计数检验电路331计数的计数值可被重置。例如,完成DMA控制器323可将指示读取完成响应在单个事务期间被发送到主机200的指示信号发送到时间检验电路329和计数检验电路331。指示信号可被用作重置信号。
主机200可将包括获取的读取完成响应RCP1至RCPm的第二队列233存储在缓冲器230中(S225)。数据存储装置300(例如,CPU313或队列管理器317)可产生指示获取的读取完成响应RCP1至RCPm在单个事务期间被发送到主机的中断,并将产生的中断发送到主机200。主机200(例如,CPU220)可响应于接收的中断读取存储在第二队列233中的读取完成响应RCP1至RCPm,并完成读取命令RCMD1至RCMDm的处理过程。
图6是示出包括在图1的数据处理系统中的AXI总线的使用的读取事务时序图。当假设数据存储装置300的总线架构311使用AXI总线协议时,与连续地址ADD1至ADDm相应的连续读取数据RDATA1至RDATAm可以以突发方式被发送到主机200。
也就是说,每当每个读取完成响应被产生时,根据本发明构思的实施例的NMVe控制器315不立即将读取完成响应RCP1至RCPm中的每个发送到主机200,而是当与参考计数值相应的读取完成响应RCP1至RCPm被堆叠在缓冲器316中时,NMVe控制器315可在单个事务期间将与参考计数值Cref相应的读取完成响应RCP1至RCPm发送到主机(S223)。
当包括连续读取数据RDATA1至RDATAm的突发数据在现有技术的数据存储装置中被破坏时,针对读取命令RCMD1至RCMDm中的每个,需要用于计算地址ADD1至ADDm中的每个的时间,和/或用于等待读取完成响应RCP1至RCPm中的每个的时间,从而使现有技术的数据处理系统的性能劣化。
然而,根据本发明构思的实施例的数据处理系统100可在单个事务期间将获取的读取完成响应RCP1至RCPm发送到主机,以使包括连续读取数据RDATA1至RDATAm的突发数据不被破坏。因此,可提高数据处理系统100的性能。
图7是总体上概括图1的数据处理系统的操作的流程图。参照图1、图2和图7,每当由相应数据存取命令(例如,写入命令或读取命令)指示的相应数据存取操作(例如,写入操作或读取操作)完成时,数据存储装置300产生给定类型的完成响应(例如,写入完成响应或读取完成响应)。当各个完成响应以这种方式被产生时,各个完成响应被存储在缓冲器316中(S310)。数据存储装置300随后可在单个事务期间将存储在缓冲器316中的累积的完成响应作为单个完成包发送到主机200(S320)。
图8是概括图1的数据处理系统响应于包括多个写入命令的命令集的操作的流程图。参照图1、图2、图3、图4和图8,数据存储装置300从主机200接收指示包括(或存储)在主机200的第一队列231中的写入命令WCMD1至WCMDm的数量的指示数据NCI(S410)。
数据存储装置300响应于指示数据NCI获取包括(或存储)在第一队列231中的写入命令WCMD1至WCMDm(S412)。数据存储装置300可从主机200的存储器250获取与获取的写入命令WCMD1至WCMDm中的每个相应的写入数据WDATA1至WDATAm(S414)。
随后,每当与获取的写入命令WCMD1至WCMDm中的每个相应的写入数据WDATA1至WDATAm中的每个被完全存储在非易失性存储器350中时,数据存储装置300就产生写入完成响应,并将产生的写入完成响应存储在缓冲器316中(S416)。也就是说,数据存储装置300不立即发送每当写入数据WDATA1至WDATAm中的每个被完全存储在非易失性存储器350中时产生的写入完成响应。
数据存储装置300可在条件确定电路327的控制下获取存储在缓冲器316中的一个或更多个写入完成响应,并在单个事务期间将获取的一个或更多个写入完成响应作为完成包发送到主机200。更具体地讲,数据存储装置300可在时间检验电路329或计数检验电路331的控制下获取存储在缓冲器316中的一个或更多个写入完成响应,并在单个事务期间将获取的一个或更多个写入完成响应作为完成包发送到主机200。
如上所述,即使当数据存储装置300响应于仅包括单个写入命令的命令集产生单个写入完成响应时,数据存储装置300也不必需立即将相应的写入完成响应发送到主机200,而是可将写入完成响应存储在缓冲器316中,并之后随着与参考时间计数值相应的时间过去而将存储在缓冲器316中的写入完成响应发送到主机200。
图9是概括图1的数据处理系统响应于包括多个读取命令的命令集的操作的流程图。参照图1、图2、图5、图6和图9,数据存储装置300从主机200接收指示包括(或存储)在主机200的第一队列231中的读取命令RCMD1至RCMDm的数量的指示数据NCI(S510)。
数据存储装置300响应于指示数据NCI获取包括(或存储)在第一队列231中的读取命令RCMD1至RCMDm(S512)。数据存储装置300可从非易失性存储器350获取与获取的读取命令RCMD1至RCMDm中的每个相应的读取数据RDATA1至RDATAm(S514)。
每当与获取的读取命令RCMD1至RCMDm中的每个相应的读取数据RDATA1至RDATAm中的每个被完全存储在主机200的存储器250中时,数据存储装置300就产生读取完成响应,并将读取完成响应存储在缓冲器316中(S516)。也就是说,数据存储装置300不立即将每当读取数据RDATA1至RDATAm中的每个被完全存储在主机200的存储器250中时产生的读取完成响应发送到主机200。
数据存储装置300可根据时间检验电路329或计数检验电路331的控制获取存储在缓冲器316中的一个或更多个读取完成响应,并在单个事务期间将获取的一个或更多个读取完成响应发送到主机200。
如上所述,即使当数据存储装置300接收仅包括单个读取命令的命令集时,作为结果的完成响应也不需要被立即发送到主机200,而是可被存储在缓冲器316中,并随着与参考时间计数值相应的时间过去而从缓冲器316被发送到主机200。
图10是概括图1中示出的数据处理系统根据时间条件或计数条件的操作的流程图。参照图1、图2和图10,数据存储装置300(尤其是NVMe控制器315)可响应于特定条件信息(例如,参考计数值Cref和/或参考时间计数值Tref)在单个事务期间将存储在缓冲器316中的一个或更多个完成响应发送到主机200。
为了便于描述,假设参考计数值Cref为三(3),与参考时间计数值Tref相应的时间为两(2)秒,存储在第一队列231中的命令的数量为三(3),在两秒内三个写入完成响应WCP1、WCP2和WCP3被存储在缓冲器316中。
当第一写入数据WDATA1被完全存储在非易失性存储器350中时,完成响应产生引擎321可产生第一写入完成响应WCP1并将第一写入完成响应WCP1存储在缓冲器316中。此时,完成响应产生引擎321将指示第一写入完成响应WCP1的产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值(例如,1),并将产生的计数值(例如,1)与参考计数值(Cref=3)进行比较(S610)。由于产生的计数值(例如,1)小于参考计数值(Cref=3),因此计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。
此外,时间检验电路329将时间计数值与参考时间计数值Tref进行比较,并且当时间计数值小于参考时间计数值Tref时(S612),时间检验电路329将具有第一电平的第一指示信号ARM1发送到完成DMA控制器323。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不获取存储在缓冲器316中的第一写入完成响应WCP1。
当第二写入数据WDATA2被完全存储在非易失性存储器350中时,完成响应产生引擎321可产生第二写入完成响应WCP2,并将第二写入完成响应WCP2存储在缓冲器316中。此时,完成响应产生引擎321将指示第二写入完成响应WCP2的产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值(例如,2),并将产生的计数值(例如,2)与参考计数值(Cref=3)进行比较(S610)。由于产生的计数值(例如,2)小于参考计数值(Cref=3),因此计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。
此外,时间检验电路329将时间计数值与参考时间计数值Tref进行比较,并且当时间计数值小于参考时间计数值Tref时,时间检验电路329将具有第一电平的第一指示信号ARM1发送到完成DMA控制器323。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不获取存储在缓冲器316中的写入完成响应WCP1和WCP2中的每个。
当第三写入数据WDATA3被完全存储在非易失性存储器350中时,完成响应产生引擎321可产生第三写入完成响应WCP3,并将第三写入完成响应WCP3存储在缓冲器316中。此时,完成响应产生引擎321将指示第三写入完成响应WCP3的产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值(例如,3),并将产生的计数值(例如,3)与参考计数值(Cref=3)进行比较(S610)。由于产生的计数值(例如,3)等于参考计数值(Cref=3),因此计数检验电路331将具有第二电平的第二指示信号ARM2发送到完成DMA控制器323。
此外,时间检验电路329将时间计数值与参考时间计数值Tref进行比较,并且当时间计数值小于参考时间计数值Tref时,时间检验电路329将具有第一电平的第一指示信号ARM1发送到完成DMA控制器323(S612)。
完成DMA控制器323可响应于具有第一电平的第一指示信号ARM1和具有第二电平的第二指示信号ARM2,获取存储在缓冲器316中的写入完成响应WCP1、WCP2和WCP3(S614),并一次以突发方式将获取的写入完成响应WCP1、WCP2和WCP3发送到主机200(S616)。
当获取的写入完成响应WCP1、WCP2和WCP3被发送到主机200时,由计数验证电路331计数的计数值被初始化。
为了便于描述,假设参考计数值Cref为2,与参考时间计数值Tref相应的时间为两秒,存储在第一队列231中的命令的数量为m,在两秒内两个写入完成响应WCP1和WCP2被存储在缓冲器316中。
当第一写入数据WDATA1被完全存储在非易失性存储器350中时,完成响应产生引擎321可产生第一写入完成响应WCP1并将第一写入完成响应WCP1存储在缓冲器316中。此时,完成响应产生引擎321将指示第一写入完成响应WCP1的产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值(例如,1),并将产生的计数值(例如,1)与参考计数值(Cref=2)进行比较(S610)。由于产生的计数值(例如,1)小于参考计数值(Cref=2),因此计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。
此外,时间检验电路329将时间计数值与参考时间计数值Tref进行比较,并且当时间计数值小于参考时间计数值Tref时,时间检验电路329将具有第一电平的第一指示信号ARM1发送到完成DMA控制器323。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不获取存储在缓冲器316中的第一写入完成响应WCP1。
当第二写入数据WDATA2被完全存储在非易失性存储器350中时,完成响应产生引擎321可产生第二写入完成响应WCP2,并将第二写入完成响应WCP2存储在缓冲器316中。此时,完成响应产生引擎321将指示第二写入完成响应WCP2的产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值(例如,2),并将产生的计数值(例如,2)与参考计数值(Cref=2)进行比较(S610)。由于产生的计数值(例如,2)等于参考计数值(Cref=2),因此计数检验电路331将具有第二电平的第二指示信号ARM2发送到完成DMA控制器323。
此外,时间检验电路329将时间计数值与参考时间计数值Tref进行比较,并且当时间计数值小于参考时间计数值Tref时,时间检验电路329将具有第一电平的第一指示信号ARM1发送到完成DMA控制器323(S612)。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第二电平的第二指示信号ARM2,获取存储在缓冲器316中的写入完成响应WCP1和WCP2,并一次以突发方式将获取的写入完成响应WCP1和WCP2发送到主机200。
当获取的写入完成响应WCP1和WCP2被发送到主机200时,由计数验证电路331计数的计数值被初始化。当第三写入数据WDATA3被完全存储在非易失性存储器350中时,完成响应产生引擎321可产生第三写入完成响应WCP3,并将第三写入完成响应WCP3存储在缓冲器316中。此时,完成响应产生引擎321将指示第三写入完成响应WCP3的产生的第四指示信号IS2发送到计数检验电路331。
计数检验电路331响应于时钟信号CLK和第四指示信号IS2产生计数值(例如,1),并将产生的计数值(例如,1)与参考计数值(Cref=2)进行比较(S610)。
由于产生的计数值(例如,1)小于参考计数值(Cref=2),因此计数检验电路331将具有第一电平的第二指示信号ARM2发送到完成DMA控制器323。此外,时间检验电路329将时间计数值与参考时间计数值Tref进行比较,并且当时间计数值小于参考时间计数值Tref时,时间检验电路329将具有第一电平的第一指示信号ARM1发送到完成DMA控制器323(S612)。
完成DMA控制器323响应于具有第一电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2,不获取存储在缓冲器316中的第三写入完成响应WCP3。然而,当设置的两秒随时间流逝过去时(即,当时间计数值大于参考时间计数值Tref时),时间检验电路329将具有第二电平的第一指示信号ARM1发送到完成DMA控制器323。
完成DMA控制器323可获取存储在缓冲器316中的写入完成响应WCP3(S614),并响应于具有第二电平的第一指示信号ARM1和具有第一电平的第二指示信号ARM2获取存储在缓冲器316中的写入完成响应WCP3(S614),并将获取的写入完成响应WCP3发送到主机200。因此,缓冲器316变为空的。
图11是示出图1的数据处理系统的操作的框图。参照图1、图2和图11,NVMe控制器315可从存储(或包括)在缓冲器316的第一队列PCQ1中的多个完成响应CP11、CP12、CP21和CP22提取将被存储在主机200的缓冲器230的第一队列HCQ1中的多个完成响应CP11和CP12。
此外,NVMe控制器315可从存储(或包括)在缓冲器316的第二队列PCQ2中的多个完成响应CP13、CP23、CP14和CP24提取将被存储在主机200的缓冲器230的第一队列HCQ1中的多个完成响应CP13和CP14。当NVMe控制器315在单个事务期间将完成响应CP11、CP12、CP13和CP14作为提取的第一完成包顺序地发送到主机200时,主机200可将第一完成包的完成响应CP11、CP12、CP13和CP14存储为第一队列HCQ1。
NVMe控制器315可随后从存储在缓冲器316的第一队列PCQ1中的多个完成响应CP11、CP12、CP21和CP22提取将被存储在主机200的缓冲器230的第二队列HCQ2中的完成响应CP21和CP22。此外,NVMe控制器315可从存储在缓冲器316的第二队列PCQ2中的多个完成响应CP13、CP23、CP14和CP24提取将被存储在主机200的缓冲器230的第二队列HCQ2中的完成响应CP23和CP24。
当NVMe控制器315在单个事务期间将完成响应CP21、CP22、CP23和CP24作为完成包顺序地发送时,主机200可将从数据存储装置300发送的完成响应CP21、CP22、CP23和CP24存储在第二队列HCQ2中。
存储在数据存储装置300的第一队列PCQ1中的完成响应CP11、CP12、CP21和CP22可以是每当与每个命令(例如,写入命令或读取命令)相应的数据存取操作(例如,写入操作或读取操作)完成时由NVMe控制器315产生的完成响应。
此外,存储在数据存储装置300的第二队列PCQ2中的完成响应CP13、CP23、CP14和CP24可以是每当与每个命令(例如,写入命令或读取命令)相应的数据存取操作(例如,写入操作或读取操作)完成时由NVMe控制器315产生的完成响应。
图12是示出包括如图1中示出的数据数据系统一样的数据处理系统100’的搜索系统的框图。参照图1至图12,搜索系统400包括客户端计算机410、网络420、网络服务器430和数据处理系统100’。
搜索系统400可被实施为可提供互联网门户服务或网络门户服务的系统。根据另一实施例,搜索系统400可以是数据中心或互联网数据中心。客户端计算机410可通过网络420连接到网络服务器430。网络420可以是支持无线互联网、有线互联网或WiFi的网络。
网络服务器430可通过网络连接到数据处理系统100’。数据处理系统100’可包括主机200和多个数据存储装置300-1至300-n。多个数据存储装置300-1至300-n中的每个的结构和操作与参照图1至图11描述的数据存储装置300的结构和操作实质上相同或相似。
每当多个命令中的每个命令完成时,根据本发明构思的实施例的数据存储装置无需立即将完成响应发送到主机以提高性能,而是可将与一个或更多个命令相应的完成响应(例如,以队列形式)存储(或累积)在指定的缓冲器中,之后在单个事务期间将存储的完成响应顺序地发送到主机。
虽然已示出和描述了本总体发明构思的一些实施例,但是本领域技术人员将理解,在不脱离由权利要求及其等同物限定的本发明构思的范围的情况下,可在这些实施例中进行改变。
Claims (25)
1.一种用于操作从主机接收包括至少一个命令的命令集的数据存储装置的方法,所述方法包括:
针对命令集中的每个命令,在完成由命令指示的相应数据存取操作时产生完成响应,并将完成响应存储在数据存储装置的缓冲器中以产生包括针对命令集的至少一个命令的完成响应的完成包;
在单个事务期间将存储在缓冲器中的完成包发送到主机。
2.如权利要求1所述的方法,其中,命令集仅包括单个数据存取命令,与单个数据存取命令相关联的完成包的发送在与单个数据存取命令相应的数据存取操作的完成之后的延迟之后发生。
3.如权利要求2所述的方法,其中,通过第一指示信号和第二指示信号中的至少一个控制延迟的持续时间,其中,通过数据存储装置的时间检验电路产生第一指示信号,通过数据存储装置的计数检验电路产生第二指示信号。
4.如权利要求1所述的方法,其中,命令集包括分别包括多个地址的多个命令,所述多个地址被顺序地排列。
5.如权利要求4所述的方法,其中,所述多个命令是多个写入命令或多个读取命令。
6.如权利要求1所述的方法,其中,所述至少一个命令包括多于一个写入命令,所述方法还包括:
在数据存储装置中,从主机接收指示存储在主机的队列中的写入命令的数量的指示信息;
响应于所述指示信息从队列获取写入命令;
并且针对每个写入命令,
从主机的存储器获取相应的写入数据;
将获取的写入数据存储在数据存储装置的非易失性存储器中;
在将获取的写入数据存储在非易失性存储器中之后产生相应的完成响应;
将产生的完成响应存储在缓冲器中。
7.如权利要求1所述的方法,其中,所述至少一个命令包括多于一个读取命令,所述方法还包括:
在数据存储装置中,从主机接收指示存储在主机的队列中的读取命令的数量的指示信息;
响应于所述指示信息从队列获取读取命令;
并且针对每个读取命令,
从数据存储装置的非易失性存储器获取由读取命令指示的读取数据;
将从数据存储装置获取的读取数据发送到主机;
在将读取数据成功地发送到主机之后产生相应的完成响应;
将产生的完成响应存储在缓冲器中。
8.如权利要求1所述的方法,其中,在数据存储装置的非易失性存储器表达(NVMe)控制器的控制下,以突发方式将存储在缓冲器中的完成包的完成响应从数据存储装置顺序地发送到主机。
9.如权利要求1所述的方法,其中,在接收到指示满足相关联条件的指示信号时,开始完成包的发送。
10.如权利要求9所述的方法,其中,指示信号是第一指示信号和第二指示信号之一,其中,第一指示信号指示参考时间段已过去,第二指示信号指示与命令集中的命令的数量相等的多个完成响应被存储在缓冲器中。
11.如权利要求10所述的方法,其中,通过将存储在数据存储装置的配置寄存器中的时间计数值与从时钟信号得到的计数值进行比较来产生第一指示信号。
12.如权利要求10所述的方法,其中,通过将存储在数据存储装置的配置寄存器中的参考计数值与从时钟信号得到的计数值进行比较来产生第二指示信号。
13.如权利要求1所述的方法,其中,将存储在缓冲器中的完成包发送到主机的步骤包括:
对完成包中的完成响应的数量进行计数并产生参考计数值;
在单个事务期间,从缓冲器顺序地获取与参考计数值相等的多个完成响应,并将获取的完成响应作为完成包发送到主机。
14.如权利要求1所述的方法,其中,在数据存储装置的非易失性存储器(NVM)表达(NVMe)控制器的控制下执行完成响应的存储和完成包的发送,完成响应以队列形式被存储在缓冲器中,数据存储装置是固态驱动器(SSD)。
15.一种用于操作从主机接收多个命令的数据存储装置的方法,所述方法包括:
针对每个命令,在完成由命令指示的相应数据存取操作时产生完成响应,并将完成响应存储在数据存储装置中的缓冲器中;
使用非易失性存储器表达(NVMe)控制器提取存储在缓冲器中的一个或更多个完成响应以产生至少一个完成包;
在单个事务期间将所述至少一个完成包中的一个完成包发送到主机。
16.如权利要求15所述的方法,其中,由NVMe控制器提取的用于产生第一完成包的所述一个或更多个完成响应包括:存储在缓冲器的第一队列中的第一完成响应和存储在缓冲器的第二队列中的第二完成响应。
17.如权利要求15所述的方法,其中,所述至少一个完成包包括在单个事务期间被共同发送到主机的第一完成包和第二完成包。
18.如权利要求15所述的方法,其中,所述至少一个完成包包括在不同的单个事务期间被分别发送到主机的第一完成包和第二完成包。
19.如权利要求15所述的方法,其中,所述多个命令中的至少两个命令包括连续的地址。
20.如权利要求15所述的方法,其中,所述多个命令是写入命令,所述方法还包括:
在数据存储装置中,从主机接收指示存储在主机的队列中的写入命令的数量的指示信息;
响应于所述指示信息从队列获取写入命令;
并且针对每个写入命令,
从主机的存储器获取相应的写入数据;
将获取的写入数据存储在数据存储装置的非易失性存储器中;
在将获取的写入数据存储在非易失性存储器中之后产生相应的完成响应;
将产生的完成响应存储在缓冲器中。
21.如权利要求15所述的方法,其中,所述多个命令是读取命令,所述方法还包括:
在数据存储装置中,从主机接收指示存储在主机的队列中的读取命令的数量的指示信息;
响应于所述指示信息从队列获取读取命令;
并且针对每个读取命令,
从数据存储装置的非易失性存储器获取由读取命令指示的读取数据;
将从数据存储装置获取的读取数据发送到主机;
在将读取数据成功地发送到主机之后产生相应的完成响应;
将产生的完成响应存储在缓冲器中。
22.一种数据存储装置,包括:
缓冲器;
非易失性存储器;
存储器控制器,控制非易失性存储器的操作;
非易失性存储器表达(NVMe)控制器,每当由从主机获取的命令指示的数据存取操作完成时,就产生完成响应,将产生的完成响应存储在缓冲器中,并在单个事务期间将存储在缓冲器中的包括多个完成响应的完成包发送到主机。
23.如权利要求22所述的数据存储装置,其中,主机提供写入命令的命令集,其中,与写入命令相应的地址是连续的,并且在完成写入命令中的至少一个时NVMe控制器不立即将完成包发送到主机。
24.一种数据处理系统,包括:
主机,能够通过将命令存储在缓冲器中来管道执行包括多个命令的命令集;
包括非易失性存储器表达(NVMe)控制器的数据存储装置,接收命令并控制与各个命令相应的数据存取操作的执行,在成功执行每个命令时产生完成响应,并将作为结果的完成响应存储在缓冲器中,其中,NVMe控制器提取存储在缓冲器中的完成响应中的至少两个以产生完成包,并在单个事务期间将完成包发送到主机。
25.如权利要求24所述的数据处理系统,其中,所述多个命令是分别包括被顺序排列的多个地址的写入命令或读取命令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2014-0157400 | 2014-11-12 | ||
KR1020140157400A KR102238652B1 (ko) | 2014-11-12 | 2014-11-12 | 데이터 저장 장치, 이의 작동 방법, 및 이를 포함하는 데이터 처리 시스템의 작동 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105589661A true CN105589661A (zh) | 2016-05-18 |
CN105589661B CN105589661B (zh) | 2020-09-22 |
Family
ID=55912242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510763404.0A Active CN105589661B (zh) | 2014-11-12 | 2015-11-10 | 数据存储装置、数据处理系统和操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10496281B2 (zh) |
KR (1) | KR102238652B1 (zh) |
CN (1) | CN105589661B (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562669A (zh) * | 2016-06-30 | 2018-01-09 | 北京忆芯科技有限公司 | 一种NVMe协议命令处理方法、装置及系统 |
CN107820693A (zh) * | 2016-12-28 | 2018-03-20 | 华为技术有限公司 | NVMe over Fabric中转发报文的方法、设备和系统 |
CN107817943A (zh) * | 2016-09-13 | 2018-03-20 | 大心电子股份有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
CN107861894A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | NVMe协议的队列命令的执行方法、装置及存储介质 |
CN107967221A (zh) * | 2016-10-19 | 2018-04-27 | 三星电子株式会社 | 具有非易失性存储器的计算系统及其操作方法 |
CN107977164A (zh) * | 2016-10-24 | 2018-05-01 | 三星电子株式会社 | 产生自适应中断的存储装置及其操作方法 |
WO2018076793A1 (zh) * | 2016-10-26 | 2018-05-03 | 华为技术有限公司 | 一种NVMe数据读写方法及NVMe设备 |
CN108776576A (zh) * | 2017-03-31 | 2018-11-09 | 三星电子株式会社 | 用于聚合的网上NVMe装置的聚合存储方法 |
CN108804035A (zh) * | 2018-05-22 | 2018-11-13 | 深圳忆联信息系统有限公司 | 降低io延时的方法、装置、计算机设备及存储介质 |
CN109324754A (zh) * | 2017-07-31 | 2019-02-12 | 三星电子株式会社 | 与主机接合的储存装置以及操作主机和储存装置的方法 |
CN109426627A (zh) * | 2017-08-28 | 2019-03-05 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109471592A (zh) * | 2017-09-07 | 2019-03-15 | 三星电子株式会社 | 存储设备以及包括在存储设备中的控制器 |
CN110032332A (zh) * | 2017-11-30 | 2019-07-19 | 三星电子株式会社 | 存储设备和包括存储设备的电子设备 |
CN110059034A (zh) * | 2017-12-18 | 2019-07-26 | 三星电子株式会社 | 存储控制器及其操作方法和包括该存储控制器的存储设备 |
CN110073322A (zh) * | 2017-03-24 | 2019-07-30 | 西部数据技术公司 | 用于快速执行封装体内命令的系统和方法 |
CN110088725A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并做出仲裁的系统和方法 |
CN110109612A (zh) * | 2018-02-01 | 2019-08-09 | 三星电子株式会社 | 存储器模块及其操作方法 |
CN110147335A (zh) * | 2018-02-09 | 2019-08-20 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
CN110447009A (zh) * | 2017-03-24 | 2019-11-12 | 西部数据技术公司 | 用于自适应命令获取聚合的系统和方法 |
CN110908843A (zh) * | 2018-09-18 | 2020-03-24 | 爱思开海力士有限公司 | 诊断存储器系统的设备及其操作方法 |
CN111752484A (zh) * | 2020-06-08 | 2020-10-09 | 深圳大普微电子科技有限公司 | 一种ssd控制器、固态硬盘及数据写入方法 |
CN112328166A (zh) * | 2019-08-05 | 2021-02-05 | 爱思开海力士有限公司 | 数据处理系统及其操作方法 |
CN113204309A (zh) * | 2020-02-03 | 2021-08-03 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN114936173A (zh) * | 2022-06-16 | 2022-08-23 | 科东(广州)软件科技有限公司 | 一种eMMC器件的读写方法、装置、设备和存储介质 |
US11487434B2 (en) | 2017-03-24 | 2022-11-01 | Western Digital Technologies, Inc. | Data storage device and method for adaptive command completion posting |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170032502A (ko) * | 2015-09-14 | 2017-03-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 인터럽트 발생 방법 |
US10459634B2 (en) * | 2015-10-31 | 2019-10-29 | Sandisk Technologies Llc | Methods, systems, and computer readable media for aggregating completion entries in a nonvolatile storage device |
US10423568B2 (en) * | 2015-12-21 | 2019-09-24 | Microsemi Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
US9971545B1 (en) * | 2016-03-23 | 2018-05-15 | Crossbar, Inc. | Non-volatile write and read cache for storage media |
US10521118B2 (en) * | 2016-07-13 | 2019-12-31 | Sandisk Technologies Llc | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB) |
KR20190023433A (ko) * | 2017-08-29 | 2019-03-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11379155B2 (en) | 2018-05-24 | 2022-07-05 | Alibaba Group Holding Limited | System and method for flash storage management using multiple open page stripes |
US11816043B2 (en) | 2018-06-25 | 2023-11-14 | Alibaba Group Holding Limited | System and method for managing resources of a storage device and quantifying the cost of I/O requests |
US10678478B2 (en) | 2018-08-24 | 2020-06-09 | Apple Inc. | Ordering memory requests based on access efficiency |
KR102541897B1 (ko) | 2018-08-27 | 2023-06-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN110879794B (zh) * | 2018-09-05 | 2023-01-17 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
US11327929B2 (en) | 2018-09-17 | 2022-05-10 | Alibaba Group Holding Limited | Method and system for reduced data movement compression using in-storage computing and a customized file system |
KR20200066893A (ko) * | 2018-12-03 | 2020-06-11 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11061735B2 (en) | 2019-01-02 | 2021-07-13 | Alibaba Group Holding Limited | System and method for offloading computation to storage nodes in distributed system |
US10860223B1 (en) | 2019-07-18 | 2020-12-08 | Alibaba Group Holding Limited | Method and system for enhancing a distributed storage system by decoupling computation and network tasks |
US11617282B2 (en) | 2019-10-01 | 2023-03-28 | Alibaba Group Holding Limited | System and method for reshaping power budget of cabinet to facilitate improved deployment density of servers |
US11449455B2 (en) | 2020-01-15 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility |
US11379447B2 (en) | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
US11449386B2 (en) | 2020-03-20 | 2022-09-20 | Alibaba Group Holding Limited | Method and system for optimizing persistent memory on data retention, endurance, and performance for host memory |
US11385833B2 (en) | 2020-04-20 | 2022-07-12 | Alibaba Group Holding Limited | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources |
US11301173B2 (en) | 2020-04-20 | 2022-04-12 | Alibaba Group Holding Limited | Method and system for facilitating evaluation of data access frequency and allocation of storage device resources |
IT202000009364A1 (it) * | 2020-04-29 | 2021-10-29 | St Microelectronics Srl | Procedimento per accedere a una memoria e circuito corrispondente |
US11281575B2 (en) | 2020-05-11 | 2022-03-22 | Alibaba Group Holding Limited | Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks |
US11494115B2 (en) | 2020-05-13 | 2022-11-08 | Alibaba Group Holding Limited | System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC) |
US11461262B2 (en) | 2020-05-13 | 2022-10-04 | Alibaba Group Holding Limited | Method and system for facilitating a converged computation and storage node in a distributed storage system |
US11507499B2 (en) | 2020-05-19 | 2022-11-22 | Alibaba Group Holding Limited | System and method for facilitating mitigation of read/write amplification in data compression |
US11556277B2 (en) | 2020-05-19 | 2023-01-17 | Alibaba Group Holding Limited | System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification |
EP4158486A4 (en) * | 2020-05-29 | 2024-07-10 | Netlist Inc | COMPUTER MEMORY EXPANSION DEVICE AND OPERATION METHOD |
US11263132B2 (en) | 2020-06-11 | 2022-03-01 | Alibaba Group Holding Limited | Method and system for facilitating log-structure data organization |
US11354200B2 (en) | 2020-06-17 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating data recovery and version rollback in a storage device |
US11422931B2 (en) | 2020-06-17 | 2022-08-23 | Alibaba Group Holding Limited | Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization |
US11321017B2 (en) | 2020-06-29 | 2022-05-03 | SK Hynix Inc. | Systems and methods for controlling completion rate of commands |
US11354233B2 (en) | 2020-07-27 | 2022-06-07 | Alibaba Group Holding Limited | Method and system for facilitating fast crash recovery in a storage device |
US11372774B2 (en) | 2020-08-24 | 2022-06-28 | Alibaba Group Holding Limited | Method and system for a solid state drive with on-chip memory integration |
KR20220047443A (ko) * | 2020-10-08 | 2022-04-18 | 삼성전자주식회사 | 메모리 시스템, 이를 포함하는 전자 기기, 및 메모리 컨트롤러 |
US11487465B2 (en) | 2020-12-11 | 2022-11-01 | Alibaba Group Holding Limited | Method and system for a local storage engine collaborating with a solid state drive controller |
US11734115B2 (en) | 2020-12-28 | 2023-08-22 | Alibaba Group Holding Limited | Method and system for facilitating write latency reduction in a queue depth of one scenario |
US11416365B2 (en) | 2020-12-30 | 2022-08-16 | Alibaba Group Holding Limited | Method and system for open NAND block detection and correction in an open-channel SSD |
KR20220127076A (ko) | 2021-03-10 | 2022-09-19 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
KR102496994B1 (ko) | 2021-03-23 | 2023-02-09 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
KR102521902B1 (ko) | 2021-03-23 | 2023-04-17 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
KR102529761B1 (ko) | 2021-03-18 | 2023-05-09 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
US11726699B2 (en) | 2021-03-30 | 2023-08-15 | Alibaba Singapore Holding Private Limited | Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification |
US11461173B1 (en) | 2021-04-21 | 2022-10-04 | Alibaba Singapore Holding Private Limited | Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement |
US11476874B1 (en) | 2021-05-14 | 2022-10-18 | Alibaba Singapore Holding Private Limited | Method and system for facilitating a storage server with hybrid memory for journaling and data storage |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02110757A (ja) * | 1988-10-20 | 1990-04-23 | Nec Corp | ダイレクトメモリアクセス監視回路 |
US6571293B1 (en) * | 1997-02-13 | 2003-05-27 | Tzuming Hong | Multifunction peripheral to host communications |
US20040125415A1 (en) * | 2002-09-19 | 2004-07-01 | Norio Michiie | Data processing device characterized in its data transfer method, program for executing on a computer to perform functions of the device, and computer readable recording medium storing such a program |
CN101256470A (zh) * | 2007-02-28 | 2008-09-03 | 富士通株式会社 | 存储设备控制装置、存储设备和数据存储控制方法 |
US20090287888A1 (en) * | 2008-05-19 | 2009-11-19 | Nec Electronics Corporation | Semiconductor memory device and data input/output method thereof |
CN102306046A (zh) * | 2010-05-05 | 2012-01-04 | 美国博通公司 | 在存储控制器中进行功率控制的方法及存储控制器 |
US20130166855A1 (en) * | 2011-12-22 | 2013-06-27 | Fusion-Io, Inc. | Systems, methods, and interfaces for vector input/output operations |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
US20140025771A1 (en) * | 2011-09-13 | 2014-01-23 | Kabushiki Kaisha Toshiba | Data transferring apparatus, data transmitting system, data transmitting method and computer program product |
US20140143454A1 (en) * | 2012-11-21 | 2014-05-22 | Mellanox Technologies Ltd. | Reducing size of completion notifications |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134631A (en) * | 1996-08-19 | 2000-10-17 | Hyundai Electronics America, Inc. | Non-volatile memory with embedded programmable controller |
US7096252B1 (en) * | 2000-10-05 | 2006-08-22 | Stmicroelectronics, Inc. | System and method for interfacing network station subsystems |
US6549977B1 (en) | 2001-05-23 | 2003-04-15 | 3Ware, Inc. | Use of deferred write completion interrupts to increase the performance of disk operations |
US8053415B2 (en) * | 2005-01-21 | 2011-11-08 | Washington University In St. Louis | Compounds having RD targeting motifs |
US8019929B2 (en) * | 2006-09-13 | 2011-09-13 | Rohm Co., Ltd. | Data processing apparatus and data control circuit for use therein |
TWI461909B (zh) * | 2007-08-31 | 2014-11-21 | Thomson Licensing | 大量儲存系統及在其中之資料轉移方法 |
US8478924B2 (en) | 2009-04-24 | 2013-07-02 | Vmware, Inc. | Interrupt coalescing for outstanding input/output completions |
US8244946B2 (en) | 2009-10-16 | 2012-08-14 | Brocade Communications Systems, Inc. | Interrupt moderation |
US8588228B1 (en) * | 2010-08-16 | 2013-11-19 | Pmc-Sierra Us, Inc. | Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner |
US10037272B2 (en) | 2012-08-08 | 2018-07-31 | Avalanche Technology, Inc. | Storage system employing MRAM and array of solid state disks with integrated switch |
EP3438839A1 (en) | 2011-09-30 | 2019-02-06 | Intel Corporation | Presentation of direct accessed storage under a logical drive model |
KR20130040486A (ko) | 2011-10-14 | 2013-04-24 | 삼성전자주식회사 | 저장 장치 및 그것을 이용하는 사용자 장치 |
BR112014017543A2 (pt) | 2012-01-17 | 2017-06-27 | Intel Corp | técnicas de validação de comando para o acesso a um dispositivo de armazenamento por um cliente remoto |
KR101888009B1 (ko) | 2012-02-28 | 2018-09-07 | 삼성전자주식회사 | 저장 장치 |
US20160232811A9 (en) * | 2012-06-14 | 2016-08-11 | Robert A. Connor | Eyewear System for Monitoring and Modifying Nutritional Intake |
KR20140034333A (ko) | 2012-08-16 | 2014-03-20 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치 |
KR102025263B1 (ko) | 2012-10-05 | 2019-09-25 | 삼성전자주식회사 | 메모리 시스템 및 그것의 읽기 교정 방법 |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
US9317204B2 (en) * | 2013-11-14 | 2016-04-19 | Sandisk Technologies Inc. | System and method for I/O optimization in a multi-queued environment |
US20150261446A1 (en) * | 2014-03-12 | 2015-09-17 | Futurewei Technologies, Inc. | Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller |
US20170228173A9 (en) * | 2014-05-02 | 2017-08-10 | Cavium, Inc. | Systems and methods for enabling local caching for remote storage devices over a network via nvme controller |
US9720860B2 (en) * | 2014-06-06 | 2017-08-01 | Toshiba Corporation | System and method for efficient processing of queued read commands in a memory system |
US20160124874A1 (en) * | 2014-10-30 | 2016-05-05 | Sandisk Technologies Inc. | Method and apparatus for interrupt coalescing |
US9378049B1 (en) * | 2015-02-12 | 2016-06-28 | Amazon Technologies, Inc. | Servicing I/O requests in an I/O adapter device |
-
2014
- 2014-11-12 KR KR1020140157400A patent/KR102238652B1/ko active IP Right Grant
-
2015
- 2015-10-02 US US14/873,665 patent/US10496281B2/en active Active
- 2015-11-10 CN CN201510763404.0A patent/CN105589661B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02110757A (ja) * | 1988-10-20 | 1990-04-23 | Nec Corp | ダイレクトメモリアクセス監視回路 |
US6571293B1 (en) * | 1997-02-13 | 2003-05-27 | Tzuming Hong | Multifunction peripheral to host communications |
US20040125415A1 (en) * | 2002-09-19 | 2004-07-01 | Norio Michiie | Data processing device characterized in its data transfer method, program for executing on a computer to perform functions of the device, and computer readable recording medium storing such a program |
CN101256470A (zh) * | 2007-02-28 | 2008-09-03 | 富士通株式会社 | 存储设备控制装置、存储设备和数据存储控制方法 |
US20090287888A1 (en) * | 2008-05-19 | 2009-11-19 | Nec Electronics Corporation | Semiconductor memory device and data input/output method thereof |
CN102306046A (zh) * | 2010-05-05 | 2012-01-04 | 美国博通公司 | 在存储控制器中进行功率控制的方法及存储控制器 |
US20140025771A1 (en) * | 2011-09-13 | 2014-01-23 | Kabushiki Kaisha Toshiba | Data transferring apparatus, data transmitting system, data transmitting method and computer program product |
US20130166855A1 (en) * | 2011-12-22 | 2013-06-27 | Fusion-Io, Inc. | Systems, methods, and interfaces for vector input/output operations |
US20140143454A1 (en) * | 2012-11-21 | 2014-05-22 | Mellanox Technologies Ltd. | Reducing size of completion notifications |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
Cited By (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352873B (zh) * | 2016-06-30 | 2021-10-08 | 北京忆芯科技有限公司 | NVMe协议命令处理方法与装置 |
CN107562669B (zh) * | 2016-06-30 | 2020-04-07 | 北京忆芯科技有限公司 | 一种NVMe协议命令处理方法、装置及系统 |
CN111352873A (zh) * | 2016-06-30 | 2020-06-30 | 北京忆芯科技有限公司 | NVMe协议命令处理方法与装置 |
CN107562669A (zh) * | 2016-06-30 | 2018-01-09 | 北京忆芯科技有限公司 | 一种NVMe协议命令处理方法、装置及系统 |
CN107817943A (zh) * | 2016-09-13 | 2018-03-20 | 大心电子股份有限公司 | 数据传输方法、存储器存储装置及存储器控制电路单元 |
CN107967221B (zh) * | 2016-10-19 | 2023-06-27 | 三星电子株式会社 | 具有非易失性存储器的计算系统及其操作方法 |
CN107967221A (zh) * | 2016-10-19 | 2018-04-27 | 三星电子株式会社 | 具有非易失性存储器的计算系统及其操作方法 |
CN107977164A (zh) * | 2016-10-24 | 2018-05-01 | 三星电子株式会社 | 产生自适应中断的存储装置及其操作方法 |
WO2018076793A1 (zh) * | 2016-10-26 | 2018-05-03 | 华为技术有限公司 | 一种NVMe数据读写方法及NVMe设备 |
US10997093B2 (en) | 2016-10-26 | 2021-05-04 | Huawei Technologies Co., Ltd. | NVME data processing method and NVME device |
US10983731B2 (en) | 2016-12-28 | 2021-04-20 | Huawei Technologies Co., Ltd. | Packet forwarding method, device, and system in non-volatile memory express over fabric |
CN107820693B (zh) * | 2016-12-28 | 2020-11-06 | 华为技术有限公司 | NVMe over Fabric中转发报文的方法、设备和系统 |
US10585628B2 (en) | 2016-12-28 | 2020-03-10 | Huawei Technologies Co., Ltd. | Packet forwarding method, device, and system in NVME over fabric |
CN107820693A (zh) * | 2016-12-28 | 2018-03-20 | 华为技术有限公司 | NVMe over Fabric中转发报文的方法、设备和系统 |
US11487434B2 (en) | 2017-03-24 | 2022-11-01 | Western Digital Technologies, Inc. | Data storage device and method for adaptive command completion posting |
CN110073322B (zh) * | 2017-03-24 | 2022-08-02 | 西部数据技术公司 | 用于快速执行封装体内命令的系统和方法 |
CN110088725A (zh) * | 2017-03-24 | 2019-08-02 | 西部数据技术公司 | 用于对提交队列和完成队列进行处理并做出仲裁的系统和方法 |
US11635898B2 (en) | 2017-03-24 | 2023-04-25 | Western Digital Technologies, Inc. | System and method for adaptive command fetch aggregation |
CN110447009A (zh) * | 2017-03-24 | 2019-11-12 | 西部数据技术公司 | 用于自适应命令获取聚合的系统和方法 |
CN110073322A (zh) * | 2017-03-24 | 2019-07-30 | 西部数据技术公司 | 用于快速执行封装体内命令的系统和方法 |
CN110447009B (zh) * | 2017-03-24 | 2024-03-12 | 西部数据技术公司 | 用于自适应命令获取聚合的系统和方法 |
CN108776576A (zh) * | 2017-03-31 | 2018-11-09 | 三星电子株式会社 | 用于聚合的网上NVMe装置的聚合存储方法 |
CN108776576B (zh) * | 2017-03-31 | 2023-08-15 | 三星电子株式会社 | 用于聚合的网上NVMe装置的聚合存储方法 |
CN109324754B (zh) * | 2017-07-31 | 2024-04-02 | 三星电子株式会社 | 与主机接合的储存装置以及操作主机和储存装置的方法 |
CN109324754A (zh) * | 2017-07-31 | 2019-02-12 | 三星电子株式会社 | 与主机接合的储存装置以及操作主机和储存装置的方法 |
US11775455B2 (en) | 2017-07-31 | 2023-10-03 | Samsung Electronics Co., Ltd. | Storage device for interfacing with host and method of operating the host and the storage device |
CN109426627A (zh) * | 2017-08-28 | 2019-03-05 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109426627B (zh) * | 2017-08-28 | 2022-05-24 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN109471592A (zh) * | 2017-09-07 | 2019-03-15 | 三星电子株式会社 | 存储设备以及包括在存储设备中的控制器 |
CN109471592B (zh) * | 2017-09-07 | 2023-11-07 | 三星电子株式会社 | 存储设备以及包括在存储设备中的控制器 |
CN107861894B (zh) * | 2017-11-03 | 2021-08-31 | 郑州云海信息技术有限公司 | NVMe协议的队列命令的执行方法、装置及存储介质 |
CN107861894A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | NVMe协议的队列命令的执行方法、装置及存储介质 |
CN110032332A (zh) * | 2017-11-30 | 2019-07-19 | 三星电子株式会社 | 存储设备和包括存储设备的电子设备 |
CN110032332B (zh) * | 2017-11-30 | 2024-02-02 | 三星电子株式会社 | 存储设备和包括存储设备的电子设备 |
CN110059034A (zh) * | 2017-12-18 | 2019-07-26 | 三星电子株式会社 | 存储控制器及其操作方法和包括该存储控制器的存储设备 |
US11940862B2 (en) | 2017-12-18 | 2024-03-26 | Samsung Electronics Co., Ltd. | Storage controller, storage device including the same, and operation method of storage controller |
CN110059034B (zh) * | 2017-12-18 | 2024-06-18 | 三星电子株式会社 | 存储控制器及其操作方法和包括该存储控制器的存储设备 |
CN110109612B (zh) * | 2018-02-01 | 2022-07-12 | 三星电子株式会社 | 存储器模块及其操作方法 |
CN110109612A (zh) * | 2018-02-01 | 2019-08-09 | 三星电子株式会社 | 存储器模块及其操作方法 |
CN110147335B (zh) * | 2018-02-09 | 2022-04-26 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
CN110147335A (zh) * | 2018-02-09 | 2019-08-20 | 三星电子株式会社 | 用于ssd储存器中nvme命令间关联的系统和方法 |
CN108804035A (zh) * | 2018-05-22 | 2018-11-13 | 深圳忆联信息系统有限公司 | 降低io延时的方法、装置、计算机设备及存储介质 |
CN110908843A (zh) * | 2018-09-18 | 2020-03-24 | 爱思开海力士有限公司 | 诊断存储器系统的设备及其操作方法 |
CN112328166A (zh) * | 2019-08-05 | 2021-02-05 | 爱思开海力士有限公司 | 数据处理系统及其操作方法 |
CN113204309A (zh) * | 2020-02-03 | 2021-08-03 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111752484A (zh) * | 2020-06-08 | 2020-10-09 | 深圳大普微电子科技有限公司 | 一种ssd控制器、固态硬盘及数据写入方法 |
CN111752484B (zh) * | 2020-06-08 | 2024-04-12 | 深圳大普微电子科技有限公司 | 一种ssd控制器、固态硬盘及数据写入方法 |
CN114936173A (zh) * | 2022-06-16 | 2022-08-23 | 科东(广州)软件科技有限公司 | 一种eMMC器件的读写方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20160132237A1 (en) | 2016-05-12 |
KR102238652B1 (ko) | 2021-04-09 |
KR20160056723A (ko) | 2016-05-20 |
CN105589661B (zh) | 2020-09-22 |
US10496281B2 (en) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105589661A (zh) | 数据存储装置、数据处理系统和操作方法 | |
US20160117102A1 (en) | Method for operating data storage device, mobile computing device having the same, and method of the mobile computing device | |
US10303366B2 (en) | Data storage device that divides and processes a command and data processing system including the same | |
US20210133096A1 (en) | Memory system and operating method thereof | |
US20160203091A1 (en) | Memory controller and memory system including the same | |
US20120290864A1 (en) | Asynchronous management of access requests to control power consumption | |
JP6654048B2 (ja) | Ufs装置の作動方法、ufsホストの作動方法、及びそれらを含むシステムの作動方法 | |
US20190171392A1 (en) | Method of operating storage device capable of reducing write latency | |
US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US11429314B2 (en) | Storage device, storage system and operating method thereof | |
TW201732612A (zh) | 使用同步化和非同步化記憶體裝置之適應性機制的混合記憶體、其方法及其儲存節點 | |
US20170031632A1 (en) | Data storage device, method of operating the same, and data processing system including the same | |
US11360711B2 (en) | Storage device temporarily suspending internal operation to provide short read response time for read request from host | |
US12008270B2 (en) | System, device, and method for memory interface including reconfigurable channel | |
US20180335943A1 (en) | Memory system and operating method thereof | |
KR102558947B1 (ko) | 데이터 저장 장치 | |
US20230229357A1 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US20160291897A1 (en) | Data storage device and devices having the same | |
Khalifa et al. | Memory controller architectures: A comparative study | |
US10430088B2 (en) | Storage device configured to perform two-way communication with host and operating method thereof | |
US11954041B2 (en) | Controller including map cache and memory system including controller | |
CN109542336B (zh) | 存储设备及其操作方法 | |
US20130019055A1 (en) | Memory control device and method | |
EP4148572B1 (en) | Computational storage device and storage system including the computational storage device | |
US9836220B2 (en) | Data processing system and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |