微处理器和多处理器片上系统MPSOC设计的新纪元
当今的系统开发工具已经非常先进,完全可以允许设计人员根据具体的应用目标任务来定制微处理器核。处理器定制可以在非常短的时间内,甚至是几分钟就可以根据具体应用完成片上系统处理器核的设计。由于根据具体任务来定制处理器的速度非常快,因此可配置处理器可以具有非常优异的高性能来构建片上系统的设计,并且经常用于快速建立一些功能模块,而这些功能模块如果采用人工RTL方式设计的话,则可能需要几个月的时间。正是由于可配置处理器技术的高性能和快速开发能力,使得许多最终产品在多个可配置处理器核的基础上实现了片上系统SOC(多处理器片上系统SOC或者简写为MPSOC)。这些最终产品的范围从最大和最小的网络路由器一直到诸如便携式摄像机、打印机和低成本视频游戏机等消费类电子产品。
两种最新的开发技术已经嵌入到可配置处理器甚至片上系统SOC设计中,即全自动化的、专用指令集定制技术和对处理器内部执行部件的多口访问技术。前者允许片上系统设计人员更加专注系统体系结构方面的问题,而通过依赖自动化设计工具来完成某些单一功能模块以达到性能方面的目标。后者则永远克服了以前那种存在已久的总线瓶颈问题,而这种总线瓶颈问题从1971年第一个微处理器出现以来就一直阻碍微处理器性能的提高。
自动化处理器定制
十多年来,硬件设计人员一直在努力用C或者C++对系统进行描述进而转换成有效的硬件。最初的系统说明通常是用C或者C++写成的,因为采用这些高级语言描述的系统可以在廉价的PC上进行执行和评价。然而,即使是廉价的PC也不适合许多嵌入式系统的设计,尤其是在消费电子领域,因为其功耗太大。因此,设计人员开始希望找到一种工具来将用C或者C++写成的系统描述转换成硬件。
许多像“行为综合”、“C语言硬件综合”和“ESL”等词汇描述的设计方法都有一些缺陷,因为它们都是试图解决在本质上很复杂的问题:用时序可执行语言写成的系统描述转换成并行互操作和非可编程的硬件模块。
Tensilica的XPRES编译器采用一种更加简单、更加直接的方法来解决这一设计问题。XPRES编译器不是试图从头开始进行与应用相关的硬件设计,而是从一个完整的功能处理器核开始设计,然后以添加硬件执行部件和相应的机器指令的方式来增加硬件,以加速处理器上目标应用程序的执行速度。因此,XPRES编译器从一个正在工作的硬件(Xtensa微处理器核)开始设计,同时使得目标程序代码运行得更快。这种搜索的结果是完成一个微处理器的配置,此配置有一个性能/硬件开销的特性曲线,如图1所示。

图1: XPRES编译器为设计者提供一系列微处理器配置。随着硅片面积的增加也使得与应用相关的系统性能得到提升。
性能优化的三种技术途径
XPRES编译器采用三种技术来建立优化的Xtensa处理器配置:操作数融合、单指令流多数据流SIMD(向量化)和FLIX(可变长度指令扩展)。操作数融合技术记录程序循环语句中简单操作出现的频度。XPRES编译器将这些指令序列合并成一条增强型指令,这种增强型指令通过减少循环内部的指令条数来加速程序代码的执行。图2表示由XPRES编译器产生的数据流操作,图中用灰色表示出融合操作。

图2:由XPRES编译器产生的数据流图表示出一系列融合操作。当减法操作、取绝对值操作、加法操作和位域抽取操作融合成一条新的指令后,由XPRES编译器进行评估需要增加474个逻辑门。
评论