关于Tricore Memory及访问速度--Apple的学习笔记

一,前言

我喜欢学习通用的东西,原因是网上资料多,学习起来资源多,速度快。这就是资源利用的效果。
而我工作中经常用到Tricore芯片,但是我主要是做协议开发的,芯片主要知道某些外设即可,没怎么花费时间去研究其它内容,因为我认为他是非标芯片。内核也很特别,学习完了,无法进行技能迁移,那么就白学了,是一件无意义的事情。但是近期我发现Tricore已经成为汽车零部件中的主流芯片了,虽然比不上arm芯片的广泛用途,但是我一直在汽车行业,从这个角度来看Tricore MCU可以理解为是通用芯片,而且我了解到这是MCU中比较复杂的芯片,为了让我的MCU工作生涯画一个圆满的句号,那么就有必要来深入学习下了。

二,专题学习

1. 关于访问速度

先要知道c代码编译会变成汇编,汇编就是一条指令。运行一条汇编指令的时间里面包括取指,译码,执行等,一般我们只要知道指令执行的机器周期,就大概可以评估时间了。机器周期就是主频的倒数。Tricore的主频设置为300M,那么1/300M=0.003us也就是3n秒。这里主要强调说的是指令执行时间。Tricore1.6.2P内核居然有3个pipeline并行,专门有一个Loop PipeLine,这是速度快的原因吧。


image.png

那么要取指令,也是访问memory也需要时间的也不能忽略不计的,memory访问速度如下


image.png

2.关于memory分布及cache和非cache地址

为了保证数据一致性一般我们用非cache的地址作为ram区域来读写,但是要速度快的情况下就会选用带cache地址。我之前只是大概了解,并没有深入理解和思考。然后查手册的时候不是从头看,是通过搜索快速看,导致理解断章取义或理解错误。
今天在memory的第二章从头开始看一般,很多疑惑就解决了。

A. 哪个是带cache哪个是不带cache的地址?

image.png

B. memory map后面的SRIBE是什么意思?

先要memory map通信使用的总线包括
System Peripheral Bus (SPB)
Shared Resource Interconnect (SRI)
Back Bone Bus (BBB)
然后就可以看到这些缩写的含义了


image.png

3. Memory通道概览

之前说的带cache功能就是如下图,比如DSPR有Dcache,不过Dcache能进行快速的临时交换数据,但是它的容量比DSPR要小。我理解当cache满的时候就只能存ram地址取值了。
DSPR和PSPR的区别,我一开始就说了访问速度,就是都是RAM,通过访问速度可以看出PSPR适合存放code,因为它的code feche时间为0,代表速度很快。比如可以bootloader的flash擦写程序放入PSPR,这样就不用写到代码中固定,需要使用的时候放入PSPR区域运行。
关于DLMU的功能和DSPR


image.png

关于DSPR和DLMU从下面的描述看不出什么区别,之前仅在手册上了解到DLMU0和DLMU1复位后不清0。估计5.7章节后面有详细描述。今天主要是看第二章节解决我疑惑的地址问题。


image.png

三,小结

再带着问题去看手册,效果更好。手册不求一次看懂,细水长流。

你可能感兴趣的:(关于Tricore Memory及访问速度--Apple的学习笔记)