关于Aurix的内存,缓存Cache,PSPR等的理解

谈思实验室 2024-03-04 17:13

点击上方蓝字谈思实验室

获取更多汽车网络安全资讯

01

AURIX的芯片手册

02

内存

内存在电脑中起着举足轻重的作用。内存一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)

RAM作为主存的主要部分,按其结构分为:

动态随机存取存储器 (Dynamic Random Access Memory,DRAM), 同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM), 静态随机存取存储器(Static Random-Access Memory,SRAM)。

可以理解为FLASH是一个静态的存储【也就是只读存储器(ROM)】,可以用来存储函数或者常量,也就是定义的这部分烧录到芯片里,执行内容不会有改变。即便掉电,里面的数据也不会丢失。

RAM是一个动态的存储,可以读数据,也可以写数据。RAM可以在运行过程中,可以当flash用。但是如果掉电,RAM里的数据不会保存,一旦掉电,数据就全没了。

举例:一个手机里存着我们很多的数据,如果手机关机,这些数据或者图片是存放在FLASH里的,因为FLASH是存放静态数据的,而当手机重新上电的时候,flash里的数据会通过指令传输到RAM里,之后在被系统里的函数调用,从而开机后,手机可以看到关机前的数据。

03

缓存

高速缓冲存储器(Cache),是位于CPU与主内存间的一种容量较小但速度很高的存储器:

由于CPU的速度远高于主内存,CPU直接从内存【(RAM)、(ROM)】中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。

缓存需要把内存里的数据放进来。Cache 的数据放置的策略决定了内存中的数据块会拷贝到 CPU Cache 中的哪个位置上,因为 Cache 的大小远远小于内存,所以,需要有一种地址关联的算法,能够让内存中的数据可以被映射到 Cache 中来。这个有点像内存地址从逻辑地址向物理地址映射的方法,但不完全一样。

缓存的命中:

根据要寻址的地址的tag来逐一与cache中的tag字段比较,如果有与之匹配的cache line,也就是cache hit,如果遍历整个cache,也没有找到匹配的cache line,那就是cache miss了。

Cache的层次设计:

Cache设计采用了指令 Cache(简称I-Cache)和数据Cache (简称D-Cache) 分开的方式。

1.在 I-Cache中存储有微处理器需要的指令,在微处理器的取指阶段,通过程序计数器PC提供给I-Cache的地址,微处理器可以获取需要的指令。

2.而D-Cache则是作为一个数据的存储,并提供对于Load/Store指令所要操作地址的数据,它地址则来自于ALU运算的结果。

I-Cache和微处理器的接口以及I-Cache和L2 I-Cache的接口都是单向的。D-Cache和微处理器的接口以及D-Cache和L2 Cache的接口是双向的。这样处理的原因在于I-Cache存储的是指令,不需要更改所存储的数据的值。而D-Cache 中存储的是数据,其值会根据指令操作的不同而改变。比如:在运行 Store 指令的时候会对 D-Cache 中相应地址进行写入数据的操作。

04

AURIX中的Cache

在AURIX中,CPU分为Cache和Non-Cache,CPU0的PFlash访问方式如下图:

Cache使能的方式是配置下面这个寄存器:




(1)使能Cache以后,每个CPU各有一段PCache/DCache区域,以便于提前缓存指令和数据(例如访问8和9的 Segment,这是打开了P-Cache后,P-Flash和LMU对应的地址)

当CPUx取指令时,会先去PCache空间查找指令,如果在PCache中查找到对应的指令,即:Cache Hit,则不必再去Physical Area搬运对应的数据,提高了指令读取的效率。如果没有找到对应的指令,即:Cache Miss,再去Physical Area搬运对应的数据到PCache空间(Program Cache refills),而搬运的过程需要额外的等待时间,等效于Non-Cached方式,指令读取时间延长;同理,当CPU取数据时,会先去DCache空间查找数据,如果在DCache中命中数据,则直接读取,如果没有命中,再去Physical Area搬运。

(2)对于Non-Cache方式读取指令和数据(例如访问10和11的 Segment,这是关闭了P-Cache后,P-Flash和LMU对应的地址),CPU需要直接访问Physical Area,而访问Physical Area区域所消耗的时间远比访问PCache/DCache区域慢的多。



P-Cache(P-Cache就是I-Cache)与D-Cache的区别

P-Cache的作用是缓存指令,D-Cache是缓存数据。指令一般不会被修改,所以P-Cache在硬件设计上是可以是只读的,这在一定程度上降低硬件设计的成本。D-Cache则是作为一个数据的存储,并提供对于Load/Store指令所要操作地址的数据,它地址则来自于ALU运算的结果。

在C语言中,内存主要分为5个区,分别为栈区、堆区、全局/静态存储区、常量存储区、代码区。其中代码区存放源程序的二进制代码,其余四个区都存储进程运行过程中需要的存储的变量。

一般,指令(P-Cache或者PSPR的内容)是放在代码区或者常量区,而数据(D-Cache或DSPR的内容)放在全局(静态)区。

举例:

我定义一个函数:

观察他的map文件里的地址:.o是他所属的C文件,下面是函数所属的地址。同样的我定义一个未初始化的全局变量,也可以找到他的地址。

上海众华律师事务所接受上海探偲商务信息咨询有限公司(以下称“委托人”的委托,指派本律师事务所胡晓光律师,就个别公司涉嫌不正当竞争,严重损害委托人合法权益事宜,作如下声明。


我定义一个全局变量:

他的map文件里的地址:.o是他所属的文件,下面是函数所属的地址。同样的我定义一个.bss或.data的全局变量,也可以找到他的地址。

linker file用来定义数据和代码具体存放在哪一块。比如它会规定存储在Flash的启动函数_START()的存储地址和BootROM里面reset vector内预设的地址匹配,这样复位以后就总会从启动函数_START()开始执行

如何在代码里将函数、变量、常量等由一个地址移到另一块地址:

举例:我想将代码里的函数从原来P-Cache的地址移到PSPR这个地址。要如何处理。原来P-Cache访问P-flash,现在改成PSPR访问P-flash


我在TASKING的.lsl文件中添加一个规则,这个规则的意思就是将代码中含有 PSPR_CORE2_CPULoad_Optimize 这个关键词的函数放到PSPR的地址里面。

代码中添加的内容是:

函数地址的变化:由801ea848变成50100004


上面是将某个函数换地址,也可以用上面的方式将整个文件的函数换地址,除此之外,还可以如下图将划线的内容改成CDD_SDH*,这样也可以将整个C文件的函数换个地址:

来源:本文为CSDN博主「梅尔文.古」的原创文章

原文链接:https://blog.csdn.net/xiandang8023/article/details/129752705

 精品活动推荐 

更多文章

关于涉嫌仿冒AutoSec会议品牌的律师声明

一文带你了解智能汽车车载网络通信安全架构

网络安全:TARA方法、工具与案例

汽车数据安全合规重点分析

浅析汽车芯片信息安全之安全启动

域集中式架构的汽车车载通信安全方案探究

系统安全架构之车辆网络安全架构

车联网中的隐私保护问题

智能网联汽车网络安全技术研究

AUTOSAR 信息安全框架和关键技术分析

AUTOSAR 信息安全机制有哪些?

信息安全的底层机制

汽车网络安全

Autosar硬件安全模块HSM的使用

首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议

谈思实验室 深入专注智能汽车网络安全与数据安全技术,专属汽车网络安全圈的头部学习交流平台和社区。平台定期会通过线上线下等形式进行一手干货内容输出,并依托丰富产业及专家资源,深化上下游供需对接,逐步壮大我国汽车安全文化及产业生态圈。
评论
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 136浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 49浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 77浏览
  • 概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后
    coyoo 2024-12-10 13:28 101浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 47浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 81浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 69浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 105浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 73浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 84浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 68浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦