专利名称:一种在微内存系统上实现小页nandflash虚拟大页的方法
技术领域:
本发明涉及一种嵌入式系统存储器的处理方法,具体来说涉及一种在微内存系统上实现小页NANDFLAH虚拟大页的方法。
背景技术:
当前各类嵌入式系统开发设计中,存储模块是不可或缺的重要部件。其中的flash 存储器作为一种安全、快速的存储体,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点。目前已经逐步取代其它半导体存储元件,成为嵌入式系统中数据和程序的主要载体。Nandflash技术发展迅猛,不同厂商的Nandflash产品系列都在不断地推陈出新。 就同一系列的NANDFLASH升级而言,有M代、A代、B代……之分,如三星的K9G4G08X0M、
K9G4G08X0A 和 K9G4G08X0B ;就纳米生产工艺而言,有 70nm、52nm、34nm、32nm......之分,nm 数
越小表示厂商的生产工艺越精密。就block的变化而言,有16KB、128KB、256KB、512KB、1MB、 2MB之分;就page的变化而言,有512B、2KB、4KB、8KB之分。Block和page越大,一般也代表了生产工艺越先进。在纷繁的nandflash产品系列中,最早出现的page为512B、block为16KB的 nandflash被称为small page nandflash (即小页nandflash),已经逐渐淡出市场。但市面上还是有少量存货,或一些旧的电子产品拆卸下来的旧Nandflash中也有这类小页 nandflash。而除小页 nandflash 外,其他 nandflash 不管其为 SLC (single level cell, 单级单元)或MLC (multi level cell,多级单元)型的nandflash,统称为大页nandflash。对于这些微内存软件系统,需要在有限的内存资源下,支持各种各样的 nandflash,其中就包括小页nandflash。但目前尚无较好的方法实现微内存软硬件方案上对小页nandflash进行的特殊处理。在各种普遍的方案中,都是把此类nandflash当作标准的小页nandflash来使用。现有技术按照常规方式来使用小页nandflash,但此方式对于微内存系统来说, 有如下缺点第一大小页nand驱动集成在一起,占用内存较多;第二 小页nandflash 的一个页只有512B,不方便微内存系统进行内存换页操作和读取资源操作;第三小页 nandflash的一个块只有16KB,因此同等容量中,小页的nandflash要比大页的nandflash 的块数要多得多,这给微内存系统的块映射表带来更大的内存负荷。
发明内容
本发明的目的在于提供一种在微内存系统上实现小页NANDFLAH虚拟大页的方法,该方法能够把非主流的小页Nandflash当作主流的大页Nandflash来使用,大大降低上层调用的复杂度;同时,针对内存极为紧张的微内存系统,大幅减少对小页Nandflash管理所占用的内存空间。本发明的目的可通过以下的技术措施来实现一种在微内存系统上实现小页NANDFLAH虚拟大页的方法,首先,将系统中的大页 NANDFLASH驱动和小页NANDFLASH驱动分开;再将系统中物理小页虚拟成为逻辑大页、将物理小块虚拟成为逻辑大块。所述微内存系统中的大、小页NANDFLASH驱动通过宏分开。所述小页NANDFLASH系统中每个物理小块包含32个物理小页、每个物理小页的大小为512B。所述每个虚拟的逻辑大页中包括8个物理小页。所述每个虚拟的逻辑大块中包括16个物理小块。所述小页NANDFLAH中的读写一个逻辑大页的过程分解为读写若干物理小页。所述小页NANDFLAH中的擦除一个逻辑大块的过程分解为擦除若干物理小块。本发明方法具有以下有益效果首先,本方法把非主流的小页Nandflash当作主流的大页Nandflash来使用,大大降低上层调用的复杂度,节省系统调用所占用的资源;第二 针对内存极为紧张的微内存系统,大幅减少对小页Nandflash管理所占用的内存空间, 并对上层应用透明;第三,本发明方法可应用于多媒体应用处理芯片的一整套针对中低端 MP3、MP4、录音笔、点读笔及点读机等产品的系统开发平台。
图1是本发明方法中将一个逻辑大页划分成多个物理小页的组成结构示意图; 图2是本发明方法中读写一个逻辑大页时的读写逻辑示意图3是本发明方法中将一个逻辑大块划分成多个物理小块的组成结构示意图; 图4是本发明方法中擦除一个逻辑大块时的擦除逻辑示意图; 图5是本发明方法中一个逻辑大块的组成结构示意图。
具体实施例方式图1至图5示出了采用本发明的一种在微内存系统上实现小页NANDFLAH虚拟大页的方法中将原有的小页NANDFLASH虚拟成为一个大页NANDFLASH的内存结构的重组的结构示意图,本发明采用的小页NANDFLASH中每个物理小块包含32个物理小页、每个物理小页的大小为512B,将其虚拟成大页NANDFLASH的具体内容包括以下几个方面
(1)、将系统中的大页nandflash驱动、小页nandflash驱动分开
由于微内存系统内存紧张,因此,将大页nandflash的驱动和小页nandflash的驱动完全通过宏隔开,同时隔开的还有下面所述的专门为小页nandflash所做的特殊处理;
(2)、将系统中多个物理小页虚拟为一个逻辑大页
微内存系统所使用的换页大小为4KB,对于这样的一个内存页要从nandflash上的同样空间去交换。为了避开内存交换管理模块对物理硬件差异化的依赖,可以让内存交换管理模块可以透明地对待存储设备硬件的页大小为4KB。这样对于小页的nandflash,页大小为512 B,逻辑上可以用物理上的8个页来代替一个4KB的逻辑页大小。其组成结构可以用图1表示,将8个物理小页虚拟成为一个逻辑大页;
这样对于内存交换模块读写小页的nandflash时,对于读写接口可以在驱动层连续的读写8个物理小页来获得一个期待的4KB数据。如图2为驱动层的读写逻辑;图中的伪大页即是逻辑大页,真实小页就是物理小页;
(3)、将系统中多个物理小块虚拟成为一个逻辑大块
由于所有的Nandflash都可以分为一个个块组成,其擦除的基本单位就是以块为单位,如图4中伪大块即是逻辑大块,真实小块就是物理小块。这些块可能存在不能读写数据的坏块,对于读写nandflash上的一个文件或者一段数据区时,需要知道这些数据分别保存在哪些块里,这样就存在对应这个文件或者这段数据的一个块映射表。对于小页Nandflash,其一个物理小块大小为16KB,这样对于一个大小为IOM的数据区,一个块用2个字节表示,其映射表所占用的空间为
2 X (10 X1024 X1024) / (16 X 1024) = 1280 Bytes
这样占用的空间相对微内存来说就比较大,况且nandflash驱动层的读写还需要提供给其它模块,比如文件系统。对于微内存系统,文件系统对内存的需求和块的管理上也有一定的限制和要求。但是如果我们用多个物理上小块(block)映射成一个逻辑上的大块, 就可以解决这种问题。针对现在市场上流行的某些4KB page的nandflash,一个块所包含的页数量为64个page,即256KB,为了将本系统中的小页NANDFLASH虚拟成这样可以的大页NANDFALSH,则用小页NNADFLASH中的16个物理小块来模拟出这样的一个普通的4 KB/ page,64 page/block的nandflash的大块(如图3所示)。虚拟后的大块称为逻辑大块,16 个物理小块对应的就是16*32个物理小页,也就是2*32=64个逻辑大页,即如图5所示的组成结构。这样一来,每个逻辑大页包括8个物理小页,每个逻辑大块包括64个逻辑大页,整个小页NANDFLASH重组为包含若干逻辑大块的大页NANDFLASH,如图5所示。本发明方法的一个应用案例如下
基于某多媒体应用处理芯片的一整套针对中低端MP3、MP4、录音笔、点读笔及点读机等产品的系统开发平台。该平台采用针对嵌入式系统的虚拟内存技术,在无需外接SDRAM的情况下,可以虚拟出2MB或4MB的内存空间,对上层开发者完全透明,灵活、方便,易于二次开发。该平台还具备强大的多媒体解码能力,支持mp3/wma/wav/amr/flac/ape/0gg等多种格式的音频解码功能,以及QVGA视频流畅解码能力。由于本系统的硬件核心——多媒体应用处理芯片只有不超过256KB的物理SRAM 内存,而对上层开发者却能提供2MB或4MB的虚拟内存。由于使用了本方法的换页机制,即当上层要访问的内存(code或data)不在物理内存的时候,把物理内存的一个内存页(一个内存页大小定义为4KB)舍弃掉原数据,而从nandflash重新加载一个内存页的新数据。本发明的实施方式不限于此,在本发明上述基本技术思想前提下,按照本领域的普通技术知识和惯用手段对本发明内容所做出其它多种形式的修改、替换或变更,均落在本发明权利保护范围之内。
权利要求
1.一种在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于首先,将系统中的大页NANDFLASH驱动和小页NANDFLASH驱动分开;再将系统中物理小页虚拟成为逻辑大页、将物理小块虚拟成为逻辑大块。
2.根据权利要求1所述的在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于所述微内存系统中的大、小页NANDFLASH驱动通过宏分开。
3.根据权利要求1所述的在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于所述小页NANDFLASH系统中每个物理小块包含32个物理小页、每个物理小页的大小为 512B。
4.根据权利要求1所述的在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于所述每个虚拟的逻辑大页中包括8个物理小页。
5.根据权利要求1所述的在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于所述每个虚拟的逻辑大块中包括16个物理小块。
6.根据权利要求1或4所述的在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于所述小页NANDFLAH中的读写一个逻辑大页的过程分解为读写若干物理小页。
7.根据权利要求1或5所述的在微内存系统上实现小页NANDFLAH虚拟大页的方法,其特征在于所述小页NANDFLAH中的擦除一个逻辑大块的过程分解为擦除若干物理小块。
全文摘要
本发明公开了一种在微内存系统上实现小页NANDFLAH虚拟大页的方法,包括以下内容将大、小页NANDFLASH驱动分开;将若干物理小页虚拟成为一个逻辑大页;将若干物理小块虚拟成为一个逻辑大块。该方法能够把非主流的小页Nandflash当作主流的大页Nandflash来使用,大大降低上层调用的复杂度;同时,针对内存极为紧张的微内存系统,大幅减少对小页Nandflash管理所占用的内存空间。
文档编号G06F12/06GK102486751SQ20101056848
公开日2012年6月6日 申请日期2010年12月1日 优先权日2010年12月1日
发明者姜迪辉, 易若翔, 胡胜发 申请人:安凯(广州)微电子技术有限公司