基于微核的可重构处理器、调度设备及其方法

文档序号:6500834阅读:212来源:国知局
基于微核的可重构处理器、调度设备及其方法
【专利摘要】提供了一种基于微核的可重构处理器、调度设备及其方法。所述基于微核(MC)的可重构处理器包括多个MC,所述多个MC中的每个MC包括一组功能单元(FU),所述一组FU具有独立执行循环迭代的能力。所述多个MC包括:第一MC,被配置为执行第一循环迭代;第二MC,被配置为执行第二循环迭代。
【专利说明】基于微核的可重构处理器、调度设备及其方法
[0001]本申请要求于2012年3月16日提交的第10-2012-0027400号韩国专利申请的权益,所述申请的全部公开通过引用为所有目的合并于此。
【技术领域】
[0002]以下描述涉及可重构架构和循环调度方法。
【背景技术】
[0003]一般而言,可重构架构是可改变计算设备的硬件配置使得硬件配置针对特定任务最优化的架构。
[0004]由于固定的硬件功能,仅在硬件中处理特定任务难以有效地处理在所述任务的处理期间做出的修改或改变,而仅在软件中处理特定任务可容易地处理在所述任务的处理期间做出的修改或改变,但与任务的硬件处理相比,仅在软件中处理特定任务导致低处理速度。
[0005]可重构架构已被设计为获得硬件处理和软件处理的所有优点。具体地讲,可重构架构已在迭代执行相同任务的数字信号处理领域吸引了大量关注。
[0006]代表性的可重构架构是粗粒度阵列(CGA)。CGA由多个处理单元组成,并可通过改变处理单元之间的连接而针对特定任务被最优化。
[0007]对于一般的CGA而言难以快速获得用于循环调度的合适解决方案,因此已开发出用于解决该问题的多种启发式算法。传统的算法是基于模调度来增加CGA的功能单元的利用率。在传统的算法中,当功能单元的数量少时,可获得功能单元的高利用率,但是当使用大量功能单元时,难以获得功能单元的高利用率。

【发明内容】

[0008]在一总体方面,一种基于微核(MC)的可重构处理器包括多个MC,所述多个MC中的每个MC包括一组功能单元(FU),所述一组功能单元具有独立执行循环迭代的能力;其中,所述多个MC包括:第一 MC,被配置为执行第一循环迭代;第二 MC,被配置为执行第二循环迭代。
[0009]第二 MC还可被配置为当在第一循环迭代和第二循环迭代之间存在依赖时,在第一 MC开始执行第一循环迭代之后开始执行第二循环迭代。
[0010]所述多个MC中的每个MC的FU可以是同类的FU。
[0011]所述多个MC中的每个MC的FU可以是不同类的FU。
[0012]所述可重构处理器还可包括:外部链路,被配置为将所述多个MC彼此连接;其中,所述多个MC中的每个MC还包括;内部链路,被配置为将MC的FU彼此连接。
[0013]在另一总体方面,一种基于微核(MC)的调度设备包括局部调度器,所述局部调度器被配置为:将第一循环迭代映射到多个MC中的第一 MC ;将第二循环迭代映射到多个MC中的第二 MC ;其中,所述多个MC中的每个MC包括一组功能单元(FU),所述一组FU具有独立执行循环迭代的能力。
[0014]所述调度设备还可包括:全局调度器,被配置为当在第一循环迭代和第二循环迭代之间存在依赖时,调整第一循环迭代和第二循环迭代之间的映射关系以产生循环倾斜。
[0015]所述全局调度器还可被配置为:相对于第一循环迭代延时第二循环迭代;将延时的第二循环迭代映射到第二 MC。
[0016]第二MC可被物理地连接到第一MC ;全局调度器还可被配置为:将第一循环迭代映射到第一 MC ;相对于第一循环迭代延时第二循环迭代;将延时的第二循环迭代映射到第二MC0
[0017]所述调度设备还可包括:MC配置单元,被配置为将可重构处理器中的多个FU分组为所述多个MC中的每个MC的一组FU。
[0018]在另一总体方面,一种用于基于微核(MC)并包括多个功能单元(FU)的可重构处理器的调度方法包括:将可重构处理器中的FU分组为多个MC,所述多个MC中的每个MC包括一组FU,所述一组FU具有独立执行循环迭代的能力;将第一循环迭代映射到所述多个MC中的第一 MC ;将第二循环迭代映射到所述多个MC中的第二 MC。
[0019]所述调度方法还可包括:当在第一循环迭代和第二循环迭代之间存在依赖时,调整第一循环迭代和第二循环迭代之间的映射关系。
[0020]所述调整映射关系的步骤可包括:相对于第一循环迭代延时第二循环迭代;将延时的第二循环迭代映射到第二 MC。
[0021]第二MC可被物理地连接到第一MC ;所述调整映射关系的步骤可包括:将第一循环迭代映射到第一 MC ;相对于第一循环迭代延时第二循环迭代;将延时的第二循环迭代映射到第二 MC。
[0022]在另一总体方面,一种可重构处理器包括:多个功能单元(FU),具有被重构为多组FU以形成多个微核(MC)的能力;其中,所述多组FU中的每组具有独立执行循环迭代的能力;所述多个MC中的每个MC包括所述多组FU中的相应一组FU ;所述多个MC中的每个MC被配置为执行多个循环迭代中的不同的循环迭代。
[0023]所述多个MC可被配置为当在循环迭代之间不存在依赖时,开始同时执行循环迭代中的各个循环迭代。
[0024]当在循环迭代之间存在依赖时,所述多个MC之一被配置为执行循环迭代中的第一循环迭代,除执行第一循环迭代的MC以外的所述多个MC中的每个MC被配置为在循环迭代中的紧接的前一循环迭代被执行之后的预定时间,开始执行循环迭代中的相应的循环迭代。多组FU中的每组FU中的FU可以是同类的FU。
[0025]多组FU中的每组FU中的FU可以是不同类的FU。
[0026]所述可重构处理器还可包括具有被重构为外部链路和多个内部链路的能力的多个可重构链路;其中,外部链路可被配置为将所述多个MC彼此连接;每个内部链路可被配置为将所述多个MC中的各个MC的FU彼此连接。
[0027]从以下详细的描述、附图和权利要求,其它特征和方面将是清楚的。
【专利附图】

【附图说明】
[0028]图1是示出可重构处理器的配置的示例的示图。[0029]图2是示出可重构处理器的配置的另一示例的示图。
[0030]图3是示出用于可重构处理器的调度设备的示例的示图。
[0031]图4是用于解释基于微核(MC)的循环映射方法的示例的示图。
[0032]图5是用于解释基于MC的循环映射方法的另一不例的不图。
[0033]图6A和图6B是示出用于MC之间的通信的结构的示例的示图。
[0034]图7是示出控制存储器和MC之间的连接结构的示例的示图。
[0035]图8是示出可重构处理器的配置的另一示例的示图。
[0036]图9是示出用于可重构处理器的调度方法的示例的流程图。
【具体实施方式】
[0037]提供以下的描述以帮助读者获得在此描述的方法、设备和/或系统的全面理解。然而,在此描述的方法、设备和/或系统的各种改变、修改和等同物对于本领域的普通技术人员而言将是清楚的。此外,为了更加清楚和简洁,可省略对于本领域普通技术人员而言已知的功能和构造的描述。
[0038]在整个附图和详细描述中,相同的标号表示相同的元件。附图可以不是按比例的,并且为了清楚、说明和便利,附图中的元件的相对大小、比例和描述可被夸大。
[0039]图1是示出可重构处理器100的配置的示例的示图。参照图1,可重构处理器100包括多个微核(MC)。
[0040]每个MC包括多个功能单元(FU)。每个FU执行多种算术运算和/或逻辑运算。
[0041]每个MC可独立地执行至少一个循环迭代。独立的执行可表示循环迭代可在MC中被完整地执行而不需其它MC的帮助。例如,MC#0可使用FU#0、FU#UFU#4和FU#5完成特定循环迭代的执行。也就是说,MC可被定义为可执行循环迭代的一组FU (B卩,具有独立地执行循环迭代的能力的一组FU)。
[0042]各个MC可根据软件流水线执行不同的循环迭代。例如,MC#0可执行第一循环迭代,MC#1可执行第二循环迭代。换句话说,在基于软件流水线的循环调度中,每个MC可以
是调度单元。
[0043]当第一循环迭代和第二循环迭代之间存在依赖时,第二循环迭代被映射到的MC在第一循环迭代的执行开始之后开始执行第二循环迭代。如果第一循环迭代被映射到MC#0,第二循环迭代被映射到MC#1,并且第一循环迭代和第二循环迭代之间存在依赖,则MC#1在MC#0开始执行第一循环迭代之后开始执行第二循环迭代。换句话说,如果第一循环迭代和第二循环迭代之间存在递归,则考虑所述递归调整循环迭代开始被执行的时间点。
[0044]在一示例中,每个MC的FU是同类的FU。例如,MC#0中的FU#0、FU#1、FU#4和FU#5具有相同的配置。
[0045]在另一示例中,每个MC的FU是不同类的FU。例如,MC#0的FU#0、FU#1、FU#4和FU#5中的至少两个具有不同的配置。每个MC中的至少两个FU可具有不同的计算能力。计算能力可以是由对应的FU支持的一种运算。例如,具有完整计算能力的MC可被定义为一组均具有部分计算能力的FU。完整计算能力可被定义为执行至少一个循环迭代所需的一种运算。
[0046]可重构处理器100还包括外部链路110和每个MC中的内部链路120a(在图1中仅MC#0中的内部链路被标号120a标识)。外部链路110提供MC之间的通信路径,每个MC中的内部链路120a提供MC的FU之间的通信路径。可重构处理器100可包括具有被重构为外部链路110和内部链路120a的能力的多个可重构链路。
[0047]可重构处理器100还包括局部寄存器文件(RF) 130a和全局寄存器文件150。局部寄存器文件130a存储由FU执行的运算的结果或FU的上下文信息,全局寄存器文件150存储由MC执行的运算的结果或MC的上下文信息。
[0048]可重构处理器100还包括控制存储器140。控制存储器140定义FU和/或MC之间的连接关系。换句话说,可根据存储在控制存储器140中的配置信息针对执行程序来最优化可重构处理器100。
[0049]图2是示出可重构处理器200的配置的另一示例的示图。参照图2,可重构处理器200包括多个均具有多个FU的MC、局部寄存器文件130a、全局寄存器文件150、控制存储器140以及链路210和220。FU、MC、局部寄存器文件130、全局寄存器文件150和控制存储器140与以上参照图1描述的对应的组件相同,因此将省略其对应的详细描述。
[0050]在图2中,可重构处理器200具有以4X4网格拓扑结构连接的16个FU逻辑上形成4个MC的配置。例如,MC之间的链路(例如,210)用作图1的外部链路110,每个MC中的链路(例如,220)用作图1的内部链路120a。
[0051]图3是示出用于可重构处理器的调度设备300的示例的示图。可将调度设备300应用于图1和图2中示出的基于MC的可重构处理器100和200。参照图1、图2和图3,调度设备300包括MC配置单元310、局部调度器320和全局调度器330。
[0052]MC配置单元310将包括在可重构处理器100或200中的多个FU分组为多个MC。MC配置单元310将能够独立地执行循环迭代的一组FU分组为一个MC。例如,MC配置单元310使用可重构处理器100或200的硬件信息定义MC。可重构处理器100或200的硬件信息包括关于FU的计算能力和连接关系的信息。
[0053]局部调度器320将第一循环迭代映射到第一 MC并将第二循环迭代映射到第二 MC。换句话说,当调度根据软件流水线循环时,局部调度器320将MC用作调度单元。
[0054]全局调度器330将第一循环迭代映射到第一 MC。另外,当第一循环迭代和第二循环迭代之间存在依赖或递归时,全局调度器330调整映射关系以产生预定的循环倾斜(loop skew)。例如,全局调度器330相对于第一循环迭代延时第二循环迭代,随后将经过延时的第二循环迭代映射到第二 MC。第二 MC可被物理地连接到第一循环迭代被映射到的第 一 MC。
[0055]图3中所示的块已根据它们的功能被逻辑地分类。因此,可根据不同的标准对图3中示出的块的功能进行分类。例如,图3中示出的两个或更多个块可被集成到单个块,或者由图3中示出的块之一执行的一部分功能可由图3中示出的其它块中的一个或多个执行。
[0056]图4是用于解释基于MC的循环映射方法的示例的示图。参照图3和图4,由于在循环迭代之间不存在依赖,因此图4中所示的循环映射方法对应于由局部调度器320执行映射的情况。
[0057]在图4中,把将被执行的循环分割为四个执行单元A、B、C和D。每个执行单元可以是指令。为了便于描述,将假设执行单元A、B、C和D是指令。也就是说,循环可以是依次执行指令A、B、C和D的应用程序,并且指令A、B、C和D的顺序执行被迭代执行。[0058]在此示例中,在循环迭代之间不存在依赖。例如,可同时执行第一循环迭代α =
0)的指令B和第二循环迭代(i= I)的指令B。
[0059]参照图3和图4,局部调度器320将第一循环迭代(i = O)映射到MC#0并将第二循环迭代(i = D映射到MC#1。如图4中所示,如果四个MC被配置,则局部调度器320将第五循环迭代(i = 4)映射到MCm并将第六循环迭代(i = 5)映射到MC#1。
[0060]由于基于均能够独立地执行循环迭代的MC来执行图4的示例中的循环调度,因此即使FU的数量增加,也可保证循环调度的效率和可扩展性。
[0061]图5是用于解释基于MC的循环映射方法的另一不例的不图。参照图3和图5,由于在循环迭代之间存在依赖,因此循环映射方法对应于由局部调度器320和全局调度器330两者执行映射的情况。
[0062]在图5中,把将被执行的循环分割为四个执行单元A、B、C和D。每个执行单元可以是指令。为了便于描述,将假设A、B、C和D是指令。也就是说,循环可以是依次执行指令A、B、C和D的应用程序,并且指令A、B、C和D的顺序执行被迭代执行。
[0063]如上所述,在此示例中,在循环迭代之间存在依赖。例如,在指令B的情况下,如果如图5中所示第一循环迭代α = ο)的执行的结果被用作第二循环迭代a = D的输入,则可确定第一循环迭代和第二循环迭代之间存在依赖或递归。图5中的指令之间的带箭头的虚线表示循环间数据传输(即,依赖或递归)。
[0064]参照图3和图5,局部调度器320将第一循环迭代(i = O)映射到MC#0并将第二循环迭代(i = D映射到MC#1。如图5中所示,如果四个MC被配置,则局部调度器320将第五循环迭代(i = 4)映射到MCm并将第六循环迭代(i = 5)映射到MC#1。
[0065]由于在循环迭代之间存在依赖或递归,因此全局调度器330将第二循环迭代(i =
1)延时预定时间(例如,d),随后将延时的第二循环迭代映射到MC#1。此外,全局调度器330将第三循环迭代(i = 2)延时预定时间(例如,2d),随后将延时的第三循环迭代映射到MC#2。此外,全局调度器330将第四循环迭代(i = 3)延时预定时间(例如,3d),随后将延时的第四循环迭代映射到MC#3。可考虑依赖或递归而将预定延时时间定义为合适的值,使得对应递归的写入(writing)被尽可能早地执行,并且对应递归的读取(reading)被尽可能晚地执行。该目的在于使得由于第一循环迭代和第二循环迭代之间的依赖而产生的第二循环迭代的延时时间最小化。
[0066]全局调度器330调整映射关系,使得与递归相关的数据通过MC之间的直接连接被传输。可选择地,全局调度器330可调整映射关系,使得与递归相关的数据通过局部寄存器文件(例如,130a)、全局寄存器文件150或外部存储器(未不出)被传输。
[0067]从图5可知:如果存在依赖或递归,则所有MC在初始阶段之后的稳定状态下进行运算。如果由MC执行的每周期的指令(IPC)的平均数是“k”,则在稳定状态下可执行每周期“kX (MC的数量)”个指令。
[0068]图6A和图6B是示出用于MC之间的通信的结构的示例的示图。在大多数情况下,MC仅将数据传输到它们的邻近MC,因此使用如图6A中所示的环形总线或者使用如图6B中所示的数据队列可获得高可扩展性。然而,当必要时,诸如在相对不寻常的彼此远离的循环迭代之间的数据传输的情况下,可使用全局寄存器文件或外部存储器传输数据。
[0069]图7是示出控制存储器和MC之间的连接结构的示例的示图。在此示例中,MC根据循环调度算法共享相同的控制信息。然而,如果在循环迭代之间存在依赖,则MC以预定时间差进行运算。因此,MC通过连接到控制存储器710并具有用于解释所述时间差的分层结构的子存储器720来共享相同的控制信息。子存储器720的配置不限于任何特定配置,并且子存储器720可包括高速缓存或触发器(flip-flops)。
[0070]图8是示出可重构处理器800的配置的另一示例的示图。参照图8,可重构处理器800包括循环控制器810、电源控制器820和多个微核(MC)。
[0071]图8中所示的循环控制器810和微核之间的直接连接使循环控制器810能够将信号传输到MC,使得每个MC可在预定时间进行运算,并还使已执行最后的循环迭代的MC能够将信号传输到循环控制器810,以终止整个循环的迭代。
[0072]电源控制器820防止电源被施加到一些MC,使得那些MC不进行运算。电源控制器820可根据调度或应用的目的停止任何MC的运算。
[0073]图9是示出用于可重构处理器的调度方法的示例的流程图。参照图3和图9,根据调度方法将FU分组为若干MC(901)。例如,MC配置单元310可将包括在可重构处理器中的多个FU分组为多个MC,每个MC被定义为可独立执行循环迭代的一组FU。
[0074]随后,将每个循环迭代映射到MC(902)。例如,局部调度器320将第一循环迭代映射到第一 MC,并将第二循环迭代映射到第二 MC。
[0075]随后,基于循环迭代之间的依赖调整映射关系(903)。例如,如果在第一循环迭代和第二循环迭代之间存在依赖,则如例如图5中所示,全局调度器330调整映射关系以考虑依赖或递归产生循环倾斜。
[0076]在以上描述的示例中,由于考虑递归而使用MC来调度循环,因此即使在大型系统中,也可实现每周期大量的指令(IPC)和良好的可扩展性。
[0077]可使用一个或多个硬件组件、一个或多个软件组件、或者一个或多个硬件组件和一个或多个软件组件的组合来实现以上描述的调度设备300、MC配置单元310、局部调度器320、全局调度器330、循环控制器810和电源控制器820。
[0078]硬件组件可以是例如物理地执行一个或多个运算的物理装置,但不限于此。硬件组件的示例包括放大器、低通滤波器、高通滤波器、带通滤波器、模数转换器、数模转换器、总线、存储器装置和处理装置。
[0079]可通过例如由软件或指令控制的处理装置实现软件组件以执行一个或多个运算,但不限于此。计算机、控制器或其它控制装置可使处理装置运行软件或执行指令。可通过一个处理装置实现一个软件组件,或者可通过一个处理器装置实现两个或多个软件组件,或者可通过两个或更多个处理装置实现一个软件组件,或者可通过两个或更多个处理装置实现两个或更多个软件组件。
[0080]可使用一个或多个通用或专用计算机(诸如,例如处理器、控制器和算术逻辑单元、数字信号处理器、微计算机、现场可编程门阵列、可编程逻辑单元、微处理器或能够运行软件或执行指令的任何其它装置)实现处理装置。处理装置可运行操作系统(OS),并可运行在OS下操作的一个或多个软件应用。当运行软件或执行指令时,处理装置可访问、存储、操作、处理和创建数据。为简单起见,可在本说明书中使用单数指代“处理装置”,但本领域的普通技术人员将理解,处理装置可包括多个处理元件和多种类型的处理元件。例如,处理装置可包括一个或多个处理器,或包括一个或多个处理器和一个或多个控制器。另外,不同的处理配置是可能的,诸如,并行处理器或多核处理器。
[0081]被配置为实现软件组件以执行运算A的处理装置可包括被编程为运行软件或执行指令以控制处理器执行运算A的处理器。另外,被配置为实现软件组件以执行运算A、运算B和运算C的处理装置可具有多种配置,诸如,例如:被配置为实现软件组件以执行运算A、运算B和运算C的处理器;被配置为实现软件组件以执行运算A的第一处理器、和被配置为实现软件组件以执行运算B和运算C的第二处理器;被配置为实现软件组件以执行运算A和运算B的第一处理器、和被配置为实现软件组件以执行运算C的第二处理器;被配置为实现软件组件以执行运算A的第一处理器、被配置为实现软件组件以执行运算B的第二处理器、和被配置为实现软件组件以执行运算C的第三处理器;被配置为实现软件组件以执行运算A、运算B和运算C的第一处理器、和被配置为实现软件组件以执行运算A、运算B和运算C的第二处理器,或均实现运算A、运算B和运算C中的一个或多个的一个或多个处理器的任何其它配置。虽然这些示例涉及三个运算A、B和C,但可实现的运算的数量不限于三个,而可以是实现期望的结果或执行期望的任务所需的任意数量的运算。
[0082]用于控制处理装置以实现软件组件的软件或指令可包括计算机程序、一段代码、指令或计算机程序、一段代码、指令的某些组合,以独立或共同地指示或配置处理装置执行一个或多个期望的运算。软件或指令可包括可由处理装置直接执行的机器代码(诸如由编译器产生的机器代码)和/或可由处理装置使用解释器执行的更高级的代码。可将软件或指令以及任何相关数据、数据文件和数据结构永久地或暂时地包含在任何类型的机器、组件、物理设备或虚拟设备、计算机存储介质或装置,或者能够向处理装置提供指令或数据或能够由处理装置解释的传播的信号波中。软件或指令以及任何相关数据、数据文件和数据结构还可分布于联网的计算机系统,使得软件或指令以及任何相关数据、数据文件和数据结构以分布式方式被存储和执行。
[0083]例如,可将软件或指令以及任何相关数据、数据文件和数据结构记录、存储或固定在一个或多个非暂时性计算机可读存储介质中。非暂时性计算机可读存储介质可以是能够存储软件或指令以及任何相关数据、数据文件和数据结构的任何数据存储装置,使得它们可被计算机系统或处理装置读取。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘或本领域普通技术人员所知的任何其它非暂时性计算机可读存储介质。
[0084]可由所述示例所属领域里的编程人员基于如在此提供的附图及其对应的描述来容易地构建用于实现在此公开的示例的功能性程序、代码和代码段。
[0085]虽然本公开包括特定示例,但对于本领域的普通技术人员而言清楚的是:在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中做出各种修改。在此描述的示例将被认为仅是描述性的意义,而不是为了限制的目的。每个示例中的特征或方面的描述将被认为是可应用于其它示例中的类似特征或方面。如果以不同的顺序执行描述的技术,并且/或者如果在描述的系统、架构、装置或电路中的组件以不同的方式被组合或被其它组件或它们的等同物所取代或补充,则可实现合适的结果。因此,本公开的范围不是由详细描述来限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围之内的所有改变将被解释为包括在本公开中。
【权利要求】
1.一种基于微核MC的可重构处理器,所述可重构处理器包括: 多个MC,所述多个MC中的每个MC包括一组功能单元FU,所述一组FU具有独立执行循环迭代的能力; 其中,所述多个MC包括: 第一 MC,被配置为执行第一循环迭代; 第二 MC,被配置为执行第二循环迭代。
2.如权利要求1所述的可重构处理器,其中,第二MC还被配置为当在第一循环迭代和第二循环迭代之间存在依赖时,在第一 MC开始执行第一循环迭代之后开始执行第二循环迭代。
3.如权利要求1所述的可重构处理器,其中,所述多个MC中的每个MC的FU是同类的FU0
4.如权利要求1所述的可重构处理器,其中,所述多个MC中的每个MC的FU是不同类的FU。
5.如权利要求1所述的可重构处理器,还包括:外部链路,被配置为将所述多个MC彼此连接; 其中,所述多个MC中的每个MC还包括;内部链路,被配置为将MC的FU彼此连接。
6.一种基于微核MC的调度设备,所述调度设备包括局部调度器,所述局部调度器被配置为: 将第一循环迭代映射到多个MC中的第一 MC ; 将第二循环迭代映射到多个MC中的第二 MC ; 其中,所述多个MC中的每个MC包括一组功能单元FU,所述一组FU具有独立执行循环迭代的能力。
7.如权利要求6所述的调度设备,还包括:全局调度器,被配置为当在第一循环迭代和第二循环迭代之间存在依赖时,调整第一循环迭代和第二循环迭代之间的映射关系以产生循环倾斜。
8.如权利要求7所述的调度设备,其中,全局调度器还被配置为: 相对于第一循环迭代延时第二循环迭代; 将延时的第二循环迭代映射到第二 MC。
9.如权利要求7所述的调度设备,其中,第二MC被物理地连接到第一 MC ; 全局调度器还被配置为: 将第一循环迭代映射到第一 MC ; 相对于第一循环迭代延时第二循环迭代; 将延时的第二循环迭代映射到第二 MC。
10.如权利要求6所述的调度设备,还包括:MC配置单元,被配置为将可重构处理器中的多个FU分组为所述多个MC中的每个MC的一组FU。
11.一种用于基于微核MC的可重构处理器的调度方法,所述可重构处理器包括多个功能单元FU,所述调度方法包括: 将可重构处理器中的FU分组为多个MC,所述多个MC中的每个MC包括一组FU,所述一组FU具有独立执行循环迭代的能力;将第一循环迭代映射到所述多个MC中的第一 MC ; 将第二循环迭代映射到所述多个MC中的第二 MC。
12.如权利要求11所述的调度方法,还包括:当在第一循环迭代和第二循环迭代之间存在依赖时,调整第一循环迭代和第二循环迭代之间的映射关系。
13.如权利要求12所述的调度方法,其中,调整映射关系的步骤包括: 相对于第一循环迭代延时第二循环迭代; 将延时的第二循环迭代映射到第二 MC。
14.如权利要求12所述的调度方法,其中,第二MC被物理地连接到第一 MC ; 调整映射关系的步骤包括: 将第一循环迭代映射到第一 MC ; 相对于第一循环迭代延时第二循环迭代; 将延时的第二循环迭代映射到第二 MC。
15.—种可重构处理器,包括: 多个功能单元FU,具有被重构为多组FU以形成多个微核MC的能力; 其中,所述多组FU中的每组具有独立执行循环迭代的能力; 所述多个MC中的每个MC包括所述多组FU中的相应一组FU ; 所述多个MC中的每个MC被配置为执行多个循环迭代中的不同的循环迭代。
16.如权利要求15所述的可重构处理器,其中,所述多个MC被配置为当在循环迭代之间不存在依赖时,开始同时执行循环迭代中的各个循环迭代。
17.如权利要求15所述的可重构处理器,其中,当在循环迭代之间存在依赖时, 所述多个MC之一被配置为执行循环迭代中的第一循环迭代; 除执行第一循环迭代的MC以外的所述多个MC中的每个MC被配置为在循环迭代中的紧接的前一循环迭代被执行之后的预定时间,开始执行循环迭代中的相应的循环迭代。
18.如权利要求15所述的可重构处理器,其中,多组FU中的每组FU中的FU是同类的FU0
19.如权利要求15所述的可重构处理器,其中,多组FU中的每组FU中的FU是不同类的FU。
20.如权利要求15所述的可重构处理器,还包括具有被重构为外部链路和多个内部链路的能力的多个可重构链路; 其中,外部链路被配置为将所述多个MC彼此连接; 每个内部链路被配置为将所述多个MC中的各个MC的FU彼此连接。
【文档编号】G06F15/16GK103646005SQ201310086205
【公开日】2014年3月19日 申请日期:2013年3月18日 优先权日:2012年3月16日
【发明者】朴海旴, 金元燮 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1