CN111258496A - 动态分配数据路径的装置和方法 - Google Patents
动态分配数据路径的装置和方法 Download PDFInfo
- Publication number
- CN111258496A CN111258496A CN201911190282.5A CN201911190282A CN111258496A CN 111258496 A CN111258496 A CN 111258496A CN 201911190282 A CN201911190282 A CN 201911190282A CN 111258496 A CN111258496 A CN 111258496A
- Authority
- CN
- China
- Prior art keywords
- data
- group
- groups
- host
- resources
- 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
Images
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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- 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/0614—Improving the reliability of storage systems
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0656—Data buffering arrangements
-
- 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/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/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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了用于响应于数据处理系统中的资源利用来动态分配数据路径的装置和方法。该数据处理系统包括:多个资源,其适用于处理数据;主机,其适用于请求所述多个资源中的至少一个来处理所述数据;多个数据路径,其适用于在所述主机与所述多个资源之间传输所述数据;以及仲裁器,其适用于:将所述多个资源划分为多个组,将所述多个数据路径中的至少一个第一数据路径分配给每个组,以及基于所述多个组的相应数据传输状态,通过将所述多个数据路径中的至少一个第二数据路径额外地分配给每个组、或者通过从所述多个组中的一个组将至少一个资源移动到所述多个组中的另一个组,来重新布置所述多个组。
Description
相关申请的交叉引用
本申请要求于2018年11月30日提交的申请号为10-2018-0152014的韩国专利申请的优先权,其全部内容通过引用合并于此。
技术领域
各种实施例涉及数据处理系统,并且更具体地涉及能够响应于数据处理系统中的组件的使用来动态地分配在所述组件之中传输数据的多个数据路径的控制方法和装置。
背景技术
最近,针对计算环境的范例已经被改变为可以在任何时间、任何地方使用计算机系统的泛在计算环境。因此,诸如移动电话、数字相机和笔记本计算机之类的便携式电子设备的使用已迅速增加。便携式电子设备通常使用存储系统,该存储系统使用存储器件,即数据储存设备。数据储存设备被用作便携式电子设备的主存储器件或次存储器件。
由于使用非易失性存储器件的数据储存设备不像硬盘那样,其没有机械驱动器,所以数据储存设备具有出色的稳定性和耐用性、高信息访问速度和低功耗。在具有这种优点的存储系统中,数据储存设备可以是通用串行总线(USB)存储器件、具有各种接口的存储卡、固态驱动器(SSD)等中的任一种。
发明内容
各个实施例可以提供一种数据处理系统及其操作方法,该数据处理系统包括存储系统和主机,并且可以基于相应存储系统的利用率来为组件之间的数据传输动态地分配多个数据路径。
各个实施例可以提供一种方法和装置,当在数据路径被分配给数据处理系统内的多个组件的情况下,响应于用户的请求要经由数据路径来传输数据时,该方法和装置可以针对数据路径不能被立即使用并且数据传输需要等待的情形确定等待计数;以及基于该等待计数来控制数据路径的重新分配。
各个实施例可以提供一种方法和装置,该方法和装置可以在包括与多个存储系统交互工作的主机的数据处理系统中,对多个存储系统进行分组,以便向存储系统的组分配用于在多个存储系统与主机之间传输数据的多个数据路径;管理并控制用于每个组的数据路径的效率。
各个实施例可以提供一种方法和装置,该方法和装置可以基于阈值来对通过数据路径传送数据的目的地进行分组;确定组等待计数;以及基于组等待计数来将分配给每个组的数据路径进行重新分配。
各个实施例可以提供一种方法和装置,该方法和装置可以基于阈值来对通过数据路径传送数据的目的地进行分组;通过资源组等待计数和总等待计数来重置用于进行分组的阈值;以及引起数据路径至组的重新分配。
本公开的技术目的不限于上述技术目的,并且基于下面的描述,本公开所属领域的技术人员将清楚地理解本文中未描述的其他技术目的。
各个实施例针对一种存储系统、数据处理系统以及用于检查其操作的方法。
在一个实施例中,一种数据处理系统可以包括:多个资源,其适用于处理数据;主机,其适用于请求所述多个资源中的至少一个资源来处理数据;多个数据路径,其适用于在主机与所述多个资源之间传输数据;以及仲裁器(arbiter),其适用于:将所述多个资源划分为多个组,将所述多个数据路径中的至少一个第一数据路径分配给所述多个组中的每一个,以及基于所述多个组的相应的传输状态,通过将所述多个数据路径中的至少一个第二数据路径额外地分配给所述多个组中的每一个、或者通过从所述多个组中的一个组将至少一个资源移动到所述多个组中的另一个组,来重新布置所述多个组。
所述多个组的数量小于所述多个资源的数量,并且小于或等于所述多个数据路径的数量。
相应的组中所包括的资源的数量彼此不相等。
仲裁器通过将每个组的组等待计数与总等待计数进行比较来确定每个组的数据传输状态。每个组的所述组等待计数在由于分配给对应组的所述数据路径繁忙而使属于所述对应组的资源对数据的处理进行等待时增加,即使所述主机请求所述对应组的资源来处理所述数据。
仲裁器向每组的组等待计数与总等待计数相同的组额外地分配除了所述至少一个第一数据路径以外的其余数据路径作为所述至少一个第二数据路径。
仲裁器根据每个组等待计数与总等待计数的比率来将至少一个第二数据路径额外地分配给相应的组。
所述组之中的一个组的组等待计数为0,则仲裁器将当前分配给该组的至少一个第二数据路径重新分配给所述组之中的另一个组。
在数据在主机与所述多个资源之间传输之前,仲裁器根据组的数量、每个组内的资源的数量、以及数据路径的数量,将数据路径均等地分配给所述组。
仲裁器基于数据传输状态来将当前分配给每个组的至少一个第二数据路径进行重新分配。
仲裁器通过合并两个或更多个组、或将单个组划分为两个或更多个组,来重新布置相应的组。
在另一实施例中,一种用于控制多个数据路径的使用的方法,包括:将多个资源划分为多个组,每个资源能够处理数据;将所述多个数据路径中的至少一个第一数据路径分配给所述组中的每一个组,以用于数据在所述多个资源与请求处理数据的主机之间的传输;基于所述多个组的相应的传输状态,通过将所述多个数据路径中的至少一个第二数据路径额外地分配给所述组中的每一个、或者通过从所述多个组中的一个组将至少一个资源移动到所述多个组中的另一个组来重新布置所述多个组。
所述多个组的数量小于所述多个资源的数量,并且小于或等于所述多个数据路径的数量。
相应的组中所包括的资源的数量彼此不相等。
该方法还包括:通过将每个组的组等待计数与总等待计数进行比较来确定每个组的数据传输状态。每个组的所述组等待计数在由于分配给对应组的所述数据路径繁忙而使所述对应组的资源对数据的处理进行等待时增加,即使所述主机请求所述对应组的资源来处理所述数据。
所述额外地分配的步骤包括:向组等待计数与总等待计数相同的组分配除了所述至少一个第一数据路径以外的其余数据路径作为所述至少一个第二数据路径。
所述额外地分配的步骤包括:根据每个组等待计数与总等待计数的比率来将至少一个第二数据路径分配给相应的组。
该方法还包括:当所述组之中的一个组的组等待计数为0时,将当前分配给该组的第二数据路径重新分配给所述组之中的另一个组。
该方法还包括:在数据在主机与所述多个资源之间传输之前,根据组的数量、每个组内的资源的数量、以及数据路径的数量,将数据路径均等地分配给组。
通过基于数据传输状态而重新分配当前分配给每个组的至少一个第二数据路径,来执行重新布置。
通过合并两个或更多个组、或将单个组划分成两个或更多个组,来执行重新布置。
在另一实施例中,一种储存系统包括:一个或多个组,所述一个或多个组中的每一个包括一个或多个存储系统,每个存储系统被配置为响应于从主机提供的主机请求来执行存储操作;以及分配器,其可操作地耦接在主机和所述组之间,并且被配置为:通过基于要被传输到所述组内的相应存储系统的挂起的主机数据的量而向每个组动态地分配传输路径,在主机与所述组中的选定的组内的存储系统之间传输关于主机请求的主机数据。每个组中的存储系统共享分配给对应组的一个或多个传输路径。
在另一实施例中,一种储存系统包括:一个或多个组,所述一个或多个组中的每一个包括一个或多个存储系统,每个存储系统被配置为响应于从主机提供的主机请求来执行存储操作;以及布置器,其通过分配给相应组的一个或多个传输路径而可操作地耦接在主机与所述相应组之间,并且被配置为:通过基于要被传输到所述组内的相应存储系统的挂起的主机数据的量而动态地布置所述相应组内的存储系统,在主机与所述组中的选定的组内的存储系统之间传输关于主机请求的主机数据。每个组中的存储系统共享分配给对应组的一个或多个传输路径。
附图说明
图1是示出根据一个实施例的数据处理系统的示例的图。
图2是示出用于控制数据处理系统内的多个数据路径的装置的示例的图。
图3是示意性地示出根据一个实施例的包括存储系统的数据处理系统的示例的图。
图4是示出根据一个实施例的存储系统内的控制器的图。
图5是示出根据一个实施例的在数据处理系统中仲裁器与通过划分多个资源而获得的多个组之间的数据路径分配的图。
图6A至图6C是示出根据一个实施例的数据处理系统分配数据路径的示例的图。
图7是示意性地示出根据一个实施例的仲裁器的示例的图。
图8是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第一示例的流程图。
图9是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第二示例的流程图。
图10是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第三示例的流程图。
图11是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第四示例的流程图。
图12是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第五示例的流程图。
具体实施方式
以下描述主要介绍本发明的各种实施例的特征和方面。为了避免不必要地模糊本发明的主题,可能省略了公知的信息。
下面参考附图来更详细地描述各种实施例。在整个说明书中,对“一个实施例”、“另一个实施例”等的提及不一定仅是对一个实施例,并且对任何这样的措辞的不同提及不一定是对相同的实施例。
图1是示出根据一个实施例的数据处理系统100的示例的图。
参考图1,数据处理系统100可以包括多个资源,例如组件,其通过多个数据路径170耦接到主机102。例如,图1所示的数据处理系统100内的多个资源可以包括多个存储系统110A、110B和110C。多个存储系统110A、110B和110C可以响应于主机102的请求来储存或输出数据。图1示出了数据处理系统100包括三个存储系统。然而,更一般地,数据处理系统100可以包括两个或更多个存储系统。
数据处理系统100中所包括的资源可以不限于存储系统。资源的配置和/或性质可以取决于数据处理系统100的设计、使用和操作环境。每个资源可以通过一个或多个信道发送/接收信号(例如,命令、响应、数据等)。可以以设定的格式(例如,消息或分组(packet))来配置信号。可以通过一个或多个信道传输的信号在下文中被称为数据。
每个资源通过一个或多个信道传输的数据量可以取决于资源的操作特性或者取决于数据处理系统100根据用户请求的操作。因此,可以响应于操作环境、操作状态等而将用于在主机102与多个资源之间传输数据的多个数据路径170动态地分配给相应的资源。
存储系统110A、110B和110C中的每一个可以包括控制器130、例如RAM的存储器144、以及多个存储器件152、154、156和158。在一个实施例中,多个存储器件152、154、156和158中的每一个可以包括即使电源被切断也可以储存数据的非易失性存储器件。图1示出了存储系统110A、110B和110C中的每一个包括四个存储器件。然而,更一般地,每个存储系统可以包括一个或多个存储器件。
尽管未示出,但是存储器件152、154、156和158中的每一个可以包括一个或多个块,并且每个块可以包括多个页。下面参考图3和图4来描述存储器件152、154、156和158的内部配置和特定操作。
主机102可以包括可由用户使用的计算设备。例如,主机102可以包括诸如台式计算机或笔记本计算机之类的个人计算机、诸如蜂窝电话之类的移动设备、或可以在办公室、学校、研究机构等使用的服务器。随着用户所请求的数据量增加,与主机102交互工作的存储系统的数量可以增加。
通过多个数据路径170,主机102和多个存储系统110A、110B和110C可以以高速来发送/接收命令和数据。对于该操作,多个存储系统110A、110B和110C以及主机102可以通过多个数据路径170支持串行通信。例如,串行通信方法可以包括MIPI(移动行业处理器接口)M-PHY、UART(通用异步接收器发送器)、SPI(串行外围接口总线)、I2C(内部集成电路)和USB(通用串行总线)中的一种或多种协议。
例如,当多个存储系统110A、110B和110C支持用于通用快闪存储器(UFS)或嵌入式UFS(eUFS)的标准时,存储系统110A、110B和110C以及主机102可以使用基于MIPI M-PHY的高速串行通信接口。物理层的M-PHY可以指示嵌入式时钟串行接口,其具有很高的带宽功能,并且已经被开发为支持移动应用程序的极端性能和低功耗要求。存储系统110A、110B和110C可以在链路层支持UniPro标准。
与主机102交互工作的存储系统110A、110B和110C可以被给予优先级。例如,优先级可以被划分为主优先级和次优先级。在一个实施例中,可以将优先级设置为更多层级或阶段,并且多个存储系统110A、110B和110C可以被给予所述优先级。
与多个存储系统110A、110B和110C交互工作的主机102可以区分并识别多个存储系统110A、110B和110C。对于该操作,主机102可以将标识符或ID分配给相应的存储系统110A、110B和110C。
在一个实施例中,多个存储系统110A、110B和110C可以储存多个逻辑标识符。存储系统110A、110B和110C中的每一个可以根据与存储系统交互工作的特定主机而使用不同的逻辑标识符。例如,第二存储系统110B在与主机102交互工作时可以使用逻辑标识符‘AB’,而在与另一主机(未示出)交互工作时可以使用逻辑标识符‘ED’。多个存储系统110A、110B和110C用来与主机102通信的逻辑标识符可以是逻辑地址,其用于在一个数据处理系统中确定数据的位置。在一个实施例中,能够在主机102与多个存储系统110A、110B和110C之间使用的逻辑标识符可以被不同地设置。
主机102可以利用多个存储系统110A、110B和110C的唯一信息,以便物理地识别多个存储系统110A、110B和110C。可以在主机102与多个存储系统110A、110B和110C之间使用的逻辑标识符的示例包括通用唯一标识符(UUID)。UUID可以包括16八位组(128比特位)的数。在标准格式中,UUID可以被表示为32个十六进制位,并且包括8-4-4-4-12的五个组,它们由总共36个字符(32个字符和四个连字符)组成。UUID可以被用作分组(packet)内的报头中所包括的信息,其格式根据主机102与多个存储系统110A、110B和110C之间的设定的通信协议、连同主机102与多个存储系统110A、110B和110C之间的设定的逻辑标识符来确定。
主机102与多个存储系统110A、110B和110C之间的标识信息可以被储存在第一存储系统110A的特定区域(例如,主引导记录(MBR))中。当主机102以及多个存储系统110A、110B和110C被供电时,储存在第一存储系统110A的特定区域中的数据或固件可以首先被执行。因此,第一存储系统110A可以将基本信息储存在对应的特定区域中,该基本信息被用来物理地识别主机102以及多个存储系统110B和110C。
基于主机102与多个存储系统110A、110B和110C之间的设定的逻辑标识符,可以通过主机102和多个存储系统110A、110B和110C所连接的通信协议来发送/接收数据。在主机102与多个存储系统110A、110B和110C之间使用的通信协议可以支持一个或多个主设备以及一个或多个从设备。如果通信协议支持一个主设备,则主机102可以变成主设备,并且多个存储系统110A、110B和110C可以变成从设备。另一方面,当通信协议支持多个主设备时,主机和具有高优先级的第一存储系统(例如110A)可以变成主设备,并且其他存储系统110B和110C可以变成从设备。
虽然多个资源具有高数据输入/输出性能,但是用于在主机和多个资源之间传输数据的数据路径的传输速率可能低于所述多个资源的数据输入/输出性能。因此,当多个资源根据传输速率(数据以该传输速率通过数据路径来传输)来进行操作时,所述多个资源可能低效地操作。
此外,用户可以请求多个资源中的某一资源来处理数据,并且资源的数量可以与数据路径的数量不同。因此,当将数据路径固定地分配给没有频繁地发生数据传输的资源时,数据处理系统100的整体操作效率可能会降低。
例如,在主机102与多个存储系统110A、110B和110C之间传输数据时,当在主机102与多个存储系统110A、110B和110C之间布置足够数量的数据信道时,可能不会出现潜伏时间(latency)。然而,当数据路径170的数量小于存储系统110A、110B和110C的数量、或者一个存储系统需要一个或多个数据路径时,可以确定在这样的操作环境中所述多个信道170不足以处理数据吞吐量。因此,可能需要能够将多个信道170分配给多个资源的装置和方法。
图2是示出用于控制数据处理系统内的多个数据路径的装置的示例的图。
参考图2,数据处理系统100可以包括主机102、多个资源104、用于在主机102与多个资源104之间传输数据的多个数据路径170、以及用于控制通过多个数据路径170的数据传输的仲裁器(arbiter)180。仲裁器180可以响应于主机102的请求来将多个数据路径170分配给多个资源104。
在一个实施例中,仲裁器180可以基于主机102所请求的一个或多个优先级来将多个数据路径170分配给多个资源104。存在可由主机102采用的不同的优先级设置方法。所述方法之一是固定优先级策略,另一种方法是轮巡(round robin)策略。由于固定优先级策略被设计为适用于单处理器系统,因此在多处理器系统中固定优先级策略的性能可能不会得到改善。另一方面,当将轮巡策略用于多处理器系统时,轮巡策略可以具有比固定优先级策略更好的特性。
当仲裁器180对根据固定优先级策略或轮巡策略来向相应的资源104分配数据路径以及释放所分配的数据路径的操作进行重复时,这种操作可能会在数据处理系统100的整体操作中施加开销。此外,即使在每一个资源104与主机102之间没有发生数据传输,可能仍必须分配一个或多个数据路径。当不存在将资源可操作地连接到主机102的数据路径时,主机102可以确定该资源不是物理连接的或可操作的。特别地,当数据路径170的数量小于资源104的数量时,根据固定优先级策略或轮巡策略来分配多个数据路径170可能不是高效的。
在一个实施例中,仲裁器180可以将多个资源104划分成设定数量的组。组的数量可以小于数据路径170的数量。仲裁器180可以向每个组分配一个或多个数据路径。例如,假设数据处理系统100包括作为多个资源104的九个存储系统,并且多个数据路径170被配置为六个数据路径。例如,仲裁器180可以将九个存储系统划分成三组。仲裁器180可以为每个组分配一个数据路径,并且将其他三个数据路径额外地分配给三个组之中的具有高传输需求的组。对于另一个示例,仲裁器180可以为三个组中的每个组分配两个数据路径,然后基于每个组的传输需求来将分配给每个组的所述两个数据路径中的一个重新分配给另一个组。
在一个实施例中,可以通过各种方法来检查每个组的传输需求。例如,主机102所请求的数据可能不会针对每个组而通过仲裁器180立即传输,因为分配给对应组的数据路径正忙,因此数据传输可能必须等待。每当数据传输针对对应组进行等待时,仲裁器180可以增加针对每个组的组等待计数。仲裁器180可以比较相应组的组等待计数,并且确定哪个组需要被额外地分配数据路径。通过该操作,仲裁器180可以实时地分析数据路径的使用状态并动态地分配数据路径,以便提高数据处理系统100中的多个资源104的利用率和效率。
图3是示意性地示出根据一个实施例的包括存储系统的数据处理系统的图。
参考图3,数据处理系统100可以包括主机102和存储系统110。存储系统110可以是参考图1描述的存储系统110A、110B和110C的示例。
主机102可以包括各种电子设备中的任何一种,例如,诸如移动电话、MP3播放器和膝上型计算机之类的便携式电子设备,或者诸如台式计算机、游戏机、电视和投影仪之类的电子设备。也就是说,主机102可以包括无线/有线电子设备。
主机102可以包括一个或多个操作系统(OS),并且该OS可以管理和控制主机102的整体功能和操作,并且在主机102与使用数据处理系统100或存储系统110的用户之间提供交互操作。OS可以支持与用户的预期使用相对应的功能和操作。例如,依据主机102的移动性,可以将OS划分为普通OS和移动OS。依据用户的使用环境,OS中的普通OS可以被划分为个人OS和工业OS。例如,专用于支持为普通用户提供功能的服务的个人OS可以包括Windows、Chrome等等,而专用于确保和支持高性能的工业OS可以包括Windows Server、Linux、Unix等等。此外,专用于支持为用户提供功能和系统省电功能的移动服务的移动OS可以包括Android、iOS、Windows Mobile等等。主机102可以包括多个OS,并且根据用户请求来执行OS以利用存储系统110执行操作。主机102可以将与用户请求相对应的多个命令传输到存储系统110,并且因此存储系统110可以执行与命令相对应的操作,即与用户请求相对应的操作。
存储系统110可以响应于主机102的请求而操作。特别地,存储系统110可以储存由主机102访问的数据。换句话说,存储系统110可以被用作主机102的主存储器件110或次存储器件。存储系统110可以根据耦接到主机102的主机接口协议而被实现为各种类型的储存设备中的任何一种。例如,存储系统110可以被实现为各种类型的储存设备中的任一种,包括固态驱动器(SSD)、诸如嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)或微型MMC的多媒体卡(MMC)、诸如迷你SD或微型SD的安全数字(SD)卡、通用存储总线(USB)储存设备、通用快闪存储器(UFS)设备、紧凑型快闪存储器(CF)卡、智能媒体卡和记忆棒。
用于实现存储系统110的储存设备可以被配置为各种易失性存储器件(诸如动态随机存取存储器(DRAM)和静态RAM(SRAM))以及非易失性存储器件(诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁磁RAM(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和快闪存储器)中的任何一种。
存储系统110可以包括用于储存由主机102访问的数据的存储器件150和用于控制将数据储存到存储器件150中的控制器130。
控制器130和存储器件150可以被集成到一个半导体器件中。例如,控制器130和存储器件150可以被集成到一个半导体器件中以构成SSD。当存储系统110被用作SSD时,可以进一步提高耦接到存储系统110的主机102的操作速度。在其他实施例中,控制器130和存储器件150可以被集成到一个半导体器件中以构成存储卡,诸如个人计算机存储卡国际协会(PCMCIA)卡、紧凑型快闪存储器(CF)卡、智能媒体(SM)卡、记忆棒、诸如RS-MMC或微型MMC的多媒体卡(MMC)、诸如迷你SD、微型SD或SDHC的SD卡、以及/或者通用快闪存储器(UFS)设备。
对于另一个示例,存储系统110可以构成计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数字相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的储存设备、能够在无线环境中发送/接收信息的设备、构成家庭网络的各种电子设备中的一种、构成计算机网络的各种电子设备中的一种、构成远程信息处理网络的各种电子设备中的一种、射频识别(RFID)设备、或构成计算系统的各种组件中的一种。
即使没有供电,存储系统110的存储器件150也可以保留储存在其中的数据。具体地,存储器件150可以通过写入操作来储存从主机102提供的数据,并且可以通过读取操作来将储存在其中的数据提供给主机102。存储器件150可以包括多个存储块152、154和156,每个存储块可以包括多个页,并且每个页可以包括与多个字线WL耦接的多个存储单元。此外,存储器件150可以包括其中设置了多个存储块152、154和156的多个平面。特别地,存储器件150可以包括其中设置了多个平面的多个存储裸片。存储器件150可以被实现为非易失性存储器件,例如快闪存储器。该快闪存储器可以具有三维(3D)层叠结构。
存储系统110中的控制器130可以响应于来自主机102的请求来控制存储器件150。例如,控制器130可以将从存储器件150读取的数据提供给主机102,并且将从主机102提供的数据储存在存储器件150中。对于该操作,控制器130可以控制存储器件150的读取操作、写入操作、编程操作和擦除操作。
更具体地,控制器130可以包括主机接口(I/F)132、处理器134、错误校正码组件(ECC)138、电源管理单元(PMU)140、存储器I/F 142和存储器144。
主机I/F 132可以被配置为处理主机102的命令和数据,并通过各种接口协议中的一种或多种与主机102通信,所述各种接口协议诸如USB、MMC、PCI-E(外围组件高速互连)、SAS(串行连接SCSI)、SATA(串行高级技术附件)、PATA(并行高级技术附件)、SCSI(小型计算机系统接口)、ESDI(增强型小型磁盘接口)、IDE(集成驱动电子设备)和/或MIPI(移动行业处理器接口)。可以通过被称为主机接口层(HIL)的固件来驱动主机I/F 132,通过该主机I/F 132与主机102交换数据。
ECC 138可以校正由存储器件150处理的数据的错误比特位,并且包括ECC编码器和ECC解码器。ECC编码器可以通过对要被编程到存储器件150的数据执行错误校正编码来产生具有奇偶校验位的数据,并且可以将具有奇偶校验位的数据储存在存储器件150中。当储存在存储器件150中的数据被读取时,ECC解码器可以检测并校正从存储器件150读取的数据中所包含的错误。换句话说,ECC 138可以对从存储器件150读取的数据执行错误校正解码,确定错误校正解码是否被成功地执行,根据确定结果来输出指示信号(例如错误校正成功/失败信号),以及使用在错误校正编码处理中产生的奇偶校验位来校正读取数据的错误比特位。当错误比特位的数量大于或等于可校正错误比特位的数量的阈值时,ECC 138不能校正错误位,而是输出指示ECC 138未能校正错误比特位的错误校正失败信号。
ECC 138可以使用低密度奇偶校验(LDPC)码、Bose Chaudhri Hocquenghem(BCH)码、turbo码、Reed-Solomon码、卷积码、递归系统卷积码(RSC)、或诸如网格编码调制(TCM)或块编码调制(BCM)之类的编码调制来执行错误校正,但不限于此。ECC 138可以包括用于错误校正的任何和所有电路、模块、系统或设备。
PMU 140可以提供并管理控制器130的电源。也就是说,PMU 140可以提供并管理控制器130中所包括的组件的电源。
存储器I/F 142可以用作存储器/储存设备I/F,来将控制器130和存储器件150进行接口,以使得控制器130响应于来自主机102的请求来控制存储器件150。当存储器件150是快闪存储器(例如NAND快闪存储器)时,存储器I/F 142可以用作NAND闪存控制器(NFC),并且在处理器134的控制下产生存储器件150的控制信号且处理存储器件150的数据。存储器I/F 142可以支持接口(例如NAND闪存接口)的操作:即用于处理控制器130与存储器件150之间的命令和数据。特别地,存储器I/F 142可以支持控制器130和存储器件150之间的数据输入/输出,并且用作用来与存储器件150交换数据的区域。可以通过被称为快闪接口层(FIL)的固件来驱动存储器I/F 142。
存储器144可以用作存储系统110和控制器130的工作存储器,并且储存用于驱动存储系统110和控制器130的数据。更具体地,当控制器130响应于来自主机102的请求而控制存储器件150时(例如当控制器130控制存储器件150的读取、写入、编程和擦除操作以便将从存储器件150读取的数据提供给主机102、以及将从主机102提供的数据储存在存储器件150中时),存储器144可以储存在存储系统110上执行这种操作所需的数据(即在控制器130和存储器件150之间)。
存储器144可以被实现为易失性存储器。例如,存储器144可以被实现为静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。如图1中所示,存储器144可以与控制器130设置在一起或者被设置在控制器130外部。例如,存储器144可以被实现为外部的易失性存储器,通过存储器I/F将数据从控制器130输入到该外部的易失性存储器或者将数据从该外部的易失性存储器输出到控制器130。
如上所述,存储器144可以储存主机102和存储器件150之间执行数据写入/读取操作所需的数据以及当执行数据写入/读取操作时的数据。为了储存这样的数据,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可以控制存储系统110的整体操作。特别地,处理器134可以响应于来自主机102的写入请求或读取请求来控制在存储器件150上的编程操作或读取操作。处理器134可以驱动被称为闪存转换层(FTL)的固件,以便控制存储系统110的整体操作。处理器134可以被实现为微处理器和/或中央处理单元(CPU)。
例如,控制器130可以通过处理器134而在存储器件150中执行主机102所请求的操作。换句话说,控制器130可以利用存储器件150来执行与从主机102接收的命令相对应的命令操作。在这种情况下,控制器130可以执行前台操作作为与从主机102接收的命令相对应的命令操作,例如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作、或与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
控制器130可以通过处理器134执行存储器件150上的后台操作。存储器件150上的后台操作可以包括:将储存在存储器件150的存储块152、154和156之中的任意存储块中的数据复制到另一个任意存储块中(例如垃圾收集(GC)操作)、交换储存在存储块152、154和156中的数据的操作(例如损耗均衡(WL)操作)、将储存在控制器130中的映射数据储存到存储器件150的存储块152、154和156中的操作(例如映射冲刷操作)、或对存储器件150执行不良管理的操作(例如检查并处理存储器件150所包括的存储块152、154和156中的坏块的坏块管理操作)。
在根据一个实施例的存储系统中,当控制器130在存储器件150中执行与从主机102接收的多个命令相对应的多个命令操作(例如与多个写入命令相对应的多个编程操作、与多个读取命令相对应的多个读取操作、以及与多个擦除命令相对应的多个擦除操作)时,控制器130可以决定耦接至存储器件150中所包括的多个存储裸片的多个信道或路径之中的最佳信道或路径,然后通过所述最佳信道或路径将从主机102接收的命令传送到对应的存储裸片。此外,控制器130可以通过该最佳信道或路径而从已经执行了与命令相对应的命令操作的存储裸片来接收命令操作的执行结果,然后将命令操作的执行结果提供给主机102。特别地,当在存储系统中从主机102接收到多个命令时,控制器130可以检查多个信道或路径的状态,响应于多个信道或路径的状态来决定最佳发送信道或路径,并且通过最佳发送信道或路径来将从主机102接收的多个命令传送至对应的存储裸片。此外,在与从主机102接收到的多个命令相对应的命令操作在存储器件150的存储裸片中被执行之后,控制器130可以通过响应于信道或路径的状态而确定的最佳接收信道或路径来从存储器件150的存储裸片接收命令操作的执行结果,并且向主机102提供从存储裸片接收到的执行结果作为对于从主机102接收到的多个命令的响应。
控制器130可以检查耦接到存储器件150中所包括的多个存储裸片的多个信道或路径的状态(例如信道或路径的繁忙状态、就绪状态、激活状态、空闲状态、正常状态或异常状态),然后通过响应于信道或路径的状态而决定的最佳信道或路径来将从主机102接收到的多个命令传送到对应的存储裸片。换句话说,控制器130可以通过最佳发送信道或路径将请求传送到对应的存储裸片,以便请求存储裸片执行与从主机102接收到的多个命令相对应的命令操作。此外,控制器130可以通过最佳发送信道或路径响应于对命令操作的请求而从对应的存储裸片接收命令操作的执行结果。控制器130可以通过响应于信道或路径的状态而决定的最佳信道或路径(即最佳接收信道或路径)来接收命令操作的执行结果。此外,控制器130可以将通过最佳发送信道或路径传送的命令的描述符与通过最佳接收信道或路径接收的执行结果的描述符进行匹配,然后向主机102提供与从主机102接收到的命令相对应的命令操作的执行结果。
命令的描述符可以包括与命令相对应的数据信息或位置信息、以及传送命令的发送信道或路径的标识信息。数据信息或位置信息可以包括与写入命令或读取命令相对应的数据的地址(例如,数据的逻辑页号)或数据被存储的位置的地址(例如,存储器件150的物理页信息),并且标识信息可以包括传送命令的发送信道或路径的标识符(例如,信道号或路径号)。执行结果的描述符可以包括与执行结果相对应的数据信息或位置信息、以及通过其来请求命令操作的信道或路径(即通过其来传送命令的发送信道或路径)的标识信息。数据信息或位置信息可以包括与写入命令相对应的编程操作的数据的地址或与读取命令相对应的读取操作的数据的地址(例如,数据的逻辑页号)、或者编程操作或读取操作被执行的位置的地址(例如,存储器件150的物理页信息),并且标识信息可以包括发送信道或路径的标识符(例如,信道号或路径号)。此外,命令的描述符和执行结果的描述符中所包括的信息(例如信道或路径的数据信息、位置信息或标识信息)可以作为上下文(context)或标签而被包括在描述符中。
也就是说,根据一个实施例的存储系统110可以通过耦接到存储器件150的存储裸片的多个信道之中的最佳信道或路径来发送/接收从主机102接收到的多个命令以及与该命令相对应的多个命令操作的执行结果。特别地,存储系统110可以响应于耦接到存储器件150的存储裸片的多个信道或路径的状态来独立地管理将命令传送到存储器件150的存储裸片的发送信道或路径、以及从存储器件150的存储裸片接收命令操作的执行结果的接收信道或路径。例如,存储系统110的控制器130可以响应于多个信道或路径的状态来决定传送第一命令的发送信道或路径、以及接收与第一命令相对应的第一命令操作的执行结果的接收信道或路径(作为独立的最佳信道或路径)。例如,控制器130可以决定发送信道或路径为第一最佳信道或路径,决定接收信道或路径为第一最佳信道或路径或第二最佳信道或路径,并分别通过所述独立的最佳信道或路径来执行第一命令的发送以及第一命令操作的执行结果的接收。
因此,根据一个实施例的存储系统110可以更有效地使用耦接到存储器件150的多个裸片的多个信道或路径。特别地,存储系统110可以分别通过最佳信道或路径来发送和接收从主机102接收到的多个命令以及与命令相对应的命令操作的执行结果,这使得能够进一步改善存储系统110的操作性能。在以下描述的实施例中,示例性地示出了通过针对存储系统110的存储器件150中所包括的存储裸片的多个信道或路径来发送和接收从主机102接收的多个命令以及与该命令相对应的命令操作的执行结果。然而,可以以相同的方式将该教导应用于如下情况:其中,多个存储系统(每个存储系统都包括控制器130和存储器件150)中的每一个通过针对每个存储系统的多个信道或路径来发送/接收从主机102接收到的多个命令、以及与命令相对应的命令操作的执行结果。此外,当从主机102接收到多个命令时,存储系统可以传送多个命令,执行与多个命令相对应的命令操作,并且传送命令操作的执行结果。参考图5至图9来更详细地描述该过程。因此,这里省略其详细描述。
控制器130的处理器134可以包括用于执行存储器件150的坏块管理的管理单元(未示出),并且该管理单元可以检查存储器件150中所包括的多个存储块152、154和156之中的坏块,然后执行坏块管理以处理被检查的坏块。可以如下执行坏块管理。当存储器件150是快闪存储器(例如,NAND快闪存储器)时,由于NAND快闪存储器的特性,在数据写入操作(例如,数据编程操作)期间可能发生编程失败。在这种情况下,处理器134可以将发生编程失败的存储块标记为坏块,然后将编程失败的数据写入或编程到新的存储块。此外,如上所述的具有3D层叠结构的存储器件150中存在坏块可能会使存储器件150的利用效率和存储系统110的可靠性迅速降级。因此,需要更可靠地执行坏块管理。
图4是示出根据一个实施例的存储系统内的控制器的图。
参考图4,与主机102和存储器件150交互工作的控制器130可以包括主机I/F 132、FTL 40、存储器I/F 142和存储器144。图4中所示的控制器130是参考图1描述的多个存储系统110A、110B和110C中所包括的控制器130的示例。
尽管在图4中未示出,但是依据实施例,参考图3描述的ECC 138可以被包括在FTL40中。在一个实施例中,ECC 138可以被实现为控制器130内的单独的模块、电路或固件。
主机I/F 132可以用于交换从主机102传输的命令和数据。例如,主机I/F 132可以包括命令队列56、缓冲管理器52和事件队列54。命令队列56可以顺序地储存从主机102传输的命令和数据,然后根据命令或数据被储存的顺序来输出命令和数据。缓冲管理器52可以对从命令队列56传输的命令和数据进行分类,或者调整要处理命令和数据的顺序。事件队列54可以顺序地传输用于处理从缓冲管理器52传输的命令和数据的事件。
可以从主机102连续地传输具有相同特性的多个命令和数据,或者具有不同特性的多个命令和数据可以被混合并传输。例如,可以传输用于读取数据的多个命令,或者可以交替地传输读取命令和编程命令。主机I/F 132可以将从主机102传输的命令和数据顺序地储存到命令队列56中。然后,主机I/F 132可以基于从主机102传输的命令和数据的特性来预测控制器130将执行哪个操作,并基于该预测来决定命令和数据的处理顺序或优先级。此外,根据从主机102传输的命令和数据的特性,主机I/F 132内的缓冲管理器52可以决定是将命令和数据储存在存储器144中还是将命令和数据传输到FTL 40。事件队列54可以从缓冲管理器52接收事件(存储系统或控制器130根据从主机102传输的命令和数据而在内部处理或执行所述事件),然后根据接收事件的顺序来将所接收到的事件传输到FTL 40。
在一个实施例中,FTL 40可以包括用于管理从事件队列54接收的事件的主机请求管理器(HRM)46、用于管理映射数据的映射管理器(MM)44、用于执行垃圾收集或损耗均衡的状态管理器42、以及用于在存储器件内的块中执行命令的块管理器48。
例如,HRM 46可以使用MM 44和块管理器48来根据从主机I/F 132接收到的读取命令和编程命令以及事件来处理请求。HRM 46可以将查询请求传输到MM 44以识别与所传输的请求的逻辑地址相对应的物理地址,并将针对该物理地址的闪存读取请求传输到存储器I/F 142以处理该读取请求。HRM 46可以将编程请求传输到块管理器48,以将数据编程到存储器件150的没有数据写入或者不具有数据的特定页,然后将针对该编程请求的映射更新请求传输到MM 44,以将已编程数据的内容更新为逻辑-物理地址映射信息。
块管理器48可以将HRM 46、MM 44和状态管理器42的编程请求转换成对针对存储器件150的编程请求,以便管理存储器件150内的块。为了使存储系统110(参见图2)的编程性能或写入性能最大化,块管理器48可以收集编程请求,并且将针对多平面和单次编程操作的闪存编程请求传输到存储器I/F 142。此外,为了使多信道和多方向闪存控制器的并行处理性能最大化,块管理器48可以将各种闪存编程请求传输到存储器I/F142。
块管理器48可以根据有效页计数来来管理闪存块,当需要空闲块时选择并擦除没有有效页的块,并且当需要垃圾收集时选择包括最小数量的有效页的块。为了使块管理器48具有足够数量的空块,状态管理器42可以通过执行垃圾收集来收集有效数据,将所收集的有效数据移动到空块,并擦除其中储存了有效数据的块。当块管理器48向状态管理器42提供关于要被擦除的块的信息时,状态管理器42可以检查要被擦除的块的所有闪存页,然后确定这些页是否有效。例如,为了确定每个页是否有效,状态管理器42可以识别记录在页的备用区域或带外(OOB)区域中的逻辑地址,然后将页的实际地址与映射到通过MM 44的查询请求而获取的逻辑地址的实际地址进行比较。状态管理器42可以将针对每个有效页的编程请求传输到块管理器48。当编程操作完成时,可以通过MM 44的更新操作来更新映射表。
MM 44可以管理逻辑-物理映射表,并且处理由HRM 46和状态管理器42而产生的查询和更新请求。MM 44可以将整个映射表储存在快闪存储器中,并依据存储器144的容量来高速缓存映射项。当在处理查询和更新请求时发生映射高速缓存未命中时,MM 44可以将读取请求传输到存储器I/F 142以加载储存在存储器件150中的映射表。当MM 44中的脏高速缓存块的数量超过阈值时,MM 44可以将编程请求传输到块管理器48以产生干净的缓存块,并将脏映射表储存在存储器件150中。
当在执行垃圾收集时状态管理器42拷贝有效页时,HRM 46可以针对所述页的相同逻辑地址来编程最新版本的数据,并同时发出更新请求。当状态管理器42在未正确完成有效页的复制的状态下请求映射更新时,MM 44可能不会执行映射表更新。仅当最新的映射表仍指示先前的实际地址时,MM 44才可以执行映射更新来保证准确性。
存储器件150可以包括多个存储块,依据可以在一个存储单元中储存或表示的比特位的数量,该多个存储块可以是单级单元(SLC)存储块或多级单元(MLC)存储块。SLC存储块可以包括由每个都能够将一比特位数据储存在其中的存储单元而实现的多个页。SLC块具有出色的数据操作性能和高耐用性。MLC存储块可以包括由每个都能够将多比特位数据储存在其中的存储单元而实现的多个页。MLC块比SLC存储器块具有更大的数据储存空间。换句话说,MLC存储块可以是高度集成的。特别地,存储器件150可以包括作为MLC存储块的三级单元(TLC)存储块(其包括由每个都能够将三比特位数据储存在其中的存储单元而实现的多个页)、四级单元(QLC)存储块(其包括由每个都能够将四比特位数据储存在其中的存储单元而实现的多个页)、或多级单元存储块(其包括由每个都能够将五比特位数据或更多比特位数据储存在其中的存储单元而实现的多个页),以及可以包括这样的MLC存储块,其包括由每个都能够将二比特位数据储存在其中的存储单元而实现的多个页。
尽管例示了存储器件150被实现为诸如快闪存储器之类的非易失性存储器(例如NAND快闪存储器),但这仅仅是示例。更一般地,存储器件150可以被实现为各种类型的存储器中的任何一种,所述各种类型的存储器诸如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM)、铁电随机存取存储器(FRAM)和/或自旋转移矩磁性随机存取存储器(STT-RAM或STT-MRAM)。
在一个实施例中,存储系统110中的控制器130可以检查用于存储器件150的多个信道或路径的状态,或者具体地检查在控制器130与存储器件150中的多个存储裸片之间的信道或路径的状态。可选地,多个存储系统中的任意存储系统(例如,主存储系统)的控制器可以检查用于所述多个存储系统的多个信道或路径的状态,或者具体地检查主存储系统与其他存储系统之间的信道或路径(例如主存储系统和从存储系统之间的信道或路径)的状态。换句话说,控制器130可以检查用于存储器件150的存储裸片的多个信道或路径中的每一个或用于多个存储系统的多个信道或路径中的每一个是否繁忙、就绪、激活、空闲、正常或异常。在一个实施例中,控制器130可以决定处于正常状态的就绪或空闲信道或路径是最佳信道或路径。特别地,控制器130可以将可用容量落在正常范围内的信道或路径或者操作水平落在正常范围内的信道或路径决定为最佳信道或路径。每个信道或路径的操作水平可以由信道或路径中的操作时钟、电力水平、电流/电压水平、操作定时、温度水平等来决定。
在一个实施例中,描述如下情况作为示例:将与从主机102接收到的多个写入命令相对应的写入数据储存在控制器130的存储器144之中的缓冲器/高速缓存中,将储存在缓冲器/高速缓存中的数据通过编程操作而编程并储存到存储器件150中的多个存储块中,响应于针对存储器件150的编程操作来更新映射数据,并且将已更新的映射数据储存在多个存储块中(即,执行与从主机102接收到的多个写入命令相对应的编程操作的情况)。此外,描述如下情况作为示例:当从主机102接收到针对储存在存储器件150中的数据的多个读取命令时检查与所述多个读取命令相对应的数据的映射数据,从存储器件150读取与读取命令相对应的数据,将读取数据储存在控制器130的存储器144中所包括的缓冲器/高速缓存中,并且将储存在缓冲器/高速缓存中的数据提供给主机102(即,执行与从主机102接收到的多个读取命令相对应的读取操作的情况)。此外,描述如下情况作为示例:当从主机102接收到针对存储器件150中的存储块的多个擦除命令时检查与所述多个擦除命令相对应的存储块,将储存在被检查的存储块中的数据擦除,响应于被擦除的数据来更新映射数据,并且将已更新的映射数据储存在存储器件150所包括的多个存储块中(即,执行与从主机102接收到的多个擦除命令相对应的擦除操作的情况)。此外,描述如下情况作为示例:从主机102接收多个写入命令、多个读取命令和多个擦除命令,并执行多个编程操作、多个读取操作和多个擦除操作。
举例来说,描述由控制器130来执行在存储系统110中的命令操作。然而,如上所述,控制器130中的处理器134可以例如通过FTL来执行命令操作。例如,控制器130可以将与从主机102接收的写入命令相对应的用户数据和元数据编程并储存到存储器件150所包括的多个存储块之中的任意存储块中,从存储器件150中的多个存储块之中的任意存储块读取与从主机102接收到的读取命令相对应的用户数据和元数据并将读取数据提供给主机102,或者从存储器件150中所包括的多个存储块之中的任意存储块擦除与从主机102接收到的擦除命令相对应的用户数据和元数据。
响应于编程操作,元数据可以包括第一映射数据和第二映射数据,该第一映射数据包括关于储存在存储块中的数据的逻辑到物理(L2P)信息,该第二映射数据包括物理到逻辑(P2L)信息。在下文中,将L2P信息称为‘逻辑信息’,并将P2L信息称为‘物理信息’。元数据可以进一步包括:关于与从主机102接收到的命令相对应的命令数据的信息、关于与该命令相对应的命令操作的信息、关于存储器件150的执行命令操作的存储块的信息、以及关于与命令操作相对应的映射数据的信息。换句话说,元数据可以包括除了与从主机102接收到的命令相对应的用户数据以外的所有其他信息和其他数据。
也就是说,在一个实施例中,控制器130可以执行与从主机102接收到的多个命令相对应的命令操作。例如,当从主机102接收到多个写入命令时,控制器130可以执行与写入命令相对应的编程操作。控制器130可以将与写入命令相对应的用户数据写入并储存到存储器件150的存储块中,例如,存储块之中的已经执行了擦除操作的空存储块、开放存储块或空闲存储块。此外,控制器130可以将第一映射数据和第二映射数据写入并储存到存储器件150的存储块之中的空存储块、开放存储块或空闲存储块中。第一映射数据可以包括记录了储存在存储块中的用户数据的逻辑地址与物理地址之间的映射信息(即逻辑信息)的L2P映射表或L2P映射列表,并且第二映射数据可以包括记录了已将用户数据储存在其中的存储块的物理地址与逻辑地址之间的映射信息(即物理信息)的P2L映射表或P2L映射列表。
当从主机102接收到写入命令时,控制器130可以将与写入命令相对应的用户数据写入并储存到存储块中,并且将元数据储存在存储块中,该元数据包括针对储存在存储块中的用户数据的第一映射数据和第二映射数据。特别地,当用户数据的数据段被储存在存储器件150的存储块中时,控制器130可以产生和更新第一映射数据的L2P段和第二映射数据的P2L段作为元数据的映射段(即映射数据的映射段),然后将映射段储存在存储器件150的存储块中。控制器130可以将储存在存储器件150的存储块中的映射段加载到控制器130所包括的存储器144中,并更新映射段。
在一个实施例中,当从主机102接收到多个写入命令时,控制器130可以检查用于存储器件150的多个信道或路径的状态,或者具体地检查耦接到存储器件150中所包括的多个存储裸片的多个信道或路径的状态,然后响应于信道或路径的状态来相互独立地决定最佳发送信道或路径和最佳接收信道或路径。在一个实施例中,控制器130可以通过经由最佳发送信道或路径将与写入命令相对应的用户数据和元数据传输并储存到存储器件150的对应存储裸片中来执行编程操作。此外,控制器130可以通过最佳接收信道或路径从存储器件150的对应存储裸片接收在存储器件150的所述对应存储裸片中的编程操作的执行结果,并将接收到的执行结果提供给主机102。
当从主机102接收到多个读取命令时,控制器130可以通过从存储器件150读取与读取命令相对应的读取数据来执行与所述多个读取命令相对应的读取操作,将读取数据储存在控制器130的存储器144中所包括的缓冲器/高速缓存中,然后将储存在缓冲器/高速缓存中的数据提供给主机102。
在一个实施例中,当从主机102接收到多个读取命令时,控制器130可以检查用于存储器件150的多个信道或路径的状态,或者具体地检查耦接到存储器件150中所包括的多个存储裸片的多个信道或路径的状态,然后响应于信道或路径的状态来相互独立地决定最佳发送信道或路径和最佳接收信道或路径。在一个实施例中,控制器130可以通过经由最佳发送信道或路径将针对与读取命令相对应的用户数据和元数据的读取请求传输到存储器件150的对应存储裸片来执行读取操作。此外,控制器130可以通过最佳接收信道或路径从存储器件150的存储裸片接收在存储器件150的所述对应存储裸片中的读取操作的执行结果(即与读取命令相对应的用户数据和元数据),并将用户数据提供给主机102。
当从主机102接收到多个擦除命令时,控制器130可以检查存储器件150的与擦除命令相对应的存储块,然后对所述存储块执行擦除操作。
在一个实施例中,当从主机102接收到多个擦除命令时,控制器130可以检查用于存储器件150的多个信道或路径的状态,或者具体地检查耦接到存储器件150中所包括的多个存储裸片的多个信道或路径的状态,然后响应于信道或路径的状态来相互独立地决定最佳发送信道或路径和最佳接收信道或路径。此外,在一个实施例中,控制器130可以通过经由最佳发送信道或路径而将与擦除命令相对应的、针对存储器件150的存储裸片中的存储块的擦除请求传输到存储器件150的对应存储裸片来执行擦除操作。然后,控制器130可以通过最佳接收信道或路径从存储器件150的存储裸片接收在存储器件150的所述对应存储裸片中的擦除操作的执行结果,并将执行结果提供给主机102。
当从主机102接收到多个命令(即,多个写入命令、多个读取命令和多个擦除命令)时,或者具体地当顺序地接收到所述多个命令时,存储系统110可以检查用于存储器件150的多个信道或路径的状态,响应于信道或路径的状态来相互独立地决定最佳发送信道或路径和最佳接收信道或路径,通过最佳发送信道或路径来请求存储器件150执行与所述多个命令相对应的命令操作或者具体地请求存储器件150中所包括的多个存储裸片执行对应的命令操作,并且通过最佳接收信道或路径从存储器件150的存储裸片接收命令操作的执行结果。存储系统110可以将通过最佳发送信道或路径传输的命令与通过最佳接收信道或路径接收的执行结果进行匹配,并向主机102提供对于从主机102接收的所述多个命令的响应。
在一个实施例中,存储系统110中所包括的控制器130可以检查用于存储系统110的存储器件150的多个信道或路径的状态,或者具体地检查控制器130与存储器件150中所包括的多个存储裸片之间的信道或路径的状态,然后相互独立地决定用于存储器件150的最佳发送信道或路径和最佳接收信道或路径。此外,多个存储系统之中的任意存储系统(例如,主存储系统)的控制器可以检查用于所述多个存储系统的多个信道或路径的状态,或者具体地检查主存储系统与其他存储系统(例如主存储系统与从存储系统)之间的信道或路径的状态,然后相互独立地决定用于存储系统的最佳发送信道或路径和最佳接收信道或路径。换句话说,在一个实施例中,控制器130可以检查用于存储器件150的存储裸片的多个信道或路径或者用于多个存储系统的多个信道或路径是否繁忙、就绪、激活、空闲、正常或异常。例如,控制器130可以将处于正常状态的就绪或空闲信道或路径确定为最佳信道或路径。具体地,控制器130可以将多个信道或路径之中的可用容量落在正常范围内的信道或路径或者操作水平落在正常范围内的信道或路径决定为最佳信道或路径。每个信道或路径的操作水平可以由该信道或路径中的操作时钟、电力水平、电流/电压水平、操作定时、温度水平等等来决定。此外,在一个实施例中,在多个存储系统之中可以基于相应存储系统的信息(例如,每个存储系统所包括的控制器130和存储器件150中的针对命令操作的能力(例如针对命令操作的性能能力)、处理能力、处理速度和处理潜伏时间)来决定主存储系统。可以通过多个存储系统之间的竞争来决定主存储系统。例如,可以通过基于主机102与相应存储系统之间的连接顺序的竞争来决定主存储系统。
图5是示出根据一个实施例的在数据处理系统中仲裁器与通过划分多个资源而获得的多个组之间的数据路径分配的图。
参考图5,仲裁器180和多个资源104可以通过多个数据路径170耦接。多个资源104可以被划分为多个组322、324和326。具体地说,仲裁器180可以通过一个或多个数据路径170耦接到组322、324和326中的每一个组。
在一个实施例中,组322、324和326之中的每一个组中的多个资源可以通过多个数据路径耦接到仲裁器180。例如,假设在数据处理系统中存在六个数据路径来将仲裁器180和多个资源104耦接。多个资源104中的资源可以通过六个数据路径耦接到仲裁器180。然而,每个资源可以不是通过使用所有的六个数据路径而执行与仲裁器180的数据通信,而是通过六个数据路径中的一个或多个来发送/接收数据。当特定资源通过第一数据路径发送/接收数据时,另一资源可以通过第二数据路径发送/接收数据。在这种情况下,每个资源需要包括与相应的数据路径相对应的多个数据发送/接收模块,或包括用于选择多个数据路径中的至少一个的多路复用器,例如仲裁器180。
在一个实施例中,尽管数据处理系统包括六个数据路径来将仲裁器180耦接到多个资源104,但是每个资源可以通过一个或两个数据路径耦接到仲裁器180。可以依据资源的数据输入/输出速度和数据路径的传输速率来决定将每个资源耦接到仲裁器180的数据路径的数量。例如,当第一资源具有10M bps(比特位/秒)的数据输入/输出速度并且数据路径具有5M bps的传输速率时,第一资源可以通过两个数据路径耦接到仲裁器180。
图5示出了多个资源104内的组322、324和326通过多个数据路径170耦接到仲裁器180。然而,参考图5描述的多个数据路径170可以表示在多个数据路径170之间进行分配的概念性数据路径。例如,第一组322中的资源可以通过10个数据路径物理地耦接至仲裁器180,但是仅两个数据路径可以被分配为可操作地耦接仲裁器180和第一组322中的资源。也就是说,在10个数据路径之中,两个数据路径被分配给第一组322的资源。可以将10个数据路径之中的其他8个数据路径分配给第二组324或第三组326中的资源。
多个资源104中的每个资源可以通过两个数据路径或三个数据路径物理地耦接到仲裁器180。例如,假设可供仲裁器180进行分配的数据路径的数量为10,资源的数量为5,并且每个资源通过三个数据路径而物理地耦接至仲裁器180。在这种情况下,当与每个资源耦接的三个数据路径全部加起来时,数据路径的总数为15。但是,由于仲裁器180可以分配的数据路径的数量为10,所以仲裁器180可以基于通过相应的数据路径而传送的数据的传输状态而在15个物理地耦接的数据路径之中选择性地分配10个用于可操作性连接的数据路径。为了提高效率,仲裁器180可以监视针对10个数据路径的相应数据传输状态或者针对5个资源的数据传输状态,并决定五个资源之中的要被分配10个数据路径中的每一个数据路径的资源。然而,在这种情况下,仲裁器180的操作可能变得非常复杂,并且开销可能增加。
在一个实施例中,可以将五个资源划分为多个组,并且可以不以资源为基础而是以组为基础来分配数据路径(即,不是单独地分配给资源而是分配给组)。例如,五个资源中的两个资源可以被放置在第一组322中,其他两个资源可以被放置在第二组324中,并且其余的资源可以被放置在第三组326中。然后,仲裁器180可以仅检查相应组的数据传输状态,并且以组为基础来动态地分配数据路径。例如,仲裁器180可以将一个数据路径基本地分配给三个组322、324和326中的每一个组,然后将其他七个数据路径选择性地分配给这三个组。仲裁器180不需要单独地监视相应数据路径的使用状态或每个资源的数据传输状态。仲裁器180可以仅基于相应组的数据传输状态来选择性地分配除了基本地分配给所述相应组的数据路径以外的其他数据路径。
在一个实施例中,可能不存在仲裁器180可以分配给相应组的额外可用的数据路径。例如,假设将多个资源104划分为三个组322、324和326,并且多个资源104和仲裁器180通过三个数据路径170物理地耦接。在这种情况下,可以向每个组分配一个数据路径。如果三个数据路径的数据传输状态明显不同,则仲裁器180可以重新布置三个组322、324和326中的资源。当重新布置每个组中的资源的数量时,这些组的数据传输负载可以变得更平衡。例如,尽管五个资源中的两个资源被包括在第一组322中,五个资源中的另外两个资源被包括在第二组324中,并且其余的一个资源被包括在第三组326中,但是仲裁器180可以基于原始的组的数据传输状态来重新布置资源,以使得一个资源属于第一组322,另一个资源属于第二组324,并且其余的三个资源属于第三组326。
图6A至图6C是示出根据一个实施例的数据处理系统分配数据路径的示例的图。具体而言,图6A示出了资源的数量等于数据路径的数量的情况,图6B示出了资源的数量大于数据路径的数量的情况,并且图6C示出了资源的数量小于数据路径的数量的情况。
图6A基于数据处理系统包括六个资源和六个数据路径的假设。在数据处理系统的操作的初始阶段,可以向六个资源中的每一个资源分配一个数据路径。根据在设置的时间点之后确定的相应六个资源的数据输入/输出状态或数据传输状态,可以以降序来决定第一资源至第六资源的访问频率。也就是说,第一资源可以是以最高频率来访问的,并且第六资源可以是以最低频率来访问的。仲裁器180(参见图5)可以基于访问频率来对第一资源至第六资源进行分组。由于第一资源的访问频率高,所以第一资源可以被设置为第一组,第二资源至第四资源可以被设置为第二组,并且第五资源和第六资源可以被设置为第三组。然后,仲裁器180可以向第一组分配三个数据路径,向第二组分配两个数据路径,并且向第三组分配一个数据路径。
在这里,相应组中所包括的资源的数量可以彼此不同,并且分配给相应组的数据路径的数量可以彼此不同。在一个实施例中,可以根据每个资源的访问频率或仲裁器与每个资源之间的数据吞吐量来决定每个组中所包括的资源的数量或分配给每个组的数据路径的数量。
图6B基于数据处理系统包括六个资源和三个数据路径的假设。在数据处理系统的操作的初始阶段,不能为每个资源分配一个或多个数据路径。因此,可以将多个资源划分为小于或等于数据路径的数量的组数。六个资源可以被划分为三个组,并且可以向每个组分配一个数据路径。根据在设置的时间点之后确定的相应六个资源的数据输入/输出状态或数据传输状态,可以以降序来决定第一资源至第六资源的访问频率。即,第一资源可以是以最高频率来访问的,并且第六资源可以是以最低频率来访问的。仲裁器180(参见图5)可以基于访问频率来对第一资源至第六资源进行分组。仲裁器可以将第一资源和第二资源设置为第一组,并且将第三资源至第六资源设置为第二组。然后,仲裁器可以将两个数据路径分配给第一组,并且将一个数据路径分配给第二组。
图6C基于数据处理系统包括六个资源和七个数据路径的假设。由于数据路径的数量大于资源的数量,所以在数据处理系统的操作的初始阶段,可以为每个资源分配一个数据路径,并且可以将其余的数据路径依次分配给相应的资源。具体地,可以为六个资源中的每一个资源分配一个数据路径,并且可以将其余的一个数据路径分配给第一资源。根据在设置的时间点之后确定的相应六个资源的数据输入/输出状态或数据传输状态,可以以降序来决定第一资源至第六资源的访问频率。即,第一资源可以是以最高频率访问的,并且第六资源可以是以最低频率访问的。仲裁器180(参见图5)可以基于访问频率来对第一资源至第六资源进行分组。由于第一资源的访问频率高,所以可以将第一资源设置为第一组,可以将第二资源和第三资源设置为第二组,并且可以将第四资源至第六资源设置为第三组。然后,仲裁器可以将三个数据路径分配给第一组,将两个数据路径分配给第二组,并且将两个数据路径分配给第三组。
参考图6A至图6C,可以依据数据处理系统中所包括的资源的数量和数据路径的数量而以不同的方式来执行用于在数据处理系统的操作的初始阶段分配数据路径的方法。然后,仲裁器可以基于在设置的时间点之后确定的相应资源的数据传输状态来再次将资源划分成组并决定分配给每个组的数据路径的数量。
在图6A至图6C中,相应资源的访问频率被描述为用于确定相应资源的数据传输状态的因素。然而,依据实施例,可以以各种方式来修改用于确定数据传输状态的方法。例如,可以根据每个资源与仲裁器180(参见图5)之间的数据吞吐量,或者由仲裁器决定的相应资源的等待计数,来确定数据传输状态。
图7是示意性地示出根据实施例的仲裁器的示例的图。
参考图7,仲裁器180可以包括数据接收器422、数据储存器424和数据路径连接器430。除了访问请求之外,数据接收器422还可以接收与从主机102传输的访问请求相对应的数据DIN。数据DIN可以与数据DIN的目的地信息(“Dest.”,例如,特定资源)一起被传输。此外,数据接收器422可以从外部源将与分配有关的信息DIN_info传输到数据路径分配器426。与分配有关的信息DIN_info可以包括资源被划分成的组的数量、要被分配给组的路径数据的数量、和关于阈值的信息(参见图12的步骤516)。如下所述,数据路径分配器426可以基于与分配有关的信息DIN_info来产生控制信号DP_CTRL。被数据接收器422接收到的数据DIN可以被临时储存在数据储存器424中。数据储存器424可以包括用于缓冲从主机102提供的访问请求的一个或多个请求缓冲器、以及用于缓冲连同来自主机102的访问请求一起提供的数据DIN的一个或多个数据缓冲器。可以在数据储存器424内分别为请求缓冲器和数据缓冲器提供资源。数据储存器424可以在数据通过数据路径被传输到目的地之前临时储存数据。例如,数据储存器424可以包括具有与队列相同的数据结构的数据缓冲器和请求缓冲器,并且因此根据数据被缓冲的顺序来输出数据。根据稍后将描述的控制信号DP_CTRL,数据路径连接器430可以针对包括从目的地信息Dest.识别的目的地(即,特定资源)的组来选择(即分配)多个数据路径中的一个;并且通过所选的数据路径将临时储存在数据储存器424内的数据缓冲器中的数据DIN传送到目的地(即,针对其选择数据路径的组中所包括的特定资源)。
仲裁器180还可以包括数据路径状况检查器428和数据路径分配器426。数据路径状况检查器428可以检查要传送储存在数据储存器424中的数据所通过的多个数据路径的状况DP_CON。状况信号DP_CON可以指示每个数据路径是繁忙还是就绪。在一个实施例中,数据路径状况检查器428可以例如通过带有冲突检测的载波感测多路访问(CSMA/CD)方案来接收状况信号DP_CON。在这种情况下,数据路径连接器430可以产生状况信号DP_CON。在另一个实施例中,数据路径状况检查器428可以经由数据DIN的识别而通过数据路径连接器430来接收状况信号DP_CON,所述数据DIN被缓冲在针对数据储存器424内的相应资源而提供的数据缓冲器中。当在与当前被分配数据路径的资源相对应的数据缓冲器中缓冲有设置数量的或更大数量的数据DIN时,当前分配的数据路径可以被视为繁忙。在这种情况下,数据储存器424可以产生状况信号DP_CON。例如,数据路径状况检查器428可以检查分配给每个当前布置的组的数据路径是繁忙还是就绪。数据路径分配器426可以基于由数据路径状况检查器428传输的数据路径的状态DP_STAT来决定要传送储存在数据储存器424中的数据的数据路径。数据路径连接器430可以根据用于数据路径分配器426所决定的数据路径的控制信号DP_CTRL来传送储存在数据储存器424中的数据。
在一个实施例中,当要通过针对对应的目的地而分配的数据路径来将储存在数据缓冲器中的数据DIN(连同在请求缓冲器中缓冲的对应的访问请求一起)传输到对应的目的地(由目的地信息Dest.来标识)时,数据路径状况检查器428可以通过从数据路径连接器430提供的状况信号DP_CON来检查数据路径是否繁忙。数据路径状况检查器428可以识别通过数据路径分配器426而针对对应的目的地分配的数据路径。例如,当与储存在数据储存器424内的数据缓冲器中的数据DIN相对应的目的地是第一资源时,数据路径状况检查器428可以检查分配给包括第一资源的组的数据路径的状况DP_CON。如果第一数据路径和第二数据路径被分配给包括第一资源的组,则数据路径状况检查器428可以检查第一数据路径和第二数据路径的状况DP_CON。当由于第一数据路径和第二数据路径繁忙而不能将在请求缓冲器中缓冲的访问请求连同储存在数据储存器424中的对应数据DIN传送到包括第一资源的组时,数据路径状况检查器428可以增加针对对应组的组等待计数DP_STAT。
在一个实施例中,数据路径分配器426可以基于由数据路径状况检查器428传输的针对相应组的等待计数DP_STAT来决定是否重新分配数据路径或者是否重新布置组。数据路径分配器426可以管理当前布置的组的信息以及数据路径到当前布置的组的当前分配状态。基于数据路径的状态DP_STAT、与分配有关的信息DIN_info和当前布置的组的信息、以及数据路径到当前布置的组的当前分配状态,数据路径分配器426可以执行组的重新布置和/或数据路径到所布置的组的重新分配以产生控制信号DP_CTRL。通过控制信号DP_CTRL,数据路径分配器426可以控制数据路径状况检查器428以将主机102电耦接到一个或多个当前布置的组,其包括通过目的地信息Dest.所标识的、数据DIN所要被传输到(连同对应的请求)的目的地。分配给组的数据路径可以由属于该组的资源电气地共享。例如,当组等待计数DP_STAT增加时,这可能表明需要为对应的组分配更多的数据路径。另一方面,当组等待计数DP_STAT没有增加时,这可能表明适当数量的数据路径被分配给了对应的组或者过多数量的数据路径被分配给了对应的组。此外,当组等待计数DP_STAT增加时,这可能表明需要将对应的组中所包括的一个或多个资源移动到另一个组。另一方面,当组等待计数DP_STAT没有增加时,这可能表明适当数量的资源被包括在对应的组中或者即使额外的资源被移入对应的组中也不会使效率降级。因此,数据路径分配器426可以响应于组等待计数是否改变来决定是否重新分配数据路径或重新布置组。
当数据路径的总数不足以覆盖所述组时,可以增加针对所有的组的组等待计数。在这种情况下,当针对特定组的组等待计数进一步增加时,这可能表明需要为该特定组分配更多的数据路径,或者该特定组的某些资源需要被移出到另一个组。数据路径分配器426可以比较针对相应组的组等待计数,并决定是否重新分配数据路径或重新布置组。
可以利用任何适当的硬件(例如电路、处理器等)或硬件和软件/固件的组合来实施图7中的每个元件(422、424、426、428和430)。
图8是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第一示例的流程图。
参考图8,用于控制数据处理系统内的多个数据路径的方法可以包括检查多个资源和多个数据路径的步骤612、以及将多个资源分组并将多个数据路径分配给组的步骤614。
检查多个资源和多个数据路径的步骤612可以包括确定在数据处理系统内发送/接收数据的资源的数量。此外,步骤612可以包括检查仲裁器与多个资源之间的可用数据路径的数量。
在对多个资源进行分组并将多个数据路径分配给相应组的步骤614中,数据处理系统可以基于资源的数量和数据路径的数量,在操作的初始阶段决定是否将资源划分成组并将数据路径分配给相应的组。例如,组的数量可以小于资源的数量。此外,组的数量可以小于或等于数据路径的数量。相应组中所包括的资源的数量可以彼此不同。
在一个实施例中,当数据处理系统储存有历史记录或日志以用于多个数据路径的使用、管理和控制时,数据处理系统可以参考所储存的历史记录或日志。数据处理系统可以基于所储存的历史记录或日志来将多个数据路径分配给多个资源。
图9是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第二示例的流程图。
参考图9,用于控制多个数据路径的方法可以包括:将多个资源划分为多个组的步骤622,将多个数据路径中的一个或多个第一数据路径分配给每个组的步骤624,以及响应于相应组的数据传输状态来额外地分配多个数据路径中的一个或多个第二数据路径的步骤626。多个数据路径可以被划分为第一数据路径和第二数据路径。第一数据路径可以指示必须被分配给每个组的数据路径,并且第二数据路径可以指示选择性地分配给每个组的数据路径。
将多个资源划分为多个组的步骤622可以包括将数据处理系统中所包括的多个资源划分为两个组或更多个组。组的最大数量可以等于数据路径的数量与资源的数量之中的较小者。
通过将多个数据路径中的一个或多个第一数据路径分配给每个组的步骤624,可以将一个或多个数据路径分配给每个组。当多个资源使用一个数据路径时,仲裁器可以通过目的地信息来将数据传输到每个资源,所述目的地信息被包含在包括数据的传输单位中。此外,通过数据路径传输的传输单位可以通过与时钟同步的同步传输方法或与时钟不同步的异步传输方法而在数据路径上移动。
可以将一个或多个数据路径分配给每个组。例如,当数据处理系统包括三个组和五个数据路径时,在数据处理系统的操作的初始阶段为每个组分配一个数据路径的情况下,剩余两个数据路径。剩余的两个数据路径可以按顺序或随机地被分配给三个组中的两组。在一个实施例中,当数据处理系统储存有已经使用和管理数据路径的历史记录或日志时,可以基于历史记录或日志来分配剩余的两个数据路径。
在分配了所有的数据路径之后,可以在设置的时间点通过数据路径来发送/接收数据。在设置的时间点之后,仲裁器可以通过响应于相应组的数据传输状态而额外地分配多个数据路径中的一个或更多个第二数据路径的步骤626来确定相应组的数据传输状态。在一个实施例中,可以基于组等待计数来决定每个组的数据传输状态。例如,主机可以请求对应的组处理数据。但是,当由于分配给对应的组的数据路径繁忙而使数据处理经历等待时段时,仲裁器可以将因为处理等待而增加的组等待计数与总等待计数(其也是因为处理等待而增加)进行比较。如下所述,每个组的组计数等待与总等待计数之间的比较的结果可以影响第二数据路径的额外分配。
基于每个组的数据传输状态,分配给对应的组的数据路径可以被重新分配。分配给每个组的一个或多个第一数据路径可以不被重新分配。重新分配可以限于额外地分配给每个组的一个或多个第二数据路径。例如,当一个第一数据路径和两个第二数据路径被分配给第一组时,仅这两个第二数据路径可以被重新分配。当基于相应组的数据传输状态,与第一组的等待计数相比第二组的等待计数显著增加时,可以将已经被分配给第一组的两个第二数据路径中的至少一个重新分配给第二组。
例如,所有的第二数据路径都可以被分配给具有与总等待计数相同的组等待计数的组。当特定组的等待计数等于总等待计数时,这可能表明除了该特定组之外的其他组的等待计数没有增加。在这种情况下,可以将分配给相应组或未被分配的所有的第二数据路径重新分配给组等待计数与总等待计数相同的对应的组。
在一个实施例中,与总等待计数和组等待计数的比率成比例的数量的第二数据路径可以被分配给对应的组。当数据路径的数量不足时,所有的组的等待计数都可以增加。在这种情况下,更多的第二数据路径可以被分配给等待计数显著增加的组。
在一个实施例中,当组等待计数为0时,可以将分配给对应的组的第二数据路径重新分配给另一个组。当组等待计数为0时,这可能表明对应的组中的等待计数没有增加。这可能表明分配给对应的组的数据路径为可用或空闲。因此,当在另一个组中出现等待计数或另一个组的等待计数增加时,可用或空闲的数据路径可以被重新分配给另一个组。
数据处理系统内的多个资源可以被划分为三个组或更多个组。当将多个资源划分为三个组或更多个组时,可以基于相应组的数据传输状态而仅将被分配给相应组的第二数据路径进行重新分配。
在一个实施例中,第一数据路径和第二数据路径按照使用来划分,并且对划分没有物理限制。多个数据路径可以被用作第一数据路径或第二数据路径。此外,当将三个数据路径分配给一个组时,三个数据路径中的一个可以仅执行第一数据路径的功能,且其他两个数据路径可以仅执行第二数据路径的功能。换句话说,三个数据路径中的一个可以不被固定成第一数据路径。
图10是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第三示例的流程图。
参考图10,用于控制多个数据路径的方法可以包括:将多个资源划分为多个组的步骤442,顺序地向相应组分配多个数据路径的步骤444,以及通过响应于相应组的数据传输状态而移动资源来对组进行重新布置的步骤446。
将多个资源划分为多个组的步骤442可以包括将数据处理系统中所包括的多个资源划分为两个或更多个组。通过对多个资源进行划分而获得的组的最大数量可以等于数据路径的数量和资源的数量中的较小者。
顺序地将多个数据路径分配给相应组的步骤444可以包括顺序地将多个数据路径分配给相应组。通过该过程,可以在数据处理系统的操作的初始阶段将至少一个数据路径分配给每个组。例如,在数据处理系统包括三个组和五个数据路径的情况下,可以将第一数据路径至第三数据路径分配给相应的组,并且可以将第四数据路径和第五数据路径分配给前两个组。
在一个实施例中,当储存有用于数据处理系统中的数据路径的使用和管理的历史记录或日志时,可以根据优先级来分配数据路径。即使根据优先级来将数据路径分配给相应的组时,也可以为每个组分配至少一个数据路径。
通过响应于相应组的数据传输状态而移动资源来重新布置组的步骤446可以包括确定相应组的数据传输状态,然后响应于相应组的数据传输状态来重新布置组。确定相应组的数据传输状态的过程可以以与参考图9描述的方式相似的方式来执行。例如,步骤446可以包括基于组等待计数来决定分配给每个组的数据路径的数量是否是足够的。在另一实施例中,可以基于另一标准(例如,数据吞吐量等)来估计相应组的数据传输状态。
与参考图9描述的实施例不同,在参考图10描述的用于控制多个数据路径的方法中,可以不重新分配数据路径,而是可以重新布置组。例如,假设将五个资源划分为第一组至第三组。在操作的初始阶段,可以将第一资源和第二资源分类为第一组,可以将第三资源和第四资源分类为第二组,并且可以将第五资源分类为第三组。当确定数据传输在第一资源和第二资源中频繁发生,但是数据传输没有在第三资源至第五资源中频繁发生时,可以将第一资源重新布置为第一组,可以将第二资源重新布置为第二组,并且可以将第三资源至第五资源重新布置为第三组。通过重新布置组而不重新分配数据路径,能够在提高数据路径的使用和管理效率的同时防止特定组的等待计数的增加。
在一个实施例中,已经参考图9和图10描述的用于控制多个数据路径的方法可以被组合并应用于数据处理系统。当响应于每个组的数据传输状态而重新布置组并且将分配给每个组的数据路径进行重新分配时,能够进一步提高数据路径的使用和管理效率。
图11是示出根据一个实施例的用于控制数据处理系统中的数据路径的方法的第四示例的流程图。具体而言,图11示出了用于在数据处理系统的操作的初始阶段或在数据处理系统的初始化之后控制数据路径的方法。
参考图11,在步骤460中,可以在数据处理系统的操作的初始阶段执行用于控制数据路径的方法。
可以通过在步骤462中将数据处理系统中所包括的所有资源除以数据路径的数量、并且在步骤464中向每个组分配相等数量的资源,来对多个资源进行分组。例如,当数据处理系统包括六个资源和三个数据路径时,可以设置三个组。在每个组中可以包括两个资源。当将所有资源除以数据路径的数量时,可以决定组的最大数量。
对于另一示例,当数据处理系统包括八个资源和五个数据路径时,可以设置五个组。五个组中的三个组可以包括两个资源,而其他两个组可以包括一个资源。
在一个实施例中,当数据处理系统包括八个资源和五个数据路径时,可以设置四个组。四个组中的每个组可以包括两个资源。
当将多个资源划分成组时,可以在步骤468中将数据路径分配给每个组。
然后,可以在步骤470中将数据路径的数量与组的数量进行比较。
当确定数据路径的数量不大于组的数量时(步骤470中为否),用于控制数据路径的方法可以在步骤474中结束。
当确定数据路径的数量大于组的数量时(步骤470中为是),可以在步骤472中将尚未分配给任何组的当前可用的数据路径顺序地分配给相应的组。当所有的数据路径都被分配时,用于控制数据路径的方法可以在步骤474中结束。
图12是示出根据实施例的用于控制数据处理系统中的数据路径的方法的第五示例的流程图。
参考图12,用于控制数据路径的方法可以包括在步骤510中执行预处理。预处理可以包括如参考图11所描述的在操作的初始阶段或在初始化之后执行的分配数据路径的过程。通过预处理,可以在初始阶段或在任何改变之前设置对包括一个或多个资源的组和数据路径的分配。
当通过数据路径来发送/接收数据时,可以监视数据路径的状态。可以通过与目的地(特定资源)相对应的数据路径来移动数据。当新请求的数据由于另一数据通过数据路径传输而不能通过该数据路径来传输时,在步骤512中数据路径可以变得繁忙。
当新数据由于数据路径繁忙而等待时,可以在步骤514中使资源组等待计数和资源等待计数增加。资源组等待计数可以是仅当要被传送给对应组的数据等待时增加,而资源等待计数可以是每当对应资源的数据等待时增加,不管是哪个组。
然后,在步骤516中可以将资源组等待计数与阈值进行比较,以便确定资源组等待计数是否等于阈值。阈值可以被预先设置。当资源组等待计数未达到阈值、即小于阈值时(步骤516中为否),可以在步骤534中保持数据路径被分配的状态。可以在不重新分配数据路径的情况下监视数据路径的状态(进行到步骤520)。
当资源组等待计数达到阈值时(步骤516中为是),在步骤518中,数据处理系统可以确定对应的组是否具有最小数量的资源。
当对应的组不是具有最小数量的资源的组时(步骤518中为否),在步骤528中,数据处理系统可以从相应的组中收集具有最高资源等待计数的资源,并对所收集的资源进行分组,然后,在步骤530中,数据处理系统可以将具有一个或多个数据路径的每个组中的一个数据路径重新分配给所收集的资源的组。
通过上述步骤528和530,可以重新布置组,并且可以重新分配数据路径。例如,当在步骤516中确定对应组的资源组等待计数达到阈值时,这可能表明该对应组需要被重新布置或需要更多数据路径。此外,当在步骤518中确定对应组不是具有最小数量的资源的组时,该组可能包括多个资源。然后,随着资源等待计数的增加,需要将一个或多个数据路径分配给该对应资源,或者需要控制该对应资源以不与另一资源共享数据路径。通过步骤528和530,可以将至少一个数据路径分配给频繁发生数据传输的资源,并且可以控制该资源以便不与另一资源共享数据路径。
然后,在处于瓶颈中的所有数据DIN通过在步骤530中得到的重新分配的数据路径而被传输到在步骤528中形成的重新布置的组中的资源之后,在步骤532中,可以将对应组中的资源等待计数重置为0。当将数据路径重新分配给对应组中所包括的资源时,重新分配之前的资源等待计数可能不再是必要的,因为该资源等待计数不是关于新重新分配的数据路径的信息。当资源等待计数未被重置而是递增时,可能不会反映数据处理系统内的当前状况。
当对应组是具有最小数量的资源的组时(步骤518中为是),在步骤520中,可以将分配给除了该对应组之外的具有最低组等待计数的组的一个数据路径重新分配给该对应组。
在数据路径在步骤520中被重新分配之后的步骤522中,在处于瓶颈中的所有数据DIN通过重新分配的数据路径而被传输到数据路径被重新分配的对应组中的资源之后,可以将额外地分配了数据路径的组的组等待计数重置为0。
在对应组的资源组等待计数被重新布置之后,在步骤524中,数据处理系统可以检查被剥夺了数据路径的组是否具有一个或多个数据路径。
当被剥夺了数据路径的组具有至少一个分配给其的数据路径时(步骤524中为是),在步骤534中,数据处理系统可以保持数据路径被分配的状态。
另一方面,当被剥夺了数据路径的组未被分配至少一个数据路径时(步骤524中为否),在步骤526中,可以将被剥夺了数据路径的组与具有第二最低组等待计数的组进行合并。通过该操作,可以合并具有最低组等待计数的两个组。
在两个组被合并之后,在步骤534中,数据处理系统可以保持数据路径被分配的状态。
在一个实施例中,由于数据处理系统中的具有最低组等待计数的组需要具有至少一个数据路径,因此在该具有最低组等待计数的组具有分配给其的一个数据路径的情况下,可以将分配给具有第二最低组等待计数的组的数据路径进行重新分配,并且可以不重新布置组。
在一个实施例中,用于控制数据路径的方法可以大致包括重新分配阶段、合并阶段和划分阶段。重新分配阶段可以包括步骤520和522。在重新分配阶段中,可以将另一个组的数据路径重新分配,以便将数据路径额外地分配给这样的组:即用于向资源发送数据/从资源接收数据的数据路径的利用率高。
合并阶段可以包括步骤524和526。当在重新分配阶段中被剥夺了数据路径的组不具有分配给其的数据路径时,该过程可以进行到合并阶段。在合并阶段中,可以将用于向资源发送数据/从资源接收数据的数据路径的利用率不高的组与另一组合并,以便减少组的数量。
划分阶段可以包括步骤528和530。在划分阶段中,由于组中存在用于发送/接收数据的数据路径的利用率高的资源(因为等待计数高,即使资源的数量低),所以可以将对应的资源分为单独的组,并且可以将数据路径分配给该组。
通过重新分配阶段、合并阶段和划分阶段,可以调整数据处理系统内的数据路径与包括一个或多个资源的组之间的平衡。
通过上述实施例,数据处理系统可以在每当产生了通过数据路径进行数据传输的请求时监视等待计数是否增加,并且通过数据路径的重新分配或组的重新布置来提高数据路径的利用率。
根据实施例的装置可以具有以下效果。
数据处理系统、其操作方法和用于检查其操作的方法可以通过对数据处理系统内的多个资源进行分组来分配多个数据路径,并管理多个数据路径,从而通过多个数据路径来提高数据传输效率。
该装置和方法可以将数据处理系统中的多个资源划分成比数据路径的数量更小的数量的组;动态地改变分配给每个组的数据路径的数量;并通过多个资源与主机之间的多个信道来改善数据传输的效率,即减小数据潜伏时间并增加数据吞吐量。
该装置和方法可以将数据处理系统中所包括的多个资源划分为多个组;为每个组分配一个或多个信道;以及重新布置所述资源的组,以便通过多个信道来提高数据吞吐量。
通过各种实施例获得的效果不限于上述那些。本领域技术人员将从本公开内容中理解,其他有益效果是可能的。
尽管已经示出并描述了各种实施例,但是根据本公开,对于本领域技术人员而言显而易见的是,在不脱离由所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (22)
1.一种数据处理系统,包括:
多个资源,其适用于处理数据;
主机,其适用于请求所述多个资源中的至少一个来处理所述数据;
多个数据路径,其适用于在所述主机与所述多个资源之间传输所述数据;以及
仲裁器,其适用于:
将所述多个资源划分为多个组,
将所述多个数据路径中的至少一个第一数据路径分配给每个组,以及
基于所述多个组的相应传输状态,通过将所述多个数据路径中的至少一个第二数据路径额外地分配给每个组、或者通过从所述多个组中的一个组将至少一个资源移动到所述多个组中的另一个组,来重新布置所述多个组。
2.根据权利要求1所述的数据处理系统,其中,所述多个组的数量小于所述多个资源的数量,并且小于或等于所述多个数据路径的数量。
3.根据权利要求1所述的数据处理系统,其中,相应的组中所包括的资源的数量彼此不相等。
4.根据权利要求1所述的数据处理系统,
其中,所述仲裁器通过将每个组的组等待计数与总等待计数进行比较来确定每个组的数据传输状态,以及
其中,每个组的所述组等待计数在由于分配给对应组的所述数据路径繁忙而使属于所述对应组的资源对数据的处理进行等待时增加,即使所述主机请求所述对应组的资源来处理所述数据。
5.根据权利要求4所述的数据处理系统,其中,所述仲裁器向每组的组等待计数与所述总等待计数相同的组额外地分配除了所述至少一个第一数据路径以外的其余数据路径作为所述至少一个第二数据路径。
6.根据权利要求4所述的数据处理系统,其中,所述仲裁器根据每个所述组等待计数与所述总等待计数的比率来将所述至少一个第二数据路径额外地分配给相应的组。
7.根据权利要求4所述的数据处理系统,其中,当所述组之中的一个组的组等待计数为0时,所述仲裁器将当前分配给所述组的所述至少一个第二数据路径重新分配给所述组之中的另一个组。
8.根据权利要求1所述的数据处理系统,其中,在所述数据在所述主机与所述多个资源之间传输之前,所述仲裁器根据所述组的数量、每个组内的所述资源的数量、以及所述数据路径的数量,将所述数据路径均等地分配给所述组。
9.根据权利要求1所述的数据处理系统,其中,所述仲裁器基于数据传输状态来重新分配当前分配给每个组的所述至少一个第二数据路径。
10.根据权利要求1所述的数据处理系统,其中,所述仲裁器通过合并两个或更多个组、或者将单个组划分为两个组或更多个组,来重新布置相应的组。
11.一种用于控制多个数据路径的使用的方法,所述方法包括:
将多个资源划分为多个组,每个资源能够处理数据;
将所述多个数据路径中的至少一个第一数据路径分配给每个组,以用于在所述多个资源与请求处理所述数据的主机之间传输所述数据;
基于所述多个组的相应数据传输状态,通过将所述多个数据路径中的至少一个第二数据路径额外地分配给每个组、或者通过从所述多个组中的一个组将至少一个资源移动到所述多个组中的另一个组,来重新布置所述多个组。
12.根据权利要求11所述的方法,其中,所述多个组的数量小于所述多个资源的数量,并且小于或等于所述多个数据路径的数量。
13.根据权利要求11所述的方法,其中,相应的组中所包括的资源的数量彼此不相等。
14.根据权利要求11所述的方法,
还包括:通过将每个组的组等待计数与总等待计数进行比较来确定每个组的所述数据传输状态,
其中,每个组的所述组等待计数在由于分配给对应组的所述数据路径繁忙而使所述对应组的资源对数据的处理进行等待时增加,即使所述主机请求所述对应组的资源来处理所述数据。
15.根据权利要求14所述的方法,其中,所述额外地分配的步骤包括:向所述组等待计数与所述总等待计数相同的组分配除了所述至少一个第一数据路径以外的其余数据路径作为所述至少一个第二数据路径。
16.根据权利要求14所述的方法,其中,所述额外地分配的步骤包括:根据每个所述组等待计数与所述总等待计数的比率来将所述至少一个第二数据路径分配给相应的组。
17.根据权利要求14所述的方法,还包括:当所述组之中的一个组的组等待计数为0时,将当前分配给所述组的第二数据路径重新分配给所述组之中的另一个组。
18.根据权利要求11所述的方法,还包括:在所述数据在所述主机与所述多个资源之间传输之前,根据所述组的数量、每个组内的所述资源的数量、以及所述数据路径的数量,将所述数据路径均等地分配给所述组。
19.根据权利要求11所述的方法,其中,通过基于所述数据传输状态来重新分配当前分配给每个组的所述至少一个第二数据路径,来执行所述重新布置的步骤。
20.根据权利要求11所述的方法,其中,通过合并两个或更多个组、或将单个组划分成两个或更多个组,来执行所述重新布置的步骤。
21.一种储存系统,包括:
一个或多个组,每个组包括一个或多个存储系统,每个存储系统被配置为响应于从主机提供的主机请求来执行存储操作;以及
分配器,其可操作地耦接在所述主机和所述组之间,并且被配置为:通过基于要被传输到所述组内的相应存储系统的挂起的主机数据的量而向每个组动态地分配传输路径,在所述主机与所述组之中的选定的组内的存储系统之间传输关于所述主机请求的主机数据,
其中,每个组内的存储系统共享被分配给对应组的一个或多个传输路径。
22.一种储存系统,包括:
一个或多个组,每个组包括一个或多个存储系统,每个存储系统被配置为响应于从主机提供的主机请求来执行存储操作;以及
布置器,其通过分配给相应组的一个或多个传输路径而可操作地耦接在所述主机与所述相应组之间,并且被配置为:通过基于要被传输到所述组内的相应存储系统的挂起的主机数据的量而动态地布置所述相应组内的存储系统,在所述主机与所述组之中的选定的组内的存储系统之间传输关于所述主机请求的主机数据,
其中,每个组内的存储系统共享被分配给对应组的一个或多个传输路径。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180152014A KR20200065489A (ko) | 2018-11-30 | 2018-11-30 | 데이터 처리 시스템 내 자원 사용에 대응하여 데이터 패스를 동적 할당하는 방법 및 장치 |
KR10-2018-0152014 | 2018-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258496A true CN111258496A (zh) | 2020-06-09 |
CN111258496B CN111258496B (zh) | 2023-07-14 |
Family
ID=70850125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911190282.5A Active CN111258496B (zh) | 2018-11-30 | 2019-11-28 | 动态分配数据路径的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11372564B2 (zh) |
KR (1) | KR20200065489A (zh) |
CN (1) | CN111258496B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112019618A (zh) * | 2020-08-27 | 2020-12-01 | 苏州浪潮智能科技有限公司 | 一种存储区域网络中多路径服务方法、系统、设备及介质 |
CN112565039A (zh) * | 2020-12-11 | 2021-03-26 | 杭州和利时自动化有限公司 | 一种通信网络架构 |
CN113608690A (zh) * | 2021-07-17 | 2021-11-05 | 济南浪潮数据技术有限公司 | 一种iscsi target多路径分组的方法、装置、设备及可读介质 |
CN118377760A (zh) * | 2024-06-25 | 2024-07-23 | 北京云成金融信息服务有限公司 | 一种文件灵活存储方法 |
CN118377760B (zh) * | 2024-06-25 | 2024-10-18 | 北京云成金融信息服务有限公司 | 一种文件灵活存储方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210151581A (ko) * | 2020-06-05 | 2021-12-14 | 삼성전자주식회사 | 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 스토리지 장치 |
US11798646B2 (en) * | 2020-10-29 | 2023-10-24 | Everspin Technologies, Inc. | Systems and methods for monitoring and managing memory devices |
US11907587B2 (en) * | 2021-06-09 | 2024-02-20 | Western Digital Technologies, Inc. | Managing persistent memory regions across multiple protocols |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085276A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
US6167558A (en) * | 1998-02-20 | 2000-12-26 | Xilinx, Inc. | Method for tolerating defective logic blocks in programmable logic devices |
US20030131043A1 (en) * | 2002-01-09 | 2003-07-10 | International Business Machines Corporation | Distributed allocation of system hardware resources for multiprocessor systems |
US7743191B1 (en) * | 2007-12-20 | 2010-06-22 | Pmc-Sierra, Inc. | On-chip shared memory based device architecture |
US7984415B1 (en) * | 2009-02-27 | 2011-07-19 | Xilinx, Inc. | Merging of equivalent logic blocks in a circuit design |
US20170046293A1 (en) * | 2015-08-10 | 2017-02-16 | Futurewei Technologies, Inc. | Dynamic assignment of groups of resources in a peripheral component interconnect express network |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060140A (en) | 1986-01-16 | 1991-10-22 | Jupiter Technology Inc. | Universal programmable data communication connection system |
US4878166A (en) | 1987-12-15 | 1989-10-31 | Advanced Micro Devices, Inc. | Direct memory access apparatus and methods for transferring data between buses having different performance characteristics |
JP5229712B2 (ja) * | 2007-07-11 | 2013-07-03 | 日本電気株式会社 | タイムスロット選択装置、光伝送装置、光伝送ネットワークシステム及びタイムスロット選択方法 |
US8756608B2 (en) * | 2009-07-01 | 2014-06-17 | International Business Machines Corporation | Method and system for performance isolation in virtualized environments |
US20110302357A1 (en) | 2010-06-07 | 2011-12-08 | Sullivan Jason A | Systems and methods for dynamic multi-link compilation partitioning |
KR102012699B1 (ko) | 2013-01-25 | 2019-08-21 | 삼성전자 주식회사 | 다중 버스 시스템 및 이를 포함하는 반도체 시스템 |
US9740574B2 (en) | 2014-05-09 | 2017-08-22 | Commvault Systems, Inc. | Load balancing across multiple data paths |
US10509770B2 (en) | 2015-07-13 | 2019-12-17 | Samsung Electronics Co., Ltd. | Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device |
-
2018
- 2018-11-30 KR KR1020180152014A patent/KR20200065489A/ko not_active Application Discontinuation
-
2019
- 2019-11-21 US US16/691,190 patent/US11372564B2/en active Active
- 2019-11-28 CN CN201911190282.5A patent/CN111258496B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085276A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
US6167558A (en) * | 1998-02-20 | 2000-12-26 | Xilinx, Inc. | Method for tolerating defective logic blocks in programmable logic devices |
US20030131043A1 (en) * | 2002-01-09 | 2003-07-10 | International Business Machines Corporation | Distributed allocation of system hardware resources for multiprocessor systems |
US7743191B1 (en) * | 2007-12-20 | 2010-06-22 | Pmc-Sierra, Inc. | On-chip shared memory based device architecture |
US7984415B1 (en) * | 2009-02-27 | 2011-07-19 | Xilinx, Inc. | Merging of equivalent logic blocks in a circuit design |
US20170046293A1 (en) * | 2015-08-10 | 2017-02-16 | Futurewei Technologies, Inc. | Dynamic assignment of groups of resources in a peripheral component interconnect express network |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112019618A (zh) * | 2020-08-27 | 2020-12-01 | 苏州浪潮智能科技有限公司 | 一种存储区域网络中多路径服务方法、系统、设备及介质 |
CN112565039A (zh) * | 2020-12-11 | 2021-03-26 | 杭州和利时自动化有限公司 | 一种通信网络架构 |
CN113608690A (zh) * | 2021-07-17 | 2021-11-05 | 济南浪潮数据技术有限公司 | 一种iscsi target多路径分组的方法、装置、设备及可读介质 |
CN113608690B (zh) * | 2021-07-17 | 2023-12-26 | 济南浪潮数据技术有限公司 | 一种iscsi target多路径分组的方法、装置、设备及可读介质 |
CN118377760A (zh) * | 2024-06-25 | 2024-07-23 | 北京云成金融信息服务有限公司 | 一种文件灵活存储方法 |
CN118377760B (zh) * | 2024-06-25 | 2024-10-18 | 北京云成金融信息服务有限公司 | 一种文件灵活存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111258496B (zh) | 2023-07-14 |
KR20200065489A (ko) | 2020-06-09 |
US20200174687A1 (en) | 2020-06-04 |
US11372564B2 (en) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258496B (zh) | 动态分配数据路径的装置和方法 | |
CN110825319B (zh) | 基于块状态确定可用性的存储器系统及操作方法 | |
CN110806837B (zh) | 数据处理系统及其操作方法 | |
CN110781096A (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
CN110780809B (zh) | 针对多个存储器系统的接合管理元数据的设备和方法 | |
CN112445723A (zh) | 用于在存储器系统中的传输映射信息的装置和方法 | |
US20210157514A1 (en) | Apparatus and method for improving write throughput of memory system | |
KR102398181B1 (ko) | 쓰기 데이터를 위해 할당될 물리 어드레스를 미리 관리하는 스토리지 장치 | |
CN110780810B (zh) | 用于彼此接合多个存储器系统以存储数据的设备和方法 | |
CN112148632A (zh) | 用于改善存储器系统的输入/输出吞吐量的设备和方法 | |
US20200042225A1 (en) | Apparatus and method for controlling metadata for engagement of plural memory systems | |
KR20220048569A (ko) | 메모리 시스템에서 저장 공간을 제어하는 장치 및 방법 | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
US20210026733A1 (en) | Memory system, data processing system and operation method of the same | |
CN115145475A (zh) | 用于调度在存储器系统中执行的操作的设备和方法 | |
US11550502B2 (en) | Apparatus and method for controlling multi-stream program operations performed in a memory block included in a memory system | |
US11442628B2 (en) | Apparatus and method for engaging a plurality of memory systems with each other | |
CN111949205A (zh) | 共享存储器系统、数据处理系统或网络服务器的数据属性的设备和方法 | |
US20200341890A1 (en) | Memory system, data processing system and operation method of the same | |
CN113050881A (zh) | 提高存储器系统输入/输出吞吐量的设备和方法 | |
CN113126897A (zh) | 提高存储器系统的输入和输出吞吐量的设备和方法 | |
KR20200014162A (ko) | 복수의 메모리 시스템의 연동을 위한 메타 데이터의 관리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |