[发明专利]片上网络多核处理器多线程的资源分配处理方法和系统有效
申请号: | 201110460300.4 | 申请日: | 2011-12-31 |
公开(公告)号: | CN102591722A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 尹一笑;陈云霁;郭崎;杨旭 | 申请(专利权)人: | 龙芯中科技术有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京远大卓悦知识产权代理事务所(普通合伙) 11369 | 代理人: | 史霞 |
地址: | 100190 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 网络 多核 处理器 多线程 资源 分配 处理 方法 系统 | ||
技术领域
本发明涉及在多核处理器上多线程处理技术领域,尤其涉及到动态改变多核处理器芯片资源分配的一种片上网络(Network-on-chip,NoC)多核处理器多线程的资源分配处理方法和系统。
背景技术
随着摩尔(Moore)定律的持续应用,单芯片上集成的晶体管数量越来越多,为了充分利用如此多的晶体管以提高性能,同时由于设计复杂度的过高、功耗和温度的限制,微处理器工业界不得不从努力提高乱序执行的单核处理器性能转变为提高片上网络(NoC)多核处理器性能。
多核处理器,甚至众核处理器的出现,使得多线程程序的普及是不可避免,因此,为了在多核处理器上提高应用程序的总体性能,尽可能的开发线程级并行性而不是传统的单线程程序的指令级并行性已经是大势所趋。
在多线程程序中,各个线程分别执行同一个程序的不同部分,并通过共享内存进行交互,为了保证程序的正确性,多个线程不允许同时更新共享数据,这就是互斥原则。
现有技术中,在多线程程序的互斥控制中,使用同步原语(比如,锁(lock)),其将包含有对共享数据访问的代码保护起来,其中被保护起来的代码段称为临界区,这意味着,在同一时间内,只能有一个线程进入临界区,而其他需要访问该临界区的线程必须忙等待,直到该线程离开临界区才能进入。因此,对临界区的冲突访问使得多线程的执行串行化,会大大降低了程序整体性能,并且其他线程等待进入临界区所执行的自旋操作,既占用了处理器资源,也浪费了功耗,而且过多的自旋操作容易影响正确性(比如,活锁)。对于某些具有非常多的数据同步的程序(比如,Mozilla Firefox、MySQL、操作系统内核),临界区不仅降低了性能,而且限制了程序的可扩展性(达到峰值性能所需的线程数)。
同时,在多线程程序的互斥控制中,还使用栅栏(barrier)同步,其对先到达同步点的线程需要等待其他还没有到达该同步点的线程,直到指定数量的线程都到达同步点,所有线程才执行下一个阶段的计算。因此,先到达同步点的线程忙等待的时间在很大程度上是由最后到达该同步点的线程决定的。先到达同步点的线程所执行的自旋等待操作,其中,除了最后一个迭代循环检测到标志位翻转,之前的迭代循环都是无效操作。因此,在栅栏(barrier)同步的互斥控制中,同样也存在既占用了处理器资源,也浪费了功耗的问题。
发明内容
本发明的目的在于提供一种片上网络多核处理器多线程的资源分配处理方法和系统,其有效地提高了多核处理器多线程程序的整体性能和可扩展性。
为实现本发明目的而提供的一种片上网络多核处理器多线程的资源分配处理方法,包括如下步骤:
步骤S100,在片上网络多核处理器多线程程序执行过程中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表;
步骤S200,根据所述互斥控制索引表的地址和数值,将具有相同地址的互斥控制的线程排列进入登记队列,并剥夺所述登记队列中的部分线程的忙等待核资源,分发给其他线程使用。
较优地,所述步骤S100中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表,包括如下步骤:
步骤S110,检测出锁和/或栅栏,并且将锁的地址和数值、和/或栅栏的同步信号量的地址和数值分别存入锁硬件索引表和/或同步信号量硬件索引表。
较优地,所述步骤S200,包括如下步骤:
步骤S210,使用锁硬件索引表记录的锁的地址和数值,并将需要同一把锁的线程进入锁登记队列,根据计时器计时,在计时达到预设值时,剥夺锁登记队列中部分线程所在的忙等待核资源,分发给正在临界区中的线程使用;
较优地,所述步骤S200还包括下列步骤:
步骤S220,使用同步信号量硬件索引表记录同步信号量地址和数值,并将先到达同步点的线程进入同步登记队列,根据计时器计时,在计时达到预设值时,剥夺同步登记队列中部分线程所在的忙等待核资源,分发给未到达同步点的线程使用。
为实现本发明目的还提供一种片上网络多核处理器多线程的资源分配处理系统,包括检测单元,互斥控制索引表,剥夺分发处理单元,其中:
所述检测单元,用于在片上网络多核处理器多线程程序执行过程中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表;
所述互斥控制索引表,用于存储所述检测单元检测出的互斥控制的地址和数值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于龙芯中科技术有限公司,未经龙芯中科技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110460300.4/2.html,转载请声明来源钻瓜专利网。