CCM&Cache的异同

34 篇文章 2 订阅
1 篇文章 0 订阅

CCM是Closely coupled memories的缩写,中文名称是紧耦合存储器,哈佛架构下,一般有两种CCM,分别是ICCM和DCCM, ICCM主要用来存储指令和数据,DCCM仅用来存储数据。一般中低端MCU没有提供多级Cache,兼之指令和数据规模较小,会配备CCM存储器,多用于高可靠,高世实时场合。而高性能AP级处理器一般提供了多级CACHE减少存储访问的Latency,不采用CCM的方式。

比如ARM的TCM(Tightly Coupled Memory)就是一种CCM,它加速了核心对指令和数据的访问速度,通常一拍就可以拿到数据:

CCM和Cache的区别

CCM和CACHE在物理上都是一个片上RAM,由SRAM实现,可以实现在一个时钟周期读取其中存储内容(指令,数据)。但是不能将CCM和Cache之间画等号,Cache是影子内存,是不可以寻址的,Cacheline没有一个固定的地址,而CCM不同,CCM本质上是一个可寻址的片上存储器,每个存储单元有一个独立无二的地址,而且CCM也没有Cache中的替换问题。

打一个不太恰当的比喻,CCM是商品房,70年产权,有产权证,可以落户,而CACHE则是公租房,没有产权,不能继承,只能作为临时委身之所。

OR1200验证CCM

OR1200是一款成熟的32位RSIC软核处理器,其上的QMEM(Quick memory)就是一种CCM(CCM有很多马甲,比如ARM中的TCM,GPU中的 Scraptch Pad, 某些RISCV处理器中的ILM/DLM(Instruction/Data Local Memory,指令/数据本地存储器).OR1200是开源的,可以对它的RTL代码进行仿真分析CCM的实现细节。

QMEM在OR1200中的位置:

顺便多嘴提一句,根据上面OR1200的设计框图可以看出,I/D Cache是PIPT类型的,使用物理地址作为TAG和INDEX的索引。

TLB访问和CACHE访问孰先孰后

抛开具体的OR1200不谈,通用CPU架构设计中,两种顺序都有可能,如果CACHE位于TLB和CPU中间,比如核内的L1 CACHE,是先访问CACHE,CACHE不命中,才访问TLB,此时访问CACHE使用的是虚拟地址,被称为逻辑CACHE,L1 CACHE一般是VIVT的实现。反之,如果TLB位于Cache和CPU中间,如上图,这个时候先访问TLB,得到物理地址,然后用物理地址访问CACHE,这种情况被叫做物理CACHE,一般是PIPT或者VIPT。

Logic Cache && Physical Cache:

Cache分级

依据和CPU距离的不同,Cache可以有多级结构,可以类比与人的短期记忆和长期记忆,L1相当于人类大脑的短期记忆,查找速度快,但是容量小,很容易被新记忆覆盖。而L_N代表长期记忆,减速速度慢,但是容量大,可以记住很多很多的事情。

QMEM内部的实现细节

RTL仿真

对应指令文件,可以看到处理器从0x100地址启动,之后每拍都会返回一条指令。

QMEM本身作为指令存储使用,每条指令都有一个固定的地址, 通过一个RAM子模块实现:

QMEM内部SRAM的仿真:

CPU送到总线上的地址0x100为字节地址,QMEM SRAM识别的是DWORD地址,所以从SRAM上看到的地址为0x40,也是每拍打出一个数据(addr信号和doq信号).

读出来的6条指令和汇编指令吻合:


参考资料

MESI协议分析-CSDN博客

https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24593.pdf

HPM6000系列介绍及片上SRAM揭秘 - 知乎

L1 Cache architecture in ARM-CSDN博客

http://aturing.umcs.maine.edu/~meadow/courses/cos335/COA04.pdf

https://www3.yildiz.edu.tr/~naydin/CAr/LECTURES/PDF/CAr-13.pdf

TCM - 紧耦合内存 - 知乎

TCM(Tightly Coupled Memory)紧耦合存储器前身 - 知乎


结束

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值