CN114637388A - 面向数据流处理器的功耗控制方法及装置 - Google Patents
面向数据流处理器的功耗控制方法及装置 Download PDFInfo
- Publication number
- CN114637388A CN114637388A CN202210270118.0A CN202210270118A CN114637388A CN 114637388 A CN114637388 A CN 114637388A CN 202210270118 A CN202210270118 A CN 202210270118A CN 114637388 A CN114637388 A CN 114637388A
- Authority
- CN
- China
- Prior art keywords
- instruction
- power consumption
- data stream
- data flow
- stream processor
- 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
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 43
- 230000003213 activating effect Effects 0.000 claims abstract description 7
- 238000005516 engineering process Methods 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 claims description 19
- 238000002372 labelling Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Images
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
-
- 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/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Power Sources (AREA)
Abstract
本申请提供了面向数据流处理器的功耗控制方法及装置,其根据待执行程序的数据流图,将各个指令映射至数据流处理器中的多个处理单元;根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件;以及通过时钟门控技术激活所需的运算部件。该申请的方案基于数据流处理器执行模式的特点并借助于时钟门控技术,实现了更细粒度的功耗控制,提升了整体执行效能比。
Description
技术领域
本发明涉及处理器低功耗设计领域,尤其涉及用于数据流处理器的功耗控制方法及装置。
背景技术
为了减少芯片中控制逻辑的占比,提高芯片的处理单元利用效率,提出了数据流结构处理器。不同于传统的控制流处理器中顺序执行指令,数据流处理器中,只要指令的操作数准备好了,这条指令即可被执行。也就是说,只要有足够多的处理单元(PE,ProcessElement),凡是相互之间不存在数据相关的指令,都可以并行执行,极大程度地提高了指令的并行性。
在数据流计算架构中,程序是以数据流图表示的。数据流图是表示应用程序指令或指令块的依赖关系的图结构。数据流图中的每个节点表示一条指令,每条边表示一条指令与另一条指令之间的依赖关系。每条指令的执行结果通过依赖边直接传递到另外一条指令,以作为其操作数。数据流处理器中多个处理单元是基于数据流图驱动执行。在执行之前,基于数据流图将指令或者指令块映射传输至相应的处理单元中,然后根据先序关系,执行该数据流图。
尽管数据流结构处理器不同于传统的控制流处理器,但发明人在研究中发现现有的针对数据流处理器的低功耗设计,通常还是采用传统的控制流处理器中的低功耗技术,例如电源门控(power gating)、时钟门控(clock gating)、降频等技术。这显然并不能有效地针对数据流结构处理器进行低功耗优化。
发明内容
本发明的目的是提供一种面向数据流处理器的功耗控制方法及装置,以对数据流结构处理器进行更有效的低功耗优化,以提升整体执行效能比。
上述目的是通过以下技术方案实现的:
根据本发明实施例的第一方面,提供一种面向数据流处理器的功耗控制方法,其包括:根据待执行程序的数据流图,将各个指令映射至数据流处理器中的多个处理单元;根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件;以及通过时钟门控技术激活执行各指令所需的运算部件。
在一些实施例中,该方法还可包括将各个指令映射至数据流处理器中的多个处理单元之后,通过时钟门控技术将数据流处理器中没有被分配指令的处理单元设置为关闭状态。
在一些实施例中,该方法还可包括在生成待执行程序的数据流图的过程中,可以根据每条指令的类型标注每条指令所需的运算部件的类别。
在一些实施例中,该方法还可包括根据指令与各处理单元之间的映射,分别统计每个处理单元要执行的指令类型和所需部件类型,以确定执行各指令所需的运算部件。
在一些实施例中,该方法还可包括对于每个处理单元,将其包含的各运算部件的初始状态设为关闭状态;以及响应于其被分配指令,通过时钟门控技术激活执行指令所需的相关运算部件。
根据本发明实施例的第二方面,提供一种面向数据流处理器的功耗控制装置,其包括统计模块和时钟控制模块。其中统计模块用于根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件。其中各指令是根据待执行程序的数据流图映射至数据流处理器中的多个处理单元中的。时钟控制模块用于通过时钟门控技术激活执行各指令所需的运算部件。
在一些实施例中,时钟控制模块还可用于时钟门控技术将数据流处理器中没有被分配指令的处理单元设置为关闭状态。
根据本发明实施例的第三方面,一种数据流处理器,其上集成有根据本发明实施例的第二方面所述的功耗控制装置。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了根据本发明一个实施例的面向数据流处理器的功耗控制方法的流程示意图。
图2示出了根据本发明一个实施例的指令集与运算部件对应关系示意表。
图3示出了根据本发明一个实施例的面向数据流处理器的功耗控制方法的执行过程示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动下获得的所有其他实施例,都属于本发明保护的范围。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
对于处理器芯片来说,功耗有两部分构成,其一是静态功耗,通常表现为电子线路的漏电流,控制这部分功耗主要决定于生产工艺和所用的材料;其二是动态工作电流,而影响这部分功耗的因素很多,如电路设计的方式,线路的复杂程度,工作时时钟频率等。时钟门控技术clock gating就是一种非常简单和有效的功耗控制方法,它的基本原理就是通过关闭电路上暂时用不到的功能模块和它的时钟,从而实现节省电流消耗的目的。
在本发明的实施例中提供了一种面向数据流处理器的功耗控制方法,基于数据流处理器执行模式的特点并借助于时钟门控技术,实现更细粒度的功耗控制,以获取更好的处理能效。在数据流处理器中,程序是以数据流图表示的。在执行之前,首先需要根据数据流图将指令或者指令块映射至相应的处理单元中,然后再开始执行该数据流图。这种执行方式本质上是一种可预测的执行方式。也就是说,借助于数据流图映射之后的指令与处理单元的确定性映射关系,可以预测该处理单元在此次执行期间可能用到的部件,进而可以通过时钟门控技术关掉不用硬件资源,从而在更细粒度地实现对硬件部件的功耗控制。
图1示出了根据本发明一个实施例的面向数据流处理器的功耗控制方法的流程示意图。该方法包括:S1)根据待执行程序的数据流图,将各个指令映射至数据流处理器中的多个处理单元;S2)根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件;S3)通过时钟门控技术激活所需的运算部件。
在步骤S1)进行数据流图的映射,根据待执行程序的数据流图,将相应的指令或指令块(一组指令)通过映射算法分配至数据流处理器中的多个处理单元。在一些实施例中,当完成数据流图的映射后,还可以通过时钟门控技术将数据流处理器中其余的没有被分配或被映射指令的处理单元设置为关闭,从而达到降低功耗的目的。在又一些实施例中,可以在生成待执行程序的数据流图的编译过程中,可以根据每条指令的类型标注每条指令所需的运算部件的类别。例如浮点乘法指令FMUL所需的运算部件的类别为浮点乘法运算器(Float Multiplier),而ADD指令所需的运算部件的类别为算术逻辑单元ALU等。
在步骤S2)在完成数据流图映射之后,根据指令或指令块与各处理单元的确定性映射关系可对每个处理单元在此次之行期间要执行的指令类型和所需部件类型进行统计,以确定执行各指令所需的运算部件。对于某个处理单元,通过一次映射分配的指令集及相应运算部件可以保存在如图2所示的表格中。
在步骤S3),为进行功耗控制,对于每个处理单元,其各运算部件的初始状态可以设为关闭状态,通过图2表示所示的统计表,提前通过时钟门控技术激活执行指令所需的相关运算部件,在不影响性能的前提下,降低相应的损失功耗。在又一个示例中,对于每个处理单元,当其被分配指令时,可以通过时钟门控技术关闭除执行指令所需的相关运算部件之外的其余部件。
图3左边部分示出了一个示例的数据流图生成及映射过程示意。该示例中给出的是一段典型的两重循环的程序段,以及其经编译后生成的数据流图(DFG)。从该数据流图可以体现出整个程序段的执行内容,包括指令间的依赖、存储的访问以及循环执行的次数等。其中off为地址offset计算指令,LD为LOAD指令,ST为STORE指令,+/×为加法/乘法指令。这些指令通过映射算法分配至各处理单元PE0、PE1、PE2和PE3。在相应的处理单元执行的操作类等需求基本得到确定后,可以通过预测指令执行类型和执行时间来动态控制相应部件的功耗,达到细粒度功耗控制的目标。以图中PE1计算单元为例,当完成指令或指令块映射之后,可以预测出在本次映射中,PE1中存在LOAD及ADD指令,若数据为定点数据,则所需运算部件为定点加法部件,而定点乘法部件、浮点各部件等都在一定周期内不会使用,此时可结合时钟门控技术,实现细粒度的部件级的时钟开关控制,达到降低功耗的目的。如图3右边部分所示,在指令类型(LD、off、+)的使能下,打开所需运算部件,即将相应运算部件的时钟输入打开。而对于本次运算不使用的其他运算部件,则进行关闭,以节省功耗。
在本发明的又一个实施例中,还提供了一种面向数据流处理器的功耗控制装置,其包括统计模块和时钟控制模块。其中统计模块采用如上文结合图1步骤S2介绍的方式根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件。其中各指令是根据待执行程序的数据流图映射至数据流处理器中的多个处理单元中的。时钟控制模块采用如上文结合图1步骤S3介绍的方式通过时钟门控技术激活执行各指令所需的运算部件。在本发明的又一个实施例中,还提供了一种数据流处理器,其上集成有上述实施例介绍的功耗控制装置。
本说明书中针对“各个实施例”、“一些实施例”、“一个实施例”、或“实施例”等的参考指代的是结合所述实施例所描述的特定特征、结构、或性质包括在至少一个实施例中。因此,短语“在各个实施例中”、“在一些实施例中”、“在一个实施例中”、或“在实施例中”等在整个说明书中各地方的出现并非必须指代相同的实施例。此外,特定特征、结构、或性质可以在一个或多个实施例中以任何合适方式组合。因此,结合一个实施例中所示出或描述的特定特征、结构或性质可以整体地或部分地与一个或多个其他实施例的特征、结构、或性质无限制地组合,只要该组合不是非逻辑性的或不能工作。
本说明书中“包括”和“具有”以及类似含义的术语表达,意图在于覆盖不排他的包含,例如包含了一系列步骤或单元的过程、方法、系统、产品或设备并不限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。“一”或“一个”也不排除多个的情况。另外,本申请附图中的各个元素仅仅为了示意说明,并非按比例绘制。
虽然本发明已经通过上述实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。
Claims (8)
1.一种面向数据流处理器的功耗控制方法,其包括:
根据待执行程序的数据流图,将各个指令映射至数据流处理器中的多个处理单元;
根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件;
通过时钟门控技术激活执行各指令所需的运算部件。
2.根据权利要求1所述的方法,还包括将各个指令映射至数据流处理器中的多个处理单元之后,通过时钟门控技术将数据流处理器中没有被分配指令的处理单元设置为关闭状态。
3.根据权利要求1所述的方法,还包括在生成待执行程序的数据流图的过程中,根据每条指令的类型标注每条指令所需的运算部件的类别。
4.根据权利要求1所述的方法,还包括根据指令与各处理单元之间的映射,分别统计每个处理单元要执行的指令类型和所需部件类型,以确定执行各指令所需的运算部件。
5.根据权利要求1所述的方法,还包括对于每个处理单元,将其包含的各运算部件的初始状态设为关闭状态;以及响应于其被分配指令,通过时钟门控技术激活执行指令所需的相关运算部件。
6.一种面向数据流处理器的功耗控制装置,其包括:
统计模块,用于根据映射至每个处理单元的各个指令的类型,确定执行各指令所需的运算部件;其中各指令是根据待执行程序的数据流图映射至数据流处理器中的多个处理单元中的。
时钟控制模块,用于通过时钟门控技术激活执行各指令所需的运算部件。
7.根据权利要求6所述的装置,其中时钟控制模块还用于时钟门控技术将数据流处理器中没有被分配指令的处理单元设置为关闭状态。
8.一种数据流处理器,其上集成有如权利要求6或7所述的功耗控制装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210270118.0A CN114637388A (zh) | 2022-03-18 | 2022-03-18 | 面向数据流处理器的功耗控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210270118.0A CN114637388A (zh) | 2022-03-18 | 2022-03-18 | 面向数据流处理器的功耗控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114637388A true CN114637388A (zh) | 2022-06-17 |
Family
ID=81950150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210270118.0A Pending CN114637388A (zh) | 2022-03-18 | 2022-03-18 | 面向数据流处理器的功耗控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114637388A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282360A (ja) * | 2007-05-14 | 2008-11-20 | Toshiba Corp | 低消費電力回路用高位合成装置及び高位合成方法及びそのプログラム |
CN103440229A (zh) * | 2013-08-12 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于mic架构处理器的向量化优化方法 |
CN109597458A (zh) * | 2017-09-30 | 2019-04-09 | 英特尔公司 | 用于空间阵列中的可配置时钟门控的处理器和方法 |
CN109948200A (zh) * | 2019-02-28 | 2019-06-28 | 西安理工大学 | 一种细粒度控制电源供应的低功耗处理器 |
CN110869946A (zh) * | 2017-02-23 | 2020-03-06 | 大脑系统公司 | 加速的深度学习 |
-
2022
- 2022-03-18 CN CN202210270118.0A patent/CN114637388A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008282360A (ja) * | 2007-05-14 | 2008-11-20 | Toshiba Corp | 低消費電力回路用高位合成装置及び高位合成方法及びそのプログラム |
CN103440229A (zh) * | 2013-08-12 | 2013-12-11 | 浪潮电子信息产业股份有限公司 | 一种基于mic架构处理器的向量化优化方法 |
CN110869946A (zh) * | 2017-02-23 | 2020-03-06 | 大脑系统公司 | 加速的深度学习 |
CN109597458A (zh) * | 2017-09-30 | 2019-04-09 | 英特尔公司 | 用于空间阵列中的可配置时钟门控的处理器和方法 |
CN109948200A (zh) * | 2019-02-28 | 2019-06-28 | 西安理工大学 | 一种细粒度控制电源供应的低功耗处理器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7389403B1 (en) | Adaptive computing ensemble microprocessor architecture | |
Cai et al. | Meeting points: using thread criticality to adapt multicore hardware to parallel regions | |
Seznec et al. | Register write specialization register read specialization: A path to complexity-effective wide-issue superscalar processors | |
WO2009006607A1 (en) | Dynamically composing processor cores to form logical processors | |
Cai et al. | Thread shuffling: Combining DVFS and thread migration to reduce energy consumptions for multi-core systems | |
CN115374923A (zh) | 基于risc-v扩展的通用神经网络处理器微架构 | |
US20070233772A1 (en) | Modular multiplication acceleration circuit and method for data encryption/decryption | |
CN117539548A (zh) | 基于wait机制的指令执行方法、装置、设备及存储介质 | |
US20230195526A1 (en) | Graph computing apparatus, processing method, and related device | |
CN114637388A (zh) | 面向数据流处理器的功耗控制方法及装置 | |
US7076775B2 (en) | Power efficiency in microprocessor systems | |
Lee et al. | A memory allocation technique for low-energy embedded DSP software | |
Ventroux et al. | Scmp architecture: an asymmetric multiprocessor system-on-chip for dynamic applications | |
Murthy et al. | FPGA based Implementation of Power Optimization of 32 Bit RISC Core using DLX Architecture | |
Korol et al. | A runtime power-aware phase predictor for cgras | |
US20240061711A1 (en) | Computing device, operation method of computing device and system on chip | |
Saule et al. | Scheduling with storage constraints | |
Pandit et al. | Design and Implementation of Power Optimized Dual Core and Single Core DLX Processor on FPGA | |
Fryza et al. | Instruction-level programming approach for very long instruction word digital signal processors | |
Zahran et al. | Dynamic thread resizing for speculative multithreaded processors | |
Munaf et al. | A Review on performance Optimization Techniques in Coarse-Grained Reconfigurable Architecture for Multimedia Applications | |
Li et al. | Configuration Mechanism of Software Defined Chip Applied in Signal Processing | |
Middendorf et al. | Scheduling of recursive and dynamic data-flow graphs using stream rewriting | |
Ito et al. | Effectiveness of a high speed context switching method using register bank | |
Francisco Lorenzon et al. | Runtime Adaptability: The Key for Improving Parallel Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |