CN102460384A - 程序、控制方法以及控制装置 - Google Patents

程序、控制方法以及控制装置 Download PDF

Info

Publication number
CN102460384A
CN102460384A CN2010800246514A CN201080024651A CN102460384A CN 102460384 A CN102460384 A CN 102460384A CN 2010800246514 A CN2010800246514 A CN 2010800246514A CN 201080024651 A CN201080024651 A CN 201080024651A CN 102460384 A CN102460384 A CN 102460384A
Authority
CN
China
Prior art keywords
page
software
leaf
address
processing
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN2010800246514A
Other languages
English (en)
Inventor
桥本健一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ubiquitous Corp
Original Assignee
Ubiquitous Corp
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 Ubiquitous Corp filed Critical Ubiquitous Corp
Publication of CN102460384A publication Critical patent/CN102460384A/zh
Pending legal-status Critical Current

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/4418Suspend and resume; Hibernate and awake
    • 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/445Program loading or initiating

Abstract

本发明涉及能够缩短启动时间的程序、控制方法以及控制装置。在装配了存储器管理单元(MMU)的计算机系统中,针对MMU的表改写页表项,以便针对软件的运行所需要的页,在全部的页中发生页面错误。启动时,对于针对要访问的RAM产生的页面错误,执行已保存的存储器映像的页面单位的读入。通过进行这样的读入,不进行不需要的页的读入,能够缩短相应量的启动时间。本发明可以用于个人计算机或具备嵌入式计算机的电子设备。

Description

程序、控制方法以及控制装置
技术领域
本发明涉及程序、控制方法以及控制装置,特别涉及适合于控制软件的启动的程序、控制方法以及控制装置。
背景技术
在个人计算机中,使OS(Operating System)启动,直到使希望的软件工作为止需要花费数分钟的启动时间。作为使其高速启动的方法,存在称为休眠(hibernation)的方法(例如参照专利文献1)。
在专利文献1中,记载了把启动后的CPU(central processing unit)、I/O(input/output)寄存器、RAM(Random Access Memory)映像存储在硬盘驱动器(HDD)或闪速存储器中。并且,记载了在下次启动时,恢复所存储的RAM映像,之后,再设定CPU、I/O寄存器。在专利文献1中提出了通过如此启动使OS启动高速化。基于该提案的被称为休眠的方法已经在个人计算机中应用。
此外,在嵌入式计算机,例如在电视接收器、硬盘录像机这样的电子设备中嵌入的计算机中也应用了休眠的方法。
现有技术文献
专利文献
专利文献1:日本特开2005-149225号公报
专利文献2:日本特开2007-334383号公报
发明内容
发明要解决的课题
当将采用休眠使OS启动的情况与通常那样启动OS的情况相比时,采用休眠使OS启动能够更加高速地启动。但是,随着RAM的容量的增加,应该保存的RAM映像的大小也增加,在启动时,该RAM映像的展开时间也增加。结果,伴随RAM的大容量化,高速启动变得困难。
此外,个人计算机CPU的性能也比较高,所以即使RAM映像的大小增加,也能确保处理该RAM映像的性能。但是,在嵌入式计算机的情况下,很多时候使用CPU的性能比较低的计算机。因此,在为嵌入式计算机时,如果RAM映像增加,则即使使用休眠的方法,启动时的速度也会降低。即,在为嵌入式计算机时,由于RAM映像的增加导致的速度降低更加显著地体现。
此外,虽然提出了通过压缩RAM映像来减小RAM映像的大小,但是在启动时需要展开的处理。考虑到该展开处理给CPU带来的负荷、展开处理所需要的时间,不是在启动高速化这一方面有效的方法。
考虑到该情况,在专利文献2中提出了在休眠的全部映像的传输完成之前开始执行OS的方法。但是,在该方法中需要装配特别的硬件,并预先确定先行传输的页,因此存在由于该特别的硬件导致成本相应升高的问题。
本发明是鉴于这样的状况而提出的,其能够缩短启动时间。
用于解决课题的手段
作为本发明的一个方面的程序,用于具有管理存储器的功能的控制装置中,包含以下步骤:针对预定的软件的运行所需要的页改写页表项,以便在全部页中产生页面错误,在所述软件启动时,通过所述页表项产生页面错误,依次读出产生了该页面错误的页。
可以在所述预定的软件启动后改写所述页表项,将其启动时的数据、程序代码、表、页面错误处理程序、中断向量、以及寄存器存储在所述存储器中。
可以使所述存储器中的存储作为改写对象的所述页表项的存储器是RAM,存储要依次读出的所述页的存储器是非易失性存储器。
可以使嵌入式的计算机读入该程序。
作为本发明的一个方面的控制方法,是具有管理存储器的功能的控制装置的控制方法,包含以下的步骤:针对预定的软件的运行所需要的页改写页表项,以便在全部页中产生页面错误,在所述软件启动时,通过所述页表项产生页面错误,依次读出产生了该页面错误的页。
作为本发明的一个方面的控制装置,是具有管理存储器的功能的控制装置,具有:针对预定的软件的运行所需要的页改写页表项,以便在全部页中产生页面错误的改写单元;在所述软件启动时,通过所述页表项产生页面错误,依次读出产生了该页面错误的页的读出单元。
本发明的一个方面的程序、控制方法以及控制装置,针对预定的软件的运行所需要的页改写页表项,以便在全部页中产生页面错误,在软件启动时,通过页表项产生页面错误,依次读出产生了该页面错误的页。
发明效果
根据本发明的一个方面,能够缩短OS的启动时间。
附图说明
图1表示应用本发明的信息处理装置的一个实施方式的结构。
图2表示MMU的模型。
图3用于说明描述符。
图4用于说明物理页的读入。
图5用于说明物理页的读入。
图6用于说明物理存储器映射。
图7是用于说明启动处理的流程图。
图8是用于说明启动处理的流程图。
图9是用于说明启动处理的流程图。
图10是用于说明启动处理的流程图。
图11是用于说明启动处理的流程图。
具体实施方式
以下,参照附图说明本发明的实施方式。
首先,说明本发明的概要。本发明是用于使在装配了存储器管理单元(Memory Management Unit(以下简写为MMU))的CPU(central processingunit)上运行的OS(Operating System)或应用程序等软件高速启动的方法。
作为高速启动对象的软件,一度通过通常的方法启动,该状态下的RAM(Random Access Memory)映像被保存在非易失性存储器等中。在将RAM映像保存在非易失性存储器等中时改写MMU的表,变更为在全部的页中产生页面错误。在成为对象的软件中准备了页面错误处理程序,在发生了页面错误时,从非易失性存储器仅加载产生了该页面错误的页。
在启动任意的软件,执行程序代码,或者为了读出该软件的运行所需要的数据而访问了RAM时,每次产生页面错误,把需要的页从非易失性存储器逐次加载到RAM中。由此,与现有的休眠启动不同,不需要预先把全部RAM映像从非易失性存储器加载到主RAM中,能够仅加载运行需要的最小限度的RAM映像。因此,能够高速地启动并运行希望的软件。
本申请人确认,通过使用本发明能够把以往需要数十秒~数分钟的OS或软件(以下简称为软件)的启动时间缩短到数秒程度。以下具体地说明。
(信息处理装置的结构)
图1表示采用本发明的信息处理装置的一个实施方式的结构。采用本发明的信息处理装置当然可以用于个人计算机(PC),还可以用于具有嵌入式计算机的装置。作为包含嵌入式计算机的装置,具有电视接收器、硬盘录像机这样的电子设备。在此,以针对硬盘录像机应用本发明时为例进行说明。
图1表示作为应用本发明的信息处理装置的硬盘录像机的结构。图示的硬盘录像机100具备:CPU101、RAM102、ROM(Read Only Memory)103、非易失性存储器104、MPEG(Moving Picture Experts Group)编码/解码部105、调谐器106、UDD接口107、HDD108、I/O部109、启动模式切换部110。
CPU101控制硬盘录像机100的各部。该CPU101装配了存储器管理单元(Memory Management Unit(以下记载为MMU)),具有将RAM102划分能够以小单位(页)管理的机制。在此,设MMU131包含在CPU101中来继续说明,但还可以为MMU131不被包含在CPU101中,而在外部具备的结构。此外,对于MMU131的形式没有特别的限制,但是成为能够以页单位设定许可/禁止访问的属性,在访问了禁止访问的页时,能够产生页面错误的例外的结构。另外,假设CPU101的MMU131将4千字节(以下记载为4KB)作为一页管理来继续说明。
RAM102能够由SRAM(Static Random Access Memory)或DRAM(Dynamic Random Access Memory)等构成。RAM102具有CPU101使用的主存储装置的功能,如果具有这样的功能,则能够作为RAM102来使用。
ROM103是FLASH ROM(快闪只读存储器)或Mask ROM(屏蔽式堆读内存)等只读存储器。ROM103存储OS或应用程序软件,只要能够进行这样的存储,在本发明中可以使用任何种类的ROM。
非易失性存储器104是即使切断硬盘录像机100的电源,仍保存所存储的内容的存储器。例如能够由FLASH ROM或带有备份功能的SRAM、DRAM等构成。
非易失性存储器104在后述的软件启动后,存储在RAM102中存储的软件的存储器映像。因此,优选使非易失性存储器104的容量为RAM102的容量以上的容量。但是,在想要通过数据压缩等缩小数据时,非易失性存储器104的容量可以在RAM102的容量以下。此外,非易失性存储器104还可以兼用作HDD108(还可以将HDD108作为非易失性存储器108使用)。
MPEG编码/解码部105进行动画的压缩/展开。经由调谐器106提供动画。调谐器106根据用户的指示,从多个节目(动画)中选择一个动画,提供给MPEG编码/解码部105。MPEG编码/解码部105根据需要,经由HDD接口107向HDD108提供来自调谐器106的数据,或者经由HDD接口107接收来自HDD108的数据。此外,此时根据需要来执行编码或解码的处理。
I/O部109是为了CPU101读取启动模式切换部110的状态而设置的。以下说明的软件具有用于取得高速启动映像的通常启动模式、作为取得高速启动映像后的启动模式的高速启动模式。在这些启动模式的切换中使用I/O部109和启动模式切换部110。为了通常启动模式和高速启动模式的切换,能够通过开关构成启动模式切换部110。此外,为了通常启动模式和高速启动模式的切换,也可以根据来自引导加载程序(Boot-loader)等的命令来切换启动模式切换部110。
此外,一旦生成高速启动的映像,则可以不需要通常启动模式,所以可以仅安装高速启动模式,不需要通常启动模式与高速启动模式的切换。在采用这样的结构时,也可以省略I/O部109和启动模式切换部110。
(MMU)
图2表示CPU101装备的MMU131的模型。图2所示的MMU131是32位(bit)级别以上的CPU101装备的模型。MMU131的结构、物理地址、虚拟地址、在各表的索引中使用的位数、表的段数等依赖于CPU101的制造商,但是尤其是不依赖于制造商的架构。在此,为了说明的方便,以32位等的具体的数字为例进行说明,但该数值不是表示本发明的应用范围的限定。
MMU131在指示最终的物理页的表内项的属性中实现许可访问或相当于许可访问的功能,至少具有在不许可访问的情况下进行了访问时,能够产生页面错误或相当于页面错误的例外处理的功能。
MMU寄存器200是安装在MMU131中的寄存器。在该寄存器中代入1级描述符表201的起始地址。1级描述符表201是设置在存储器上的1级存储器表。在物理地址空间为32位时,为了指示一个地址使用32位即4字节,所以1级描述符表201的大小通过12位空间=4KB空间×4字节成为16KB的大小。
虚拟地址202表示作为1级存储器表的索引而使用的虚拟地址的31位至20位。VA表示Virtual Address(虚拟地址)。当向预定的虚拟地址访问时,从1级描述符表201的起始地址开始,把虚拟地址的31位至20位作为索引,访问1级描述符203。
在物理地址空间为32位的CPU101时,为了表示一个地址使用32位即4字节,所以1级描述符的地址成为以下那样的式子。
1级描述符203的地址=1级描述符表201的起始地址+虚拟地址202(VA[31:20])×4
1级描述符203是由指示2级描述符表204的起始地址的指针和属性构成的描述符。从2级描述符表204的起始地址开始,把虚拟地址的19位至12位作为索引,访问2级描述符206。
在物理地址空间为32位的CPU101时,为了表示一个地址使用32位即4字节,所以2级描述符的地址成为以下那样的式子。
2级描述符206的地址=2级描述符表204的起始地址+虚拟地址205(VA[19:12])×4
2级描述符206是由表示4KB的物理页207的指针、和属性构成的描述符。物理页207是最终从虚拟地址变换为物理地址后的1页的物理存储器。通过虚拟地址208(VA[11:0])指定物理页207的4KB内的地址。
图3是1级描述符203、2级描述符206的一例。图3中的描述符只不过是一个例子,不表示本发明依赖于在这样的一例中表示的特定的CPU101或架构。
基地址301是指示下一个表或物理页的起始地址的指针。属性302至304分别是表示可/不可执行、特权模式/用户模式这样的属性的属性位。访问许可位305是表示是否许可针对该描述符表示的物理页的访问的位。当访问在该访问许可位305中设定为禁止访问的物理页时,一般执行被称为页面错误的例外处理,即中断处理,这种机构是必要的。因此,虽然不依赖于CPU101的架构,但需要在CPU101中配备页面错误、或相当于页面错误的功能。
(物理页)
图4模拟地表示了在RAM102(图1)上排列了物理页207的状态。在RAM102中,从物理页207-0开始按顺序直到物理页2-7-n排列了1页的物理页207。在装备了MMU131的CPU101上运行软件时,像这样以4KB至64KB为单位,作为1页来管理1页的物理页207的情况较多。
图5说明在软件为预定的运行状态时的物理页的使用状况。在图5中,记载了数字的页是已被使用的页,没有记载数字的页表示没有被使用的页。软件使用的程序代码或数据如图4所示,即使使用整个区域,在按照某个单位时间观察软件的状态时,很多时候如图5那样被使用。即,具有使用的页和未使用的页,并非使用全部的页。
在该软件为预定的运行状态时,使用物理页207-0、物理页207-2、物理页207-4、物理页207-5、物理页207-9、物理页207-16以及物理页207-18。即,如图4所示,在RAM102中,从物理页207-0开始按顺序直到物理页207-n为止排列了1页的物理页207,但是,当预定的软件为预定的运行状态时,并非使用全部的页,而如图5所示仅使用多个页。
在通过现有的休眠启动进行启动时,在软件运行之前,如图4所示,在从物理页207-0开始到物理页207-n依次进行读出后恢复运行开始,成为预定的运行状态。但是实际上,该软件为了成为预定的运行状态,如图5所示,仅读出预定的多个物理页207即可。因此,在本发明中,通过如后述那样控制读出,如图5所示,仅读出需要的物理页207。
在通过现有的休眠启动进行启动时,如图4所示从物理页207-0开始依次进行读出,换句话说,也读出不需要的物理页207,所以读出需要花费时间,结果,有时预定的软件(也包含OS等)的启动变得缓慢。但是,根据本发明,如图5所示,因为仅读出需要的物理页207,所以能够缩短读出花费的时间,能够使预定软件(也包含OS等)的启动加快。
图6表示软件的物理存储器映射。以下说明的处理依赖于CPU101或OS,如果安装了这些功能,则对结构或存储器配置没有限制,并非表示仅在以下的说明中采用本发明。
非易失性存储器104是即使切换电源也保存存储内容的存储器。在图6所示的例子中,作为非易失性存储器104对FLASH ROM进行了映像。非易失性存储器104被映射到主存储器上,但是即使切断电源也保存内容,并且具备RAM102以上的容量。但是,可以应用本发明的非易失性存储器104未必需要经由I/O的访问等映射到存储器映射上,对架构没有限制。
数据401是程序代码402使用的能够读写的数据区域。把数据401作为物理页207分割为某个特定的大小来进行存储。数据401需要能够读写,所以优选放置于RAM102上。
程序代码402表示要启动/执行的希望的程序。在一般的个人计算机中安装了Windows(注册商标)或Linux这样的OS,在为在该OS上运行的软件时,所谓程序包含该OS以及软件。把程序代码402作为物理页207,分割为某个特定的大小来存储。将该程序代码402放置在RAM102或ROM103上。
MMU表403表示图2所示的1级描述符表201以及2级描述符表204。页面错误处理程序404,是用于当MMU131的2级描述符206为禁止访问属性,并且发生了页面错误时,经由中断向量进行例外处理的程序。在此,与程序代码402区分地记述了页面错误处理程序404,但有时也包含在程序代码402中。
中断向量405是一般的CPU具有的中断向量。在发生了页面错误时,程序代码跳转到该中断向量内的页面错误,结果,调用页面错误处理程序404。
与数据401、程序代码402、MMU表403以及中断向量405的逻辑地址对应的物理地址可以映射到任意地址。
映像保存程序406是用于在启动希望的程序后,在希望的状态下把存储器映像保存在非易失性存储器104中的程序。映像保存程序406的逻辑地址和物理地址需要映射到同一地址。
映像恢复程序407是用于根据需要以物理页为单位从非易失性存储器104读入并恢复通过映像保存程序406的处理而保存的物理存储器映像,并且,从非易失性存储器104向对应的物理页读入并恢复数据401或程序代码402的程序。需要把映像恢复程序407的逻辑地址和物理地址映射到同一地址。
引导加载程序408是在接通电源或复位后最初启动的引导加载程序。引导加载程序408主要进行启动所需要的最低限度的I/O的初始化。软件具有这样的结构。
(软件的动作)
然后,说明应用了本发明的软件的动作。首先说明概要,然后详细地说明。根据本发明,可以利用软件的局部性(locality)来高速启动软件。在软件中还包含OS等。例如假设在具备容量为4GB的RAM的硬件上使预定的软件运行。假设该预定的软件的程序以及数据的容量的合计值为4GB。一般,软件具有各种模式和功能,仅由预定的单一功能使用全部4GB容量的可能性极低。
例如,软件在启动后在特定的状态下等待来自用户的按键输入。一般在硬件复位后启动引导加载程序,该软件启动,然后成为等待来自用户的按键输入的状态。在采用作为已知技术的休眠使该软件高速启动时,作为生成存储器映像的准备,在等待来自用户的按键输入的状态下保存CPU或各I/O的寄存器,把程序代码和数据的合计4GB存储在任何的非易失性存储器中。在启动时,相反地,并不进行通常的启动过程,而是展开4GB的存储器,恢复CPU和I/O寄存器,返回到按键输入的处理。
在上述软件中,考虑“等待来自用户的输入”这样的状态。在该状态下重复进行按键输入处理,与这样的按键输入所涉及的处理有关的程序代码或数据比较小。本发明使用这样的原理实现高速启动。动作大致分为以下种类。
(A)在通常启动模式下启动OS或希望的软件,使该软件处于希望的状态。
(B)启动映像保存程序,通过该启动后的映像保存程序,在为了禁止对MMU131的全部页表进行访问而把预定的信息改写为表示禁止访问的信息后,把上述(A)的存储器映像保存在寄存器中然后结束。
(C)在下一次以后,通过设为高速启动模式,在(A)希望的状态下启动。
在实现这样的高速启动时,作为基本的准备,如通常那样启动软件,使该软件成为希望的状态,然后保存存储器映像或寄存器。在高速启动时,与休眠启动不同,不是将全部的存储器映像在主存储器中展开,而是根据需要,把实际上所使用的存储器、即仅一部分程序代码或数据逐渐展开。
作为逐渐将程序代码或存储器在主存储器中展开的方法,作为本实施方式举出使用CPU具有的存储器管理单元(MMU131)的例子来进行说明。有时OS也使用MMU131,但是在OS使用前,应用了本发明的软件复原,OS不关心应用了本发明的软件操作了MMU131。
具体地说,在保存存储器映像之前,改写MMU131的表的内容,将全部的页设定为禁止访问。此外,应用了本发明的软件还具有赋予已将上述页设为禁止访问的标记(mark)的功能。
假设希望的软件在OS上运行,该OS使用MMU131的情况也相同。在高速启动时,仅MMU131的表以及CPU的寄存器先行被恢复。然后,返回生成存储器映像后的地址。MMU131的表被设定为全部禁止访问,所以在跳转到返回地址时产生页面错误。数据访问时也相同。处理页面错误的页面错误处理程序104根据发生了页面错误的地址计算页,并且,应用了本发明的软件检查已标注的标记,从非易失性存储器104向主存储器(例如RAM102)读入该页,把MMU131的表写回改写前的原始状态。
通过重复这样的处理,即使是大容量的存储器映像,为了恢复到希望的状态仅读入最低限度的存储器映像即可,能够高速启动。
(动作的细节)
如上所述,根据本发明,与通常的启动相比能够将希望的软件高速地启动到某状态。当大致划分进行该高速启动的过程时,为了方便记载,分为(A)、(B)、(C)三类。在参照流程说明之前对(A)、(B)、(C)做进一步说明。(A)、(B)的一系列的流程是如果执行一次,则不必每次进行的处理。通常,通过从(C)开始执行,能够进行高速启动。
(A)通常启动
(A-1)把启动模式切换部110设定为通常启动模式,通过通常的方法启动OS或希望的程序。
(A-2)在启动希望的程序后,操作软件来使软件成为希望的状态。在高速启动时,在该状态下启动。
(B)状态的保存
(B-1)根据某个按键或命令等启动映像保存程序406。对与该启动有关的启动方法没有特别的限制。
(B-2)映像保存程序406在下次以后想要高速启动的状态下,保存存储器映像和寄存器。具体地说,映像保存程序406把MMU131的表全部设定为禁止访问状态,把该时刻的数据401、程序代码402、MMU表403、页面错误处理程序404、中断向量405以及寄存器类保存在非易失性存储器104中。
(C)高速启动
(C-1)将启动模式切换部110设定为高速启动模式。引导加载程序408判断启动模式,在为高速启动模式时,调用映像恢复程序407。映像恢复程序407使映像保存程序406所保存的MMU表403、页面错误处理程序404、中断向量405恢复。
(C-2)返回即跳转到在B-1的处理中启动了映像保存程序406后的地址。因为MMU131全部被设定为禁止访问状态,所以在每次访问程序代码402或数据401时,在对应的地址产生页面错误,调用页面错误处理程序404。
(C-3)页面错误处理程序404从非易失性存储器104中读出一页的对应的物理页207,使MMU131复原。
(C-4)页面错误逐个发生,在成为A-2的状态之前持续发生必要的页面错误。
(C-5)读入物理页207直到成为A-2状态为止。在该处理中读入的物理页207还依赖于执行的软件或其状态,但是极其少,与通过现有的休眠技术进行的那样读入全部的物理页207相比,能够显著缩短启动时间。
参照图7至图11的流程图,进一步说明上述(A)、(B)、(C)的各动作。
图7的流程图相当于上述(A)、(B)的处理。即,主要是与从接通电源到保存映像的处理有关的流程图。在步骤S101中,接通硬盘录像机100(图1)的电源,或者发生复位来启动系统。
在步骤S102中,启动引导加载程序408(图6)。在该步骤S102启动的引导加载程序408为了运行OS或希望的软件,假设进行最低限度的硬件的初始化,或者根据需要把ROM103或HDD108中存储的软件传输到RAM102的处理,只要是能够执行这样的处理的引导加载程序即可。引导加载程序408依赖于系统,但并非是必须的。因此,根据系统有时省略该步骤S102。
在步骤S103中,检查启动模式切换部110的状态,切换通常启动模式或高速启动模式的迁移(判断通常启动开关是否为开(ON))。在启动模式切换部110为通常启动模式时,处理前进到步骤S104,在为高速启动模式时前进到步骤S161(图9)。
在步骤S103中,当判断为通常启动开关为开(ON)时,因为在通常启动模式下启动,所以把通常启动标志设为开(ON)。在把通常启动标志设为开(ON)时,处理进入到步骤S105,如果是装配了OS的系统,则启动OS。在为一般的系统时,在启动OS时对MMU131进行初始化,生成图2的MMU131的表。在本发明中,OS的装配不是必须的,但假设在没有装配OS时需要进行MMU131的初始化。此外,即使在装配了OS时,在OS的种类等方面不存在限制。
在步骤S106中,启动想要高速启动的希望的软件。在步骤S107中,启动的软件运行。该处理相当于上述的A-2的处理。使软件迁移到与通过高速启动启动后的状态相同的状态。例如,假设在希望的软件中存在多个模式,若要以其中的某个特定的模式高速启动,则操作软件迁移到该模式。例如,在为硬盘录像机100时,具有预约的模式、再生的模式、设定的模式等,但在用户频繁地使用再生的模式时,迁移到再生模式。
在步骤S108中,判断是否开始了映像保存程序406(图6)的处理。该处理相当于上述的B-1的处理。通过命令或按键操作、开关等,开始映像保存程序406的处理。对该映像保存程序406的执行单元没有限制。在步骤S108中判断为没有开始映像保存程序406(图6)的处理时,处理返回到步骤S107,重复这以后的处理。即,此时继续软件的运行。
另一方面,在步骤S107中判断为已经开始了映像保存程序406(图6)的处理时,换句话说,在判断为软件的运行结束时,处理前进到步骤S109。以下的步骤S109至S116的处理相当于上述B-2的处理。此外,步骤S109至步骤S116的处理是映像保存程序406执行的处理。
在步骤S109中,保存图1所示的I/O部109的寄存器。基本上取得设定的值并保存。关于I/O,如果不是能读取全部寄存器的形式的I/O,需要单独地应对。I/O的种类或形式是任意的,特别是在应用本发明方面没有限制。
在步骤S110中,保存CPU101的寄存器。基板上保存CPU101的全部寄存器。CPU101和寄存器的种类是任意的,特别在应用本发明的方面没有限制。
在步骤S111中进行地址空间的切换。CPU101通常在虚拟地址模式下工作。该模式从虚拟地址模式迁移到物理地址模式。因为从虚拟地址模式向物理地址模式的迁移方法依赖于MMU131的架构,所以在应用本发明的迁移方法中没有限制。此外,在从虚拟地址模式迁移到物理地址模式时,因为地址空间变化,所以在步骤S111的处理中,逻辑地址和物理地址需要映射到同一地址空间。
在步骤S112中,执行缓存清空(cache flush)。CPU101装配TLB(TranslationLook-aside Buffer)、一次高速缓冲存储器、二次高速缓冲存储器,在它们有效时,需要清空TLB以及高速缓冲存储器。这是因为,在下面的步骤S113中需要改写放置在RAM102上的MMU表403的内容,需要在全部的RAM102中反映在高速缓冲存储器中存储的数据。该步骤S112中的缓存清空的处理,根据需要来进行,根据情况也可以省略。
在步骤S113中,把MMU131的MMU表403改写为禁止访问全部的物理页207的信息。将在后面参照图8的流程图说明该步骤S113中的MMU表改写处理。
在步骤S113中,当改写了MMU131的MMU表403时,处理前进到步骤S114。在步骤S114中执行缓存清空。CPU101装配TLB、一次高速缓冲存储器、二次高速缓冲存储器,在它们有效时需要清空TLB以及高速缓冲存储器。这是为了可靠地向RAM102反映在前级的步骤S113的处理中改写的MMU131的MMU表403的内容。该步骤S114的缓存清空的处理,根据需要而执行,根据情况也可以省略。
在步骤S115中,对于非易失性存储器104,将RAM102的全部容量的内容全部保存。非易失性存储器104的相对于RAM102的地址的相对的地址位置需要一致。例如,假定把RAM102的物理地址从0x10000000映射到0x1fffffff。此时,例如需要针对非易失性存储器104,根据从0x40000000到0x4fffffff的地址,读入数据。
在该例子时,非易失性存储器104的相当于RAM102的地址的偏移为0x30000000,所以即使是针对RAM102的地址,仅通过相加0x30000000的偏移,就能够变换为非易失性存储器104内的地址。未必需要把非易失性存储器104映射到存储器映射上。只要能够以相加了上述偏移后的地址为关键字(key)进行读入即可。此外,针对非易失性存储器104的保存方法依赖于架构,但在应用本发明方面该保存方法没有限制。
在步骤S116中,结束映像保存程序406的处理。通过结束映像保存程序406的处理,成为能够切断电源或进行复位(RESET)的状态。
在图7所示的流程图中,还没有对在步骤S103中判断为通常启动开关不是开(ON)时的处理、和步骤S113中的MMU表改写处理进行详细说明,但是首先在此参照图8的流程图详细说明步骤S113中的MMU表改写处理。
基于图8所示的流程图的处理,是MMU131的MMU表403成为图2所示的结构,改写该MMU表403的处理。
在步骤S131中,当开始MMU131的MMU表403的改写时,首先,把1级描述符表201的初始地址代入到变量1级描述符指针中。在步骤S132中,从变量1级描述符指针指示的地址取得1级描述符203。
在步骤S133中,判断在步骤S132的处理中取得的1级描述符203中是否存在向2级描述符表204的指针。在步骤S133中判断为在1级描述符203内存在向2级描述符表204的指针时,处理前进到步骤S136,在判断为在1级描述符203内不存在向2级描述符表204的指针时,处理前进到步骤S134。
在步骤S134中,将变量1级描述符指针移动到下一个1级描述符指针的地址。然后,处理前进到步骤S135,判断1级描述符指针是否到达最后。
直到在步骤S135中判断出1级描述符指针到达最后为止,重复进行使处理返回到步骤S134,将变量1级描述符指针移动到下一个1级描述符指针的地址的处理。然后,当在步骤S135中判断出1级描述符指针到达最后时,处理前进到步骤S114(图7)。即,判断出MMU表的改写已结束,处理返回到图7所示的流程图的处理。
另一方面,当在步骤S133中判断为在1级描述符203内存在向2级描述符表204的指针时,处理前进到步骤S136。在步骤S136中,把2级描述符表204的初始地址代入到变量2级描述符指针中。
在步骤S137中,从变量2级描述符指针指示的地址得到2级描述符206。在步骤S138中判断在通过步骤S137的处理取得的2级描述符206内是否存在物理页207。当在步骤S138中判断为在取得的2级描述符206内存在物理页207时,处理前进到步骤S139,在判断在取得的2级描述符206内不存在物理页207时,处理前进到步骤S143。
在步骤S139中,判断在步骤S137的处理中取得的2级描述符206内的物理页207是否在步骤S115(图7)中成为保存对象的RAM102内的地址的范围内。当在S139中判断出2级描述符206内的物理页207在成为保存对象的RAM102内的地址范围内时,处理前进到步骤S140,当判断为不在成为保存对象的RAM102内的地址的范围内时,处理前进到步骤S143。
在步骤S140中,检查在步骤S137中取得的2级描述符206的访问许可位(图3的访问许可位305),判断是否许可访问该物理页207。当在步骤S140中判断为许可向物理页207访问时,处理前进到步骤S141,在判断为不许可向物理页207访问时,处理前进到步骤S143。
在步骤S141中,把在步骤S137的处理中取得的2级描述符206的访问许可位305改写为表示禁止访问的位。然后,在步骤S142中,对改写后的2级描述符206执行标记(marking)。为了保存(标记)用于识别通过应用了本发明的软件还是通过其他软件例如通过本来的OS的动作改写了在步骤S137的处理中取得的2级描述符206的访问许可位305的信息而进行该处理。
步骤S142中的标记的方法依赖于架构,在应用本发明的方面没有限制。例如,如果在2级描述符206中存在不使用的空位,则可以将该空位作为嵌入标记的信息的位来使用。此外,可以具有其他的表来管理被标记的地方和没有被标记的地方。无论是哪种情况,假设是装配了OS等的系统,并且OS使用了这些位的情况下,通过采取共存的机制,能够实施本发明。
在步骤S143中,把变量2级描述符指针移动到下一个2级描述符206的指针的地址。当在步骤S138中判断为在2级描述符206内不存在物理页207时,在步骤S139中判断为2级描述符206没有指示RAM102时,或者在步骤S140中判断为没有许可向物理页207的访问时,来到该步骤S143的处理。
在步骤S144中,判断2级描述符指针是否到达了最后。直到在步骤S144中判断为2级描述符指针到达最后为止,处理返回到步骤S137,重复进行这以后的处理。另一方面,当在步骤S144中判断为2级描述符指针到达最后时,处理前进到步骤S134。已经说明了步骤S134以后的处理,所以省略其说明。
如此,改写MMU131的MMU表403。
然后,说明高速启动时的处理。当在步骤S103中判断通常启动开关没有成为看开(ON)时,即在判断为将开关切换到高速启动时执行高速启动。图9的流程图是在步骤S103中判断为通常启动开关没有成为开(ON)时处理前进的流程图,是用于说明高速启动时的处理的流程图。
在步骤S161中,为了通过高速启动模式进行启动,把通常启动标志设定为关(OFF)(高速启动标志为开(ON))。在步骤S162中,根据需要把中断向量405、页面错误处理程序404、MMU表403读入到与保存映像时相同的RAM102的地址中。
在步骤S163中,读入MMU131的MMU表。将在后面参照图10的流程图说明在该步骤S163中执行的MMU表读入处理。
当MMU表的读入结束时,处理前进到步骤S164。在步骤S164中,把CPU101的地址空间从物理地址模式迁移到虚拟地址模式。在从物理地址模式向虚拟地址模式迁移时,因为地址空间变化,所以在步骤S164的处理中把逻辑地址和物理地址映射到同一地址空间。
在步骤S165中,从非易失性存储器104读出在步骤S110(图7)中保存的CPU101的寄存器的值,对于CPU101进行恢复。CPU101或寄存器的种类为任意的,在应用本发明方面没有限制。
在步骤S166中,从非易失性存储器104读出在步骤S109(图7)中保存的I/O的寄存器的值,对于I/O部109进行恢复。I/O的种类或形式为任意的,在应用本发明方面没有限制。
当如上所述恢复了寄存器等时,处理前进到步骤S107(图7)。在步骤S107中,软件运行。此时,不执行步骤S104至S106的处理,在步骤S107中软件开始运行。由此,至少能够将直到软件能够开始运行所花费的时间缩短执行步骤S104至S106的处理所需要的时间。特别是能够消除步骤S105中的OS的启动或MMU的初始化所需要的时间以及步骤S106中软件的启动所需要的时间,由此能够期待大幅度缩短时间。
返回图9的流程图的说明,参照图10的流程图详细说明在步骤S163中执行的MMU表读入处理。
在步骤S181中,当开始读出MMU表403时,首先读出1级描述符表201。该1级描述符表201在步骤S115(图7)的处理中,在非易失性存储器104中保存了RAM102的内容,但从在该非易失性存储器104中保存的内容中仅读出1级描述符表201。
在步骤S182中,把1级描述符表201的初始地址代入到变量1级描述符指针中。在步骤S183中,从变量1级描述符指针指示的地址取得1级描述符203。在步骤S184中,判断在通过步骤S183的处理取得的1级描述符203内是否存在向2级描述符表204的指针。
当在步骤S184中判断为在取得的1级描述符203内存在向2级描述符表204的指针时,处理前进到步骤S187,在判断为在取得的1级描述符203内不存在向2级描述符表204的指针时,处理前进到步骤S185。
在步骤185中,使变量1级描述符指针移动到下一个1级描述符指针的地址。然后,在步骤S186中,判断1级描述符指针是否到达最后。当在步骤S186中判断出1级描述符指针到达最后时,处理前进到步骤S164(图9)。即,此时,MMU表403的读入已完成,所以处理向下一个处理前进。
另一方面,当在步骤S186中判断为1级描述符203没有达到最后时,处理返回到步骤S183,重复其以后的处理。重复步骤S183至S186,当在步骤S184中判断为在取得的1级描述符203内存在向2级描述符表204的指针时,处理前进到步骤S187。
在步骤S187中判断在步骤S183中取得的1级描述符203内的向2级描述符表204的指针是否指示RAM102。当在步骤S187中判断为向2级描述符表204的指针指示RAM102时,处理前进到步骤S188,在判断为向2级描述符表204的指针没有指示RAM102时,处理前进到步骤S185,重复以后的处理。
在步骤S188中读出2级描述符表。该2级描述符表204在步骤S115(图7)的处理中,作为RAM102的内容保存在非易失性存储器104中,从在该非易失性存储器104中保存的内容中仅读出2级描述符表204。之后,处理前进到步骤S185,重复以后的处理。
如此,进行MMU表的读出。
然后,参照图11的流程图,对发生了页面错误时执行的处理进行说明。在步骤S201中,当发生了页面错误时跳转到中断向量405。即,执行从中断向量405向进行实际的页面错误处理的中断处理器的跳转。
一般的CPU101在发生了页面错误时,作为中断处理跳转到特定的中断向量,作为其中断处理程序来处理。图11所示的发生页面错误时的处理的流程图假设处理页面错误的中断的中断处理程序,但它们依赖于CPU101的架构。关于本发明的应用,并没有根据CPU101的制造商或型号施加了限制。
在步骤S202中判断通常启动标志是否为开(ON)。例如,在步骤S104(图7)的处理中,把通常启动标志设定为开(ON)。当在步骤S202中判断为通常启动标志为开(ON)时,换句话说,在判断为通常启动时,处理前进到步骤S207。另一方面,当在步骤S202中判断为通常启动标志不是开(ON)时,换句话说,在判断为高速启动时,处理前进到步骤S203。
在步骤S203中判断成为对象的物理页207,即与发生了页面错误的地址对应的物理页207是否为被标记的物理页207。标记是在步骤S142(图8)的处理中执行的标记。即,被标记的物理页207是通过应用了本发明的软件被改写为禁止访问的物理页207。
一般在物理页207和地址中满足以下的计算式,但是因为它们依赖于CPU101的架构,所以该计算式不限定本发明的应用范围。
物理页=地址/页大小(例如在上述例子中为4KB)
如该计算式所示,物理页是地址除以页大小得到的计算值。
当在步骤S203中判断为与发生了页面错误的地址对应的物理页207是被标记的物理页207时,处理前进到步骤S204,在判断为是没有被标记的物理页207时,处理前进到步骤S207。
在步骤S204中,从通过步骤S115(图7)的处理在非易失性存储器104中保存的映像仅读出4KB的成为对象的物理页207,即与发生了页面错误的地址对应的物理页207。
在步骤S205中,把成为对象的物理页207,即与发生了页面错误的地址对应的物理页207的2级描述符206的访问许可位305改写为许可访问。在步骤S206中解除在步骤S142(图8)的处理中标记的识别信息。
如此,通过执行发生了页面错误时的处理,能够实现高速启动。
另一方面,在发生了页面错误,但是在步骤S202中判断为通常启动标志为开(ON)时,或者在步骤S203中判断为没有标记对象页时,处理前进到步骤S207。在步骤S207中执行标准的页面错误的处理。即,在通常启动时,或者在应用本发明的软件以外的软件(OS等)将访问设定为不许可时,执行通常启动或不许可访问时的处理。
当在应用了本发明的系统中装配了OS等时,通常安装了标准的页面错误处理程序。与此相对,当在系统中安装了上述那样的页面错误功能时,有时也需要重新执行OS本来进行的页面错误处理。该步骤S207的处理依赖于OS等系统,但不是必须的处理,所以作为本实施方式可以省略。
如此,通过执行发生了页面错误时的处理,能够实现高速启动。
(效果)
如上所述,在装配了存储器管理单元(MMU)或与MMU相当的存储器管理功能的计算机系统上,对于MMU的表改写页表项,以便针对软件的运行所需要的RAM的最小单位、即所谓的页,在全部的页中发生页面错误,在启动时,针对对于要访问的RAM产生的页面错误,通过不仅把本来的OS等具有的已知技术、即页入/页出(pagein/pageout)的功能,还把发生的页面错误的功能用于所保存的存储器映像的以页为单位的读取,由此,具有以下的效果。
首先,能够实现必要的最小限度的存储器映像的读入容量。由此,例如能够缩短个人计算机的启动时间。具体地说,与目前需要数十秒至数分钟的启动时间相比,能够在数秒以内启动。
此外,能够缩短数字家电的启动时间。在电视接收器或硬盘录像机等数字家电(电子设备)中,具有装配了OS(预定的软件)的机种。虽然在装配了预定软件的设备时启动时间有时变长,但是通过应用本发明,能够缩短这些数字家电的启动时间。
此外,能够延长电池的寿命。作为现有的用于实现高速启动的方法,具有使CPU或存储器转移到省电模式的方法。在该方法中,虽然称为省电模式,但需要电力,对于通过电池工作的设备来说无法忽视其功耗。通过应用本发明,能够在非易失性存储器中保存启动映像,不需要使用在向RAM提供电源的情况下停止的所谓的挂起(对应于现有的省电模式)。由此,结果可以显著延长电池寿命。
并且,能够实现家电产品的节能化。电视接收器或硬盘录像机等一般启动慢,因此还存在具有成为“高速启动模式”的模式。但是,该“高速启动模式”为了高速启动家电产品,通常通过接通电源来实现高速启动。因此,与接通电源时同等地消耗电力。
但是,通过应用本发明可以缩短启动时间,可以通过与“高速启动模式”时使用的启动时间等同的、或者更短的启动时间进行启动,不需要设置“高速启动模式”。因此,能够取消在“高速启动模式”时必须始终接通电源的状态,因此能够实现节能化。
上述计算机执行的程序,可以是按照在本说明书中说明的顺序按时间序列地进行处理的程序,还可以是并行地或者在进行了调用时等必要的时刻进行处理的程序。此外,还可以通过专用的硬件构成。此外,在本说明书中,系统表示由多个装置构成的装置全体。
本发明的实施方式不限于上述的实施方式,在不超出本发明主旨的范围内可以进行各种变更。
符号说明
100硬盘录像机;101CPU;102RAM;103ROM;104非易失性存储器;105MPEG编码/解码部;106调谐器;107HDD接口;108HDD;109I/O部;110启动模式切换部

Claims (6)

1.一种计算机可读取的程序,用于具有管理存储器的功能的控制装置中,所述程序的特征在于,
包含以下步骤:
针对预定的软件的运行所需要的页改写页表项,以便在全部页中发生页面错误,
在所述软件启动时,通过所述页表项发生页面错误,依次读出发生了该页面错误的页。
2.根据权利要求1所述的程序,其特征在于,
在启动所述预定的软件后改写所述页表项,把该启动时的数据、程序代码、表、页面错误处理程序、中断向量以及寄存器存储在所述存储器中。
3.根据权利要求1所述的程序,其特征在于,
所述存储器中的存储成为改写对象的所述页表项的存储器是RAM,存储要依次读出的所述页的存储器是非易失性存储器。
4.根据权利要求1所述的程序,其特征在于,
由嵌入式计算机读入该程序。
5.一种具有管理存储器的功能的控制装置的控制方法,其特征在于,
包含以下步骤:
针对预定的软件的运行所需要的页改写页表项,以便在全部页中发生页面错误,
在所述软件启动时,通过所述页表项发生页面错误,依次读出发生了该页面错误的页。
6.一种具有管理存储器的功能的控制装置,其特征在于,
具备:改写单元,其针对预定的软件的运行所需要的页改写页表项,以便在全部页中发生页面错误;以及
读出单元,其在所述软件启动时,通过所述页表项发生页面错误,依次读出发生了该页面错误的页。
CN2010800246514A 2009-06-02 2010-03-05 程序、控制方法以及控制装置 Pending CN102460384A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2009-132708 2009-06-02
JP2009132708A JP4986247B2 (ja) 2009-06-02 2009-06-02 プログラム、制御方法、並びに制御装置
PCT/JP2010/053627 WO2010140403A1 (ja) 2009-06-02 2010-03-05 プログラム、制御方法、並びに制御装置

Publications (1)

Publication Number Publication Date
CN102460384A true CN102460384A (zh) 2012-05-16

Family

ID=43297544

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010800246514A Pending CN102460384A (zh) 2009-06-02 2010-03-05 程序、控制方法以及控制装置

Country Status (5)

Country Link
US (1) US20120072658A1 (zh)
EP (1) EP2439639A4 (zh)
JP (1) JP4986247B2 (zh)
CN (1) CN102460384A (zh)
WO (1) WO2010140403A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139979A (zh) * 2015-10-08 2018-06-08 华为技术有限公司 数据处理装置和操作数据处理装置的方法
CN108564981A (zh) * 2018-03-27 2018-09-21 深圳忆联信息系统有限公司 一种存储装置数据安全动态监控方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012104950A1 (ja) * 2011-01-31 2012-08-09 パナソニック株式会社 起動制御装置、情報機器および起動制御方法
CN102662690B (zh) * 2012-03-14 2014-06-11 腾讯科技(深圳)有限公司 应用程序启动方法和装置
CN103914318A (zh) * 2013-01-04 2014-07-09 腾讯科技(深圳)有限公司 程序启动的方法和装置
JP5901698B2 (ja) 2014-06-17 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation メモリ管理方法
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US10078361B2 (en) 2014-10-08 2018-09-18 Apple Inc. Methods and apparatus for running and booting an inter-processor communication link between independently operable processors
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10198364B2 (en) 2016-03-31 2019-02-05 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10591976B2 (en) 2016-11-10 2020-03-17 Apple Inc. Methods and apparatus for providing peripheral sub-system stability
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10838450B2 (en) 2018-09-28 2020-11-17 Apple Inc. Methods and apparatus for synchronization of time between independently operable processors
US10789110B2 (en) 2018-09-28 2020-09-29 Apple Inc. Methods and apparatus for correcting out-of-order data transactions between processors
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11513970B2 (en) * 2019-11-01 2022-11-29 International Business Machines Corporation Split virtual memory address loading mechanism
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007334383A (ja) * 2006-06-12 2007-12-27 Sony Corp 情報処理装置とその起動方法およびプログラム
CN101180612A (zh) * 2005-03-31 2008-05-14 日本电气株式会社 计算机系统、存储器管理方法及其程序

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694451B2 (en) * 2000-12-07 2004-02-17 Hewlett-Packard Development Company, L.P. Method for redundant suspend to RAM
US6546472B2 (en) * 2000-12-29 2003-04-08 Hewlett-Packard Development Company, L.P. Fast suspend to disk
US6883037B2 (en) * 2001-03-21 2005-04-19 Microsoft Corporation Fast data decoder that operates with reduced output buffer bounds checking
JP3906825B2 (ja) * 2003-06-17 2007-04-18 日本電気株式会社 計算機システム、計算機システム起動方法およびプログラム
JP2005149225A (ja) * 2003-11-17 2005-06-09 Sony Corp コンピュータシステム及びその起動方法
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
EP1672487A1 (en) * 2004-12-14 2006-06-21 Sony Ericsson Mobile Communications AB Method and means for an efficient memory usage
JP4078360B2 (ja) * 2004-12-24 2008-04-23 キヤノン株式会社 電子機器、データ処理方法、及びコンピュータプログラム
US7620784B2 (en) * 2006-06-09 2009-11-17 Microsoft Corporation High speed nonvolatile memory device using parallel writing among a plurality of interfaces
US8423740B2 (en) * 2011-02-01 2013-04-16 Wind River Systems, Inc. System and method for fast boot from non-volatile memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101180612A (zh) * 2005-03-31 2008-05-14 日本电气株式会社 计算机系统、存储器管理方法及其程序
JP2007334383A (ja) * 2006-06-12 2007-12-27 Sony Corp 情報処理装置とその起動方法およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108139979A (zh) * 2015-10-08 2018-06-08 华为技术有限公司 数据处理装置和操作数据处理装置的方法
US10970227B2 (en) 2015-10-08 2021-04-06 Huawei Technologies Co., Ltd. Data processing apparatus for handling page fault using predefind bit patterns and a method thereof
CN108564981A (zh) * 2018-03-27 2018-09-21 深圳忆联信息系统有限公司 一种存储装置数据安全动态监控方法
CN108564981B (zh) * 2018-03-27 2021-10-01 深圳忆联信息系统有限公司 一种存储装置数据安全动态监控方法

Also Published As

Publication number Publication date
EP2439639A4 (en) 2013-03-06
JP4986247B2 (ja) 2012-07-25
EP2439639A1 (en) 2012-04-11
WO2010140403A1 (ja) 2010-12-09
JP2010282252A (ja) 2010-12-16
US20120072658A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
CN102460384A (zh) 程序、控制方法以及控制装置
KR101288408B1 (ko) 플래시 메모리 시스템의 고속 웨이크-업을 용이하게 하는 방법과 시스템
CN100394391C (zh) 用于在计算机系统上存储数据的系统和方法
US9164887B2 (en) Power-failure recovery device and method for flash memory
US8347029B2 (en) Systems and methods for fast state modification of at least a portion of non-volatile memory
EP2570927B1 (en) Handling unclean shutdowns for a system having non-volatile memory
US20100185804A1 (en) Information processing device that accesses memory, processor and memory management method
CN103164346A (zh) Lba位图使用
TWI506429B (zh) 用於非依電性容錯寫入作業之方法、運算系統及相關電腦程式產品
CN103995578A (zh) 一种具有绿能数据持续模式的器件驱动器
CN102687113A (zh) 程序、控制方法以及控制装置
EP2413329B1 (en) Electronic apparatuses
CN103577574A (zh) 一种基于nand flash的高可靠线性文件系统
CN102971716A (zh) 具有电力恢复后重新加载能力的高速缓存
WO2006120679A2 (en) A method and system for facilitating fast wake-up of a flash memory system
CN102160039A (zh) 闪存存储器件中的动态存储器分配引起的自我逐出的避免
CN103842962A (zh) 用于改进计算设备的启动的方法
CN101727361B (zh) 一种终端产品版本存储的方法与系统
US20190324868A1 (en) Backup portion of persistent memory
JP5506418B2 (ja) プログラム、制御方法、並びに制御装置
CN107402717B (zh) 闪速存储器存储管理
US8055853B2 (en) Data storage system and data storage program for atomic transactions
WO2008087634A1 (en) A method and system for facilitating fast wake-up of a flash memory system
US20150095701A1 (en) Multiple processor system
CN100501638C (zh) 一种奔腾ii处理器系统的引导方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120516