WO2018072688A1 - 内核镜像文件快速加载方法和装置 - Google Patents

内核镜像文件快速加载方法和装置 Download PDF

Info

Publication number
WO2018072688A1
WO2018072688A1 PCT/CN2017/106554 CN2017106554W WO2018072688A1 WO 2018072688 A1 WO2018072688 A1 WO 2018072688A1 CN 2017106554 W CN2017106554 W CN 2017106554W WO 2018072688 A1 WO2018072688 A1 WO 2018072688A1
Authority
WO
WIPO (PCT)
Prior art keywords
core
data
image file
cores
core group
Prior art date
Application number
PCT/CN2017/106554
Other languages
English (en)
French (fr)
Inventor
胡慧锋
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP17862572.9A priority Critical patent/EP3518100B1/en
Publication of WO2018072688A1 publication Critical patent/WO2018072688A1/zh
Priority to US16/387,341 priority patent/US11074083B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6005Decoder aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Image Processing (AREA)

Abstract

一种内核镜像文件快速加载方法,由多核处理器(21,313)执行,多核处理器(21,313)与非易失性存储器(311)以及内存(312)相连,多核处理器(21,313)包括第一核组(211)以及第二核组(212),第一核组(211)包括至少一个核,第二核组(212)包括多个核,该方法包括:第一核组(211)从非易失性存储器(311)中获取压缩内核镜像文件中的多个数据分块;第一核组(211)每获取一个数据分块后,对当前获取的当前数据分块进行校验,当校验正确时,第一核组(211)将当前数据分块放入解压队列;第二核组(212)中的多个核中的至少两个核在解压队列中有数据分块时,获取解压队列中的数据分块,并且当获取了多个数据分块后,并行地将获取到的多个数据分块解压到内存,最终得到内核镜像文件。

Description

内核镜像文件快速加载方法和装置
本申请要求于2016年10月19日提交中国专利局、申请号为201610912248.4、发明名称为“内核镜像文件快速加载方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及计算机技术领域,尤其涉及内核镜像文件快速加载方法和装置。
背景技术
智能终端(如手机、平板、智能手表等)、机顶盒、嵌入式设备、服务器等各种运行有操作系统的电子、通信设备启动时,通常需要通过Boot程序(引导程序)将内核(kernel)镜像文件从一个非易失性存储器中加载到内存,然后Boot程序基于该内核镜像文件启动内核。
参见图1,为现有技术对内核镜像文件进行加载的示意图,不管设备是基于多核处理器还是单核处理器,引导过程都由处理器中的一个核来执行,该核先从非易失性存储器(如磁盘、flash)中读取整个压缩后的内核镜像文件,然后对整个文件进行校验(如通过CRC进行校验计算),判断读取的文件是否正确,如果正确,再进行解压操作,将内核镜像文件解压出来后存储到内存中。
上述方案存在内核镜像文件加载时间过长的问题,从而导致整个设备的启动时间过长,影响用户体验。
发明内容
本发明实施例提供一种内核镜像文件快速加载方法,用于解决现有技术存在着的加载时间过长,从而导致整个设备启动时间过长,影响用户体验的问题。
第一方面,本发明实施例提供了一种内核镜像文件快速加载方法,该方法由多核处理器执行,多核处理器与非易失性存储器以及内存相连,多核处理器包括第一核组以及第二核组,第一核组包括至少一个核,第二核组包括多个核,方法包括:
第一核组从非易失性存储器中获取压缩内核镜像文件中的多个数据分块,其中,压缩内核镜像文件包括内核镜像文件经过分块压缩后得到的多个数据分块;
第一核组每获取一个数据分块后,对当前获取的当前数据分块进行校验,当校验正确时,第一核组将当前数据分块放入解压队列;
第二核组中的多个核中的至少两个核在解压队列中有数据分块时,获取解压队列中的数据分块并并行地解压到内存,最终得到内核镜像文件。
其中,在第一方面提供的方法中,第一核组中的一个或多个核用于进行内核镜像文件的获取以及校验计算。第二核组中的多个核用于进行解压。本领域技术人员可以理解, 第一核组不断地获取数据分块,然后校验后输出给第二核组进行解压,形成了流水线工作的方式,增加了并行度,可以提升处理速度。
需要说明的是,第一核组、第二核组中的核是从功能角度进行划分,当执行不同功能时,原来被分到一个核组中的核可被认为是另一个核组,例如,原来核A用于获取数据分块,此时,该核A属于第一核组;后续当核A获取完所有数据分块,完成了数据分块获取的功能后,转而用于解压,则此时该案A属于第二核组。
在第一方面中,对内核镜像文件进行分块压缩以及校验都为现有技术,例如,压缩时可采用LZO、LZ4等算法进行压缩。检验时,可以采用循环冗余校验(CRC)方法进行校验,这里不进行赘述。
在第一方面中,本领域技术人员可以理解,为了加快处理速度,各个核都会“尽量快”地去完成各自的任务(例如,获取分块、校验、获取解压队列中的数据以及解压等任务),本领域技术人员同样可以理解,由于CPU的核通过执行指令来完成各个任务时,受指令长度、工作频率的影响,不可能做到零延时,而不可避免地会有一定的延时。实际中,本领域技术人员可以结合现有技术中的各种方法来实现尽量快地完成各个任务,这里并不赘述。
在第一方面中,第二核组中的至少两个核会在解压队列有数据分块时去获取,并且当获取多个分块后,进行“并行解压”,也即第二核组中的各个核并不是等完前一个数据分块解压完后再对下一个数据分块进行解压,而是进行并行地解压。在进行并行解压时,解压过程在时间上存在重叠。例如,一个核从第1秒获取后,在第2到第10秒在解压;第二个核在第2秒获取后,在第3到第11秒在进行解压,那么他们在第3秒到第10秒之间存在时间上的重叠,也即存在“并行解压”的效果。
此外,可以理解的是,为了提升效果,并行解压时,第二核组中的各个核也最好是尽量快从解压队列中获取数据,并且进行解压。
本发明第一方面提供的实施例中,通过多个核组(多个核)来共同完成压缩镜像文件获取、校验计算以及解压等工作。为了加快处理速度,压缩后的内核镜像文件被分成几个数据分块,这样,第一核组每次读取一部分数据分块后,就可以进行校验处理,然后放到解压队列,不必等到所有文件读取并校验后才进行解压处理,使得读取/校验的步骤可以与解压步骤并行执行,加快了处理速度。同时,在进行解压时,每当解压队列有数据时,就会被由多个核获取并且并行地解压,这样,可以最大限度地让各个核尽量在最短时间内获取数据分块,并且进行并行化解压,并最终得到内核镜像文件,从而进一步提升了处理速度,也即节省了加载时间,从而缩短了整个设备的启动时间,增强了用户体验。
基于第一方面,在第一方面第一种实现方式中,第一核组包括第一核,第二核;相应地,第一方面中:
第一核组从非易失性存储器中获取压缩内核镜像文件中的多个数据分块包括:第一核从非易失性存储器中获取压缩内核镜像文件中的多个数据分块;
第一核组每获取一个数据分块后,对当前获取的当前数据分块进行校验包括:第二核每获取一个第一核发送的数据分块后,对当前获取的当前数据分块进行校验。
本发明第一方面第一种实现方式中,第一核组包括了两个核,一个核用于获取数据分块,另一个核用于进行校验,这样,把获取数据分块与校验的动作也进行了并行化处理,相比于用一个核来同时完成获取分块以及校验的方案,可以进一步提升处理速度。
基于第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述第一核以及所述第二核为小核。其中,大核是指主频在处理器所有核中相对高的核,反之,小核是指主频在处理器所有核中相对低的核。例如,8个核中,4个主频为2.0GHz的核是大核;另外4个主频为1.5GHz的核是小核。
在多核处理器应用场景中,一个核需要从非易失性存储器中获取数据分块,在这过程中,影响速度的主要因素为核与非易失性存储器之间的接口的传输速率(也即瓶颈在于接口的传输速率),而非各个核的主频,因此,如果选择大核去执行获取操作,所能提升的效果也是非常微小的。在第一方面第二种实现方式中,选择小核去执行该操作,可以将大核资源留给后续真正需要用到大核计算能力的场景(即需要主频高的核来处理的场景,如解压),从而更有效地分配各个核的任务,从整体上进一步提升处理速度。
基于第一方面以及第一方面的各种实现方式,在第一方面的第三种实现方式中,第二核组中包括的核都是大核。
由于是大核,因此,处理的速度更快,从而进一点提升处理速度。
基于第一方面的第三种实现方式,在在第一方面的第四种实现方式中,第二核组中的大核包括多核处理器中的所有大核。
当第二核组包括所有大核时,可以最大化地利用大核资源,让所有大核同时并行化进行解压,从而进一步提升了处理速度。
基于第一方面第三、第四种实现方式,在第一方面第五种实现方式中,每个数据分块的长度与第一核组进行分片的获取及校验的速度,以及与第二核组中的大核进行解压的速度相匹配,使得第二核组中的大核在解压队列中存在或者还会存在内核镜像文件数据时,不出现至少两个大核同时空闲的情况。
本实现方式中,可使各个大核在未完成解压任务前,都能保持满负荷工作,最大化地利用了大核资源,从而进一步提升了处理速度。
基于第一方面及第一方面各种实现方式,在第一方面第六种实现方式中:
压缩内核镜像文件还包括每个数据分块的校验和;
第一核组每获取一个数据分块后,对当前获取的当前数据分块进行校验包括:根据所述当前数据分块的校验和对所述当前数据分块进行校验。
本实现方式中,每个数据分块的校验和即对该数据分块进行校验和计算得到的校验和,一个数据分块对应于一个校验和。校验计算可以使用各种现有的算法,例如,典型的如循环冗余校验(CRC)。当第一核组对数据分块进行校验主要用于判断收到的数据是否发生错误,如果校验不通过,则发生错误,需要进行出错处理(例如,终止加载流程,给出告警信息等)。通过本实现方式来实现校验和实现简单,从而降低了开发成本。
基于第一方面第六种实现方式,在第一方面第七种实现方式中,压缩内核镜像文件还包括总校验和,总校验和通过计算各个数据分块的校验和的校验和得到,则该方法还包括:
当第一核组对最后一个数据分块校验完成后,计算各个数据分块的校验和的校验和,判断是否跟总校验和一致,如果不一致,则进行出错处理。
在本实现方式中,进行了二次校验,即对各个分块的校验和再进行一次校验和计算,这样做一方面可以进一步加强校验能力(例如,可能会出现分块丢失的情况,在这种情况下,各个没丢失的分块的校验和都可能是正确的,无法检验出现丢失的分块,而如果通过总校验和进行校验后,就能够发现错误),另一方面,由于并不是对所有数据进行校验和计算,而只是仅针对各个校验和进行校验,从而也降低了工作量,提升了处理速度。
压缩内核镜像文件还包括各个数据分块的解压地址,解压地址用于指示将数据分块解压到内存中的物理地址,相应地,
第二核组中的多个核中的至少两个核在解压队列中有数据分块时,获取解压队列中的多个数据分块并并行地解压到内存,得到内核镜像文件包括:
第二核组中的多个核中的至少两个核在解压队列中有数据分块时,获取解压队列中的多个数据分块并根据各个数据分块的解压地址并行地解压到内存,得到内核镜像文件。
本实现方式中,每个分块还分别对应有一个解压地址,通过解压地址,能使用于解压的核根据解压地址将分块存入到相应的位置,从而最终将压缩内核镜像文件全部解压到内存中。此外,该方式实现简单,降低了开发成本。
在第一方面另一种实现方式中,第一核组中的核在完成各自的任务后,也可以作为第二核中的一个核从解压队列中获取数据进行解压,从而提升解压操作的并行的核数,提升处理速度。
在第一方面另一种实现方式中,当第二核组中有小核用于解压时,该小核发现解压队列中有数据时,先等待第一时间(如10个指令周期),判断这个时间段内有没有空闲的大核,如果有,则让大核来优先处理解压队列中的数据。在大小核同时处理过程中,有可能存在小核先于大核出现空闲状态从而先获取解压队列中的数据、但同时大核能在很短的指令周期(例如10个指令周期以内)内也转为空闲的情况,在这种情况下,如果让小核先处理,则没有利用大核资源(大核可能还要等一段比较长的时间才去能处理),降低了处理速度。而本方式中,小核即使可以获取数据,也不立即获取,而是等一段相对比较小的时间看看在这段时间内会不会出现空闲的大核,如果有,则优先让大核进行处理,从而提升了处理速度。
在第一方面另一种实现方式中,基于上述第一方面以及各种实现方式,还可以完成内核镜像的引导,即在解压完成后,由一个引导核基于解压后的内核镜像文件来引导内核。其中,引导核可以是多核处理器中的被指定用于完成引导启动功能的一个核。通过引导内核,可以启动设备。
基于第一方面以及第一方面的各种实现方式,在第二方面中,本发明实施例公开了一种多核处理器,包括第一核组以及第二核组,其中,第一核组、第二核组都用于执行上述第一方面以及第一方面各种实现方式中的各种方法。
基于上述各个方面以及各个方面中的各种实现方式,在第三方面中,本发明实施例公开了一种电子设备,包括非易失性存储器、内存以及第二方面及第二方面各种实现方式中的多核处理器。
基于上述各个方面以及各个方面中的各种实现方式,在第四方面中,本发明实施例公开了一种可读存储介质,用于存储上述各个方面中提到的多核处理器执行操作时的代码。这个代码可以为Boot程序的代码。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术获取内核镜像文件的方法的示意图;
图2为本发明实施例一中将原始镜像进行分块压缩的示意图;
图3为本发明实施例一提供的内核镜像文件加载方法流程图;
图4为本发明实施例一提供的内核镜像文件加载方法示意图;
图5为本发明实施例一中各核从解压队列中获取分块的示意图;
图6为本发明实施例二提供的多核处理器结构示意图;
图7为本发明实施例三提供的电子设备结构示意图;
图8为本发明实施例四提供的可读存储介质结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的目的、技术方案及优点更加清楚明白,以下将通过具体实施例和相关附图,对本发明作进一步详细说明。
本实施例中,电子设备通常包括:
多核处理器,内存,非易失性存储器,输入输出设备等。
其中,本实施例中,多核处理器是一个包含多个功能模块的片上系统(System on Chip,SoC),除了多个处理器核之外,还包括图形处理器(Graphics Processing Unit,GPU)、基带处理模块、图像处理器(Image Signal Processor,ISP)、数字信号处理器(Digital Signal Processor,DSP)、外设接口等多个模块。这些模块都被封装到一个芯片,并通过相应的接口与内存、非易失性存储器以及输入输出设备相连。具体采用的接口类似以及连接方式为本领域技术人员所公知的技术,本实施例不进行赘述。
本实施例中,内存、非易失性存储器以及输入输出设备的实现都可以跟现有技术一样,例如,非易失性存储器可采用磁盘、flash等存储介质;输入设备可以包括鼠标、触摸屏、键盘等设备,输出设备包括显示屏等。需要说明的是,为了描述方便,在下文中,也将“非易失性存储器”简化描述成“存储器”。如无特殊说明,下文中的“存储器”即指“非易失性存储器”。
本实施例中,处理器包括8个处理器核(下文也简称“核”)。其中包括4个大核,4个小核。为了说明方便,4个大核分别被命名为大核A,大核B,大核C以及大核D。4个小核分别被命名为小核A,小核B,小核C以及小核D。
基于上述多核处理器系统以及多核处理器内部核的架构,在多核处理器进行镜像加载之前,首先需要执行如下S0步骤。
S0、在多核处理器上电运行之前,先将内核镜像文件(下文简称为“内核镜像”或者“镜像”)进行分块压缩后存储到非易性存储器中(下文简称为“存储器”)。这个步骤通常可以在设备出厂前由生产厂家来完成。
本实施例中,为了减少内核镜像的体积,内核镜像被分块压缩后存储到存储器中,为了叙述方便,本实施例中将压缩后的内核镜像文件简称为“压缩镜像”。
参见图2,为原始内核镜像文件经过分块压缩及添加校验和(如CRC校验和)、添加解压、添加总校验和后,得到的压缩镜像的结构示意图。压缩镜像包括多个数据分块(下文也简称分块),每个分块包括各个分块的分块数据,各个分块的解压地址以及各个分块的校验和(图中用CRC1-CRCn表示,每个分块的校验和通过所在分块内的分块数据以及物理地址得到),此外,压缩文件还包括总校验和(图2中用CRCs表示)。分块数据、解压地址、各个分块校验和以及总校验和都按约定的长度以及顺序(如图2所示,分块数据1位于压缩文件最前,CRCs位于最后)进行设置。
其中,
数据分块是对原始内核镜像文件的数据进行压缩后得到的部分数据(称为“分块”,分块的大小可在压缩阶段进行配置,例如,本实施例中,每个分块大小为200KB。
分块的具体大小并不限定,可在压缩阶段进行配置,但不宜太小或太大,可以通过以下公式大致确定:
分块大小=压缩镜像的大小/解压核数量/每个核平均可以解压的分块数量
上述公式中,解压核数量是指参与解压的核的数量,例如,对于一个8核处理器来说,在大部分时间内,都会有4个核(主要是4个大核)参与解压。因此,对于一个8核处理器来说,解压核数量通常可以设为4~8个。
上述公式中,每个核平均可以解压的分块数量通常可以设为10~20,如果设得太大,会造成分块过少,此时,会出现某些核解压完后变成空闲并等待的情况,没有更大化地利用各个核资源。如果设得太小,会造成分块过多,这样,处理每次分块时所用的一些跟解压无关的一些附带的开销(如读取数据等)会增加,从而降低处理效率。
需要说明的是,上述公式只是一个相对合适的经验值,实际中也可以结合实验手段来不断验证针对各种多核处理器以及各种大小的压缩镜像最优的分块大小。
本实施例中,解压地址为最终解压到内存的物理地址,即在内存中,预留一片地址用于存放解压后的内核镜像文件。各个解压地址可以连续编号,例如,可以将内存 [100KB,200KB)物理地址空间划分给分块1,将[200KB,300KB)的物理地址空间划分给分块2,依次类推。
本实施例中,每个分块的CRC和(如CRC1、CRCn)是对每个数据分块以及解压地址进行CRC运算后得到的值。
本实施例中,总CRC(图2中的CRCs)是对各个分块的CRC和进行CRC运算后得到的值(可用公式CRCs=CRC1+CRC2+…CRCn来简单示意),总CRC位于整个压缩镜像的末尾。
参见图3所示的流程图以及图4所示的示意图,本实施例中,多核处理器将内核镜像文件加载到内存的方法包括如下几个步骤。需要说明的是,以下各个步骤中的序号并不表示严格的执行顺序,本领域技术人员可依据步骤中的内容来知道各个步骤的执行顺序。
S1、多核处理器启动,先通过一个核加载Boot程序,来完成多核处理器的处理化,并执行下述步骤中的功能。
Boot程序是用于引导操作系统启动的程序,主要功能包括将镜像从存储器中加载到内存,并基于加载到内存的镜像进行内核启动。
该核可以是任意一个指定的核,通常被称为“引导核”,一般来说这个核被标记为核0,通常是一个小核。
S2、小核A不断地从存储器中读取镜像压缩文件的分块,每次读取完一个分块后,将分块发送给小核B进行CRC计算;各个分块读取完后再读取总CRC,以完成整个压缩镜像的读取。
在读取的时候,可以每次读取固定长度的数据来依次读取每个分块以及解压地址,分块的校验和以及总校验和等。具体的,小核A会将数据放到一个缓存接收队列中,小核B会从缓存接收队列中获取数据。
如果读取全部完成(包括总CRC也读取完成),小核A通知小核B压缩镜像已经全部完成,小核B收到通知后知道只要处理完缓存接收队列中的数据就不需要再进行处理了,后续可以执行其他任务。如果在读取过程中出现错误,执行步骤S7。
S3、小核B负责CRC计算,每当获取到小核A发送分块后,小核B根据分块中的分块数据以及解压地址计算该分块(如图2中的数据分块1)的CRC和,压缩镜像中保存的与分块对应的CRC和(如图2中的CRC1)进行比较,如果不同,则执行步骤S7;如果相同,则添加分块到解压队列。
其中,从硬件层面讲,解压队列位于内存中的一块区域,从软件层面讲,该解压队列由Boot程序进行管理。解压队列大小可根据分块被放入到解压队列的速率以及各个核的解压速率决定,该大小可防止出现没来得及读而导致溢出的情况并且不会占用过多的内存大小即可。
本实施例中,为了计算总CRC和,在本步骤计算完分块的CRC和后,将分块的CRC和累加到用于计算总CRC和的一个变量中,可用如下公式表示:
total_CRC=total_CRC+CRC[i]
其中,total_CRC是一个变量,初始值为0。等式左边的total_CRC表示当前更新的(也即最新的)总CRC和,等式右边的total_CRC表示旧的总CRC和(即本次更新前的)。CRC[i]表示每个分块的CRC和,i可取自然数(如0,1,2……)。通过上述计算公式, 每次算出各个分块的CRC和后,变量total_CRC就与该分块的CRC和进行累加,这样,当最后一个分块的CRC和确定后,total_CRC的值(即总CRC和)也就确定。
如果小核B收到小核A发送的用于表示“镜像全部读取完成”的通知并且总CRC和计算完成后,判断总CRC和与压缩镜像中的总CRC和是否相同,如果不同,则执行步骤S7。如果相同,则通过某种方式让用于解压的核知道已经计算完总CRC校验(即完成了全部数据的读取及校验)。具体的方式可以通过中断的方式去通知,或者也可以在解压队列末尾处设置特殊的标志,当用于解压的核读取到该特殊标志时,知道已经完成全部部分的读取及校验,从而不需要再从队列中去读取队列去执行解压操作。
S4、其他核不断获取解压队列中的分块,并且并行地进行解压。
本实施例中,除小核A、小核B外的其他大核不断地以尽量快的时间间隔主动查询解压队列是否为空,如果解压队列有数据,则从解压队列读取数据分块进行解压,以将分块中的分块数据写入分块中的解压地址所指示的内存地址中。如果遇到解压错误,则执行步骤S7;如果解压队列为空,则继续等待解压队列的新的解压数据。例如,参见图5,为大核获取解压队列中的分块的示意图。大核A在解压队列有分块1时,获取分块1进行处理;接下来大核B在队列中有分块2时进行处理;再接下是大核C在队列中有分块3时进行处理。
当有一个用于解压的核从解压队列中获取分块镜像后,设置该分块的获取锁锁机制是在内存的该解压队里,设置一个标志,防止其他核获取该分块镜像;如果完成解压,则把该分块镜像从队列删除。
S5、完成所有分块的解压,在内存上得到内核镜像文件。
S6、引导核知道解压完成后,基于内核镜像文件启动内核。
引导核可以检测一个进度表中完成标志位来判断是否全部解压完。这个进度表每个标志位与一个数据分块对应,每当一个数据分块被处理完,处理该分块的核会将进度表上对应的标志位置一个特定的值(如0,或者1),当引导核检测到所有标志位都变成特定的值后,即表示全部解压已完成。
S7、异常处理。
如果遇到错误或异常,则可以通过重启、告警等手段来进行处理,这里并不赘述。
实施例二
参见图6,基于实施例一,本实施例公开了一种多核处理器21,包括第一核组211以及第二核组212,其中,第一核组、第二核组都至少包括一个核,用于执行前述实施例中的各个功能。例如,第一核组中的核可以用于完成从非易失性存储器中读取内核镜像压缩文件以及进行校验的功能,第二核组中的核可以用于完成解压的功能。
实施例三
参见图7,基于上述各实施例,本发明实施例公开了一种电子设备31,包括非易失性存储器311、内存312以及实施例二中的多核处理器313。其中,多核处理器与非易失性存储器、内存之间的连接及通信都为现有技术,本实施例不进行赘述。
实施例四
参见图8,基于上述各实施例,本发明实施例公开了一种可读存储介质41,用于存储上述各实施例中多核处理器执行操作时的代码。这个代码可以为Boot程序的代码411。存储介质可以是非易失性的存储介质,例如,光盘,闪存(flash)、磁盘等等。
上举较佳实施例,对本发明的目的、技术方案和优点进行了进一步详细说明,所应理解的是,以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

  1. 一种内核镜像文件快速加载方法,其特征在于,由多核处理器执行,所述多核处理器与非易失性存储器以及内存相连,所述多核处理器包括第一核组以及第二核组,所述第一核组包括至少一个核,所述第二核组包括多个核,所述方法包括:
    所述第一核组从所述非易失性存储器中获取压缩内核镜像文件中的多个数据分块,其中,所述压缩内核镜像文件包括内核镜像文件经过分块压缩后得到的多个数据分块;
    所述第一核组每获取一个数据分块后,对当前获取的当前数据分块进行校验,当校验正确时,所述第一核组将所述当前数据分块放入解压队列;
    所述第二核组中的多个核中的至少两个核在所述解压队列中有数据分块时,获取所述解压队列中的数据分块,并且当获取了多个数据分块后,并行地将获取到的多个数据分块解压到所述内存,最终得到所述内核镜像文件。
  2. 如权利要求1所述的方法,其特征在于:所述第一核组包括第一核,第二核;相应地,
    所述第一核组从所述非易失性存储器中获取压缩内核镜像文件中的多个数据分块包括:所述第一核从所述非易失性存储器中获取压缩内核镜像文件中的多个数据分块;
    所述第一核组每获取一个数据分块后,对当前获取的当前数据分块进行校验包括:所述第二核每获取一个所述第一核发送的数据分块后,对当前获取的所述当前数据分块进行校验。
  3. 根据权利要求2所述的方法,其特征在于:
    所述第一核以及所述第二核为小核。
  4. 如权利要求1-3任一所述的方法,其特征在于:
    所述第二核组中包括的核都是大核。
  5. 如权利要求4所述的方法,其特征在于:
    所述第二核组中的大核包括所述多核处理器中的所有大核。
  6. 如权利要求4-5任一所述的方法,其特征在于:
    每个数据分块的长度与所述第一核组进行数据分块的获取及校验的速度,以及与所述第二核组中的大核进行解压的速度相匹配,使得所述第二核组中的大核在所述解压队列中存在或者还会存在数据分块时,不出现至少两个大核同时空闲的情况。
  7. 如权利要求1-6任一所述的方法,其特征在于:
    所述压缩内核镜像文件还包括每个所述数据分块的校验和;
    所述第一核组每获取一个数据分块后,对当前获取的当前数据分块进行校验包括:根据所述当前数据分块的校验和对所述当前数据分块进行校验。
  8. 如权利要求7所述的方法,其特征在于:
    所述压缩内核镜像文件还包括总校验和,所述总校验位通过计算各个数据分块的校验和的校验和得到,所述方法还包括:
    当所述第一核组对最后一个数据分块校验完成后,计算各个数据分块的校验和的校验和,判断是否跟所述总校验和一致,如果不一致,则进行出错处理。
  9. 如权利要求1-8任一所述的方法,其特征在于:
    所述第二核组中的多个核中的至少两个核在所述解压队列中有数据分块时,获取所述解压队列中的数据分块并并行地将获取到的多个分块解压到所述内存,得到所述内核镜像文件包括:
    所述第二核组中的多个核中的至少两个核在所述解压队列中有数据分块时,获取所述解压队列中的数据分块并根据各个数据分块的解压地址并行地解压到所述内存,得到所述内核镜像文件。
  10. 一种多核处理器,其特征在于,包括第一核组以及第二核组,所述第一核组包括至少一个核,所述第二核组包括多个核;
    所述第一核组用于从与所述多核处理器连接的非易失性存储器中获取压缩内核镜像文件中的多个数据分块,其中,所述压缩内核镜像文件包括内核镜像文件经过分块压缩后得到的多个数据分块;
    所述第一核组还用于每获取一个数据分块后,对当前获取的当前数据分块进行校验,当校验正确时,所述第一核组将所述当前数据分块放入解压队列;
    所述第二核组中的多个核中的至少两个核用于在所述解压队列中有数据分块时,获取所述解压队列中的数据分块,并且当获取了多个数据分块后,并行地将获取的多个数据分块解压到与所述多核处理器相连的内存,最终得到所述内核镜像文件。
  11. 如权利要求10所述的多核处理器,其特征在于:所述第一核组包括第一核,第二核;相应地,
    所述第一核组用于从与所述多核处理器连接的非易失性存储器中获取压缩内核镜像文件中的多个数据分块时,具体由所述第一核从所述非易失性存储器中获取压缩内核镜像文件中的多个数据分块;
    所述第一核组用于每获取一个数据分块后,对当前获取的当前数据分块进行校验时,具体由所述第二核用于每获取一个所述第一核发送的数据分块后,对当前获取的所述当前数据分块进行校验。
  12. 如权利要求11所述的多核处理器,其特征在于:
    所述第一核以及所述第二核为小核。
  13. 如权利要求10-12任一所述的多核处理器,其特征在于:
    所述第二核中包括的核都是大核。
  14. 如权利要求13所述的多核处理器,其特征在于:
    所述第二核组中的大核包括所述多核处理器中的所有大核。
  15. 如权利要求13-14任一所述的多核处理器,其特征在于:
    每个数据分块的长度与所述第一核组进行分片的获取及校验的速度,以及与所述第二核组中的大核进行解压的速度相匹配,使得所述第二核组中的大核在所述解压队列中存在或者还会存在内核镜像文件数据时,不出现至少两个大核同时空闲的情况。
  16. 如权利要求10-15任一所述的多核处理器,其特征在于:
    所述压缩内核镜像文件还包括每个所述数据分块的校验和
    所述第一核组用于每获取一个数据分块后,对当前获取的当前数据分块进行校验时,具体用于根据所述当前数据分块的校验和对所述当前数据分块进行校验。
  17. 如权利要求16所述的多核处理器,其特征在于:
    所述压缩内核镜像文件还包括总校验和,所述总校验位通过计算各个数据分块的校验位的校验和得到,所述第一核组还用于:
    当所述第一核组对最后一个数据分块校验完成后,计算各个数据分块的校验和的校验和,判断是否跟所述总校验和一致,如果不一致,则进行出错处理。
  18. 如权利要求10-17任一所的多核处理器,其特征在于:
    所述压缩内核镜像文件还包括各个数据分块的解压地址,所述解压地址用于指示将数据分块解压到内存中的物理地址,相应地,
    所述第二核组中的多个核中的至少两个核用于在所述解压队列中有数据分块时,获取所述解压队列中的分块并并行地解压到所述内存,得到所述内核镜像文件时,具体用于:
    在所述解压队列中有数据分块的内核镜像文件数据时,获取所述解压队列中的分块并根据各个分块的解压地址并行地解压到所述内存,得到所述内核镜像文件。
  19. 一种电子设备,其特征在于,包括:非易性存储器、内存以及如权利要求10-18任一所述的多核处理器。
PCT/CN2017/106554 2016-10-19 2017-10-17 内核镜像文件快速加载方法和装置 WO2018072688A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP17862572.9A EP3518100B1 (en) 2016-10-19 2017-10-17 Quick loading method for kernel image file, and apparatus
US16/387,341 US11074083B2 (en) 2016-10-19 2019-04-17 Fast loading kernel image file for booting

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610912248.4 2016-10-19
CN201610912248.4A CN107977233B (zh) 2016-10-19 2016-10-19 内核镜像文件快速加载方法和装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/387,341 Continuation US11074083B2 (en) 2016-10-19 2019-04-17 Fast loading kernel image file for booting

Publications (1)

Publication Number Publication Date
WO2018072688A1 true WO2018072688A1 (zh) 2018-04-26

Family

ID=62003543

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/106554 WO2018072688A1 (zh) 2016-10-19 2017-10-17 内核镜像文件快速加载方法和装置

Country Status (4)

Country Link
US (1) US11074083B2 (zh)
EP (1) EP3518100B1 (zh)
CN (1) CN107977233B (zh)
WO (1) WO2018072688A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559242B (zh) * 2019-09-25 2022-07-12 无锡江南计算技术研究所 国产众核处理器计算核内存压缩方法
CN110990358B (zh) * 2019-09-30 2023-06-30 咪咕文化科技有限公司 一种解压缩方法、电子设备及计算机可读存储介质
CN110647753B (zh) * 2019-09-30 2021-04-16 Oppo广东移动通信有限公司 内核文件的获取方法、装置、设备及存储介质
CN112860323A (zh) * 2019-11-27 2021-05-28 珠海格力电器股份有限公司 一种将文件加载至内存的方法及装置
US11392418B2 (en) * 2020-02-21 2022-07-19 International Business Machines Corporation Adaptive pacing setting for workload execution
CN111708541A (zh) * 2020-06-22 2020-09-25 深圳市友华通信技术有限公司 镜像文件的编译方法和装置
CN113972989B (zh) * 2020-07-06 2023-09-15 宇龙计算机通信科技(深圳)有限公司 数据校验方法及存储介质、电子设备
CN112732295B (zh) * 2020-12-31 2022-11-01 东风汽车集团有限公司 一种基于多核ECU的Boot loader刷写方法、电子设备及存储介质
CN114064138A (zh) * 2022-01-17 2022-02-18 杭州研极微电子有限公司 包括多核处理器的系统的启动方法以及采用该方法的系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
CN1818869A (zh) * 2006-03-15 2006-08-16 浙江大学 嵌入式操作系统镜像启动的启动优化方法
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN104750492A (zh) * 2015-03-31 2015-07-01 广东欧珀移动通信有限公司 基于嵌入式操作系统的移动设备的开机控制方法及装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446238B1 (en) * 1999-05-21 2002-09-03 International Business Machines Corporation System and method for updating microcode stored in a non-volatile memory
US6820148B1 (en) * 2000-08-17 2004-11-16 Sandisk Corporation Multiple removable non-volatile memory cards serially communicating with a host
US6965989B1 (en) * 2001-08-14 2005-11-15 Network Appliance, Inc. System and method for fast reboot of a file server
US7549042B2 (en) * 2003-12-16 2009-06-16 Microsoft Corporation Applying custom software image updates to non-volatile storage in a failsafe manner
CN101930387A (zh) * 2009-06-19 2010-12-29 上海惠普有限公司 用于更新压缩只读文件系统的改进的容错方法及装置
JP5431111B2 (ja) * 2009-10-22 2014-03-05 株式会社日立製作所 情報処理装置及びシステム設定方法
US8869138B2 (en) * 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
CN102236543B (zh) * 2010-05-07 2015-07-22 百度在线网络技术(北京)有限公司 数据解压装置及方法
CN102244518B (zh) 2010-05-10 2016-01-20 百度在线网络技术(北京)有限公司 并行解压缩的硬件实现的系统及方法
KR101467515B1 (ko) * 2010-11-23 2014-12-01 삼성전자 주식회사 스냅샷 이미지를 이용한 부팅 장치 및 방법
GB2503711B (en) * 2012-07-05 2014-10-15 Quixel Holdings Ltd Video data communication
CN103077043B (zh) 2012-11-15 2016-02-10 上海爱数软件有限公司 一种快速启动及运行Linux的方法
WO2014089753A1 (zh) 2012-12-11 2014-06-19 华为技术有限公司 一种文件压缩方法,文件解压缩方法、装置及服务器
CN103970557B (zh) * 2013-02-04 2018-08-14 中兴通讯股份有限公司 存储设备启动系统的方法及存储设备
CN103455345A (zh) * 2013-08-15 2013-12-18 京信通信系统(中国)有限公司 一种压缩和引导嵌入式操作系统镜像文件的方法及装置
US9658858B2 (en) * 2013-10-16 2017-05-23 Xilinx, Inc. Multi-threaded low-level startup for system boot efficiency
US9319066B2 (en) * 2014-06-26 2016-04-19 Sviral, Inc. Parallel processing of data having data dependencies for accelerating the launch and performance of operating systems and other computing applications
US20160077871A1 (en) * 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Predictive management of heterogeneous processing systems
US10248497B2 (en) * 2014-10-22 2019-04-02 Advanced Micro Devices, Inc. Error detection and correction utilizing locally stored parity information
US20160149669A1 (en) * 2014-11-24 2016-05-26 Mark Meyers Data Transfer System
US9779240B2 (en) * 2015-01-30 2017-10-03 Vmware, Inc. System and method for hypervisor-based security
US10169125B2 (en) * 2015-05-29 2019-01-01 International Business Machines Corporation Re-encoding data in a dispersed storage network
CN105117246A (zh) 2015-08-04 2015-12-02 晶晨半导体(上海)有限公司 电子设备快速启动的方法
US20170161148A1 (en) * 2015-12-02 2017-06-08 Netapp, Inc. Detection of and recovery from silent data loss in an erasure-coded storage system
US20190310859A1 (en) * 2018-04-04 2019-10-10 Visteon Global Technologies, Inc. Accelerated startup through parallel decompression of ram disks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040064457A1 (en) * 2002-09-27 2004-04-01 Zimmer Vincent J. Mechanism for providing both a secure and attested boot
CN1818869A (zh) * 2006-03-15 2006-08-16 浙江大学 嵌入式操作系统镜像启动的启动优化方法
CN104156659A (zh) * 2014-08-14 2014-11-19 电子科技大学 一种嵌入式系统的安全启动方法
CN104750492A (zh) * 2015-03-31 2015-07-01 广东欧珀移动通信有限公司 基于嵌入式操作系统的移动设备的开机控制方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3518100A4 *

Also Published As

Publication number Publication date
CN107977233A (zh) 2018-05-01
EP3518100A4 (en) 2019-10-02
EP3518100B1 (en) 2022-12-28
US20190243663A1 (en) 2019-08-08
CN107977233B (zh) 2021-06-01
EP3518100A1 (en) 2019-07-31
US11074083B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
WO2018072688A1 (zh) 内核镜像文件快速加载方法和装置
US9430254B2 (en) Register mapping techniques
US10380048B2 (en) Suspend and resume in a time shared coprocessor
US9374106B2 (en) Efficient context save/restore during hardware decompression of DEFLATE encoded data
US10949307B2 (en) Executing computer instruction including asynchronous operation
US9032414B1 (en) Systems and methods for managing system resources allocated for backup validation
CN114201421B (zh) 一种数据流处理方法、存储控制节点及可读存储介质
US20110231827A1 (en) Methods and apparatus for debugging programs in shared memory
US11163659B2 (en) Enhanced serial peripheral interface (eSPI) signaling for crash event notification
US11016769B1 (en) Method and apparatus for processing information
CN115098190A (zh) 一种提高ssd系统启动速度的方法、装置、终端及存储介质
US10185573B2 (en) Caching based operating system installation
JP2021022379A (ja) ハードウェアアクセラレータの自律ジョブキューイングシステム
CN110688160B (zh) 一种指令流水线处理方法、系统、设备及计算机存储介质
US20210111735A1 (en) System and method for increasing logical space for native backup appliance
Hu et al. {QZFS}:{QAT} Accelerated Compression in File System for Application Agnostic and Cost Efficient Data Storage
CN116340048A (zh) 低开销错误校正码
CN113885949A (zh) 一种快速开机方法及系统
US9509780B2 (en) Information processing system and control method of information processing system
CN108804343B (zh) 嵌入式存储接口数据传输方法、装置、计算机设备及介质
WO2021061269A1 (en) Storage control apparatus, processing apparatus, computer system, and storage control method
WO2020096561A1 (en) Recovery image downloads via data chunks
US20220414014A1 (en) Technology for early abort of compression acceleration
US20230409226A1 (en) Method and system for acceleration or offloading utilizing a multiple input data stream
US20160266960A1 (en) Information processing apparatus and kernel dump method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17862572

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017862572

Country of ref document: EP

Effective date: 20190424