基于DMA的DSP_Cache优化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

像系统较大的数据 ,需要将数据存在片外 ,从而导致处理效率很低 。本文以 TI C6000 系列芯片为例 ,从分析它的 Cache 结构出发 ,利用直接存
储器存取 DMA (Direct Memory Access) 设计了一种双缓冲区结构 ,以减少片内 、外存储器之间数据交换的时间 ,并针对高斯滤波函数加以实
实现高效率的通信和视频处理算法成为急需解决的 问题[224] ,为此目前的 DSP 芯片都采用了两级 Cache (高速缓冲存储器) 结构[526] 。但对于大数据量的高 分辨率图像 DSP 实现 ,必须将大量的视频数据放在 片外存储空间上 ,导致了程序运行时必须不断地先 将待处理数据读入片内存储空间 ,处理完后再写回 片外存储空间 ,在数据的读写上浪费大量时间 。硬 仿真时发现 ,被测函数需要的 CPU 时钟周期远远
现 。测试表明这种方法能使硬仿真时所用的 CPU 周期数与软仿真时相同 。
关键词 : TI C6000 ;Cache 优化 ;DMA
中图分类号 : TN911
文献标识码 :A 文章编号 :100820686 (2009) 0220050204
DSP2Cache Optimization based on DMA
随着多媒体业务的飞速发展 ,数字视频产品需 求猛增 。主流应用包括视频通信 、视频监控与工业 自动化等 。这些应用都向高质量的视频编解码算法 及其标准提出巨大需求 ,针对这些标准有各种实现 方案 ,也对数字信事情处理器 (DSP) 芯片的性能提 出了更高的要求 。目前 ,DSP 处理速度已经大幅提 升 ,但在平台上实时实现大尺寸 、高分辨率的视频处 理仍旧是关注的焦点[1] 。合理利用 DSP 平台优势
图 1 两级 Cache 结构框图
CPU 和一级程序高速缓存 L1 P 及一级数据高 速缓存 L1D 直接连接 。程序空间和数据空间是共 享的 ,可以设置成存储器 、Cache 或两者结合 。
DM642 使用 2 级 Cache 架构和外部存储器 , Level 1 Cache 按照功能分为 L1 Pro gram Cache 和 L1 Data Cache 。每个 L1 Cache 为 16kB ,即其 CPU 有 16kB L1 P Cache 和 16kB L1D Cache 。CPU 访 问 L1 Cache 可以无任何延迟 。因为 L1 Cache 的时 钟频率与 CPU 的相同 。二级缓存 Level 2 存储器 其实是 DM642 的片内可寻址存储器 ( Addressable o n Chip Memory) ,大小为 256kB , 可以设置为 L2 Cache 或 普 通 内 存 。L2 Cache 主 要 是 对 外 存 做 Cache ,L2 普通内存可用来做高速访问的内存 。L2 存储器的时钟频率是 300M Hz 。L1D Cache 不命中 访问 L2 Cache 的时钟延迟是 8 个 CPU 周期 , 而
张 斌 (19842) ,男 ,硕士研究生 , E2mail :chinazb_1984 @126. com
第2期
郭 强 ,张 斌 :基于 DMA 的 DSP2Cache 优化
51
超过软仿真中的测量值 。导致这一问题的主要原因 与存储结构密切相关 。
1 TI C6000 系列芯片结构
TI 公司的 C6000 系列 DSP 采用属于 TI 超长 指令字 ( VL IW) 架构的 Veloci TI 处理器内核 ,包含 多个型号 ,应用广泛 。下面具体介绍本文实验中所 采用的 DM642 芯片和存储结构[7] 。
L1D Cache 不命中访问 L2 存储器的时钟延迟是 6 个 CPU 周期 。L2 Cache 同时作为 Program Cache 和 Data Cache 使用 。如果 L1 和 L2 Cache 都不命 中 ,则访问外存非常慢 ,因为 DM642 的外存时钟是 100M Hz2133M Hz ,因 此 要 尽 量 避 免 CPU 访 问 外 存 ,才是有效提高程序性能的关键 。
(1) Level 1 Pro gram Cache L1 P Cache 是只 读的 16kB 的 直 接 映 射 缓 存 (Direct Mapped Cache) 。CPU 从内存取指时 ,这些 指令 直 接 放 到 L1 P Cache 中 。DM642 中 , L1 P Cache 的线性存储规模是 32B ,C64x 的指令长度一 般为 4B ,这就表示在 L1 P Cache 读取指令的时候 , 其实每次是读取 8 条指令 。L1 P Cache 不命中会打 乱指令 流 水 , 如 何 减 少 应 用 程 序 运 行 期 的 L1 P Cache 不命中 ,是 DSP 程序设计中的一个重点 。 因为 L1 P Cache 是直接映射的 ,其与实际内存 的数据映射关系对实际函数的编写非常重要 ,而且 与函数被链接和转载入的内存地址有关 。例如一个 循环中有两个被连续调用的函数 ,如果一个函数的 起始位置是 0x80000010 ,长度为 40 H ,另一个函数 起始地址为 0x80004010 ,长度为 40 H 。显然函数 1 被调用后 ,其所有指令被加载入 L1 P Cache ,但是函 数 2 被调用时 ,因为冲突 Cache 不命中 ,L1 P Cache 的内容被清掉后加载入函数 2 的指令 ,等再返回调 用函数 1 时再次遇到 Cache 不命中 ,这是 Cache 使 用最糟糕的例子 。因为 L1 P Cache 的线性存储规模 是 32B , 因为代码的使用单位通常是 函数 ( Func2 tio n) ,因此保证每个函数在存储器中的起始地址是 32B 对齐是有效利用 L1 P Cache 的方式 。
3 两级缓存结构的访问
本节介绍 DM642 如何利用二级 Cache 进行工 作 ,其原理如图 2 所示 。
决前述问题的主要方法 。
收稿日期 :2008208227 ;修回日期 :2009202224 基金项目 :国家高技术研究发展计划 (863 计划) 资助项目 (No . 2007AA01Z330) 作者简介 :郭 强 (19572) ,男 ,硕士 ,副教授 ,主要从事信号处理和模式识别方面的研究工作 , E2mail :qguo @seu. edu. cn
TMS320DM642 是高性能单片媒体处理器 ,具有 高质量、多通道和优越的视频处理性能 ,以及完整的 可编程特性 。它是基于 C64x 系列 Veloci TI 架构的 设计 ,与 TI 的其它 C64x DSP 代码兼容 ,时钟频率为 600M Hz ,提供 8 个并行处理单元和两级 Cache 结构 , 处理能力高达 4800MIPS ,其结构如图 1 所示 。它不 仅具有 C64x 系列芯片的主要特征 ,还高度集成了音 视频等外设接口 ,方便多媒体应用的开发。
第 31 卷 第 2 期 2009 年 4 月
电气电子教学学报 J OU RNAL O F EEE
Vol . 31 No . 2 Ap r. 2009
基于 DMA 的 DSP 2Cache 优化
郭 强 ,张 斌
(东南大学 信息科学与工程学院 ,江苏 南京 210096)
摘 要 :数字信号处理器大都采用两级高速缓存结构 ,为高复杂度算法的实现提供了有力的保证 。由于一般片上内存空间不大 ,对于通信和图
2 Cache 不命中的情况
Cache 的优化流程采用自上而下的优化方法 , 即应用级 →程序级 →算法级 ,只要满足条件就可以 停止优化 。本文以实际实现一个高斯滤波程序为 例 ,介绍一种优化 Cache 的方法 。该方法主要在应 用级上进行 , 也就是充分利用 L2 SRAM , 并减少 Cache 不命中的次数 。通过该优化方法 ,使得程序 在硬仿真环境下运行时 ,能获得与软仿真环境下相 同的性能 。为了进行分析 ,首先来详细了解 Cache 不命中的情况 ,以及此时系统的反应和所需要的额 外时间 。
(2) Level 1 Data Cache
52
电气电子教学学报
第 31 卷
直接映射 Cache 是一种最简单的 Cache 结构 , 因此其弊端也显而易见 ,冲突 Cache 不命中会比容 量 Cache 不命中更严重 。因此在 L1D Cache ,C64x 使用了 2 路 - 组相 联 Cache , 大 小 为 16kB 。L1D Cache 的线性存储规模是 64B ,L1D Cache 是 2 路 组相联 Cache 的意思就是同一区块 ,L1D Cache 有 两个入口可以访问 ,相比直接映射 Cache 就可以大 大减 少 冲 突 Cache 不 命 中 的 发 生 。同 样 , L1D Cache 不命中也会打乱指令流水 。与 L1 P Cache 还 有不同的是 ,L1D Cache 是可写的 ,这就有可能会涉 及到写延迟 ,本文对此不做讨论 。
(3) Level 2 Cache Level 2 Cache 其实就是 C64x 中的片上存储器 。 本文中所用 DM642 的片上存储器为 256kB 。可设置 成 L2 Cache 或 L2 SRAM。L2 的线性存储规模是 128B ,可以是 1 ,2 ,3 ,4 路 - 组相联 Cache , 取决于分 配的 L2 Cache 大 小。可 以 是 0kB , 32kB , 64kB 或 128kB 。如何利用 L2 SRAM 应该深思熟虑。
GUO Qiang , ZHANG Bin
( N ational M obi le Cபைடு நூலகம்m m unications Research L aboratory , N anj i ng 210096 , Chi na)
Abstract :Digital signal p rocessor generally has a t wo2level cache st ruct ures to realize high2co mplexit y algo2 rit hms efficiently. But it usually has small o n2chip memory , co mpared wit h t he large image data. So t he co mmunicatio n and image data have to be stored o ut of t he chip , which leads to poor p rocessing efficiency. This paper too k t he TI C6000 as an example , and based o n t he cache st ruct ure of t his series , int roduced a do uble buffering f ramework so as to reduce t he time fo r exchanging data bet ween t he o n2chip and o ut2chip memo ry. Then t his p ropo sed optimizatio n st rategy was applied to implement t he Gaussian filter f unctio n and test it s overall performance. Experiment shows t hat t he performance via soft simulatio n can reach t he op timizatio n as emulating o n t he DSP board. Keywords :TI C6000 ;Cache optimizatio n ; DMA
相关文档
最新文档