1555|0

3836

帖子

19

TA的资源

纯净的硅(中级)

楼主
 

为什么C6000 需要Cache? [复制链接]

大容量的存储器(如DRAM)访问速度受到限制,一般比CPU时钟速度慢很多;小容量的存储器(如SRAM)能提供快速的访问速度。因此很多高性能的处理器都提供分层的存储访问架构。

如图3所示,左右分别是平坦式存储器架构和2层cache的多层存储架构。在左边的架构中,即使CPU能运行在600MHz,但由于片内/片外存储器只能运行在300MHz/100MHz,CPU在访问存储时需插入等待周期。

 


图3  平坦式和层级式存储器架构

Cache部分工作状态说明

  • Cache hit(缓存命中):对于已经缓存的程序/数据,访问将引起缓存命中,缓存中的指令/数据立即送入CPU而无需等待。

  • Cache miss(缓存缺失):发生缺失时,首先通过EMIF读入需要的指令/数据,指令/数据在送入CPU的同时被存入Cache,读入程序/数据的过程CPU被挂起。

  • Cache flush(缓存命中):清空Cache已经缓存的数据。

  • Cache freeze(缓存冻结):Cache内容不再改变,发生缺失时,从EMIF中读入的指令包不会同时存入Cache。

  • Cache bypass(缓存旁路):Cache内容不再改变,任何程序/数据都将从缓存外存储器访问。

 

C6000的存储架构

C6000系列DSP在片内RAM和CPU之间提供两层Cache L1和L2,每层Cache又分为独立的程序Cache和数据Cache。其中L1是固定的,L2可以被重映射为普通片内RAM。

对程序/数据进行访问时,CPU首先到L1 Cache中寻找,命中则直接访问,如果产生缺失,则继续在L2Cache中寻找,如果还未命中,则到片内RAM或片外RAM中寻址数据。

 


图4  C6000 CPU的程序/数据访问流程

 

访问定位的规律

由图4可知,要保证CPU的存储访问效率,只有在CPU在大部分的访问都是只针对最靠近它的存储区时才有效。幸运的是,根据访问定位的规律,这一条可以保证。访问的定位规律表明程序在一个相对小的时间窗口对仅需要一个相对较小size的数据和代码。数据定位的两条规律:

  • 空间关联性:当一个数据被访问时,它临近的数据又很大可能会被后续的存储访问。

  • 时间关联性:一个存储区被访问时,在下一个临近的时间点还会被访问。

 

优化cache性能

从访问定位规律出发,可总结出优化cache性能的一些基本准则:

  • 让函数尽可能充分的对数据处理以提高数据的重用。

  • 组织数据和代码以提高cache命中率。

  • 合理的空间划分来平衡程序cache和数据cache。

  • 组合那些对相同数据进行处理的函数在一个存储区域。

 

 段[1,6]  

目标文件(.obj)的最小单位称为段,它是占据一个连续空间的代码块或者数据块。连接器的功能之一就是把段重定位到目标系统的存储器映像图中。所有段都可以独立重定位,用户可以把任一段置入目标存储器任一指定块内。

一个COFF文件包含三个默认段:.text、.data、.bss。用户还可以创建、命名、连接自己的段,也可以继续在各个段中继续划分子段。

 

 

在C/C++代码中,有两个预编译语句可用来将特定的代码或数据分配到指定的段中:

  • CODE_SECTION:为代码分配段。

  • DATA_SECTION:为数据分配段。

 

栈和堆[1,6]

栈(.stack)和堆(.heap)是为处理器运行时提供支持的两个存储区。

栈是由编译器在需要时分配的,不需要时自动清除的变量存储区。它用于存放局部变量、函数参数等临时数据。

堆用于动态内存分配。堆在内存中位于bss区和栈区之间。一般由程序员分配和释放,若程序员不释放,程序结束时有可能由OS回收。例如C中常用的malloc()函数就是在堆中开辟区间存放数据。

点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表