编写版本:V1.0
一.常用的嵌入式操作系统的存储器有哪些?
存储器大体分为两大类,一类是掉电后存储信息就会丢失,称为“易失性存储器”,另一类是掉电后存储信息依然保留,称为“非易失性存储器”,分支如下图所示:
二.各个存储器的特性,使用场景和范围?
2.1 SRAM:
- 特性:
1.SRAM利用双稳态触发器来保存信息,只要不掉电,信息是不会丢失的。
2.SRAM读取速度是目前存储器中最快的了。
3.SRAM集成度低,功耗较大,相同的容量体积较大,而且价格较高。
- 使用场景和范围:
一般用小容量SRAM作为更高速CPU和较低速DRAM之间的缓存。
2.2 SDRAM(Synchronous DRAM):
- 特性:
1.DRAM是利用MOS(金属氧化物半导体)电容存储电荷来储存信息,因此必须通过不停的给电容充电来维持信息。
2.SDRAM基于双存储体结构,内含两个交错的存储阵列,当CPU从一个存储体或阵列访问数据时,另一个就已为读写数据做好了准备,通过这两个存储阵列的紧密切换,读取效率就能得到成倍的提高。
3.SDRAM将CPU与RAM通过一个相同的时钟锁在一起,使RAM和CPU能够共享一个时钟周期,以相同的速度同步工作。
- 使用场景及范围:
用于扩大程序代码存储空间、执行或计算,类似内存
2.3 DDR SDRAM
- 特性:
DDR SDRAM和SDRAM是基本一样,不同之处在于它可以在一个时钟读写两次数据,使得数据传输速度加倍了。
- 使用场景及范围:
一般用于需要高速缓冲大量数据系统中,如图像处理与高速数据采集等场合的系统中。
2.4 EEPROM
- 特性:
1.EEPROM是可以随机访问和修改任何一个字节,可以往每个bit中写入0或者1。
2.EEPROM掉电后数据不丢失,可以保持100年,可以擦写100w次。
3.具有较高的可靠性,但是电路复杂、成本高,因此目前的EEPROM都是几千字节,少有超过512k字节的。
- 使用场景及范围:
EEPROM可以用来存储一些变量(配置参数及少量数据),可根据需要进行修改,并且这些变量掉电后重新上电也不会改变。
2.5 NOR FLASH
- 特性:
1.芯片内执行(XIP,execute in place),程序可以直接在NOR FLASH片内执行,不需要复制到RAM就可以直接运行。
2.数据线和地址线分开,可以实现ram一样的随机寻址功能,可以读取任何一个字节。
3.NOR FLASH的读取和RAM很类型,只要能够提供数据地址,数据总线就能够正确的给出数据,但不可以直接进行写操作,写操作需要遵循特定的命令系列,最终由芯片内部的控制单元完成写操作。
4.从最小访问单元来看,NOR FLASH一般分为8位和16位(有些同时支持8位模式和16位模式)。
5.NOR FLASH的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。(NOR则要求在进行擦除前先要将目标块内所有的位都写为1,擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s)
- 使用场景及范围:
NOR FLASH一般只用来存储小容量的程序代码或数据存储,运行期间不允许修改。
2.6 NAND FLASH
- 特性:
1.NAND FLASH按块擦除,数据线和地址线复用,不能利用地址线随机寻址,读取只能按页来读取。
2.由于NAND FLASH引脚复用,因此读取速度比NOR FLASH慢一点,但是擦除和写入速度比NOR FLASH快很多。
3.NAND FLASH内部电路更简单,因此数据密度大,体积小,成本也低,因此大容量的FLASH都是NAND型的。
4.使用寿命上,NAND FLASH的擦除次数是NOR的数倍。而且NAND FLASH可以标记坏块,从而使软件跳过坏块,NOR FLASH一旦损坏便无法再使用。
- 使用场景及范围
NAND FLASH结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快,适合高数据存储密度的解决方案。
3、存储器怎么选型?
- 根据系统中存储需求,及各个存储器使用场景及范围选用(引导存储及配置存储必须非易失性存储器,程序存储选用闪存,或数据存储等需求)
- 确定存储器容量大小(大容量pin to pin可替换)及成本控制(不同存储器生产工艺不同)。
- 确定存储器接口类型及开发周期(普遍性)。
- 确定存储器的寿命问题(不同FLASH可擦写次数不同)