CN105637483B - 线程迁移方法、装置和系统 - Google Patents

线程迁移方法、装置和系统 Download PDF

Info

Publication number
CN105637483B
CN105637483B CN201480038263.XA CN201480038263A CN105637483B CN 105637483 B CN105637483 B CN 105637483B CN 201480038263 A CN201480038263 A CN 201480038263A CN 105637483 B CN105637483 B CN 105637483B
Authority
CN
China
Prior art keywords
target
thread
processor core
cluster
target cluster
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.)
Active
Application number
CN201480038263.XA
Other languages
English (en)
Other versions
CN105637483A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105637483A publication Critical patent/CN105637483A/zh
Application granted granted Critical
Publication of CN105637483B publication Critical patent/CN105637483B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例提供一种线程迁移方法、装置和系统,通过集群控制器根据目标集群中的各处理器核的状态信息,确定一个适合线程迁移的目标处理器核,将线程的上下文信息发送到目标处理器核,从而,实现集群之间的线程迁移。

Description

线程迁移方法、装置和系统
技术领域
本发明实施例涉及通信技术,尤其涉及一种线程迁移方法、装置和系统。
背景技术
在传统的片上多核处理器系统(on-Chip Multiple Processor System,以下简称:CMPs)中,当某个核的线程请求访问的数据不在该核内的缓存(Cache)时,则将数据通过片上网络搬运到该核的缓存中,以便线程进行访问,然而,当线程需要对数据进行连续或频繁的访问时,在核间搬运数据会产生大量的流量开销。
现有技术中,通过将线程迁移到存储请求访问的数据所在的核中,对数据进行访问,在硬件实现上,线程迁移造成的流量开销远小于数据搬运造成的流量开销。然而,随着片上网络技术的发展,众核架构成为未来面向大数据应用的一个趋势,众核架构以集群(cluster)为架构单位,每个集群中包含多个核,当线程请求访问的数据不在本集群内的核中时,现有技术无法实现集群之间的线程迁移。
发明内容
本发明实施例提供一种线程迁移方法、装置和系统,以实现集群之间的线程迁移。
本发明实施例第一方面提供一种线程迁移方法,应用于众核架构的集群系统中,所述众核架构的集群系统至少包含两个集群,所述两个集群之间通过M个集群控制器相连,每个所述集群中包含若干个处理器核,每个所述集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数,所述方法包括:
集群控制器接收源处理器核发送的线程的上下文信息和目标集群的标识,其中,所述线程的上下文信息包括:程序计数器值和寄存器值;
所述集群控制器若判断所述目标集群的标识为所述集群控制器直接连接的集群的标识,所述集群控制器根据所述目标集群中的各处理器核的状态信息,确定所述线程迁移的目标处理器核;
所述集群控制器将所述线程的上下文信息发送到所述目标处理器核。
结合第一方面,在第一种可能的实现方式中,所述集群控制器根据所述目标集群中各处理器核的状态信息,确定所述线程迁移的目标处理器核,包括下述任一种方式:
所述集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息,确定所述线程迁移的目标处理器核;
所述集群控制器根据所述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核;
所述集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述访存指令队列的状态信息包括所述访存指令队列中所有访存指令的个数;
所述集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息,确定所述线程迁移的目标处理器核,包括:
所述集群控制器根据所述目标集群中各处理器核的访存指令队列中所有访存指令的个数,确定访存指令队列中所有访存指令的个数最少的处理器核为线程迁移的目标处理器核。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,所述线程上下文的存储单元包含若干表项,每个所述表项用于存储一个线程的上下文信息,所述线程上下文的存储单元的状态信息包括所述线程上下文的存储单元中空余表项的个数;
所述集群控制器根据所述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核,包括:
所述集群控制器根据所述目标集群中各处理器核的线程上下文的存储单元中空余表项的个数,确定线程上下文的存储单元中空余表项的个数最多的处理器核为线程迁移的目标处理器核。
结合第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核,包括:
所述集群控制器为所述访存指令队列中所有访存指令的个数分配第一权重系数,所述集群控制器为所述线程上下文的存储单元中空余表项的个数分配第二权重系数;
所述集群控制器对所述目标集群中各处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数进行加权求和;
所述集群控制器根据所述加权求和结果确定所述线程迁移的目标处理器核。
结合第一方面或第一方面的第一种至第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述集群控制器根据所述目标集群中的各处理器核的状态信息,确定所述线程迁移的目标处理器核之前,还包括:
所述集群控制器针对所述目标集群的每个处理器核,通过两个计数器分别记录所述处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数。
本发明实施例第二方面提供一种线程迁移装置,应用于众核架构的集群系统中,所述众核架构的集群系统至少包含两个集群,所述两个集群之间通过M个集群控制器相连,每个所述集群中包含若干个处理器核,每个所述集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数,所述装置包括:
接收端口,用于接收源处理器核发送的线程的上下文信息和目标集群的标识,所述线程的上下文信息包括:程序计数器值和寄存器值;
监控器,用于监控所述目标集群中的各处理器核的状态信息;
处理器,用于若判断目标集群的标识为所直接连接的集群的标识,根据所述目标集群中的各处理器核的状态信息,确定所述线程迁移的目标处理器核;
发送端口,用于将所述线程的上下文信息发送到所述目标处理器核。
结合第二方面,在第一种可能的实现方式中,所述处理器具体用于根据所述目标集群中各处理器核的访存指令队列的状态信息,确定所述线程迁移的目标处理器核;或者,
所述处理器具体用于根据所述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核;或者,
所述处理器具体用于根据所述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述访存指令队列的状态信息包括所述访存指令队列中所有访存指令的个数;
所述处理器具体用于根据所述目标集群中各处理器核的访存指令队列中所有访存指令的个数,确定访存指令队列中所有访存指令的个数最少的处理器核为线程迁移的目标处理器核。
结合第二方面的第一种可能的实现方式,在第三种可能的实现方式中,所述线程上下文的存储单元包含若干表项,每个所述表项用于存储一个线程的上下文信息,所述线程上下文的存储单元的状态信息包括所述线程上下文的存储单元中空余表项的个数;
所述处理器具体用于根据所述目标集群中各处理器核的线程上下文的存储单元中空余表项的个数,确定线程上下文的存储单元中空余表项的个数最多的处理器核为线程迁移的目标处理器核。
结合第二方面的第一种可能的实现方式,在第四种可能的实现方式中,所述处理器具体用于为所述访存指令队列中所有访存指令的个数分配第一权重系数,为所述线程上下文的存储单元中空余表项的个数分配第二权重系数;对所述目标集群中各处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数进行加权求和;根据所述加权求和结果确定所述线程迁移的目标处理器核。
结合第二方面或第二方面的第一种至第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述监控器具体用于针对所述目标集群的每个处理器核,通过两个计数器分别记录所述处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数。
本发明实施例第三方面提供一种线程迁移系统,包括:
至少两个集群,所述两个集群之间通过M个如第二方面的任一种可能的实现方式所述的集群控制器相连,每个所述集群中包含若干个处理器核,每个集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数。
本发明实施例提供的线程迁移方法、装置和系统,通过集群控制器根据目标集群中的各处理器核的状态信息,确定一个适合线程迁移的目标处理器核,将线程的上下文信息发送到目标处理器核,从而,实现集群之间的线程迁移。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明众核架构的集群系统一的示意图;
图2为本发明访存指令队列的格式示意图;
图3为本发明线程上下文的存储单元的格式示意图;
图4为本发明众核架构的集群系统二的示意图;
图5为本发明线程迁移方法实施例一的流程示意图;
图6为本发明线程迁移装置实施例一的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的线程迁移方法应用于众核架构的集群系统中,所谓众核架构的集群系统如图1所示,图1为本发明众核架构的集群系统一的示意图,上述众核架构的集群系统至少包括两个集群(图1中以两个集群示出,分别为集群1和集群2),每个集群中包含若干个处理器核(图1中以3个处理器核示出,分别为处理器核1、处理器核2和处理器核3),每个集群中包含的处理器核的个数可以相同也可以不同;将每个集群与集群控制器相连,具体地可以是所有的集群与同一个集群控制器相连,也可以是一个集群连接一个集群控制器,也可以是多个集群连接一个集群控制器;当一个集群连接一个集群控制器时,或者多个集群连接在一个集群控制器时,所有的集群控制器之间按照一定的拓扑关系连接;也就是,两个集群之间通过M个集群控制器相连,M大于等于1且为整数(图1以M=1示出),每个集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息。一个集群中的所有处理器核均可访问该集群的地址空间。
其中,处理器核的状态信息包括访存指令队列的状态信息和/或线程上下文的存储单元的状态信息,其中,访存指令队列的格式如图2所示,图2为本发明访存指令队列的格式示意图,访存指令的状态信息用于衡量处理器核的负载大小,访存指令队列的状态信息包括访存指令队列中所有访存指令的个数,访存指令队列中所有访存指令的个数越多,说明处理器核的负载越大。线程上下文的存储单元可以是栈、缓存单元(buffer)、寄存器堆等,以栈为例,线程上下文的存储单元的格式如图3所示,图3为本发明线程上下文的存储单元的格式示意图,线程上下文的存储单元包含若干表项,每个表项用于存储一个线程的上下文信息,根据应用需要,每个表项可以设计一个或者多个字段(图3中以两个字段为例,分别为程序计数器值和寄存器值),线程上下文的存储单元的状态信息用于衡量处理器核能够存储的线程的上下文信息的多少,线程上下文的存储单元的状态信息包括线程上下文的存储单元中空余表项的个数,空余表项的个数越多,说明处理器核能够存储的线程的上下文信息越多。
当集群中的某个处理器核的线程请求访问的数据不在该集群的地址空间内时,通过将线程迁移到数据所在的集群的某个核中来访问数据,相比在本地访问远端数据的方法,具有提高带宽利用率,降低延迟等优点。因此,本发明提供一种线程迁移方法,以实现集群间的线程迁移。
图4为本发明众核架构的集群系统二的示意图,图4是在图1的基础上,更详细的示出每个处理器核的内部结构示意图,如图4所示,当处理器核中的某个线程请求访问数据时,线程向存储访问逻辑模块发送访问请求,其中,访问请求中包含请求访问数据的地址信息;为了便于描述,将发送访问请求的线程所在的处理器核称为源处理器核,源处理器核所在的集群称为源集群,存储访问逻辑模块根据上述请求访问数据的地址信息确定存储上述请求访问数据的位置。具体地,存储访问逻辑模块中可以记录每个集群数据存储的地址空间,可以根据访问请求数据的地址,确定请求访问数据的地址属于哪个集群的地址空间内,将请求访问数据的地址所属的集群称为目标集群。当存储访问逻辑模块判断存储请求访问的数据的位置不在源集群的地址空间时,存储访问逻辑模块向线程迁移逻辑模块发送控制信号,控制信号中包含目标集群的标识和请求访问的数据的地址,线程迁移逻辑模块判断是否进行线程迁移,通常根据历史访问情况,确定上述请求访问数据的地址对应的数据较大,或者对该请求访问的地址的数据以及该请求访问的地址邻近的地址空间的数据是连续访问,则确定进行线程迁移,否则,不进行线程迁移。当线程迁移逻辑模块确定进行线程迁移时,触发线程迁移单元对该线程进行迁移,线程迁移单元获取该线程的上下文信息和目标集群的标识,线程上下文信息是指执行线程所需要的信息,一般包括:程序计数器和寄存器值,线程迁移单元将线程的上下文信息和目标集群的标识发送给该处理器核的路由器,同一个集群中的各处理器核的路由器按一定的拓扑关系连接,其中,一个处理器核的路由器与集群控制器连接,源处理器核的路由器根据拓扑关系将线程的上下文信息和目标集群的标识发送给与源集群直接连接的集群控制器,将与源集群直接连接的集群控制器称为源集群控制器,源集群控制器根据集群控制器之间的拓扑关系将上述线程的上下文信息和目标集群的标识发送给目标集群的集群控制器,将M个集群控制器中与目标集群直接连接的集群控制器称为目标集群控制器。
需要说明的是,在图4所示的处理器核的结构中,线程迁移逻辑模块也可以省略,也就是,存储访问逻辑模块确定请求访问的数据的地址的目标集群之后,直接触发线程迁移单元进行线程迁移。
在集群中的处理器核较少的情况下,每个处理器核的线程迁移单元也可以直接与源集群控制器连接,而无需经过每个处理器核的路由器进行转发到集群控制器,从而,减小时延。
当所有的集群连接在同一个集群控制器上时,源集群控制器和目标集群控制器为同一个集群控制器,则省略源集群控制器根据集群控制器的拓扑关系将线程的上下文信息发送到目标集群控制器的过程。
目标集群控制器接收到源核发送的线程的上下文信息和目标集群的标识之后,如何选择适合线程迁移的目标处理器核,通过下面的实施例进行详细的说明。
图5为本发明线程迁移方法实施例一的流程示意图,图5所示实施例的方法应用于上述的众核架构的集群系统中,如图5所示,本实施例的方法如下:
S501:集群控制器接收源处理器核发送的线程的上下文信息和目标集群的标识。
其中,线程的上下文信息包括:程序计数器值和寄存器值。
S502:集群控制器若判断目标集群的标识为集群控制器直接连接的集群的标识,集群控制器根据目标集群中各处理器核的状态信息,确定线程迁移的目标处理器核。
若集群控制器若判断目标集群的标识为集群控制器直接连接的集群的标识,则说明该集群控制器为目标集群控制器。
针对不同的场景,目标集群控制器可以通过不同的方式接收源处理器核发送的线程的上下文信息,其中,一种方式为:当源集群控制器与目标集群控制器为同一集群控制器时,并且,源处理器核的线程迁移单元直接与目标集群控制器相连,则目标集群控制器直接从源处理器核的线程迁移单元接收线程的上下文信息;另一种方式为,当源集群控制器与目标集群控制器为同一集群控制器时,但各处理器核具有处理器核的路由器,各处理器核的路由器按一定拓扑关系连接,其中一个处理器核与集群控制器连接,则目标集群控制器通过与其连接的处理器核的路由器接收线程的上下文信息。再一种方式为:当源集群控制器与目标集群控制器为不同的集群控制器时,源集群控制器接收到源处理器核发送的线程的上下文信息之后,根据集群控制器之间的拓扑关系将线程的上下文信息发送到目标集群控制器。
集群控制器根据目标集群中的各处理器核的状态信息,从中选择一个最适合运行上述线程的处理器核作为目标处理器核。
在执行S502之前,还可以包括集群控制器获取目标集群中各处理器核的状态信息的步骤。
具体地,集群控制器针对目标集群的每个处理器核,通过两个计数器分别记录处理器核的访存指令队列中所有访存指令的个数和线程上下文的存储单元中空余表项的个数。
S503:集群控制器将线程的上下文信息发送到目标处理器核。
集群控制器将线程的上下文信息发送到目标处理器核,具体地,是发送到目标处理器核的线程迁移单元,目标处理器核的线程迁移单元将线程的上下信息存储在线程上下文的存储单元中,以使线程在目标处理器核中访问请求访问的数据。
本实施例中,通过集群控制器根据目标集群中的各处理器核的状态信息,确定一个适合线程迁移的目标处理器核,将线程的上下文信息发送到目标处理器核,从而,实现集群之间的线程迁移。
在上述实施例中,集群控制器根据目标集群中各处理器核的状态信息,确定线程迁移的目标处理器核,包括但不限于下述几种方式:
第一种方式,集群控制器根据目标集群中各处理器核的访存指令队列的状态信息,确定线程迁移的目标处理器核。
具体地,访存指令队列的状态信息包括访存指令队列中所有访存指令的个数,访存指令队列中访存指令的个数越多,处理器核的负载越大,因此,集群控制器根据目标集群中各处理器核的访存指令队列中所有访存指令的个数(已有访存指令的个数),确定访存指令队列中所有访存指令的个数最少的处理器核为线程迁移的目标处理器核,也就是,选择负载最小的处理器核作为迁移的目标处理器核,当线程迁移到目标处理器核中后,可尽早的处理到该线程。
第二种方式,集群控制器根据目标集群中各处理器核的线程上下文的存储单元的状态信息,确定线程迁移的目标处理器核。
线程上下文的存储单元的结构如图3所示,包括若干表项,每个表项用于存储一个线程的上下文信息,线程上下文的存储单元的状态信息包括线程上下文的存储单元中剩余表项的个数。集群控制器根据目标集群中各处理器核的线程上下文的存储单元中空余表项的个数,确定线程上下文的存储单元中空余表项的个数最多的处理器核为线程迁移的目标处理器核。
需要说明的是,目标集群中各处理器核的线程上下文的存储单元均已满,则随机选择一个处理器核作为目标处理器核,将线程迁移单元将目标处理器核中原有的线程上下文信息按原路切出。若目标集群中各处理器核的线程上下文的存储单元中空余表项的个数最多的处理器核存在至少两个时,按照轮询的方式从所述至少两个处理器核中选择一个作为目标处理器核。
第三种方式,集群控制器根据目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定线程迁移的目标处理器核。
集群控制器为访存指令队列中所有访存指令的个数分配第一权重系数,为线程上下文的存储单元中空余表项的个数分配第二权重系数,集群控制器对目标集群中各处理器核的访存指令队列中所有访存指令的个数和线程上下文的存储单元中空余表项的个数进行加权求和,集群控制器根据加权求和结果确定线程迁移的目标处理器核。通常,第一权重系数为负数,第二权重系数为正数,确定加权求和结果最大的处理器核为目标处理器核。
本发明对集群控制器具体如何根据目标集群中各处理器核的访存指令队列的状态信息和/或线程上下文的存储单元的状态信息,确定线程迁移的目标处理器核不作限定。只要是根据目标集群中各处理器核的访存指令队列的状态信息和/或线程上下文的存储单元的状态信息确定线程迁移的目标处理器核,都在本发明的保护范围内。
图6为本发明线程迁移装置实施例一的结构示意图,本实施例的装置为集群控制器,本实施例的装置应用于众核架构的集群系统中,上述众核架构的集群系统至少包含两个集群,上述两个集群之间通过M个集群控制器相连,每个上述集群中包含若干个处理器核,每个上述集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,上述M大于等于1且为整数,上述装置包括接收端口601、监控器602、处理器603和发送端口604,其中,接收端口601用于接收源处理器核发送的线程的上下文信息和目标集群的标识,上述线程的上下文信息包括:程序计数器值和寄存器值;监控器602用于监控上述目标集群中的各处理器核的状态信息;处理器603用于若判断目标集群的标识为所直接连接的集群的标识,根据上述目标集群中的各处理器核的状态信息,确定上述线程迁移的目标处理器核;发送端口604用于将上述线程的上下文信息发送到上述目标处理器核。
在上述实施例中,上述处理器603具体用于根据上述目标集群中各处理器核的访存指令队列的状态信息,确定上述线程迁移的目标处理器核;或者,
上述处理器603具体用于根据上述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定上述线程迁移的目标处理器核;或者,
上述处理器603具体用于根据上述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定上述线程迁移的目标处理器核。
在上述实施例中,上述访存指令队列的状态信息包括上述访存指令队列中所有访存指令的个数;
上述处理器603具体用于根据上述目标集群中各处理器核的访存指令队列中所有访存指令的个数,确定访存指令队列中所有访存指令的个数最少的处理器核为线程迁移的目标处理器核。
在上述实施例中,上述线程上下文的存储单元包含若干表项,每个上述表项用于存储一个线程的上下文信息,上述线程上下文的存储单元的状态信息包括上述线程上下文的存储单元中空余表项的个数;
上述处理器603具体用于根据上述目标集群中各处理器核的线程上下文的存储单元中空余表项的个数,确定线程上下文的存储单元中空余表项的个数最多的处理器核为线程迁移的目标处理器核。
在上述实施例中,上述处理器603具体用于为上述访存指令队列中所有访存指令的个数分配第一权重系数,为上述线程上下文的存储单元中空余表项的个数分配第二权重系数;对上述目标集群中各处理器核的访存指令队列中所有访存指令的个数和上述线程上下文的存储单元中空余表项的个数进行加权求和;根据上述加权求和结果确定上述线程迁移的目标处理器核。
在上述实施例中,上述监控器602具体用于针对上述目标集群的每个处理器核,通过两个计数器分别记录上述处理器核的访存指令队列中所有访存指令的个数和上述线程上下文的存储单元中空余表项的个数。
上述实施例的装置,通过监控器监控上述目标集群中的各处理器核的状态信息;处理器若判断目标集群的标识为所直接连接的集群的标识,根据上述目标集群中的各处理器核的状态信息,确定上述线程迁移的目标处理器核;发送端口将上述线程的上下文信息发送到上述目标处理器核,从而,实现集群之间的线程迁移。
本发明还提供一种线程迁移系统实施例,本实施例的系统包括至少两个集群,所述两个集群之间通过M个图6所示的集群控制器相连,每个所述集群中包含若干个处理器核,每个集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数,线程迁移系统实施例的附图可参照图1或图2。
本实施例的系统能够用于执行图5所示的方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (13)

1.一种线程迁移方法,其特征在于,应用于众核架构的集群系统中,所述众核架构的集群系统至少包含两个集群,所述两个集群之间通过M个集群控制器相连,每个所述集群中包含若干个处理器核,每个所述集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数,所述方法包括:
目标集群控制器接收源处理器核发送的线程的上下文信息和目标集群的标识,所述目标集群控制器是所述M个集群控制器中任一个集群控制器,其中,所述线程的上下文信息包括:程序计数器值和寄存器值;
所述目标集群控制器若判断出所述目标集群的标识为所述目标集群控制器直接连接的集群的标识,所述目标集群控制器根据所述目标集群中的各处理器核的状态信息,确定所述线程迁移的目标处理器核;
所述目标集群控制器将所述线程的上下文信息发送到所述目标处理器核。
2.根据权利要求1所述的方法,其特征在于,
所述目标集群控制器根据所述目标集群中各处理器核的状态信息,确定所述线程迁移的目标处理器核,包括下述任一种方式:
所述目标集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息,确定所述线程迁移的目标处理器核;
所述目标集群控制器根据所述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核;
所述目标集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核。
3.根据权利要求2所述的方法,其特征在于,所述访存指令队列的状态信息包括所述访存指令队列中所有访存指令的个数;
所述目标集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息,确定所述线程迁移的目标处理器核,包括:
所述目标集群控制器根据所述目标集群中各处理器核的访存指令队列中所有访存指令的个数,确定访存指令队列中所有访存指令的个数最少的处理器核为线程迁移的目标处理器核。
4.根据权利要求2所述的方法,其特征在于,所述线程上下文的存储单元包含若干表项,每个所述表项用于存储一个线程的上下文信息,所述线程上下文的存储单元的状态信息包括所述线程上下文的存储单元中空余表项的个数;
所述目标集群控制器根据所述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核,包括:
所述目标集群控制器根据所述目标集群中各处理器核的线程上下文的存储单元中空余表项的个数,确定线程上下文的存储单元中空余表项的个数最多的处理器核为线程迁移的目标处理器核。
5.根据权利要求2所述的方法,其特征在于,所述目标集群控制器根据所述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核,包括:
所述目标集群控制器为所述访存指令队列中所有访存指令的个数分配第一权重系数,所述目标集群控制器为所述线程上下文的存储单元中空余表项的个数分配第二权重系数;
所述目标集群控制器对所述目标集群中各处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数进行加权求和;
所述目标集群控制器根据所述加权求和结果确定所述线程迁移的目标处理器核。
6.根据权利要求2~5任一项所述的方法,其特征在于,所述目标集群控制器根据所述目标集群中的各处理器核的状态信息,确定所述线程迁移的目标处理器核之前,还包括:
所述目标集群控制器针对所述目标集群的每个处理器核,通过两个计数器分别记录所述处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数。
7.一种线程迁移装置,其特征在于,应用于众核架构的集群系统中,所述众核架构的集群系统至少包含两个集群,所述两个集群之间通过M个集群控制器相连,每个所述集群中包含若干个处理器核,每个所述集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数,所述装置包括:
接收端口,用于接收源处理器核发送的线程的上下文信息和目标集群的标识,所述线程的上下文信息包括:程序计数器值和寄存器值;
监控器,用于监控所述目标集群中的各处理器核的状态信息;
处理器,用于若判断出目标集群的标识为所直接连接的集群的标识,根据所述目标集群中的各处理器核的状态信息,确定所述线程迁移的目标处理器核;
发送端口,用于将所述线程的上下文信息发送到所述目标处理器核。
8.根据权利要求7所述的装置,其特征在于,所述处理器具体用于根据所述目标集群中各处理器核的访存指令队列的状态信息,确定所述线程迁移的目标处理器核;或者,
所述处理器具体用于根据所述目标集群中各处理器核的线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核;或者,
所述处理器具体用于根据所述目标集群中各处理器核的访存指令队列的状态信息和线程上下文的存储单元的状态信息,确定所述线程迁移的目标处理器核。
9.根据权利要求8所述的装置,其特征在于,所述访存指令队列的状态信息包括所述访存指令队列中所有访存指令的个数;
所述处理器具体用于根据所述目标集群中各处理器核的访存指令队列中所有访存指令的个数,确定访存指令队列中所有访存指令的个数最少的处理器核为线程迁移的目标处理器核。
10.根据权利要求8所述的装置,其特征在于,所述线程上下文的存储单元包含若干表项,每个所述表项用于存储一个线程的上下文信息,所述线程上下文的存储单元的状态信息包括所述线程上下文的存储单元中空余表项的个数;
所述处理器具体用于根据所述目标集群中各处理器核的线程上下文的存储单元中空余表项的个数,确定线程上下文的存储单元中空余表项的个数最多的处理器核为线程迁移的目标处理器核。
11.根据权利要求8所述的装置,其特征在于,所述处理器具体用于为所述访存指令队列中所有访存指令的个数分配第一权重系数,为所述线程上下文的存储单元中空余表项的个数分配第二权重系数;对所述目标集群中各处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数进行加权求和;根据所述加权求和结果确定所述线程迁移的目标处理器核。
12.根据权利要求8~11任一项所述的装置,其特征在于,所述监控器具体用于针对所述目标集群的每个处理器核,通过两个计数器分别记录所述处理器核的访存指令队列中所有访存指令的个数和所述线程上下文的存储单元中空余表项的个数。
13.一种线程迁移系统,其特征在于,包括:
至少两个集群,所述两个集群之间通过M个如权利要求7~12任一项所述的集群控制器相连,每个所述集群中包含若干个处理器核,每个集群控制器用于监控所直接连接的集群中的若干个处理器核的状态信息,所述M大于等于1且为整数。
CN201480038263.XA 2014-09-22 2014-09-22 线程迁移方法、装置和系统 Active CN105637483B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/087101 WO2016044980A1 (zh) 2014-09-22 2014-09-22 线程迁移方法、装置和系统

Publications (2)

Publication Number Publication Date
CN105637483A CN105637483A (zh) 2016-06-01
CN105637483B true CN105637483B (zh) 2019-08-20

Family

ID=55580029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480038263.XA Active CN105637483B (zh) 2014-09-22 2014-09-22 线程迁移方法、装置和系统

Country Status (2)

Country Link
CN (1) CN105637483B (zh)
WO (1) WO2016044980A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268466A (zh) * 2021-06-07 2021-08-17 上海数禾信息科技有限公司 消息集群平滑迁移的方法及系统
CN114020139A (zh) * 2021-11-05 2022-02-08 珠海全志科技股份有限公司 Cpu功耗管理方法、计算机装置及计算机可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458634A (zh) * 2008-01-22 2009-06-17 中兴通讯股份有限公司 负载均衡调度方法和装置
CN101751295A (zh) * 2009-12-22 2010-06-23 浙江大学 多核架构下核间线程迁移的实现方法
CN102081551A (zh) * 2011-01-28 2011-06-01 中国人民解放军国防科学技术大学 一种感知微体系结构信息的操作系统线程调度方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060123423A1 (en) * 2004-12-07 2006-06-08 International Business Machines Corporation Borrowing threads as a form of load balancing in a multiprocessor data processing system
US20080005591A1 (en) * 2006-06-28 2008-01-03 Trautman Mark A Method, system, and apparatus for dynamic thermal management
US8595731B2 (en) * 2010-02-02 2013-11-26 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
CN102193779A (zh) * 2011-05-16 2011-09-21 武汉科技大学 一种面向MPSoC的多线程调度方法
US9075610B2 (en) * 2011-12-15 2015-07-07 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101458634A (zh) * 2008-01-22 2009-06-17 中兴通讯股份有限公司 负载均衡调度方法和装置
CN101751295A (zh) * 2009-12-22 2010-06-23 浙江大学 多核架构下核间线程迁移的实现方法
CN102081551A (zh) * 2011-01-28 2011-06-01 中国人民解放军国防科学技术大学 一种感知微体系结构信息的操作系统线程调度方法

Also Published As

Publication number Publication date
WO2016044980A1 (zh) 2016-03-31
CN105637483A (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
CN105528330B (zh) 负载均衡的方法、装置、丛集和众核处理器
DE112011101321B4 (de) Abfragen von Leistungsdaten auf einem parallelenComputersystem, das Rechenknoten aufweist
CN105159610B (zh) 大规模数据处理系统及方法
US9197703B2 (en) System and method to maximize server resource utilization and performance of metadata operations
DE102020132078A1 (de) Ressourcenzuteilung basierend auf anwendbarem service level agreement
US20190245924A1 (en) Three-stage cost-efficient disaggregation for high-performance computation, high-capacity storage with online expansion flexibility
US9348756B2 (en) Active memory processor system
CN103338252B (zh) 一种分布式数据库并发存储虚拟请求机制的实现方法
CN103176849B (zh) 一种基于资源分类的虚拟机集群的部署方法
CN105912396A (zh) 用于动态地分配可配置计算资源的资源的技术
CN109684074A (zh) 物理机资源分配方法及终端设备
CN103607424B (zh) 一种服务器连接方法及服务器系统
CN101604295A (zh) 优化基于目录的一致性协议中的并发访问
CN106603692B (zh) 一种分布式存储系统中的数据存储方法及装置
CN105138679B (zh) 一种基于分布式缓存的数据处理系统及处理方法
CN106162219A (zh) 视频云存储方法及系统、预览云存储的视频的方法及系统
CN110399272B (zh) 日志处理设备、方法、电子设备及计算机可读存储介质
CN109697122A (zh) 任务处理方法、设备及计算机存储介质
CN107037985A (zh) 一种超融合一体机系统及其横向和纵向扩容方法
CN109144972A (zh) 一种数据迁移的方法以及数据节点
CN108702339A (zh) 结构架构中用于基于服务质量进行节流的技术
EP4209914A1 (en) Reconfigurable cache architecture and methods for cache coherency
CN105637483B (zh) 线程迁移方法、装置和系统
CN103903295B (zh) 一种基于InfiniBand实时调度海量高精度三维场景数据的方法
CN108363611A (zh) 虚拟机的安全管理方法、装置及全方位虚拟化系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant