可配置运算的兴起 可配置运算就是用可配置的专用硬件优化系统最关键的部分性能,提高性能的同时降低产品的复杂性和成本以及功耗。 可配置运算主要用在以下场合: 1.完成通用处理器无法完成的工作。 2.用较低的成本和功耗提高处理器在的特定领域的性能,例如ARM的OptimoDE技术。 3.灵活配置cpu的片内外设,现在很多cpu片内包含一片中小规模的cpld。 摩尔定律伴随处理器发展数十年,其预言从未落空,甚至可以说,是摩尔定律支配了计算机技术发展,因为在摩尔定律影响下,做应用产品的厂家可以预见未来处理器的性能,从而可以宏观规划未来的计算机产品以及软件系统,而这个下游的需求反过来又影响着上游的处理器厂家升级处理器。然而,在嵌入式领域,由于功耗、散热、体积等因素的限定,处理器性能的提高受到极大的制约,人们总是希望在更低的功耗、更小的体积上实现更高的性能,集成度和速度的提高已经不是嵌入式领域的唯一追求。嵌入式应用的专业性,这给实现这个梦想提供了可能,人们可以着力优化系统的特定环节,使之在不提高功耗和体积的前提下提高性能。摩尔定律在嵌入式处理器中的表达变成:在同等体积和功耗约束下,处理器的性能每18个月增长一倍。 cache技术的基础是计算机学中的两个著名的“局部性”理论,在S3C2410平台上,cache打开与否,处理速度可以相差30倍以上。除这两个局部性之外,还有一个局部性,姑且称之为“运算密度局部性”,在一个应用中,只有少量的代码需要很高的运算速度。如果把高速运算程序用专用硬件实现,那么整个系统的性能就可以得到质的飞跃,可以在相同的硅片面积,相同的功耗下,实现更高的性能,这是单纯提高cpu速度所无法比拟的。这种加速器有固定加速器和可变加速器两种,固定加速器最典型的例子就是Ti的C64x系列DSP中,设置了视频加速单元,使得它在视频应用方面的表现竟然比双核处理器还要出色,而成本和功耗则远小于双核。 可配置加速器就是这里要讲的可配置运算,通用的处理器的指令集要均衡各种应用,难于在某一方面做特别的优化,典型的是cpu字长的设置,不外乎8、16、32、64几种,即使有些应用无需32位精度,也只能按照32位设计,这其实是极大的浪费。ARM最新发展中,出现了OptimoDE技术,这是可配置运算的典型例子。OptimoDE是一个可配置运算引擎,可以根据实际运算要求,用专用工具构建专用的运算模块,不同的配置下,该模块的功能不同。比如一个需要高速运算的应用中,需要20位的数据精度FFT运算,如果使用通用cpu处理的话,你不得不使用一个高速32位cpu。而且,由于需要跟其他慢速代码协调和同步,32位高速cpu的性能还得不到完全发挥。而利用OptimoDE技术,我们可以构建一个20位精度的FFT并行运算模块,成倍地提高效能的同时,还可以降低功耗和体积。 可配置运算在通信产品上早就已经广泛应用,在高速基带应用中,通常用一个cpu管理多片FPGA来进行大规模的数据处理。目前主要的FPGA供应商,都提供类似的产品,有的在其FPGA中植入微处理器,比如ACTEL,在其fpga中植入来ARM处理器;有的提供处理器IP,比如xinlix,用户使用这个IP可以方便地在其FPGA芯片中构建处理器。以ARM的OptimoDE为代表,在处理器内部引入部分可配置单元,也已经悄然兴起,可以预见,可配置运算是将来高性能嵌入式产品的发展方向。 可配置单元除了实现高速运算外,还可以用于外设的柔性配置。通用处理器在片内固定配置了许多外设,但这些外设并不能满足各种应用需求,改变产品外设需求时,往往导致处理器重新选型。而且,工程师经常难于找到一款刚好完全符合自己要求的处理器,往往是一方面需要片外扩展一些外设,同时片内又有一些设备闲着不用,可配置单元可以弥补这方面的不足。
|