当前位置: 首页 > news >正文

存储器介绍(2)

一、核心概念定义与核心异同

概念存储介质/硬件形态读写特性速度/延迟(FPGA场景)掉电易失性核心用途是否可编程(FPGA)
片内RAMFPGA内部逻辑资源构成(SRAM)随机读写,无擦写次数限制最快(ns级,<10ns),延迟极低易失临时缓存、寄存器堆、小数据缓冲区、FIFO底层可配置(大小/位宽)
ROMFPGA内部固化/配置的只读存储(或片外ROM)只读(部分FPGA可配置为一次编程)速度接近片内RAM(ns级)非易失存储固定参数、固件、查表(如LUT)部分可烧写(如FPGA的配置ROM)
FIFO基于片内RAM/BRAM实现的“先进先出”逻辑结构顺序读写(无地址,按入队顺序出队)速度等同于底层存储(BRAM实现则~10ns)易失跨时钟域数据同步、模块间数据缓冲、DMA数据中转可配置(深度/位宽)
CacheCPU/FPGA硬核(如硬核处理器)的高速缓存(SRAM)随机读写,硬件自动管理命中/替换接近片内RAM(ns级),比DDR快100倍+易失缓存DDR/Flash的高频访问数据,降低访存延迟硬核不可编程,仅可配置策略
DDRFPGA外部高速同步动态随机存储器(DDR3/4/5)随机读写,需刷新,按地址访问快(~100ns级),带宽高(GB/s级)易失海量数据临时存储(如视频帧、算法中间数据)需通过IP核配置(位宽/频率)
FlashFPGA外部非易失存储(NAND/NOR)读快、写/擦慢(擦写次数有限)慢(μs级),带宽中等非易失存储固件、配置文件、掉电需保留的海量数据需驱动/IP核控制读写
DMA硬件控制器(非存储,是数据传输模块)无存储能力,仅数据搬运传输速率取决于总线(DDR DMA达GB/s)无存储解放CPU/逻辑,自动搬运数据(如FIFO→DDR)可配置(传输模式/地址)
核心共性
  1. 除DMA外,均为数据存储相关(DMA是“搬运工”,无存储能力);
  2. 片内RAM/FIFO/Cache/ROM均为FPGA片内资源,DDR/Flash为片外外设
  3. 易失性存储(RAM/FIFO/Cache/DDR)均依赖供电维持数据,非易失(ROM/Flash)掉电数据保留。
核心差异
  1. “存储”vs“传输”:DMA是数据传输控制器,无存储功能;其余均为存储介质/结构;
  2. “随机访问”vs“顺序访问”:RAM/DDR/ROM/Cache支持按地址随机读写,FIFO仅支持先进先出顺序访问;
  3. “片内”vs“片外”:片内资源(RAM/ROM/FIFO/Cache)速度快但容量小,片外(DDR/Flash)容量大但速度慢、延迟高;
  4. “易失”vs“非易失”:片内RAM/FIFO/Cache/DDR掉电丢数据,ROM/Flash掉电保留;
  5. “读写效率”:Flash有擦写次数限制且写/擦慢,其余易失存储无擦写限制、读写高效。

二、分概念深度解读

1. 片内RAM(FPGA Block RAM/分布式RAM)
  • 本质:FPGA内置的SRAM(静态随机存储器),分“分布式RAM”(由LUT构成,容量小)和“Block RAM(BRAM)”(硬核RAM,容量大);
  • 特点:无需刷新,随机读写,延迟极低,是FPGA内最快的存储;
  • 场景:小数据缓存(如算法中间变量)、FIFO的物理载体、状态机缓存。
2. ROM(只读存储器)
  • FPGA场景:多为“配置ROM”(存储FPGA的比特流,上电加载)或“查找表ROM”(固化数学函数表、编码表);
  • 特点:只读(部分NOR ROM可多次编程),非易失,速度快;
  • 区别于RAM:无法实时写入,仅能读取预存数据。
3. FIFO(先进先出队列)
  • 本质:不是独立存储介质,是基于RAM/BRAM实现的逻辑结构,无地址线,仅通过“写使能/读使能”顺序读写;
  • 核心价值:解决跨时钟域数据传输(如200MHz逻辑→100MHz DDR控制器)、模块间数据缓冲(如ADC采集数据→DMA);
  • 区别于RAM:RAM按地址访问,FIFO按顺序访问,无需管理地址,更适合流式数据。
4. Cache(高速缓存)
  • FPGA场景:主要存在于FPGA的硬核处理器(如Zynq的ARM核),是CPU与DDR之间的“缓冲层”;
  • 原理:硬件自动将DDR中高频访问的数据缓存到Cache,减少CPU访存延迟;
  • 区别于片内RAM:Cache由硬件自动管理,片内RAM由用户逻辑手动控制。
5. DDR(DDR SDRAM)
  • 本质:FPGA外部的高速动态随机存储器,需定时刷新才能保留数据;
  • 特点:容量大(GB级)、带宽高(DDR4单通道可达16GB/s),但延迟比片内RAM高10倍以上;
  • 核心用途:FPGA处理海量数据时的临时存储(如视频图像处理、大数据运算)。
6. Flash(闪存)
  • 分类:NOR Flash(读快,适合存储固件)、NAND Flash(容量大,适合存储海量数据);
  • 特点:非易失,但写/擦速度慢(ms/μs级),且有擦写寿命(约10万~100万次);
  • FPGA场景:存储FPGA的配置文件(比特流)、掉电需保留的参数/日志。
7. DMA(直接存储器访问)
  • 本质:硬件控制器,独立于CPU/FPGA逻辑,可自动完成“存储→存储”的数据搬运;
  • 核心价值:无需CPU/逻辑干预,减少资源占用(如FIFO→DDR、DDR→Flash的数据传输);
  • 典型流程:FPGA采集数据到FIFO → DMA控制器自动将FIFO数据搬运到DDR → 处理完成后DMA将DDR数据写入Flash。

三、其他类似的器件/概念(FPGA/嵌入式常用)

1. BRAM/URAM(FPGA专用硬核RAM)
  • 归属:片内RAM的细分,BRAM是FPGA标配硬核RAM(如Xilinx 7系列BRAM为36Kb/块),URAM是超大容量硬核RAM(Xilinx UltraScale+系列,288Kb/块);
  • 特点:比分布式RAM容量大、功耗低,专门用于大缓存/FIFO实现。
2. SDRAM
  • 区别于DDR:DDR是SDRAM的升级版(双倍数据率),SDRAM为单倍数据率,速度更低,目前FPGA场景已基本被DDR取代。
3. eMMC/UFS
  • 本质:集成NAND Flash+控制器的片外存储(eMMC是嵌入式多媒体卡,UFS是通用闪存存储);
  • 特点:比裸Flash易用(控制器内置擦写/坏块管理),非易失,容量大(GB~TB级),速度比裸NAND快,适合FPGA/嵌入式系统存储海量数据。
4. SSRAM(静态同步RAM)
  • 区别于SRAM:SRAM是异步的,SSRAM是同步(与时钟同步),速度比异步SRAM快,常用于FPGA片外高速缓存(但目前多被DDR取代)。
5. CAM(内容寻址存储器)
  • 本质:特殊RAM,“按内容查地址”(普通RAM是按地址查内容);
  • FPGA场景:用于高速查表(如路由表、哈希匹配),比普通RAM查表快,但资源占用高。
6. TCM(紧耦合存储器)
  • 归属:FPGA硬核处理器(如Zynq)的片内RAM,直接挂在CPU总线上,延迟比Cache更低,用于存储实时性要求极高的代码/数据。
7. QSPI Flash
  • 本质:串行NOR Flash,通过QSPI总线与FPGA通信,体积小、功耗低,常用于存储FPGA配置文件、小型固件。

四、总结

需求场景优先选型核心依据
超高速小数据缓存片内RAM(BRAM)速度最快,延迟最低
跨时钟域/流式数据缓冲FIFO(BRAM实现)顺序读写,无需地址管理
海量临时数据存储DDR容量大、带宽高,易失不影响临时数据
掉电保留的固件/参数Flash(QSPI/NOR)非易失,读快,适合小容量固定数据
掉电保留的海量数据eMMC/UFS易用性高,容量大,适合嵌入式场景
解放逻辑/CPU的数传DMA自动搬运,降低资源占用
固定参数/查表ROM/CAMROM适合只读固定数据,CAM适合高速查表

核心逻辑:速度优先选片内(RAM/FIFO/ROM),容量优先选片外(DDR/Flash/eMMC),非易失选Flash/ROM/eMMC,易失选RAM/DDR/Cache,流式数据选FIFO,随机访问选RAM/DDR,数据搬运选DMA

http://www.jsqmd.com/news/125435/

相关文章:

  • L298N如何提升智能小车运动精度?全面讲解
  • 哪些领域或行业可能会因为 AI 技术的应用而迎来爆发性的增长?
  • AI报告审核助手:首批数字员工的核心落地形态与技术演进
  • AI报告审核助手:首批数字员工的核心落地形态与技术演进
  • 102302110_高悦_综合实践个人总结报告
  • Java 将 PowerPoint 转换为 HTML:实现跨平台展示与Web集成
  • Windows Defender永久禁用:系统优化终极解决方案
  • SMC磁耦合式无杆缸清洁
  • 如何通过ERP系统提升服装公司的管理效率?
  • I2S硬件连接:入门必看的引脚分配说明
  • Hotkey Detective终极指南:3步解决Windows热键冲突难题
  • Java代码
  • 使用 Git LFS 管理大文件
  • 从零实现UDS 28服务安全访问请求响应
  • 2025写文盘点:为了不被日更逼疯,我亲测了10款主流【ai写小说】工具
  • 基于java的SpringBoot/SSM+Vue+uniapp的新能源汽车服务系统的详细设计和实现(源码+lw+部署文档+讲解等)
  • 使用NPN三极管构建蜂鸣器电路手把手教程
  • 工业报警系统设计:蜂鸣器选型完整指南
  • 应用——MPlayer 媒体播放器系统代码详解
  • 终极Windows快捷键占用检测工具 | 一键排查热键冲突解决方案
  • STM32F1系列实现I2C HID从机操作指南
  • PLC 编程的工业用途:为什么现代工厂离不开它?
  • AI学习:什么是MCP,写第一个MCP
  • 【Mol Plant综述精读】植物中的染色质重塑:复合物组成、机制多样性及生物学功能
  • java学习--Math 类常用方法
  • 新人写文必看:如何用【ai生成小说】搞定日更?这篇万字实操干货告诉你
  • PostgreSQL 18 从新手到大师:实战指南 - 1.1 PostgreSQL 18简介
  • 2025年值得尝试的AI论文写作工具,支持LaTeX编辑与自动格式修正
  • 使用树莓派打造语音控制家居的超详细版教程
  • MECE法则,分析问题方法