[发明专利]查找闪存设备中固件程序存放位置的方法有效
申请号: | 201110087950.9 | 申请日: | 2011-04-08 |
公开(公告)号: | CN102147771A | 公开(公告)日: | 2011-08-10 |
发明(设计)人: | 李中政;邓恩华 | 申请(专利权)人: | 深圳市江波龙电子有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平 |
地址: | 518057 广东省深圳市南山区科发路8*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 查找 闪存 设备 中固件 程序 存放 位置 方法 | ||
【技术领域】
本发明涉及闪存技术领域,尤其涉及一种查找闪存设备中固件程序存放位置的方法。
【背景技术】
闪存(Flash)是一种非挥发性的半导体存储芯片,具有体积小、功耗低、无磁头等运动器件、不易受物理破坏的优点,是现有便携式存储设备的理想存储介质。利用闪存自身的非挥发性(即掉电后数据也不会丢失)特点,把固件程序存放于闪存,以闪存为存储介质的设备包括有U盘、SD卡(Secure DigitalMemory Card,安全数码卡)、SSD(Solid State Disk,固态硬盘)、MP3、Emmc(嵌入式多媒体卡)等闪存设备。所谓固件程序,是闪存设备的引导程序或者是引导程序的补丁程序。闪存设备加电后,主控芯片(控制单元)从闪存中读取这部分固件程序,按照预先的定义加载到合适的位置,从而使设备正确运行。
闪存通常具有如下的物理结构:每片封装片分为一颗或多个晶粒(Dice);每颗晶粒分为多个块(Block);每个块分为多个页面(Page)。对闪存的数据访问有三种类型:擦除、写入和读取。受闪存的物理特性影响,擦除时必须以块为单位,写入时必须以页为单位。读取操作则具有比较大的随意性,多数闪存可以以字节为单位读取。操作闪存的主控芯片一般都会有ECC(Error CodeCorrect,差错纠正)功能,在闪存内数据出错的情况下,可以把错误的数据纠正回来。但是ECC纠错能力是有限的,当闪存内数据出错的比特数目超出了ECC的最大纠错能力时,从闪存内读取的数据就是错误的了。如果从某个块中的某个位置读出的数据是错误的,则称这个块是坏块(Bad Block)。
通常,由于固件程序自身比较大,如果全部从闪存内读出,在进行校验时,所花费的时间太多,所以当前的主流方案是建立一个很小的数据结构体,在这个数据结构体内记录了固件程序存放的位置等信息。主控芯片上电搜索时,搜索的是这个数据结构体并进行校验,校验通过后,在根据其中的信息加载固件程序,因此,查找闪存设备中固件程序存放位置即查找这个数据结构体的位置,查找固件程序即为查找该数据结构体。
尽管不同型号的闪存,其物理结构各自不同,但几乎所有的闪存物理结构都可归结为行和列。其中,每个页(Page)是一行,页地址称为行地址(rowaddress),页内的不同地址称为列地址(column address)。如此一来,只用行、列地址即可做到不同型号的闪存的读取操作。
通常,从闪存中加载固件程序时,考虑到要兼容不同型号的闪存,预设了一定的行列地址算法,根据该算法计算出要访问的行列地址,查找闪存中存放的固件程序。然而,传统方案在设置行列地址的算法上具有一定的随意性,在闪存质量较差的情况下,使用较为随意的算法时无法覆盖到较多的块。由于闪存内的坏块一般无法使用,所以使用某些质量较差的闪存时,会找不到合适的固件程序存放地址,导致无法兼容到该闪存,降低了闪存设备的易用性。而某些质量较差的闪存价格便宜,如果无法兼容这些闪存,将提高闪存设备的成本。
传统方案中,也有从闪存的第一个页开始,逐个页地查找固件程序,这种算法可以覆盖所有块,是一定能找到固件程序的。但是由于访问闪存也是需要时间的,当闪存的质量比较差时,逐个页地去查找固件程序所需要等待的时间比较长,而用户无法忍受这么长的等待时间。考虑到这一问题,传统算法中也有计算出的行地址不是连续的,而是间隔的查找固件程序。然而,这样有时候会忽略掉很多页地址,导致存在查找的“盲点”,即存在这样一种情况:某些块是好的,可以用来存放固件程序,但传统方案的对固件程序的查找方法中并没有包含这些块。此外,传统方案中还存在“重复搜索”的问题,即传统方案计算出来的页地址很多时候是在同一个块内,这样,会在同一个块内的不同页上进行搜索,使得对闪存的访问时间更长,降低了查找固件程序存放位置的效率。
【发明内容】
基于此,有必要提供一种能尽可能多的覆盖较多的块,同时能提高查找效率的查找闪存设备中固件程序存放位置的方法。
一种查找闪存设备中固件程序存放位置的方法,包括以下步骤:
A.将现有闪存依据每个块内包含的页数由少到多划分为多个等级,对所有等级的闪存做定量分析,确定每一等级闪存的最大容量的最大行地址;
B.假设闪存为第一等级闪存,由第一等级闪存的最大容量的最大行地址除以第一等级闪存中每个块内包含的页数确定第一数量,按照预设查找方式以第一等级闪存中每个块内包含的页数为跨度在所述第一数量个块中进行查找;
C.判断是否查找到固件程序存放位置,若是,则进入步骤F,否则执行步骤D;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市江波龙电子有限公司,未经深圳市江波龙电子有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110087950.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:具有LED照明系统的吊顶板
- 下一篇:一种增强使用寿命的LED灯