多核系统和控制多核系统的操作的方法与流程

文档序号:23628429发布日期:2021-01-12 10:42阅读:118来源:国知局
多核系统和控制多核系统的操作的方法与流程

相关申请的交叉引用

本申请要求于2019年7月11日在韩国知识产权局(kipo)提交的韩国专利申请no.10-2019-0083853的优先权,其全部公开内容通过引用合并于此。

示例实施例总体上涉及半导体集成电路,更具体地,涉及多核系统以及控制多核系统的操作的方法。



背景技术:

可以在包括多个处理器或包括具有多个核的处理器的计算机系统上基本同时地执行多个任务。用于执行任务的任务调度方案可以包括循环方案、基于优先级的方案(例如随机多路访问(rma)调度)和基于期限的方案(例如最早期限优先(edf)调度)。可以根据循环方案将可运行任务依次分配给处理器核,或者可以根据基于优先级的任务调度,基于紧急或重要程度来确定要处理的下一个任务。另外,可以像rma调度那样静态地执行任务调度,或者像edf调度那样基于任务的频率和/或期限来动态地执行任务调度。但是,当任务不规则且高度依赖数据时,这些调度方案的效率可能会降低。



技术实现要素:

本发明构思的至少一个示例性实施例可以提供一种多核系统以及一种控制多核系统的操作的方法以进行有效的任务调度。

根据本发明构思的示例性实施例,控制包括多个处理器核的多核系统的操作的方法包括:监视分别分配给所述多个处理器核的任务的任务执行延迟时间;监视所述多个处理器核的核执行延迟时间;以及基于所述任务执行延迟时间和所述核执行延迟时间,控制所述多核系统的操作。

根据本发明构思的示例性实施例,多核系统包括:包括多个处理器核的多核处理器;第一控制逻辑,被配置为监视分别分配给所述多个处理器核的任务的任务执行延迟时间和所述多个处理器核的核执行延迟时间;以及第二控制逻辑,被配置为基于所述任务执行延迟时间和所述核执行延迟时间来控制所述多核系统的操作。

根据本发明构思的示例性实施例,控制包括多个处理器核的多核系统的操作的方法包括:监视分别分配给所述多个处理器核的任务的任务执行延迟时间,所述任务中分配给所述多个处理器核中的给定处理器核的给定任务的所述任务执行延迟时间对应于待机时间,所述待机时间是在将所述给定任务存储在所述给定处理器核的任务队列中之后所述给定任务没有由所述给定处理器核执行的时间;监视所述多个处理器核的核执行延迟时间,所述给定处理器核的所述核执行延迟时间对应于与所述给定处理器核相关联的所述任务执行延迟时间的总和或与所述给定处理器核相关联的所述任务执行延迟时间中的最大任务执行延迟时间;基于分配给每个处理器核的所述任务的所述任务执行延迟时间和每个处理器核的所述核执行延迟时间,确定分配给每个处理器核的所述任务是否发生了任务执行延迟或者每个处理器核是否发生了核执行延迟;以及当确定发生了所述给定任务的所述任务执行延迟或所述给定处理器核的所述核执行延迟时,将分配给所述给定处理器核的所述给定任务重新定位到所述多个处理器核中的另一个处理器核或增加所述给定处理器核的功率水平。

附图说明

根据以下结合附图的详细描述,将更清楚地理解本发明构思的示例性实施例。

图1是示出了根据本发明构思的示例性实施例的多核系统的框图。

图2是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的流程图。

图3是示出了根据本发明构思的示例性实施例的多核系统的框图。

图4是示出了在图3的多核系统中实现的任务调度器的示例实施例的图。

图5是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的流程图。

图6至图9是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的图。

图10是示出了包括在图3的多核系统中的处理器的示例实施例的框图。

图11和图12是示出了根据本发明构思的示例性实施例的在控制多核系统的操作的方法中使用的任务执行延迟时间的示例的图。

图13和图14是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的图。

图15是示出了根据本发明构思的示例性实施例的电子系统的框图。

具体实施方式

在下文中将参考其中示出了本发明构思的一些示例性实施例的附图来更全面地描述本发明构思。在附图中,相似的附图标记始终表示相似的元件。图1是示出了根据本发明构思的示例性实施例的多核系统的框图,并且图2是示出了控制多核系统的操作的方法的流程图。

图1示出了根据本发明构思的示例性实施例的多核系统的示意性配置。参照图1,多核系统1000包括处理器110、任务调度器135和性能控制器pfmc140。多核系统1000可以包括其他组件,后面将参照图3描述多核系统1000的更详细的配置。

多核系统1000可以被实现为可以被包括在各种计算设备中的片上系统1。计算设备可以是以下中的一种:移动电话、智能电话、企业数字助理(eda)、数字照相机、数字摄像机、便携式多媒体播放器(pmp)、个人导航设备或便携式导航设备(pnd)、移动互联网设备(mid)、可穿戴计算机、物联网(iot)设备、万物互联网(ioe)或电子书阅读器。

多核系统1000可以通过接口(例如,接口电路)向主机设备(未示出)发送数据和任务请求以及从主机设备接收数据和任务请求。例如,任务请求可以包括对数据执行操作的请求。例如,接口可以通过并行at附件(pata)总线、串行at附件(sata)总线、小型计算机系统接口(scsi)、通用串行总线(usb)、外围组件互连快速(pcie)等连接到主机设备。

处理器110可以包括多个处理器核c1~c8和分别分配给多个处理器核c1~c8的多个任务队列tq1~tq8。尽管图1示出了八个处理器核c1~c8和八个任务队列,但是本发明构思不限于此。例如,处理器110可以包括少于八个处理器核或多于八个处理器核,并且处理器110可以包括少于八个任务队列或多于八个任务队列。

处理器核c1~c8可以是同构处理器核或异构处理器核。当处理器核c1~c8为同构处理器核时,各核为同一类型。当处理器核c1~c8是异构处理器核时,某些核是不同类型的。

当处理器核c1至c8是异构处理器核时,它们可以被分类为第一集群cl1和第二集群cl2。在处理器核c1~c8中,第一集群cl1可以包括具有第一处理速度的高性能核c1~c4,第二集群cl2可以包括具有比第一处理速度小的第二处理速度的低性能核c5~c8。尽管图1示出了每个集群包括相同数量的处理器核,但是本发明构思不限于此。例如,第一集群cl1可以包括比第二集群cl2更多的处理核,或者第一集群cl1可以包括比第二集群cl2更少的处理核。此外,可以有两个以上的集群。

根据示例性实施例,处理器核c1~c8具有每核动态电压和频率缩放(dvfs)架构。在每核dvfs架构中,处理器核c1~c8可以包括不同的功率域,并且可以将具有不同电平的电压和具有不同频率的时钟信号提供给处理器核c1~c8。可以通过热拔出(hotplug-out)方案来阻止对处理器核c1~c8的供电。换句话说,处理器核c1~c8的一部分可以执行分配的任务,并且对处理器核c1~c8的在空闲状态下的另一部分的供电可以被阻止。相反,当工作负载对于已供电的处理器核来说太重时,可以对在空闲状态下的至少一个处理器核供电以执行任务,这被称为“热插入(hotplug-in)”。

任务调度器135可以包括执行延迟跟踪器edt和控制逻辑ldl。

任务调度器135和pfmc140均可以被实现为硬件、软件或硬件和软件的组合。例如,硬件可以是处理器或包括各种逻辑门的逻辑电路。应当理解,软件可以是在一个或多个计算机可读介质中体现的计算机程序产品,所述一个或多个计算机可读介质具有体现于其上的计算机可读程序代码。计算机可读程序代码可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是任何有形介质,其可以包含或存储由指令执行系统、装置或设备使用或与指令执行系统、装置或设备一起使用的程序。

任务调度器135可以基于任务执行延迟时间和核执行延迟时间,将任务分配或分发给任务队列tq1~tq8,如下面将参考图2所描述。任务队列tq1~tq8中的一个或多个可以实现为处理器核内的硬件(例如,锁存器、缓冲区、移位寄存器等),或可以实现为包括在操作系统(os)内核中的数据结构。

参考图1和图2,执行延迟跟踪器edt监视分别分配给多个处理器核c1~c8的任务的任务执行延迟时间(s100)。

在示例性实施例中,任务执行延迟时间对应于将任务存储在相应处理器核的任务队列中之后该任务未被处理器核执行的待机时间。

在示例性实施例中,如下面将参考图7所述,任务执行延迟时间可以对应于从任务被存储在处理器核的任务队列中的时间点到相应处理器核开始执行任务的开始时间点的开始待机时间。例如,如果在时间0将任务放置在任务队列tq1中,然后处理器核c1在时间100开始处理任务,则任务执行延迟时间将为100。

在示例性实施例中,如后面将参考图11和图12所述,任务执行延迟时间对应于开始待机时间和停顿时间之和,该开始待机时间是从给定任务被存储在给定处理器核的任务队列中的时间点到给定处理器核开始执行给定任务的开始时间点的时间,该停顿时间是给定处理器核在开始时间点之后停止执行给定任务的时间。例如,如果任务在时间0被放置在任务队列tq1中,处理器核c1在时间100开始执行任务,然后处理器c1需要在时间150停止执行任务,直到它在时间300获得对必要资源的访问为止,则开始待机时间是100,停顿时间是150,任务执行延迟时间是250(即,100和150之和=250)。

此外,执行延迟跟踪器edt监视多个处理器核的核执行延迟时间(s200)。

在本发明构思的示例性实施例中,核执行延迟时间对应于与给定的一个处理器核相关联的任务执行延迟时间的总和。可以针对给定时段计算总和。例如,可以根据在给定时间段内发生的与给定的一个处理器核相关联的任务执行延迟时间来计算总和。

在本发明构思的示例性实施例中,核执行延迟时间对应于与给定的一个处理器核相关联的任务执行延迟时间中的最大任务执行延迟时间。

控制逻辑ldl基于任务执行延迟时间和核执行延迟时间来控制多核系统的操作(s300)。

控制逻辑ldl可以基于分配给每个处理器核的任务的任务执行延迟时间和与每个处理器核相关联的核执行延迟时间,确定分配给每个处理器核的任务是否发生了任务执行延迟,或者每个处理器核是否发生了核执行延迟。

在示例性实施例中,控制逻辑ldl基于任务执行延迟时间和核执行延迟时间来执行任务调度,以将可运行任务有效地分配给处理器核c1~c8。例如,当确定一个处理器核已经发生了任务执行延迟或核执行延迟时,控制逻辑ldl可以将分配给相应处理器核的一部分任务重新定位到另一个处理器核。

在示例性实施例中,控制逻辑ldl基于任务执行延迟时间和核执行延迟时间来控制处理器核c1~c8的功率水平。功率水平可以由每个处理器核的操作电压和/或操作频率表示。例如,当确定一个处理器核已经发生了任务执行延迟或核执行延迟时,控制逻辑ldl可以通过提高相应处理器核的功率水平或通过提高相应处理器核的操作频率,来快速消除与相应处理器核相关联的执行延迟状态。

这样,根据本发明构思的至少一个示例性实施例的多核系统和控制多核系统的操作的方法可以通过使用任务执行延迟时间和核执行延迟时间,来减少或消除长期未处理特定任务的任务饿死的情况,即使对于数据依赖性较高的任务,也可以实现高效的任务调度。

图3是示出了根据本发明构思的示例性实施例的多核系统的框图。

参考图3,多核系统1000包括片上系统(soc)、工作存储器130、显示设备(lcd)152、触摸面板154、存储设备170、电源管理集成电路(pmic)等。soc可以包括中央处理单元(cpu)110、dram控制器120(例如,控制电路)、性能控制器140(例如,控制电路)、用户接口控制器(ui控制器(例如,控制电路))150、存储接口160(例如,接口电路)和加速器180(例如,图形加速器)、电源管理单元(pmu)144和时钟管理单元(cmu)146。应当理解,多核系统1000的组件不限于图3所示的组件。例如,多核系统1000也可以包括用于处理图像数据的硬件编解码器或安全块。

处理器110执行用于多核系统1000的软件(例如,应用程序、操作系统(os)和设备驱动器)。处理器110可以执行可以被加载到工作存储器130中的操作系统(os)。处理器110可以执行由操作系统(os)驱动的各种应用程序。处理器110可以被提供为同构多核处理器或异构多核处理器。多核处理器是包括至少两个可独立驱动的处理器(以下称为“核”)的计算组件。每个核可以独立地读取和执行程序指令。

处理器110的每个处理器核可以包括以独立的驱动时钟信号和独立的驱动电压操作的多个功率域。提供给每个处理器核的驱动电压和驱动时钟信号可以以单个核为单位被切断或提供。在下文中,切断从特定核提供给每个功率域的驱动电压和驱动时钟的操作将被称为“热拔出(hotplug-out)”。将驱动电压和驱动时钟提供给特定核的操作将被称为“热插入(hotplug-in)”。另外,提供给每个功率域的驱动时钟信号的频率和驱动电压的电平可以根据每个核的处理负载而变化。例如,随着处理任务所需的时间变长,每个核可以通过动态电压频率缩放(以下称为“dvfs”)来控制,该动态电压频率缩放增加提供给相应功率域的驱动时钟信号的频率或驱动电压的电平。根据本发明构思的示例性实施例,参考通过dvfs调整的处理器110的驱动电压的电平和驱动时钟的频率来执行热插入和热拔出。

操作系统(os)的内核可以以特定时间间隔监视任务队列中的任务数量以及处理器110的驱动电压和驱动时钟信号,以控制处理器110。另外,操作系统(os)的内核可以参考所监视的信息来控制处理器110的热插入和热拔出。

dram控制器120提供工作存储器130与片上系统(soc)之间的接口连接。dram控制器120可以根据处理器110或另一个知识产权(ip)块的请求来访问工作存储器130。ip块可以是逻辑、单元或集成电路布局设计的可重用单元,这是一方的知识产权。例如,dram控制器120可以根据处理器110的写入请求在工作存储器130中写入数据。备选地,dram控制器120可以根据处理器110的读取请求从工作存储器130读取数据,并且通过数据总线将读取的数据发送到处理器110或存储接口160。

在引导操作期间,可以将操作系统(os)或基本应用程序加载在工作存储器130中。例如,在多核系统1000的引导期间,基于引导顺序将存储在存储设备170中的os映像加载到工作存储器130中。多核系统1000的整体输入/输出操作可以由操作系统(os)支持。类似地,可以将应用程序加载到工作存储器130中,以便由用户选择,或者以便提供基本服务。此外,可以将工作存储器130用作缓冲存储器,以存储从诸如相机的图像传感器提供的图像数据。工作存储器130可以是易失性存储器(例如静态随机存取存储器(sram)和动态随机存取存储器(dram))或者非易失性存储器(例如相变随机存取存储器(pram)、磁阻随机存取存储器(mram)、电阻随机存取存储器(reram)、铁电随机存取存储器(fram)、nor闪存)。

性能控制器140可以根据从操作系统(os)的内核提供的控制请求来调整片上系统(soc)的操作参数。例如,性能控制器140可以调整dvfs的水平以增强片上系统(soc)的性能。例如,性能控制器140可以根据内核的请求来控制处理器110的诸如big.little(由armholdings开发的异构计算架构)的多核处理器的驱动模式。在这种情况下,性能控制器140可以包括性能表142以在其中设置驱动电压和驱动时钟信号的频率。性能控制器140可以控制连接到pmic200的pmu144和cmu146,以将确定的驱动电压和确定的驱动时钟信号提供给每个功率域。

用户接口控制器150控制用户接口设备的用户输入和输出。例如,用户接口控制器150可以根据处理器110的控制来显示用于将数据输入lcd152的键盘屏幕。备选地,用户接口控制器150可以控制lcd152显示用户请求的数据。用户接口控制器150可以将从诸如触摸面板154的用户输入装置提供的数据解码为用户输入数据。

存储接口160根据处理器110的请求访问存储设备170。例如,存储接口160提供片上系统(soc)和存储设备170之间的接口连接。例如,由处理器110处理的数据通过存储接口160存储在存储设备170中。备选地,存储在存储设备170中的数据可以通过存储接口160提供给处理器110。

将存储设备170作为多核系统1000的存储介质提供。存储设备170可以存储应用程序、os映像和各种类型的数据。可以将存储设备170作为存储卡(例如,mmc、emmc、sd、microsd等)提供。存储设备170可以包括具有高容量存储能力的nand型闪存。备选地,存储设备170可以包括下一代非易失性存储器,例如pram、mram、reram、fram或nor型闪存。根据本发明构思的示例性实施例,存储设备170可以是结合在片上系统(soc)中的嵌入式存储器。

可以将加速器180作为用于提高多媒体数据的处理速度的单独知识产权(ip)组件提供。例如,可以将加速器180作为用于增强文本、音频、静止图像、动画、视频、二维数据或三维数据的处理性能的知识产权(ip)组件提供。

系统互连器190可以是用于在片上系统(soc)中提供片上网络的系统总线。系统互连器190可以包括,例如,数据总线、地址总线以及控制总线。数据总线是数据传输路径。还可以提供到工作存储器130或存储设备170的存储器访问路径。地址总线提供了知识产权(ip)之间的地址交换路径。控制总线提供了在知识产权(ip)之间传输控制信号的路径。然而,系统互连器190的配置不限于以上描述,并且系统互连器190还可以包括用于有效管理的仲裁装置。

图4是示出了在图3的多核系统中实现的任务调度器的示例实施例的图。

图4示出了图3所示的多核系统1000的软件结构。参考图3,可以将加载到工作存储器130中并由cpu110驱动的多核系统1000的软件层结构划分为应用程序132和内核134。操作系统(os)还可以包括一个或多个设备驱动器,用于管理各种设备,例如存储器、调制解调器和图像处理设备。

应用程序132可以是作为基本服务驱动或由用户请求驱动的软件的上层。可以同时执行多个应用程序app0、app1和app2以提供各种服务。应用程序app0、app1和app2可以在被加载到工作存储器130中之后由cpu110执行。例如,当用户请求播放视频文件时,执行应用程序(例如,视频播放器)以播放视频文件。然后所执行的播放器可以生成针对存储设备170的读取请求或写入请求,以播放用户请求的视频文件。

内核134作为操作系统(os)的组件,可以在应用程序132与硬件之间执行控制操作。内核134可以提供程序执行、中断、多任务和存储器管理,并且可以包括文件系统和设备驱动器。调度器135可以被提供为内核134的一部分。

调度器135监视和管理每个处理器核的任务队列。当同时执行多个任务时,任务队列是活动任务的队列。例如,与其他任务相比,存在于任务队列中的任务可以由处理器110快速处理。调度器135可以参考加载到任务队列中的任务信息来确定后续处理。例如,调度器135根据任务队列的值来确定cpu资源的优先级。在linux内核中,多个任务队列分别对应于多个处理器核。

调度器135可以将分别与任务队列相对应的任务分别分配给相应的核。加载到任务队列中并由处理器110执行的任务称为可运行任务。

根据本发明构思的示例性实施例,调度器135包括执行延迟跟踪器edt和控制逻辑ldl。执行延迟跟踪器edt也可以称为控制逻辑或由控制逻辑(例如,第二控制逻辑)实现。

执行延迟跟踪器edt可以监视分别分配给多个处理器核的任务的任务执行延迟时间和多个处理器核的核执行延迟时间。控制逻辑ldl可以基于任务执行延迟时间和核执行延迟时间来控制多核系统的操作。

图5是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的流程图。

参考图1、图4和图5,任务调度器135的执行延迟跟踪器edt监视分别分配给多个处理器核c1~c8的任务的任务执行延迟时间ttd和多个处理器核c1~c8的核执行延迟时间tcd(s10)。

任务调度器135的控制逻辑ldl基于任务执行延迟时间ttd和核执行延迟时间tcd,确定分配给每个处理器核的任务是否发生了任务执行延迟texed(s20)。

当确定给定的一个处理器核发生了任务执行延迟texed时(s20:是),控制逻辑ldl将分配给该给定的一个处理器核的一部分任务重新定位到另一个处理器核(s30)。

当确定未发生任务执行延迟texed时(s20:否),控制逻辑ldl基于任务执行延迟时间ttd和核执行延迟时间tcd,确定关于分配给每个处理器核的任务是否发生了核执行延迟cexed(s40)。

当确定发生了核执行延迟cexed时(s40:是),控制逻辑ldl增加(提高)发生了核执行延迟cexed的每个处理器核的功率水平(s50)。在替代实施例中,当确定发生了核执行延迟cexed时(s40:是),控制逻辑ldl提高发生了核执行延迟cexed的每个处理器核的操作频率。

当确定没有发生核执行延迟cexed时(s40:否),控制逻辑ldl保持先前的调度周期和功率水平。

根据本发明构思的示例性实施例,可以监视各个任务的任务执行延迟时间和各个处理器核的核执行延迟时间,并且可以管理任务执行延迟的程度。根据任务执行延迟的程度,可以将任务有效地分发到处理器核和/或可以控制处理能力或功率水平,以优化性能和资源利用。

任务调度可以基于先前任务调度的正反馈。正反馈表示任务正常调度时的处理时间或利用率。

相反,根据本发明构思的至少一个实施例的任务调度是基于负反馈的。在示例性实施例中,负反馈表示当没有正常调度任务时的待机时间或机会成本。

基于正反馈的任务调度在大多数情况下可以确保所需的性能,但是根据任务特征和系统的操作环境,可能会导致特定任务的饿死或用户体验下降。本发明构思的至少一个示例性实施例可以使用这样的负反馈来最小化任务的执行延迟和资源利用。

这样,根据本发明构思的至少一个示例性实施例的多核系统和控制多核系统的操作的方法可以通过使用任务执行延迟时间和核执行延迟时间,来减少或消除长期未处理特定任务的任务饿死的情况,即使对于数据依赖性较高的任务,也可以实现高效的任务调度。

图6至图9是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的图。

图6示出了不使用根据本发明构思设计的方法而执行的任务调度的示例。例如,第一任务a、第二任务b和第三任务c可以交互地操作,并且第四任务d可以具有比第一任务a、第二任务b和第三任务c更高的优先级。

参考图6,第一任务a、第二任务b、第三任务c和第四任务d根据相同时间间隔的调度周期被周期性地分配给第一处理器核c1并由其进行处理。图6示出了第一至第五调度周期psch1~psch5的分配给第一处理器核c1的任务和任务执行顺序的示例。

在第一调度周期psch1中,由于第一任务a、第二任务b和第三任务c的执行时间短于第一调度周期psch1,因此可以成功执行任务,并且第二调度周期psch2的任务调度可以正常执行。

如果在第二调度周期psch2中将第四任务d另外分配给第一处理器核c1,则第一任务a、第二任务b、第三任务c和第四任务d的执行时间比第二调度周期psch2长,由于任务执行延迟或核执行延迟,任务执行可能不会成功。

结果,控制逻辑ldl针对第三调度周期psch3不执行任务调度。如果维持先前的调度,则将在第四调度周期psch4和第五调度周期psch5期间重复这种低效的任务调度。

图7、图8和图9示出了使用根据本发明构思的示例性实施例的方法执行任务调度的示例。例如,第一任务a、第二任务b和第三任务c可以交互地操作,并且第四任务d可以具有比第一任务a、第二任务b和第三任务c更高的优先级。

参考图7,第一任务a、第二任务b、第三任务c和第四任务d可以根据相同时间间隔的调度周期被周期性地分配给第一处理器核c1并由其进行处理。图6示出了第一至第五调度周期psch1~psch5的分配给第一处理器核c1的任务和任务执行顺序的示例。

任务调度器135的执行延迟跟踪器edt监视分别分配给多个处理器核c1~c8的任务的任务执行延迟时间ttdij。在这里,i是与a、b、c或d对应的任务的索引,而j是与1、2、3、4或5相对应的调度周期的索引。

与给定处理器核的任务相关联的任务执行延迟时间ttdij可以对应于待机时间,该待机时间是在将任务存储在给定处理器核的任务队列中之后该任务没有由该给定处理器核执行的时间。

在一个示例性实施例中,如图7所示,执行延迟跟踪器edt可以提供开始待机时间作为每个任务执行延迟时间ttdij,该开始待机时间是在将任务存储在相应处理器核的任务队列中之后任务未由相应处理器核执行的时间。在示例性实施例中,当不执行任务调度时不计算任务执行延迟时间。

在本发明构思的示例性实施例中,执行延迟跟踪器edt可以提供分配给每个处理器核的任务执行延迟时间的总和作为每个核执行延迟时间。在图7的示例中,执行延迟跟踪器edt可以提供第一调度周期psch1中的(ttda1+ttdb1+ttdc1)、第二调度周期psch2中的(ttda2+ttdb2+ttdc2+ttdd2)、第四调度周期psch4中的(ttda4+ttdb4+ttdc4+ttdd4)、以及第五调度周期psch5中的(ttda5+ttdb5+ttdc5+ttdd5)作为第一处理器核c1的核执行延迟时间。

在本发明构思的示例性实施例中,执行延迟跟踪器edt可以提供分配给每个处理器核的任务执行延迟时间中的最大任务执行延迟时间作为每个核执行延迟时间。在图7的示例中,执行延迟跟踪器edt可以提供第一调度周期psch1中的ttdc1、第二调度周期psch2中的ttdc2、第四调度周期psch4中的ttdc4、以及第五调度周期psch5中的ttdc5作为第一处理器核c1的核执行延迟时间。

回到图7,在第一调度周期psch1中,由于第一任务a、第二任务b和第三任务c的执行时间短于第一调度周期psch1,因此可以成功地执行任务,并且第二调度周期psch2中的任务调度可以正常执行。

如果在第二调度周期psch2中将第四任务d另外分配给第一处理器核c1,则第一任务a、第二任务b、第三任务c和第四任务d的执行时间比第二调度周期psch2长,由于任务执行延迟或核执行延迟,任务执行可能不会成功。结果,控制逻辑ldl针对第三调度周期psch3不执行任务调度。

在这种情况下,根据本发明构思的示例性实施例,任务调度器135的控制逻辑ldl确定是否发生了任务执行延迟或核执行延迟,然后增加(提高)处理器核的功率水平。

图7示出了提高功率水平使得例如在第四调度周期psch4中第一处理器核c1的操作频率从第一频率fr1增加到第二频率fr2。任务的执行时间可以由于频率增加而被缩短,并且在第四调度周期psch4和第五调度周期psch5期间任务执行可以成功。例如,由于操作频率的增加,可以在第四调度周期psch4和第五调度周期psch5内全部成功地执行第一任务a、第二任务b、第三任务c和第四任务d。这样,可以根据示例实施例执行有效的任务调度。

参考图8,第一任务a、第二任务b、第三任务c和第四任务d根据相同时间间隔的调度周期被周期性地分配给第一处理器核c1并由其进行处理。图6示出了第一至第五调度周期psch1~psch5的分配给第一处理器核c1和第二处理器核c2的任务以及任务执行顺序的示例。

在下文中,与图7相关的重复描述被省略。

再次参考图8,在第一调度周期psch1中,由于第一任务a、第二任务b和第三任务c的执行时间短于第一调度周期psch1,因此可以成功地执行任务,并且第二调度周期psch2中的任务调度可以正常执行。

如果在第二调度周期psch2中将第四任务d另外分配给第一处理器核c1,则第一任务a、第二任务b、第三任务c和第四任务d的执行时间比第二调度周期psch2长,由于任务执行延迟或核执行延迟,任务执行可能不会成功。

在这种情况下,根据本发明构思的示例性实施例,任务调度器135的控制逻辑ldl确定分配给处理器核中的给定处理器核的给定任务是否发生了任务执行延迟或核执行延迟,然后如果发生了任务执行延迟或核执行延迟,则将分配给给定处理器核的给定任务重新定位到另一个处理器核。

图8示出了重新定位任务,使得在第四调度周期psch4中第一任务a、第二任务b和第三任务c被保持分配给第一处理器核c1,并且第四任务d被重新定位以分配给第二处理器核c2。

这样,由于任务的这种重新定位,在第四调度周期psch4和第五调度周期psch5期间任务执行可以成功,并且可以根据示例实施例执行有效的任务调度。

控制逻辑ldl可以基于任务执行延迟时间或核执行延迟时间的变化来控制多核系统的任务调度周期或功率水平。例如,当通过添加第四任务d将第一任务a、第二任务b和第三任务c的任务执行时间大大增加到超过允许的程度时,控制逻辑ldl可以将第四任务d重定位到另一个处理器核。

参考图9,第一任务a、第二任务b、第三任务c和第四任务d根据相同时间间隔的调度周期被周期性地分配给第一处理器核c1并由其进行处理。图6示出了第一至第五调度周期psch1~psch5的分配给第一处理器核c1的任务和任务执行顺序的示例。

在下文中,与图7相关的重复描述被省略。

再次参考图9,在第一调度周期psch1中,由于第一任务a、第二任务b和第三任务c的执行时间短于第一调度周期psch1,因此可以成功地执行任务,并且第二调度周期psch2中的任务调度可以正常执行。

如果在第二调度周期psch2中将第四任务d另外分配给第一处理器核c1,则第一任务a、第二任务b、第三任务c和第四任务d的执行时间比第二调度周期psch2长,由于任务执行延迟或核执行延迟,任务执行可能不会成功。

在这种情况下,根据本发明构思的示例性实施例,任务调度器135的控制逻辑ldl确定每个处理器核是否发生了任务执行延迟或核执行延迟,然后对于发生了任务执行延迟或核执行延迟的处理器核,增加相应处理器核的调度周期。

图9示出了增加调度周期,使得第四调度周期psch4’增加到比先前的调度周期psch1~psch4更长。当任务的延迟要求水平相对较低时,可以采用这些实施例。

这样,由于调度周期的这种增加,在第四调度周期psch4和第五调度周期psch5期间任务执行可以成功,并且可以根据示例实施例执行有效的任务调度。例如,如果调度周期先前是第一持续时间,并且在给定的一个调度周期(例如,psch2)期间发生了任务执行延迟或核执行延迟,则可以将调度周期增加到比第一持续时间大的第二持续时间。在示例性实施例中,发现了延迟的调度周期(例如,psch2)之后的调度周期(例如,psch3)被跳过,并且将该增加应用于下一个调度周期(例如,psch4′)以及在下一个调度周期(例如,psch5′)之后发生的那些周期。例如,第一持续时间的第四调度周期psch4被增加到第二持续时间的第四调度周期psch4’,并且第一持续时间的第五调度周期psch5被增加到第二持续时间的第五调度周期psch5’。

图10是示出了包括在图3的多核系统中的处理器的示例实施例的框图。

参考图10,处理器111可以包括例如四个处理器核c1~c4以及由处理器核c1~c4使用和共享的公共电路112。公共电路112可以包括一个或多个公共资源crs1和crs2。

处理器核c1~c4可以分别包括缓冲器buff,以存储输入数据、在处理期间生成的中间数据以及处理结果数据。

当一个处理器核需要使用公共资源(例如,crs1)而另一处理器核正在使用相同的公共资源时,这个处理器核将处于待机状态(例如,处于空闲状态)直到另一个处理器核停止使用该公共资源或这个处理器可以访问该公共资源。结果,即使在这个处理器核中没有执行其他任务,这个处理器核也不执行需要该公共资源的任务。已经开始的任务待机的时间可以称为停顿时间。例如,给定处理器核可以继续执行给定任务的指令,直到遇到需要无法访问的资源的指令,然后给定处理器核可以保持空闲(停顿),直到获得对资源的访问。

图11和图12是示出了根据本发明构思的示例性实施例的在控制多核系统的操作的方法中使用的任务执行延迟时间的示例的图。

图11和图12示出了反映参考图10所述的停顿时间的任务执行延迟时间。

在一些示例实施例中,任务调度器135的执行延迟跟踪器edt可以提供开始待机时间和停顿时间之和作为任务执行延迟时间ttdij,其中该开始待机时间是从给定任务被存储在给定处理器核的任务队列中的时间点到给定处理器核开始执行给定任务的开始时间点的时间,该停顿时间是给定处理器核在开始时间点之后停止执行给定任务的时间。在这里,i是与a或b相对应的任务的索引,并且j是图11的示例中与1或2相对应的调度周期的索引。

在第一调度周期psch1中,如参考图7所述,执行延迟跟踪器edt可以提供开始待机时间作为任务执行延迟时间,该开始待机时间是从给定任务被存储在给定处理器核的任务队列中的时间点到给定处理器核开始执行给定任务的开始时间点的时间。

在第二调度周期psch2中,已经发生了停顿时间tstll,并且执行延迟跟踪器edt可以提供开始待机时间和停顿时间的总和作为任务执行延迟时间。

结果,在第二调度周期psch2中,在图11中可以提供ttdb2作为第二任务b的任务执行延迟时间,并且在图12中可以提供(ttdb21+ttdb22)作为第二任务b的任务执行延迟时间。

图13和图14是示出了根据本发明构思的示例性实施例的控制多核系统的操作的方法的图。

参考图13,在第一调度周期psch1中,由于第一任务a、第二任务b、第三任务c和第四任务d的执行时间长于第一调度周期psch1,因此任务执行可能由于任务执行延迟或核执行延迟而失败。结果,控制逻辑ldl针对第二调度周期psch2不执行任务调度。

在这种情况下,根据示例性实施例,任务调度器135的控制逻辑ldl确定是否发生了任务执行延迟或核执行延迟,然后将分配给每个处理器核的任务基于任务的延迟要求水平划分为紧急任务组和正常任务组。当确定一个或多个处理器核发生了任务执行延迟或核执行延迟时,控制逻辑ldl可以将紧急任务组和正常任务组重新定位到不同的处理器核。

图13示出了第一任务a、第二任务b和第四任务d被包括在正常任务组中而第三任务c被包括在紧急任务组中的示例。在这种情况下,将正常任务组a、b和d分配给第一处理器核c1,将紧急任务组d分配给第二处理器核c2。即使在第一处理器核c1中未正常执行任务调度,也不会出现严重问题,因为低延迟要求水平的任务a、b和d被分配给了第一处理器核c1。

在如参考图13所述重新定位正常任务组a、b和d以及紧急任务组d以将它们分配给不同的处理器核时,控制逻辑ldl还可增加不同处理器核中的至少一个处理器核的调度周期。例如,第一处理器核c1的第三调度周期psch3’可以增加到比先前的调度周期psch1和psch2更长。当任务的延迟要求水平相对较低时,可以采用这些实施例。

图15是示出了根据本发明构思的示例性实施例的电子系统的框图。

参考图15,电子系统包括控制器1210(例如,控制电路)、电源1220(例如,电源设备)、存储设备1230(例如,存储设备)、存储器1240(例如,存储设备)、i/o端口1250、扩展卡1260、网络设备1270和显示器1280。根据示例性实施例,电子系统还可包括相机模块1290。

控制器1210可以控制元件1220至1280中的每一个的操作。电源1220可以将操作电压提供给元件1210和1230至1280中的至少一个。存储设备1230可以被实现为硬盘驱动器(hdd)或ssd。存储器1240可以被实现为易失性或非易失性存储器。i/o端口1250可以将数据发送到电子系统或者将从电子系统输出的数据发送到外部设备。例如,i/o端口1250可以包括用于与诸如计算机鼠标之类的指针设备连接的端口、用于与打印机连接的端口以及用于与通用串行总线(usb)驱动器连接的端口。

扩展卡1260可以被实现为安全数字(sd)卡或mmc。扩展卡1260可以是订户身份模块(sim)卡或通用sim(usim)卡。

网络设备1270使电子系统能够与有线或无线网络连接。显示器1280显示从存储设备1230、存储器1240、i/o端口1250、扩展卡1260或网络设备1270输出的数据。

相机模块1290是可以将光学图像转换成电子图像的模块。因此,从相机模块1290输出的电子图像可以被存储在存储设备1230、存储器1240或扩展卡1260中。另外,可以通过显示器1280显示从相机模块1290输出的电子图像。例如,相机模块1290可以包括相机。

控制器1210可以是如上所述的多核系统。例如,控制器1210可以包括图1中的处理器110和任务调度器135。根据本发明构思的示例性实施例,控制器1210包括如上所述的执行延迟跟踪器edt和控制逻辑ldl,以使用任务执行延迟时间和核执行延迟时间来执行基于负反馈的任务调度。

这样,根据本发明构思的至少一个示例性实施例的多核系统和控制多核系统的操作的方法可以通过使用任务执行延迟时间和核执行延迟时间,来减少或消除长期未处理特定任务的任务饿死的情况,即使对于数据依赖性较高的任务,也可以实现高效的任务调度。

本发明构思可以应用于需要有效的多处理的各种电子设备和系统。例如,本发明构思的实施例可以应用于各种系统,诸如,存储卡、固态驱动器(ssd)、嵌入式多媒体卡(emmc)、通用闪存(ufs)、移动电话、智能电话、个人数字助手(pda)、便携式多媒体播放器(pmp)、数字相机、录像机、个人计算机(pc)、服务器计算机、工作站、膝上型计算机、数字tv、机顶盒、便携式游戏机、导航系统、可穿戴设备、物联网(iot)设备、万物网(ioe)设备、电子书阅读器、虚拟现实(vr)设备、增强现实(ar)设备等。

前述内容是对示例实施例的说明,而不应被解释为对其的限制。尽管已经描述了一些示例性实施例,但本领域技术人员将容易地理解,可以在这些示例性实施例中进行各种修改,而本质上不脱离本发明构思。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1