可配置处理器技术入门课程系列(五):XPRES编译器

2017-02-13 电子工程世界
分享到:

C to TIE设计过程自动化的工具-XPRES编译器
 
可配置Xtensa LX处理器能够让设计人员对处理器进行量身定做以满足片上系统SOC中的特定任务。为了弥补手工定做的过程,Tensilica设计了一个称为XPRES (Xtensa PRrocessor Extension Synthesis)的自动化定做工具,该工具可以对用C或者C++写的应用程序代码进行自动分析,然后将TIE定义提交给Xtensa处理器生成器,进而产生所需要的处理器。因此,XPRES编译器作为一个前端C/C++处理器,形成Xtensa设计流程,如图1所示。
 
  XPRES编译器1
 
XPRES编译器的一个最大优点是可以对已有的C/C++应用程序代码进行分析,也不需要对代码修改就可以将其应用于XPRES编译器。分析完成后,XPRES编译器从操作数据流图中导出TIE指令扩展信息,数据流图是从提交的应用程序代码中产生的。图2表示出了数据流图的一个实例。从这些数据流图中可以看出,XPRES编译器能够自动用TIE语言为Xtensa LX处理器定义融合操作、SIMD指令和FLIX指令。
 
  
XPRES编译器2
 
然而,XPRES编译器不能从C/C++应用程序代码中推断出一些关键的工程设计目标。尤其是它不能判断出系统设计的理想性能目标(“越快越好”是很少作为设计目标的,因为这样的设计目标在许多情况下将会导致功耗代价。),而且它也不能判断出门数约束,因为这些约束是不会在软件应用程序代码中出现的。因此,XPRES编译器产生一系列设计选项在性能(用时钟周期数来表示)和门数之间进行折中,同时编译器可以通过图的方式画出这些选项,让设计团队来选择他们所需要的合适选项,如图3所示。在图3所示的例子中,设计团队选择了一个由XPRES编译器产生的处理器,该处理器可以将系统性能提高10倍,但新增加的硬件门数不超过两万门。
 
 
  XPRES编译器3
 
图3: 处理器设计选项的可视化描述(设计选项由XPRES编译器产生,针对用C/C++编写的专门应用)
 
 
XPRES编译器速度非常快,它通常只需运行几分钟或者几十分钟。因此,XPRES编译器是一个非常有效的设计工具,适合快速设计空间的开发。Xtensa LX处理器核与XPRES编译器结合在一起建立起一套非常有效的设计工具以提升设计团队的设计效率,极大地缩小了完成一个片上系统SOC设计所需要的RTL验证时间,同时缩短了整个SOC的设计周期。

×
官方微信