CN106599366A - 基于机动性的高层次综合调度方法 - Google Patents
基于机动性的高层次综合调度方法 Download PDFInfo
- Publication number
- CN106599366A CN106599366A CN201610996769.2A CN201610996769A CN106599366A CN 106599366 A CN106599366 A CN 106599366A CN 201610996769 A CN201610996769 A CN 201610996769A CN 106599366 A CN106599366 A CN 106599366A
- Authority
- CN
- China
- Prior art keywords
- operator
- mobility
- scheduling
- dispatching
- asap
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于机动性的高层次综合调度方法,其步骤为:S1:确定算子的机动性;S2:确定算子的调度顺序:从机动性最小的算子开始调度;S3:调度算子:在确定算子的调度顺序之后,开始将算子安排到确定的控制步。本发明具有原理简单、易于实现、能够提高综合后电路的资源利用率、最终减小硬件电路面积等优点。
Description
技术领域
本发明主要涉及到集成电路设计领域,特指一种基于机动性的高层次综合调度方法。
背景技术
随着集成电路技术的快速发展,一方面促进了相应设计技术的发展,另一方面也对设计技术提出了更高的要求。如今的集成电路设计,面临着功能强、性能好、规模大、成本低、设计周期短等一系列要求和挑战,这些要求和挑战引起了在集成电路设计方法上的全面革新。新一代的集成电路设计方法在系统描述、电路生成、功能验证等诸多方面与传统的设计方法有明显的区别。高层次综合技术就是其中一个重要的、有代表性的设计技术。
高层次综合技术是一种将高级语言转化为硬件描述语言的技术。算子调度是高层次综合中至关重要的一步,算子调度是将编译转换生成的控制数据流图中的每一个算子分配到各个控制步中,从而实现满足约束条件下最优或较优的算子调度方案。
如图1所示,高层次综合主要分为三个步骤:1.分配,分配要确定可用的硬件资源的量,并管理其他硬件约束(例如速度,面积和功率);2.调度,调度用来确定操作将发生在哪一周期,考虑控制、数据流和用户指令;3.绑定,绑定用于确定每个操作所使用的库单元,绑定考虑了元件的延迟,用户的命令。其中,调度是很关键的一步,调度算法的好坏决定了最终的硬件电路面积、速度、以及功耗。
传统的主要调度方法有ASAP(As Soon As Possible)和ALAP(As Late AsPossible)调度、列表调度、以及力量引导调度。
ASAP和ALAP调度是两种最基本的调度方法。ASAP通常被称为“尽可能早”的调度算法,ALAP通常被称为“尽可能迟”的调度算法。这两种调度算法是最基本、最简单的调度算法。ASAP调度算法不考虑任何资源的限制而试图寻找时间特性最好的方案。“尽可能早”意味着尽量早地执行每一个操作,就是将所有操作赋于最早可能调度到的控制步。ALAP调度算法也不考虑任何资源的限制而试图寻找时间特性最优的方案。与“尽可能早”的算法不同,“尽可能迟”意味着尽量晚地执行每一个操作,只有当一个操作必须被调度,否则就会导致电路不能够在约束步内完成的时候才会被调度。
列表调度算法是一种构造型调度算法,该算法来源于微码压缩技术。列表调度算法的核心是为每一个算子确定一个优先级数,按照优先级数从大到小的顺序确定算子被安排的顺序。例如以算子出现的先后顺序作为算子的优先级函数,即先出现的算子优先级高,先被安排,后出现的算子优先级低,后被安排。
力量引导调度的目的是通过使同类型的算子尽可能均匀的分布在各个控制步中来最小化所需要的资源。在力量引导调度中,为了更清楚更形象地表述控制步中的算子与控制步的关系力量引导算法从物理学中引入了“力”的概念。把一个控制步想象成一个可以承载砝码的弹簧,而这些砝码就是可能放入该控制步的算子。每个控制步都承受来自算子施加的“压力”。按照“各个控制步中同类算子的数量尽可能平均”的原则,要使得各个控制步上的“压力”尽可能的平均。
由上可知,传统调度方法中,ASAP和ALAP调度给出的调度方案并不是真正实用化的方案,因为尽可能地将操作执行时间提前或推迟必然会使资源复用性变差。列表调度算法最大优点就是比较简单,易于实现,在大多数情况下都能得到较优的算子调度方案。但是列表调度算法只关心算子安排次序问题,对整个优化过程考虑不全面,所以并不能保证所得到的结果最优。另外,确定一个有效的算子优先级函数也比较困难。力量引导调度算法既指出应该选择哪个算子进行安排,又指出这个算子应该安排在哪一个控制步中,虽然能够得到最优的调度结果,但是它比较复杂,不易于实现。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、易于实现、能够提高综合后电路的资源利用率、最终减小硬件电路面积的基于机动性的高层次综合调度方法。
为解决上述技术问题,本发明采用以下技术方案:
一种基于机动性的高层次综合调度方法,其步骤为:
S1:确定算子的机动性;
S2:确定算子的调度顺序:从机动性最小的算子开始调度;
S3:调度算子:在确定算子的调度顺序之后,开始将算子安排到确定的控制步。
作为本发明的进一步改进:在步骤S1中,通过计算每个算子的ASAP和ALAP调度结果,来得到每个算子的机动性,确定每一算子的活动范围。
作为本发明的进一步改进:所述机动性的计算过程为:设v为一个操作,CSASAP(v)为操作v在ASAP调度中所在控制步的序号,CSALAP(v)为操作v在ALAP调度中所在控制步的序号,则算子v的机动性M(v)=CSALAP(v)-CSASAP(v)+1。
作为本发明的进一步改进:在步骤S3中,根据每一控制步的初始算子数目来判断,将算子安排到同类初始算子数目较小的控制步中,使不同控制步中同类算子数目相对均匀。
与现有技术相比,本发明的优点在于:
本发明的基于机动性的高层次综合调度方法,原理简单、易于实现、能够提高综合后电路的资源利用率、最终减小硬件电路面积。它从机动性最小的算子开始调度,因为机动性小的可供选择的控制步少,导致优化的可能性较小,所以先安排它们;机动性大的算子由于可供选择的控制步多,导致优化的可能性较大,所以后安排它们;这样既考虑了应该选择哪一个算子进行安排,又指出这个算子应该安排在哪一个控制步中,为此本发明是一种能保证调度结果最优性的调度方法。
附图说明
图1是高层次综合过程的原理示意图。
图2是本发明调度方法的流程示意图。
图3是本发明在具体应用实例中的数据控制流示意图。
图4是本发明在具体应用实例中简化数据控制流示意图。
图5是本发明在具体应用实例中算子机动性的示意图。
图6是本发明在具体应用实例中一次调度后的结果示意图。
图7是本发明在具体应用实例中基于机动性的调度结果示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
由于传统ASAP和ALAP给出的调度方案并不是真正实用化方案,这是因为尽可能地将操作执行的时间提前或推迟必然会使资源的复用性变差。在ASAP和ALAP的算法中也看到,这两个算法并没有考虑任何的资源限制,而算子调度的目的是最大限度的复用资源,所以ASAP和ALAP调度算法并不符合算子调度的初衷。但是,从这两中调度方案中可以得到关于算子的一个重要特性:算子的机动性。因为ASAP和ALAP调度给出了算子所能在的控制步的最前和最后的极限位置,算子在任意一种调度方案中所在的控制步只能在这两个位置之间变动,这种变动的范围就是算子的机动性。本发明正是基于上述算子机动性所形成的处理策略。
如图2所示,本发明的基于机动性的高层次综合调度方法,其步骤为:
S1:确定算子的机动性:计算每个算子的ASAP和ALAP调度结果,从而计算出每个算子的机动性,确定每一算子的活动范围;在ASAP和ALAP调度方案中给出了算子所能在的控制步的最前和最后位置,算子在任意一种调度方案中所在的控制步只能在这两个位置之间变动,这种变动的范围就是算子机动性。
S2:确定算子的调度顺序:从机动性最小的算子开始调度;因为机动性小的可供选择的控制步少,导致优化的可能性较小,所以先安排它们。机动性大的算子由于可供选择的控制步多,导致优化的可能性较大,所以后安排它们;
S3:调度算子:在确定算子的调度顺序之后,开始将算子安排到确定的控制步;在这一过程中是根据每一控制步的初始算子数目来判断,将算子安排到同类初始算子数目较小的控制步中,使不同控制步中同类算子数目相对均匀,这样同类型算子可以共享一个硬件单元,达到高效利用资源的目的。
下面将以一个具体应用实例来对本发明做进一步的说明。在具体应用实例中,如图3所示,是通过LLVM将C程序转化为易于高层次综合过程表现形式——控制数据流图。输入的C程序经过LLVM编译,得到中间指令,对中间指令加入约束条件,最终得到调度结果。以LLVM系统框架为基础,在后端对生成的LLVM中间代码进行处理,然后将各个模块间的相关性提取出来,得到控制数据流图。即:通过LLVM将C程序转化为易于高层次综合过程表现形式——控制数据流图。然后,加入差分约束系统提供的约束条件,在此约束基础上,对其中的指令进行分配,调度,绑定,生成可综合的Verilog程序。如图4所示,是一个简化的控制数据流表示形式。如图5~图7则是对图4中所表示的控制数据流图调度的例子。
具体调度的详细步骤如下:
S1:计算各算子的机动性;
在图5中,先求出ASAP和ALAP调度方案,再根据ASAP和ALAP的调度结果计算各个算子的机动性M(v)。
机动性的计算过程为:设v为一个操作,CSASAP(v)为操作v在ASAP调度中所在控制步的序号,CSALAP(v)为操作v在ALAP调度中所在控制步的序号,则算子v的机动性M(v)=CSALAP(v)-CSASAP(v)+1。经过计算,得到各个算子机动性为M(1)=1,M(2)=1,M(3)=2,M(4)=2,M(5)=1,M(6)=1,M(7)=1,M(8)=1,M(9)=3,M(10)=3。
S2:计算各控制步的初始算子数目;
按照机动性从小到大安排算子,算子1,2,5,6,7,8的机动性为1,它们都位于关键路径上,最先被安排,每安排一个算子这一控制步的初始算子数目N(v)就加1,这些关键路径上的算子安排完之后,各个控制步的初始算子数目N(1)=1,N(2)=1,N(3)=2,N(4)=1,N(1)=1。
S3:根据算子机动性安排算子;
机动性为1的算子调度方案已经确定,然后开始安排机动性为2的算子。算子3的机动性为2,算子3可以被安排在控制步3和控制步4中,比较控制步3和控制步4的初始算子数目,N(3)=2>N(4)=1,所以将算子3安排到初始算子数目较小的控制步4中,控制步4的初始算子数目加1。
这样就将算子3安排到控制步4中。到这里为止,仅仅是完成了对一个算子的安排,算子3就被“固定”到控制步4中,算子4,9,10仍是“自由”的,是待安排的算子,可以继续重复整个过程,将所有算子调度完毕。
如图6所示,是将算子3安排到控制步之后的结果,算子3的机动性就确定为1,就得到新的控制数据流图,再按照以上步骤,安排下一个算子。
如图7所示,是将所有算子安排到控制步后的结果,可以看出基于机动性的调度算法得到的调度结果使得算子更加均匀的分布在各个控制步中,达到了提高系统资源复用性,减小系统资源代价的目的。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (4)
1.一种基于机动性的高层次综合调度方法,其特征在于,步骤为:
S1:确定算子的机动性;
S2:确定算子的调度顺序:从机动性最小的算子开始调度;
S3:调度算子:在确定算子的调度顺序之后,开始将算子安排到确定的控制步。
2.根据权利要求1所述的基于机动性的高层次综合调度方法,其特征在于,在步骤S1中,通过计算每个算子的ASAP和ALAP调度结果,来得到每个算子的机动性,确定每一算子的活动范围。
3.根据权利要求2所述的基于机动性的高层次综合调度方法,其特征在于,所述机动性的计算过程为:设v为一个操作,CSASAP(v)为操作v在ASAP调度中所在控制步的序号,CSALAP(v)为操作v在ALAP调度中所在控制步的序号,则算子v的机动性M(v)=CSALAP(v)-CSASAP(v)+1。
4.根据权利要求1或2或3所述的基于机动性的高层次综合调度方法,其特征在于,在步骤S3中,根据每一控制步的初始算子数目来判断,将算子安排到同类初始算子数目较小的控制步中,使不同控制步中同类算子数目相对均匀。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610996769.2A CN106599366A (zh) | 2016-11-11 | 2016-11-11 | 基于机动性的高层次综合调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610996769.2A CN106599366A (zh) | 2016-11-11 | 2016-11-11 | 基于机动性的高层次综合调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106599366A true CN106599366A (zh) | 2017-04-26 |
Family
ID=58590270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610996769.2A Pending CN106599366A (zh) | 2016-11-11 | 2016-11-11 | 基于机动性的高层次综合调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599366A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108859759A (zh) * | 2018-06-25 | 2018-11-23 | 武汉科技大学 | 电动汽车仪表系统及其调度方法 |
CN110852930A (zh) * | 2019-10-25 | 2020-02-28 | 华中科技大学 | 一种基于OpenCL的FPGA图处理加速方法和系统 |
CN112148456A (zh) * | 2020-09-30 | 2020-12-29 | 成都华微电子科技有限公司 | Fpga高层次综合调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345504A (zh) * | 2013-07-03 | 2013-10-09 | 邢立宁 | 单星调度的算子构建方法 |
CN103455131A (zh) * | 2013-08-20 | 2013-12-18 | 北京航空航天大学 | 一种基于概率的嵌入式系统中能耗最小化的任务调度方法 |
CN104020994A (zh) * | 2014-05-30 | 2014-09-03 | 华为技术有限公司 | 基于流系统的流过程定义装置和流过程定义方法 |
-
2016
- 2016-11-11 CN CN201610996769.2A patent/CN106599366A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345504A (zh) * | 2013-07-03 | 2013-10-09 | 邢立宁 | 单星调度的算子构建方法 |
CN103455131A (zh) * | 2013-08-20 | 2013-12-18 | 北京航空航天大学 | 一种基于概率的嵌入式系统中能耗最小化的任务调度方法 |
CN104020994A (zh) * | 2014-05-30 | 2014-09-03 | 华为技术有限公司 | 基于流系统的流过程定义装置和流过程定义方法 |
Non-Patent Citations (1)
Title |
---|
贾宝东等: ""基于差分约束系统的高层次综合调度算法优化"", 《中国计算机学会.第二十届计算机工程与工艺年会暨第六届微处理器技术论坛论文集》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108859759A (zh) * | 2018-06-25 | 2018-11-23 | 武汉科技大学 | 电动汽车仪表系统及其调度方法 |
CN108859759B (zh) * | 2018-06-25 | 2021-02-09 | 武汉科技大学 | 电动汽车仪表系统及其调度方法 |
CN110852930A (zh) * | 2019-10-25 | 2020-02-28 | 华中科技大学 | 一种基于OpenCL的FPGA图处理加速方法和系统 |
CN112148456A (zh) * | 2020-09-30 | 2020-12-29 | 成都华微电子科技有限公司 | Fpga高层次综合调度方法 |
CN112148456B (zh) * | 2020-09-30 | 2023-05-16 | 成都华微电子科技股份有限公司 | Fpga高层次综合调度方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599366A (zh) | 基于机动性的高层次综合调度方法 | |
CN107864505B (zh) | 用于到noma系统中子带的功率和用户分配的方法和装置 | |
CN103336723B (zh) | 基于关键路径的适应处理器内核紧缺调度方法 | |
CN102799957B (zh) | 一种云计算环境下安全感知的科学工作流调度方法 | |
CN109033540B (zh) | 一种芯片随机验证过程中的激励管理方法及系统 | |
CN104516785A (zh) | 一种云计算资源调度系统及方法 | |
CN105722206A (zh) | 多用户ofdm中继系统能量效率优化算法 | |
CN102855153A (zh) | 面向片式多核处理器的流编译优化方法 | |
CN107329831A (zh) | 一种基于改进遗传算法的仿真资源调度方法 | |
CN110011922A (zh) | 弹性光网络中采用业务预测与频谱转换的rsa方法 | |
CN108834216A (zh) | 一种资源调度方法及装置 | |
CN110069278A (zh) | 一种自动化分布式多任务打包方法及系统 | |
EP1994467A2 (en) | Optimized compilation method during conditional branching | |
CN102508721A (zh) | 一种基于贪心模拟退火算法的软硬件划分的方法 | |
CN110941829A (zh) | 一种基于生成对抗网络的大规模硬件木马库生成系统及方法 | |
CN107153563A (zh) | 一种软件版本生成方法及装置 | |
CN106487889A (zh) | 一种面向云数据中心的任务与数据联合部署方法 | |
CN104244328B (zh) | 一种组合业务调度方法及装置 | |
CN1819688A (zh) | 第三代移动通信系统网络层性能的快速仿真方法 | |
Hansen et al. | Multi-token resource sharing for pipelined asynchronous systems | |
CN102833786B (zh) | 一种多载波系统中独立载波调度方法 | |
CN111866061A (zh) | 一种基于非正交多址接入与蜂窝网络用户协作的移动边缘计算时延优化方法 | |
CN104484160A (zh) | 一种优化的分簇vliw处理器上的指令调度和寄存器分配方法 | |
CN102083216B (zh) | 一种hsupa系统中的资源分配方法 | |
da Rosa Righi et al. | Migbsp: A novel migration model for bulk-synchronous parallel processes rescheduling |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170426 |