多核多中央处理器的执行线程分配方法

文档序号:6560747阅读:224来源:国知局
专利名称:多核多中央处理器的执行线程分配方法
技术领域
本发明涉及处理器的执行线程调度处理方法,特别是涉及一种在多核多中央处理器(Central processing unit, CPU)的架构下所提出的执行线程分配旅。
背景技术
目前,面对快速增长的串流媒体信息和网络应用的全球化趋势,企业和消 费者要求计算机处理器提供更多的便利、更明显的优势,因此采用多核中央处 理器(Central processing unit, CPU)的各种服务器应运而生。多核中央处 理器是指在单中央处理器的基板上拥有两个以上处理器核心的中央处理器, 为主要针对专业用户或家庭多媒体用户的新-代计算机中央处理单元。并且, 随着科技的发展还出现了具有两个或以上多核中央处理器的多核多中央处理 器系统。由于多核中央处理器将一个任务分为几个较小部分,并由多个处理器 核心同时处理,即充分利用多个核心中的所有可执行单元,让可执行单元的执 行线程被同时平行调度执行。因此,多核处理技术能够在多媒体应用、多任务 应用方面发挥优势,大幅提高计算机运行速度及处理器的性能。然而由于目前的并行处理技术不够完善,因此在公知技术的计算机多核多 执行线程运行的情况下可能会导致以下错误例如多核中央处理器中的两个执 行线程潜在的以不可预知的顺序请求同一存储器地址,即资源竞争、 -个执行 线程等待不能发生的事件、执行线程掌握使用权但却异常终止、或者是陷入混 乱的执行线程运行等等。在上述问题中,"资源竞争"问题尤为经常发生。如果应用程序中的所有 执行线程都需要使用到相同的资源,那么对此资源的竞争可能会使得其它未获 得资源的执行线程花费其大部份时间在作休眠等待。而且"资源竞争"还可能 导致发生过多的上卜文转换,进而会引起应用程序占用系统核心中相当比例的 处理时间,或者甚至根本没有运行代码。如果是在多核中央处理器的系统匕外的处理器可能会结束当前闲置,等待共享数据。有时使用者会发现软件在双核系统上运行的应用实际上速度更慢,这就是由!:述 问题造成的。这种情况在一些多核多中央处理器的计算机上进行软硬件设备的执行线 程运行测试时,公知技术的测试(Diagnostic)项目采用平台调度测试项执行 线程的方式进行测试,因此会出现一些在单核中央处理器下不会出现的问题。 这胖问题是由于单 一执行线程在运行时由不同中央处理器轮流调度其时间片 不能同步或不能按设计的思路顺序调用而造成的。在测试中,公知测试(Diagnostic)平台提供了将整个进程指定到某单一 中央处理器去运行的功能,但这样的处理只能尽量减少资源竞争等问题的发 生,而且这样的处理会导致测试时其它中央处理器没有承受压力,因此并不是 一种好的解决方案。特别是在- -些应用场合中,如测试(Diagnostic),通常因为测试项H 的特性或者是硬设备的特性,使得在同一时间仅允许一个测试执行线程对特定 硬设备或者同一资源进行使用,这个时候就会容易发生多个执行线程等待请求 的情况了。不仅多核多中央处理器的压力测试中存在以上问题,在正常的多核 多中央处理器的计算机系统软件调用上也同样存在。发明内容本发明的目的在于提供一种多核多中央处理器的执行线程分配方法,应用 于多个多核中央处理器的执行线程调用中,此方法不仅能够避免多核多中央处 理器的软件层的并行处理中存在资源冲突隐忧,还可以平均分配各个中央处理 器的压力,进而提高各个多核中央处理器调用的工作效率,加快多核中央处理 器系统的运行的速度。为了实现上述目的,本发明提供了一种多核多中央处理器的执行线程分配方法,应用于多个多核中央处理器的执行线程调用中,此方法包含以下歩骤 建立各个执行项与其原始码的对应关系列表,以反映各执行项在一软件层的潜在资源竞争;在启动各执行项的执行线程的过程中,生成各执行项与其执行线 程识别码的对应关系列表;依据执行项与其原始码的对应关系列表及执行项与 其执行线程识别码的对应关系列表,以分配执行线程为多个分组;以及依次指
定执行线程的多个分组至多个多核中央处理器的单一执行核心来运行,以平均 分配多个多核中央处理器的执行线程调用。其中依次指定执行线程的多个分组至多个多核中央处理器的单一执行核 心的步骤还包含有下列步骤依次指定多个分组中属于同一执行线程分组的执 行线程至多个多核中央处理器的同一个中央处理器的单一执行核心中;以及依 照多个多核中央处理器的执行核心的压力平均,灵活分配多个分组中仅包含单 一执行线程的分组至多个多核中央处理器的单一执行核心中。此外,本发明的多核多中央处理器的执行线程分配方法,还包含为各执行 项的特定执行项提供-一潜在资源冲突接口的步骤,以标识特定执行项的潜在资 源冲突类型。较佳地,还包含在执行项与其原始码的对应关系列表中对应增加 一优先指定列表的歩骤,以标识各执行项的执行线程分组优先指定类型。因此, 在分配执行线程时依照潜在资源冲突类型将用户指定存在潜在资源冲突的特 定执行项分为-'组;以及依照优先指定类型将用户优先指定的执行项执行线程 单独分组。当各执行项的运行时间稳定时,还包含在执行项与其原始码的对应关系列 表与执行项与其执行线程标示符的对应关系列表的记录内添加一时间参数的步骤。本发明的多核多中央处理器的执行线程分配方法通过依照反映执行项在 软件层的潜在资源竞争的对应关系列表,对调用的执行线程进行分配,将存在 软件层资源竞争的各执行线程划分为同一执行线程组内,因此可以避免多核中 央处理器的执行核心之间及多个中央处理器之间的资源冲突问题。此外,通过 将各个分组依次分配至多个多核中央处理器的各个单--执行核心来运行,进而 可以平均各个中央处理器执行核心的压力,提高系统的运行速度及效率。在应用本发明的执行线程分配方法于公知技术的测试(Diagnostic)项f j 测试时,可以解决公知测试(Diagnostic)项目在多核多中央处理器上无法正 常测试的问题,通过平均分配各中央处理器的压力来提高测试的效率。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1A与图1B为本发明的多核多中央处理器的执行线程分配方法的步骤流 程图;图2为本发明一实施例的执行线程分组示意图; 图3为本发明的此实施例的执行线程分组图表;以及 图4为本发明结合用户指定的执行线程分组图表。 其中,附图标记1第 -屮央处理器2第二中央处理器10第 一执行核心12第二执行核心14第执行核心16第二执行核心18系统平台20执行项与其原始码的对应关系列表22执行项与其执行线程识别码的对应关系列表24执行线程分组图表26结合指定潜在资源冲突所得的执行线程分组图表歩骤101建立各个执行项与其原始码的对应关系列表,以反映各执行项在一软件层的潜在资源竞争步骤102用户是否优先指定?歩骤103在执行项与原始码的对应关系列表中增加用户优先指定条目, 标识用户优先指定类型歩骤1(M用户是否设置潜在资源冲突?步骤105在执行项与原始码的对应关系列表中增加潜在资源冲突条目, 标识用户指定的潜在资源冲突类型步骤106在启动各执行项的执行线程的过程中,生成各执行项与其执行 线程识别码的对应关系列表歩骤107依据执行项与其原始码的对应关系列表及执行项与其执行线 程识别码的对应关系列表进行执行线程分组步骤108用户是否优先指定?歩骤i09根据用户的优先指定,优先分配具有优先指定权的执行线程组 歩骤110依次指定问一执行线程组到同一个中央处理器的单一执行核 心去运行步骤111灵活分配仅包含单一执行线程的执行线程组至各个中央处理 器的执行核心屮具体实施方式
当多个屮央处理器的多个执行核心需要调用上层模块即软件层的模块时, 公知技术通常采取执行线程调度的方式来进行调用,因此可以考虑将每个执行 线程均指定给单-屮央处理器上的单-执行核心来运行。例如结合图2所示的 实施例,较为简单的是依次将启动的执行线程分配给第"中央处理器1的第一 执行核心IO、第-一屮央处理器l的第二执行核心12、第二中央处理器2的第 一执行核心14及第二中央处理器2的第二执行核心16。但是这样的方案可能 存在个动态链接库(Dynamic Link Libraries, DLL)提供了多个可以单独 调用的执行线程的情况,而这些执行线程之间会共享存储器或整体变量,如果 这些执行线程分配在不同的中央处理器上运行,则可能造成对共享存储器或整 体变量请求出错的问题。因此,本发明的多核多中央处理器的执行线程分配方法在基于软件层调用 执行线程时,依照不同的调用模块来划分执行线程的调度分配,并遵循一定的 调度策略,下面将结合图1A、图1B与图2对本发明的分配方法作详细说明。现在请参考图IA、图1B与图2,图1A、图1B为本发明的多核多中央处 理器的执行线程分配方法的步骤流程图,以及图2为本发明 -实施例的执行线 程分组示意阁。由于软件层的资源竞争一般体现在同一个执行项启动的N个执行线程之 间;同一原始码的不同执行项启动的不同执行线程之间;两个执行线程潜在的 以不可预知的顺序请求同-^存储器地址;或者是某- -执行线程等待不能发生的 事件、执行线程异常终止、或者陷入混乱的执行线程运行等。h述资源竞争总结起来基本都发生于同一份原始码(source code)的复 审'J,[天1此,本发明的多核多中央处理器的执行线程分配方法首先建立各个执行 项列表与其原始码列表的对应关系列表20 (如图2的A部份所不),以反映 各执行项在软件层的潜在资源竞争(歩骤101)。这里,以多核多中央处理器 的测试模块作为本发明的软件层执行项的实施例。在建立上述关系列表20之 后,nj判断是否存在用户优先指定(步骤l02),进而选择增加用户优先指定条f!P执行项和原始码的对应关系列表20中,以标识各执行项的执行线程分 组优先指定类型(步骤103)。此用户优先指定列表与执行项列表及原始码列表对应,以反映用户对个别 执行项的执行线程分组优先指定权。例如,在关于测试功能模块的实施例中, 图2的A部份中"3D游戏测试1"的测试需要消耗系统大量资源,所以用户建 议此测试模块在测试过程中需要独占一执行核心,即在此执行核心中只运行 "3D游戏测试1 "-个执行线程。再有,例如A部份中"后台服务程序1 "、 "后台服务程序2"及"后台服务程序3" 二个测试功能模块均属于后台服务 程序类,需要单独分组,并且为了确保整体测试性能的平均稳定的分配,此二 个后台服务程序需分配于不同的执行核心上,因此可以在用户优先指定列表中 标识此类测试模块:幕要执行核心互斥分配。或者,可接着判断用户是否设置潜在资源冲突(步骤104),若是,则为 特定的执行项提供一"潜在资源冲突"接口,在执行项与原始码的对应关系列 表中增加潜在资源冲突条目,标识用户指定的潜在资源冲突类型,即由用户指 定其它潜在的软件资源冲突(步骤105)。因此,在执行线程分配时,将用户 指定存在潜在资源冲突的执行项分为一组。例如,如图4的实施例所小-分组图 表26中,对于用户指定存在"冲突A,,的执行线程0888与0999分为同 一组 内,以避免调用时这两种执行线程存在资源冲突。依照执行项与其原始码的对应关系,在系统平台18启动执行线程的过程 中,将生成各执行项与其执行线程识别码的对应关系列表22 (歩骤106),如 图2的B部份所小、在这种对应关系中体现了来自一动态链接库文件的原始码 的个部执行项与执行线程的组关系。然后,依据此执行项与其原始码的对应关系列表及执行项与其执行线程识 别码的对应关系列表进行执行线程分组,而且若存在用户优先指定或者/以及 潜在资源冲突指定,则分组时优先考虑上述指定列表(步骤107)。如图中B部份所小,识别码为0006和0008的执行线程均源自逻辑运算测 试t,属于同,B式功能模块启动的不同执行线程,所以识别码0006和0008 的执行线程应为同一组;同样地,识别码为0005和0007分别对应算数运算测 试L、算数运算测试2两个测试功能模块,为同一原始码的不同测试功能模块 所启动的不同执行线程,也分为同一组;识别码为0001、 0002和0003的测试 功能模块均属于后台服务程序类,需单独分组;其它执行线程识别码为0009 及()010分别对应硬设备1测试1及WEB程序1,各自分为』组。1然,也可以在依照执行项与其原始码的对应关系列表及执行项与其执行 线程识别码的对应关系列表进行执行线程分组时,考虑用户优先指定(步骤 108)。若存在用户优先指定,则优先分配具有优先指定权的执行线程组(歩 骤L09),将此类执行线程按指定内容独占执行核心或互斥分配执行核心。例 如,对于识别码为()OOl、 0002和0003的测试功能模块,在执行线程到执行核 心的指定分配时,为丫确保整体测试性能的平均稳定分配,将其分别分配在不 同的执行核心匕对于执行线程识别码为0004的测试功能模块,也依照用户 优先指定单独分组,并在执行线程到执行核心的指定分配时独占-"执行核心。M此,依据执行项与其原始码的对应关系列表20及执行项与其执行线程 识别码的对!、、》关系列表22,将执行线程分组并得到如图3所示的分组图表24, 其屮图3为木发明的卜.述实施例的分组图表。依照匕述方式分配执行线程为多 个分组之后,图3屮属于不同执行线程组内的各执行线程之间不会存在任何的 软件层资源竞争。接着,依次指定执行线程的多个分组至多个多核中央处理器的单一执行核 心来运行,以平均分配多个多核中央处理器的执行线程调用。其中将属于同一 执行线程组的执行线程都指定到同一个中央处理器的单 -执行核心中,下邻 执行线程再指定到此中央处理器的另一个执行核心运行,以此类推(步骤 110)。对于执行线程识别码为0009及0010这样仅包含单一执行线程的执行 线程组,由于其执行线程之间在调用时不会出现资源竞争问题,因此可以灵活 分配至任意执行核心屮,以达到平均各个中央处理器执行核心的运行压力的目的(歩骤in)。进而最终执行线程的分配情况如图2的C部份所示,首先将指定互斥分配 的组l、组2、组3分别指定到第屮央处理器1的第 执行核心IO、第--中 央处理器1的第二执行核心12、第二中央处理器2的第一执行核心14中运行, 然后将需独占执行核心的执行线程组4指定到第二中央处理器2之第二执行核心16中,并确保后面的执行线程组不再被分配到此执行核心上。同样的,依 次指定属于组5的执行线程0005与0007分配至第一中央处理器1的第一执行 核10中,属于组6的0006与0008执行线程分配至第二执行核心12中。对于 只存在单 -执行线程的执行线程组7及8,由于可依照各个执行核心的运行压 力乂活分配,由于第二屮央处理器2的第二执行核心16已被执行线程组4独 占,则可将组7及8指定到第二中央处理器2的第一执行核心14中运行。对于基于操作系统的性能测试或调用,应尽量分配至各中央处理器的各个 执行核心上,指定由全部执行核心共同完成而非某单--执行核心单独完成,以 保证系统性能的平均分布及测试效果最大化。较佳地,当每个执行项的运行时间较为稳定时,还可以在执行项与其原始 码的对应关系列表20与执行项与其执行线程标示符的对应关系列表22的记录 内添加一时间参数,进而可以使得系统平台能够比较平均地为各中央处理器分 配相近的运行时间,以最大效率地进行调用。此外,本发明的多执行线程分配方法7仅能够应用于多核多中央处理器, 还适用于超执行线程中央处理器,即支持两个或以上支持超执行线程的单核心 中央处理器,两个或以上支持超执行线程的双核心中央处理器。本发明的多核多中央处理器的执行线程分配方法可应用于计算机系统的 iH常调用及压力测试上,不仅能够避免多核中央处理器的软件层之并行处理屮 存在资源冲突隐患,还可用于解决公知测试(Diagnostic)项目在多个多核屮 央处理器上无法正常测试的问题,实现真正意义的多核中央处理器压力测试。 并且通过分配各中央处理器的压力,使得各中央处理器的压力达到最大,同时 也提高了测试的效率。,然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员nj根据本发明作出各种相应的改变和变形,但这 些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种多核多中央处理器的执行线程分配方法,应用于多个多核中央处理器的执行线程调用中,其特征在于,该方法包含下列步骤建立各个执行项与其原始码的对应关系列表,以反映所述各执行项在一软件层的潜在资源竞争;在启动所述各执行项的执行线程的过程中,生成所述各执行项与其执行线程识别码的对应关系列表;依据该执行项与其原始码的对应关系列表及该执行项与其执行线程识别码的对应关系列表,以分配该执行线程为多个分组;以及依次指定该执行线程的多个分组至该多个多核中央处理器的单一执行核心来运行,以平均分配该多个多核中央处理器的执行线程调用。
2、 根据权利要求1所述的多核多中央处理器的执行线程分配方法,其特 征在于,该依次指定该执行线程的多个分组至该多个多核中央处理器的单一执 行核心的步;聚还包含有下列步骤-依次指定该多个分组中属于同一执行线程分组的执行线程至该多个多核 中央处理器的同个中央处理器的单一执行核心中;以及依照该多个多核中央处理器的执行核心的压力平均,分配该多个分组中仅 包含单一执行线程的分组至该多个多核中央处理器的单一执行核心中。
3、 根据权利要求1所述的多核多中央处理器的执行线程分配方法,其特 征在于,在该分配该执行线程为多个分组的步骤中,属于同一执行项启动的不 同执行线程被分为同一组。
4、 根据权利要求1所述的多核多中央处理器的执行线程分配方法,其特 征在于,在该分配该执行线程为多个分组的步骤中,属于同一原始码的不同执 行项所启动的不同执行线程被分为同 一组。
5、 根据权利要求1所述的多核多中央处理器的执行线程分配方法,其特 征在亍,还包含为所述各执行项的特定执行项提供一潜在资源冲突接口的步 骤,以标识该特定执行项的潜在资源冲突类型。
6、 根据权利要求5所述的多核多中央处理器的执行线程分配方法,其特 征在于,在该分配该执行线程为多个分组的步骤中,依照该潜在资源冲突类型将用户指定存在潜在资源冲突的该特定执行项所启动的不同执行线程分为一组。
7、 根据权利要求1所述的多核多中央处理器的执行线程分配方法,其特 征在于,还包含在该执行项与其原始码的对应关系列表中对应增加一优先指定 列表的步骤,以标识所述各执行项的执行线程分组优先指定类型。
8、 根据权利要求7所述的多核多中央处理器的执行线程分配方法,其特 征在于,在该分配该执行线程为多个分组的步骤中,依照该优先指定类型将用 户优先指定的该执行项的执行线程单独分组。
9、 根据权利要求1所述的多核多中央处理器的执行线程分配方法,其特 征在于,当所述各执行项的运行时间稳定时,还包含在该执行项与其原始码的 对应关系列表与该执行项与其执行线程标示符的对应关系列表的记录内添加 一时间参数的歩骤。
全文摘要
本发明公开了一种多核多中央处理器的执行线程(Thread)分配方法,首先建立各个执行项与其原始码的对应关系列表,并在启动各执行项的执行线程的过程中,生成执行项与其执行线程识别码的对应关系列表,然后依据此两种列表对执行线程进行分配。此外,还可以在执行项与其原始码的对应关系列表中对应增加一优先指定列表,以标识各执行项的执行线程分组优先指定类型,或者/以及为特定执行项提供一潜在资源冲突接口,进而在执行线程分组时优先考虑此优先指定或/及潜在资源冲突设定。
文档编号G06F9/46GK101131652SQ20061011180
公开日2008年2月27日 申请日期2006年8月21日 优先权日2006年8月21日
发明者刘文涵, 段秋月, 镇 陈, 陈玄同 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1