【入门-05】存储空间

编辑:CrazyRabbit
日期:2022年7月28日

本文是英飞凌官方培训的笔记摘录,入门篇第五节课。

1. 总述

下图是TC37x的架构框图,包含有3个TriCore核,每一个都包含一个DMI和PMI,分别是CPU的取数据、取指令接口。在DMI和PMI里分别有自己的DSPR和PSPR(Scratch-Pad Ram,集成在CPU上的高速RAM)。

对于SPR,查到的一些介绍(不保证正确):内核嵌入一块耦合紧密的SRAM,起到类似通用寄存器的作用。51的4组通用寄存器,既可以用作寄存器,又可以用作内部RAM,就是典型的Scratch-Pad。

除了CPU自身的内嵌RAM外,在SRI总线上还会有一块LMU(Local Memory Unit),LMU主要包含三部分:LMURAM、TRAM、EMEM。
image.png
TC3xx系列的亮点:
image.png

2. 内存布置

下图展示了TC3xx的内存布置:
image.png

  • PFLASH和DFLASH:非易失性内存,用于存一些代码和数据
  • UCB(User Configuration Blocks):用户可配置的内存块(在DFLASH中),可以配置芯片启动方式,是否对FLASH进行保护等
  • BootROM:英飞凌自用,不可更改,BootROM会根据UCB进行相关芯片配置,上电后跑的第一段代码就在这里
  • PSPR/DSPR(Program&Data Scratch-Pad RAM):允许CPU访问数据、指令比访问PFLASH、DFLASH更快
  • PCACHE/DCACHE:高速RAM

初次使用AURIX的人员容易混淆,比如:代码地址段在0x8…和0xA…,0x8带CACHE,0xA不带CACHE。实际上他物理上是同一个地方,只是访问0x8的时候,他先把指令从这个地方拷贝到PCACHE中,CPU从PCACHE中找对应的指令,一次拷贝256个字节;如果是DCACHE的话,也类似,先把数据从被CACHE的地方拷贝到DCACHE,然后CPU去DCACHE Area取数据。
在多核使用中,需要注意,如果有一些共享变量,要被多个核访问。如果用CACHE的访问方式,会出现:在原始的地方(原核)数据已经被修改,而对于该核可能是从自己的CACHE中读取数据,会产生不一致。

  • LMU(Local Manage Unit):注意分为三个部分,LMURAM、TRAM(一般给调试器工具使用,如TRACE32)和EMEM(用于标定或深度Trace)。

image.png

  • 将4GB的可寻址范围分为了16个Segments,每个Segment是256MB
  • 每个Segment的高4分,代表的是Segment Number
  • 每个Segment都被允许访问一个specific area,无Cache或带Cache
  • 每个Segment的用处见图片右侧

3. 多样的取指模式

右边的图片分为两部分:一个是Data Access,一个是Code Fetch。
image.png
所谓Data Access,CPU0可以通过DMI从自己的DSPR0、PSPR0,其他CPU的DSPR1、PSPR1取数据,只是去其他CPU需要经过SRI总线,经过SRI总线就会有竞争。所以开发人员在做代码的变量分配的时候,尽量将其放在自己CPU的SPR中,访问效率会更高。
下面的Code Fetch,CPU0可以通过PMI去访问DSPR0、PSPR0、DSPR1、PSPR1里面的指令;同样,访问其他CPU需要经过SRI总线,会跟其他CPU或DMA做竞争,造成额外的延迟。在一些应用里,会将一些算法从FLASH拷贝到PSPR0中,这样对于CPU0的访问会很快。

4. 系统集成

  • 前面提到的Segment,要么是外设的地址空间,要么是cached/non-cached的内存;
  • 在TriCore架构下,不同的Segment有不同的访问characteristics(特征),比如访问属性,访问权限等,都可以做一些配置;
  • 访问Segment以外的地址空间,会产生一个Trap。

image.png
image.png

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CrazyRabbit0823

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

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

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

打赏作者

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

抵扣说明:

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

余额充值