大工13春《嵌入式原理与开发》辅导资料十二
大工13春《嵌入式原理与开发》辅导资料十二主 题:第四章基于ARM的硬件系统结构设计(第3节)
学习时间:2013年6月10日-6月16日
内 容:
这周我们将学习第四章基于ARM的硬件系统结构设计,第三节嵌入式系统存储器的分析与设计,下面整理出的理念框架供同学们学习。
4.3 存储系统的分析与设计
4.3.1 存储系统设计的原理与特点
4.3.2 存储系统的组成结构
(嵌入式系统的存储器通常与系统主板设计在一起的原因是:一方面嵌入式系统的内存通常是固定大小的;另一方面一体系结构可以提高系统的可靠性。4.3.2存储系统的组成结构
ARM架构处理器的存储器寻址空间最大为4GB。
ARM架构处理器还允许外接U盘、SD等存储卡,用来扩大存储空间。
ROM 存储器简介
FlashROM存储器是非易失性存储器。FlashROM存储器可在线进行电写入、电擦除,并且掉电后信息不丢失的ROM存储器。具有低功耗、大容量、擦写快、可整片或分扇区在系统编程、擦除等特点。
FlashROM可由内部嵌入的算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用,通常用于存放程序代码、常量表,以及一些在系统掉电后需要保存的用户数据等。
常用的FlashROM为8位或16位数据宽度,编程电压为3.3V。
传统上,ROM是只能让处理器读取的存储器,而且即使在没有电源的情况下也能保持所存储的数据位。
RAM是指处理器可读写的存储器,但在电源消失后其所存储的数据位也会丢失。
目前有些微处理器不但可以在线读取也可以在线写入高级的ROM,如FlashROM,但这种写入比写入RAM要慢一些。
FlashROM在20世纪80年代末期出现。虽然FlashROM存储器也使用EEPROM的浮栅原理,但FlashROM存储器可以每次擦除存储器的一块区域,每个块区域通常有几千个字节。这种快速擦除能力,可以大幅度提高那些需要将大量数据存储在非易失性存储器的嵌入式系统的性能,例如数码相机、机顶盒、移动电话以及医疗监护设备。
FlashROM媒质存储器的构成主要采用两种技术,NAND结构(非线性存储器)和NOR结构(线性存储器)。
①非线性FlashROM(NAND)
NAND型FlashROM自身是没有存储控制器的,其结构可看作是由许多的小区块组成的,每块都能存储一定数量信息,类似于硬盘的族。NAND型Flash的读写也是以块和页为单位来进行,使用8bit I/O端口存储数据。
NAND型Flash容量大、成本低、可以达到比较高的速度,所以应用较为广泛,不过它也有些比较明显的缺点。NAND型Flash的基本工作方式是按顺序串行读取,一个区块写入或读出结束再进行下一个操作,采用的是串行方式工作。
比如,区块上已有信息,就一定要先擦除,再写入。另一个问题就是NAND型Flash需要一定的存储空间来存放目录等信息来管理所有的资料,进行任何操作都要使用这一部分,大部分闪盘的控制芯片都使用固定区块,所以其使用次数远高于其他区块,这样可能会因为目录损坏及缺乏有效扫描除错手段而造成数据丢失,需要格式化才能解决问题。
由于NAND型FlashROM是按页和块的组织存储单元,访问存储单元需要发送命令,不能直接读写。在进行大量读取文件时,NAND型的速度比NOR型的速度快很多,常用来存放OS、文件系统和部分应用程序。
如K9F1208,64MB、2048个块,每个数据块包含32个页,每页有528个字节,前512个字节为主数据存储器,后16个字节为辅助数据存储器,存放ECC代码,坏块信息和文件系统等代码。
使用复用接口,地址线、数据线共用。其读和写操作采用512字节的块,这一点有点像硬盘管理,此类操作易于取代硬盘等类似的块设备。
生产过程简单,成本低、容量大通常有8MB~128MB存储芯片,适合用于数据存储,在NAND中每块的最大擦写次数是100万次。通常被称为固态盘或者电子盘。如U盘和SD卡都采用这种结构的Flash存储器。
读速度不如Nor flash,而擦、写速度高。存储在NAND Flash里的程序不可以直接执行,需要复制到RAM中才能执行。
SD存储卡
SD(Secure Digital)卡由松下电器、东芝和SanDisk联合推出,1999年8月首次发布。
2000年2月1日成立了SD协会(SDA),成员公司超过90个,其中包括Hewlett-Packard,IBM,Microsoft,Motorola,NEC、Samsung Electronics,Toyota Motor等巨头
SDA是开放式的,缴纳1500美元就可以
成为一般会员,缴纳4000美元可以成为
执行会员。SD存贮卡的详细规范并没有
公开,只有SDA会员或签定了保密协议才能获得。
SD卡需付版税
②线性FlashROM的介绍
其内部结构则是采用并行方式工作的,内部的地址线和数据线是分开的。其特点可以按字节随机读取任意单元的内容。该类存储器常用于制作计算机的BIOS存储器和微控制器的内部存储器。
读速度高,而擦、写速度低。可靠性高,但容量小,价格高。
NOR Flash可以做到芯片内直接执行程序,即程序代码不需要复制到RAM中在执行。因此,常常用作嵌入式系统的启动代码芯片。主要用于手机、掌上电脑等需要直接运行代码的场合。
常见的NOR FlashROM 为128KB~16MB,擦写次数是10万次
两个大阵营:AMD与富士通(合资公司Spansion)、Intel与东芝,彼此管脚不兼容。
AMD-AM29xxx,富士通-MBMxxx,Intel-E28Fxxx,东芝-TC58Fxxx, Spansion-S29xxx
E28F128J3A,16位,16MB
存储器接口
ARM的总线接口信号分成4类(以ARM7TDMI为例说明):
时钟和时钟控制信号:MCLK、ECLK、nRESET、nWAIT。
地址类信号:A、nRW、MAS、nOPC、nTRANS、LOCK、TBIT。
存储器请求信号:nMREQ、SEQ。
数据时序信号:D、DIN、DOUT、ABORT、BL。
虚拟内存管理占用了相当一部分系统资源,因此在有些情况下嵌入式系统中可使用不带有MMU的微处理器。这种情况下需要采用动态内存管理方式,即当程序的某一部分需要使用内存时,利用操作系统提供的分配函数来处理,一旦使用完毕,可通过释放函数来释放所占用的内存,这样内存就可以重复使用。
(1)MMU主要完成工作
虚拟存储空间到物理存储空间的映射,在ARM中采用了页式虚拟存储管理方式。
存储器访问权限的控制。
设置虚拟存储空间缓冲的特性。
MMU中的地址变换过程:通过两级页表实现
a)一级页表中包含有以段为单位的地址变换条目以及指向二级页表的指针。一级页表是实现的地址映射力度较大。以段为单位的地址变换过程只需要一级页表。
b)二级页表中包含有以大页和小页为单位的地址变换条目。有一种类型的二级页表还包含有以极小页为单位的地址变换条目。以页为单位的地址变换过程需要二级页表。
通过MMU的访存过程
MMU先查找快表TLB(Translation Lookaside Buffers,转换旁路缓冲器)中的虚拟地址表
如果TLB中没有虚拟地址的入口,硬件从主存储器中的描述符表(慢标)中获取转换和访问权限
开始MMU之前必须创建转换表
(2)MMU页表格式
MMU 支持基于节或页的存储器访问:
节(Section)1MB 的存储器块
大页(Large page)64KB 的存储器块
小页(Small page)4KB 的存储器块
微页(Tiny page)1KB 的存储器块
存在主存储器内的转换表有两个级别:
第一级表 存储节转换表和指向第二级表的指针
第二级表
存储大页和小页的转换表。
存储微页转换表
4.3.3存储器系统的设计
程序存储器连接电路
SDRAM存储器简介
SDRAM不具有掉电保持数据的特点,但其存取速度高于Flash存储器,且具有读写的属性,因此SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。当系统启动时,CPU首先从复位地址0x0h处读取代码,在完成系统初始化后,程序代码一般调入SDRAM中运行,以提高系统的运行速度,同时系统及用户堆栈、运行数据也都放在SDRAM中
SDRAM具有单位空间容量大和价格便宜的优点,已广泛应用在各种嵌入式系统中。SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新(充电)。因此要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。
嵌入式系统常用的SDRAM为8位/16位的数据宽度,一般工作电压为3.3V。目前PC机使用的是DDR型RAM内存条
举例:
S3C2410处理器在片内集成了一个称为“Steppingstone”(垫脚石)的4KB大小的内部SRAM。如果系统工作在自动启动模式,那么家电或者复位后,NAND闪存的前4KB代码将加载到4KB的SRAM存储器上,接着该存储器的地址空间被重映射到片选信号Ngcs0上,即成为BANK0存储区。此后CPU从0x0开始执行4KB的内部缓存里的启动代码。
S3C2410处理器德NAND闪存控制相关寄存器有6个。有了NAND闪存控制器后,NAND闪存与处理器连接就十分方便了。
本节习题
1. ARM架构处理器的存储器寻址空间最大为多少?
4GB
2,FlashROM媒质存储器的构成主要采用哪两种技术?
NAND结构(非线性存储器)和NOR结构(线性存储器)
页:
[1]