多处理系统以及执行多个数据处理任务的方法技术方案

技术编号:2913758 阅读:179 留言:0更新日期:2012-04-11 18:40
利用竞争资源(18)的处理元件(10),来执行多个数据处理任务。每个任务的执行包括执行一系列指令。在执行期间,测量各个任务的指令的执行进展速度指示。对不同任务的访问资源(18)的请求进行仲裁,其中,基于所测量的任务的进展速度指示,将用于判定仲裁的优先级分配给每个任务。至少在可能的进展速度值的范围的一部分内,进展速度指示越低,分配越高的优先级。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及一种多处理系统以及一种执行多个数据处理任务的方法,所述数据处理任务在任务执行期间竞争资源。
技术介绍
多任务数据处理系统在不同的处理器上同时执行多个任务。当这些处理器共享诸如通向主存储器的访问端口之类的资源时,不同任务的指令可以请求同时访问相同的资源。例如,当不同的任务试图在主存储器中加载或存储数据时,每次仅可以处理一个任务的加载或存储。这意味着其他任务必须停延(stall),直到可以处理它们的加载或存储。当多个任务同时试图访问相同的总线或相同的外围设备等等时,类似的冲突可能会出现。这些冲突可能使数据处理系统的实时性能变得不可预测。当没有预先知道同时被执行的任务的组合时,无法预先确定由于访问冲突而会使任务的完成延迟多少。因此,例如在音频/视频系统中,这可能意味着声音信号中出现杂音(hick-up),或视频信号定格(freeze)。由仲裁电路解决冲突,当多个彼此冲突的访问请求待处理时,该仲裁电路确定首先处理哪个请求。已知许多仲裁方案,用于选择被获准首先访问的任务。多个仲裁方案基于向任务的优先级分配。在简单的、基于优先级的仲裁方案中,具有最高优先级的请求任务首先访问。在较复杂的、基于优先级的仲裁方案中,具有较低优先级的请求任务也可能首先访问,但频率比更高优先级任务要低。向任务的优先级分配一般是静态的,必须满足预定时限的任务(例如实时任务)比不必满足时限的任务被给予更高的优先级。在竞争主存储器访问权的情况下,减少访问冲突的另一种方法是-->使用高速缓存。通过在为各个任务保留的高速缓存中存储来自主存储器的信息副本,可以减少冲突的数量。然而,无法完全避免冲突,这是因为如果信息不存在于高速缓存中,则必须将信息从主存储器加载进高速缓存中,且/或必须将写数据复制到主存储器。当必须加载数据时,任务必须停延,直到已从主存储器读取数据为止。美国专利申请2001/0049769描述了一种指令预取方案,该方案在任务的执行之前,将指令加载进高速缓存中。该预取方案使用“时间宽限”来确定对主程序存储器的访问请求之间的仲裁的优先级。该时间宽限代表期望时间与实际时间之差,该期望时间是:期望执行不同任务的预取指令的时间。当发布针对指令的预取请求时,高速缓存在预取请求中包括期望时间,且仲裁器首先授权具有最小时间宽限的预取请求。因此,最小化了以下风险:在高速缓存中,由于指令不可用,任务必须停延。然而,美国专利申请2001/0049769所提出的方案仅针对指令预取,没有处理任务指令的数据预取或写入所引起的更加不可预测的冲突。该方案需要对未来指令的执行时间的预测,通过该预测,可以确定时间宽限。此外,美国专利申请2001/0049769仅设法避免停延(stall)。该申请没有处理多任务,也没有考虑所述停延是否与不同任务的实时时限实际相关。例如,如果在多任务中使用美国专利申请2001/0049769的机制,则不管在停延之后是否可以满足任务的时限,都试图避免每个任务停延,可能的影响是:不能保证在以不满足时限的另一个任务的停延为代价时,能够避免一个任务的停延,其中该停延不会使满足时限变得不可能。
技术实现思路
本专利技术的目的是提高多处理环境中的任务达到它们的时限的可靠性。本专利技术的目的是提高在执行非预定任务组合期间多处理系统的实时性能的可靠性。本专利技术的目的是提供在多处理系统中同时执行的不同任务的指令-->对共享资源的访问请求之间的仲裁机制。提供了根据权利要求1所述的多处理器电路,这里,对处理元件对共享资源的访问请求之间的冲突进行仲裁。该共享资源可以是:例如,共享存储器、通信总线、外围设备等等。优先级设置电路设置每个处理元件的优先级。每个处理元件在连续的指令周期中执行一系列指令,以执行各自的任务。根据所测量的、执行由处理元件执行的任务的一系列指令的进展速度指示,来设置不同处理元件的相对优先级。在进展速度越低的情况下,可以使用越高的优先级。在实施例中,优先级设置电路根据到达指令之前出现的指令执行周期的数目,来确定所述指令的进展速度指示。这些周期包括:实际执行任务指令的周期;以及“丢失的”周期,其中因为例如处理元件不能足够快地访问共享资源,所以处理元件停延了对任务指令的执行。以这种方式,可以通过提高优先级,来补偿非常高的丢失次数的影响。在实施例中,将进展速度与标称期望(nominally expected)的进展速度作比较,并根据处理元件的任务的进展速度与标称期望的速度之差,将处理元件的优先级设置得较高。在实施例中,对在参考指令周期与特定指令的执行之间所出现的指令停延数目或丢失的周期数目进行计数,并使用计数得到的数目来设置优先级。因此,收集关于进展速度的所需信息不再需要来信任务执行的详细信息。在实施例中,选择性地对由于输掉仲裁而丢失的指令周期进行计数,以获得进展速度指示。因此,仅对源自处理元件外部的丢失的有关信息进行计数。不必对相同处理元件内部的停延原因进行计数,这是因为这些原因对速度的影响更可预测,并可以通过及时启动任务来解决该影响。此外,在该实施例中,使用在仲裁级上可用的信息,足以根据进展速度来设置优先级,而不需要任务执行的详细信息。在不同实施例中,可以对由于仲裁而引起的丢失或者由于这些丢失引起的周期的数目进行计数。在实施例中,随着增加的、计数得到的指令停延(或丢失的指令周期)数目与到达所述指令所用的指令周期数目的预定部分之差,来-->提高任务在指令处的优先级。在另一实施例中,不使用任务的预期完成时间的有关信息来设置优先级,而仅将停延(或丢失周期)率与预定的停延(或丢失周期)率作比较。以这种方式,任务的启动时间被有效地用作对所希望的完成时间的指示。以这种方式,使用与任务执行的最少交互来设置优先级,简化了处理。在备选实施例中,使用完成时间来计算可接受的、由于停延而引起的丢失率,以与实际丢失率相比较,从而控制优先级。然而,在这种情况下,有必要定义处理系统的时间度量,这使设计变得复杂。在实施例中,根据基于标记(token)的模型来执行任务,其中重复执行每个任务。每次任务的执行都需要预定数量的标记(其可以是输入数据单元,例如,预定数量的音频或视频信号采样、或控制数据),并产生预定数量的标记。为标记提供了先入先出(FIFO)缓冲器。当用于执行任务的输入标记被存储在输入缓冲器中,且在输出缓冲器中有存储输出标记的空间时,触发任务的执行。在不存在由于资源冲突而引起的不可预测的影响时,不管重复执行的任务组合能否满足实时要求,任务执行的这种形式都照例允许可靠的预测。基于根据由从执行任务的启动开始的周期计数所测量的进展速度而设置的相对优先级,通过将基于标记的执行与共享资源的仲裁相结合,可以将可靠的预测与资源冲突的不可预测性相结合。在每个处理元件都包括高速缓存且共享资源是主存储器(将数据从该主存储器高速缓存到处理元件中)的实施例中,对高速缓存未中(cache miss)时的停延进行计数,以确定用于设置仲裁优先级的进展速度。以这种方式,仅测量由于资源冲突而引起的延迟的不可预测部分,以确定进展速度(在根据不同处理元件中的任务组合的意义下是不可预测的,处理元件内的高速缓存被认为是可以预测的)。以这种方式,仲裁需要的开销最小,来补偿由不同处理元件执行的任务组本文档来自技高网
...

【技术保护点】
一种多处理器电路,包括: -多个处理元件(10),每个都配置为至少执行各自的任务,所述任务的执行包括对一系列指令的执行; -共享资源(16),耦合至多个处理元件(10); -仲裁电路(12),耦合至处理元件(10),并配置 为根据分配给处理元件(10)的优先级,对来自多个处理元件(10)的发生冲突的共享资源(16)访问请求进行仲裁; -优先级设置电路(106),配置为测量各个任务的执行进展速度指示,并根据所测量的、所述任务之中特定任务的一系列指令的执行进 展速度指示,设置执行所述特定任务的每个处理元件(10)的优先级。

【技术特征摘要】
【国外来华专利技术】EP 2006-5-17 06114088.51.一种多处理器电路,包括:-多个处理元件(10),每个都配置为至少执行各自的任务,所述任务的执行包括对一系列指令的执行;-共享资源(16),耦合至多个处理元件(10);-仲裁电路(12),耦合至处理元件(10),并配置为根据分配给处理元件(10)的优先级,对来自多个处理元件(10)的发生冲突的共享资源(16)访问请求进行仲裁;-优先级设置电路(106),配置为测量各个任务的执行进展速度指示,并根据所测量的、所述任务之中特定任务的一系列指令的执行进展速度指示,设置执行所述特定任务的每个处理元件(10)的优先级。2.根据权利要求1所述的多处理器电路,其中,优先级设置电路(106)配置为,根据从参考指令执行周期开始到到达所述特定任务的特定指令之前已出现的指令执行周期的计数,在所述特定指令处,确定所述特定任务的进展速度指示,所述参考指令执行周期与所述特定任务的执行的启动有预定关系。3.根据权利要求2所述的多处理器电路,其中,优先级设置电路(106)配置为,相对于直至所述特定指令时的、标称期望的进展速度指示,确定在所述特定指令处得到的进展速度指示,并且至少在可能的指示值范围的一部分内,当所述进展速度指示相对于标称期望的进展速度指示越低时,在所述特定指令处将所述特定任务的优先级设置得越高。4.根据权利要求2所述的多处理器电路,其中优先级设置电路(106)配置为,对参考指令周期与所述特定指令的执行之间的指令停延或丢失的执行周期进行计数,并使用计数得到的指令停延数目,来确定进展速度指示,以设置优先级。5.根据权利要求2所述的多处理器电路,其中优先级设置电路(106)配置为,在参考指令周期与所述特定指令的执行之间,选择性地对由于输掉仲裁而引起的指令停延或由于这些停延而丢失的指令周期进行计数,并使用计数得到的指令停延数目,来确定进展速度指示,以设置优先级。6.根据权利要求5所述的多处理器电路,其中优先级设置电路(106)配置为,至少在可能的差值的范围的一部分内,随着增大的、计数得到的指令停延数目或丢失的指令周期的数目与到达所述特定指令所用的指令周期的数目的预定部分之差,来提高任务的所述特定指令处的优先级。7.根据权利要求2所述的多处理器电路,其中处理元件(10)配置为保持针对输入标记的先入先出输入缓冲器以及针对输出标记的先入先出输出缓冲器;所述处理元件(10)配置为,重复执行所述特定任务,其中每次执行都消耗来自输入缓冲器的、连续的输入标记,并在输出缓冲器中产生连续的输出标记;所述处理元件(10)配置为,当所述特定任务的输入标记被存储在输入缓冲器中,且在输出缓冲器中有用于存储输出标记的空间时,触发所述特定任务的执行的...

【专利技术属性】
技术研发人员:马可JG贝库伊
申请(专利权)人:NXP股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1