CN101986265A - 一种基于Atom处理器的指令并行分发方法 - Google Patents

一种基于Atom处理器的指令并行分发方法 Download PDF

Info

Publication number
CN101986265A
CN101986265A CN2010105250306A CN201010525030A CN101986265A CN 101986265 A CN101986265 A CN 101986265A CN 2010105250306 A CN2010105250306 A CN 2010105250306A CN 201010525030 A CN201010525030 A CN 201010525030A CN 101986265 A CN101986265 A CN 101986265A
Authority
CN
China
Prior art keywords
instruction
distributed
present
mark
article
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.)
Granted
Application number
CN2010105250306A
Other languages
English (en)
Other versions
CN101986265B (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN2010105250306A priority Critical patent/CN101986265B/zh
Publication of CN101986265A publication Critical patent/CN101986265A/zh
Application granted granted Critical
Publication of CN101986265B publication Critical patent/CN101986265B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction 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处理器的指令并行分发方法
技术领域
本发明涉及嵌入式系统高性能并行计算设计领域,尤其涉及一种基于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当当前指令与当前指令的前一条已经标记的指令以及该前一条已经标记的指令与当前指令之间的指令存在数据依赖关系时,则对当前指令予以标记,然后进入下一条指令,仍按照该步骤b)继续分析,直至将所有有数据依赖的指令均予以标记;
所述控制依赖的指令和数据依赖的指令的标记是相同的,均是将存在依赖的指令的标志位赋值为“1”;
3)从第一条指令开始逐条扫描,按如下步骤进行分发处理:
3.1将第一条有标记的指令之前的所有指令并行分发到不同的核上运行,然后进入下一条未分发的指令,按步骤3.2继续进行分发处理;
3.2从当前未被分发的第一条指令起开始扫描,遇到下一条有标记的指令时,将下一条有标记的指令之前所有未被分发的指令并行分发到不同的核上运行,然后进入下一条未分发的指令,仍按照该步骤3.2继续执行分发处理;
3.3当当前未被分发的第一条指令为最后一条有标记的指令,则将所有未被分发的指令并行分发到不同的核上运行,分发结束。
CN2010105250306A 2010-10-29 2010-10-29 一种基于Atom处理器的指令并行分发方法 Expired - Fee Related CN101986265B (zh)

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 true CN101986265A (zh) 2011-03-16
CN101986265B 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799418A (zh) * 2012-08-07 2012-11-28 清华大学 融合了顺序和vliw的处理器体系结构及指令执行方法
CN103677753A (zh) * 2012-09-20 2014-03-26 艾默生零售解决方案公司 多任务控制方法、设备以及工业控制系统
CN106227507A (zh) * 2016-07-11 2016-12-14 姚颂 计算系统及其控制器
WO2018024094A1 (zh) * 2016-08-05 2018-02-08 上海寒武纪信息科技有限公司 一种运算装置及其操作方法
CN111124500A (zh) * 2019-12-12 2020-05-08 浪潮(北京)电子信息产业有限公司 一种指令执行方法、装置、设备及存储介质
CN111240747A (zh) * 2020-01-13 2020-06-05 Oppo广东移动通信有限公司 指令生成方法、装置、测试架构和电子设备
CN117389572A (zh) * 2023-12-12 2024-01-12 北京麟卓信息科技有限公司 一种基于指令分层的dsp汇编代码自动优化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226743A1 (en) * 2006-03-27 2007-09-27 Fujitsu Limited Parallel-distributed-processing program and parallel-distributed-processing system
CN101329638A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 程序代码的并行性的分析方法和系统
CN101344843A (zh) * 2007-07-10 2009-01-14 北京简约纳电子有限公司 一种指令级并行处理方法
WO2009085118A2 (en) * 2007-12-28 2009-07-09 Optillel Solutions Inc. System and method for architecture-adaptable automatic parallelization of computing code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226743A1 (en) * 2006-03-27 2007-09-27 Fujitsu Limited Parallel-distributed-processing program and parallel-distributed-processing system
CN101329638A (zh) * 2007-06-18 2008-12-24 国际商业机器公司 程序代码的并行性的分析方法和系统
CN101344843A (zh) * 2007-07-10 2009-01-14 北京简约纳电子有限公司 一种指令级并行处理方法
WO2009085118A2 (en) * 2007-12-28 2009-07-09 Optillel Solutions Inc. System and method for architecture-adaptable automatic parallelization of computing code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
田祖伟: "基于汇编代码的指令调度器的设计与实现", 《计算机科学》, vol. 36, no. 3, 15 March 2009 (2009-03-15), pages 45 - 47 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799418A (zh) * 2012-08-07 2012-11-28 清华大学 融合了顺序和vliw的处理器体系结构及指令执行方法
CN103677753A (zh) * 2012-09-20 2014-03-26 艾默生零售解决方案公司 多任务控制方法、设备以及工业控制系统
CN106227507A (zh) * 2016-07-11 2016-12-14 姚颂 计算系统及其控制器
WO2018024094A1 (zh) * 2016-08-05 2018-02-08 上海寒武纪信息科技有限公司 一种运算装置及其操作方法
CN111124500A (zh) * 2019-12-12 2020-05-08 浪潮(北京)电子信息产业有限公司 一种指令执行方法、装置、设备及存储介质
WO2021114549A1 (zh) * 2019-12-12 2021-06-17 浪潮(北京)电子信息产业有限公司 一种指令执行方法、装置、设备及存储介质
CN111124500B (zh) * 2019-12-12 2022-03-08 浪潮(北京)电子信息产业有限公司 一种指令执行方法、装置、设备及存储介质
CN111240747A (zh) * 2020-01-13 2020-06-05 Oppo广东移动通信有限公司 指令生成方法、装置、测试架构和电子设备
CN111240747B (zh) * 2020-01-13 2022-05-06 Oppo广东移动通信有限公司 指令生成方法、装置、测试架构和电子设备
CN117389572A (zh) * 2023-12-12 2024-01-12 北京麟卓信息科技有限公司 一种基于指令分层的dsp汇编代码自动优化方法
CN117389572B (zh) * 2023-12-12 2024-02-27 北京麟卓信息科技有限公司 一种基于指令分层的dsp汇编代码自动优化方法

Also Published As

Publication number Publication date
CN101986265B (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
CN101986265B (zh) 一种基于Atom处理器的指令并行分发方法
Singh et al. FPGA-based near-memory acceleration of modern data-intensive applications
Settle High-performance dynamic programming on fpgas with opencl
CN101329638B (zh) 程序代码的并行性的分析方法和系统
US20190004945A1 (en) Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
Cho et al. PARADIS: an efficient parallel algorithm for in-place radix sort
Meadows Experiments with WRF on intel® many integrated core (intel MIC) architecture
CN104011705A (zh) 多形异构性多核架构
Tan et al. Locus: Low-power customizable many-core architecture for wearables
US8621167B2 (en) Using DMA for copying performance counter data to memory
CN103440457A (zh) 基于进程模拟的二进制程序分析系统
Gonzalez et al. Virtualization of reconfigurable coprocessors in HPRC systems with multicore architecture
CN107209677B (zh) 精细粒度需求驱动的ipo基础架构
Piccolboni et al. Broadening the exploration of the accelerator design space in embedded scalable platforms
Cong et al. Smem++: A pipelined and time-multiplexed smem seeding accelerator for genome sequencing
Wei et al. LICOM3-CUDA: A GPU version of LASG/IAP climate system ocean model version 3 based on CUDA
Su et al. Accelerating inclusion-based pointer analysis on heterogeneous CPU-GPU systems
Popov et al. Piecewise holistic autotuning of parallel programs with cere
Shehan et al. Reconfigurable grid alu processor: Optimization and design space exploration
Xin et al. Real-time algorithm for SIFT based on distributed shared memory architecture with homogeneous multi-core DSP
US20220113975A1 (en) Vector dataflow architecture for embedded systems
Laso et al. CIMAR, NIMAR, and LMMA: Novel algorithms for thread and memory migrations in user space on NUMA systems using hardware counters
US9606779B2 (en) Data processing system and data simulation method in the system
Yuan et al. Automatic enhanced CDFG generation based on runtime instrumentation
Xiao et al. HLS portability from Intel to Xilinx: A case study

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