C64x+ DSP 的带宽管理系统(BWM) & 图解
2009-02-17 23:38
197 查看
BWM的目的:确保某些请求(requestors)不会长时间的霸占总线,而阻止了来自c64x+ megamodule内源(resources)的请求。与c64x+的内存保护类似,BWM可对整个c64x+ megamodule做全局定义,但由每个local c64x+ megamodule源来实现。由此,初始化BWM就包含了对每个c64x+ megamodule源共同寄存器堆进行编程。
BWM对以下4个源进行带宽保护:
>Level 1 program(L1P) SRAM/cache
>Level 1 data(L1D) SRAM/cache
>Level 2(L2) SRAM/cache
>memory-mapped registers configuration bus
以上列出的每个c64x+ megamodule源存在以下一些潜在请求,这些请求也是由BWM来管理:
>CPU-initiated transfers: data access(load/store,etc) / program access
>可编程的cache一致性操作(如:writeback): block-based / global
>internal DMA(IDMA)-initiated transfers(and resulting coherency operations)
>external-initiated slave DMA(SDMA) transfers(and resulting coherency operations)
※一句话,以上即表示c64x+ megamodule包含的源,以及这些源相关的一些请求的优先级由BWM来管理。
BWM对以上源的带宽管理是通过优先级仲裁来实现的。当同时出现对一个源的多个请求,则优先级最高的请求首先获得访问权,以此来解决冲突。如果出现资源被连续抢占的情况,则由一个抢夺计数器(contention counter)来解决低优先级请求的服务,由它来保证每n个仲裁cycles必须响应一次低优先级请求,这个n可以通过对寄存器的MAXWAIT域编程来决定。资源请求受阻一次,则contention counter加1,当contention counter达到n时,则低优先级请求的优先级设为-1,并对该请求做出响应。因此,除了从高到低(0~8)9种优先级外,硬件还使用一个-1的优先级,表示某个传输请求因contention counter耗尽到n,使得该请求优先级获得提高。但用户不可对BWM仲裁控制寄存器直接写入-1的优先级。
一系列寄存器(仲裁控制寄存器)来实现BWM。这些寄存器在以下blocks中实现:L1D,L2,extended memory controller(EMC)。对L1P来说,没有可编程的BWM寄存器,但在L1P控制器中有固定带宽管理特性。 对每个源(L1D,L2,EMC)都有一系列仲裁寄存器(CPUARBD/ IDMAARBD/ SDMAARBD/ UCARBD& MDMAARBE),每个寄存器对应一个不同的请求。对应每个源的一组寄存器有相同的初始化值,对大多数应用来说,CPUARBD/ IDMAARBD/ SDMAARBD/ UCARBD的初始化值不需要修改。但MDMAARBE定义的优先级用于c64x+ megamodule以外数据传输,可能需要根据对应系统手册做些调整,大多数情况下,MDMAARBE应该通过编程提高优先级(赋更小值)。
BWM对以下4个源进行带宽保护:
>Level 1 program(L1P) SRAM/cache
>Level 1 data(L1D) SRAM/cache
>Level 2(L2) SRAM/cache
>memory-mapped registers configuration bus
以上列出的每个c64x+ megamodule源存在以下一些潜在请求,这些请求也是由BWM来管理:
>CPU-initiated transfers: data access(load/store,etc) / program access
>可编程的cache一致性操作(如:writeback): block-based / global
>internal DMA(IDMA)-initiated transfers(and resulting coherency operations)
>external-initiated slave DMA(SDMA) transfers(and resulting coherency operations)
※一句话,以上即表示c64x+ megamodule包含的源,以及这些源相关的一些请求的优先级由BWM来管理。
BWM对以上源的带宽管理是通过优先级仲裁来实现的。当同时出现对一个源的多个请求,则优先级最高的请求首先获得访问权,以此来解决冲突。如果出现资源被连续抢占的情况,则由一个抢夺计数器(contention counter)来解决低优先级请求的服务,由它来保证每n个仲裁cycles必须响应一次低优先级请求,这个n可以通过对寄存器的MAXWAIT域编程来决定。资源请求受阻一次,则contention counter加1,当contention counter达到n时,则低优先级请求的优先级设为-1,并对该请求做出响应。因此,除了从高到低(0~8)9种优先级外,硬件还使用一个-1的优先级,表示某个传输请求因contention counter耗尽到n,使得该请求优先级获得提高。但用户不可对BWM仲裁控制寄存器直接写入-1的优先级。
一系列寄存器(仲裁控制寄存器)来实现BWM。这些寄存器在以下blocks中实现:L1D,L2,extended memory controller(EMC)。对L1P来说,没有可编程的BWM寄存器,但在L1P控制器中有固定带宽管理特性。 对每个源(L1D,L2,EMC)都有一系列仲裁寄存器(CPUARBD/ IDMAARBD/ SDMAARBD/ UCARBD& MDMAARBE),每个寄存器对应一个不同的请求。对应每个源的一组寄存器有相同的初始化值,对大多数应用来说,CPUARBD/ IDMAARBD/ SDMAARBD/ UCARBD的初始化值不需要修改。但MDMAARBE定义的优先级用于c64x+ megamodule以外数据传输,可能需要根据对应系统手册做些调整,大多数情况下,MDMAARBE应该通过编程提高优先级(赋更小值)。
相关文章推荐
- 图解Android - Android GUI 系统 (2) - 窗口管理 (View, Canvas, Window Manager)
- 数据库SQL Server 2008&Visual Studio建立管理系统
- C语言 学生管理系统(结构体实现)
- init系统服务管理&&xinetd&&tcp_wrapper
- 三维数据管理&浏览BS系统项目总结
- Oracle & JSP 开发的小型信息管理系统 (一) 说明文档
- 机房(网吧)管理系统---需求分析&设想
- .NET快速信息化系统开发框架 V3.2->Web版本新增“文件管理中心”集上传、下载、文件共享等一身,非常实用的功能
- 图书管理系统代码  2 LibraryMain …
- Linux-系统管理-pkill&强制用户下线
- 记大型商业软件<<国土档案管理信息系统>>之系统简介
- 宏观CMS-->功能体系结构内容管理系统
- 黑马程序员 Java基础 --->7K面试题之交通灯管理系统
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->Web版本新增新的角色授权管理界面效率更高、更规范
- linux带宽管理系统 tc 配置(QOS)
- 学生信息管理系统-顺序表&&链表(数据结构第一次作业)
- pSOS&Win32--系统调用封装-任务管理(1): 创建 删除 取得
- EBS系统管理常用SQL语句整理汇总(参考网上资料&其他人博客)
- Oracle & JSP 开发的小型信息管理系统 (二) 源代码1
- DSP 2812: 使用C++封装系统时钟管理模块