采用Linux与DSP/BIOS RTOS实施双OS信号处理技术
时间:02-13
来源:作者:Steve Preissig、David Beal 与 Aurelien Jacquiot,德州仪器公司
点击:
应用与硬件的匹配
我们不妨使用 TMS320DM643x 处理器架构来研究在执行块视频处理时会遇到的典型情况,该架构采用一个 600 MHz / 4800 MIPS DSP 处理内核以及诸如功能丰富的视频端口子系统等各种多媒体外设。这种硬件通常用于将输入视频流进行 H.264 格式压缩。
为了充分发挥 DSP 内核的处理能力,处理的数据应从周期操作内部存储器读取,而不是从速度较慢的外部存储器读取。尽管在技术上可以让具有足够快的片上存储器的处理器存储一个或多个完整的视频帧,但这种技术对大多数目标市场来说成本太高。因此,采用可提供 80kB 的单周期操作片上数据存储器的处理器取而代之。
80kB 虽然小,不能存储完整的视频帧,但 TI 通过模拟检测认为,这样的存储量足够为 H.264与其它视频处理算法提供最佳的面积/性能综合比。
DSP通过直接存储器存取(DMA)控制器为该存储器提供数据,这种控制器还可用于内外部存储器之间高效传输数据子块,而不会占用处理器内核的周期操作(见图 1)。
从整体系统的角度来说,这种方法可提供几乎相当于具有整个视频缓冲器的芯片所提供的性能,但成本却非常低。不过,为了实现这样的高性能,就需要应用、操作系统以及底层存储器与 DMA 硬件之间的紧密配合。
首先,应用必须能够区别快速内部存储器与大容量外部存储器。其次,应用必须能够执行许多时间精确的小型 DMA 操作。由于访问 DMA 时发生的所有时延在 DMA 访问每个视频帧时都会放大数百倍乃至数千倍,因而在 Linux 驱动程序模型内高效实现 DMA 操作虽非不可能,但也极为困难。
这种方法的实际实施可通过 DSP/BIOS 完成,并提供原生 API 来实现应用对内外部存储器的请求,同时也使应用可直接访问 DMA 寄存器,不会产生环境交换损失。
两种操作系统的优势结合
尽管众多多媒体应用的大部分处理器周期操作都用来进行信号处理,但能满足消费需求的产品同时还必须执行许多更高级的功能,如用户界面、显示功能、网络以及文件处理等。
由于上述特性对时间要求不高,因此无需精确控制 DSP/BIOS。这时,Linux驱动程序模型所提供的资源提取功能就可更好地提高灵活性,缩短开发时间,更不用说可获得 Linux 社区丰富的开源应用代码支持了。
可使 Linux 与 DSP BIOS 操作系统同时运行在同一设备上的解决方案,就是需要使用虚拟程序 (virtualizer) 为系统开发或集成人员提供这两种操作系统的优势(见图 2)。
虚拟程序作为快速、可预测的交换机可在 Linux 与 DSP/BIOS 操作系统之间实现 DSP 资源。当接收到中断时对 DSP/BIOS 操作系统环境做出推测性交换,能够确保 DSP/BIOS 线程的最佳性能。
如果新到达的中断对应于 DSP/BIOS 环境中已识别的事件,那么将在已经加载且准备运行的 DSP/BIOS 环境中对其进行处理。
在虚拟程序支持 DSP/BIOS 的同时,应用可直接访问所需的系统资源,且不会影响(挂起)Linux 环境中保持的用户与内核空间。
一旦应用完成 DSP/BIOS 环境下的高性能信号处理计算,虚拟机就将强制转回到 Linux环境,以便访问该环境下的更高级特性。
在虚拟程序的调节下,操作系统之间的交换时间不到 10ms,这使编程人员能达到实时性能要求,相对于只包含 DSP/BIOS 的原生系统而言,性能上也没什么损失。该解决方案对典型多媒体设备的处理资源占用仅约 1.5%。
双操作系统的更多优势
DSP/BIOS 操作系统对基于 Linux 的产品进行扩展的最明显优势之一是 :无需移植就可使用成百上千种第三方的相关算法。由于符合 xDAIS 标准,因此可确保第三方算法无缝集成于 DSP/BIOS 环境中。
DSP/BIOS 操作系统对基于 Linux 的系统进行扩展的另一个优势是:在 DSP/BIOS 环境下执行应用不受 Linux 内核 GNU 通用公共许可证 (GPL) 的限制。
在实施基于 Linux 的解决方案时,我们有时不是很清楚开发商推出的独特软件知识产权在许可证方面到底有哪些具体要求。通过在 DSP/BIOS 而非 Linux 操作环境下执行 IP,可以避免这方面的法律问题。
结论
使用本文介绍的技术,Linux 与 DSP BIOS 可同时运行在统一的 DSP 内核上,这既能够提供 Linux 解决方案的全部功能,又可确保 DSP/BIOS 环境下的高精度与硬件控制。
编程人员可充分利用适用于 Linux 的应用代码与适用于 DSP/BIOS的信号处理代码,无需针对不同环境进行移植。
对要在实时嵌入式应用中采用 Linux 特性的设计人员而言,通过虚拟程序升级、同时获得 DSP BIOS 工具套件,将大幅提高信号处理性能,并可显著节省系统资源的成本。
我们不妨使用 TMS320DM643x 处理器架构来研究在执行块视频处理时会遇到的典型情况,该架构采用一个 600 MHz / 4800 MIPS DSP 处理内核以及诸如功能丰富的视频端口子系统等各种多媒体外设。这种硬件通常用于将输入视频流进行 H.264 格式压缩。
为了充分发挥 DSP 内核的处理能力,处理的数据应从周期操作内部存储器读取,而不是从速度较慢的外部存储器读取。尽管在技术上可以让具有足够快的片上存储器的处理器存储一个或多个完整的视频帧,但这种技术对大多数目标市场来说成本太高。因此,采用可提供 80kB 的单周期操作片上数据存储器的处理器取而代之。
80kB 虽然小,不能存储完整的视频帧,但 TI 通过模拟检测认为,这样的存储量足够为 H.264与其它视频处理算法提供最佳的面积/性能综合比。
DSP通过直接存储器存取(DMA)控制器为该存储器提供数据,这种控制器还可用于内外部存储器之间高效传输数据子块,而不会占用处理器内核的周期操作(见图 1)。
从整体系统的角度来说,这种方法可提供几乎相当于具有整个视频缓冲器的芯片所提供的性能,但成本却非常低。不过,为了实现这样的高性能,就需要应用、操作系统以及底层存储器与 DMA 硬件之间的紧密配合。
首先,应用必须能够区别快速内部存储器与大容量外部存储器。其次,应用必须能够执行许多时间精确的小型 DMA 操作。由于访问 DMA 时发生的所有时延在 DMA 访问每个视频帧时都会放大数百倍乃至数千倍,因而在 Linux 驱动程序模型内高效实现 DMA 操作虽非不可能,但也极为困难。
这种方法的实际实施可通过 DSP/BIOS 完成,并提供原生 API 来实现应用对内外部存储器的请求,同时也使应用可直接访问 DMA 寄存器,不会产生环境交换损失。
两种操作系统的优势结合
尽管众多多媒体应用的大部分处理器周期操作都用来进行信号处理,但能满足消费需求的产品同时还必须执行许多更高级的功能,如用户界面、显示功能、网络以及文件处理等。
由于上述特性对时间要求不高,因此无需精确控制 DSP/BIOS。这时,Linux驱动程序模型所提供的资源提取功能就可更好地提高灵活性,缩短开发时间,更不用说可获得 Linux 社区丰富的开源应用代码支持了。
可使 Linux 与 DSP BIOS 操作系统同时运行在同一设备上的解决方案,就是需要使用虚拟程序 (virtualizer) 为系统开发或集成人员提供这两种操作系统的优势(见图 2)。
虚拟程序作为快速、可预测的交换机可在 Linux 与 DSP/BIOS 操作系统之间实现 DSP 资源。当接收到中断时对 DSP/BIOS 操作系统环境做出推测性交换,能够确保 DSP/BIOS 线程的最佳性能。
如果新到达的中断对应于 DSP/BIOS 环境中已识别的事件,那么将在已经加载且准备运行的 DSP/BIOS 环境中对其进行处理。
在虚拟程序支持 DSP/BIOS 的同时,应用可直接访问所需的系统资源,且不会影响(挂起)Linux 环境中保持的用户与内核空间。
一旦应用完成 DSP/BIOS 环境下的高性能信号处理计算,虚拟机就将强制转回到 Linux环境,以便访问该环境下的更高级特性。
在虚拟程序的调节下,操作系统之间的交换时间不到 10ms,这使编程人员能达到实时性能要求,相对于只包含 DSP/BIOS 的原生系统而言,性能上也没什么损失。该解决方案对典型多媒体设备的处理资源占用仅约 1.5%。
双操作系统的更多优势
DSP/BIOS 操作系统对基于 Linux 的产品进行扩展的最明显优势之一是 :无需移植就可使用成百上千种第三方的相关算法。由于符合 xDAIS 标准,因此可确保第三方算法无缝集成于 DSP/BIOS 环境中。
DSP/BIOS 操作系统对基于 Linux 的系统进行扩展的另一个优势是:在 DSP/BIOS 环境下执行应用不受 Linux 内核 GNU 通用公共许可证 (GPL) 的限制。
在实施基于 Linux 的解决方案时,我们有时不是很清楚开发商推出的独特软件知识产权在许可证方面到底有哪些具体要求。通过在 DSP/BIOS 而非 Linux 操作环境下执行 IP,可以避免这方面的法律问题。
结论
使用本文介绍的技术,Linux 与 DSP BIOS 可同时运行在统一的 DSP 内核上,这既能够提供 Linux 解决方案的全部功能,又可确保 DSP/BIOS 环境下的高精度与硬件控制。
编程人员可充分利用适用于 Linux 的应用代码与适用于 DSP/BIOS的信号处理代码,无需针对不同环境进行移植。
对要在实时嵌入式应用中采用 Linux 特性的设计人员而言,通过虚拟程序升级、同时获得 DSP BIOS 工具套件,将大幅提高信号处理性能,并可显著节省系统资源的成本。
DSP Linux BIOS RTOS 信号处理 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)