采用 Linux 与 DSPBIOS RTOS 实施双 OS 信号处理技术_第1页
采用 Linux 与 DSPBIOS RTOS 实施双 OS 信号处理技术_第2页
采用 Linux 与 DSPBIOS RTOS 实施双 OS 信号处理技术_第3页
采用 Linux 与 DSPBIOS RTOS 实施双 OS 信号处理技术_第4页
采用 Linux 与 DSPBIOS RTOS 实施双 OS 信号处理技术_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

采用 Linux 与 DSP BIOS RTOS 实施双 OS 信号处理技术 作者 Steve Preissig David Beal 与 Aurelien Jacquiot 在系统性能与编程简易性之间的权衡折中是通用操作系统与实时操作系统之间 的主要区分点之一 GPOS 倾向于提供较高程度的资源抽象 这不仅可通过支持软件模块性与资源隔 离来提高应用的便携性 简化开发流程 同时还能增强系统的稳健性 这使 GPOS 成为诸如网络 用户界面以及显示管理等通用系统组件的理想选择 然而 该抽象需要以系统资源的精细粒度控制作为代价 以满足信号处理代码 等高强度算法的计算性能要求 对于实现这种高级别的控制 开发人员通常需 要采用实时操作系统 RTOS 从嵌入式信号处理角度上讲 我们通常要考虑两种类型的操作系统 即通用操 作系统 Linux 与实时操作系统 DSP BIOS Linux 可支持更高水平的抽象技术 而 DSP BIOS 则可提供更精细的控制 为了充分发挥这两种操作系统的优势 开发人员可采用系统虚拟机 这就使编 程人员可在同一 DSP 处理器上同时运行 Linux 与 DSP BIOS 系统 编者注 与 Java 虚拟机等特定编程语言使用的进程虚拟机环境不同 系统 虚拟机对应于实际硬件 可在相同计算环境中与其它类似实例相隔离的情况下 执行完整的操作系统 然而 我们要提出一个重要的问题 为什么不使用分别运行 Linux 与 DSP BIOS 系统的 CPU DSP 组合器件呢 毕竟 CPU 在运行用户接口控制代码 等方面具有更高的效率 此外 不同的内核可避免虚拟化带来的开销 不过 在同一颗芯片上集成所有功能还是很有吸引力的 原因如下 其一 当今高性能 DSP 比前代 DSP 要强大得多 这样可减少控制处理周期数 其二 大多数高性能 DSP 的通用性能均比前代产品更强 从而可实现更高效的 控制代码处理工作 如果所有功能都可集成在 DSP 上 那么其优势将更加出众 更少的芯片数量可 实现更低的成本与更小的占用空间 此外 由于不再需要在耗费大量电力的处 理器间数据传输 因此还可降低能耗 进度安排进度安排 操作系统最常见也是最有利的一个特性就是能同时执行多个任务或多个线程 操作系统通过时间表来管理内核处理 以连续执行相关任务 以往 嵌入式编程人员在使用 Linux 时会担心实时性能较低的问题 不过 对 Linux 内核的最新增强显著提高了其对系统事件的响应能力 从而使其可满足 各种企业与个人以及嵌入式产品的需求 Linux 可实现线程的时间切片以及优先次序时间安排 时间切片技术是指在所 有线程之间共享处理工作周期 以确保无封锁线程 这种方法通常适用于用户 接口功能 以确保在系统超载 响应较慢的情况下也不至于完全丢失用户功能 与此形成对比的是 优先次序线程时间安排技术则可确保系统中最高优先级线 程的执行 直至该线程放弃控制为止 这时下一个最高优先级的线程即开始执 行 Linux 内核在每次从内核到用户模式的转换时都会对可用线程的优先级进行重 新评估 这就意味着内核最新评估的任何事件 如驱动程序上数据的可用性 都能立即触发新线程 调度器的时延响应时间内 的转换 由于确定了基于优 先级的线程 其通常用于必须满足实时要求的信号处理应用 在推出 Linux 内核 2 6 版本之前 制约实时性能的主要因素是 Linux 内核会 禁用中断 且禁用时间有时会长达数百毫秒 就此而言 我们可以提高内核实施的效率 因为在禁用中断时 代码的某些部 分无需重新进入 而这会增加中断响应的时延 目前的 2 6 版本提供了构建选项 可在整个内核代码中以更高的频率插入中断 再启用指令 Linux 社区通常将该特性称作先占内核 preempt kernel 尽管 这会让内核性能略有下降 但却能够显著提高实时性能 对于众多系统任务而 言 在先占性 Linux 2 6 内核与实时线程结合使用时 将能提供足够的性能来 满足实时需求 例如 德州仪器 TI 的 DSP BIOS 以软件中断和任务的形式仅支持优先级调 度 与 Linux 调度器一样 软件中断和任务都属于先占型的 但是 DSP BIOS 也为应用编程人员提供了直接存取硬件中断的条件 该资源仅适用于 Linux 内 核模式 直接存取硬件中断使应用编程人员可在理论上实现底层硬件所支持的最短时延 响应 对控制环路等需要绝对最低时延的应用而言 这种精细粒度的硬件中断 控制机制通常是一种非常重要的特性 受保护的资源访问受保护的资源访问 Linux 与大多数通用操作系统的一个基本属性就是用户空间程序与所用的底层 系统资源相分离 仅在工作处于监控 如内核 模式下时才允许直接访问存储 器和设备外设 如果用户程序希望访问系统资源 那么它必须通过称作驱动器的内核模块从内 核发出请求 该应用位于用户存储器空间 并将通过虚拟文件访问驱动程序 然后 虚拟文件将应用的请求转至驱动器执行的内核存储器空间 Linux 可提供特性极为丰富的驱动器模型 其中包括标准流媒体外设 模块存 储设备以及文件系统 甚至还包括网络与基于网络的文件系统 驱动器与用户空间应用的分离可实现高度的稳健性 此外 通用驱动器接口上 的抽象水平使其便于将数据流传输给串行端口 闪存文件系统或网络共享文件 夹 且仅需对底层应用代码稍作更改 然而 实现这种灵活性需要付出代价 应用与物理资源的严格分离会加大开销 如果用户空间程序要访问设备外设 则内核模式必须进行环境交换才能处理该 请求 由于数据是成块访问 而非逐个样本 sample by sample 访问 因此通常来 说这不会造成太大的局限性 这样 内核模式下每次块访问仅需进行一次环境 交换即可 但是 在某些情况下 应用代码需与物理硬件严格匹配 如果使用 DSP 等对数 据吞吐量要求较高且不能容忍停顿的高性能处理器时 通常就会出现此类情况 这时 内核空间的物理资源与用户空间的应用相分离的做法就可能会严重影响 系统性能 应用与硬件的匹配应用与硬件的匹配 我们不妨使用 TMS320DM643x 处理器架构来研究在执行块视频处理时会遇到的 典型情况 该架构采用一个 600 MHz 4800 MIPS DSP 处理内核以及诸如功能 丰富的视频端口子系统等各种多媒体外设 这种硬件通常用于将输入视频流进 行 H 264 格式压缩 为了充分发挥 DSP 内核的处理能力 处理的数据应从周期操作内部存储器读取 而不是从速度较慢的外部存储器读取 尽管在技术上可以让具有足够快的片上 存储器的处理器存储一个或多个完整的视频帧 但这种技术对大多数目标市场 来说成本太高 因此 采用可提供 80 KB 的单周期操作片上数据存储器的处理 器取而代之 80 KB 虽然小 不能存储完整的视频帧 但 TI 通过模拟检测认为 这样的存 储量足够为 H 264 与其它视频处理算法提供最佳的面积 性能综合比 DSP 通过直接存储器存取 DMA 控制器为该存储器提供数据 这种控制器还可 用于内外部存储器之间高效传输数据子块 而不会占用处理器内核的周期操作 见以下图 1 图 1 DSP 处理器采用 DMA 硬件将外部存储器中较小的视频帧子块传输到内部 存储器中 以供 DSP 内核进行处理 图图 1 1 DSPDSP 处理器采用处理器采用 DMADMA 硬件将外部存储器中较小的视频帧子块传输到内部硬件将外部存储器中较小的视频帧子块传输到内部 存储器中 以供存储器中 以供 DSPDSP 内核进行处理 内核进行处理 从整体系统的角度来说 这种方法可提供几乎相当于具有整个视频缓冲器的芯 片所提供的性能 但成本却非常低 不过 为了实现这样的高性能 就需要应 用 操作系统以及底层存储器与 DMA 硬件之间的紧密配合 首先 应用必须能够区别快速内部存储器与大容量外部存储器 其次 应用必 须能够执行许多时间精确的小型 DMA 操作 由于访问 DMA 时发生的所有时延 在 DMA 访问每个视频帧时都会放大数百倍乃至数千倍 因而在 Linux 驱动程 序模型内高效实现 DMA 操作虽非不可能 但也极为困难 这种方法的实际实施可通过 DSP BIOS 完成 并提供原生 API 来实现应用对内 外部存储器的请求 同时也使应用可直接访问 DMA 寄存器 不会产生环境交换 损失 两种操作系统的优势结合两种操作系统的优势结合 尽管众多多媒体应用的大部分处理器周期操作都用来进行信号处理 但能满足 消费需求的产品同时还必须执行许多更高级的功能 如用户界面 显示功能 网络以及文件处理等 由于上述特性对时间要求不高 因此无需精确控制 DSP BIOS 这时 Linux 驱 动程序模型所提供的资源提取功能就可更好地提高灵活性 缩短开发时间 更 不用说可获得 Linux 社区丰富的开源应用代码支持了 可使 Linux 与 DSP BIOS 操作系统同时运行在同一设备上的解决方案 就是需 要使用虚拟程序 virtualizer 为系统开发或集成人员提供这两种操作系统的 优势 见图 2 图图 2 2 LinuxLinux 和和 DSP BIOSDSP BIOS 同时运行在同时运行在 DM643xDM643x DSPDSP 器件上器件上 虚拟程序作为快速 可预测的交换机可在 Linux 与 DSP BIOS 操作系统之间实 现 DSP 资源 当接收到中断时对 DSP BIOS 操作系统环境做出推测性交换 从 而确保 DSP BIOS 线程的最佳性能 如果新到达的中断对应于 DSP BIOS 环境中已识别的事件 那么将在已经加载 且准备运行的 DSP BIOS 环境中对其进行处理 在虚拟程序支持 DSP BIOS 的同时 应用可直接访问所需的系统资源 且不会 影响 挂起 Linux 环境中保持的用户与内核空间 一旦应用完成 DSP BIOS 环境下的高性能信号处理计算 虚拟机就将强制转回 到 Linux 环境 以便访问该环境下的更高级特性 在虚拟程序的调节下 操作系统之间的交换时间不到 10 微秒 这使编程人员 能达到实时性能要求 相对于只包含 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 的应

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论