买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:霍尼韦尔国际公司
摘要:本发明题为“用于共享资源访问的可变速率限制的系统和方法”。本发明提供了一种方法。所述方法包括:开始时间窗口,其中所述时间窗口具有固定的或可变的持续时间;为所述时间窗口的至少一个时间分区确定共享资源访问配额,其中所述共享资源访问配额可能随时间窗口变化;将每个确定的共享资源访问配额分配至所述窗口的对应时间分区;确定是否已达到或超出所述时间窗口中任何时间分区的分配的共享资源访问配额;以及如果已达到或超出所述时间窗口中的时间分区的分配的共享资源访问配额,则停止所述时间分区中的执行进程。
主权项:1.一种提供增强的效率并包括至少一个多核处理器的处理系统,包括:至少两个处理电路332;存储器334;其中所述存储器包括操作系统334A和至少一个应用程序334C;数据总线336,所述数据总线将所述存储器耦接至所述至少两个处理电路;其中至少一个处理电路被配置成执行所述至少一个应用程序的至少一个进程;并且其中执行所述操作系统的所述至少两个处理电路中的至少一个被配置成:开始在时间窗口序列中的时间窗口,其中所述时间窗口具有相同或不同的持续时间440;为所述窗口的至少一个时间分区确定共享资源访问配额;其中所述至少一个时间分区的每个时间分区包括进程的子集;其中在时间窗口内每个时间分区与所述多核处理器的一个或多个核相关联;其中所述共享资源访问配额可逐个时间窗口变化442,其中所述时间窗口中的所述至少一个时间分区的所述共享资源访问配额是在所述时间窗口中的所述至少一个时间分区期间对共享资源的访问次数的度量,并且其中所述共享资源包括互连件、高速缓存存储器、存储器控制器、至少一个数据总线、和主存储器;将每个确定的共享资源访问配额分配至所述时间窗口对应的时间分区443;确定是否已达到或超出所述时间窗口中的任何时间分区的分配的共享资源访问配额444;在确定已达到或超出所述时间窗口中的时间分区的分配的共享资源访问配额时,则停止所述时间分区中的执行进程445;以及在确定所述时间窗口中的时间分区中的至少一个进程在没有使用分配至所述时间分区的所有所述共享资源访问配额而完成执行时,则将未使用的共享资源访问配额分配给相同时间窗口中的至少一个其他时间分区447。
全文数据:用于共享资源访问的可变速率限制的系统和方法背景技术现代系统利用在实时操作系统RTOS和多核处理系统上执行的软件应用程序应用程序。出于本文档的目的,每个应用程序包括一个或多个分区,并且每个分区包括一个或多个进程,其中进程可以其他方式被称为任务或线程。多核处理系统是包括多核处理器的计算机,例如多核微处理器和数字信号处理器,具有两个或更多个核心。多核处理器的示例包括多核ARM高级RISC机器、IBMPowerPC以及Intel和AdvancedMicroDevicesX86处理器。或者,多核处理器可在诸如由赛灵思公司Xilinx制造的那些的现场可编程门阵列FPGA中实现。每个核心通常包括处理器和高速缓存存储器。多核处理系统还包括互连件结构、高速缓存存储器、存储器控制器、数据总线和主存储器,它们共享由多核处理系统中的每个核心利用的资源。由于每个核心使用相同的共享资源,在一个核心上执行的应用程序的进程可能有害地延长在另一个核心上执行的另一个应用程序的进程的执行时间。共享资源访问包括从高速缓存存储器或主存储器读取,以及向高速缓存存储器和或主存储器写入。例如,由于多核处理器的核心利用共享资源,在一个核心上运行的应用程序的进程可能增加例如超过四倍在其他核心上运行的其他应用程序的进程的执行时间。与从高速缓存或主存储读取相比,写入高速缓存或主存储器的应用程序进程可能在其他应用程序的进程的执行时间上有更大的有害影响,或者反之亦然。在安全关键系统中,在核心上执行的应用程序可能需要在每个周期的最长执行时间内执行进程。为了避免超出最长时间或小于所需速率,多核处理器中的一个或多个其他核心必须被禁用或者在其他核心上执行的其他应用程序的进程的共享资源的使用必须受到带宽或时间限制。由于前一个选项因其消除了多核处理器的优势而不可取,后一个选项是优选的。在美国专利No.8,943,287中提议了每个核心的令牌桶的使用,该专利据此全文以引用方式并入,以对多核处理器中的每个核心的共享资源访问进行时间限制。每个核心的令牌桶的使用基于经过的时间,限制每个核心的峰值共享资源访问,避免上述的有害影响。然而,因为每个核心的令牌桶需要为每个时间窗口使用相同的共享资源访问配额,每个核心的令牌桶的使用需要针对每个核心的共享资源访问的保守时间预算。因此,使用该技术的多核处理系统表现出较低的处理效率,即执行进程以及其对应的应用程序的时间更长。因此,需要有利于多核处理系统中的多核处理器的每个核心的共享资源访问的保守性更小的预算的系统和方法。发明内容本发明提供了一种方法。该方法包括:开始时间窗口,其中时间窗口具有固定的或可变的持续时间;为时间窗口的至少一个时间分区确定共享资源访问配额,其中共享资源访问配额可能随时间窗口变化;将每个确定的共享资源访问配额分配至窗口的对应时间分区;确定是否已达到或超出时间窗口中的任何时间分区的分配的共享资源访问配额;以及如果已达到或超出时间窗口中的时间分区的分配的共享资源访问配额,则停止时间分区中的执行进程。附图应理解附图仅描绘示例性实施方案并且因此不应被视为在范围上进行限制,通过使用附图,将通过额外的特异性和细节描述示例性实施方案,在这些附图中:图1示出在时间分区的多核处理器中共享资源访问节流的一个实施方案的图表;图2A示出时间分区的多核处理器中配额节流和取消节流的一个实施方案的图表;图2B示出时间分区的多核处理器中配额节流和取消节流的另一个实施方案的图表;图2C示出时间分区的多核处理器中配额节流和取消节流的另外的实施方案的图表;图3示出了具有多核处理器计算系统的一个实施方案的框图,该计算系统被配置成实现共享资源访问节流;并且图4是用于操作多核处理系统的方法的流程图,该多核处理系统具有可随时间窗口变化的共享资源访问配额。根据惯例,所描述的各种特征并非按比例绘制,而是被绘制用于强调与示例性实施方案相关的特定特征。具体实施方式在下面的详细描述中,参考了形成其一部分的附图,并且在附图中通过举例说明的方式示出了特定例示性实施方案。然而,应当理解可能利用其他实施方案,并且可能进行逻辑、机械和电气更改。此外,在附图和说明书中提出的方法不应视为限制可能执行的各个步骤的顺序。因此,以下详细描述不被认为具有限制性意义。为了在多核处理器中提供更高的处理效率,在时间分区的系统中使用了可变速率限制技术。本发明的实施方案允许在不同的时间窗口期间改变每个核心分配的共享资源配额,并且因此提升处理效率。时间分区是时间间隔,其中在一个时间分区中在一个核心上应用程序的进程的执行将不影响另一时间分区中相同或另一核心上进程的执行。出于教学的原因,本文将相对于处理单元和处理系统描述本发明,该处理单元为多核处理器的核心包括虚拟核心,该处理系统为多核处理系统。因此,多核处理器仅为一个类型的处理单元;多核处理系统仅为一个类型的处理系统。然而,本发明通常适用于具有多个处理单元的处理系统。术语“处理单元”,如本文所用,一般是指计算设备,该计算设备可也为中央处理单元CPU例如IntelCore处理器或数字信号处理器DSP例如TexasInstrumentsC系列DSP,能够按程序指令的指示接收数据并其执行数学和逻辑运算。CPU和或DSP可也由现场可编程门阵列和或专用集成电路实现。处理单元,无论是CPU、DSP或其核心,通过电子电路实现,并且该电子电路在本文可也称为处理电路。在一个实施方案中,其中处理系统包括多个处理单元,这些多个处理单元可为多CPU和或DSP系统的部分、多核CPU或DSP中的一组核心、和或执行超级或同时多线程的一组真实和虚拟CPU或DSP核心。因此,例如,多个处理单元可为多CPU或DSP系统,其中多CPU或DSP处理系统中的不同CPU或DSP具有多个核心。时间分区有利于在进程级别以及时间窗口级别符合时间保证。例如,在例如航空系统中使用实时操作系统RTOS的多核处理系统上执行的关键应用程序依靠时间分区的理念,来证明进程在最坏情况执行时间内执行。在特定时间分区期间,执行特定进程。每个时间分区在具有对应的时间段的时间窗口期间发生。在单个时间窗口期间,一个或多个进程由一个核心执行。时间窗口可为具有固定时间段的固定时间窗口,或者具有可变时间段的滑动时间窗口。滑动时间窗口能够调节时间窗口的起始或开始时间,使得进程在时间上更早执行,同时仍然保持时间确定性。分区和时间窗口尤其是滑动窗口进一步详细地在提交于2015年6月11日的标题为“SystemsandMethodsforSchedulingTasksUsingSlidingTimeWindows用于使用滑动时间窗口的调度任务的系统和方法”的美国专利公布No.20160364267下文称为“‘267专利申请”中描述。‘267专利申请全文以引用方式并入本文。当本发明的实施方案实现滑动时间窗口时,可以保留时间用于执行中断服务例程。此外,可还执行松弛调度以允许所有核心上的充分利用。在具有相同或不同时间段的不同时间窗口期间,可顺序或非顺序地重复相同时间分区。在不同或相同时间窗口期间,可在不同核心上执行相同时间分区。时间分区可跨一个或多个核心;在该实施方案中,共享资源访问配额顺序地描述可分配至核心的组如果有多于一个核心或至组中的每个核心。应用程序、进程、时间分区和时间窗口可符合ARINC653标准。ARINC653标准在时间和空间域针对分区计算机资源为实时操作系统RTOS接口提出规范,并且针对应用程序接口为从底层硬件和软件的应用程序的提取提出了规范。为一个核心或一组核心的每个时间分区指定了共享资源配额。共享资源配额是指共享资源的访问次数,或共享资源的访问次数的另一类型的度量。共享资源的访问次数的其他度量类型的示例包括共享资源访问的时间筛选值例如时间段上的平均值以及每单位时间共享资源访问的速率。共享资源包括互连件结构、高速缓存存储器、存储器控制器、数据总线和主存储器。共享资源可任选地包括至少一个输入输出IO控制器,和至少一个IO例如直接存储器访问电路、存储器电路和或计数器电路。访问是指共享资源的利用,例如对高速缓存或主存储器的读取或写入。共享资源配额针对与相同核心的不同时间间隔和不同核心的相同时间间隔对应的时间分区可为固定的或可变的。相同核心上的不同时间分区可具有一致或不同的配额大小。不同时间窗口中相同核心上发生的相同分区可具有一致或不同的配额大小。不同时间窗口中不同核心上发生的相同分区可具有一致或不同的配额大小。图1示出在时间分区的多核处理器100中共享资源访问节流的一个实施方案的图表。图表包括多个时间窗口102A至102D、时间分区P1至P5和进程101A-1-101F。在时间分区期间执行一个或多个进程。时间分区中的进程可在对应于时间分区的时间窗口结束之前完成执行。在不同时间窗口中的时间分区期间执行的进程无需相同。为了清楚起见,图1示出第一时间窗口102A期间的进程的执行。然而,对于第二到第四时间窗口102B、102C、102D,仅示出分配的共享资源访问配额。第一核心核心1分别地在第一时间窗口102A、第二时间窗口102B、第三时间窗口102C和第四时间窗口102D中执行时间分区P1、P2、P3和P2的进程。第二核心核心2分别地在第一时间窗口102A、第二时间窗口102B和第三时间窗口102C中执行时间分区P4和P3的进程。第N核心核心N分别地在第一时间窗口102A和第二时间窗口102B中执行时间分区P5和P3的进程。对于每个核心,时间分区可存在于对应的时间窗口中。每个时间窗口的时间段与对应的时间窗口中的时间分区的时间段一致。时间分区例如P2、P3和P4可发生在多于一个时间窗口中和多于一个核心中。如时间分区P4所示,包括相同时间分区的两个时间窗口的时间段不必相同。时间窗口的每个时间分区被分配共享资源配额104x-y。多核处理器、多核处理系统的操作系统和或多核处理系统的另一个部件分配共享资源配额。共享资源配额可能按时间分区有所不同,并且可能对不同时间窗口中的相同时间分区有所不同。例如,所示时间分区P3中的每个分别地被分配不同的共享资源访问配额104A-P3A、104A-P3B、104A-P3C。在每个时间窗口期间并且针对每个时间分区,多核处理器、多核处理系统的操作系统和或多核处理系统的另一个部件,确定对应时间分区的进程是否已经达到或超出时间分区中的任一个的共享资源访问配额。多核处理系统的部件包括多核处理器、操作系统以及任选的提取层,诸如平台提取层,其提供独立于底层硬件的应用程序编程接口。提取层可为操作系统的一部分或独立于操作系统。如果时间分区的进程已请求等于或超出时间分区的共享资源访问配额的共享资源访问,则当超过该阈值时执行的进程的执行被节流即终止,不会执行相同时间分区的另外的进程。例如,如106A-P1所示,在时间分区P1中,当第一核心核心1执行该进程时,进程101A-2请求等于或超出该分区的共享资源访问配额的共享资源。因此,尽管前述进程101A-1的第一核心上的执行完成,第一核心上的进程101A-2的执行在完成之前被终止,并且时间分区中的任何后续进程的执行没有开始。例如,如106B-P4和106N-P5进一步所示,时间分区P4和P5具有没有由每个时间分区中执行的相应进程超出的相应共享资源访问配额。实际上,在这些示例中,每个时间分区的一些共享资源访问配额没有得到使用。或者,可能的是时间分区的进程可能利用精确等于时间分区的共享资源访问配额的共享资源访问。图2A示出时间分区的多核处理器200A中配额节流和取消节流的一个实施方案的图表。取消节流意味着从节流状况解除。如果一个时间窗口中第一时间分区中的进程在相同时间窗口中的一个或多个其他时间分区中的进程之前完成执行,则使得第一时间分区的共享资源访问配额的未使用部分未使用的共享资源访问配额或USRQ可用于相同时间窗口中已超出其共享资源访问配额的至少一个其他时间分区。第一核心执行第一时间窗口202A中的时间分区P1的进程。第二核心执行第一时间窗口202A中的时间分区P4的进程。第n核心执行第一时间窗口202A中的时间分区P5的进程。例如,如图2A中所示,第一时间窗口202A中的时间分区P4和P5分别具有共享资源访问配额204B-P4和204N-P5。没有如206B-P4和206N-P5所反映那样消耗共享资源访问配额204B-P4和204N-P5。然而,如206A-P1所示,在进程执行期间或通过其消耗共享资源访问配额204A-P1,例如通过执行时间分区P1的第一进程。通常,时间分区P1的第二进程和第三进程将分别被终止并且未开始。然而,由于时间分区P5的进程在时间分区P1的进程达到或超出时间分区P1的共享资源访问配额之前结束,多核处理系统将未使用的共享资源访问配额传输至相同时间窗口中的时间分区P5。时间分区只能将未使用的共享资源访问配额或其部分传输至相同时间窗口中的其他时间分区。如图所示,借助传输的共享资源访问配额,增加的共享资源访问配额206A-P2是足够的,使得时间分区P1的进程通过具有未使用的配额206A-P3的增加的共享资源访问配额完成执行。因此,在该实施方案中,在时间窗口期间分区的进程消耗了所有在时间窗口期间分配至时间分区的共享资源访问配额时,多处理器系统或其部件评估相同时间窗口中的至少一个其他时间分区是否具有未使用的共享资源访问配额。如果是这样,则一些或全部未使用的共享资源访问配额从至少一个其他时间分区传输至其共享资源访问配额已被消耗的时间分区。在任选的实施方案中,如果传输的未使用的共享资源访问配额不足,则可共享来自相同时间窗口中另一时间分区的额外未使用的共享资源访问配额,例如来自时间分区P4,该时间分区随后具有未使用的共享资源访问配额206B-P4。如果可用的未使用共享资源访问配额不存在或不足,则会终止进程执行,并且不执行尚未执行的进程。图2B示出时间分区的多核处理器200B中配额节流和取消节流的另一个实施方案的图表。在该任选的实施方案中,时间窗口中的时间分区的进程终止并且可能因为没有未使用的共享资源访问配额可用于从相同时间窗口中的另一时间分区传输而不会执行。然而,在稍后一些时间,在时间窗口终止之前,进程在一个或多个其他时间分区中完成执行,留下未使用的共享资源访问配额,然后未使用的共享资源访问配额的所有或一些可传输至时间分区,使得在时间窗口中的剩余时间期间其进程可重新启动或重新开始和执行。例如,如图2B中所示,时间分区P1的进程停息、或停止或暂停,因为第一进程例如在完成其执行之后已消耗第一时间窗口202A期间分配至时间分区P1的共享资源访问配额206A-P1。随后,时间分区P5的进程在第一时间窗口202A中完成执行,并且具有未使用的共享资源访问配额206N-P5。未使用的共享资源访问配额206N-P5被传输至时间分区P1,并且未完成的进程,即暂停的和或未执行的进程可在第一时间窗口202A期间执行,至少直到传输的未使用的共享资源访问配额206N-P5由未完成的进程消耗或第一时间窗口202A终止。在时间分区或USRQ群集需要未使用的共享资源访问配额之前或之时,未使用的共享资源访问配额可被传输至时间分区或如下所述的USRQ群集。随后,时间分区P4的进程在第一时间窗口202A中完成执行,并且具有未使用的共享资源访问配额206B-P4。未使用的共享资源访问配额206B-P4被传输至时间分区P1,使得其可由正在或将在第一时间窗口202A期间时间分区P1中执行的进程利用,即停止或未执行的进程可被恢复和或首次执行,至少直至未完成的进程消耗传输的未使用的共享资源访问配额206B-P4。图2B示出时间分区P1中停止然后在将未使用的共享资源访问配额传输至该时间分区后被恢复或重新开始的进程。其他时间窗口可能随后跟随第一时间窗口202A。图2C示出时间分区的多核处理器200C中的配额节流和取消节流的另外的实施方案的图表。在该任选的实施方案中,其进程由核心执行的时间分区可群集在一个或多个USRQ群集中,并且USRQ群集的未使用的共享资源访问配额只能与相同USRQ群集中的一个或多个其他时间分区共享。在另一个任选的实施方案中,每个USRQ群集具有对应的未使用的共享资源访问配额的池,可让该池在相同时间窗口期间用于不同USRQ群集中核心的时间分区,但是仅在不需要USRQ群集中未使用的共享资源访问配额时贡献未使用的共享资源访问配额时。在每个时间窗口期间,对可用的未使用的共享资源访问配额的每个池的贡献由对应的USRQ群集的时间分区进行。当未使用的共享资源访问配额例如在池中变得可用时,根据策略,在时间段期间的USRQ群集内,USRQ群集中的时间分区被分配未使用的共享资源访问配额。该策略可为静态的和或动态的。因此,和静态策略不同,动态策略可能随时间更改。在静态策略中,USRQ群集的组和或一个或多个时间分区的USRQ群集内的分区被分配不同等级的优先级。可用的未使用的共享资源访问根据等级分配在每个组之间或之内,例如从较高等级到较低等级,或反之亦然。例如,需要额外的共享资源分配配额的最高等级USRQ群集中的时间分区可利用尽可能多的可用共享资源分配配额,该配额在对应的时间窗口期间可用;较低等级时间分区仅在时间窗口期间在时间窗口结束之前的最高等级时间分区的进程完成执行之后,接收任何剩余的可用共享资源分配配额。因此,如果任何较低等级时间分区的进程暂停,此类进程仅在收到额外的共享资源分配配额后恢复执行。或者,对于动态策略,组和或一个或多个组的时间分区组成的等级可能随时间变化。静态策略的示例包括将可用的未分配的共享资源访问提供给时间窗口中的第一或最后暂停的时间分区,并且提供给具有最低分配的共享资源分配配额的时间窗口中的时间分区或USRQ群集。此外,选择用于接收未使用配额的分区或USRQ群集可为是下列中的一个:第一暂停分区、最后暂停的分区、具有最低配额的分区、具有最高配额的分区、具有最低时间预算的分区、具有最高时间预算的分区、在窗口内以最少剩余时间预算要完成的分区、和或具有最高执行时间预算的分区。例如,如图2C中所示,时间分区P1的进程停息,因为第一进程例如在完成其执行之后已消耗第一时间窗口202A期间分配至时间分区P1的共享资源访问配额206A-P1。随后,时间分区P5的进程在第一时间窗口202A中完成执行,并且具有未使用的共享资源访问配额206N-P5。时间分区P1和P5以及核心n为USRQ群集的成员;但是,时间分区P4不是USRQ群集的成员。因此,未使用的共享资源访问配额206N-P5被传输至时间分区P1,并且未完成的进程,即暂停的和或未执行的进程可在第一时间窗口202A期间恢复和或执行,至少直到传输的未使用的共享资源访问配额206N-P5由未完成的进程消耗或第一时间窗口202A终止。随后,时间分区P4的进程在第一时间窗口202A中完成执行,并且具有未使用的共享资源访问配额206B-P4。但是,不能将未使用的共享资源访问配额206B-P4传输至时间分区P1,因为它不是USRQ群集的成员。在所示的实施方案中,在第一时间窗口202A期间的时间分区P1的进程消耗所有分配的共享资源访问配额206A-P3。因此,在第一时间窗口202A期间的时间分区P1中的时间执行的进程终止或暂停,并且任何其他剩余的进程将被执行或不执行。在任选的实施方案中,一个USRQ群集中未使用的共享访问配额可被传输至另一USRQ群集。在该实施方案中,如果时间窗口中的所有时间分区的所有进程对应于USRQ群集的核心已完成执行,时间分区的总计未使用的共享访问配额如果有可被传输至一个或多个其他USRQ群集的时间分区。在另一任选的实施方案中,对于利用USRQ群集的前述实施方案,可以选择性地启用和禁用允许未使用的共享资源访问配额的传输。在另外的任选的实施方案中,对于前述实施方案中的任一个或任何其他实施方案,多处理器系统或其部件对于前述选项中的任一个可以选择性地启用和禁用允许未使用的共享资源访问配额到任一个或所有N个核心的传输。图3示出了具有多核处理器计算系统300的一个实施方案的框图,该计算系统被配置成实现共享资源访问节流多核处理器计算系统。多核处理器计算系统300可一般在嵌入式系统、标准计算系统或本领域技术人员已知的其他具体实施中实现。在图3中所示的实施方案中,多核处理器计算系统300包括通过数据总线总线336耦接至主存储器334的多核处理器332,以及每个核心并且任选地每个USRQ群集的至少一个事件计数器332E。任选地,数据总线336例如部分地通过北桥集成电路并且根据诸如JEDEC标准的标准来实现。任选地,主存储器334为动态随机存取存储器DRAM。任选地,主存储器334包括存储器的列,并且每个列包括存储器的组。在一个实施方案中,主存储器334存储操作系统OS334A和至少一个应用程序334C。操作系统334A可为例如Windows或实时操作系统的操作系统,诸如霍尼韦尔国际公司HoneywellInternationalInc.的DeosTM操作系统。由多核处理器332执行的操作系统334A在多核处理器计算系统300和应用程序334C之间提供接口。应用程序334A在多核处理器332上执行,并且例如可为航空电子设备应用程序,诸如飞行管理系统。任选地,主存储器334存储由多核处理器执行的应用程序层334B。在寄存器中实现事件计数器332E,例如X86、PowerPC和ARM处理器架构中的性能监控计数器,或者在专用集成电路或可编程逻辑诸如门阵列中。任选地,事件计数器计数时间窗口期间,由每个核心并且任选地由USRQ群集进行的共享资源访问的数目例如读取和写入访问。任选地,除此之外或另选地,事件计数器332E可在时间窗口期间为每个核心以及任选地为每个USRQ群集记录与共享资源访问相关的更详细参数值,诸如不同类型的存储器事务的事务数目例如读取访问的数目和写入访问的数目、高速缓存缺失数例如L2高速缓存333和或最后级别高速缓存332C的缺失数和或总线循环数数据总线336的循环数。在一个实施方案中,事件计数器332E由多核处理器332中的共享资源访问评估硬件例如事件计数器332的部分的专用逻辑或多核处理器332中的其他地方和或由共享资源访问评估软件例如任选的提取层334B的部分监视。此类共享资源访问评估硬件和或软件计算在时间窗口期间核心的时间分区的共享资源访问,并且确定计算的共享资源访问是否已达到或超出对应的分配的共享资源访问配额。如果已达到或超出分配的共享资源访问配额,则共享资源硬件和或软件向对应的核心发出中断,以及或者使用轮询,使得对应的时间分区在当前时间分区期间不能执行任何另外的共享资源访问,除非如上所述,共享资源访问配额增加。任选地,此类共享资源访问评估硬件和或软件基于分配的共享资源访问配额减去计算的共享资源访问是小于还是等于一个或多个阈值水平改变其执行前述计算以及确定的速率。速率上的更改随着阈值水平减小而增大。任选地,硬件和或软件定时器,例如在共享资源访问评估硬件和或软件中,可用于实现前述内容。任选地,此类共享资源访问评估硬件和或软件确定和或存储时间分区的共享资源访问配额,包括从与一个核心关联的一个时间分区到与另一核心关联的另一时间分区分配的未使用的共享资源访问配额的进程。任选地,此类共享资源访问评估硬件和或软件确定和或存储USRQ群集的共享资源访问配额,包括从USRQ群集到另一USRQ群集分配的未使用的共享资源访问配额的进程。在图3所示的实施方案中,多核处理器332包括至少一个USRQ群集332A、至少一个互连件332B、以及至少一个存储器控制器。任选地,多核处理器包括至少一个最后级别高速缓存LLC,例如L3高速缓存332C,和或至少一个IO控制器332F。在一个实施方案中,USRQ群集332和互连件332B在半导体管芯上一起制成。在另选的实施方案,最后级别高速缓存332B和或存储器控制器332D也在半导体管芯上一起制成。USRQ群集332A包括一个或多个USRQ群集332A-1...332A-n。每个USRQ群集包括至少一个处理核心或核心336A...336N,例如用在本文所述的微处理器中。任选地,每个USRQ群集包括级别一高速缓存L1331A...336N,它们中的每个与唯一的核心相关联和耦接。任选地,每个USRQ群集包括级别二高速缓存L2333,该高速缓存耦接至USRQ群集中的每个核心以及级别一高速缓存。USRQ群集332A通过互连件332B耦接至最后级别高速缓存332C。任选地,互连件332B在本文实现为环、结构或网、或总线。任选地,本文所述的高速缓存通过同步动态随机存取存储器SDRAM和或嵌入式动态随机存取存储器eDRAM实现。存储器控制器332D包含对主存储器334的部分读取和写入的逻辑。使用命令主存储器334的访问的存储器控制器332D,主存储器334的部分可复制到高速缓存中的一个或多个,例如第一级别高速缓存、第二级别高速缓存、和或最后级别高速缓存。存储器控制器332D可利用交错,例如对于为DRAM的主存储器334,以更有效地对主存储器340进行读取和写入。例如,存储器控制器332可以组的相继顺序对从来自每个存储器组的存储器的字词分别进行读取或写入数据或到其的字词分别进行读取或写入数据。存储器控制器交错取决于交错粒度和交错模式。交错粒度是在任何时间读取或写入的位的数目。以粒度读取或写入的位驻留在对应的存储器控制器中。交错模式由要交错的存储器控制器的数目以及交错粒度定义。交错模式为访问数据的顺序,例如按列或组。在一个实施方案中,当存储器控制器332D为诸如DRAM的动态存储器时,它还刷新主存储器334。IO控制器332F耦接至至少一个IO332G。程序指令例如操作系统334A、提取层334B、和应用程序334C的程序指令存储在非暂态性的主存储器334中。程序指令的至少一部分由多核处理器332从主存储器334读取,用于在USRQ群集332A上执行。程序指令在本文也称为“软件”。在由USRQ群集332A进行的执行期间,主存储器334可还存储程序指令以及任何相关数据。在其他实施方案中,使用了其他类型的存储器。此外,在一个实施方案中,其中处理系统包括多个处理单元,每个处理单元具有在相关联的处理单元上的执行期间专用于存储程序指令的单独存储器。任选地,在一个具体实施中,多核处理器计算系统300包括调度系统334A-1。在一个实施方案中,调度系统334A-1驻留在操作系统334A中,诸如ARINC653实时操作系统中;然而,在其他实施方案中,调度系统334A-1可位于操作系统334A外部。调度系统调度器334A-1调度USRQ群集332A上的程序指令的执行。在另一实施方案中,调度系统334A-1动态调度程序指令的执行。在另外的实施方案中,调度器334A-1根据静态时间定义调度程序指令的执行。例如,当操作系统符合ARINC653时,程序指令的执行被分配至专用时间窗口。任选地,当处理系统包括多个处理单元时,每个处理单元可具有相关联的调度器。如本文所述,存储在主存储器334内的程序指令可组织成进程。由调度器334A-1为处理系统上的执行调度进程。当调度进程用于执行时的每个实例在本文称为进程的调度实例。此外,进程可由在调度的进程实例内执行的较小子进程构成。在某些示例性具体实施中,进程可应用至速率单调线程、POSIX线程或ARINC653进程。因此,本文可互换使用线程和进程。在某些实施方案中,可调度多个进程实例以在调度器实例中执行。调度器实例在称为主帧的时间段期间执行。调度器实例可与单核心或多个核心相关联。当调度器实例与多个核心关联时,调度算法可选择在其上执行与多核调度器实例相关联的线程的核心。如果没有调度器实例与时间窗口中的核心相关联,则在时间窗口期间可能不允许进程在未调度的核心上执行。在主帧内,可能有多个调度器实例,但是每个进程可由整个主帧的单个调度器实例执行。在某些具体实施中,其中处理系统包括多个处理单元,调度器334A-1确定处理系统中的哪个处理单元将执行特定进程。另外,调度器334A-1在任何给定的时间点处确定哪些进程将在处理系统中的每个处理单元上执行。在确定如何调度进程的执行时,调度器334A-1使用调度算法或策略,其提供用于确定如何调度进程的执行的规则和方法。例如,调度器334A-1可使用诸如速率单调、优先权抢占和或循环法的调度算法。在此类实施方案的一个具体实施中,调度器334A-1使用单调度算法来调度处理系统中各个处理单元上进程的执行。在另一个具体实施中,调度器334A-1使用多调度算法来调度处理系统中不同处理单元上进程的执行。例如,在此类另选的具体实施中,在处理系统中调度器334A-1使用第一调度算法来调度进程的一些以在第一处理单元上执行,并且使用第二调度算法来调度进程的一些的执行以在第二处理单元上执行。图4是操作多核处理系统的方法400的流程图,该多核处理系统具有可随时间窗口变化的共享资源访问配额。在某种程度上,图4所示的方法400在本文描述为在图1至图3所示的系统中实现,应当理解可以其他方式实现其他实施方案。以大致顺序的方式布置了流程图的框以便于说明;但是应当理解该布置仅为示例性的,并且应当认识到与方法以及图中所示的框相关联的处理可以不同顺序发生例如,其中与框关联的处理中的至少一些并行执行和或以事件驱动的方式执行。在框440,开始时间窗口。在框442,为时间窗口确定至少一个时间分区的共享资源访问配额SRAQ,例如其中每个时间分区与多核处理器的一个或多个核心相关联。在框443,为时间窗口将确定的资源访问配额中的每个分配至对应的时间分区。任选地,时间窗口中所有时间分区的总计共享资源访问配额等于一个百分比,例如包括多核处理器的多核处理系统的最大可用的共享资源访问即对应于共享资源访问的最大带宽的百分之五至百分之五十或百分之二十至百分之三十。任选地,百分比可以由多核处理系统设计人员和或系统设计人员选择,以实现在多核处理系统上执行的应用程序。在时间窗口期间的每个时间分区的分配的共享资源访问配额可相等或不等。时间窗口中的时间分区的分配的共享资源访问配额可基于静态策略,例如通过分配特定百分比的总计共享资源访问配额,和或动态策略,例如基于要在每个时间分区中要执行的进程中的至少一个的重要性或优先级。任选地,总计共享资源访问配额以及每个时间分区的分配的共享资源访问配额存储在共享资源访问评估硬件和或软件中。每个时间分区的分配的共享资源访问配额可从时间窗口到时间窗口变化。任选地,在框444,确定是否已达到或超出时间窗口中的时间分区中的任一个的分配的共享资源访问配额。如果否,则进行到框448。如果是,则在框445,停止达到或超出其分配的SRAQ的时间分区中的执行进程。在上文示出了用于确定分配的SRAQ的示例性技术。由于该原因,在时间窗口期间一个或多个时间分区可能具有停止的执行进程。任选地,在框446,确定时间窗口中的时间分区内的所有进程是否完成执行而不使用分配至时间分区的所有SRAQ。如果否,则进行到框450。如果是,则在框447,在相同时间窗口期间,从至少一个时间分区到另一时间分区分配未使用的分配的SRAQ。如上文所述,分配可在相同时间窗口期间的任何时间分区和或USRQ群集之间进行,或仅在相同USRQ群集的时间分区和相同时间窗口中之间进行。上文进一步描述了示例性技术。未使用的分配的SRAQ可在时间窗口期间从多于一个时间分区分配至一个或多个时间分区。可在不同时间在时间窗口期间从不同时间分区到另一时间分区分配未使用的分配的SRAQ。可使得未使用的分配的SRAQ的分配依照静态和或动态策略,该策略在本文的其他地方进行了描述。任选地,在框448,在时间窗口中至少一个时间分区内重新开始停止的进程的执行,对于该时间窗口已经分配了未使用的共享资源分配的配额。在一些实施方案中,在时间窗口期间执行框444、448和或448中的一个或多个一次以上。在框450,终止时间窗口,例如当时间窗口中所有时间分区的进程由于节流或已完成执行而停止时。任选地,回到框440。示例性实施方案实施例1包括方法,该方法包括:开始时间窗口,其中时间窗口具有固定的或可变的持续时间;为时间窗口的至少一个时间分区确定共享资源访问配额,其中共享资源访问配额可能随时间窗口变化;将每个确定的共享资源访问配额分配至窗口的对应时间分区;确定是否已达到或超出时间窗口中的任何时间分区的分配的共享资源访问配额;并且如果已达到或超出时间窗口中的时间分区的分配的共享资源访问配额,则在时间分区中停止执行进程。实施例2包括实施例1的方法,还包括如果时间窗口中的时间分区中的至少一个进程的所有进程在没有使用分配至时间分区的所有共享资源访问配额而完成执行,则在相同时间窗口期间从至少一个时间分区到至少一个其他时间分区分配未使用的共享资源访问配额。实施例3包括实施例1至2的方法,其中分配未使用的共享资源访问配额包括将未使用的共享资源访问配额分配至在和时间分区一样的USRQ群集中的至少一个其他时间分区。实施例4包括实施例3的方法,还包括恢复已对其分配未使用的共享资源访问配额的时间窗口中的至少一个时间分区中的进程。实施例5包括实施例1至4中的任一项的方法,其中确定共享资源访问配额包括使用静态策略和动态策略中的至少一个确定每个时间分区的共享资源访问配额。实施例6包括实施例2至5中的任一项的方法,其中分配未使用的共享资源访问配额包括使用动态策略和静态策略中的至少一个分配未使用的共享资源访问配额。实施例7包括存储程序的非暂态计算机可读介质,该程序使得计算机执行方法,该方法包括:开始时间窗口,其中时间窗口具有固定的或可变的持续时间;为窗口的至少一个时间分区确定共享资源访问配额,其中共享资源访问配额可能随时间窗口变化;将每个确定的共享资源访问配额分配至窗口的对应时间分区;确定是否已达到或超出时间窗口中的任何时间分区的分配的共享资源访问配额;并且如果已达到或超出时间窗口中的时间分区的分配的共享资源访问配额,则在时间分区中停止执行进程。实施例8包括实施例7的非暂态计算机可读介质,还包括如果时间窗口中的时间分区中的至少一个进程在没有使用分配至时间分区的所有共享资源访问配额而完成执行,则在相同时间窗口期间从至少一个时间分区到至少一个其他时间分区分配未使用的共享资源访问配额。实施例9包括实施例8的非暂态计算机可读介质,其中分配未使用的共享资源访问配额包括将未使用的共享资源访问配额分配至在和时间分区一样的USRQ群集中的至少一个其他时间分区。实施例10包括实施例9的非暂态计算机可读介质,还包括恢复已对其分配未使用的共享资源访问配额的时间窗口中的至少一个时间分区中的进程。实施例11包括实施例7至10中的任一项的非暂态计算机可读介质,其中确定共享资源访问配额包括使用静态策略和动态策略中的至少一个确定每个时间分区的共享资源访问配额。实施例12包括实施例8至11中的任一项的非暂态计算机可读介质,其中分配未使用的共享资源访问配额包括使用动态策略和静态策略中的至少一个分配未使用的共享资源访问配额。实施例13包括处理系统,该处理系统包括:至少两个处理电路;存储器;其中存储器包括操作系统和至少一个应用程序;将存储器耦接至至少两个处理单元的数据总线;其中至少一个处理电路被配置成执行至少一个应用程序的至少一个进程;并且其中执行操作系统的至少两个处理电路中的至少一个被配置成:开始时间窗口,其中时间窗口具有固定的或可变的持续时间;为窗口的至少一个时间分区确定共享资源访问配额,其中共享资源访问配额可随时间窗口变化;将每个确定的共享资源访问配额分配至窗口的对应时间分区;确定是否已达到或超出时间窗口中的任何时间分区的分配的共享资源访问配额;并且如果已达到或超出时间窗口中的时间分区的分配的共享资源访问配额,则在时间分区中停止执行进程。实施例14包括实施例13的处理系统,其中如果时间窗口中的时间分区中的至少一个进程在没有使用分配至时间分区的所有共享资源访问配额而完成执行,则处理电路被进一步配置成在相同时间窗口期间从至少一个时间分区到至少一个其他时间分区分配未使用的共享资源访问配额。实施例15包括实施例14的处理系统,其中分配未使用的共享资源访问配额包括将未使用的共享资源访问配额分配至在和时间分区一样的USRQ群集中的至少一个其他时间分区。实施例16包括实施例15的处理系统,还包括处理电路,该处理电路被配置成恢复已对其分配未使用的共享资源访问配额的时间窗口中的至少一个时间分区中的进程。实施例17包括实施例13至16中的任一项的处理系统,其中确定共享资源访问配额包括使用静态策略和动态策略中的至少一个确定每个时间分区的共享资源访问配额。实施例18包括实施例14至17中的任一项的处理系统,其中分配未使用的共享资源访问配额包括使用动态策略和静态策略中的至少一个分配未使用的共享资源访问配额。实施例19包括实施例13至18中的任一项的处理系统,其中至少两个处理单元对于每个处理单元包括至少一个事件计数器。实施例20包括实施例13至19中的任一项的处理系统,还包括:耦接至每个处理电路的互连件;耦接至互连件和数据总线的至少一个存储器控制器;并且其中每个处理单元为多核处理器的至少一个核心。尽管在本文中已经示出和描述了特定实施方案,但是本领域的普通技术人员应当理解,经计算以实现相同目的的任何布置可替代所示的特定实施方案。因此,本发明显然旨在仅受本发明权利要求书及其等同形式的限制。
权利要求:1.一种处理系统,包括:至少两个处理电路332;存储器334;其中所述存储器包括操作系统334A和至少一个应用程序334C;数据总线336,所述数据总线将所述存储器耦接至所述至少两个处理单元;其中至少一个处理电路被配置成执行所述至少一个应用程序的至少一个进程;并且其中执行所述操作系统的所述至少两个处理电路中的至少一个被配置成:开始时间窗口,其中所述时间窗口具有固定的或可变的持续时间440;为所述窗口的至少一个时间分区确定共享资源访问配额,其中所述共享资源访问配额可随时间窗口变化442;将每个确定的共享资源访问配额分配至所述窗口对应的时间分区443;确定是否已达到或超出所述时间窗口中的任何时间分区的分配的共享资源访问配额446;以及如果已达到或超出所述时间窗口中的时间分区的分配的共享资源访问配额,则停止所述时间分区中的执行进程445。2.根据权利要求1所述的处理系统,其中如果时间窗口中的时间分区中的至少一个进程在没有使用分配至所述时间分区的所有所述共享资源访问配额而完成执行,则所述处理电路被进一步配置成在所述相同时间窗口期间从至少一个时间分区到至少一个其他时间分区分配所述未使用的共享资源访问配额447。3.根据权利要求2所述的处理系统,其中分配所述未使用的共享资源访问配额包括将所述未使用的共享资源访问配额分配至在和所述时间分区一样的USRQ群集中的至少一个其他时间分区。
百度查询: 霍尼韦尔国际公司 用于共享资源访问的可变速率限制的系统和方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。