CN101180612A - 计算机系统、存储器管理方法及其程序 - Google Patents
计算机系统、存储器管理方法及其程序 Download PDFInfo
- Publication number
- CN101180612A CN101180612A CNA2006800107638A CN200680010763A CN101180612A CN 101180612 A CN101180612 A CN 101180612A CN A2006800107638 A CNA2006800107638 A CN A2006800107638A CN 200680010763 A CN200680010763 A CN 200680010763A CN 101180612 A CN101180612 A CN 101180612A
- Authority
- CN
- China
- Prior art keywords
- program
- unit
- volatile memory
- memory cells
- address
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Stored Programmes (AREA)
Abstract
ROM(非易失性存储单元(152)预先存储经转换的映像数据(290)和未经历数据转换的初始操作映像(224)。当数据在逻辑块单元中经历数据转换(压缩、加密等等)之后,一个或多个逻辑块被聚集到预定大小的物理块中并被存储在非易失性存储单元(152)中。当对没有展开数据的逻辑块进行第一次访问时,包含该块的物理块中包含的所有逻辑块都被一次性展开(已经历转换的数据经历逆向转换以获得原始数据)。因而,对物理块进行一次访问就足够了。也就是说,可以执行有效的存储器管理和计算机系统的高速启动。
Description
技术领域
本发明涉及计算机系统、存储器管理方法及其程序,更具体而言,涉及这样的计算机系统、存储器管理方法及其程序,其使得能够对经压缩、加密然后存储在非易失性存储介质(例如ROM)中的数据进行管理,以实现到主存储单元(例如RAM)的高效传送。
背景技术
用于启动计算机的控制程序被存储在诸如ROM这样的容量较大但访问速率较低的非易失性存储介质中。相关技术的一种作法是在系统重置(初始化操作)完成之后将控制程序从例如作为非易失性存储介质的ROM传送到作为主存储单元的RAM。因此,在用户加电之后,他/她必须等待较长的时间才能使用信息处理器。
如上所述,主存储映像(main storage image)较大。因此,为了减少启动时间,必须节省诸如ROM这样的非易失性存储介质的容量,而为了满足这一要求,进行了这样的尝试,即压缩主存储映像(OS的控制程序)并保存获得的映像。在例如文献1(美国专利No.6,496,882)中公开的一种压缩兼容启动系统中,为了减小诸如ROM这样的非易失性存储介质的容量,在启动之后立即需要的主存储映像被按逻辑块压缩,并且在对某个逻辑块进行第一次访问时,与该逻辑块相对应的压缩数据被从非易失性存储介质读出,被解压缩并且被展开到RAM上。保存各个压缩块(compressed block)的ROM地址被写在管理表中,并且当从ROM读取压缩块时,通过使用参考管理表而获得的地址来执行从ROM的读取。在这种情况下,计算机系统中的存储器管理设备将主存储存储器的物理地址作为具有预定宽度的片段来管理。
另一方面,由应用程序指定的地址(被称为逻辑地址)是通过映射作为具有预定宽度的片段的物理地址的块并对这些块进行变换以使得它们看起来在逻辑上是连续的,从而来获得的,并且其变换表是由操作系统(OS)管理的。由CPU中的MMU(存储器管理单元)缓存的变换表中的条目被称为TLB(变换后备缓冲器:Translation Look-aside Buffer)。
但是,在上述相关技术(文献1)中,当读取压缩块时,虽然非易失性存储介质中的块包括数据的两个或更多个逻辑块,但是在每个异常处理中它们是被分开读取的,从而有时会造成这样一个问题,即诸如ROM这样的将被按块访问的非易失性存储介质的一个块被读取了两次或更多次。
此外,由于要读取的经转换的数据是跨非易失性存储介质上的两个块地被保存的,因此当展开逻辑块的数据时,按块的访问可能会读取诸如ROM这样的非易失性存储介质的多个块,从而陷于两个TLB条目被使用的情况,导致对高速启动的妨碍。
因而,本发明的一个示例性目的是提供一种计算机系统、计算机系统的存储器管理方法及其管理程序,它们使得在诸如ROM这样的非易失性存储介质中经压缩和加密的所存储的程序和数据能够被高效地传送到/展开到诸如RAM这样的主存储单元上,从而即使在要读取的物理块的大小改变的情况下也能减少计算机系统的启动时间。
发明内容
本发明采用了一种方法,该方法在将通过压缩、加密等等而转换的程序存储在非易失性存储单元中时,存储该程序以便不跨越块之间的边界,并且在首次访问某个块时,将该块中包括的所有数据展开到主存储单元的相应块上。
根据本发明的第一示例性方面,一种计算机系统,具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,用于管理存储在非易失性存储单元和主存储单元中的程序以将存储在非易失性存储单元中的程序传送到主存储单元,其中存储器管理单元包括:程序存储控制功能,用于将经历过预定数据转换的程序和尚待经历预定数据转换的程序存储在非易失性存储单元中;以及以下功能:在执行程序存储控制功能时对经历过预定数据转换的程序进行组合以便不跨越块之间的边界,并且在对某个块进行第一次访问时,将该块中包括的所有数据展开到主存储单元的相应块。
根据本发明的第二示例性方面,一种计算机系统,具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,用于管理存储在非易失性存储单元和主存储单元中的程序以将存储在非易失性存储单元中的程序传送到主存储单元,其中存储器管理单元包括:程序存储控制功能,用于将经历过预定数据转换的程序和尚待经历预定数据转换的程序存储在非易失性存储单元中;程序逆向转换功能,其在整个系统启动之后存在OS和应用的存储器访问时可操作,用于将存储在非易失性存储单元中的程序传送到主存储单元,以对该程序进行逆向转换;物理地址改变功能,用于将存储在非易失性存储单元中的程序的物理地址改变为主存储单元的物理地址;以及容量分配功能,用于分配多个逻辑块的容量,该多个逻辑块用于对包括分配给存储在非易失性存储单元中的程序的预定容量的一个物理地址的块中的数据进行展开。
根据本发明的第三示例性方面,一种计算机系统,具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,用于管理存储在非易失性存储单元和主存储单元中的程序以将存储在非易失性存储单元中的程序传送到主存储单元,其中存储器管理单元包括:地址变换单元,其在存在来自程序的存储器访问时可操作以将逻辑块地址变换成物理块地址;映射表单元,其保存地址变换单元的信息;保护信息单元,其保存逻辑块地址的原始保护信息;以及映射表改变单元,其在发生异常时更新映射表单元的条目。
根据本发明的第四示例性方面,一种计算机系统,具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,用于管理存储在非易失性存储单元和主存储单元中的程序以将存储在非易失性存储单元中`的程序传送到主存储单元,其中存储器管理单元包括:地址变换单元,其在存在来自程序的存储器访问时可操作以将逻辑块地址变换成物理块地址;映射表单元,其保存地址变换单元的信息;以及映射表改变单元,其在发生异常时更新映射表单元的条目,其中映射表单元将每个逻辑块的原始保卫模式保存在经转换的数据中。
根据本发明的第五示例性方面,一种被构造为将存储在非易失性存储单元中的程序传送到主存储单元的计算机系统的存储器管理方法,包括:第一步骤,即将经历过预定数据转换的程序和尚待经历预定数据转换的程序存储在非易失性存储单元中;第二步骤,该步骤在计算机系统启动之后存在OS和应用程序的存储器访问时可操作以将存储在非易失性存储单元中的程序中的经历过预定数据转换的程序传送到主存储单元以执行该预定数据转换的逆向转换;第三步骤,即将存储在非易失性存储单元中的程序的物理地址改变为主存储单元的物理地址;以及第四步骤,即分配多个逻辑块的容量,用于对包括分配给存储在非易失性存储单元中的程序的预定容量的一个物理地址的块中的数据进行展开。
如上所述,根据本发明,对物理块的访问只发生一次,这使得高效的存储器管理能够有效地减少计算机系统的启动时间。
附图说明
图1是示出本发明的第一示例性实施例的框图;
图2是示出在非易失性存储单元中被虚拟地彼此分开地保存的经转换的映像(image)数据和尚待转换的数据的框图,该图示出了根据第一示例性实施例紧接启动之后的映像按逻辑块的数据转换的示例,
图3是示出经转换的映像数据的各个物理块的框图,该图示出了根据第一示例性实施例在对多个块的数据进行转换之后获得的数据格式;
图4是用于说明根据第一示例性实施例、计算机所包括的映射表单元的条目的配置示例的图;
图5是用于说明根据第一示例性实施例、计算机所包括的保护信息单元的条目的配置示例的图;
图6是示出根据第一示例性实施例在计算机的地址变换单元和映射表改变单元处的计算处理的示例的流程图;
图7是示出根据第一示例性实施例的系统的示意性操作的流程图;
图8是示出第一示例性实施例的具体示例的框图;
图9是用于说明图8中的主存储单元和非易失性存储单元的物理块地址的分配状态示例的图;
图10是用于说明图8中的保护模式的内容(保护信息单元)的示例的图;
图11是示出图1中公开的OS具有的映射表单元的初始状态和其改变后的状态的图,其中图11(a)是用于说明映射表单元的初始状态的图,而图11(b)是用于说明映射表单元改变后的状态的图;
图12是用于说明图8所示的非易失性存储单元的未经转换的数据(初始操作映像)和经转换的数据的配置示例的图;
图13是用于说明根据本发明的第二示例性实施例经转换的映像数据的每个物理块的配置示例的图;
图14是用于说明根据第二示例性实施例的经转换数据的配置示例的图;
图15是用于说明根据第三示例性实施例的、非易失性存储单元的未经转换的数据和经转换的数据的配置示例的图;
图16是示出根据第四示例性实施例的再转换处理的示例的流程图;
图17是用于说明根据第四示例性实施例在再转换处理之前映射表单元的状态和在转换处理之后的状态的图;以及
图18是用于说明根据第四示例性实施例在再转换处理之后经转换的数据的配置示例的图。
具体实施方式
下面将参考附图描述本发明的示例性实施例。
(第一示例性实施例)
如图1所示,根据此示例性实施例的计算机系统100具有主存储设备101和数据处理器102,并且可在程序控制下工作。计算机系统100是这样一个系统,其用于通过数据处理器102将非易失性存储单元152的经压缩或加密的数据展开(通过解压缩或解密)到上述主存储设备101的主存储单元151上。
更具体而言,上述计算机系统100包括:存储程序的非易失性存储单元152,例如ROM;从非易失性存储单元152接收程序的主存储单元151,例如RAM;以及数据处理器102,其包括存储器管理单元(OS)102A,该存储器管理单元102A管理存储在上述非易失性存储单元152和主存储单元151中的程序。
存储器管理单元102A包括程序存储控制功能,该功能将经历预定的数据转换的程序和尚待经历预定数据转换的程序存储在非易失性存储单元152中。存储器管理单元102A还包括对经历预定数据转换的程序进行组合以便在执行上述程序存储控制功能时不跨越块之间的边界的功能,以及在对某个块进行第一次访问时将该块中包括的所有数据展开到主存储单元151中的相应块上的功能。
上述存储器管理单元102A在功能上包括以下功能:程序存储控制功能,该功能将经历预定数据转换的程序和尚待经历预定数据转换的程序存储在非易失性存储单元152中;程序逆向转换功能,该功能可在整个系统启动之后OS或应用的存储器访问时工作,该功能将存储在上述非易失性存储单元152中的经历了预定数据转换的程序传送到上述主存储单元151并对其进行逆向转换;物理地址改变功能,该功能将存储在非易失性存储单元152中的程序的物理地址改变成主存储单元151的物理地址;以及容量分配功能,该功能在预定的定时处将所述程序的多个逻辑地址的容量分配到被分配给所述程序并被存储在上述非易失性存储单元152中的预定容量的一个物理地址。
因而,非易失性存储单元152能够存储通过使OS 205和应用程序的初始化处理之后主存储映像的一部分经历按块的数据转换而获得的映像数据,以使得每个块的经转换数据能够被适当地组合,以便不超过块大小。利用该配置,在整个计算机系统启动时,系统从尚待经历数据转换的主存储映像部分启动,以进入与紧接OS 205和应用程序的启动之后的状态相同的状态,从而使得系统返回到紧接启动之后的环境。此时,由于系统是从主存储映像部分启动的,因此在系统可操作之前不会发生操作中断,从而高效地减少系统启动时间。
此外,根据本发明,上述存储器管理单元102A包括:地址变换单元156,其在存在来自程序的存储器访问时可操作以将逻辑块地址变换成物理块地址;映射表单元157,用于保存地址变换单元156的信息;保护信息单元158,用于保存上述逻辑块地址的原始保护信息;以及映射表改变单元154,用于在发生异常时改变所述映射表单元157的条目。
然后,利用这样的结构,当对通过非易失性存储单元152中的上述数据转换来转换的数据进行组合时,进行组合以便如上所述不跨越块之间的边界,并且在对某个块进行第一次访问时,块中包括的所有数据都被展开到主存储的相应块上。
更具体而言,根据此示例性实施例的计算机系统至少包括如上所述的主存储单元151、非易失性存储单元152和数据处理器102,此外,存储在所述非易失性存储单元152中的是通过使紧接系统启动之后的上述主存储映像经历按预定宽度的数据转换处理而获得的数据。然后,当在系统启动之后发生对尚待获得的主存储块的访问时,所执行的是以下操作:将与上述尚待获得的主存储块相对应的非易失性存储单元152的块中包括的至少一个块的数据展开到上述主存储单元151上的尚待获得的各个相应块上,从而使块从尚待获得状态进入已获得状态。
换言之,利用存储在非易失性存储单元152中的通过使紧接系统启动之后的主存储映像经历按预定宽度的数据转换处理而获得的数据,上述地址变换单元156包括这样一个功能,即,当在系统启动之后发生对尚待获得的主存储块的访问时响应性地生成异常处理,并且上述映射表改变单元154包括这样一个功能,即,将与尚待获得的主存储块相对应的非易失性存储单元152的块中包括的至少一个块的数据展开到所述主存储单元151中的各个相应的尚待获得的块上,从而将块从尚待获得变为已获得。其内容将在稍后描述映射表改变单元154和地址转换单元156时详细描述。
此外,在此示例性实施例中,对于存储在上述非易失性存储单元152中并且经历预定的数据转换的程序,统一地设定了保护模式NULL,而对在系统启动之后、OS和应用的存储器访问时可操作的并且被存储在非易失性存储单元中的经历预定数据转换的程序,分配了主存储单元上的物理地址。这些内容将在稍后描述映射表157时详细描述。
此外,在此示例性实施例中,在存储在上述非易失性存储单元152中的预定大小的物理地址中的多个程序中的每一个程序中,输入了与主存储单元151的物理地址相对应的逻辑地址、逻辑地址的总数和程序数据大小。此外,此示例性实施例被这样地构造,以使得将上述非易失性存储器的预定数据容量的多个物理地址作为一个单元,从而容纳分配给多个逻辑地址的程序。其内容将在稍后顺序描述。
下面将具体描述每个组件。
(主存储设备的结构)
如上所述,主存储设备101包括主存储单元151和非易失性存储单元152。在它们之中,主存储单元151是存储用于使得CPU进行计算的程序的存储器,对于该存储器,适合使用DRAM、DDR-SDRAM等等。主存储单元151是形成除非易失性存储单元152之外的主存储区域的一个部分。主存储单元151可以是任意种类的可读/可写存储器,并且一般使用的是诸如MRAM(磁致电阻性RAM)、FeRAM(铁电性RAM)或闪存之类的非易失性存储器,而不是诸如DRAM和SRAM之类的易失性存储器。
非易失性存储单元152是用于存储OS和应用的初始化处理之后的主存储映像(以下称为“紧接启动之后的映像”)的一个部分。非易失性存储单元152可以是任意种类的非易失性存储器,对于它来说可以使用的例如有诸如ROM之类的只读非易失性存储器以及诸如MRAM、FeRAM或闪存之类的可再写非易失性存储器。改变紧接启动之后的映像(主存储映像)的内容的可能方法是:当非易失性存储单元152可更换时或当非易失性存储单元152可再写时,通过使用网络来下载映像文件或者从外部存储介质读取映像文件。
(主存储设备101中的程序数据格式)
图2示出将上述紧接启动之后的映像242(主存储映像:在OS和应用的初始化完成之后的主映像)按逻辑块地数据转换到非易失性存储单元152(例如ROM)上的示例。
生成紧接启动之后的映像(主存储映像)242的方法是任意的,其例如可通过从紧接在利用普通的系统启动方法的启动之后的主存储单元151转储(dump)主存储映像来生成。紧接启动之后的映像242(主存储映像)的一部分在按逻辑块地转换成数据之后,被存储在非易失性存储单元152中。
在诸如ROM这样的非易失性存储单元152中,OS的控制程序被虚拟地保存,其被划分成两个区域,经转换的映像数据290和未经转换的映像数据295。在这两者之中,经转换的映像数据290是通过对按逻辑块分段的紧接启动之后的映像242经历特定的数据转换处理并将所得到的数据放在一起而获得的结果。数据转换处理的示例有压缩和加密。经历转换处理的数据可通过逆向转换而恢复到原始数据,该逆向转换将被称为“展开”。如下所述,上述经转换的映像数据290在启动后被动态地展开到主存储单元151上,并被用于应用206的执行。经转换的映像数据290的一部分被用于操作OS 205。
图3示出了在主存储单元151上的多个块的数据经转换之后获得的非易失性存储单元(ROM)152上的数据格式示例。在这里,块总数370代表经历了数据转换的相关块中包括的逻辑块的数目。数据大小380保存该相关逻辑块的转换之后的数据大小。逻辑块地址385代表要展开的逻辑块号码。经转换的数据395是经历了数据转换的数据。从而,多个逻辑块保存数据大小、逻辑块地址和经转换的数据这样的一系列内容,它们被包括在ROM(非易失性存储单元)152的一个块之中。
对于这里将主存储单元151上的经历了按块转换处理的映像数据放在一起,相关技术采用了按照逻辑块地址的顺序将数据连续地放在一起的方法。另一方面,在此示例性实施例中,这样来选择任意组合以使得不超过物理块大小,同时考虑经转换的数据的大小。此时,可以将就逻辑块地址来说不连续的块放在非易失性存储单元152上的一个块中。
在稍后将描述的图9所示的物理块地址23中,例如逻辑块地址为“2”和“4”的不连续的块被如图12所示地组合,稍后将对此进行描述。在图12中,“2/700/2”代表“块总数/数据大小/逻辑块地址”(见图3),“3300/4”代表“数据大小/逻辑块地址”(见图3)。
再次参考图2,上述未经转换的映像数据295是紧接启动之后的映像(主存储映像)242中尚待经历数据转换的一部分,该部分被用于在启动时启动计算机系统。未经转换的映像数据295因此是初始操作映像224。(数据处理器102的结构)
如图1所示,数据处理器102包括存储器管理单元(OS)102A,用于管理存储在上述非易失性存储单元152和主存储单元151中的程序。
更具体而言,存储器管理单元102A包括:地址变换单元156,其在存在来自程序的存储器访问时可操作用于将逻辑块地址变换成物理块地址;映射表单元157,用于保存地址变换单元156的信息;保护信息单元158,用于保存所述逻辑块地址的原始保护信息;以及映射表改变单元154,用于在发生异常时更新所述映射表单元157的条目。数据处理器102包括硬件初始化单元153,如图1所示,其功能是在系统启动时执行计算机系统100的每个部分的硬件的初始化。
(映射表单元157)
再次参考图1,映射表单元157是一个控制表,其存储用于将在操作主存储设备101时由在计算机系统100上工作的OS或应用程序(一般称为程序)所指定的存储器地址(逻辑地址)变换成实际分配给主存储设备101的存储器地址(物理地址)的信息,并且存储保卫模式(protectmode)。在这里,逻辑地址由逻辑块地址和块内地址形成,物理地址由物理块地址和块内地址形成。
图4示出了上述映射表单元157中的条目的配置示例。映射表单元157由如图4所示那样的一组条目形成。于是,如图4所示,一个条目中保存的是逻辑块地址161、物理块地址162和保卫模式163(代表保护模式(protection mode),以下也是如此)的组合。
在这里,逻辑块地址161是这样一个地址,其用于作为一个整体地标识通过将逻辑地址空间划分成预定大小的块而获得的个体逻辑块。物理块地址162是这样一个地址,其用于作为一个整体地标识通过将物理地址空间划分成与逻辑地址空间相同大小的块而获得的个体物理块。虽然使用体系结构所固有的被称为页的单元使得能够对块进行高效的处理,但是本发明并不局限于这样的单元。
此外,保卫模式(保护模式)163取只读保卫模式、可读/可写保卫模式(保护模式)和NULL(未分配)的保卫模式(保护模式)中的任何值。保卫模式(保护模式)163与在计算机系统100上执行的程序的原始保护属性伪不同,并且对于ROM(非易失性存储单元152)的经转换的映像数据的块,NULL(未分配)的保卫模式在系统启动时被统一地设定。
更具体而言,NULL的保卫模式(保护模式)163指示对于由条目的逻辑块地址161确定的逻辑块,尚未分配物理存储器块。只读或可读/可写的保卫模式163指示对于由条目的逻辑块地址161所确定的逻辑块,由条目的物理块地址162所确定的物理块已被分配并且该块的保卫模式是只读或者可读/可写。
因此,物理块地址列具有以下两种表示。首先,它表示其上存在经转换的数据的非易失性存储单元152上的块地址(当保卫模式为NULL时),其次,它表示实际分配给主存储设备101的物理存储器的块地址(当保卫模式不是NULL时)。在这里,取代保卫模式163中的NULL的指定,可以使用存在比特或其类似物。存在比特是指示属于相关条目的物理块是否存在的比特。在这种情况下,保护信息单元158(图1)(稍后将对此进行描述)不需要存在,并且保卫模式163保存原始块属性。异常事件的发生/不发生(稍后将对此进行描述)是根据存在比特的0/1来确定的。
(保护信息单元158)
再次参考图1。在图1中,上述保护信息单元158是用于保存将在计算机系统100上执行的程序的保护属性的控制表。图5示出了保护信息单元158的条目的配置示例。如图5所示,保存在一个条目中的是一对逻辑块地址171和保护属性172。在这两者之中,保护属性172具有只读保护属性和可读/可写保护属性,并且将设置哪一种保护属性取决于由逻辑块地址171指定的块的原始保护属性。
(地址变换单元156)
地址变换单元156具有这样的功能,即把在存储器操作时在计算机系统100上工作的程序所指定的逻辑地址变换成物理地址,并且它具有这样的功能,即检测由违反保卫模式所导致的异常并激活异常处理。从逻辑地址到物理地址的变换以及对由保卫模式违反引起的异常的检测主要是参考映射表单元157来执行的。
(映射表改变单元154)
再次参考图1,映射表改变单元154具有执行由地址变换单元156激活的异常处理的功能。在异常处理中执行的是:参考保护信息单元158来确定原始保护属性,从非易失性存储介质读取,展开并写入到主存储单元151,以及更新映射表单元157。
图6是示出上述地址变换单元156和映射表改变单元154的处理的一个示例的流程图。下面将详细描述该处理。
首先,地址变换单元156利用与由程序指定的存储器访问相关的逻辑地址中的块地址来搜索映射表单元157,以获得与图4所示的逻辑块地址161一致的条目(步骤S100)。
接下来,地址变换单元156判断步骤S100中获得的条目中的保卫模式163是NULL、只读还是可读/可写(步骤S101)。当保卫模式是只读或可读/可写时(步骤S101中的“否”),检查作为保卫模式的访问模式以确认它是否是适当的访问(步骤S102和S103),并且在它是不适当的访问时执行差错处理1,例如拒绝存储器访问。另一方面,当它是适当的访问时,地址变换单元156通过使用在步骤S100中获得的条目中的物理块地址162来将由程序指定的逻辑地址变换成物理地址(步骤S104),并且访问由该物理地址指定的主存储单元151的一部分(步骤S105)。
当保卫模式163为NULL时(步骤S101中的“是”),地址变换单元156暂时停止相关存储器访问的处理,并且将异常事件通知给映射表改变单元154以激活异常处理(步骤S106)。在异常事件中,将在步骤S100中获得的条目中的物理块地址162通知给映射表改变单元154。
在步骤S106之后,映射表改变单元154利用下述逻辑块的逻辑块地址385来搜索保护信息单元158,以获得与图5的逻辑块地址171相一致的条目的保护属性172(步骤S107),其中所述逻辑块是通过读取由地址变换单元156所通知的物理块地址162所指定的非易失性存储单元152的块而获得的。
接下来,展开经转换的数据395,并将数据拷贝在主存储单元151的空闲块中(步骤S108)。作为这里对形成主存储单元151的块中哪个块空闲以及哪个块正被使用进行管理的技术,可以使用公知的任意方法,例如在保存主存储单元151的各个块的使用状态的表中进行管理。
此外,映射表改变单元154搜索映射表单元157以寻找其如图4所示的逻辑块地址161与逻辑块地址385相一致的条目,将该条目的物理块地址162改写为在步骤S109中对其进行拷贝的主存储单元151的块的物理块地址,并且将保卫模式163改写为块的原始保护模式(只读或者可读/可写)(步骤S109)。
在从非易失性存储单元152读取的相关块中,保存了其数目与块总数370中描述的数目相同的逻辑块的经转换数据。因此,将“搜索保护信息单元158(图1)、展开数据、分配和写物理存储器以更新映射表”这样的处理重复与块总数370的数目相同的次数(步骤S109)。当完成将所述处理重复块总数370中描述的数目那么多次时(步骤S110中的“否”),向地址变换单元156通知异常处理的结束。在接收到来自映射表改变单元154的异常处理结束通知时,地址变换单元156从步骤S100重新开始暂时停止的存储器访问处理。
(计算机系统100的示意性操作)
图7是示出根据此示例性实施例的计算机系统100的示意性操作的流程图。在这里,将参考图6和图7描述计算机系统100的示意性操作。
在启动后,根据此示例性实施例的计算机系统100首先通过上述硬件初始化单元153来初始化硬件(步骤S201)。在此示例性实施例的情况下,映射表单元157和保护信息单元158被包括在处于初始化后的状态的非易失性存储介质的未经转换的部分中。
在经初始化的映射表单元157处,在图4所示的每个条目中,逻辑块地址161和物理块地址162已经被设定,并且对于保卫模式163,在属于作为未经转换的映像数据的初始操作映像224的块的条目中,模式被设定为该块的原始保护属性(只读或者可读/可写),而在属于除初始操作映像之外的紧接启动之后的映像242的块的条目中,它被设定为NULL。在经初始化的保护信息单元158处,逻辑块地址171和保护属性172已经被设定在图5所示的每个条目中。
接下来,从非易失性存储介质的未经转换的部分中的初始操作映像224启动计算机系统100(步骤S202)。由于初始操作映像224所处状态与紧接启动之后OS或应用程序的状态相同,因此系统将会返回到紧接启动之后的环境。此时,从从初始操作映像224的启动开始直到系统操作被允许为止,不存在操作中断(步骤S203)。
当在系统操作阶段首次发生从程序对某个块的访问时(步骤S203),由于该块被NULL保卫模式(保护模式)所映射,因此地址变换单元156通知异常事件以暂时停止访问(图6中的S106)。接收到异常事件的映射表改变单元154参考保护信息单元158,以确定被访问的逻辑地址的块的属性(图6的步骤S107),并且当它是适当的访问时,从主存储单元151中分配空闲块,在非易失性存储单元152中展开相关块的内容,并且从非易失性存储介质的经转换部分获得相关块的数据,以将该内容写到主存储单元151(图6中的步骤S108)。此外,映射表改变单元154设定映射表单元157,使得已对其进行访问的逻辑块地址被原始保护属性的保卫模式所映射。
当相关物理块包括多个逻辑块的经转换的数据时,在利用同一过程展开每个数据之后,从图7的步骤S100重新开始暂时停止的访问处理。结果,针对所分配的主存储块,执行对相关块的暂时停止的访问和后续访问。此时,减小块单元引起展开时间的减少,从而使得能够缩短系统操作被中断的时间。
(计算机系统100的启动:初始操作映像224)
接下来将更详细描述初始操作映像224。在此示例性实施例中,只使用初始操作映像224来启动计算机系统100。因此,初始操作映像224应当包括启动计算机系统100所需的最低限度的OS程序。相反,在初始操作映像224中不需要包括用于实现OS的额外功能的程序或应用程序,没有这些程序或应用程序,系统也可毫无问题地启动。
从以上描述中可见,当在计算机系统100上不存在用于实现图6的处理(地址变换单元156和映射表改变单元154处的处理)的程序和数据时,在系统启动之后没有处理进行工作。因此,包括映射表改变单元154、用于硬件管理的设备驱动器、映射表单元157和保护信息单元158在内的OS的异常处理操作器的一部分至少应当被包括在尚待转换的初始操作映像224中。
因而,此第一示例性实施例具有以下效果,即对某个物理块的读取只发生一次,并且在展开时不需要读取两个或更多个物理块。
(计算机系统100的具体示例)
图8示出了根据此第一示例性实施例的计算机系统100的具体示例(计算机系统200)。
在非易失性存储单元152中,预先存储了经转换的映像数据290(见图2)和尚待转换为数据的初始操作映像224(见图2)。初始操作映像224包括处于初始状态的保护信息单元158和映射表单元157,并且包括映射表改变单元154,作为图1所示的OS 205的一个功能。
由主存储单元151和非易失性存储单元152形成的主存储设备101通过存储器总线202连接到CPU 201,并且地址变换单元156被包含在CPU201中。其他硬件209和存储设备203连接到CPU 201,并且在存储设备203中设置了BIOS 207。在BIOS 207中包含了IPL 204。
图9示出了将物理块地址分配给主存储设备101的示例。虽然在实践中有许多个块被分配到物理块地址,但所示出的示例具有极小数目的块,以帮助理解本发明。物理块地址0~20被分配给主存储单元151,而物理块地址21~30被分配给非易失性存储单元152。
图10示出了OS 205所具有的保护信息单元158的内容示例。虽然图10中的保护信息单元158被公开为具有少量的块,但在实践中却存在许多个块。在图10中,逻辑块地址0~2的每个块的保护属性是只读(R),逻辑块地址3~6的每个块的保护属性是可读且可写。图11(a)和11(b)分别示出了在改变映射表之前和之后的映射表单元157的示例。
(映射表单元157的初始状态)
图11(a)示出了OS 205所具有的处于初始状态的映射表单元157的示例。虽然图11(a)所示的映射表单元157被公开为具有少量的块,但在实践中却存在大量的块。如图11(a)所示,在映射表单元157的初始状态中,对于逻辑块地址0~6,非易失性存储单元152的物理块地址21~25(图9)与之相关。在具有物理块地址21~25的五个物理块中(图9),具有物理块地址21~22的两个物理块是初始操作映像224。因此,作为与逻辑块地址0、1中的每一个相对应的每个物理块的保护模式(保卫模式),最初设定了原始保护属性。
另一方面,虽然属于紧接启动之后的映像242的(而非属于初始操作映像224的)经转换映像数据的逻辑块地址2~6的原始保护属性分别是R、RW、RW、RW和RW(见图10),但是为了在操作启动之后的第一次访问中强制性地导致保护属性违反以启动异常处理,因此对它们最初都设定了保护模式NULL。
为了更具体地描述图11(a)所示的初始(改变前)映射表,图12中示出了包括在非易失性存储单元152中的经转换的映像数据290(图8)和初始操作映像224(图8)的内容的示例。参考图12,正如已参考图11(a)所描述的,物理块地址21和22对应于初始操作映像224,该部分尚待经历诸如压缩和加密之类的数据转换。
此外,在图12所示的示例中,物理块和逻辑块的大小都是4096字节。此外,物理块地址23包括两个逻辑块地址的经转换的数据。一个是图11(a)所示的逻辑块地址“2”的数据,它是作为数据转换处理的结果的700字节数据。另一个是图11(a)所示的逻辑块地址“4”的数据,它是作为数据转换处理的结果的3300字节数据。物理块地址24也包括两个逻辑块地址的经转换的数据。它们是逻辑块地址“3”的1000字节数据和逻辑块地址“6”的2500字节数据。
在这些物理块地址23和24之间,存在78字节的空闲空间,在该空间中多个块被组合以便不超过块大小。这是为了通过将多个块连续地放在一起来避免超过块大小,并且避免在异常事件处理时两个物理块的读取使用两个TLB条目。
逻辑块5在图12中未示出,其原因是逻辑块5被分配给了除物理块21~24之外的其他块。
(计算机系统200的详细操作(包括映射表的改变))
下面,将参考图6和图7以及图10、图11(a)和图11(b)来描述上述计算机系统200的详细操作。
首先,在图7的步骤S201,计算机系统200执行硬件的初始化,例如在启动时清除上述主存储单元151。此时,由于初始操作映像224包括经初始化的映射表单元157的数据以及经初始化的保护信息单元158的数据,因此映射表单元157的数据将被自动设定在计算机系统200上(如图11(a)所示),并且处于如图10所示那种状态的保护信息单元158的数据将被设定。此外,由于初始操作映像224包括映射表改变单元154的功能,因此该功能可被使用。
接下来,在图7的步骤S202,CPU 201从初始操作映像224启动系统。更具体而言,在系统操作启动时,IPL 204将首先要执行的指令的逻辑块设定在CPU 201中的程序计数器处,以使得执行从该指令开始,从而启动系统操作。最后,在图7的步骤S203,在CPU 201上执行的程序访问主存储单元151以使系统工作。
系统如何操作是以如下这种作为示例的访问为前提的。
(1)对具有逻辑块地址“2”的逻辑地址的第一读取访问。
(2)对具有逻辑块地址“2”的逻辑地址的第二和后续读取访问。
(3)在对具有逻辑块地址“2”的逻辑地址的读取访问之后,对具有逻辑块地址“4”的逻辑地址的写入访问。
(4)对具有逻辑块地址“1”的逻辑地址的读取访问。
下面,将基于图6来描述计算机系统200如何工作。
(1)首先,将描述在发生对具有逻辑块地址“2”的逻辑地址的第一读取访问时执行的操作(图10和图11(a))。
在这种情况下,地址变换单元156利用逻辑块地址“2”来搜索映射表单元157,以获得条目“逻辑块地址2、物理块地址23、保护模式(保卫模式)NULL”(图6中的步骤S100)。
此时,由于保护模式为NULL(图6中步骤S101处的“是”),因此所关注的存储器访问的处理被暂时停止,以向映射表改变单元154通知异常事件,并且启动异常处理(图6中的步骤S106)。映射表改变单元154利用逻辑块地址“2”来搜索保护信息单元158,以获得图11(a)所示的具有逻辑块地址2的条目的保护模式(保卫模式)的保护属性“R”(图6中的步骤S107)。然后,从由与逻辑块地址“2”相对应的物理块地址“23”所指定的ROM(非易失性存储单元152)的相关块中读取700字节的数据(图12),以在RAM上展开该数据并将4096字节数据写到主存储单元151上的空闲物理块(假定被分配了“13”)(图6中的步骤S108)。
接下来,映射表改变单元154将具有逻辑块地址“2”的条目中的非易失性存储单元152上的物理块地址“23”改写为主存储单元(RAM)上的物理块地址“13”(如图11(b)所示),并将保护模式从NULL改写为R(图6中的步骤S109)。
此外,由于相关物理块(改变前为“23”,改变后也为“23”)包括多个逻辑块的转换数据,因此当发生异常事件时,对于改变前物理块地址“23”之外的逻辑块的数据,也执行展开、物理块分配、数据写入以及映射表更新。更具体而言,搜索保护信息单元以寻找逻辑块“4”(图6中的步骤S107),以将3300字节数据展开为4096字节数据,并将该数据写到主存储单元151的空闲物理块(假定被分配了“14”)(图6中的步骤S108),以使得映射表改变单元154将具有逻辑块地址“4”的条目中的ROM上的物理块地址“23”改写为RAM上的物理地址“14”(如图11(b)所示),从而将保护模式(保卫模式)从NULL改写为RW(图6中的步骤S109)。
在展开物理块中包括的所有逻辑块、写入到主存储单元151和更新映射表单元157完成之后,通知地址变换单元156异常处理完成(图6中的步骤S110)。
在接收到来自映射表改变单元154的异常处理完成通知后,地址变换单元156从图6中的步骤S100重新开始暂时停止的存储器访问处理。然后,当利用逻辑块地址“2”来搜索映射表单元157以发现映射表单元157从图11(a)所示的状态改变为图11(b)所示的状态时,地址变换单元156这一次获得了条目“逻辑块地址2、物理块地址13和保卫模式R”(图6中的步骤S100)。
然后,由于程序所指定的存储器访问具有保卫模式R(图6中步骤S101处的“否”)并且是读取访问(图6中的步骤S102处的“否”),因此地址变换单元156确定不存在保护违反,以通过使用在所获得的条目中的主存储单元151上的物理块地址“13”来将程序所指定的逻辑地址变换为物理地址(图6中的步骤S104),通过访问读取由该物理地址所指定的主存储单元151的相关部分,并且将所获得的值返回给程序(步骤S105)。
因而,当在系统操作启动之后发生对保护属性为NULL的块的第一次访问时,该块的数据被从ROM(非易失性存储单元152)读取,被展开并写入到RAM(主存储单元151)以读取该数据。虽然这里的描述是以读取为示例进行的,但也存在写入访问的情况。
(2)接下来,将描述当发生对具有逻辑块地址“2”的逻辑地址的第二和后续读取访问时执行的操作。
当利用逻辑块地址“2”搜索映射表单元157以发现映射表单元157被从图11(a)所示的状态更新到图11(b)所示的状态时,地址变换单元156获得主存储单元151中的条目“逻辑块地址2、物理块地址13和保护模式R”(图6中的步骤S100)。
然后,由于程序所指定的存储器访问具有保护模式“R”(图6中步骤S101处的“否”)并且是读访问(图6中的步骤S102处的“否”),因此地址变换单元156通过使用RAM(主存储单元151)中的所获得的物理块地址“13”来将程序所指定的逻辑地址变换成物理地址(图6中的步骤S104),并且访问和读取由该物理地址所指定的主存储单元151的一部分,以将所获得的值返回给程序(图6中的步骤S105)。
因而,当在系统操作启动之后对属于紧接启动之后的映像242的(而非属于初始操作映像224的)块进行第二和后续访问时,由于不再需要像第一访问中那样的展开和物理块分配操作,因此存在于主存储单元151上的数据将被立即更新。
(3)接下来,将描述当发生对具有逻辑块地址“4”的逻辑地址的写入访问时执行的操作。
地址变换单元156利用由程序指定的逻辑块地址“4”来搜索映射表单元157,以获得RAM(主存储单元151)中的具有逻辑块地址“4”、物理块地址“14”和保护模式“RW”的条目,如图11(b)所示(图6中的步骤S100)。
由于保护模式已从“NULL”改变为“RW”(图6中步骤S102处的“否”),程序所指定的存储器访问是写入访问(步骤S102处的“是”),并且保护模式是“RW”(图6中步骤S103处的“是”),因此地址变换单元156通过使用所获得的条目中的物理块地址“14”将程序所指定的逻辑地址变换为物理地址(图6中的步骤S104),并访问由该物理地址所指定的主存储单元151的一部分,以写入从程序传送来的数据(图6中的步骤S105)。
因而,由于已经在逻辑块地址“2”的异常处理时,执行了逻辑块地址“4”的展开处理,因此即使首次发生对逻辑块地址“4”的访问时,在执行存储器访问时也不会发生异常事件。对于已经生成异常事件的逻辑块中包括的其他逻辑块的数据也是如此,也就是说,针对包括经转换的数据的某个物理块的读取和展开处理只被执行一次。
(4)最后,将描述在发生对具有逻辑块地址“1”的逻辑地址的读取访问时执行的操作。
地址变换单元156利用程序所指定的逻辑块地址“1”来搜索映射表单元157,以获得具有逻辑块地址“1”、物理块地址“22”和保护模式“R”的条目,如图11(b)所示(图6中的步骤S100)。
由于条目的保护模式为“R”而不是“NULL”(图6中步骤S101处的“否”),并且程序所指定的存储器访问是读取访问(图6中步骤S102处的“否”),因此地址变换单元156通过使用所获得的条目中的物理块地址“22”来将程序所指定的逻辑地址变换成物理地址(图6中的步骤S104),并且访问由该物理地址所指定的主存储单元151的一部分,以向程序返回所读取的数据(图6中的步骤S105)。
因而,在程序所指定的对初始操作映像224的块的读取访问中没有发生异常事件。
如上所述,上述第一示例性实施例实现了以下效果,即对某个物理块的读取只发生一次,并且在展开时无需读取两个或更多个物理块。此外,在第一示例性实施例中,紧接启动之后的映像242被转换成数据并被保存在非易失性存储单元152中,该方法可被用于除减少启动时间之外的其他目的。例如,在将经压缩或加密的文件系统保存在非易失性存储单元152中的情况下可以使用该方法。
(第二示例性实施例)
虽然在上述第一示例性实施例中,在映射表单元157更新时使用了保护信息单元158,但当如图13所示经转换的数据保存每个逻辑块的原始保卫模式(保护模式)时,无需参考图1所示的保护信息单元158。
在这种情况下,根据第二示例性实施例的计算机系统的结构如下。也就是说,该系统包括:非易失性存储单元152,用于存储程序;主存储单元151,用于从非易失性存储单元152接收所述程序;以及数据处理器102,该数据处理器102包括存储器管理单元(OS),该存储器管理单元管理存储在非易失性存储单元152和主存储单元151中的程序。其中,上述存储器管理单元包括:地址变换单元,其在存在来自程序的存储器访问时可操作以将逻辑块地址变换成物理块地址;映射表单元,用于保存地址变换单元的信息;以及映射表改变单元,用于在发生异常时更新所述映射表单元的条目。然后,上述映射表单元将每个逻辑块的原始保卫模式(保护模式)保存在经转换的数据中。
因而,虽然在上述第一示例性实施例中,在映射表单元157更新时使用了保护信息单元158,但在此第二示例性实施例中,当如图13所示经转换的数据保存每个逻辑块的原始保卫模式(保护模式)时,无需参考保护信息单元158。
更具体而言,在此第二示例性实施例中,参考图13所示的保护模式(保卫模式)390来更新上述映射表单元157的保护模式(保卫模式)163。因此,在这种情况下,从图1所示的计算机系统100中省略了保护信息单元158,并且省略了图6所示的在异常事件处理时执行的步骤S107。图13所示的示例中的经转换数据部分将包括保护信息属性(保护模式属性)(图14),以便能够提高数据处理效率并加速系统。
此外,在第二示例性实施例中,与上述第一示例性实施例的情况类似,对某个物理块的读取只发生一次,并且在展开时无需对两个或更多个物理块进行读取。此时,与上述第一示例性实施例不同的是,由于映射表157的保护模式163是基于在经转换的数据中保存的保卫模式的信息而被更新的,因此不需要保护信息单元158。
这里,在上述计算机系统中,与主存储单元151的物理地址相对应的逻辑地址、逻辑地址总数、程序数据大小和保护模式可被输入到在非易失性存储单元152的预定大小的物理地址中存储的多个程序中的每一个程序之中。
(第三示例性实施例)
在上述第一示例性实施例中,由于作为对各个逻辑块的数据转换的结果所获得的大小要小于物理块的大小(在图14的情况下是4096字节),因此多个逻辑块可被存储在一个物理块中。
第三示例性实施例应对这样一种情况,即作为数据转换结果而获得的大小变得大于作为原始大小的4096字节。在这种情况下,放在一起的多个逻辑块的大小被假定为原始物理块大小的任意整数倍,如图15所示。在图15的示例中,该大小为16384字节(原始大小的4倍)。
因此,当发生对相关块的第一次访问从而引起异常事件时,从映射表中指示的物理块地址开始的四个块的数据被读取,并且被展开到三个逻辑块(对经历过转换处理的数据进行逆向转换使得该数据能够被恢复到原始数据,该逆向转换处理将被称为“展开”)。
此外,当对紧接启动之后的映像242的每个逻辑块的数据进行转换并将其放在一起时,在考虑转换后的数据大小的同时选择适当的块大小以将数据放在一起。此时,开始生成后续的块,以便不会跨越所确定的块大小(16338字节)的边界。在图15的示例中,存在58字节的没有数据的空闲区域。在这里,用于将逻辑块放在一起的物理块大小对于一个系统不一定是固定的大小。换言之,所组合的块的大小需要是物理块大小的任意整数倍,并且可以根据物理块而改变,例如2倍、3倍、4倍、5倍等等。
即使当数据大小由于数据转换而变得大于原始物理块大小时,第三示例性实施例也能实现与上述第一示例性实施例类似的效果,即对某个物理块的读取只发生一次。
(第四示例性实施例)
根据第四示例性实施例的计算机系统的特征在于使存储在上述非易失性存储单元中的经历过预定数据转换的所述程序进一步经历按固定时间间隔的内容不同的预定数据转换。
更具体而言,在上述第三示例性实施例中,在展开经转换的数据之后,该数据被连续地使用。另一方面,在第四示例性实施例中,使在主存储单元151上展开的数据再次经历数据转换处理。例如,在主存储单元151上的数据将要被加密和保存的情况下,以固定的时间间隔对数据进行再加密。
图16示出了第四示例性实施例中的再转换处理的流程图。在这种情况下,作为实际操作,首先搜索映射表单元,以搜索可被再转换的块的条目(步骤S300)。当不存在能够被再转换的块时(步骤S301处的“否”),处理结束。
另一方面,当存在能够被再转换的块时(步骤S301处的“是”),对该逻辑块进行再转换并将其存储在缓冲器(未示出)中(步骤S302)。然后,当该块联同已在缓冲器中的经转换数据超过块大小时(步骤S303处的“是”),放弃相关块的经再转换的数据,并找出后续的条目。另一方面,当所述块联同已在缓冲器中的经转换数据没有超过块大小时(步骤S303处的“否”),则更新相关块的映射表(步骤S304)。
当上述缓冲器中的剩余空闲容量减小时(步骤S305处的“是”),将数据写到主存储单元151的空闲区域(步骤S306)。此时,可以将数据覆写在缓冲器中所存储的任何块的物理块上。虽然在此第四示例性实施例中用于确定从上述缓冲器进行写入的算法是以缓冲器的空闲容量减小为前提的,但也可使用现有的任意算法。
接下来,将针对一个示例来描述第四示例性实施例中映射表的改变。图17(a)示出了保存在计算机200中的初始化时(改变前)的映射表的状态。现在假定具有逻辑块地址3的数据经历再转换处理,以将900字节的经转换数据存储在缓冲器中,如图18所示。
接下来,使逻辑块地址4的数据经历再转换处理并将所获得的数据存储在缓冲器中。结果,数据变为3900字节的经转换的数据,使得如图18所示的一系列管理数据,即块总数2、数据大小900和逻辑块地址3以及数据大小300和逻辑块地址4被写在主存储单元151上。
此时,由于数据将被写在逻辑块地址所使用的主存储单元151上的物理块地址15上,因此将逻辑块地址3和4的物理块地址改变为15,并将保护模式(保卫模式)改变为NULL,如图17(b)所示。
因而,根据上述第四示例性实施例,由于数据转换处理被以固定的时间间隔来执行,因此数据将不会如其原样地被连续地展开在主存储单元151上,从而可以增强在数据被秘密浏览等等之时的安全性。
(此示例性实施例中的计算机系统的存储器管理方法)
接下来,将参考附图描述根据此示例性实施例的计算机系统的存储器管理方法。
根据此示例性实施例,被构造用于将存储在非易失性存储单元152中的程序传送到主存储单元151的计算机系统的存储器管理方法包括以下步骤:第一步骤,即将所述经历过预定数据转换的程序和所述尚待经历预定数据转换的程序存储在非易失性存储单元152中;第二步骤,该步骤在计算机系统启动之后存在OS和应用的存储器访问时可操作,以将存储在上述非易失性存储单元152中的程序中的经历过预定数据转换的程序传送到主存储单元151,并执行该预定数据转换的逆向转换;第三步骤,即将存储在非易失性存储单元152中的程序的物理地址改变为主存储单元151的物理地址;以及第四步骤,即分配多个逻辑块的容量,用于对包括分配给存储在上述非易失性存储单元152中的所述程序的预定容量的一个物理地址的块中的数据进行展开。
如上所述的这种配置使得能够提供一种计算机系统的存储器管理方法,其产生与上述第一示例性实施例等同的效果,并且实现了这样的效果,即与上述计算机系统相关的发明可通过上述程序而被高效且可靠地执行。
在这里,在此示例性实施例中,在上述第一步骤和第二步骤之间,可以提供这样一个步骤,即对存储在上述非易失性存储单元152中的经历过预定数据转换的程序,统一地设定保护模式NULL。
此外,计算机系统的存储器管理方法可包括一个与上述第一步骤并行的步骤,即在上述非易失性存储单元152的预定大小的物理地址中存储的多个程序中的每一个程序之中,输入与所述主存储单元151的物理地址相对应的逻辑地址、逻辑地址总数和程序数据大小。
此外,根据此示例性实施例,计算机系统的存储器管理方法可包括一个与上述第一步骤并行的步骤,即在上述非易失性存储单元152的预定大小的物理地址中存储的多个程序中的每一个程序之中,输入与所述主存储单元151的物理地址相对应的逻辑地址、逻辑地址总数、程序数据大小和保护模式(保卫模式)。还可以提供一个与上述第一步骤并行的步骤,即,使得上述非易失性存储单元152中存储的程序之中的经历了预定数据转换的程序经历按固定时间间隔的其他内容的预定转换。
上述计算机系统的存储器管理方法的具体内容已在上述第一至第四示例性实施例中详细描述。
(此示例性实施例中的计算机系统的存储器管理程序)
接下来,将参考附图描述根据此示例性实施例的计算机系统的存储器管理程序。
根据此示例性实施例的计算机系统的存储器管理程序是用于使得对被构造用于将存储在非易失性存储单元152中的程序传送到主存储单元151的计算机系统的操作进行控制的计算机执行以下过程的程序:将经历过预定数据转换的程序和尚待经历预定数据转换的程序存储在上述非易失性存储单元152中的过程;在计算机系统启动之后存在OS和应用的存储器访问时可操作的过程,该过程将存储在上述非易失性存储单元152中的程序中的经历过预定数据转换的程序传送到主存储单元151,并执行该预定数据转换的逆向转换;将存储在所述非易失性存储单元152中的程序的物理地址改变为主存储单元151的物理地址的过程;以及分配多个逻辑地址的容量,用于对包括分配给存储在所述非易失性存储单元152中的程序的预定容量的一个物理地址的块中的数据进行展开的过程。上述这种配置使得能够提供一种计算机系统的存储器管理程序,其能够产生与上述第一示例性实施例等同的效果。
在这里,在此示例性实施例中,可在上述计算机系统的存储器管理程序中结合这样一个过程来使所述计算机能够执行,即在存储在上述非易失性存储单元152中的经历过预定数据转换的程序处,统一地设定保护模式NULL。
此外,在此示例性实施例中,可在上述计算机系统的存储器管理程序中结合这样一个过程来使所述计算机能够执行,即在上述非易失性存储单元152的预定大小的物理地址中存储的多个程序中的每一个程序之中,输入与主存储单元151的物理地址相对应的逻辑地址、逻辑地址总数和程序数据大小,或者逻辑地址、逻辑地址总数、程序数据大小和保护模式。
此外,根据此示例性实施例,可在上述计算机系统的存储器管理程序中结合这样一个过程来使所述计算机能够执行,即,使得上述非易失性存储单元152中存储的程序之中的经历了预定数据转换的程序经历按固定时间间隔的其他内容的预定转换。
至于上述计算机系统的存储器管理程序的具体内容,在上述第一至第四示例性实施例中已针对计算机的存储器管理系统的操作和功能来详细描述了等同内容。
如上所述,由于本发明被构造为在展开任何块时将经历过数据转换的块中包括的所有块的数据一次展开,因此诸如ROM这样的非易失性存储单元的一个块只可以被读取一次。这使得能够可靠且高效地改进相关示例(背景技术)中涉及的缺点(读取可能发生两次或更多次从而增加启动时间)。另外,根据本发明,当将非易失性存储介质的数据展开到主存储单元上时,无需读取非易失性存储介质的多个块,并且只使用一个TLB条目。其原因是非易失性存储介质的经转换的数据都没有被跨越多个块地保存。
因此,由于非易失性存储单元能够对从OS和应用程序初始化处理之后的主存储映像的一部分按块转换来的映像数据进行存储,因此本发明的示例性实施例使得每个块的经转换的数据能够被适当地放在一起,而不会超过块大小。利用该配置,由于在计算机系统启动时,系统是从尚待经历数据转换的主存储映像部分启动的,因此系统被带到与紧接OS和应用程序启动之后的状态相同的状态,以返回到紧接启动之后的环境。此时,系统从主存储映像的一部分启动以便在系统可操作之前不会导致操作中断,从而有效地减少了启动时间。
由于这样构造以具有上述功能的根据本发明示例性实施例的计算机系统使得每个块的经转换的数据被适当地放在一起而不会超过块大小,因此在计算机系统启动时,系统从尚待经历数据转换的主存储映像部分启动,以进入与紧接OS和应用程序启动之后的状态相同的状态,从而使得系统返回到紧接启动之后的环境。于是,由于系统是从主存储映像部分启动的,因此在系统变得可操作之前不会导致操作中断,从而有效地减少了启动时间。
此外,由于在计算机系统启动之后,在对经历过数据转换的块进行第一次访问时,该块中包括的所有计算出的数据都被展开,因此对该块的访问只发生一次,这样能够完全消除相关示例所具有的缺点,即在某些情况下按块的访问可能读取非易失性存储单元的多个块。于是,在这种情况下,由于所关注的块没有超过块大小,因此即使从只能按块大小读取的非易失性存储单元中,在读取块时也不需要读取多于一个块。
如上所述,由于根据本发明的示例性实施例,在对其数据尚待展开的逻辑块进行第一次访问时,其中存储有所关注的块的物理块中包括的所有逻辑块都被一次展开(通过对经历过数据转换的数据进行逆向转换来使数据恢复为原始数据),因此对该物理块的访问只发生一次,这使得高效的存储器管理能够有效地减少计算机系统的启动时间。
虽然已经参考本发明的示例性实施例来具体示出和描述了本发明,但是本发明并不限于这些实施例。本领域的普通技术人员将会理解,可在其中进行各种形式和细节上的改变,而不会脱离由权利要求所限定的本发明的精神和范围。
通过参考并入
本发明基于2005年3月31日递交的日本专利申请No.2005-104932并要求其优先权,这里通过引用将其公开内容全部并入。
工业应用性
本发明可用于存储经历过诸如压缩或加密之类的转换处理的数据,并且在非易失性存储介质上动态地展开所述数据。这使得所需的非易失性存储介质容量能够得以减小,并且使得高度机密的内容能够被存储在非易失性存储介质上并且被使用。
Claims (20)
1.一种计算机系统,所述计算机系统具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,该存储器管理单元用于管理存储在所述非易失性存储单元和所述主存储单元中的程序以将存储在所述非易失性存储单元中的程序传送到所述主存储单元,其中所述存储器管理单元包括:
程序存储控制装置,用于将经历过预定数据转换的程序和尚待经历预定数据转换的程序存储在所述非易失性存储单元中;以及
用于进行以下操作的装置:在执行所述程序存储控制功能时对经历过预定数据转换的程序进行组合以便不跨越块之间的边界,并且在对某个块进行第一访问时,将该块中包括的所有数据展开到所述主存储单元的相应块。
2.一种计算机系统,所述计算机系统具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,该存储器管理单元用于管理存储在所述非易失性存储单元和所述主存储单元中的程序以将存储在所述非易失性存储单元中的程序传送到所述主存储单元,其中所述存储器管理单元包括:
程序存储控制装置,用于将经历过预定数据转换的程序和尚待经历预定数据转换的程序存储在所述非易失性存储单元中;
程序逆向转换装置,所述程序逆向转换装置在整个系统启动之后OS和应用的存储器访问时可操作,用于将存储在所述非易失性存储单元中的程序传送到所述主存储单元,以对该程序进行逆向转换;
物理地址改变装置,用于将存储在所述非易失性存储单元中的程序的物理地址改变为所述主存储单元的物理地址;以及
容量分配装置,用于分配多个逻辑块的容量,所述多个逻辑块用于对包括分配给存储在所述非易失性存储单元中的所述程序的预定容量的一个物理地址的块中的数据进行展开。
3.一种计算机系统,所述计算机系统具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,该存储器管理单元用于管理存储在所述非易失性存储单元和所述主存储单元中的程序以将存储在所述非易失性存储单元中的程序传送到所述主存储单元,其中所述存储器管理单元包括:
地址变换单元,所述地址变换单元在存在来自程序的存储器访问时可操作以将逻辑块地址变换成物理块地址;
映射表单元,所述映射表单元保存所述地址变换单元的信息;
保护信息单元,所述保护信息单元保存所述逻辑块地址的原始保护信息;以及
映射表改变单元,所述映射表改变单元在发生异常时更新所述映射表单元的条目。
4.一种计算机系统,所述计算机系统具有非易失性存储单元、主存储单元以及数据处理器,该数据处理器包括存储器管理单元,该存储器管理单元用于管理存储在所述非易失性存储单元和所述主存储单元中的程序以将存储在所述非易失性存储单元中的程序传送到所述主存储单元,其中所述存储器管理单元包括:
地址变换单元,所述地址变换单元在存在来自程序的存储器访问时可操作以将逻辑块地址变换成物理块地址;
映射表单元,所述映射表单元保存所述地址变换单元的信息;以及
映射表改变单元,所述映射表改变单元在发生异常时更新所述映射表单元的条目;其中
所述映射表单元将每个逻辑块的原始保卫模式保存在所述经转换的数据中。
5.如权利要求3或权利要求4所述的计算机系统,其中
所述非易失性存储单元对通过使紧接系统启动之后的所述主存储的映像经历按预定宽度的数据转换处理而获得的数据进行存储,
所述地址变换单元包括以下功能,即在系统启动之后发生对尚待获得的主存储块的访问时,响应性地生成异常处理;并且
所述映射表改变单元包括以下功能,即,将与所述尚待获得的主存储块相对应的所述非易失性存储单元的块中包括的至少一个块的数据展开到所述主存储单元上的各个相应的尚待获得的块,以将所述块从尚待获得状态改变为已获得状态。
6.如权利要求1或权利要求2所述的计算机系统,其中
对存储在所述非易失性存储单元中并且经历了预定的数据转换的所述程序,统一地设定保护模式NULL;并且
基于所述系统启动之后来自OS和应用的请求,所述主存储单元上的物理地址被分配给存储在所述非易失性存储单元中并且经历了预定数据转换的所述程序。
7.如权利要求2、权利要求3、权利要求4或权利要求5所述的计算机系统,其中,在存储在所述非易失性存储单元的预定大小的物理地址中的多个程序中的每一个程序中,输入与所述主存储单元的物理地址相对应的逻辑地址、逻辑地址的总数和程序数据大小。
8.如权利要求2所述的计算机系统,其中,在存储在所述非易失性存储单元的预定大小的物理地址中的多个程序中的每一个程序中,输入与所述主存储单元的物理地址相对应的逻辑地址、逻辑地址的总数、程序数据大小和保护模式。
9.如权利要求1至权利要求8中任何一个所述的计算机系统,其中,将所述非易失性存储单元的预定数据容量的多个物理地址作为一个单元,来容纳分配给多个逻辑地址的所述程序。
10.如权利要求1至权利要求9中任何一个所述的计算机系统,其中,存储在所述非易失性存储单元中的所述经历过预定数据转换的程序还经历按固定时间间隔的内容不同的预定数据转换。
11.一种被构造为将存储在非易失性存储单元中的程序传送到主存储单元的计算机系统的存储器管理方法,包括:
第一步骤,即,将所述经历过预定数据转换的程序和所述尚待经历预定数据转换的程序存储在所述非易失性存储单元中;
第二步骤,该步骤在所述计算机系统启动之后存在OS和应用程序的存储器访问时可操作以将存储在所述非易失性存储单元中的所述程序中的经历过预定数据转换的程序传送到所述主存储单元,以执行所述预定数据转换的逆向转换;
第三步骤,即,将存储在所述非易失性存储单元中的所述程序的物理地址改变为所述主存储单元的物理地址;以及
第四步骤,即,分配多个逻辑块的容量,用于对包括分配给存储在所述非易失性存储单元中的所述程序的预定容量的一个物理地址的块中的数据进行展开。
12.如权利要求11所述的计算机系统的存储器管理方法,其中
在所述第一步骤和第二步骤之间,提供这样一个步骤,即对存储在所述非易失性存储单元中的并且经历过预定数据转换的所述程序,统一地设定保护模式NULL。
13.如权利要求11或权利要求12所述的计算机系统的存储器管理方法,其中
提供一个与上述第一步骤并行的步骤,即在所述非易失性存储单元的预定大小的物理地址中存储的多个程序中的每一个程序中,输入与所述主存储单元的物理地址相对应的逻辑地址、逻辑地址总数和程序数据大小。
14.如权利要求11或权利要求12所述的计算机系统的存储器管理方法,其中
提供一个与上述第一步骤并行的步骤,即在所述非易失性存储单元的预定大小的物理地址中存储的多个程序中的每一个程序中,输入与所述主存储单元的物理地址相对应的逻辑地址、逻辑地址总数、程序数据大小和保护模式。
15.如权利要求11至权利要求14中任何一个所述的计算机系统的存储器管理方法,其中
提供一个与上述第一步骤并行的步骤,即,使得所述非易失性存储单元中存储的程序之中的经历了预定数据转换的程序经历按固定时间间隔的内容不同的预定转换。
16.一种存储器管理程序,用于使得对被构造为将存储在非易失性存储单元中的程序传送到主存储单元的计算机系统的操作进行控制的计算机执行以下过程:
将所述经历过预定数据转换的程序和所述尚待经历预定数据转换的程序存储在所述非易失性存储单元中的过程;
在所述系统启动之后存在OS和应用的存储器访问时可操作的过程,该过程将存储在所述非易失性存储单元中的所述程序中的经历过预定数据转换的程序传送到所述主存储单元,以执行该预定数据转换的逆向转换;
将存储在所述非易失性存储单元中的所述程序的物理地址改变为所述主存储单元的物理地址的过程;以及
分配多个逻辑块的容量,用于对包括分配给存储在所述非易失性存储单元中的所述程序的预定容量的一个物理地址的块中的数据进行展开的过程。
17.如权利要求16所述的存储器管理程序,其使得所述计算机执行以下过程:
对存储在所述非易失性存储单元中的经历过预定数据转换的所述程序,统一地设定保护模式NULL的过程;以及
在所述计算机系统启动之后发生OS和应用的存储器访问时可操作的过程,该过程将所述主存储单元上的物理地址分配给存储在所述非易失性存储单元中的并且经历过预定数据转换的所述程序。
18.如权利要求16或权利要求17所述的存储器管理程序,其使得所述计算机还执行以下过程,即在所述非易失性存储单元的预定大小的物理地址中存储的多个程序中的每一个程序中,输入与所述主存储单元的物理地址相对应的逻辑地址、逻辑地址总数和程序数据大小。
19.如权利要求16或权利要求17所述的存储器管理程序,其使得所述计算机执行以下过程,即在所述非易失性存储单元的预定大小的物理地址中存储的多个程序中的每一个程序中,输入与所述主存储单元的物理地址相对应的逻辑地址、逻辑地址总数、程序数据大小和保护模式。
20.如权利要求16、权利要求17、权利要求18或权利要求19所述的存储器管理程序,其使得所述计算机执行以下过程,即,使得所述非易失性存储单元中存储的所述程序之中的经历了预定数据转换的程序再经历按固定时间间隔的内容不同的预定转换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP104932/2005 | 2005-03-31 | ||
JP2005104932 | 2005-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101180612A true CN101180612A (zh) | 2008-05-14 |
Family
ID=37073628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800107638A Pending CN101180612A (zh) | 2005-03-31 | 2006-03-30 | 计算机系统、存储器管理方法及其程序 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8930659B2 (zh) |
EP (1) | EP1873647A4 (zh) |
JP (1) | JP5071798B2 (zh) |
CN (1) | CN101180612A (zh) |
TW (1) | TW200707193A (zh) |
WO (1) | WO2006107095A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102088349A (zh) * | 2010-12-27 | 2011-06-08 | 深圳市安捷信联科技有限公司 | 一种智能卡个人化的方法及系统 |
CN102460384A (zh) * | 2009-06-02 | 2012-05-16 | 株式会社普存微软 | 程序、控制方法以及控制装置 |
CN102687113A (zh) * | 2009-11-17 | 2012-09-19 | 株式会社普存微软 | 程序、控制方法以及控制装置 |
CN102884513A (zh) * | 2010-05-18 | 2013-01-16 | 微软公司 | 用于直接附接的存储设备的会话 |
CN105122219A (zh) * | 2013-04-11 | 2015-12-02 | 国际商业机器公司 | 跨具有不同分配尺寸的存储器迁移数据 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1873647A4 (en) * | 2005-03-31 | 2009-01-28 | Nec Corp | COMPUTER SYSTEM, MEMORY MANAGEMENT METHOD, AND CORRESPONDING PROGRAM |
US7685360B1 (en) | 2005-05-05 | 2010-03-23 | Seagate Technology Llc | Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device |
US7916421B1 (en) * | 2005-05-05 | 2011-03-29 | Seagate Technology Llc | Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device |
US8250350B2 (en) * | 2008-08-26 | 2012-08-21 | Texas Digital And Multimedia Systems | Computer system with non-volatile write-protected memory based operating system and secure system architecture |
US8527749B2 (en) * | 2009-11-11 | 2013-09-03 | International Business Machines Corporation | User device, computer program product and computer system for system for secure network storage |
US9448938B2 (en) | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
US8694737B2 (en) * | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
JP5707870B2 (ja) * | 2010-11-02 | 2015-04-30 | 富士ゼロックス株式会社 | 情報処理装置及び記憶媒体 |
TWI492051B (zh) | 2012-09-05 | 2015-07-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
KR20140065196A (ko) * | 2012-11-21 | 2014-05-29 | 삼성전자주식회사 | 메모리 시스템 및 그 구동 방법 |
US10565099B2 (en) * | 2012-12-28 | 2020-02-18 | Apple Inc. | Methods and apparatus for compressed and compacted virtual memory |
US10175894B1 (en) | 2014-12-30 | 2019-01-08 | EMC IP Holding Company LLC | Method for populating a cache index on a deduplicated storage system |
US10289307B1 (en) * | 2014-12-30 | 2019-05-14 | EMC IP Holding Company LLC | Method for handling block errors on a deduplicated storage system |
US20160291887A1 (en) * | 2015-03-30 | 2016-10-06 | Kabushiki Kaisha Toshiba | Solid-state drive with non-volatile random access memory |
KR102402783B1 (ko) * | 2015-05-11 | 2022-05-27 | 삼성전자 주식회사 | 전자 장치 및 이의 페이지 병합 방법 |
JP6736456B2 (ja) * | 2016-11-17 | 2020-08-05 | キオクシア株式会社 | 情報処理装置およびプログラム |
JP6732684B2 (ja) | 2017-03-15 | 2020-07-29 | キオクシア株式会社 | 情報処理装置、ストレージデバイスおよび情報処理システム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04284551A (ja) * | 1991-03-14 | 1992-10-09 | Fujitsu Ltd | 圧縮データを格納した読み出し専用メモリを備えた装置 |
JPH05324476A (ja) * | 1992-05-21 | 1993-12-07 | Oki Electric Ind Co Ltd | ディスクキャッシュ装置 |
JPH08235329A (ja) * | 1995-02-24 | 1996-09-13 | Ricoh Co Ltd | データ管理方法 |
US5940871A (en) * | 1996-10-28 | 1999-08-17 | International Business Machines Corporation | Computer system and method for selectively decompressing operating system ROM image code using a page fault |
US6332172B1 (en) * | 1998-05-29 | 2001-12-18 | Cisco Technology, Inc. | Method and system for virtual memory compression in an embedded system |
JP4411703B2 (ja) | 1999-09-17 | 2010-02-10 | ソニー株式会社 | 情報処理装置および方法、並びに記録媒体 |
JP2001092671A (ja) * | 1999-09-24 | 2001-04-06 | Hitachi Ltd | プログラム実行最適化方法、プログラム管理装置およびプログラム実行装置 |
JP2001166945A (ja) * | 1999-12-09 | 2001-06-22 | Mitsubishi Electric Corp | 半導体装置及び圧縮プログラムの生成方法 |
JP3574078B2 (ja) | 2001-03-16 | 2004-10-06 | 東京エレクトロンデバイス株式会社 | 記憶装置と記憶装置制御方法 |
JP2002318696A (ja) * | 2001-04-23 | 2002-10-31 | Mitsubishi Electric Corp | プログラム実行装置および方法 |
US7558958B2 (en) * | 2002-06-13 | 2009-07-07 | Microsoft Corporation | System and method for securely booting from a network |
JP3906825B2 (ja) * | 2003-06-17 | 2007-04-18 | 日本電気株式会社 | 計算機システム、計算機システム起動方法およびプログラム |
JP2005018418A (ja) * | 2003-06-26 | 2005-01-20 | Konica Minolta Business Technologies Inc | 画像形成装置 |
GB2404748B (en) * | 2003-08-01 | 2006-10-04 | Symbian Ltd | Computing device and method |
EP1873647A4 (en) * | 2005-03-31 | 2009-01-28 | Nec Corp | COMPUTER SYSTEM, MEMORY MANAGEMENT METHOD, AND CORRESPONDING PROGRAM |
-
2006
- 2006-03-30 EP EP06731222A patent/EP1873647A4/en not_active Withdrawn
- 2006-03-30 JP JP2007511258A patent/JP5071798B2/ja active Active
- 2006-03-30 US US11/909,883 patent/US8930659B2/en active Active
- 2006-03-30 WO PCT/JP2006/307274 patent/WO2006107095A1/ja active Application Filing
- 2006-03-30 CN CNA2006800107638A patent/CN101180612A/zh active Pending
- 2006-03-31 TW TW095111370A patent/TW200707193A/zh unknown
-
2014
- 2014-12-04 US US14/560,712 patent/US9678862B2/en active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102460384A (zh) * | 2009-06-02 | 2012-05-16 | 株式会社普存微软 | 程序、控制方法以及控制装置 |
CN102687113A (zh) * | 2009-11-17 | 2012-09-19 | 株式会社普存微软 | 程序、控制方法以及控制装置 |
CN102884513A (zh) * | 2010-05-18 | 2013-01-16 | 微软公司 | 用于直接附接的存储设备的会话 |
CN102884513B (zh) * | 2010-05-18 | 2016-05-18 | 微软技术许可有限责任公司 | 用于直接附接的存储设备的会话 |
CN102088349A (zh) * | 2010-12-27 | 2011-06-08 | 深圳市安捷信联科技有限公司 | 一种智能卡个人化的方法及系统 |
CN102088349B (zh) * | 2010-12-27 | 2013-07-10 | 深圳市国民电子商务有限公司 | 一种智能卡个人化的方法及系统 |
CN105122219A (zh) * | 2013-04-11 | 2015-12-02 | 国际商业机器公司 | 跨具有不同分配尺寸的存储器迁移数据 |
CN105122219B (zh) * | 2013-04-11 | 2017-11-14 | 国际商业机器公司 | 跨具有不同分配尺寸的存储器迁移数据的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20150089117A1 (en) | 2015-03-26 |
US8930659B2 (en) | 2015-01-06 |
US20090158000A1 (en) | 2009-06-18 |
EP1873647A4 (en) | 2009-01-28 |
TW200707193A (en) | 2007-02-16 |
JPWO2006107095A1 (ja) | 2008-10-02 |
WO2006107095A1 (ja) | 2006-10-12 |
US9678862B2 (en) | 2017-06-13 |
JP5071798B2 (ja) | 2012-11-14 |
EP1873647A1 (en) | 2008-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101180612A (zh) | 计算机系统、存储器管理方法及其程序 | |
US9910602B2 (en) | Device and memory system for storing and recovering page table data upon power loss | |
CN102855193B (zh) | 非易失性存储系统中未使用的逻辑地址的挂载时去映射 | |
JP5351046B2 (ja) | フラッシュメモリシステムの高速起動を容易にする方法およびシステム | |
US7783851B2 (en) | Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices | |
US10248322B2 (en) | Memory system | |
CN101937319B (zh) | 存储器系统及其映射方法 | |
TWI460588B (zh) | Memory management device and memory information processing device | |
TWI533152B (zh) | 資料儲存裝置及方法 | |
CN1938670A (zh) | 双媒体存储装置 | |
US8930732B2 (en) | Fast speed computer system power-on and power-off method | |
CN102289409B (zh) | 分层可伸缩的存储器分配器 | |
CN102460384A (zh) | 程序、控制方法以及控制装置 | |
US20070150645A1 (en) | Method, system and apparatus for power loss recovery to enable fast erase time | |
CN101506793A (zh) | 在动态虚拟记忆中运行操作系统 | |
KR101826047B1 (ko) | 저장 장치 및 그 구동 방법 | |
US6928456B2 (en) | Method of tracking objects for application modifications | |
JP2012252576A (ja) | 情報処理装置、起動方法およびプログラム | |
KR20160105624A (ko) | 데이터 처리 시스템 및 그것의 동작 방법 | |
CN102693191A (zh) | 半导体器件和存储器保护方法 | |
TW201222249A (en) | Storage device | |
KR101392062B1 (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
CN102687113A (zh) | 程序、控制方法以及控制装置 | |
CN101008923A (zh) | 面向异构多核体系的分段式存储空间管理方法 | |
JP2001067881A (ja) | 連想記憶装置及び記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20080514 |