码迷,mamicode.com
首页 > 其他好文 > 详细

理解RMQ问题和ST算法的原理

时间:2014-05-25 22:28:29      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:style   blog   c   ext   http   a   

下图为TI C6xx DSP Nyquist总线拓扑图,总线连接了master与slave,提供了高速的数据传输。有很多种速率不同的总线,如图中的红色方框,最高速总线为CPU/2 TeraNet SCR(即VBUSM SCR),带宽为256bit,其他低速总线为CPU/3,CPU/6,带宽参考图中所示。总线之间用Bridge(桥)连接,作用包括转换总线的速率,使之与所流向总线的速率相同等。

在具体应用中,各种速率的总线完全可以满足复杂的数据传输,而数据传输的瓶颈往往在于连接总线之间的Bridge。下面将举例说明,首先讲解下master访问salve的路径。

AIF2(片上协处理器,在LTE系统中用于接收天线数据)访问MSM(MSM为片上共享内存,对于Nyquist,大小为4M,它独立于四个CPU,四个CPU均可访问,管理MSM的为MSMC,即共享内存控制器,在MSMC上提供给协处理访问MSM的接口为SMS)DDR(DSP外接的扩展内存,即外存,在MSMC上提供给协处理访问DDR的接口为SES,MSMC详细内容可参考MSMC data manual):

1,AIF2访问MSM路径:

AIF2-->CPU/3低速总线-->Bridge-->CPU/2高速总线-->MSMC接口M3_SL2(即SMS)-->MSM。(见图中的蓝色曲线)

2,AIF2访问DDR路径:

AIF2-->CPU/3低速总线-->Bridge-->CPU/2高速总线-->MSMC接口M3_DDR(即SES)-->EMIF(外部内存接口控制器)-->DDR。(见图中的蓝色曲线)

CPUx访问CPUy的L1或L2内存:

CPUx(通过corePac-x的XMC模块)-->MSMC S端口(S表示MSMC作为slave)-->MSMC M端口(M表示MSMC作为msater发起访问)-->CPU/2高速总线-->Bridge-->corePac-y的EMC模块-->corePac-y的L1或L2内存。(图中紫色曲线)

Bridge的瓶颈问题:

如图中示,若FFTC与AIF2或者还有其他模块同时访问了MSM或者DDR,这样连接CPU/3与CPU/2的Bidge(指向CPU/2总线方向的Bridge)将面临很大的压力,Bridge必将舍弃一些数据传输任务,导致数据传输失败,如AIF2无法写或读MSM或DDR内存,导致软件或硬件出现问题。

解决Bridge瓶颈问题的办法:

1,尽量避免多个Master(图中左下侧连接CPU/3总线的master)同时访问MSM或DDR.

2,如果无法避免多个Master同时访问MSM或DDR,可将某些Master的内存空间设置在corePac中的L1D或者L2资源,这样可以避免访问MSM或者DDR的次数,减小Bridge的数据传输压力。因为Mster(图中左下侧连接CPU/3总线的master)访问corePac中的L1D或者L2资源不再需要经过连接CPU/3与CPU/2的Bidge(指向CPU/2总线方向的Bridge)。如指定AIF2将接收到的天线数据存储在需要处理该天线数据的CPU对应的corePac中的L1D或者L2资源中。

bubuko.com,布布扣

理解RMQ问题和ST算法的原理,布布扣,bubuko.com

理解RMQ问题和ST算法的原理

标签:style   blog   c   ext   http   a   

原文地址:http://blog.csdn.net/aitangyong/article/details/26940155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!