北京华清远见

一文读懂:嵌入式常见的存储器!

作者:华清远见 来源:华清远见
发布日期:2024年09月19日

存储器是计算机必不可少的组成部分,是用来存储程序代码和数据的...

存储器是计算机必不可少的组成部分,是用来存储程序代码和数据的部件,有了存储器,计算机才具有记忆功能。存储器通常分为内存和外存,内存是电路板上的半导体存储器件,外存包含硬盘、光盘、U盘、电子盘以及各类存储卡等等。对于嵌入式系统的存储器系统而言,与通用计算机系统的设计方法有所不同,嵌入式微处理器片上也集成了一定数量的存储器,是构成嵌入式系统硬件的主要组成部分。考查存储器性能的一些指标主要在于易失性、只读性、位容量、速度、功耗、可靠性以及价格等等因素。嵌入式存储器按掉电信息是否保留可以分为以下两大类,ROM和RAM,图示如下。非易失性存储器在电源关闭后,数据并不会消失。以存储器内的数据是否能在使用电脑时随时改写为标准,又可以分为两大类产品,即ROM只读存储器和Flash闪存存储器。01ROM只读存储器它是一种只能读出事先所存数据的固态半导体存储器。ROM中所存数据稳定,一旦存储数据就再也无法将之改变或者删除,断电后所存数据也不会消失。其结构简单,因而常用于存储各种固化程序和数据。在单片机中用来存储程序数据、常量数据或变量数据,凡是c文件及h文件中所有代码、全局变量、局部变量、const关键字修饰的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的BIOS)通通都存储在ROM中。其次,ROM的工作原理基于半导体存储技术,常见的ROM芯片由一系列固定的存储单元组成,每个单元代表一个位(0或1)。这些存储单元通过使用不同的半导体结构实现了在制造过程中将数据编码进去的功能。当读取数据时,电流被传递到特定的存储单元,通过检测电压的变化来确定存储的数据值。按照制造工艺又可分为Mask ROM、PROM(可编程ROM)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)等。02Flash闪存存储器Flash(快闪或闪存)是由Intel公司于1988年首先推出的是一种可用电快速擦除和编程的非易失性存储器,与传统的硬盘存储器相比,Flash Memory 具有质量轻、能耗低、体积小、抗震能力强等的优点,在嵌入式系统中通常用于存放系统、应用和数据等,Flash从芯片构造工艺上分为Nor Flash和Nand Flash两大类。Nor Flash的特点是芯片内执行(XIP),应用程序可以直接在内存Flash内运行,不必再把代码读到系统RAM中。Nor Flash的传输效率很高,在1~4MB的小容量时具有很高的成本效益。Nand Flash的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度很快,但是其管理和控制比较复杂。易失性存储器断电之后数据就会丢失,用于程序运行时的临时数据存储,可以以任意次序对存储器进行读写操作,典型的有SRAM和DRAM。01SRAM静态随机访问存储器SRAM静态随机访问存储器中所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。具有速度快、功耗大、价格贵、集成度低、不需要刷新、适用于CACHE高速缓存等特点。SRAM利用晶体管来存储数据,与DRAM相比,速度较快。但在相同面积中SRAM的容量要比其他类型的内存小。一个SRAM单元通常由4-6只晶体管组成,当这个SRAM单元被赋予0或者1的状态之后,它会保持这个状态直到下次被赋予新的状态,或者断电之后才会更改或者消失。一般而言,每个基本单元的晶体管数量越少,其占用面积就会越小。由于硅晶圆生产成本相对固定,所以SRAM基本单元面积越小,在芯片上就可制造更多的位元存储,每个位元存储的成本就越低。SRAM的速度相对比较快,且比较省电,但是存储1bit的信息需要4-6只晶体管,而DRAM只要1只晶体管就可以实现,制造成本可想而知。同时SRAM也有它的缺点,集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积。同样面积的硅片可以做出更大容量的DRAM,因此SRAM显得更贵,一般用小容量SRAM作为更高速CPU和较低速DRAM 之间的缓存。02DARM动态随机访问存储器DARM动态随机访问存储器,具有需要刷新、 结构简单、面积消耗小等特点,适用于制作大容量的存储芯片。其基本单元主要由一个晶体管和一个电容组成,是利用MOS管栅极寄生电容存储信息。电容中有电荷代表“1”,没有电荷代表“0”。由于电容中的电荷会随着时间的拉长而慢慢泄露,所以需要进行周期性地“充电”。电容的充电、放电、泄漏、补充是一个动态的过程,即动态随机访问存储器。此外为了提高系统的数据吞吐能力,可以采用多种技术提高DRAM系统的性能,包括页模式、EDO、同步DRAM等。由于DRAM亲民的价格、理想的访问速度,以及简单的构造非常有利于大规模的集成,所以现在被广泛地应用。另外,华妹已经为大家准备好了一份惊喜哦!包括嵌入式、物联网、人工智能、Java开发、web大前端等多门高薪就业课程并特意为大家准备了课程福利~↓金三密训·“职”等你赢↓线下购课福利详见海报↓玩赚春招·与“薪”同行↓线上购课福利详见海报END写在最后↓人工智能超前体验↓人工智能高端人才实战课程开启招生项目资料包免费领取毕业设计、项目实践、能力提升都给你备好了~如果有任何问题,欢迎给华妹留言华妹等你来撩~往期精彩回看技术干货集锦:超干货!嵌入式软件开发常用的三种架构居然是这三种?!超干货!五分钟带你了解WebSocket协议超干货!嵌入式工程师必须懂fork与vfork~超干货!STM32五大嵌入式操作系统的真相原来是这样!超干货!究竟谁还不知道嵌入式系统“四个地址”?!超干货!5步解决Linux内核内存泄漏~超干货!HTML5的前沿特性有哪些?超干货!谁能告诉我,硬件工程师到底还有没有前途啊?!超干货!嵌入式应用开发和嵌入式驱动开发,究竟该如何选择?超干货!ES数组中ES6的常用方法,你知道多少呢?超干货!2000+字告诉你:嵌入式到底卷不卷?!超干货!一文读懂:STM32究竟该如何配置HAL库!超干货!淦!嵌入式*火的方向必须有这几个!超干货!嵌入式C语言——断言函数assert()的应用,你又了解多少?超干货!月薪8K和年薪40W的嵌入式工程师到底差在哪了?超干货!嵌入式工程师都知道的行业真相!其开发中常用的三种架构竟然是............

相关资讯
嵌入式薪资到手真的有20K吗?让我们来一探究竟! 2024春招没拿到offer的大学生千万别点进来!!! 嵌入式面试八股文出炉喽! 嵌入式开发中常见的C语言技巧你都知道哪些呢?! 嵌入式开发中常见的C语言技巧你都知道哪些呢?!
相关课程