嵌入式系统内存终于搞明白了

李肖遥 2024-07-29 22:10
    关注、星标公众号,直达精彩内容


内存

内存是计算机中用于存储和读取数据的设备,它由一系列连续的存储单元组成,每个存储单元都有一个唯一的地址。内存可以分为主存和辅助存储器两种类型。主存是计算机中直接与CPU进行数据交换的部分,通常是指随机访问存储器(RAM,Random Access Memory)。辅助存储器则是用于长期存储数据的设备,如机械硬盘、固态硬盘(SSD,solid-state drive)等。当计算机执行程序时,需要将程序和相关数据加载到内存中,CPU通过读取内存中的指令和数据来进行计算和操作。  

嵌入式平台具有多层次的存储器结构,即不同类型存储器的集合,各类存储器具有不同的速度、容量和用途(如下图)。

寄存器

寄存器(Register)是计算机中的一种小型存储器件,用于存储处理器(CPU)需要快速访问的数据,通常被集成在处理器芯片中。寄存器是计算机中最快的存储器件之一,它们的访问速度比主存储器和辅助存储器要快得多,因此可以极大提升计算机的性能。常见的寄存器有以下几

    1)程序计数器

    程序计数器是一种特殊的寄存器,用于存储正在执行的程序的地址。当处理器执行程序时,它会不断地从程序计数器中读取指令并执行它们。

    2)指令寄存器

    指令寄存器用于存储当前正在执行的指令。处理器从指令寄存器中读取指令并执行它们。

    3)状态寄存器

    状态寄存器用于存储处理器的状态信息。状态寄存器中的位表示了处理器的不同状态,如进位标志、零标志、负数标志等。

    4)通用寄存器

    通用寄存器是一种通用的寄存器,用于存储处理器需要快速访问的数据。它们可以用于存储函数调用时的参数和返回值,以及存储中间计算结果等。


Cache

Cache是一种高速缓冲存储器,是为了解决CPU和主存之间速度不匹配而采用的一项重要技术,一般分为一级缓存 L1 Cache、二级缓存 L2 Cache、三级缓存 L3 Cache。在现在的系统中,处理器需要上百个时钟周期才能从主存中取到数据,如果没有cache,处理器在等待数据的大部分时间内将会停滞不动。

  • 位于内存和CPU之间,是一个读写速度比内存更快的存储器

  • 当CPU向内存中读写数据时,这些数据也会被读写入高速缓冲存储器中,如果 Cache 中没有,CPU会去读内存中的数据

    • 每次被访问的主存块,一定会被立即调入Cache

  • 为了进一步提升性能,引入多级Cache,与CPU离得最近的是L1,L1后面连接L2,L2和主存之间连接L3,等级越高,速度越慢(相比主存依然很快),容量越大

  • L1和L2往往都是SRAM


(1)L1 Cache

  • 一级缓存,与CPU离得最近的Cache,通常是32-64KB大小,一级缓存L1 Cache的容量是最小的

  • 一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache),二者分别用来处理数据和对这些这些数据的指令进行及时解码,而且二者可以同时被CPU访问,减少了用Cache所造成的冲突,提高了处理器效能

  • 目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量

  • L1 cache一般工作在CPU的时钟频率,要求的就是够快,可以在2-4时钟周期内取到数据

(2)L2 Cache

  • L2 cache相对来说是为提供更大的容量而优化的,因此比L1更便宜、省电,容量更大

  • 虽然L1和L2往往都是SRAM,但构成存储单元的晶体管并不一样

    • L1是为了更快的速度访问而优化过的,它用了更多/更复杂/更大的晶体管,从而更加昂贵和更加耗电

    • L2相对来说是为提供更大的容量优化的,用了更少/更简单的晶体管,从而相对便宜和省电

  • L2通常是256KB-2MB大小,一般从L2开始指令和数据就不分开了,可以在10-20个时钟周期内取到数据


(3)L3 Cache

  • 三级缓存,位于L2和主存之间,大小通常为8-80MB,20-50个时钟周期的访问时间

  • 在有一些CPU设计中,也会用DRAM实现大容量的L3 cache

备注:这里所说的时钟周期都是指的CPU的时钟周期。一般L2和L3的工作时钟频率要比CPU的低,这个时钟周期是折算后的数值。

RAM

随机访问存储器(RAM,Random Access Memory),通常也称为主存储器,是内存中最重要的一种,既可以读取数据,也可以写入数据,但是当机器掉电时,数据就会丢失。RAM根据信息存储的机理不同可以分为SRAM和DRAM。

(1)SRAM

静态随机访问存储器(SRAM,Static RAM),半导体存储器,存取速度比DRAM快,是目前读写速度最快的存储设备。

  • SRAM存储单元由基于晶体管的触发器电路组成,通过电流在电路中一对相反的门电路上双向切换来保存数据

  • 不需要刷新电路保存数据,只要电源不被切断,数据存入后不会消失

  • 集成度比较低,不适合做容量大的内存,相同容量成本DRAM高

  • 主要用于CPU内部的一级缓存(L1 Cache)以及二级(L2)缓存

  • 通过三组信号线与外部打交道:地址线、数据线、控制线,一般行列地址复用


(2)DRAM

动态随机访问存储器(DRAM,Dynamic RAM),同样属于半导体存储器。由于栅极会漏电,所以每隔一定的时间就需要一个刷新机构给这些栅电容补充电荷,并且每读出一次数据之后也需要补充电荷,这个就叫动态刷新,所以称其为动态随机存储器。

  • DRAM存储单元是具有电容器的电路,电容以存储电荷的方式存储数据(有电荷代表1,无电荷代表0)

  • 电容无法保存电荷(数据),因此需要对电容定期进行一次刷新动作(若电量大于满电量的1/2,则认为其代表1,并把电容充满电;若电量小于1/2,则认为其代表0,并把电容放电),来保持数据的连续性

  • DRAM保留数据的时间很短,速度也比SRAM相对慢一些,不过还是比任何的ROM都要快

  • 由于只使用一个MOS管来存信息,所以集成度很高,容量能够做的很大

  • 支持行列地址复用,从价格上来说DRAM相比SRAM要便宜很

  • DRAM分为很多种,常见的主要有SDRAM、DDR SDRAM、RDRAM、MDRAM、EDRAM、FRAM等

下面将介绍两种常见的DRAM:SDRAM、DDR(DDR SDRAM)。

SDRAM

同步动态随机存储器(SDRAM,Synchronous DRAM),比DRAM多了一个时钟同步,即数据的读写需要时钟来同步。同步是指其时钟频率和CPU前端总线的系统时钟相同,并且内部命令的发送与数据的传输都以它为基准。

  • 存储阵列需要不断的刷新来保证数据不丢失

  • 其存储单元不是按线性排列的,是分页的,因此数据不是线性依次存储,而是自由指定地址进行数据的读写

  • DRAM和SDRAM容量较SRAM大,但是读写速度不如SRAM

  • 一般的嵌入式产品里面的内存都是用的SDRAM


DDR

双倍数据速率同步随机存储器(DDR-SDRAM,Double Data Rate SDRAM),DDR是一种技术,使用了DDR技术的SDRAM是常见的计算机内存类型,用于存储数据和指令。

  • 可以在一个时钟读写两次数据,这样就使得数据传输速度加倍了

  • 广泛应用于个人电脑、服务器和其他计算设备中多高端的显卡上,也配备了高速DDR来提高带宽,这可以大幅度提高3D加速卡的像素渲染能力

  • DDR分类主要根据其数据传输速率和代号来进行区分

    • DDR1:DDR1是第一代DDR内存,数据传输速率相对于传统的SDRAM有所提升。它的数据传输速率相对较低,通常在200MHz到400MHz之间。DDR1内存模块有184个引脚。DDR1内存的代号通常以PC开头,如PC1600、PC2100等。

    • DDR2:DDR2是第二代DDR内存,相比DDR1有更高的数据传输速率和更低的功耗。通常在400MHz到1066MHz之间。DDR2内存模块有240个引脚。如PC2-3200、PC2-5300等。

    • DDR3:DDR3是第三代DDR内存,它的数据传输速率更高,通常在800MHz到2133MHz之间。DDR3内存模块有240个引脚。如PC3-8500、PC3-12800等。

    • DDR4:DDR4是第四代DDR内存,相比DDR3,它的数据传输速率更高,通常在2133MHz到3200MHz之间。DDR4内存模块有288个引脚。如PC4-17000、PC4-24000等。

    • DDR5:DDR5是最新一代的DDR内存,通常在3200MHz以上。DDR5内存模块有288个引脚。如PC5-3200、PC5-6400等。


ROM

只读存储器(ROM,Read Only Memory),一般只能用于数据的读取,不能写入,主要用于保存嵌入式系统中的永久性数据。通常不由系统主电源直接供电,而是由独立的小型板级电池供电。传统的ROM具备以下特点:

  • 一种线路最简单半导体电路,通过掩模工艺一次性制造,其中的代码与数据将永久保存(除非坏掉),掉电不丢失,不能进行修改

  • 一般在大批量生产时才会使用

  • 优点是成本低,但风险比较大,产品设计时,如果调试不彻底,很容易造成几千片的废片 


(1)PROM

可编程只读存储器(PROM,Programmable Red-Only Memory),产品只允许写入一次,所以也被称为“一次可编程只读存储器”(One Time Progarmming ROM,OTP-ROM)

  • PROM在出厂时,存储的内容全为1,用户可以根据需要将其中的某些单元写入数据0

  • 部分的PROM在出厂时数据全为0,则用户可以将其中的部分单元写入1, 以实现对其“编程”的目的

  • PROM的典型产品是“双极性熔丝结构“,如果我们想改写某些单元,则可以给这些单元以足够大的电流并维持一定的时间,原先的熔丝即可熔断,这样就达到了改某些位的效果

  • 另外一类经典的PROM为使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,还是用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可


(2)EPROM

可擦写可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)由MOS管组成, 可将高强度的短波紫外线照射进其内建透明窗口,从而实现数据擦除并进行多次编程。

  • 特点是具有可擦除功能,擦除后即可进行再编程

  • 缺点是擦除需要使用紫外线照射一定的时间

  • 这一类芯片特别容易识别,其封装中包含有“石英玻璃窗”,一个编程后的EPROM芯片的“石英玻璃窗”一般使用黑色不干胶纸盖住, 以防止遭到阳光直射


(3)EEPROM

电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)同EPROM一样,也可以多次擦除和重编程。

  • 最大优点是可直接用电信号擦除,也可用电信号写入

  • 擦除和重写是在字节(Byte)级别进行的

  • 缺点是价格很高,写入时间长,写入速度慢

EEPROM不能取代RAM的原因是其工艺复杂, 耗费的门电路过多,且重编程时间比较长,同时其有效重编程次数也比较低。

(4)Flash Memory

闪存也是一种非易失性的内存(NVM),属于EEPROM的改进产品,综合了RAM和ROM的优势,即不会断电丢失数据,同时还可以快速读取数据(NVRAM的优势)。

  • 用作存储Bootloader以及操作系统或者程序代码

  • 最大特点是必须按块(Block)擦除(每个区块的大小不定,不同厂家产品规格不同), 而EEPROM则可以一次只擦除一个字节

  • 广泛用在PC机的主板上,用来保存BIOS程序,便于进行程序的升级,另外一大应用领域是用来作为硬盘的替代品,具有抗震、速度快、无噪声、耗电低的优点,但是将其用来取代RAM就显得不合适,因为RAM需要能够按字节改写,而Flash做不到

目前Flash主要被分成两类:NOR FlashNAND Flash

Nor Flash

NOR型闪存,由Intel于1988年首次开发,以编码应用为主,其功能多与运算相关,读写数据时不容易出错。

  • 采用并行接口,有独立的地址线和数据线

  • 芯片内执行,这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中

  • 成本相对较高,容量较小,常见有128KB,256KB,1MB,2MB等


NAND Flash

NAND型闪存,由东芝发表于1989年,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级,主要功能是存储资料,如数码相机中所用的记忆卡。

  • 采用串行接口,地址线和数据线是共用的I/O线,类似电脑硬盘

  • CPU从里面读取数据的速度很慢,所以一般用NAND做闪存的话就必须把NAND里面的数据先读到内存里面,然后CPU才能够执行

  • 无法寻址和直接运行程序,只能存储数据

  • NAND FLASH非常容易出现坏区,所以需要有校验的算法

  • 成本相对较低,容量较大,常见有1GB,2GB甚至8GB等


eMMC

嵌入式多媒体卡(eMMC,embedded MultiMediaCard)是一种嵌入式、非易失的存储系统,主要由闪存(一般是Nand Flash)、闪存控制器(对内部的Nand Flash进行操作和管理)和eMMC协议接口等组成(如下图所示)以BGA的形式封装在一起。

  • 目前eMMC的版本包括:eMMC 5.1/5.0/4.5/4.41,版本越高,支持更高的时钟频率(200MHz max)和更快的数据传输速度(400MB/s Max)

  • eMMC只能由主机发起操作(主机为CPU的外设,由CPU进行配置操作),主机与eMMC之间通过命令交互

  • 采用8位(bit)并行接口,eMMC和主机之间只能进行半双工通信


版权声明:本文来源网络,免费传达知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除。

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧

关注我的微信公众号,回复“星球”加入知识星球,有问必答。



点击“阅读原文”查看知识星球详情,欢迎点分享、收藏、点赞、在看。

李肖遥 公众号“技术让梦想更伟大”,作者:李肖遥,专注嵌入式,只推荐适合你的博文,干货,技术心得,与君共勉。
评论
  • 本文介绍Linux系统更换开机logo方法教程,通用RK3566、RK3568、RK3588、RK3576等开发板,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。制作图片开机logo图片制作注意事项(1)图片必须为bmp格式;(2)图片大小不能大于4MB;(3)BMP位深最大是32,建议设置为8;(4)图片名称为logo.bmp和logo_kernel.bmp;开机
    Industio_触觉智能 2025-01-06 10:43 87浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球无人机锂电池产值达到2457百万美元,2024-2030年期间年复合增长率CAGR为9.6%。 无人机锂电池是无人机动力系统中存储并释放能量的部分。无人机使用的动力电池,大多数是锂聚合物电池,相较其他电池,锂聚合物电池具有较高的能量密度,较长寿命,同时也具有良好的放电特性和安全性。 全球无人机锂电池核心厂商有宁德新能源科技、欣旺达、鹏辉能源、深圳格瑞普和EaglePicher等,前五大厂商占有全球
    GIRtina 2025-01-07 11:02 61浏览
  • By Toradex 秦海1). 简介嵌入式平台设备基于Yocto Linux 在开发后期量产前期,为了安全以及提高启动速度等考虑,希望将 ARM 处理器平台的 Debug Console 输出关闭,本文就基于 NXP i.MX8MP ARM 处理器平台来演示相关流程。 本文所示例的平台来自于 Toradex Verdin i.MX8MP 嵌入式平台。  2. 准备a). Verdin i.MX8MP ARM核心版配合Dahlia载板并
    hai.qin_651820742 2025-01-07 14:52 38浏览
  • 大模型的赋能是指利用大型机器学习模型(如深度学习模型)来增强或改进各种应用和服务。这种技术在许多领域都显示出了巨大的潜力,包括但不限于以下几个方面: 1. 企业服务:大模型可以用于构建智能客服系统、知识库问答系统等,提升企业的服务质量和运营效率。 2. 教育服务:在教育领域,大模型被应用于个性化学习、智能辅导、作业批改等,帮助教师减轻工作负担,提高教学质量。 3. 工业智能化:大模型有助于解决工业领域的复杂性和不确定性问题,尽管在认知能力方面尚未完全具备专家级的复杂决策能力。 4. 消费
    丙丁先生 2025-01-07 09:25 77浏览
  • PLC组态方式主要有三种,每种都有其独特的特点和适用场景。下面来简单说说: 1. 硬件组态   定义:硬件组态指的是选择适合的PLC型号、I/O模块、通信模块等硬件组件,并按照实际需求进行连接和配置。    灵活性:这种方式允许用户根据项目需求自由搭配硬件组件,具有较高的灵活性。    成本:可能需要额外的硬件购买成本,适用于对系统性能和扩展性有较高要求的场合。 2. 软件组态   定义:软件组态主要是通过PLC
    丙丁先生 2025-01-06 09:23 83浏览
  • 彼得·德鲁克被誉为“现代管理学之父”,他的管理思想影响了无数企业和管理者。然而,关于他的书籍分类,一种流行的说法令人感到困惑:德鲁克一生写了39本书,其中15本是关于管理的,而其中“专门写工商企业或为企业管理者写的”只有两本——《为成果而管理》和《创新与企业家精神》。这样的表述广为流传,但深入探讨后却发现并不完全准确。让我们一起重新审视这一说法,解析其中的矛盾与根源,进而重新认识德鲁克的管理思想及其著作的真正价值。从《创新与企业家精神》看德鲁克的视角《创新与企业家精神》通常被认为是一本专为企业管
    优思学院 2025-01-06 12:03 113浏览
  • 在智能家居领域中,Wi-Fi、蓝牙、Zigbee、Thread与Z-Wave等无线通信协议是构建短距物联局域网的关键手段,它们常在实际应用中交叉运用,以满足智能家居生态系统多样化的功能需求。然而,这些协议之间并未遵循统一的互通标准,缺乏直接的互操作性,在进行组网时需要引入额外的网关作为“翻译桥梁”,极大地增加了系统的复杂性。 同时,Apple HomeKit、SamSung SmartThings、Amazon Alexa、Google Home等主流智能家居平台为了提升市占率与消费者
    华普微HOPERF 2025-01-06 17:23 141浏览
  • 每日可见的315MHz和433MHz遥控模块,你能分清楚吗?众所周知,一套遥控设备主要由发射部分和接收部分组成,发射器可以将控制者的控制按键经过编码,调制到射频信号上面,然后经天线发射出无线信号。而接收器是将天线接收到的无线信号进行解码,从而得到与控制按键相对应的信号,然后再去控制相应的设备工作。当前,常见的遥控设备主要分为红外遥控与无线电遥控两大类,其主要区别为所采用的载波频率及其应用场景不一致。红外遥控设备所采用的射频信号频率一般为38kHz,通常应用在电视、投影仪等设备中;而无线电遥控设备
    华普微HOPERF 2025-01-06 15:29 125浏览
  • 根据Global Info Research项目团队最新调研,预计2030年全球封闭式电机产值达到1425百万美元,2024-2030年期间年复合增长率CAGR为3.4%。 封闭式电机是一种电动机,其外壳设计为密闭结构,通常用于要求较高的防护等级的应用场合。封闭式电机可以有效防止外部灰尘、水分和其他污染物进入内部,从而保护电机的内部组件,延长其使用寿命。 环洋市场咨询机构出版的调研分析报告【全球封闭式电机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球封闭式电机总体规
    GIRtina 2025-01-06 11:10 103浏览
  •     为控制片内设备并且查询其工作状态,MCU内部总是有一组特殊功能寄存器(SFR,Special Function Register)。    使用Eclipse环境调试MCU程序时,可以利用 Peripheral Registers Viewer来查看SFR。这个小工具是怎样知道某个型号的MCU有怎样的寄存器定义呢?它使用一种描述性的文本文件——SVD文件。这个文件存储在下面红色字体的路径下。    例:南京沁恒  &n
    电子知识打边炉 2025-01-04 20:04 98浏览
  • 村田是目前全球量产硅电容的领先企业,其在2016年收购了法国IPDiA头部硅电容器公司,并于2023年6月宣布投资约100亿日元将硅电容产能提升两倍。以下内容主要来自村田官网信息整理,村田高密度硅电容器采用半导体MOS工艺开发,并使用3D结构来大幅增加电极表面,因此在给定的占位面积内增加了静电容量。村田的硅技术以嵌入非结晶基板的单片结构为基础(单层MIM和多层MIM—MIM是指金属 / 绝缘体/ 金属) 村田硅电容采用先进3D拓扑结构在100um内,使开发的有效静电容量面积相当于80个
    知白 2025-01-07 15:02 65浏览
  • 随着市场需求不断的变化,各行各业对CPU的要求越来越高,特别是近几年流行的 AIOT,为了有更好的用户体验,CPU的算力就要求更高了。今天为大家推荐由米尔基于瑞芯微RK3576处理器推出的MYC-LR3576核心板及开发板。关于RK3576处理器国产CPU,是这些年的骄傲,华为手机全国产化,国人一片呼声,再也不用卡脖子了。RK3576处理器,就是一款由国产是厂商瑞芯微,今年第二季推出的全新通用型的高性能SOC芯片,这款CPU到底有多么的高性能,下面看看它的几个特性:8核心6 TOPS超强算力双千
    米尔电子嵌入式 2025-01-03 17:04 55浏览
  • 这篇内容主要讨论三个基本问题,硅电容是什么,为什么要使用硅电容,如何正确使用硅电容?1.  硅电容是什么首先我们需要了解电容是什么?物理学上电容的概念指的是给定电位差下自由电荷的储藏量,记为C,单位是F,指的是容纳电荷的能力,C=εS/d=ε0εrS/4πkd(真空)=Q/U。百度百科上电容器的概念指的是两个相互靠近的导体,中间夹一层不导电的绝缘介质。通过观察电容本身的定义公式中可以看到,在各个变量中比较能够改变的就是εr,S和d,也就是介质的介电常数,金属板有效相对面积以及距离。当前
    知白 2025-01-06 12:04 167浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦