CN101986265B - 一种基于Atom处理器的指令并行分发方法 - Google Patents
一种基于Atom处理器的指令并行分发方法 Download PDFInfo
- Publication number
- CN101986265B CN101986265B CN2010105250306A CN201010525030A CN101986265B CN 101986265 B CN101986265 B CN 101986265B CN 2010105250306 A CN2010105250306 A CN 2010105250306A CN 201010525030 A CN201010525030 A CN 201010525030A CN 101986265 B CN101986265 B CN 101986265B
- Authority
- CN
- China
- Prior art keywords
- instruction
- data
- article
- present
- mark
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000004891 communication Methods 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 206010006895 Cachexia Diseases 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 208000016318 wasting Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种基于Atom处理器的指令并行分发方法,它包括如下步骤:逐条扫描指令,将有控制依赖的指令予以标记;逐条分析数据依赖,若当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指令与当前指令之间的指令存在数据依赖关系,则对当前指令予以标记;将当前第一条未被分发的指令与下一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行。本发明能够改进程序运行效率,减少核间通讯量,可以用来挖掘多核处理器的潜在计算能力。
Description
技术领域
本发明涉及嵌入式***高性能并行计算设计领域,尤其涉及一种基于Atom处理器的指令并行分发方法。
背景技术
随着半导体技术的发展,单块硅片上所能容纳的晶体管数量迅猛增长,CPU技术已经进入了多核时代。目前市场上的主流工艺已经能使晶体管内的沟道长度达到了45nm,而即将投产的新一代工艺则能使晶体管内的沟道长度达到32nm。根据摩尔定律,可以预见半导体工艺仍将有继续发展的巨大空间。先进的工艺固然为CPU技术的发展提供了优异的条件,但也带来了对传统理论和技术的一些思考。
在多核时代下,提高程序执行的并行度已经成为了一个重要的问题。在传统的冯诺依曼结构之下,计算机顺序执行指令,完成既定工作。这一步骤虽然经过多次重大革新,但其本质依然没有改变。在多核CPU这种要求充分利用程序并行度才能发挥性能优势的体系结构中,顺序执行指令的方式逐渐显露出了它的弊病。这就要求研究者尽可能地挖掘现有程序的可并行的潜力,把***的效率进一步提高。
目前的程序无法很好地耦合多核体系结构是一个重要的问题。硬件发展受制于内存的局限性也没有很好地解决。多核需要程序有很高的并行化程度才能发挥它的性能优势。因为对单个核来讲,它自身的性能并没有非常大的提高。大多数研究工作都着眼于如何更好的分发程序以获取较好的并行程度,如何改进多核体系架构以提高通讯带宽,降低缓存的缺失率(又称cache miss rate)等等。
事实上,多核的发展还并不成熟。尤其是当核的数量大大增加后,核间通讯的代价会导致大量的资源浪费。除了尽量降低通讯代价之外,一个好的分发指令的策略会使得核间通讯总量大大降低。如何分发是一个已经被研究了很长一段时间的问题。它必须考虑体系结构,数据依赖,控制依赖等条件。分发可以挖掘程序的并行度,使得多核体系结构的高度并行化的优势得以发挥,又可以降低频繁的核间数据通信,提高性能。对核间路由结构进行考量的分发还可以加快通信速度。
发明内容
本发明是针对多核体系结构,从多核体系结构和现有程序耦合度不足这一现实出发,以提高程序并行度、挖掘程序并行潜力、降低核间通讯量为目的,提出一种基于Atom处理器的指令并行分发方法,该方法是一套能够改进程序运行效率、减少核间通讯量和挖掘程序可并行潜力的架构。
为实现本发明的上述目的,本发明采用的技术方案如下:
一种基于Atom处理器的指令并行分发方法,其特征在于包括如下步骤:
1)从第一条指令开始,逐条扫描指令,将有控制依赖的指令予以标记;
2)从第一条指令开始,逐条分析数据依赖,其步骤如下:
2.1当当前指令之前没有被标记过的指令,且当前指令与当前指令之前的指令存在数据依赖关系,则对当前指令予以标记,然后进入下一条指令,按步骤2.2继续分析数据依赖;
2.2当当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指令与当前指令之间的指令存在数据依赖关系时,则对当前指令予以标记,然后进入下一条指令,仍按照该步骤b)继续分析,直至将所有有数据依赖的指令均予以标记;
所述控制依赖的指令和数据依赖的指令的标记是相同的,均是将存在依赖的指令的标志位赋值为“1”;
3)从第一条指令开始逐条扫描,按如下步骤进行分发处理:
3.1将第一条有标记的指令之前的所有指令并行分发到不同的核上运行,然后进入下一条未分发的指令,按步骤3.2继续进行分发处理;
3.2从当前未被分发的第一条指令起开始扫描,遇到下一条有标记的指令时,将下一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行,然后进入下一条未分发的指令,仍按照该步骤3.2继续执行分发处理;
3.3当当前未被分发的第一条指令为最后一条有标记的指令,则将所有未被分发的指令并行分发到不同的核上运行,分发结束。
本发明的方法是针对API架构的特点而设计,能够去除访问冲突,提高执行效率。与背景技术相比,本发明具有如下优点:
1)简便性。本***的算法实现简单,使用的是一种在线算法,只需要很小的存储空间就能工作。
2)无数据冲突。本***所使用的分发算法,在标记相关依赖指令后就能迅速分发到各个核上运行。由于本***扫描分发后的每一个指令集合之内都不再有任何依赖,因此此时分发到各个核心上运行的指令不存在数据冲突关系,使得核间通讯总量大大下降,提高了***整体性能。
3)高并行度。本***的并行粒度为指令级,且对整个程序段都进行了扫描标记,因此程序的每一个部分都在本***下实现了并行优化,大大提高了原有程序的并行度。
附图说明
图1是本发明实施例中的指令序列图;
图2是本发明实施例中的指令数据流图;
图3是本发明实施例中的指令依赖标记图;
图4是本发明实施例中的指令分发依据时间关系在核上的分布图。
具体实施方式
下面,以一个程序段为例,对本发明具体实施方式作具体说明。
本实施例的基于Atom处理器的指令并行分发方法,其具体实现过程如下:
图1是一段载入数据并进行计算的指令的操作。为了直观地看到指令间的依赖关系,这里不列出汇编代码,而用具体的指令操作代替。每一个操作都可以对应一条汇编指令。为直观起见,每一条指令都有编号。从0开始,也与计算机的计数规律相对应。这段程序主要做了求和,移位和跳转等操作。
从图1中可以清晰地看出程序所要使用的每一个寄存器和数据依赖。该程序段执行的操作是从内存中载入四个数到寄存器$t0~$t3中(第0至第3条指令的操作)。将这四个数进行相加后,输出到$t6,并将其移位(第4至第9条指令的操作)。最后,在第10条,程序跳转到地址为10000的指令处。在串行执行的处理器中,执行这段程序需要11个指令周期,但对其进行并行优化后可以大大改善。
在这里,可以看到以下这些数据依赖关系:
首先,扫描控制依赖,可以看到,在本实施例中,控制依赖只存在第10条。首先将第10条指令标记为依赖。所述有控制依赖的指令,是指可能引起程序不按顺序执行的指令,如跳转和分支指令。
然后,分析数据依赖。第4条指令需要依赖第0和第1条指令的执行结果才能运行,第5条指令依赖第2和第3条。第6条指令依赖第4条,第7条指令依赖第5条,第8条指令依赖第6和第7条,第9条指令依赖第8条。对数据依赖进行分析后,可得到如图2所示的数据流图。
从图2的数据流图可以清晰地看到它的并行性。位于数据流图第一行的第0~3条指令显然可以并行执行。位于第二行的两个虚线框内的指令之间也可以并行运行,最后一个虚线框内的指令存在依赖,不可以并行执行。从图4中可以看到,运行这11条指令需要6个指令周期,最大并行度为4,也就是第一行同时有四个指令并行执行。
因此,可以看到第4条,第6条,第8条,第9条指令和第10条指令是存在依赖的指令。在扫描过程中,它们被标记成“依赖”,如图3所示。在实际操作中,通常是将存在依赖的指令的标志位赋值为“1”。下面,对指令进行分发处理。
当这段被标记上依赖标志位的程序运行时,首先这段指令代码被读入指令分发结构,指令分发结构将识别到依赖位标记为“1”的指令。在这段程序中,第一条被读入的依赖指令是第4条。因此,第0条到第3条被发射到四个核上。如图2中虚线框所示。每个虚线框表示一个运行该指令的核。可见第0到第3条被发射到四个不同的核上运行。这四条指令之间不存在数据依赖,可以并行运行,且该四个不同的核可以同时访问寄存器。
随后,指令分发结构扫描到第6条指令。这说明第4条指令和第5条指令之间没有依赖关系,可以被并行运行。因此指令发射结构将第4条和第5条指令发射到两个不同的核上。与前一个周期的运行情况类似,第4条和第5条这两条指令也不存在数据依赖性,可以并行运行。指令分发结构继续扫描,遇到第8条指令,发现它的依赖标记为“1”,说明该指令与前面的指令存在数据依赖。则第6条和第7条指令被发射出去。第6条和第7条指令之间没有依赖关系,可以并行运行。接着指令分发结构发现第9条指令也存在依赖。这说明第8条和第9条指令存在依赖,则发射第8条后,再发射第9条。如果这两条指令同时运行,就会产生数据冲突。最后发射第10条指令。如图2所示。
由图2可见,有六条指令存在依赖关系。每一条指令所要检测的依赖从它前一条依赖指令开始算起。比如第6条指令的依赖关系只检测第4和第5条。因为第4条指令是它之前一条有依赖的指令。类似的情况还有,第8条指令仅检查与第6和第7条指令的数据依赖性,因为第6条指令是它之前的一条依赖指令。第9条指令仅检查第8条的数据依赖性,因为第8条指令是它之前的一条依赖指令。指令发射时就根据依赖位的标识,以依赖指令为界,分批发射。在本例中,第0到第3条被指令分发结构同时发射到四个核上运行,它们由于没有数据依赖,可以并行运行。与此类似,同样情况的4和5,6和7也可以被同时发射并行运行。
指令分发结构根据这一依赖扫描结果发射指令,在一个多于四核的处理器上,指令执行顺序如图4所示。X轴代表时钟周期,可以看到第一个周期有4条指令并行执行,第2个和第3个周期有2条指令并行执行,第4、第5和第6周期均为单指令执行。
Claims (1)
1.一种基于Atom处理器的指令并行分发方法,其特征在于包括如下步骤:
1)从第一条指令开始,逐条扫描指令,将有控制依赖的指令予以标记;
2)从第一条指令开始,逐条分析数据依赖,其步骤如下:
2.1当当前指令之前没有被标记过的指令,且当前指令与当前指令之前的指令存在数据依赖关系,则对当前指令予以标记,然后进入下一条指令,按步骤2.2继续分析数据依赖;
2.2当当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指令与当前指令之间的指令存在数据依赖关系时,则对当前指令予以标记,然后进入下一条指令,仍按照该步骤2.2继续分析,直至将所有有数据依赖的指令均予以标记;
所述控制依赖的指令和数据依赖的指令的标记是相同的,均是将存在依赖的指令的标志位赋值为“1”;
3)从第一条指令开始逐条扫描,按如下步骤进行分发处理:
3.1将第一条有标记的指令之前的所有指令并行分发到不同的核上运行,然后进入下一条未分发的指令,按步骤3.2继续进行分发处理;
3.2从当前未被分发的第一条指令起开始扫描,遇到下一条有标记的指令时,将下一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行,然后进入下一条未分发的指令,仍按照该步骤3.2继续执行分发处理;
3.3当当前未被分发的第一条指令为最后一条有标记的指令,则将所有未被分发的指令并行分发到不同的核上运行,分发结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105250306A CN101986265B (zh) | 2010-10-29 | 2010-10-29 | 一种基于Atom处理器的指令并行分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105250306A CN101986265B (zh) | 2010-10-29 | 2010-10-29 | 一种基于Atom处理器的指令并行分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101986265A CN101986265A (zh) | 2011-03-16 |
CN101986265B true CN101986265B (zh) | 2013-09-25 |
Family
ID=43710614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105250306A Expired - Fee Related CN101986265B (zh) | 2010-10-29 | 2010-10-29 | 一种基于Atom处理器的指令并行分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101986265B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799418B (zh) * | 2012-08-07 | 2014-10-08 | 清华大学 | 融合了顺序和vliw的处理器体系结构及指令执行方法 |
CN103677753A (zh) * | 2012-09-20 | 2014-03-26 | 艾默生零售解决方案公司 | 多任务控制方法、设备以及工业控制*** |
CN106227507B (zh) * | 2016-07-11 | 2019-10-18 | 北京深鉴智能科技有限公司 | 计算***及其控制器 |
CN112214244A (zh) * | 2016-08-05 | 2021-01-12 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN111124500B (zh) * | 2019-12-12 | 2022-03-08 | 浪潮(北京)电子信息产业有限公司 | 一种指令执行方法、装置、设备及存储介质 |
CN111240747B (zh) * | 2020-01-13 | 2022-05-06 | Oppo广东移动通信有限公司 | 指令生成方法、装置、测试架构和电子设备 |
CN117389572B (zh) * | 2023-12-12 | 2024-02-27 | 北京麟卓信息科技有限公司 | 一种基于指令分层的dsp汇编代码自动优化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329638A (zh) * | 2007-06-18 | 2008-12-24 | 国际商业机器公司 | 程序代码的并行性的分析方法和*** |
CN101344843A (zh) * | 2007-07-10 | 2009-01-14 | 北京简约纳电子有限公司 | 一种指令级并行处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007264794A (ja) * | 2006-03-27 | 2007-10-11 | Fujitsu Ltd | 並列分散処理プログラム及び並列分散処理システム |
US20090172353A1 (en) * | 2007-12-28 | 2009-07-02 | Optillel Solutions | System and method for architecture-adaptable automatic parallelization of computing code |
-
2010
- 2010-10-29 CN CN2010105250306A patent/CN101986265B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329638A (zh) * | 2007-06-18 | 2008-12-24 | 国际商业机器公司 | 程序代码的并行性的分析方法和*** |
CN101344843A (zh) * | 2007-07-10 | 2009-01-14 | 北京简约纳电子有限公司 | 一种指令级并行处理方法 |
Non-Patent Citations (2)
Title |
---|
基于汇编代码的指令调度器的设计与实现;田祖伟;《计算机科学》;20090315;第36卷(第3期);45-47 * |
田祖伟.基于汇编代码的指令调度器的设计与实现.《计算机科学》.2009,第36卷(第3期),45-47. |
Also Published As
Publication number | Publication date |
---|---|
CN101986265A (zh) | 2011-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101986265B (zh) | 一种基于Atom处理器的指令并行分发方法 | |
Settle | High-performance dynamic programming on fpgas with opencl | |
CN101329638B (zh) | 程序代码的并行性的分析方法和*** | |
Cho et al. | PARADIS: An efficient parallel algorithm for in-place radix sort | |
Kraus et al. | Accelerating a C++ CFD code with OpenACC | |
CN106446134B (zh) | 基于谓词规约和代价估算的局部多查询优化方法 | |
Barik et al. | Efficient mapping of irregular C++ applications to integrated GPUs | |
Wang et al. | Communication optimization on GPU: A case study of sequence alignment algorithms | |
CN107209677B (zh) | 精细粒度需求驱动的ipo基础架构 | |
Wei et al. | Throughput optimization for streaming applications on CPU-FPGA heterogeneous systems | |
US8621167B2 (en) | Using DMA for copying performance counter data to memory | |
Cong et al. | Smem++: A pipelined and time-multiplexed smem seeding accelerator for genome sequencing | |
Popov et al. | Piecewise holistic autotuning of parallel programs with cere | |
Shehan et al. | Reconfigurable grid alu processor: Optimization and design space exploration | |
Gottschlag et al. | Reducing avx-induced frequency variation with core specialization | |
CN101593125B (zh) | 使用监控线程对二进制翻译程序执行流程动态监控的方法 | |
Ungethüm et al. | Query processing on low-energy many-core processors | |
Kim et al. | Optimizing seam carving on multi-GPU systems for real-time content-aware image resizing | |
Xin et al. | Real-time algorithm for SIFT based on distributed shared memory architecture with homogeneous multi-core DSP | |
Kumar et al. | An approach for compiler optimization to exploit instruction level parallelism | |
Sankaralingam et al. | A technology-scalable architecture for fast clocks and high ILP | |
Yuan et al. | Automatic enhanced CDFG generation based on runtime instrumentation | |
Haas et al. | Application-specific architectures for energy-efficient database query processing and optimization | |
Xiao et al. | HLS portability from Intel to Xilinx: A case study | |
US9606779B2 (en) | Data processing system and data simulation method in the system |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130925 Termination date: 20181029 |
|
CF01 | Termination of patent right due to non-payment of annual fee |