Xtensa
Tensilica公司推出的可配置CPU,真是一个好东西。主要的系列有Xtensa LX2和Xtensa7,以前的版本有Xtensa LX和Xtensa6。其中Xtensa LX是功能更为强大的系列,我接触的是Xtensa6系列。
首先这是一个软核,支持的可配置的属性非常多,比如是否包含cache,cache的大小,local ram的大小,总线的位宽,协处理器等等。但是以上都不是最精髓的地方,最精髓的应该是可扩展指令集,称之为TIE。TIE允许用户自己定义全新的指令,执行一些复杂的对性能影响大的操作。扩展的指令是通过硬件实现的,可以理解为用硬件实现了一条路,用于实现一些特定的操作,这条路又被很好的和通用的那条路结合在一起。比喻不太恰当,凑合理解吧。
扩展指令集有什么好处呢?首先,SOC的核心仍然是软件的设计,这大大缩短了开发周期和开发的难度;第二,对于那些反复执行的又很好费cycle的操作使用硬件加速,大大改善了SOC系统的性能。
通常扩展指令集有几种方式:第一种称为fusion,就是将多条指令合并为一条指令,从而缩短程序所需要的cycle数;第二种称为SIMD,就是单指令多数据,比如有4个8bit加法,合并在一条指令一下子算完,这就比算4次要快多了。
首先这是一个软核,支持的可配置的属性非常多,比如是否包含cache,cache的大小,local ram的大小,总线的位宽,协处理器等等。但是以上都不是最精髓的地方,最精髓的应该是可扩展指令集,称之为TIE。TIE允许用户自己定义全新的指令,执行一些复杂的对性能影响大的操作。扩展的指令是通过硬件实现的,可以理解为用硬件实现了一条路,用于实现一些特定的操作,这条路又被很好的和通用的那条路结合在一起。比喻不太恰当,凑合理解吧。
扩展指令集有什么好处呢?首先,SOC的核心仍然是软件的设计,这大大缩短了开发周期和开发的难度;第二,对于那些反复执行的又很好费cycle的操作使用硬件加速,大大改善了SOC系统的性能。
通常扩展指令集有几种方式:第一种称为fusion,就是将多条指令合并为一条指令,从而缩短程序所需要的cycle数;第二种称为SIMD,就是单指令多数据,比如有4个8bit加法,合并在一条指令一下子算完,这就比算4次要快多了。