• 【入门-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

  • 相关阅读:
    43期《深入浅出Pytorch》课程 - Task01:PyTorch的安装和基础知识+前置知识打卡
    WSL2-ubuntu18.04配置笔记4:内网穿透实现不同局域网下远程登陆
    2022面试相关- web浏览器相关知识
    nodejs 爬虫 axios 异步爬虫 教程 【一】
    vue-router导入视图文件方式与打包参数的差异
    Java基本问题:求教
    编译运行Linux内核
    Win11笔记本耗电太快怎么办?
    国标28181 开源WVP-PRO项目部署
    Spring Cache代理对象 redis篇
  • 原文地址:https://blog.csdn.net/CrazyRabbit1989/article/details/126034296