[发明专利]一种boot程序的启动方法和相关装置在审
| 申请号: | 201310410749.9 | 申请日: | 2013-09-10 |
| 公开(公告)号: | CN103473098A | 公开(公告)日: | 2013-12-25 |
| 发明(设计)人: | 喻丙旭 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445 |
| 代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 boot 程序 启动 方法 相关 装置 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种boot程序的启动方法和相关装置。
背景技术
Nand flash(与非闪存)是一种flash内存,Nand flash存储器因具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)随身听记忆卡、体积小巧的U盘等。
目前在boot(系统引导)程序启动中经常会选用Nand flash,通常只需要一片Nand flash就可以启动boot程序,由于Nand flash具有容量大的特点,既可以用于启动程序又可以用于存储数据,可以减低产品的成本。
现有技术中使用Nand flash启动boot程序的方法,主要包括如下步骤:
首先读取boot数据,然后使用ECC(Error Checking and Correcting,差错校验纠正)算法判断boot数据是否存在错误,若boot数据存在错误,则直接反馈boot启动失败,若所有boot数据经过EEC算法判断都没有错误,才能成功启动boot。
但是本发明的发明人在实现本发明的过程中发现,现有的所有flash器件都会受到位交换现象的困扰,对于Nand flash也不例外,即在Nand flash中同样存在位交换的问题,例如在使用NAND flash的过程中存储单元的某个比特位可能会发生翻转或被报告翻转从而使存储的数据改变了,若改变的数据超过了EEC算法的纠错能力,这就会导致boot程序启动失败。
另外,在Nand flash器件出厂时就存在随机分布的坏块问题,坏块是不能使用的物理块,在使用Nand flash的过程中同样也可能随机的出现坏块问题,而因Nand flash随机出现坏块也能够导致数据错误,造成boot程序启动失败。
发明内容
本发明实施例提供了一种boot程序的启动方法和相关装置,用于提高boot程序从Nash flash启动成功的概率。
为解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供了一种boot程序的启动方法,包括:
当检测到boot启动请求时,判断在与非闪存Nand flash中操作的第一物理块是否为坏块;
若所述第一物理块不是坏块,读取所述第一物理块中存储的第一boot数据;
判断读取到的第一boot数据是否有数据错误;
若读取到的第一boot数据有数据错误,从所述第一物理块对应的第一备份块中重新读取第一boot数据,其中,所述第一备份块为对所述第一物理块中的数据进行备份的一个物理块;
判断从所述第一备份块中重新读取到的第一boot数据是否有数据错误,若从所述第一备份块中重新读取到的第一boot数据没有数据错误,则按照前述对第一boot数据相同的处理方式继续处理启动boot程序需要读取的其它boot数据直到boot程序启动完毕。
结合第一方面,在第一方面的第一种可能的实现方式中,所述判断在与非闪存Nand flash中操作的第一物理块是否为坏块,包括:
读取所述第一物理块的坏块标记BB信息;
根据所述BB信息判断所述第一物理块是否为坏块。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述判断在与非闪存Nand flash中操作的第一物理块是否为坏块之后还包括:
若所述第一物理块是坏块,判断在所述Nand flash中操作的第二物理块是否为坏块;
若所述第二物理块是坏块,继续判断在所述Nand flash中操作的第三物理块是否为坏块,若在Nand flash中判定有N个连续的物理块都为坏块,反馈boot程序启动失败,其中,所述N为预置的boot启动门限,所述N为非零自然数。
结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述判断读取到的第一boot数据是否有数据错误,包括:
使用差错校验纠正EEC算法对所述读取到的第一boot数据进行纠错校验,若使用EEC算法对读取到的第一boot数据校验失败,则判定读取到的第一boot数据有数据错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310410749.9/2.html,转载请声明来源钻瓜专利网。





