引导程序的读取方法、启动方法、设备、芯片及存储介质与流程

摘要: 本技术涉及计算机,具体地涉及一种引导程序的读取方法、启动方法、设备、芯片及存储介质。背景技术:1、在计算机设备上电后,首先会将存储在非易失性存储器(例如,nan...
引导程序的读取方法、启动方法、设备、芯片及存储介质与流程

本技术涉及计算机,具体地涉及一种引导程序的读取方法、启动方法、设备、芯片及存储介质。

背景技术:

1、在计算机设备上电后,首先会将存储在非易失性存储器(例如,nand flash存储器)中的引导程序加载到内存中执行,进而引导系统启动。非易失性存储器通常以块(block)为单位存储数据,引导程序可以存储在非易失性存储器的指定块中。但是,在实际应用中,非易失性存储器中可能会产生坏块。如果用于存储引导程序的指定块为坏块,则可能导致引导程序损坏,进而导致计算机设备启动失败。

2、为了提高计算机设备的启动健壮性,相关技术中,在非易失性存储器的多个指定块中分别写入一份引导程序。计算机设备上电后,处理器可以从非易失性存储器的任意一个指定块中读取引导程序,并写入ram中执行。可理解,当多个指定块中存在部分坏块时,处理器仍然可以从其它指定块中读取引导程序,以保证计算机设备可以正常启动。

3、但是,当非易失性存储器中用于存储引导程序的多个指定块均为坏块时,将导致处理器无法在非易失性存储器中读取可靠的引导程序,进而导致计算机设备启动失败。

4、需要指出的是,公开于本技术背景技术部分的信息仅仅旨在加深对本技术的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成己为本领域技术人员所公知的现有技术。

技术实现思路

1、本技术提供一种引导程序的读取方法、启动方法、设备、芯片及存储介质,以利于解决现有技术中计算机设备启动健壮性较差的问题。

2、第一方面,本技术实施例提供了一种引导程序的读取方法,所述引导程序用于存储在非易失性存储器中,所述非易失性存储器包括m个指定块,每个所述指定块用于存储一份所述引导程序;每份所述引导程序包括n个引导程序片段,每个所述指定块包括n个指定页,每个所述指定页用于存储一个所述引导程序片段,其中,m≥2,n≥2;所述方法包括:

3、在至少一个所述指定块中获取页索引表;

4、根据所述页索引表,确定每一个所述引导程序片段在至少一个所述指定块中的页存储地址,并根据所述页存储地址读取每一个所述引导程序片段;

5、其中,所述页存储地址为用于存储所述引导程序片段的所述指定页的地址。

6、在一种可能的实现方式中,所述根据所述页索引表,确定每一个所述引导程序片段在至少一个所述指定块中的页存储地址,并根据所述页存储地址读取每一个所述引导程序片段,包括:

7、根据所述页索引表,确定第i个所述引导程序片段在第一指定块中的页存储地址,并在所述第一指定块中读取第i个所述引导程序片段;

8、若在所述第一指定块中读取第i个所述引导程序片段失败,则根据所述页索引表,确定第i个所述引导程序片段在第二指定块中的页存储地址,并在所述第二指定块中读取第i个所述引导程序片段;

9、其中,1≤i≤n,所述第一指定块和所述第二指定块为m个所述指定块中的任意两个所述指定块。

10、在一种可能的实现方式中,所述页索引表中包括除当前指定块以外的m-1个所述指定块中每个所述指定块的每个所述指定页的地址,所述当前指定块为存储所述页索引表的所述指定块。

11、在一种可能的实现方式中,所述根据所述页索引表,确定第i个所述引导程序片段在第一指定块中的页存储地址,包括:

12、若所述第一指定块是所述当前指定块,则根据所述页索引表,确定所述引导程序在所述第一指定块中的起始地址;根据所述起始地址,确定第i个所述引导程序片段在所述第一指定块中的页存储地址;

13、若所述第一指定块不是所述当前指定块,根据所述页索引表中保存的所述第一指定块中的页存储地址,确定第i个所述引导程序片段在所述第一指定块中的页存储地址。

14、在一种可能的实现方式中,所述页索引表中包括m个所述指定块中每个所述指定块的每个所述指定页的地址。

15、在一种可能的实现方式中,所述根据所述页索引表,确定第i个所述引导程序片段在第一指定块中的页存储地址,包括:

16、若所述第一指定块是所述当前指定块,则根据所述页索引表,确定所述引导程序在所述第一指定块中的起始地址;根据所述起始地址,确定第i个所述引导程序片段在所述第一指定块中的页存储地址;或者,根据所述页索引表中保存的所述第一指定块中的页存储地址,确定第i个所述引导程序片段在所述第一指定块中的页存储地址;

17、若所述第一指定块不是所述当前指定块,根据所述页索引表中保存的所述第一指定块中的页存储地址,确定第i个所述引导程序片段在所述第一指定块中的页存储地址。

18、在一种可能的实现方式中,所述页索引表用于存储在至少一个所述指定块的页索引表存储页,所述页索引表存储页为所述指定块中的第一个页。

19、第二方面,本技术实施例提供了一种启动方法,包括:

20、采用第一方面任一项所述的方法,在非易失性存储器中读取引导程序;

21、运行所述引导程序,实现启动。

22、第三方面,本技术实施例提供了一种计算机设备,包括:

23、处理器;

24、非易失性存储器;

25、以及计算机程序,其中所述计算机程序被存储在所述非易失性存储器中,当所述计算机程序被所述处理器执行时,使得所述计算机设备执行第一方面和第二方面中任一项所述的方法。

26、第四方面,本技术实施例提供了一种芯片,包括:处理器;非易失性存储器;以及计算机程序,其中所述计算机程序被存储在所述非易失性存储器中,当所述计算机程序被所述处理器执行时,使得所述芯片执行第一方面和第二方面中任一项所述的方法。

27、第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,实现第一方面和第二方面中任一项所述的方法。

28、第六方面,本技术实施例提供了一种计算机程序产品,包括计算机程序,当所述计算机程序被处理器执行时,实现第一方面和第二方面中任一项所述的方法。

29、第七方面,本技术实施例提供了一种计算机程序产品,包括:

30、引导程序,所述引导程序用于存储在非易失性存储器中,所述非易失性存储器包括m个指定块,每个所述指定块用于存储一份所述引导程序;每份所述引导程序包括n个引导程序片段,每个所述指定块包括n个指定页,每个所述指定页用于存储一个所述引导程序片段,m≥2,n≥2;

31、页索引表,所述页索引表用于存储在至少一个所述指定块中,所述页索引表包括除当前指定块以外的m-1个所述块中每个所述指定块的每个所述指定页的地址;

32、其中,所述当前指定块为存储所述页索引表的指定块。

33、在一种可能的实现方式中,所述页索引表还包括:

34、所述当前指定块中每个所述指定页的地址。

35、在一种可能的实现方式中,所述页索引表用于存储在每一个所述指定块中。

36、在一种可能的实现方式中,所述页索引表用于存储在至少一个所述指定块的页索引表存储页中,所述页索引表存储页为所述指定块中的第一个页。

37、本技术实施例提供了一种引导程序的读取方法,通过页索引表,可以确定每一个指定块中每一个引导程序片段的页存储地址(存储引导程序片段的指定页的地址),进而可以根据页存储地址在多个指定块中读取相应的引导程序片段。通过对读取的引导程序片段进行组合,可以重建一个完整的引导程序。

38、可理解,在本技术实施例中,即使用于存储引导程序的多个指定块均为坏块,仍然有较大概率重建一个完整的引导程序,使得计算机设备可以正常启动,提高启动健壮性。