CN102629192A - 用于片上多核并发多线程处理器的指令包及其操作方法 - Google Patents
用于片上多核并发多线程处理器的指令包及其操作方法 Download PDFInfo
- Publication number
- CN102629192A CN102629192A CN2012101171107A CN201210117110A CN102629192A CN 102629192 A CN102629192 A CN 102629192A CN 2012101171107 A CN2012101171107 A CN 2012101171107A CN 201210117110 A CN201210117110 A CN 201210117110A CN 102629192 A CN102629192 A CN 102629192A
- Authority
- CN
- China
- Prior art keywords
- instruction
- thread
- bag
- processor
- core
- 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.)
- Pending
Links
Images
Landscapes
- Microcomputers (AREA)
Abstract
本发明公开了一种用于片上多核并发多线程处理器的指令包及其操作方法,本发明采用一种创新的硬件系统,该系统只需要1个片上多核处理器,该处理器可以取代CPU,和GPGPU的功能。该片上多核处理器是在一个芯片内,集成了多个结构和功能一样的处理器核,这种系统也称为同构多核系统。并且,每个处理器核本身都是一个并发多线程处理器。本发明具有功耗低、成本低的优点。
Description
技术领域
本发明属于计算机技术领域,涉及一种用于片上多核并发多线程处理器的指令包及其操作方法。
背景技术
一般来说,程序都是串行执行的,为提高串行程序的运行速度,需要对该程序运行速度较慢的瓶颈部分,做并行计算的优化。也就是说,一个原本的串行程序,在经过并行计算的优化后,会变成一个串行并行混合的程序。
为执行以上所描述的串行并行混合的程序,目前主流的台式机系统是这样组成的,如图1所示。可以看出,该系统需要至少1个CPU,和至少1个GPGPU。这种配置对于嵌入式系统来说,存在功耗高、成本高的缺点。
发明内容
为克服现有技术中存在的上述缺点,本发明采用一种创新的硬件系统,该系统只需要1个片上多核处理器,该处理器可以取代CPU,和GPGPU的功能。该片上多核处理器是在一个芯片内,集成了多个结构和功能一样的处理器核,这种系统也称为同构多核系统。并且,每个处理器核本身都是一个并发多线程处理器(Simultaneous multithreading),可用于片上多核并发多线程处理器,实现对多个处理器核的多个硬件线程的开启、关闭等控制功能。
为执行以上所描述的串行并行混合的程序,该片上多核处理器需要支持这样一种应用场合。在该应用场合中,需要至少1个线程作为主线程,该主线程执行程序中的串行控制部分,用来取代台式机系统中的CPU的功能;需要多个线程作为分支线程,这些分支线程执行程序中的并行计算部分,用来取代台式机系统中的GPGPU的功能。
本发明提出一种用于片上多核并发多线程处理器的指令包,可以让片上多核处理器支持上述的应用场合。
其技术方案为:
一种用于片上多核并发多线程处理器的指令包,由包体、包尾组成,
所述包体由多条指令组成,所述指令是普通指令;
所述包尾由多条指令组成,所述指令是特殊指令,包括当前线程条件唤醒指令、目标线程PC指令、目标线程激活指令、当前线程休眠指令。
所述指令包还包括包头。
所述当前线程休眠指令为1条。
一种本发明所述的指令包的操作方法,包括以下步骤:
1)主线程运行;
2)主线程激活分支线程,然后,主线程休眠;
3)分支线程运行;
4)分支线程休眠,由于分支线程的休眠,主线程会被条件唤醒。
步骤2)中所述指令包的包尾的组成为:
当前线程条件唤醒指令:1条或多条
目标线程PC指令:1条或多条
目标线程激活指令:1条或多条
当前线程休眠指令:1条。
步骤4)中所述指令包的包尾的组成为:
当前线程条件唤醒指令:0条
目标线程PC指令:0条
目标线程激活指令:0条
当前线程休眠指令:1条。
与现有技术相比,本发明的有益效果为:
本发明采用一种创新的硬件系统,该系统只需要1个片上多核处理器,该处理器可以取代CPU,和GPGPU的功能。该片上多核处理器是在一个芯片内,集成了多个结构和功能一样的处理器核,这种系统也称为同构多核系统。并且,每个处理器核本身都是一个并发多线程处理器(Simultaneous multithreading),可用于片上多核并发多线程处理器,实现对多个处理器核的多个硬件线程的开启、关闭等控制功能。本发明的技术方案具有功耗低、成本低的优点。
附图说明
图1CPU+GPGPU的台式机系统的组成示意图;
图2本发明使用的片上多核并发多线程处理器系统的组成示意图;
图3指令包的结构图;
图4当前线程条件唤醒指令示意图,其中:Opcode:操作码,CID:处理器核的ID号,TID:由CID指向的处理器核的线程ID号,Reserve:保留位;
图5目标线程PC指令示意图,其中Opcode:操作码,ADDR:地址;
图6目标线程激活指令示意图,其中Opcode:操作码,CID:处理器核的ID号,TID:由CID指向的处理器核的线程ID号,Reserve:保留位;
图7当前线程休眠指令示意图,其中Opcode:操作码,Reserve:保留位;
图8主线程、分支线程运行示意图。
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细地说明。
本发明一种用于片上多核并发多线程处理器的指令包的结构如图3所示。该指令包由多条普通指令和多条特殊指令组成。其中的特殊指令是本发明的关键。
指令包由包体、包尾组成。
包体由多条指令组成,这些指令是普通指令。
包尾由多条指令组成,这些指令是特殊指令,也是本发明提出的关键指令。
包头可以有也可以没有,可根据需要决定。这里的图例是没有包头。
包体由多条普通指令组成,这些普通指令是一般处理器常有的指令,例如算术运算指令,内存访问指令,条件跳转指令等等,这些普通指令与本发明无关。
包尾由多条特殊指令组成,每种特殊指令的描述如下:
当前线程条件唤醒指令,如图4所示:
Opcode:操作码,是标识该指令的唯一标识符。
CID:处理器核的ID号。
TID:由CID指向的处理器核的线程ID号采用独热码编码。
Reserve:保留位。
该指令表示为了唤醒当前线程,需要哪些目标线程(非当前线程)给该当前线程发送中断。例如:如果目标线程是核1的线程2、3,和核2的线程3、4,那么,需要两条该指令:第一条指令的CID=0x1,TID=0x6;第二条指令的CID=0x2,TID=0x18。
在指令包中,该指令可以是零条或多条。
目标线程PC指令,如图5所示:
Opcode:操作码,是标识该指令的唯一标识符。
PC:设置一个地址,当目标线程被激活后,目标线程会从该地址处开始读取和执行指令。
在指令包中,该指令可以是零条或多条。
目标线程激活指令,如图6所示:
Opcode:操作码,是标识该指令的唯一标识符。
CID:处理器核的ID号。
TID:由CID指向的处理器核的线程ID号,采用独热码编码。
Reserve:保留位。
该指令表示激活哪个处理器核中的哪个线程,该线程被激活后,就从一个地址开始读取和执行指令,而这个地址,是由之前的目标线程PC指令来设置的。
在指令包中,该指令可以是零条或多条。
当前线程休眠指令,如图7所示:
Opcode:操作码,是标识该指令的唯一标识符。
Reserve:保留位。
该指令表示会让当前进程进入休眠状态,当进入休眠状态后,只有其他线程可以唤醒它。唤醒它的条件,由之前的当前线程条件唤醒指令来设置。
在指令包中,该指令有且仅有一条。
接下来,描述应该如何运用该指令包,来达到运行串行并行混合程序的效果。
程序中的串行部分,是用主线程来运行的;程序中的并行部分,是用多个分支线程来运行的。如图8所示。步骤如下:
1)主线程运行。
2)主线程激活分支线程,然后,主线程休眠。
3)分支线程运行。
4)分支线程休眠。由于分支线程的休眠,主线程会被条件唤醒。
对于步骤2),指令包的包尾的组成是这样的:
当前线程条件唤醒指令:1条或多条
目标线程PC指令:1条或多条
目标线程激活指令:1条或多条
当前线程休眠指令:1条
对于步骤4),指令包的包尾的组成是这样的:
当前线程条件唤醒指令:0条
目标线程PC指令:0条
目标线程激活指令:0条
当前线程休眠指令:1条
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。
Claims (6)
1.一种用于片上多核并发多线程处理器的指令包,其特征在于,由包体、包尾组成,
所述包体由多条指令组成,所述指令是普通指令;
所述包尾由多条指令组成,所述指令是特殊指令,包括当前线程条件唤醒指令、目标线程PC指令、目标线程激活指令、当前线程休眠指令。
2.根据权利要求1所述的指令包,其特征在于,所述指令包还包括包头。
3.根据权利要求1所述的指令包,其特征在于,所述当前线程休眠指令为1条。
4.一种权利要求1-3任一项所述的指令包的操作方法,其特征在于,包括以下步骤:
1)主线程运行;
2)主线程激活分支线程,然后,主线程休眠;
3)分支线程运行;
4)分支线程休眠,由于分支线程的休眠,主线程会被条件唤醒。
5.根据权利要求4所述的方法,其特征在于,步骤2)中所述指令包的包尾的组成为:
当前线程条件唤醒指令:1条或多条
目标线程PC指令:1条或多条
目标线程激活指令:1条或多条
当前线程休眠指令:1条。
6.根据权利要求4所述的方法,其特征在于,步骤4)中所述指令包的包尾的组成为:
当前线程条件唤醒指令:0条
目标线程PC指令:0条
目标线程激活指令:0条
当前线程休眠指令:1条。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101171107A CN102629192A (zh) | 2012-04-20 | 2012-04-20 | 用于片上多核并发多线程处理器的指令包及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101171107A CN102629192A (zh) | 2012-04-20 | 2012-04-20 | 用于片上多核并发多线程处理器的指令包及其操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102629192A true CN102629192A (zh) | 2012-08-08 |
Family
ID=46587453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101171107A Pending CN102629192A (zh) | 2012-04-20 | 2012-04-20 | 用于片上多核并发多线程处理器的指令包及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629192A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018014300A1 (zh) * | 2016-07-21 | 2018-01-25 | 张升泽 | 多核芯片的功率实现方法及系统 |
CN109117333A (zh) * | 2018-09-29 | 2019-01-01 | 深圳比特微电子科技有限公司 | 计算芯片及其操作方法 |
CN114281751A (zh) * | 2020-09-28 | 2022-04-05 | 上海商汤智能科技有限公司 | 芯片系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1685315A (zh) * | 2002-06-03 | 2005-10-19 | 英特尔公司 | 支持处理器上的多并发执行上下文的体系结构 |
CN1853166A (zh) * | 2003-09-30 | 2006-10-25 | 英特尔公司 | 用于多线程的线程管理的方法和装置 |
CN101788922A (zh) * | 2009-01-22 | 2010-07-28 | 国际商业机器公司 | 基于辅助线程实现事务存储系统的方法和装置 |
-
2012
- 2012-04-20 CN CN2012101171107A patent/CN102629192A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1685315A (zh) * | 2002-06-03 | 2005-10-19 | 英特尔公司 | 支持处理器上的多并发执行上下文的体系结构 |
CN1853166A (zh) * | 2003-09-30 | 2006-10-25 | 英特尔公司 | 用于多线程的线程管理的方法和装置 |
CN101788922A (zh) * | 2009-01-22 | 2010-07-28 | 国际商业机器公司 | 基于辅助线程实现事务存储系统的方法和装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018014300A1 (zh) * | 2016-07-21 | 2018-01-25 | 张升泽 | 多核芯片的功率实现方法及系统 |
CN109117333A (zh) * | 2018-09-29 | 2019-01-01 | 深圳比特微电子科技有限公司 | 计算芯片及其操作方法 |
CN114281751A (zh) * | 2020-09-28 | 2022-04-05 | 上海商汤智能科技有限公司 | 芯片系统 |
CN114281751B (zh) * | 2020-09-28 | 2024-01-02 | 上海商汤智能科技有限公司 | 芯片系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10664284B2 (en) | Apparatus and method for a hybrid latency-throughput processor | |
EP2254048B1 (en) | Thread mapping in multi-core processors | |
Gilani et al. | Power-efficient computing for compute-intensive GPGPU applications | |
CN104077106B (zh) | 具有原生切换机制的非对称多核心处理器 | |
CN105144082B (zh) | 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择 | |
CN100347673C (zh) | 提供多线程计算机处理的方法与系统 | |
US20170192779A1 (en) | Scheduling execution of instructions on a processor having multiple hardware threads with different execution resources | |
GB2507018A (en) | Instruction and logic to provide vector loads and stores with strides and masking functionality | |
EP3186704B1 (en) | Multiple clustered very long instruction word processing core | |
WO2014105203A1 (en) | Techniques for platform duty cycling | |
CN103678571A (zh) | 应用于单台多核处理器主机的多线程网络爬虫执行方法 | |
Brandon et al. | Support for dynamic issue width in VLIW processors using generic binaries | |
CN102629192A (zh) | 用于片上多核并发多线程处理器的指令包及其操作方法 | |
CN101561778A (zh) | 一种检测多任务操作系统任务死循环的方法 | |
CN102662765A (zh) | 一种运行效率指导的可重构多核处理器的资源分配方法 | |
US9785538B2 (en) | Arbitrary instruction execution from context memory | |
CN102541738B (zh) | 加速多核cpu抗软错误测试的方法 | |
Zagan et al. | Schedulability analysis of nMPRA processor based on multithreaded execution | |
Liu et al. | Designing an asynchronous FPGA processor for low-power sensor networks | |
McKenney et al. | Improving energy efficiency on asymmetric multiprocessing systems | |
Cazzaniga et al. | On the development of a runtime reconfigurable multicore system-on-chip | |
Pousa | Optimization of throughput, fairness and energy efficiency on asymmetric multicore systems via OS scheduling | |
CN116339971A (zh) | 动态非对称资源 | |
CN103634207B (zh) | 一种静态的关键路径优先的片上网络路由优化方法 | |
Guo et al. | A compiler for ladder diagram to multi-core dataflow architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice |
Addressee: Xidian University Document name: the First Notification of an Office Action |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120808 |