CN102591722B - 片上网络多核处理器多线程的资源分配处理方法和系统 - Google Patents

片上网络多核处理器多线程的资源分配处理方法和系统 Download PDF

Info

Publication number
CN102591722B
CN102591722B CN201110460300.4A CN201110460300A CN102591722B CN 102591722 B CN102591722 B CN 102591722B CN 201110460300 A CN201110460300 A CN 201110460300A CN 102591722 B CN102591722 B CN 102591722B
Authority
CN
China
Prior art keywords
thread
lock
address
numerical value
resource
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
CN201110460300.4A
Other languages
English (en)
Other versions
CN102591722A (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.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp 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 Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201110460300.4A priority Critical patent/CN102591722B/zh
Publication of CN102591722A publication Critical patent/CN102591722A/zh
Application granted granted Critical
Publication of CN102591722B publication Critical patent/CN102591722B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供一种片上网络多核处理器多线程的资源分配处理方法和系统。该系统包括检测单元,用于在片上网络多核处理器多线程程序执行过程中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表;互斥控制索引表,用于存储所述检测单元检测出的互斥控制的地址和数值;剥夺分发处理单元,用于根据所述互斥控制索引表的地址和数值,将具有相同地址的互斥控制的线程排列进入登记队列,并剥夺所述登记队列中的部分线程的忙等待核资源,分发给其他线程使用。其有效地提高了多核处理器多线程程序的整体性能和可扩展性。

Description

片上网络多核处理器多线程的资源分配处理方法和系统
技术领域
本发明涉及在多核处理器上多线程处理技术领域,尤其涉及到动态改变多核处理器芯片资源分配的一种片上网络(Network-on-chip,NoC)多核处理器多线程的资源分配处理方法和系统。
背景技术
随着摩尔(Moore)定律的持续应用,单芯片上集成的晶体管数量越来越多,为了充分利用如此多的晶体管以提高性能,同时由于设计复杂度的过高、功耗和温度的限制,微处理器工业界不得不从努力提高乱序执行的单核处理器性能转变为提高片上网络(NoC)多核处理器性能。
多核处理器,甚至众核处理器的出现,使得多线程程序的普及是不可避免,因此,为了在多核处理器上提高应用程序的总体性能,尽可能的开发线程级并行性而不是传统的单线程程序的指令级并行性已经是大势所趋。
在多线程程序中,各个线程分别执行同一个程序的不同部分,并通过共享内存进行交互,为了保证程序的正确性,多个线程不允许同时更新共享数据,这就是互斥原则。
现有技术中,在多线程程序的互斥控制中,使用同步原语(比如,锁(lock)),其将包含有对共享数据访问的代码保护起来,其中被保护起来的代码段称为临界区,这意味着,在同一时间内,只能有一个线程进入临界区,而其他需要访问该临界区的线程必须忙等待,直到该线程离开临界区才能进入。因此,对临界区的冲突访问使得多线程的执行串行化,会大大降低了程序整体性能,并且其他线程等待进入临界区所执行的自旋操作,既占用了处理器资源,也浪费了功耗,而且过多的自旋操作容易影响正确性(比如,活锁)。对于某些具有非常多的数据同步的程序(比如,Mozilla Firefox、MySQL、操作系统内核),临界区不仅降低了性能,而且限制了程序的可扩展性(达到峰值性能所需的线程数)。
同时,在多线程程序的互斥控制中,还使用栅栏(barrier)同步,其对先到达同步点的线程需要等待其他还没有到达该同步点的线程,直到指定数量的线程都到达同步点,所有线程才执行下一个阶段的计算。因此,先到达同步点的线程忙等待的时间在很大程度上是由最后到达该同步点的线程决定的。先到达同步点的线程所执行的自旋等待操作,其中,除了最后一个迭代循环检测到标志位翻转,之前的迭代循环都是无效操作。因此,在栅栏(barrier)同步的互斥控制中,同样也存在既占用了处理器资源,也浪费了功耗的问题。
发明内容
本发明的目的在于提供一种片上网络多核处理器多线程的资源分配处理方法和系统,其有效地提高了多核处理器多线程程序的整体性能和可扩展性。
为实现本发明目的而提供的一种片上网络多核处理器多线程的资源分配处理方法,包括如下步骤:
步骤S100,在片上网络多核处理器多线程程序执行过程中,检测出锁和栅栏,并且将锁的地址和数值、和栅栏的同步信号量的地址和数值分别存入锁硬件索引表和同步信号量硬件索引表;
步骤S200,根据所述锁硬件索引表和同步信号量硬件索引表的地址和数值,将具有相同地址的线程排列进入登记队列,并剥夺所述登记队列中的部分线程的忙等待核资源,分发给其他线程使用;其中,所述剥夺的核资源为剥夺运算部件和一级缓存资源。
较优地,所述步骤S200,包括如下步骤:
步骤S210,使用锁硬件索引表记录的锁的地址和数值,并将需要同一把锁的线程进入锁登记队列,根据计时器计时,在计时达到预设值时,剥夺锁登记队列中部分线程所在的忙等待核资源,分发给正在临界区中的线程使用;
较优地,所述步骤S200还包括下列步骤:
步骤S220,使用同步信号量硬件索引表记录同步信号量地址和数值,并将先到达同步点的线程进入同步登记队列,根据计时器计时,在计时达到预设值时,剥夺同步登记队列中部分线程所在的忙等待核资源,分发给未到达同步点的线程使用。
为实现本发明目的还提供一种片上网络多核处理器多线程的资源分配处理系统,包括检测单元,互斥控制索引表,剥夺分发处理单元,其中:
所述检测单元,用于在片上网络多核处理器多线程程序执行过程中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表,所述互斥控制的地址和数值,包括锁的地址和数值和/或栅栏的同步信号量的地址和数值;所述互斥控制索引表,包括锁硬件索引表和/或同步信号量硬件索引表;
所述互斥控制索引表,用于存储所述检测单元检测出的互斥控制的地址和数值;
所述剥夺分发处理单元,用于根据所述互斥控制索引表的地址和数值,将具有相同地址的互斥控制的线程排列进入登记队列,并剥夺所述登记队列中的部分线程的忙等待核资源,分发给其他线程使用,从而加快临界区的执行;其中,所述剥夺的核资源为剥夺运算部件和一级缓存资源。
较优地,所述剥夺分发处理单元,包括锁线程剥夺处理子单元,栅栏线程剥夺子处理单元和计时器,其中:
所述锁线程剥夺处理子单元,用于使用锁硬件索引表记录的锁的地址和数值,并将需要同一把锁的线程进入锁登记队列,根据计时器计时,在计时达到预设值时,剥夺锁登记队列中部分线程所在的忙等待核资源,分发给正在临界区中的线程使用;
所述栅栏线程剥夺子处理单元,用于使用同步信号量硬件索引表记录同步信号量地址和数值,并将先到达同步点的线程进入同步登记队列,根据计时器计时,在计时达到预设值时,剥夺同步登记队列中部分线程所在的忙等待核资源,分发给未到达同步点的线程使用;
所述计时器,用于进行计时。
较优地,在剥夺所述一级缓存时,采用最近最少使用页面替换策略,并且按预设的数量限定可剥夺缓存的数量进行剥夺。
较优地,所述锁登记队列或者所述同步登记队列的每一项是32位向量,每一位顺序对应不同的线程。
本发明的有益效果:本发明的片上网络多核处理器多线程的资源分配处理方法和系统,通过检测出由于互斥控制(如锁(lock)和栅栏(barrier)机制)导致的忙等待处理器核,利用忙等待核的资源加速临界区和同步点之间的线程的执行,从而提高程序的整体性能和可扩展性。
附图说明
图1为本发明实施例的片上网络多核处理器多线程的资源分配处理系统结构示意图;
图2为本发明片上网络多核处理器多线程的资源分配处理方法进行锁剥夺执行多线程程序运行与传统的多线程程序运行效果对比图;
图3为本发明片上网络多核处理器多线程的资源分配处理方法进行同步资源剥夺执行多线程程序运行与传统的多线程程序运行效果对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明片上网络多核处理器多线程的资源分配处理方法和系统的实现进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
作为一种可实施方式,本发明实施例的片上网络多核处理器多线程的资源分配处理方法,包括如下步骤:
步骤S100,在片上网络多核处理器多线程程序执行过程中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表;
步骤S200,根据所述互斥控制索引表的地址和数值,将具有相同地址的互斥控制的线程排列进入登记队列,并剥夺所述登记队列中的部分线程的忙等待核资源,分发给其他线程使用,从而加快临界区的执行。
较佳地,作为一种可实施方式,所述步骤S100中,所述互斥控制的地址和数值,包括锁的地址和数值和/或栅栏的同步信号量的地址和数值;所述互斥控制索引表,包括锁硬件索引表和/或同步信号量硬件索引表。
较佳地,作为一种可实施方式,所述剥夺的核资源为剥夺运算部件和一级缓存(L1cache)资源等;
作为一种可实施方式,所述运算部件包括但不限于浮点和整数加法器、乘法器和除法器;
作为一种可实施方式,所述一级缓存(L1cache)包括但不限于指令缓存(Instruction cache,Icache)和数据缓存(Data cache,Dcache)。
在加速临界区执行和加快关键线程到达同步点的方法中涉及到的资源,作为一种可实施方式,可以是运算部件和一级缓存(L1cache)等。运算部件包括浮点和整数加法器、乘法器和除法器。一级缓存(L1cache)包括指令缓存(Instruction cache,Icache)和数据缓存(Data cache,Dcache)。
通过增加处理器核运算部件的个数,使得每一拍从保留站发射到功能部件的指令数增多,等同于增大了指令窗口的大小。
通过增加处理器一级缓存(L1cache)大小,大大加快了处理器核取指和取数速度。
为了避免被剥夺资源的处理器核恢复使用它自己的资源时产生不必要的开销,更佳地,在剥夺所述一级缓存(L1cache)时,采用最近最少使用页面(Least Recently Used,LRU)替换策略,并且按预设的数量限定可剥夺缓存(cache)的数量进行剥夺。
较佳地,作为一种可实施方式,所述步骤S100中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表,包括如下步骤:
步骤S110,检测出锁(lock)和/或栅栏(barrier),并且将锁的地址和数值、和/或栅栏的同步信号量的地址和数值分别存入锁硬件索引表和/或同步信号量硬件索引表。
作为一种可实施方式,本发明实施例中,可通过利用ll/sc指令判定检测锁。
由于实现锁的汇编代码中包含有特殊的ll/sc指令,所以本发明实施例中,通过检测ll/sc指令来判定锁,当某一把锁被第一次使用,抢锁必定成功,将该锁的地址和数值存入锁硬件索引表。
所述步骤S200,包括如下步骤:
步骤S210,使用锁硬件索引表记录的锁的地址和数值,并将需要同一把锁的线程进入锁登记队列,根据计时器计时,在计时达到预设值时,剥夺锁锁登记队列中部分线程所在的忙等待核资源,分发给正在临界区中的线程使用,从而加速临界区的执行;
较佳地,作为一种可实施方式,所述步骤S210中,包括如下步骤:
步骤S211,在该锁的地址和数值存入锁硬件索引表时,启动计时器开始计时,当检测出抢同一把锁的其他线程时,如果锁此时不可用,则将该同一把锁的其他线程标记到锁登记队列;
步骤S212,当原来占用该锁的线程还没有离开临界区,而计时器到达预设数值时,则从登记队列的队尾中取出一个或者多个线程,剥夺所述队尾取出的一个或者多个线程的部分资源给正在临界区中的线程使用,同时将计时器归零并重新开始计时;
步骤S213,当原来占用该锁的线程离开临界区,则从登记队列的队头中取出一个线程,让所述队头取出的线程进入临界区作为新的占用该锁的线程,同时将剥夺的资源转交给所述队头取出的线程,并将该离开临界区的线程从锁硬件索引表删除,计时器归零后重新开始计时,返回步骤S212,直至锁硬件索引表为空后结束返回。
步骤S220,使用同步信号量硬件索引表记录同步信号量地址和数值,并将先到达同步点的线程进入同步登记队列,根据计时器计时,在计时达到预设值时,剥夺同步登记队列中部分线程所在的忙等待核资源,分发给未到达同步点的线程使用,从而加速未到达同步点的线程的执行。
栅栏的功能是迫使先到达同步点的线程等待,直到所有线程都到达同步点后才能继续执行。
栅栏检测是一种现有技术,因此,在本发明实施例中,不再一一详细描述。
较佳地,作为一种可实施方式,所述步骤S220中,包括如下步骤:
步骤S221,当第一个线程到达栅栏(barrier),在同步信号量硬件索引表中记录同步信号量的地址和数值时,启动计时器开始计时;
步骤S222,当其他线程到达栅栏(barrier),则标记登记队列的相应位;
步骤S223,当计时器到达某一预设的数值,而该栅栏(barrier)指定数量的线程还没有完全到达,则从登记队列中取出队尾的一个或者多个线程,剥夺它们的部分资源给未到达该栅栏(barrier)的线程使用;
步骤S224,同时计时器归零后重新开始计时,返回步骤S223,直至所述预先指定数量的线程都到达栅栏后进入步骤S225;
步骤S225,当所有预先指定数量的线程都到达了栅栏(barrier),则将同步信号量硬件登记表清空并返回。
作为一种可实施方式,在系统初始化时,将计时器初始化归零。
更佳地,所述锁登记队列或者所述同步登记队列的每一项是32位向量,每一位顺序对应不同的线程。
相应地,本发明实施例的一种片上网络多核处理器多线程的资源分配处理系统,如图3所示,其包括检测单元10,互斥控制索引表30,剥夺分发处理单元20,其中:
所述检测单元10,用于在片上网络多核处理器多线程程序执行过程中,检测出互斥控制的地址和数值,并将地址和数值写入互斥控制索引表30;
所述互斥控制索引表30,用于存储所述检测单元10检测出的互斥控制的地址和数值;
所述剥夺分发处理单元20,用于根据所述互斥控制索引表的地址和数值,将具有相同地址的互斥控制的线程排列进入登记队列,并剥夺所述登记队列中的部分线程的忙等待核资源,分发给其他线程使用,从而加快临界区的执行。
较佳地,所述较佳地,作为一种可实施方式,所述步骤S100中,所述互斥控制的地址和数值,包括锁的地址和数值和/或栅栏的同步信号量的地址和数值;所述互斥控制索引表,包括锁硬件索引表和/或同步信号量硬件索引表。
较佳地,作为一种可实施方式,所述剥夺的核资源为剥夺运算部件和一级缓存(L1cache)资源等;
所述运算部件包括但不限于浮点和整数加法器、乘法器和除法器;
所述一级缓存(L1cache)包括但不限于指令缓存(Instruction cache,Icache)和数据缓存(Data cache,Dcache)。
较佳地,作为一种可实施方式,所述剥夺分发处理单元20,包括锁线程剥夺处理子单元201,栅栏线程剥夺子处理单元202和计时器203,其中:
所述锁线程剥夺处理子单元201,用于使用锁硬件索引表记录的锁的地址和数值,并将需要同一把锁的线程进入锁登记队列,根据计时器202计时,在计时达到预设值时,剥夺锁锁登记队列中部分线程所在的忙等待核资源,分发给正在临界区中的线程使用,加速临界区的执行;
所述栅栏线程剥夺子处理单元202,用于使用同步信号量硬件索引表记录同步信号量地址和数值,并将先到达同步点的线程进入同步登记队列,根据计时器202计时,在计时达到预设值时,剥夺同步登记队列中部分线程所在的忙等待核资源,分发给未到达同步点的线程使用,加速未到达同步点的线程的执行;
所述计时器202,用于进行计时。
本发明实施例的片上网络多核处理器多线程的资源分配处理系统,其与本发明实施例的片上网络多核处理器多线程的资源分配处理方法工作过程相同,因此,在本发明实施例中,不再一一详细描述。
如图4为本发明实施例片上网络多核处理器多线程的资源分配处理方法和系统执行的多线程程序通过检测锁(lock)并剥夺核资源而加快运行与传统的多线程程序运行效果对比图。
图5为本发明实施例片上网络多核处理器多线程的资源分配处理方法通过检测栅栏((barrier)剥夺核资源而加快运行执行与传统的多线程程序运行效果对比图。
其中,检测环境如表1所示。
表1为本发明资源分配检测运行环境表
clock frequency 2GHz
issue width 2-wide
processor style In-order
pipeline stages 5
L1cache(I and D) 32KB,2-way set associative
L2cache 256KB,8-way set associative
Coherence MESI,On-chip distributed directory
本发明实施例的片上网络多核处理器多线程的资源分配处理方法和系统,通过使用硬件检测出由于锁(lock)和栅栏(barrier)机制导致的忙等待处理器核,利用忙等待核的资源加速临界区和同步点之间的一个或者多个影响应用程序最终运行时间的线程的关键线程(比如涉及到锁(lock)的进入临界区的线程和涉及到栅栏(barrie)的还没有到达同步点的线程)的执行,从而提高程序的整体性能和可扩展性。最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。

Claims (10)

1.一种片上网络多核处理器多线程的资源分配处理方法,其特征在于,包括如下步骤:
步骤S100,在片上网络多核处理器多线程程序执行过程中,检测出锁的地址和数值,并将地址和数值写入锁硬件索引表;
步骤S200,根据所述锁硬件索引表中的地址和数值,将具有相同地址的锁的线程排列进入锁登记队列,并剥夺所述锁登记队列中的部分线程的忙等待核资源,分发给其他线程使用,具体包括如下步骤:
步骤S211,在该锁的地址和数值存入锁硬件索引表时,启动计时器开始计时,当检测出抢同一把锁的其他线程时,如果锁此时不可用,则将该同一把锁的其他线程标记到登记队列;
步骤S212,当原来占用该锁的线程还没有离开临界区,而计时器到达预设数值时,则从登记队列的队尾中取出部分线程,剥夺所述队尾取出的部分线程的忙等待核资源给正在临界区中的线程使用,同时将计时器归零并重新开始计时;
步骤S213,当原来占用该锁的线程离开临界区,则从登记队列的队头中取出一个线程,让所述队头取出的线程进入临界区作为新的占用该锁的线程,同时将剥夺的资源转交给所述队头取出的线程,并将该离开临界区的线程从锁登记队列删除,计时器归零后重新开始计时,返回步骤S212,直至锁登记队列为空后结束返回。
2.根据权利要求1所述的片上网络多核处理器多线程的资源分配处理方法,其特征在于,所述剥夺的核资源为剥夺运算部件和一级缓存资源;
在剥夺所述一级缓存时,采用最近最少使用页面替换策略,并且按预设的数量限定可剥夺缓存的数量进行剥夺。
3.一种片上网络多核处理器多线程的资源分配处理系统,其特征在于,包括检测单元、锁硬件索引表和剥夺分发处理单元:
所述检测单元,用于在片上网络多核处理器多线程程序执行过程中,检测出锁的地址和数值,并将地址和数值写入锁硬件索引表;
所述锁硬件索引表,用于存储所述检测单元检测出的锁的地址和数值;
剥夺分发处理单元,用于根据所述锁硬件索引表中的地址和数值,将具有相同地址的锁的线程排列进入锁登记队列,并剥夺所述锁登记队列中的部分线程的忙等待核资源,分发给其他线程使用;所述剥夺分发处理单元,具体用于:
在该锁的地址和数值存入锁硬件索引表时,启动计时器开始计时,当检测出抢同一把锁的其他线程时,如果锁此时不可用,则将该同一把锁的其他线程标记到登记队列;
当原来占用该锁的线程还没有离开临界区,而计时器到达预设数值时,则从登记队列的队尾中取出一个或者多个线程,剥夺所述队尾取出部分线程的忙等待核资源给正在临界区中的线程使用,同时将计时器归零并重新开始计时;
当原来占用该锁的线程离开临界区,则从登记队列的队头中取出一个线程,让所述队头取出的线程进入临界区作为新的占用该锁的线程,同时将剥夺的资源转交给所述队头取出的线程,并将该离开临界区的线程从锁登记队列删除,计时器归零后重新开始计时,直至锁登记队列为空后结束返回。
4.根据权利要求3所述的片上网络多核处理器多线程的资源分配处理系统,其特征在于,所述剥夺分发处理单元,还用于,所述剥夺的核资源为剥夺运算部件和一级缓存资源;
在剥夺所述一级缓存时,采用最近最少使用页面替换策略,并且按预设的数量限定可剥夺缓存的数量进行剥夺。
5.根据权利要求3所述的片上网络多核处理器多线程的资源分配处理系统,其特征在于,所述锁登记队列的每一项是32位向量,每一位顺序对应不同的线程。
6.一种片上网络多核处理器多线程的资源分配处理方法,其特征在于,包括如下步骤:
步骤S210,在片上网络多核处理器多线程程序执行过程中,检测出栅栏的地址和数值,并将地址和数值写入同步信号量硬件索引表;
步骤S220,根据所述同步信号量硬件索引表中的地址和数值,将具有相同地址的栅栏的线程排列进入同步登记队列,并剥夺所述同步登记队列中的部分线程的忙等待核资源,分发给其他线程使用,具体包括如下步骤:
步骤S221,当第一个线程到达栅栏,在同步信号量硬件索引表中记录同步信号量的地址和数值时,启动计时器开始计时;
步骤S222,当其他线程到达栅栏,则标记登记队列的相应位;
步骤S223,当计时器到达某一预设的数值,而该栅栏指定数量的线程还没有完全到达,则从登记队列中取出队尾的部分线程,剥夺它们的忙等待核资源给未到达该栅栏的线程使用;
步骤S224计时器归零后重新开始计时,返回步骤S223,直至预先指定数量的线程都到达栅栏后进入步骤S225;
步骤S225,当所有预先指定数量的线程都到达栅栏,则将同步信号量硬件登记表清空并返回。
7.根据权利要求6所述的片上网络多核处理器多线程的资源分配处理方法,其特征在于,所述剥夺的核资源为剥夺运算部件和一级缓存资源;
在剥夺所述一级缓存时,采用最近最少使用页面替换策略,并且按预设的数量限定可剥夺缓存的数量进行剥夺。
8.一种片上网络多核处理器多线程的资源分配处理系统,其特征在于,包括检测单元,同步信号量硬件索引表,剥夺分发处理单元,其中:
所述检测单元,用于在片上网络多核处理器多线程程序执行过程中,检测出栅栏的地址和数值,并将地址和数值写入同步信号量硬件索引表;
所述同步信号量硬件索引表,用于存储所述检测单元检测出的栅栏的地址和数值;
所述剥夺分发处理单元,用于根据所述同步信号量硬件索引表中的地址和数值,将具有相同地址的栅栏的线程排列进入同步登记队列,并剥夺所述同步登记队列中的部分线程的忙等待核资源,分发给其他线程使用;所述剥夺分发处理单元,具体用于:
当第一个线程到达栅栏,在同步信号量硬件索引表中记录同步信号量的地址和数值时,启动计时器开始计时;
当其他线程到达栅栏,则标记登记队列的相应位;
当计时器到达某一预设的数值,而该栅栏指定数量的线程还没有完全到达,则从登记队列中取出队尾的一个或者多个线程,剥夺它们的部分资源给未到达该栅栏的线程使用;
计时器归零后重新开始计时,直至预先指定数量的线程都到达栅栏;
当所有预先指定数量的线程都到达栅栏,则将同步信号量硬件登记表清空并返回。
9.根据权利要求8所述的片上网络多核处理器多线程的资源分配处理系统,其特征在于,所述剥夺的核资源为剥夺运算部件和一级缓存资源;
在剥夺所述一级缓存时,采用最近最少使用页面替换策略,并且按预设的数量限定可剥夺缓存的数量进行剥夺。
10.根据权利要求8所述的片上网络多核处理器多线程的资源分配处理系统,其特征在于,所述同步登记队列的每一项是32位向量,每一位顺序对应不同的线程。
CN201110460300.4A 2011-12-31 2011-12-31 片上网络多核处理器多线程的资源分配处理方法和系统 Active CN102591722B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110460300.4A CN102591722B (zh) 2011-12-31 2011-12-31 片上网络多核处理器多线程的资源分配处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110460300.4A CN102591722B (zh) 2011-12-31 2011-12-31 片上网络多核处理器多线程的资源分配处理方法和系统

Publications (2)

Publication Number Publication Date
CN102591722A CN102591722A (zh) 2012-07-18
CN102591722B true CN102591722B (zh) 2014-06-25

Family

ID=46480429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110460300.4A Active CN102591722B (zh) 2011-12-31 2011-12-31 片上网络多核处理器多线程的资源分配处理方法和系统

Country Status (1)

Country Link
CN (1) CN102591722B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102549B (zh) 2013-04-01 2017-12-15 华为技术有限公司 一种实现多线程互斥操作的方法、装置和芯片
CN104932947B (zh) * 2014-03-17 2018-06-05 华为技术有限公司 一种栅栏同步方法及设备
US9841999B2 (en) * 2015-07-31 2017-12-12 Futurewei Technologies, Inc. Apparatus and method for allocating resources to threads to perform a service
CN106484537B (zh) 2016-09-30 2019-07-19 网易(杭州)网络有限公司 一种cpu核资源的分配方法和设备
CN108052396B (zh) * 2017-11-27 2021-05-07 深圳市恒扬数据股份有限公司 一种资源分配方法及系统
CN109558248B (zh) * 2018-12-11 2020-06-02 中国海洋大学 一种用于确定面向海洋模式计算的资源分配参数的方法及系统
CN111367467B (zh) * 2018-12-26 2022-11-04 浙江宇视科技有限公司 一种存储资源挂载方法、装置、服务器及分布式系统
CN110011936B (zh) * 2019-03-15 2023-02-17 北京星网锐捷网络技术有限公司 基于多核处理器的线程调度方法及装置
CN111897647B (zh) * 2020-09-29 2021-01-26 杭州未名信科科技有限公司 一种多核系统中多线程调度方法、装置及设备
CN117171102B (zh) * 2023-09-07 2024-01-26 山东九州信泰信息科技股份有限公司 一种多线程无锁高速写文件的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051281A (zh) * 2007-05-16 2007-10-10 杭州华三通信技术有限公司 多cpu对临界资源进行互斥访问的方法和装置
CN101963922A (zh) * 2010-09-29 2011-02-02 用友软件股份有限公司 任务处理方法和装置
CN102147751A (zh) * 2011-04-26 2011-08-10 北京新媒传信科技有限公司 一种多进程间的通信方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101051281A (zh) * 2007-05-16 2007-10-10 杭州华三通信技术有限公司 多cpu对临界资源进行互斥访问的方法和装置
CN101963922A (zh) * 2010-09-29 2011-02-02 用友软件股份有限公司 任务处理方法和装置
CN102147751A (zh) * 2011-04-26 2011-08-10 北京新媒传信科技有限公司 一种多进程间的通信方法

Also Published As

Publication number Publication date
CN102591722A (zh) 2012-07-18

Similar Documents

Publication Publication Date Title
CN102591722B (zh) 片上网络多核处理器多线程的资源分配处理方法和系统
EP3320427B1 (en) Device and processing architecture for instruction memory efficiency
US8180977B2 (en) Transactional memory in out-of-order processors
US10019263B2 (en) Reordered speculative instruction sequences with a disambiguation-free out of order load store queue
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
US7360218B2 (en) System and method for scheduling compatible threads in a simultaneous multi-threading processor using cycle per instruction value occurred during identified time interval
EP2862072B1 (en) A load store buffer agnostic to threads implementing forwarding from different threads based on store seniority
US10592300B2 (en) Method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization
US9904552B2 (en) Virtual load store queue having a dynamic dispatch window with a distributed structure
US9965277B2 (en) Virtual load store queue having a dynamic dispatch window with a unified structure
US8683180B2 (en) Intermediate register mapper
US9870226B2 (en) Control of switching between executed mechanisms
EP2862063B1 (en) A lock-based and synch-based method for out of order loads in a memory consistency model using shared memory resources
US9990198B2 (en) Instruction definition to implement load store reordering and optimization
WO2013081556A1 (en) Polymorphic heterogeneous multi-core architecture
US20120166777A1 (en) Method and apparatus for switching threads
US10545765B2 (en) Multi-level history buffer for transaction memory in a microprocessor
US11194574B2 (en) Merging memory ordering tracking information for issued load instructions
US20070162723A1 (en) Technique for reducing traffic in an instruction fetch unit of a chip multiprocessor
US8051275B2 (en) Result path sharing between a plurality of execution units within a processor
CN111857830A (zh) 一种提前转发指令数据的通路设计方法、系统及存储介质
US20150095591A1 (en) Method and system for filtering the stores to prevent all stores from having to snoop check against all words of a cache
US20240020122A1 (en) Executing phantom loops in a microprocessor
Tran et al. Transcending hardware limits with software out-of-order execution
Mameesh et al. Speculative-Aware Execution: A simple and efficient technique for utilizing multi-cores to improve single-thread performance

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100190 No. 10 South Road, Zhongguancun Academy of Sciences, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.

CP03 Change of name, title or address