您好,欢迎访问三七文档
第4章嵌入式系统的存储器系统4.1存储器系统概述4.1.1存储器系统的层次结构计算机系统的存储器被组织成一个6个层次的金字塔形的层次结构,如图4.1.1[魏洪兴]所示,位于整个层次结构的最顶部S0层为CPU内部寄存器S1层为芯片内部的高速缓存(cache)内存S2层为芯片外的高速缓存(SRAM、DRAM、DDRAM)S3层为主存储器(Flash、PROM、EPROM、EEPROM)S4层为外部存储器(磁盘、光盘、CF、SD卡)S5层为远程二级存储(分布式文件系统、Web服务器)图4.1.1存储器系统层次结构在这种存储器分层结构中,上面一层的存储器作为下一层存储器的高速缓存。CPU寄存器就是cache的高速缓存,寄存器保存来自cache的字;cache又是内存层的高速缓存,从内存中提取数据送给CPU进行处理,并将CPU的处理结果返回到内存中;内存又是主存储器的高速缓存,它将经常用到的数据从Flash等主存储器中提取出来,放到内存中,从而加快了CPU的运行效率。嵌入式系统的主存储器容量是有限的,磁盘、光盘或CF、SD卡等外部存储器用来保存大信息量的数据。在某些带有分布式文件系统的嵌入式网络系统中,外部存储器就作为其他系统中被存储数据的高速缓存。4.1.2高速缓冲存储器在主存储器和CPU之间采用高速缓冲存储器(cache)被广泛用来提高提高存储器系统的性能,许多微处理器体系结构都把它作为其定义的一部分。cache能够减少内存平均访问时间。Cache可以分为统一cache和独立的数据/程序cache。在一个存储系统中,指令预取时和数据读写时使用同一个cache,这时称系统使用统一的cache。如果在一个存储系统中,指令预取时使用的一个cache,数据读写时使用的另一个cache,各自是独立的,这时称系统使用了独立的cache,用于指令预取的cache称为指令cache,用于数据读写的cache称为数据cache。当CPU更新了cache的内容时,要将结果写回到主存中,可以采用写通法(write-through)和写回法(write-back)。写通法是指CPU在执行写操作时,必须把数据同时写入cache和主存。采用写通法进行数据更新的cache称为写通cache。写回法是指CPU在执行写操作时,被写的数据只写入cache不写入主存。仅当需要替换时,才把已经修改的cache块写回到主存中。采用写回法进行数据更新的cache称为写回cache。当进行数据写操作时,可以将cache分为读操作分配cache和写操作分配cache两类。对于读操作分配cache,当进行数据写操作时,如果cache未命中,只是简单地将数据写入主存中。主要在数据读取时,才进行cache内容预取。对于写操作分配cache,当进行数据写操作时,如果cache未命中,cache系统将会进行cache内容预取,从主存中将相应的块读取到cache中相应的位置,并执行写操作,把数据写入到cache中。对于写通类型的cache,数据将会同时被写入到主存中,对于写回类型的cache数据将在合适的时候写回到主存中。4.1.3存储管理单元MMU(MemoryManageUnit,存储管理单元)在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个转换过程一般称为内存映射。MMU主要完成以下工作:(1)虚拟存储空间到物理存储空间的映射。采用了页式虚拟存储管理,它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。(2)存储器访问权限的控制。(3)设置虚拟存储空间的缓冲的特性。嵌入式系统中常常采用页式存储管理。页表是存储在内存中的一个表,页表用来管理这些页。页表的每一行对应于虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的方位权限和该页的缓冲特性等。从虚拟地址到物理地址的变换过程就是查询页表的过程。例如在ARM嵌入式系统中,使用系统控制协处理器CP15的寄存器C2来保存页表的基地址。基于程序在执行过程中具有局部性的原理,在一段时间内,对页表的访问只是局限在少数几个单元。根据这一特点,增加了一个小容量(通常为8~16字)、高速度(访问速度和CPU中通用寄存器相当)的存储部件来存放当前访问需要的地址变换条目,这个存储部件称为地址转换后备缓冲器(TranslationLookasideBuffer,TLB)。当CPU访问内存时,首先在TLB中查找需要的地址变换条目,如果该条目不存在,CPU在从位于内存中的页表中查询,并把相应的结果添加到TLB中,更新它的内容。当ARM处理器请求存储访问时,首先在TLB中查找虚拟地址。如果系统中数据TLB和指令TLB是分开的,在取指令时,从指令TLB查找相应的虚拟地址,对于内存访问操作,从数据TLB中查找相应的虚拟地址。嵌入式系统中虚拟存储空间到物理存储空间的映射以内存块为单位来进行。即虚拟存储空间中一块连续的存储空间被映射到物理存储空间中同样大小的一块连续存储空间。在页表和TLB中,每一个地址变换条目实际上记录了一个虚拟存储空间的内存块的基地址与物理存储空间相应的一个内存块的基地址的对应关系。根据内存块大小,可以有多种地址变换。嵌入式系统支持的内存块大小有以下几种:段(section)大小为1MB的内存块;大页(LargePages)大小为64KB的内存块;小页(SmallPages)大小为4KB的内存块;极小页(TinyPages)大小为1KB的内存块。极小页只能以1KB大小为单位不能再细分,而大页和小页有些情况下可以在进一步的划分,大页可以分成大小为16KB的子页,小页可以分成大小为1KB的子页。MMU中的域指的是一些段、大页或者小页的集合。每个域的访问控制特性都是由芯片内部的寄存器中的相应控制位来控制的。例如在ARM嵌入式系统中,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。MMU中的快速上下文切换技术(FastContextSwitchExtension,FCSE)通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。在嵌入式系统中,I/O操作通常被映射成存储器操作,即输入/输出是通过存储器映射的可寻址外围寄存器和中断输入的组合来实现的。I/O的输出操作可通过存储器写入操作实现;I/O的输入操作可通过存储器读取操作实现。这些存储器映射的I/O空间不满足cache所要求的特性,不能使用cache技术,一些嵌入式系统使用存储器直接访问(DMA)实现快速存储。4.2嵌入式系统存储设备分类存储器是嵌入式系统硬件的重要组成部分,用来存放嵌入式系统工作时所用的程序和数据。嵌入式系统的存储器由片内和片外两部分组成。4.2.1存储器部件的分类1.按在系统中的地位分类在微机系统中,存储器可分为主存储器(MainMemory简称内存或主存)和辅助存储器(AuxiliaryMemory,SecondaryMemory,简称辅存或外存)。内存是计算机主机的一个组成部分,一般都用快速存储器件来构成,内存的存取速度很快,但内存空间的大小受到地址总线位数的限制。内存通常用来容纳当前正在使用的或要经常使用的程序和数据,CPU可以直接对内存进行访问。系统软件中如引导程序、监控程序或者操作系统中的基本输入/输出部分BIOS都是必须常驻内存。更多的系统软件和全部应用软件则在用到时由外存传送到内存。外存也是用来存储各种信息的,存放的是相对来说不经常使用的程序和数据,其特点是容量大。外存总是和某个外部设备相关的,常见的外存有软盘、硬盘、U盘、光盘等。CPU要使用外存的这些信息时,必须通过专门的设备将信息先传送到内存中。2.按存储介质分类根据存储介质的材料及器件的不同,可分为磁存储器(MagneticMemory),半导体存储器、光存储器(OpticalMemory)及激光光盘存储器(LaserOpticalDisk)。3.按信息存取方式分类存储器按存储信息的功能,分为随机存取存储器(RandomAccessMemory,RAM)和只读存储器(ReadOnlyMemory,ROM)。随机存取存储器是一种在机器运行期间可读、可写的存储器,又称读写存储器。随机存储器按信息存储的方式,可分为静态RAM(StaticRAM,SRAM),动态RAM(DynamicRAM,DRAM)及准静态RAM(PseudostaticRAM,简称PSRAM)。在机器运行期间只能读出信息,不能随时写入信息的存储器称为只读存储器。只读存储器按功能可分为掩模式(ROM)、可编程只读存储器(ProgrammableROM,PROM)和可改写的只读存储器(ErasableProgrammableROM,EPROM)。4.2.2存储器的组织和结构存储器的容量是描述存储器的最基本参数,如1MB。存储器的表示并不唯一,有不同表示方法,每种有不同的数据宽度。在存储器内部,数据是存放在二维阵列存储单元中。阵列以二维的形式存储,给出的n位地址被分成行地址和列地址(n=r十c)。r是行地址数,c是列地址数。行列选定一个特定存储单元。如果存储器外部宽度为1位,那么列地址仅一位;对更宽的数据,列地址可选择所有列的一个子集。嵌入式系统的存储器与通用系统的存储器有所不同,通常由ROM、RAM、EPROM等组成。嵌入式存储器一般采用存储密度较大的存储器芯片,存储容量与应用的软件大小相匹配。4.2.3常见的嵌入式系统存储设备1.RAM(随机存储器)RAM可以被读和写,地址可以以任意次序被读。常见RAM的种类有SRAM(StaticRAM,静态随机存储器)、DRAM(DynamicRAM,动态随机存储器)、DDRAM(DoubleDataRateSDRAM,双倍速率随机存储器)。其中,SRAM比DRAM运行速度快,SRAM比DRAM耗电多,DRAM需要周期性刷新。而DDRAM是RAM的下一代产品。在133MHz时钟频率,DDRAM内存带宽可以达到133×64b/8×2=2.1GB/s,在200MHz时钟频率,其带宽可达到200×64b/8×2=3.2GB/s的海量。2.ROM(只读存储器)ROM在烧入数据后,无需外加电源来保存数据,断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数据。在嵌入式系统中,ROM用固定数据和程序。常见ROM有MaskROM(掩模ROM)、PROM(ProgrammableROM,可编程ROM)、EPROM(ErasableProgrammableROM,可擦写ROM)、EEPROM(电可擦除可编程ROM,也可表示为E2PROM)、FlashROM(闪速存储器)MaskROM一次性由厂家写入数据的ROM,用户无法修改。PROM出厂时厂家并没有写入数据,而是保留里面的内容为全0或全1,由用户来编程一次性写入数据。EPROM可以通过紫外光的照射,擦掉原先的程序,芯片可重复擦除和写入。E2PROM是通过加电擦除原编程数据,通过高压脉冲可以写入数据,写入时间较长。FlashROM断电不会丢失数据(NVRAM),可快速读取,电可擦写可编程。3.FlashMemoryFlashmemory(闪速存储器)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。但在使用FlashMemory时,必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。FlashMemory是一种非易失性存储器NVM(Non-VolatileMemory),根据结构的不同可以将其分成NORFlash和NANDFlash两种。FlashMemory在物理结构上分成若干个区块,区块之间相互独立。NORFlash把整个存储区分成若干个扇区(Sector),而NANDFlash把整个存储区分成若干个块(Block),可以对
本文标题:嵌入式存储器的种类
链接地址:https://www.777doc.com/doc-3760636 .html