可重构处理器、代码转换设备及其代码转换方法与流程

文档序号:14257772阅读:240来源:国知局
可重构处理器、代码转换设备及其代码转换方法与流程

技术领域

以下描述涉及一种可重构处理器及其编译器。



背景技术:

通常,可重构架构表示可改变计算设备的硬件配置从而将其优化用于特殊任务的架构。

由于硬件的固定的功能,仅硬件地处理特定任务难以有效地处理在任务的处理期间进行的修改或改变,而仅软件地处理特定任务可容易地处理在任务的处理期间进行的修改或改变,然而,这样导致与硬件地处理任务相比低的处理速度。

已经设计出可重构架构以获得这样的硬件处理和软件处理的所有优点。具体地说,在迭代执行相同任务的数字信号处理领域,可重构架构已经吸引了诸多注意。

代表性的可重构架构是粗粒度阵列(CGA)。CGA由多个处理单元组成,并可通过改变处理单元之间的连接来被优化用于特殊任务。

同时,最近,已经引入了CGA的特定处理单元被用作超长指令字(VLIW)机的可重构架构。通常,具有CGA模式和VLIW模式的可重构架构在CGA模式下处理相同操作被迭代执行的循环,并且在VLIW模式下处理除这样的循环操作以外的一般操作。



技术实现要素:

在一个总体方面,提供了一种可重构处理器,该可重构处理器包括处理器,其中,所述处理器包括多个功能单元(FU),并具有作为执行模式的基于第一FU组的超长指令字(VLIW)模式、基于第二FU组的所有FU的第一粗粒度阵列(CGA)模式以及基于第二FU组的预定FU的第二CGA模式。

可重构处理器还可包括:配置存储器,被配置为存储用于VLIW模式、第一CGA模式和第二CGA模式的配置信息;解码器,被配置为接收预定模式转换信号,根据预定模式转换信号选择/转换存储在配置存储器中的一条配置信息,并将选择/转换的配置信息传送到处理器。

配置存储器还可包括:电源,被配置为使在没有当前模式下操作的一个或多个FU断电。

在另一总体方面,提供了一种用于可重构处理器的代码转换设备,所述可重构处理器包括多个功能单元(FU),并具有作为执行模式的基于第一FU组的超长指令字(VLIW)模式、基于第二FU组的所有FU的第一粗粒度阵列(CGA)模式以及基于第二FU组的预定FU的第二CGA模式,所述代码转换设备包括:硬件信息提供器,被配置为选择性地提供VLIW硬件信息、第一CGA硬件信息和第二CGA硬件信息中的一个,其中,VLIW硬件信息是关于第一FU组的硬件信息,第一CGA硬件信息是关于第二FU组的所有FU的硬件信息,第二CGA硬件信息是关于第二FU组的预定FU的硬件信息;编译单元,被配置为根据硬件信息提供器提供的硬件信息编译代码。

在另一总体方面,提供了一种用于可重构处理器的代码转换方法,所述可重构处理器包括多个功能单元(FU),并具有作为执行模式的基于第一FU组的超长指令字(VLIW)模式、基于第二FU组的所有FU的第一粗粒度阵列(CGA)模式以及基于第二FU组的预定FU的第二CGA模式,所述代码转换方法包括:提供VLIW硬件信息、第一CGA硬件信息和第二CGA硬件信息中的一个,其中,VLIW硬件信息是关于第一FU组的硬件信息,第一CGA硬件信息是关于第二FU组的所有FU的硬件信息,第二CGA硬件信息是关于第二FU组的预定FU的硬件信息;根据提供的硬件信息编译代码。

从下面的详细描述、附图和权利要求中其它特征和方面将变得清楚。

附图说明

图1是示出可重构处理器的示例的示图。

图2示出配置存储器的示例。

图3示出解码器的配置示例。

图4是示出可重构处理器的模式转换方法的示例的流程图。

图5是示出可重构处理器的模式转换方法的另一示例的流程图。

图6是用于解释用于第一粗粒度阵列(CGA)模式和第二CGA模式之间的模式转换的方法的示图。

图7是示出用于可重构处理器的代码转换设备的示例的示图。

贯穿附图和详细描述,除非另外描述,否则相同附图标号应被理解为表示相同元件、特征和结构。为了清楚、说明和方便,可夸大这些元件的相对大小和描绘。

具体实施方式

提供以下描述以帮助读者获得对这里描述的方法、设备和/或系统的充分理解。因此,这里描述的方法、设备和/或系统的各种改变、修改和等同物将被建议给本领域的普通技术人员。此外,为了增加清楚和简洁,可省略对公知功能和结构的描述。

图1是示出可重构处理器100的示例的示图。

参照图1,可重构处理器100包括处理器101、配置存储器102和解码器103,并还可包括控制器104和全局寄存器文件(GRF)105。

处理器101包括多个功能单元(在下文,被称为FU)。每个FU可包括:处理元件(PE),用于执行各种算术或逻辑运算;局部寄存器文件(LRF),用于存储运算的结果等。FU的数量不受限制并且取决于应用的目的。

处理器101具有两种执行模式:超长指令字(VLIW)模式和粗粒度阵列(CGA)模式。在VLIW模式下,处理器101基于第一FU组执行操作。例如,在VLIW模式下,存储在配置存储器102或单独VLIW存储器(未示出)中的VLIW指令可被传送到属于第一FU组110的FU0至FU3,并且各个FU0至FU3可执行VLIW指令。在CGA模式下,处理器101基于第二FU组执行操作。例如,在CGA模式下,存储在配置存储器102中的CGA指令可被传送到属于第二FU组120的FU0至FU15,并且各个FU0至FU15可执行CGA指令。这里,FU0至FU3被用于VLIW模式和CGA模式两者。然而,用于VLIW的单独FU还可被配置。此外,可提供用于VLIW指令的单独VLIW存储器。全局寄存器文件105可在模式转换时临时存储内部(Live-in)/外部(Live-out)数据。

处理器101可在CGA模式下处理诸如循环的迭代操作,并可在VLIW模式下处理其它操作。例如,当在VLIW模式下执行操作系统(OS)的同时从控制器104产生模式转换信号时,响应于模式转换信号将上下文信息存储在全局寄存器文件105中,然后在CGA模式下执行循环操作。之后,当循环操作被终止时,所述处理再次进入VLIW模式,并且存储在全局寄存器文件105中的上下文信息返回。

处理器101的CGA模式可被划分为多个子CGA模式。例如,CGA模式可包括使用第二FU组120的所有FU的第一CGA模式、使用第二FU组120的预定FU(例如,121)的第二CGA模式。此外,CGA模式还可包括使用第二FU组120的与FU121不同的FU的第三CGA模式。这里,与第三CGA模式相应的FU可与FU121完全不同或包括FU121中的一部分。第一CGA模式可被称为M×N模式,第二模式可被称为K×L模式(M×N>K×L)。

配置存储器102可存储用于处理器101的每个执行模式的配置信息。配置信息可包括关于将被各个FU处理的指令的信息和关于FU之间的连接关系的信息。换句话说,处理器101的硬件配置可根据配置信息而改变。

配置存储器102可存储用于第一CGA模式的第一CGA配置信息和用于第二CGA模式的第二CGA配置信息。配置存储器102可将第一CGA配置信息和第二CGA配置信息存储在不同的存储器区域中。第二CGA配置信息可具有比第一CGA配置信息小的容量,其中,第二CGA配置信息是用于第二FU组120的预定FU的配置信息。

解码器103可从控制器104接收模式转换信号,并将存储在配置存储器102中的相应模式的配置信息传送到处理器101。例如,解码器103在第一CGA模式下将第一CGA配置信息本身传送到处理器101,并在第二CGA模式下转换第二CGA配置信息并将转换后的第二CGA配置信息传送到处理器101。在转换第二CGA配置信息时,解码器103可将第二CGA配置信息中的没有映射到第二FU组120的FU121的配置信息转换为预定值。例如,当仅有四个FU(即,FU9、FU10、FU13和FU14)121在第二CGA模式下操作时,解码器103可将被传送到剩余FU的配置信息改变为默认值。

根据另一方面,控制器104可包括用于使没有在当前模式下操作的FU断电的电源(未示出)。可选地,电源可使配置存储器102中的存储第二CGA配置信息的存储器区域断电。

根据另一方面,可重构处理器100可通过VLIW模式执行第一CGA模式和第二CGA模式之间的转换。

图2示出配置存储器200的示例。

参照图2,配置存储器200可包括第一区域201和第二区域202。第一区域201可存储第一CGA配置信息,第二区域202可存储第二CGA配置信息。如上所述,已知第二CGA配置信息具有比第一CGA配置信息小的容量。换句话说,第二CGA配置信息可被划分为有效部分210和无效部分220。映射到有效部分210的FU可以是在第二CGA模式下操作的FU。

根据一个方面,在第二CGA模式下,控制器(图1的104)使无效部分220断电。

图3示出解码器300的配置示例。

参照图3,解码器300可包括多个转换器301。每个转换器301的输入端被连接到配置存储器(例如,图1的102)的输出端,并且每个转换器301的输出端可被连接到相应FU的输入端。

根据一方面,解码器300可根据当前模式适当地转换配置存储器102的配置。例如,每个转换器301可将第一CGA配置信息本身传送到相应FU,并将没有在第二CGA配置信息中使用的部分转换为默认值(例如,“0”),并将所述默认值传送到所述相应FU。

图4是示出可重构处理器的模式转换方法的示例的流程图。模式转换方法可以是用于从VLIW模式转换为CGA模式的示例。

参照图1至图4,响应于CGA模式转换信号,在多个子CGA模式中选择一个子CGA模式(401)。例如,可选择如上所述的第一CGA模式(M×N模式)或第二CGA模式(K×L模式)。然后,根据选择的子CGA模式调节存储器保持力(memory retention)(402)。例如,响应于CGA模式转换信号激活配置存储器102,如果选择第二CGA模式,则使预定存储器区域(例如,图2的220)断电。接着,使除与选择的子CGA模式相应的FU(例如,120或121)以外的FU断电(403)。例如,可使将配置存储器102连接至处理器101的相应FU的隔离单元断电。然后,执行选择的子CGA模式(404)。

图5是示出可重构处理器的模式转换方法的另一示例的流程图。模式转换方法可以是用于从CGA模式转换为VLIW模式的示例。

参照图1和图5,响应于VLIW模式转换信号,将上下文存储在全局寄存器文件105中(501)。上下文可包含CGA模式的执行结果。然后,使除与VLIW模式相应的FU以外的FU断电(502)。例如,可使除第一FU组110以外的剩余FU断电。接着,使除与VLIW模式相应的配置存储器102的区域以外的区域失活(503)。例如,如果提供单独VLIW存储器(未示出),则可在保持配置存储器102的同时从VLIW存储器取得VLIW指令。然后,执行VLIW模式(504)。

图6是用于解释用于第一CGA模式和第二CGA模式之间的模式转换的方法的示图。

参照图6,OS可被映射到VLIW模式600a、600b和600c,音频数据的处理可被映射到2×2CGA模式601,视频数据的处理可被映射到3×3CGA模式602。在2×2CGA模式601下,2×2FU610可根据第二CGA配置信息630处理音频数据。此时,剩余FU620处于失活状态。在音频数据的处理被终止之后,处理进入VLIW模式600b,并且3×3CGA模式602被调用。在3×3CGA模式602下,3×3FU650可根据第一CGA配置信息640处理视频数据。此时,第二CGA配置信息630可处于失活状态。

图7是示出用于可重构处理器的代码转换设备700的示例的示图。代码转换设备700可以是包括在图1的可重构处理器100中的编译器的示例。

参照图1和图7,代码转换设备700可包括硬件信息提供器701和编译单元702。

硬件信息提供器701选择性地提供VLIW硬件信息、第一CGA硬件信息和第二CGA硬件信息中的一个,其中,VLIW硬件信息是关于第一FU组110的硬件信息,第一CGA硬件信息是关于第二FU组120的所有FU的硬件信息,第二CGA硬件信息是关于第二FU组120的预定FU(例如,121)的硬件信息。例如,硬件信息提供器701可根据代码的特征或用户指令选择VLIW硬件信息、第一CGA硬件信息和第二CGA硬件信息中的一个。

编译单元702根据硬件信息提供器701提供的硬件信息编译代码。例如,如果第二CGA硬件信息被硬件信息提供器701选择,则编译单元702可在忽略第二FU组120的除了预定FU121以外的剩余FU(即,FU0至FU7、FU10、FU11、、FU14和FU15)的同时基于FU121执行编译。也就是说,编译单元702可根据第二CGA硬件信息不映射与第二FU组120除了的FU121以外的剩余FU相关的指令或数据。

在下文,将参照图1和图7描述用于可重构处理器100的代码转换方法的示例。

首先,如上所述,硬件信息提供器701根据代码的特征或用户指令选择VLIW硬件信息、第一CGA硬件信息和第二CGA硬件信息中的一个,其中,VLIW硬件信息是关于第一FU组110的硬件信息,第一CGA硬件信息是关于第二FU组120的所有FU的硬件信息,第二CGA硬件信息是关于第二FU组120的预定FU(例如,121)的硬件信息。接着,编译单元702根据选择的硬件信息编译代码。

如上所述,根据示例,由于基于具有不同数量的FU的多个FU组提供多个CGA模式,因此可重构处理器可按照应用需要的优化性能进行操作,这样实现节能和性能改善。

本发明可被实施为计算机可读记录介质中的计算机可读代码。计算机可读记录介质包括存储有计算机可读数据的所有类型的记录介质。计算机可读记录介质的示例包括ROM、RAM、CD-ROM、磁带、软盘和光学数据存储器。此外,记录介质还可被实施为诸如互联网传输的载波形式。此外,计算机可读记录介质可被分布到网络上的计算机系统,在所述计算机系统中计算机可读代码可以以分布方式被存储和执行。

以上已经描述了多个示例。然而,将理解可以进行各种改变。例如,如果按照不同顺序执行描述的技术,和/或如果以不同方式对描述的系统、架构、装置或电路中的组件进行组合,和/或由其他组件或它们的等同物代替或替换,则可实现合适的结果。因此,其它实施方式在权利要求的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1