C64x+ 与 C64x Cache 区别
来源:互联网 发布:装修软件app排行 编辑:程序博客网 时间:2024/06/04 23:18
Write Buffer(WB):
1. C64x+的 write buffe(WB)宽度为128-bit; 而C64x WB宽度为64-bit;
可cache性(Cacheability):
2. 对C64x+,外部内存地址通过MAR-bit配置其可cache性,只对L1D和L2有效,即对指令cache来说,只会cache到L1P级;但对C64x来说,外部内存地址配置其cache性后,对L1P,L1D和L2均有效;
3. 对C64x+,整个外部内存地址均可配置成可cache性;但对C64x,仅部分地址段可以;
Snooping protocol:
4. 对C64x+,其保持cache一致性机制更为有效,因为它直接将数据发送到L1D CACHE和DMA,消除了因invalidates导致的大量cache miss,而C64x通过invalid 和writeback cache line来维持一致性,效率显然低些;(C64x+在修改数据的同时就进行了一致性维护!)
5. C64x+的snoop 一致性协议不能维护L1P cache和L2 SRAM之间的一致性,这个工作需要程序员来完成,而C64x可以做到;
Cache 一致性操作:
6. 对C64x+,即使L2 cache被disable了,L2仍然总是根据L1P 和L1D的变化来对L2 进行cache一致性维护。对C64x则不是这样,它需要明确使用L1一致性操作指令来对对L2进行维护;
7. C64x+支持完全的L1D cache一致性操作,相对应,C64x仅支持L1D范围内的invalidate 和writeback-invalidate;
8. 当cache大小改变时,C64x+在初始化新尺寸cache时会自动writeback-invalidate cache,相反,C64x需要程序员发出明确的writeback-invalidate指令;
9. C64x+,L2 cache不包含(noninclusive)L1D和L1P。这意味从L2牺牲的行不会造成L1P和L1D的对应行也被牺牲。然而,对C64x却是如此。noninclusive的优势是由于取指在L2中分配的行不会牺牲L1D cache中的数据行,由于取数在L2中分配的行不会造成L1P中的指令行被牺牲掉。这有利于减少cache misses。
10. C64x+在L1和L2之间添加了一条高带宽的DMA通道(IDMA),用于有效的将数据从L1 SRAM搬进、搬出。(SPRU871 有IDMA的详细介绍)
11. 由于C64x+上miss会导致大量的延时stall,因此,消除miss和充分利用miss pipelining变得非常重要。对C64x+来说,有了L1 SRAM、比较大的L1 cache容量、low-overhead snooping和L2 cache的noninclusivity, 这点相应变得容易了。
12. 利用L1D的miss pipelining对改善性能非常的重要。对C64x,数据miss pipelining可以减少4个stall;对C64x+,数据miss pipelining可以减少7.5到9个stall circles.
13. 通过C64x+带宽管理,不同请求间的访问冲突和bank冲突得以解决。(带宽管理详见:TMS320C64x+ DSP Megamodule Reference Guide)。
14. C64x+ cache控制器支持cache冻结模式,该模式可以阻止新行的分配。对防止L1P cache中经常重复使用的code被牺牲掉,这一点特别有用。
- C64x+ 与 C64x Cache 区别
- TMS320 C64x Cache Architecture
- C64x L1 L2 cache
- TI C64x+ DSP CACHE 一致性分析与维护
- TI C64x+ DSP CACHE 一致性分析与维护
- TI C64x+ DSP CACHE 一致性分析与维护
- C64x+DSP CACHE 一致性问题分析
- C6000系列的C64x+ Cache优化--配置,Cache miss和Cache一致性
- 【转载】C6000系列的C64x+ Cache优化--配置,Cache miss和Cache一致性
- C6000系列的C64x+ Cache优化--配置,Cache miss和Cache一致性
- C64x EDMA Architecture
- C64x+ Megamodule概述
- C64x+中断控制器
- C64x+ CPU中断
- C64x+ CPU中断 .
- C64x EDMA Architecture
- 何优化使用C6000系列C64x的Cache--原理,Cache种类和优化策略
- TMS320C64x DSP L1 L2 Cache架构(1)——C64x Cache Architecture
- iPhone开发之OCMock(一)如何添加OCMock framework
- 游戏中的那些事
- JS 时间函数
- java 中的大数据类型(BigInteger和BigDecimal)
- 模拟抽奖2011-12-12
- C64x+ 与 C64x Cache 区别
- 实例学习SSIS(四)--使用日志记录和错误流重定向
- 黑马程序员_聊天室学习(一)
- .Net设计规范读书笔记
- 实例学习SSIS(五)--理论介绍SSIS
- 内容页调用同一作者、来源、权重文章
- 继承成员变量和成员方法的区别
- 静态初始化块、初始化块、构造函数
- C++异常处理catch()中变量析构与构造的奇怪问题