ARM汇编语言程序设计基础第4章嵌入式系统的存储器系统.ppt
《ARM汇编语言程序设计基础第4章嵌入式系统的存储器系统.ppt》由会员分享,可在线阅读,更多相关《ARM汇编语言程序设计基础第4章嵌入式系统的存储器系统.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 嵌入式系统的存储器系统嵌入式系统的存储器系统4.1 存储器系统概述n4.1.1 存储器系统的层次结构n计算机系统的存储器被组织成一个6个层次的金字塔形的层次结构,如图4.1.1魏洪兴所示,位于整个层次结构的最顶部S0层为CPU内部寄存器nS1层为芯片内部的高速缓存(cache)n内存S2层为芯片外的高速缓存(SRAM、DRAM、DDRAM)nS3层为主存储器(Flash、PROM、EPROM、EEPROM)nS4层为外部存储器(磁盘、光盘、CF、SD卡)nS5层为远程二级存储(分布式文件系统、Web服务器)图4.1.1 存储器系统层次结构 n在这种存储器分层结构中,上面一层的存储器
2、作为下一层存储器的高速缓存。CPU寄存器就是cache的高速缓存,寄存器保存来自cache的字;cache又是内存层的高速缓存,从内存中提取数据送给CPU进行处理,并将CPU的处理结果返回到内存中;内存又是主存储器的高速缓存,它将经常用到的数据从Flash等主存储器中提取出来,放到内存中,从而加快了CPU的运行效率。嵌入式系统的主存储器容量是有限的,磁盘、光盘或CF、SD卡等外部存储器用来保存大信息量的数据。在某些带有分布式文件系统的嵌入式网络系统中,外部存储器就作为其他系统中被存储数据的高速缓存。n4.1.2 高速缓冲存储器高速缓冲存储器n在主存储器和CPU之间采用高速缓冲存储器(cache
3、)被广泛用来提高提高存储器系统的性能,许多微处理器体系结构都把它作为其定义的一部分。cache能够减少内存平均访问时间。nCache可以分为统一cache和独立的数据程序cache。在一个存储系统中,指令预取时和数据读写时使用同一个cache,这时称系统使用统一的cache。如果在一个存储系统中,指令预取时使用的一个cache,数据读写时使用的另一个cache,各自是独立的,这时称系统使用了独立的cache,用于指令预取的cache称为指令cache,用于数据读写的cache称为数据cache。n当CPU更新了cache的内容时,要将结果写回到主存中,可以采用写通法(write-through
4、)和写回法(write-back)。写通法是指CPU在执行写操作时,必须把数据同时写入cache和主存。采用写通法进行数据更新的cache称为写通cache。写回法是指CPU在执行写操作时,被写的数据只写入cache不写入主存。仅当需要替换时,才把已经修改的cache块写回到主存中。采用写回法进行数据更新的cache称为写回cache。n当进行数据写操作时,可以将cache分为读操作分配cache和写操作分配cache两类。对于读操作分配cache,当进行数据写操作时,如果cache未命中,只是简单地将数据写入主存中。主要在数据读取时,才进行cache内容预取。对于写操作分配cache,当进行
5、数据写操作时,如果cache未命中,cache系统将会进行cache内容预取,从主存中将相应的块读取到cache中相应的位置,并执行写操作,把数据写入到cache中。对于写通类型的cache,数据将会同时被写入到主存中,对于写回类型的cache数据将在合适的时候写回到主存中。n4.1.3 存储管理单元nMMU(Memory Manage Unit,存储管理单元)在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个转换过程一般称为内存映射。MMU主要完成以下工作:n(1)虚拟存储空间到物理存储空间的映射。采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大小的块,每一块称
6、为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。n(2)存储器访问权限的控制。n(3)设置虚拟存储空间的缓冲的特性。n嵌入式系统中常常采用页式存储管理。页表是存储在内存中的一个表,页表用来管理这些页。页表的每一行对应于虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的方位权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是查询页表的过程。例如在ARM嵌入式系统中,使用系统控制协处理器CP15的寄存器C2来保存页表的基地址。n基于程序在执行过程中具有局部性的原理,在一段时间内,对页表的访问只是局限在少数几个单元。根据这一特
7、点,增加了一个小容量(通常为816字)、高速度(访问速度和CPU中通用寄存器相当)的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为地址转换后备缓冲器(Translation Look aside Buffer,TLB)。当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果该条目不存在,CPU在从位于内存中的页表中查询,并把相应的结果添加到TLB中,更新它的内容。n当ARM处理器请求存储访问时,首先在TLB中查找虚拟地址。如果系统中数据TLB和指令TLB是分开的,在取指令时,从指令TLB查找相应的虚拟地址,对于内存访问操作,从数据TLB中查找相应的虚拟地址。n嵌入式系统中虚
8、拟存储空间到物理存储空间的映射以内存块为单位来进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。在页表和TLB中,每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相应的一个内存块的基地址的对应关系。根据内存块大小,可以有多种地址变换。n嵌入式系统支持的内存块大小有以下几种:段(section)大小为1MB的内存块;大页(Large Pages)大小为64KB的内存块;小页(Small Pages)大小为4KB的内存块;极小页(Tiny Pages)大小为1KB的内存块。极小页只能以1KB大小为单位不能再细分,而大页和小页有些情
9、况下可以在进一步的划分,大页可以分成大小为16KB的子页,小页可以分成大小为1KB的子页。nMMU中的域指的是一些段、大页或者小页的集合。每个域的访问控制特性都是由芯片内部的寄存器中的相应控制位来控制的。例如在ARM嵌入式系统中,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。nMMU中的快速上下文切换技术(Fast Context Switch Extension,FCSE)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。n在嵌入式系统中,I/O操作通常被映射成存储器操作,即输入输出是通过存储器映射的可寻址外围寄
10、存器和中断输入的组合来实现的。I/O的输出操作可通过存储器写入操作实现;I/O的输入操作可通过存储器读取操作实现。这些存储器映射的I/O空间不满足cache所要求的特性,不能使用cache技术,一些嵌入式系统使用存储器直接访问(DMA)实现快速存储。4.2 嵌入式系统存储设备分类n存储器是嵌入式系统硬件的重要组成部分,用来存放嵌入式系统工作时所用的程序和数据。嵌入式系统的存储器由片内和片外两部分组成。n4.2.1 存储器部件的分类n1按在系统中的地位分类按在系统中的地位分类n在微机系统中,存储器可分为主存储器(Main Memory简称内存或主存)和辅助存储器(Auxiliary Memory
11、,Secondary Memory,简称辅存或外存)。n内存是计算机主机的一个组成部分,一般都用快速存储器件来构成,内存的存取速度很快,但内存空间的大小受到地址总线位数的限制。内存通常用来容纳当前正在使用的或要经常使用的程序和数据,CPU可以直接对内存进行访问。系统软件中如引导程序、监控程序或者操作系统中的基本输入输出部分BIOS都是必须常驻内存。更多的系统软件和全部应用软件则在用到时由外存传送到内存。n外存也是用来存储各种信息的,存放的是相对来说不经常使用的程序和数据,其特点是容量大。外存总是和某个外部设备相关的,常见的外存有软盘、硬盘、U盘、光盘等。CPU要使用外存的这些信息时,必须通过专
12、门的设备将信息先传送到内存中。n2按存储介质分类按存储介质分类n根据存储介质的材料及器件的不同,可分为磁存储器(Magnetic Memory),半导体存储器、光存储器(Optical Memory)及激光光盘存储器(Laser Optical Disk)。n3按信息存取方式分类按信息存取方式分类n存储器按存储信息的功能,分为随机存取存储器(Random Access Memory,RAM)和只读存储器(Read Only Memory,ROM)。随机存取存储器是一种在机器运行期间可读、可写的存储器,又称读写存储器。随机存储器按信息存储的方式,可分为静态RAM(Static RAM,SRAM)
13、,动态RAM(Dynamic RAM,DRAM)及准静态RAM(Pseudostatic RAM,简称PSRAM)。n在机器运行期间只能读出信息,不能随时写入信息的存储器称为只读存储器。只读存储器按功能可分为掩模式(ROM)、可编程只读存储器(Programmable ROM,PROM)和可改写的只读存储器(Erasable Programmable ROM,EPROM)。n4.2.2 存储器的组织和结构n存储器的容量是描述存储器的最基本参数,如1MB。存储器的表示并不唯一,有不同表示方法,每种有不同的数据宽度。在存储器内部,数据是存放在二维阵列存储单元中。阵列以二维的形式存储,给出的n位地址
14、被分成行地址和列地址(nr十c)。r是行地址数,c是列地址数。行列选定一个特定存储单元。如果存储器外部宽度为1位,那么列地址仅一位;对更宽的数据,列地址可选择所有列的一个子集。n嵌入式系统的存储器与通用系统的存储器有所不同,通常由ROM、RAM、EPROM等组成。嵌入式存储器一般采用存储密度较大的存储器芯片,存储容量与应用的软件大小相匹配。n4.2.3 常见的嵌入式系统存储设备n1RAM(随机存储器)(随机存储器)nRAM可以被读和写,地址可以以任意次序被读。常见RAM的种类有SRAM(Static RAM,静态随机存储器)、DRAM(Dynamic RAM,动态随机存储器)、DDRAM(Do
15、uble Data Rate SDRAM,双倍速率随机存储器)。其中,SRAM比DRAM运行速度快,SRAM比DRAM耗电多,DRAM需要周期性刷新。而DDRAM是RAM的下一代产品。在133MHz时钟频率,DDRAM内存带宽可以达到13364b/822.1GB/s,在200MHz时钟频率,其带宽可达到20064b/823.2GB/s的海量。n2ROM(只读存储器)(只读存储器)nROM在烧入数据后,无需外加电源来保存数据,断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数据。在嵌入式系统中,ROM用固定数据和程序。n常见ROM有Mask ROM(掩模ROM)、PROM(Programm
16、able ROM,可编程ROM)、EPROM(Erasable Programmable ROM,可擦写ROM)、EEPROM(电可擦除可编程ROM,也可表示为E2PROM)、Flash ROM(闪速存储器)nMask ROM一次性由厂家写入数据的ROM,用户无法修改。PROM出厂时厂家并没有写入数据,而是保留里面的内容为全0或全1,由用户来编程一次性写入数据。EPROM可以通过紫外光的照射,擦掉原先的程序,芯片可重复擦除和写入。E2PROM是通过加电擦除原编程数据,通过高压脉冲可以写入数据,写入时间较长。Flash ROM断电不会丢失数据(NVRAM),可快速读取,电可擦写可编程。n3Fla
17、sh MemorynFlash memory(闪速存储器)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。但在使用Flash Memory时,必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。nFlash Memory是一种非易失性存储器NVM(Non-Volatile Memory),根据结构的不同可以将其分成NOR Flash和NAND Flash两种。nFlash Memory在物理结构上分成若干个区块,区块之间相互独立。NOR Flash把整个存储区分成若干个扇区(Sector),而NAND Flash把整个存储区分成若干个块(Block),可
18、以对以块或扇区为单位的内存单元进行擦写和再编程。n由于Flash Memory的写操作只能将数据位从1写成0,而不能从0写成1,所以在对存储器进行写入之前必须先执行擦除操作,将预写入的数据位初始化为1。擦操作的最小单位是一个区块,而不是单个字节。NAND Flash执行擦除操作是十分简单的,而NOR型内存则要求在进行擦除前先要将目标块内所有的位都写为0。n由于擦除NOR Flash时是以64128KB为单位的块进行的,执行一个写入擦除操作的时间为5s,与此相反,擦除NAND Flash是以832KB的块进行的,执行相同的操作最多只需要4ms。nNOR Flash的读速度比NAND Flash稍
19、快一些,NAND Flash的写入速度比NOR Flash快很多。NAND Flash的随机读取能力差,适合大量数据的连续读取。n除了NOR Flash的读,Flash Memory的其他操作不能像RAM那样,直接对目标地址进行总线操作。例如执行一次写操作,它必须输入一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入到Flash Memory中。nNOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND Flash地址、数据和命令共用8位总线/16位总线,每次读写都要使用复杂的I/O接口串行地存取数据,8
20、位总线/16位总线用来传送控制、地址和资料信息。nNAND Flash读和写操作采用512B的块,类似硬盘管理操作。因此,基于NAND的闪存可以取代硬盘或其他块设备。nNOR Flash容量通常在1 MB8MB之间。而NAND Flash用在8MB以上的产品当中。NOR Flash主要应用在代码存储介质中,NAND Flash适用于资料存储。n所有Flash Memory器件存在位交换现象。Flash Memory在读写数据过程中,偶然会产生一位或几位数据错误,即位反转。位反转无法避免,只能通过其他手段对产生的结果进行事后处理。位反转的问题多见于NAND Flash。NAND Flash的供货
21、商建议使用NAND Flash的时候,同时使用EDC/ECC(错误探测错误纠正)算法,以确保可靠性。nFlash Memory在使用过程中,可能导致某些区块的损坏。区块一旦损坏,将无法进行修复。NAND Flash中的坏块是随机分布的,尤其是NAND Flash在出厂时就可能存在这样的坏块(已经被标识出)。NAND Flash需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。如果对已损坏的区块进行操作,可能会带来不可预测的错误。n应用程序可以直接在NOR Flash内运行,不需要再把代码读到系统RAM中运行。NOR Flash的传输效率很高,在14MB的小容量时具有很高的成本效益,但是
22、很低的写入和擦除速度大大影响了它的性能。NAND Flash结构可以达到高存储密度,并且写入和擦除的速度也很快,应用NAND Flash的困难在于需要特殊的系统接口。n在NOR Flash上运行代码不需要任何的软件支持。在NAND Flash上进行同样操作时,通常需要驱动程序,也就是内存技术驱动程序(MTD)。NAND Flash和NOR Flash在进行写入和擦除操作时都需要MTD。n在NAND Flash中每个块的最大擦写次数是一百万次,而NOR Flash的擦写次数是十万次。NAND Flash除了具有10:1的块擦除周期优势,典型的NAND Flash块尺寸要比NOR型闪存小8倍,每个
23、NAND Flash的内存块在给定的时间内删除次数要少一些。n4标准存储卡(标准存储卡(Compact Flash,CF卡)卡)nCF卡是利用Flash技术的存储卡,内部结构如图4.2.1所示,接口具有PCMCIA-ATA功能,可以工作在IDE接口模式,也可以工作在PC Card模式。衍生出来的CF+卡物理规格和CF完全相同,在手持设备上应用,如CF串口卡、CF Modem.CF蓝牙、CF USB卡、CF网卡、CF GPS卡、CF GPRS卡等。按照CF+卡标准,它不一定要支持ATA接口。通常建议CF+卡工作在PCMCIA模式。CF卡可以看作是PCMCIA卡的一个子集,可以通过物理上的转换器,
24、直接转换成PCMCIA卡使用。nCF卡可分为I型和II型两类,二者的规格和特性基本相同,只是II型比I型略厚一些(5.0mm,3.3mm),II型插座可以同时兼容I型卡。图4.2.1 CF卡内部结构nCF卡有3种工作模式:PC卡ATA I/O模式、PC卡ATA存储模式和实IDE模式。实IDE模式与IDE接口完全兼容。CF卡遵循ATA协议,属于块存储设备,存储单元是通过磁头(head)、柱面(cylinder,也称磁道)和扇区(sector)组织起来的。在物理寻址(CHS)方式下,每一组H/C/S参数唯一确定存储卡中的一个扇区,通常一个扇区拥有512B的数据空间。一个驱动数格式化后的容量为磁头数
25、柱面数扇区数512字节。在物理寻址模式下,扇区(S)是最低的地址单位,其次是磁头(H),最后的柱面(C)为最高寻址单位。此外,还有逻辑寻址方式(LBA)。在这种寻址方式下,CF卡按照以连续序列的逻辑扇区编号进行寻址,主机不必知道CF卡的物理几何结构。使用28个数据位来表示逻辑扇区的地址,可以寻址228个扇区,理论上可以寻址136GB的容量。物理寻址方式与逻辑寻址方式的对应关系如下所示:nLBA=NHNSC+NCH+S-1;nC=(LBA div NS)div NH;nH=(LBA div NS)mod NH;nS=(LBA mod NS)+1。n其中:NS为每磁道扇区数,NH为磁头数,C、H、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 汇编语言 程序设计 基础 嵌入式 系统 存储器
限制150内