常用存储器介绍

摘自“零死角玩转STM32—F03指南者”。

存储器是计算机结构的重要组成部分。存储器是用来存储程序代码和数据的部件,有了存储器计算机才具有记忆功能。

                                                 

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

RAM是“Random Access Memory”的缩写,被译为随机存储器。所谓“随机存取”,指的是当存储器中的消息被读取或者写入时,所需要的时间与这段信息所在的位置无关。

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

           根据DRAM的通讯方式,又分为同步和异步两种,这两种方式根据通讯时是否需要使用时钟信号来区分。由于使用时钟同步的通讯速度更快,所以同步DRAM使用更为广泛,这种DRAM被称为SDRAM(Synchronous DRAM);

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

    静态随机存储器SRAM的存储单元以锁存器来存储数据,这种电路结构不需要定时刷新充电,就能保持状态(断电数据还是会丢失的),所以这种c存储器被称为“静态(Static)”RAM。同样地,SRAM根据其通讯方式也分为同步(SSRAM)和异步SRAM,相对来说,异步SRAM用的比较广泛。

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

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

      MASK ROM是正宗的“ReadOnlyMemory”,存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改。

      OTPROM(One Time Programable ROM)是一次可编程存储器。这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。

      EPROM(Erasable Programable ROM)是可重复擦写的存储器,它解决了PROM芯片只能写入一次的问题。这种存储器使用紫外线照射芯片内部擦除数据,擦除和写入都要专用的设备。现在这种存储器基本淘汰,被 EEPROM 取代。

      EEPROM(Electrically Erasable Programable ROM)是电可擦除存储器。EEPROM可以重复擦写,它的擦除和写入都是直接使用电路控制,不需要再使用外部设备来擦写,而且可以按字节为单位修改数据,无需整个芯片擦出。

FLASH存储器又称为闪存,它也是可重复擦写的存储器,容量一般比EEPROM大,且在擦除湿,一般以多个字节为单位。如有的FLASH存储器以4096个字节为扇区,最小擦出单位为一个扇区。

      FLASH存储器又分为NOR FLASH和NANDFLASH。

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

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

       而由于NAND的数据和地址线共用,只能按“块”来读写数据,加入NAND上存储了代码指令,CPU给NAND地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。

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

       另外,FLASH的擦除次数都是有限的(现在普遍的是10万次左右),当它的使用接近寿命的时候,可能会出现写操作失败。由于NAND通常是整块擦写,块内有一位失效整个块就会失效,这被称为坏块,而且由于擦写过程复杂,从整体来说NOR块更少,寿命更长。NOR FLASH一般应用在代码存储的场合,如嵌入式控制器内部的程序存储空间。而NAND FLASH一般应用在大数据存储的场合,包括SD 卡、 U 盘以及固态硬盘等,都是 NAND FLASH 类型的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值