其他的重要DMA特性包括爲满足当前的週边设备任务请求区分DMA通道优先等级的能力,以及爲匹配这些优先顺序设置相应的DMA中断的能力。这些功能有助于确保资料缓冲器不会因DMA忙于其他週边设备而溢出,并且它们还使程式设计工程师在每个DMA通道的资料流程通基础上优化整个系统性能时具有更大的自由度。
因爲内部记忆体通常分爲几个子存储块,所以DMA控制器和内核同时存取向不同子存储块存放资料的操作均可在一个单时钟周期内完成。例如,当内核对一个子存储块的资料进行操作时,DMA可以向另一个子存储块存放新资料。在某些条件下,甚至可以同时访问同一个子存储块。当访问外部记忆体时,通常只有一个物理匯流排可用,该物理匯流排经常被同步和非同步记忆体所复用。
关于资料快取记忆体
当前的DMA控制器的灵活性是一把双刃剑。当在两个处理器之间读取一个大的C/C++应用程式时,程式师有时不愿意将DMA功能整合到已经存在的工作代码中。这时,资料快取记忆体就很有用了。通常,资料通过快取记忆体送入L1记忆体以便最快处理。这种资料快取记忆体非常吸引人,因爲它象一个小DMA一样工作,但涉及到程式师的工作量最小。
因爲典型的快取记忆体线填充特性,所以当处理器对外部记忆体内的连续资料存放块进行操作时,资料快取记忆体就非常有用。这是因爲该快取记忆体不只存储当前正在被处理的立即资料,此外它还向与当前相邻的资料块内予取资料。换句话说,该快取记忆体机构假设当前处理的资料字是即将被处理的一个相邻资料块的一部分的可能性极大。对于多媒体图像、音频和视频流,这是一个合理的假设。
由于资料缓冲器通常来自週边电路,所以对资料快取记忆体的操作并不总象对指令快取记忆体的操作那样容易。这是由于必须在非“*”的快取记忆体中人工控制一致性。在使用这些快取记忆体准备对新资料进行任何读取之前都必须使该资料缓冲器无效。
总之,在一个具体的多媒体系统中对指令和资料传送的最佳机构的选择应该是快取记忆体还是DMA没有一种简单的答案。不过,一旦开发工程师瞭解到这其中的权衡考虑,就能进入到一种“不偏不倚”的状态,从而将使系统性能达到最优化。(本文作者任职于ADI公司公司 Blackfin Blackfin应用组应用组)。
本文关键字:嵌入式 嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术
上一篇:如何提高操作系统的实时性