自动和可控系统操作的制作方法

文档序号:6351460阅读:179来源:国知局
专利名称:自动和可控系统操作的制作方法
自动和可控系统操作相关申请的交叉引用本申请要求2010年2月16日提交的美国申请No. 12/706,519的优先权,且该美国申请要求2009年12月14日提交的美国临时申请No. 61/286,281的权益和2009年12月18日提交的美国临时申 请No. 61/288,078的权益,这些申请的每个的全体被引用附于此。
背景技术
一种系统可以包括主机设备和与所述主机通信的多个设备。在图I中描述了系统配置的一个例子,其中,主机设备使用已知为“环形”的网络拓补的主机设备。”环形”拓补是一种网络设置,其中,多个设备串联连接,且所述多个设备的第一设备和最后设备被直接连接到主机设备。主机设备的发送器电路(Tx)被连接到设备I的接收器电路(Rx)。设备I的发送器电路(Tx)被连接到设备2的接收器电路(Rx),且重复该操作。作为该系统中的最后设备的设备N的发送器电路(Tx)被连接到主机设备的接收器电路(Rx),由此完成该环形连接。系统配置的其他例子包括树形拓补、星状拓补、线性菊花链拓补或集线器拓补。在该系统的正常操作之前,可以初始化所述多个设备中的一个或多个。有初始化所述多个设备中的一个或多个的若干方式。一种方式是顺序地初始化多个设备。顺序的初始化包括以第一设备(图I中的设备I)开始、以最后设备(图I中的设备N)结束、串联地一次一个初始化这多个设备。顺序的初始化具有益处和缺点两者。这类初始化单次消耗相对较低的功率,以便不超过主机设备的功率能力。但是,因为一次一个设备地进行初始化,因此顺序的初始化花费长时间。初始化该系统的另一方式是并行初始化。并行初始化包括一次初始化所有这些多个设备。并行初始化具有快速初始化的益处。但是,并行初始化在系统初始化时间期间消耗相对较高的功率。具体地,这多个设备的每个在初始化期间消耗电流(诸如100微安(mA))。该主机设备可以包括能够在正常操作期间操作、但不能进行并行初始化的电源。例如,该主机设备可以包括具有400mA输出的电源。在该系统包括多于4个设备(每个设备在初始化期间需要IOOmA)的情况下,该电源不能并行地初始化所有这些设备。为了进行并行初始化,该主机设备必须花费较大成本具有较大电源。因此,顺序的初始化和并行的初始化都不恰当地遭受功率或时间限制。

发明内容
本发明的实施例由权利要求限定,且在该部分中没有任何应该被视为对那些权利要求的限制。通过例子,以下描述的实施例通常涉及系统的至少一部分的操作(诸如初始化)。在一个实施例中,系统中的设备接收命令,该命令包括指示该系统的至少一部分的资源能力的信息。在另一个实施例中,该信息可以包括一个或多个参数。在另一个实施例中,该信息可以包括两个或更多参数。使用该信息,该设备可以确定是否开始该操作(诸如开始初始化),且响应于该确定来进行该操作。
提供其他实施例,且可以单独或一起组合地使用这些实施例的每个。现在,将参考附图来描述各种实施例。


图I是在环形拓补中的主机设备和多个设备的方框图。图2是图示控制器、存储元件和在环形拓补中的主机设备和多个设备的每个的通信接口的方框图。图3是图示在集线器拓补中的主机设备和多个设备的方框图。图4是图示在菊花链拓补中的主机设备和多个设备的方框图。
图5是开始初始化的命令的格式。图6是用于初始化处理的状态检查的命令的格式。图7是当接收到开始初始化的命令时的设备的流程图的一个例子。图8是当接收到开始初始化的命令时的设备的流程图的一个例子。图9是图示设备初始化处理的第一阶段的方框图。图10是图示设备初始化处理的第二阶段的方框图。
具体实施例方式通过介绍,以下实施例通常涉及系统的至少一个方面的操作、诸如初始化系统的至少一部分的自动和可控控制。该系统包括主机设备和与所述主机通信的一个或多个设备。主机设备向所述多个设备中的一个、一些或所有发送命令,来控制所述一个或多个设备的操作(诸如所述多个设备中的一个或多个的初始化)。该命令包括可以由多个设备确定是否开始操作、诸如开始初始化而使用的信息。在一个实施例中,该命令中的该信息包括一个或多个参数。在该命令中的一个或多个参数可以指示用于进行操作的当前可用的系统资源。例如,在该命令中的一个或多个参数可以指示用于系统初始化的可用的当前系统资源。这多个设备可以接收该命令,且通过浏览在该命令中的信息(诸如浏览该命令中的一个或多个参数)来确定是否进行该操作(诸如是否开始初始化)。可以分析该命令中的信息以及设备进行该操作所需的资源量(诸如用于设备初始化的资源量),以便该设备确定是否开始该操作。例如,如果设备进行该操作所需的资源量大于(如由该命令中的一个或多个参数所指示的)当前资源能力,则不进行该操作。在另一个实施例中,该命令中的该信息包括两个或更多参数。在该命令中的两个或更多参数可以指示用于进行操作当前可用的系统资源。例如,在该命令中的两个或更多参数可以指示用于系统初始化的可用的当前系统资源。这多个设备可以接收该命令,且通过浏览在该命令中的信息(诸如浏览该命令中的两个或更多参数)来确定是否进行该操作(诸如是否开始初始化)。可以分析该命令中的信息以及设备进行该操作所需的资源量(诸如用于设备初始化的资源量),以便该设备确定是否开始该操作。例如,如果设备进行该操作所需的资源量大于(如由该命令中的两个或更多参数所指示的)当前资源能力,则不进行该操作。以此方式,开始该操作的命令(诸如开始初始化的命令)可以采用若干形式之一,包括具有一个或多个参数或两个或更多参数。但是,该命令中的参数的数量的这些例子(无论一个或两个参数)仅是为了例示的目的。无论如何,该命令可以向接收该命令的设备提供指示进行该操作(诸如初始化)的系统的当前能力的信息。
在一个实施例中,该命令中的指示该系统的当前能力的信息可以包括设备的数量(诸如当前可以开始初始化的设备的数量)。例如,一个或多个参数可以指示系统当前能够提供多少资源。在设备的数量的情况下,一个或多个参数可以指示仍然可以初始化多少个设备。如以下更详细讨论的,指示仍然可以被初始化的设备的数量的一个例子可以包括从资源能力参数中减去当前初始化参数。但是,这仅是命令中的可以指示仍然可以初始化的设备的数量的一个或多个参数的一个例子。在另一个实施例中,该命令中的指示该系统的当前能力的信息可以包括电参数(诸如电流(mA))。然后,该设备可以使用该信息以便该设备确定是否和/或何时进行该操作(诸如初始化)。以下讨论的例子涉及控制是否或何时初始化。但是,可以控制这多个设备中的一个或多个的其他操作,诸如其中请求系统中的多个设备同时操作的任何操作。因此,公开的系统和方法提供用于改善或优化其中多个设备同时进行一个或多个操作的资源利用的一般方法。以下讨论这一个或多个参数的例子。但是,这些例子仅为了例示目的。一个参数可以包括资源能力参数,其指示该系统的资源能力(诸如主机系统的功率能力、电流消耗等)。资源能力参数可以采用若干形式之一。作为一个例子,该参数可以表示在系统中电源系统能够同时初始化的设备的数量。具体地,该资源能力参数可以指示主机设备电源系统能够同时初始化的设备的数量(例如4个设备)。作为另一例子,该参数可以表示该系统能够提供的电参数。例如,该资源能力参数可以指示该系统能够为初始化输出的电流(mA)的总量(例如400mA)。或者,该资源能力参数可以指示该系统能够为初始化输出的功率的总量。可以在从主机设备发送的命令中包括的另一参数可以包括当前初始化参数,其指示当前正初始化的设备。主机设备可以基于主机设备的针对正初始化的设备的当前确定来设置该参数。例如,如果主机设备确定没有设备当前正初始化,则主机设备可以将当前初始化参数设置为零。这些设备的一个或多个可以接收该命令,且取决于设备的初始化的状态(包括该设备是否正初始化或该设备是否完成了初始化)来更新该当前初始化参数。而且,该一个或多个设备可以处理从主机设备发送的命令,基于该设备的初始化的状态且基于在从主机设备发送的命令中的一个或多个参数,确定是否开始初始化。实际上,该主机设备可以在初始化处理中在各种时间时发送一个或多个命令。例如,该主机设备可以发送开始初始化的命令。在环形拓补中,该主机设备可以向设备发送开始初始化命令。该第一设备接收该命令,且分析在命令中的参数(包括资源能力参数和当前初始化参数)和其自己的状态(包括第一设备是否需要被初始化)以确定是否开始初始化。如果第一设备确定该系统能够初始化第一设备且第一设备需要初始化,则第一设备开始初始化,修改当前初始化参数(以反映该第一设备正初始化),且向环形拓补中的第二设备发送该命令(具有修改后的当前初始化参数)。第二设备(和在环形拓补中的随后设备)可以进行由第一设备进行的类似分析。在设备完成初始化之后,该主机设备或另一设备可以修改当前初始化参数来反映该初始化的完成。例如,该主机设备可以发送随后的状态命令来评估在环形拓补中的哪些设备当前正初始化,且基于该评估来修改该当前初始化参数。或者,该环形拓补中的设备可以在完成初始化时修改该当前初始化参数,且向其他设备和主机设备发送修改后的当前初始化参数。以此方式,该设备的顺序不预先设定,且可以基于命令中的信息、诸如一个或多个参数而动态地确定。而且,该领域中的多个设备可以使用命令中的信息、诸如一个或多个参数以及可能的其自己的能力/参数,来决定何时或是否开始初始化以及何时向以下设备传输该命令。因此,这多个设备参与对何时开始初始化的决定,且在决定做出处理中不是被动的。这不像诸如顺序或并行初始化的其他初始化机制,在这些初始化机制中,该主机设备向多个设备发送命令,且多个设备被动地遵循该命令来当接收该命令时初始化。而且,可以更好地利用该系统的资源能力。在一个实施例中,可以由设备修改该命令中的信息的一个、一些或所有,以便反映进行该操作(诸如初始化)的系统的当前能力。例如,在具体实施例中,可以修改该命令中的一个或多个参数来反映该设备的操作的状态(诸如该设备是否决定了初始化或该设备是否完成了初始化)。这个的例子是通过使用算术运算来修改该命令中的一个或多个参数之一。 如以下更详细地讨论的,可以通过将参数的值更改” I”来修改该当前初始化参数,来反映设备正初始化或设备完成了初始化。然后,修改后的当前初始化参数与资源能力参数相比较,且这些设备可以确定系统的资源能力是否允许当前初始化。例如,如果系统的资源能力使得特定数量的设备、诸如4个设备能够同时初始化,该命令中的信息、诸如当前初始化参数的更新可以更好地保证系统中的特定数量的设备、诸如4个设备更经常初始化,由此更好地利用系统资源能力且可能地减少初始化系统中的设备的时间。存在存储器器件的若干例子,诸如安全数字(“SD ”)存储卡(相对较慢的闪存器件的例子)和超高速型II(UHS-II)存储卡(较快闪存器件的例子)。SD是SD-3C LLC的商标。UHS-II是SD协会为下一代SD (TM)卡开发的标准,且是“高速协议”的一个例子。另一例子可以是通用闪存(“UFS”)存储器件。”UFS”是由为电子元件工业联合会(“JEDEC”)固态技术协会工作的UFS特派组开发的标准。图2描述在环形拓补中的主机设备210和多个设备230、250、270的详细方框图200。主机设备210可以包括诸如计算机、移动电话、个人数字助理(PDA)、游戏设备、通信设备、多媒体播放器设备和适用于与一个或多个存储器器件通信的其他设备或其任何组合的电子设备。主机设备210可以包括控制器212、诸如处理器、微控制器、或其他类型的算术逻辑单元。该主机设备210还可以包括存储元件214或其他类型的存储器、诸如非易失性存储器、随机存取存储器(RAM)、闪存、一个或多个寄存器或其他有形存储器。该主机设备210还可以包括使能经由网络与多个设备通信的通信接口 216。通信接口 216具有向该设备发送消息的发送器电路(Tx) 218和从设备接收消息的接收器电路(Rx) 220。因此,使用通信接口 216,主机设备210被配置以经由网络向多个设备230、250、270发送诸如命令、数据或其任何组合的消息。该网络可以包括在设备230、250、270之间发送消息的一对或多对数据线。多个设备230、250、270可以包括计算机和/或存储器器件。例如,多个设备230、250,270中的一个或多个可以是闪存卡、诸如增强SDTM、microSD 卡、嵌入式SD(eSD)或SD输入/输出设备(SDIO) (SD或microSD是SD-3C LLC的商标)。作为另一例子,多个设备230、250、270中的一个或多个可以包括UHS-II存储器件或包括UHS-II接口(诸如输入/输出通信应用)的其他类型的器件。多个设备230、250、270包括使能经由总线与主机设备和其他设备通信的通信接口。例如,设备250包括I/O接口 262以例示诸如Wi-Fi或蓝牙的无线通信功能。以此方式,设备230、250、270可以包括存储器器件、I/O通信设备、和/或存储器器件+10通信设备的组合。第一设备230包括控制器232、诸如处理器、微控制器、或其他类型的算术逻辑单元。该第一设备230还可以包括存储元件234或其他类型的存储器、诸如非易失性存储器、随机存取存储器(RAM)、闪存、一个或多个寄存器或其他有形存储器或输入/输出通信接口(诸如蓝牙、Wi-Fi、WiGIG等)。第一设备230包括具有接收器电路(Rx) 238和发送器电路(Tx) 240的通信接口 236。接收器电路(Rx) 238被配置以经由网络从通信路径上的先前设备、即主机设备210接收诸如命令和数据的消息。发送器电路(Tx) 240被配置以经由网络向通信路径上的下一设备、即第二设备250发送诸如响应的消息。第二设备250包括控制器252。第二设备250还可以包括存储元件254或其他类 型的存储器。第二设备250包括具有接收器电路(Rx) 258和发送器电路(Tx) 260的通信接口 256。接收器电路(Rx) 258被配置以从通信路径上的第一设备230接收消息。发送器电路(Tx) 260被配置以经由网络向通信路径上的下一设备发送消息。“N”设备270可以包括控制器272和存储元件274或其他类型的存储器。“N”设备270还包括具有接收器电路(Rx) 278和发送器电路(Tx) 280的通信接口 276。接收器电路(Rx) 278被配置以从通信路径上的另一设备接收消息。发送器电路(Tx) 280被配置以经由网络向通信路径上的下一设备、即经由网络向主机设备210发送消息。如图2所示,该网络具有环形拓补,且消息沿着该环形周围的通信路径在单方向上传播。第一设备230具有通信路径上的第一位置,第二设备250具有在通信路径上的第二位置,等等。设备的位置的次序对应于消息沿着通信路径从一个设备到另一设备传播的次序。例如,由主机设备210发送的消息可以具有包括指示具体目的地的目的地标识符(DID)字段(诸如标识设备230、250、270之一的具体标识符),或可以包括广播指示,在该情况下,处于可以接受该命令的状态下的任何设备将接受该命令作为寻址的接收方。虽然图示三个代表性设备230、250、270经由网络而耦合于主机设备210,但是任何数量的这种设备可以经由网络耦合于主机设备210。而且,虽然为了便于说明,如图2所示地示意性地图示该网络连接主机设备210和设备230、250、270,但是可以使用各种物理结构来形成具有用于在单方向上传消息的环形拓补的网络。作为一个示例例子,且在替换的实施例中,该网络可以被实现为被控制以模拟环形拓补的总线。另外,虽然针对环形拓补描述,但是在其他实施例中,该网络可以使用其他拓补、诸如树形拓补、星状拓补、线性菊花链拓补或集线器拓补来实现。例如,集线器拓补可以具有用于主机设备的一个端口和用于设备的多个端口。图3图不使用主机设备302、设备304、306,308,310和集线器312的集线器拓补的方框图300的例子。集线器拓补可以同时向所有连接的设备发送消息,或通过模拟环形拓补来发送广播命令,在该环形拓补中,实际上通过集线器将广播命令串行地传输通过所有设备(从第一到最后)(例如,见2009年7月27日提交的题为”DEVICE IDENTIFIER SELECTION”的美国专利申请No. 12/509,832,其全部被引用附于此;也见2009年9月16日提交的题为”DEVICE IDENTIFIER SELECTION”的美国专利申请No. 12/561,122,其全部被引用于此)。或者,集线器拓补可以通过根据其内容来选择消息目的地来发送消息。图3图示在具有箭头的线中示出的广播通信路径来指定该路径。该广播可以访问所有设备,虽然这从设备#1 304开始、以设备棚结束、经过集线器312而串行地进行。以此方式,可以实现精确的环形操作行为。以下针对环形拓补的讨论可以类似地被用在给定的集线器拓补中。图4图示使用主机设备402和设备404、406、408的菊花链拓补的方框图400的例子。可以使用所有设备、从设备#1404开始以设备#N 408结束而实际访问的广播命令来实现菊花链拓补中的广播操作(类似于环形拓补)。仅有的差别是,从设备#N回到主机的连接回传通过所有设备404、406 (而在环形拓补中,存在向主机设备的直接路径)。然而,在此也可以使用为环形拓补而描述的相同概念。而且,以下针对环形拓补的讨论可以类似地被用在给定的菊花链拓补中。环形、集线器和菊花链拓补的图示仅为了例示目的。以此方式,可以在一个或多个其他拓补中实现该网络,且在主机设备和每个设备之间的通信路径使能消息的发送和接收。主机设备可以发送一个或多个消息或命令,用于初始化一个或多个设备、诸如设 备 230,250,270 (在图 2 中)、设备 304、306、308、310 (在图 3 中)或设备(404、408、410)。设备的初始化可以是在将设备转换为活跃状态中的一步。初始化可以包括初始化一个或多个层,包括PHY和LINK层。而且,初始化可以设置设备的操作条件、诸如取决于设备的初始能力和操作值。从诸如主机设备210 (图2中)、主机设备302 (图3中)或主机设备402 (图4中)的主机设备发送的消息可以包括可以以一个或多个参数的形式的信息。这些设备、诸如设备 230、250、270 (在图 2 中)、设备 304、306、308、310 (在图 3 中)或设备(404、408、410)可以使用该命令中的信息来确定是否开始初始化。一个参数可以包括资源能力参数,其指示该系统的资源能力。该系统的资源能力的一个例子可以是主机设备的可用资源输出。资源能力参数可以采用若干形式之一。作为一个例子,该参数可以表示在系统中电源系统能够同时初始化的设备的数量。具体地,该资源能力参数可以指示主机设备电源系统能够同时初始化的设备的数量(例如4个设备)。作为另一例子,该参数可以表示该电源系统能够提供的电参数。例如,该资源能力参数可以指示该电源系统能够为初始化输出的电流(mA)的总量(例如400mA)。可以在从主机设备发送的命令中包括的另一参数可以包括当前初始化参数,其指示当前正初始化的设备。可以由主机设备和/或设备来修改或调整当前初始化参数。例如,主机设备210可以基于主机设备的针对设备230、250、270中的哪个正初始化的当前确定来设置该参数。具体地,主机设备210可以向设备230、250、270发送一个或多个状态消息来确定哪些设备当前正初始化。主机设备210可以设置当前初始化参数来反映当前正初始化的设备。例如,如果主机设备确定没有设备当前正初始化,则主机设备可以将当前初始化参数设置为零。另外,一个或多个设备(诸如图2中的设备230、250、270、图3中的设备304、306、308,310或图4中的设备404、406、408)可以修改当前初始化参数。例如,设备230可以修改当前初始化参数来反映设备230正初始化或设备230完成了初始化。具体地,设备230可以接收初始化的命令并确定设备230是否应该开始初始化。如以下更详细地讨论的,设备230可以确定其是否需要初始化,且如果是,比较资源能力参数与当前初始化参数来确定该系统的资源能力使能此时的设备230的初始化。如果第一设备230确定需要初始化且该系统能够初始化,则第一设备230可以开始初始化,且修改当前初始化参数来反映该第一设备230正初始化。另外,设备230可以修改当前初始化参数来反映设备230完成了初始化。在第一设备230完成初始化之后,设备230可以发送消息以便传送当前初始化参数的改变。作为一个例子,第一设备230可以向主机设备210发送消息,来指不第一设备230的初始化完成,以便主机设备210可以修改该当前初始化参数来反映此,且发送包括修改后的当前初始化参数的随后广播命令。作为另一例子,第一设备230可以修改当前初始化参数且向设备250、270和/或主机设备210发送消息来指示当前初始化参数的改变。作为另一例子,设备230可以从主机设备210接收状态消息。如果第一设备230正初始化,第一设备230可以保持状态消息,直到第一设备230完成初始化,然后将状态消息(具有指示第一设备230完成了初始化的更新后当前初始化参数)转发给设备250、270。作为另一例子,第一设备230可以向设备250和/或270发送消息,来指示设备230的初始化完成,以便设备250和/或270可以修改该当前初始化参数来反映次且如果有必要则开始初始化。 主机设备210发送包括资源能力参数和当前初始化参数的单个命令,如图5所示。或者,该主机设备可以在单独的命令中发送资源能力参数和当前初始化参数。例如,可以单独地向设备230、250、270发送资源能力参数,且将其存储在存储元件234、254、274中,用于稍后当接收具有当前初始化参数的单独命令时使用。实际上,该主机设备可以在初始化处理中在各种时间时发送一个或多个命令。例如,该主机设备210可以发送开始初始化的命令和确定初始化的状态的命令。在环形拓补中,主机设备210可以向第一设备230发送开始初始化命令,且第一设备230浏览其初始化状态和一个或多个参数来确定是否开始初始化。具体地,第一设备230的初始化状态可以”已被初始化”、”未被初始化”或“正初始化”,如针对图7更详细讨论的。如果第一设备230”已被初始化”(意味着,第一设备不需要当前初始化),第一设备230可以向另一设备在不改变一个或多个参数的情况下发送命令(在环形拓补中,第一设备230可以向第二设备250发送命令)。如果第一设备230”未被初始化”(意味着第一设备230要被初始化),第一设备230浏览接收的命令或者的参数来确定是否开始初始化。第一设备230可以比较当前初始化参数和资源能力参数(和可能的第一设备的自己的需求)来确定是否开始初始化。在其中当前初始化参数指示正被初始化的设备的数量的例子中,且如果该资源能力指示能够一次被初始化的设备的总数,如果当前初始化参数小于资源能力参数,这指示该系统可能能够初始化第一设备230。如果该比较指示该系统能够初始化第一设备230,则第一设备230开始初始化。在其中当前初始化参数指示为初始化设备而当前引起的总电流的例子中,且如果资源能力参数指示该系统可以为初始化提供的总电流,则第一设备230可以检查其自己的需求来确定是否开始初始化。具体地,第一设备230可以访问存储元件234来确定第一设备230在初始化时需要多少电流(诸如100mA)。第一设备230可以向当前初始化参数添加第一设备为初始化所需的电流量。如果第一设备为初始化所需的电流总量和当前初始化参数小于或等于资源能力参数,这指示该系统能够初始化第一设备 230。而且,如果第一设备230确定该系统能够当前初始化第一设备230,则第一设备230可以修改命令中的一个或多个参数并向另一设备发送该命令。第一设备230可以改变命令中的信息、诸如当前初始化参数来指示第一设备230正初始化。对该信息的改变可以包括算术运算。例如,第一设备可以向当前初始化参数添加其初始化的自己的当前消耗需求,如以下详细讨论的。然后,第一设备230可以向环形拓补中的第二设备250发送该命令。如果当前初始化参数与资源能力参数的比较指示该系统不能初始化第一设备230,则第一设备230不开始初始化,且向下一设备发送该命令。第二设备250可以接收从第一设备230发送的命令,且进行如曾由第一设备230进行的相同分析。如果第一设备230”正初始化”,第一设备230可以保持该命令,直到第一设备230完成了初始化,然后向下一设备发送该命令。第一设备230可以修改当前初始化参数来反映第一设备230完成了初始化。在通过多个设备230、250、270来过滤该命令之后,可以将该命令返回到主机设备210。除了开始初始化命令之外,主机设备可以在发送开始初始化命令之后发送随后的命令。随后的命令可以包括确定初始化的状态的状态命令。或者,主机设备可以发送用于下一组设备的下一初始化命令或发送用于整个初始化处理的单个命令。主机设备可以接收对该命令的响应,分析该响应,且确定一个或多个设备的初始化的状态。例如,主机设备可以发送具有其中的信息(诸如具有一个或多个参数的命令)的命令(诸如开始初始化命令或状 态命令)。一个或多个设备如果该设备正初始化,则可以修改该命令中的信息(诸如修改一个或多个参数)。然后,主机设备可以分析从一个或多个设备(诸如设备N设备270或310)发送的响应来确定所述一个或多个设备的状态,诸如这些设备中的任何是否正初始化。主机设备可以比较该命令中的信息与响应于确定设备的状态的响应而接收的信息。如果该命令中的信息与该响应中接收的信息相同,主机设备可以确定设备中没有任何正初始化,因为如果有设备初始化,则该命令中的信息被修改(如以下讨论的)。使用当前初始化参数和资源能力参数,初始化设备的顺序不被预先设定,且可以基于该命令中的这些参数而动态确定。而且,该字段中的多个设备可以使用该命令中的信息,诸如在该命令中的参数,来决定何时开始初始化。因此,这多个设备参与对何时开始初始化的决定,且在决定做出处理中不是被动的。这不像诸如顺序或并行初始化的其他初始化机制,在这些初始化机制中,该主机设备向多个设备发送命令,且多个设备被动地遵循该命令来当接收该命令时初始化。这也不像其中在这些设备的每次预配置时初始化设备的方法,该方法需要另外的精力和成本。图5和6图示从主机设备210发送的命令的格式。具体地,图5描述了当发送表示开始初始化命令的DEVICE_INIT_START_CCMD时的字段。如图5所示,消息500包括头502、变量504和负荷506。该头502可以包括源ID/目的地ID的字段或广播指示。变量504可以包括命令名、诸如消息是DEVICE_INIT_START命令的指示。另外,(如由“Y”表示的)资源能力参数和(如由“X”表示的)当前初始化参数可以是负荷的一部分。但是,图5所示的消息500仅为了例示目的。消息500中包括资源能力参数和当前初始化参数、广播指示和命令指示的信息可以以不同意图5所示的方式来组织。图6描述了当发送表示状态命令的DEVICE_INIT_CHECK_STATUSCCMD时的字段。如图6所示,消息600包括头502和变量504。类似于图5,该头502可以包括源ID/目的地ID的字段或广播指示。变量504可以包括该消息是DEVICE_INIT_CHECK_STATUS命令的指示。(如由“Y”表示的)资源能力参数和(如由“X”表示的)当前初始化参数不需要是消息600 中的负荷的一部分。DEVICE_INIT_START 和 DEVICE_INIT_CHECK_STATUS 两个消息可以是广播CCMD。DEVICE_INIT_START消息可以是为诸如图2所示的设备230、250、270的一组设备开始设备初始化的触发。可以通过主机设备使用负荷区域中存储的参数来编程该初始化方法。可以发出DEVICE_INIT_CHECK_STATUS消息来检查每个设备的、一组设备的、或完整系统的初始化完成。图7图示诸如230,250,270 (图2中)、设备304、306、308、310 (图3中)、或设备 (404,408,410)的设备分别使用由当前使用的设备的数量和可以由系统支持的设备的数量表示的一种类型的当前初始化参数和资源能力参数来确定是否开始初始化的流程图700的一个例子。在702处,在接收该命令(其包括(如由“Y”表示的)资源能力参数和(如由“X”表示的)当前初始化参数)之后,该流程图开始。在704处,确定该设备是否当前正初始化。如果是,该设备可以保持该命令,直到该设备完成初始化(如由循环回到块704的图7的流程图所表示的)。在706处,确定该设备是否已经被初始化。如果该设备已经初始化,则流程图流转到712。如果该设备还没有被初始化,则该设备在708确定是否X〈Y。如果X = Y,这反映了正完全利用该资源能力,且没有其他设备可以开始初始化。如果该总数没有超过该系统的能力,则第一设备可以在块710处被初始化。另外,可以通过算术运算来修改该当前初始化参数(”X”)以反映该设备正被初始化。例如,如果如在710处所示地”X”表示正初始化的设备的数量,则可以通过+1来改变(诸如由+1来增加)该当前初始化参数”X”。然后,该流程图移动到712,由此该设备从其Tx端口发送具有修改后的当前初始化参数的广播CCMD。如果X>Y,在712,该设备从其Tx端口发送具有未改变的当前初始化参数的广播CCMD。在具有菊花链拓补的系统中,在给定的条件下,可以从设备404向主机设备402发送回(向上)该命令,节省在向下路径中的通过设备406、408的路径。图4中的通过设备#2406的捷径例示了这种情况。在714处,该流程图结束。一个由主机和设备处理命令的例子。在该例子中,设备I-N中没有任何被初始化,且主机设备可以一次初始化两个设备。为了开始初始化,该主机设备可以发送包括指示初始化两个设备的功率能力的信息(包括一个或多个参数)的命令。该命令被发送给未被初始化的设备I。设备I检查该命令中的信息,且确定其可以初始化(因为命令中的信息指示两个设备可以初始化),且开始初始化。然后,设备I发送命令,且在命令中的信息被修改以指示一个设备可以初始化。未被初始化的设备2接收该命令。设备2检查该命令中的信息,且确定其可以初始化(因为命令中的信息指示一个设备可以初始化),且开始初始化。然后,设备2发送命令,且在命令中的信息被修改以指示没有设备可以初始化。随后的设备(设备3到设备N)接收该命令,确定其不能初始化,且将该命令转发给下一设备。最后,主机设备接收该命令。主机设备可以向这些设备发出随后的命令。随后的命令可以包括设备确定是否初始化的信息。主机设备可以向这些设备发送随后的命令。如果一个设备正初始化,该设备可以保持随后的命令(诸如块704处示出的)。在该设备完成初始化之后,该设备可以向下一设备发送随后命令(具有设备确定是否初始化所需的信息)。该序列可以继续,直到这些设备中的一些或所有被初始化。
图8图示诸如230,250,270 (图2中)、设备304、306、308、310 (图3中)、或设备
(404,408,410)的设备使用另一类型的当前初始化参数和资源能力参数来确定是否开始初始化的流程图800的另一个例子。在802处,在接收该命令(其包括(如由“Y”表示的)资源能力参数和(如由“X”表示的)当前初始化参数)之后,该流程图开始。在804处,确定该设备是否当前正初始化。如果是,该设备可以保持该命令,直到该设备完成初始化(如由循环回到块804的图8的流程图所表不的)。在806处,确定该设备是否已经被初始化。如果该设备已经初始化,则流程图流转到814。如果该设备还没有被初始化,该设备访问设备初始化需求(Dev_Ini_Req)。如果该资源能力参数由诸如可以由电源系统输出的电流总量的电参数来表示,该设备可以访问其自己的电参数(诸如初始化所需的电流)以便确定是否初始化。在访问Dev_Ini_Req之后,设备可以确定初始化是否将超过该系统的能力。具体地,设备可以向当前初始化参数(”X”)添加(可以被存储在存储元件234中的)Dev_Ini_Req且在块810处将其与资源能力参数(”Y”)相比较。具体地,如果初始化第一设备230的电流量是100mA,”X” = 200mA,且” Y” =500mA,第一设备230可以向200mA增加IOOmA (如果第一设备230开始初始化,初始化该设备当前所需的电流量)。总共的300mA可以与500mA相比较,来确定其是否超过可以由电源系统输出的电流总量。如果X+DeV_Init_Req>Y,则此时初始化该设备将超过系统的能力,因此该流程图流转到块814。如果X+DeV_Init_Req ( Y,则此时初始化该设备将不超过系统的能力,因此该设备在812处开始初始化。另外,可以修改该当前初始化参数(”X”)以反映该设备正被初始化。例如,在812处,如果“X”表示由正初始化的设备引起的总电流,则可以将该当前初始化参数”X”增加DeV_Init_Req。然后,该流程图移动到814,由此该设备从其Tx端口发送具有修改后的当前初始化参数的广播CCMD。然后,该流程图800在816处结束。图9和10描述其中主机设备910在(图7中描述的)第一阶段处开始初始化设备#1和设备#2 (组A)且在(图8中描述的)第二阶段处开始初始化设备#3、设备#4、和设备#5 (组B)的初始化的序列。对于(图9中描述的)第一阶段,主机设备910发出X = O且Y=2的DEVICE_INIT_START (假设使用图7中描述的方法)。当图6中的任何设备接收广播CCMD时,其检查X和Y。如果X〈Y,该设备开始其设备初始化,且不干任何事。在设备#1接收X〈Y的CCMD时,其开始设备初始化,将X的值递增一,且从其Tx端口发送更新的广播CCMD。设备#2的行为与设备#1的相同。在设备#3到设备#5接收X = Y = 2的广播CCMD时,设备#3到设备#5不开始设备初始化。最后,更新的广播CCMD被发送到主机设备910。此后,主机设备910可以为下一组设备发出DEVICE_INIT_CHECK_STATUS或发送DEVICE_INIT_START (如在下一段中描述的)。当该设备在设备初始化期间接收它时,该设备在完成初始化之后发送该命令。当其不开始或完成初始化时,该设备可以立即发送该命令。图10图示设备初始化处理的例子的第二阶段。此时,主机设备910发出X = 0和Y = 3的DEVICE_INIT_START以便初始化三个设备。当设备#1接收广播CCMD时,然后如果其自己的初始化完成,则其将向以下设备发送CCMD。如果其仍然在初始化,则该设备将保持CCMD,直到其完成其自己的初始化且在完成时将向下一设备发送CCMD。设备#2的行为与设备#1的相同。当设备#3接收该命令时,其开始其设备初始化作为X〈Y。另外,设备#3将X递增一,且从其Tx端口发送更新的命令(具有更新后的当前初始化参数)。设备#4和设备#5与设备#3相同地动作。在主机设备910接收该命令之后,该主机设备910发出DEVICE_INIT_CHECK_STATUS (其与图9所示的第一阶段相同),且识别出在主机设备910已经知道设备的总数为五时所有设备初始化完成。接收DEVICE_INIT_START的该设备的操作流被总结为图7。在一次单个设备初始化(顺序初始化)的情况下或在如在点对点连接中的单个设备连接的情况下,主机设备910为DEVICE_INIT_START设置X = 0和Y = I。
在另一实施例中,提供一种用于操作系统中的设备的方法,该方法包括经由存储设备通信接口来接收命令,且该命令包括该设备可以使用资源量的指示。如上所述,该指示可以是若干形式,包括一个或多个参数、或两个或更多参数。例如,该指示的形式可以是指示系统的当前初始化的当前初始化参数和/或指示该系统的至少一部分的资源能力的资源能力参数。该方法还可以包括由该设备基于该设备可以使用的资源量的指示、诸如资源能力参数和/或当前初始化参数来确定是否开始设备的操作,和基于确定是否开始该操作来操作该设备。用于操作设备的方法可以包括设备的初始化的操作,且确定是否开始该操作包括确定是否开始初始化。然后,该设备可以基于该设备可以使用的资源量的指示(诸如资源能力参数和/或当前初始化参数)来确定是否开始初始化。用于初始化的命令可以包括该设备可以使用的资源量的指示、诸如资源能力参数和/或当前初始化参数,其中,该资源能力参数指示能够使用该系统的至少一部分的功率能力来同时初始化的设备的数量。如果该设备当前正初始化,该方法还可以包括等待直到在该设备完成初始化之后,来向另一设备发送该命令。在该方法中,确定是否开始该操作可以基于资源能力参数、当前初始化参数和设备的资源需求。该当前初始化参数可以指示为初始化而当前使用的总资源的积累值。而且,资源能力参数可以指示该系统的至少一部分的总电流(mA)输出能力。确定是否开始初始化可以包括访问设备初始化的资源需求,且基于当前初始化参数、资源能力参数和该设备的资源需求来确定是否开始初始化。在初始化时,该设备可以接收指示该系统的当前操作的当前操作参数,且该设备基于资源能力参数和当前操作参数来确定是否开始该操作。该设备可以基于资源能力参数、当前操作参数和设备的资源需求来确定是否开始该操作。而且,该当前操作参数可以指示为该操作而当前使用的总资源的积累值。资源能力参数可以指示该系统的至少一部分的总电流(mA)输出能力。该设备可以通过访问用于进行该操作的设备的资源需求,且基于当前操作参数、资源能力参数和该设备的资源需求确定是否开始进行该操作,来确定是否开始该操作。资源能力参数可以指示能够使用该系统的至少一部分的功率能力来同时进行该操作的设备的数量。如果该设备当前进行该操作,该设备可以等待直到在该设备完成进行该操作来向另一设备发送该命令之后。在另一实施例中,提供一种设备,其包括存储设备通信接口和与所述存储设备通信接口通信的控制器,该控制器可操作以经由存储设备通信接口接收命令,该命令包括该设备可以使用的资源量的指示。该指示可以是若干形式,包括一个或多个参数、或两个或更多参数。例如,该指示的形式可以是指示系统的当前初始化的当前初始化参数和/或指示该系统的至少一部分的资源能力的资源能力参数。该控制器还可以包括可以操作以基于该设备可以使用的资源量的指示、诸如资源能力参数和/或当前初始化参数来确定是否开始该操作,且基于确定是否开始该操作来操作该设备。该设备的操作可以包括初始化,且该控制器可操作以确定是否开始初始化。另外,该命令可以包括指示当前正初始化的多个设备的当前初始化参数,且该控制器可以可操作以基于资源能力参数和当前初始化参数来确定是否开始初始化。该设备包括存储器设备。该命令可以包括资源能力参数和当前初始化参数。资源能力参数可以指示能够使用该系统的至少一部分的功率能力来同时初始化的设备的数量。而且,如果该设备当前正初始化,该控制器还可以可操作以等待直到在该设备完成初始化之后,来向另一设备发送该命令。 另外,该控制器可以可操作以基于资源能力参数、当前初始化参数和设备的资源需求来确定是否开始该操作。而且,该当前初始化参数可以指示为初始化而当前使用的总资源的积累值。而且,资源能力参数可以指示该系统的至少一部分的总电流(mA)输出能力,且该控制器可操作以通过以下来确定是否开始初始化访问用于初始化的设备的资源需求;以及基于当前初始化参数、资源能力参数和该设备的资源需求来确定是否开始初始化。该设备可以接收指示该系统的当前操作的当前操作参数,且该控制器可以基于资源能力参数和当前操作参数来确定是否开始该操作。该控制器可以被配置以基于资源能力参数、当前操作参数和设备的资源需求来确定是否开始该操作。该当前操作参数可以指示为该操作而当前使用的总资源的积累值。而且,资源能力参数可以指示该系统的至少一部分的总电流(mA)输出能力,且该控制器可操作以通过以下来确定是否开始该操作访问用于进行该操作的设备的资源需求;以及基于当前操作参数、资源能力参数和该设备的资源需求来确定是否开始进行该操作。资源能力参数可以指示能够使用该系统的至少一部分的功率能力来同时进行该操作的设备的数量。如果该设备当前正进行该操作,该控制器可以被进一步配置以等待直到在该设备完成进行该操作来向另一设备发送该命令之后。另一实施例包括一种用于主机设备控制系统的至少一部分的初始化的方法,该方法包括通过主机设备生成命令,该命令指示指令该设备初始化,且包括该系统中的一个或多个设备可以使用的资源量的指示、诸如指示该系统的至少一部分的资源能力的资源能力参数。该方法还包括使用主机设备通信接口从所述主机设备发送所述命令。该方法中的命令可以包括指示该系统的当前初始化的当前初始化参数。该资源能力参数可以指示能够使用该系统的至少一部分的功率能力来同时初始化的设备的数量,且当前初始化参数可以指示在该系统中的当前初始化的设备的数量。该当前初始化参数可以指示为该系统的初始化而当前使用的总资源的积累值。该方法可以用于一种包括主机设备和多个设备的系统。而且,在该方法中使用的命令可以包括对多个设备的广播命令。该系统可以包括诸如从包括环形、集线器和菊花链的组中选择的拓补的拓补。该方法可以包括生成用于评估该系统中的设备的初始化完成的状态命令且使用主机设备通信接口来发送该状态命令。
另一实施例涉及一种主机设备,其包括通信接口和与该通信接口通信的控制器,该控制器可操作以生成命令,该命令指示指令一个设备初始化,且包括该系统中的一个或多个设备可以使用的资源量的指示、诸如指示该系统的至少一部分的资源能力的资源能力参数。该控制器还可操作以使用通信接口从该主机设备发送该命令。从主机设备发送的命令还可以包括指示该系统的当前初始化的当前初始化参数。该资源能力参数可以指示能够使用该系统的至少一部分的功率能力来同时初始化的设备的数量,且当前初始化参数可以指示在该系统中的当前初始化的设备的数量。该当前初始化参数可以指示为初始化而当前使用的总资源的积累值。从主机设备发送的命令可以包括对多个设备的广播命令。而且,多个设备可以被布置在拓补中,该拓补从包括环形、集线器和菊花链的组中选择。该主机设备中的控制器还可以可操作以生成用于评估哪些设备当前初始化的状态命令;使用通信接口发送该状态命令。另外,该主机设备中的控制器可以可操作以向该系 统中的多个设备发送初始化开始命令且在初始化结束时向多个设备发送状态命令,且多个设备可以自动地保持初始化开始命令直到完成各个设备的初始化。该主机设备中的控制器可以可操作以向该系统中的设备发送初始化开始命令,而无关于该设备是否当前正初始化,且如果当接收初始化开始命令时该设备正当前初始化,该设备可以等待,直到该设备在向系统中的另一设备发送初始化开始命令之前完成初始化之后。意图,先前详细的描述被理解为本发明可以采用的所选形式的例示,且不是本发明的限定。仅是以下权利要求包括意图限定本发明的范围的所有等同物。
权利要求
1.一种用于操作系统中的设备的方法,该方法包括 在所述设备中经由存储设备通信接口接收命令,该命令包括指示所述系统的至少一部分的当前资源能力的信息; 由所述设备基于所述信息确定是否开始所述设备的操作;以及 基于确定是否开始所述操作来操作所述设备。
2.根据权利要求I的方法,其中,确定是否开始操作包括分析所述命令中的信息和设备进行所述操作所需的资源量,以便使所述设备确定是否开始所述操作。
3.根据权利要求2的方法,其中,如果所述设备进行所述操作所需的资源量大于所述当前资源能力,则所述设备不进行所述操作。
4.根据权利要求I的方法,其中所述设备的操作包括初始化;以及 其中,确定是否开始所述操作包括确定是否开始初始化。
5.根据权利要求4的方法,其中,所述信息的至少一部分指示设备的数量。
6.根据权利要求5的方法,其中,所述信息的至少一部分指示当前可以被初始化的设备的数量。
7.根据权利要求4的方法,其中,所述指示当前资源能力的信息包括电参数。
8.根据权利要求7的方法,其中,所述电参数包括功率。
9.根据权利要求4的方法,还包括响应于确定开始初始化来修改所述信息的至少一部分。
10.根据权利要求9的方法,其中,所述信息包括一个或多个参数; 其中,修改所述信息的至少一部分包括对所述一个或多个参数的至少一个进行算术运算。
11.根据权利要求10的方法,其中,对所述至少一个参数进行算术运算包括将参数的值改变I以便指示所述设备的当前初始化。
12.—种设备,包括 存储设备通信接口 ;以及 与所述存储设备通信接口通信的控制器,所述控制器可操作以 在所述设备中经由所述存储设备通信接口接收命令,该命令包括指示所述系统的至少一部分的当前资源能力的信息; 由所述设备基于所述信息确定是否开始所述设备的操作;以及 基于确定是否开始所述操作来操作所述设备。
13.根据权利要求12的设备,其中,所述控制器被配置以分析在所述命令中的信息和设备进行所述操作所需的资源量,以便确定是否开始所述操作。
14.根据权利要求13的设备,其中,如果所述设备进行所述操作所需的资源量大于所述当前资源能力,则所述控制器不进行所述操作。
15.根据权利要求12的设备,其中所述设备的操作包括初始化;以及 其中,所述控制器被配置以确定是否开始初始化。
16.根据权利要求15的设备,其中,所述信息的至少一部分指示设备的数量。
17.根据权利要求16的设备,其中,所述信息的至少一部分指示当前正初始化的设备的数量。
18.根据权利要求15的设备,其中,所述指示当前资源能力的信息包括电参数。
19.根据权利要求15的设备,其中,所述控制器还被配置以响应于确定开始初始化来修改所述信息的至少一部分。
20.根据权利要求19的设备,其中,所述信息包括一个或多个参数; 其中,所述控制器被配置以通过对所述一个或多个参数的至少一个进行算术运算来修改所述信息的至少一部分。
21.根据权利要求20的设备,其中,所述控制器被配置以通过将所述至少一个参数的值改变I以便指示所述设备的当前初始化来对该参数进行算术运算。
22.—种用于主机设备的控制系统的至少一部分的操作的方法,该方法包括 由所述主机设备生成命令,所述命令指示指令所述设备进行操作,且包括指示主机设备的当前资源能力的信息;以及 使用主机设备通信接口从所述主机设备发送所述命令。
23.根据权利要求22的方法,其中,所述指示当前资源能力的信息包括电参数。
24.根据权利要求23的方法,其中,所述电参数包括功率。
25.根据权利要求22的方法,其中所述操作包括初始化;以及 其中,所述命令包括初始化的命令。
26.根据权利要求25的方法,其中,所述信息的至少一部分指示设备的数量。
27.根据权利要求26的方法,其中,所述信息的至少一部分指示当前可以被初始化的设备的数量。
28.—种主机设备,包括 通信接口 ;以及 控制器,与所述通信接口通信,其中,所述控制器可操作以 生成命令,所述命令指示指令所述设备进行操作,且包括指示主机设备的当前资源能力的信息;以及 使用所述通信接口发送所述命令。
29.根据权利要求28的主机设备,其中,所述指示当前资源能力的信息包括电参数。
30.根据权利要求28的主机设备,其中,所述电参数包括功率。
31.根据权利要求28的主机设备,其中,所述命令包括初始化的命令。
32.根据权利要求31的主机设备,其中,所述信息的至少一部分指示设备的数量。
33.根据权利要求32的主机设备,其中,所述信息的至少一部分指示当前可以被初始化的设备的数量。
全文摘要
提供用于自动地且控制系统中的一个或多个设备的操作的系统和方法。在具体实施例中,由设备接收命令,以便该设备确定是否进行操作(诸如进行该设备的初始化)。该命令可以包括指示该系统的至少一部分的资源能力的信息。使用该信息,该设备可以确定是否开始进行该操作(诸如初始化),且如果确定这样做而进行该操作。
文档编号G06F1/26GK102656538SQ201080056893
公开日2012年9月5日 申请日期2010年12月13日 优先权日2009年12月14日
发明者E.F.哈库恩, Y.平托 申请人:桑迪士克科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1