微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 关于嵌入式系统程式设计重要抉择

关于嵌入式系统程式设计重要抉择

时间:08-10 来源:互联网 点击:

入式媒体处理器的资料记忆体结构对于整个系统性能的重要性等同于指令时钟速度的重要性。因在多媒体应用中的任一时间经常会有多个资料传送任务同时进行,所以其R流排结构必须支援内核和DMA对所有外部和内部记忆体块的访问。对DMA控制器和内核之间的冲突进行自动处理是非常关键的,否则性能将大大降低。首先要求在内核与DMA之间的建立DMA控制器,然后当要进行处理的资料已经准备时再应该回应中断。

处理器通常作其一项基本功能执行资料读取操作。虽然这通常是传送资料效率最低的机构,但它是最简单的编程方式。小容量、快速方便的记忆体有时可以用来作L1资料记忆体的一部分,但对于较大容量、片外缓冲器,如果内核要从外部记忆体读取所有资料,那麽访问时间就长得难以忍受。内核不仅要花掉多个时钟周期去取资料,而且它要花很多时间忙于读取资料。在多媒体和其他大量资料操作应用中,要不断地将大量资料存储移入或移出SDRAM,内核的读取资料操作是无法应付这种情况的。虽然内核的读取资料操作总是需要的,但了维持性能,一定要使用DMA或快取记忆体传送大量的资料。

使用DMA管理资料

为了在多媒体系统中有效地利用DMA,应该有足够多的DMA通道以充分支援处理器的L边电路,即可以同时传送一对以上的记忆体与DMA之间的资料流程。这一点很重要,因考虑到在外部记忆体和L1记忆体之间传送用于内核处理的资料块的同时,必然有一个原始的多媒体资料也会进入外部记忆体(通过高速L边设备)。进一步地,DMA引擎允许L边电路与外部记忆体之间的直接资料传送,而无需在L1记忆体内有一个“中间停留”,因此在大量资料演算法中可以节省外部资料传送。

随着资料传输速率和性能要求的提高,设计工程师能随意对“系统性能调节”控制就变得非常关键。例如,优化DMA控制器以使每个时钟周期都可传送一个资料字。当向同一方向同时传送多个资料流程时(例如,从内部记忆体向外部记忆体传送全部资料),这通常是最有效的操纵控制器的方式,因这种方法可以防止DMAR流排有空闲时间。

但是当传送多个双向视频和音频资料流程时,必须使用“业务量控制”,以防止一个资料流程独R流排。例如,如果DMA控制器总是把DMAR流排连接到任何一个准备每次传送一个资料字的L边电路(例如,连接到一个SDRAM),一个,那麽总的资料吞吐率会降低。在这种情况中,几乎每一个时钟周期资料传送都改变一次方向,因此在SDRAMR流排上与来回切换时间相关的等待时间将显着降低吞吐率。这样,具有一个通道可编程传送资料字长度的DMA控制器比那种具有固定传送长度的控制器有明显的优点。因每个DMA通道都可以将一个L边设备与外部或内部记忆体相连,所以它还具有的一个重要优点是它能自动地连接到一个能发出紧急R流排请求的L边设备。

另一个特性即二维DMA性能,具有几种系统级优点。第一,它允许以一种比较直观的处理顺序将资料放入记忆体。例如,亮度和色度资料从一个图像感测器相继传来,但可将它们自动存入各自的记忆体缓冲块。二维DMA的交错和去交错功能在处理视频和图像资料之前节省了多余的记忆体R流排传送。另外,通过有选择性地进行传送,即只选择需要的输入图像资料块而不是全部图像资料,二维DMA也能够使系统的资料带宽最小。

其他的重要DMA特性包括满足当前的L边设备任务请求区分DMA通道优先等级的能力,以及匹配这些优先顺序设置相应的DMA中断的能力。这些功能有助于确保资料缓冲器不会因DMA忙于其他L边设备而溢出,并且它们还使程式设计工程师在每个DMA通道的资料流程通基础上优化整个系统性能时具有更大的自由度。

因内部记忆体通常分几个子存储块,所以DMA控制器和内核同时存取向不同子存储块存放资料的操作均可在一个单时钟周期内完成。例如,当内核对一个子存储块的资料进行操作时,DMA可以向另一个子存储块存放新资料。在某些条件下,甚至可以同时访问同一个子存储块。当访问外部记忆体时,通常只有一个物理R流排可用,该物理R流排经常被同步和非同步记忆体所复用。

关于资料快取记忆体

当前的DMA控制器的灵活性是一把双刃剑。当在两个处理器之间读取一个大的C/C++应用程式时,程式师有时不愿意将DMA功能整合到已经存在的工作代码中。这时,资料快取记忆体就很有用了。通常,资料通过快取记忆体送入L1记忆体以便最快处理。这种资料快取记忆体非常吸引人,因它象一个小DMA一样工作,但涉及到程式师的工作量最小。

因典型的快取记忆体线填充特性,所以当处理器对外部记忆体内的连续资料存放块进行操作时,资

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top