用于在消息之间进行仲裁的数据处理装置和方法

文档序号:6461848阅读:306来源:国知局
专利名称:用于在消息之间进行仲裁的数据处理装置和方法
技术领域
本发明涉及用于在通过通信信道路由(route)的消息之间进行仲裁 的数据处理装置和方法,特别是涉及用于通过在多个处理元件之间共 享的通信信道路由的消息之间进行仲裁的数据处理装置和方法。
背景技术
存在多个处理元件之中共享通信信道的许多系统,其中的各个处 理元件通过通信信道向接收元件发出消息。通信信道可采取用于将多 个主装置与芯片中的多个从装置、如芯片上系统(SoC)装置连接、或者 连接多芯片模块中的各个芯片或者实际上互连印刷电路板结构中的各 个^^莫块的总线互连电路的形式。在更大规才莫上,通信信道可通过互连 多个计算机的网络或者用于互连多个装置的共享无线电链路来构成。对于任何通信信道,存在对那个信道的信息承载(carry)容量的限 制,并且还存在与通信信道相关联的等待时间。存在使信道容量和等 待时间能够改变的体系结构选择,例如使用并行化技术和增加的工作 频率。但是,这类技术具有复杂度、功率和区域方面的费用,它们需 要对于所需性能进行折衷。在通信信道在多个处理元件之间共享的任何系统中,其中那些处 理元件需要在运行进程时通过通信信道发出消息,通信信道神皮共享的 事实迫使进行关于通过通信信道处理消息的顺序的判定,并且这个判 定通过使用仲裁技术来进行。考虑SoC的实例,消息可采取主装置在 事务期间发出的信号的形式,具体来说,主装置通常通过将指定与事 务关联的从装置的访问请求发布到通信信道上,来发起事务。在这个 特定领域中已知的是,事务的某种排序产生比其它排序更低的总等待时间,这是装置、如存储控制器通常专用的区域。但是,仲裁判定必 然增加其消息因仲裁判定而被阻止的进程所遇到的等待时间。因此,进行这个仲裁判定的方式对系统的整体性能具有显著影响。基本仲裁方案使用采取固定优先级或循环(公平共享)技术的算法。这类方案限制到逐个消息进行仲裁判定,并且有限地考虑以前进 行的选择。循环方案的例外情况是当前优先级取决于先前的优先级。 但是,两种方案都遇到问题它们基于逐个消息而不是在发出消息的 各个进程之间分配通过通信信道所产生的附加等待时间。因此,在通 信信道中具有高访问等级的消息因通信信道中进行的仲裁判定而经历 高等级的附加等待时间。主要为网络开发的备选技术是服务质量(QoS)技术,它通过设法确保进程具有所需带宽和可控等待时间特性来进行基于时间的观测。因此,这类QoS方案考虑每个进程,并将通信信道的一部分带宽分配给 那个进程,其中具有对施加到各事务或消息的等待时间的某种控制。 但是,已知QoS方案的限制在于,每个进程的特性被假定为在运行那 些进程时发生的实际数据流量之前是已知的,并且还需要某种高级协 议来管理那种信息。因此,这类QoS方案对于带宽和等待时间特性的 变化是不灵活的,需要预先知道这些特征,并且需要高级协议来配置 通信信道的操作以便向进程提供必要的特性。因此,现有QoS方案以 通信信道提供性能的假设开始,并按照来自进程的预定要求来分配这 个性能。这可能使具有比预计更低的带宽要求的进程得到不公平性能, 而超过其预定特性的其它进程则缺乏性能。虽然这些已知QoS方案的一部分可在网络环境中的工作是可接受 的,但是,在其它类型的系统、如SoC中,通过共享通信信道发生的 数据流量可能是随机的(例如从高速緩存未命中等产生)并且动态可变 的,因此不适合于现有QoS方案。因此,希望提供一种用于在通过共享通信信道路由的消息之间进 行仲裁的改进技术。发明内容从第 一方面来看,本发明提供一种用于在通过通信信道路由的消息之间进行仲裁的数据处理装置,包括多个处理元件,各处理元件 用于运行需要向接收元件发出消息的进程;在多个处理元件之间共享 的通信信道,通过所述信道路由消息;仲裁电路,用于执行在通过通 信信道路由的多个消息之间进行仲裁的仲裁过程;各处理元件设置成 发出在那个处理元件上运行的进程的进度(progress)数据,进度数据指 示进程的等待时间暗示(implication);以及仲裁控制电路,响应来自各 处理元件的进度数据,在考虑了进度数据所指示的各进程的等待时间 暗示的情况下执行优先级排序过程,以便生成优先级排序数据,并将 优先级排序数据输出到仲裁电路,以便控制仲裁过程。根据本发明,每个处理元件设置成发出在那个处理元件上运行的 进程的进度数据,其中的进度数据指示该进程的等待时间暗示。最后, 当等待时间增加到特定等级时,将导致进程停止(stall),但这不会立即 发生,因为可存在充分的緩冲或者可首先运行的其它计算。另外,停 止对进程的影响根据那个进程而改变,在一些情况下可能是灾难性的, 而对于其它进程,停止的影响可能不那么重要,并且可能只是延长完 成进程所需的时间。因此,大家会理解,等待时间的暗示根据进程而 改变,因此,相对于各运行进程发出的进度数据指示那个进程特定的 等待时间暗示。此外,根据本发明提供仲裁控制电路,它响应来自各处理元件的 进度数据而在考虑了进度数据所指示的等待时间暗示的情况下执行优 先级排序过程。由于这个过程,生成优先级排序数据,以及这个优先 级排序数据输出到数据处理装置所提供的仲裁电路,以便控制那个仲 裁电路所执行的仲裁过程。仲裁电路的设置取决于通信信道的结构。在通信信道中通常存在 需要执行仲裁的多个点,因此,仲裁电路分布于通信信道,以便使仲 裁能够在那些点的每一个上执行。在每个这样的点上,仲裁控制电路 输出的优先级排序数据用于在通信信道的那个点上出现的多个消息之间进行仲裁。通过利用本发明,可在考虑了各个进程的要求时执行仲裁,因此采用QoS样式的仲裁,但与已知QoS方案相反,该QoS在进程之间 自动确定和分配,因而消除了预先知道这些要求的需要。另外,本发 明的QoS机制动态适合于进程之间的通信的变化。具体来说,当来自 各个进程的进度数据改变时,这将影响仲裁控制电路所产生的优先级 排序数据,它转而影响数据处理装置的仲裁电路所执行的仲裁。共享通信信道的处理元件可采取各种形式。但是,在一个实施例 中,每个处理元件是连接到通信信道的主装置。通过通信信道向接收 元件发送消息的装置通常是从装置,以及各个事务由主装置在其中运 行进程时发出,以便使多个读或写传输在主装置与从装置之间经由通 信信道发生。在这类实施例中,每个消息可采取主装置之一发出的访 问请求以便发起事务的形式。但是,消息的准确形式取决于通信信道 上使用的协议。对于例如ARM Limited(Cambridge, United Kingdom)开 发的AXI(高级可扩展接口)协议等总线协议,读和写数据构成事务所 指定的地址转换(transfer)中描述的消息的一部分,而在分包系统中, 请求和数据可构成组成消息的单个分组的 一部分。各个处理元件运行的各个进程可采取各种形式。但是,在一个实 施例中,各进程是程序线程,以及各处理元件运行单个程序线程。在 这类实施例中,逐个线程地提供进度数据。在一个备选实施例中,至少一个处理元件包括多个处理单元,其 中各处理单元运行一个程序线程。在这个实施例中,处理元件是多核 处理器,以及进度数据对其发出的"进程"由那个处理元件的各个处 理单元上运行的所有各种程序线程组成。配置这样一种多核处理器的 另 一种方式是将多核处理器中的各个处理单元设置成分别^皮看作处理 元件,使得多核处理器中的各处理单元输出它自己的、与那个处理单 元上运行的程序线程相关的进度数据。数据处理装置可采取各种形式,但在一个实施例中采取SoC的形 式。本发明的技术在SoC装置中极为有益,因为通过通信信道发生的各种数据流可能是随机并且动态可变的。当各种进程的要求改变时, 本发明的实施例的技术足够灵活地管理各种进程的带宽和等待时间。进度数据可采取各种形式。在一个实施例中,进度数据确定关联 进程是实时进程还是非实时进程,对于实时进程,进度数据还确定指示处理那个实时进程发出的消息剩余的时间的至少 一个松弛(slack)值,对于非实时进程,进度数据还确定指示对于预定时间与那个进程 关联的等待时间的至少 一个等待时间值。为了便于进行描述,实时进程可看作是停止对那个进程的影响邱皮 认为是灾难性、因而是不可接受的任何进程。 一个实例可能是正生成 用于在屏幕上显示的视频的进程,其中,所显示视频的中断可^皮认为 是不可接受的。相反,本申请的上下文中的非实时进程表示停止可能 是可接受的、因而停止的影响不是那么重要但引起完成进程所需的时 间延长的任何进程。除了关于进程是实时进程还是非实时进程的指示 之外,对于实时进程,进度数据还确定指示用于处理那个实时进程发 出的消息剩余的时间(在进程停止之前还有多少时间)的松弛值。相反, 对于非实时进程,进度数据还确定指示对于预定时间与那个进程关联 的等待时间的至少 一个等待时间值。预定时间是可根据实现进行改变 的设计参数。预定时间越长,则在产生等待时间值时要考虑的历史信 息量越大,而预定时间越短,则等待时间值更快地响应最近变化而改 变,因此,仲裁控制电路生成的优先级排序数据更快地应来自特定进 程的需求的最近变化。通过将上述信息结合到进度数据中,仲裁控制电路可确保充分优 先地考虑实时进程,以确保它们不会停止,但在与实时进程关联的松 弛值允许的情况下,为了减小那个非实时进程遇到的等待时间,非实 时进程可优先于实时进程。通过将对于每个非实时进程所确定的等待 时间值设置成指示在预定时间上与那个进程相关联的等待时间,这使 整体等待时间能够在非实时进程之间公平分配。提供用于产生与每个非实时进程关联的等待时间值的电路可采取 各种形式。例如,对于各进程,可保存带符号二进制值,其中,负值指示可增加而不会停止进程的等待时间,而正值则计算已经对进程增加的等待时间。在对传送(transfer)增加等待时间的每一个周期,这个 二进制计数器可递增,以及当二进制值为正时,这指示线程已经停止。 这个停止时间则可在积分器中累计(因为积分器值随时间变为无穷大, 可提供定期从所有积分器中减去某个值的机制)。因此,积分器输出的 等待时间值提供关于可由仲裁控制电路在生成优先级排序数据时使用 的线程之间的停止时间的差异的信息。作为使用积分器的一个备选方 案,滤波器电路可与运行非实时进程的各处理元件相关联,其中的滤 波器电路产生每个单位时间的等待时间的形式的等待时间值。因此, 在这类实施例中,简单的低通滤波器可用来跟踪累计停止时间,以及 来自各滤波器的输出与平均停止率、即线程停止的周期数量对于形成 参考时间段的预定时间成正比。在一个实施例中,可公平处理所有非实时进程,其中,在进度数 据中包含的等待时间值用于设法在非实时进程之间均匀分配等待时间 的影响。但是,在一个备选实施例中,至少一个非实时进程具有与其 关联的加权,并且在产生那个非实时进程的等待时间值时考虑那个加 权。每个这样的进程的加权可在设计时固定,或者可能是可编程的, 但通常不会动态改变。在使用滤波器电路的实施例中,每个非实时进 程的加权可通过将不同的加权应用于这种滤波器电路所应用的滤波算 法来实现。因此,高加权可应用于某些非实时进程,而低加权则应用 于其它实时进程,使得在优先级排序过程由仲裁控制电路执行时,某 些非实时进程(即具有较高加权的非实时进程)可优选其它非实时进 程。作为一个实例,如果由于那个进程的停止而令音频极偶然被中断 是可接受的,则这可允许产生音频流的进程被认为是非实时进程,但 是为了然后相对那个进程应用高加权,使得相对那个进程输出的等待 时间值与其它较不重要的非实时进程相比更为迅速地增加,因而在仲 裁控制电路中执行优先级排序过程时,使那个音频流进程优先于较低 优先级的非实时进程。在一个实施例中,数据处理装置还包括与运行实时进程的各处理元件关联的计数器电路,计数器电路产生所述松弛值。因此,在一个 实施例中,当消息由那个进程输出(例如事务开始)时,计数器电路可 将计数器设置为特定值,其中,那个计数器值然后在每个时钟周期递 减,使得松弛值随时间减小。当松弛值较高时,仲裁控制电路执行的 优先级排序过程可以使某些非实时进程优先于实时进程,但是,存在 ^^弛值下降到低于某个等级的点,使得优先级排序过程然后使实时进 程优先于这类非实时进程。在一个实施例中,对于非实时进程,进度数据还确定用于确定那 个进程是否停止的停止值。在一个具体实施例中,这可采取单个位值 的形式,其中, 一个值指示进程^皮停止,而另一个值则指示进程没有 停止。在一个具体实施例中,这个停止值还可用作对用于产生等待时 间值的滤波器电路的输入。在一个实施例中,对于非实时进程,进度数据还确定指示用于在 进程停止之前处理那个进程发出的消息剩余的时间的松弛值。因此, 在非实时进程提前发起事务(即进程在需要那个事务的结果之前仍然 能够继续进行某个时间段)的情况下,松弛值可包含在进度数据中确定 进程停止之前剩余的时间,并且这个信息可由仲裁控制电路在执行优 先级排序过程时进行考虑。优先级排序过程可通过各种方式来设置。但是,在一个实施例中, 如果某个实时进程的t〉弛值指示用于处理由那个实时进程发出的消息 剩余的时间大于预定阈值,则优先级排序过程对非实时进程提供优先 于那个实时进程的优先级。因此,在实时进程的松弛允许时,非实时 进程可优先于实时进程,以便减少那些非实时进程遇到的等待时间, 并且没有对实时进程的任何实际影响。在一个实施例中,优先级排序过程对具有较高等待时间值的非实 时进程提供比具有较低等待时间值的非实时进程高的优先级。因为这 些等待时间值指示在预定时间上与进程关联的等待时间,所以这实现 对于非实时进程的等待时间的公平分配。在一个实施例中,对于具有不同停止值的两个非实时进程,优先级排序过程比将优先级提供给具有较高等待时间值的进程更优先地将 优先级提供给停止值指示那个进程^皮停止的非实时进程。因此,这种 方法试图减少停止任何非实时进程的时间。在一个实施例中,对于具有不同松弛值的两个非实时进程,优先 级排序过程比将优先级提供给具有较高等待时间值的进程更优先地将 优先级提供给具有最小松弛的非实时进程。这种方法试图在可能的情 况下降低非实时进程停止的可能性。虽然各处理元件所产生的进度数据的主要目标是使服务质量考虑 因素能够由仲裁控制电路在执行优先级排序过程时进行考虑,但是还 发现,进度数据的一部分可在数据处理装置的其它部分中再使用。例 如,已知的是提供一种数据处理装置,其中具有能量管理电路来控制装置的各种组件进行操作的性能等级(level)。这种数据处理装置通常可在运行时在不同工作性能之间转换。在运行轻工作负荷时选择较低性 能等级,以便节省能量(功耗),而对于处理更为密集的工作负荷则选 择较高性能等级。当数据处理装置中的处理元件通过互补金属氧化物半导体(CMOS)技术来实现时,较低的性能等级表示较低的频率和工作 电压设定。在数据处理装置包括这种能量管理电路的一个实施例中,能量管 理电路设置成在确定一个或多个处理元件的工作性能等级时,考虑那 些处理元件发出的进度数据的至少一部分。在一个具体实施例中,能 量管理电路考虑运行非实时进程的一个或多个处理元件输出的等待时 间值。从第二方面来看,本发明提供一种在通过具有多个处理元件的数 据处理装置的通信信道路由的消息之间进行仲裁的方法,其中各处理 元件运行需要向接收元件发出消息的进程,以及通信信道在多个处理 元件之间共享,消息通过通信信道路由,该方法包括/人各处理元件 发出在那个处理元件上运行的进程的进度数据,进度数据指示进程的 等待时间暗示;响应来自各处理元件的进度数据,在考虑了由进度数 据所指示的各进程的等待时间暗示的情况下执行优先级排序过程,以便生成优先级排序数据;以及执行在通过通信信道路由的多个消息之间进行仲裁的仲裁过程,优先级排序数据用来控制仲裁过程。 从第三方面来看,本发明提供用于数据处理装置的仲裁控制电路,数据处理装置包括多个处理元件,各处理元件运行需要向接收元件 发出消息的进程;在多个处理元件之间共享的通信信道,消息通过通 信信道路由;以及仲裁电路,用于执行在通过通信信道路由的多个消 息之间进行仲裁的仲裁过程,仲裁电路包括输入接口,用于从各处 理元件接收在那个处理元件上运行的进程的进度数据,进度数据指示 进程的等待时间暗示;优先级排序电路,响应来自各处理元件的进度 数据,在考虑了由进度数据所指示的各进程的等待时间暗示的情况下 执行优先级排序过程,以便生成优先级排序数据;以及输出接口,用 于向仲裁电路输出优先级排序数据,以便控制仲裁过程。


仅作为实例、参照附图所示的本发明的实施例来进一步描述本发明,附图包括图l是根据本发明的一个实施例的数据处理装置的框图;图2A是示出一种用于在图1的数据处理装置中提供多核处理器的方法的框图;图2B是示出在图1的数据处理装置中提供多核处理器的一种备 选方式的框图;图3A是示意性说明不同类型的非实时进程的等待时间成本相对 时间的图表;图3B是示出对于图3A所示的三个不同进程、根据本发明的一个实施例发出的停止位的值的图表;图4是示出实时进程的等待时间成本相对于时间的图表;图5示出根据本发明的一个实施例、由每个主装置向图1的仲裁控制电路发出的进度信息的各种部分(component);图6示出根据本发明的一个实施例、可在图1的仲裁控制电路中保存的数据结构;图7示意性说明根据本发明的一个实施例、由图1的仲裁控制电 路对于两个线程所应用的排序过程;图8是示出根据本发明的一个实施例、由图1的仲裁控制电路所 应用的优先级排序过程的流程图;图9是更详细地表示根据本发明的一个实施例、对所选线程对应 用排序过程所执行的步骤的流程图;以及图IO是示出还可如何将图1的各种主装置发出的进度数据的至少 一部分路由到数据处理装置中的能量管理控制电路的^f匡图。
具体实施方式
图1是根据本发明的一个实施例的数据处理装置的框图。在这个 实施例中,数据处理装置采取SoC的形式,其中包括经由通信信道40 与多个从装置50、 60、 70耦合的多个主装置10、 20、 30。虽然为了 论述本发明的一个实施例而考虑这样一种SoC装置,但是本领域的技 术人员会理解,本发明的实施例的技术可适用于在多个处理元件之间 共享通信信道的大量不同系统。考虑图1的SoC实例,通信信道40通常采取互连块的形式,其 中包括多个互连总线,为SoC中的多个总线主装置10、 20、 30和总 线从装置50、 60、 70的互连提供连接矩阵。组成通信信道的总线通常按照规定的总线协议进行操作,因而例 如可按照ARM Limited开发的"高级微控制器总线体系结构"(AMBA)Mr范进行操作。因此大家会理解,通信信道40由各个主装置与从装置之间的互连 的复杂布置组成。在通信信道中的各个点上,需要提供在争用特定通 路的多个消息之间进行仲裁的仲裁电路。主装置IO、 20、 30的每一个通常运行进程,在此期间通过通信信 道40发起各种事务。这类事务使数据能够从主装置路由到从装置(在写事务的情况下)或者自从装置路由到主装置(在读事务的情况下),其 中各事务通过主装置将访问请求发布到通信信道上发起。各访问请求 可被认为是组成消息,以及通信信道中的仲裁电路需要在总线基础设 施中多个消息可争用特定通路的任何点上执行仲裁。因此,仲裁电路可^皮认为是由散布于通信信道上的多个仲裁元件 组成,其中的每个这样的仲裁元件执行在多个消息之间进行仲裁的仲 裁过程。根据本发明的实施例,各仲裁元件所执行的仲裁过程由仲裁控制电路80来确定,仲裁控制电路80设置成在输入接口 82上接收各 个主装置10、 20、 30分别通过相应通路12、 22、 32输出的进度信息。 稍后更详细地进行描述,这个进度数据指示每个主装置上运行的进程 的等待时间暗示,并且将那个进度数据转发给仲裁控制电路中的优先 级排序电路84,其中,在考虑了那个进度数据的情况下执行优先级排 序过程,以便生成优先级排序数据。那个优先级排序数据则经由输出 接口 86作为进程的优先级排序列表输出,其中将那个列表路由到通信 信道中的所有仲裁元件(本文中又称作仲裁器)。存在可传播这个优先 级排序列表的各种方式。在一个实施例中,这个排序列表可通过与用 于路由消息相同的通路来传播,而在一个备选实施例中,它可通过单 独的专用总线结构来传播。每个仲裁则根据所提供的优先级排序列表 来执行仲裁过程。仲裁控制电路80可设置成以预定间隔更新这个优先级排序列表。 一般来说,每当对仲裁控制电路的任何输入改变时,应当更新优先级 排序列表。这通常引起在每个时钟周期更新该列表,除非有极少或者 没有事务正在进行。图2A是示出一种可在图1的数据处理装置中提供多核处理器100 的方法的框图。多核心处理器IOO具有经由处理器100中的内部通信 信道150互连的多个处理器核心110、 120、 130、 140。多核处理器IOO 则连接到外部通信信道160,经由外部通信信道160可与各个,人装置 50、 60、 70进行通信。在一个实施例中,图1的通信信道40可^皮认 为包含多核处理器10的内部通信信道150以及多核处理器外部的通信信道160,使得处理器核心IIO、 120、 130、 140的每一个实际上可被 认为组成独立的主装置,其中的每一个向仲裁控制电路80发出它们自 己的进度信息。在一个实施例中,各个这样的核心110、 120、 130、 140运行独立的程序线程,因此,从任何特定核心输出的进度信息指 示关联线程的等待时间暗示。在一个备选实施例中,如图2B所示,多核处理器的内部构件对 仲裁控制电路隐藏,而多核处理器的整体看作是单个主装置,在这个 实例中为主装置10。因此,在主装置10是多核处理器的情况下,通 过通路12输出到仲裁控制电路的进度信息提供多核处理器所执行的 "进程"的总体等待时间暗示,因此没有直接提供各个单独核心110、 120、 130、 140运行的各个单独线程的等待时间暗示。图3A是示出各种类型的非实时进程的等待时间成本相对时间的 图表。线条"a" 200示出当处理元件运行在需要时请求数据的进程时 发生的等待时间成本的形式,但是在通过通信信道40发出任何访问请 求之前发生内部延迟。例如,这可能是主装置是具有内部高速緩存、 黑盒系统等处理器的情况。考虑具有高速緩存的处理器的实例,当访 问请求由处理器发出时,首先在高速緩存中执行查找,以便判定访问 请求的对象的数据是否在高速緩存中。如果不是,则发生高速緩存未 命中,以及访问请求然后通过通信信道40出现。如图3A中与线条200 关联的虛线所示,非实时进程观测到的等待时间在任何访问请求出现 于通信信道40之前已经增加,使得在时间零,访问请求出现在通信信 道上,等待时间成本已经处于正值。相比之下,线条"b" 210示出对于其进程在需要时请求数据的处 理元件所观测的线条类型,并且请求立即出现在通信信道40上。这样 一个处理元件的实例例如可以是直接存储器存取(DMA)控制器。线条"c" 220示出对于其进程提前请求数据的处理元件所观测的 线条类型。因此,在这个实例中,请求在时间零出现于通信信道40, 但在到达时间h之前,不存在正的等待时间成本,因为该进程能够进 行其它有效工作。因此,仅在时间tl5进程才实际停止。相比之下,对于与线条210关联的进程,该进程在时间零停止,以及对于与线条200关联的进程,该进程甚至在请求在时间零出现于通信信道40之前 停止。因此可以看到,与线条200和210关联的进程没有松弛时间,但 是与线条220关联的进程具有某个松弛时间,在该松弛时间中,可处 理由那个进程发布到通信信道40上的消息,而那个进程不会停止。根据本发明的一个实施例,由运行非实时进程的任何主装置发出 的进度信息的一部分是停止位,它在进程^皮停止时设置,而在进程没 有一皮停止时重置。图3B示出图3A的三个示例线条的这个停止位的剖 面。在这个实例中,假定设置条件由逻辑值一表示,而重置条件则由 逻辑值零表示。从图3B可以看到,与线条a关联的进程在点205停止, 因此在那个点设置停止位。类似地,与线条b关联的进程在点215停 止,以及与线条c关联的进程在点225停止,因此停止位分别在点215、 225转变。考虑与线条a关联的进程,有可能的是,可在处理元件中内部为 请求提供服务,而无需通过通信信道40发出请求。例如,考虑前面所 述的具有高速緩存的处理器的实例,如果高速緩存命中发生,则相对 于高速緩存继续进行访问,而无需将访问请求通过通信信道40传播。 因此,如虚线207所示,在这类情况下,停止位在205转变为逻辑值 一,但在已经为访问请求提供服务时,又转变为逻辑零电平。在一个 实施例中,不管是否将任何特定访问请求发布到通信信道40,停止位 仍然作为进度信息的一部分^f皮输出,以及在一个实施例中实际上用作 对于用来生成那个进程的等待时间信息的滤波器的输入。因此,这为 仲裁控制电路80提供与任何特定主装置的进程被停止的时间比率 (proportion)有关的信息,而不管那个停止的原因,具体来说,不是仅 限于由于通过通信信道40所引起的等待时间而发生停止的情况。图4是与图3A相似的简图,但示出实时进程的等待时间成本。 如前面所述,为了便于说明本申请,实时进程是"停止"对于那个进 程是不可接受的进程,与进程的某种停止是可接受的非实时进程相反。因此,假若不允许实时进程停止,则实时进程通常提前请求数据,因 此,虽然曲线沿着通路250,但存在与那个实时进程关联的松弛时间。 但是,在这种情况下,松弛时间指示用于处理那个实时进程发出的消 息剩余的时间,以及如果松弛时间耗尽,则等待时间成本变为无穷大,如垂直线260所示。图5示出根据本发明的一个实施例、由主装置IO、 20、 30发出的 进度信息的各种部分。具体来说,在图5的实例中,假定主装置10正 运行非实时线程,主装置20正运行非实时线程,但主装置30正运行 实时线程。在一个实施例中,运行非实时线程的每个主装置设置成发 出四个部分以构成进度信息。具体来说,实时位信号通过通路200、 220发出,确定该进程是非实时线程。在这个实例中,这通过将实时 位设置为零来表示。此外,松弛值通过通路205、 225输出,确定与非 实时线程关联的任何松弛时间。对于图3A的等待时间成本图表,大 家会理解,这个松弛值可通过任何负等待时间成本值来表示。具体来 说,考虑线条c220,可以看到,负等待时间成本的幅度在时间零以特 定值开始,然后在与那个进程相关联的松弛时间中逐渐减小到零,使 得它在时间h达到零值。此外,在图5所示的实施例中,停止位通过通路210、 230输出, 确定关联进程在当前时间是否停止。这个停止位还输入到低通滤波器 215、 235,以便使等待时间值净皮生成并通过通路220、 240输出,这个 等待时间值表示每个单位时间的延迟。在一个实施例中,每个低通滤 波器215、 235是跟踪累计停止时间的简单的单极低通滤波器。具体来 说,在一个实施例中,低通滤波器可实现以下等式以便产生等待时间 值y:yk = a.yk_i+xk(l画a)式中,y是等待时间值,cc是所选常数,k是时间点,以及x是停 止位值。因此,等待时间值y与平均停止率、即对于参考时间段停止线程的周期数量成正比,其中,那个参考时间段取决于常数ot的选择。 对于实时线程,进度信息同样包含通过通路250输出的实时位,在这个情况下实时位设置为逻辑值一,以指示线程是实时线程,并且还包含通过通路260从计数器255输出的松弛值。具体来说,当实时 线程输出访问请求时,计数器255设置成表示允许响应那个访问请求 的时钟周期数量的某个预定值,然后随着每个时钟周期的过去,计数 器递减,由此使松弛值随时间减少。根据图5所示的各种进度信息, 一个实施例的仲裁控制电路80则 保存各线程的数据结构的表300,如图6所示。对于在字段305输入 的线程ID所表示的每个线程,实时位、停止位的值、滤波器输出和松 弛值分别存储在字段310、 315、 320、 325中。如果对于特定线程仅提 供信息的子集,则字段的一个或多个保留为空。例如,考虑实时线程, 不存在停止位或滤波器输出。仲裁控制电路80则使用优先级排序电路84、在考虑了与各线程 相关联的数据结构的情况下生成进程的优先级排序列表。本领域的技 术人员会理解,存在许多已知技术用于在^支提供一系列数据结构时形 成排序列表,并且这些进程往往包含迭代执行所选数据结构对的比较 过程。 一种这样的机制是公知的"冒泡排序"机制,它通过重复对于 要排序的列表进行步进(stepping)、在某个时间比较两个数据结构并在 它们处于错误顺序时进行交换来进行工作。通过列表的传递(pass)步骤 重复进行,直到不需要交换为止,这表示列表^皮排序。图7示意表示如何比较所选线程对(这里标记为线程X和Y)的数 据结构,以便判定哪一个线程具有优先于另一个的优先级。因此,如 图7所示,如果对于两个线程设置了实时位(即两个线程均为实时线 程),则将优先级提供给具有最小松弛的线程,即,将优先级提供给具 有最早截止期限的线程,这样一种优先化^支术往往称作"最早截止期 限优先"的优先化。但是,如果线程X是非实时线程而线程Y是实时 线程,则如图7的右上角所示,如果线程Y的松弛时间大于预定值N, 则将优先级提供给线程X。因此,大家会看到,不是将优先级自动提供给实时线程,而是在实时线程的爭>弛时间比较大时,将优先级提供 给非实时线程,以便设法减少那个非实时线程的等待时间。il^j"于实 时线程没有不利影响,因为只要在松弛时间到期之前为实时线程提供 服务,就不会出现不利结果。类似地,如果线程Y是非实时线程而线程X是实时线程,则如图7的左下侧所示,如果线程X的松弛时间大于预定值N,则将优先级 提供给线程Y。如果两个线程均为非实时线程,则判定过程如图7的右下侧所示。 具体来说,首先考虑两个实时线程的停止位。如果两个线程的停止位 均为零,指示没有停止任一个线程,则将优先级提供给具有最小松弛 的线程,即提供给最快停止的线程。如果一个线程设置了停止位,而 另一个没有设置,则将优先级提供给设置了停止位的线程,即,将优 先级提供给已经停止的线程。最后,如果两个线程都设置了停止位,则将优先级提供给具有最高滤波器输出的线程,即对于参考时间段具 有较高平均停止率的线程。在一些实施例中,不需要让前面参照图5所述的进度信息的所有 项全部出现。例如,在一些实施例中,松弛值对于非实时线程可能不 可用。在那种情况下,如果考虑两个非实时线程,并且两个非实时线 程都将停止位设置为等于零,则将优先级提供给具有最高滤波器输出 的线程,即,如两个线程都将停止位设置为等于一时所应用的那样应 用相同的优先化。在一个实施例中,如果某些线程没有提供停止位,则4叚定设置了 停止位,即具有逻辑值一。图8示出根据一个实施例、由图1的仲裁控制电路80所执行的产 生优先级排序列表的一般过程。在步骤400,准备线程的初始排序。 在第一迭代中,这可以是任意排序,^f旦是对于后续迭代,则初始排序 很可能是该过程所产生的前一个排序。此后,该过程进入步骤405, 在其中,选择一对线程,此后在步骤410,应用排序过程,稍后参照 图9更详细地进行描述。排序过程实现前面参照图7示意表示的优先化方案。此后,在步骤415,根据排序过程的结果来修正线程的排序,此后在步骤420,判定是否存在应当应用排序过程的更多线程对。在通 过该过程的第一迭代中,情况通常是,线程对的每一个组合都需要经 过排序过程。但是,在后续迭代中,根据进度信息的哪些特征已经改 变以及哪些线程的进度信息已经改变,可以仅需要对所有可能的线程 对的子集应用排序过程。如果在步骤420判定存在至少还有一对线程 需要应用排序过程,则该过程返回到步骤405,而如果判定没有更多 对需要经过排序过程,则该过程进入步骤425,在其中,将线程的修 正排序作为优先级排序列表输出到通信信道40中的所有仲裁器。应当注意,虽然为了便于说明而依次示出步骤405、 410、 415和 420,但是,这些步骤实际上可并行执行,使得确定需要经过排序过程 的所有对,然后并行应用排序过程,以便产生线程的修正排序。图9是示出根据本发明的一个实施例、在图8的步骤410所执行 的步骤的流程图。在步骤500,确定两个线程是否为实时线程,如果 是,则在步骤505按照最早截止期限优先的原则对线程确定优先顺序。如果在步骤500确定两个线程均不是实时的,则在步骤410确定 线程之一是否为实时线程,以及如果是,则过程进入步骤515,在其 中,如果实时线程的松弛大于预定值N,则将优先级提供给非实时线 程。否则,实时线程优先。如果在步骤510确定没有任一个线程是实时线程,则该过程进入 步骤520,在其中,确定两个线程的停止位是否等于零,即,两个线 程是否仍然剩余某个松弛。假定两个线程仍然具有某个松他,则该过 程进入步骤525,在其中,确定松弛值是否可用,如果是,则该过程 进入步骤530,在其中,按照最早截止期限优先的原则对线程确定优 先顺序,即,将优先级提供给具有最小松弛的线程。但是,如果在步 骤525确定松弛值不可用,则该过程进入步骤535,在其中,将优先 级提供给具有最高滤波器输出的线程。如果在步骤520确定两个线程的停止位不等于零,则在步骤540确定线程之一的停止位是否等于零,即一个线程具有松弛。如果是,则该过程进入步骤545,在其中,将优先级提供给没有松弛的线程(即停止位等于一的线程)。如果在步骤540确定没有任一个松弛值设置为零,即两个线程均 被停止,则该过程进入步骤550,在其中,将优先级提供给具有最高 滤波器输出的线程。从图9的以上描述中,大家会看到,图9的过程实现图7示意性 说明的选择标准。在一个实施例中,通过将不同加权分配(attribute)给某些非实时线 程,可优先于其它非实时线程来处理那些线程。实际上,可由对于运 行非实时线程的各处理元件所提供的关联低通滤波器215 、 235来应用 这些加权。因此,对于具有较高加权的进程,每当设置了停止位时, 来自关联低通滤波器的输出等待时间值将比对于较低加权进程的情况 增加更大数量。因此,如果在应用参照图7示意性说明的选择标准时, 确定应当将优先级提供给具有最高滤波器输出的线程,则所有方面都 相等,具有较高加权的线程将具有较高滤波器输出,并且优先于具有 较低加权的线程。因此,通过对来自滤波器的输出进行加权,这提供 了用于处理各种非实时线程的优先级的另 一个灵活性。大家会理解,本发明的实施例的上述技术设法减少施加到运行于 主装置的各个线程的最大等待时间。这又成比例地增加各进程可进行 有效工作的有用时钟周期的数量。因此,如果这提供比实际所需的更好的性能,则通过降低主装置或者由那些主装置共享的通信信道的工 作性能等级,就有可能增加总等待时间。具体来说,许多现代系统提供能量管理技术,它们通常通过改变 系统中某些组件的频率和/或工作电压,可改变那些组件的性能等级。 这种性能等级设定通常由系统中的能量管理控制器执行。给定上述观测,在本发明的一个实施例中,各个主装置输出的进 度数据的某些方面还作为输入^皮路由到这种能量管理控制器。图10示 意表示这样一种实施例,并且从图10可看到,通过通路12、 22、 32输出的进度数据一部分还可作为输入分别通过通路602、 604、 606寻皮 路由到能量管理控制器600。在一个具体实施例中,将任何非实时线 程输出的等待时间值路由到能量管理控制器600。可通过各种方式来 使用这种信息。例如,如果特定主装置的工作频率为每毫秒一千个周期,则等待 时间值指示每毫秒存在一百个停止周期,则这表示主装置具有每毫秒 九百个有效周期。如果那个主装置实际上仅需要每毫秒六百个有效周 期就能符合要求地运行其进程,则提供给那个主装置的频率和/或工作 电压可减小以节省能量,同时仍然提供那个主装置所需的每毫秒六百 个有效周期。根据可改变性能等级的粒度,这个过程可单独对于每个 主装置依次执行。作为备选或附加的方案,如果通信信道40的性能等级可由能量管 理控制器来改变,则能量管理控制器600可选择从各个主装置接收的 最高等待时间值,并且在已经考虑那个最高值的情况下调整通信信道 的性能等级。例如,这可使通信信道的工作频率能够减小,同时仍然 确保在各个主装置上运行的进程可继续符合要求地工作。本质上,能 量管理控制器可调整通信信道的时钟速度,以便力求达到系统以及其 中运行的应用程序可接受的参考线程停止率。本发明的上述实施例使QoS能够被自动确定并在线程之间分配, 从而消除了预先知道要求的需要,其中的QoS动态适应线程之间的通 信的变化。本发明的实施例的QoS方案还可用于为通信信道实现提供参考性 能等级。具体来说,它允许在组件、如存储控制器的体系结构中进行 比较,其中,添加流水线级(stage)以实现这种类型的仲裁方案的成本 可与访问存储控制器的所有线程的等待时间的附加周期的成本进行比较。虽然本文描述了一个具体实施例,但是大家会理解,本发明不限 于此,而且在本发明的范围之内可对它进行许多》务改和添加。例如, 可在不背离本发明的范围的前提下,进行以下从属权利要求的特征与独立权利要求的特征的各种组合。
权利要求
1.一种用于在通过通信信道路由的消息之间进行仲裁的数据处理装置,包括多个处理元件,每个处理元件用于运行需要向接收元件发出消息的进程;在所述多个处理元件之间共享的通信信道,所述消息通过所述通信信道路由;仲裁电路,用于执行在通过所述通信信道路由的多个消息之间进行仲裁的仲裁过程;每个处理元件设置成发出在那个处理元件上运行的所述进程的进度数据,所述进度数据指示所述进程的等待时间暗示;以及仲裁控制电路,响应来自每个处理元件的所述进度数据,在考虑了所述进度数据所指示的各进程的所述等待时间暗示的情况下执行优先级排序过程以便生成优先级排序数据,并将所述优先级排序数据输出给所述仲裁电路,以便控制所述仲裁过程。
2. 如权利要求1所述的数据处理装置,其中,每个处理元件是连 接到所述通信信道的主装置。
3. 如权利要求2所述的数据处理装置,其中,每个消息是所述主 装置其中之一发出的访问请求。
4. 如权利要求1所述的数据处理装置,其中,各进程是程序线程, 以及各处理元件运行单个程序线程。
5. 如权利要求1所述的数据处理装置,其中,至少一个处理元件 包括多个处理单元,每个处理单元运行一个程序线程。
6. 如权利要求1所述的数据处理装置,其中,所述数据处理装置 是芯片上系统。
7. 如权利要求l所述的数据处理装置,其中,所述进度数据确定 所述关联进程是实时进程还是非实时进程,对于实时进程,所述进度 数据还确定指示处理那个实时进程发出的消息剩余的时间的至少 一个松弛值,对于非实时进程,所述进度数据还确定指示对于预定时间与 那个进程关联的等待时间的至少一个等待时间值。
8. 如权利要求7所述的数据处理装置,还包括与运行非实时进程 的各处理元件相关联的滤波器电路,所述滤波器电路以每个单位时间 的等待时间的形式产生所述等待时间值。
9. 如权利要求7所述的数据处理装置,其中,至少一个非实时进 程具有与其关联的加权,并且在产生那个非实时进程的所述等待时间值时考虑那个加权。
10. 如权利要求7所述的数据处理装置,还包括与运行实时进程 的各处理元件关联的计数器电路,所述计数器电路产生所述松弛值。
11. 如权利要求7所述的数据处理装置,其中,对于非实时进程, 所述进度数据还确定用于确定那个进程是否停止的停止值。
12. 如权利要求7所述的数据处理装置,其中,对于非实时进程, 所述进度数据还确定指示用于在所述进程停止之前处理由那个进程发 出的消息剩余的时间的;^弛值。
13. 如权利要求7所述的数据处理装置,其中,如果某个实时进 程的所述松弛值指示用于处理由那个实时进程发出的消息剩余的时间 大于预定阈值,则所述优先级排序过程对非实时进程提供优先于那个 实时进程的优先级。
14. 如权利要求7所述的数据处理装置,其中,所述优先级排序 过程对具有较高等待时间值的非实时进程提供比具有较低等待时间值 的非实时进程高的优先级。
15. 如权利要求14所述的数据处理装置,其中,对于非实时进程, 所述进度数据还确定用于确定那个进程是否停止的停止值,其中,对 于具有不同停止值的两个非实时进程,所述优先级排序过程比将优先 级提供给具有较高等待时间值的所述进程更优先地将优先级提供^亭 止值指示那个进程纟皮停止的所述非实时进程。
16. 如权利要求14所述的数据处理装置,其中,对于非实时进程, 所述进度数据还确定指示用于在所述进程停止之前处理由那个进程发出的消息剩余的时间的松弛值,其中,对于具有不同松弛值的两个非 实时进程,所述优先级排序过程比将优先级提供给具有较高等待时间 值的所述进程更优先地将优先级提供给具有最小松弛的所述非实时进 程。
17. 如权利要求1所述的数据处理装置,还包括 能量管理电路,用于控制所述多个处理元件的一个或多个处理元件的工作性能等级,所述能量管理电路可用于在确定所述工作性能等 级时考虑那一个或多个处理元件发出的所述进度数据的至少一部分。
18. 如权利要求17所述的数据处理装置,其中,所述进度数据确 定所述关联进程是实时进程还是非实时进程,对于实时进程,所述进 度数据还确定指示处理由那个实时进程发出的消息剩余的时间的至少 一个松弛值,对于非实时进程,所述进度数据还确定指示对于预定时 间与那个进程关联的等待时间的至少一个等待时间值,其中,所述进 度数据的至少一部分包括由运行非实时进程的一个或多个处理元件输 出的所述等待时间值。
19. 一种在通过具有多个处理元件的数据处理装置的通信信道路 由的消息之间进行仲裁的方法,各处理元件运行需要向接收元件发出 消息的进程,以及所述通信信道在所述多个处理元件之间共享,所述 消息通过所述通信信道路由,所述方法包括据,所述进度数据指示所述进程的等待时间暗示;响应来自各处理元件的所述进度数据,在考虑了所述进度数据所 指示的各进程的所述等待时间暗示的情况下执行优先级排序过程,以 便生成优先级排序数据;以及执行在通过所述通信信道路由的多个消息之间进行仲裁的仲裁过 程,所述优先级排序数据用来控制所述仲裁过程。
20. —种用于数据处理装置的仲裁控制电路,所述数据处理装置 包括多个处理元件,各处理元件运行需要向接收元件发出消息的进 程;在所述多个处理元件之间共享的通信信道,所述消息通过所述通信信道路由;以及仲裁电路,用于执行在通过所述通信信道路由的多 个消息之间进行仲裁的仲裁过程,所述仲裁电路包括输入接口 ,用于从每个处理元件接收在那个处理元件上运行的所 述进程的进度数据,所述进度数据指示所述进程的等待时间暗示;优先级排序电路,响应来自各处理元件的所述进度数据,在考虑 了所述进度数据所指示的各进程的所述等待时间暗示的情况下执行优 先级排序过程,以便生成优先级排序数据;以及输出接口,用于将所述优先级排序数据输出给所述仲裁电路,以 便控制所述仲裁过程。
全文摘要
本发明公开一种用于在消息之间进行仲裁的数据处理装置和方法。提供用于在通过通信信道路由的消息之间进行仲裁的数据处理装置和方法。数据处理装置包括多个处理元件;在处理元件之间共享的通信信道,消息通过通信信道路由。仲裁电路执行仲裁过程。每个处理元件发出在其上运行的进程的进度数据,进度数据指示进程的等待时间暗示。仲裁控制电路则响应进度数据,在考虑了进度数据指示的各进程的等待时间暗示的情况下执行优先级排序过程以生成优先级排序数据。然后将优先级排序数据输出给仲裁电路以控制仲裁过程。这使服务质量能够被自动确定并在各个进程之间分配,而无需预先知道进程的要求,并且优先化机制动态适应进程之间的通信的变化。
文档编号G06F15/16GK101271438SQ20081008737
公开日2008年9月24日 申请日期2008年3月20日 优先权日2007年3月22日
发明者T·C·梅斯 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1