[AutoSAR存储] 车载存储层次 和 常用存储芯片概述
公知及经验整理,原创保护,禁止转载。
专栏 《AutoSAR存储》
<<<< 返回总目录 <<<<
1 存储系统层次
先抛个问题, 为什么要划分存储器的层次?
速度越快,但成本越高,从经济的角度规划的存储空间越小。因此,必须采取逐级缓存的策略,将更重要的数据保存在速度更快的存储中,而离CPU核心越远的存储则更大。因为有分层,也就有不同的存储芯片。
存储层次是在计算机体系结构下存储系统层次结构的排列顺序。 每一层于下一层相比 都拥有 较高的速度 和 较低延迟性 ,以及 较小的容量 (也有少量例外,如AMD早期的Duron CPU)。大部分现今的中央处理器的速度都非常的快。大部分程序工作量需要存储器存取。由于高速缓存的效率和存储器传输位于层次结构中的不同等级,所以实际上会限制处理的速度,导致中央处理器花费大量的时间等待存储器I/O完成工作。
大部分汽车、电脑、芯片中的存储层次如下四层:
寄存器 :可能是最快的存取。在32位处理器,每个寄存器就是32位。x86处理器共有16个寄存器。
高速缓存 Cache (L1-L3:SRAM、L4:DRAM)
- 第一级高速缓存(L1)–通常存取只需要几个周期,通常是几十个KB。
- 第二级高速缓存(L2)–比L1约有2到10倍较高延迟性,通常是几百个KB或更多。
- 第三级高速缓存(L3)–比L2更高的延迟性,通常有数MB之大。
- 第四级高速缓存(L4)(不一定有)–CPU外部的DRAM,但速度较主存高。
主存(DRAM) : 存取需要几百个周期,可以大到数十GB。
磁盘存储 :Flash 闪存, 或是磁盘,需要成千上万个周期,容量非常大。

存储器有许多类型,可以根据其用途分为主存储器和辅助存储器。主存储器,也称为内存,以其快速的存取速度而著称,但其容量相对较小,价格也相对较高。辅助存储器,也称为外存储器,容量较大,价格较低,但存取速度较慢。主存储器存储立即要使用的程序和数据,而外存储器存储暂时不需要的程序和数据。两者之间经常进行信息交换。

2 常用存储器分类
存储 IC 在汽车市场中广泛应用,DRAM 和 NAND FLASH 占据存储市场绝大部分 份额。存储芯片按照其断电后是否可持续保存数据可分为易失性和非易失性两种, 其中易失性存储芯片可分为 DRAM 和 SRAM,非易失性存储芯片可分为 NAND FLASH 和 NOR FLASH,目前存储市场以 DRAM 和 NAND FLASH 为主。

(1) 易失性存储芯片:SRAM和DRAM是目前存储市场主流的两种类型。DRAM容量大、价格低、可扩展性强等特点,更适用于对存储容量要求较高、对读写速度要求不高的场合。而在移动端,LPDDR((Low Power Double Data Rate SDRAM))则更加受欢迎,由于其低功耗小体积等特点。
(2) 非易失性存储芯片:NOR闪存具有高效的读取速度,可以在芯片内直接执行应用程序,因此广泛应用于一些需要高速读取的场合,如系统启动、设备固件等。但在小容量存储器的应用场景下,NOR的性价比相比NAND并不优势。
而NAND闪存因其高存储容量、改写速度优秀、价格相对NOR更为实惠,因此在存储市场中占据了较大的份额,目前占据了42%的市场份额,成为了NOR的有力竞争者。
随着技术不断发展,闪存的存储容量也在不断提升。目前,市场上大多数闪存采用的是“2D NAND”技术,即制程在16nm及以上的平面闪存芯片。为了进一步提高存储密度,降低单位存储成本,2D NAND芯片的制程正在不断地缩小至15/16nm。
除此之外,为了进一步提升存储密度,行业内还采用了3D堆叠技术。3D NAND通过增加单位面积内的晶体管数量,可以进一步提高存储密度,同时还可以降低读取延迟和功耗。目前市场上的“3D NAND”芯片正在逐渐成为新兴的市场趋势。
存储器在新的电子电气结构中各个系统的中的分布图如下:

存储芯片在汽车上的应用

2.1 ROM
由于历史原因,虽然有的类型可以读也可以写,但是它们整体上被称为只读存储器(Read-Only Memory, ROM)。
PROM:Programmable ROM,可编程ROM,但只能被编程一次。每个存储器单元有一个熔丝(fuse),只能用高电流熔断一次。
EPROM:Erasable Programmable ROM,可擦写可编程ROM, 被擦除和重编程的次数可达1000次。EPROM有一个透明的石英窗口,允许光到达存储单元,紫外线照射过窗口,EPROM单元就被清0;对EPROM编程是通过使用一种把1写入EPROM的特殊设备完成。
EEPROM:Electrically Erasable PROM,电子可擦除PROM,它不需要物理上的一个独立编程设备,可以直接在电路板上编程。被编程次数可达10^5次。
2.2 SRAM
SRAM是静态随机存取存储器(Static Random Access Memory)的缩写,是一种高速缓存存储器,用来作为高速缓存存储器(cache),可以在CPU芯片上,也可以在片外。SRAM具有读写速度快,但价格贵,容量小。

SRAM 每一位都存储在一个双稳态的存储器单元里,每个单元是用6个晶体管来实现的。只要有电,这样一个电路可以无限期地保持在两个不同的电压配置或者状态之一。即使有干扰,当干扰消除后,电路就会恢复到稳定值。
技术替代趋势上,MRAM较有可能替代SRAM,因其持久性优势。
MRAM是磁性随机存取存储器(Magnetic Random Access Memory)的缩写,它具有非挥发性、快速读写、低功耗、无需刷新等特点。由于MRAM的持久性优势,未来有望替代SRAM成为高速缓存存储器。
2.3 DRAM
DRAM是动态随机存取存储器(Dynamic Random Access Memory)的缩写,是一种集成度高、容量大、价格便宜的存储器。DRAM具有容量大、价格低,但读写速度慢、需要刷新等缺点。

DRAM内存的每一位存储都依赖于一个微小电容的充电状态,通常这个电容只有约30毫皮法的大小。尽管DRAM的电容很小,但仍然会有漏电的情况发生,导致内存在10~100毫秒的时间内失去电荷。幸好CPU的时钟周期通常是在纳秒级别,所以相对而言DRAM内存的电压仍然相对稳定。为了让DRAM内存的每一位保持充电状态,内存系统必须定期读取并重写内存中的每一位置,这也就是“动态”这个词汇的来源。
DDR系列有望成为DRAM主流品类。 DDR(双倍数据率) SDRAM是一种高速动态随机存取存储器。它具有高速传输、高带宽、低功耗、价格低等特点,由于其更高的传输速率和数据预读取的位宽增加等优势,有望成为DRAM的主流品类。
LPDDR(Low Power Double Data Rate SDRAM)是低功耗双倍数据率同步动态随机存取存储器。它具有低功耗、小体积、高性能等特点,更适用于移动端应用领域。
2.4 MRAM
MRAM是一种非易失性的磁性随机存储器。它拥有SRAM的高速读取写入能力,以及DRAM的高集成度,而且基本上可以无限次地重复写入。
MRAM是汽车应用的理想选择存储芯片,MRAM具有快速且不易失的特点。实时监控的传感器数据可以实时写入,而不需要负载均衡或ECC开销。AEC-Q100 1级合格的MRAM将在发动机罩下应用中发现的延长温度(-40℃至125℃)下保留数据20年。意外断电不会影响数据完整性。
2.5 NOR Flash
Nor Flash 和 NAND Flash 都属于 Flash, Flash 存储器又可以细分成很多类别, 这超过了本文的范围。放个图给大家看看就好。

NOR Flash是一种应用领域非常广泛的存储芯片,基本上主流的电子产品都会使用它。甚至我们常用的手机摄像头和屏幕驱动电路板内部都会用到它。NOR Flash主要用来存储代码和一些比较小的数据文件,主流接口为SPI NOR,容量范围在1Mbit~128Mbit之间,封装形式以SOP-8为主,尺寸较小。
结构:NOR Flash存储器采用并行结构,将存储单元组织为存储单元阵列,每个存储单元阵列包含多个块,每个块包含多个扇区。这种结构使得NOR
Flash具有较快的读取速度和较低的访问延迟。
NOR Flash存储器是一种采用并行结构的存储设备。它将存储单元组织为存储单元阵列,每个存储单元阵列包含多个块,而每个块则包含多个扇区。这种设计使得NOR Flash具有较快的读取速度和较低的访问延迟。
NOR Flash存储器的主要特点是快速读取速度和较短的访问延迟。它适用于需要快速随机访问的应用。此外,NOR Flash还具备较快的擦写操作,可以按字节或按扇区进行擦除。然而,NOR Flash的存储密度相对较低,只适用于小容量的代码和程序。
由于NOR Flash存储器的快速读取速度和随机访问能力,它被广泛用于嵌入式系统中存储代码、固件和启动程序等。
NOR Flash的架构决定了它的容量不能太大,且读取速度相对较慢。但好处在于使用简单易懂,有些数据甚至可以直接用地址访问,不需要建立文件系统。这一点在攻城狮朋友中备受欢迎。
2. 6 NAND Flash
NAND Flash 作为一种存储介质,广泛应用于固态硬盘,UFS,eMMC,SD卡,U盘等存储产品中;闪存是一种非易失性存储器,即断电数据也不会丢失。
结构:NAND Flash存储器采用并行结构,将存储单元组织为存储单元阵列,每个存储单元阵列包含多个页,每页包含多个块,每块包含多个扇区。这种结构使得NAND Flash具有较高的存储密度。
特点:
高存储密度:适用于存储大容量的数据。
快速读取速度:NAND Flash具有较快的读取速度
擦写耗时较长:NAND Flash的擦写操作需要较长时间,通常以块为单位进行擦除 。
适用于存储应用:由于高存储密度和较低的成本,NAND Flash 广泛应用于大容量存储设备 ,如固态硬盘(SSD)、USB闪存驱动器和存储卡等。
车载 NAND Flash 存储器的演进过程
早期的GPS导航仪、行车记录仪等车载设备配备的基本都是SD卡。由于依靠的仅是SD的金手指和卡槽内的金属触点连接,无法长时间可靠地适应汽车内颠簸、高温、高湿的变化环境。
汽车行业的存储设备使用开始从SD卡转向eMMC和UFS存储芯片,这些芯片提供更好的稳定性和读写速度。与SD卡只有4比特的总线宽度不同,eMMC卡有8比特的总线宽度,最快可以提供400MB/S的读取速度,而UFS存储芯片的读取速度更是可以达到惊人的2.9GB每秒。未来,基于PCIe接口的NVMe协议车规级SSD将提供大于10GB每秒的数据吞吐率,海量存储容量将为下一代智能车载系统提供强力支持。这些存储设备还具有实时响应和温度管理特性,可以快速适应汽车内部复杂的环境变化。
下一讲我们从存储子系统层次依次来展开介绍, 像是剥洋葱一样, 漫漫揭开它的面纱。
参考
| 编号 | 链接 |
|---|---|
| 1 | 一文读懂车载存储芯片 |
| 2 | SOC处理器的存储 |
| 3 | 计算机存储层次及常用存储简介 |

相关文章:
[AutoSAR存储] 车载存储层次 和 常用存储芯片概述
公知及经验整理,原创保护,禁止转载。 专栏 《AutoSAR存储》 <<<< 返回总目录 <<<< 1 存储系统层次 先抛个问题, 为什么要划分存储器的层次? 速度越快,但成本越高,从经济的角度规…...
进程并发-信号量经典例题-吸烟者问题
1 题目描述 吸烟者问题 在一个房间内有三个吸烟者和一个香烟供应者。为了制造并抽掉香烟,每个吸烟者需要三样物品:烟草、纸和火柴,供应者有丰富物品提供。在三个吸烟者中,第一个有自己的烟草,第二个有自己的纸&#…...
[ruby on rails] array、jsonb字段
一、jsonb # 新增 add_column :shi_tis, :setting, :jsonb, default: {}# string转jsonb def changechange_column :users, :setting, :jsonb, using: setting::jsonb, default: {} end# 加索引 add_index :users, :setting, using: :gin # 这样就为setting jsonb字段创建了一…...
Feign接口请求返回异常 no suitable HttpMessageConvert found for response type
问题场景: 后端调用feign接口请求, 接口返回异常, no suitable HttpMessageConvert found for response type 问题描述 报错异常如下: //根据图片特征 去查询人员信息ResultVo<List> personVos ipbdFaceLibPersonApi.queryFacePersonByFeatur…...
【brpc学习实践九】mbvar及bvar可观测
概念、学习地址 mbvar中有两个类,分别是MVariable和MultiDimension,MVariable是多维度统计的基类,MultiDimension是派生模板类。也是主要用来多多线程计数用的。这里用到再详细去了解即可 https://github.com/luozesong/brpc/blob/master/do…...
Vue 3
Vu3 简述: 快速上手,开发即用,具体知识参考官方文档 具备知识 Vite 了解即可,使用时按需配置,更多参考官方文档( https://cn.vitejs.dev) 简述: 极速响应工具 (构建、启动、更新、插件使用等) 核心思想: 依赖 和 源码 工作原理: 引入rollup: 灵活,相比webpack速度快,…...
GitHub Copilot 替代品?
应该没人不知道代码补全这个东西了吧,第一次使用 GitHub Copilot 之后,只觉得真香,现在居然还有一点离不了了。后面因为收费原因,就没再用了,找了一个 tabnine 替代,用了几天,体验是真的比不上 …...
设计循环队列(详解)
呀哈喽,我是结衣 今天给大家带来的内容如标题所述,我们来设计环形队列,虽然队列没有讲,但是我就是想讲啊。那么环形队列现在开始。 队列的属性 在设计环形队列前,我们先要了解队列的特点(先进先出&#x…...
【Python】Vscode解决Python中制表符和空格混用导致的缩进问题
【Python】Vscode解决Python中制表符和空格混用导致的缩进问题 文章目录 【Python】Vscode解决Python中制表符和空格混用导致的缩进问题1. 问题来源2. 解决Reference 1. 问题来源 在python中使用缩进来进行代码块的分区,通常来说python的一个缩进包含4个空格&#…...
CocosCreator 面试题(十六)Cocos Creator 节点池的基本原理是什么?如何使用?
一、Cocos Creator 节点池的基本原理是什么? Cocos Creator 是一个游戏开发引擎,它提供了节点池(Node Pool)的功能,用于管理和重用游戏中的节点对象。节点池的基本原理如下: 创建初始节点:在游戏…...
VUE留言板
效果预览图 完整代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>作业</title><styl…...
【办公软件】电脑开机密码忘记了如何重置?
这个案例是家人的电脑,已经使用多年,又是有小孩操作过的,所以电脑密码根本不记得是什么了?那难道这台电脑就废了吗?需要重新装机吗?那里面的资料不是没有了? 为了解决以上问题,一般…...
PTA NeuDS-数据库题目集
一.判断题 1.在数据库中产生数据不一致的根本原因是冗余。T 解析:数据冗余是数据库中产生数据不一致的根本原因,因为当同一数据存储在多个位置时,如果其中一个位置的数据被修改,其他位置的数据就不一致了。因此,在数据…...
Redis深入理解-内核请求处理流程、数据传输协议
Redis 内核级请求处理流程 Redis Server 其实就是 Linux 服务器中的一个进程 主要还是下图的流程 应用先和 server 端建立 TCP 连接建立连接之后,server 端就会有一个与该客户端通信的 socket,客户端的读写请求发送到服务端的 socket那么通过 IO 多路…...
Mac电脑卸载/删除nodejs
使用命令行卸载 Node.js 第一步:打开终端,输入以下命令显示 Node.js 的安装路径: which node执行该命令后,会显示安装路径: /usr/local/bin/node第二步:输入以下命令删除 Node.js 相关的文件:…...
C语言之内存函数
C语言之内存函数 文章目录 C语言之内存函数1. memcpy 使⽤和模拟实现1.1 memcpy 函数的使用1.3 memcpy的模拟实现 2. memmove 使⽤和模拟实现2.1 memmove 函数的使用2.2 memmove的模拟实现 3. memset 函数的使用4. memcmp 函数的使⽤ 1. memcpy 使⽤和模拟实现 函数声明如下&a…...
基本数据结构二叉树(1)
目录 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用(表示文件系统的目录树结构) 2.二叉树概念及结构 2.1概念 2.2现实中的二叉树: 2.3 特殊的二叉树: 2.5 二叉树的存储结构 2. 链式存…...
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
Android:Google三方库之Adjust集成详细步骤
通过 Adjust 安卓 SDK,您可以在自己的安卓应用中跟踪归因、事件及更多数据。请按照本指南中说明的步骤操作,在应用内设置 Adjust SDK 1、添加依赖 //adjustimplementation("com.adjust.sdk:adjust-android:4.33.5")implementation("com.…...
prometheus|云原生|grafana-9.4.3版本的主题更改
一, grafana-9.4.3版本的主题更改 grafana-9.4.3版本应该是目前比较高的版本了,但不知道是什么原因,grafana的主题界面并不多,只有暗色,亮色和系统色三种 配置管理----首选项里可以看到 亮色: 暗色&…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看
文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...
基于Java+VUE+MariaDB实现(Web)仿小米商城
仿小米商城 环境安装 nodejs maven JDK11 运行 mvn clean install -DskipTestscd adminmvn spring-boot:runcd ../webmvn spring-boot:runcd ../xiaomi-store-admin-vuenpm installnpm run servecd ../xiaomi-store-vuenpm installnpm run serve 注意:运行前…...
jdbc查询mysql数据库时,出现id顺序错误的情况
我在repository中的查询语句如下所示,即传入一个List<intager>的数据,返回这些id的问题列表。但是由于数据库查询时ID列表的顺序与预期不一致,会导致返回的id是从小到大排列的,但我不希望这样。 Query("SELECT NEW com…...
