晶上系统开发环境搭建方法及系统转让专利

申请号 : CN202011313970.9

文献号 : CN112506496B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邬江兴刘勤让魏帅沈剑良汤先拓吕平李沛杰陈艇刘冬培董春雷

申请人 : 国家数字交换系统工程技术研究中心天津市滨海新区信息技术创新中心

摘要 :

本发明属于计算机处理技术领域,特别涉及一种晶上系统开发环境搭建方法及系统,依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任务的开发环境模板。本发明依据系统芯片集成设计将具有处理功能的芯粒作为开发组件中构件,每个PE单元可以对应于一个构件实现,根据领域需要预置不同的组件,整个搭建过程方便、快捷,有利于各种组件的复用,能够使用组件更加灵活地满足新的应用需求,具有较好的应用前景。

权利要求 :

1.一种晶上系统开发环境搭建方法,其特征在于,包含如下内容:依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;

将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;

并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任务的开发环境模板;

其中,开发环境主要由任务管理、调度以及资源管理三部分组成,其中,任务管理包括在线资源管理、任务管理、在线任务三部分;在线资源管理用于显示调度器发送的在线资源及使用情况;任务管理负责对任务的管理,包括:新建任务,任务描述,可用图形化的DAG表示,包括:任务功能,连接关系,带宽需求等;在线任务用于显示用户查看的任务的DAG图及资源分配图,任务参数及输入数据配置,任务的运行进度情况及任务执行结果展示;调度包括DAG 调度、资源调度两部分,DAG 调度负责将任务分成时间前后运行的组件运行集合、构件运行集合,资源调度负责将构件分解到不同的资源节点上,通过下载器将相应的构件配置下载到相应的逻辑单元;资源管理负责整个系统的资源管理;

对任务进行分析,将其分解为组件流程,依据组件流程选取对应需求的组件来组成组件运行集合;

依据任务功能、连接关系及带宽需求将任务进行有向无环图的图形化表示,对任务进行分析,以选取对应需求的组件来组成组件运行集合。

2.根据权利要求1所述的晶上系统开发环境搭建方法,其特征在于,利用资源自适应分配算法分配当前任务需求,寻找最相似组件,以通过最小修改代价完成资源分配。

3.根据权利要求1所述的晶上系统开发环境搭建方法,其特征在于,资源自适应分配算法包含如下内容:遍历组件库中组件,依据当前任务需求通过组件的差异度选取候选组件;

依据候选组件的修改代价来选择其中修改代价最小的组件进行修改适配。

4.根据权利要求2所述的晶上系统开发环境搭建方法,其特征在于,对组件的差异度进行排序,选取差异度小于设定阈值的组件作为候选组件。

5.根据权利要求1所述的晶上系统开发环境搭建方法,其特征在于,资源分配中,通过物理资源映射优化来满足应用功能切换需求。

6.根据权利要求5所述的晶上系统开发环境搭建方法,其特征在于,结合任务调度和负载平衡对任务执行效能及资源利用率影响,通过启发式算法或强化学习算法进行物理资源映射的优化。

7.一种晶上系统开发环境搭建系统,用于依据应用需求在晶上系统上搭建相应开发环境,其特征在于,包含:预设模块和搭建模块,其中,预设模块,用于依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;

搭建模块,用于将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元构件,生成任务的开发环境模板;

其中,开发环境主要由任务管理、调度以及资源管理三部分组成,其中,任务管理包括在线资源管理、任务管理、在线任务三部分;在线资源管理用于显示调度器发送的在线资源及使用情况;任务管理负责对任务的管理,包括:新建任务,任务描述,可用图形化的DAG表示,包括:任务功能,连接关系,带宽需求等;在线任务用于显示用户查看的任务的DAG图及资源分配图,任务参数及输入数据配置,任务的运行进度情况及任务执行结果展示;调度包括DAG 调度、资源调度两部分,DAG 调度负责将任务分成时间前后运行的组件运行集合、构件运行集合,资源调度负责将构件分解到不同的资源节点上,通过下载器将相应的构件配置下载到相应的逻辑单元;资源管理负责整个系统的资源管理;

对任务进行分析,将其分解为组件流程,依据组件流程选取对应需求的组件来组成组件运行集合;

依据任务功能、连接关系及带宽需求将任务进行有向无环图的图形化表示,对任务进行分析,以选取对应需求的组件来组成组件运行集合。

8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1 6任一项所述的晶上系统开发环~

境搭建方法。

说明书 :

晶上系统开发环境搭建方法及系统

技术领域

[0001] 本发明属于计算机处理技术领域,特别涉及一种晶上系统开发环境搭建方法及系统。

背景技术

[0002] 2017年,美国DARPA(Defense Advanced Research Projects Agency)在“电子复兴计划”中规划了名为“通用异构集成和IP重用战略”(CommonHeterogeneous Integration 
and IP Reuse Strategies,CHIPS)的Chiplet项目,参与方包括英特尔、美光、Cadence、
Synopsys多类型企业等。它是一类满足特定功能的die,可称为模块芯片。Chiplet模式是通
过die‑to‑die内部互联技术将多个模块芯片与底层基础芯片封装在一起,构成多功能的异
构System in Packages (SiPs)芯片的模式。近年来,芯粒(Chiplet)已成为半导体产业的
热门词。在摩尔定律奔向7纳米、3纳米、1纳米的物理极限之际,工艺制程缩减所需要的成本
和开发时间均将大幅提升,后摩尔定律时代已经来临。Chiplet作为业界为了弥补硅工艺技
术增长放缓所做的几项努力之一,被认为是延缓摩尔定律失效、放缓工艺进程时间、支撑半
导体产业继续发展的最为有效的方案。
[0003] 基于芯片设计的数据处理具有良好的发展前景,但是其庞大的计算资源,复杂的互联关系给编译系统带来了较大的挑战,如何充分利用系统资源,给用户提供方便易用的
开发环境,目前还没有相关技术来参考。

发明内容

[0004] 为此,本发明提供一种晶上系统开发环境搭建方法及系统,能够充分利用系统计算资源来获取较快的开发模板重构时间和较高的开发执行效率。
[0005] 按照本发明所提供的设计方案,一种晶上系统开发环境搭建方法,包含如下内容:
[0006] 依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
[0007] 将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,生成任
务的开发环境模板。
[0008] 作为本发明晶上系统开发环境搭建方法,进一步的,对任务进行分析,将其分解为组件流程,依据组件流程选取对应需求的组件来组成组件运行集合。
[0009] 作为本发明晶上系统开发环境搭建方法,进一步地,依据任务功能、连接关系及带宽需求将任务进行有向无环图的图形化表示,对任务进行分析,以选取对应需求的组件来
组成组件运行集合。
[0010] 作为本发明晶上系统开发环境搭建方法,进一步地,利用资源自适应分配算法分配当前任务需求,寻找最相似组件,以通过最小修改代价完成资源分配。
[0011] 作为本发明晶上系统开发环境搭建方法,进一步地,资源自适应分配算法包含如下内容:遍历组件库中组件,依据当前任务需求通过组件的差异度选取候选组件;依据候选
组件的修改代价来选择其中修改代价最小的组件进行修改适配。
[0012] 作为本发明晶上系统开发环境搭建方法,进一步地,对组件的差异度进行排序,选取差异度小于设定阈值的组件作为候选组件。
[0013] 作为本发明晶上系统开发环境搭建方法,进一步地,资源分配中,通过物理资源映射优化来满足应用功能切换需求。
[0014] 作为本发明晶上系统开发环境搭建方法,进一步地,结合任务调度和负载平衡对任务执行效能及资源利用率影响,通过启发式算法或强化学习算法进行物理资源映射的优
化。
[0015] 进一步地,本发明还提供一种晶上系统开发环境搭建系统,用于依据应用需求在晶上系统上搭建相应开发环境,包含:识预设模块和搭建模块,其中,
[0016] 预设模块,用于依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
[0017] 搭建模块,用于将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的
逻辑单元,生成任务的开发环境模板。
[0018] 进一步地,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的晶上系统开发环境搭建
方法。
[0019] 本发明的有益效果:
[0020] 依据系统芯片集成设计将具有处理功能的芯粒作为开发组件中构件,每个PE单元可以对应于一个构件实现,根据领域需要预置不同的组件,使得用户可以通过组件通过拖
拽的方式轻松搭建自己的应用,高级用户也可通过高级语言基于组件构建更加复杂的系
统;整个搭建过程方便、快捷,有利于各种组件的复用,能够使用组件更加灵活地满足新的
应用需求,确保搭建过程中系统稳定性,降低时间开销,且便于资源的统一管理、调配和存
储,具有较好的应用前景。
附图说明:
[0021] 图1为实施例中晶上系统开发环境搭建流程图;
[0022] 图2为实施例中系统开发环境组成示意;
[0023] 图3为实施例中任务的DAG图示意;
[0024] 图4为实施例中资源分配示意;
[0025] 图5为实施例中自动编译框架示意;
[0026] 图6为实施例中资源自适应分配算法流程示意;
[0027] 图7为实施例中算法应用示例。具体实施方式:
[0028] 为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
[0029] 晶上系统将系统集成在单个芯片中,其核心功能在于多功能模块的集成,技术优势主要是相对于SoC芯片和基于PCB板的集成技术,长期发展有望给现有半导体产业链和商
业模式带来变革。晶上系统具有良好的发展前景,但是其庞大的计算资源,复杂的互联关系
给编译系统带来了较大的挑战,如何充分利用系统资源,给用户提供方便易用的开发环境。
本发明实施例,参见图1所示,提供一种晶上系统开发环境搭建方法,参见图1所示,包含如
下内容:
[0030] S101、依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
[0031] S102、将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的逻辑单元,
生成任务的开发环境模板。
[0032] 依据系统芯片集成设计将具有处理功能的芯粒作为开发组件中构件,每个PE单元可以对应于一个构件实现,根据领域需要预置不同的软件组件,对应用任务进行细化,并通
过构件算粒来实现,使得用户可以通过组件通过拖拽的方式轻松搭建自己的应用,高级用
户也可通过高级语言基于组件构建更加复杂的系统。整个搭建过程方便、快捷,便于资源的
统一管理、调配和存储,具有较好的应用前景。
[0033] 作为本发明实施例中的晶上系统开发环境搭建方法,进一步的,对任务进行分析,将其分解为组件流程,依据组件流程选取对应需求的组件来组成组件运行集合。进一步地,
依据任务功能、连接关系及带宽需求将任务进行有向无环图的图形化表示,对任务进行分
析,以选取对应需求的组件来组成组件运行集合。
[0034] 参见图2所示,开发环境主要由任务管理、调度以及资源管理三部分组成,其中,任务管理包括在线资源管理、任务管理、在线任务三部分。在线资源管理用于显示调度器发送
的在线资源及使用情况。任务管理负责对任务的管理,包括:新建任务,参见图3所示,任务
描述,可用图形化的DAG表示,包括任务功能,连接关系,带宽需求等;任务使用资源数计算,
下发所需资源数给Scheduler进行资源分配,同时接收Scheduler资源分配信息;保存任务
模板,将任务的基本信息、资源使用情况及运行结果保存到数据库中。在线任务用于显示用
户查看的任务的DAG图及资源分配图,任务参数及输入数据配置,任务的运行进度情况及任
务执行结果展示。调度包括DAG调度、资源调度两部分。Scheduler负责汇总Node Manager 
上报的资源信息。DAG调度负责将任务分成时间前后运行的组件运行集合、构件运行集合;
参见图4所示,资源调度负责将构件分解到不同的资源节点上,通过下载器将相应的构件配
置下载到相应的逻辑单元,同时负责汇总Node  Manager上报的资源信息发送给
Applications Manager的Online resource模块。资源管理负责整个系统的资源管理。
[0035] 每个PE单元可以对应于一个构件实现,根据领域需要预置不同的组件,使得用户可以通过组件通过拖拽的方式轻松搭建自己的应用,高级用户也可通过高级语言基于组件
构建更加复杂的系统。可利用智能编译工具分析任务组成,将其分为组件流程,进一步划分
为构件实现,每个构件对应于一种PE实现,然后调用资源虚拟化接口进行资源的分配,如图
5所示。因为基于芯片设计的数据处理系统中各类资源规模庞大,互连约束复杂,如果通过
穷举难以实现,需要通过启发式算法和强化学习等算法进行映射效率的优化,满足系统功
能的快速切换需求。系统中集成有各种功能不同、性能各异、且资源规模动态变化的PE、SDI
以及DM资源,实现任务调度和负载平衡将对任务执行的效能以及系统资源的利用率均有十
分重要的影响。系统中异构资源丰富,分布较为复杂,为了重复利用系统资源,系统提前预
置不同通信效率的互连转换模块,中心互连采用高带宽、高吞吐量、低交换代价的交换协议
模块,在末节节点采用较为复杂的交换协议降低端点协议转换代价,从而从整体上提高系
统传输效率,编译系统在进行编译时自动根据系统需求将相应子任务通信选择合适的通信
传输协议,以充分利用系统资源,提升传输效率。
[0036] 进一步地,本发明实施例中,利用资源自适应分配算法分配当前任务需求,寻找最相似组件,以通过最小修改代价完成资源分配。进一步地,资源自适应分配算法包含如下内
容:遍历组件库中组件,依据当前任务需求通过组件的差异度选取候选组件;依据候选组件
的修改代价来选择其中修改代价最小的组件进行修改适配。进一步地,对组件的差异度进
行排序,选取差异度小于设定阈值的组件作为候选组件。进一步地,资源分配中,通过物理
资源映射优化来满足应用功能切换需求。进一步地,结合任务调度和负载平衡对任务执行
效能及资源利用率影响,通过启发式算法或强化学习算法进行物理资源映射的优化。具体
实现算法可参见图6所示,基于最小改动的资源自适应分配根据当前的资源状况,从回收组
件库中寻找最相似的组件,使得系统可以以最小的修改代价完成资源分配,分为以下步骤:
1、判断回收组件库是否为空,否则跳到第7步;2、遍历回收组件库,计算与组件K的差异度;
3、按照差异度对组件库中的组件进行排序;4、取其中差异度选集中的修改代价;6、取其中修改代价最小的进行修改适配,调至第8步;7、按照构件进行
相应申请;8、申请结束,返回被修改的组件。
[0037] PE处理单元构件可以根据当前资源类型及分布情况,寻找出最小的资源修改方法,以快速满足任务需求,如图7所示,假定Task1和Task2都只有1个组件形成。其中Task1是
原来任务执行后被回收的组件,Task2是新来任务中需要被例化的组件,可映射在同一块物
理资源上。Task1由2个A构件和1个B构件、1个C构件组成,映射在物理资源上如图中映射 1
所示,构件之间的通路如映射1中的由点和断线组成的虚线所示,Task2由2个B构件和1 个A
构件、1个C构件组成,映射在物理资源上如图中映射2所示,相比较映射1,只需将左下角的
PE重构为B形态,同时调整构件之间的通路如映射2中的由点和断线组成的虚线所示,相比
于重新构件Task,可以获取更快的重构时间和更高的执行效率。
[0038] 进一步地,本发明实施例还提供一种晶上系统开发环境搭建系统,用于依据应用需求在晶上系统上搭建相应开发环境,包含:识预设模块和搭建模块,其中,
[0039] 预设模块,用于依据应用领域需求在晶上系统上预制用于满足应用需求的异构组件,形成组件库;并在每个组件中预设有若干用于运行计算处理算法的构件;
[0040] 搭建模块,用于将任务按时间运行前后进行划分,选取对应任务需求的异构组件作为组件运行集合;并将组件运行集合中组件的构件分配到不同资源节点,并配置相应的
逻辑单元,生成任务的开发环境模板。
[0041] 除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
[0042] 基于上述的系统,本发明实施例还提供一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,
使得所述一个或多个处理器实现上述的系统。
[0043] 基于上述的系统,本发明实施例还提供一种计算机可读介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的系统。
[0044] 本发明实施例所提供的装置,其实现原理及产生的技术效果和前述系统实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述系统实施例中相应内容。
[0045] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述系统实施例中的对应过程,在此不再赘述。
[0046] 在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
[0047] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0048] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、系统和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代
表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标
注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基
本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的
是,框图和/ 或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行
规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的
组合来实现。
[0049] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和系统,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,
仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可
以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨
论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接
耦合或通信连接,可以是电性,机械或其它的形式。
[0050] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0051] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明
的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件
产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得
一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所
述系统的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑
Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以
存储程序代码的介质。
[0052] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发
明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员
在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻
易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使
相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护
范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。