CN106030521A - 命令排队 - Google Patents
命令排队 Download PDFInfo
- Publication number
- CN106030521A CN106030521A CN201580008744.0A CN201580008744A CN106030521A CN 106030521 A CN106030521 A CN 106030521A CN 201580008744 A CN201580008744 A CN 201580008744A CN 106030521 A CN106030521 A CN 106030521A
- Authority
- CN
- China
- Prior art keywords
- order
- main frame
- command
- accumulator system
- data
- 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.)
- Pending
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/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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F3/0688—Non-volatile semiconductor memory arrays
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)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Communication Control (AREA)
Abstract
本发明包含用于命令排队的设备及方法。若干实施例包含:在存储器系统处从主机接收经排队命令请求;将命令响应从所述存储器系统发送到所述主机,所述命令响应指示所述存储器系统准备好在所述存储器系统的命令队列中接收命令;及响应于发送所述命令响应而在所述存储器系统处从所述主机接收所述命令的命令描述符块。
Description
技术领域
本发明一般来说涉及半导体存储器及方法,且更具体来说,涉及命令排队。
背景技术
存储器装置通常作为计算机或其它电子装置中的内部半导体集成电路及/或外部可装卸式装置而提供。存在包含易失性及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据且可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)以及其它存储器。非易失性存储器可在不被供电时存留所存储数据且可包含NAND快闪存储器、NOR快闪存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)、自旋扭矩转移随机存取存储器(STTRAM)及磁性随机存取存储器(MRAM)以及其它存储器。
多个存储器装置可组合在一起以形成(举例来说)包含多个存储器装置的存储器系统,例如作为嵌入式存储解决方案或作为固态驱动器的存储卡。存储器系统(例如存储卡)可包含非易失性存储器(例如,NAND快闪存储器及/或NOR快闪存储器)及/或可包含易失性存储器(例如,DRAM及/或SRAM)以及各种其它类型的非易失性及易失性存储器。快闪存储器装置可包含将数据存储在电荷存储结构(举例来说,例如浮动栅极)中的存储器单元且可针对宽广范围的电子应用用作非易失性存储器。快闪存储器装置通常使用允许高存储器密度、高可靠性及低电力消耗的单晶体管存储器单元。
存储器系统可用作与计算系统中的若干主机一起使用的便携式存储器或嵌入式存储解决方案及/或用于替换硬盘驱动器作为计算系统的主存储装置,这是因为固态驱动器在性能、大小、重量、耐用性、操作温度范围及电力消耗方面可具有优于硬盘驱动器的优点。举例来说,当与磁盘驱动器相比时,存储器系统可因其缺少移动部件而具有优越性能,缺少移动部件可避免搜寻时间、延时及与磁盘驱动器相关联的其它机电延迟。存储器系统制造商可使用非易失性存储器来形成存储器系统,所述存储器系统可不使用内部电池供电,因此允许驱动器更通用及紧凑。
存储器系统可包含若干存储器装置,例如若干存储器芯片。如所属领域的技术人员将了解,存储器芯片可包含若干裸片及/或逻辑单元(LUN),例如其中LUN可为一或多个裸片。每一裸片在其上可包含若干存储器阵列及外围电路。存储器阵列可包含组织成若干物理页的若干存储器单元,且所述物理页可组织成若干块。快闪存储器单元阵列可一次一页地进行编程及一次一块地进行擦除。在存储器系统上执行的操作(例如读取、写入及擦除操作)可受存储器系统中可用于管理由存储器系统中的存储器装置进行的操作的资源量限制。
附图说明
图1是根据本发明的若干实施例的呈包含存储器系统的计算系统的形式的设备的框图。
图2图解说明根据本发明的若干实施例的用于存储器系统中的命令排队的方法的实例。
图3图解说明根据本发明的若干实施例的命令块描述符的实例。
图4A到D图解说明根据本发明的若干实施例的用于执行存储器系统中的命令队列中的命令的方法的实例。
图5图解说明根据本发明的若干实施例的包含在数据传送请求中的数据传送请求标头的实例。
图6图解说明根据本发明的若干实施例的用于存储器系统中的命令排队及命令执行的方法的实例。
具体实施方式
本发明包含用于命令排队的设备及方法。若干实施例包含:在存储器系统处从主机接收经排队命令请求;将命令响应从所述存储器系统发送到所述主机,所述命令响应指示所述存储器系统准备好在所述存储器系统的命令队列中接收命令;及响应于发送所述命令响应而在所述存储器系统处从所述主机接收所述命令的命令描述符块。
本发明的若干实施例可并入针对使用嵌入式多媒体卡(e.MMC)协议来控制的命令的命令排队及同时命令执行。新命令类别可经引入并添加到e.MMC协议中的命令以允许在使用e.MMC协议时进行命令排队及同时命令执行。经排队命令请求命令(例如,CMD43)、准备传送命令(例如,CMD 44)、任务管理功能请求命令(例如,CMD 45)、接收数据命令(例如,CMD 46)及发送数据命令(例如,CMD 47)可作为命令类别添加到e.MMC协议。这些命令可并入到e.MMC协议中以允许在具有对存储器系统的e.MMC状态机的微小改变的情况下或在仅将一个状态改变添加到存储器系统的e.MMC状态机的情况下进行命令排队及同时命令执行。
如本文中所使用,“若干”某物可是指一或多个此类事物。举例来说,若干存储器单元可是指一或多个存储器单元。此外,如本文中所使用,标号“M”及“N”(尤其关于图式中的元件符号)指示如此标示的若干特定特征可与本发明的若干实施例包含在一起。
本文中的各图遵循编号惯例,其中第一个数字或前几个数字对应于图式图编号,且其余数字识别所述图式中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,104在图1中可是指元件“04”,且在图2中,类似元件可指代为204。
图1是根据本发明的若干实施例的呈包含存储器系统104的计算系统100的形式的设备的框图。如本文中所使用,存储器系统104、控制器125或存储器装置130-1、...、130-N也可单独地视为“设备”。存储器系统104可为若干存储器系统中的任一者(例如存储卡),且可包含主机接口106、控制器125及为存储器系统104提供存储卷的多个存储器装置130-1、…、130-N(例如,例如NAND快闪装置的固态存储器装置)。存储器系统104可经由主机接口106(例如,底板或总线)通信地耦合到主机102。
主机102的实例可包含膝上型计算机、个人计算机、数码相机、数字记录与回放装置、移动电话、PDA、存储器读卡机及接口集线器以及其它主机系统。存储器系统104可为云存储联网基础设施的部分,举例来说,存储器系统104经由主机接口106耦合到主机102,主机接口106可包含串行高级技术附件(SATA)、外围组件互连高速(PCIe)、通用串行总线(USB)、光纤通道或以太网连接以及其它连接器及接口。然而,一般来说,主机接口106可提供用于在存储器系统104与主机102之间(举例来说)在命令线及/或数据总线上传递控制、地址、数据及其它信号的接口。
主机102可包含通信地耦合到存储器与总线控制件的若干处理器(例如,并行处理器、协处理器等)。所述若干处理器可为若干微处理器或一些其它类型的控制电路(举例来说,例如若干专用集成电路(ASIC))。计算系统100的其它组件还可具有处理器。存储器与总线控制件可使存储器及其它组件直接通信地耦合到其,举例来说,动态随机存取存储器(DRAM)、图形用户接口及/或其它用户接口(例如,显示监视器、键盘、鼠标等)。
控制器125可与存储器(例如,存储器装置130-1到130-N)通信以控制数据读取、写入及擦除操作以及其它操作。举例来说,控制器125可包含呈硬件及/或固件(例如,一或多个集成电路/逻辑)及/或软件的形式的若干组件以用于控制对存储器的存取及/或用于促进主机102与存储器之间的数据传送。
在图1中所图解说明的实例中,控制器125包含命令队列126及状态寄存器127。然而,控制器125可包含未图解说明以便不使本发明的实施例模糊的各种其它组件。而且,尽管命令队列126及状态寄存器127图解说明为驻存于控制器125上,但在一些实施例中,命令队列126及状态寄存器127可(例如)作为独立组件驻存于系统100中的别处或驻存于系统的不同组件上。
命令队列126可包含已由存储器系统104从主机102接收以用于执行的若干命令。命令队列126可包含与命令相关联的信息,所述信息含纳于命令队列126中的命令中的每一者的命令描述符块中。状态寄存器127可为存储命令队列126中的命令中的每一者的状态信息(举例来说,例如任务休眠、任务启用、任务完成、任务错误及/或任务中止)的寄存器。命令队列126及状态寄存器127可包含易失性存储器单元(举例来说,例如DRAM存储器单元)及/或非易失性存储器(举例来说,例如快闪、RRAM、MRAM、STTRAM及/或PCRAM存储器单元)以存储与命令相关联的信息。在命令队列126中的命令的执行期间从主机所接收的数据在被存储于存储器装置130-1到130-N中之前可具有由ECC模块对所述数据执行的错误校正码(ECC)操作。
存储器系统104包含总线120以在存储器装置130-1、…、130-N与控制器125之间发送/接收各种信号及/或命令,例如数据信号、控制信号及/或地址信号等。尽管图1所图解说明的实例包含单个总线120,但在一些实施例中,存储器系统104可包含若干总线,例如通道,例如若干单独数据总线、控制总线及/或地址总线。总线120由多个存储器装置130-1、…、130-N共用且可具有各种类型的总线结构,所述总线结构包含但不限于与开放NAND快闪接口(ONFI)相关的总线结构。此外,总线120可包含各种类型的总线结构,所述总线结构包含但不限于紧凑型快闪接口、多媒体卡(MMC)、安全数字(SD)、消费型电子器件高级技术附件(CE-ATA)、工业标准架构(ISA)、微通道架构(MSA)、扩展式ISA(EISA)、智能驱动电子器件(IDE)、VESA局部总线(VLB)、外围组件互连(PCI)、卡总线、通用串行总线(USB)、高级图形端口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、Firewire(IEEE 1394)及小计算机系统接口(SCSI)。举例来说,总线120可为硬连线共享物理总线。
图1中所图解说明的计算系统100是此系统的一个实例;然而,本发明的实施例并不限于图1中所展示的配置。
如图1中所图解说明,存储器装置130-1、…、130-N可包括若干裸片及/或芯片,所述若干裸片及/或芯片可包含为存储器系统104提供存储卷的若干存储器阵列112-1、112-2、…、112-M。存储器阵列112-1、112-2、…、112-M在其上可包含外围电路。在若干实施例中,存储器阵列112-1、112-2、…、112-M可为存储器系统104的能够独立地执行来自主机102的命令及/或经由主机接口106将状态发送到主机102的最小组件。举例来说,存储器阵列112-1、112-2、…、112-M可包含具有NAND架构的快闪存储器阵列。然而,实施例并不限于特定类型的存储器阵列或阵列架构且可包含具有RRAM、MRAM、STTRAM及/或PCRAM存储器单元的存储器阵列。
图1中所图解说明的实施例可包含未图解说明以便不使本发明的实施例模糊的额外电路、逻辑及/或组件。举例来说,存储器装置130-1、...、130-N可包含地址电路以锁存经由I/O电路提供于I/O连接器上方的地址信号。信号可由行解码器及列解码器接收并解码以存取存储器系统102。
图2图解说明根据本发明的若干实施例的用于存储器系统中的命令排队的方法的实例。在图2中,经排队命令请求240-1(例如,CMD 43)可从主机202发送到存储器系统204。经排队命令请求240-1可向存储器系统204指示主机202想要针对存储器系统204将命令发送到存储器系统204以添加到存储器系统204中的命令队列。存储器系统204可响应于接收到所述经排队命令请求而将命令响应242-1发送到主机。命令响应242-1可包含设定为一(1)的队列繁忙位,从而指示存储器系统204并未准备好在命令队列中接收命令,例如,命令队列是满的。当主机202接收到具有设定为(1)的队列繁忙位的命令响应242-1时,主机202不将命令块描述符往回发送到存储器系统204。在若干实施例中,主机202可将若干经排队命令请求发送到存储器系统204直到存储器系统204往回发送具有设定为零(0)的队列繁忙位的命令响应为止。举例来说,在一段时间之后,主机202可将包含与经排队命令请求240-1相同的信息的另一经排队命令请求240-P发送到存储器系统204。如果存储器系统204中的命令队列准备好接收待添加到命令队列的命令,那么存储器系统204可将具有设定为零(0)的队列繁忙位的命令响应242-0发送到主机202,命令响应242-0指示存储器系统204准备好将命令添加到命令队列。主机202将命令描述符块244发送到存储器系统204且存储器系统204将命令描述符块244中所描述的命令放置在命令队列中。命令描述符块244包含关于命令的使主机202及存储器系统204能够在其准备好执行命令时执行命令的信息。
在若干实施例中,主机202可将任务管理功能请求命令(例如,CMD 45)发送到存储器系统204。任务管理功能请求命令可用于检查状态寄存器(例如图1中的状态寄存器127)以确定命令队列(例如,图1中的命令队列126)中的命令中的每一者的状态。存储器系统204可将命令队列中的命令中的每一者的状态传回到主机202。在若干实施例中,任务管理功能请求命令还可在具有中止命令队列的指示的情况下从主机202发送到存储器系统204,借此由存储器系统204中止命令队列中的命令中的每一者。此外,停止命令(例如,CMD 12及/或高优先级中断(HPI)命令)可从主机202发送到存储器系统204,此将致使存储器系统204中止命令队列。
在若干实施例中,若干命令可在主机将若干经排队命令请求发送到存储器系统且接着响应于接收到指示命令队列准备好接收命令的若干命令响应而将若干命令描述符块发送到存储器系统时添加到命令队列。所述若干经排队命令请求可在命令线上从主机接收,使得所述经排队命令请求可由存储器系统接收且由存储器系统当在存储器系统中于数据总线上执行来自命令队列的命令时对其做出响应。
图3图解说明根据本发明的若干实施例的命令块描述符344的实例。在图3中,命令块描述符344包含提供与命令相关联的信息的若干字段,因此所述命令可放置在命令队列中且根据含纳于命令块描述符344中的信息而执行。举例来说,命令块描述符可包含32个字节以及其它数目个字节。在此实例中,命令块描述符344可包含32个字节,其中字节0与命令操作代码341相关联,字节1与命令优先级信息343相关联,字节2是保留的,字节3与命令任务标记345相关联,字节4到字节7与命令变元346相关联,字节8到字节11与命令起始地址348相关联,字节12到字节13是保留的,字节14到字节15与命令块计数349相关联且字节16到字节31是保留的。以实例方式,命令操作字节341可设定为对应于读取命令的值01h。命令操作字节341可设定为对应于写入命令的值02h。命令优先级信息343可指示命令队列中的执行优先级次序。命令优先级信息343字节可设定为值00h,所述值对应于其中将命令无优先级地放置在命令队列中的简单优先级。命令优先级信息343字节可设定为值01h,所述值对应于其中将命令放置在命令队列中使得基于存储器系统接收到所述命令的时间而按时间顺序执行所述命令的有序优先级。命令优先级信息343字节可设定为值02h,所述值对应于其中命令是下一经执行命令的队列头部优先级。命令任务标记345字节可对应于用于区分所述命令与命令队列中的其它命令的唯一识别符。命令任务标记字节345可设定为介于从00h到FFh的范围内的值。命令变元346(例如,可靠写入或强制编程请求)、命令起始地址348及命令块349计数可设定为根据e.MMC协议的值。
在若干实施例中,命令描述符块可包含任何数目个字节,例如少于32个字节。举例来说,当经排队命令请求中包含例如命令优先级、命令标记、任务属性、命令变元及/或块计数以及其它信息等一些信息时,命令描述符块可包含少于32个字节。
图4A到D图解说明根据本发明的若干实施例的用于执行存储器系统404中的命令队列中的命令的方法的实例。在图4A中,一旦主机402已将一或多个命令发送到存储器系统404中的命令队列,主机402便可在主机402准备好发射或接收数据时将准备传送命令450(例如,CMD 44)发送到存储器系统404。存储器系统404可响应于接收到准备传送命令450而将数据传送请求452-0发送到主机402。数据传送请求452-0可对应于命令队列中的准备用于下一执行的命令。在若干实施例中,如果存储器系统404并未准备好发送或接收数据,那么数据传送请求可提供否定响应且不请求数据传送。在若干实施例中,数据传送请求可使用命令/响应信号且不使用数据总线来递送。数据传送请求452-0可包含指示在执行命令时的数据传送方向的方向位。举例来说,设定为1的方向位指示命令是写入命令,其中数据从主机发送到存储器系统。数据传送请求452-0可包含用以识别正执行来自命令队列的哪一命令的命令标记字段且还可包含用以指示应传送数据的哪些部分的数据偏移量字段及数据大小字段。在图4A中,响应于接收到准备传送命令而发送的数据传送请求452-0包含设定为0的方向位,所述方向位指示命令是读取命令,其中数据从存储器系统发送到主机。数据传送请求452-0中的设定为0的方向位允许存储器系统404维持对总线的控制且将命令中所请求的读取数据从存储器系统404发送到主机402。存储器系统404在数据传送请求的方向位设定为0时保持处于发送数据状态,因此,在若干实施例中,具有设定为0的方向位的数据传送请求不导致存储器系统404中的状态改变。在若干实施例中,存储器系统可经配置使得在存储器系统404发送具有设定为0的方向位的数据传送请求时,存储器系统404保持处于发送数据状态。
在图4B中,一旦主机402已将一或多个命令发送到存储器系统404中的命令队列,主机402便可在主机402准备好发射或接收数据时将准备传送命令450(例如,CMD 44)发送到存储器系统404。存储器系统404可响应于接收到准备传送命令450而将数据传送请求452-1发送到主机402,数据传送请求452-1包含用以指示在命令的执行期间的数据传送方向的方向位。在若干实施例中,如果存储器系统404并未准备好发送或接收数据,那么数据传送请求可提供否定响应且不请求数据传送。在若干实施例中,数据传送请求可使用命令/响应信号且不使用数据总线来递送。在图4B中,响应于接收到准备传送命令而发送的数据传送请求452-1包含对应于写入命令的设定为1的方向位。数据传送请求452-1可包含用以识别正执行来自命令队列的哪一命令的命令标记字段且还可包含用以指示应传送数据的哪些部分的数据偏移量字段及数据大小字段。数据传送请求452-1中的设定为1的方向位允许主机402控制总线并将命令中所请求的写入数据从主机402发送到存储器系统404。存储器系统404在数据传送请求452-1的方向位设定为1时从发送数据状态转变为接收数据状态。在若干实施例中,存储器系统的状态机可经配置使得在存储器系统404发送具有设定为1的方向位的数据传送请求时,存储器系统404从发送数据状态改变为接收数据状态。
在图4C中,一旦主机402已将一或多个命令发送到存储器系统404中的命令队列,主机402便可在主机402准备好发射或接收数据时将准备传送命令450(例如,CMD 44)发送到存储器系统450。存储器系统404可响应于接收到准备传送命令450而用数据传送请求452-0对主机402做出响应,数据传送请求452-0包含用以指示在命令的执行期间的数据传送方向的方向位。在若干实施例中,如果存储器系统404并未准备好发送或接收数据,那么数据传送请求可提供否定响应且不请求数据传送。在若干实施例中,数据传送请求可使用命令/响应信号且不使用数据总线来递送。在图4C中,响应于接收到准备传送命令450而发送的数据传送请求452-0包含对应于读取命令的设定为0的方向位。数据传送请求452-0可包含用以识别正执行来自命令队列的哪一命令的命令标记字段且还可包含用以指示应传送数据的哪些部分的数据偏移量字段及数据大小字段。主机402响应于接收到具有设定为0的方向位的数据传送请求452-0而将发送数据命令458(例如CMD 47)发送到存储器系统404。发送数据命令458请求存储器系统404将数据发送到主机402,因此存储器系统404从传送状态转变为发送数据状态且存储器系统404控制总线并将命令中所请求的读取数据从存储器系统404发送到主机402。当已传送全部数据时,存储器系统404从发送数据状态移动回到传送状态。在若干实施例中,存储器系统的状态机可经配置使得存储器系统404在发送传送数据请求452-0之后从发送数据状态改变为传送状态且接着在存储器系统404接收到来自主机的发送数据命令458时从所述传送状态改变为发送数据状态。
在图4D中,一旦主机402已将一或多个命令发送到存储器系统404中的命令队列,主机402便可在主机402准备好发射或接收数据时将准备传送命令450(例如,CMD 44)发送到存储器系统404。存储器系统404可响应于接收到准备传送命令450而将数据传送请求452-1发送到主机402,数据传送请求452-1包含用以指示在命令的执行期间的数据传送方向的方向位。在若干实施例中,如果存储器系统404并未准备好发送或接收数据,那么数据传送请求可提供否定响应且不请求数据传送。在若干实施例中,数据传送请求可使用命令/响应信号且不使用数据总线来递送。在图4D中,响应于接收到准备传送命令450而发送的数据传送请求452-1包含对应于写入命令的设定为1的方向位。数据传送请求452-1可包含用以识别正执行来自命令队列的哪一命令的命令标记字段且还可包含用以指示应传送数据的哪些部分的数据偏移量字段及数据大小字段。主机402响应于接收到具有设定为1的方向位的数据传送请求452-1而将接收数据命令460(例如CMD 46)发送到存储器系统404。接收数据命令460向存储器系统404指示存储器系统404将从主机402接收数据,因此存储器系统404从传送状态转变为接收数据状态且存储器系统404允许主机402控制总线并将命令中所请求的写入数据从主机402发送到存储器系统404。当已传送全部数据时,存储器系统404从接收数据状态移动回到传送状态。
在若干实施例中,存储器系统的状态机可经配置使得存储器系统404在发送传送数据请求之后从发送数据状态改变为传送状态且接着在存储器系统404接收到来自主机402的接收数据命令460时从所述传送状态改变为接收数据状态。
在若干实施例中,当在命令的执行期间发错误时,所述命令失败。存储器系统可用具有错误位的命令响应对来自主机的额外经排队命令请求做出响应,所述错误位指示在命令的执行期间存在错误。主机还可以任务管理功能请求命令来查询存储器系统以接收对命令队列中的命令的状态的更新。
图5图解说明根据本发明的若干实施例的包含于数据传送请求中的数据传送请求标头552的实例。在图5中,数据传送请求标头552包含提供与命令相关联的信息的若干字段,因此所述命令可由主机识别且由主机及存储器装置执行。举例来说,数据传送请求标头可包含32个位以及其它数目个位。数据传送请求标头552包含32个字节,其中字节0到字节1是保留的,字节2与传送方向551相关联,字节3与命令任务标记545相关联,字节4到字节11是保留的,字节12到字节13与数据缓冲区偏移量553相关联,字节14到字节15与命令传送长度555相关联,字节16到字节31是保留的。传送方向551字节可设定为对应于读取命令的值00h。传送方向551字节可设定为对应于写入命令的值01h。命令任务标记545字节可对应于用于区分并识别所述命令与命令队列中将执行的其它命令的唯一识别符。命令任务标记545字节可设定为介于从00h到FFh的范围内的值。数据缓冲区偏移量553可为在任务的完整数据传送内的数据传送的偏移量。数据传送请求552可由任何数目个字节组成。举例来说,当数据传送请求使用命令/响应信号来递送时,数据传送请求可由少于32个字节组成,即使包含与先前所描述相同的字段。
图6图解说明根据本发明的若干实施例的用于存储器系统中的命令排队及命令执行的方法的实例。图6中所图解说明的方法包含同时执行的若干命令,其中在主机与存储器系统之间在命令线上发送命令及命令响应,同时在存储器系统与主机之间在数据总线上传送与命令相关联的数据。因此,在若干实施例中,数据总线可基于在命令线上发送的命令而由主机或存储器系统控制且数据总线可在于命令线上发送命令时用于在主机与存储器装置之间传送数据。举例来说,可经由在主机与存储器系统之间发送的命令而将一命令添加到命令队列,同时在主机与存储器系统之间在数据总线上发送与命令队列中的命令相关联的数据。
在图6中,与第一命令647-1相关联的第一经排队命令请求640-1(例如,CMD 43)从主机602发送到存储器系统604。第一命令647-1是4KB读取命令。作为响应,存储器系统604可发送命令响应(未展示)且主机602可发送所述第一命令的命令块描述符(未展示),因此第一命令647-1可添加到命令队列。
与第二命令647-2相关联的第二经排队命令请求640-2(例如,CMD 43)从主机602发送到存储器系统604。第二命令647-2是16KB写入命令。作为响应,存储器系统604可发送命令响应(未展示)且主机602可发送所述第二命令的命令块描述符(未展示),因此第二命令647-2可添加到命令队列。命令队列现在具有两个命令:准备用于执行的第一命令647-1及第二命令647-2。
准备传送命令650-1(例如CMD 44)在命令线605上从主机602发送到存储器系统604。在图6中,存储器系统604并未准备好执行命令并将指示此情况的命令响应发送到主机602。在一段时间之后,主机602接着将准备传送命令650-1(例如,CMD 44)再次发送到存储器系统604。存储器系统604用识别所述命令、4KB读取命令647-1及数据传送方向的数据传送请求652-1对准备传送命令650-1做出响应。主机602响应于接收到数据传送请求652-1而发送发送数据命令658-1(例如,CMD 47),从而致使存储器系统604控制数据总线606并发送与第一命令647-1相关联的4KB数据657-1。
当与第一命令647-1相关联的4KB数据在数据总线606上从存储器系统604发送到主机602时,准备传送命令650-2(例如CMD 44)及与第三命令647-3相关联的第三经排队命令请求640-3(例如,CMD 43)在命令线605上从主机602发送到存储器系统604。当存储器系统604发送对第三经排队命令请求640-3的命令响应(未展示)且主机602可发送所述第三命令的命令块描述符(未展示)因此第三命令647-3可添加到命令队列时,第三命令647-3添加到命令队列。存储器系统604用识别第二命令647-2、16KB写入命令、数据传送方向及待传送的数据的部分(例如数据偏移量及数据大小)的数据传送请求652-2对准备传送命令650-2做出响应。主机602响应于接收到数据传送请求652-2而发送接收数据命令660-2(例如,CMD 46),从而致使主机602控制数据总线606并将与第二命令647-2相关联的8KB数据657-2发送到存储器系统604。
当与第二命令647-2相关联的8KB数据在数据总线606上从主机602发送到存储器系统604时,准备传送命令650-3(例如CMD 44)在命令线605上从主机602发送到存储器系统604。存储器系统604通过在命令线605上发送识别第三命令647-3、8KB读取命令及数据传送方向的数据传送请求652-3而对准备传送命令650-3做出响应。第三命令647-3中所指示的优先级是高于命令647-2的优先级,因此接下来执行命令647-3且在执行第三命令时暂停第二命令647-2的执行(例如,其中与第二命令647-2相关联的16KB中仅有8KB从主机602发送到存储器系统604)。主机602响应于接收到数据传送请求652-3而发送发送数据命令658-3(例如,CMD 47),从而致使存储器系统604控制数据总线606并发送与第三命令647-3相关联的8KB数据657-3。
与第四命令647-4相关联的第四经排队命令请求640-4(例如,CMD 43)从主机602发送到存储器系统604。第四命令647-4是8KB读取命令。作为响应,存储器系统604可发送命令响应(未展示)且主机602可发送第四命令的命令块描述符(未展示),因此第四命令647-4可添加到命令队列。命令队列现在具有三个命令:已经部分地执行的第二命令647-2,及正执行的第三命令647-3,及准备用于执行的第四命令647-4。
当与第三命令647-3相关联的8KB数据在数据总线606上从存储器系统604发送到主机602时,准备传送命令650-2(例如CMD 44)再次在命令线605上从主机602发送到存储器系统604,使得第二命令647-2的执行可重新开始。存储器系统604用识别第二命令647-2、16KB写入命令、数据传送方向及待传送的数据的部分(例如,数据偏移量及数据大小)的数据传送请求652-2对准备传送命令650-2做出响应。主机602响应于接收到数据传送请求652-2而发送接收数据命令660-2(例如,CMD 46),从而致使主机602控制数据总线606并将与第二命令647-2相关联的8KB数据657-2发送到存储器系统604以完成第二命令647-2的执行。
当与第二命令647-2相关联的8KB数据在数据总线606上从主机602发送到存储器系统604时,准备传送命令650-4(例如CMD 44)在命令线605上从主机602发送到存储器系统604。存储器系统604用识别第四命令647-4、8KB读取命令及数据传送方向的数据传送请求652-4对准备传送命令650-4做出响应。主机602响应于接收到数据传送请求652-4而发送发送数据命令658-4(例如,CMD 47),从而致使存储器系统604控制数据总线606并发送与第四命令647-4相关联的8KB数据657-4。
主机602将准备传送命令650-5及650-6发送到存储器系统604,但命令队列是空的,因此存储器系统604将指示命令队列为空的命令响应(未展示)发送到主机602及/或存储器系统604响应于命令650-5及650-6而不发送数据传送请求。
虽然本文中已图解说明及描述了特定实施例,但所属领域的技术人员将了解,旨在达成相同结果的布置可替代所展示的特定实施例。此揭示内容打算涵盖对本发明的若干实施例的更改或变化。应理解,已以说明性方式而非限制性方式做出以上说明。在审阅以上说明之后,所属领域的技术人员将明了以上实施例的组合及本文中未具体描述的其它实施例。本发明的若干实施例的范围包含其中使用以上结构及方法的其它应用。因此,本发明的若干实施例的范围应参考所附权利要求书连同此权利要求书授权的等效物的全部范围来确定。
在前述具体实施方式中,出于简化本发明的目的,将一些特征一起聚集于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确陈述的特征多的特征的意图。而是,如所附权利要求书反映,发明性标的物在于少于单个所揭示实施例的所有特征。因此,特此将所附权利要求书并入到具体实施方案中,其中每一权利要求独立地作为单独实施例。
Claims (34)
1.一种用于计算系统中的命令排队的方法,其包括:
在存储器系统处从主机接收经排队命令请求;
将命令响应从所述存储器系统发送到所述主机,所述命令响应指示所述存储器系统准备好在所述存储器系统的命令队列中接收命令;及
响应于发送所述命令响应而在所述存储器系统处从所述主机接收所述命令的命令描述符块。
2.根据权利要求1所述的方法,其中所述方法包含将所述命令描述符块中所描述的所述命令添加到所述存储器系统中的所述命令队列。
3.根据权利要求1所述的方法,其中所述命令描述符块包含所述命令的优先级信息。
4.根据权利要求3所述的方法,其中所述优先级信息包含指示将所述命令以执行最高优先级放置在所述命令队列中的参数。
5.根据权利要求3所述的方法,其中所述优先级信息包含指示将所述命令以执行时间顺序优先级放置在所述命令队列中的参数。
6.根据权利要求3所述的方法,其中所述优先级信息包含指示将所述命令无执行优先级地放置在所述命令队列中的参数。
7.根据权利要求1到3中任一权利要求所述的方法,其中所述命令的所述命令描述符块包含命令操作代码、优先级信息、任务标记、命令变元、起始地址及块计数。
8.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含当所述存储器系统处于传送状态时在所述存储器系统处接收所述经排队命令请求。
9.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含响应于发送所述命令响应而使所述存储器系统从传送状态改变为接收状态。
10.根据权利要求1到3中任一权利要求所述的方法,其中所述方法包含使用嵌入式多媒体卡e.MMC协议进行命令排队。
11.一种用于存储器系统中的命令排队的方法,其包括:
响应于在存储器系统处从主机接收到经排队命令请求而将命令放置在命令队列中,响应于接收到所述经排队命令请求而将指示所述存储器系统准备好在所述存储器系统的所述命令队列中接收所述命令的命令响应从所述存储器系统发送到所述主机,且响应于接收到所述命令响应而在所述存储器系统处从所述主机接收所述命令的命令描述符块;及
通过以下方式执行所述命令:在所述存储器系统处从所述主机接收准备传送命令;及响应于接收到所述准备传送命令而将数据传送请求从所述存储器系统发送到所述主机,其中所述数据传送请求包含具有允许所述主机及存储器系统上的命令执行的信息的数据包。
12.根据权利要求11所述的方法,其中执行所述命令包含当所述命令是写入命令时在所述存储器系统处从所述主机接收接收数据命令。
13.根据权利要求12所述的方法,其中响应于从所述主机接收到所述接收数据命令,所述存储器系统转变为接收状态且所述主机将数据发送到所述存储器系统。
14.根据权利要求11到13中任一权利要求所述的方法,其中执行所述命令包含当所述命令是读取命令时在所述存储器系统处从所述主机接收发送数据命令。
15.根据权利要求14所述的方法,其中响应于从所述主机接收到所述发送数据命令,所述存储器系统转变为发送数据状态且所述存储器系统将数据发送到所述主机。
16.一种用于存储器系统中的命令执行的方法,其包括:
在存储器系统处从主机接收第一数目个经排队命令请求;
响应于接收到所述第一数目个经排队命令请求而将第一数目个命令放置在所述存储器系统中的命令队列中;
通过以下方式执行所述第一数目个命令:在所述存储器系统处从所述主机接收第一数目个准备传送命令;及响应于接收到所述第一数目个准备传送命令而将第一数目个数据传送请求从所述存储器系统发送到所述主机,其中所述第一数目个数据传送请求各自包含具有允许所述主机及存储器系统上的命令执行的信息的数据包;
在所述存储器系统处从所述主机接收第二数目个经排队命令请求;
响应于接收到所述第二数目个经排队命令请求而将第二数目个命令放置在所述存储器系统中的所述命令队列中;及
中断所述第一数目个命令的所述执行且执行所述第二数目个命令中的命令,其中所述第二数目个命令中的所述命令包含指示将所述命令以执行最高优先级放置在所述命令队列中的参数。
17.根据权利要求16所述的方法,其中所述方法包含通过以下方式执行所述第二数目个命令中的所述命令:在所述存储器系统处从所述主机接收准备传送命令;及响应于接收到所述准备传送命令而将数据传送请求从所述存储器系统发送到所述主机,其中所述数据传送请求包含具有允许所述主机及存储器系统上的命令执行的信息的数据包。
18.根据权利要求16到17中任一权利要求所述的方法,其中所述方法包含:在所述存储器系统处在命令线上从所述主机接收所述第二数目个经排队命令请求,同时在数据总线上经由数据传送而执行所述第一数目个命令的至少一部分。
19.根据权利要求16到17中任一权利要求所述的方法,所述方法包含同时执行所述第一数目个命令中的两者或两者以上。
20.根据权利要求19所述的方法,所述方法包含在已开始执行所述第二数目个命令中的所述命令之后重新开始执行所述第一数目个命令。
21.根据权利要求19所述的方法,所述方法包含基于所述第一数目个命令中的每一者的优先级信息而执行所述第一数目个命令。
22.一种设备,其包括:
控制器;及
存储器装置,其耦合到所述控制器,其中所述设备经配置以:
在所述控制器处从主机接收经排队命令请求且响应于接收到所述经排队命令请求而将命令响应从所述控制器发送到所述主机,所述命令响应指示所述设备准备好在命令队列中接收命令;及
响应于发送所述命令响应而在所述控制器处从所述主机接收命令的命令描述符块且将所述命令描述符块中所描述的所述命令添加到所述控制器中的所述命令队列;
在所述控制器处从所述主机接收准备传送命令且响应于接收到所述准备传送命令而将数据传送请求从所述控制器发送到所述主机,其中所述数据传送请求包含具有用以允许命令执行的信息的数据包;及
执行所述命令。
23.根据权利要求22所述的设备,其中设备经配置以通过以下方式执行所述命令:在所述控制器处从所述主机接收接收数据命令;从传送状态转变为接收数据状态;及在所述设备处从所述主机接收数据。
24.根据权利要求22所述的设备,其中设备经配置以通过以下方式执行所述命令:在所述控制器处从所述主机接收发送数据命令;从传送状态转变为发送数据状态;及将数据从所述存储器装置发送到所述主机。
25.根据权利要求22到24中任一权利要求所述的设备,其中所述设备经配置以从所述主机接收任务管理功能请求命令且将所述命令队列中的若干命令中的每一者的状态发送到所述主机。
26.根据权利要求22到24中任一权利要求所述的设备,其中所述设备经配置以从所述主机接收任务管理功能请求命令且中止所述命令队列中的若干命令中的每一者。
27.根据权利要求26所述的设备,其中设备经配置以在中止所述命令队列中的所述若干命令且从所述主机接收后续经排队命令请求后即刻将任务队列状态寄存器及例外事件状态字段的队列错误位复位。
28.一种设备,其包括:
控制器;及
存储器装置,其耦合到所述控制器,其中所述设备经配置以:
在所述控制器处从主机接收经排队命令请求且响应于接收到所述经排队命令请求而将命令响应从所述控制器发送到所述主机,所述命令响应指示所述设备准备好在命令队列中接收命令;及
响应于发送所述命令响应而在所述控制器处从所述主机接收命令的命令描述符块且将所述命令描述符块中所描述的所述命令添加到所述控制器中的所述命令队列;
在所述控制器处从所述主机接收准备传送命令且响应于接收到所述准备传送命令而将数据传送请求从所述控制器发送到所述主机,其中所述数据传送请求包含具有用以允许命令执行的信息的数据包;及
执行所述命令。
29.根据权利要求28所述的设备,其中所述设备经配置以通过从所述主机接收数据而执行所述命令,且其中所述设备经配置以将对数据总线的控制改交给所述主机且从发送数据状态转变为接收数据状态。
30.根据权利要求28到29中任一权利要求所述的设备,其中设备经配置以通过将数据发送到所述主机而执行所述命令,且其中所述设备经配置以维持对所述数据总线的控制且保持处于发送数据状态。
31.一种设备,其包括:
存储器系统,其包括存储器装置;及
主机,其耦合到所述存储器系统,其中所述设备经配置以:
将第一数目个经排队命令请求从所述主机发送到所述存储器系统;
响应于接收到所述第一数目个经排队命令请求而将第一数目个命令放置在所述存储器系统中的命令队列中;
将第一数目个准备传送命令从所述主机发送到所述存储器系统且响应于接收到所述第一数目个准备传送命令而将第一数目个数据传送请求从所述存储器系统发送到所述主机,其中所述第一数目个数据传送请求各自包含具有允许所述主机及存储器系统上的命令执行的信息的数据包;
通过以下方式同时执行所述第一数目个命令:在命令线上将若干接收数据命令及若干发送数据命令从所述主机发送到所述存储器系统;及响应于发送所述若干发送数据命令及所述若干接收数据命令而将数据从所述存储器系统发送到所述主机且在数据总线上将数据从所述主机发送到所述存储器系统。
32.根据权利要求31所述的设备,其中所述设备经配置以通过以下方式同时执行所述第一数目个命令:在所述命令线上将所述若干接收数据命令及所述若干发送数据命令从所述主机发送到所述存储器系统,同时在所述数据总线上将数据从所述存储器系统发送到所述主机。
33.根据权利要求31所述的设备,其中所述设备经配置以通过以下方式同时执行所述第一数目个命令:在所述命令线上将所述若干接收数据命令及所述若干发送数据命令从所述主机发送到所述存储器系统,同时在所述数据总线上将数据从所述主机发送到所述存储器系统。
34.根据权利要求31到33中任一权利要求所述的设备,其中设备经配置以:
将第二数目个经排队命令请求从所述主机发送到所述存储器系统且响应于接收到所述第一数目个经排队命令请求而将所述第二数目个命令放置在所述存储器系统中的所述命令队列中;及
中断所述第一数目个命令的所述执行且执行所述第二数目个命令中的命令,其中所述第二数目个命令中的所述命令包含指示将所述命令以执行最高优先级放置在所述命令队列中的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010587913.3A CN111722809A (zh) | 2014-02-14 | 2015-02-12 | 用于命令排队的设备和方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/181,089 | 2014-02-14 | ||
US14/181,089 US9454310B2 (en) | 2014-02-14 | 2014-02-14 | Command queuing |
PCT/US2015/015612 WO2015123413A1 (en) | 2014-02-14 | 2015-02-12 | Command queuing |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010587913.3A Division CN111722809A (zh) | 2014-02-14 | 2015-02-12 | 用于命令排队的设备和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106030521A true CN106030521A (zh) | 2016-10-12 |
Family
ID=53798166
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010587913.3A Pending CN111722809A (zh) | 2014-02-14 | 2015-02-12 | 用于命令排队的设备和方法 |
CN201580008744.0A Pending CN106030521A (zh) | 2014-02-14 | 2015-02-12 | 命令排队 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010587913.3A Pending CN111722809A (zh) | 2014-02-14 | 2015-02-12 | 用于命令排队的设备和方法 |
Country Status (7)
Country | Link |
---|---|
US (5) | US9454310B2 (zh) |
EP (3) | EP4033353A1 (zh) |
JP (1) | JP6134453B2 (zh) |
KR (1) | KR101702280B1 (zh) |
CN (2) | CN111722809A (zh) |
TW (1) | TWI543070B (zh) |
WO (1) | WO2015123413A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109521947A (zh) * | 2017-09-18 | 2019-03-26 | 爱思开海力士有限公司 | 存储器系统以及存储器系统的操作方法 |
CN110073322A (zh) * | 2017-03-24 | 2019-07-30 | 西部数据技术公司 | 用于快速执行封装体内命令的系统和方法 |
CN110083304A (zh) * | 2018-01-25 | 2019-08-02 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN110245097A (zh) * | 2018-03-08 | 2019-09-17 | 爱思开海力士有限公司 | 存储器控制器及具有存储器控制器的存储器系统 |
CN110447009A (zh) * | 2017-03-24 | 2019-11-12 | 西部数据技术公司 | 用于自适应命令获取聚合的系统和方法 |
CN112732171A (zh) * | 2019-10-14 | 2021-04-30 | 爱思开海力士有限公司 | 控制器及其操作方法 |
CN113495682A (zh) * | 2020-03-20 | 2021-10-12 | 西部数据技术公司 | 用于对装置管理配置请求进行列队的系统和方法 |
WO2023173363A1 (en) * | 2022-03-17 | 2023-09-21 | Micron Technology, Inc. | Low-latency processing for unmap commands |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
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 |
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 |
US9824004B2 (en) | 2013-10-04 | 2017-11-21 | Micron Technology, Inc. | Methods and apparatuses for requesting ready status information from a memory |
KR102111741B1 (ko) * | 2014-01-10 | 2020-05-15 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 및 이의 동작 방법 |
US10108372B2 (en) | 2014-01-27 | 2018-10-23 | Micron Technology, Inc. | Methods and apparatuses for executing a plurality of queued tasks in a memory |
US9454310B2 (en) | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
WO2015166540A1 (ja) * | 2014-04-28 | 2015-11-05 | 株式会社日立製作所 | ストレージ装置とそのデータ処理方法及びストレージシステム |
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 |
KR102398213B1 (ko) * | 2015-03-09 | 2022-05-17 | 삼성전자주식회사 | 저장 장치, 그것을 포함하는 호스트 시스템, 및 그것의 맵 테이블 업데이트 방법 |
US10552058B1 (en) | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
US9880772B2 (en) * | 2015-09-21 | 2018-01-30 | Micron Technology, Inc. | Systems and methods for providing file information in a memory system protocol |
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 |
US9996262B1 (en) * | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US20170206165A1 (en) * | 2016-01-14 | 2017-07-20 | Samsung Electronics Co., Ltd. | Method for accessing heterogeneous memories and memory module including heterogeneous memories |
US9891945B2 (en) | 2016-03-21 | 2018-02-13 | Qualcomm Incorporated | Storage resource management in virtualized environments |
US10152237B2 (en) | 2016-05-05 | 2018-12-11 | Micron Technology, Inc. | Non-deterministic memory protocol |
US10534540B2 (en) | 2016-06-06 | 2020-01-14 | Micron Technology, Inc. | Memory protocol |
US10580189B2 (en) | 2016-09-16 | 2020-03-03 | Intel Corporation | Apparatus and method for optimized ray tracing |
US10585624B2 (en) | 2016-12-01 | 2020-03-10 | Micron Technology, Inc. | Memory protocol |
KR20180069960A (ko) * | 2016-12-15 | 2018-06-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US11003602B2 (en) | 2017-01-24 | 2021-05-11 | Micron Technology, Inc. | Memory protocol with command priority |
JP2018169810A (ja) | 2017-03-30 | 2018-11-01 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
US10635613B2 (en) | 2017-04-11 | 2020-04-28 | Micron Technology, Inc. | Transaction identification |
US10621117B2 (en) * | 2017-06-15 | 2020-04-14 | Micron Technology, Inc. | Controlling memory devices using a shared channel |
US10552271B2 (en) * | 2017-07-31 | 2020-02-04 | International Business Machines Corporation | Switching servers without interrupting a client command-response queue |
US10528414B2 (en) * | 2017-09-13 | 2020-01-07 | Toshiba Memory Corporation | Centralized error handling in application specific integrated circuits |
US10540219B2 (en) * | 2017-09-13 | 2020-01-21 | Toshiba Memory Corporation | Reset and error handling in application specific integrated circuits |
TWI792073B (zh) * | 2017-12-28 | 2023-02-11 | 慧榮科技股份有限公司 | 快閃記憶體控制器、安全數位卡、使用於快閃記憶體控制器的方法以及存取安全數位卡的主機 |
KR20190083052A (ko) * | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
US10635350B2 (en) * | 2018-01-23 | 2020-04-28 | Western Digital Technologies, Inc. | Task tail abort for queued storage tasks |
CN110851372B (zh) | 2018-08-20 | 2023-10-31 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
CN110851073B (zh) * | 2018-08-20 | 2023-06-02 | 慧荣科技股份有限公司 | 储存装置及巨集指令的执行方法 |
US10949117B2 (en) | 2018-09-24 | 2021-03-16 | Micron Technology, Inc. | Direct data transfer in memory and between devices of a memory module |
US10732892B2 (en) * | 2018-09-24 | 2020-08-04 | Micron Technology, Inc. | Data transfer in port switch memory |
CN110968441B (zh) * | 2018-09-28 | 2023-06-06 | 慧荣科技股份有限公司 | 存储卡存取装置及方法 |
US10580481B1 (en) * | 2019-01-14 | 2020-03-03 | University Of Virginia Patent Foundation | Methods, circuits, systems, and articles of manufacture for state machine interconnect architecture using embedded DRAM |
US11175984B1 (en) | 2019-12-09 | 2021-11-16 | Radian Memory Systems, Inc. | Erasure coding techniques for flash memory |
US11481152B2 (en) | 2019-12-30 | 2022-10-25 | Micron Technology, Inc. | Execution of commands addressed to a logical block |
US11789642B2 (en) * | 2021-06-28 | 2023-10-17 | Micron Technology, Inc. | Loading data from memory during dispatch |
CN114116008B (zh) * | 2022-01-26 | 2022-05-27 | 深圳佰维存储科技股份有限公司 | 命令队列管理方法、装置、可读存储介质及电子设备 |
US11790961B2 (en) * | 2022-03-11 | 2023-10-17 | Micron Technology, Inc. | Memory device access techniques |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732702A (zh) * | 2002-12-31 | 2006-02-08 | 摩托罗拉公司 | 用于多媒体存储设备的命令排队 |
WO2013111019A2 (en) * | 2012-01-27 | 2013-08-01 | Marvell World Trade Ltd. | Systems and methods for dynamic priority control |
Family Cites Families (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5442494A (en) * | 1992-10-13 | 1994-05-09 | Compaq Computer Corporation | Disk array controller having advanced internal bus protocol |
US5659690A (en) * | 1992-10-15 | 1997-08-19 | Adaptec, Inc. | Programmably configurable host adapter integrated circuit including a RISC processor |
US5634081A (en) * | 1994-03-01 | 1997-05-27 | Adaptec, Inc. | System for starting and completing a data transfer for a subsequently received autotransfer command after receiving a first SCSI data transfer command that is not autotransfer |
US5504868A (en) * | 1994-03-01 | 1996-04-02 | Adaptec, Incorporated | SCSI command descriptor block parsing state machine |
JPH08328880A (ja) * | 1995-05-31 | 1996-12-13 | Mitsubishi Electric Corp | 複数のアプリケーションプログラムを同時に実行できるオペレーティングシステムにおける計算機運転管理システム |
US5812824A (en) * | 1996-03-22 | 1998-09-22 | Sun Microsystems, Inc. | Method and system for preventing device access collision in a distributed simulation executing in one or more computers including concurrent simulated one or more devices controlled by concurrent one or more tests |
US5974499A (en) * | 1997-04-23 | 1999-10-26 | Micron Technology, Inc. | Memory system having read modify write function and method |
US6397316B2 (en) * | 1997-07-24 | 2002-05-28 | Intel Corporation | System for reducing bus overhead for communication with a network interface |
US6134630A (en) * | 1997-11-14 | 2000-10-17 | 3Ware | High-performance bus architecture for disk array system |
US6098114A (en) * | 1997-11-14 | 2000-08-01 | 3Ware | Disk array system for processing and tracking the completion of I/O requests |
US6205494B1 (en) * | 1998-12-18 | 2001-03-20 | Western Digital Corporation | Controller with automatic generation of linked list of data transfer descriptors for sequential commands, with linked list being used for execution of sequential data transfers |
US8296467B2 (en) * | 2000-01-06 | 2012-10-23 | Super Talent Electronics Inc. | Single-chip flash device with boot code transfer capability |
US6671773B2 (en) * | 2000-12-07 | 2003-12-30 | Spinnaker Networks, Llc | Method and system for responding to file system requests |
US7085723B2 (en) * | 2001-01-12 | 2006-08-01 | International Business Machines Corporation | System and method for determining utterance context in a multi-context speech application |
JP3617631B2 (ja) * | 2001-07-19 | 2005-02-09 | 富士通株式会社 | ストレージ制御装置及びその制御方法 |
JP3878508B2 (ja) * | 2001-11-08 | 2007-02-07 | 松下電器産業株式会社 | 回路群制御システム |
US6985977B2 (en) * | 2002-08-30 | 2006-01-10 | National Instruments Corporation | System and method for transferring data over a communication medium using double-buffering |
US7650385B2 (en) * | 2003-11-20 | 2010-01-19 | International Business Machines Corporation | Assigning priorities |
US7328317B2 (en) * | 2004-10-21 | 2008-02-05 | International Business Machines Corporation | Memory controller and method for optimized read/modify/write performance |
US7222223B2 (en) * | 2004-10-29 | 2007-05-22 | Pillar Data Systems, Inc. | Management of I/O operations in data storage systems |
JP2006139548A (ja) * | 2004-11-12 | 2006-06-01 | Hitachi Global Storage Technologies Netherlands Bv | メディア・ドライブ及びそのコマンド実行方法 |
US7774512B2 (en) * | 2005-02-08 | 2010-08-10 | Sony Computer Entertainment Inc. | Methods and apparatus for hybrid DMA queue and DMA table |
US7418531B2 (en) * | 2005-05-04 | 2008-08-26 | Pillar Data Systems, Inc. | Quality of service for data storage volumes |
US20060271739A1 (en) * | 2005-05-24 | 2006-11-30 | Shu-Fang Tsai | Management of transfer of commands |
US7493430B2 (en) * | 2005-07-14 | 2009-02-17 | Quantum Corporation | Data flow control and bridging architecture enhancing performance of removable data storage systems |
US20070083482A1 (en) * | 2005-10-08 | 2007-04-12 | Unmesh Rathi | Multiple quality of service file system |
WO2007076214A2 (en) | 2005-12-08 | 2007-07-05 | Sandisk Corporation | Media card with command pass through mechanism |
US20070260756A1 (en) * | 2006-01-05 | 2007-11-08 | Pao-Ching Tseng | Method for Processing Command via SATA Interface |
US20070226401A1 (en) * | 2006-03-21 | 2007-09-27 | Pa-Chung Huang | Data accessing structure and method for flash memory |
US20080040519A1 (en) * | 2006-05-02 | 2008-02-14 | Alacritech, Inc. | Network interface device with 10 Gb/s full-duplex transfer rate |
US7644204B2 (en) * | 2006-10-31 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | SCSI I/O coordinator |
KR20080044502A (ko) * | 2006-11-16 | 2008-05-21 | 삼성전자주식회사 | 메모리 카드 시스템 및 그것의 패스워드 전송 방법 |
US7644205B1 (en) * | 2006-12-15 | 2010-01-05 | Nvidia Corporation | System and method for SAM-3 prioritization in iSCSI using 802.1q ethernet prioritization |
US7630369B1 (en) * | 2006-12-15 | 2009-12-08 | Nvidia Corporation | System and method for network storage prioritization of demand-page operations |
US20080162735A1 (en) * | 2006-12-29 | 2008-07-03 | Doug Voigt | Methods and systems for prioritizing input/outputs to storage devices |
KR20080105390A (ko) * | 2007-05-30 | 2008-12-04 | 삼성전자주식회사 | 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치 |
US20090094678A1 (en) * | 2007-10-05 | 2009-04-09 | Nokia Corporation | Mulimode device |
US8954654B2 (en) * | 2008-06-18 | 2015-02-10 | Super Talent Technology, Corp. | Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance |
US9223642B2 (en) * | 2013-03-15 | 2015-12-29 | Super Talent Technology, Corp. | Green NAND device (GND) driver with DRAM data persistence for enhanced flash endurance and performance |
US8959280B2 (en) * | 2008-06-18 | 2015-02-17 | Super Talent Technology, Corp. | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear |
US8078771B2 (en) * | 2008-10-31 | 2011-12-13 | Lsi Corporation | Sending large command descriptor block (CDB) structures in serial attached SCSI (SAS) controller |
US8732339B2 (en) * | 2009-03-24 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | NPIV at storage devices |
US20100262979A1 (en) * | 2009-04-08 | 2010-10-14 | Google Inc. | Circular command queues for communication between a host and a data storage device |
US8055816B2 (en) * | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US8176232B2 (en) * | 2009-05-11 | 2012-05-08 | Micron Technology, Inc. | Dedicated interface to factory program phase-change memories |
US8225052B2 (en) | 2009-06-03 | 2012-07-17 | Micron Technology, Inc. | Methods for controlling host memory access with memory devices and systems |
US20120179860A1 (en) * | 2009-06-10 | 2012-07-12 | Francesco Falanga | Suspension of memory operations for reduced read latency in memory arrays |
TWI424435B (zh) | 2009-08-31 | 2014-01-21 | Phison Electronics Corp | 對快閃記憶體下達程式化指令的方法、控制器與儲存系統 |
US8615621B2 (en) | 2009-12-24 | 2013-12-24 | St-Ericsson Sa | Memory management |
US8468319B1 (en) * | 2010-01-19 | 2013-06-18 | Infinidat Ltd. | Concurrent access to a single disk track by combining reads and writes to a disk with a mask |
KR101654807B1 (ko) * | 2010-05-07 | 2016-09-07 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP5677336B2 (ja) * | 2011-08-01 | 2015-02-25 | 株式会社東芝 | メモリ・デバイス |
US8423722B1 (en) * | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US9021146B2 (en) * | 2011-08-30 | 2015-04-28 | Apple Inc. | High priority command queue for peripheral component |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
JP5547148B2 (ja) * | 2011-09-13 | 2014-07-09 | 株式会社東芝 | メモリデバイス |
JP5547154B2 (ja) * | 2011-09-21 | 2014-07-09 | 株式会社東芝 | メモリ・デバイス |
US10803970B2 (en) | 2011-11-14 | 2020-10-13 | Seagate Technology Llc | Solid-state disk manufacturing self test |
KR20130087936A (ko) * | 2012-01-30 | 2013-08-07 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 이의 프로그램 방법 |
US9135192B2 (en) * | 2012-03-30 | 2015-09-15 | Sandisk Technologies Inc. | Memory system with command queue reordering |
US9141296B2 (en) * | 2012-05-31 | 2015-09-22 | Sandisk Technologies Inc. | Method and host device for packing and dispatching read and write commands |
JP5814871B2 (ja) * | 2012-07-06 | 2015-11-17 | 株式会社東芝 | メモリシステム |
KR101988260B1 (ko) * | 2012-09-14 | 2019-06-12 | 삼성전자주식회사 | 임베디드 멀티미디어 카드, 및 이의 동작 방법 |
US9335952B2 (en) * | 2013-03-01 | 2016-05-10 | Ocz Storage Solutions, Inc. | System and method for polling the status of memory devices |
US9170755B2 (en) * | 2013-05-21 | 2015-10-27 | Sandisk Technologies Inc. | Command and data selection in storage controller systems |
US9519440B2 (en) * | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
US9244631B2 (en) * | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
KR102111741B1 (ko) * | 2014-01-10 | 2020-05-15 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 및 이의 동작 방법 |
US9454310B2 (en) * | 2014-02-14 | 2016-09-27 | Micron Technology, Inc. | Command queuing |
-
2014
- 2014-02-14 US US14/181,089 patent/US9454310B2/en active Active
-
2015
- 2015-02-12 EP EP22161719.4A patent/EP4033353A1/en active Pending
- 2015-02-12 KR KR1020167025100A patent/KR101702280B1/ko active IP Right Grant
- 2015-02-12 EP EP15749451.9A patent/EP3105675B1/en active Active
- 2015-02-12 CN CN202010587913.3A patent/CN111722809A/zh active Pending
- 2015-02-12 EP EP18196928.8A patent/EP3493055B1/en active Active
- 2015-02-12 CN CN201580008744.0A patent/CN106030521A/zh active Pending
- 2015-02-12 JP JP2016550832A patent/JP6134453B2/ja active Active
- 2015-02-12 WO PCT/US2015/015612 patent/WO2015123413A1/en active Application Filing
- 2015-02-13 TW TW104105193A patent/TWI543070B/zh active
-
2016
- 2016-08-25 US US15/246,735 patent/US10146477B2/en active Active
-
2018
- 2018-12-03 US US16/207,453 patent/US10884661B2/en active Active
-
2021
- 2021-01-04 US US17/140,625 patent/US11494122B2/en active Active
-
2022
- 2022-11-07 US US17/981,703 patent/US11954370B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1732702A (zh) * | 2002-12-31 | 2006-02-08 | 摩托罗拉公司 | 用于多媒体存储设备的命令排队 |
WO2013111019A2 (en) * | 2012-01-27 | 2013-08-01 | Marvell World Trade Ltd. | Systems and methods for dynamic priority control |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110073322A (zh) * | 2017-03-24 | 2019-07-30 | 西部数据技术公司 | 用于快速执行封装体内命令的系统和方法 |
CN110447009A (zh) * | 2017-03-24 | 2019-11-12 | 西部数据技术公司 | 用于自适应命令获取聚合的系统和方法 |
CN110073322B (zh) * | 2017-03-24 | 2022-08-02 | 西部数据技术公司 | 用于快速执行封装体内命令的系统和方法 |
CN110447009B (zh) * | 2017-03-24 | 2024-03-12 | 西部数据技术公司 | 用于自适应命令获取聚合的系统和方法 |
CN109521947A (zh) * | 2017-09-18 | 2019-03-26 | 爱思开海力士有限公司 | 存储器系统以及存储器系统的操作方法 |
CN110083304A (zh) * | 2018-01-25 | 2019-08-02 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN110083304B (zh) * | 2018-01-25 | 2022-07-29 | 爱思开海力士有限公司 | 存储器控制器及其操作方法 |
CN110245097A (zh) * | 2018-03-08 | 2019-09-17 | 爱思开海力士有限公司 | 存储器控制器及具有存储器控制器的存储器系统 |
CN112732171A (zh) * | 2019-10-14 | 2021-04-30 | 爱思开海力士有限公司 | 控制器及其操作方法 |
CN112732171B (zh) * | 2019-10-14 | 2024-03-19 | 爱思开海力士有限公司 | 控制器及其操作方法 |
CN113495682A (zh) * | 2020-03-20 | 2021-10-12 | 西部数据技术公司 | 用于对装置管理配置请求进行列队的系统和方法 |
WO2023173363A1 (en) * | 2022-03-17 | 2023-09-21 | Micron Technology, Inc. | Low-latency processing for unmap commands |
Also Published As
Publication number | Publication date |
---|---|
US11954370B2 (en) | 2024-04-09 |
JP2017513089A (ja) | 2017-05-25 |
US20190102112A1 (en) | 2019-04-04 |
US20210200478A1 (en) | 2021-07-01 |
EP3105675B1 (en) | 2018-11-07 |
EP3493055B1 (en) | 2022-04-20 |
KR20160114726A (ko) | 2016-10-05 |
TWI543070B (zh) | 2016-07-21 |
US9454310B2 (en) | 2016-09-27 |
CN111722809A (zh) | 2020-09-29 |
EP3105675A1 (en) | 2016-12-21 |
US20160364179A1 (en) | 2016-12-15 |
JP6134453B2 (ja) | 2017-05-24 |
US20150234601A1 (en) | 2015-08-20 |
US20230054662A1 (en) | 2023-02-23 |
US10884661B2 (en) | 2021-01-05 |
EP4033353A1 (en) | 2022-07-27 |
TW201543347A (zh) | 2015-11-16 |
US10146477B2 (en) | 2018-12-04 |
EP3105675A4 (en) | 2017-10-18 |
KR101702280B1 (ko) | 2017-02-03 |
US11494122B2 (en) | 2022-11-08 |
EP3493055A1 (en) | 2019-06-05 |
WO2015123413A1 (en) | 2015-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106030521A (zh) | 命令排队 | |
US9176672B2 (en) | Input/output (I/O) command aggregation | |
CN103635969B (zh) | 包含存储器系统控制器的设备和相关方法 | |
US9329989B2 (en) | System and method for pre-interleaving sequential data | |
CN103858090B (zh) | 用于合并用于访问存储装置的命令的具有最大命令队列长度的装置及其方法 | |
CN104346292B (zh) | 用来管理一记忆装置的方法、记忆装置与控制器 | |
US7975096B2 (en) | Storage system having multiple non-volatile memories, and controller and access method thereof | |
CN104346288B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
CN110196823A (zh) | 电子装置及其操作方法 | |
CN107633862A (zh) | 存储器系统及其操作方法 | |
JP2021125248A (ja) | コントローラ、コントローラの動作方法及びそれを含む保存装置 | |
CN108733580A (zh) | 读取命令排程方法 | |
CN109426442A (zh) | 数据存储装置及其操作方法 | |
US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
US11409473B2 (en) | Data storage device and operating method thereof | |
CN109144907A (zh) | 实现快速读取的方法及介质接口控制器 | |
CN109933281A (zh) | 存储器系统及其操作方法 | |
KR20110124821A (ko) | 복수의 커맨드 실행이 가능한 메모리 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161012 |
|
RJ01 | Rejection of invention patent application after publication |