由于许多 DSP 系统都是实时系统,因此必须优化这些指标中的至少一项(也可能是多项)。同时优化所有这些性能指标是很困难的(通常也是不可能的)。例如,使应用程序更快可能需要更多内存,反之亦然。设计者必须权衡这些指标并做出权衡。
确定哪个索引或一组索引对于优化很重要取决于应用程序开发人员的目标。例如,性能优化意味着开发人员可以使用速度较慢或成本较低的 DSP 来完成相同数量的工作。在某些嵌入式系统中,这样的成本节省会对产品的成功产生重大影响。开发人员也可以选择优化应用程序以允许添加更多功能。
如果附加功能提高了系统的整体性能,或者如果开发人员可以向系统添加更多功能(例如基站系统的附加信道),那么这可能非常重要。
优化内存使用还可以降低整体系统成本。减小应用程序大小可以降低对内存的需求,从而降低总体系统成本。,功耗优化意味着应用程序可以在相同的功耗下运行更长时间。这对于电池供电的应用非常重要。这种类型的优化还降低了电源要求和所需的其他冷却功能方面的总体系统成本。
优化 DSP 应用的棘手部分是了解各种性能指标之间的权衡。例如,优化应用程序的速度通常意味着功耗相应降低,但内存使用量增加。
内存优化还可能会由于内存访问次数减少而导致功耗降低,但会抵消代码性能的降低。在尝试任何形式的应用程序优化之前,必须理解和考虑各种权衡和系统目标。
使常见情况更快
计算机设计以及基于 DSP 的实时系统编程的基本规则是“使常见情况快速,并支持频繁情况”。这实际上只是阿姆达尔定律,即使用某些更快的执行模式获得的性能改进受到使用更快的执行模式的频率的限制。因此,不要花时间尝试优化一段几乎不会运行的代码。无论你多么有创意,你都不会从中得到太多好处。相反,如果您可以从执行数千次的循环中消除一个循环,您就会看到对底线的更大影响。
这通常称为乘积之和 (SOP)。DSP 芯片设计人员开发了硬件架构,允许使用 SOP 高效执行算法。这是通过使用专用指令(例如单周期多重累加 (MAC))、在单个周期中访问所有多个内存的架构(哈佛架构,图 2)以及 以很少的开销处理循环计数的特殊硬件来完成的。
1. DSP算法由乘法和加法的迭代组成,如离散傅里叶变换公式所示......
…以及过滤器算法
2.哈佛建筑学。程序和数据的分离提高了 DSP 应用的性能