//存储器种类

计算机用存储器来存储数据和代码两部分内容。

used_memory_peak_perc和used_memory_dataset_perc过高_易失性存储器

要根据储器掉电后存储的内容是否丢失,分成“易失性存储器”和“非易失性存储器”两大类。

一般的易失性存储器存储速度快如内存,非易失性存储器能长期保存数据如硬盘。

RAM存储器

1、命名:

RAM=random access memory,翻译为随机访问存储器。历史原因和磁鼓存储器的顺序读写有关,现在代指易失性半导体存储器。

2、分类:

根据存储机制,分为DRAM动态随机存储器SRAM静态随机存储器

===

3、DRAM==dynamic RAM;

存储单元以电容电荷来表示数据, 电容有电代表1,否则为0。时间长了有电的电容会放电,无电的电容会吸收电,因此需要定期刷新,这就是dynamic表示的特性。分类:

[1]SDRAM==synchronous DRAM

根据通讯方式不通过,分成同步DRAM和异步DRAM两种,这两种方式根据通讯时是否需要时钟来区分。利用时钟进行同步通讯的时序,上升沿表示有效数据:

SDRAM=用时钟同步的通讯方式速度更快,使用更广泛。

[2]DDR SDRAM==double data rate SDRAM

SDRAM只在上升沿表示有效数据,一个时钟周期内只能表示一个数据;而DDR SDRAM在时钟的上升沿和下降沿各表示一个数据,一个时钟周期内能表示2个数据,同频率下提升一倍速度。

DDRII和DDRIII ,通讯方式并没有区别,主要是通讯同步时钟的频率提高了。

4、SRAM

static RAM; 存储单元以锁存器来存储数据,这种电路结构不需要定期刷新充电,所以相对成为static。也有同步SSRAM和异步SRAM。

used_memory_peak_perc和used_memory_dataset_perc过高_易失性存储器_02

5、DRAM和SRAM的应用场合

used_memory_peak_perc和used_memory_dataset_perc过高_上升沿_03

SRAM一般只用于CPU内部的高速缓冲Cache,而外部扩展的内存使用SDRAM。

@在 STM32 系统的控制器中,只有 STM32F429 型号或更高级的芯片才支持扩展 SDRAM,其它型号如 STM32F1、 STM32F2 及 STM32F407 等型号只能扩展 SRAM。

///非易失性存储器=ROM

1、分类:半导体类 :ROM和FLASH; 非半导体类:光盘、软盘、机械硬盘。

2、命名由来: ROM=read only memory. 原意为 只读存储器,现在代指 非易失性半导体存储器,含FLASH。

3、ROM分类:

[1]MASK ROM:掩膜半导体,内部数据在出厂时固化不能修改。

[2]OTPROM:one time programble ROM ,一次可编程存储器。出厂时内部空白,用户只能一次性写入。

[3]EPROM: erasable programmable ROM, 可重复擦写存储器。区别OTPROM进行改进,特点是使用紫外线找些芯片内部擦除数据,擦除和写入都要用专用设备。现在被EEPROM淘汰替代了。

[4]EEPROM:electrically erasable programmable ROM,

主流ROM,它能直接使用电路控制重复擦写,而且按字节为单位修改数据,不需要擦除整个芯片

FLASH存储器

1、命名

又称为闪存、FLASH ROM。

2、分类

根据存储电路不同分为:NOR FLASH和NAND FLASH。

3、基本特性(NOR和NAND共有)

[1]可重复擦写。

[2]写入前必须有擦除动作。

[3]容量比EEPROM大,以多个字节为单位擦除。如有NAND FLASH以4096字节为扇区作为最小擦除单位。

[4]擦除次数有限,一般10万次左右。接近寿命后导致写操作失败。NAND FLASH整块擦写,有一位失效会出现会坏块,寿命小于NOR。需要用探测/错误更正(EDC/ECC)算法保证数据正确性。

4、NOR和NAND差异:

【1】NAND FLASH相比于NOR: 便宜; 集成度高; 连续存储;地址和数据线共用;必须以块为单位读写;读取速度低;写入速度快,坏块多,不支持XIP。

@区分擦除和读写,两个都是以扇区/块为单位擦除,但nor可以基于字节读写,但nand必须基于块为单位读写。

【2】两者主要区别:是否支持XIP

NOR地址线和数据线分开,CPU可以按字节读写数据,符合CPU的指令译码要求。NOR可以当做断电后不丢失数据的RAM,只是擦除单位不同和读写速度慢于RAM。

NAND地址线和数据线共用,只能按块读写数据,不能直接返回指定地址的数据。代码要先加载到RAM,再由CPU执行。

【3】nor和nand使用场合

nor一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间;

nand多用在 多用于大数据量存储,如nand,sd卡,u盘。