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?

     

  • 相关阅读:
    ffmpeg rtmp推流 视频转码
    java日志发展史 log4j slf4j log4j2 jul jcl 日志和各种桥接包的关系
    nginx stream 流转发,可以转发rtmp、mysql访问流,转发rtmp、jdbc请求
    java web http 转https 通过nginx代理访问
    linux 服务器磁盘挂载
    novnc 通过websockify代理 配置多点访问
    linux 文件服务 minio 安装部署配置
    AOP实现原理,手写aop
    java 泛型
    JAVA反射getGenericSuperclass()用法
  • 原文地址:https://www.cnblogs.com/firege/p/5805775.html
Copyright © 2011-2022 走看看