CN111176828A - 包括多核处理器的片上系统及其任务调度方法 - Google Patents
包括多核处理器的片上系统及其任务调度方法 Download PDFInfo
- Publication number
- CN111176828A CN111176828A CN201911085014.7A CN201911085014A CN111176828A CN 111176828 A CN111176828 A CN 111176828A CN 201911085014 A CN201911085014 A CN 201911085014A CN 111176828 A CN111176828 A CN 111176828A
- Authority
- CN
- China
- Prior art keywords
- task
- core
- cores
- candidate
- priority
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims description 21
- 230000003936 working memory Effects 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 9
- 230000007423 decrease Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims 2
- 230000015654 memory Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 17
- 230000001427 coherent effect Effects 0.000 description 3
- 239000004973 liquid crystal related substance Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 235000003642 hunger Nutrition 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000037351 starvation Effects 0.000 description 2
- 101150053844 APP1 gene Proteins 0.000 description 1
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 1
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 1
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 1
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 1
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 1
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
包括多核处理器的片上系统的调度方法包括:接收请求调度任务,将指派给所述请求调度任务的优先级转换为线性优先级权重,从所述多核处理器的核中选择将向其指派所述请求调度任务的多个候选核,计算指示所述多个候选核中的每一个候选核的当前负载状态的抢占比较指数,将所述线性优先级权重与所述多个候选核中的每一个候选核的抢占比较指数进行比较以生成比较结果,并且根据所述比较结果将所述请求调度任务指派给所述多个候选核中的一个候选核。
Description
相关申请的交叉引用
本申请要求2018年11月9日在韩国知识产权局递交的韩国专利申请No.10-2018-0137229的优先权,其全部公开内容通过引用合并于此。
技术领域
本文中所述的本发明构思的示例性实施例涉及一种半导体器件,更具体地,涉及一种包括多核处理器的片上系统及其任务调度方法。
背景技术
移动设备中的多媒体操作和数据吞吐量正在增加。因此,在移动设备中采用高速处理器和高容量存储介质正在扩展。移动设备操作各种应用程序。为了操作各种应用程序,在移动设备中使用诸如工作存储器(例如动态随机存取存储器(DRAM))、非易失性存储器和应用处理器(AP)的半导体器件。
在移动设备中,多核处理器用于提供AP的高性能。为了增加多核处理器的效率,可以参考要处理的任务的优先级或当前驱动的核的利用率来调度任务。然而,根据用户的需求,需要实时响应的任务逐渐增加。为了满足用户丰富的UI/UX要求,高优先级的任务可能不可避免地增加,并且由较低优先级的任务提供的服务质量可能降低。因此,仅使用当前基于优先级的任务调度方法可能难以有效地指派处理器资源并保证服务质量。
发明内容
根据本发明构思的示例性实施例,包括多核处理器的片上系统的调度方法包括:接收请求调度任务,将指派给请求调度任务的优先级转换为线性优先级权重,从多核处理器的核中选择将向其指派请求调度任务的多个候选核,计算指示多个候选核中的每一个候选核的当前负载状态的抢占比较指数,将线性优先级权重与所述多个候选核中的每一个候选核的抢占比较指数进行比较以生成比较结果,并且根据比较结果将请求调度任务指派给多个候选核中的一个候选核。
根据本发明构思的示例性实施例,片上系统包括多核处理器,该多核处理器包括多个核和工作存储器,在该工作存储器上加载有由该多核处理器驱动的操作系统。操作系统被配置为将指派给请求调度的任务的优先级转换为用于共同管理实时类任务和公平类任务的线性优先级权重,根据第一条件选择将向其指派任务的多个候选核,计算指示多个候选核中的每一个候选核的当前负载状态的抢占比较指数,并且通过将计算出的抢占比较指数与线性优先级权重进行比较,将任务指派给多个候选核中的一个候选核。
根据本发明构思的示例性实施例,包括多个CPU核的片上系统的调度方法包括:将请求调度的任务的优先级转换为线性优先级权重,而不管实时类还是公平类,根据操作条件,在多个CPU核中选择多个候选核,计算指示多个候选核中的每一个候选核的当前负载状态的抢占比较指数,并且通过将多个候选核中的每一个候选核的抢占比较指数与线性优先级权重进行比较,来选择多个候选核中的一个候选核作为目标核以指派任务。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思的上述及其他目的和特征将变得清楚。
图1是示出了根据本发明构思的示例性实施例的移动设备的框图。
图2是示出了根据本发明构思的示例性实施例的图1的多核处理器的结构的示意图。
图3是示出了根据本发明构思的示例性实施例的图1的移动设备的软件结构的框图。
图4是示出了根据本发明构思的示例性实施例的图3的调度器的框图。
图5是示意性地示出了根据本发明构思的示例性实施例的图4的调度器的操作的流程图。
图6是示意性地示出了根据本发明构思的示例性实施例的线性优先级权重表(LPW表)的示意图。
图7是示出了根据本发明构思的示例性实施例的目标核边界限定器的操作特征的示意图。
图8是示出了根据本发明构思的示例性实施例的选择目标核边界的方法的示意图。
图9和图10是示出了根据本发明构思的示例性实施例的当选择目标核边界时考虑缓存可复用率的特征的示意图。
图11是示出了根据本发明构思的示例性实施例的便携式终端的框图。
具体实施方式
本发明构思的示例性实施例提供了一种用于消除在使用多核处理器的片上系统或应用处理器中的基于优先级的任务调度中发生的低效率的方法。
下面将参照附图详细描述本发明构思的示例性实施例。贯穿本申请,相似的附图标记可以指代相似的元件。
图1是示出了根据本发明构思的示例性实施例的移动设备的示意图。参照图1,移动设备100可以包括片上系统(SoC)、工作存储器130、液晶显示器设备152、触摸面板154以及存储器件170等。SoC可以包括多核处理器110、DRAM控制器120、性能控制器140、用户接口控制器150、存储器接口160以及加速器180。然而,应了解,移动设备100的组件不限于所示组件。例如,移动设备100或SoC还可以包括用于处理图像数据的硬件编解码器、安全块等。
多核处理器110可以执行要在移动设备100中执行的软件(例如应用程序、操作系统(OS)或设备驱动程序)。多核处理器110可以执行加载到工作存储器130的OS。多核处理器110可以执行要在OS上驱动的各种应用程序。多核处理器110可以是同构多核处理器或异构多核处理器。
根据本发明构思的示例性实施例的多核处理器110的多核中的每一个核可以由独立驱动时钟和独立驱动电压操作的多个功率域组成。此外,可以以核为单位控制提供给多核中的每一个核的驱动电压和驱动时钟。在多核中的每一个核中,可以根据每个核的处理负载改变驱动时钟的频率和驱动电压的电平。换言之,可以以动态电压频率调整(以下简称为“DVFS”)的方式控制每一个核,其中动态电压频率调整的方式根据负载的大小增加驱动时钟频率和驱动电压的电平。
具体地,当在根据本发明构思的示例性实施例的多核处理器110中调度一个任务时,可以比较具有不同优先级类的任务。另外,相对低优先级的任务可以在特殊情况下抢占多核处理器110的CPU核。例如,具有公平类的优先级等级的任务可以在具有实时类的优先级等级的任务之前抢占CPU核。可以在OS的内核中执行该调度。
DRAM控制器120提供工作存储器130与SoC之间的接口连接。DRAM控制器120可以在多核处理器110或任何其他知识产权(IP)的请求下访问工作存储器130。例如,DRAM控制器120可以根据多核处理器110的写入请求在工作存储器130中写入数据。备选地,DRAM控制器120可以根据多核处理器110的读取请求从工作存储器130读出数据,并且可以通过数据总线将数据发送到多核处理器110或存储器接口160。
在引导操作期间,可以将应用程序132或OS内核134加载在工作存储器130上。例如,当引导移动设备100时,基于引导序列将存储在存储器件170中的OS镜像174加载到工作存储器130上。OS可以支持移动设备100的全部输入/输出操作。同样,可以将由用户选择或提供基本服务的应用程序132加载到工作存储器130上。另外,可以将工作存储器130用作缓冲存储器,该缓冲存储器存储从诸如相机的图像传感器提供的图像数据。工作存储器130可以是易失性存储器(比如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM))、或者非易失性存储器(比如相变RAM(PRAM)、磁阻RAM(MRAM)、电阻RAM(ReRAM)、铁电RAM(FRAM)、NOR闪存等)。
依照根据本发明构思的示例性实施例的调度方法,处理由应用程序132或OS内核134请求处理的任务。例如,依照根据本发明构思的示例性实施例的调度方法,可以在相同条件下绝对地评估实时类(RT类)任务和公平类任务。此外,可以根据CPU的负载状态、缓存可复用率以及用户的设置来选择将向其指派请求调度任务的多个候选CPU核。因此,不仅取决于优先级而且还考虑CPU核的功耗和性能的任务调度是可以实现的。另外,依照根据本发明构思的示例性实施例的调度方法,针对具有较小负载(即使优先级较高)的任务和具有较大负载(即使优先级较低)的任务可以容易地实现负载均衡。这将参考以下附图来详细描述。
性能控制器140可以根据从OS的内核提供的控制请求来调整SoC的操作参数。例如,性能控制器140可以调整DVFS的水平以改善SoC的性能。备选地,性能控制器140可以在内核的请求下控制多核处理器110的驱动模式,比如大和小big.LITTLE。
用户接口控制器150控制来自用户接口设备的用户输入和去往用户接口设备的用户输出。例如,用户接口控制器150可以显示键盘屏幕,键盘屏幕用于在多核处理器110的控制下将数据输入液晶显示器设备152中。备选地,用户接口控制器150可以控制液晶显示器设备152,使得显示用户请求的数据。用户接口控制器150可以将从诸如触摸面板154的用户输入设备提供的数据解码为用户输入数据。根据用户的需求,需要实时响应的任务逐渐增加。为了满足用户丰富的UI/UX要求,高优先级的任务可能不可避免地增加,并且由较低优先级的任务提供的服务质量可能降低。
近年来,为了满足用户丰富的UI/UX要求,将与触摸面板154相关联的任务的属性指派给实时类(RT类),并且调度与触摸面板154相关联的任务。然而,由于实时类(RT类)任务的数量快速增加,抢占有限CPU资源的竞争是激烈的。在这种情况下,当仅基于优先级调度任务时,具有高优先级的实时类的任务抢占CPU核。由于将具有高优先级(即使利用率较低)的任务指派给任何CPU核,因此可能难以实现负载平衡。在某些情况下,可能不会调度实时类任务,因此可能发生供应不足(starvation)。
存储器接口160可以在多核处理器110的请求下访问存储器件170。换言之,存储器接口160提供SoC与存储器件170之间的接口。例如,由多核处理器110处理的数据通过存储器接口160存储在存储器件170中。作为另一示例,存储在存储器件170中的数据可以通过存储器接口160提供给多核处理器110。
可以将存储器件170作为移动设备100的存储介质提供。存储器件170可以存储用户数据、应用程序172、OS镜像174等。可以使用存储卡(例如多媒体卡(MMC)、嵌入式MMC(eMMC)、安全数字(SD)卡或微型SD卡)来实现存储器件170。存储器件170可以包括具有高存储容量的NAND型闪存。备选地,存储器件170可以包括下一代非易失性存储器,比如PRAM、MRAM、ReRAM、FRAM、或NOR闪存。作为另一示例,存储器件170可以是包括在SoC中的嵌入式存储器。
可以将加速器180作为用于提高多媒体或多媒体数据的处理速度的单独IP提供。例如,可以将加速器180作为用于改善处理文本、音频、静止图像、动画、视频、二维数据或三维数据的性能的IP提供。
系统互连器190是用于在SoC内提供片上网络的系统总线。系统互连器190可以包括例如数据总线、地址总线以及控制总线。数据总线是传输数据的路径。可以将数据总线作为用于访问工作存储器130或存储器件170的路径提供。地址总线提供IP之间的地址交换路径。控制总线提供通过其在IP之间传送控制信号的路径。然而,系统互连器190的配置不限于以上描述,并且系统互连器190还可以包括用于有效管理的仲裁器。
根据以上描述,移动设备100可以根据请求调度任务的优先级和当前CPU核的负载状态、缓存可复用率以及用户的设置来执行更灵活的调度。换言之,依照根据本发明构思的示例性实施例的调度方法,可以防止性能下降、负载不平衡、核未接收调度而引起的供应不足以及功耗增加。
图2是示意性地示出了根据本发明构思的示例性实施例的图1的多核处理器的结构的示意图。参照图2,示意性地示出了包括异构核的多核处理器110。在本发明构思的示例性实施例中,多核处理器110可以包括第一集群111、第二集群113和缓存相干互连器115。
第一集群111提供相对低的处理速度,并且包括具有低功耗的核LCore_1、LCore_2、LCore_3和LCore_4。核LCore_1、LCore_2、LCore_3和LCore_4中的每一个可以执行独立计算并可以独立控制功率。这里,包括在第一集群111中的核LCore_1、LCore_2、LCore_3和LCore_4可以包括在相同的功率域中。换言之,核LCore_1、LCore_2、LCore_3和LCore_4可以接收相同的驱动电压或驱动频率。备选地,核LCore_1、LCore_2、LCore_3和LCore_4可以接收不同电平的驱动电压。换言之,当一个核被供电和操作时,另一个核可以在待机状态、空闲状态或插头拔出状态下被管理。
第二集群113包括核BCore_1、BCore_2、BCore_3和BCore_4,其中每一个核具有相对高的处理速度但具有低功率效率。核BCore_1、BCore_2、BCore_3和BCore_4中的每一个可以执行独立的操作处理。此外,与核LCore_1、LCore_2、LCore_3和LCore_4相比,核BCore_1、BCore_2、BCore_3和BCore_4可以使用高性能处理器实现。
这里,可以将第一集群111的至少一个核和第二集群113的至少一个或多个核一起使用。换言之,为了高性能和功率效率,不是仅选择第一集群111和第二集群113中的一个集群(例如集群切换),而是可以同时驱动第一集群111的核中的至少一个和第二集群113的核中的至少一个。该方法称为异构多处理(以下称为“HMP”)方法。
缓存相干互连器CCI 115支持集群111和113之间的任务迁移。换言之,当去激活第一集群111并激活第二集群113时,可以将第一集群111的缓存数据移动到第二集群113的缓存。另外,可以通过相同的过程执行共享上下文的线程的迁移。将缓存相干互连器115作为用于在第一集群111与第二集群113之间提供数据一致性的结构提供。
图3是示出了根据本发明构思的示例性实施例的图1的移动设备的软件结构的框图。参照图3,可以将加载在工作存储器130中并由多核处理器110驱动的移动设备100的软件分层结构划分为应用程序132和OS内核134。另外,OS内核134还可以包括管理诸如存储器、调制解调器、图像处理设备等各种设备的设备驱动器。
应用程序132可以是作为基本服务驱动的上层软件,或者是应用户请求驱动的上层软件。应用程序132可以包括多个应用程序APP1、APP2、APP3和APP4。应用程序132可以生成用于特定任务的进程或线程。该任务是能够指派给CPU核的处理单元。当用户请求回放视频文件时,可以执行用于播放视频的应用程序(例如视频播放器)。所执行的视频播放器可以生成针对存储器件170的读取请求或写入请求,以播放用户请求的视频文件。这些请求可以构成进程,并且每个进程可以在调度单元中执行任务。
OS内核134是OS的配置,并且在应用程序132与硬件之间执行控制操作。OS内核134可以包括程序、中断、多任务、存储器管理、文件系统和设备驱动程序的执行。在本发明构思中,将仅描述作为OS内核134的一部分提供的调度器136和CPU调控器138。
调度器136将由应用程序132或OS请求调度的任务指派给多核处理器110的每一个核。调度器136可以监控在应用程序132或OS中发生的调度事件。当调度事件发生时,调度器136参考要调度的任务的统计信息或历史来确定有限的核选择边界(下文中称为“LCSB”)。有限的核选择边界LCSB指的是能够最有效地处理请求调度任务的核的范围。换言之,有限的核选择边界LCSB限定了将向其指派请求调度任务的候选核的范围。可以参考请求调度任务Tc的缓存可复用率、CPU核的负载状态、和用户的设置中的至少一个来确定有限的核选择边界LCSB。
调度器136计算有限的核选择边界LCSB中的CPU核的抢占比较指数(PCI)。另外,调度器136使用将公平类任务和实时类任务组合成单个表的线性优先级权重(LPW)。调度器136可以通过将请求调度任务的线性优先级权重LPW与包括在有限的核选择边界LCSB中的核的抢占比较指数PCI进行比较来选择最佳CPU核,例如目标核(TC)。例如,调度器136检测包括在有限的核选择边界LCSB中的核中是否存在抢占比较指数PCI小于请求调度任务Tc的线性优先级权重LPW的CPU核。调度器136可以根据比较结果将请求调度任务指派给所选择的CPU核。
CPU调控器138可以获得OS内核134中的多核处理器110的驱动电压和驱动时钟。可以根据多核处理器110的驱动电压和驱动时钟来确定驱动时钟的频率或驱动电压VDD的电平。然而,应该理解,多核处理器110的驱动电压和驱动时钟不仅限于本文所公开的那些驱动电压和驱动时钟。CPU调控器138可以在OS内核134或调度器136的请求下调整多核处理器110的驱动电压电平和驱动时钟频率。另外,可以存在用于在由OS内核134驱动的CPU调控器138的控制下调整硬件中的多核处理器110的驱动时钟频率或驱动电压电平的配置。例如,根据作为软件的OS内核134的调用改变多核处理器110的驱动时钟和驱动电压或各种配置的性能控制器140可以控制硬件中的多核处理器110的驱动电压和驱动时钟。
以上简要描述了在OS内核134的层中执行的根据本发明构思的示例性实施例的多核处理器的任务调度方法。根据本发明构思的示例性实施例,当发生调度事件时,考虑各种环境以及所指派的优先级来指派核。依据根据本发明构思的示例性实施例的调度器136的特征,具有低CPU利用率(即使优先级较高)的任务也可以以后于具有高CPU利用率(即使优先级较低)的任务的顺序被调度。因此,可以减少当仅基于优先级执行任务调度时发生的各种低效率。
图4是示出了根据本发明构思的示例性实施例的图3的调度器的框图。参照图4,调度器136可以包括公平类任务表131a、实时类任务表131b、线性优先级权重表133、目标核边界限定器135和抢占比较器137。
线性优先级权重表133是用于通过使用单个参考来管理公平类(公平类)任务和实时类(RT类)任务的表。公平类任务表131a是不需要实时处理的任务表。在调度期间,将相对低的优先级值指派给公平类任务表131a中列出的任务。例如,即使任务在后台执行也无关紧要的任务对应于上述任务。实时类任务表131b包括需要实时处理的高优先级的实时类(RT类)任务。例如,实时类(RT类)任务可以是通过用户接口进入的需要及时响应的任务。
通常,在调度期间差异地管理公平类任务和实时类任务。在任何情况下,都不会将高于实时类任务的优先级指派给公平类任务。在本发明构思的示例性实施例中,可能需要将公平类任务和实时类任务进行比较和管理。因此,可以通过单个表中的线性优先级权重表133来管理公平类任务和实时类任务。例如,可以将公平类任务和实时类任务设置为线性优先级权重表133中的新权重。在下文中,可以将新权重称为线性优先级权重LPW。例如,线性优先级权重LPW可以是转换为新指数的值,在新指数中以相反的顺序排列指派给公平类任务和实时类任务的优先级。
目标核边界限定器135选择将处理请求调度任务的最佳候选核。目标核边界限定器135可以考虑预期性能和功耗来选择目标核边界(TCB)。例如,参照请求调度任务Tc的历史,可以根据集群单元、功率域单元或核的利用率来选择候选核。例如,可以根据请求调度任务Tc的负载大小、缓存可复用率或用户预先确定的标准来确定目标核TC的候选者。参考附图,将更详细地描述目标核边界限定器135如何选择目标核边界TCB。
抢占比较器137可以使用线性优先级权重表133中的线性优先级权重LPW来计算目标核边界TCB的每一个CPU核的抢占比较指数PCI。抢占比较器137可以比较目标核边界TCB的CPU核中是否存在小于请求调度任务Tc的线性优先级权重LPW的值。抢占比较器137可以根据比较结果考虑性能和功耗来选择最佳核。
以上简要描述了根据本发明构思的示例性实施例的调度器136的配置。通常,将调度器136作为构成OS内核134的软件提供。根据本发明构思的示例性实施例的调度器136可以包括上述配置作为软件模块。然而,应该理解,调度器136的功能或配置不一定需要被实现为软件模块。
图5是示意性地示出了根据本发明构思的示例性实施例的图4的调度器的操作的流程图。参照图5,当发生调度事件时,调度器136不仅考虑优先级而且考虑当前核的利用率、预期功耗,缓存可复用率等,来选择将执行任务的核(在下文中,称为“目标核”)。
在操作S110中,调度器136(参见图3)可以监控周期性发生的任务的调度事件。这里,为了便于描述,将示意性地描述用于调度一个请求调度任务Tc的过程。
在操作S120中,调度器136可以参考请求调度任务Tc的历史信息或统计信息来确定有限的核选择边界LCSB。有限的核选择边界LCSB是当执行请求调度任务Tc时确保合适水平的性能或合适水平的功率特征的设置。例如,为了首先考虑功耗,有限的核选择边界LCSB可以仅包括能够以低功率驱动的CPU核。另一方面,为了首先考虑性能或CPU利用率,可以在有限的核选择边界LCSB中包括具有高缓存亲和性的核。换言之,调度器136可以参考请求调度任务Tc的缓存可复用率、任务负载以及用户的设置来确定有限的核选择边界LCSB。
在操作S130中,调度器136计算包括在有限的核选择边界LCSB中的CPU核(或候选核)的抢占比较指数(PCI)。抢占比较指数PCI是指示候选核的当前负载状态的新参数。抢占比较指数PCI是基于包括在有限的核选择边界LCSB中的每一个CPU核的线性优先级权重LPW、CPU利用率和CPU容量的优先级参数。换言之,将实时类任务或公平类任务的优先级相互比较,并且有时通过比较抢占比较指数PCI值来将实时类任务或公平类任务的优先级倒置。
例如,可以通过将在相应CPU核中运行的任务的线性优先级权重LPW与相应CPU核的当前利用率相乘的值除以相应CPU核的当前计算容量来确定每一个候选核的抢占比较指数PCI。例如,可以通过以下等式1计算候选核的一个抢占比较指数PCIN。
[等式1]
这里,线性优先级权重LPWN表示在相应CPU核中运行的任务的线性优先级权重LPW。此外,CPU利用率UTILN可以表示相应CPU核的当前利用率,并且CPU容量CAPN可以表示相应CPU核的当前计算容量。
因此,当计算抢占比较指数PCIN时,可以将反映有限的核选择边界LCSB中的候选核的当前负载状态的抢占比较指数PCIN与请求调度任务的线性优先级权重LPW进行比较。这里,应当理解,反映候选核的当前负载状态的抢占比较指数PCIN的计算不限于上述等式1。这是因为在优先考虑性能或功耗的调度中,可以考虑这些参数来计算候选核的抢占比较指数PCIN。
在操作S140中,调度器136使用计算出的每一个候选核的抢占比较指数PCI来确定候选核中是否存在将向其指派请求调度任务Tc的核。例如,调度器136可以将每一个候选核的抢占比较指数PCI与请求调度任务Tc的线性优先级权重LPW_Tc进行比较。当存在包括在有限的核选择边界LCSB中的候选核的抢占比较指数PCI的值小于请求调度任务Tc的线性优先级权重LPW_Tc(S140:“是”)时,过程进行到操作S150。另一方面,当不存在包括在有限的核选择边界LCSB中的核的抢占比较指数PCI的值小于请求调度任务Tc的线性优先级权重LPW_Tc(S140:“否”)时,过程返回操作S120。在操作S120中,可以扩展或改变有限的核选择边界LCSB。
在操作S150中,调度器136确定将向其指派请求调度任务Tc的核。调度器136可以选择具有小于请求调度任务Tc的线性优先级权重LPW_Tc的值的抢占比较指数PCI中的最小值的CPU核。
在操作S160中,由所选择的CPU核执行请求调度任务Tc。
以上已描述了使用根据本发明构思的示例性实施例的抢占比较指数PCI的任务指派方法。抢占比较指数PCI是不仅是考虑将向其指派当前请求调度任务的核的优先级的参数,而且是还考虑核的利用率和核的容量或能力的参数。换言之,即使请求调度任务Tc的优先级相对较低,取决于CPU核的当前负载状态,也可以在具有较高优先级的任务之前在CPU核中执行该请求调度任务Tc。
图6是示意性地示出了根据本发明构思的示例性实施例的线性优先级权重表(LPW表)的示意图。参照图6,可以通过合并公平类任务表131a和实时类任务表131b来生成线性优先级权重表133。
公平类任务表131a包括不需要实时处理的任务。例如,公平类任务(公平类任务)的优先级(Prio)值介于100与139之间。当任何任务接收120的优先级(Prio)值时,在调度时,与向其指派100的优先权值的任何其他任务相比,较低优先级和较小时间片将指派给具有120的优先级(Prio)值的任务。
实时类任务表131b可以对应于从“0”到“99”的优先级(Prio)值。随着任务的优先级值降低,任务需要首先处理。实时类任务始终有权在公平类任务之前执行。换言之,将实时类任务和公平类任务设置为不以相同的标准竞争。
线性优先级权重表133列出具有单个权重属性的公平类任务和实时类任务,以确定公平类任务的优先级和实时类任务的优先级作为连续优先级。可以通过将公平类任务表131a的优先级(Prio)和实时类任务表131b的优先级(Prio)转换为新的线性优先级权重LPW来生成线性优先级权重表133。例如,可以通过倒置优先级(Prio)值来生成线性优先级权重LPW。
在线性优先级权重LPW中,随着权重增加,任务需要首先处理。例如,当实时类任务的优先级(Prio)值是50时,线性优先级权重LPW可以是1100。另一方面,当公平类任务的优先级(Prio)值为100时,线性优先级权重LPW可以是1010。
可以通过生成线性优先级权重表133,将公平类任务和实时类任务在连续线上进行比较。因此,尽管是实时类任务,但是在调度过程中实时类任务可以比公平类任务更晚地被处理。
图7是示出了根据本发明构思的示例性实施例的目标核边界限定器的操作特征的示意图。参照图7,目标核边界限定器135选择将处理请求调度任务Tc的候选核。根据请求调度任务Tc的特征,选择至少一个候选核。另外,由目标核边界限定器135选择的候选核之一将最终被选择作为将执行任务的核。例如,假设多核处理器110包括10个CPU核Core_0至Core_9。
可以将CPU核Core_0至Core_9根据大小、处理速度、处理能力或功率域,分类为集群或组。例如,假设根据功率域,将CPU核Core_0至Core_9分类为多个集群112、114、116和118。目标核边界限定器135可以参考请求调度任务Tc的上下文或其他历史信息来确定目标核边界TCB。此时,可以根据CPU核的当前利用率或负载、缓存可复用率以及用户预先确定的标准来确定目标核边界TCB。
例如,假设在设置中请求调度任务’A’以增加缓存可复用率。然后,可以参考任务ID或上下文选择包括在其中执行任务“A”的父任务的核在内的集群作为目标核边界TCB。例如,当存在已在集群114和集群116中处理了任务“A”的父任务的历史时,目标核边界限定器135可以选择集群114和集群116作为目标核边界TCB。当在已执行父任务的CPU核中执行子任务时,这可以提供更高的缓存亲和性,从而增加缓存命中率。下面将参考附图更详细地描述选择目标核边界TCB以增加缓存亲和性或缓存命中率的方法。
在本发明构思的示例性实施例中,假设已在集群112和集群114中执行了任务“A”的父任务或相关任务,或者任务“A”的父任务或相关任务存在于运行队列中,其中集群112和集群114中的每个集群由具有基本相同频率或性能的核组成。然而,当集群112的核处于睡眠状态并且集群114的核正在执行任务时,就功率效率而言,选择集群114作为目标核边界TCB是有利的。这是因为从睡眠状态唤醒可能消耗相当大的功率。
另外,可以通过各种标准来设置目标核边界TCB。例如,可以应用目标核边界TCB以将特定任务仅指派给用户预先选择的核。
以上简要描述了目标核边界限定器135的示例性操作。然而,目标核边界限定器135的目标核边界TCB的选择标准不限于此。可以通过根据多核处理器110的特征或者根据请求调度任务Tc的特征来应用各种标准以选择目标核边界TCB。
图8是示出了根据本发明构思的示例性实施例的选择目标核边界的方法的示意图。参照图8,当在所选择的目标核边界TCB中不存在与条件匹配的CPU核时,可以改变或扩展目标核边界TCB的范围。换言之,候选核的数量可以增加。
例如,所选择的目标核边界TCB的每一个候选核的抢占比较指数PCI可以大于请求调度任务Tc的线性优先级权重LPW_Tc。在这种情况下,当向候选核指派任务时,就功率或CPU利用率而言,没有任何好处。因此,在这种情况下,可以扩展目标核边界TCB的范围。
在目标核边界TCB的第一选择回路(第一回路)中,假设目标核边界限定器135选择核Core_2、Core_3、Core_4和Core_5作为第一目标核边界TCB1 117a。当核Core_2、Core_3、Core_4和Core_5之一的抢占比较指数PCI小于请求调度任务Tc的线性优先级权重LPW_Tc时,将请求调度任务Tc指派给相应的核。然而,当第一目标核边界117a中的每一个核的抢占比较指数PCI大于任务的线性优先级权重LPW_Tc时,这意味着不存在可选择优先级的核。然后,目标核边界限定器135可以执行第二选择回路(第二回路),以通过扩展核的范围来选择第二目标核边界TCB2 117b。
在第二选择回路(第二回路)中,当Core_2、Core_3、Core_4、Core_5、Core_6和Core_7中存在根据抢占比较指数PCI的比较的最佳核时,可以向相应的核指派请求调度任务。然而,核Core_2、Core_3、Core_4、Core_5、Core_6和Core_7之中可能没有满足要求的核。然后,目标核边界限定器135可以执行最终选择回路(最后一个回路),以通过扩展核的范围来选择第三目标核边界TCB3 117c。
在最终选择回路(最后一个回路)中,当核Core_2、Core_3、Core_4、Core_5、Core_6、Core_7、Core_8和Core_9中存在根据抢占比较指数PCI的比较的最佳核时,可以将请求调度任务Tc指派给相应的核。
以上简要描述了由目标核边界限定器135选择目标核边界TCB的方法。当选择目标核边界TCB时,可以考虑功耗、缓存可复用率和任务的特征来选择候选核以提供最佳性能。
图9和图10是示出了根据本发明构思的示例性实施例的当选择目标核边界时考虑缓存可复用率的特征的示意图。参照图9,CPU核Core_0、Core_1、Core_2和Core_3具有彼此基本相同的性能、大小和处理速度、但属于不同的集群119a和119b。
CPU核Core_0、Core_1、Core_2和Core_3包括分别属于各CPU核的专用缓存PC0、PC1、PC2和PC3。例如,专用缓存PC0、PC1、PC2和PC3可以是L1缓存或L2缓存。另外,集群119a和119b分别包括共享缓存SC0和SC1。
当CPU核Core_0未能在给定运行时间内完全执行任务X时,与任务X相关联的多条数据存在于专用缓存PC0中。此时,当再次执行任务X或相关任务时,专用缓存PC0中的命中率可能增加。
另外,当CPU核Core_3已经执行了任务Y时,与任务Y相关联的多条数据仍然存在于私有缓存PC3和共享缓存SC1中。此时,可以请求调度任务Y或子任务。此外,具有更高优先级的其他任务可能抢占CPU核Core_3。此时,可以将任务Y或子任务指派给与CPU核Core_3共享共享缓存SC1的CPU核Core_2。然后,可以通过共享缓存SC1中留下的缓存数据来保证缓存命中率。
参照图10,假设将任务“A”和任务“B”交替地指派给CPU核Core_3。
假设要任务’A’在时间T0开始在CPU核Core_3中执行,然后在时间T1完成。接下来,继续执行任务’B’。假设任务′B’在时间T2完成。
当在时间T2请求调度任务“A”时,根据本发明构思的示例性实施例的目标核边界限定器135可以选择集群114作为目标核边界TCB以增加缓存可复用率。目标核边界限定器135参考任务“A”的历史信息来选择包括CPU核Core_3的核组。然后,可以将包括在所选择的目标核边界TCB中的CPU核Core_2和Core_3中的一个选择为目标核。在这种情况下,当选择CPU核Core_3时,可以通过专用缓存PC3中存在的缓存数据来保证高缓存可复用率。然而,由于在共享缓存SC1中存在的缓存数据,即使将CPU核Core_2选作次优核,也可以保证缓存可复用率。
图11是示出了根据本发明构思的示例性实施例的便携式终端的框图。参照图11,根据本发明构思的示例性实施例的便携式终端1000包括图像处理单元1100、无线收发器单元1200、音频处理单元1300、图像文件生成单元1400、非易失性存储器件1500、用户接口1600、和控制器1700。
图像处理单元1100可以包括透镜1110、图像传感器1120、图像处理器1130和显示单元1140。无线收发器单元1200包括天线1210、收发器1220和调制器/解调器(调制解调器)1230。音频处理单元1300包括音频处理器1310、麦克风1320和扬声器1330。
在本文中,根据本发明构思的示例性实施例,非易失性存储器件1500可以使用存储卡(例如MMC、eMMC、SD卡或微型SD卡)等来实现。可以使用驱动应用程序、OS等的SoC实现控制器1700。可以在由SoC驱动的OS内核中包括根据本发明构思的示例性实施例的管理任务的调度器和CPU调控器。
因此,内核不仅可以考虑优先级而且可以考虑CPU核的当前负载状态、功耗和缓存可复用率来调度实时类任务和公平类任务。因此,可以增加执行异构多处理(HMP)的应用处理器的功率或处理速度。
在根据本发明构思的示例性实施例的移动设备及其操作方法中,可以最小化由于在多核处理器中的依赖优先级的任务调度中发生的负载失衡而导致的不必要的功耗或性能下降。
尽管已经参考本发明构思的示例性实施例示出和描述了本发明构思,但对本领域普通技术人员将显而易见的是,在不脱离所附权利要求所阐述的本发明构思的精神和范围的情况下,可以对其进行形式和细节上的各种改变和修改。
Claims (18)
1.一种包括多核处理器的片上系统的调度方法,所述调度方法包括:
接收请求调度任务;
将指派给所述请求调度任务的优先级转换为线性优先级权重;
从所述多核处理器的核中选择要向其指派所述请求调度任务的多个候选核;
计算指示所述多个候选核中的每一个候选核的当前负载状态的抢占比较指数;
将所述线性优先级权重与所述多个候选核中的每一个候选核的抢占比较指数进行比较,以生成比较结果;以及
根据所述比较结果将所述请求调度任务指派给所述多个候选核中的一个候选核。
2.根据权利要求1所述的调度方法,其中,在选择所述多个候选核时,参考以下至少一项来选择所述多个候选核:所述多个候选者中的每一个候选核的缓存可复用率、所述多个候选者中的每一个候选核的当前负载状态或用户的设置范围。
3.根据权利要求2所述的调度方法,其中,所述多个候选核包括在其中处理所述请求调度任务或所述请求调度任务的父任务的集群,以增加所述缓存可重用率。
4.根据权利要求3所述的调度方法,其中,所述多个候选核在所述集群中包括所述请求调度任务或所述父任务占用的第一核、以及与所述第一核共享缓存的第二核。
5.根据权利要求1所述的调度方法,还包括:
将所述请求调度任务的优先级映射到线性优先级权重表,以将所述请求调度任务的优先级转换为所述线性优先级权重,而不管是实时类任务的优先级还是公平类任务的优先级。
6.根据权利要求1所述的调度方法,其中,将所述线性优先级权重与所述抢占比较指数进行比较包括:检测在所述多个候选核中是否存在具有小于所述线性优先级权重的抢占比较指数值的核。
7.根据权利要求6所述的调度方法,其中,将所述线性优先级权重与所述抢占比较指数进行比较还包括:当在所述多个候选核中不存在具有小于所述线性优先级权重的抢占比较指数值的核时,改变所述多个候选核的范围。
8.根据权利要求1所述的调度方法,其中,与所述一个候选核相对应的占用比较指数对应于通过将当前在所述一个候选核中运行的任务的线性优先级权重乘以所述一个候选核的利用率而获得的值除以所述一个候选核的操作容量得到的值。
9.一种片上系统,包括:
包括多个核的多核处理器;以及
工作存储器,其上加载有由所述多核处理器驱动的操作系统,
其中,所述操作系统被配置为:
将指派给请求调度的任务的优先级转换为线性优先级权重,以共同管理实时类任务和公平类任务;
根据第一条件选择将向其指派所述任务的多个候选核;
计算指示所述多个候选核中的每一个候选核的当前负载状态的抢占比较指数;以及
通过将计算出的抢占比较指数与所述线性优先级权重进行比较,将所述任务指派给所述多个候选核中的一个候选核。
10.根据权利要求9所述的片上系统,其中,所述第一条件是考虑以下至少一项的条件:所述多个核中的每一个核的缓存可复用率、所述多个核中的每一个核的当前负载状态、或用户的设置范围。
11.根据权利要求10所述的片上系统,其中,当考虑所述缓存可复用率时,在所述多个候选核中包括所述多个核中的在其中处理所述任务或所述任务的父任务的集群。
12.根据权利要求9所述的片上系统,其中,所述操作系统通过将所述任务的优先级映射到线性优先级权重表来将所述任务的优先级转换为所述线性优先级权重。
13.根据权利要求12所述的片上系统,其中,所述线性优先级权重表中的线性优先级权重以所述优先级的相反顺序排列。
14.根据权利要求9所述的片上系统,其中,所述多个候选核中的每一个候选核的抢占比较指数对应于通过将当前在所述一个候选核中运行的任务的线性优先级权重乘以所述一个候选核的利用率而获得的值除以所述一个候选核的操作容量得到的值。
15.一种包括多个中央处理单元CPU核的片上系统的调度方法,所述调度方法包括:
将请求调度的任务的优先级转换为线性优先级权重,而不管是实时类还是公平类;
根据操作条件在所述多个CPU核中选择多个候选核;
计算指示所述多个候选核中的每一个候选核的当前负载状态的抢占比较指数;以及
通过将所述多个候选核中的每一个候选核的抢占比较指数与所述线性优先级权重进行比较,将所述多个候选核中的一个候选核选择为目标核,以指派所述任务。
16.根据权利要求15所述的调度方法,其中,所述操作条件包括所述多个候选核中的每一个候选核的缓存可复用率的提高、功耗的降低、以及由用户选择的核范围。
17.根据权利要求15所述的调度方法,其中,所述抢占比较指数中的每一个抢占比较指数是通过将当前在相应CPU核中运行的任务的线性优先级权重与所述相应CPU核的利用率相乘来计算的。
18.根据权利要求15所述的调度方法,其中,所述抢占比较指数中的每一个抢占比较指数是通过将当前在相应CPU核中运行的任务的线性优先级权重与所述相应CPU核的利用率相乘而获得的值除以所述相应CPU核的操作容量来计算的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180137229A KR102641520B1 (ko) | 2018-11-09 | 2018-11-09 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 |
KR10-2018-0137229 | 2018-11-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176828A true CN111176828A (zh) | 2020-05-19 |
CN111176828B CN111176828B (zh) | 2024-04-05 |
Family
ID=70550564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911085014.7A Active CN111176828B (zh) | 2018-11-09 | 2019-11-07 | 包括多核处理器的片上系统及其任务调度方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11243806B2 (zh) |
KR (1) | KR102641520B1 (zh) |
CN (1) | CN111176828B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168352A (zh) * | 2021-12-30 | 2022-03-11 | 科东(广州)软件科技有限公司 | 任务的多核调度方法、装置、电子设备及存储介质 |
WO2022052580A1 (zh) * | 2020-09-10 | 2022-03-17 | 苏州浪潮智能科技有限公司 | 一种基于bmc监控交换机的方法、系统、设备及介质 |
CN114626056A (zh) * | 2020-12-14 | 2022-06-14 | 现代奥特奥博株式会社 | 在多核结构的电子控制单元中执行的方法及计算装置 |
CN114637594A (zh) * | 2020-12-15 | 2022-06-17 | 上海阵量智能科技有限公司 | 多核处理设备、任务分配方法、装置及存储介质 |
CN115686871A (zh) * | 2022-12-30 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的核心调度方法和装置 |
WO2024160154A1 (zh) * | 2023-01-31 | 2024-08-08 | 维沃移动通信有限公司 | Cpu调度方法、装置、电子设备及可读存储介质 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813521B (zh) * | 2020-07-01 | 2024-12-03 | Oppo广东移动通信有限公司 | 线程调度方法、装置、存储介质及电子设备 |
EP3945425A1 (en) * | 2020-07-30 | 2022-02-02 | Sipearl | A high-performance computing system |
CN112068960B (zh) * | 2020-09-10 | 2024-02-06 | 华云数据控股集团有限公司 | 一种cpu资源分配方法、装置、存储介质及设备 |
CN112346836B (zh) * | 2020-10-28 | 2023-11-21 | 海光信息技术股份有限公司 | 共享计算资源的抢占方法、装置、用户设备及存储介质 |
KR20220079196A (ko) | 2020-12-04 | 2022-06-13 | 삼성전자주식회사 | Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 |
US12112113B2 (en) | 2021-03-05 | 2024-10-08 | Apple Inc. | Complementary die-to-die interface |
US11675722B2 (en) | 2021-04-16 | 2023-06-13 | Apple Inc. | Multiple independent on-chip interconnect |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
CN115033370B (zh) * | 2022-08-09 | 2022-11-18 | 北京得瑞领新科技有限公司 | 存储设备中闪存任务调度方法、装置、存储介质及设备 |
CN115686800B (zh) * | 2022-12-30 | 2023-03-21 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的动态核心调度方法和装置 |
CN117215801B (zh) * | 2023-11-07 | 2024-01-23 | 北京数渡信息科技有限公司 | 一种适用于多核处理器的片上负载性能优化装置 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020042908A1 (en) * | 2000-10-10 | 2002-04-11 | Kiyosi Ito | Compiler parallelizing schedule method |
US20040187120A1 (en) * | 2002-12-16 | 2004-09-23 | Globespan Virata Inc. | System and method for scheduling thread execution |
WO2007104330A1 (en) * | 2006-03-15 | 2007-09-20 | Freescale Semiconductor, Inc. | Task scheduling method and apparatus |
JP2008181312A (ja) * | 2007-01-24 | 2008-08-07 | Seiko Epson Corp | 情報処理装置、情報処理装置の制御方法および制御プログラム |
CN101261592A (zh) * | 2007-03-07 | 2008-09-10 | 国际商业机器公司 | 用于对任务请求进行调度的方法和设备 |
CN101458634A (zh) * | 2008-01-22 | 2009-06-17 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN101673221A (zh) * | 2009-10-22 | 2010-03-17 | 同济大学 | 一种嵌入式片上多处理器的中断处理方法 |
US20120131593A1 (en) * | 2010-11-18 | 2012-05-24 | Fujitsu Limited | System and method for computing workload metadata generation, analysis, and utilization |
CN103415824A (zh) * | 2012-08-30 | 2013-11-27 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
CN103713950A (zh) * | 2012-10-05 | 2014-04-09 | 三星电子株式会社 | 包括多核处理器的计算系统及其负载平衡方法 |
US20140208331A1 (en) * | 2013-01-18 | 2014-07-24 | Nec Laboratories America, Inc. | Methods of processing core selection for applications on manycore processors |
US20150067688A1 (en) * | 2013-08-30 | 2015-03-05 | Fujitsu Limited | Method and apparatus for controlling job schedule |
CN104899089A (zh) * | 2015-05-25 | 2015-09-09 | 常州北大众志网络计算机有限公司 | 一种面向异构多核体系的任务调度方法 |
CN106020972A (zh) * | 2016-05-10 | 2016-10-12 | 广东睿江云计算股份有限公司 | 云主机系统中的cpu调度方法及装置 |
US20180157515A1 (en) * | 2016-12-06 | 2018-06-07 | Microsoft Technology Licensing, Llc | Network processing resource management in computing systems |
CN108139929A (zh) * | 2015-10-12 | 2018-06-08 | 华为技术有限公司 | 用于调度多个任务的任务调度程序和方法 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7441240B2 (en) | 2003-01-07 | 2008-10-21 | Matsushita Electric Industrial Co., Ltd. | Process scheduling apparatus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling |
US8230446B2 (en) | 2007-11-28 | 2012-07-24 | International Business Machines Corporation | Providing a computing system with real-time capabilities |
US8156495B2 (en) * | 2008-01-17 | 2012-04-10 | Oracle America, Inc. | Scheduling threads on processors |
US9207943B2 (en) | 2009-03-17 | 2015-12-08 | Qualcomm Incorporated | Real time multithreaded scheduler and scheduling method |
US8595731B2 (en) * | 2010-02-02 | 2013-11-26 | International Business Machines Corporation | Low overhead dynamic thermal management in many-core cluster architecture |
KR101658035B1 (ko) | 2010-03-12 | 2016-10-04 | 삼성전자주식회사 | 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법 |
CN102812440B (zh) * | 2010-03-24 | 2016-05-04 | 富士通株式会社 | 多核系统以及起动方法 |
US8752058B1 (en) | 2010-05-11 | 2014-06-10 | Vmware, Inc. | Implicit co-scheduling of CPUs |
JP5578713B2 (ja) | 2010-06-28 | 2014-08-27 | ルネサスエレクトロニクス株式会社 | 情報処理装置 |
US8516488B1 (en) | 2010-11-09 | 2013-08-20 | Teradata Us, Inc. | Adjusting a resource estimate in response to progress of execution of a request |
JP5713652B2 (ja) * | 2010-12-13 | 2015-05-07 | キヤノン株式会社 | データ検索装置、方法、及びプログラム |
US8635626B2 (en) * | 2010-12-29 | 2014-01-21 | Sap Ag | Memory-aware scheduling for NUMA architectures |
JP5790758B2 (ja) * | 2011-03-08 | 2015-10-07 | 富士通株式会社 | スケジューリング方法およびスケジューリングシステム |
KR20120131593A (ko) * | 2011-05-26 | 2012-12-05 | 이윤실 | 떼기 쉬운 접착용 테이프 제조방법 및 그 접착용 테이프 |
KR101812583B1 (ko) * | 2011-07-21 | 2018-01-30 | 삼성전자주식회사 | 태스크 할당 장치, 태스크 할당 방법 및 컴퓨터로 읽을 수 있는 저장 매체 |
JP5880564B2 (ja) | 2011-09-20 | 2016-03-09 | 富士通株式会社 | 割込監視装置、およびコンピュータシステム |
US9122286B2 (en) * | 2011-12-01 | 2015-09-01 | Panasonic Intellectual Property Management Co., Ltd. | Integrated circuit apparatus, three-dimensional integrated circuit, three-dimensional processor device, and process scheduler, with configuration taking account of heat |
US9411641B2 (en) | 2012-10-04 | 2016-08-09 | Lawrence J. Dickson | Method and apparatus implemented in processors for real-time scheduling and task organization based on response time order of magnitude |
KR20140082387A (ko) * | 2012-12-24 | 2014-07-02 | 삼성전기주식회사 | 전기 자동차의 구동장치 및 구동방법 |
KR102082859B1 (ko) * | 2013-01-07 | 2020-02-28 | 삼성전자주식회사 | 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법 |
US9342374B2 (en) * | 2013-06-28 | 2016-05-17 | Dell Products, L.P. | Method of scheduling threads for execution on multiple processors within an information handling system |
JP2015022504A (ja) | 2013-07-18 | 2015-02-02 | 富士通株式会社 | 情報処理装置、方法、及びプログラム |
US9858115B2 (en) * | 2013-10-30 | 2018-01-02 | Mediatek Inc. | Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium |
US9250953B2 (en) | 2013-11-12 | 2016-02-02 | Oxide Interactive Llc | Organizing tasks by a hierarchical task scheduler for execution in a multi-threaded processing system |
CN104995603A (zh) * | 2013-11-14 | 2015-10-21 | 联发科技股份有限公司 | 至少部分基于共享相同数据及/或存取相同存储地址的任务分布的任务调度方法以及多核处理器系统中用于分配任务的相关非暂时性计算机可读介质 |
KR20150067688A (ko) * | 2013-12-10 | 2015-06-18 | 주식회사 소디 | 입사 광량과 조리개의 조절이 가능한 화상 인식 장치용 광 조절장치 |
JP2016001417A (ja) | 2014-06-12 | 2016-01-07 | 株式会社日立製作所 | 計算機システム |
US10198192B2 (en) * | 2015-03-31 | 2019-02-05 | Veritas Technologies Llc | Systems and methods for improving quality of service within hybrid storage systems |
US9720836B2 (en) | 2015-05-11 | 2017-08-01 | International Business Machines Corporation | Preemptible-RCU CPU hotplugging while maintaining real-time response |
US20160378168A1 (en) * | 2015-06-26 | 2016-12-29 | Advanced Micro Devices, Inc. | Dynamic power management optimization |
US9811389B2 (en) * | 2015-09-23 | 2017-11-07 | Intel Corporation | Task assignment for processor cores based on a statistical power and frequency model |
US10649810B2 (en) * | 2015-12-28 | 2020-05-12 | Advanced Micro Devices, Inc. | Data driven scheduler on multiple computing cores |
AU2018200643A1 (en) * | 2017-03-09 | 2018-09-27 | Accenture Global Solutions Limited | Smart advisory for distributed and composite testing teams based on production data and analytics |
-
2018
- 2018-11-09 KR KR1020180137229A patent/KR102641520B1/ko active Active
-
2019
- 2019-07-22 US US16/518,159 patent/US11243806B2/en active Active
- 2019-11-07 CN CN201911085014.7A patent/CN111176828B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020042908A1 (en) * | 2000-10-10 | 2002-04-11 | Kiyosi Ito | Compiler parallelizing schedule method |
US20040187120A1 (en) * | 2002-12-16 | 2004-09-23 | Globespan Virata Inc. | System and method for scheduling thread execution |
WO2007104330A1 (en) * | 2006-03-15 | 2007-09-20 | Freescale Semiconductor, Inc. | Task scheduling method and apparatus |
JP2008181312A (ja) * | 2007-01-24 | 2008-08-07 | Seiko Epson Corp | 情報処理装置、情報処理装置の制御方法および制御プログラム |
CN101261592A (zh) * | 2007-03-07 | 2008-09-10 | 国际商业机器公司 | 用于对任务请求进行调度的方法和设备 |
CN101458634A (zh) * | 2008-01-22 | 2009-06-17 | 中兴通讯股份有限公司 | 负载均衡调度方法和装置 |
CN101673221A (zh) * | 2009-10-22 | 2010-03-17 | 同济大学 | 一种嵌入式片上多处理器的中断处理方法 |
US20120131593A1 (en) * | 2010-11-18 | 2012-05-24 | Fujitsu Limited | System and method for computing workload metadata generation, analysis, and utilization |
CN103415824A (zh) * | 2012-08-30 | 2013-11-27 | 华为终端有限公司 | 一种控制中央处理器的方法和装置 |
CN103713950A (zh) * | 2012-10-05 | 2014-04-09 | 三星电子株式会社 | 包括多核处理器的计算系统及其负载平衡方法 |
US20140208331A1 (en) * | 2013-01-18 | 2014-07-24 | Nec Laboratories America, Inc. | Methods of processing core selection for applications on manycore processors |
US20150067688A1 (en) * | 2013-08-30 | 2015-03-05 | Fujitsu Limited | Method and apparatus for controlling job schedule |
CN104899089A (zh) * | 2015-05-25 | 2015-09-09 | 常州北大众志网络计算机有限公司 | 一种面向异构多核体系的任务调度方法 |
CN108139929A (zh) * | 2015-10-12 | 2018-06-08 | 华为技术有限公司 | 用于调度多个任务的任务调度程序和方法 |
CN106020972A (zh) * | 2016-05-10 | 2016-10-12 | 广东睿江云计算股份有限公司 | 云主机系统中的cpu调度方法及装置 |
US20180157515A1 (en) * | 2016-12-06 | 2018-06-07 | Microsoft Technology Licensing, Llc | Network processing resource management in computing systems |
Non-Patent Citations (2)
Title |
---|
SANDEEP DSOUZA 等: "Sleep Scheduling for Energy-Savings in Multi-core Processors", 《2016 28TH EUROMICRO CONFERENCE ON REAL-TIME SYSTEMS (ECRTS)》, pages 226 - 236 * |
刘加海 等: "共享资源约束下多核实时任务分配算法", 《浙江大学学报(工学版)》, pages 113 - 117 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022052580A1 (zh) * | 2020-09-10 | 2022-03-17 | 苏州浪潮智能科技有限公司 | 一种基于bmc监控交换机的方法、系统、设备及介质 |
US11706086B1 (en) | 2020-09-10 | 2023-07-18 | Inspur Suzhou Intelligent Technology Co., Ltd. | Method and system for monitoring switch on basis of BMC, and device and medium |
CN114626056A (zh) * | 2020-12-14 | 2022-06-14 | 现代奥特奥博株式会社 | 在多核结构的电子控制单元中执行的方法及计算装置 |
CN114637594A (zh) * | 2020-12-15 | 2022-06-17 | 上海阵量智能科技有限公司 | 多核处理设备、任务分配方法、装置及存储介质 |
CN114168352A (zh) * | 2021-12-30 | 2022-03-11 | 科东(广州)软件科技有限公司 | 任务的多核调度方法、装置、电子设备及存储介质 |
CN115686871A (zh) * | 2022-12-30 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 用于多核系统的核心调度方法和装置 |
WO2024160154A1 (zh) * | 2023-01-31 | 2024-08-08 | 维沃移动通信有限公司 | Cpu调度方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20200054403A (ko) | 2020-05-20 |
US11243806B2 (en) | 2022-02-08 |
US20200151005A1 (en) | 2020-05-14 |
CN111176828B (zh) | 2024-04-05 |
KR102641520B1 (ko) | 2024-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176828B (zh) | 包括多核处理器的片上系统及其任务调度方法 | |
KR102197874B1 (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법 | |
KR102114453B1 (ko) | 모바일 장치 및 그것의 제어 방법 | |
TWI552076B (zh) | 使用具有客作業系統及虛擬處理器之超管理器之系統及方法 | |
JP6320520B2 (ja) | 多数の優先順キューに対するスレッドの割り当ておよびスケジューリング | |
JP5597196B2 (ja) | プロセス内のスケジューラインスタンス | |
US9411649B2 (en) | Resource allocation method | |
KR102169692B1 (ko) | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법 | |
US20110161637A1 (en) | Apparatus and method for parallel processing | |
KR20110019729A (ko) | 스케줄러 내의 스케줄링 컬렉션 | |
JP2010044784A (ja) | システムにおける要求のスケジューリング | |
US10768684B2 (en) | Reducing power by vacating subsets of CPUs and memory | |
US20220229695A1 (en) | System and method for scheduling in a computing system | |
CN116841751B (zh) | 一种多任务线程池的策略配置方法、装置和存储介质 | |
CN115454640B (zh) | 任务处理系统及自适应任务调度的方法 | |
CN118409705A (zh) | 面向操作系统块存储子系统的实时性保证方法与装置 | |
CN117827423A (zh) | Gpu共享方法、装置、电子设备及存储介质 | |
CN117271058A (zh) | 容器资源调度方法、装置及存储介质 | |
CN119440783A (zh) | 一种芯片系统的调度方法和调度装置 | |
Roussos et al. | Deterministic batch scheduling without static partitioning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |