一种基于pcm的系统启动方法

文档序号:6545721阅读:164来源:国知局
一种基于pcm的系统启动方法
【专利摘要】本发明提供了一种基于PCM的系统启动方法,包括:Bootloader和内核映像存储在PCM中;在PCM上执行Bootloader,在执行中将可读写的部分分配至DRAM中;在PCM上执行内核映像,在执行中将可读写的部分分配至DRAM中。利用PCM存储并执行Bootloader和内核映像,在执行中,将可读写的部分分配至DRAM中,由于启动中需要搬移的数据段仅占Bootloader和内核映像的不到十分之一,同时PCM的读延迟与DRAM相当,从而可以有效地减少系统启动的时间,提高系统效率。
【专利说明】一种基于PCM的系统启动方法
【技术领域】
[0001]本发明涉及存储器领域,尤其涉及一种基于PCM的系统启动方法。
【背景技术】
[0002]近年来,随着移动终端设备的兴起,嵌入式技术得到了飞速的发展,尤其是嵌入式Linux系统的应用越来越广泛。
[0003]嵌入式系统在加电或复位后,会执行一段启动程序Bootloader,以初始化好硬件和软件环境,之后调用Linux内核。Bootloader和Linux内核映像一般都存储在Flash或者磁盘等非挥发性存储器上,但由于Flash或磁盘的读写速度慢,Bootloader执行一小段程序后就会将其自身搬移到DRAM上继续执行,初始化好环境之后会将Linux内核映像从Flash中搬移到内存上然后调用内核,该启动方法由于Flash或磁盘的读写速度慢,需要占用内存进行启动,同时内核的搬运也会造成启动时间的增加。

【发明内容】

[0004]本发明的实施例提供了一种基于混合内存的系统休眠、唤醒方法及装置,实现PCM作为内存及存储设备的新策略,减小了时间开销。
[0005]为实现上述目的,本发明实施例提供了如下技术方案:
[0006]—种基于混合内存的系统休眠方法,包括:
[0007]弓丨导程序和内核映像存储在PCM中;
[0008]在PCM上执行引导程序,在执行中将可读写的部分分配至DRAM中;
[0009]在PCM上执行内核映像,在执行中将可读写的部分分配至DRAM中。
[0010]可选的,系统启动参数和根文件系统也存储在PCM中。
[0011]可选的,在执行内核映像之前,还包括步骤:等待用户命令。
[0012]可选的,该用户命令设置为内核映像在PCM上的首地址。
[0013]可选的,通过在引导程序的头文件中设置宏,并在引导程序起始阶段采用预处理语句的方式,运行拷贝数据部分,以实现将可读写的部分分配至DRAM中。
[0014]可选的,在PCM上执行内核映像时,内核的分配步骤具体包括:
[0015]设置内核的物理地址;
[0016]在建立页表时,将内核虚拟空间的代码段映射到PCM上,将内核虚拟空间的可读写部分映射到DRAM上;
[0017]以虚拟地址访问内存,复制内核的可读写部分到DRAM中。
[0018]本发明实施例提供的基于PCM的系统启动方法,利用PCM存储并执行引导程序和内核映像,在执行中,将可读写的部分分配至DRAM中,由于启动中需要搬移的数据段仅占引导程序和内核映像的不到十分之一,同时PCM的读延迟与DRAM相当,从而可以有效地减少系统启动的时间,提闻系统效率。【专利附图】

【附图说明】
[0019]图1为根据本发明实施例的基于PCM的系统启动方法的流程示意图;
[0020]图2为根据本发明实施例的基于PCM的系统存储映像分布不意图;
[0021]图3为根据本发明实施例的启动方法在引导程序执行时的存储分布示意图;
[0022]图4为根据本发明实施例的启动方法在内核映像执行时的内存空间映射示意图。
【具体实施方式】
[0023]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的【具体实施方式】做详细的说明。
[0024]在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以下实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内,因此本发明不受下面公开的具体实施例的限制。
[0025]本发明提出了一种基于PCM的系统启动方法,将PCM(Phase Change RandomAccess Memory)作为系统启动的设备,在PCM中存储系统启动的代码与映像,将DRAM作为内存,从而提高系统启动的效率,减小启动的时间开销。
[0026]为此,本发明提供了如下技术方案:
[0027]一种基于PCM的系统启动方法,参考图1所示,包括:
[0028]弓丨导程序和内核映像存储在PCM中;
[0029]在PCM上执行引导程序,在执行中将可读写的部分分配至DRAM中;
[0030]在PCM上执行内核映像,在执行中将可读写的部分分配至DRAM中。
[0031]在本发明中,利用PCM存储并执行引导程序和内核映像,在执行中,将可读写的部分分配至DRAM中,由于启动中需要搬移的数据段仅占引导程序和内核映像的不到十分之一,同时PCM的读延迟与DRAM相当,从而可以有效地减少系统启动的时间,提高系统效率。
[0032]为了更好的理解本发明,以下将结合具体的实施例进行详细的描述。
[0033]在本实施例中,为针对目前通常的嵌入式Linux系统的启动方法,通过以PCM为启动设备实现系统的启动,节省启动时间。如图2所示,在PCM上依次存储了引导程序、启动参数、内核映像和根文件系统。引导程序(Bootloader)为一段启动程序,以实现硬件和软件环境的初始化,而后执行内核的调用。在本实施例中,利用PCM存储并执行引导程序和内核映像,并将启动参数和根文件系统存储在PCM中,以便统一进行编码和管理。当然,在系统中还具有其他存储设备时,也可以将启动参数和根文件系统存储在其他的存储设备中。
[0034]而后,系统上电后,执彳丁初始化以及内核的调用,以启动系统。
[0035]在本实施例中,首先,在PCM上执行Bootloader,在执行中将可读写的部分分配至DRAM 中。
[0036]在本发明中,可读写的部分是程序中需要进行读写操作的部分,S卩非只读部分。在本实施例中,可以采用U-Boot作为应用于嵌入式CPU的Bootloader,在整个执行过程中,将其中可读写的部分分配至DRAM中,UB00T引导程序中,可读写的段包括数据DATA段(.data)、未初始化 BSS 段(.bss)、MALLOC, GLB_DATA 和 STACK 段(堆栈段),如图 3 所示,除此之外,U-Boot程序代码都直接在PCM上直接执行。由于需要搬移的数据段仅占整个初始化程序的不到十分之一,可以将运行功耗和运行速度进一步优化,节省启动的时间。更具体的,可以在U-Boot程序的头文件设置宏,在U-Boot程序的开始阶段采用预处理语句,跳过U-Boot自身拷贝,运行拷贝数据段的程序,程序代码的其余部分直接在PCM上执行。
[0037]此外,在调用操作系统内核之前,可以等待用户命令。具体地,在等待时,可以通过执行自动启动的启动参数设置等候秒数,如果在执行自动启动的等候时间内,若串口无输入则进入命令行模式,通过设置默认执行的命令并保存到PCM中,可以让下次启动后自动执行这个设置的默认执行的命令,这里可以设置默认执行的命令为内核映像在PCM上的首地址,以便直接进入内核的执行程序中。
[0038]而后,在PCM上执行内核映像,在执行中将可读写的部分分配至DRAM中。
[0039]在本实施例中,在执行内核部分时,需要把内核映像中可读写的部分分配到DRAM主存中,主要包括未初始化BSS段和可读写的数据DATA,以优化系统运行速度和功耗。
[0040]在具体的实施例中,首先,设置内核的物理地址。在具体的实施例中,首先,设置好XIP内核的物理位置,这个物理地址设置为内核映像在PCM上的首地址。然后在内核建立页表的阶段,页表将内核虚拟空间的代码段映射到PCM上,而将内核虚拟空间的数据段和堆栈段映射到DRAM上,然后开启MMU之后,内核开始以虚拟地址访问内存,复制内核的数据段到DRAM中,并且在DRAM上建立BSS段、堆栈段,这样内核代码的分配就完成了。如图4所示,为内核代码在PCM+DRAM中的分配示意图。
[0041]本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
【权利要求】
1.一种基于PCM的系统启动方法,包括: 引导程序和内核映像存储在PCM中; 在PCM上执行引导程序,在执行中将可读写的部分分配至DRAM中; 在PCM上执行内核映像,在执行中将可读写的部分分配至DRAM中。
2.根据权利要求1所述的启动方法,其特征在于,系统启动参数和根文件系统也存储在PCM中。
3.根据权利要求1所述的启动方法,其特征在于,在执行内核映像之前,还包括步骤:等待用户命令。
4.根据权利要求3所述的启动方法,其特征在于,该用户命令设置为内核映像在PCM上的首地址。
5.根据权利要求1所述的启动方法,其特征在于,通过在引导程序的头文件中设置宏,并在引导程序起始阶段采用预处理语句的方式,运行拷贝数据段部分,以实现将可读写的部分分配至DRAM中。
6.根据权利要求1所述的启动方法,其特征在于,在PCM上执行内核映像时,内核的分配步骤具体包括: 设置内核的物理地址; 在建立页表时,将内核虚拟空间的代码段映射到PCM上,将内核虚拟空间的可读写部分映射到DRAM上; 以虚拟地址访问内存,复制内核的可读写部分到DRAM中。
【文档编号】G06F9/445GK103955389SQ201410188631
【公开日】2014年7月30日 申请日期:2014年5月6日 优先权日:2014年5月6日
【发明者】陈岚, 戴正元, 郝晓冉 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1