TI_DSP_corePac_带宽管理 - 1(原理)

BWM(带宽管理,corePac中的模块,每个corePac有一个BWM)的目的是避免一个请求对一个资源的长期存取而造成的阻塞,BWM确保所有请求者都能获取一定大的带宽资源。

BWM是全局定义(对于整个corePac来说),局部实现(在每一个corePac中实现)。

初始化带宽管理既是设置一系列寄存器(arbitration registers),配置时需要在每个CPU上对同一寄存器设置(即每个仲裁寄存器都是CPU specific的,所有的CPU都有同样的一组仲裁寄存器,寄存器地址也是CPU specific的)。

BWM资源:

L1P SRAM/cache,L1D SRAM/cache,L2 SRAM/cache,配置总线。

请求集:

1,CPU发起的数据访问(load/store),程序访问(包括访问自己所属corePac的资源以及其他corePac的资源以及MSM,DDR);

2,IDMA发起的传输(以及产生的一致性操作);

3,cache一致性操作(eg,Wb) - global与block-based;

4,corePac外部发起的SDMA(以及产生的一致性操作)操作,即协处理器(DMA)或其他CPU访问当前CPU所在的corePac资源。

如下图,在L2内存控制器中实现了下面的仲裁寄存器:

CPUARBU:当前CPU(指当前CPUARBU寄存器所作用的CPU)访问L2内存(当前corePac)的仲裁寄存器;

IDMAARBU:当前CPU所在的corePac的IDMA模块访问L2内存的仲裁寄存器;

SDMAARBU:外设或其他CPU访问当前CPU所属的corePac的L2内存时的仲裁寄存器。注意这个仲裁寄存器是在L2内存控制器上实现,不是在EMC模块上实现。这里的L2内存控制器作为slave接收其他CPU以及外设对本corePac L2内存的访问请求并仲裁(对于L1D内存控制器,有相应的SDMAARBD);

UCARBU:对L2内存的一致性操作的仲裁寄存器;

MDMAARBU:当前CPU访问当前corePac之外的资源时的仲裁寄存器,注意这个仲裁寄存器是在L2内存控制器上实现,不是在XMC模块上实现。这里L2内存控制器作为master发起对其他corePac资源以及MSM,DDR的访问。

TI_DSP_corePac_带宽管理 - 1(原理)

时间: 2024-10-10 16:58:05

TI_DSP_corePac_带宽管理 - 1(原理)的相关文章

TI_DSP_corePac_带宽管理 - 1.1(原理)

There is no systematic design for shared resource access priority in platform side, and there is no interface provided byplatform that can be used by application to do bandwidth management optimization. Different application has different traffic mod

TI_DSP_corePac_带宽管理 - 2(举例)

MDMAARBU: The master DMA arbitration control register (MDMAARBU) controls the priority levels of MDMA requests going out of CorePac. It controls the priority levels used by the L2 memory controller when sending requests to XMC. When sending requests

TI_DSP_corePac_带宽管理 - 1.2(仲裁寄存器default值)

仲裁寄存器default值: The default values of CPUARB, IDMAARB, SDMAARB, and UCARB are sufficient for most applications. These registers define priorities that are internal to the C66x CorePac.The MDMAARBU register defines priority for MDMA transactions outsid

TI_DSP_corePac_带宽管理 - 1.2(仲裁寄存器)

下图为仲裁寄存器,重要的是理解SDMAARB寄存器.在该寄存器中仅仅须要设计MAXWAIT值,PRI(优先级)设置要在外设(如FFTC,AIF2等)提供的仲裁寄存器中设置,由于是外设在訪问slave,所以他们最清楚应该设置多大的优先级.例如以下述代码(在每一个CPU上都要设置类似的代码,这样才干对每一个corePac中的资源起作用,即当FFTC,AIF2等外设訪问各个corePac中的资源的时候.会採用对应CPU上设置的优先级进行訪问): /*Configure FFTC CDMA priori

QoS最佳实践,实现更好的带宽管理

服务质量(QoS)使管理员能够在通过公司网络时确定某些数据流量的优先级.但是为了使QoS工作,必须首先进行大量的规划和协调.如果你的网络遇到带宽和延迟问题,请确保遵循这些最佳实践指南,以便使用QoS技术实现更好的带宽管理.在开始开发QoS策略之前,执行网络评估非常重要.评估将提供有关网络当前状态的有价值信息,并为当前正在处理的数据流的类型和数量提供基线.这是识别拥塞,网络配置错误以及可能影响端到端QoS部署有用性的任何其他网络问题的最快且最简单的方法.例如,网络评估可以识别不具有QoS能力的过时

Objective-C内存管理与原理

尽管苹果在 iOS 5/ Mac OS X 10.7 开始导入ARC,利用 Xcode4.2 可以使用该机能.ARC就是自动引用计数,是一项为Objective - C程序在编译时提供自动内存管理的功能.ARC可以让你把注意力集中在你感兴趣的代码,对象图,和你的应用程序中的对象之间的关系,让你不必再花费精力在retain和release操作上. 然而在一些老的项目中仍然需要使用手动去管理内存,防止内存泄露,而且学习一下手动管理对自己也有好处.本来打算自己写一篇,偶然发现已有一篇写的比较清晰明了的

Android内存管理的原理--进程管理

Android内存管理的原理--进程管理 Android采取了一种有别于 Linux 的进程管理策略,有别于Linux的在进程活动停止后就结束该进程,Android把这些进程都保留在内存中,直到系统需要更多内存为止.这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度. 那Android什么时候结束进程?结束哪个进程呢? 之前普遍的认识是Android是依据一个名为LRU(last recently used 最近使用过的程序)列表,将程

Linux TC 带宽管理队列规则

在着手学习TC之前,请先了解TC采用如下单位来描述带宽: mbps = 1024 kbps = 1024 * 1024 bps => byte/s mbit = 1024 kbit => kilo bit/s mb = 1024 kb = 1024 * 1024 b => byte mbit = 1024 kbit => kilo bit 内定:数值以bps和b方式储存.但当设置tc输出速率时,使用如下表示: 1Mbit = 1024 Kbit = 1024 * 1024 bps 

浅谈分布式集群管理的原理,看看集群究竟是做什么的

本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式专题的第11篇文章,我们一起来聊聊分布式集群资源管理. 在开始文章之前,我们先来问一个问题,为什么是国际上是亚马逊,国内是阿里这两家公司云计算搞得最好呢?这两家公司之间有一个巨大的共同点,就是它们都是电商公司.电商公司的特点很明显,就是流量不是固定的,往往会受到大促.节日的影响.像是国内的双十一和美国的黑色星期五就是典型的大促.在大促的时候的流量会是平常的十倍甚至更多,这么大的流量必须要有更多的机器去应对.但问题是如果去买这