由主机到设备控制器传输命令的方法及使用其的系统与流程

文档序号:13886899阅读:395来源:国知局

本发明涉及命令传输领域,特别是涉及一种用于由主机到设备控制器传输命令的方法及使用其的系统。



背景技术:

传统上,当主机传输命令到设备中时,必须通过传输接口,一次传输作业传输一个命令。随着命令传输科技的发展,主机可以传送多个命令,例如命令队列,而设备控制器也能处理二个或多个命令。因此,主机可以将一个命令分割成二个或多个子命令并发送到设备控制器,进而让命令处理的速度可以加快。

命令传输的过程如图1所绘示。当主机开机时或命令传输前,主机驱动程序经由接口发送辨认命令到该设备控制器,用来辨认独立储存设备(硬盘(harddiskdrive,hdd)、固态硬盘(solidstatedrive,ssd)或记忆卡)或设备控制器管理的储存设备的信息。该辨认命令与其它稍后会提及的命令可符合某一总线协议。对非挥发性内存架构的储存设备来说,该总线协议可以是由非挥发性内存高速(nonvolatilememoryexpress)标准所发展的协议。非挥发性内存高速标准描述pcie架构ssd的缓存器接口、命令组与特征组。于是,该设备控制器发送回关于储存设备的设备信息给主机驱动程序。设备信息可包含储存设备单元大小,如闪存页与块的大小、闪存的种类、最快传输速度等等。依照该设备信息,主机驱动程序可提供准备执行命令的地址给设备控制器。设备控制器能读取该地址的命令并执行之。

如上所述,因为主机的驱动程序能分割命令为多个(至少二个)子命令,以便设备控制器能从不同地址读取子命令,并在单个处理器不同的作业程序(task)或是多个处理器执行之。这是可行的,但传统技术中并没有实现它具体可行的方法,因此仍无法提升主机将命令发送给设备控制器的命令处理速度。



技术实现要素:

鉴于此,有必要针对传统技术中没有提升主机发送给设备控制器的命令处理速度的方法的问题,提供一种可以提升命令处理速度的由主机到设备控制器传输命令的方法及使用其的系统。

为了满足上述需求,本发明提供的用于由主机到设备控制器传输命令的方法,包含步骤:

a、确定区段大小;

b、分割命令为多个分段,每一所述分段具有的大小与所述区段大小相同;

c、依序分布所述分段至n群中,如果最后一个分段小于一个区段则补齐至一个区段大小;

d、如果分布循环结束而仍有余留分段待分布,则继续维持步骤c中相同的分布顺序;

e、在所有分段分布后,重建每一群的分段为子命令;及

f、同步提供所述子命令到设备控制器。

在其中一个实施例中,所述命令最后分割的分段的大小与所述区段大小相同。

在其中一个实施例中,所述区段大小非挥发性内存芯片的一页或是多页相同。

在其中一个实施例中,所述n为正整数且可大于等于2。

在其中一个实施例中,所述n为由所述设备控制器所能同步取得并执行的子命令的最大数目。

在其中一个实施例中,所述子命令提供方法为发送主机中子命令地址到设备控制器而取得。

在其中一个实施例中,如果非挥发性内存高速规范用于命令传输,所述子命令地址为提交队列。

本发明还提供一种使用前述方法的系统,该系统包含:

主机,安装驱动程序,具有内存,用以储存命令与子命令,其中所述驱动程序用以确定区段大小;分割命令为多个分段,每一所述分段具有的大小与所述区段大小相同;依序分布所述分段至n群中;如果分布循环结束而仍有余留分段待分布,则继续依序分布余留分段至n群中;如果最后一个分段小于一个区段则补齐至一个区段大小;在所有分段分布于所述内存后,重建每一群中的所述分段为子命令;及同步提供所述子命令;及

储存设备,远距或近端连接到所述主机,用于储存数据供存取,包含:

多个非挥发性内存芯片;及

设备控制器,连接到所述主机,用以同步从所述命令取得的所述子命令并执行所述子命令。

在一个实施例中,命令最后分割的分段的大小与所述区段大小相同或较小。

在其中一个实施例中,所述区段大小与所述非挥发性内存芯片的一页或多页相同。

在其中一个实施例中,所述n为整数且大于等于2,

在其中一个实施例中,所述n为由该设备控制器所能同步取得并执行的子命令的最大数目。

在其中一个实施例中,所述子命令提供方法为发送所述主机中子命令地址到设备控制器而取得。

在其中一个实施例中,如果非挥发性内存高速规范用于命令传输,所述子命令地址为提交队列。

在其中一个实施例中,所述设备控制器与驱动程序设定同步执行来自所述命令的所有子命令以便所述设备控制器能在所述子命令执行之后反馈所述主机。

本发明的有益效果至少包括:

上述由主机到设备控制器传输命令的方法及使用其的系统,利用子命令大小较小及同步执行设备控制器中作业程序或多个处理器的优点,执行这些子命令的时间短于执行原始命令的时间,从而提升命令的处理速度。

附图说明

图1为一个实施例中的传统命令传输的示意图;

图2为一个实施例中的由主机到设备控制器传输命令的方法的流程示意图;

图3为一个实施例中的使用由主机到设备控制器传输命令的方法的系统的结构示意图;

图4为一个实施例中的ram模块中的数据结构示意图;

图5为一个实施例中的命令如何被分割的示意图;

图6为一个实施例中的两个形成的子命令的示意图;

图7为另一个实施例中的命令如何被分割的示意图;

图8为一个实施例中的三个形成的子命令的示意图。

具体实施方式

本发明将参照下述的实施方式而更具体地描述。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明由主机到设备控制器传输命令的方法及使用其的系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

参见图2,图2为一个实施例的由主机到设备控制器传输命令的方法的流程图。该方法可通过一系统来实现,该系统具有主机与设备控制器,用来执行读写命令到设备控制器管理的储存设备中。要注意的是该系统可以指的是个人计算机、平板计算机、智能型手机或用于特殊作业的独立电子设备,如控制器车设备的车用计算机,主机与储存设备整合为一体。该系统也可具有与主机可拆卸地连接的储存设备。举例来说,数字相机中的中央处理单元(centralprocessingunit)与该中央处理单元经由连接器间接连接的记忆卡。此外,本发明提及的系统也可以指的是客户端计算机与远程数据中心的云端储存设备(虚拟或实体)。读写命令可经由局域网络(localareanetwork)或因特网传送与接收。处理命令传输的方式对所有应用的态样都一样。以下以一实施例中的本地应用来说明。

图3显示使用由主机到设备控制器传输命令的方法的系统10,其具有应用本发明提供方法的主机100与储存设备200。主机100与储存设备200设置于机壳(未绘示)中并经由pci(peripheralcomponentinterconnect)express(pcie)总线300连接。主机100具有中央处理单元110、ram模块120与pcie控制器130,它也可能具有其它未在本发明范围内的电子组件或设备,因此,不对这些电子组件或设备进行进一步限定。主机100安装驱动程序115,该驱动程序115在中央处理单元110上电后启动运作。驱动程序115的主要功能包括:确定区段大小;分割命令为多个分段,每一分段具有的大小与该区段大小相同;依序分布这些分段至n群中;如果分布循环结束而仍有余留分段待分布,则继续依序分布余留分段至n群中;如果最后一个分段小于一个区段则补齐至一个区段大小;在所有分段分布于内存后,重建每一群的分段为子命令;及同步提供这些子命令到设备控制器。每一功能的细节将在后面详细说明。ram模块120用来储存命令与子命令。pcie控制器130负责与设备控制器210,透过pcie总线300联通。

储存设备200在本地端连接到主机100,用以储存数据在机壳内供存取。当然,如上所述,在其它实施例中,储存设备200可远程由因特网连接到主机100。依照本发明,储存设备200应为非挥发性内存型储存设备,诸如ssd或emmc。因而,储存设备200可具有多个非挥发性内存芯片230,用以储存数据。实际上,每一非挥发性内存芯片230可以是nand闪存芯片、nor闪存芯片,或电荷缺陷储存式闪存芯片。储存设备200也可具有挥发性内存单元220,如动态随机存取内存(dynamicrandomaccessmemory,dram)模块。挥发性内存单元220能用来暂时保存某些来自主机100,用于执行命令的重要数据。例如,挥发性内存单元220可具有用于映像实体地址与对应逻辑地址的映像表以供存取作业执行。储存设备200具有设备控制器210。储存设备200利用设备控制器210,通过pcie总线300以连接至主机100。设备控制器210能同步取得由命令产生的子命令并执行这些子命令。以下说明系统如何由提供的方法而运作的一个具体实施例。

要强调的是,在一个实施例中,提供的方法是由驱动程序115与设备控制器210所实现。如果本发明进行商业化,驱动程序115应该与设备控制器210同时贩卖,不然系统10无法工作。依照该方法,第一步骤为:s01,确定区段大小。区段大小为命令(读取或写入)分割的单元大小,区段大小建议相同于非挥发性内存芯片230的一页(page)或多页的大小。常用的页大小为4kb,本实施例使用4kb为区段大小。区段大小由驱动程序115设定。

第二步骤为:s02,分割命令为多个分段,每一分段具有的大小与该区段大小相同。为了能有较佳的理解,请见图5,该图显示命令如何被分割。命令1具有18kb的大小,占据ram模块120中0到17的地址。因为区段大小为4kb,由命令1分割的4个地址中的数据形成分段:第一分段(从0到3)、第二分段(从4到7)、第三分段(从8到11)、第四分段(从12到15)与第五分段(从16到17)。在多数情形下,命令最后分割的分段(如第五分段)大小可能小于该区段大小,所以将第五分段补齐到4kb。

接着,s03,依序分布这些分段至n群中。如图6所示的分布结果,n设为2以便形成两群。第一分段分布到第一群,接着第二分段分布到第二群。s04,如果分布循环结束而还有分段余留待分布,就维持步骤s03中相同的分布顺序。第三分段分布到第一群,第四分段分布到第二群且最终第五分段分布到第一群。第一群依序具有第一分段、第三分段与第五分段。第二群依序具有第二分段与第四分段。分布的结果显示在图6中。

下一个步骤为:s05,在所有分段分布后,重建每一群的分段为子命令。如图6所示,上方显示的第一群重建为子命令1,下方显示的第二群重建为子命令2。

该方法最后的步骤为:s06,同步提供这些子命令(子命令1与子命令2)到设备控制器210,这意味子命令1与子命令2不应为设备控制器210分别取得因为它们同属一个命令。子命令应队列于ram模块120中。请见图4。图4显示ram模块120中的数据结构。两个命令c1与c2依照中央处理单元110原定计划而队列。在驱动程序115处理后,命令c1分割为子命令sc1-1与sc1-2。命令c2分割为子命令sc2-1与sc2-2。依照非挥发性内存高速规范,子命令sc1-1、sc1-2、sc2-1与sc2-2视为各别的提交队列。接着,子命令的提供方法为通过主机100中子命令的发送地址(ram模块120)给设备控制器210而取得。因非挥发性内存高速规范用于命令传输,这些地址在本例中为提交队列。

由步骤s01到步骤s06,所有的步骤能由驱动程序115完成。也就是说,当驱动程序115由步骤s01到步骤s06执行时,所有必要的计算由中央处理单元110执行,相关的数据储存于ram模块120中。设备控制器210与驱动程序115必须设定同步执行命令的子命令,以便设备控制器210在子命令执行之后能反馈主机100。同时,在运作过程中,区段大小与数字n对设备控制器21与驱动程序115来说应该是相同的。

依照本发明,n为由该设备控制器210所能同步取得并执行的子命令的最大数目。如果设备控制器210能同步处理2个命令,n为2;如果设备控制器210同步处理4个命令,n为4;以此类推。最后,n应为大于或等于2的正整数。在本实施例中,使用n=2。在接下来的实施例中,以下结合该方法如何应用在n为3的情况进行详细说明。

请见图7与图8。图8显示一个实施例中的命令分割形成3个子命令,图7显示分段分布的结果。命令2具有19kb的大小,占据ram模块120从0到18的地址。在步骤s01中,区段大小确定为3kb,而非前个实施例中的4kb。接着,在步骤s02中,命令2分割为7个分段:第一分段(从0到2)、第二分段(从3到5)、第三分段(从6到8)、第四分段(从9到11)、第五分段(从12到14)、第六分段(从5到17)与第七分段(18)。由于第七分段为最后分段且小于区段大小,所以需要补满一个区段大小(从18到20)。

接着,在步骤s03中,命令依序分布到3群中:第一群,第二群与第三群。第一分段分布到第一群,第二分段分布到第二群,第三分段分布到第三群。在分布循环结束后,维持步骤s03中相同的分布顺序在第一循环后的所有分布。第四分段分布到第一群,第五分段分布到第二群,第六分段分布到第三群及最后第七分段分布到第一群。第一群依序具有第一分段、第四分段与第七分段。第二群依序具有第二分段与第五分段。第三群依序具有第三分段与第六分段。

在步骤s05重建步骤之后,在图8中,第一群重建为子命令,第二群重建为子命令2,第三群重建为子命令3。3个子命令由设备控制器210取得,因而可能要3个作业程序同步运作该3个子命令,以便原来的命令能依此更快速地执行。

要强调的是虽然上述实施例使用非挥发性内存高速规范,然而,实际上,本发明能应用其它的规范,这些规范允许多个命令收发于主机与设备控制器之间。举例来说,通用快闪储存设备(universalflashstorage)规范。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

【符号说明】

10系统;100主机;110中央处理单元;115驱动程序;120ram模块;130pcie控制器;200储存设备;210设备控制器;220挥发性内存单元;230非挥发性内存芯片;300pcie总线。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1