zoukankan      html  css  js  c++  java
  • 第22章 常用存储器介绍—零死角玩转STM32-F429系列

    第22章     常用存储器介绍

    全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn

    野火视频教程优酷观看网址:http://i.youku.com/firege

    22.1 存储器种类

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

    221 基本存储器种类

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

    22.2 RAM存储器

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

    根据RAM的存储机制,又分为动态随机存储器DRAM(Dynamic RAM)以及静态随机存储器SRAM(Static RAM)两种。

    22.2.1 DRAM

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

    222 DRAM存储单元

    1.    SDRAM

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

    223 同步通讯时序图

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

    2.    DDR SDRAM

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

    当前个人计算机常用的内存条是DDRIII SDRAM存储器,在一个内存条上包含多个DDRIII SDRAM芯片。

    22.2.2 SRAM

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

    224 SRAM存储单元

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

    22.2.3 DRAM与SRAM的应用场合

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

    221 DRAMSRAM对比

    特性

    DRAM

    SRAM

    存取速度

    较慢

    较快

    集成度

    较高

    较低

    生产成本

    较低

    较高

    是否需要刷新

    所以在实际应用场合中,SRAM一般只用于CPU内部的高速缓存(Cache),而外部扩展的内存一般使用DRAM

    22.3 非易失性存储器

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

    22.3.1 ROM存储器

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

    1.    MASK ROM

    MASK(掩膜) ROM就是正宗的"Read Only Memory",存储在它内部的数据是在出厂时使用特殊工艺固化的,生产后就不可修改,其主要优势是大批量生产时成本低。当前在生产量大,数据不需要修改的场合,还有应用。

    2.    OTPROM

    OTPROM(One Time Programable ROM)是一次可编程存储器。这种存储器出厂时内部并没有资料,用户可以使用专用的编程器将自己的资料写入,但只能写入一次,被写入过后,它的内容也不可再修改。在NXP公司生产的控制器芯片中常使用OTPROM来存储密钥;STM32F429系列的芯片内部也包含有一部分的OTPROM空间。

    3.    EPROM

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

    4.    EEPROM

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

    22.3.2 FLASH存储器

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

    222 NOR FLASH NAND FLASH特性对比

    特性

    NOR FLASH

    NAND FLASH

    同容量存储器成本

    较贵

    较便宜

    集成度

    较低

    较高

    介质类型

    随机存储

    连续存储

    地址线和数据线

    独立分开

    共用

    擦除单元

    以"扇区/块"擦除

    以"扇区/块"擦除

    读写单元

    可以基于字节读写

    必须以"块"为单位读写

    读取速度

    较高

    较低

    写入速度

    较低

    较高

    坏块

    较少

    较多

    是否支持XIP

    支持

    不支持

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

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

    而由于NAND的数据和地址线共用,只能按"块"来读写数据,假如NAND上存储了代码指令,CPUNAND地址后,它无法直接返回该地址的数据,所以不符合指令译码要求。表 222中的最后一项"是否支持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类型的。

    在本教程中会对如何使用RAMEEPROMFLASH存储器进行实例讲解。

    22.4 每课一问

    1.    查看自己计算机的内存条是什么类型的RAM以及CPU的Cache大小。

    2.    当前经常听到人们说的"手机内存"大小为16G/32G/64G是指RAM还是ROM的大小?它具体是哪一种存储器?(此处"RAM/ROM"指"易失/非易失"存储器)

    3.    查看自己实验板STM32芯片的RAM和FLASH这两个参数分别是多大,它的RAM是SRAM还是SDRAM?FLASH是NOR FLASH 还是NAND FLASH?

     

  • 相关阅读:
    spring入门(六)【springMVC中各数据源配置】
    spring入门(五)【springMVC环境搭建】
    spring入门(四)【面向切面编程】
    spring入门(三)【事务控制】
    json-lib的使用《二》
    Unity 游戏框架搭建 2018(七)命名的力量:变量
    Unity 游戏框架搭建 2018 (六) UI 管理神器 UI Kit
    Unity 游戏框架搭建 2018 (五) 资源管理神器 ResKit
    Unity 游戏框架搭建 2018 (四) 我所理解的框架
    Unity 游戏框架搭建 2018 (三) QFramework 快速入门
  • 原文地址:https://www.cnblogs.com/firege/p/5805775.html
Copyright © 2011-2022 走看看