具体实施方式
参照附图,现将在下文中描述一个实施例。如图1中所示,处理器10包括重新配置控制电路11、可编程逻辑电路12、中央处理单元(以下称为CPU)13和存储器接口(图1中的存储器I/F)14,它们通过总线15耦接以便彼此通信。
存储器接口14耦接到存储器100。存储器100是例如动态随机存取存储器(DRAM)。重新配置控制电路11、可编程逻辑电路12和CPU13经由总线15和存储器接口14访问存储器100。
CPU13包括存储器13a。存储器13a是非易失性存储器并且存储CPU13执行的程序数据。CPU13将与可编程逻辑电路12要执行的处理对应的重新配置信息存储在存储器100和可编程逻辑电路12中。CPU13是第一控制电路的一个示例。
重新配置控制电路11控制可编程逻辑电路12的重新配置。重新配置控制电路11可以从存储器100读取重新配置信息并且将重新配置信息设定在可编程逻辑电路12中。此外,重新配置控制电路11可以从可编程逻辑电路12读取重新配置信息并且将重新配置信息设定在可编程逻辑电路12中。重新配置控制电路11是第二控制电路的一个示例。
可编程逻辑电路12根据重新配置信息来配置逻辑电路。可编程逻辑电路12能够配置多个逻辑电路。此外,可编程逻辑电路12能够在一个逻辑电路的操作期间重新配置多个其他逻辑电路。逻辑电路可以包括计算电路。可编程逻辑电路12包括保存重新配置信息的信息保存单元12a。尽管在图1中没有示出,但是可编程逻辑电路12包括多个处理单元。可编程逻辑电路12通过根据重新配置信息耦接一些处理单元来配置逻辑电路。
重新配置信息包括电路配置信息和操作参数。例如,电路配置信息包括指示用于配置逻辑电路的处理单元的单元信息以及指示如何耦接处理单元以及如何耦接处理单元和外部电路的耦接信息。操作参数包括初始值和为逻辑电路提供的设定信息。该设定信息包括例如指示用于每个处理单元执行的处理的数据配置的值(例如,位数目)、每个处理单元中生成的数据量等。
CPU13将电路配置信息设定在存储器100的程序区域102和可编程逻辑电路12的信息保存单元12a中。此外,CPU13将可编程逻辑电路12中使用的操作参数设定在存储器100的程序区域102中。
重新配置控制电路11根据CPU13提供的命令从存储器100的程序区域102读取电路配置信息和操作参数。随后,控制电路11将电路配置信息和操作参数设定在可编程逻辑电路12中。可编程逻辑电路12配置对应于电路配置信息的逻辑电路。所配置的逻辑电路基于操作参数处理从存储器100的数据区域101读取的数据(即,读取数据)并且将经处理的数据(即,写入数据)存储在数据区域101中。当处理完成时,逻辑电路(可编程处理电路12)输出处理完成标志。
响应于从可编程逻辑电路12输出的处理完成标志,重新配置控制电路11从可编程逻辑电路12的信息保存单元12a读取电路配置信息并且还从存储器100的程序区域102读取操作参数。随后,重新配置控制电路11将电路配置信息和操作参数设定在可编程逻辑电路12中。可编程逻辑电路12配置对应于电路配置信息的逻辑电路。基于操作参数,所配置的逻辑电路处理从存储器100的数据区域101读取的数据(即,读取数据)并且将经处理的数据(写入数据)存储在数据区域101中。
图2图示了可编程逻辑电路12的示例,以及重新配置控制电路11、可编程逻辑电路12、CPU13和存储器100之间的各种信号的传送和接收。在图2中,图1中所示的存储器接口14和总线15被省略。
可编程逻辑电路12包括多个(图2中24个)处理单元E01至E24以及耦接单元NU。处理单元E01至E20是例如计算单元。处理单元E21至E24是例如输出接口单元。在下面的描述中,处理单元E01至E20可以被称为“计算单元E01至E20”,并且处理单元E21至E24可以被称为“输出接口单元E21至E24”。
耦接单元NU根据电路配置信息耦接一些处理单元。此外,根据电路配置信息,耦接单元NU将一些处理单元耦接到图1中所示的总线15。例如,如图5中所示,耦接单元NU根据第一电路配置信息耦接处理单元E01、E05、E09、E14、E19和E22。此外,耦接单元NU根据第一电路配置信息将处理单元E01和E22耦接到总线15。
此外,例如,根据第二电路配置信息,耦接单元NU耦接处理单元E02、E10、E13和E21并且还将处理单元E02和E21耦接到总线15。此外,例如,根据第三电路配置信息,耦接单元NU耦接处理单元E03、E06、E11、E15和E23并且还将处理单元E03和E23耦接到总线15。
处理单元E21包括信息保存单元RR1。相似地,处理单元E22至E24分别包括信息保存单元RR2至RR4。每个信息保存单元RR1至RR4是图1中所示的信息保存单元12a的示例。
为了从可编程逻辑电路12输出数据,可编程逻辑电路12中重新配置的每个逻辑电路包括至少一个输出接口单元,并且在本实施例中,包括处理单元E21至E24中的至少之一。
存储器100的程序区域102包括对应于分别包括信息保存单元RR1至RR4的处理单元E21至E24的存储器区域111至114。CPU13将关于可编程逻辑电路12中执行的第一处理的电路配置信息CI1存储在存储器区域111至114中。此外,CPU13将关于包括处理单元E21至E24的各个逻辑电路执行的处理的操作参数EP1和EP2存储在存储器区域111至114中。
此外,CPU13将关于包括处理单元E21至E24的各个逻辑电路执行的后继处理的电路配置信息CI2存储在处理单元E21至E24的信息保存单元RR1至RR4中。
CPU13向重新配置控制电路11提供重新配置控制信号EC1。响应于重新配置控制信号EC1,重新配置控制电路11执行用于在可编程逻辑电路12中执行第一处理的重新配置处理。在重新配置处理中,重新配置控制电路11从每个存储器区域111至114读取电路配置信息CI1并且向可编程逻辑电路12提供电路配置信息CI1。可编程逻辑电路12根据相应的电路配置信息CI1重新配置每个逻辑电路。
接下来,重新配置控制电路11从每个存储器区域111至114读取关于第一处理的操作参数EP1并且向可编程逻辑电路12提供操作参数EP1。随后,可编程逻辑电路12将相应的操作参数EP1设定到每个处理单元E21至E24中。
在完成针对可编程逻辑电路12的重新配置处理时,重新配置控制电路11输出完成标志EFa。响应于来自重新配置控制电路11的完成标志EFa,CPU13向可编程逻辑电路12提供执行控制信号EX1。
响应于执行控制信号EX1,可编程逻辑电路12激活所配置的每个逻辑电路。每个逻辑电路根据相应的操作参数EP1从存储器100的数据区域101读取数据并且基于读取的数据执行给定处理(例如,计算处理)。随后,各个逻辑电路中的每个处理单元E21至E24根据相应的操作参数EP1将经处理的数据存储在存储器100中。
当各个逻辑电路中的处理完成时,处理单元E21至E24输出完成标志EFb1至EFb4。通过接收完成标志EFb1至EFb4,重新配置控制电路11确定各个逻辑电路已完成它们各自的处理。当各个逻辑电路完成处理时,重新配置控制电路11从处理单元E21至E24的信息保存单元RR1至RR4读取关于后继处理的电路配置信息CI2。此外,重新配置控制电路11从每个存储器区域111至114读取关于后继处理的操作参数EP2。随后,重新配置控制电路11向可编程逻辑电路12提供从每个信息保存单元RR1至RR4读取的电路配置信息CI2以及从每个存储器区域111至114读取的操作参数EP2。随后,可编程逻辑电路12根据相应的电路配置信息CI2重新配置每个逻辑电路并且将相应的操作参数EP2设定在每个处理单元E21至E24中。
随后,重新配置控制电路11向可编程逻辑电路12提供执行控制信号EX2。响应于执行控制信号EX2,可编程逻辑电路12激活所配置的每个逻辑电路。每个逻辑电路根据相应的操作参数EP2从存储器100的数据区域101读取数据并且基于读取的数据执行给定处理(例如,计算处理)。随后,各个逻辑电路中的每个处理单元E21至E24根据相应的操作参数EP2将经处理的数据存储在存储器100中。
如上文所述,当各个逻辑电路完成它们各自的处理时从处理单元E21至E24输出完成标志EFb1至EFb4。响应于完成标志EFb1至EFb4,重新配置控制电路11从处理单元E21至E24读取关于后继处理的电路配置信息CI2。此外,响应于完成标志EFb1至EFb4,重新配置控制电路11从分别与处理单元E21至E24对应的存储器区域111至114读取操作参数EP2。随后,重新配置控制电路11向可编程逻辑电路12提供电路配置信息CI2和操作参数EP2并且重新配置可编程逻辑电路12。
因此,即使当可编程逻辑电路12中重新配置的逻辑电路中的一个正在执行处理时,重新配置控制电路11重新配置新的逻辑电路并且允许新的逻辑电路执行后继处理。因此,较之在可编程逻辑电路12中重新配置的所有逻辑电路完成它们各自的处理之后重新配置用于后继处理的新的逻辑电路的情况,可以有效地使用可编程逻辑电路12中的处理单元。这可以减少连续执行的处理中的等待时间并且缩短可编程逻辑电路12中的总处理时间。
图3图示了重新配置控制电路11以及处理单元E21至E24(输出接口单元E21至E24)的示例。输出接口单元E21至E24彼此相同。因此,现将说明输出接口单元E21的结构,并且省略了输出接口单元E22至E24的说明部分。此外,在图3中,省略了输出接口单元E22至E24中包括的部件以及图1中所示的存储器接口14和总线15。
输出接口单元E21包括第一至第三寄存器31至33、数据控制单元34和接口控制单元35。第一和第二寄存器31和32存储输出接口单元E21的操作参数。例如,第一寄存器31中存储的操作参数指示输出大小OS,并且第二寄存器32中存储的操作参数指示输出地址OA。输出大小OS对应于在每个传输处理中传输到存储器100的数据量。输出地址OA指定写入数据的区域。第三寄存器33存储电路配置信息CI2。每个第一至第三寄存器31至33是图2中所示的信息保存单元RR1的示例。尽管没有示出,但是每个输出接口单元E22至E24也包括第一至第三寄存器31至33。输出接口单元E22的每个寄存器31至33是信息保存单元RR2的示例。输出接口单元E23的每个寄存器31至33是信息保存单元RR3的示例。输出接口单元E24的每个寄存器31至33是信息保存单元RR4的示例。
从耦接到输出接口单元E21的处理单元输出的数据SD1被提供给数据控制单元34。数据控制单元34监视输出数据SD1的数量并且向接口控制单元35提供指示初始数据到达的控制信号。当输出数据SD1的数量达到输出大小OS时,数据控制单元34向接口控制单元35提供指示处理完成的控制信号。
基于从数据控制单元34提供的控制信号、第一寄存器31中存储的输出大小OS和第二寄存器32中存储的输出地址OA,接口控制单元35向存储器100传输数据控制单元34中保存的输出数据D0。因此,输出数据D0被存储在输出地址OA指定的存储器100的数据区域101中。
在将输出数据D0传输到存储器100时,接口控制单元35输出完成标志EFb1。相似地,在将根据输出数据SD2至SD4的输出数据D1至D3传输到存储器100时,输出接口单元E22至E24的各个接口控制单元分别输出完成标志EFb2至EFb4。
重新配置电路11包括电路重新配置控制单元21、输出选择单元22、信息选择单元23和地址控制单元24。基于完成标志EFb1至EFb4,地址控制单元24确定用于访问对应于输出接口单元E21至E24的存储器区域111至114的地址。可编程逻辑电路12中执行的每个处理中使用的输出接口单元和处理的顺序被预先确定。例如,指针根据可编程逻辑电路12中执行的处理而移位,并且基于该指针和完成标志EFb1至EFb4确定地址。随后,地址控制单元24将所确定的地址提供给存储器100。基于地址控制单元24提供的地址,存储器100从存储器区域111至114中的对应的一个存储器区域读取操作参数EP2。
信息选择单元23基于完成标志EFb1至EFb4从输出接口单元E21至E24的各个第三寄存器33读取电路配置信息。例如,信息选择单元23基于完成标志EFb1从输出接口单元E21的第三寄存器33读取电路配置信息CI21。相似地,基于完成标志EFb2至EFb4,信息选择单元23从输出接口单元E22至E24的各个第三寄存器33分别读取电路配置信息CI22至CI24。随后,信息选择单元23向电路重新配置控制单元21提供电路配置信息。在图3中,“CI2”指示电路配置信息CI21至CI24中的一个。相似地,“EP2”指示操作参数EP21至EP24中的一个。
电路配置控制单元21向输出选择单元22提供电路配置信息CI2和操作参数EP2。输出选择单元22向可编程逻辑电路12提供电路配置信息CI2。可编程逻辑电路12配置与电路配置信息CI2对应的逻辑电路。此外,输出选择单元22将操作参数EP2设定在基于电路配置信息CI2接下来要配置的逻辑电路的处理单元中。
例如,基于电路配置信息CI2接下来要配置的逻辑电路包括输出接口单元E21。在该情况下,输出选择单元22将操作参数EP21设定在输出接口单元E21的第一和第二寄存器31和32中的每个中。相似地,在接下来要配置的逻辑电路包括输出接口单元E22的情况下,输出选择单元22将操作参数EP22设定在输出接口单元E22的第一和第二寄存器31和32中的每个中。相似地,在接下来要配置的逻辑电路包括输出接口单元E23或E24的情况下,输出选择单元22将操作参数EP23设定在输出接口单元E23的第一和第二寄存器31和32中的每个中。
因此,基于电路配置信息CI2和操作参数EP2,重新配置控制电路11控制执行后继处理的逻辑电路的重新配置。电路配置信息CI2包括用于指定要重新配置的逻辑电路中包括的处理单元的信息(单元编号)。重新配置控制电路11向可编程逻辑电路12提供电路配置信息CI2。此外,重新配置控制电路11将操作参数EP2设定在可编程逻辑电路12中重新配置的逻辑电路中包括的处理单元中。
接下来,现将描述可编程逻辑电路12中的重新配置处理的流程。如图8中所示,在步骤201中,CPU13将电路配置信息和操作参数设定在可编程逻辑电路12和存储器100中。随后,CPU13输出重新配置控制信号EC1。
接下来,在步骤202中,重新配置控制电路11响应于重新配置控制信号EC1重新配置可编程逻辑电路12并且输出完成标志EFa。响应于完成标志EFa,CPU13输出执行控制信号EX1以激活可编程逻辑电路12。
接下来,在步骤203中,重新配置控制电路11确定是否接收到完成标志EFb1至EFb4。当没有输出完成标志EFb1至EFb4时,重新配置控制电路11重复步骤203。当输出任何完成标志EFb1至EFb4时,重新配置控制电路11执行步骤204。
在步骤204,重新配置控制电路11识别已输出完成标志的输出接口单元的单元编号并且根据所识别的单元编号执行步骤205a至205d。例如,当输出接口单元E21已输出完成标志EFb1时,重新配置控制电路11执行步骤205a。相似地,当输出接口单元E22至E24已输出完成标志EFb2至EFb4时,重新配置控制电路11分别执行步骤205b至205d。
在步骤205a中,重新配置控制电路11基于从处理单元E21(输出接口单元E21)的寄存器33读取的电路配置信息CI21和根据完成标志EFb1从存储器区域111读取的操作参数EP21重新配置可编程逻辑电路12。随后,重新配置控制电路11激活在可编程逻辑电路12中重新配置的逻辑电路。
在步骤205b中,重新配置控制电路11基于从处理单元E22(输出接口单元E22)的寄存器33读取的电路配置信息CI22和根据完成标志EFb2从存储器区域112读取的操作参数EP22重新配置可编程逻辑电路12。随后,重新配置控制电路11激活在可编程逻辑电路12中重新配置的逻辑电路。
在步骤205c中,重新配置控制电路11基于从处理单元E23(输出接口单元E23)的寄存器33读取的电路配置信息CI23和根据完成标志EFb3从存储器区域113读取的操作参数EP23重新配置可编程逻辑电路12。随后,重新配置控制电路11激活在可编程逻辑电路12中重新配置的逻辑电路。
在步骤205d中,重新配置控制电路11基于从处理单元E24(输出接口单元E24)的寄存器33读取的电路配置信息CI24和根据完成标志EFb4从存储器区域114读取的操作参数EP24重新配置可编程逻辑电路12。随后,重新配置控制电路11激活在可编程逻辑电路12中重新配置的逻辑电路。
接下来,在步骤206中,重新配置控制电路11确定重新配置的所有逻辑电路是否已完成它们各自的处理,就是说,逻辑电路是否已输出各自的完成标志。当存在未完成它们的处理的任何逻辑电路时,重新配置控制电路11再次执行步骤203。当所有逻辑电路完成它们的处理时,图8中的重新配置处理结束。
接下来,现将描述在可编程逻辑电路12中执行的处理的示例。如图4A中所示,处理A0包括处理A1、处理A2和处理A3。例如,在处理A1中,可编程逻辑电路12从图1中所示的存储器100的数据区域101读取数据,对数据进行处理,并且将经处理的数据存储到数据区域101中。在处理A2中,可编程逻辑电路12读取处理A1存储在数据区域101中的数据,对数据进行处理,并且将经处理的数据存储到数据区域101中。在处理A3中,可编程逻辑电路12读取处理A2存储在数据区域101中的数据,对数据进行处理,并且将经处理的数据存储到数据区域101中。因此,在处理A0中,处理A1被首先处理,接下来处理A2被处理,并且处理A3被最后处理。
如图4B中所示,处理B0包括处理B1和处理B2。例如,在处理B1中,可编程逻辑电路12从图1中所示的存储器100的数据区域101读取数据,对数据进行处理,并且将经处理的数据存储到数据区域101中。在处理B2中,可编程逻辑电路12读取处理B1存储在数据区域101中的数据,对数据进行处理,并且将经处理的数据存储到数据区域101中。因此,在处理B0中,处理B1被首先处理,并且随后,处理B2被处理。
如图4C中所示,处理C0包括处理C1。例如,在处理C1中,可编程逻辑电路12从图1中所示的存储器100的数据区域101读取数据,对数据进行处理,并且将经处理的数据存储到数据区域101中。
处理A0(处理A1至A3)、处理B0(处理B1和B2)和处理C0(处理C1)均是计算处理。在以下描述中,处理A0(处理A1至A3)、处理B0(处理B1和B2)和处理C0(处理C1)可以被分别称为计算A0(A1至A3)、计算B0(B1、B2)和计算C0(C1)。
接下来,现将描述根据重新配置信息在可编程逻辑电路12中配置的逻辑电路的示例。这里,现将描述执行图4A至4C中所示的处理的逻辑电路。
如图5中所示,执行图4A中所示的处理A1的逻辑电路由例如处理单元E02、E10、E13和E21构成。对应于处理A1的重新配置信息(电路配置信息)包括处理单元E02、E10、E13和E21的单元编号以及用于耦接这些处理单元的耦接信息。处理A1中使用的数据DIa1被提供给处理单元E02。处理单元E21输出数据DOa1作为处理A1的结果。
如图5中所示,执行图4B中所示的处理B1的逻辑电路由例如处理单元E01、E05、E14、E19和E22构成。对应于处理B1的重新配置信息(电路配置信息)包括处理单元E01、E05、E14、E19和E22的单元编号以及用于耦接这些处理单元的耦接信息。处理B1中使用的数据DIb1被提供给处理单元E01。处理单元E22输出数据DOb1作为处理B1的结果。
如图5中所示,执行图4C中所示的处理C1的逻辑电路由例如处理单元E03、E06、E11、E15和E23构成。对应于处理C1的重新配置信息(电路配置信息)包括处理单元E03、E06、E11、E15和E23的单元编号以及用于耦接这些处理单元的耦接信息。处理C1中使用的数据DIc1被提供给处理单元E03。处理单元E23输出数据DOc1作为处理C1的结果。
如图6中所示,执行图4A中所示的处理A2的逻辑电路由例如处理单元E02、E08、E10、E13和E21构成。对应于处理A2的重新配置信息(电路配置信息)包括处理单元E02、E08、E10、E13和E21的单元编号以及用于耦接这些处理单元的耦接信息。处理A2中使用的数据DIa2被提供给处理单元E02。处理单元E21输出数据DOa2作为处理A2的结果。
如图6中所示,执行图4B中所示的处理B2的逻辑电路由例如处理单元E01、E09、E14、E19和E22构成。对应于处理B2的重新配置信息(电路配置信息)包括处理单元E01、E09、E14、E19和E22的单元编号以及用于耦接这些处理单元的耦接信息。处理B2中使用的数据Dib2被提供给处理单元E01。处理单元E22输出数据Dob2作为处理B2的结果。
如图7中所示,执行图4A中所示的处理A3的逻辑电路由例如处理单元E03、E07、E12、E19和E23构成。对应于处理A3的重新配置信息(电路配置信息)包括处理单元E03、E07、E12、E19和E23的单元编号以及用于耦接这些处理单元的耦接信息。处理A3中使用的数据DIa3被提供给处理单元E03。处理单元E23输出数据DOa3作为处理A3的结果。
接下来,现将描述图8中所示的步骤201(电路配置信息和操作参数的设定)中执行的处理的示例。步骤201包括图9中所示的步骤221至223。
在步骤221中,CPU13设定对应于图4A中所示的处理A0的重新配置信息。首先在步骤221a中,CPU13将用于计算A1的电路配置信息和操作参数设定在存储器100中。CPU13将用于计算A2的电路配置信息设定在执行计算A1的逻辑电路中使用的输出接口单元E21的寄存器33中。接下来,在步骤221b中,CPU13将用于计算A2的操作参数设定在存储器100中。此外,CPU13将用于计算A3的电路配置信息设定在执行计算A1的逻辑电路中使用的输出接口单元E21的寄存器33中。接下来,在步骤221c中,CPU13将用于计算A3的操作参数设定在存储器100中。此外,CPU13将“接下来没有要执行的处理”作为电路配置信息设定在执行计算A3的逻辑电路中使用的输出接口单元E23的寄存器33中。
接下来,在步骤222中,CPU13设定对应于图4B中所示的处理B0的重新配置信息。首先在步骤222a中,CPU13将用于计算B1的电路配置信息和操作参数设定在存储器100中。CPU13将用于计算B2的电路配置信息设定在执行计算B1的逻辑电路中使用的输出接口单元E22的寄存器33中。接下来,在步骤222b中,CPU13将用于计算B2的操作参数设定在存储器100中。此外,CPU13将“接下来没有要执行的处理”作为电路配置信息设定在执行计算B2的逻辑电路中使用的输出接口单元E22的寄存器33中。
接下来,在步骤223中,CPU13设定对应于图4C中所示的处理C0的重新配置信息。首先在步骤223a中,CPU13将用于计算C1的电路配置信息和操作参数设定在存储器100中。此外,CPU13将“接下来没有要执行的处理”作为电路配置信息设定在执行计算C1的逻辑电路中使用的输出接口单元E23的寄存器33中。
接下来,现将描述在图8中所示的步骤205a至205d中执行的处理的示例。步骤205a至205d中的处理彼此相同。这里,现将说明步骤205a中的处理。
图8中所示的步骤205a包括图10中所示的步骤231至237。在步骤231中,重新配置控制电路11从输出接口单元E21的寄存器33获得用于接下来要配置的逻辑电路的电路配置信息。在步骤232中,重新配置控制电路11确定电路配置信息是否指示“接下来没有要执行的处理”。当电路配置信息指示“接下来没有要执行的处理”时,步骤205a中的处理结束。当电路配置信息没有指示“接下来没有要执行的处理”(即存在后继处理)时,重新配置控制电路11前往步骤233。
在步骤233中,重新配置控制电路11将电路配置信息设定在可编程逻辑电路12中。因此,配置了新的逻辑电路。
接下来,在步骤234中,重新配置控制电路11从图3中所示的存储器区域111获得操作参数。随后,在步骤235中,重新配置控制电路11将操作参数设定在步骤S233中配置的逻辑电路的输出接口单元的每个寄存器31和32中。
接下来,在步骤236中,重新配置控制电路11将用于接下来要配置的逻辑电路的电路配置信息存储在步骤233中配置的逻辑电路的输出接口单元的寄存器33中。
例如,可编程逻辑电路12执行的处理由通过执行n(1≦n)次的重新配置处理依次配置的多个逻辑电路执行。在该情况下,例如在步骤233中,通过第m(1≦m<n)次重新配置处理来配置逻辑电路。在步骤236中,第(m+1)次重新配置处理中及其之后使用的电路配置信息被存储在通过第m次重新配置处理配置的逻辑电路(输出接口单元)的寄存器33中。
接下来,在步骤237中,重新配置控制电路11指令在步骤233中配置的逻辑电路(处理单元)执行处理。
接下来,现将描述处理器10的操作。
如图11A中所示,CPU13输出重新配置控制信号EC1。响应于重新配置控制信号EC1,重新配置控制电路11将用于处理A1、B1和C1的重新配置信息设定在可编程逻辑电路12中。可编程逻辑电路12配置对应于根据处理A1的重新配置信息的逻辑电路、对应于根据处理B1的重新配置信息的逻辑电路、以及对应于根据处理C1的重新配置信息的逻辑电路。随后,CPU13输出执行控制信号EX1。可编程逻辑电路12中配置的三个逻辑电路执行各自的处理A1、B1和C1。
首先,当处理A1完成时,重新配置控制电路11将根据后继处理A2的重新配置信息设定在可编程逻辑电路12中。可编程逻辑电路12新配置对应于根据处理A2的重新配置信息的逻辑电路。随后,重新配置控制电路11输出执行控制信号EX2。可编程逻辑电路12中新配置的逻辑电路响应于执行控制信号EX2执行处理A2。
这里,当处理A1完成时,处理B1和C1正被执行。就是说,即使当处理B1和C1正被执行时,仍配置用于后继处理A2的逻辑电路并且开始处理A2。
接下来,当处理B1完成时,重新配置控制电路11将根据后继处理B2的重新配置信息设定在可编程逻辑电路12中。可编程逻辑电路12新配置对应于根据处理B2的配置信息的逻辑电路。随后,重新配置控制电路11输出执行控制信号EX2。可编程逻辑电路12中新配置的逻辑控制电路响应于执行控制信号EX2执行处理B2。这里,当处理B1完成时,处理C1正被执行。因此,即使当处理C1正被执行时,仍配置用于后继处理B2的逻辑电路并且开始处理A2。此外,即使当用于处理B2的逻辑电路正被配置时,仍开始处理A2。
接下来,当处理C1完成时,重新配置控制电路11确定在处理C1之后没有要处理的处理,并且完成与处理C0相关的处理。
接下来,当处理A2完成时,重新配置控制电路11将根据后继处理A3的重新配置信息设定在可编程逻辑电路12中。可编程逻辑电路12新配置对应于根据处理A3的重新配置信息的逻辑电路。随后,重新配置控制电路11输出执行控制信号EX2。可编程逻辑电路12中新配置的逻辑电路响应于执行控制信号EX2执行处理A3。
接下来,现将描述比较示例。在比较示例中,CPU管理与多个处理相关的重新配置信息的设定。在以下描述中,与上述实施例相同的部件由相同的名称和符号表示。
如图11B中所示,CPU13输出重新配置控制信号EC1。响应于重新配置控制信号EC1,重新配置控制电路11将根据处理A1、B1和C1的重新配置信息设定在可编程逻辑电路12中。可编程逻辑电路12配置对应于根据处理A1的重新配置信息的逻辑电路、对应于根据处理B1的重新配置信息的逻辑电路、以及对应于根据处理C1的重新配置信息的逻辑电路。随后,CPU13输出执行控制信号EX1。可编程逻辑电路12中配置的三个逻辑电路执行它们各自的处理A1、B1和C1。
首先,处理A1完成,随后处理B1完成,并且最后处理C1完成。当处理C1完成时,可编程逻辑电路12中的所有处理完成。随后,CPU13输出重新配置控制信号EC1,并且重新配置控制电路11将根据后继处理A2和B2的重新配置信息设定在可编程逻辑电路12中。可编程逻辑电路12配置对应于根据处理A2的重新配置信息的逻辑电路和对应于根据处理B2的重新配置信息的逻辑电路。随后,CPU13输出执行控制信号EX1。可编程逻辑电路12中配置的两个逻辑电路执行各自的处理A2和B2。
随后,处理A2首先完成。随后,处理B2完成。当处理B2完成时,CPU13输出重新配置控制信号EC1,并且重新配置控制电路11将根据后继处理A3的重新配置信息设定在在可编程逻辑电路12中。可编程逻辑电路12配置对应于根据处理A3的重新配置信息的逻辑电路。随后,CPU13输出执行控制信号EX1。可编程逻辑电路12中配置的逻辑电路执行处理A3。接下来,当处理A3完成时,所有处理完成。
如上文所述,在图11A中所示的本实施例中,较之图11B中所示的比较示例,执行处理A0(处理A1至A3)和处理B0(处理B1和B2)所需的时间缩短。因此,在根据本实施例的处理器10中,较之比较示例,处理时间可以缩短。
本实施例具有下述优点。
(1)可编程逻辑电路12包括多个处理单元E01至E24。每个处理单元E01至E20是例如计算单元。每个处理单元E21至E24是输出接口单元。处理单元E21至E24分别包括信息保存单元RR1至RR4。
CPU13将根据第一处理的电路配置信息CI1以及用于执行第一处理的操作参数EP1和EP2存储在存储器100的程序区域102中。此外,CPU13将根据第二处理的电路配置信息CI2以及根据后继处理的电路配置信息存储在用于第一处理的处理单元E21至E24的各个信息保存单元RR1至RR4中。在从可编程逻辑电路12接收到完成标志EFb1至EFb4时,重新配置控制电路11确定处理单元E21至E24已完成它们的处理。当处理单元E21至E24完成它们的处理时,重新配置控制电路11从处理单元E21至E24的信息保存单元RR1至RR4获得电路配置信息CI2。随后,重新配置控制电路11将电路配置信息CI2设定在可编程逻辑电路12中。
根据该结构,例如,当处理A1完成时,即使处理B1和C1正被执行,重新配置控制电路11读取根据后继处理A2的电路配置信息,并且控制可编程逻辑电路12以便重新配置与电路配置信息CI2对应的逻辑电路。因此,在不等待处理B1和C完成的情况下,可以开始后继处理A2。因此,可以缩短处理时间。
(2)处理单元E01至E24中的处理单元E21至E24用作输出经处理的数据的输出接口单元E21至E24。输出接口单元E21至E24分别包括用于保存电路配置信息的信息保存单元RR1至RR4。在该结构中,电路配置信息被存储在可编程逻辑电路12中重新配置的逻辑电路的信息保存单元(输出接口单元)中。因此,在逻辑电路中完成第一处理时,重新配置控制电路11可以容易地获得用于后继处理的电路配置信息。
本领域技术人员应理解,在不偏离本发明的范围的情况下,以上实施例可以通过许多其他的具体形式实施。特别地,应理解,以上实施例可以同如下方式实施。
在上述实施例中,可编程逻辑电路12中执行的处理A0至C0中使用的数据是从存储器100读取的,但是它们也可以从外部设备提供。
在上述实施例中,可编程逻辑电路12将经处理的数据存储在存储器100中,但是可以将它们存储在外部设备中。
在上述实施例中,可编程逻辑电路12可以将同一处理重复不止一次。例如,在图11A中,在不止一次执行处理A1之后,可以执行处理A2。
在图11A中所示的实施例中,可编程逻辑电路12首先执行处理A1、B1和C1。然而,如果需要,可以改变开始处理的时序。例如,在执行三个处理A、B和C的情况下,可以首先执行处理A,并且随后响应于处理A的完成执行处理A和B。此外,响应于处理A和B的完成,可以执行处理A和C。通过这种方式,可以实现流水线处理。
在上述实施例中,用于保存电路配置信息的信息保存单元(寄存器33)包括在输出接口单元E21至E24中,但是可以包括在其他处理单元E01至E20中。
这里记载的所有示例和条件语言旨在用于教导目的,以协助读者理解本发明的原理以及发明人为发展本领域而贡献的概念,并且应被解释为没有对这些具体记载的示例和条件构成限制,说明书中的这些示例的组织并非涉及展示本发明的优越或低下。尽管详细描述了本发明的实施例,但是应当理解,在不偏离本发明的精神和范围的情况下可以对其进行各种改变、替换和变更。