优先权要求
本申请要求于2014年12月17日提交的题为“programminghardwareregistersusingapipelinedregisterbus,andrelatedmethods,systems,andapparatuses(使用流水线寄存器总线对硬件寄存器进行编程以及相关方法、系统和装置)”的美国专利申请s/n.14/573,328的优先权,该申请通过援引全部纳入于此。
背景
i.公开领域
本公开的技术一般涉及经由寄存器总线来读和写硬件寄存器。
ii.
背景技术:
现代计算机处理器利用各种总线标准和机制来提供各主控设备之间以及主控设备与从动设备之间的连通性。一种类型的总线标准提供寄存器总线,它可由在处理器上执行的计算机指令用来对硬件寄存器进行编程(例如,读或写硬件寄存器以将处理器模块置于所需配置中)。对硬件寄存器进行编程的请求可由寄存器总线主控器接收,它随后负责将该请求经由寄存器总线路由到适当的硬件寄存器。
然而,随着更多新近处理器包括更大数目的硬件寄存器,可能需要寄存器总线处置对应的增加的总线负载。为应付增加的总线负载可能引入的定时问题,一些常规处理器可按低于数据总线的时钟频率的时钟频率来操作寄存器总线。然而,将较低时钟频率用于寄存器总线可增加与跨时钟域相关联的开销。例如,跨时钟域可使可测性设计(dft)插入复杂化,这可导致需要附加测试时间来验证硬件设计。另外,一些操作(诸如数据的动态读取)可能需要附加逻辑,并且可能必需更复杂的定时约束。
用于处置寄存器总线上增加的负载的另一常规解决方案是将各硬件寄存器集中在连接到寄存器总线主控器的单个寄存器总线从动器处。通过这样做,寄存器总线可按数据总线的更高时钟频率来操作。然而,在这一办法下,将集中的各硬件寄存器与分布式处理器模块进行关联可能需要每一处理器模块的输入/输出(i/o)端口是非统一的且因模块而异的。此外,由于分层分区,这样的办法可能需要附加路由面积。
公开概述
本详细描述中公开的各方面包括使用流水线寄存器总线对硬件寄存器进行编程。还公开了相关方法、系统和装置。就此,在一些方面,寄存器总线可连接寄存器总线主控器以及一个或多个寄存器总线从动器。在各示例性方面,每一寄存器总线从动器可以与包括模块核以及一个或多个可编程硬件寄存器的处理器模块相关联。寄存器总线主控器经由寄存器总线向第一寄存器总线从动器发送包括地址的请求(例如,用于编程硬件寄存器)。与第一寄存器总线从动器相关联的处理器模块的模块核解码该地址,并确定该地址是否对应于该处理器模块(通过例如确定该地址是否被包含在指派给该处理器模块的地址空间内)。如果是,则该请求由该模块核处理,并且相同的请求被第一寄存器总线从动器原样传递到第二寄存器总线从动器。如果该地址不对应于该处理器模块,则第一寄存器总线从动器将相同的请求原样传递到第二寄存器总线从动器。以此方式,对硬件寄存器的编程可在时间上跨各模块核扩散,这可使寄存器总线以数据总线的较高时钟频率来操作,同时提供统一的模块输入/输出接口。在一些方面,寄存器总线主控器和寄存器总线从动器可被布置成菊花链配置。根据一些方面,如果请求是写请求,则第一寄存器总线从动器不将任何数据传递到寄存器总线上。如果请求是读请求,则第一寄存器总线从动器可以将所请求的数据连同数据有效性信号传递到寄存器总线上。在后一情形中,所请求的数据可结合该请求一起被传递到第二寄存器总线从动器,或者该请求可在将所请求的数据传递到第二寄存器总线从动器之后发送。
在另一方面,提供了一种用于在寄存器总线上通信的方法。该方法包括在寄存器总线主控器处发起包括地址的请求。该方法进一步包括经由寄存器总线将该请求从寄存器总线主控器传递到处理器模块的第一寄存器总线从动器。该方法另外包括在该处理器模块的模块核处解码该地址。该方法还包括确定该地址是否对应于该处理器模块。该方法进一步包括响应于确定该地址对应于该处理器模块而由该模块核处理该请求,并由第一寄存器总线从动器将相同的请求原样传递到第二寄存器总线从动器。该方法另外包括响应于确定该地址不对应于该处理器模块,由第一寄存器总线从动器将相同的请求原样传递到第二寄存器总线从动器。
在另一方面,提供了一种用于在寄存器总线上通信的系统。该系统包括寄存器总线,该寄存器总线将寄存器总线主控器通信地耦合到处理器模块的第一寄存器总线从动器并进一步将第一寄存器总线从动器通信地耦合到第二寄存器总线从动器。寄存器总线主控器被配置成:发起包括地址的请求;以及经由寄存器总线将该请求传递到处理器模块的第一寄存器总线从动器。该处理器模块被配置成:在该处理器模块的模块核处解码该地址;以及确定该地址是否对应于该处理器模块。该处理器模块被进一步配置成响应于确定该地址对应于该处理器模块,由该模块核处理该请求。第一寄存器总线从动器被配置成经由寄存器总线由第一寄存器总线从动器将相同的请求原样传递到第二寄存器总线从动器。
在另一方面,提供了一种包括寄存器总线上的寄存器从动设备的装置。寄存器从动设备包括配置成接收来自寄存器总线的请求的第一总线接口。寄存器从动设备进一步包括通信地耦合到第一总线接口的地址解码器。地址解码器被配置成从该请求提取地址并解码该地址。寄存器从动设备进一步包括通信地耦合到第一总线接口的第二总线接口。第二总线接口被配置成将来自第一总线接口的该请求传递回寄存器总线。寄存器从动设备另外包括通信地耦合到第一总线接口且被配置成处理请求的模块核。
在另一方面,提供了一种操作寄存器从动设备的方法。该方法包括在寄存器从动设备处接收第一时钟信号。该方法进一步包括在第一时钟周期经由寄存器总线在寄存器从动设备的第一总线接口处接收请求,该请求包括地址。该方法另外包括在第二时钟周期将该请求传递到寄存器从动设备的第二总线接口。该方法还包括在第二时钟周期之后的第三时钟周期将该请求返回寄存器总线。该方法进一步包括解码该地址并确定该地址是否对应于该寄存器从动设备。该方法另外包括响应于确定该地址对应于寄存器从动设备,在该寄存器从动设备的模块核中处理该请求,以及在后续第四时钟周期将来自模块核的数据提供到寄存器总线。
附图简述
图1是可包括流水线寄存器总线的计算设备的简化视图;
图2是可包括流水线寄存器总线的移动终端的透视图;
图3是图2的移动终端的组件的框图;
图4是解说包括寄存器总线主控器和处理器模块的示例性流水线寄存器总线拓扑的框图,处理器模块包括模块核和寄存器总线从动器;
图5a-5c是解说图4的处理器模块与寄存器总线从动器之间使用流水线寄存器总线的示例性通信流的框图;以及
图6是解说用于通过图4的流水线寄存器总线进行通信的示例性过程的流程图。
详细描述
现在参照附图,描述了本公开的若干示例性方面。措辞“示例性”在本文中用于表示“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。将理解,虽然术语“第一”、“第二”等等可在本文中用来描述各种元素,但这些元素不应受这些术语的限制。这些术语只被使用来区分一个元素与另一元素。例如,第一设备可被称为第二设备,并且类似地,第二设备可被称为第一设备,而不背离本公开的教导。
本详细描述中公开的各方面包括使用流水线寄存器总线对硬件寄存器进行编程。还公开了相关方法、系统和装置。就此,在一些方面,寄存器总线可连接寄存器总线主控器以及一个或多个寄存器总线从动器。在各示例性方面,每一寄存器总线从动器可以与包括模块核以及一个或多个可编程硬件寄存器的处理器模块相关联。寄存器总线主控器经由寄存器总线向第一寄存器总线从动器发送包括地址的请求(例如,用于编程硬件寄存器)。与第一寄存器总线从动器相关联的处理器模块的模块核解码该地址,并确定该地址是否对应于该处理器模块(通过例如确定该地址是否被包含在指派给该处理器模块的地址空间内)。如果是,则该请求由该模块核处理,并且相同的请求被第一寄存器总线从动器原样传递到第二寄存器总线从动器。如果该地址不对应于该处理器模块,则第一寄存器总线从动器将相同的请求原样传递到第二寄存器总线从动器。以此方式,对硬件寄存器的编程可在时间上跨各模块核扩散,这可使寄存器总线以数据总线的较高时钟频率来操作,同时提供统一的模块输入/输出接口。在一些方面,寄存器总线主控器和寄存器总线从动器可被布置成菊花链配置。根据一些方面,如果请求是写请求,则第一寄存器总线从动器不将任何数据传递到寄存器总线上。如果请求是读请求,则第一寄存器总线从动器可以将所请求的数据连同数据有效性信号传递到寄存器总线上。在后一情形中,所请求的数据可结合该请求一起被传递到第二寄存器总线从动器,或者该请求可在将所请求的数据传递到第二寄存器总线从动器之后发送。
在讨论使用流水线寄存器总线对硬件寄存器进行编程之前,首先参考图1-3描述可在其中实现本公开的各方面的示例性设备。图1和2分别解说了计算设备和移动终端,而图3更详细地解说了图2的组件。本公开的各示例性方面随后在以下从图4开始讨论。
尽管本公开的示例性方面构想了移动终端(诸如蜂窝电话)中的实现,但是本公开不被如此限定。就此而言,图1解说了耦合到网络102的计算设备100,在一示例性方面,网络102是因特网。计算设备100可包括其中具有中央处理单元(cpu)(未示出)的外壳104。用户(未示出)可通过由输入/输出元件(诸如监视器(有时被称为显示器)106、键盘108、和/或鼠标110)形成的用户接口与计算设备100交互。在一些方面,监视器106可被纳入到外壳104中。尽管解说了键盘108和鼠标110,但是监视器106在一些方面可以是触摸屏显示器,其可补充或取代键盘108和/或鼠标110。其他输入/输出设备也可能存在,这结合台式或膝上型计算设备是很好理解的。
除了计算设备100以外,本公开的诸示例性方面还可在移动计算设备上实现。就此而言,图2中解说了移动终端200的示例性方面。移动终端200可以是智能电话(诸如samsunggalaxytm或
参照图3提供了对图2的移动终端200的诸组件的更详细描绘。就此而言,解说了移动终端200的一些元件的框图。移动终端200可包括接收机路径300、发射机路径302、天线304、开关306、基带处理器(bbp)308、控制系统310、频率合成器312、用户接口314和其中存储有软件318的存储器316。
接收机路径300接收来自由图2的bs204提供的一个或多个远程发射机的承载信息的射频(rf)信号。低噪声放大器(未示出)放大该信号。滤波器(未示出)使收到信号中的宽带干扰最小化,同时下变频和数字化电路系统(未示出)将经滤波的收到信号下变频成中频信号或基频信号,其随后被数字化成一个或多个数字流。接收机路径300通常使用由频率合成器312生成的一个或多个混频频率。bbp308处理经数字化的收到信号以提取该信号中传达的信息或数据比特。如此,通常在一个或多个数字信号处理器(dsp)中实现bbp308。
继续参照图3,作为非限定性示例,在传送侧,bbp308从控制系统310接收表示语音、数据或控制信息的经数字化的数据。bbp308编码经数字化的数据以供传送并将经编码的数据输出到发射机路径302,其中该经编码的数据被调制器(未示出)用来调制处于期望传送频率的载波信号。rf功率放大器(未示出)将经调制的载波信号放大到适于传送的电平,并且将该经放大且经调制的载波信号通过开关306递送给天线304。接收机路径300、发射机路径302和频率合成器312可被共同认为是无线调制解调器320。
继续参照图3,用户可以经由用户接口314(作为非限定性示例,诸如经由话筒、扬声器、键盘和/或显示器)与移动终端200交互。编码在收到信号中的音频信息由bbp308恢复,并且被转换成适于驱动扬声器的模拟信号。键盘和显示器使得用户能够与移动终端200交互。例如,键盘和显示器可以使得用户能够输入要拨打的号码,访问地址簿信息或者类似信息,以及监视呼叫进度信息。存储器316中可具有如以上所提及的软件318,它可生成由本公开的各示例性方面处理的请求。尽管未解说,但是将理解,移动性较低的计算设备100可具有类似的元件,但代替无线调制解调器320,计算设备100可提供具有基于有线的接口的网络接口控制器(nic)来实现通信。
图3中解说的组件中的一者或多者可包括多个处理器模块,每一处理器模块包括一个或多个可编程硬件寄存器并通过寄存器总线相连接。为使寄存器总线能够以较高时钟频率(例如,数据总线的时钟频率)来操作并同时支持统一的处理器模块输入/输出(i/o)端口,可提供流水线寄存器总线。就此,图4解说了根据本文公开的一些方面的流水线寄存器总线400拓扑。在图4中,流水线寄存器总线400将寄存器总线主控器402与一个或多个处理器模块404(0)-404(15)通信地耦合。
处理器模块404(0)-404(15)中的每一者可以表示负责实现特定处理功能性的分立处理元件。作为非限制性的示例,处理器模块404(0)-404(15)中的每一者可以是图像信号处理器(isp)的功能元件。将理解,图4只是出于解说目的示出了总共16个处理器模块404(0)-404(15),并且本文公开的流水线寄存器总线400拓扑的一些方面可包括更多或更少处理器模块404(0)-404(15)。因为处理器模块404(0)-404(15)接收并响应来自寄存器总线主控器402的请求,所以处理器模块404(0)-404(15)在本文中可被称为“寄存器从动设备404(0)-404(15)”。
处理器模块404(0)-404(15)包括相应模块核406(0)-406(15)和寄存器总线从动器408(0)-408(15)。模块核406(0)-406(15)为对应的处理器模块404(0)-404(15)执行处理任务,作为非限制性的示例包括地址解码和硬件寄存器读和/或写。相应地,如在下文参考图5a-5c更详细地讨论的,作为非限制性示例,模块核406(0)-406(15)可包括诸如地址解码器(未示出)以及一个或多个硬件寄存器410(0)-410(15)等元件。寄存器总线从动器408(0)-408(15)是对应处理器模块404(0)-404(15)的经由流水线寄存器总线400接收和转发通信(例如,硬件寄存器读和/或写的请求)的元件。
在一些方面,流水线寄存器总线400按菊花链配置将寄存器总线主控器402与寄存器总线从动器408(0)-408(15)相连接。例如,在图4的示例中,寄存器总线主控器402被连接到寄存器总线从动器408(0),寄存器总线从动器408(0)进而连接到寄存器总线从动器408(1),以此类推。最后一个寄存器总线从动器408(15)随后连接到寄存器总线主控器402,从而完成菊花链。
在示例性操作中,寄存器总线主控器402可以发起对处理器模块404(0)-404(15)之一的硬件寄存器410(0)-410(15)进行编程的请求(未示出)。作为非限制性示例,对硬件寄存器410(0)-410(15)进行编程的请求可包括读取硬件寄存器值的请求和/或将值写到硬件寄存器的请求。如此,对硬件寄存器410(0)-410(15)进行编程的请求可包括用于执行该请求所需的信息,诸如地址。该请求还可伴有附加数据,诸如要被写到寄存器的数据值和/或数据有效指示符。作为非限制性示例,该请求可由寄存器总线主控器402响应于图3的软件318的指令(未示出)而被发起。
该请求随后经由流水线寄存器总线400传递到连接到寄存器总线主控器402的处理器模块404(0)的寄存器总线从动器408(0)。寄存器总线从动器408(0)提取该请求的地址,并将它转发给模块核406(0)以供处理。该地址随后由模块核406(0)解码并被评估以确定该地址是否对应于处理器模块404(0)(例如,该地址是否落入与处理器模块404(0)相关联的地址空间内)。如果该地址不对应于处理器模块404(0),则处理器模块404(0)的寄存器总线从动器408(0)将相同的请求原样转发给菊花链中的下一处理器模块404(在该示例中是处理器模块404(1))的寄存器总线从动器408(1)。
然而,如果该地址被确定为对应于处理器模块404(0),则该请求被模块核406(0)处理以对硬件寄存器410(0)-410(15)进行编程。在一些方面,处理该请求以对硬件寄存器410(0)-410(15)进行编程可包括将伴随该请求的数据值写到硬件寄存器410(0)-410(15)和/或将来自硬件寄存器410(0)-410(15)的响应输出到流水线寄存器总线400。处理器模块404(0)的寄存器总线从动器408(0)随后将相同的请求原样连同该请求的处理结果(如果有的话)转发给菊花链中的下一处理器模块404(在这一示例中是处理器模块404(1))的寄存器总线从动器408(1)。将理解,将相同请求以及对应结果(如果有的话)转发到菊花链中的下一处理器模块404发生在同一个处理器时钟周期处(未示出)。
为解说用于提供流水线寄存器总线的寄存器总线从动器内的示例性通信流,提供了图5a-5c。图5a-5c示出了处理器模块500,根据一些方面它可对应于图4的处理器模块404(0)-404(15)之一。具体而言,图5a解说了处理器模块500经由寄存器总线从寄存器总线主控器接收用于对硬件寄存器进行编程的请求。图5b示出了对该请求的处理,而图5c解说了该请求和响应(如果有的话)被输出到寄存器总线。
如在图5a中看到的,处理器模块500包括模块核502,它提供处理器模块500的处理功能性。具体而言,模块核502包括地址解码器504、可编程硬件寄存器505、读寄存器506、以及读数据有效性指示符508。模块核502的上述元件的操作在下文更详细地讨论。
处理器模块500进一步包括用于经由寄存器总线514通信的寄存器总线从动器512。在图5a-5c的示例中,处理器模块500具有两(2)个时钟周期的处理等待时间。相应地,处理器模块500的寄存器总线从动器512包括总线接口516(0)-516(x),它们中的每一者接收来自数据时钟源520的数据时钟信号518。将理解,总线接口516的数目与处理器模块500的处理等待时间相对应。例如,在其中处理器模块500具有三(3)个处理器时钟周期的处理等待时间的方面,可提供总线接口516(1)。在图5a-5c的示例中,处理器模块500具有两(2)个处理器时钟周期的处理等待时间,并且因而不需要总线接口516(1)且出于简明起见从图5b和5c中省略。根据一些方面,处理器模块500的处理等待时间可完全或部分地取决于地址解码器504解码地址所需的时钟周期的数目。
总线接口516(0)-516(x)包括用于经由寄存器总线514传达请求524的相应请求寄存器522(0)-522(x)。总线接口516(0)-516(x)还包括用于接收来自寄存器总线514的数据值528的相应数据寄存器526(0)-526(x)以及用于接收与来自寄存器总线514的数据值528相对应的数据有效性指示符532的相应数据有效性指示符寄存器530(0)-530(x)。另外,总线接口516(x)进一步包括逻辑或(or)门534和536,它们的操作在下文更详细地描述。
在图5a中,由寄存器总线主控器(诸如图4的寄存器总线主控器402)发起的请求524被寄存器总线514传递到寄存器总线从动器512的总线接口516(0)。在一些方面,请求524包括对硬件寄存器(诸如模块核502的硬件寄存器505)进行编程的请求。请求524包括目标硬件寄存器的地址538,并且可进一步包括分别指示对硬件寄存器505进行编程的该请求是写请求和/或读请求的写启用指示符540和/或读启用指示符542。在写请求的情形中,可由寄存器总线主控器402使用要写的数据值来设置数据值528,而数据有效性指示符532可被设置成一(1)以指示该数据值是有效的。对于读请求,数据值528和数据有效性指示符532两者都可被寄存器总线主控器402设置成零(0)。
现在参考图5b,寄存器总线从动器512的总线接口516(0)将请求524、数据值528、以及数据有效性指示符532转发给模块核502。总线接口516(0)还将相同的请求524原样连同数据值528和数据有效性指示符532传递到总线接口516(x)。在模块核502中,请求524的地址538被提取。模块核502随后确定请求524的地址538是否对应于处理器模块500。作为非限制性示例,模块核502可以确定地址538是否落入指派给处理器模块500的地址空间,诸如硬件寄存器505的地址。
图5c解说了模块核502确定地址538是否对应于处理器模块500的结果。如果地址538不对应于处理器模块500,则请求524被寄存器总线从动器512的总线接口516(x)原样传递到寄存器总线514。在一些方面,在地址538不对应于处理器模块500时和/或如果请求524表示写操作,则模块核502可以向逻辑或门534和536输出零(0)值。通过向逻辑或门534和536输出零(0)值,数据值528和数据有效性指示符532的原始值可不改变地穿过寄存器总线从动器512,作为响应544和输出数据有效性指示符546。
如果地址538的确对应于处理器模块500,则模块核502根据请求524的写启用指示符540和/或读启用指示符542是否被置位来处理请求524。如果写启用指示符540被置位,则模块核502可以将请求524的数据值528写到由地址538所指示的硬件寄存器505。因为写操作在数据值528被写到硬件寄存器505时完成,所以写操作的等待时间可被计算为处理器模块500以及在处理器模块500之前接收并传递请求524的任何在前处理器模块(未示出)的个体等待时间的总和。
如果读启用指示符542被置位,则模块核502可以读取由地址538指示的硬件寄存器505的值,并经由读寄存器506将硬件寄存器505的值输出到总线接口516(x)的逻辑或门534。模块核502还可读取读数据有效性指示符508的值,并将读数据有效性指示符508的值输出到总线接口516(x)的逻辑或门536。根据一些方面,在读启用指示符542被置位时,传递到图5a中的寄存器总线从动器512的数据值528和数据有效性指示符532两者被设置成零(0)。因而,从总线接口516(x)的逻辑或门534输出的响应544具有读寄存器506的值,而从逻辑或门536输出的输出数据有效性指示符546具有读数据有效性指示符508的值。响应544和输出数据有效性指示符546由寄存器总线从动器512输出到寄存器总线514,将被传递到后续处理器模块(未示出)或图4的寄存器总线主控器402(如果处理器模块500是寄存器总线514上的最后一个处理器模块的话)。因为读操作直至响应544到达寄存器总线主控器402才完成,所以读操作的等待时间可被计算为处理器模块500与寄存器总线514上的每一其他处理器模块(未示出)的个体等待时间的总和。
图6是提供用于解说用于通过图4的流水线寄存器总线400进行通信的示例性过程的流程图。在描述图6时,为清楚起见而引述图4和图5a-5c的元件。在图6中,在一些方面,操作始于寄存器总线主控器402、第一寄存器总线从动器512、以及第二寄存器总线从动器408(15)被布置成菊花链配置(框600)。数据时钟信号518可被提供给第一寄存器总线从动器512(框602)。
随后在寄存器总线主控器402处发起包括地址538的请求524(框604)。经由寄存器总线514将请求524从寄存器总线主控器402传递到处理器模块500的第一寄存器总线从动器512(框606)。接着在处理器模块500的模块核502处解码请求524的地址538(框608)。模块核502随后确定地址538是否对应于处理器模块500(框610)。如果否,则第一寄存器总线从动器512就将相同的请求524原样传递到第二寄存器总线从动器408(15)(框612)。
然而,如果模块核502在判定框610确定地址538对应于处理器模块500,则由模块核502处理请求524(框614)。在一些方面,用于处理请求524的框614的操作可包括以与数据时钟信号518相关联的时钟速率来对模块核502的硬件寄存器505进行编程(框616)。第一寄存器总线从动器512随后可在模块核502中处理请求524之后输出响应544(框618)。请求524随后可从第二寄存器总线从动器408(15)传递到寄存器总线主控器402(框620)。
根据本文所公开的各方面使用流水线寄存器总线对硬件寄存器进行编程可在任何基于处理器的设备中提供或被集成到任何基于处理器的设备中。不作为限定的示例包括机顶盒、娱乐单元、导航设备、通信设备、固定位置数据单元、移动位置数据单元、移动电话、蜂窝电话、计算机、便携式计算机、台式计算机、个人数字助理(pda)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视频碟(dvd)播放器、以及便携式数字视频播放器。
本领域技术人员将进一步领会,结合本文所公开的诸方面描述的各种解说性逻辑块、模块、电路和算法可被实现为电子硬件、存储在存储器中或另一计算机可读介质中并由处理器或其它处理设备执行的指令、或这两者的组合。作为示例,本文描述的主控设备和从动设备可用在任何电路、硬件组件、集成电路(ic)、或ic芯片中。本文所公开的存储器可以是任何类型和大小的存储器,且可配置成存储所需的任何类型的信息。为清楚地解说这种可互换性,各种解说性组件、框、模块、电路和步骤在上文已经以其功能性的形式一般性地作了描述。此类功能性如何被实现取决于具体应用、设计选择、和/或加诸于整体系统上的设计约束。技术人员可针对每种特定应用以不同方式来实现所描述的功能性,但此类实现决策不应被解读为致使脱离本公开的范围。
结合本文中公开的诸方面描述的各种解说性逻辑块、模块、以及电路可用设计成执行本文中描述的功能的处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。处理器可以是微处理器,但在替换方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如dsp与微处理器的组合、多个微处理器、与dsp核心协同的一个或多个微处理器、或任何其它此类配置。
本文所公开的各方面可被体现为硬件和存储在硬件中的指令,并且可驻留在例如随机存取存储器(ram)、闪存、只读存储器(rom)、电可编程rom(eprom)、电可擦可编程rom(eeprom)、寄存器、硬盘、可移动盘、cd-rom、或本领域中所知的任何其它形式的计算机可读介质中。示例性存储介质被耦合到处理器,以使得处理器能从/向该存储介质读取/写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在asic中。asic可驻留在远程站中。在替换方案中,处理器和存储介质可作为分立组件驻留在远程站、基站或服务器中。
还注意到,本文任何示例性方面中描述的操作步骤是为了提供示例和讨论而被描述的。所描述的操作可按除了所解说的顺序之外的众多不同顺序来执行。此外,在单个操作步骤中描述的操作实际上可在多个不同步骤中执行。另外,示例性方面中讨论的一个或多个操作步骤可被组合。将理解,如对本领域技术人员显而易见地,在流程图中解说的操作步骤可进行众多不同的修改。本领域技术人员还将理解,可使用各种不同技术和技艺中的任何一种来表示信息和信号。例如,贯穿上面说明始终可能被述及的数据、指令、命令、信息、信号、比特、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子、或其任何组合来表示。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员而言将容易是显而易见的,并且本文中所定义的普适原理可被应用到其他变型而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖特征一致的最广义的范围。