CN103186351A - 高性能ahci接口 - Google Patents

高性能ahci接口 Download PDF

Info

Publication number
CN103186351A
CN103186351A CN2012105787758A CN201210578775A CN103186351A CN 103186351 A CN103186351 A CN 103186351A CN 2012105787758 A CN2012105787758 A CN 2012105787758A CN 201210578775 A CN201210578775 A CN 201210578775A CN 103186351 A CN103186351 A CN 103186351A
Authority
CN
China
Prior art keywords
order
main frame
data
time
progress
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105787758A
Other languages
English (en)
Other versions
CN103186351B (zh
Inventor
A·佩勒德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN103186351A publication Critical patent/CN103186351A/zh
Application granted granted Critical
Publication of CN103186351B publication Critical patent/CN103186351B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Communication Control (AREA)

Abstract

一种方法包括按照存储协议从主机接收在存储器中用于执行的多个命令,该存储协议在任何给定时间仅支持单个命令的处理。在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令。在检测到第一命令被选择成用作当前支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机。

Description

高性能AHCI接口
技术领域
本发明一般涉及数据存储,具体涉及用于存储器命令的同时执行的方法和系统。
背景技术
用来与存储装置通信的各种存储协议在技术中是已知的。一种示范存储协议是Serial Advanced Technology Attachment(SATA)协议。叫做Advanced Host Controller Interface(AHCI)的协议规定使用SATA协议在主系统存储器与连接的存储装置之间的数据交换。
SATA例如在2009年6月2日的“Serial ATA InternationalOrganization:Serial ATA Revision3.0”中规定,该文献通过引用被包括在这里。AHCI例如在2008年6月26日的“Serial ATA AdvancedHost Controller Interface(AHCI)”Revision1.3中规定,该文献通过引用被包括在这里。
发明内容
这里描述的本发明的实施例提供一种方法,该方法包括按照存储协议从主机接收在存储器中用于执行的多个命令,该存储协议在任何给定时间仅支持单个命令的处理。在第一时间,执行在存储器中的第一命令,并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的所述单个命令。在检测到将第一命令被选择成用作当前支持对其处理的单个命令时,在比第一时间晚的第二时间,将第一命令的进展报告给主机。
在某些实施例中,存储协议包括Advanced Host ControllerInterface(AHCI)协议。在实施例中,执行第一命令包括制止在第一时间报告第一命令的进展。在公开实施例中,执行第一命令包括在第一时间高速缓存第一命令的进展,并且报告进展包括在第二时间将高速缓存进展报告给主机。在示范实施例中,主机提供一个或多个寄存器,这些寄存器用来报告支持其处理的单个命令的进展,并且报告进展包括用高速缓存进展来更新寄存器。
在另一个实施例中,交换数据包括交换与第一命令相关的数据的两个或更多部分,该数据同与至少一个其它命令相关的另外数据交织。在又一个实施例中,交换数据包括将与第一命令相关的数据与主机交换,即使按照存储协议第一命令不是当前支持对其处理的单个命令。
在又一个实施例中,执行第一命令包括:执行第一命令,即使按照存储协议第一命令不是当前支持对其处理的单个命令。在实施例中,接收命令包括:按第一顺序从主机接受命令,以及按与第一顺序不同的第二顺序执行命令。交换数据可以包括将数据传送到在主机中的主存储器、或从其传送出数据,而不涉及主机的处理器。
按照本发明的实施例,另外提供有包括存储器和存储器控制器的设备。存储器控制器被配置成,按照在任何给定时间仅支持单个命令的处理的存储协议,从主机接收在存储器中用于执行的多个命令,以便在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令;并且在检测到将第一命令被选择成用作支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机。
按照本发明的实施例,也提供有一种包括主机和存储装置的系统。存储装置被配置成,按照在任何给定时间仅支持单个命令的处理的存储协议,从主机接收在存储装置的存储器中用于执行的多个命令,以便在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令;并且在检测到将第一命令被选择成用作支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机。
附图说明
由与附图一起所作的本发明的实施例的如下详细描述,将更充分地理解本发明:
图1是方块图,示意地表明按照本发明实施例的数据存储系统;和
图2是流程图,示意地表明按照本发明实施例的用于多个命令的同时AHCI依从执行的方法。
具体实施方式
概述
一些存储协议允许存储装置同时地和可能无序地接收和处理多个存储命令。SATA协议例如支持Native Command Queuing(NCQ)模式,其中主机可以将高达三十二个待完成命令发布给存储装置。这种特征使适当存储装置能够按高效率和短等待时间执行命令。
AHCI协议相对于SATA定义,并且为了在存储装置与主存储器之间的直接数据交换而提供标准化接口和数据结构。然而,AHCI规定在任何给定时间仅对于单个命令的数据传输和进展报告。
这里描述的本发明的实施例提供用于数据存储的改进方法和系统,这些方法和系统使存储装置能够同时和无序地处理多个命令,并且同时符合AHCI。尽管这里描述的实施例主要参考AHCI,但公开的技术也可供其它存储协议使用,这些存储协议一次仅支持单个命令的处理。
在某些实施例中,存储装置包括存储器和控制器。控制器从主机接收命令,并且在存储器中执行。按照AHCI协议,在任何给定时间选择单个命令,并且仅对于这个单个命令容许数据传输和进展报告。尽管如此,在公开实施例中,对于单个命令或几个命令的交织数据,控制器同时执行多个命令并且可能无序地传输数据,例如根据存储装置的某些内部安排偏好。
如果正被执行的命令与根据AHCI协议当前支持其处理的单个命令不同,则控制器将与执行命令相关的数据与主存储器直接交换,但使用适当AHCI寄存器,制止将命令进展报告给主机。相反,控制器高速缓存命令的进展,并且仅在随后当根据AHCI协议将所述命令选作单个命令时,将进展报告给主机。另外,如果来自具体命令的数据按无序的方式传输,则通常仅对于数据传输的有序部分会有进展报告。
换句话说,控制器同时地和按交织方式可能无序地执行多个接收命令,而不管按照AHCI协议将哪个命令当前被选择成用于处理。控制器通常将每个执行命令的数据直接与主存储器交换,一旦该数据被得到或被要求,因此消除缓冲数据的需要。多个不同命令可以按交织方式与主存储器交换,如希望的那样。
然而,为了保持符合AHCI协议,控制器推迟执行命令的进展报告,直到该命令被选择成用作由AHCI协议容许其处理的单个命令。因而,在某些情况下主机把来自某一命令的数据由存储装置控制器与主机的存储器交换,但对于这个命令的进展报告将在以后到达。按这种方式将数据传输与进展报告脱开而不违反AHCI协议。
所公开技术使存储装置能够享受同时和无序命令执行的性能好处,并且同时符合AHCI规范。不要求数据缓冲,因为数据在它一旦产生就传输到主存储器,并且在主机中不需要AHCI驱动程序的修改。
系统描述
图1是方块图,示意地表明按照本发明实施例的数据存储系统20。系统20包括主机24,该主机24将数据存储在存储装置中,该存储装置在本例子中是Solid State Drive(SSD)28。主机24和SSD28彼此在Peripheral Component Interconnect(PCI)或PCI-express(PCIe)总线30上通信。
主机24可以包括例如个人计算机或移动计算机或通信装置、或企业系统。在可选择实施例中,所公开技术可供任何其它适当类型的存储装置和供各种其它主机使用。
主机24配置成按照以上提到的AHCI协议将数据存储在SSD28中。SSD28配置成使用下面详细描述的技术,并行和可能无序地执行多个存储命令,并且同时符合AHCI规范。
主机24包括中央处理单元(CPU)32,该中央处理单元32使用AHCI驱动程序36和PCI根联合体(complex)40与SSD28通信。AHCI驱动程序36分配用于执行的命令,准备用于数据传输的链接列表,以及将每个命令的完成报告给较高软件层。驱动程序设置规定Memory-Mapped I/O(MMIO)寄存器、在主CPU存储器结构中的数据结构以为了执行未决命令。
主机24包括主存储器44,通常随机存取存储器(RAM)。主存储器44可以在主机中实现各种功能。按照AHCI规范,SSD28通常直接与主存储器交换数据,例如,存储在读命令中取得的数据,或者读取在写命令中要写的数据。
SSD28包括非易失存储器,该非易失存储器用来存储由主机24提供的数据。在本例子中,非易失存储器包括多个NAND Flash存储器装置48。在可选择实施例中,非易失存储器可以包括任何其它适当类型的存储器。SSD控制器52执行SSD的各种功能,包括例如在Flash装置48中的数据存储和检索、以及使用所公开技术与主机24对接。术语“SSD控制器”和“存储器控制器”在这里可互换地使用。
在图1的例子中,SSD控制器52包括PCI控制器,该PCI控制器用作在SSD与主机之间的PCI接口。前端CPU60运行软件,该软件管理SSD控制器的AHCI协议操作(除了其它功能以外)。DirectMemory Access(DMA)模块64在总线30上直接地(即,不涉及CPU32)与主存储器44交换数据。内部存储器68,通常Dynamic RAM(DRAM),用于在SSD控制器中的内部存储。通常,这里描述的对接和通信过程由前端CPU60使用SSD控制器52的其它元件而执行。
SSD控制器52可以在硬件中实施,该SSD控制器52包括PCI控制器56、前端CPU60及/或DMA模块64。可选择地,SSD控制器的某些功能,例如CPU60的功能,可以使用微处理器、或通过硬件和软件元素的组合而实施,该微处理器运行适当软件。在某些实施例中,CPU60包括通用处理器,该通用处理器按软件编程,以实现这里描述的功能。软件可以按电子形式在例如网络上下载到处理器,或者它可选择地或另外地提供和/或存储在有形介质上,如在磁性、光学或电子存储器上。
图1的系统配置是示范配置,纯粹为了概念清楚起见而表示。也可使用任何其它适当系统配置。例如,在某些实施例中,两个或更多个SSD可以连接到同一主机。对于理解本发明的原理不必要的元素,如各种接口、寻址电路、计时和排序电路及调试电路,为了清楚已经从图中省去。
在图1表示的示范SSD配置中,存储器装置48和SSD控制器52实施成分离的集成电路(IC)。然而,在可选择实施例中,存储器装置和SSD控制器可以按单个Multi-Chip Package(MCP)或Systemon Chip(SoC)在分离半导体模片上集成,并且可以由内部总线互连。进一步可选择地,SSD控制器电路的某些或全部可以驻留在同一模片上,在该模片上布置存储器装置48的一个或多个。进一步可选择地,SSD控制器52的某些或全部功能可在软件中实施,并且由主机24、或由任何其它类型的存储器控制器完成。在某些实施例中,主机24和SSD控制器52可以构造在同一模片,或者构造在同一装置封装中的分离的模片上。
符合AHCI的同时命令执行
尽管SATA协议同时支持多个存储命令的执行,但AHCI规范的协议和数据结构只支持一次对于单个命令的执行和进展报告。按照AHCI,主机可以将多个未完成命令发布给存储装置。然而,存储装置可无序地选择用于执行的命令,但不应该交织几个命令的数据,或无序地返回具体命令的数据。
通常,主机24中的AHCI驱动程序36在给定时间从多个未完成命令中选出单个命令。仅对于该单个命令支持数据传输和进展报告。当完成单个当前选中命令的执行时,AHCI驱动程序挑选另一个命令用于执行。这种依次按序操作可以显著地降低SSD存储性能,例如增加等待时间和减小吞吐量。
在某些实施例中,SSD控制器52符合AHCI协议的以上限制,并且使用AHCI的标准协议和数据结构。然而,SSD控制器同时执行多个命令,并且可能无序地传送具体命令的数据。这种特征通过将数据传输与进展的报告脱开而实现。
从主机中AHCI驱动程序36的角度看,期望SSD只执行当前选中命令,以使用DMA模块64将与命令相关的数据与主存储器44交换,并且用命令的进展来更新主机,直到完成命令执行。AHCI驱动程序为这种流程提供适当命令和数据结构,包括用来报告命令执行进展的寄存器。
在某些实施例中,SSD控制器52从主机24接收多个存储命令(例如,读和写命令)。SSD控制器按照SSD28的某些计划偏好,而不必按从主机接收命令的顺序,在存储器装置48中执行命令。此外,SSD控制器执行给定命令,而不顾这个命令当前是否由AHCI驱动程序选择成用于执行。
当执行某一命令时,SSD控制器将与命令相关的数据与主存储器44交换。例如,当执行写命令时,SSD控制器从主存储器读取用于存储的数据,并且将数据存储在Flash装置48中。在读命令中,SSD控制器将从Flash装置48取得的数据存储在主存储器44中。
SSD控制器完成上述数据交换,而不顾执行命令是否是由AHCI驱动程序36当前挑选成用于执行的单个命令。因而,SSD控制器具有根据某种适当偏好、策略或标准来高效地、无序地执行命令的自由度。由于在命令执行期间,数据在它一旦可得到时就与主存储器交换,所以在SSD控制器中不需要缓冲。
考虑其中SSD控制器执行命令的情景,该命令当前没有由AHCI驱动程序选择成用于执行。这样一种情况下,AHCI驱动程序不为SSD提供报告这个命令的执行进展的装置。(这时,AHCI驱动程序实际期望对于不同命令,即当前由AHCI驱动程序选择的单个命令,的进展报告)。因而,在某些实施例中,SSD控制器推迟对于当前执行命令的进展报告,直到这个命令将被AHCI驱动程序选中时。
在某些实施例中,AHCI驱动程序36提供一个或多个寄存器,使用这些寄存器,期望SSD报告单个命令的执行进展,该单个命令当前由AHCI驱动程序选中。当执行当前没有由AHCI驱动程序选中的命令时,SSD控制器52通常将用于正被执行的命令的进展报告高速缓存,例如在存储器68中的内部寄存器中。以后,当这个命令由AHCI驱动程序选择成用于执行时,SSD控制器用该命令的高速缓存进展报告更新AHCI驱动程序寄存器。
当使用所公开的技术时,SSD控制器常常对于当前正被执行的、但没有由AHCI驱动程序选择成用于执行的命令,与主存储器交换数据。由于推迟用于这个命令的进展报告,所以AHCI驱动程序通常不知道数据已经交换或命令执行完成。AHCI驱动程序后来才知道命令被完成和已经交换数据,当它选择命令并且接收到适当进展报告时。
况且,使用这种技术,即如希望的那样,SSD控制器可以按交织方式,在传输用于不同命令的数据的部分之间交替地与主存储器交换两个或更多命令的数据。在给定命令的执行完成、并且全部相关数据已经与主存储器交换之后,SSD控制器将把这种进展报告给主机。这种操作不违反AHCI规范,因为将每个命令通常被预分配给在主存储器44中的专用空间。另一方面,这种操作实现相当的并行性,并因而实现性能改进。
图2是流程图,示意地表明按照本发明实施例的符合AHCI的多个命令同时执行的方法。方法从如下开始:在输入步骤70,SSD28的SSD控制器52从主机24接收多个存储命令。
SSD控制器52在执行步骤74,执行在Flash装置48中的多个命令。SSD控制器通常按照某种内部计划偏好,可能同时地和可能无序地执行命令。进行命令执行,而不顾哪个命令由主机中的AHCI驱动程序36当前选择成用于执行。在执行期间,SSD控制器跟踪各种命令的进展,例如哪些命令仍然在进展中和哪些被完成。
在多个命令的执行期间,SSD控制器52在报告检查步骤78检查任一个命令是否具有应该报告给主机的进展更新。如果没有,方法循环回到以上步骤74。如果给定命令具有应该报告的进展更新,则SSD控制器在选择检查步骤82按照AHCI规范检查这个命令是否是当前由AHCI驱动程序36选择成用于执行的单个命令。
如果所讨论的命令是来自AHCI驱动程序的角度的当前选中命令,SSD控制器在进展报告步骤86通过更新适当AHCI寄存器来报告这个命令的进展。否则,SSD控制器在推迟步骤90推迟进展报告。SSD控制器通常在检测到所讨论的命令由AHCI驱动程序选择成用于执行时,高速缓存进展报告,并且在以后时间更新AHCI寄存器。方法然后循环回到以上步骤74。
在多个命令的执行期间,SSD控制器52在数据检查步骤94检查任一个命令是否具有与主存储器44交换的数据。如果没有,方法循环回到以上步骤74。如果给定命令具有要交换的数据,则SSD控制器在数据传输步骤98处将数据传输到主存储器,或者从主存储器传输数据(如果可行)。数据一旦可得到或者一旦被要求,SSD控制器就传输数据,而不顾给定命令当前是否由AHCI驱动程序选择成用于执行。方法然后循环回到以上步骤74。
将认识到,以上描述的实施例通过例子列举,并且本发明不限于上文已经具体表示和描述的内容。而是,本发明的范围包括上文描述的各种特征的组合和子组合、以及其变更和修改,对于本领域的技术人员,在阅读以上描述时可能想到这些变更和修改,并且这些变更和修改没有公开在现有技术中。在本专利申请中通过参考包括的文件要认为是本申请的整体部分到这样的程度,任何术语在这些包括文件中按这样一种方式定义,从而当与在本说明书中清晰或暗示地进行的定义矛盾时,只应该考虑在本说明书中的定义。

Claims (21)

1.一种方法,包括:
按照存储协议从主机接收在存储器中用于执行的多个命令,该存储协议在任何给定时间仅支持单个命令的处理;
在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令;及
在检测到第一命令被选择成用作当前支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机。
2.根据权利要求1所述的方法,其中,存储协议包括高级主机控制器接口(AHCI)协议。
3.根据权利要求1所述的方法,其中,执行第一命令包括制止在第一时间报告第一命令的进展。
4.根据权利要求1所述的方法,其中,执行第一命令包括在第一时间高速缓存第一命令的进展,其中报告所述进展包括在第二时间将所述高速缓存的进展报告给主机。
5.根据权利要求4所述的方法,其中,主机提供一个或多个寄存器用来报告支持其处理的单个命令的进展,其中报告所述进展包括用高速缓存的进展更新所述寄存器。
6.根据权利要求1所述的方法,其中,交换数据包括交换与第一命令相关的数据的两个或更多部分,该数据同与至少一个其它命令相关的另外数据交织。
7.根据权利要求1所述的方法,其中,交换数据包括将与第一命令相关的数据与主机交换,即使按照存储协议第一命令不是当前支持对其处理的单个命令。
8.根据权利要求1所述的方法,其中,执行第一命令包括,即使按照存储协议第一命令不是当前支持对其处理的单个命令也执行第一命令。
9.根据权利要求1所述的方法,其中,接收命令包括按第一顺序从主机接受命令,以及包括按与第一顺序不同的第二顺序来执行命令。
10.根据权利要求1所述的方法,其中,交换数据包括将数据传送到在主机中的主存储器或从其传送数据,而不涉及主机的处理器。
11.一种设备,包括:
存储器;和
存储器控制器,配置成按照在任何给定时间仅支持单个命令的处理的存储协议,从主机接收在存储器中用于执行的多个命令,以便在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令;以及在检测到第一命令被选择成用作支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机。
12.根据权利要求11所述的设备,其中,存储协议包括高级主机控制器接口(AHCI)协议。
13.根据权利要求11所述的设备,其中,存储器控制器被配置成制止在第一时间报告第一命令的进展。
14.根据权利要求11所述的设备,其中,存储器控制器被配置成,在第一时间高速缓存第一命令的进展,并且在第二时间将高速缓存的进展报告给主机。
15.根据权利要求14所述的设备,其中,主机提供一个或多个寄存器用来报告支持其处理的单个命令的进展,其中存储器控制器被配置成通过用高速缓存的进展来更新所述寄存器而报告进展。
16.根据权利要求11所述的设备,其中,存储器控制器被配置成交换与第一命令相关的数据的两个或更多部分,该数据同与至少一个其它命令相关的另外数据交织。
17.根据权利要求11所述的设备,其中,存储器控制器被配置成将与第一命令相关的数据与主机交换,即使按照存储协议第一命令不是当前支持对其处理的单个命令。
18.根据权利要求11所述的设备,其中,存储器控制器被配置成,即使按照存储协议第一命令不是当前支持对其处理的单个命令也执行第一命令。
19.根据权利要求11所述的设备,其中,存储器控制器被配置成,按第一顺序从主机接受命令,并且按与第一顺序不同的第二顺序执行命令。
20.一种系统,包括:
主机;和
存储装置,配置成按照在任何给定时间仅支持单个命令的处理的存储协议,从主机接收在存储装置的存储器中用于执行的多个命令,以便在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令;以及在检测到将第一命令选择成用作支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机。
21.一种设备,包括:
存储器;和
存储器控制器,包括:
用于按照在任何给定时间仅支持单个命令的处理的存储协议,从主机接收在存储器中用于执行的多个命令,以便在第一时间执行在存储器中的第一命令并且将与第一命令相关的数据与主机交换,即使按照存储协议与第一命令不同的第二命令被选择成用作当前支持对其处理的单个命令的装置;以及
用于在检测到第一命令被选择成用作支持对其处理的单个命令时,在比第一时间晚的第二时间将第一命令的进展报告给主机的装置。
CN201210578775.8A 2011-12-27 2012-12-27 高性能ahci接口 Active CN103186351B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161580324P 2011-12-27 2011-12-27
US61/580,324 2011-12-27
US13/560,152 2012-07-27
US13/560,152 US8713204B2 (en) 2011-12-27 2012-07-27 High-performance AHCI interface

Publications (2)

Publication Number Publication Date
CN103186351A true CN103186351A (zh) 2013-07-03
CN103186351B CN103186351B (zh) 2016-05-25

Family

ID=47522271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210578775.8A Active CN103186351B (zh) 2011-12-27 2012-12-27 高性能ahci接口

Country Status (9)

Country Link
US (1) US8713204B2 (zh)
EP (1) EP2610731A3 (zh)
JP (1) JP5896328B2 (zh)
KR (1) KR101428317B1 (zh)
CN (1) CN103186351B (zh)
BR (1) BR102012033264A2 (zh)
DE (1) DE202012013729U1 (zh)
TW (1) TWI474254B (zh)
WO (1) WO2013101357A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101988287B1 (ko) * 2012-11-26 2019-06-12 삼성전자주식회사 저장 장치 및 그것을 포함하는 컴퓨팅 시스템, 및 그것의 데이터 전송 방법
TWI507883B (zh) * 2013-09-18 2015-11-11 Realtek Semiconductor Corp 記憶卡存取裝置、其控制方法與記憶卡存取系統
CN109471812B (zh) * 2015-01-19 2023-09-05 铠侠股份有限公司 存储装置及非易失性存储器的控制方法
KR102564165B1 (ko) 2016-04-25 2023-08-04 삼성전자주식회사 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131360A1 (en) * 2009-11-30 2011-06-02 Noeldner David R Context Execution in a Media Controller Architecture
TW201126347A (en) * 2010-01-29 2011-08-01 Innostor Technology Corp Switching interface method for a multi-interface storage device
US20110314264A1 (en) * 2010-06-21 2011-12-22 Arm Limited Key allocation when tracing data processing systems

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04190435A (ja) 1990-11-26 1992-07-08 Hitachi Ltd マルチプロセッサシステムのメモリアクセス順序保証方式
JPH05189154A (ja) 1992-01-14 1993-07-30 Nec Corp シーケンシャル動作ディスクファイル装置
JPH11167557A (ja) 1997-12-02 1999-06-22 Hitachi Ltd 共有メモリアクセス順序保証方法及びマルチプロセッサシステム
US6141707A (en) * 1998-05-28 2000-10-31 Emc Corporation Input/output request allocation by establishing master command queue among plurality of command queues to receive and store commands, determine logical volume, and forwarding command to determined logical volume
JP2005215729A (ja) * 2004-01-27 2005-08-11 Hitachi Global Storage Technologies Netherlands Bv データ伝送制御方法及び記憶装置
US20070174504A1 (en) * 2006-01-05 2007-07-26 Pao-Ching Tseng Method and Apparatus for Advanced Technology Attachment Packet Interface Native Command Queuing
US7464228B2 (en) 2006-05-31 2008-12-09 Dell Products L.P. System and method to conserve conventional memory required to implement serial ATA advanced host controller interface
US7844777B2 (en) * 2007-06-26 2010-11-30 Intel Corporation Cache for a host controller to store command header information
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US8131921B2 (en) 2008-09-17 2012-03-06 Intel Corporation Command suspension in response, at least in part, to detected acceleration and/or orientation change
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
JP5216719B2 (ja) 2009-08-27 2013-06-19 京セラドキュメントソリューションズ株式会社 情報処理装置および制御装置
US8281043B2 (en) * 2010-07-14 2012-10-02 Intel Corporation Out-of-band access to storage devices through port-sharing hardware
US8595522B2 (en) * 2010-09-30 2013-11-26 Intel Corporation Monitoring transaction requests using a policy engine within a storage drive driver to change power capability and latency settings for a storage drive

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131360A1 (en) * 2009-11-30 2011-06-02 Noeldner David R Context Execution in a Media Controller Architecture
TW201126347A (en) * 2010-01-29 2011-08-01 Innostor Technology Corp Switching interface method for a multi-interface storage device
US20110314264A1 (en) * 2010-06-21 2011-12-22 Arm Limited Key allocation when tracing data processing systems

Also Published As

Publication number Publication date
US20130166781A1 (en) 2013-06-27
EP2610731A3 (en) 2016-10-12
JP5896328B2 (ja) 2016-03-30
BR102012033264A2 (pt) 2013-10-08
DE202012013729U1 (de) 2020-07-07
WO2013101357A1 (en) 2013-07-04
TW201342193A (zh) 2013-10-16
KR20130075694A (ko) 2013-07-05
EP2610731A2 (en) 2013-07-03
CN103186351B (zh) 2016-05-25
JP2013137772A (ja) 2013-07-11
US8713204B2 (en) 2014-04-29
TWI474254B (zh) 2015-02-21
KR101428317B1 (ko) 2014-08-07

Similar Documents

Publication Publication Date Title
JP5729774B2 (ja) いくつかのコマンドを処理するためのメモリコントローラ、メモリシステム、ソリッドステートドライブ、および方法
US9678666B2 (en) Techniques to configure a solid state drive to operate in a storage mode or a memory mode
CN102156682B (zh) 非易失存储器的高速接口
US7934070B2 (en) Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices
US8606988B2 (en) Flash memory control circuit for interleavingly transmitting data into flash memories, flash memory storage system thereof, and data transfer method thereof
US7451273B2 (en) System, method and storage medium for providing data caching and data compression in a memory subsystem
US8495332B2 (en) Controller for optimizing throughput of read operations
CN108885584A (zh) 使用主机存储器缓冲区的无序读取传输
CN102541678B (zh) 多通道与非型快闪并行存储控制器
CN105359120B (zh) 使用双phy来支持多个pcie链路宽度的存储器和控制器
US20060179262A1 (en) Streaming reads for early processing in a cascaded memory subsystem with buffered memory devices
US20190073139A1 (en) Storage device and controllers included in storage device
CN101593084A (zh) 存储器系统和操作存储器系统的方法
CN104346421A (zh) 改变数据传送速度的存储系统和改变数据传送速度的方法
CN105940381A (zh) 存储器访问期间的数据重排序
US20070041050A1 (en) Memory management method and system
CN103186351A (zh) 高性能ahci接口
US10782919B2 (en) Command processing method and storage controller using the same
CN105408875A (zh) 在存储器接口上的分布式过程执行和文件系统
CN109101444A (zh) 一种降低固态硬盘随机读延迟的方法及装置
US11455186B2 (en) Controller and memory system having the same
CN101692213A (zh) 通用串行总线主机控制方法和通用串行总线主机控制器
CN101625625B (zh) 信号中继装置及利用该装置访问外部存储器的方法
CN102782661B (zh) 数据存储的系统和方法
US8462561B2 (en) System and method for interfacing burst mode devices and page mode devices

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant