1、第第4 4章章 嵌入式系统嵌入式系统 的存储器系统的存储器系统 教学目的 1)了解常见嵌入式系统存储器;2)学习ROM和SRAM型存储器扩展方法;3)学习NOR FLASH和NAND FLASH存储器接口方法;4)学习SDRAM存储器接口方法4.1 存储器系统概述 4.1.1 4.1.1 存储器系统的层次结构存储器系统的层次结构4.1.2 高速缓冲存储器高速缓冲存储器在在主存储器主存储器和和CPUCPU之间之间采用高速缓冲存储器(cache)用来提高存储器系统的性能。cachecache能够减少内存平均访问时间。能够减少内存平均访问时间。指令预取时和数据读写时使用同一个指令预取时和数据读写时使
2、用同一个cachecache-统一的统一的cachecache。指令预取时和数据读写时使用不同的指令预取时和数据读写时使用不同的cache-cache-独立的独立的cache cache。(S3C2410采用此种结构)4.1.3 4.1.3 存储管理单元(存储管理单元(MMUMMU)MMU(Memory Manage Unit,存储管理单元)MMU主要完成以下工作:(1)虚拟存储空间到物理存储空间的映射。虚拟存储空间到物理存储空间的映射。(2)存储器访问权限的控制。存储器访问权限的控制。(3)设置虚拟存储空间的缓冲特性。设置虚拟存储空间的缓冲特性。n嵌入式系统中常常采用嵌入式系统中常常采用页式
3、存储管理页式存储管理。n页式页式存储管理:把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。MMU实现的就是从虚拟地址到物理地址的转换。页表页表是存储在内存中的一个表,页表用来管理这些页。页表的每一行对应于虚拟存储空间的一个页页表的每一行对应于虚拟存储空间的一个页,该行包含了该虚拟内存页对应的物理内存页的地址、该页的方位权限和该页的缓冲特性对应的物理内存页的地址、该页的方位权限和该页的缓冲特性等。等。从虚拟地址到物理地址的变换过程就是查询页表查询页表的过程。例如在ARM嵌入式系统中,使用系统控制协处理器CP15的寄存器C2来保存页表的基地址。嵌入式系
4、统支持的内存块大小有以下几种:段段 (section)大小为1MB1MB的内存块;大页大页(Large Pages)大小为64KB64KB的内存块;小页小页(Small Pages)大小为4KB4KB的内存块;极小页极小页(Tiny Pages)大小为1KB1KB的内存块。极小页只能以1KB大小为单位不能再细分,而大页和小页有些情况下可以在进一步的划分。MMUMMU中的域中的域指的是一些段、大页或者小页的集合。每个域的访问控制特性都是由芯片内部的寄存器中的相应控制位来控制的。例如在ARM嵌入式系统中,每个域的访问控制特性都是由CP15中的寄存器C3中的两位来控制的。MMU中的快速上下文切换技术
5、快速上下文切换技术(Fast Context Switch Extension,FCSE)通过修改系统中不同进程的虚拟地址修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。4.2.1 4.2.1 存储器部件的分类存储器部件的分类1按在系统中的地位分类主存储器主存储器(Main Memory简称主存或内存内存)辅助存储器辅助存储器(Auxiliary Memory,Secondary Memory,简称辅存或外存外存)。4.2 4.2 嵌入式系统存储设备分类嵌入式系统存储设备分类内内 存存内存内存是计算机主机的一个组成部分主机的一个组成部分
6、,一般都用快速存储器件来构成,内存的存取速度很快存取速度很快,但内存空间的大小空间的大小受到地址总线位数的限制限制。内存通常用来容纳当前正在使用的或要经常使用的程序和数据当前正在使用的或要经常使用的程序和数据CPU可以直接直接对内存进行访问。系统软件中如引导程序、监控程序或者操作系统中的基本输入输出部分BIOS都是必须常驻内存。更多的系统软件和全部应用软件则在用到时由外存传送到内存。外外 存存外存外存存放的是相对来说不经常使用的程序和数据不经常使用的程序和数据容量大,速度相对内存较慢容量大,速度相对内存较慢常见的外存有软盘、硬盘、U盘、光盘等CPU要使用外存的这些信息时,必须通过专门的设备将信
7、息先传送将信息先传送到内存中到内存中2 2按存储介质分类按存储介质分类磁存储器(Magnetic Memory)半导体存储器(Semiconductor Memory)光存储器(Optical Memory)激光光盘存储器(Laser Optical Disk)。3 3按信息存取方式分类按信息存取方式分类RAM:随机存取存储器随机存取存储器(Random Access Memory)运行期间可读、可写运行期间可读、可写ROM:只读存储器只读存储器(Read Only Memory)运行期间只能读出信息,不能随时写入信息运行期间只能读出信息,不能随时写入信息4.2.2 存储器的组织和结构容量是描
8、述存储器的最基本参数,如1MB。存储器容量的表示不唯一,不同的数据宽度有不同容量。在存储器内部,数据是存放在二维阵列存储单元中。n位地址被分成行地址和列地址(nr十c)。r是行地址数,c是列地址数。行列选定一个特定存储单元。嵌入式系统的存储器与通用系统的存储器有所不同,通常由ROM、RAM、EPROM等组成。嵌入式存储器一般采用存储密度较大的存储器芯片,存储容量与应用的软件大小相匹配。4.2.3 常见的嵌入式系统存储设备1 1RAMRAM(随机存储器)(随机存储器)RAM可以被读和写,地址可以以任意次序被读。常见RAM的种类有SRAM(Static RAM,静态随机存储器)DRAM(Dynam
9、ic RAM,动态随机存储器)DDRAM(Double Data Rate SDRAM,双倍速率随机存储器)。SRAM比DRAM运行速度快 SRAM比DRAM耗电多 DRAM需要周期性刷新 DDRAM是RAM的下一代产品,200MHz时钟频率时内存带宽可达3.2GB/s海量 2 2ROMROM(只读存储器)(只读存储器)ROM断电后数据不丢失,但速度较慢,适合存储需长期保留的不变数据。在嵌入式系统中,ROM用于固定数据和程序。常见ROM有:Mask ROM(掩模ROM,厂家一次性写入用户无法修改)PROM(Programmable ROM,可编程ROM,用户一次性写入)EPROM(Erasab
10、le Programmable ROM,可擦写ROM,紫外光可重复擦除和写入)EEPROM(电可擦除可编程ROM,也可表示为E2PROM,电擦除)Flash ROM(闪速存储器,可快速读取,电可擦写可编程)3 3Flash MemoryFlash MemoryFlash memory(闪速存储器)是一种非易失性存储器(NVM:Non-Volatile Memory)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失根据结构不同分成 NOR FlashNOR Flash和和NAND FlashNAND Flash两种Flash Memory在物理结构上分成若干个区块,区块之间相
11、互独立NOR Flash把整个存储区分成若干个扇区(扇区(SectorSector);NAND Flash把整个存储区分成若干个块(块(BlockBlock);可以对以块或扇区为单位的内存单元进行擦写和编程。NOR Flash NOR Flash 和和 NAND Flash NAND Flash 特性特性NAND FlashNAND Flash执行擦除操作是十分简单的,而执行擦除操作是十分简单的,而NORNOR型内存则要求在型内存则要求在进行擦除前先要将目标块内所有的位都写为进行擦除前先要将目标块内所有的位都写为0 0擦除时间:NOR Flash执行一个写入擦除操作的时间为5s;NAND Fl
12、ash相同操作最多只需要4ms(快小+高速)NOR Flash的读速度比NAND Flash稍快一些,NAND Flash的写入速度比NOR Flash快很多。应用程序可以直接在应用程序可以直接在NOR FlashNOR Flash内运行,不需要再把代码读到系统内运行,不需要再把代码读到系统RAMRAM中运行。中运行。NAND Flash的随机读取能力差,适合大量数据的连续读取NOR FlashNOR Flash带有带有SRAMSRAM接口,有足够的地址引脚来寻址,可以很容接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。易地存取其内部的每一个字节。NAND Flash结构可以
13、达到高存储密度,并且写入和擦除的速度也很快,应用NAND Flash的困难在于需要特殊的系统接口。NAND Flash地址、数据和命令共用8位总线/16位总线,每次读写都要使用复杂的I/O接口串行地存取数据除了除了NOR FlashNOR Flash的读,的读,Flash MemoryFlash Memory的其他操作不能像的其他操作不能像RAMRAM那样,那样,直接对目标地址进行总线操作。直接对目标地址进行总线操作。例如执行一次写操作,它必须输入一串特殊的指令(NOR Flash),或者完成一段时序(NAND Flash)才能将数据写入到Flash Memory中NOR Flash容量通常在
14、1 MB8MB之间。而NAND Flash用在8MB以上的产品当中。NOR Flash主要应用在代码存储介质中,NAND Flash适用于数据存储。在NAND Flash中每个块的最大擦写次数是一百万次,而NOR Flash的擦写次数是十万次。4.3 NOR Flash接口电路4.3.1 NOR Flash存储器Am29LV160DAMD公司的一款NOR Flash存储器存储容量为2M8Bit/1M16Bit接口与CMOS I/O兼容工作电压为2.73.6V读操作电流为9mA编程和擦除操作电流为20mA待机电流为200nA采用FBGA-48、TSOP-48、SO-44 三种封装形式。Am29L
15、V160D仅需3.3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程(烧写)、整片擦除、按扇区擦除,以及其他操作。以16位(字模式)数据宽度的方式工作。引脚类型功能A19A19A0A0输入地址输入。提供存储器地址DQ14DQ14DQ0DQ0输入/输出数据输入/输出DQ15/A-1DQ15/A-1输入/输出在字模式,DQ15为数据输入/输出;在字节模式,A-1为 LSB地址输入BYTE#BYTE#输入选择8bit 或者16bit 模式CE#CE#输入片选。当CE#为低电平时,芯片有效OE#OE#输入输出使能。当OE#为低电平时,输出有效WE
16、#WE#输入写使能,低电平有效,控制写操作RESET#RESET#输入硬件复位引脚端,低电平有效RY/BY#RY/BY#输出就绪/忙标志信号输出,SO-44封装无此引脚端VCCVCC电源3 V电源电压输入VSSVSS地器件地NC未连接。空脚 Am29LV160D的逻辑框图表4.3.1 Am29LV160D引脚端功能4.3.2 S3C2410A4.3.2 S3C2410A与与NOR FlashNOR Flash存储器的接口电路存储器的接口电路 Flash存储器在系统中通常用于存放程序代码存放程序代码,系统上电或复位后从此获取指令并开始执行,应将存有程序代码的Flash存储器配置到Bank0Ban
17、k0S3C2410A的nGCS0nGCS0接至Am29LV160D的CECE(nCEnCE)端Am29LV160D的OEOE(nOEnOE)端接S3C2410X的nOEnOE;WE(nXE)端S3C2410X的nWE相连;地址总线A19A0A0与S3C2410X的地址总线ADDR20ADDR1ADDR1(A20A1)相连;16位数据总线DQ15DQ0与S3C2410X的低16位数据总线DATA15DATA0(D15D0)相连。不使用不使用NAND FlashNAND Flash作为启动作为启动ROMROM 使用使用NAND FlashNAND Flash作为启动作为启动ROMROM注意:注意:
18、SROMSROM表示是表示是ROMROM或或SRAMSRAM类型的存储器;类型的存储器;SFRSFR指特殊功能寄存器。指特殊功能寄存器。图4.3.2 S3C2410A与Am29LV160D的接口电路4.4 NAND Flash4.4 NAND Flash接口电路接口电路4.4.1 S3C2410A NAND Flash4.4.1 S3C2410A NAND Flash控制器控制器1S3C2410A NAND Flash控制器特性NAND Flash模式:支持读擦除编程NAND Flash存储器。自动启动模式:复位后,启动代码被传送到Steppingstone中。传送完毕后,启动代码在Stepp
19、ingstone中执行。具有硬件ECC产生模块(硬件生成校验码和通过软件校验)。在NAND Flash启动后,Steppingstone 4KB内部SRAM缓冲器可以作为其他用途使用。为了支持NAND Flash的启动装载(boot loader),S3C2410A配置了一个叫做“Steppingstone”的内部SRAM缓冲器。当系统启动时,NAND Flash存储器的前4KB将被自动加载到Steppingstone中,然后系统自动执行这些载入的启动代码。在一般情况下,启动代码将复制NAND Flash的内容到SDRAM中。在复制完成后,将在SDRAM中执行主程序。2 2S3C2410A N
20、AND FlashS3C2410A NAND Flash控制器结构控制器结构图4.4.1 NAND Flash控制器内部结构方框图图4.4.2 NAND Flash的操作模式NAND Flash的工作模式如图4.4.2所示。自动启动模式的时序如下:(1)完成复位;(2)当自动启动模式使能时,首先将NAND Flash存储器的前4 KB内容自动复制到 Steppingstone 4 KB内部缓冲器中;(3)Steppingstone映射到nGCSO;(4)CPU开始执行在Steppingstone 4 KB内部缓冲器中的启动代码。注意:在自动启动模式,不进行ECC检测。因此,应确保NAND Fl
21、ash的前4 KB不能有位错误。NAND Flash模式配置:(1)利用NFCONF寄存器设置NAND Flash配置;(2)写NAND Flash命令到NFCMD寄存器;(3)写NAND Flash地址到NFADDR寄存器;(4)在检查NAND Flash状态时,利用NFSTAT寄存器读写数据。在读操作之前或者编程操作之后应该检查R/nB信号。表4.4.1 NAND Flash控制器的引脚配置引脚配置D7:0数据/命令/地址输入/输出端口(用数据总线分派)CLE命令锁存使能(输出)ALE地址锁存使能(输出)nFCENAND Flash芯片使能(输出)nFRENAND Flash读使能(输出)
22、nFWENAND Flash写使能(输出)R/nBNAND Flash准备就绪/忙使能(输出)4.4.2 S3C2410A4.4.2 S3C2410A与与NAND FlashNAND Flash存储器的接口电路存储器的接口电路与NOR Flash存储器相比,NAND Flash的接口相对比较复杂。一些嵌入式处理器芯片内部配置了专门的NAND Flash控制器,如S3C2410A。K9F1208UDM-YCB0的存储容量为64M64M字节字节数据总线宽度为数据总线宽度为8 8位位工作电压为2.7V3.6V仅需单3.3V电压即可完成在系统的编程与擦除操作表4.4.3 K9F1208UDM的引脚功能
23、引脚类型功能I/O7I/O7 I/O0I/O0输入/输出数据输入输出、控制命令和地址的输入CLECLE输入命令锁存信号ALEALE输入地址锁存信号/CE/CE输入芯片使能信号/RE/RE输入读有效信号/WE/WE输入写有效信号/WP/WP输入写保护信号R/nBR/nB输出就绪/忙标志信号输出VccVcc电源电源电压2.7V3.3VVssVss接地器件地CLE有效时,锁存在I/O口上的是控制命令字;ALE有效时,锁存在I/O口上的是地址;/RE或/WE有效时,锁存的是数据这种一口多用的方式可以大大减少总线的数目,只是控制方式略微有些复杂。S3C2410X处理器的NAND Flash控制器可以解决
24、这个问题。图4.4.4 S3C2410A与K9F1208UDM-YCB0接口电路4.5 SDRAM4.5 SDRAM接口电路接口电路SDRAM可读可写,掉电不保持数据,存取速度大大高于Flash存储器。在嵌入式系统中,SDRAMSDRAM主要用做程序的运行空间、数据及堆栈区主要用做程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址0 x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度。同时,系统及用户堆栈、运行数据也都放在SDRAM中。SDRAM为避免数据丢失,必须定时刷新。要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻
25、辑电路。S3C2410A在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM接口。目前常用的SDRAM为8位/16位的数据宽度,工作电压一般为3.3V。主要的生产厂商为HYUNDAI,Winbond等。HY57V561620存储容量为4组64M位16位数据宽度。工作电压为3.3V常见封装为TSOP-54兼容LVTTL接口支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh)表4.4.4 HY57V561620引脚功能 引脚类型功能CLKCLK输入时钟,时钟,芯片时钟输入。所有的输入中CLK的上升沿有效CKECKE输入时钟使能,时钟使能,片内时钟信号控制/CS/CS
26、输入片选片选。禁止或使能除CLK、CKE和DQM外的所有输入信号BA0BA0,BA1BA1输入组地址选择组地址选择。用于片内4个组的选择A12A12A0A0输入地址总线地址总线。行地址:A12A0;列地址:A8A0/RAS/RAS输入行地址锁存行地址锁存。时钟沿和/RAS有效时,锁存行地址,允许行访问和改写/CAS/CAS输入列地址锁存列地址锁存。时钟沿和/CAS有效时,锁存列地址,允许列的访问/WE/WE输入写使能写使能。使能写信号和允许列改写,WE和/CAS有效时开始锁存数据LDQMLDQM,UDQMUDQM输入数据数据I/OI/O屏蔽屏蔽。在读模式下控制输出缓冲;在写模式下屏蔽输入数据D
27、Q15DQ15DQ0DQ0输入/输出数据总线数据总线。数据输入/输出VDD/VSSVDD/VSS电源地内部电路及输入缓冲器电源地VDDQ/VSSQVDDQ/VSSQ电源地输出缓冲器电源地NC空脚。未连接图4.4.5 S3C2410X与SDRAM存储器HY57V561620的接口电路可构建16位或32位的SDRAM存储器系统,但为充分发挥32位CPU的数据处理能力,本设计采用32位的SDRAM存储器系统。HY57V561620为16位数据宽度,单片容量为32MB,系统选用两片HY57V561620并联构建32位的SDRAM存储器系统,共64MB的SDRAM空间两片HY57V561620并联构建3
28、2位的SDRAM存储器系统,其中一片为高16位,另一片为低16位,可将两片HY57V561620作为一个整体配置到Bank6即将S3C2410X的nGCS6接至两片Y57V561620的/CS端。高位HY57V561620的CLK端连接到S3C2410X的SCLK1端,低位HY57V561620的CLK端连接到S3C2410X的SCLK0端;注意:此时应将BWSCON中的DW6设置为10,即选择32位总线方式。人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“书中自有黄金屋。”通过阅读科技书籍,我们能丰富知识,培养逻辑思维能力;通过阅读文学作品,我们能提高文学鉴赏水平,培养文学情趣;通过阅读报刊,我们能增长见识,扩大自己的知识面。有许多书籍还能培养我们的道德情操,给我们巨大的精神力量,鼓舞我们前进。