一种嵌入式存储器的读写优化方法,适用于eflash存储器;将一个逻辑页与一个物理页上同样大小的若干个扇区相对应,建立逻辑页上有效数据与物理页扇区的映射关系。根据映射关系找到实际存储的数据进行读取。在写操作时,先读取实际存储的数据,如果是全FF则直接写入;而如果不是全FF且当前扇区不在最后一个扇区,则将数据写到下一个扇区中,否则,应将当前逻辑页的所有有效数据都读到SRAM中,擦除对应物理页,并将SRAM中的值更新成最新的值后写到已擦除物理页的第一个扇区中;以上操作完成后,更新映射表。本发明专利技术所述优化方法简化了eflash存储器的读写操作,能有效提高文件系统的性能,同时降低系统的复杂度。
【技术实现步骤摘要】
本专利技术涉及一种优化嵌入式Norflash存储器读写(以下简称eflash)的方法,尤其适用于在eflash上建立文件系统的嵌入式软件系统。
技术介绍
半导体存储器可分为挥发性存储器和非挥发性存储器两类,挥发性存储器掉电后会失去记忆的数据,非挥发性存储器即使在切断电源的情况下也可以保护数据。ROM是非挥发性存储器,ROM在类型上根据用户是否可以写入数据而分为两类,一类是用户可以写入的 ROM,另一类是是制造商在加工过程中写入的被称为Mask ROM。在用户可以写入的ROM中, 比较常用的有EEPROM (Electrically Erasable Programmable ROM,电可擦可编程只读存储器)和 eflash (Embedded Flash Memory,嵌入式闪存)。eflash是EEPROM走向成熟,半导体技术发展到亚微米技术,以及大容量电可擦写存储器需求的产物。它存储数据的原理是以电荷的形式储存在浮栅电极上。与EEPROM相比,Flash在集成度方面有无可比拟的优越性;它的单元面积仅为常规EEPROM的四分之一。 EEPROM由于成本高、需求量小、集成度低,有逐渐被eflash取代的趋势。但是eflash在应用中有以后缺点一方面,eflash不能按字读写;另一方面, eflash只能以页单位执行擦除操作,一页通常很大,根据不同的eflash型号从256字节到 4K字节都有。另外,在对eflash进行写操作之前,必须先执行擦除操作,而擦除操作所需要的时间非常长,一般会达到微秒级。这在应用中会带来很大的不便,增加了文件系统实现的复杂性,并降低了系统性能。
技术实现思路
本专利技术的目的是解决目前应用中在对eflash存储器读写时遇到的技术难点,提供一种更高性能和更方便的eflash存储器的读写优化方法,使得对eflash存储器的读写可以像操作SRAM (静态随机存储器)一样简单,来提高文件系统的性能,同时降低系统的复杂度。本专利技术的技术方案是提供,所述嵌入式存储器是eflash ;所述优化方法,包含在eflash的主存空间中设置若干个物理页,将每个物理页划分成若干个同样大小的扇区;还在虚拟空间中设置若干个逻辑页,使一个逻辑页的大小等于一个扇区的大小;并且,定义了将一个逻辑页与一个物理页相对应,并将该逻辑页上的有效数据映射到其所对应的物理页中若干个扇区上的映射关系,即使逻辑页地址等于物理页地址,而逻辑页上有效数据的偏移地址等于该物理页上各个扇区的偏移地址;因此根据所述映射关系,能够确定逻辑页上有效数据在所对应的物理页上的具体扇区号,进而根据该扇区号对eflash进行逻辑读或逻辑写的操作。所述优化方法,具体包含在初始化时进行的建表操作,即,在一 SRAM中建立映射CN 102541753 A关系表,来确定与逻辑页上有效数据所对应的扇区号;在所述建表操作中,根据一个逻辑页上有效数据的偏移地址,从相对应的物理页的最后一个扇区向第一个扇区依次扫描,得到各个扇区的相同偏移地址上的数据如果从其中一个扇区上获得的数据不是全FF,则该扇区号为逻辑页上有效数据的映射扇区号,在映射关系表中将该扇区记录为逻辑页上有效数据所对应的扇区;如果所有扇区的该偏移地址上数据都是全FF,则设定所述逻辑页上该有效数据的映射扇区号为0,将该物理页的第一个扇区记录为逻辑页上有效数据所对应的扇区。所述映射关系表是在所述SRAM中建立的一个二维数组Lut ,其中m代表 eflash中各个逻辑页的逻辑页号;η代表有效数据在一个逻辑页中的逻辑编号;所述逻辑编号与数据在逻辑页及相应扇区中的偏移量相对应,所述偏移量与所述eflash的最小读写单位相匹配;所述二维数组的值用s表示,代表有效数据所对应的扇区号。所述优化方法在进行逻辑读操作时,根据应用程序给出的逻辑地址,算出有效数据所在的逻辑页数,及其在该逻辑页中的偏移量,通过查询所述映射关系表得到在相应物理页上具体映射的扇区号;再根据所述偏移量,计算所映射的扇区上与该逻辑地址对应的物理地址;之后,读取所述物理地址上的数据。所述优化方法在进行逻辑写操作时,先读取应用程序给出的逻辑地址上数据的值如果读出的值是全FF,则将新值直接写到当前映射扇区的该物理地址; 如果读出的值不是全FF,且当前映射扇区不是所述eflash的最后一个扇区,则将新的数据写到当前扇区的下一个扇区中,并更新映射关系表;如果读出的值不是全FF,且当前映射扇区是所述eflash的最后一个扇区,则将当前逻辑页上所有的有效数据都读到SRAM中,擦除对应的物理页,并将SRAM中的值更新成最新的值后写到已擦除物理页的第一个扇区中,并更新映射关系表。另外,所述优化方法在进行逻辑写操作时,如果要写入逻辑页的新值是全FFJlJF 管所映射的是哪个扇区,都要将当前逻辑页中所有的有效数据读到SRAM中,擦除对应的物理页,并将SRAM中的值更新成最新的值后写到已擦除物理页的第一个扇区中,并更新映射关系表。本专利技术所述嵌入式存储器的读写优化方法,其优点在于,通过建立逻辑页数据与物理页数据之间的映射关系,使得eflash存储器的读写操作简单高效,尤其是在写入数据时可以分情况处理,不必在所有情况下都进行整页的擦除操作,解决了传统应用中的技术问题。因此,本专利技术能够提高文件系统的性能,同时降低系统的复杂度。附图说明图1是本专利技术所述嵌入式存储器的读写优化方法中建表操作的流程图; 图2是本专利技术所述嵌入式存储器的读写优化方法中逻辑写操作的流程图。具体实施例方式本专利技术是一种适用于嵌入式Norflash存储器(以下简称eflash)的读写优化方法,首先将eflash的每个物理页划分成若干个同样大小的物理扇区,通常便于计数会分成 4个或8个物理扇区。使一个物理页对应一个逻辑页,同时,使一个逻辑页对应若干个同样大小的物理扇区,即,同一个逻辑页上的数据会分布在同一个物理页的不同扇区上面,一个逻辑页的大小等于一个物理扇区的大小。应用程序具体访问的是逻辑页上的数据,而逻辑页上的数据需要通过特定的映射关系才能对应到真正的物理页上的数据。为此,本专利技术中定义了一种高效的映射关系,即, 令逻辑页地址等于物理页地址,而需访问的逻辑页上数据的偏移地址等于该物理页上物理扇区的偏移地址;因此,为了从逻辑页数据映射到物理页数据,只需要找到对应的扇区号, 例如4个或8个物理扇区中的某个扇区编号。一般在使用中,初始化时,会提前在一 SRAM中建立好映射关系表,来确定逻辑页上数据在所对应物理页上的扇区号。通常是从高到低扫描对应物理页的各个扇区上处在相同偏移地址上的数据如果发现数据不是全FF,则该扇区号即为逻辑页上该数据的映射扇区号;如果发现所有扇区的该偏移地址上数据都是全FF,则设定逻辑页上该数据的映射扇区号为0 (即该数据与第一个扇区对应)。在读操作时,只需通过上述的映射关系找到物理上实际的数据进行读取即可。在写操作时,首先通过上述的映射关系找到物理上实际的数据,如果是全FF则可以直接写入;而如果不是全FF且当前扇区不在最后一个扇区,则将数据写到当前找到扇区的下一个扇区中,否则,在这种情况下应将当前逻辑页的所有有效数据都读到SRAM中,擦除对应物理页,并将SRAM中的值更新成最新的值后写到已擦除物本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:陈诚,朱念好,周玉洁,
申请(专利权)人:上海爱信诺航芯电子科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。