当前位置: 首页 > 专利查询>浙江大学专利>正文

面向多核处理器的实时线程迁移方法技术

技术编号:3859171 阅读:275 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种面向多核处理器的实时线程迁移方法。本发明专利技术是充分利用了共享二级cache和内存的多核硬件体系架构的特点从而有效地实现了多核处理器上的实时线程迁移方法。本发明专利技术实现了硬件支持的线程迁移初始化和处理器核之间的线程迁移,在线程运行时不需要花任何时间来轮询系统变量,减少了线程迁移时处理器核之间的数据传输,明显提高了线程执行时的性能和缩短了线程迁移的时间。本发明专利技术可以用在各种多核处理器上。

【技术实现步骤摘要】

本专利技术涉及多核硬件体系架构上处理器核之间进行线程迁移的方法。
技术介绍
由于处理器时钟频率的增长,处理器能耗和温度的不断攀升,导致了处理器 厂商在速度竞争上的极限。面临这种增长的极限,微处理器厂商纷纷投向了多 核处理器技术的怀抱。多核处理器技术为处理器性能提升开辟了一个新的前景。 有些公司就声称其生产的处理器将会全面使用多核体系架构。多核处理器芯片提供了比单核处理器芯片更好的并发性,更好的单位瓦特系 统性能。并发性为控制系统,网络路由等设备提供了更高的性能扩展。这些系 统如果充分利用多核处理器芯片提供的并发性,将能在性能上有很大的提升。 然而,大多数的软件设计者和软件工程师对于这种并发编程模式缺少相应的经 验和技术积累,因此这对于利用多核处理器技术的优势是一个很大的障碍。这种技术上的障碍是很明显的,比如说多核芯片上的共享资源的管理就是一 个很大的技术挑战。大多数情况下,多核芯片中的每个核有一个独立的一级缓 存和共享的二级缓存,内存子系统,中断子系统和外围设备。这样,系统设计 者就必须确保每个核互斥的访问某些资源。这种设计上的考虑就带来了更高的 设计复杂性。比如说,在不同的核上运行的程序如果需要互相协作,那么就需 要一个可行的进程间通讯机制,共享内存机制和保障共享资源的同步原语机制。 操作系统的方方面面都需要针对多核体系进行改造才能充分利用多核技术带来 的性能提升。因此,操作系统对多核的支持能很大程度上减少多核技术带来的设计难度。 一个支持多核的操作系统充分利用多核硬件平台的优势,关键在于操作系统对 多核的支持。操作系统在线程级别对多核的支持可以带来更好的性能。线程迁移在分布式系统中已经进行了大量的研究。分布式系统是通过协同 各个节点来共同完成计算任务。通过事先的任务放置静态地分配负载难以达到 负载平衡。在计算过程中,各个节点的负载会动态地发生改变,线程迁移是实 现分布式系统动态负载平衡的方法之一。线程迁移是将在一个节点上运行的线 程转移到另外的节点上运行。它可以保留在源节点上已经执行的结果而不必重 新执行该线程。目前已实现的线程迁移机制当中,大部分是基于检查点保存重3起机制来实现的,即在迁移进程之前,把进程的状态数据保存到检査点文件, 然后该检査点文件转移到另外的节点上,待目标节点收到整个检査点文件后, 再根据检査点文件重新恢复迁移线程。分布式系统中各个节点是不共享本地内 存的,每次线程迁移都要传输大量的数据。同样,为了实现多核处理器的动态负载平衡,或者是为了提高多核处理器的 性能,降低多核处理器的能耗,有必要在处理器核之间进行线程迁移。
技术实现思路
本专利技术的目的在于提供一种。 本专利技术解决其技术问题采用的技术方案如下1) 在处理器核之间进行线程迁移,所有的处理器核都有私有的一级cache, 共享的二级cache和内存;2) 硬件支持的线程迁移初始化-第一步,当每一个线程开始运行后,这个线程的所有的迁移点地址都记录 在操作系统中;第二步,操作系统把所有的迁移点地址保存到每个线程各自的一个数据结 构中,并把每个处理器核上正在运行的线程的迁移点地址写到核上的调试寄存 器中,当发生上下文切换时,操作系统就更新调试寄存器中的数据;第三步,当操作系统决定迁移一个线程的时候,操作系统就设置这个线程 所在处理器核上的调试寄存器中的标志位来激活调试寄存器;第四步,当线程执行指令到达线程的迁移点地址时,就会产生一个硬件中 断并开始线程迁移;3) 线程迁移方法当开始线程迁移时,操作系统唤醒线程迁移的目标处理器核,接着根据源 处理器核的指令执行结果对目标处理器核进行训练;当训练过程结束后,操作 系统首先释放源处理器核上的线程并清空源处理器核的流水线,接着把源处理 器核的一级cache中的数据写回到二级cache中,然后把源处理器核寄存器中 的数据通过总线传输给目标处理器核。最后目标处理器核把接收到数据存储到 寄存器中,然后开始执行在目标处理器核上产生的线程。与现有技术相比,本专利技术的有益效果是(1)高效性。本专利技术实现了一种,基 于检査点的线程迁移方法在线程执行过程中要不断地轮询系统变量来确定是否 要进行线程迁移,而硬件支持的线程迁移初始化方法不需要花任何时间来轮询4系统变量,因此明显提高了线程执行时的性能。由于在多核处理器上线程迁移时的数据传输过程只需要把一级cache中的数据写回到二级cache中,然后把 源处理器核上的寄存器中的数据通过总线传输到目标处理器核上,因此明显縮 短了线程迁移的时间。(2) 可靠性。本专利技术通过对分布式系统中线程迁移的过程进行仔细的分析, 适当地更改了线程迁移的过程,仔细地设计了线程迁移初始化和线程迁移时源 处理器核和目标处理器核之间的数据传输过程,保证了线程能够在处理器核之 间正常地进行迁移,使线程迁移到目标处理器核上后能够继续正常运行。(3) 实用性。本专利技术提出的一种,可 以用在各种多核处理器上。附图说明图1是硬件支持的线程迁移初始化过程的示意图。 图2是线程迁移过程的示意图。 具体实施例方式1) 在处理器核之间进行线程迁移,所有的处理器核都有私有的一级cache, 共享的二级cache和内存目前大多数的多核处理器体系架构中,处理器核都有私有的一级cache,并 共享二级cache和内存。所有的处理器核都共享内存,因此线程迁移时不需要 传输共享内存中的代码和数据。所有的处理器核都共享二级cache,线程迁移时 源处理器核的一级cache中的数据只需写回到二级cache中而不用写回到内存 中。2) 硬件支持的线程迁移初始化-大多数现代处理器都含有一系列的调试寄存器。PowerPC 405处理器包含4 个32位的指令地址比较寄存器。当程序计数寄存器中的值等于一个被激活的指 令地址比较寄存器中的值时就会产生一个硬件中断。同样地,在其它处理器中, 当程序计数寄存器中的值等于一个被激活的调试寄存器中的值时也会产生一个 硬件中断。利用这个机制的硬件支持的线程迁移初始化方法使得线程在执行过 程中不需要花任何时间来轮询系统中的变量。硬件支持的线程迁移初始化方法, 如图1所示,包含以下四个步骤第一步,当一个线程开始运行后,这个线程的所有的迁移点地址都记录在 操作系统中;第二步,操作系统把所有的迁移点地址保存到每个线程各自的一个数据结构中,并把每个处理器核上正在运行的线程的迁移点地址写到核上的调试寄存 器中,当发生上下文切换时,操作系统就会用将要执行的线程的迁移点地址来更新调试寄存器中的数据;第三步,当操作系统根据资源管理器决定迁移一个线程到另外一个处理器 核上的时候,操作系统就设置这个线程所在处理器核上的调试寄存器中的标志 位来激活调试寄存器;第四步,当线程执行指令到达线程所在处理器核上被激活的调试寄存器中 的迁移点地址时,就会产生一个硬件中断并开始线程迁移;3)线程迁移方法如图2所示,当开始线程迁移时,如果线程迁移的目标处理器核被关闭了, 操作系统需要唤醒线程迁移的目标处理器核,接着根据源处理器核的指令执行 结果对目标处理器核上的cache和预测器进行训练。当训练过程结束后,操作 系统首先释放源处理器核上的线程并清空源处理器核的流水线,接着把源处理 器核的一级cache中的数据写回到二级cac本文档来自技高网
...

【技术保护点】
一种面向多核处理器的实时线程迁移方法,其特征在于: 1)在处理器核之间进行线程迁移,所有的处理器核都有私有的一级cache,共享的二级cache和内存; 2)硬件支持的线程迁移初始化: 第一步,当每一个线程开始运行后,这个 线程的所有的迁移点地址都记录在操作系统中; 第二步,操作系统把所有的迁移点地址保存到每个线程各自的一个数据结构中,并把每个处理器核上正在运行的线程的迁移点地址写到核上的调试寄存器中,当发生上下文切换时,操作系统就更新调试寄存器中的数据 ; 第三步,当操作系统决定迁移一个线程的时候,操作系统就设置这个线程所在处理器核上的调试寄存器中的标志位来激活调试寄存器; 第四步,当线程执行指令到达线程的迁移点地址时,就会产生一个硬件中断并开始线程迁移; 3)线程迁移方 法: 当开始线程迁移时,操作系统唤醒线程迁移的目标处理器核,接着根据源处理器核的指令执行结果对目标处理器核进行训练;当训练过程结束后,操作系统首先释放源处理器核上的线程并清空源处理器核的流水线,接着把源处理器核的一级cache中的数据 写回到二级cache中,然后把源处理器核寄存器中的数据通过总线传输给目标处理器核。最后目标处理器核把接收到数据存储到寄存器中,然后开始执行在目标处理器核上产生的线程。...

【技术特征摘要】

【专利技术属性】
技术研发人员:施青松陈度马建良吴斌斌王超曹满冯德贵王勇刚胡威陈天洲
申请(专利权)人:浙江大学
类型:发明
国别省市:86[中国|杭州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1