CN116414723A - 内存带宽的控制方法、装置、电子设备和存储介质 - Google Patents

内存带宽的控制方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN116414723A
CN116414723A CN202111682780.9A CN202111682780A CN116414723A CN 116414723 A CN116414723 A CN 116414723A CN 202111682780 A CN202111682780 A CN 202111682780A CN 116414723 A CN116414723 A CN 116414723A
Authority
CN
China
Prior art keywords
memory bandwidth
cpu core
preset
control
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111682780.9A
Other languages
English (en)
Inventor
王波
薛志宏
李翌
李禄财
李鹏
陈彬
洪坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN202111682780.9A priority Critical patent/CN116414723A/zh
Priority to PCT/CN2022/141128 priority patent/WO2023125248A1/zh
Publication of CN116414723A publication Critical patent/CN116414723A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及计算机技术领域,特别涉及一种内存带宽的控制方法、装置、电子设备和存储介质。应用在多核系统对应的操作系统上,方法包括:检测CPU核的预设评估CPU核内存带宽占用情况的指定事件的发生次数;当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和控制策略获取内存带宽控制任务流;运行内存带宽控制任务流,完成对CPU核的内存带宽控制。通过对各CPU核进行独立的内存带宽占用检测,在内存带宽占用达到一定条件时进行内存带宽控制,避免因为一个CPU超额占用内存带宽而影响其他CPU的内存访问时间,多核系统中各CPU的相互干扰以及各CPU核对DRAM控制器的争用,进而保证多核系统的确定性和各CPU核内存访问的时效性及稳定性。

Description

内存带宽的控制方法、装置、电子设备和存储介质
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种内存带宽的控制方法、装置、电子设备和存储介质。
背景技术
在多核系统中,内存是一个关键的共享资源,存储器请求的处理时间是高度可变的,因为它取决于动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)控制器的状态。具体来说由于来自一个中央处理器(Central Processing Unit,简称CPU)核的存储器访问也可能受来自其他CPU核的请求的影响,DRAM控制器通常采用调度算法对请求进行重新排序,以最大限度地提高DRAM的整体吞吐量;上述因素都会影响内存密集型实时应用的时间可预测性。
然而,用于安全关键航空电子系统的多核分区操作系统平台上,CPU核之间的竞争是多核分区隔离的主要障碍。各CPU核之间的竞争是由于硬件资源的隐性共享(如:由内存控制器和主存储器引发);且各CPU核对DRAM控制器的争用会导致多核系统的不确定性,造成内存访问抖动和内存访问延迟的问题。
发明内容
本申请实施例的主要目的在于提出一种内存带宽的控制方法、装置、电子设备和存储介质。旨在避免多核系统中各CPU的相互干扰以及各CPU核对DRAM控制器的争用,保证多核系统的确定性和各CPU核内存访问的时效性及稳定性。
为实现上述目的,本申请实施例提供了一种内存带宽的控制方法,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,包括:检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数;当所述指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;运行所述内存带宽控制任务流,完成对所述CPU核的内存带宽控制。
为实现上述目的,本申请实施例还提供一种内存带宽的控制装置,应用包含各中央处理器CPU核的多核系统对应的操作系统上,包括:控制检测模块,用于检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数;任务生成模块,用于当所述指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;内存带宽控制模块,用于运行所述内存带宽控制任务流,完成对所述CPU核的内存带宽控制。
为实现上述目的,本申请实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的内存带宽的控制方法。
为实现上述目的,本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的内存带宽的控制方法。
本申请提出的内存带宽的控制方法,在多核系统的各中央处理器CPU核的内存带宽控制过程中,检测CPU核的预设的评估CPU核内存带宽占用情况的指定事件的发生次数;当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;运行内存带宽控制任务流,完成对CPU核的内存带宽控制;通过对各CPU核进行独立的内存带宽占用检测,在内存带宽占用达到一定条件时进行内存带宽控制,避免因为一个CPU超额占用内存带宽而影响其他CPU的内存访问时间,避免多核系统中各CPU的相互干扰以及各CPU核对DRAM控制器的争用,进而保证多核系统的确定性和各CPU核内存访问的时效性及稳定性,解决了现有技术中各CPU核对DRAM控制器的争用会导致多核系统的不确定性,造成内存访问时间抖动和内存访问延迟的问题。
附图说明
图1是本申请实施方式提供的内存带宽的控制方法的流程图;
图2是本申请实施方式提供的内存带宽的控制方法的流程图;
图3是本申请实施方式提供的内存带宽的控制方法的流程图;
图4是本申请实施方式提供的内存带宽的控制方法的流程图;
图5是本申请实施方式提供的内存带宽的控制装置的结构示意图;
图6是本申请实施方式提供的电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本申请各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本申请的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
用于安全关键航空电子系统的多核分区操作系统平台上,CPU核之间的竞争是分区间时间隔离的主要障碍。核心之间的争用是由于硬件资源的隐性共享,比如由内存控制器和主存储器引发,这种现象通常被称为“吵闹邻居”,如果保持现有分区隔离方案不变,则可能破坏分区之间的时间隔离性,使得一个分区程序的执行时间受其他分区影响,导致最后期限错过,甚至导致系统故障。针对“CPU核之间的竞争是分区间时间隔离的主要障碍”这一问题,Intel公司提出了基于硬件的内存资源隔离解决方案Resource DirectorTechnology技术,其中包含了内存带宽分配(Memory Bandwidth Allocation,简称MBA)技术和内存带宽监测(Memory Bandwidth Monitoring,简称MBM)技术;ARM公司也提出了Memory System Resource Partitioning and Monitoring技术用于解决CPU访存过程中共享资源的竞争带来的某些关键应用性能下降或者系统整体性能下降的问题。但Intel公司和ARM公司的方案依赖于硬件,目前只有最新的部分硬件支持;在航空电子领域,由于研发周期和适航的要求,采用的CPU硬件往往是远远落后于主流硬件的,因此目前无法利用Intel公司的Resource Director Technology技术和ARM公司的Memory System ResourcePartitioning and Monitoring技术提及的硬件方案解决该问题。
本申请提及的内存带宽的控制方法是一种通用的内存带宽的控制方法,不依赖最新的特殊硬件支持,可以在不支持Intel RDT和ARM MSRPM技术的CPU核中实施。
本申请的一个实施例涉及一种内存带宽的控制方法,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,如图1所示,至少包括但不限于以下步骤:
步骤101,检测CPU核的预设的评估CPU核内存带宽占用情况的指定事件的发生次数。
在一示例实施中,评估CPU核内存带宽占用情况的指定事件可以是最后一级缓存未命中事件Last Level Cache Misses Events、地址变换高速缓存未命中事件Translation Look-aside Buffer Misses Events、内存管理单元数据繁忙事件Data MMUbusy Events、Load/Store,Data Cache,and Data Line Fill Buffer(DLFB)Events或Instruction MMU,Data MMU and L2 MMU Events,其中,以上事件可以独立使用,也可以组合使用。
在一示例实施中,在对CPU核的评估CPU核内存带宽占用情况的指定事件的发生次数进行检测时,可以基于CPU核现有的硬件进行检测,也可以基于软件程序的方式进行检测,具体的检测方式由设定的评估CPU核内存带宽占用情况的指定事件决定。
在一示例实施中,指定事件可以由多个硬件事件组成,如硬件事件A和硬件事件B组成指定事件,那么指定事件的发生次数等于各硬件事件的发生次数与各硬件事件的预设阈值的乘积的累加和,如:指定事件的发生次数=硬件事件A的发生次数*硬件事件A的预设阈值+硬件事件B的发生次数*硬件事B件的预设阈值,其中,指定事件中的各硬件事件可以是最后一级缓存未命中事件、地址变换高速缓存未命中事件、内存管理单元数据繁忙事件、Load/Store,Data Cache,and Data Line Fill Buffer(DLFB)Events或Instruction MMU,Data MMU and L2 MMU Events。
在一示例实施中,还可以为各CPU核设置一个检测周期,根据检测周期触发对CPU核的指定事件的发生次数的检测,使得本申请可以自动对各CPU核在一个检测周期内指定事件的发生次数进行检测。
步骤102,当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流。
在一示例实施中,预设的控制条件是指定事件的发生次数的阈值,是根据CPU核的内存带宽配额和内存带宽控制算法生成的,而在指定事件中包含多个硬件事件时,在生成指定事件的发生次数的阈值时会考虑各硬件事件的权值(即指定事件的发生次数的阈值由各硬件事件的发生次数阈值和各硬件事件的权值生成);多核系统中各CPU核的控制条件会由于各CPU核的内存带宽配额而不相同;多核系统中各CPU核的实际内存带宽配额的总和小于多核系统的总内存带宽。
在一示例实施中,在一检测周期中,当检测周期内的指定事件的发生次数均未满足控制条件时,则需要根据CPU核的内存带宽配额和内存带宽控制算法调整下一个检测周期内的控制条件。在一示例实施中,当指定事件的发生次数满足控制条件时,也就是指定事件的发生次数达到阈值时,需要根据内存带宽控制函数和控制策略获取内存带宽控制任务流;本申请包含有多种内控制策略,各控制策略都有其对应的存控制任务流,在该CPU核的控制策略确定好之后,可以通过内存带宽控制函数唤醒与确定好的控制策略对应的内存带宽控制任务流。
在一示例实施中,控制策略可以为执行一定数量空操作指令,该控制策略对应的内存带宽控制任务流指示执行预设数量的空操作指令;控制策略可以为阻塞CPU核的当前任务一段时间,该控制策略对应的内存带宽控制任务流为在预设时间内阻塞CPU核的内存访问操作;控制策略可以为占用全局或者其他CPU核空闲的内存带宽;该控制策略对应的内存带宽控制任务流用于当多核系统中的其他CPU核存在空闲内存带宽时,从其他CPU核中获取空闲内存带宽供CPU核调用;控制策略可以为将内存带宽控制信号发送给CPU核的任务,该控制策略对应的内存带宽控制任务流用于将内存带宽控制信号发送给CPU核的任务,由任务自行处理。
在一示例实施中,所获取的内存带宽控制任务流设置有优先级,当获取到内存带宽控制任务流之后,通过内存带宽控制任务流的优先级保证一个预先设置的时间长度,在时间长度内执行该内存带宽控制任务流。
步骤103,运行内存带宽控制任务流,完成对CPU核的内存带宽控制。
在一示例实施中,运行所获取的内存带宽控制任务流,根据该内存带宽控制任务流对应的控制策略对CPU核的内存进行控制;从而避免避免该CPU核的内存访问请求通过DRAM控制器送到总线上,因为在存在多个请求的情况下,DRAM控制器会对各个CPU的内存访问请求进行串行排序,从而导致的多核系统的各CPU核之间存在相互干扰,这种现象通常被称为“吵闹邻居”。
此处需要注意的是,本申请提及的包含各中央处理器CPU核的多核系统对应的操作系统中,对各CPU核的内存带宽控制是单独进行的。
本申请实施例,在多核系统的各中央处理器CPU核的内存带宽控制过程中,检测CPU核的预设的评CPU核内存带宽占用情况的指定事件的发生次数;当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;运行内存带宽控制任务流,完成对CPU核的内存带宽控制;通过对各CPU核进行独立的内存带宽占用检测,在内存带宽占用达到一定条件时进行内存带宽控制,避免因为一个CPU超额占用内存带宽而影响其他CPU的内存访问时间,避免多核系统中各CPU的相互干扰以及各CPU核对DRAM控制器的争用,进而保证多核系统的确定性和各CPU核内存访问的时效性及稳定性,解决了现有技术中各CPU核对DRAM控制器的争用会导致多核系统的不确定性,造成内存访问时间抖动和内存访问延迟的问题。
本申请的一个实施例涉及一种内存带宽的控制方法,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,如图2所示,包括:
步骤201,当指定事件为地址变换高速缓存未命中事件时,通过预设的检测任务流检测CPU核的评估CPU核内存带宽占用情况的指定事件的发生次数。
在一示例实施中,由于地址映射(从虚拟地址转换成物理地址)需要的开销开大。转换过程如下:第一次访问内存是访问页表,取出虚拟页对应的物理页。第二次访问内存是访问实际内存地址。为了提高效率,现代CPU都包含了一个特殊Cache来跟踪最近使用过的地址变换,这个就是地址变换高速缓存(Translation Look-aside Buffer,简称TLB)。
在一示例实施中,对于TLB Miss由软件负责处理的系统,如PPC-e500内核寄存器,可以通过检测任务流来获取CPU核的地址变换高速缓存未命中事件的发生次数。
步骤202,当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流。
在一示例实施中,当指定事件为地址变换高速缓存未命中事件时,在指定事件的发生次数满足预设控制条件时,则会可以跳转到内存带宽控制函数,结合控制策略获取内存带宽控制任务流,获取任务流的方法与本申请实施例的步骤102大致相同,此处不一一赘述;其中,本步骤所提及的内存带宽控制函数可以是基于TLB Miss处理函数实现。
步骤203,运行内存带宽控制任务流,完成对CPU核的内存带宽控制。
在一示例实施中,本步骤与本申请实施例的步骤103大致相同,此处不一一赘述。
本申请实施例,在其他实施例的基础之上还可以使用软件程序来对各CPU核的指定事件的发生次数进行检测,只依赖于CPU核的硬件事件计数器或者性能计时器功能,不依赖于其他额外硬件功能,使得本申请的适用面广且成本低。
本申请的一个实施例涉及一种内存带宽的控制方法,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,如图3所示,包括:
步骤301,当指定事件为CPU核最后一级缓存未命中事件时,通过CPU核的性能计数器检测CPU核的评估CPU核内存带宽占用情况的指定事件的发生次数。
在一示例实施中,缓存命中率是CPU核性能的一个关键性能指标。CPU里面有好几级缓存Cache,每一级缓存都比后一级缓存访问速度快,最后一级缓存称为Last LevelCache;最后一级缓存的后面就是内存。当CPU需要访问一块数据或者指令时,它会首先查看最靠近的一级缓存(L1);如果数据存在,那么就是缓存命中(Cache Hit),否则就是不命中(Cache Miss),此时需要继续查询下一级缓存。缓存不命中的比例对CPU的性能影响很大,尤其是最后一级缓存的不命中时,对性能的损害尤其严重。这个损害主要有两方面的性能影响:第一个方面是CPU核的速度受影响。在最后一级缓存没命中时便会继续访问内存,内存的访问延迟是最后一级缓存的延迟的很多倍(比如五倍),进而影响CPU核的计算速度。第二个方面是关于内存带宽。如果最后一级缓存没有命中,那么就只能从内存里面获取带宽资源。最后一级缓存不命中的计数,其实就是对内存访问的计数,因为CPU核对内存的访问总是要经过最后一级缓存,不会跳过最后一级缓存的。所以每一次最后一级缓存未命中,就会导致一次内存访问;反之也是成立的:每一次内存访问都是因为最后一级缓存没有命中。而一个系统的内存带宽是有限制的,很有可能会成为性能瓶颈。从内存里取数据,就会占用内存带宽。因此,如果最后一级缓存未命中频次很高,那么对内存带宽的使用就会很大。内存带宽使用率很高的情况下,内存的存取延迟会急剧上升。因此,可以使用最后一级缓存未命中事件的发生次数来评估CPU核内存带宽占用情况。
在一示例实施中,可以使用CPU核中的性能计数器(Performance MeasuringCounters,简称PMC)来对最后一级缓存未命中事件的发生次数进行检测。
步骤302,根据预设周期CPU核的性能计数器上报的指定事件的发生次数,判断指定事件的发生次数是否满足控制条件。
在一示例实施中,CPU核的性能计数器在检测到指定事件的发生次数之后,并不会对指定事件的发生次数进行任务处理,而是上报至内存带宽控制系统中,内存带宽控制系统根据CPU核的性能计数器上报的指定事件的发生次数来判断该指定事件的发生次数是否满足控制条件。
步骤303,根据CPU核的性能计数器是否上报中断触发指令,判断指定事件的发生次数是否满足控制条件。
在一示例实施中,CPU核的性能计数器中也设置有指定事件的发生次数的控制条件,在检测到指定事件的发生次数之后,由CPU核的性能计数器判断指定事件的发生次数是否满足控制条件,在定事件的发生次数满足控制条件时生成一个中断触发指令,并将中断触发指令上报至内存带宽控制系统,内存带宽控制系统在接收到该中断触发指令之后,便认为指定事件的发生次数满足控制条件。
步骤304,当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流。
在一示例实施中,当指定事件为CPU核最后一级缓存未命中事件时,在指定事件的发生次数满足预设控制条件时,则会触发内存带宽控制中断,可以跳转到内存带宽控制函数,结合控制策略获取内存带宽控制任务流,获取任务流的方法与本申请实施例的步骤102大致相同,此处不一一赘述;其中,本步骤所提及的内存带宽控制函数优选为中断处理函数,其他用于使CPU核的内存带宽控制流程终止或暂停的函数也可使用。
步骤305,运行内存带宽控制任务流,完成对CPU核的内存带宽控制。
在一示例实施中,本步骤与本申请实施例的步骤103大致相同,此处不一一赘述。
此处需要注意的是:步骤302和步骤303是两种并列的方法,可任选其一进行。
本申请实施例,在其他实施例的基础之上还可以基于现有CPU硬件的PMC寄存器进行CPU核的指定事件的发生次数的检测,无需新增额外的硬件来支持,使得本申请的适用面广且成本低。
本申请的一个实施例涉及一种内存带宽的控制方法,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,如图4所示,包括:
步骤401,获取CPU核的内存带宽配额,并根据预设的控制算法和内存带宽配额生成控制条件。
在一示例实施中,在对CPU核进行指定事件的检测之前,需要获取到该CPU核的内存带宽配额,之后根据预设的控制算法将CPU核的内存带宽配额转换为指定事件的发生次数阈值,即控制条件,在后续检测到的指定事件的发生次数满足控制条件时,就说明该CPU核的内存带宽占用情况以达到最大值,需要进行内存带宽控制。
步骤402,检测CPU核的预设的评估CPU核内存带宽占用情况的指定事件的发生次数。
在一示例实施中,本步骤与本申请实施例的步骤101大致相同,此处不一一赘述。
步骤403,当指定事件的发生次数满足控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流。
在一示例实施中,本步骤与本申请实施例的步骤102大致相同,此处不一一赘述。
步骤404,运行内存带宽控制任务流,完成对CPU核的内存带宽控制。
在一示例实施中,本步骤与本申请实施例的步骤103大致相同,此处不一一赘述。
本申请实施例,在其他实施例的基础之上还可以在对各CPU核的评估CPU核内存带宽占用情况的指定事件的发生次数进行检测之前,根据各CPU核的内存带宽配额生成各CPU核的指定事件的发生次数的控制条件,使得本申请对各CPU进行指定事件的发生次数的判断时,所采用的判断控制条件都是各CPU对应的,从而提高本申请对各CPU进行内存带宽控制判断的准确性。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本申请的一个实施例涉及一种内存带宽的控制装置,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,下面对本实施例的内存带宽的控制装置的细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本例的必须,图5是本实施例所述的内存带宽的控制装置的示意图,包括:控制检测模块501,任务生成模块502和内存带宽控制模块503。
其中,控制检测模块501,用于检测CPU核的预设的评估CPU核内存带宽占用情况的指定事件的发生次数;
任务生成模块502,用于当指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;
内存带宽控制模块503,用于运行内存带宽控制任务流,完成对CPU核的内存带宽控制。
在一示例实施中,本申请实施例提及的操作系统可以是多核系统的分区操作系统,也可以是多核系统的通用操作系统。
不难发现,本实施例为与上述方法实施例对应的系统实施例,本实施例可以与上述方法实施例互相配合实施。上述实施例中提到的相关技术细节和技术效果在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在上述实施例中。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本申请的创新部分,本实施例中并没有将与解决本申请所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本申请的一个实施例涉及一种电子设备,如图6所示,包括:至少一个处理器601;以及,与所述至少一个处理器601通信连接的存储器602;其中,所述存储器602存储有可被所述至少一个处理器601执行的指令,所述指令被所述至少一个处理器601执行,以使所述至少一个处理器601能够执行上述各实施例中的内存带宽的控制方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本申请的一个实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本申请的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (12)

1.一种内存带宽的控制方法,其特征在于,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,所述方法包括:
检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数;
当所述指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;
运行所述内存带宽控制任务流,完成对所述CPU核的内存带宽控制。
2.根据权利要求1所述的内存带宽的控制方法,其特征在于,所述检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数,包括:
当所述指定事件为地址变换高速缓存未命中事件时,通过预设的检测任务流检测所述CPU核的所述指定事件的发生次数。
3.根据权利要求1所述的内存带宽的控制方法,其特征在于,所述检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数,包括:
当所述指定事件为所述CPU核最后一级缓存未命中事件时,通过所述CPU核的性能计数器检测所述CPU核的所述指定事件的发生次数。
4.根据权利要求3所述的内存带宽的控制方法,其特征在于,所述方法还包括:
根据预设周期检测所述CPU核的性能计数器上报的所述指定事件的发生次数,判断所述指定事件的发生次数是否满足所述控制条件;或者,
根据所述CPU核的性能计数器是否上报中断触发指令,判断所述指定事件的发生次数是否满足所述控制条件;所述中断触发指令是所述CPU核的性能计数器在所述指定事件的发生次数满足所述控制条件时生成的。
5.根据权利要求1至权利要求4中任一项所述的内存带宽的控制方法,其特征在于,当所述指定事件包含多个硬件事件时,所述检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数,包括:
将各所述硬件事件的发生次数与各所述硬件事件的预设权重的乘积的累加和作为所述指定事件的发生次数。
6.根据权利要求1至权利要求4中任一项所述的内存带宽的控制方法,其特征在于,所述检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数,之前包括:
获取所述CPU核的内存带宽配额;
根据预设的控制算法和所述内存带宽配额生成所述控制条件。
7.根据权利要求1至权利要求4中任一项所述的内存带宽的控制方法,其特征在于,所述控制策略,包括:执行预设数量的空操作指令;或,在预设时间内阻塞或切换所述CPU核的进行内存相关访问操作的任务;或,当所述多核系统中的其他CPU核存在空闲内存带宽时,从所述其他CPU核中获取所述空闲内存带宽供所述CPU核调用。
8.根据权利要求1至权利要求4中任一项所述的内存带宽的控制方法,其特征在于,所述检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数,包括:
根据预设的检测周期对所述CPU核的所述指定事件的发生次数进行检测。
9.根据权利要求8所述的内存带宽的控制方法,其特征在于,所述方法还包括:当所述检测周期内的所述指定事件的发生次数均未满足所述控制条件时,则根据预设算法调整下一个所述检测周期内的所述控制条件。
10.一种内存带宽的控制装置,其特征在于,应用在包含各中央处理器CPU核的多核系统对应的操作系统上,所述装置包括:
控制检测模块,用于检测所述CPU核的预设的评估所述CPU核内存带宽占用情况的指定事件的发生次数;
任务生成模块,用于当所述指定事件的发生次数满足预设控制条件时,根据预设内存带宽控制函数和预设控制策略获取内存带宽控制任务流;
内存带宽控制模块,用于运行所述内存带宽控制任务流,完成对所述CPU核的内存带宽控制。
11.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至9中任一项所述的内存带宽的控制方法。
12.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的内存带宽的控制方法。
CN202111682780.9A 2021-12-30 2021-12-30 内存带宽的控制方法、装置、电子设备和存储介质 Pending CN116414723A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111682780.9A CN116414723A (zh) 2021-12-30 2021-12-30 内存带宽的控制方法、装置、电子设备和存储介质
PCT/CN2022/141128 WO2023125248A1 (zh) 2021-12-30 2022-12-22 内存带宽的控制方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111682780.9A CN116414723A (zh) 2021-12-30 2021-12-30 内存带宽的控制方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116414723A true CN116414723A (zh) 2023-07-11

Family

ID=86997787

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111682780.9A Pending CN116414723A (zh) 2021-12-30 2021-12-30 内存带宽的控制方法、装置、电子设备和存储介质

Country Status (2)

Country Link
CN (1) CN116414723A (zh)
WO (1) WO2023125248A1 (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4409568B2 (ja) * 2006-12-21 2010-02-03 株式会社東芝 帯域制御プログラム及びマルチプロセッサシステム
WO2018078610A1 (en) * 2016-10-31 2018-05-03 Leonardo S.P.A. Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors
GB2560548B (en) * 2017-03-15 2021-01-13 Advanced Risc Mach Ltd Video data processing system
CN107770096B (zh) * 2017-12-11 2021-07-30 国网河南省电力公司信息通信公司 一种基于负载均衡的sdn/nfv网络动态资源分配方法
CN110287014B (zh) * 2019-06-27 2022-12-09 北京大学深圳研究生院 一种计算机系统内存带宽调度方法、系统及存储介质
CN112260962B (zh) * 2020-10-16 2023-01-24 网宿科技股份有限公司 一种带宽控制方法及装置
CN113485797A (zh) * 2021-01-25 2021-10-08 北京智数慧云信息技术有限公司 一种面向数据获取任务的调度方法

Also Published As

Publication number Publication date
WO2023125248A1 (zh) 2023-07-06

Similar Documents

Publication Publication Date Title
KR102231190B1 (ko) 프리페처 기반 추론적 동적 랜덤 액세스 메모리 판독 요청 기술
US8875142B2 (en) Job scheduling on a multiprocessing system based on reliability and performance rankings of processors and weighted effect of detected errors
US10216414B2 (en) Frame choosing during storage constraint condition
US9304920B2 (en) System and method for providing cache-aware lightweight producer consumer queues
US20120271952A1 (en) Microprocessor with software control over allocation of shared resources among multiple virtual servers
US9323678B2 (en) Identifying and prioritizing critical instructions within processor circuitry
US20110302336A1 (en) Resolving Contention Between Data Bursts
US10313265B1 (en) System and methods for sharing memory subsystem resources among datacenter applications
US6341334B1 (en) Bridge method, bus bridge, and multiprocessor system
CN109308220B (zh) 共享资源分配方法及装置
JP2019096309A (ja) メンテナンス動作の実行
JP6221792B2 (ja) 情報処理装置、情報処理システム、および情報処理システムの制御方法
US9921754B2 (en) Dynamic coding algorithm for intelligent coded memory system
JP7160941B2 (ja) アクセラレータ要求を処理する際の中央処理装置の処理品質保証の実施
US8671232B1 (en) System and method for dynamically migrating stash transactions
WO2019215795A1 (ja) 情報処理装置、チューニング方法およびチューニングプログラム
CN103955397B (zh) 一种基于微架构感知的虚拟机调度多策略选择方法
CN116414723A (zh) 内存带宽的控制方法、装置、电子设备和存储介质
JPH07287064A (ja) レーダ信号処理装置
JPH04123234A (ja) マルチプロセッサのプロセススケジューリング方式及びメモリ管理方式
US10990543B1 (en) Apparatus and method for arbitrating access to a set of resources
EP4281876A1 (en) Memory controller and data processing system with memory controller
US7603522B1 (en) Blocking aggressive neighbors in a cache subsystem
US9043507B2 (en) Information processing system
CN110647357B (zh) 同步多线程处理器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication