常用存储器介绍

一、 存储器种类

 

存储器按其存储介质特性主要分为“易失性存储器”和“非易失性存储器”两大类。其中的“易失/非易失”是指存储器断电后,它存储的数据内容是否会丢失的特性。由于一般易失性存储器存取速度快,而非易失性存储器可长期保存数据,它们都在计算机中占据着重要角色。在计算机中易失性存储器最典型的代表是内存,非易失性存储器的代表则是硬盘。

 

二、RAM 存储器

RAM 是“Random Access Memory”的缩写,被译为随机存储器。所谓随机存取,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。这个词的由来是因为早期计算机曾使用磁鼓作为存储器,磁鼓是顺序读写设备,而 RAM 可随读取其内部任意地址的数据,时间都是相同的,因此得名。实际上现在 RAM 已经专门用于指代作为计算机内存的易失性半导体存储器。根据 RAM 的存储机制,又分为动态随机存储器 DRAM(Dynamic RAM)以及静态随机存储器 SRAM(Static RAM)两种。

 

 1. DRAM

动态随机存储器 DRAM 的存储单元以电容的电荷来表示数据,有电荷代表 1,无电荷代表 0。但时间一长,代表 1 的电容会放电,代表 0 的电容会吸收电荷,因此它需要定期刷新操作,这就是“动态(Dynamic)”一词所形容的特性。刷新操作会对电容进行检查,若电量大于满电量的 1/2,则认为其代表 1,并把电容充满电;若电量小于 1/2, 则认为其代表 0,并把电容放电,藉此来保证数据的正确性DRAM 存储单元。下图为DRAM 存储单元电路图。

 

(1)SDRAM

根据 DRAM 的通讯方式,又分为同步和异步两种,这两种方式根据通讯时是否需要使用时钟信号来区分。下图是一种利用时钟进行同步的通讯时序,它在时钟的上升沿表示有效数据。下图为同步通讯时序图

由于使用时钟同步的通讯速度更快,所以同步 DRAM 使用更为广泛,这种 DRAM 被称为 SDRAM(Synchronous DRAM)

(2)DDR SDRAM

为了进一步提高 SDRAM 的通讯速度,人们设计了 DDR SDRAM 存储器(Double Data Rate SDRAM)。它的存储特性与 SDRAM 没有区别,但 SDRAM 只在上升沿表示有效数据,在 1 个时钟周期内,只能表示 1 个有数据;而 DDR SDRAM 在时钟的上升沿及下降沿各表 示一个数据,也就是说在 1 个时钟周期内可以表示 2 位数据,在时钟频率同样的情况下, 提高了一倍的速度。

至于 DDRII DDRIII,它们的通讯方式并没有区别,主要是通讯同步时钟的频率提高了。 当前个人计算机常用的内存条是 DDRIII SDRAM 存储器,在一个内存条上包含多个 DDRIII SDRAM 芯片。

2. SRAM

静态随机存储器 SRAM 的存储单元以锁存器来存储数据。这种电路结构不需要定时刷新充电,就能保持状态(当然,如果断电了,数据还是会丢失的),所以这种存储器被称为“静态(Static)RAM。SRAM 存储单元电路图如下

同样地SRAM 根据其通讯方式也分为同步(SSRAM)和异步 SRAM,相对来说,异步 SRAM 用得比较广泛。

 

3. DRAM SRAM 的应用场合

对比 DRAM SRAM 的结构,可知 DRAM 的结构简单得多,所以生产相同容量的存储器,DRAM 的成本要更低,且集成度更高。而 DRAM 中的电容结构则决定了它的存取速度不如 SRAM,特性对比见下表。

 

特性

DRAM

SRAM

存取速度

较慢

较快

集成度

较高

较低

生成成本

较低

较高

是否需要刷新

 

所以在实际应用场合中,SRAM 一般只用于 CPU 内部的高速缓存(Cache),而外部扩展的内存一般使用 DRAM。在 STM32 系统的控制器中,只有 STM32F429 型号或更高级的芯片才支持扩展 SDRAM,其它型号如 STM32F1STM32F2 及STM32F407 等型号只能扩展SRAM

 

 

三、非易失性存储器

非易失性存储器种类非常多,半导体类的有 ROM FLASH,而其它的则包括光盘、软盘及机械硬盘。

1. ROM 存储器

ROM 是“Read Only Memory”的缩写,意为只能读的存储器。由于技术的发展,后来设计出了可以方便写入数据的 ROM,而这个“Read Only Memory”的名称被沿用下来了,现在一般用于指代非易失性半导体存储器,包括后面介绍的 FLASH 存储器,有些人也把它归到 ROM 类里边。

2. FLASH 存储器

FLASH 存储器又称为闪存,它也是可重复擦写的储器,部分书籍会把 FLASH 存储器称为 FLASH ROM,但它的容量一般比 EEPROM 大得多,且在擦除时,一般以多个字节为单位。如有的 FLASH 存储器以 4096 个字节为扇区,最小的擦除单位为一个扇区。根据存储单元电路的不同,FLASH 存储器又分为 NOR FLASH NAND FLASH

NOR NAND 的共性是在数据写入前都需要有擦除操作,而擦除操作一般是以“扇 区/块”为单位的。而 NOR NAND 特性的差别,主要是由于其内部“地址/数据线”是否分开导致的。

由于 NOR 的地址线和数据线分开,它可以按“字节”读写数据,符合 CPU 的指令译码执行要求,所以假如 NOR 上存储了代码指令,CPU NOR 一个地址,NOR 就能向CPU 返回一个数据让 CPU 执行,中间不需要额外的处理操作。

而由于 NAND 的数据和地址线共用,只能按“块”来读写数据,假如 NAND 上存储了代码指令,CPU NAND 地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。表中的最后一项“是否支持 XIP”描述的就是这种立即执行的特性(eXecute In Place)

若代码存储在 NAND 上,可以把它先加载到 RAM 存储器上,再由 CPU 执行。所以在 功能上可以认为 NOR 是一种断电后数据不丢失的 RAM,但它的擦除单位与 RAM 有区别,且读写速度比 RAM 要慢得多。

另外,FLASH 的擦除次数都是有限的(现在普遍是 10 万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。由于 NAND 通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块,而且由于擦写过程复杂,从整体来说 NOR 块块更少,寿命更长。由于可能存在坏块,所以 FLASH 存储器需要“探测/错误更正(EDC/ECC)”算法来确保数据的正确性。

由于两种 FLASH 存储器特性的差异,NOR FLASH 一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而 NAND FLASH 一般应用在大数据量存储的场合,包括 SD 卡、U 盘以及固态硬盘等,都是 NAND FLASH 类型的。

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值