异构多核的SoC设计评估系统转让专利

申请号 : CN201510332821.X

文献号 : CN104899385B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林忱杜学亮

申请人 : 北京思朗科技有限责任公司

摘要 :

本发明提供的异构多核的SoC设计评估系统,包括:组件抽象建模模块,用于对总线的主从组件进行抽象建模,其中,所述主从组件包括协处理器;设计空间定义模块,用于根据片上系统SoC设计需求设置各个变量和所述各个变量对应的取值范围;性能指标评估模块,用于根据所述各个变量和所述取值范围构建第一SoC结构,并对所述第一SoC结构进行仿真评估和综合评估,从而获取所述SoC的性能指标;模型训练与探索模块,用于利用所述性能指标和所述各个变量,通过机器学习算法进行模型训练,获得预测模型或分类模型;体系结构寻优模块,用于利用所述预测模型或所述分类模型选取第二SoC结构。本发明可以极大程度的辅助完成异构多核SoC体系结构的设计和评估。

权利要求 :

1.一种异构多核的SoC设计评估系统,其特征在于,所述系统包括:组件抽象建模模块,用于对总线的主从组件进行抽象建模,其中,所述主从组件包括协处理器;

设计空间定义模块,用于根据片上系统SoC设计需求设置各个变量和所述各个变量对应的取值范围;

性能指标评估模块,用于根据所述各个变量和所述取值范围构建第一SoC结构,并对所述第一SoC结构进行仿真评估和综合评估,从而获取所述SoC的性能指标;

模型训练与探索模块,用于利用所述性能指标和所述各个变量,通过机器学习算法进行模型训练,获得预测模型或分类模型;

体系结构寻优模块,用于利用所述预测模型或所述分类模型选取第二SOC结构。

2.根据权利要求1所述的系统,其特征在于,所述组件抽象建模模块包括:寄存器配置单元,用于对寄存器进行配置;

直接内存访问数据传输单元,用于在外部存储器与片内存储器之间传输数据;

计算功能模拟单元,用于对先入先出FIFO指令信息进行译码,并通过计数器计数模拟功能部件的计算所需时间;

主设备接口单元,用于所述数据的传输。

3.根据权利要求1所述的系统,其特征在于,所述性能指标评估模块包括:测试基准模块,用于为所述第一SoC结构的仿真提供输入激励;

监控模块,用于监控所述第一SoC结构的各个部分的各种性能指标。

4.根据权利要求1所述的系统,其特征在于,所述性能指标评估模块还包括:利用时序约束和工艺库进行逻辑综合;

通过IP性能指标数据库计算所述第一SoC结构的面积和功耗。

5.根据权利要求1所述的系统,其特征在于,所述性能指标评估模块还包括:根据下式计算所述第一SoC结构的面积:Areasubsystem=[Areareg_matrix+Numcp×(Areacp+Areax2x)+Nummem×(Areamem_matrix+Areamem)]×δ其中,Areasubsystem为所述第一SoC结构的面积,Areareg_matrix为寄存器配置总线矩阵的面积,Numcp为所述协处理器的个数,Areacp为所述协处理器的面积,Areax2x为总线桥的面积,Nummem为外部高速存储器的个数,Areamem_matrix为外部高速存储器矩阵的面积,Areamem为所述外部高速存储器的面积,δ为经验系数。

6.根据权利要求1所述的系统,其特征在于,所述体系结构寻优模块包括:在约束条件和优化目标下,利用所述预测模型或所述分类模型确定所述第二SoC结构。

说明书 :

异构多核的SoC设计评估系统

技术领域

[0001] 本发明涉及计算机应用技术,特别是涉及一种异构多核的SoC设计评估系统。

背景技术

[0002] 随着芯片制造工艺技术的不断发展,以及当今社会对于芯片多功能、高效、低能、易携带的需求越来越高,以往一味追求高频率、高容量、同构多核的芯片已经遇到瓶颈。为了适应新时代对集成电路的新需求,国际半导体技术蓝图(International Technology Roadmap for Semiconductors,ITRS)提出了行业新的发展目标——“More than Moore”。ITRS认为集成电路的发展不应该仅仅局限于“摩尔定律”,一味追求提高芯片的容量或减小芯片的体积,而更应该着眼于利用不同的方法为消费者提供更多的附加价值,要向“越来越多元化”的方向发展。
[0003] 由此,面向应用领域的异构多核处理器芯片体现出其特殊的优越性——面向应用领域计算特点有针对性的进行优化,异构多核体系结构保证各个核“扬长避短”,同时互相配合,提高性能,降低功耗,使芯片的功能越来越强大,且实现的代价越来越小。
[0004] 异构多核的SoC体系结构设计所涉及到的技术、软件和流程十分繁杂。如果仅仅依靠设计人员手工串联,不仅工作效率极低,并且极其容易出现错误。特别是当设计空间定义较大时,在合理的时间里人工完成探索工作是不可能的。

发明内容

[0005] 本发明提供的异构多核的SoC设计评估系统,可以极大程度上的辅助设计人员完成SoC体系结构的设计和评估工作。
[0006] 根据本发明的一方面,提供一种异构多核的SoC设计评估系统,包括:
[0007] 组件抽象建模模块,用于对总线的主从组件进行抽象建模,其中,所述主从组件包括协处理器;设计空间定义模块,用于根据片上系统SoC设计需求设置各个变量和所述各个变量对应的取值范围;性能指标评估模块,用于根据所述各个变量和所述取值范围构建第一SoC结构,并对所述第一SoC结构进行仿真评估和综合评估,从而获取所述SoC的性能指标;模型训练与探索模块,用于利用所述性能指标和所述各个变量,通过机器学习算法进行模型训练,获得预测模型或分类模型;体系结构寻优模块,用于利用所述预测模型或所述分类模型选取第二SoC结构。
[0008] 本发明实施例提供的异构多核的SoC设计评估系统,通过SoC设计需求设置各个变量和各个变量对应的取值范围,根据各个变量和取值范围构建第一SoC结构,并对所述第一SoC结构进行仿真评估和综合评估,从而获取所述SoC的性能指标,利用性能指标和各个变量,通过机器学习算法进行模型训练,获得预测模型或分类模型,利用预测模型或分类模型选取第二SoC结构,从而可以极大程度的辅助设计人员完成SoC体系结构的设计和评估。

附图说明

[0009] 图1为本发明实施例提供的异构多核的SoC设计评估系统示意图;
[0010] 图2为本发明实施例提供的抽象建模的协处理器模型示意图;
[0011] 图3为本发明实施例提供的第一SoC拓扑结构的示意图;
[0012] 图4为本发明实施例提供的性能指标评估模块的示意图。

具体实施方式

[0013] 下面结合附图对本发明实施例提供的异构多核的SoC设计评估系统进行详细描述。
[0014] 图1为本发明实施例提供的异构多核的SoC设计评估系统示意图。
[0015] 参照图1,系统包括组件抽象建模模块10、设计空间定义模块20、性能指标评估模块30、模型训练与探索模块40和体系结构寻优模块50。
[0016] 组件抽象建模模块10,用于对总线的主从组件进行抽象建模,其中,主从组件包括协处理器、内部外部存储单元和高速IO等功能性部件。
[0017] 这里,组件抽象建模模块10的原则是注重模型接口的可连接性和内部参数的灵活配置性,忽略内部具体功能的实现细节。具体而言,组件抽象建模模块10需具有以下特点:(1)暴露灵活配置的接口,方便模型快速接入SoC体系结构,例如总线数据位宽和ID宽度需要支持灵活的配置;同时为各组件的接口提供IP-XACT类似的接口标准描述文件,以方便灵活接入SoC体系结构,减少手工连接的工作负担,降低错误率;(2)屏蔽组件内部的功能实现细节,以加快仿真评估速度,同时降低抽象模型的开发难度,例如协处理器的抽象模型,可以模糊内部具体每个复杂功能部件的实现细节;(3)根据各个组件的性能指标,配置组件内部参数,描述其数据处理能力,例如协处理器的抽象模型,不仅对接口的读写延迟进行描述,同时对于不同计算模式、计算量和计算粒度的数据吞吐率等性能进行描述;(4)虽然抽象模型主要应用于体系结构探索期,可以牺牲一定的精准度,保证探索的速度,以使整个设计评估工作可以在合理的时间内完成。但是,抽象模型同样需要保证足够的精准度,使动态仿真评估的结果具有可参考性,为体系结构优化提供可靠的依据。否则,过大的误差将导致此工作的意义丧失。
[0018] 设计空间定义模块20,用于根据SoC设计需求设置各个变量和各个变量对应的取值范围。
[0019] 这里,根据异构多核SoC的设计需求和实际工程的实现能力,设置各个变量和所述各个变量对应的取值范围,从而确定设计空间。
[0020] 性能指标评估模块30,用于根据所述各个变量和所述取值范围构建第一SoC结构,并对所述第一SoC结构进行仿真评估和综合评估,从而获取所述SoC的性能指标。
[0021] 这里,仿真评估是通过仿真软件,利用本系统的测试基准模块和监听模块收集SoC体系结构仿真过程中的性能指标,性能指标包括:SoC运行benchmark时,SoC系统的工作时间;SoC运行benchmark时,协处理器的工作时间;SoC总线吞吐率和使用率;关键路径的latency;外部高速存储器总线接口的访问冲突次数等。
[0022] 综合评估是以确定的工艺库,配合时序约束完成逻辑综合,估计SoC的时序、面积与功耗。具体为:(1)对于不变量的组件,例如主控处理器、协处理器、DMA控制器、低速IO等,提前离线综合评估,统计面积和功耗;(2)对于非探索重点的组件,其结构变化种类不多,例如主控处理器配置协处理器的AXI matrix组件,其slave port个数由协处理器的个数决定,除此之外位宽频率等参数均为不变量,提前离线综合评估,统计面积和功耗;(3)对于探索重点的组件,其结构和个数变化种类繁多,例如跨时钟频率和数据位宽的总线桥,单独在线综合评估,统计面积和功耗;(4)SoC体系结构整体的面积和功耗评估,通过各个小组件的相关性能指标加和估计而得,同时依据实验和工程经验,补充修正系数。这样的做法难免会造成评估精度的损失,但是在评估速度上的提高是非常显著的。这在体系结构的探索期,是完全可以接受的权衡;(5)鉴于SoC体系结构参数组合之间的独立性,系统通过多进程并行综合评估,加速整个综合评估流程。
[0023] 模型训练与探索模块40,用于利用性能指标和各个变量,通过机器学习算法进行模型训练,获得预测模型或分类模型。
[0024] 这里,预测模型可以是例如,但不限于,具体为M5P回归模型;分类模型可以是例如,但不限于,具体为rankboost分类模型。
[0025] 体系结构寻优模块50,用于利用预测模型或分类模型选取第二SoC结构。
[0026] 这里,利用预测模型或分类模型快速探索更大的设计空间,并从第一SoC结构中寻优选取满足各种性能指标的第二SoC结构。
[0027] 图2为本发明实施例提供的抽象建模的协处理器模型示意图。
[0028] 参照图2,抽象建模的协处理器包括寄存器配置单元11、直接内存访问数据传输单元12、计算功能模拟单元13、主设备接口单元14。
[0029] 寄存器配置单元11,用于对寄存器进行配置。
[0030] 这里,寄存器配置单元11是协处理器的功能寄存器单元,由主控处理器配置。寄存器配置单元11包括一系列直接内存访问(Direct Memory Access,DMA)数据传输单元12的功能寄存器,例如DMA传输起始地址,传输数据量,目的地址,地址变化方式等。计算功能模拟单元13的先入先出(First Input First Output,FIFO)单元存储了计算功能单元在协处理器一次启动工作过程中所需要顺序执行的数据计算和数据搬运的所有命令。主设备接口单元14的寄存器,用于协处理器传输同步消息。一系列协处理器控制寄存器,例如中断寄存器、协处理器状态寄存器、协处理器启动/停止寄存器等。
[0031] 这里,直接内存访问数据传输单元12主要用于在外部存储器与片内存储器之间传输大规模的数据。
[0032] 计算功能模拟单元13,用于对FIFO中所保存的指令信息进行译码,并通过计数器计数模拟功能部件的计算所需时间。
[0033] 这里,计算功能模拟单元13是抽象模拟协处理器的计算功能部件。计算功能模拟单元13译码寄存器配置单元内命令FIFO中的指令,依据协处理器设计手册的性能指标,通过计数器等拍模拟功能部件的计算过程。
[0034] 主设备接口单元14,用于所述数据的传输。
[0035] 这里,主设备接口单元14主要用于小规模数据的传输,例如多个协处理器之间消息的传递或配置从设备的寄存器等。
[0036] 图3为本发明实施例提供的第一SoC结构的拓扑结构示意图。
[0037] 参照图3,在本申请中,仅以第一SoC结构的拓扑结构为例对异构多核的SoC设计评估系统进行描述,但是,本领域的普通技术人员可以理解,本发明提出的第一SoC结构的拓扑结构不限于对异构多核的SoC设计评估系统进行描述,而是可以对各种异构多核的SoC设计评估系统进行描述。
[0038] 具体地,第一SoC结构的拓扑结构以分簇拓扑结构为主,1、2、3或4个协处理器为一个簇,每个簇对应一个外部高速存储器。其中,总线矩阵是指多主和多从互联总线桥IP,涉及的探索参数例如时钟频率、数据位宽、主或从接口数等;总线桥是指总线跨数据位宽和跨时钟频率的总线桥IP,涉及的探索参数例如主或从接口的时钟频率和数据位宽、跨时钟域的同步器个数,跨时钟域的数据FIFO深度等。
[0039] 需要说明的是,31是第一SoC结构设计空间中探索的不变量部分,32是第一SoC结构的变量部分。
[0040] 不变量部分的范围和变量部分的范围具体可参见表1,如表1所示:
[0041] 表1
[0042]
[0043]
[0044] 在设计空间初步定义后,该模块将随机选取指定数量的参数组合,用于仿真和综合评估。其中,该模块不但支持跨时钟域同步器个数的建议、跨时钟域数据通道FIFO深度的建议等,同时支持开放的开发环境。
[0045] 进一步地,所述性能指标评估模块包括:
[0046] 测试基准模块,用于为所述第一SoC结构的仿真提供输入激励。
[0047] 监控模块,用于监控所述第一SoC结构的各个部分的各种性能指标。
[0048] 进一步地,所述性能指标评估模块还包括:
[0049] 利用时序约束和工艺库进行逻辑综合;
[0050] 通过IP性能指标数据库计算所述第一SoC结构的面积和功耗。
[0051] 进一步地,所述性能指标评估模块还包括:根据公式(1)计算所述第一SoC结构的面积:
[0052]
[0053] 其中,Areasubsystem为所述第一SoC结构的面积,Areareg_matrix为寄存器配置总线矩阵的面积,Numcp为所述协处理器的个数,Areacp为所述协处理器的面积,Areax2x为总线桥的面积,Nummem为外部高速存储器的个数,Areamem_matrix为外部高速存储器矩阵的面积,Areamem为所述外部高速存储器的面积,δ为经验系数。
[0054] 这里,δ为经验系数,是在指定工艺库下,后端布局布线后的版图面积与前端综合面积之间的比值,δ可以为1.43。
[0055] 图4为本发明实施例提供的异构多核SoC体系结构设计评估系统的性能指标评估模块的组成示意图。
[0056] 参照图4,该模块的功能是利用各个变量和所述取值范围构建第一SoC结构,并对第一SoC结构进行仿真评估和综合评估,仿真评估部分为52和综合评估部分为53。
[0057] 仿真评估部分52利用测试基准模块对第一SoC结构进行仿真;再利用监控模块监控第一SoC结构的各个部分在仿真时的性能指标。
[0058] 在仿真时,收集的性能指标是协处理器的工作时间,即从第一个协处理器开始工作,到最后一个协处理器完成工作的时间,用以判断第一SoC结构对于应用算法的工作性能。
[0059] 综合评估部分53利用时序约束和工艺库,对探索的变量组件进行逻辑综合,并报各个变量组件的面积和功耗指标;再利用先前离线准备好的IP性能指标数据库,快速计算第一SoC结构的面积与功耗,具体的面积估算方法可参照公式(1)。
[0060] 进一步地,所述体系结构寻优模块包括:
[0061] 在约束条件和优化目标下,利用所述预测模型或所述分类模型确定所述第二SoC结构。
[0062] 这里,体系结构寻优模块的功能是在一定的约束条件和优化目标下,在已有的数量的探索结果中,择优确定设计方案,并可以利用性能评估模块检验方案的有效性。
[0063] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。