用于生成动态可重构处理器的配置信息的方法、装置制造方法

文档序号:6542386阅读:328来源:国知局
用于生成动态可重构处理器的配置信息的方法、装置制造方法
【专利摘要】本发明公开了一种用于生成动态可重构处理器的配置信息的方法、装置及处理器配置装置,其中动态可重构处理器由处理单元阵列构成,处理单元阵列包括多个处理单元,该方法包括:读取待执行任务的信息,并根据信息生成处理单元阵列的阵列配置信息顶层;根据信息分别生成与多个处理单元对应的多个处理单元配置信息;以及将阵列配置信息顶层和多个处理单元配置信息进行装配以生成动态可重构处理器的配置信息。根据本发明实施例的方法由于每个处理单元都有自己独立的配置信息,因此在对阵列进行配置时,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,这样避免了处理单元重复配置,实现了部分配置和选择性配置,提高配置的灵活性。
【专利说明】用于生成动态可重构处理器的配置信息的方法、装置
【技术领域】
[0001]本发明涉及处理器【技术领域】,尤其涉及一种用于生成动态可重构处理器的配置信息的方法、装置及处理器配置装置。
【背景技术】
[0002]动态可重构处理器是一种新生的处理器构架,其较之以往的单核处理器、专用芯片、现场可编程逻辑阵列有着显著的优势,是未来电路结构发展的一个方向。
[0003]首先,动态可重构处理器内往往含有多个算数逻辑单元,且数量巨大,称之为众核阵列。阵列内部配以灵活度高的路由单元,实现算数逻辑单元之间多样化的互联。因此,经路由单元连接后的众核阵列可实现对数据流的高速处理,较传统的单核以及少核处理器在性能上有着巨大的优势。同时,较固化的专用电路在灵活性上也有着巨大的优势。
[0004]其次,较传统的静态可重构电路一现场可编程逻辑阵列而言,动态可重构处理器有动态的特点,即在电路运行过程中可动态的切换电路的功能,而非以往静态可重构电路一沉不变的不改变电路功能,只是在电路运行之前烧写电路功能,对电路进行初始化。这样做的好处在于通过时分复用的方式减少了电路的规模,原因在于之前的电路结构的全映射现在变为分块映射,而块与块之间恰好采取了动态切换的方式。
[0005]然而,目前动态可重构处理器的动态切换设计中至少存在以下问题:
[0006]I)配置技术中往往存在配置信息量大的问题,这将导致相应的配置时间的延长,以及对配置存储器容量需求的增加;
[0007]2)由于动态可重构处理器中频繁的对配置信息进行切换,势必将造成配置功耗的增加;
[0008]3)在对可重构处理器阵列进行配置时,只要其中一个处理单元的功能发生变化,那么整个阵列都将需要重新进行配置,不能对单个处理单元进行配置切换而其他处理单元配置保持不变,这就进行了大量的重复、盲目配置。

【发明内容】

[0009]本发明旨在至少在一定程度上解决上述的技术缺陷之一。
[0010]为此,本发明的第一个目的在于提出一种用于生成动态可重构处理器的配置信息的方法。该方法只需对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,这样避免了处理单元重复配置,实现了部分配置和选择性配置,提高配置的灵活性。
[0011]本发明的第二个目的在于提出一种用于生成动态可重构处理器的配置信息的装置。
[0012]本发明的第三个目的在于提出一种处理器配置装置。
[0013]为了实现上述目的,本发明第一方面实施例的用于生成动态可重构处理器的配置信息的方法,所述动态可重构处理器由处理单元阵列构成,所述处理单元阵列包括多个处理单元,所述方法包括:S1、读取待执行任务的信息,并根据所述信息生成所述处理单元阵列的阵列配置信息顶层;S2、根据所述信息分别生成与所述多个处理单元对应的多个处理单元配置信息;以及S3、将所述阵列配置信息顶层和所述多个处理单元配置信息进行装配以生成所述动态可重构处理器的配置信息。
[0014]根据本发明实施例的用于生成动态可重构处理器的配置信息的方法,可读取待执行任务的信息,并根据该信息生成阵列配置信息顶层和每个处理单元对应的处理单元配置信息,之后可将阵列配置信息顶层和每个处理单元配置信息进行装配以生成动态可重构处理器的配置信息,至少存在以下优点:1)由于每个处理单元都有自己独立的配置信息,因此在对可重构处理器阵列进行配置时,若其中一个或者一部分处理单元的功能发生变化,不需要对整个阵列进行重新配置,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,即根据每个处理单元的配置信息中配置持续周期数和间隔周期数来确定每个处理单元功能是否改变,这样避免了处理单元重复配置,从而实现了部分配置和选择性配置,提高了配置的灵活性:2)合理地压缩了动态切换配置信息量,从而缩短了配置时间,并且降低了对配置存储器容量的要求;3)访问配置存储器次数降低,从而降低了功耗。
[0015]为了实现上述目的,本发明第二方面实施例的用于生成动态可重构处理器的配置信息的装置,所述动态可重构处理器由处理单元阵列构成,所述处理单元阵列包括多个处理单元,所述装置包括:待执行任务存储模块,用于存储待执行任务的信息;读取模块,用于读取所述待执行任务的信息;第一生成模块,用于根据所述信息生成所述处理单元阵列的阵列配置信息顶层;第二生成模块,用于根据所述信息分别生成与所述多个处理单元对应的多个处理单元配置信息;以及装配模块,用于将所述阵列配置信息顶层和所述多个处理单元配置信息进行装配以生成所述动态可重构处理器的配置信息。
[0016]根据本发明实施例的用于生成动态可重构处理器的配置信息的装置,可通过第一生成模块根据读取的待执行任务的信息生成阵列配置信息顶层,第二生成模块根据该信息分别生成与每个处理单元对应的处理单元配置信息,装配模块将阵列配置信息顶层和每个处理单元的处理单元配置信息进行装配以生成动态可重构处理器的配置信息,至少存在以下优点:1)由于每个处理单元都有自己独立的配置信息,因此在对可重构处理器阵列进行配置时,若其中一个或者一部分处理单元的功能发生变化,不需要对整个阵列进行重新配置,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,即根据每个处理单元的配置信息中配置持续周期数和间隔周期数来确定每个处理单元功能是否改变,这样避免了处理单元重复配置,从而实现了部分配置和选择性配置,提高了配置的灵活性:2)合理地压缩了动态切换配置信息量,从而缩短了配置时间,并且降低了对配置存储器容量的要求;3 )访问配置存储器次数降低,从而降低了功耗。
[0017]为了实现上述目的,本发明第三方面实施例的处理器配置装置,包括:第一配置模块,用于读取配置信息中的阵列配置信息顶层,并将所述阵列配置信息顶层中的计算粒度和循环迭代次数配置至处理单元阵列;第二配置模块,用于读取所述配置信息中的多个处理单元配置信息,并将所述多个处理单元配置信息分别配置至对应的处理单元,其中,每个处理单元配置信息包括处理单元配置信息顶层和多个算子配置信息;以及配置控制模块,用于根据运行参数控制所述第一配置模块读取所述阵列配置信息顶层,且根据所述运行参数控制所述第二配置模块读取所述多个处理单元配置信息。
[0018]根据本发明实施例的处理器配置装置,可通过第一配置模块读取阵列配置信息顶层,并将该阵列配置信息顶层中的计算粒度和循环迭代次数配置至处理单元,第二配置模块读取多个处理单元配置信息,并将该多个处理单元配置信息分别配置至对应的处理单元,配置控制模块根据运行参数控制第一配置模块读取阵列配置信息顶层,且根据该运行参数控制第二配置模块读取多个处理单元配置信息,至少存在以下优点:1)由于每个处理单元都有自己独立的配置信息,因此在对可重构处理器阵列进行配置时,若其中一个或者一部分处理单元的功能发生变化,不需要对整个阵列进行重新配置,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,即根据每个处理单元的配置信息中配置持续周期数和间隔周期数来确定每个处理单元功能是否改变,这样避免了处理单元重复配置,从而实现了部分配置和选择性配置,提高了配置的灵活性:2)合理地压缩了动态切换配置信息量,从而缩短了配置时间,并且降低了对配置存储器容量的要求;3)访问配置存储器次数降低,从而降低了功耗。
[0019]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0020]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0021]图1是基于模调度算法的两种配置信息组织结构的示意图;
[0022]图2是根据本发明一个实施例的用于生成动态可重构处理器的配置信息的方法的流程图;
[0023]图3是根据本发明一个具体实施例的用于生成动态可重构处理器的配置信息的方法的流程图;
[0024]图4是根据本发明一个实施例的用于生成动态可重构处理器的配置信息的装置的结构不意图;
[0025]图5是根据本发明一个实施例的用于生成动态可重构处理器的配置信息的装置的不意图;
[0026]图6是根据本发明实施例的三维配置信息中各具体配置信息的内容的示意图;
[0027]图7是根据本发明一个实施例的处理器配置装置的结构示意图;
[0028]图8是根据本发明一个实施例的配置控制模块中运行参数之间的关系示意图;
[0029]图9是根据本发明一个实施例的每个机器周期可重构处理单元功能的示意图;以及
[0030]图10是根据本发明一个具体实施例的三维配置信息中各具体配置信息的内容的示意图。
【具体实施方式】
[0031]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0032]目前,在模调度算法的基础上,动态可重构处理器中的处理单元阵列的配置信息应体现出模调度算法结果所涵盖的信息。如图1左图所示,该图展示了如何将模调度算法在四个处理单元(PE1、PE2、PE3及PE4)上进行映射的示例。从横向的角度观察,模调度算法的结果为处理单元阵列在每个机器周期所对应的一系列操作。因此,可直观想到的动态可重构处理器的配置信息的组织结构如图1右上图所示,其中以处理单元阵列为单位,描述处理单元阵列在每个机器周期所执行的操作。
[0033]如图1左图所示,从纵向的角度观察,模调度算法的结果可以理解为处理单元阵列内的各个处理单元在每个机器周期所对应的操作。因此,如图1的右下图所示,第二种动态可重构处理器的配置信息的组织结构中以处理单元为单位,描述每个处理单元在每个机器周期所完成的操作。这两种配置信息的组织结构在逻辑上是想等价的,只是各自的出发点不同,一种是从处理单元阵列的总体的角度去描述配置信息,而另一种则是从底层的处理单元的角度去描述配置信息。如图1左图所示,单个处理单元在运行时往往会出现在连续的机器周期执行相同操作的情况(如运行循环体),这就为配置信息的压缩提供了可行性。
[0034]为此,本发明提出了一种用于生成动态可重构处理器的配置信息的方法、装置及处理器配置装置。下面参考附图描述根据本发明实施例的用于生成动态可重构处理器的配置信息的方法、装置及处理器配置装置。
[0035]图2是根据本发明一个实施例的用于生成动态可重构处理器的配置信息的方法的流程图。
[0036]需要说明的是,在本发明的实施例中,动态可重构处理器可由处理单元阵列构成,处理单元阵列可包括多个处理单元。此外,在本发明的一个实施例中,多个可理解为两个或两个以上。如图2所示,该用于生成动态可重构处理器的配置信息的方法可以包括:
[0037]S201,读取待执行任务的信息,并根据信息生成处理单元阵列的阵列配置信息顶层。
[0038]具体而言,可先读取待执行任务的信息,之后可从该待执行任务的信息中提取待执行任务的计算粒度和循环迭代次数,以生成阵列配置信息顶层。其中,在本发明的实施例中,计算粒度和循环迭代次数可构成阵列配置信息顶层,计算粒度可对应于处理单元内的ALU (Arithmetic Logic Unit,算术逻辑单元)的计算粒度,循环迭代次数可为处理单元阵列处理循环时的循环体(即待执行任务)的迭代次数。需要说明的是,在本发明的实施例中,当待执行任务不是循环任务时,从该待执行任务的信息中提取的循环迭代次数可为0,即循环体的迭代次数为I,此时为循环的特例,不产生迭代。
[0039]S202,根据信息分别生成与多个处理单元对应的多个处理单元配置信息。
[0040]需要说明的是,在本发明的实施例中,对于多个处理单元,每个处理单元的处理单元配置信息的生成方法均相同。
[0041]具体而言,可根据读取出的待执行任务的信息确定映射到每个处理单元上的执行指令,并根据该执行指令生成与每个处理单元对应的处理单元配置信息。其中,在本发明的一个实施例中,处理单元配置信息可包括处理单元配置信息顶层和多个算子配置信息,其中处理单元配置信息顶层可包括开始机器周期数、算子个数和配置变化选择等。
[0042]需要说明的是,在本发明的实施例中,开始机器周期可指每个处理单元在哪个机器周期开始计算;算子个数可为每个处理单元配置信息中包含的算子配置信息的个数;配置变化选择对应于处理单元配置信息变化时,可在改变互联的配置信息还是改变ALU操作码的配置信息之间做选择。
[0043]应当理解,在本发明的一个实施例中,多个算子配置信息的个数与算子个数相同,且每个算子具有对应的算子配置信息。其中,在本发明的实施例中,每个算子配置信息均可包括输入、ALU操作码、连续运行周期数、间隔周期数和存储器写访问等。
[0044]需要说明的是,在本发明的实施例中,输入可用于指示输入来自Router (阵列内互联)或存储器读访问以及其地址;ALU操作码可表示作用于可重构处理单元的各种ALU操作;连续运行周期数可表示当前的算子配置信息连续运行的机器周期数;间隔周期数可表示两个相邻的算子之间的空闲机器周期数;存储器写访问可表示存储器是否能写访问以及存储器写地址。
[0045]还需要说明的是,在本发明的实施例中,通过采用连续运行周期数将映射在当前处理单元上的一系列顺序的计算中相邻且相同的计算,只通过一个算子配置信息来表达,起到了压缩配置信息动态切换量的作用。
[0046]S203,将阵列配置信息顶层和多个处理单元配置信息进行装配以生成动态可重构处理器的配置信息。
[0047]具体而言,可按照预设顺序将阵列配置信息顶层和每个处理单元配置信息进行装配以生成动态可重构处理器的配置信息。可以理解,每一个阵列配置信息顶层对应多个处理单元配置信息,且所组装的配置信息不可不进行任何数据压缩。
[0048]根据本发明实施例的用于生成动态可重构处理器的配置信息的方法,可读取待执行任务的信息,并根据该信息生成阵列配置信息顶层和每个处理单元对应的处理单元配置信息,之后可将阵列配置信息顶层和每个处理单元配置信息进行装配以生成动态可重构处理器的配置信息,至少存在以下优点:1)由于每个处理单元都有自己独立的配置信息,因此在对可重构处理器阵列进行配置时,若其中一个或者一部分处理单元的功能发生变化,不需要对整个阵列进行重新配置,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,即根据每个处理单元的配置信息中配置持续周期数和间隔周期数来确定每个处理单元功能是否改变,这样避免了处理单元重复配置,从而实现了部分配置和选择性配置,提高了配置的灵活性:2)合理地压缩了动态切换配置信息量,从而缩短了配置时间,并且降低了对配置存储器容量的要求;3)访问配置存储器次数降低,从而降低了功耗。
[0049]下面将举例说明本发明实施例的用于生成动态可重构处理器的配置信息的方法的流程。
[0050]举例而言,如图3所示,首先,可读取待执行任务的信息,并根据该信息生成处理单元阵列的阵列配置信息顶层(步骤1),其中,该步骤I可包括:生成计算粒度(步骤1.1);以及生成循环迭代次数(步骤1.2)。之后,可根据待执行任务的信息分别生成与多个处理单元对应的多个处理单元配置信息,这里个处理单元配置信息的个数对应于阵列中处理单元的个数,假设个数为η (步骤2)。其中,该步骤2可包括:生成第I个处理单元的处理单元配置信息(步骤2.1),该步骤2.1可包括生成该处理单元的处理单元配置信息顶层(步骤2.1.1)、生成该处理单元的多个算子配置信息(步骤2.1.2)。
[0051]其中,该步骤2.1.1可包括:生成开始机器周期数(步骤2.1.1.1)、生成算子个数(步骤2.1.1.2)以及生成配置变化选择(步骤2.1.1.3)。此外,步骤2.1.2可包括:生成该处理单元的第I个算子配置信息(步骤2.1.2.1),步骤2.1.2.1可包括:生成输入信息(步骤2.1.2.1.1)、生成ALU操作码信息(步骤2.1.2.1.2)、生成连续运行周期数信息(步骤2.1.2.1.3)、生成间隔周期数信息(步骤2.1.2.1.4)以及生成存储器写访问信息(步骤
2.1.2.1.5)。
[0052]如图3所示,步骤2.1.2.2?步骤2.1.2.m:生成该处理单元的其余算子配置信息,其中m为算子配置信息的个数,方法可参照步骤2.1.2.1。步骤2.2?步骤2.η:生成其余的处理单元的处理单元配置信息,其中η为处理单元个数,方法可参照步骤2.1。最后,将阵列配置信息顶层和所有处理单元配置信息进行装配以生成动态可重构处理器的配置信息(步骤3 )。
[0053]为了实现本发明实施例的方法,本发明的实施例还提出一种用于生成动态可重构处理器的配置信息的装置。
[0054]图4是根据本发明一个实施例的用于生成动态可重构处理器的配置信息的装置的结构示意图。
[0055]需要说明的是,在本发明的实施例中,动态可重构处理器可由处理单元阵列构成,该处理单元阵列可包括多个处理单元。具体地,如图4所示,该用于生成动态可重构处理器的配置信息的装置可以包括:待执行任务存储模块110、读取模块120、第一生成模块130、第二生成模块140和装配模块150。
[0056]具体地,待执行任务存储模块110可用于存储待执行任务的信息。其中,在本发明的实施例中,待执行任务为经过模调度算法处理后的任务,即编译后的宏指令。
[0057]读取模块120可用于读取待执行任务的信息。第一生成模块130可用于根据信息生成处理单元阵列的阵列配置信息顶层。
[0058]具体而言,第一生成模块130可从待执行任务的信息中提取待执行任务的计算粒度和循环迭代次数。其中,在本发明的实施例中,计算粒度和循环迭代次数可构成阵列配置信息顶层,计算粒度可对应于处理单元内的ALU的计算粒度,循环迭代次数可为处理单元阵列处理循环时的循环体(即待执行任务)的迭代次数。需要说明的是,在本发明的实施例中,当待执行任务不是循环任务时,第一生成模块130从该待执行任务的信息中提取的循环迭代次数可为0,即循环体的迭代次数为1,此时为循环的特例,不产生迭代。
[0059]第二生成模块140可用于根据信息分别生成与多个处理单元对应的多个处理单元配置信息。需要说明的是,在本发明的实施例中,对于多个处理单元,每个处理单元的处理单元配置信息的生成实现的过程均相同。
[0060]具体而言,第二生成模块140可根据待执行任务的信息确定映射到每个处理单元上的执行指令,并可根据该执行指令生成处理单元对应的处理单元配置信息。其中,在本发明的一个实施例中,处理单元配置信息可包括处理单元配置信息顶层和多个算子配置信息,其中处理单元配置信息顶层可包括开始机器周期数、算子个数和配置变化选择等。
[0061]需要说明的是,在本发明的实施例中,开始机器周期可指每个处理单元在哪个机器周期开始计算;算子个数可为每个处理单元配置信息中包含的算子配置信息的个数;配置变化选择对应于处理单元配置信息变化时,可在改变互联的配置信息还是改变ALU操作码的配置信息之间做选择。
[0062]应当理解,在本发明的一个实施例中,多个算子配置信息的个数与算子个数相同,且每个算子具有对应的算子配置信息。其中,在本发明的实施例中,每个算子配置信息均可包括输入、ALU操作码、连续运行周期数、间隔周期数和存储器写访问等。
[0063]需要说明的是,在本发明的实施例中,输入可用于指示输入来自Router (阵列内互联)或存储器读访问以及其地址;ALU操作码可表示作用于可重构处理单元的各种ALU操作;连续运行周期数可表示当前的算子配置信息连续运行的机器周期数;间隔周期数可表示两个相邻的算子之间的空闲机器周期数;存储器写访问可表示存储器是否能写访问以及存储器写地址。
[0064]还需要说明的是,在本发明的实施例中,通过采用连续运行周期数将映射在当前处理单元上的一系列顺序的计算中相邻且相同的计算,只通过一个算子配置信息来表达,起到了压缩配置信息动态切换量的作用。 [0065]装配模块150可用于将阵列配置信息顶层和多个处理单元配置信息进行装配以生成动态可重构处理器的配置信息。更具体地,装配模块150可按照预设顺序将阵列配置信息顶层和每个处理单元配置信息进行装配以生成动态可重构处理器的配置信息。可以理解,每一个阵列配置信息顶层对应多个处理单元配置信息,且所组装的配置信息不可不进行任何数据压缩。
[0066]进一步地,在本发明的一个实施例中,如图4所示,该用于生成动态可重构处理器的配置信息的装置还可以包括配置存储模块160,配置存储模块160可用于存储装配模块150生成的配置信息。
[0067]图5是根据本发明一个实施例的用于生成动态可重构处理器的配置信息的装置的示意图。举例而言,如图5所示,第一生成模块130根据从待执行任务存储模块110中存储的待执行任务的信息,生成处理单元阵列的阵列配置信息顶层,其中,待执行任务存储模块110可由只读存储器ROM构成。如图5所示,第二生成模块140可包括生成单元141、生成单元142、…、生成单元14η,η可对应于处理单元的个数,且生成单元141、生成单元142、...、生成单元14η的功能均相同。现以生成单元141为例,读取模块120读取待执行任务存储模块110中存储的待执行任务的信息,生成单元141可根据该信息确定映射到第一个处理单元上的执行指令,并根据该执行指令生成第一个处理单元的处理单元配置信息。
[0068]如图5所示,生成单元142、…、生成单元14η与生成单元141具有相同的结构,可以同时并行地为其余(η-1)个处理单元生成对应的处理单元配置信息。装配模块150可将第一生成模块130生成的阵列配置信息顶层、生成单元141、生成单元142、…、生成单元14η对应生成的处理单元配置信息装配在一起,每一个阵列配置信息顶层对应N个处理单元配置信息,配置存储模块160存储装配模块150生成的配置信息。
[0069]根据本发明实施例的用于生成动态可重构处理器的配置信息的装置,可通过第一生成模块根据读取的待执行任务的信息生成阵列配置信息顶层,第二生成模块根据该信息分别生成与每个处理单元对应的处理单元配置信息,装配模块将阵列配置信息顶层和每个处理单元的处理单元配置信息进行装配以生成动态可重构处理器的配置信息,至少存在以下优点:1)由于每个处理单元都有自己独立的配置信息,因此在对可重构处理器阵列进行配置时,若其中一个或者一部分处理单元的功能发生变化,不需要对整个阵列进行重新配置,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,即根据每个处理单元的配置信息中配置持续周期数和间隔周期数来确定每个处理单元功能是否改变,这样避免了处理单元重复配置,从而实现了部分配置和选择性配置,提高了配置的灵活性:2)合理地压缩了动态切换配置信息量,从而缩短了配置时间,并且降低了对配置存储器容量的要求;3)访问配置存储器次数降低,从而降低了功耗。
[0070]应当理解,在本发明的一个实施例中,动态可重构处理器的配置信息可理解为三维配置信息,即包括阵列配置信息顶层、处理单元配置信息顶层、算子配置信息。如图6所示,为三维配置信息中各具体配置信息的内容,基于可重构处理器系统的特点,配置信息的单位可为Word (即32bits)。
[0071 ] 为了实现上述目的,本发明的实施例还提出一种处理器配置装置。
[0072]图7是根据本发明一个实施例的处理器配置装置的结构示意图。如图7所示,该处理器配置装置可以包括:第一配置模块210、第二配置模块220和配置控制模块230。
[0073]具体地,第一配置模块210用于读取配置信息中的阵列配置信息顶层,并将阵列配置信息顶层中的计算粒度和循环迭代次数配置至处理单元阵列。举例而言,第一配置模块210可从配置存储器中读出配置信息中的阵列配置信息顶层,并可将该阵列配置信息顶层中的计算粒度和循环迭代次数配置至处理单元阵列。其中,在本发明的实施例中,计算粒度和循环迭代次数可分别被写入处理单元阵列内的计算粒度寄存器和循环迭代次数寄存器。
[0074]第二配置模块220用于读取配置信息中的多个处理单元配置信息,并将多个处理单元配置信息分别配置至对应的处理单元,其中,每个处理单元配置信息包括处理单元配置信息顶层和多个算子配置信息。其中,在本发明的实施例中,处理单元配置信息顶层中的算子个数、开始机器周期数和配置变化选择分别被写入处理单元内的算子个数寄存器、开始机器周期数寄存器和配置变化选择寄存器;处理单元配置信息中的算子配置信息被逐个被写入处理单元内的配置RAM。
[0075]配置控制模块230用于根据运行参数控制第一配置模块读取阵列配置信息顶层,且根据运行参数控制第二配置模块读取多个处理单元配置信息。其中,在本发明的一个实施例中,运行参数可包括对开始机器周期数进行计数、对连续周期数进行计数、对间隔周期数进行计数、对算子个数进行计数和对循环迭代次数进行计数。
[0076]举例而言,如图8所示,配置控制模块230对三维配置信息中的5个运行参数进行计数,其计数步骤如下:(I)整个计数过程始于对开始机器周期数的计数,当完成该参数的计数后处理单元开始执行算子配置信息。(2)对应于一次算子配置信息的执行,配置存储器中的第一个算子配置信息被读出,其中的连续运行周期数和间隔周期数分别被写入到连续运行周期数寄存器和间隔周期数寄存器,算子配置信息中的其余部分被写入到处理单元。对连续运行周期数进行计数,在此过程中,每一个机器周期都会使能处理单元,但不会从配置存储器中读出新的算子配置信息。(3)开始进行间隔周期数的计数。在此过程中,与连续运行周期数的计数过程中的区别在于,不仅不会从配置存储器中读出新的算子配置信息,在每一个机器周期处理单元都不会被使能。因此,处理单元将被连续的闲置多个机器周期,直至该参数的计数完成。(4)对算子个数的进行计数,并将计数后的算子个数作为配置存储器的读地址,读取出新的算子配置信息,之后的配置流程与第一个算子配置信息的配置流程控制相同。当处理单元执行完三维配置信息中的所有的算子配置信息后,算子个数计数完成。(5)进入循环迭代次数的计数。循环迭代中的下一次迭代中的配置流程与以上所叙述的第一次迭代的配置流程相同。对循环迭代次数进行计数,直至循环迭代中的所有迭代被执行完,循环迭代次数计数完成,即表示当前的处理单元完成运行。
[0077]需要说明的是,在本发明的实施例中,配置控制模块230采用三维配置信息中的5个运行参数来对配置存储器的读访问进行控制。从自顶向下的顺序这5个参数分别为对循环迭代次数进行计数、对算子个数进行计数、对开始机器周期数进行计数、对开始机器周期数进行计数和对间隔周期数进行计数。除此之外,配置控制模块230被处理单元阵列内的同步控制单元发出的全局同信号所使能。其中,同步控制单元用于产生在某个机器周期内处理单元阵列中的全部处理单元均执行完算子配置信息的全局同步信号,之后,处理单元阵列的运行才进入下一个机器周期。通过这种方式,处理单元阵列中的各个处理单元即可按照模调度结果中的顺序有序的运行。
[0078]进一步地,在本发明的一个实施例中,如图7所示,第二配置模块220可包括第一配置单元221、第二配置单元222和第三配置单元223。第一配置单元221可用于分别读取多个处理单元配置信息中的处理单元配置信息顶层,并将处理单元配置信息顶层配置至对应的处理单元,其中,处理单元配置信息顶层包括开始机器周期数。第二配置单元222可用于在开始机器周期数的计数结束时,分别读取多个处理单元配置信息中的第一个算子配置信息,并将第一个算子配置信息配置至对应的处理单元。第三配置单元223可用于在满足预设条件时,分别读取下一个算子配置信息并配置至对应的处理单元。
[0079]其中,在本发明的一个实施例中,满足预设条件可包括:算子配置信息中的连续运行周期数的计数结束、间隔周期数的计数结束、处理单元配置信息顶层中的算子个数的计数未结束。
[0080]具体而言,第一配置单元221可读取出处理单元配置信息顶层,其中可包含开始机器周期数、算子个数和配置变化选择。对开始机器周期数进行计数,第二配置单元222可在开始机器周期数的技术结束时,分别读取多个处理单元配置信息中的第一个算子配置信息,并将该算子配置信息配置至对应的处理单元。其中,对该算子配置信息中的连续运行周期数进行计数,在连续运行周期数的计数结束之后,对该算子配置信息中的间隔周期数进行计数。在间隔周期数的计数结束后,对处理单元配置信息顶层中的算子个数进行计数。若算子个数的计数未结束(即满足了预设条件),则第三配置单元223可分别读取配置信息选择位上数据,并根据处理单元配置信息顶层中的配置变化选择判断下一个算子配置信息主要修改的是互联配置还是ALU操作码配置,并分别根据判断结果读取下一个算子配置信息并配置至对应的处理单元,读取下一个算子配置信息的过程与第一个算子配置信息的过程相同。
[0081]需要说明的是,在本发明的实施例中,若算子个数的计数结束,即算子配置信息已都被配置到了对应的处理单元内,则对阵列配置信息顶层中的循环迭代次数进行计数,若循环迭代次数的计数未结束,则第二配置单元222可重新读取第一个算子配置信息并配置至对应的处理单元。
[0082]根据本发明实施例的处理器配置装置,可通过第一配置模块读取阵列配置信息顶层,并将该阵列配置信息顶层中的计算粒度和循环迭代次数配置至处理单元,第二配置模块读取多个处理单元配置信息,并将该多个处理单元配置信息分别配置至对应的处理单元,配置控制模块根据运行参数控制第一配置模块读取阵列配置信息顶层,且根据该运行参数控制第二配置模块读取多个处理单元配置信息,至少存在以下优点:1)由于每个处理单元都有自己独立的配置信息,因此在对可重构处理器阵列进行配置时,若其中一个或者一部分处理单元的功能发生变化,不需要对整个阵列进行重新配置,只对需要配置切换的处理单元进行配置,其他处理单元配置保持不变,即根据每个处理单元的配置信息中配置持续周期数和间隔周期数来确定每个处理单元功能是否改变,这样避免了处理单元重复配置,从而实现了部分配置和选择性配置,提高了配置的灵活性:2)合理地压缩了动态切换配置信息量,从而缩短了配置时间,并且降低了对配置存储器容量的要求;3)访问配置存储器次数降低,从而降低了功耗。
[0083]为了使得本领域的技术人员更加清楚地了解本发明,下面将举例说明本发明。
[0084]举例而言,为便于说明,首先对于一些参数进行设定,具体如下:1)动态可重构处理器内子单元内的处理单元阵列的规模为4*4,即有16个处理单元。2)动态可重构处理器内子单元的个数为I。3)阵列配置信息顶层占用位数为Iword ;处理单元配置信息顶层占用位数为Iword ;每个处理单元的处理单元配置信息占用位数为2words。4)进行Iword的动态切换配置信息的功耗为InW。5)处理单元阵列内只有第I个处理单元的功能在10个机器周期内每个周期都变化,而其余15个处理单元的功能在10个周期内都保持不变,如图9所示。6)处理单元内ALU计算粒度为32bits ;循环迭代次数位O。7)处理单元开始机器周期数为第I个机器周期;算子个数10。8)配置变化选择18位,算子个数总共为10,配置变化需要切换次数为9,对于前4次切换为互联的配置信息变化,对于后5次切换为ALU操作码的配置信息变化。9)输入1、输入2、输入3均是来自存储器读访问,存储器中的读地址为[1111100000]2 ;ALU操作码加:0,减:1,乘:2 ;连续运行周期数为I或10 ;间隔周期数为O ;存储器写访问地址为[0000011111]2。
[0085]因此,根据上述设定的参数、三维配置信息组织结构和配置信息生成方法及装置,仅以处理单元I为例,可得到PEl (处理单元I)的配置信息,如图10所示。阵列配置信息顶层包括:(I)计算粒度,占用位为O?I位,位数为2,它对应于处理单元内的ALU的计算粒度,具体如下:2,bOO, 32bits;2,bOl, 16bits;2,blO, 8bits;2,bll:4bits ; (2)循环迭代次数,占用位为2?11位,位数为10,O表示迭代I次,即不循环;1?1023表示循环迭代2?1024次。处理单元配置信息顶层包括:(I)开始机器周期,占用位为O?3位,位数为4,O?15表示从第I?16个机器周期开始进行计算;(2)算子个数,占用位为4?7位,位数为4,O?15表示算子配置信息部分包含的算子配置信息个数;如果为0,则表示此处理单元未被激活;(3)配置变化选择,占用位为第8?25位,位数为18,对于每一个算子,都有2bits来对配置信息的变化做选择,其中01表示改变互联的配置信息,10表示改变ALU操作码的配置信息,11表示互联配置信息和ALU操作码配置信息均变化,00则是不会出现的情况。算子配置信息包括:(1)输入1,占用位为O?10位,位数为11, bito用于指示输入来自Router (阵列内互联)或存储器读访问;如果来自Router, bitsl?5有效,表示对ixniter的32个输入的选择信号;如果来自存储器,bitsl?10有效,表示存储器中的读地址;(2)输入2,占用位为11?21位,位数为11,bitO用于指示输入来自Router (阵列内互联)或存储器读访问;如果来自Router, bitsl?5有效,表示对router的32个输入的选择信号;如果来自存储器,bitsl?10有效,表示存储器中的读地址;(3)输入3,占用位为22?32位,位数为11, bitO用于指示输入来自Router (阵列内互联)或存储器读访问;如果来自Router, bitsl?5有效,表不对router的32个输入的选择信号;如果来自存储器,bitsl?10有效,表示存储器中的读地址;(4) ALU操作码,占用位为33?37位,位数为5,O?31表示32种ALU操作;(5)连续运行周期数,占用位为38?47位,位数为10,I?1024cycles表示当前的算子配置信息连续运行的机器周期数;(6)间隔周期数,占用位为48?51位,位数为4,0?15cycles表示两个相邻的算子之间的空闲机器周期数,
(7)存储器写访问(输出),占用位为52?62位,位数为ll,bit52用于使能存储器写访问,bits53?62表示存储器写地址。
[0086]其中,配置控制器中对三维配置信息中的5个运行参数进行计数的步骤如下:首先,对整个计数过程始于对开始机器周期数的计数,开始机器周期数为I。然后,对每个处理单元中的一次算子配置信息进行配置:(I)配置存储器中的第一个算子配置信息被读出,其中的连续运行周期数I (处理单元I)或者10 (处理单元2?16)和间隔周期数O分别被写入到连续运行周期数寄存器和间隔周期数寄存器,算子配置信息中的其余部分被写入到处理单元。(2)对连续运行周期数进行计数,在此过程中,每一个机器周期都会使能处理单元,但不会从配置存储器中读出新的算子配置信息。因此处理单元将在连续的机器周期内执行相同的算子配置信息,直至该参数的计数完成。(3)开始进行间隔周期数的计数。在此过程中,与连续运行周期数的计数过程中的区别在于,不仅不会从配置存储器中读出新的算子配置信息,在每一个机器周期处理单元都不会被使能。因此,处理单元将被连续的闲置多个机器周期,直至该参数的计数完成。需说明的是,当间隔周期数为O时,此步骤的计数将被跳过。在完成了间隔周期数的计数后,即完成了一次算子配置信息的执行。(4)将对算子个数10的进行计数,并将计数后的算子个数作为配置存储器的读地址,读取出新的算子配置信息,之后的配置流程与第一个算子配置信息的配置流程控制相同。当处理单元执行完三维配置信息中的所有的算子配置信息后,算子个数计数完成。(5 )进入循环迭代次数的计数。循环迭代中的下一次迭代中的配置流程与以上所叙述的第一次迭代的配置流程相同。对循环迭代次数进行计数,直至循环迭代中的所有迭代被执行完,循环迭代次数计数完成,即表示当前的处理单元完成运行。由于采用了同步控制单元对所有的处理单元进行同步,当前的处理单元完成运行即表示所有的处理单元完成运行,也就是处理单元阵列执行完整个三维配置信息。
[0087]通过本发明实施例的用于生成动态可重构处理器的配置信息的方法、装置及处理器配置装置,总体的动态切换配置信息量得到了压缩,功耗得到降低,配置灵活性得到提高。只有处理单元I的功能在不同机器周期内发生变化,而处理单元2?处理单元16的功能在不同机器周期内均不发生变化。通过这种方法和装置可以对处理单元2?处理单元16的动态切换配置信息进行压缩。
[0088]经过分析可知,采用本发明实施例的方法及装置得到的动态切换配置信息量为l+l+2*10+2*15=52wordS ;不采用本发明实施例的方法及装置的动态切换配置信息量为2*16*10=320words。采用本发明实施例的方法及装置得到的动态切换配置信息功耗为52*l=52nW ;不采用这种方法及装置的动态切换配置信息功耗为320*l=320nW。
[0089]综上所述,通过本发明实施例的方法及装置可以对动态可重构阵列内部每一个处理单元进行配置,不需要对整个阵列进行重新配置,只需要配置改变的处理单元即可,实现了部分配置和选择性配置,提高了配置的灵活性。[0090]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属【技术领域】的技术人员所理解。
[0091]在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(R0M),可擦除可编辑只读存储器(EPR0M或闪速存储器),光纤装置,以及便携式光盘只读存储器(⑶ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0092]应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0093]本【技术领域】的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0094]此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0095]上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0096]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0097]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0098]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种用于生成动态可重构处理器的配置信息的方法,其特征在于,所述动态可重构处理器由处理单元阵列构成,所述处理单元阵列包括多个处理单元,所述方法包括: 51、读取待执行任务的信息,并根据所述信息生成所述处理单元阵列的阵列配置信息顶层; 52、根据所述信息分别生成与所述多个处理单元对应的多个处理单元配置信息;以及 53、将所述阵列配置信息顶层和所述多个处理单元配置信息进行装配以生成所述动态可重构处理器的配置信息。
2.如权利要求1所述的方法,其特征在于,根据所述信息生成所述处理单元阵列的阵列配置信息顶层包括: 从所述待执行任务的信息中提取所述待执行任务的计算粒度和循环迭代次数,其中所述计算粒度和循环迭代次数构成所述阵列配置信息顶层。
3.如权利要求1所述的方法,其特征在于,根据所述信息分别生成与所述多个处理单元对应的多个处理单元配置信息包括: 根据所述待执行任务的信息确定映射到每个处理单元上的执行指令,并根据所述执行指令生成与所述处理单元对应的处理单元配置信息。
4.如权利要求3所述的方法,其特征在于,所述处理单元配置信息包括处理单元配置信息顶层和多个算子配置信息。
5.如权利要求4所述的方法,其特征在于,所述处理单元配置信息顶层包括开始机器周期数、算子个数和配置变化选择。
6.如权利要求4所述的方法,其特征在于,每个算子配置信息包括输入、ALU操作码、连续运行周期数、间隔周期数和存储器写访问。
7.如权利要求5所述的方法,其特征在于,所述多个算子配置信息的个数与所述算子个数相同,且每个算子具有对应的算子配置信息。
8.如权利要求1所述的方法,其特征在于,将所述阵列配置信息顶层和所述多个处理单元配置信息进行装配以生成所述动态可重构处理器的配置信息包括: 按照预设顺序将所述阵列配置信息顶层和所述多个处理单元配置信息进行装配以生成所述动态可重构处理器的配置信息。
9.一种用于生成动态可重构处理器的配置信息的装置,其特征在于,所述动态可重构处理器由处理单元阵列构成,所述处理单元阵列包括多个处理单元,所述装置包括: 待执行任务存储模块,用于存储待执行任务的信息; 读取模块,用于读取所述待执行任务的信息; 第一生成模块,用于根据所述信息生成所述处理单元阵列的阵列配置信息顶层; 第二生成模块,用于根据所述信息分别生成与所述多个处理单元对应的多个处理单元配置信息;以及 装配模块,用于将所述阵列配置信息顶层和所述多个处理单元配置信息进行装配以生成所述动态可重构处理器的配置信息。
10.如权利要求9所述的装置,其特征在于,所述第一生成模块具体用于:从所述待执行任务的信息中提取所述待执行任务的计算粒度和循环迭代次数,其中所述计算粒度和循环迭代次数构成所述阵列配置信息顶层。
11.如权利要求9所述的装置,其特征在于,所述第二生成模块具体用于:根据所述待执行任务的信息确定映射到每个处理单元上的执行指令,并根据所述执行指令生成所述处理单元对应的处理单元配置信息。
12.如权利要求11所述的装置,其特征在于,所述处理单元配置信息包括处理单元配置信息顶层和多个算子配置信息。
13.如权利要求12所述的装置,其特征在于,所述处理单元配置信息顶层包括开始机器周期数、算子个数和配置变化选择。
14.如权利要求12所述的装置,其特征在于,每个算子配置信息包括输入、ALU操作码、连续运行周期数、间隔周期数和存储器写访问。
15.如权利要求13所述的装置,其特征在于,所述多个算子配置信息的个数与所述算子个数相同,且每个算子具有对应的算子配置信息。
16.如权利要求9所述的装置,其特征在于,还包括: 配置存储模块,用于存储所述装配模块生成的所述配置信息。
17.一种处理器配置装置,其特征在于,包括: 第一配置模块,用于读取配置信息中的阵列配置信息顶层,并将所述阵列配置信息顶层中的计算粒度和循环迭代次数配置至处理单元阵列; 第二配置模块,用于读 取所述配置信息中的多个处理单元配置信息,并将所述多个处理单元配置信息分别配置至对应的处理单元,其中,每个处理单元配置信息包括处理单元配置信息顶层和多个算子配置信息;以及 配置控制模块,用于根据运行参数控制所述第一配置模块读取所述阵列配置信息顶层,且根据所述运行参数控制所述第二配置模块读取所述多个处理单元配置信息。
18.如权利要求17所述的装置,其特征在于,所述运行参数包括对开始机器周期数进行计数、对连续周期数进行计数、对间隔周期数进行计数、对算子个数进行计数和对所述循环迭代次数进行计数。
19.如权利要求17所述的装置,其特征在于,所述第二配置模块包括: 第一配置单元,用于分别读取所述多个处理单元配置信息中的处理单元配置信息顶层,并将所述处理单元配置信息顶层配置至对应的处理单元,其中,处理单元配置信息顶层包括所述开始机器周期数; 第二配置单元,用于在所述开始机器周期数的计数结束时,分别读取所述多个处理单元配置信息中的第一个算子配置信息,并将所述第一个算子配置信息配置至对应的处理单元; 第三配置单元,用于在满足预设条件时,分别读取下一个算子配置信息并配置至对应的处理单元。
【文档编号】G06F15/177GK103942181SQ201410126188
【公开日】2014年7月23日 申请日期:2014年3月31日 优先权日:2014年3月31日
【发明者】刘雷波, 王延升, 彭贵强, 李兆石, 尹首一, 魏少军 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1