EDN China > 技术文章 > 微处理器与DSP > CPU/GPU > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

Xtensa可配置处理器及其自动化开发工具详解

2011年12月13日 ?? 收藏0
可配置处理器标志着第四代微处理器设计的开始,这种技术更加适合片上系统SOC的设计。每一代处理器持续大约十年时间,每个时代的处理器适合当时那个时期的需要。大约在二十世纪七十年代出现了第一代处理器,这个时期的处理器设计只是简单地追求性能,从4位处理器到早期的16位和32位微处理器。这种性能的提升奠定了二十世纪八十年代个人计算机PC和工作站的基础。个人计算机和工作站的增长使得微处理器设计进入了二十世纪八十年代的第二代微处理器研制时期。精简指令集RISC设计时代发生在二十世纪九十年代。在这个时期,即使像X86这样坚定的复杂指令集CISC处理器也假装成精简指令集RISC体系结构。在最初的这三代处理器的成长和发展过程中,微处理器设计专家将处理器设计成固定的、单个的和可重用的模块。但是,在二十世纪九十年代随着专用集成电路ASIC和片上系统SOC制造技术的发展为微处理器设计进入第四代(即后RISC、可配置处理器)打下了坚实的基础。

以往的32位处理器核不能处理许多片上系统SOC设计中的大计算量任务,比如多媒体和网络通信。因此,片上系统SOC设计者必须采用硬件描述语言(Verilog 或者 VHDL)来实现这样的任务。采用手工编写的RTL硬件模块所带来的问题是验证时间主导了设计周期,这将增加设计的成本并延长进入市场的时间。

现在有一种替代RTL设计的方法。你可以使用可配置、可扩展的处理器而不是RTL来完成系统设计,这种方法设计时间更快,同时也更灵活地改变产品的标准和要求。Tensilica的Xtensa LX处理器可以为用户提供输入/输出吞吐量和计算性能,而这些在以前通常是只有RTL设计方法才能提供。Tensilica的Xtensa LX核还为用户提供增强的时钟门控技术来降低系统功耗。为了进一步提高片上系统设计者的能力来充分利用可配置处理器核的技术,Tensilica 还开发了XPRES编译器,该编译器可以自动分析用C或者C++语言写的应用程序代码,然后产生一个可配置处理器核,产生的处理器核是经过优化的,适合目标代码的运行。这种设计方法非常快,可以在大约一个小时内产生一个最佳处理器配置。有关XPRES编译器的内容,将在本文的最后进行描述。

Tensilica公司在1999年开始引入这种自动化的、可配置微处理器技术,用于片上系统SOC设计。这种技术的核心是该公司的Xtensa处理器生成器,该产生器基于服务器应用程序,可以产生优化的32位处理器核用于嵌入式应用,用户可以自己进行功能扩展定义,以建立针对片上系统SOC中某些特定任务应用的微处理器核。

Xtensa处理器生成器可以增加新的功能来自动产生用户所需要的硬件,产生的硬件是经过验证的RTL代码格式。自动产生的处理器RTL代码可以和现在的SOC设计流程无缝结合,可以用于逻辑综合。处理器生成器还可以建立与产生的处理器相匹配的系统软件。

设计过程自动化的工具-XPRES编译器

可配置Xtensa LX处理器能够让设计人员对处理器进行量身定做以满足片上系统SOC中的特定任务。为了弥补手工定做的过程,Tensilica设计了一个称为XPRES (Xtensa PRrocessor Extension Synthesis)的自动化定做工具,该工具可以对用C或者C++写的应用程序代码进行自动分析,然后将TIE定义提交给Xtensa处理器生成器,进而产生所需要的处理器。因此,XPRES编译器作为一个前端C/C++处理器,形成Xtensa设计流程,如图1所示。

带有XPRES编译器的 Xtensa处理器设计流程
图 1: 带有XPRES编译器的 Xtensa处理器设计流程

XPRES编译器的一个最大优点是可以对已有的C/C++应用程序代码进行分析,也不需要对代码修改就可以将其应用于XPRES编译器。分析完成后,XPRES编译器从操作数据流图中导出TIE指令扩展信息,数据流图是从提交的应用程序代码中产生的。图2表示出了数据流图的一个实例。从这些数据流图中可以看出,XPRES编译器能够自动用TIE语言为Xtensa LX处理器定义融合操作、SIMD指令和FLIX指令。

由XPRES编译器生成的数据流图
图 2:由XPRES编译器生成的数据流图

然而,XPRES编译器不能从C/C++应用程序代码中推断出一些关键的工程设计目标。尤其是它不能判断出系统设计的理想性能目标(“越快越好”是很少作为设计目标的,因为这样的设计目标在许多情况下将会导致功耗代价。),而且它也不能判断出门数约束,因为这些约束是不会在软件应用程序代码中出现的。因此,XPRES编译器产生一系列设计选项在性能(用时钟周期数来表示)和门数之间进行折中,同时编译器可以通过图的方式画出这些选项,让设计团队来选择他们所需要的合适选项,如图3所示。在图3所示的例子中,设计团队选择了一个由XPRES编译器产生的处理器,该处理器可以将系统性能提高10倍,但新增加的硬件门数不超过两万门。

处理器设计选项的可视化描述
图3: 处理器设计选项的可视化描述(设计选项由XPRES编译器产生,针对用C/C++编写的专门应用)

XPRES编译器速度非常快,它通常只需运行几分钟或者几十分钟。因此,XPRES编译器是一个非常有效的设计工具,适合快速设计空间的开发。Xtensa LX处理器核与XPRES编译器结合在一起建立起一套非常有效的设计工具以提升设计团队的设计效率,极大地缩小了完成一个片上系统SOC设计所需要的RTL验证时间,同时缩短了整个SOC的设计周期。

结论

同其它嵌入式处理器一样,Xtensa LX处理器建立了一个完整的可编程的设计环境,系统软件可以自动产生,充分利用了扩展技术来构建所需要的微处理器。可编程是一个很大的优点,因为在芯片制造完成后系统的改变可以通过软件来完成。例如,在音频应用领域,多种音频标准可以在同一个处理器中运行。这对系统设计来说是非常有效的,不需要针对每一个音频标准来设计像MP3、 MPEG-2、 MPEG-4或者AC-3这样不同的应用模块。

Tensilica的Xtensa LX可配置和可扩展微处理器核提供一种更快、更有效地产生RTL的方法。通过XPRES编译器,设计人员可以充分利用Xtensa LX处理器的先进技术,而不需要成为一个处理器天才。相反,设计团队只需要理解他们自己的应用算法、知道想在处理器中实现什么应用即可。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

SOC? RTL设计? XPRES编译器?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈