缩短数据存储系统中写入等待时间的方法和系统的制作方法

文档序号:6537344阅读:159来源:国知局
缩短数据存储系统中写入等待时间的方法和系统的制作方法
【专利摘要】本发明涉及缩短数据存储系统中写入等待时间的方法和系统。提供的数据存储系统实施缩短等待时间的命令压入模型。主机系统具有对存储器控制器的非易失性存储器(NVM)器件的访问权限,以允许主机系统将命令压入位于NVM器件中的命令队列中。主机系统在不需要来自存储器控制器的干预下完成每次IO,从而避免了对主机系统与存储控制器之间同步或握手的需要。对于写入命令,在写入命令完成后存储器控制器不需要向主机系统发出完成中断,因为主机系统认为在写入命令被压入存储器控制器的队列中时写入命令已完成。所有这些特征的结合引起整体等待时间大幅缩短。
【专利说明】缩短数据存储系统中写入等待时间的方法和系统
【技术领域】
[0001]一般来说,本发明涉及数据存储系统,更确切地说,涉及为了缩短写入等待时间在数据存储系统中使用命令压入模型的方法和系统。
【背景技术】
[0002]存储阵列或磁盘阵列是包括多个硬盘驱动器(HDD)或类似的永久存储单元的数据存储器件。存储阵列能够允许以高效方式存储大量数据。服务器或工作站可以被直接连接到存储阵列,使得存储阵列对服务器或工作站为本机器件。在服务器或工作站被直接连接至IJ存储阵列的情况下,存储阵列典型情况下被称为直接连接存储(DAS)系统。作为替代,月艮务器或工作站可以经由存储阵列网络(SAN)远程地连接到存储阵列。在SAN系统中,尽管存储阵列对服务器或工作站不是本机器件,但是该阵列的磁盘驱动器对服务器或工作站的操作系统(OS)显现为本机连接的。
[0003]图1展示了典型的数据存储系统2的框图,执行命令弹出模型。系统2包括主机系统3、存储器控制器4以及外设部件互连(PCI)或PCI Express (PCIe)总线5。控制器4包括中央处理单元(CPU) 6、存储器器件7和I/O接口器件8。I/O接口器件8被配置为遵照已知的数据传递协议标准执行数据传递,比如串行连接SCSI (SAS)标准、串行高级技术连接(SATA)标准或者非易失性存储器主机控制器高速接口(NVMe)标准。I/O接口器件8控制着往返多个物理盘(PD)9的数据传递。存储器控制器4经由PCI总线5与系统CPUll和系统存储器器件12通信。系统存储器器件12存储着由系统CPUll执行的软件程序和数据。系统存储器器件12的一部分被用作命令队列13。
[0004]在典型的写入动作期间,系统CPUll运行存储器驱动软件栈14,它存储着命令队列13中的命令和数据。当存储器驱动器14存储着命令队列13中的命令时,它通知存储器控制器4命令已准备好要执行。当控制器CPU6准备好执行命令时,它使所述命令或多条命令以及相关联的数据从系统队列13经由总线5弹出,并向主机系统3发出完成中断。当这些命令由存储器控制器执行时,控制器CPU6使与这些命令相关联的数据被暂时存储在控制器存储器器件7中,随后经由I/O接口器件8写入一个或多个TO9。
[0005]在历史上,按照输入/输出(I O)每秒(IOPS ),在某些情况下,兆字节每秒(MB/s)已经测量了图1所示类型的基于HDD系统的性能。典型情况下,这样的存储器系统的等待时间按下式给出:Latency_0verall=Latency_SW_Stack+Latency_Controller+Latency_HDD=l/10PS,其中Latency_Overall是系统的整体等待时间,Latency_SW_Stack是与存储器驱动器14相关联的等待时间,Latency_ControIler是与存储器控制器4相关联的等待时间,而Latency_HDD是与PD9相关联的等待时间。典型情况下,Latency_Sff_Stack在若干微秒(10_6秒)量级。同样,典型情况下,Latency_Controller在几十微秒量级。不过,典型情况下,Latency_HDD在毫秒(10_3秒)或几十毫秒的量级。近似99%的整体等待时间归因于HDD中极其缓慢的机械部件。所以,对于实用目的,确定系统性能时可以忽略Latency_SW_Stack和Latency_Controller。换言之,系统性能可以被估计为等于Latency_HDD。[0006]最近,已经有了从使用磁性HDD作为PD9到使用固态驱动器(SSD)或SSD和HDD的结合作为ro9的过渡。在行业中,使用基于SSD的解决方案被视为基于HDD的解决方案的演变。不过,基于SSD的解决方案比基于HDD的解决方案快近似一百倍并且消耗的功率要少得多。基于SSD解决方案的这种观点已经导致本行业在基于SSD解决方案中继续使用先前存在的上述弹出式方法,从命令队列将命令弹出到存储器控制器中。同样,因为基于SSD的解决方案在行业中已经被视为仅仅是基于HDD的解决方案的演变,所以在实施基于SSD解决方案的存储系统中,IOPS已经被用作测量系统性能的性能度量。
[0007]不过,基于SSD的解决方案与基于HDD的解决方案之间的差异比看起来大得多,并且传统的度量不应当用于对实施基于SSD的解决方案的系统测量性能。在实施基于SSD解决方案的系统中,存储系统的整体等待时间按下式给出:Latency_Overall=Latency_SW_Stack+Latency_Controller+Latency_SSD=l/IOPS,其中 Latency_SW_Stack 是与存储器驱动器14相关联的等待时间,Latency_Controller是与存储器控制器4相关联的等待时间,而Latency_SSD是与被用作PD9的SSD相关联的等待时间。不同于HDD的等待时间,SSD的等待时间在几十至几百微秒量级,比如,一般在100至300微秒的范围内,并且与存储器驱动器14和存储器控制器4相关联的等待时间对整体等待时间增加了比HDD情况下大得多的比例。所以,在实施基于SSD解决方案的存储系统的整体等待时间计算中,Latency_SW_Stack和Latency_Controller不应当再被忽略。
[0008]命令弹出的方式需要存储器驱动器14与存储器控制器4之间相当多的交互作用。在基于HDD的系统中这是便利的方式,它允许主机系统3的快速的操作系统(OS)侧几乎完全独立于更慢的基于HDD的控制器侧,从而OS侧可以在队列13中堆积尽可能多的命令,以提供更大的队列深度(QD),这在基于HDD的解决方案中是非常可取和普通的。然后存储器控制器4可以按其自身的步调使命令从队列13中弹出。虽然在基于HDD的解决方案中这种方法非常便利,但是它增加了大量的额外等待时间,因为存储器控制器4与主机系统3之间需要同步,以及因为命令被存储器控制器4拾取的时间可能比它们被发出的时间迟得多的事实。此外,如果存储器控制器4有许多工作要做,如同常有的情况,所有的命令处理都必然与存储器控制器4的其余工作量竞争,这对整体等待时间增加了更多的等待时间。
[0009]上述命令弹出模型非常适于基于HDD的解决方案,其中对典型情况下可能花费大约10,000微秒来完成的命令增加50至500微秒是可以忽略的,假设该方法提供了其他优点。不过,命令弹出模型在实施基于SSD解决方案的存储系统中使用时没有产生可接受的结果,其中访问时间可以短至100微秒,或者当在存储器控制器4中使用动态随机存取存储器(DRAM)回写(WB)缓冲区的情况下,短至I到5微秒。
[0010]然而,正如上面指出,实施基于SSD的解决方案的存储系统的整体等待时间仍然被估计为等于 Latency_SSD,而让 Latency_SW_Stack 和 Latency_Controller 在估计之外。由于这个原因,对实施基于SSD解决方案的存储系统缩短整体等待时间的尝试主要地一直集中在缩短 Latency_SSD,而不是缩短 Latency_SW_Stack 或 Latency_Controller。
[0011 ] 对实施基于SSD解决方案并通过显著缩短Latency_SW_Stack和Latency_Controller之一或二者也显著缩短了整体等待时间的存储系统存在着需求。

【发明内容】
[0012]本发明提供了数据存储系统、存储器控制器、方法和计算机可读介质,它们全部实施了缩短等待时间的命令压入模型。数据存储系统包括主机系统、存储器控制器、至少一个SSD以及使主机系统与存储器控制器互连的总线。主机系统包括系统处理器和系统存储器器件。存储器控制器包括控制器处理器、非易失性存储器(NVM)器件和输入/输出(I/O)接口器件。NVM器件的一部分被用作命令队列。SSD被连接到I/O接口器件并被配置为H)的阵列。主机系统经由总线访问NVM器件并经由总线将命令压入NVM器件的命令队列中。
[0013]所述方法包括:
[0014]在包括控制器处理器、NVM器件以及连接到被配置为H)阵列的至少一个SSD的I/O接口器件的存储器控制器中,将NVM器件的一部分配置为命令队列;以及
[0015]利用经由总线与存储器控制器互连的主机系统,将命令经由总线压入存储器控制器中;以及
[0016]在存储器控制器中,将命令存储在NVM器件的命令队列中。
[0017]计算机可读介质具有存储于其上的用于由主机系统的处理器执行的计算机程序,用于将命令经由总线压入连接到主机系统的存储器控制器的NVM器件的命令队列中。计算机程序包括第一和第二代码部分。第一代码部分接收命令以读取或写入被配置为ro阵列的SSD的一个或多个地址。第二代码部分将命令压入存储器控制器中。根据一个展示性实施例,第二代码部分将命令压入存储器控制器的NVM器件的命令队列中。根据另一个展示性实施例,第二代码部分将命令压入存储器控制器的直接存储器访问(DMA)引擎中,命令被存储在存储器控制器的NVM器件的命令队列中。
[0018]按照以下说明、附图和权利要求书,本发明的这些和其他特征和优点将变得显而易见。
【专利附图】

【附图说明】
[0019]图1展示了实施命令弹出模型的已知数据存储系统的框图;
[0020]图2展示了根据实施命令压入模型的展示性实施例的数据存储系统的框图;
[0021]图3展示了根据实施命令压入模型的另一个展示性实施例的数据存储系统的框图;
[0022]图4展示的流程图表示由图2所示的数据存储系统执行的命令压入方法;
[0023]图5展示的流程图表示由图3所示的数据存储系统执行的命令压入方法。
【具体实施方式】
[0024]根据本发明,提供的数据存储系统实施命令压入模型,它缩短了与存储器驱动器和存储器控制器相关联的等待时间。命令压入模型消除了因为写入命令IO在主机系统与存储器控制器之间的同步需求,从而消除了与同步相关联的等待时间。当命令IO在主机系统发出时,主机系统访问存储器控制器的存储器器件并将命令IO和相关联的数据压入存储器器件的命令队列中。所以,主机系统在没有来自存储器控制器的任何干预下完成每个写入命令10,从而避免了主机系统与存储器控制器之间的同步或握手的需要。
[0025]存储器控制器的存储器件受保护以对抗电源故障和典型的存储器错误,并且这样就可以被认为是永久存储元件。所以,主机系统可以认为在它将写入命令和相关联的数据压入存储器控制器的存储器器件的命令队列中之时写入命令IO便安全地完成。换言之,从主机系统的观点,当它将写入命令压入存储器控制器的存储器器件的命令队列中时,仿佛它已经完成了对TO9的写入。所以,主机系统在没有来自存储器控制器的任何干预下完成每个写入命令10,从而避免了主机系统与存储器控制器之间同步或握手的需要。
[0026]不仅如此,与以上参考图1介绍的命令弹出模型对照,一旦本发明的存储器控制器已经完成了写入命令的处理,存储器控制器不需要向主机系统发出完成中断,因为主机系统认为在它将写入命令压入存储器控制器的命令队列中时写入命令完成。这种特征允许主机系统和存储器控制器关于写入命令彼此独立地操作。所有这些特征的结合引起Latency_Sff_Stack和Latency_Controller都大幅缩短,这引起整体等待时间大幅缩短。
[0027]因此,不是使用以上参考图1介绍的命令弹出模型,其中命令被准备在系统存储器12的命令队列13中并随后由存储器控制器4弹出并处理,而是主机系统将命令和任何相关联的数据压入到位于存储器控制器的存储器器件中的命令队列中。主机系统将命令和任何相关联的数据压入到存储器控制器的存储器器件的命令队列中的方式能够以许多方式完成。根据第一个展示性实施例,主机系统的存储器驱动器按计划地将命令和相关联的数据压入存储器控制器的存储器器件的命令队列中。根据本文介绍的第二个展示性实施例,存储器控制器的直接存储器访问(DMA)引擎将命令和任何相关联的数据压入存储器控制器的存储器器件的命令队列中。这两个实施例都避免了主机系统与存储控制器之间的同步或握手的需要。
[0028]图2展示了根据实施命令压入模型的第一个展示性实施例的数据存储系统20的框图。系统20包括主机系统30、存储器控制器70、外设部件互连(PCI)或PCI Express(PCIe)总线65以及包括PD120a的至少一个SSD120。主机系统30包括系统CPU40和系统存储器器件60。存储器控制器70包括CPU80、非易失性存储器(NVM)器件90和I/O接口器件110。典型情况下,NVM器件90是DRAM器件。NVM器件90的一部分被用作命令队列91。I/O接口器件110被配置为遵照已知的数据传输协议标准执行数据传输,比如SAS、SATA和/或NVMe标准。I/O接口器件110控制着往返SSD120的多个H)120a的数据传输。存储器控制器70经由PCI总线65和存储器驱动器50与系统CPU40通信。系统存储器器件60存储着由系统CPU40执行的软件程序和数据。
[0029]根据这个展示性实施例,存储器驱动器50经由总线65与NVM器件90直接通信。在典型的写入动作期间,系统CPU40运行的软件栈包括存储器驱动器50,它将命令和数据压入NVM器件90的命令队列91中,并且通知控制器CPU80所述命令和数据在队列91中。执行压入动作不需要主机系统30与存储器控制器之间的同步或握手。一旦存储器驱动器50已经将写入命令和相关联数据压入命令队列91中,主机系统30的OS便认为写入命令完成。所以,存储器控制器70不需要向主机系统30发出完成中断以通知主机CPU40所述写入命令已经完成。
[0030]当控制器CPU80准备好执行命令时,它从NVM器件90中检索命令和数据并执行该命令。在写入命令的情况下,控制器CPU80使相关联的数据经由I/O接口器件110写入到SSD PD120a。在读取命令的情况下,控制器CPU80检查NVM90的高速缓存(为清楚起见未显示)以判断要读取的数据是否在高速缓存中,如果在,便从高速缓存中读取数据并将其传送到主机系统30。如果要读取的数据不在高速缓存中,CPU80使数据从SSD PD120a中读取并传送到主机系统30。
[0031]图2的命令压入模型与图1的命令弹出模型之间的关键差异之一在于,在控制器CPU80意识到命令之前,命令所有权就从主机系统30传送到NVM器件90的队列91。在图1的命令弹出模型中,在主机系统3从存储器控制器4收到完成中断前,与写入命令相关联的命令所有权并不传送。此外,在图1的命令弹出模型中,同步或握手发生在控制器CPU6与主机系统3之间,以便将命令从系统存储器器件12的队列13弹出到存储器控制器4中。典型情况下,与图1所示的命令弹出模型相比,消除这些等待时间将引起写入等待时间缩短一到两个量级。
[0032]因为一旦命令已经被压入NVM90的队列91中,存储器控制器70便获得了命令的所有权,所以重要的是保护NVM90以抵抗电源故障。这样的保护措施能够以许多方式实现,但是一种方式是为NVM90使用备用电池(BBU)、超级电容器(Supercap)动态随机存取存储器(DRAM)器件。本领域的技术人员将理解可以选择BBU、Supercap DRAM器件或其他适宜存储器器件用于这种目的的方式。
[0033]为了使存储器驱动器50高效地将命令压入队列91中,NMV器件90应当由存储器驱动器50经由总线65直接可访问。这种可访问性可以以许多方式实现。一种实现它的方式是在NVM器件90中使用的命令和数据结构与主机系统30中所用的相同。这在PCIe中通过便利的基址寄存器(BAR)编程是可能的,如本领域的技术人员将理解。从主机系统30到NVM器件90的数据传输能够由存储器驱动器50按计划地实现。
[0034]也应当为存储器驱动器50提供确定NVM器件90中的哪些入口为可用的方式,以便用命令信息映射/标注它们。每条命令都由数据集和命令信息组成。命令信息包括诸如读取/写入、块地址、指针以及标记的信息。命令信息按照命令类型变化,并且与数据集独立地被创建。数据集和命令信息都需要被移动到NVM90中,并且数据集必须用对应的命令信息映射/标注,以确保命令信息与数据集之间的一致性。实现它的方式将变化,取决于所用的存储器控制器70的类型或配置。为了提供这种功能全部存储器控制器都是可配置的,尽管解决方案的效率将取决于存储器控制器的硬件、软件和/或固件实施。所以,这个问题将需要针对具体情况来解决,如本领域技术人员将理解。
[0035]图3展示了根据第二个展示性实施例的数据存储系统200的框图,其中DMA引擎用于将命令和数据压入存储器控制器的存储器器件的队列中。尽管DMA引擎可以是主机系统的一部分也可以是存储器控制器的一部分,但是出于展示性目的它被显示和描述为存储器控制器的一部分。系统200包括主机系统220、存储器控制器270、PCI或PCIe总线265以及包括多个H)320a的至少一个SSD320。主机系统220包括系统CPU230和系统存储器器件260。存储器控制器270包括DMA引擎240、CPU280、NVM器件290以及I/O接口器件310。典型情况下,NVM器件290是DRAM器件,并且它具有的保护措施与以上参考NVM90介绍的相同。NVM器件290的一部分被用作命令队列291。I/O接口器件310被配置为按照数据传输协议标准执行数据传输,比如SAS、SATA和/或NVMe标准。I/O接口器件310控制着往返SSD320的多个H)320a的数据传输。存储器控制器270经由PCI总线265和存储器驱动器250与系统CPU230通信。系统存储器件260存储着由系统CPU230执行的软件程序和数据。
[0036]根据这个展示性实施例,DMA引擎240经由总线265与存储器驱动器250通信并且与NVM器件290直接通信。在典型的写入动作期间,存储器驱动器250经由总线265将命令和任何相关联的数据压入DMA引擎240。DMA引擎240将命令和数据存储在NVM器件290的命令队列291中。执行压入动作不需要主机系统220与存储控制器270之间的同步或握手。一旦DMA引擎240已经将写入命令和相关联的数据存储到命令队列291中,优选情况下,它通知控制器CPU280命令和数据在NVM290中,典型情况下通过发出中断。主机系统220的OS认为在命令和数据被传送到DMA引擎240之时写入命令已完成。所以,存储器控制器270不需要向主机系统220发出完成中断以通知它写入命令已经完成。
[0037]当控制器CPU280准备好执行命令时,它从NVM器件290中检索命令和数据并执行该命令。在写入命令的情况下,控制器CPU280使相关联的数据经由I/O接口器件310写入到SSD的各H)320a。在读取命令的情况下,控制器CPU280检查NVM290的高速缓存(为清楚起见未显示)以判断要读取的数据是否在高速缓存中,如果在,便从高速缓存中读取数据并将其传送到主机系统220。如果要读取的数据不在高速缓存中,CPU280使数据从SSD各PD320a中读取并传送到主机系统220。
[0038]如同以上参考图2介绍的命令压入模型,利用图3的命令压入模型,在控制器CPU280意识到命令之前,命令所有权就从主机系统220传送到NVM器件290的队列291。如同以上参考图2介绍的命令压入模型,利用图3的命令压入模型,为了将命令压入队列291中,在控制器CPU280与主机系统220之间不需要同步或握手。所以,消除了以上参考图1介绍的等待时间。
[0039]图4展示的流程图表示根据部分地由图2所示的主机系统30部分地由存储控制器70执行的展示性实施例的命令压入方法。本方法将参考单命令介绍,尽管本方法的若干步骤也可以对多条命令同时执行。系统CPU40发出读取或写入命令,如方框401指示。主机系统30的存储器驱动器50将命令压入NVM器件90的队列91中,并且通知存储器控制器70所述命令在NVM器件90中,如方框402指示。
[0040]在写入命令的情况下,与命令相关联的数据也被压入NVM器件90中。随后,从NVM器件90读取的命令和数据被写入到SSD120的各H)120a。在已被压入NVM器件90中的读取命令的情况下,典型情况下,存储器控制器70将判断数据是否存储在NVM器件90的高速缓存中。如果存储器控制器70判定数据存储在高速缓存中(即一个高速缓存命中),它便从高速缓存中读取数据并传送到主机系统30。如果存储器控制器70判定数据没有存储在高速缓存中(即高速缓存未中),它便从SSD120的各H)120a中读取数据并将数据传送到主机系统30。
[0041]在写入命令被压入NVM器件90的队列91中的情况下,一旦存储器驱动器50将写入命令压入队列91中,主机系统30中的IO就完成了。在读取命令被压入队列91中的情况下,在读取的数据被返回到主机系统30前,主机系统30中的IO未完成,这是图1所示公知存储系统2中处理读取命令的方式。由本发明的方法和系统所实现的等待时间缩短关于写入命令最为显著,因为从主机系统30将写入命令传送到存储器控制器70中不再需要同步的事实,以及因为主机系统30不再必须等待完成中断才能认为写入命令已完成的事实。
[0042]图5展示的流程图表示根据部分地由图3所示的主机系统220部分地由存储控制器270执行的展示性实施例的命令压入方法。本方法将参考单命令介绍,尽管本方法的若干步骤也可以对多条命令同时执行。系统CPU230发出读取或写入命令,如方框501指示。存储器驱动器250将命令压入DMA引擎240,如方框502指示。DMA引擎240将命令存储在NVM器件290的队列291中,并且通知存储器控制器270该命令在NVM器件290中,如方框503指示。关于通知存储器控制器270该命令已经被存放到队列291中的方式,本发明不受限制。这可以以许多方式实现,例如,发出中断、更新寄存器中的值等等,正如本领域的技术
人员将理解。
[0043]主机系统30和220的以及存储器控制器70和270的功能可以以硬件、软件、固件或其结合实施。以软件或固件实施功能的计算机代码存储在计算机可读介质(CRM)上,比如系统存储器器件60和260或者NVM器件90和290或者某种其他存储器器件。CRM可以是任何类型的存储器器件,包括但不限于磁性存储器件、固态存储器件、闪存器件以及光存储器件。典型情况下,CPU40.80.230和280的每一个都包括至少一个微处理器,但是可以包括能够提供执行相关联任务所必要或期望的功能的任何类型的处理器,包括例如微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)以及片上系统(S0C)。本文中所使用的术语“处理器”意在指示可以被编程或配置为执行上述任务和任何附加任务的这些和其他类型的计算器件,这些任务被视为允许CPU40、80、230和280执行其角色所需要的。
[0044]应当注意,为了演示本发明的原理和概念,参考几个展示性即示范性实施例已经介绍了本发明。正如本领域技术人员将理解,可以对上述展示性实施例做出许多改变而在不偏离本发明的范围。一切这样的改变都在本发明的范围之内。例如,尽管H)120a和320a分别在图2和图3中显示为分别仅仅在至少一个SSD120或320中实施,但是多个H)120a和320a可以实施为一个或多个SSD以及一个或多个HDD的组合。
【权利要求】
1.一种数据存储系统,包括: 主机系统,包括系统处理器和系统存储器器件; 存储器控制器,包括控制器处理器、非易失性存储器NVM器件和输入/输出I/O接口器件,其中NVM器件的一部分被用作命令队列; 连接到I/O接口器件的至少一个固态驱动器SSD,其中,所述至少一个SSD被配置为物理盘驱动器H)的阵列;以及 将主机系统与存储器控制器互连的总线,其中主机系统经由总线访问NVM器件并经由总线将命令压入NVM器件的命令队列中。
2.根据权利要求1的数据存储系统,其中,系统处理器执行存储器驱动器程序,所述存储器驱动器程序经由总线访问NVM器件并将命令经由总线压入NVM器件的命令队列中。
3.根据权利要求1的数据存储系统,其中,存储器控制器进一步包括直接访问NVM器件的直接存储器访问DMA引擎,以及其中系统处理器执行用于将命令经由总线压入DMA引擎的存储器驱动器程序,以及其中DMA引擎将命令存储在NVM器件的命令队列中。
4.根据权利要求1的数据存储系统,其中,主机系统在命令已经被压入NVM器件的命令队列中时通知存储器控制器。
5.根据权利要求2的数据存储系统,其中,主机系统和NVM器件使用相同的命令和数据结构。
6.根据权利要求5的数据存储系统,其中,总线是外设部件互连高速PCIe总线,存储器驱动器程序通过使用PCIe总线的基址寄存器BAR访问NVM器件。
7.一种存储器控制器,包括: 输入/输出I/O接口器件,其中,NVM器件的一部分被用作命令队列; 连接到I/O接口器件的至少一个固态驱动器SSD,其中,所述至少一个SSD被配置为物理盘驱动器ro的阵列; 控制器处理器;以及 非易失性存储器NVM器件,NVM器件的一部分被分配为命令队列,其中,NVM器件被配置为由主机系统经由将主机系统与存储器控制器互连的总线来访问,其中NVM器件被配置为允许主机系统经由总线将命令压入NVM器件的命令队列中。
8.根据权利要求7的存储器控制器,其中,NVM器件由主机系统经由主机系统的处理器所执行的存储器驱动器程序来访问,以及总线是外设部件互连高速PCIe总线,以及其中NVM器件能够由存储器驱动器程序通过PCIe总线的基址寄存器BAR来访问。
9.根据权利要求7的存储器控制器,其中,存储器控制器进一步包括: 直接存储器访问DMA引擎,经由总线与主机系统通信并直接与NVM器件通信,其中,DMA引擎由主机系统经由总线来访问,以及DMA引擎接收由存储器驱动器程序压入DMA引擎的命令并将命令存储在NVM器件的命令队列中。
10.根据权利要求8的存储器控制器,其中,NVM器件使用与主机系统相同的命令和数据结构。
11.一种缩短数据存储系统中的等待时间的方法,所述方法包括: 在包括控制器处理器、非易失性存储器NVM器件以及连接到被配置为物理盘驱动器ro阵列的至少一个固态驱动器SSD的输入/输出I/O接口器件的存储器控制器中,将NVM器件的一部分配置为命令队列;以及 利用经由总线与存储器控制器互连的主机系统,将命令经由总线压入存储器控制器中;以及 在存储器控制器中,将命令存储在NVM器件的命令队列中。
12.根据权利要求11的方法,其中,主机系统的系统处理器执行存储器驱动器程序,该存储器驱动器程序经由总线访问NVM器件,并将命令经由总线压入NVM器件的命令队列中。
13.根据权利要求11的方法,其中,存储器控制器进一步包括直接存储器访问DMA引擎,以及其中主机系统的系统处理器执行用于将来自主机系统的命令经由总线压入DMA引擎的存储器驱动器程序,以及其中DMA引擎经由总线将命令存储在NVM器件的命令队列中。
14.根据权利要求12的方法,进一步包括: 其中,主机系统当命令已经被压入NVM器件的命令队列中时通知存储器控制器。
15.根据权利要求12的方法,其中,主机系统和NVM器件使用相同的命令和数据结构。
16.根据权利要求15的方法,其中,总线是外设部件互连高速PCIe总线,存储器驱动器程序通过使用PCIe总线的基址寄存器BAR访问NVM器件。
17.一种非暂态计算机可读介质,具有存储于其上的用于由主机系统的处理器执行的计算机程序,用于将命令经由总线压入连接到主机系统的存储器控制器的非易失性存储器NVM器件的命令队列中,计算机程序包括: 第一代码部分,用于接收命令以读取或写入被配置为物理盘驱动器H)阵列的固态驱动器SSD的一个或多个地址;以及 第二代码部分,用于将命令压入存储器控制器中。
18.根据权利要求17的非暂态计算机可读介质,其中,第二代码部分将命令压入NVM器件的命令队列中,以及计算机程序进一步包括: 第三代码部分,用于当命令已经被压入存储器控制器的NVM器件的命令队列中时通知存储器控制器的处理器。
19.根据权利要求17的非暂态计算机可读介质,其中,第二代码部分将命令压入存储器控制器的直接存储器访问DMA引擎中,DMA引擎直接连接到NVM器件以允许DMA引擎将命令存储在命令队列中,以及其中计算机程序进一步包括:。 第三代码部分,用于当命令已经被压入存储器控制器的NVM器件的命令队列中时通知存储器控制器的处理器。
【文档编号】G06F3/06GK103970688SQ201410042732
【公开日】2014年8月6日 申请日期:2014年1月29日 优先权日:2013年2月4日
【发明者】L·伯特, A·巴德迪尼, H·西蒙纳斯库, M·艾什 申请人:Lsi公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1