用于与非易失性存储器通信的方法和系统的制作方法
【技术领域】
[0001]本申请一般涉及在存储器系统中管理数据。更具体地,本申请涉及存储器系统的操作以改善在与具有多个裸芯或条的可重复编程的非易失性半导体闪速存储器通信中的并行性。
【背景技术】
[0002]这里提供的【背景技术】描述是为了一般呈现本公开的上下文的目的。当前提名的发明人的工作,以及其它在提交时可能否则有资格作为现有技术的说明书的方面,在该【背景技术】部分中描述的程度上,既没有明示也没有暗示地承认作为针对本公开的现有技术。
[0003]复杂的操作系统(OS)为通用计算机以及如数码相机、扫描仪等的专用装置提供动力。OS的常常被吹捧的优点之一是其允许用户同时使用多个软件应用。经常地,这些软件应用访问经由硬件接口连接到装置的处理器的硬件组件。取决于系统架构,硬件组件可以共享公共硬件接口。硬件接口可以包含PCI总线、USB总线、ISA总线、ATAPI总线和/或允许经由硬件接口与处理器通信的多个硬件组件的任何专有接口。经由硬件接口访问硬件组件可以取决于访问的类型消耗有限的时间量。为了该讨论的目的,硬件组件包含闪速存储器、紧凑式闪速、打印机、扫描仪、硬盘驱动器、DVD、CD、USB存储棒等。为了访问的持续时间,其它软件应用有时被锁定在访问连接到硬件接口的其它硬件组件之外。如果另一个应用需要访问另一个硬件组件以进行时间严格的操作,这是不期望的。可能期望的是,共享在以有序的并且可配置的方式的若干应用程序之间的公共硬件接口。
[0004]另外,软件应用程序和硬件组件之间传送的数据的量取决于访问的类型。例如,硬件组件的状态检查可以仅消耗少量的时间。与此相反,传送包括若干兆字节的数据文件可以消耗更大量的时间。时间密集的访问可以通过向访问部署可用的硬件资源而被加快。可能期望的是,基于量化或者限制访问的类型的度量而将硬件资源分配到访问。如果这样的分配(和解除分配)以灵活的、透明的方式进行,一般地,稀少的和有限的硬件资源可以被明智地用于优化系统的操作。
【发明内容】
[0005]为了解决在多个条和/或多个裸芯存储器系统中的改善的存储器管理的需要,这里公开了用于实现在与闪速条通信中的并行性的方法和系统。
[0006]根据一个方面,公开了一种在闪速存储器系统中通信数据的方法。在一个实施例中,闪速存储器包括存储器控制器和闪速装置。闪速存储器系统接收包括用于在存储器控制器和第一闪速装置之间通信数据的第一集合的资源。基于第一模板,闪速存储器系统配置用于在存储器控制器和第一闪速装置之间通信数据的第一集合的资源。根据该方法,闪速存储器系统经由第一集合的资源引起在存储器控制器和第一闪速装置之间通信数据。响应于接收到包括用于在存储器控制器和第一闪速装置通信数据的第二集合的资源的第二模板,基于第二模板,闪速存储器系统配置用于在存储器控制器和第一闪速装置之间通信数据的第二集合的资源。最后,闪速存储器系统经由第二集合的资源引起在存储器控制器和第一闪速装置之间通信数据。
[0007]根据另一个方面,公开了一种用于与闪速装置通信的系统。该系统包括具有闪速接口模块的存储器控制器。存储器控制器适配为通信地耦接到主机系统。存储器控制器配置为接收模板。模板包括用于基于模板在存储器控制器和的闪速装置之间通信数据的第一集合的资源。存储器控制器适配为配置用于在存储器控制器和第一闪速装置之间通信数据的第一集合的资源。最后,闪速接口模块被可通信地耦接到存储器控制器。闪速接口模块配置为经由第一集合的资源在存储器控制器和第一闪速装置之间通信数据。
[0008]根据一个方面,公开了一种用于在闪速存储器系统中通信数据的方法。在一个实施例中,闪速存储器系统包括存储器控制器、第一闪速装置和第二闪速装置,第一和第二闪速装置经由公共闪速接口被可通信地耦接到存储器控制器。在接收到用于在存储器控制器和第一闪速装置之间通信数据的第一命令时,基于第一命令,存储器控制器从逻辑数据路径的集合选择逻辑数据路径的第一子集,该逻辑数据路径的第一子集在存储器控制器和第一闪速装置之间。存储器控制器配置逻辑数据路径的第一子集以在存储器控制器和第一闪速装置之间通信数据。最后,存储器控制将第一闪速命令通信到第一闪速装置以经由逻辑数据路径的第一子集启动数据的通信,其中,第一闪速命令对应于接收到的命令。
[0009]根据另一个方面,公开了一种用于在存储器控制器、第一闪速装置和第二闪速装置之间进行通信数据的系统。该系统包括存储器系统、数据路径管理器(DPM)和存储器控制器。该存储器系统配置为从主机处理器接收闪速命令。此外,响应于接收到闪速命令,存储器系统配置为将闪速命令序列通信到第一闪速装置或第二闪速装置中的一个。另外,数据路径管理器(DPM)配置为从逻辑数据路径的集合选择逻辑数据路径的第一子集,并配置为在存储器控制器和第一闪速装置或第二闪速装置的任一个之间通信数据。
[0010]根据一个方面,公开了一种用于在闪速存储器系统中管理数据的方法。在一个实施例中,闪速存储器系统包括存储器控制器、第一闪速条和第二闪速条,第一和第二闪速条经由公共闪速接口被可通信地耦接到存储器控制器。存储器控制器从第一闪速命令生成第一命令序列,其中第一命令序列包括第一部分和第二部分,并且从第二闪速命令生成第二命令序列,其中第二命令序列包括至少一个部分。该方法包括,存储器控制器基于第一标准和第二标准选择第一命令序列,其中,第一标准与第一命令序列相关联,并且第二标准与第二命令序列相关联。该方法还包括,经由公共闪速接口将第一命令序列的第一部分通信到第一闪速条;在通信第一部分之后,在通信第一命令序列的第二部分之前,经由公共闪速接口将第二命令序列的至少一部分通信到第二闪速条。最后,在通信第二命令序列的至少一部分之后,经由公共闪速接口,存储器控制器将第一命令序列的第二部分通信到第一闪速条。
[0011]根据另一个方面,公开了一种在存储器控制器中实现的用于经由公共闪速接口与第一闪速条和第二闪速条通信的方法。响应于接收到第一闪速命令,存储器控制器确定第一存储器命令旨在将被通信到第一闪速条。此外,存储器控制器从第一闪速命令生成命令序列,其中命令序列包括两个部分,并且其中每个部分包括一系列命令,其中命令的系列是原子的,并且其中每个部分包括第一闪速条的标识。存储器控制器将命令序列的第一部分通信到第一闪速条。最后,响应于检测到在第一部分中的命令,生成指示,其中该指示指明命令序列的第一部分已经被通信到第一闪速条。
[0012]根据又一个方面,公开了一种用于与第一闪速条和第二闪速条通信的存储器控制器。存储器控制器包括闪速接口模块,该闪速接口模块配置为用于与第一和第二闪速条进行通信,以及与闪速接口模块进行通信的处理器。处理器配置为,响应于从主机系统接收多个闪速命令,生成多个命令序列。多个命令序列的每个对应于多个闪速命令的相应的一个。多个命令序列的一些包括第一部分和第二部分。第一部分和第二部分的每个是原子的。此夕卜,多个命令序列的每个与优先级相关联。处理器进一步配置为,经由闪速接口模块,基于与多个命令序列的一个相关联的优先级,选择多个命令序列的一个,并将多个命令序列的一个的第一部分顺序地发送到第一闪速条或第二闪速条的任一个。
[0013]当回顾下面的附图、详细的描述和权利要求书时,其它特征和优点将变得显而易见。此外,公开了其它实施例,并且每个实施例可以单独使用或组合在一起使用。现在将参照附图描述实施例。
【附图说明】
[0014]图1示出了与具有包含多个闪速条的多个条非易失性存储器连接的主机。
[0015]图2是与图1的多个闪速条通信的图1的示例的存储器控制器的示例的框图。
[0016]图3是可以由闪速接口模块的元件生成的示例的闪速命令和对应的命令序列的表不O
[0017]图4是使能在图1的存储器控制器和多个闪速条之间的并行通信的示例的闪速接口模块的框图。
[0018]图5是在图1的闪速接口模块中实现的示例的方法的流程图。
[0019]图6是可以生成具有若干原子的部分的命令序列的示例的命令生成器的流程图。
[0020]图7是可以经由公共硬件接口通信命令序列的部分的示例的闪速协议定序器的流程图。
[0021]图8是可以选择用于通信的命令序列的示例的仲裁单元的流程图。
[0022]图9是可以经由公共硬件接口通信命令序列的部分的另一个示例的闪速协议定序器的流程图。
[0023]图10A-C是不出了在不同的情景下的命令序列的通彳目的时序图。
[0024]图11是用于通信数据的逻辑数据路径的概念性表示。
[0025]图12是将逻辑数据路径分配到不同的数据传送的示例的方法的流程图。
[0026]图13是可以被用于允许资源的灵活分配的示例的模板。
【具体实施方式】
[0027]这里描述的方法可以允许主机系统经由公共硬件接口与两个或多个硬件组件同时通信。经常地,与硬件组件通信需要命令的传送和接收。例如,与闪速装置通信需要通信闪速命令。闪速命令可以包括若干原子的部分。一般地,原子的部分的通信不可以被中断,而命令的不同的原子的部分的通信可以被中断。因此,闪速命令可能被转化成命令序列,其中该命令序列包含可分离的一系列原子的部分,从而允许每个部分的独立的通信。在将多个原子的部分命令序列的第一原子的部分通信到第一硬件组件后,这里描述的方法可以选择性地将来自另一个命令序列的另一个原子的部分通信到第二硬件单元,而等待第一硬件组件进行与第一原子的部分相关联的功能。这允许命令序列在公共接口上交织。尽管这里描述的方法是参照存储器系统来解释的,但是该方法同样适用于包括在两个或多个硬件组件之间共享接口的其它系统。
[0028]与仅仅是在数据总线上的数据的交织相比,这里描述的设备和方法不但促进跟在在将多个部分命令序列的第二部分传送到第一闪速装置之前将命令序列传送到第二闪速装置之后的,经由多个部分命令序列的第一部分的公共接口带第一闪速装置的传送,而且还促进动态地修改优先级,其中不同的命令序列以该优先级被传送到第一和第二闪速装置。因此,较低的优先级的多个部分命令序列可以被更高优先级的命令序列抢占或中断。
[0029]适用于在实现本发明的各方面中使用的闪速存储器系统在图1中示出。图1的主机系统100将数据存储到存储器系统102中并从存储器系统102取回数据。存储器系统可以是嵌入在主机内的闪速存储器,诸如以固态磁盘(SSD)驱动器的形式安装在个人计算机中。可替代地,存储器系统102可以是卡的形式,该卡通过如图1中所示的机械的和电的连接器的配合部件104和106可拆卸地连接到主机。配置为用作内部的或嵌入的SSD驱动器的闪速存储器可能看起来类似于图1的示意图,其中主要的差异是存储器系统102的位置在主机的内部。SSD驱动器可以是用于旋转磁盘驱动器的插入式替代的分立模块的形式。