数字集成电路的定制方法、装置、介质和计算设备转让专利

申请号 : CN202210603634.0

文献号 : CN114970406B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 闯小明杨龚轶凡郑瀚寻刘昶旭

申请人 : 中昊芯英(杭州)科技有限公司

摘要 :

本发明的实施方式提供了一种数字集成电路的定制方法、装置、介质和计算设备。该方法包括:获取与数字集成电路的定制需求信息匹配的多个电路模块;根据定制需求信息确定参数信息集,其中,参数信息集中包括每个电路模块对应的参数信息;根据参数信息集配置多个电路模块,得到多个待连接电路模块;连接多个待连接电路模块,得到数字集成电路。本发明通过分析定制需求信息得到多个电路模块以及各个电路模块的参数信息,并根据参数信息对各个电路模块进行配置,以及将配置后的待连接电路模块进行连接,得到数字集成电路。能够在需要定制大型数字集成电路的情况下,避免对大量的底层电路元件从底层进行电路设计,提升了大型数字集成电路的定制效率。

权利要求 :

1.一种数字集成电路的定制方法,包括:

获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;

根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;

根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块;其中,所述多个电路模块中至少包括必选模块和可替换模块;所述电路模块的参数信息中至少包括数据参数和控制参数;所述可替换模块的控制参数中至少包括输入数据参数以及所述可替换模块中神经网络的预设层数和预设尺寸,所述可替换模块的数据参数中至少包括所述神经网络的权重;

连接所述多个待连接电路模块,得到数字集成电路;

其中,所述根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块,包括:从所述参数信息集中获取所述必选模块的参数信息以及所述可替换模块的控制参数和数据参数;

根据所述必选模块的参数信息对所述必选模块进行配置,得到所述必选模块对应的待连接电路模块;

根据所述可替换模块的控制参数中的所述预设层数和所述预设尺寸,构建与所述可替换模块对应的第一电路模块中的目标神经网络,其中,所述目标神经网络的层数和尺寸分别与所述预设层数和所述预设尺寸匹配;

根据所述可替换模块的控制参数中的所述输入数据参数对所述第一电路模块的进行配置,得到第二电路模块;其中,所述第二电路模块的数据输入接口与所述可替换模块的控制参数中的所述输入数据参数匹配;

根据所述可替换模块的数据参数中的所述神经网络的权重对所述第二电路模块进行配置,得到所述第二电路模块对应的待连接电路模块。

2.根据权利要求1所述的数字集成电路的定制方法,所述电路模块的模块类型为基础类型和/或高级类型;所述高级类型的电路模块中包括多个所述基础类型的电路模块。

3.根据权利要求2所述的数字集成电路的定制方法,所述方法还包括:将所述数字集成电路确定为高级类型的电路模块;

将所述高级类型的电路模块与所述定制需求信息关联存储至预先设置的电路模块库中,所述电路模块库中至少包括预先存储的基础类型的电路模块;

以及,所述获取与数字集成电路的定制需求信息匹配的多个电路模块的方式具体为:从所述电路模块库中获取与数字集成电路的定制需求信息匹配的多个电路模块。

4.根据权利要求1所述的数字集成电路的定制方法,所述得到数字集成电路之后,所述方法还包括:当获取到所述数字集成电路的功能增加指令时,获取与所述功能增加指令匹配的新增电路模块;

根据所述功能增加指令确定所述新增电路模块对应的新增参数信息;

将所述新增参数信息添加至所述参数信息集中,得到更新后的参数信息集;

将所述新增电路模块添加至所述多个电路模块中,得到更新后的多个电路模块;

根据所述更新后的参数信息集配置所述更新后的多个电路模块,得到多个调整电路模块;

连接所述多个调整电路模块,得到调整后的数字集成电路。

5.根据权利要求1所述的数字集成电路的定制方法,所述得到数字集成电路之后,所述方法还包括:当获取到所述数字集成电路的功能删除指令时,从所述多个电路模块中删除与所述功能删除指令对应的目标电路模块,得到更新后的多个电路模块;

从参数信息集中删除与所述目标电路模块对应的参数信息,得到更新后的参数信息集;

根据所述更新后的参数信息集配置所述更新后的多个电路模块,得到多个调整电路模块;

连接所述多个调整电路模块,得到调整后的数字集成电路。

6.一种数字集成电路的定制装置,包括:

获取单元,用于获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;

确定单元,用于根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;

配置单元,用于根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块;其中,所述多个电路模块中至少包括必选模块和可替换模块;所述电路模块的参数信息中至少包括数据参数和控制参数;所述可替换模块的控制参数中至少包括输入数据参数以及所述可替换模块中神经网络的预设层数和预设尺寸,所述可替换模块的数据参数中至少包括所述神经网络的权重;

连接单元,用于连接所述多个待连接电路模块,得到数字集成电路;

其中,所述配置单元根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块的方式具体为:从所述参数信息集中获取所述必选模块的参数信息以及所述可替换模块的控制参数和数据参数;

根据所述必选模块的参数信息对所述必选模块进行配置,得到所述必选模块对应的待连接电路模块;

根据所述可替换模块的控制参数中的所述预设层数和所述预设尺寸,构建与所述可替换模块对应的第一电路模块中的目标神经网络,其中,所述目标神经网络的层数和尺寸分别与所述预设层数和所述预设尺寸匹配;

根据所述可替换模块的控制参数中的所述输入数据参数对所述第一电路模块的进行配置,得到第二电路模块;其中,所述第二电路模块的数据输入接口与所述可替换模块的控制参数中的所述输入数据参数匹配;

根据所述可替换模块的数据参数中的所述神经网络的权重对所述第二电路模块进行配置,得到所述第二电路模块对应的待连接电路模块。

7.一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1~5中的任一项所述的方法。

8.一种计算设备,所述计算设备包括:

至少一个处理器、存储器和输入输出单元;

其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行如权利要求1~5中任一项所述的方法。

说明书 :

数字集成电路的定制方法、装置、介质和计算设备

技术领域

[0001] 本发明的实施方式涉及数字集成电路技术领域,更具体地,本发明的实施方式涉及一种数字集成电路的定制方法、装置、介质和计算设备。

背景技术

[0002] 数字集成电路在现代的应用场景在不断扩充,数字集成电路的设计需求呈爆炸性增长的趋势,常常需要一些新的电路系统来应对数字集成电路的新应用场景以及功能需求。
[0003] 目前,可以基于逻辑门、存储单元以及数字信号处理器(Digital  Signal Processor,DSP)等底层电路元件定制数字集成电路。然而,在实践中发现,定制数字集成电路的底层电路元件过于基础,在需要定制大型数字集成电路的情况下,需要对大量的底层电路元件进行组合设计,降低了大型数字集成电路的定制效率。

发明内容

[0004] 在本上下文中,本发明的实施方式期望提供一种数字集成电路的定制方法、装置、介质和计算设备。
[0005] 在本发明实施方式的第一方面中,提供了一种数字集成电路的定制方法,包括:
[0006] 获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;
[0007] 根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;
[0008] 根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块;
[0009] 连接所述多个待连接电路模块,得到数字集成电路。
[0010] 在本发明实施方式的第二方面中,提供了一种数字集成电路的定制装置,包括:
[0011] 获取单元,用于获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;
[0012] 确定单元,用于根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;
[0013] 配置单元,用于根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块;
[0014] 连接单元,用于连接所述多个待连接电路模块,得到数字集成电路。
[0015] 在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
[0016] 在本发明实施方式的第四方面中,提供了一种计算设备,所述计算设备包括:
[0017] 至少一个处理器、存储器和输入输出单元;
[0018] 其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行第一方面中任一项所述的方法。
[0019] 根据本发明实施方式的数字集成电路的定制方法、装置、介质和计算设备,能够对数字集成电路的定制需求信息进行分析,获取与定制需求信息匹配的多个电路模块,并且可以根据定制需求信息确定各个电路模块的参数信息,并根据参数信息对各个电路模块进行配置,以及可以将配置后的多个待连接电路模块进行连接,得到数字集成电路。在需要定制大型数字集成电路的情况下,避免对大量的底层电路元件从底层进行电路设计,提升了大型数字集成电路的定制效率。

附图说明

[0020] 通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
[0021] 图1为本发明实施例提供的一种数字集成电路的定制方法的流程示意图;
[0022] 图2为本发明实施例提供的一种多个待连接电路模块的配置方法的流程示意图;
[0023] 图3为本发明实施例提供的一种数字集成电路的调整方法的流程示意图;
[0024] 图4为本发明实施例提供的另一种数字集成电路的调整方法的流程示意图;
[0025] 图5为本发明实施例提供的一个利用神经网络实现手写数字识别功能的数字集成电路的结构示意图;
[0026] 图6为本发明实施例提供的另一个利用神经网络实现手写数字识别功能的数字集成电路的结构示意图;
[0027] 图7为本发明实施例提供的又一个利用神经网络实现手写数字识别功能的数字集成电路的结构示意图;
[0028] 图8为本发明实施例提供的一种数字集成电路的定制装置的结构示意图;
[0029] 图9为本发明实施例提供的一种计算机可读存储介质的结构示意图;
[0030] 图10为本发明实施例提供的一种计算设备的结构示意图。
[0031] 在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

[0032] 下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0033] 本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0034] 根据本发明的实施方式,提出了一种数字集成电路的定制方法、装置、介质和计算设备。
[0035] 在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
[0036] 下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
[0037] 示例性方法
[0038] 下面参考图1,图1为本发明实施例提供的一种数字集成电路的定制方法的流程示意图。本发明实施例可以应用于现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA);也可以应用于基于人工智能或神经网络实现的定制电路;需要注意的是,本发明实施例可以应用于适用的任何场景,例如,应用于在隐私计算的场景中定制数字集成电路;或者应用于在语音处理加速的场景中定制数字集成电路,对此,本发明实施例不做限定。
[0039] 图1所示的本发明一实施例提供的数字集成电路的定制方法的流程,包括:
[0040] 步骤S101,获取与数字集成电路的定制需求信息匹配的多个电路模块。
[0041] 本发明实施例中,所述电路模块包括多个底层电路元件,底层电路元件可以为逻辑门或存储器等。所述电路模块的模块类型可以为基础类型和/或高级类型;所述高级类型的电路模块中可以由多个所述基础类型的电路模块构成,也可以由基础类型的电路模块和高级类型的电路模块共同构成,还可以由多个高级类型的电路模块构成。同时,获取到的与定制需求信息匹配的多个电路模块可以全部为基础类型的电路模块,也可以全部为高级类型的电路模块,还可以为基础类型的电路模块和高级类型的电路模块的组合,因此,获取到的多个电路模块的组合方式更加灵活。
[0042] 本发明实施例中,数字集成电路的定制需求信息可以通过设计人员输入,定制需求信息中可以包括数字集成电路需要实现的功能、输入数据以及输出数据等。数字集成电路可以由多个电路模块构成,多个电路模块中可以包括基础类型的电路模块和/或高级类型的电路模块;即多个电路模块可以全部为基础类型的电路模块,多个电路模块也可以全部为高级类型的电路模块,多个电路模块还可以为部分基础类型的电路模块以及部分高级类型的电路模块的组合;对此,本发明实施例不做限定。
[0043] 基础类型的电路模块可以为先期设计好的或者是同步正在开发的,甚至是支持未来再扩充的最小规模的数字电路;高级类型的电路模块可以为基于多个基础类型的电路模块构建得到的数字电路。不同的电路模块实现的功能可以是相同的,也可以是不同的,对此,本发明实施例不做限定。
[0044] 举例来说,基础类型的电路模块可以是直接存储器访问(Direct Memory Access,DMA)、中央处理器(Central Processing Unit,CPU)、流水线(Pipeline)加法器(Adder)结构以及乘法器等电路模块,需要注意的是,基础类型的电路模块并非是门电路等底层电路元件。
[0045] 本发明实施例中,可以对获取到的数字集成电路的定制需求信息进行分析,从基础类型的电路模块和/或高级类型的电路模块中确定出能够实现该定制需求信息中包含的功能的多个电路模块。
[0046] 步骤S102,根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息。
[0047] 步骤S103,根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块。
[0048] 本发明实施例中,所述多个电路模块中至少包括必选模块和可替换模块;所述电路模块的参数信息中至少包括数据参数和控制参数。在本发明实施例的各个应用场景中,电路模块都可以包括必选模块和可替换模块;电路模块的参数都可以包括数据参数和控制参数。
[0049] 举例来说,当本发明实施例应用于神经网络场景中时,所述可替换模块的控制参数中至少包括输入数据参数以及所述可替换模块中神经网络的预设层数和预设尺寸,所述可替换模块的数据参数中至少包括所述神经网络的权重。当本发明实施例应用于隐私计算场景中时,隐私计算场景中可能会涉及到数据加密,例如通过多项式实现数据加密。可以将多项式的项数以及每一项的次数等数据作为控制参数。
[0050] 本发明实施例中,根据电路模块的参数信息可以对电路模块进行配置,以使电路模块能够很好的实现数字集成电路的定制需求信息中需要实现的功能,提高电路模块配置的准确性。
[0051] 本发明实施例中,每个电路模块都可以对应一个参数信息,参数信息集中可以包括每个电路模块对应的参数信息。参数信息可以根据定制需求信息确定,例如,可以根据定制需求信息中各个电路模块需要实现的功能确定出各个电路模块对应的参数信息,以使每个电路模块可以根据其对应的参数信息实现目标功能。任意两个不同的电路模块的参数信息可以相同也可以不同,参数信息是根据各个电路模块需要实现的功能确定的,因此,对参数信息的取值无需限定。
[0052] 以及,电路模块还可以分为必选模块和可替换模块,必选模块可以为数字集成电路正常运行所必须的电路模块,例如DMA、CPU等;可替换模块可以为能够实现相同功能的电路模块,例如全连接模块(fully‑connected)、卷积模块(convolution)以及池化模块(pooling)等。
[0053] 必选模块和可替换模块都可以有对应的参数信息,且参数信息中可以包括数据参数和控制参数。可替换模块中可以设置有神经网络,因此,可替换模块对应的控制参数至少可以包括神经网络的预设层数和预设尺寸,还可以包括该可替换模块的输入接口能够接收的输入数据的维度大小;输入数据的维度大小可以为控制数据中包括的输入数据参数;可替换模块对应的数据参数至少可以包括神经网络的权重,该权重可以为可替换模块中神经网络的每一层的权重。
[0054] 本发明另一实施例中,如图2所示,上述步骤S103由以下步骤S201~步骤S205代替:
[0055] 步骤S201,从所述参数信息集中获取所述必选模块的参数信息以及所述可替换模块的控制参数和数据参数。
[0056] 步骤S202,根据所述必选模块的参数信息对所述必选模块进行配置,得到所述必选模块对应的待连接电路模块。
[0057] 步骤S203,根据所述可替换模块的控制参数中的所述预设层数和所述预设尺寸,构建与所述可替换模块对应的第一电路模块中的目标神经网络,其中,所述目标神经网络的层数和尺寸分别与所述预设层数和所述预设尺寸匹配。
[0058] 步骤S204,根据所述可替换模块的控制参数中的所述输入数据参数对所述第一电路模块的进行配置,得到第二电路模块;其中,所述第二电路模块的数据输入接口与所述可替换模块的控制参数中的所述输入数据参数匹配。
[0059] 步骤S205,根据所述可替换模块的数据参数中的所述神经网络的权重对所述第二电路模块进行配置,得到所述第二电路模块对应的待连接电路模块。
[0060] 实施上述的步骤S201~步骤S205,可以根据参数信息集中的必选模块的参数信息对必选模块进行配置,得到必选模块对应的待连接电路模块;还可以根据参数信息集中的可替换模块的控制参数中的预设层数和预设尺寸构建可替换模块中的目标神经网络电路;以及可以根据控制参数中的输入数据参数对可替换模块的输入接口进行配置;以及可以根据数据参数中的神经网络的权重对可替换模块进行配置,得到可替换模块对应的待连接电路模块。由于参数信息集中包括有必选模块的参数信息和可替换模块的参数信息,以及必选模块的参数信息包括的数据与可替换模块的参数信息包括的数据是不同的,因此,可以通过必选模块的参数信息对必选模块进行配置,以及可以通过可替换模块的参数信息对可替换模块进行配置,保证了必选模块和可替换模块配置的准确性。
[0061] 本发明实施例中,必选模块的参数信息可以包括输入输出涉及的控制信号的数量及具体定义、输入输出涉及的数据信号的数量及具体定义、可选的接口数量及具体定义以及必选模块的具体功能相关参数等。根据必选模块的参数信息可以对必选模块进行配置,得到必选模块对应的待连接电路模块,必选模块对应的待连接电路模块的输入输出涉及的控制信号和数据信号、可选的接口以及具体功能相关参数均可以与必选模块的参数信息匹配。
[0062] 以及,可以根据可替换模块的控制参数中的预设层数和预设尺寸,构建目标神经网络;该目标神经网络的网络层数和网络尺寸分别与预设层数和预设尺寸匹配,该目标神经网络可以配置至与可替换模块对应的第一电路模块中;并且可以根据可替换模块的控制参数中的输入数据参数对第一电路模块进行配置,以得到与第一电路模块对应的第二电路模块;其中,输入数据参数中可以包括其对应的模块的数据输入接口的信息,例如,输入数据参数中可以包括数据输入接口的数量、数据类型以及数据大小等参数;在第二电路模块上配置的数据输入接口可以与控制参数中的输入数据参数匹配。
[0063] 本发明实施例中,可替换模块的数据参数中还可以包括神经网络的权重。神经网络的权重可以通过预先进行过训练的神经网络得到。数据从神经网络的第一神经元传输至第二神经元的过程中,可以基于神经网络的权重对数据进行计算,例如输入数据与各个神经元权重之间的矩阵运算。第二电路模块中可以由多个加法器和多个乘法器组成;多个加法器和多个乘法器可以实现用于目标神经网络的各个神经元发生的矩阵运算的电路模块构建。
[0064] 步骤S104,连接所述多个待连接电路模块,得到数字集成电路。
[0065] 本发明实施例中,可以按照预设顺序将多个待连接电路模块进行连接,预设顺序可以从定制需求信息中获取。多个待连接电路模块的连接方式可以为:根据分时复用的串行结构将多个待连接电路模块连接至总线上;也可以为根据一维全通达的交叉开关结构将多个待连接电路模块进行连接;还可以为根据二维全通达的片上网络结构将多个待连接电路模块进行连接等,对此,本发明实施例不做限定。
[0066] 作为一种可选的实施方式,为了提升数字集成电路的设计效率,可以将多个基础类型的电路模块和/或高级类型的电路模块连接而成的数字集成电路作为高级类型的电路模块进行存储,以使后续在设计数字集成电路的过程中,可以直接获取到符合需求的高级类型的电路模块,提升数字集成电路的设计效率,因此,本发明实施例还可以执行以下步骤:
[0067] 将所述数字集成电路确定为高级类型的电路模块;
[0068] 将所述高级类型的电路模块与所述定制需求信息关联存储至预先设置的电路模块库中,所述电路模块库中至少包括预先存储的基础类型的电路模块;
[0069] 以及,步骤S101获取与数字集成电路的定制需求信息匹配的多个电路模块的方式具体可以为:
[0070] 从所述电路模块库中获取与数字集成电路的定制需求信息匹配的多个电路模块。
[0071] 其中,实施这种实施方式,可以将得到的数字集成电路作为高级类型的电路模块存储至电路模块库中。同时,可以将数字集成电路对应的定制需求信息一并关联存储至电路模块库中,以使后续在电路定制过程中,可以直接从电路模块库中获取到较为高级的电路模块进行使用,提升了得到的数字集成电路的使用率。
[0072] 本发明实施例中,由多个电路模块连接得到的数字集成电路可以确定为高级类型的电路模块,并且可以将得到的高级类型的电路模块存储至预先设置的电路模块库中。同时,还可以将数字集成电路对应的定制需求信息与高级类型的电路模块关联存储至电路模块库中,从而可以从预设的电路模块库中获取到与定制需求信息匹配的多个电路模块,以使获取到的多个电路模块与定制需求信息的相关性更高。
[0073] 本发明另一实施例中,如图3所示,上述步骤S104之后,还可以包括以下步骤S301~步骤S306:
[0074] 步骤S301,当获取到所述数字集成电路的功能增加指令时,获取与所述功能增加指令匹配的新增电路模块。
[0075] 步骤S302,根据所述功能增加指令确定所述新增电路模块对应的新增参数信息。
[0076] 步骤S303,将所述新增参数信息添加至所述参数信息集中,得到更新后的参数信息集。
[0077] 步骤S304,将所述新增电路模块添加至所述多个电路模块中,得到更新后的多个电路模块。
[0078] 步骤S305,根据所述更新后的参数信息集配置所述更新后的多个电路模块,得到多个调整电路模块。
[0079] 步骤S306,连接所述多个调整电路模块,得到调整后的数字集成电路。
[0080] 实施上述的步骤S301~步骤S306,可以在获取到数字集成电路的功能增加指令时,根据功能增加指令确定新增电路模块和新增参数信息,并且可以将新增电路模块添加至电路模块中;还可以将新增参数信息添加至参数信息集中,以及可以根据更新后的多个电路模块和更新后的参数信息集得到与功能增加指令对应的数字集成电路,以使得到的数字集成电路更加灵活。
[0081] 本发明实施例中,功能增加指令中可以包含数字集成电路需要增加的功能信息。根据需要增加的功能信息可以获取到与功能增加指令匹配的新增电路模块,新增电路模块的数量可以为一个或多个,且新增电路模块能够实现功能增加指令中需要数字集成电路实现的功能。
[0082] 为了使新增电路模块能够正常运行,可以从功能增加指令中确定各个新增电路模块对应的新增参数信息,并且可以将新增电路模块添加至多个电路模块中,以实现对多个电路模块的更新;以及可以将新增参数信息添加至参数信息集中,以实现对参数信息集的更新,从而可以根据更新后的参数信息集对更新后的多个电路模块进行配置,得到多个调整电路模块。具体的,可以只利用参数信息集中新增参数信息对多个电路模块中的新增电路模块进行配置,无需对已经配置好的电路模块再次进行配置,简化了对新增电路模块配置的过程。
[0083] 本发明另一实施例中,如图4所示,上述步骤S104之后,还可以包括以下步骤S401~步骤S404:
[0084] 步骤S401,当获取到所述数字集成电路的功能删除指令时,从所述多个电路模块中删除与所述功能删除指令对应的目标电路模块,得到更新后的多个电路模块。
[0085] 步骤S402,从参数信息集中删除与所述目标电路模块对应的参数信息,得到更新后的参数信息集。
[0086] 步骤S403,根据所述更新后的参数信息集配置所述更新后的多个电路模块,得到多个调整电路模块。
[0087] 步骤S404,连接所述多个调整电路模块,得到调整后的数字集成电路。
[0088] 实施上述的步骤S401~步骤S404,可以在获取到数字集成电路的功能删除指令时,从多个电路模块中删除与功能删除指令对应的目标电路模块;并且可以从参数信息集中删除与目标电路模块对应的参数信息;以及可以根据更新后的多个电路模块和更新后的参数信息集得到与功能删除指令对应的数字集成电路,以使得到的数字集成电路的容错空间更大。
[0089] 本发明实施例中,功能删除指令中可以包含数字集成电路需要删除的功能信息。可以从多个电路模块中删除与该功能删除指令对应的目标电路模块,删除的目标电路模块的数量可以为一个或多个。
[0090] 作为一种可选的实施方式,为了提高数字集成电路的灵活性,还可以对数字集成电路中的部分电路模块进行修改,具体方式可以为:
[0091] 当获取到数字集成电路的功能修改指令时,获取与功能修改指令匹配的替换电路模块;
[0092] 从多个电路模块中删除与功能修改指令匹配的待修改电路模块,并将替换电路模块添加至多个电路模块中,得到更新后的多个电路模块;
[0093] 根据功能修改指令确定替换电路模块对应的替换参数信息;
[0094] 从参数信息集中删除与待修改电路模块对应的参数信息,并将替换参数信息添加至参数信息集中,得到更新后的参数信息集;
[0095] 根据更新后的参数信息集配置更新后的多个电路模块,得到多个调整电路模块;
[0096] 连接多个调整电路模块,得到调整后的数字集成电路。
[0097] 其中,实施这种实施方式,可以在获取到数字集成电路的功能修改指令时,获取与功能修改指令匹配的替换电路模块以及替换电路模块对应的替换参数信息;并且可以从多个电路模块中删除与功能修改指令对应的待修改电路模块;以及可以根据替换电路模块对多个电路模块进行更新;还可以从参数信息集中删除与待修改电路模块对应的参数信息并添加替换参数信息至参数信息集中,从而实现数字集成电路中部分电路模块的替换,提高了数字集成电路的灵活性。
[0098] 举例来说,请一并参阅图5、图6以及图7,图5为根据本发明的实施方式构建的一个利用神经网络实现手写数字识别功能的数字集成电路的结构示意图;图6为根据本发明的实施方式构建的另一个利用神经网络实现手写数字识别功能的数字集成电路的结构示意图;图7为根据本发明的实施方式构建的又一个利用神经网络实现手写数字识别功能的数字集成电路的结构示意图。
[0099] 具体的,该数字集成电路的定制需求信息可以为利用神经网络实现手写数字识别功能。根据该定制需求信息可以从电路模块库中获取到多个电路模块,如图5中的DMA和多个全连接模块;还可以获取到CPU等控制模块(图5中未画出)。图5中的DDR可以为双倍数据速率(Double Data Rate)存储器;以及可以根据定制需求信息获取到各个全连接模块的数据参数和控制参数,任意两个全连接模块的数据参数和控制参数可以相同也可以不同;之后可以根据数据参数和控制参数对其对应的全连接模块进行配置,得到配置完成的待连接电路模块;最后可以按照预设的连接顺序将各个待连接电路模块进行连接,得到最终的利用神经网络实现手写数字识别功能的数字集成电路。
[0100] 其中,连接各个待连接电路模块的原则可以为符合定制需求信息,且各个待连接电路模块的接口互相兼容,各个待连接电路模块之间的传输数据包括但不限于特征图数据、控制参数等;以及各个待连接电路模块之间的连接关系表示的是传输数据的流动方向。
[0101] 当用户对于数字集成电路的需求发生改变时,可以获取输入针对该数字集成电路的修改指令,从获取到的修改指令中可以确定用户需要数字集成电路能够具有更高的识别率以及完成复杂度更高的计算机视觉任务。根据该修改指令可以从电路模块库中获取到新增电路模块,如图6所示,新增电路模块可以为多个卷积模块和多个池化模块。根据修改指令可以确定各个卷积模块对应的数据参数和控制参数;根据修改指令还可以确定各个池化模块对应的数据参数和控制参数。根据卷积模块对应的数据参数和控制参数可以对卷积模块进行配置;根据池化模块对应的数据参数和控制参数可以对池化模块进行配置。以及,将配置后的卷积模块和池化模块与DMA以及全连接模块进行连接,可以得到修改后的数字集成电路。
[0102] 用户还可以对数字集成电路中的部分模块进行更换。例如,用户需要更换一个新的人工智能算法(ResNet),此时可以直接将图6中的卷积模块整体替换为包含ResNet的结构块。如图7所示,结构块同样具有与电路模块相同的控制信号接口、数据信号接口以及可选接口信号等,同样需要对数据参数和控制参数进行配置。
[0103] 具体来说,ResNet可以有两种结构块:V1结构和V2结构。两种结构块内部可以包括多个基本类型的电路模块。其中,V1结构是两层卷积模块中间设置一个激活函数模块形成数据流旁路,数据流旁路和原数据流直接融合相加,再通过一个激活函数模块输出数据;V2结构是两层卷积模块和两个激活函数模块相互间隔形成数据流旁路,数据流旁路和原数据流直接融合相加输出数据。V1结构和V2结构本质实现的功能相同,因此可以使用V1结构或V2结构对卷积模块进行替换,从而得到基于ResNet的数字集成电路。
[0104] 本发明能够对数字集成电路的定制需求信息进行分析,获取与定制需求信息匹配的多个电路模块,并且可以根据定制需求信息确定各个电路模块的参数信息,并根据参数信息对各个电路模块进行配置,以及可以将配置后的多个待连接电路模块进行连接,得到数字集成电路,避免在需要定制大型数字集成电路的情况下,对大量的底层电路元件从底层进行电路设计,提升了大型数字集成电路的定制效率。此外,本发明还可以使获取到的多个电路模块的组合方式更加灵活。此外,本发明还可以提高电路模块配置的准确性。此外,本发明还可以保证必选模块和可替换模块配置的准确性。此外,本发明还可以提升得到的数字集成电路的使用率。此外,本发明还可以使得到的数字集成电路更加灵活。此外,本发明还可以使得到的数字集成电路的容错空间更大。
[0105] 示例性装置
[0106] 在介绍了本发明示例性实施方式的方法之后,接下来,参考图8对本发明示例性实施方式的一种数字集成电路的定制装置进行说明,该装置包括:
[0107] 获取单元801,用于获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;
[0108] 确定单元802,用于根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;
[0109] 配置单元803,用于根据确定单元802确定的所述参数信息集配置获取单元801获取的所述多个电路模块,得到多个待连接电路模块;
[0110] 连接单元804,用于连接配置单元803得到的所述多个待连接电路模块,得到数字集成电路。
[0111] 本发明实施例中,所述电路模块的模块类型为基础类型和/或高级类型;所述高级类型的电路模块中包括多个所述基础类型的电路模块,可以将电路模块的模块类型区分为基础类型和/或高级类型,并且高级类型的电路模块也是基于基础类型的电路模块构建的,同时,获取到的与定制需求信息匹配的多个电路模块可以全部为基础类型的电路模块,也可以全部为高级类型的电路模块,还可以为基础类型的电路模块和高级类型的电路模块的组合,以使获取到的多个电路模块的组合方式更加灵活。
[0112] 作为一种可选的实施方式,连接单元804还可以用于:
[0113] 将所述数字集成电路确定为高级类型的电路模块;
[0114] 将所述高级类型的电路模块与所述定制需求信息关联存储至预先设置的电路模块库中,所述电路模块库中至少包括预先存储的基础类型的电路模块;
[0115] 以及,获取单元801获取与数字集成电路的定制需求信息匹配的多个电路模块的方式具体可以为:
[0116] 从所述电路模块库中获取与数字集成电路的定制需求信息匹配的多个电路模块。
[0117] 其中,实施这种实施方式,可以将得到的数字集成电路作为高级类型的电路模块存储至电路模块库中,同时,可以将数字集成电路对应的定制需求信息一并关联存储至电路模块库中,以使后续在电路定制过程中,可以直接从电路模块库中获取到较为高级的电路模块进行使用,提升了得到的数字集成电路的使用率。
[0118] 作为一种可选的实施方式,连接单元804还可以用于:
[0119] 以及当获取到所述数字集成电路的功能增加指令时,获取与所述功能增加指令匹配的新增电路模块;
[0120] 根据所述功能增加指令确定所述新增电路模块对应的新增参数信息;
[0121] 将所述新增参数信息添加至所述参数信息集中,得到更新后的参数信息集;
[0122] 将所述新增电路模块添加至所述多个电路模块中,得到更新后的多个电路模块;
[0123] 根据所述更新后的参数信息集配置所述更新后的多个电路模块,得到多个调整电路模块;
[0124] 连接所述多个调整电路模块,得到调整后的数字集成电路。
[0125] 其中,实施这种实施方式,可以在获取到数字集成电路的功能增加指令时,根据功能增加指令确定新增电路模块和新增参数信息,并且可以将新增电路模块添加至电路模块中,还可以将新增参数信息添加至参数信息集中,以及可以根据更新后的多个电路模块和更新后的参数信息集得到与功能增加指令对应的数字集成电路,以使得到的数字集成电路更加灵活。
[0126] 作为一种可选的实施方式,连接单元804还可以用于:
[0127] 当获取到所述数字集成电路的功能删除指令时,从所述多个电路模块中删除与所述功能删除指令对应的目标电路模块,得到更新后的多个电路模块;
[0128] 从参数信息集中删除与所述目标电路模块对应的参数信息,得到更新后的参数信息集;
[0129] 根据所述更新后的参数信息集配置所述更新后的多个电路模块,得到多个调整电路模块;
[0130] 连接所述多个调整电路模块,得到调整后的数字集成电路。
[0131] 其中,实施这种实施方式,可以在获取到数字集成电路的功能删除指令时,从多个电路模块中删除与功能删除指令对应的目标电路模块,并且可以从参数信息集中删除与目标电路模块对应的参数信息,以及可以根据更新后的多个电路模块和更新后的参数信息集得到与功能删除指令对应的数字集成电路,以使得到的数字集成电路的容错空间更大。
[0132] 本发明实施例中,所述多个电路模块中至少包括必选模块和可替换模块;所述电路模块的参数信息中至少包括数据参数和控制参数。
[0133] 本发明实施例中,所述可替换模块的控制参数中至少包括输入数据参数以及所述可替换模块中神经网络的预设层数和预设尺寸,所述可替换模块的数据参数中至少包括所述神经网络的权重,其中,可以将多个电路模块分为必选模块和可替换模块,电路模块的参数信息可以包括数据参数和控制参数,参数信息可以对电路模块进行配置,以使电路模块能够很好的实现数字集成电路的定制需求信息中需要实现的功能,提高电路模块配置的准确性。
[0134] 作为一种可选的实施方式,配置单元803根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块的方式具体可以为:
[0135] 从所述参数信息集中获取所述必选模块的参数信息以及所述可替换模块的控制参数和数据参数;
[0136] 根据所述必选模块的参数信息对所述必选模块进行配置,得到所述必选模块对应的待连接电路模块;
[0137] 根据所述可替换模块的控制参数中的所述预设层数和所述预设尺寸,构建与所述可替换模块对应的第一电路模块中的目标神经网络,其中,所述目标神经网络的层数和尺寸分别与所述预设层数和所述预设尺寸匹配;
[0138] 根据所述可替换模块的控制参数中的所述输入数据参数对所述第一电路模块的进行配置,得到第二电路模块;其中,所述第二电路模块的数据输入接口与所述可替换模块的控制参数中的所述输入数据参数匹配;
[0139] 根据所述可替换模块的数据参数中的所述神经网络的权重对所述第二电路模块进行配置,得到所述第二电路模块对应的待连接电路模块。
[0140] 其中,实施这种实施方式,可以根据参数信息集中的必选模块的参数信息对必选模块进行配置,得到必选模块对应的待连接电路模块;还可以根据参数信息集中的可替换模块的控制参数中的预设层数和预设尺寸构建可替换模块中的目标神经网络,以及可以根据控制参数中的输入数据参数对可替换模块的输入接口进行配置,以及可以根据数据参数中的神经网络的权重对可替换模块进行配置,得到可替换模块对应的待连接电路模块,保证了必选模块和可替换模块配置的准确性。
[0141] 示例性介质
[0142] 在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图9对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图9,其示出的计算机可读存储介质为光盘90,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块;连接所述多个待连接电路模块,得到数字集成电路;各步骤的具体实现方式在此不再重复说明。
[0143] 需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
[0144] 示例性计算设备
[0145] 在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图10对本发明示例性实施方式的用于数字集成电路的定制的计算设备。
[0146] 图10示出了适于用来实现本发明实施方式的示例性计算设备100的框图,该计算设备100可以是计算机系统或服务器。图10显示的计算设备100仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0147] 如图10所示,计算设备100的组件可以包括但不限于:一个或者多个处理器或者处理单元1001,系统存储器1002,连接不同系统组件(包括系统存储器1002和处理单元1001)的总线1003。
[0148] 计算设备100典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备100访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0149] 系统存储器1002可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)10021和/或高速缓存存储器10022。计算设备100可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM10023可以用于读写不可移动的、非易失性磁介质(图10中未显示,通常称为“硬盘驱动器”)。尽管未在图10中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD‑ROM,DVD‑ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线1003相连。系统存储器1002中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0150] 具有一组(至少一个)程序模块10024的程序/实用工具10025,可以存储在例如系统存储器1002中,且这样的程序模块10024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块10024通常执行本发明所描述的实施例中的功能和/或方法。
[0151] 计算设备100也可以与一个或多个外部设备1004(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口605进行。并且,计算设备100还可以通过网络适配器1006与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图10所示,网络适配器1006通过总线1003与计算设备100的其它模块(如处理单元1001等)通信。应当明白,尽管图10中未示出,可以结合计算设备100使用其它硬件和/或软件模块。
[0152] 处理单元1001通过运行存储在系统存储器1002中的程序,从而执行各种功能应用以及数据处理,例如,获取与数字集成电路的定制需求信息匹配的多个电路模块;所述电路模块包括多个底层电路元件;根据所述定制需求信息确定参数信息集,其中,所述参数信息集中包括每个电路模块对应的参数信息;根据所述参数信息集配置所述多个电路模块,得到多个待连接电路模块;连接所述多个待连接电路模块,得到数字集成电路。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了数字集成电路的定制装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
[0153] 在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0154] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0155] 在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0156] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0157] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0158] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0159] 最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
[0160] 此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。