第十二章 嵌入式系统的存储体系

存储器部件的分类

  • 按在系统中的地位分类
    • 主存储器(Main Memory简称内存或主存)
    • 辅助存储器(Auxiliary Memory,Secondary Memory,简称辅存或外存
  • 内存通常用来容纳当前正在使用的或要经常使用的程序和数据,CPU可以直接对内存进行访问
    • 内存一般都用快速存储器件来构成,内存的存取速度很快,但内存空间的大小受到地址总线位数的限制
    • 系统软件中如引导程序、监控程序或者操作系统中的基本输入/输出部分BIOS都是必须常驻内存
    • 更多的系统软件和全部应用软件则在用到时由外存传送到内存
  • 外存也是用来存储各种信息的,存放的是相对来说不经常使用的程序和数据,其特点是容量大
    • 外存总是和某个外部设备相关的,常见的外存有软盘、硬盘、U盘、光盘等
    • CPU要使用外存的这些信息时,必须要通过专门的设备将信息先传送到内存中
  • 存储介质分类
    • 磁存储器(Magnetic Memory)
    • 半导体存储器
    • 光存储器(Optical Memory)
    • 激光光盘存储器(Laser Optical Disk)
  • 按信息存取方式分类
    • 随机存取存储器(Random Access Memory,RAM)
    • 只读存储器(Read Only Memory,ROM)
  • 随机存取存储器是一种在机器运行期间可读、可写的存储器,又称读写存储器

存储器的组织和结构

  • 存储器的参数:容量、数据宽度
  • 存储器的容量是描述存储器的最基本参数,如4MB。存储器的表示不唯一,不同表示方法有不同的数据宽度
  • 在存储器内部,数据是存放在二维阵列存储单元中
    • 阵列以二维的形式存储,给出的n位地址被分成行地址和列地址(n=r+c)。r是行地址数,c是列地址数
    • 行列选定一个特定存储单元

存储器的组织和结构

常见的嵌入式系统存储设备

RAM(随机存储器)

  • RAM可以被读和写,地址可以以任意次序被读

  • 常见RAM的种类有

    • SRAM(Static RAM,静态随机存储器)
    • DRAM(Dynamic RAM,动态随机存储器)
    • DDRAM(Double Data Rate SDRAM,双倍速率随机存储器)
  • SRAM比DRAM运行速度快,SRAM比DRAM耗电多,DRAM需要周期性刷新

  • DDRAM是SDRAM的下一代产品,与SDRAM本质相同

    • SDRAM:Synchronous Dynamic Random Access Memory,同步动态随机存储器

随机存储器

SRAM

  • SRAM表示静态随机存取存储器
  • 只要供电它就会保持一个值,没有刷新周期
  • 由触发器构成基本单元,集成度低
  • 每个SRAM存储单元由6个晶体管组成,成本较高
  • 速率较高,常用于高速缓冲存储器
  • 通常SRAM有4种引脚
    • CE:片选信号,低电平有效
    • R/W’:读写控制信号
    • ADDRESS:一组地址线
    • DATA:用于数据传输的一组双向信号线

SRAM

DRAM

  • DRAM表示动态随机存取存储器
  • 是一种以电荷形式进行存储的半导体存储器
  • 存储单元由1个晶体管和1个电容器组成,数据存储在电容器中
  • 必须定时刷新,因此DRAM在使用时必须配合DRAM控制器
  • 为了提高系统的数据吞吐能力,可以采用多种技术提高DRAM系统的性能,包括:页模式、ECO、同步DRAM

DRAM

  • DRAM的接口比较复杂,通常有以下引脚
    • CE:片选信号,低电平有效
    • R/W’:读写控制信号
    • RAS’:行地址选通信号,通常接地址的高位部分
    • CAS’:列地址选通信号,通常接地址的低位部分
    • ADDRESS:一组地址线
    • DATA:用于数据传输的一组双向信号线

SDRAM

  • SDRAM表示同步动态随机存取存储器
  • 同步是指内存工作需要同步时钟,内部的命令发送和数据的传输都以它为基准
  • 动态是指存储器阵列需要不断地刷新来保证数据不丢失
  • 通常只能工作在133MHz的主频
  • SDRAM可读/可写,不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器

DDRAM

  • DDRAM表示双倍率同步动态随机存取存储器,也称为DDR
  • 基于SDRAM技术
  • 双倍预取技术,即在内存芯片内部的数据宽度是外部接口数据宽度的2倍,使峰值的读写速度达到输入时钟速率的2倍
  • 允许在时钟脉冲的上升沿和下降沿均传输数据
  • 在133MHz的主频下,DDR内存带宽可以达到133x64b/8x2=2.1GB/s
  • 差分输入方式

ROM(只读存储器)

  • ROM在烧入数据后,无需外加电源来保存数据,断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数据
  • 在嵌入式洗系统中,ROM用于固定数据和程序
  • 常见ROM有
    • Mask ROM(掩膜ROM)
      • 一次性由厂家写入数据的ROM,用户无法修改
    • PROM(Programmable ROM,可编写ROM)
      • 出厂时厂家没有写入数据,保留里面的内容为全0和全1,由用户来编程一次性写入数据
    • EPROM(Erasable Programmable ROM,可擦写ROM)
      • 可以通过紫外线光的照射,擦掉原先的程序,芯片可重复擦除和写入。写入时间较长
    • EEPROM(电可擦除可编程ROM,也可表示为E2PROM)
      • 通过加电擦除原编程数据,通过高压脉冲可以写入数据
    • Flash ROM
      • 断电不会丢失数据,快速读取,电可擦写可编程
  • PROM、EPROM、EEPROM的共同之处
    • 可编程的只读存储器
    • 属于非易失性元件
    • 芯片为有限次写入
  • PROM、EPROM、EEPROM的不同之处
    • PROM为一次编程器件;EPROM为电编程、紫外线擦除器件、EEPROM电编程、电擦写
    • PROM编程元件:熔丝型开关或者非熔丝型开关(PLICE:多晶硅)
    • EPROM编程元件:叠栅型(SIMOS)浮栅
    • EEPROM编程元件:隧道型(FLOTOX)浮栅

FLASH

  • Flash memory(闪速存储器)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失
  • 但在使用Flash Memory时,必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优
  • Flash Memory是一种非易失性存储器NVM(Non-Volatile Memory),根据结构的不同可以分为:NOR Flash、NAND Flash

NOR Flash和NAND Flash相同特点

  • 区块结构:Flash Memory在物理结构上分成若干个区块,区块之间相互独立
    • NOR Flash把整个存储区分成若干个扇区(Sector)
    • NAND Flash把整个存储区分为若干个(Block)
    • 可以对以块或扇区为单位的内存单元进行先擦写和再编程
  • 先擦后写:由于Flash Memory的写操作只能将数据位从1写成0,而不能从0写成1,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为1
    • 擦操作的最小单位是一个区块,而不是单个字节
  • 操作指令:除了NOR Flash的读,Flash Memory的其他操作不能像RAM那样,直接对目标地址进行总线操作
    • 例如执行一次写操作,它必须输出一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入到Flash Memory中
  • 位反转:
    • 所有的Flash Memory器件存在位交换现象
    • Flash Memory在读写数据时,偶然会产生一位或几位数据错误,即位反转
    • 位反转无法避免,只能通过其他手段对产生的结果进行事后处理
    • 位反转的问题多见于NAND Flash。供货商建议使用NAND Flash的时候,同时使用EDC/ECC(错误探测/错误纠正)算法,以确保可靠性
  • 坏块
    • Flash Memory在使用过程中,可能导致某些区块的损坏
    • 区块一旦损坏,将无法进行修复
    • NAND Flash中的坏块是随机分布的,尤其是NAND Flash在出厂时就可能存在这样的坏块(已经被标识出)
    • NAND Flash需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用
    • 如果对已损坏的区块进行操作,可能会带来不可预测的错误

NOR Flash和NAND Flash不同特点

  • 应用程序可以直接在NOR Flash内运行,不需要再把代码读到系统RAM中运行
  • NOR Flash的传输速率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能
  • NAND Flash结构可以达到高存储器密度,写入和擦除的速度很快,应用NAND Flash的困难在于需要特殊的系统接口
  • 性能比较
    • NAND Flash执行擦除操作是十分简单的
    • NOR型内存则要求在进行擦除前先要将目标内所有的位都写为0
    • 由于擦除NOR Flash时是以64~128KB为单位的块进行的,执行一个写入/擦除操作的时间为5s
    • 擦除NAND Flash是以8~32KB的块进行的,执行相同的操作最多只需要4ms
    • NOR Flash的读速度比NAND Flash稍快一些
    • NAND Flash的写入速度比NOR FLash块很多
    • NAND Flash的随机读取能力差,适合大量数据的连续读取
    • NAND Flash的4ms擦除速度远比NOR Flash的5s快
  • 接口差别
    • NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节
    • NAND Flash地址、数据和命令共用8位/16位总线,每次读写都要使用复杂的I/O接口串行地存取数据,8位总线/16位总线用来传送控制、地址和资料信息
    • NAND Flash读和写操作采用512B的块,类似硬盘管理操作
      • 因此,基于NAND的闪存可以取代硬盘或其他块设备
  • 容量和成本
    • NOR Flash容量通常在1MB~8MB之间,主要应用在代码存储介质中
    • NAND Flash用在8MB以上的产品当中。使用与资料存储
  • 寿命
    • 在NAND Flash中每个块的最大擦写次数时一百万次
    • NOR Flash的擦写次数是十万次
    • NAND Flash除了具有10:1的块擦除周期优势,典型的NAND Flash块尺寸要比NOR型闪存小8倍,每个NAND Flash的内存块在给定的时间内删除次数要少一些
  • 软件支持
    • 在NOR Flash上运行代码不需要任何的软件支持
    • 在NAND Flash上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD)
    • NAND Flash和NOR Flash在进行写入和擦除操作时都需要MTD
  • 市场定位
    • NOR Flash:对数据可靠性要求较高的代码存储、通信产品、网络处理等领域,也被称为代码闪存(Code Flash)
    • NAND Flash:对存储容量要求较高的MP3、存储卡、U盘等领域,也被称为数据闪存(Data Flash)

常见外存的种类

  • 外部存储器:也称为辅助存储器,简称外存或辅存
    • 容量比主存大、读取速度较慢
    • 通常用来存放需要永久保存的或相对来说暂时不用的程序和数据常见外存的种类

硬盘

  • 硬盘存储器具有存储容量大,使用寿命长,存取速度较快的特点,也是在嵌入式系统中常用的外存
  • 硬盘存储器的硬件包括
    • 硬盘控制器(适配器)
    • 硬盘驱动器
    • 连接电缆
  • 硬盘控制器(Hard Disk Controller,简称HDC)对硬盘进行管理,并在主机和硬盘之间传送数据。硬盘控制器以适配卡的形式插在主板上或直接集成在主板上,然后通过电缆与硬盘驱动器相连
  • 硬盘驱动器(Hard Disk Drive,简称HDD)中有盘片、磁头、主轴电机(盘片旋转驱动机构)、磁头定位机构、读/写电路和控制逻辑等
  • 硬盘存储器可分为:温彻斯特盘和非温彻斯特盘两类
    • 温彻斯特盘是根据温彻斯特技术设计制造的,它的磁头、盘片、磁头定位机构、主轴、甚至连读/写驱动电路等都被密封在一个盘盒内,构成一个头-盘组合体
    • 温彻斯特盘的防尘性能好,可靠性高,对使用环境要求不高
    • 非温彻斯特盘磁盘的磁头和盘片等不是密封的,通常只能用于中型、大型计算机机房中
  • 最常见的硬盘接口是IDE(ATA)和SCSI两种,一些移动硬盘采用PCMCIA或USB接口
  • SCSI(Small Computer System Interface,小型计算机系统接口)不是专为硬盘设计的,是一种总线型接口
    • SCSI独立于系统总线工作,其系统占用率极低,但其价格昂贵
    • 具有这种接口的硬盘大多用于服务器等高端应用场合

光盘

  • 光盘:用光学方式读/写信息的圆盘
  • 光盘存储器:以光盘为存储介质的存储器
  • 光盘的类型
    • CD-RAM:Compact Disc Read Only Memory
    • CD-R:采用WORM(Write One Read Many)标准
    • CD-RW:可重复读/写
    • DVD-ROM:通用数字化多功能光盘,简称高容量CD

标准存储卡(CF卡)

  • CF存储卡是由美国SanDisk公司于1994年研制成功的
  • CF卡的大小为43mm x 36mm x 3.3mm,CF卡同时支持3.3伏和5伏的电压,可以在这两种电压下工作
  • CF卡(Compact Flash)接口具有PCMCIA-ATA功能,可以工作在IDE接口模式,也可以工作在PC Card模式
  • CF卡主要在PDA、笔记本电脑、数码相机和包括台式机在内的各种设备

安全数据卡(SD卡)

  • SD卡是由日本松下公司、东芝公司和美国SanDisk公司于1999年8月共同研制开发而成的
  • SD卡是根据MMC卡开发的,但是基本上两者还是不同的产品,只是在设计时考虑到兼容问题,所以在大多数情况下这两种产品能够互换,它比MMC卡多了一个进行数据著作权保护功能
  • 多用于MP3、数码相机、电子图书、微型电脑和AV器材等。尺寸大小比MMC卡略厚一些,为32mm x 24mm x 2.1mm