CN105929928B - 一种指令级并行处理器低功耗设计优化方法 - Google Patents
一种指令级并行处理器低功耗设计优化方法 Download PDFInfo
- Publication number
- CN105929928B CN105929928B CN201610263626.0A CN201610263626A CN105929928B CN 105929928 B CN105929928 B CN 105929928B CN 201610263626 A CN201610263626 A CN 201610263626A CN 105929928 B CN105929928 B CN 105929928B
- Authority
- CN
- China
- Prior art keywords
- region
- application
- basic block
- parallelism
- degree
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种指令级并行处理器低功耗设计优化方法,包括:利用编译器分析输入的应用程式各个部分的硬件资源和并行度需求量信息,并且得到该应用程式的基本块,以及由这些基本块构成的控制流图CFG和循环层次树LHTs;识别区域核心;扩大区域,把剩余的基本块合并进来,找出与剩余的基本块直接相连的区域核心,比较连接这些区域核心的边的执行次数,找出执行次数最大的边,并把这条最大的边连接的基本块合并到区域核心中,直到没有剩余的基本块为止;重新调度这支应用程式,每个区域用设置好的并行度进行调度,并在每个区域执行前插入power gating指令,把空闲的硬件资源关断,降低漏电功耗。本发明可以以减小漏电功耗对处理器工作性能的影响,提高ILP处理器中硬件资源的利用率。
Description
所属技术领域
本发明属于计算机体系结构设计技术领域,涉及一种低功耗设计优化方法。
背景技术
最近几年,智能手机,可穿戴式智能设备等电子产品迅速发展,几乎每个人都拥有一部电子设备,这些电子设备执行速度可以满足大多数用户的使用需求,但是功耗问题却特别突出,经常会影响设备的性能,操作时间;特别在互联网+时代,对于计算机,智能机的性能要求越来越高,提高设备的能量效率,即在不影响设备执行速度的前提下,降低功耗就越来越重要。
这些电子设备执行速度快主要原因是指令级并行(Instruction LevelParallelism,ILP)处理器结构的应用,该结构使得多条指令可以在同一时间内同时执行。但是不同的应用程式运行在ILP处理器上时,对于硬件资源(如:功能单元和寄存器)的需求量有很大的差异,甚至在同一支应用程式中,不同的部分在执行的过程中对于硬件资源的需求量差异也很明显,如果利用传统的自始至终ILP处理器的全部硬件资源同时开启,即以最大的并行度执行一支应用程式,那么对于硬件资源需求量很小的程式必然会造成额外的资源浪费,这些处于空闲状态的硬件资源必然会引起额外的漏电功耗;特别是晶体管的特征尺寸进入深亚微米级时,漏电功耗急剧增加甚至会超过动态功耗,ILP处理器中这些处于空闲状态的硬件资源产生的漏电功耗必然会降低处理器工作的性能,进而影响设备的可靠性。
为了降低漏电功耗,电源门控(power gating)技术作为电流开关被广泛应用,即通过把空闲的设备关断来降低漏电功耗。power gating技术在应用时面临的巨大挑战就是使电路状态发生转换的过程中,会产生很大的耗能和延迟,这导致电路不能在任何时候都随意的开启和关断,power gating指令必须插入到合适的地方。但是Tabkhi于2014年提出的AFReP算法没有考虑power gating技术产生的状态转换的额外耗能,只是在执行应用程式中每个函数前插入power gating指令,这导致了硬件设备频繁开启,即每进入一个函数都改变一次硬件组态,硬件设备的频繁开启,导致产生很大的额外耗能,总体评估AFReP的节能效果,虽然降低了漏电耗能,但是却产生很大的额外耗能,效果不好。为了达到省电的目的,必须保证节约的漏电耗能大于电路开关过程中产生的额外耗能,必须找到合适地方插入power gating指令,并且应用程式不同的地方根据需求设置合适的并行度执行。
发明内容
本发明的目的是在不影响执行时间的前提下,提供一种能降低ILP处理器中处于空闲状态的硬件资源产生的漏电功耗的优化方法,以减小漏电功耗对处理器工作性能的影响,提高ILP处理器中硬件资源的利用率,并且提高以ILP处理器为核心的设备的可靠性。主要技术方案如下:
一种指令级并行处理器低功耗设计优化方法,包括下列步骤:
(1)利用编译器分析输入的应用程式各个部分的硬件资源和并行度需求量信息,并且得到该应用程式的基本块,以及由这些基本块构成的控制流图CFG和循环层次树LHTs;
(2)划分应用程式,把应用程式切割为不同的区域,方法如下:
第一步,识别区域核心:找出这段应用程式中可以形成区域核心的循环,计算Tth为设备关断的最小空闲时间,在关断的最小空闲时间Tth内,恰好使得节约的漏电耗能等于开关过程中产生的额外耗能,公式如下:
其中,Eoverhead为电路开关一次消耗的能量,Pleakage为电路处于空闲状态消耗的漏电功率;从底向上处理LHTs的每个循环,如果有某些循环的执行时间超过Tth,则这些循环被识别为区域核心;
第二步,以这些循环为区域核心,扩大区域,把剩余的基本块合并进来,找出与剩余的基本块直接相连的区域核心,比较连接这些区域核心的边的执行次数,找出执行次数最大的边,并把这条最大的边连接的基本块合并到区域核心中,直到没有剩余的基本块为止;
(3)根据各个区域硬件资源和并行度的需求量,设置各个区域的执行并行度为饱和并行度,使整个应用程式执行过程中,根据自身需求,能不断的调整和改变并行度;
(4)编译器重新调度这支应用程式,每个区域用设置好的并行度进行调度,并在每个区域执行前插入power gating指令,把空闲的硬件资源关断,降低漏电功耗。
该方法在满足预期执行时间的前提下,充分考虑power gating指令插入后,硬件状态转换(硬件开启和关断转换)过程中引起的额外的耗能和延迟,合理的划分应用程式,插入power gating指令,使得一支程式不同的程序段采用不同的并行度和硬件组态执行,最终使得ILP处理器漏电功耗降低,并且状态转换引起的额外耗能也尽可能小,提高能量效率。
附图说明
图1编译器工作流程(技术方案)。
图2原始应用程式段。
图3(a)应用程式的控制流图 (b)应用程式的循环层次树。
图4(a)识别核心区域 (b)合并剩余的基本块。
图5执行速度与并行度的关系。
图6算法优化后应用程式段。
图7算法优化后应用程式执行并行度。
具体实施方式
本发明主要利用编译器帮助分析和调度应用程式的指令,分析应用程式执行时间,硬件需求量,以及并行度的需求量,划分应用程式,并设置各个区域的并行度,在每个区域执行前插入power gating指令,关断空闲的硬件设备,提高能量效率。图1展示了编译器在整个方案中工作流程。下面结合附图和实施例对本发明进行说明。
(1)输入一支如图2所示的应用程式,编译器首先把这样的高级语言,转换为中间语言的字节码,然后利用编译器的优化工具,提取出这段应用程式的CFG,LHTs,如图3所示,并且分析这段程式在各个并行度下的执行时间和对于硬件资源的需求量。
(2)由于power gating指令的插入,使得硬件设备会发生开关之间的状态转换,在转换的过程中,会产生很大的额外的耗能和延迟,为了达到省电的目的,必须保证由于关断空闲设备节约的漏电耗能大于开关过程中产生的额外耗能,必须找到合适的地方插入power gating指令。
第一步,识别区域核心。Tth为设备关断的最小空闲时间,在关断的最小空闲时间内,恰好使得节约的漏电耗能等于开关过程中产生的额外耗能。
(其中,Eoverhead为电路开关一次消耗的能量,Pleakage为电路处于空闲状态消耗的漏电功率)。
为了达到省电的目的,划分的每个区域的执行时间必须大于Tth,Tth通常超过100条指令的执行时间,而在一段程式中,超过100条指令长度的部分通常为一个循环的执行时间。所以从底向上遍历整个LHTs,分析循环的执行时间,对于叶子节点,如果执行时间超过Tth,则把这个循环作为区域核心,并且分析该循环的父节点是否可以形成区域核心;对于非叶子节点,如果他的所有子节点中至少有两个子节点已经被识别为区域核心,则不再访问这个节点,具体算法在algorithm1中体现。例如:图3(b)中L0和L2执行时间超过Tth,则L1和L2被识别为区域核心,如图4(a)所示,还剩下BB0和BB5没有在任何一个区域中,需要下一步处理。
第二步,合并剩余的基本块。这步采取贪心算法,找出与每个剩余的基本块直接相连的区域核心,比较连接这些区域核心的边的执行次数,找出执行次数最大的边,并把这条边连接的基本块合并到区域核心中,直到没有剩余的基本块为止,具体算法为algorithm2,图4(b)中,BB0与R1相连的边的执行次数为1,BB0与R2相连的边的执行次数为99,所以BB0被合并到R2中,以此类推,BB5也被合并到R2中,图4(b)为划分完成的区域。
(3)设置区域并行度。由于每个区域的执行速度随着并行度的增加,都会呈现图5所示的趋势,执行速度先急剧增加,后来接近不变,把使得执行速度不变的并行度成为饱和并行度,每个区域如果都用饱和并行度执行代替最大并行度,那么执行速度不会改变,但是硬件设备会有很多空闲下来,可以利用power gating技术关断,降低漏电耗能。把每个区域设置为自身的饱和并行度执行,会比用统一的最大并行度执行,达到更好的省电效果。
(4)设置好并行度之后,用编译器重新调度这支程式,在应用程式划分的每个区域执行前插入power gating指令,控制硬件设备的开启和关断,降低漏电耗能,提高资源利用率。图6为划分好区域,并且设置合适并行度之后,插入power gating指令的程序段,图7为经过算法优化后,整个程式执行过程中的执行并行度,可以看到并行度在程式执行的过程中是不断变化的。采取这种执行模式,与传统的自始至终都用统一并行度相比,可以关断更多的硬件设备,降低漏电耗能。
Claims (1)
1.一种指令级并行处理器低功耗设计优化方法,包括下列步骤:
(1)利用编译器分析输入的应用程式各个部分的硬件资源和并行度需求量信息,并且得到该应用程式的基本块,以及由这些基本块构成的控制流图CFG和循环层次树LHTs;
(2)划分应用程式,把应用程式切割为不同的区域,方法如下:
第一步,识别区域核心:找出这段应用程式中可以形成区域核心的循环,计算Tth为设备关断的最小空闲时间,在关断的最小空闲时间Tth内,恰好使得节约的漏电耗能等于开关过程中产生的额外耗能,公式如下:
其中,Eoverhead为电路开关一次消耗的能量,Pleakage为电路处于空闲状态消耗的漏电功率;从底向上处理LHTs的每个循环,如果有某些循环的执行时间超过Tth,则这些循环被识别为区域核心,方法为:对于叶子节点,如果执行时间超过Tth,则把这个循环作为区域核心,并且分析该循环的父节点是否可以形成区域核心;对于非叶子节点,如果他的所有子节点中至少有两个子节点已经被识别为区域核心,则不再访问这个节点;
第二步,以这些循环为区域核心,扩大区域,把剩余的基本块合并进来,采取贪心算法,找出与剩余的基本块直接相连的区域核心,比较连接这些区域核心的边的执行次数,找出执行次数最大的边,并把这条最大的边连接的基本块合并到区域核心中,直到没有剩余的基本块为止;
(3)根据各个区域硬件资源和并行度的需求量,设置各个区域的执行并行度为饱和并行度,使整个应用程式执行过程中,根据自身需求,能不断的调整和改变并行度;
编译器重新调度这支应用程式,每个区域用设置好的并行度进行调度,并在每个区域执行前插入powergating指令,把空闲的硬件资源关断,降低漏电功耗。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610263626.0A CN105929928B (zh) | 2016-04-25 | 2016-04-25 | 一种指令级并行处理器低功耗设计优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610263626.0A CN105929928B (zh) | 2016-04-25 | 2016-04-25 | 一种指令级并行处理器低功耗设计优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105929928A CN105929928A (zh) | 2016-09-07 |
CN105929928B true CN105929928B (zh) | 2018-11-27 |
Family
ID=56836055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610263626.0A Expired - Fee Related CN105929928B (zh) | 2016-04-25 | 2016-04-25 | 一种指令级并行处理器低功耗设计优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105929928B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170957B (zh) * | 2017-12-28 | 2022-01-04 | 佛山中科芯蔚科技有限公司 | 数据控制流图的生成方法、系统及集成电路设计方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1653407A (zh) * | 2002-05-14 | 2005-08-10 | 飞利浦半导体德累斯顿公开股份有限公司 | 用于控制数据处理单元的关闭的方法 |
CN103154846A (zh) * | 2010-09-24 | 2013-06-12 | 英特尔公司 | 基于指令的类型和内容的处理器功率管理 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197655B2 (en) * | 2003-06-26 | 2007-03-27 | International Business Machines Corporation | Lowered PU power usage method and apparatus |
-
2016
- 2016-04-25 CN CN201610263626.0A patent/CN105929928B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1653407A (zh) * | 2002-05-14 | 2005-08-10 | 飞利浦半导体德累斯顿公开股份有限公司 | 用于控制数据处理单元的关闭的方法 |
CN103154846A (zh) * | 2010-09-24 | 2013-06-12 | 英特尔公司 | 基于指令的类型和内容的处理器功率管理 |
Also Published As
Publication number | Publication date |
---|---|
CN105929928A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lavasani et al. | An fpga-based in-line accelerator for memcached | |
Attia et al. | Dynamic power management techniques in multi-core architectures: A survey study | |
US7739530B2 (en) | Method and program for generating execution code for performing parallel processing | |
Jones et al. | Parallelizing the web browser | |
WO2017016480A1 (en) | System and method for multithreaded processing | |
CN103218029B (zh) | 一种超低功耗处理器流水线结构 | |
Wei et al. | Throughput optimization for streaming applications on CPU-FPGA heterogeneous systems | |
CN103077128A (zh) | 一种多核环境下的共享缓存动态划分方法 | |
Das et al. | An energy-efficient integrated programmable array accelerator and compilation flow for near-sensor ultralow power processing | |
CN107943592B (zh) | 一种面向gpu集群环境的避免gpu资源争用的方法 | |
Al‐hayanni et al. | Amdahl's law in the context of heterogeneous many‐core systems–a survey | |
CN105929928B (zh) | 一种指令级并行处理器低功耗设计优化方法 | |
Pyreddy et al. | Evaluating design tradeoffs in dual speed pipelines | |
CN110955503A (zh) | 任务调度方法及装置 | |
Zhu et al. | Energy minimization for multicore platforms through DVFS and VR phase scaling with comprehensive convex model | |
Vijayalakshmi et al. | Power management in multi-core processors using automatic dynamic pipeline stage unification | |
CN103838616A (zh) | 基于树型程序分支的计算机程序即时编译方法 | |
Marowka | Energy-aware modeling of scaled heterogeneous systems | |
Lattuada et al. | Exploiting vectorization in high level synthesis of nested irregular loops | |
Végh | von Neumann’s missing" Second Draft": what it should contain | |
Park et al. | Register file power reduction using bypass sensitive compiler | |
Stamelos et al. | Performance and energy evaluation of spark applications on low-power SoCs | |
CN106445678A (zh) | 一种降低指令级并行处理器功耗的并行度调整算法 | |
Talli et al. | Compiler-directed functional unit shutdown for microarchitecture power optimization | |
Sovietov | Algorithms for Improving the Automatically Synthesized Instruction Set of an Extensible Processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181127 Termination date: 20210425 |
|
CF01 | Termination of patent right due to non-payment of annual fee |