CN101957801B - 信息处理设备和信息处理方法 - Google Patents

信息处理设备和信息处理方法 Download PDF

Info

Publication number
CN101957801B
CN101957801B CN201010138407.2A CN201010138407A CN101957801B CN 101957801 B CN101957801 B CN 101957801B CN 201010138407 A CN201010138407 A CN 201010138407A CN 101957801 B CN101957801 B CN 101957801B
Authority
CN
China
Prior art keywords
storage capacity
memory
processing
storage
tlb
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.)
Active
Application number
CN201010138407.2A
Other languages
English (en)
Other versions
CN101957801A (zh
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Publication of CN101957801A publication Critical patent/CN101957801A/zh
Application granted granted Critical
Publication of CN101957801B publication Critical patent/CN101957801B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

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)

Abstract

本发明提供信息处理设备和信息处理方法。一种信息处理设备包括:存储器,其存储用于唯一地识别一个处理的处理标识符、作为所述处理中可用的存储空间的地址的虚拟地址、与该虚拟地址相对应的物理地址、和分配给所述处理的连续存储容量,从而使得它们彼此关联;以及存储容量设置部分,当将一个处理改变为可执行状态时,该存储容量设置部分设置将被存储在所述存储器中的所述连续存储容量。所述存储容量设置部分基于以下各项来确定所述连续存储容量:所述处理需要的存储容量;物理存储器中未使用的连续区域的存储容量;和基于取决于计算机中的中央处理器的存储大小的限制的存储容量。

Description

信息处理设备和信息处理方法
技术领域
本发明涉及一种信息处理设备和一种信息处理方法。
背景技术
存在一种虚拟存储器技术,该技术使用比安装在计算机中的主存储器(真实的存储器)容量更大的存储空间。当执行从虚拟存储器读出的程序时,要求虚拟存储器的地址(虚拟地址)转换为主存储器的地址(真实的地址)。
例如,专利文献1(JP-A-2000-276404)公开了以下技术。专利文献1所公开的技术的一个目的是通过使用可变长度页面来抑制错误的出现从而提高程序的运行速度。当在TLB中不存在用户程序参照的虚拟地址时,启动一个TLB不存在页面检测装置。其后,TLB不存在页面检测装置启动一个TLB不存在页面替代装置,并且该TLB不存在页面替代装置启动一个页面配置参照装置。通过该页面配置参照装置,从页面配置存储部分中获取与用户程序所参照的虚拟地址相对应的页面信息,并且将其存储在TLB中。因此,用户程序可参照虚拟地址。而且,根据需要,用户程序命令页面分割装置和页面结合装置来执行页面分割和页面结合。
而且,例如,专利文献2(JP-A-2009-020881)公开的技术的一个目的是提供能够安装可变页面大小的系统。专利文献2公开了一种处理系统,包括:页面表,页面表包括多个页面表条目,每一页面表条目均包括相应的虚拟地址页面的存储器页面大小信息;TLB,用于对包括相应的存储器页面大小信息的多个页面表条目的信息进行高速缓存;以及存储器管理软件,其响应于页面表中的改变以将相邻的页面表条目结合到具有较大的存储器页面大小的一个或多个页面表条目中,并且其更新与所结合的相邻的页面表条目相对应的条目。
而且,例如,专利文献3(JP-A-11-238015)公开的技术的一个目的是降低TLB出错频率并且改善处理的运行速度和实时效率。专利文献3公开了一种具有存储地址转换信息的TLB的计算机,在TLB中,逻辑页面号码和物理页面号码彼此匹配。该计算机包括一个TLB条目设置装置,当TLB由于参照TLB中未存储的逻辑地址而出错时,TLB条目设置装置基于使得TLB出错的处理的优先级来改变TLB中设置的地址转换信息的数量。
发明内容
本发明的一个目的是提供一种信息处理设备和信息处理方法,当将一个处理的虚拟空间与物理地址相匹配以将所述处理改变为可执行状态时,所述信息处理设备和信息处理方法基于预先设置的固定分割单位抑制该匹配。
[1]根据本发明的一个方面,一种信息处理设备包括:存储器,其存储用于唯一地识别一个处理的处理标识符、作为所述处理中可用的存储空间的地址的虚拟地址、与该虚拟地址相对应的物理地址、和分配给所述处理的连续存储容量,从而使得它们彼此关联;以及存储容量设置部分,当将一个处理改变为可执行状态时,该存储容量设置部分将所述连续存储容量设置为存储在所述存储器中。所述存储容量设置部分基于以下各项来确定所述连续存储容量:所述处理需要的存储容量、物理存储器中未使用的连续区域的存储容量、和基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
[2]根据[1]的信息处理设备,所述处理需要的存储容量可包括当执行所述处理时动态分配的动态存储器的存储容量、或在多个处理之间使用的共享存储器的存储容量。
[3]根据[1]的信息处理设备,当在将所述处理改变为可执行状态之后需要在执行所述处理时动态分配的动态存储器的存储容量、或在多个处理之间使用的共享存储器的存储容量时,所述存储容量设置部分可基于以下各项来确定将被存储在所述存储器中的连续存储容量:所述动态存储器或所述共享存储器的存储容量、所述物理存储器中未使用的连续区域的存储容量、和基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
[4]根据[2]的信息处理设备,当在将所述处理改变为可执行状态之后确保用作所述动态存储器或所述共享存储器的存储容量不足时,所述存储容量设置部分可基于以下各项来设置将被存储在所述存储器中的连续存储容量:从所述处理请求的所述动态存储器或所述共享存储器的存储容量、所述物理存储器中未使用的连续区域的存储容量、和基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
[5]根据[1]至[4]任一项所述的信息处理设备,当不能为虚拟地址或物理地址设置确定的存储容量时,所述存储容量设置部分可再次确定存储容量。
[6]根据本发明的另一个方面,一种信息处理方法包括:存储用于唯一地识别一个处理的处理标识符、作为所述处理中可用的存储空间的地址的虚拟地址、与该虚拟地址相对应的物理地址、和分配给所述处理的连续存储容量,从而使得它们彼此关联;以及当将一个处理改变为可执行状态时,设置所确定的连续存储容量。基于以下各项来确定在设置所确定的连续存储容量的步骤中所设置的所述连续存储容量:所述处理需要的存储容量、物理存储器中未使用的连续区域的存储容量、和基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
根据[1]的结构,当将一个处理的虚拟空间与物理地址相匹配以将所述处理改变为可执行状态时,可基于预先设置的固定分割单位抑制该匹配。
根据[2]的结构,还针对动态存储器或共享存储器,当将所述处理的虚拟空间与物理地址相匹配时,可基于预先设置的固定分割单位抑制该匹配。
根据[3]的结构,即使在将一个处理改变为可执行状态之后,当将所述处理的虚拟空间与物理地址相匹配时,也针对动态存储器或共享存储器,可基于预先设置的固定分割单位抑制该匹配。
根据[4]的结构,当预先确保的动态存储器或共享存储器的存储容量不足时,当将所述处理的虚拟空间与物理地址相匹配时,针对动态存储器或共享存储器,可基于预先设置的固定分割单位抑制该匹配。
根据[5]的结构,可抑制虚拟地址或物理地址不能被设置的状态。
根据[6]的结构,当将所述处理的虚拟空间与物理地址相匹配以将所述处理改变为可执行状态时,可基于预先设置的固定分割单位抑制该匹配。
附图说明
以下将参照附图来详细说明本发明的示例性实施例,其中:
图1是示出了用于实现本示例性实施例的硬件的结构示例中的概念性模块结构的示图。
图2是示出了本示例性实施例的结构示例中的概念性模块结构的示图。
图3是示出了在存储器中物理空间和虚拟空间彼此关联的示例的示意图。
图4是示出了TLB的数据结构示例的示意图。
图5是示出了TLB出错例外的处理示例的示意图;
图6A和图6B是示出了TLB出错例外的处理中的TLB的改变的示例的示意图;
图7是示出了本示例性实施例中的处理示例的流程图;
图8是示出了本示例性实施例中的处理示例的流程图;
图9是示出了本示例性实施例中的处理示例的流程图;以及
图10是示出了用于实现本示例性实施例的计算机的硬件结构示例的框图。
具体实施方式
首先,在描述示例性实施例之前,将描述前提或利用本示例性实施例的虚拟存储器。而且,该说明的目的是使得本示例性实施例易于理解。
虚拟存储器是可以被认为是可由计算机系统的用户(处理)使用的主存储器的存储空间,并且虚拟地址被映射到实际地址。
在使用一个处理的多处理系统中,生成了对于每一处理都独立的虚拟存储空间。使得虚拟存储空间与物理上存在的物理存储空间相匹配,并且作为一个处理工作的一个应用仅使用虚拟存储空间的地址工作。另外,该处理调用该操作系统(OS)中的程序的执行单元。即,OS控制处理单元中的程序的执行。
使用该虚拟存储方法以实现以下事项。
(1)由于每一处理存在于不同的存储空间中,因此可防止每一处理与其它处理错误地冲突。而且,由于不能非法地访问或重写数据,因此可保证安全。
(2)开发者可在不考虑实际的物理存储量或实际地址的情况下开发应用。
另一方面,在分配给每一处理的虚拟空间和对应的物理空间之间进行转换是必要的。当一个处理访问虚拟地址时,应该通过特定方法将访问目的的地址转换为物理地址。另外,需要在物理存储器中管理用于执行转换的虚拟地址和物理地址之间的映射表。需要通过CPU或OS或安装在这二者上的MMU(存储器管理单元)来执行对映射表的这种地址转换处理和管理。
通常,在CPU中准备用于有效地执行存储器转换的TLB(转换旁视缓冲器)。由于在TLB中存储有虚拟地址和物理地址的映射信息,因此,当出现对虚拟地址的访问时,CPU执行TLB中的搜索并且其后将虚拟地址转换为物理地址。
然而,由于存在对TLB的物理大小或成本的限制,因此,难以存储全部映射信息(例如,PowerPC(注册商标)440的TLB为64个条目)。因此,TLB中不会有将被搜索的虚拟地址。如果TLB中没有被搜索的虚拟地址,则CPU使得例外(TLB出错例外)出现,从而OS更新TLB。在TLB出错例外处理中,OS从物理存储器中管理的映射表中搜索与所请求的虚拟地址相对应的物理地址,其后更新TLB。当CPU从例外处理返回时,CPU使用TLB执行地址转换以将虚拟地址转换为物理地址(参见图5、图6A和图6B)。
从历史情况中看,很多OS以被称作页面的单位(4KB)来管理映射信息。如果执行对2GB的虚拟空间的连续访问,则TLB出错例外至少出现(2×1024×1024×1024)÷(4×1024)=524288次。由于TLB出错例外处理是使用OS的软件处理,因此,出现与524288次相对应的开销。另外,由于被执行的程序自身在虚拟地址处工作,因此还会出现用于程序执行的地址转换处理所引起的额外开销。这些开销直接影响了应用的表现。
为了减小开销,优选的是简单地增大页面大小。如果页面单位被设置为1MB,则TLB出错例外至少的出现被减小到(2×1024×1024×1024)÷(1×1024×1024)=2048次。然而,由于如果页面大小提高则存储器管理单元被扩大,因此存储空间被碎片化,或者不能被使用的无用的区域增大。因此,在具有有限存储容量的集成系统中,难以采用以上方法。而且,由于在大多数OS中页面单位被设置为4KB,因此大量存在在假设页面单位为4KB的情况下制成的软件。
而且,作为另一改进的方法,存在一种有效利用CPU的TLB的方法。例如,当TLB不仅支持虚拟地址和物理地址的映射信息,还支持映射区域的大小指定时,可将连续区域的映射信息共同登记在一个TLB中。通常,一个页面的映射信息被分配给一个TLB。如果一个TLB中的条目的数量不是64,则在TLB中最多只能登记64个页面(4KB×64=256KB)。然而,如果可针对TLB设置较大的大小,则可通过将连续区域的多个页面集中登记在一个TLB来映射较大区域。如果256个页面的区域连续,则可在一个TLB中映射1MB的空间。因此,不仅TLB可被保存,还可抑制TLB出错例外的出现。
然而,在该方法中,存在一些限制。首先,关于到TLB的大小指定,由于CPU对存储器大小的限制,因此可设置的值有限。
例如,在PowerPC(注册商标)440的情况下,可从1KB、4KB、16KB、64KB、256KB、1MB、16MB、256MB和1GB中选择大小。
另外,一个区域的虚拟地址和物理地址需要以指定的大小对准。另外,要被映射的区域应该是连续的区域。因此,如果不是预先以统计方式决定存储器映射的系统,则难以采用该方法。而且,在为不连续区域动态地生成存储器映射的处理中不能保证效果。尤其是,当在要求了固定性能(deterministic performance)的集成系统中执行多个处理时,在该方法中不能保证对性能的预测。
之后,将参照附图来描述适于实现本发明的示例性实施例的示例。
图1是示出了用于实现本示例性实施例的结构示例中的概念性模块结构的示图。
另外,模块通常指的是逻辑上可分离的部件,诸如软件(计算机程序)和硬件。因此,本示例性实施例的模块不仅指示计算机程序的模块,还指示硬件结构的模块。因此,在本示例性实施例中,还要对计算机程序、系统和方法进行说明。另外,为了便于说明,使用“存储”、“使之被存储”和意义等同的词,并且这些词表示在一存储装置中进行存储,或者当示例性实施例是计算机程序时进行控制以在一存储装置中进行存储。另外,一个模块以一对一方式对应于一个函数。然而,可使用一个程序实现一个模块,或可使用一个程序实现多个模块。可选地,可使用多个程序来实现一个模块。另外,可由一个计算机执行多个模块,或者可在分布式环境或并行环境中用多个计算机执行一个模块。另外,一个模块中可包括其它模块。另外,以下指出的“连接”不仅被用于物理连接,还被用于逻辑连接(例如,传输和接收数据、指令、和数据之间的参照关系)。
另外,可通过经由诸如网络(包括一对一的通信连接)之类的通信单元将多个计算机、硬件、设备等彼此连接来实现一个系统或一个设备,或者使用一个计算机、硬件和设备来实现一个系统或一个设备。所述“设备”和“系统”被用作同义词。“预先设置”指的是在目标处理之前进行的设置,并且根据本示例性实施例的处理开始当时的情况和状态或直到在目标处理之前的情况和状态,被用作不仅包括在本示例性实施例的处理开始之前进行的设置,还包括在本示例性实施例的处理开始之后进行的设置。而且,尽管使用了术语“管理”,那么根据上下文其被用于表示“控制”、“管理”或“存储数据用于控制或管理”。
之后,作为主要示例,将描述一个嵌入OS,更具体地讲,一个不执行页面调度处理(当主存储装置上不存在执行所需的程序或数据时,在存在于主存储装置上的程序或数据以及存在于辅助存储装置上的所需程序或数据之间进行交换的处理)的OS。
在动态地生成存储空间的多处理环境中,作为本示例性实施例的信息处理设备使用TLB与MMU关联。作为硬件结构的示例,信息处理设备包括如图1所示的CPU 110、物理存储器120、I/O空间130、和ROM 140。这些部件通过总线190彼此连接。
作为存储空间,物理存储器120被分配给0x8_0000_0000至0x8_1FFF_FFFF,I/O空间130被分配给0x2_E000_0000至0x2_E01F_FFFF,并且ROM 140被分配给0x7_F000_0000至0x7_FFFF_FFFF。另外,“0x”指示后续的数字以十六进制表示,并且每4位十六进制数字插入符号“-”。
CPU 110具有高速缓存112、TLB 114、和MMU 116。
使用高速缓存112以提高在CPU 110和物理存储器120等之间进行数据传输的效率。
TLB 114是存储装置,其存储了用于唯一地识别处理的处理标识符、作为在该处理中可使用的存储空间的地址的虚拟地址、与该虚拟地址相对应的物理地址、和分配给该处理的连续存储空间的容量,使它们彼此关联。例如,存储了如图4所示的TLB 400。
图4是示出了TLB 400的数据结构示例的示意图。这里,示出了条目的数量为64的示例。
TLB 400具有条目号栏402、虚拟地址栏404、物理地址栏406、处ID栏408、大小栏410、和属性栏412。
条目号栏402存储有用于识别TLB 400中唯一标识了条目的条目号。
虚拟地址栏404存储了一个处理中的虚拟地址。
物理地址栏406存储了与虚拟地址相对应的物理存储器120等的地址。例如,如图4所示,条目号0和60被分配给物理存储器120,并且条目1和2被分配给I/O空间130。
处理ID栏408存储有用于在使用TLB 400的OS下唯一识别处理的处理ID,并且该处理使用存储在虚拟地址栏404中的虚拟地址操作。
大小栏410存储有分配给物理地址的虚拟地址的大小。即,为与该大小相对应的连续区域分配存储在虚拟地址栏404和物理地址栏406中的虚拟地址和物理地址。
属性栏412存储有关于所分配的存储器的属性。具体而言,无论高速缓存112是否被使用,属性栏412都存储有例如关于存储器的主管访问权(读(R)、写(W)、执行(E))、和关于存储器的用户访问权(读(R)、写(W)、执行(E))。例如,如图4所示,条目号0表示高速缓存112被使用、并且主管访问权是R/W/E、并且没有用户访问权,条目号1和2表示高速缓存112未被使用、并且主管访问权是R/W/E、并且没有用户访问权,条目号60表示高速缓存112被使用、并且主管访问权是R/W/E、并且用户访问权是R/W/E。另外,在图4所示的示例中,处理ID为0的处理是以主管模式操作的处理,并且处理ID为1和2的处理是以用户模式操作的处理。
MMU 116执行从虚拟地址到物理地址的地址转换的处理和TLB114的管理。另外,以下将描述的使用MMU 116的处理可由包括MMU 116的CPU 110(OS)执行,或者可由CPU 110(OS)执行。
当将处理改变为可执行状态时,设置TLB 114中与处理相对应的存储容量。这里,基于处理需要的存储容量、物理存储器120中的未使用的连续区域的存储容量、和基于取决于CPU 110的存储大小的限制所确定的存储容量来确定这些存储容量。而且,在此句中,四类存储容量表现为“存储空间”,并且它们的意义如下。(1)“处理需要的存储容量”指的是该处理所使用的存储区。作为特定示例,以下将描述的文本/bss/数据区等彼此对应。(2)“物理存储器120中未使用的连续区域的存储容量”指的是该系统中的物理存储器120的连续的空容量。(3)“取决于CPU 110的存储大小的限制”涉及TLB 114中设置的可适应的存储大小。(4)“TLB 114中与处理相对应的存储容量”涉及TLB 114中可实际设置的存储大小(大小栏410),并且设置了“确定的存储容量”。另外,“设置了TLB 114中与处理相对应的存储容量”涉及TLB 114的一个条目中的存储容量。
作为MMU 116所使用的处理所需的存储容量,可包括在执行所述处理时动态地分配的动态存储器的存储容量、或多个处理之间所使用的共享存储器的存储容量。即,针对将处理改变为可执行状态的情况,不仅准备作为在执行处理之前预先设置的数据容量的静态数据,而且准备共享存储器和数据量改变的且在执行该处理时需要的动态数据。例如,处理的程序的程序员可以在程序中设置被预先设置为动态数据和共享存储器的所需要的存储容量,并且当将该处理改变为可执行状态时,MMU 116可分析该设置,并且在TLB 114中设置物理地址。
在将处理改变为可执行状态之后执行该处理时需要动态存储器或共享存储器的存储容量的情况下,MMU 116可基于动态存储器或共享存储器的存储容量、物理存储器中未使用的连续区域的存储容量、和基于取决于CPU 110的存储大小的限制确定的存储容量来在TLB 114中设置与该处理相对应的存储容量。即,这对应于在处理被执行的同时额外需要动态存储器或其共享存储器的情况。
当在将处理改变为可执行状态之后确保作为动态存储器或共享存储器的存储器的存储容量不足时,MMU 116可基于从该处理请求的动态存储器或共享存储器的存储容量、物理存储器中未使用的连续区域的存储容量、和基于取决于CPU 110的存储大小的限制确定的存储容量来在TLB 114中设置与该处理相对应的存储容量。即,当将处理改变为可执行状态时,还针对设置的存储容量不足的情况(例如,程序的程序员设置所需的最小存储容量、但是实际需要大于所设置的存储容量的存储容量的情况)来准备动态数据和共享存储器。
当不能为虚拟地址或物理地址设置确定的存储容量时,MMU116可再次确定存储容量。即,这针对的是当在TLB 114中设置存储容量之后试图设置物理地址或虚拟地址时,不能为虚拟地址或物理地址设置存储容量的情况。
图2是示出了本示例性实施例的结构示例中的概念性模块结构的示图。
OS 200具有内核210。内核210具有装载器220、MMU 230和TLB处理器240。装载器220响应于用户操作或来自于另一处理的指令将处理改变为可执行状态。即,装载器220用于启动处理。例如,在C语言等中,其对应于执行一个main()函数。在此情况下,需要将该处理中所使用的虚拟地址和物理地址彼此匹配。因此,MMU 230被用于执行对TLB 114的设置。另外,在图2的示例中,示出了开始处理1 290和处理2 295之后的状态。
MMU 230使TLB处理器240基于来自装载器220的指令执行对TLB 114的设置,从而基于TLB 114执行处理执行中的地址转换。而且,当在执行处理1 290和处理2 295期间需要动态存储器或共享存储器时,MMU 230使TLB处理器240执行对TLB 114的设置。TLB处理器240基于来自MMU 230的指令执行对TLB 114的设置。
图3是示出了在存储器中物理空间和虚拟空间彼此关联的示例的示意图。物理空间和虚拟空间通过图4所示的TLB 400彼此匹配。
处理1虚拟空间370具有文本/bss/数据区372和堆(heap)区374。
文本/bss/数据区372是静态数据的区域,并且被分配给物理存储器300的被确保的物理区304。另外,文本区是程序代码区域,bss(Block Starting with Symbol(以符号启始的块))区是不具有初始值的全局变量的区域,并且数据区是需要初始化的数据的区域。
堆区374是动态数据的区域,并且被分配给物理存储器300的确保物理区。
处理2虚拟空间380具有文本/bss/数据区382、共享存储区384、和堆区386。不同于处理1虚拟空间370,处理2虚拟空间380具有共享存储区384以执行与另一处理的通信。文本/bss/数据区382、共享存储区384、和堆区386被分别分配给物理存储器300的被确保的物理区308、被确保的物理区310、和被确保的物理区312。
内核虚拟空间360具有内核的文本/bss/数据区和堆区362、共享存储区364、I/O访问366和ROM 368。
内核的文本/bss/数据区和堆区362和共享存储区364被分别分配给物理存储器300的被确保的物理区302和被确保的物理区310。I/O访问366被分配给I/Q空间340,而ROM 368被分配给ROM 350。
图5是示出了TLB出错例外的处理示例的示意图。如上所述,该处理是当访问TLB 114中未设置的虚拟地址的处理。
在步骤S502中,在用户模式520下,处理1访问TLB 114中不存在的0×4000_4000。
在步骤S504中,出现TLB出错例外。即,出现中断,并且控制从用户模式520移动到主管模式510。
在步骤S506中,TLB处理器240删除TLB 114中最老的条目并且将与出现TLB出错例外的逻辑地址相对应的物理地址的信息添加到TLB 114。其后,该处理从中断返回,并且控制从主管模式510移动到用户模式520。另外,为了确定条目是否是老的,可在TLB 400中提供存储有使用时间和设置时间的栏。
图6A和图6B是示出了TLB出错例外的处理中的TLB 400的改变示例的示意图。由于TLB 400中最老的条目是条目号63,因此用新条目610替代最老的条目(例如,设置处理ID1中断虚拟地址0×4000_4000和与该虚拟地址相对应的物理地址0×8_1004_4000)。另外,MMU 230把包括TLB 400中的(当将诸如新条目610之类的处理改变为可执行状态时设置的)条目的页面表存储在主存储器中,并且当TLB出错例外处理出现时执行页面表的一部分和TLB 400之间的交换。
在步骤S508中,当在用户模式520下处理1再次访问0×4000_4000时,由于TLB的条目已被重写,因此正常访问是可能的。即,由于条目号63中有一个虚拟地址0×4000_4000,因此处理1基于其恢复处理。
图7至图9是示出了本示例性实施例中的处理示例的流程图。另外,当将处理改变为可执行状态时,执行处理的此示例。
在步骤S702中,装载器220创建处理ID。即,为了将该处理改变为可执行状态,创建用于在执行一个程序的执行对象时唯一地识别一个处理的处理ID。
在步骤S704中,创建该处理的空页面表。为了创建TLB 400,在主存储器中创建具有与TLB 400相同的结构的页面表。在此情况下,条目数量大于TLB 400,并且不需要限制该数量。
在步骤S706中,创建了一个处理的一个空的虚拟逻辑空间。为了创建TLB 400,在主存储器中创建用于管理该虚拟逻辑空间的表(例如,一个处理ID与分配给该处理的存储地址的对应关系)。
在步骤S708中,解释要被装载的执行对象(例如,ELF(可执行链接格式)图像)。例如,从该执行对象中提取图3中所示的文本/bss/数据区372。即,确定作为静态数据的文本、bss和数据区的所需大小。这变为该处理所需的存储大小(当堆区和共享存储器不是必需时所需的存储大小自身)的一部分。
在步骤S710中,确定TLB 400中要被设置的大小(大小栏410)。即,确定该处理所需的静态数据的存储区的连续存储大小。在此情况下,确定存储大小,从而所使用的TLB 400中的条目的数量下降(即,要被确保的连续存储大小增加),并且碎片化的大小减小。这里,被确定使得碎片化的大小减小的存储大小指示物理存储器中未使用的连续区域的存储大小、和基于取决于CPU 110的存储大小的限制而确定的存储大小。另外,还可节约存储器(不设置非必要的大于一个处理的所需存储大小的存储大小)。
而且,当该处理从步骤S714或步骤S718返回时,存储大小被改变为比预先确定的存储大小更小。
在步骤S712中,根据对在步骤S710中确定的存储大小的对准来在连续区域中确保用于装载ELF图像等的物理空间。这里,出现了不能确保基于该对准的连续区域的情况。这是因为在步骤S710中基于的物理空间的未使用的区域的大小确定存储大小,但是未确定连续区域是否基于该对准。
在步骤S714中,确定是否可确保物理空间。当可确保物理空间时,该处理前进到步骤S716。在其他情况下,重复从步骤S710开始的处理。
在步骤S716中,根据对步骤S710中确定的大小的对准,在连续区域中确保用于装载ELF图像等的逻辑空间。这里,会出现不能确保基于该对准的连续区域的情况。这是因为在步骤S710中,未确定是否存在逻辑空间的未使用区域的大小以及该连续区域是否基于对准。而且,当多个处理使用一个虚拟逻辑空间时(即,当多个处理被布置在该虚拟逻辑空间中时),确保不在另一处理或其自己的处理中已被确保的虚拟空间中使存储器重叠。另外,在为每一处理设置虚拟空间的OS的情况下,不允许与另一处理重叠。因此,优选的是,确保该虚拟空间,从而不在已在其自己的处理中确保的虚拟空间中使存储器重叠。
在步骤S718中,确定是否可确保逻辑空间。当可确保该逻辑空间时,该处理前进到步骤S720。在其它情况下,重复从步骤S710开始的处理。
在步骤S720中,在步骤S712和S716中确保的物理区域和逻辑区域被分别登记在步骤S704和S706中创建的页面表和虚拟逻辑空间中。
而且,在使用已知技术执行从步骤S710至步骤S720的处理的情况下,将用于装载ELF图像的物理空间和虚拟逻辑空间确保为固定大小,并且将它们分别登记在步骤S704和S706中创建的页面表和虚拟逻辑空间中。在此情况下,预先设置的固定存储容量被设置。因此,由于被确保的物理空间不是连续区域,因此不以可在TLB 400中设置的大小对准物理空间和虚拟逻辑空间的地址。即,由于TLB400中设置的大小变为一个页面单位,因此TLB出错例外的处理会出现多次。
在步骤S722中,计算执行对象的虚拟地址和步骤S716中确保的逻辑区域的地址之间的偏移。即,计算已经由编译器临时确定的ELF图像等的虚拟地址和步骤S716中所确保的虚拟地址之间的偏移(差)。
在步骤S724中,在加上步骤S722中计算出的偏移的同时,将ELF图像等扩展(布置)到逻辑地址。
在步骤S726中,设置步骤S716中所确保的区域的每一文本/bss/数据的存储属性。即,设置TLB 400的属性栏412(无论高速缓存112是否被使用,设置主管访问权、用户访问权等)。
在步骤S728中,针对目标堆区确定要在TLB 400中设置的大小。这是与步骤S710相对应的处理。另外,如果该处理中不需要堆区,则该处理前进到步骤S744。
在步骤S730中,根据对步骤S728中所确定的大小的对准来在连续区域中确保堆区的物理空间。这是与步骤S712相对应的处理。
在步骤S732中,确定是否可确保物理空间。当可确保物理空间时,该处理前进到步骤S734。在其它情况下,重复从步骤S728开始的处理。这是与步骤S714相对应的处理。
在步骤S734中,根据对步骤S728中所确定的大小的对准来在连续区域中确保堆区的逻辑空间。这是与步骤S716相对应的处理。
在步骤S736中,确定是否可确保逻辑空间。当可确保逻辑空间时,该处理前进到步骤S738。在其它情况下,重复从步骤S728开始的处理。这是与步骤S718相对应的处理。
在步骤S738中,在步骤S730和S734中确保的物理区域和逻辑区域被分别登记在步骤S704和S706中创建的页面表和虚拟逻辑空间中。这是与步骤S720相对应的处理。
在步骤S740中,设置在步骤S734中所确保的区域的存储属性。这是与步骤S726相对应的处理。
在步骤S742中,在步骤S734中确保的区域被登记在该处理的存储控制池中。另外,这里的存储控制池管理具有预先设置的大小的堆区的空间。
在步骤S744中,针对目标共享存储区确定要在TLB 400中设置的大小。这是与步骤S728相对应的处理。
在步骤S746中,根据对在步骤S744中确定的大小的对准来在连续区域中确保共享存储区的物理空间。这是与步骤S730相对应的处理。
在步骤S748中,确定是否可确保物理空间。当可确保物理空间时,该处理前进到步骤S750。在其它情况下,重复从步骤S744开始的处理。这是与步骤S732相对应的处理。
在步骤S750中,根据对在步骤S744中确定的大小的对准来在连续区域中确保共享存储区的逻辑空间。这是与步骤S734相对应的处理。
在步骤S752中,确定是否可确保逻辑空间。当可确保逻辑空间时,该处理前进到步骤S754。在其它情况下,重复从步骤S744开始的处理。这是与步骤S736相对应的处理。
在步骤S754中,在步骤S746和S750中确保的物理区域和逻辑区域被分别登记在步骤S704和S706中创建的页面表和虚拟逻辑空间中。这是与步骤S738相对应的处理。
在步骤S756中,设置在步骤S750中所确保的区域的存储属性。这是与步骤S740相对应的处理。
在步骤S758中,在步骤S750中确保的区域被登记在处理存储控制池中。这是与步骤S742相对应的处理。
在步骤S799中,完成对该处理的创建。其后,为了执行main()函数,跳到存储有main()函数的对象的存储器。其后,出现对TLB出错例外的处理,并且将该流程图中的页面表中设置的条目插入到或交换到TLB 400中。
参照图10,将说明已经应用了本示例性实施例的图像处理系统的硬件结构的示例。图10所示的结构式包括诸如扫描仪之类的数据读取部分1017和诸如打印机之类的数据输出部分1018的硬件结构的示例。
CPU(中央处理器)1001是根据写入了在以上示例性实施例中描述的模块的执行顺序(即,装载器220、MMU 230、TLB处理器240等的执行顺序)的计算机程序执行处理的控制单元。
ROM(只读存储器)1002存储有CPU 1001使用的程序、操作参数等。RAM(随机存取存储器)1003是本示例性实施例的物理存储器,并且存储有在CPU 1001执行时使用的程序、在该执行期间适当变化的参数等。这些部件通过诸如CPU总线之类的主机总线1004彼此连接。
主机总线1004通过桥接器1005连接到诸如PCI(外部部件互连/接口)总线之类的外部总线1006。
键盘1008和诸如鼠标之类的指示装置1009是由操作者操作的输入装置。显示器1010例如是液晶显示器或CRT(阴极射线管),并且将各种信息显示为文本信息或图像信息。
HDD(硬盘驱动器)1011其中包括硬盘,驱动该硬盘,并且记录或再现由CPU 1001执行的程序或信息。在硬盘中存储读取的图像数据。另外,存储诸如各种其它数据处理程序之类的各种计算机程序。
驱动器1012读取记录在所安装的诸如磁盘、光盘、磁光盘或半导体存储器之类的可移除记录介质1013中的记录的数据或程序,并且将读取的数据或程序发送到通过接口1007、外部总线1006、桥接器1005和主机总线1004连接到其的RAM 1003。可移除记录介质1013还可用作与硬盘相同的数据记录区。
连接端口1014是连接到外部连接装置1015的端口,并且具有诸如USB或IEEE 1394之类的连接部分。连接端口1014通过接口1007、外部总线1006、桥接器1005和主机总线1004等连接到CPU1001等。通信部分1016连接到网络,并且执行与外部的数据通信的处理。数据读取部分1017例如是扫描仪,并且执行文档读取处理。数据输出部分1018例如是打印机,并且执行文档数据输出处理。
另外,图10所示的信息处理系统的硬件结构是该结构的示例。能够执行本示例性实施例的结构可适用于本示例性实施例,而不限于图10所示的结构。例如,某些模块可利用专用硬件(例如,专用集成电路:ASIC)来实现。而且,图像处理系统的示例包括复印机、传真机、扫描仪、打印机、复合机(具有扫描仪、打印机、复印机、和传真机中的两个或多个功能的图像处理设备),并且除了图像处理系统之外,本发明还可用于家用电器、汽车、电梯等。
在上述示例性实施例中,已经示出了嵌入的OS的用途。然而,本发明还可用在通用计算机的OS(更具体地讲,采用页面调度处理的OS)中。而且,图7至图9示出了当将处理改变为可执行状态时的处理的示例。然而,还可在执行处理之后需要该处理的动态存储器或共享存储器的存储容量(即,直到需要时才确保存储器,但是延迟确保该存储器)时,执行从步骤S728至S742的处理和从步骤S744至S758的处理。而且,在执行一个处理之后,当在执行了该处理时预先确保的动态存储器或共享存储器的存储容量不足时,可执行从步骤S728至S742的处理和从步骤S744至S758的处理。更具体地讲,当在该程序中调用malloc()函数等时,执行以上处理。
另外,可确定是否根据该处理执行本示例性实施例中的处理(例如,当产生一个处理时的处理ID、处理名称、和选项)。即,当未执行本示例性实施例中的处理时,执行使用现有技术中的技术的处理。另外,可根据物理空间的空容量来确定将要分配的区域的大小。
另外,可在将程序存储在记录介质中的状态下提供上述程序,或者可通过通信单元提供上述程序。在此情况下,该程序可被认为是例如“记录有程序的计算机可读记录介质”的发明。
该“记录有程序的计算机可读记录介质”指的是可由计算机读取的记录介质,该计算机记录有用于该程序的安装、执行、分发等的程序。
另外,记录介质的示例包括:与数字多功能盘(DVD)相关联的作为由DVD论坛建立的标准的“DVD-R、DVD-RW、DVD-RAM等”以及作为由DVD+RW论坛建立的标准的“DVD+R、DVD+RW等”;与致密盘(CD)相关联的只读存储器(CD-ROM)、可记录CD(CD-R)、和可重写CD(CD-RW)等;蓝光盘(注册商标);磁光盘(MO);软盘(FD);磁带;硬盘;只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存;和随机存取存储器(RAM)。
另外,可在在记录介质中记录该程序或该程序的一部分的状态下存储或分发该程序或该程序的一部分。另外,例如,可通过通信,例如,通过诸如局域网(LAN)、城域网(MAN)、广域网(WAN)、互联网、内部网和外部网之类的有线网络或通过无线通信网络,传送该程序。可选地,可经由通过组合上述方式而获得的传输介质来传送该程序,或者可将该程序装载到载体上。
另外,该程序可以是另一程序的一部分,或者可与以分开的程序一起记录在一个记录介质上。另外,该程序可被分开,并且记录在多个记录介质中。另外,只要该程序可恢复,则该程序可被记录在任一种包括压缩、加密等的格式中。
为了说明和描述而提供本发明的示例性实施例的以上描述。其并非意在将本发明穷尽或者精确限制为以上形式。显然,本领域技术人员来说,很多调整和变形是明显的。为了对本发明的原理和其应用进行最佳说明而选择和描述本实施例,从而使得本领域技术人员能够理解本发明的各个实施例和各种调整和各种变形适用于预期的特定用途。这意在通过所附权利要求及其等同物来限定本发明的范围。

Claims (6)

1.一种信息处理设备包括:
存储器,其存储用于唯一地识别一个处理的处理标识符、作为所述处理中可用的存储空间的地址的虚拟地址、与该虚拟地址相对应的物理地址、和分配给所述处理的连续存储容量,从而使得它们彼此关联;以及
存储容量设置部分,当将一个处理改变为可执行状态时,该存储容量设置部分设置将被存储在所述存储器中的所述连续存储容量,
其中,所述存储容量设置部分基于以下各项来确定所述连续存储容量:
所述处理需要的存储容量;
物理存储器中未使用的连续区域的存储容量;和
基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
2.根据权利要求1所述的信息处理设备,
其中,所述处理需要的存储容量包括当执行所述处理时动态分配的动态存储器的存储容量、或在多个处理之间使用的共享存储器的存储容量。
3.根据权利要求1所述的信息处理设备,
其中,当在将所述处理改变为可执行状态之后需要在执行所述处理时动态分配的动态存储器的存储容量、或在多个处理之间使用的共享存储器的存储容量时,所述存储容量设置部分基于以下各项来确定将被存储在所述存储器中的连续存储容量:
所述动态存储器或所述共享存储器的存储容量;
所述物理存储器中未使用的连续区域的存储容量;和
基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
4.根据权利要求2所述的信息处理设备,
其中,当在将所述处理改变为可执行状态之后确保用作所述动态存储器或所述共享存储器的存储容量不足时,所述存储容量设置部分基于以下各项来确定将被存储在所述存储器中的所述连续存储容量:
从所述处理请求的所述动态存储器或所述共享存储器的存储容量;
所述物理存储器中未使用的连续区域的存储容量;和
基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
5.根据权利要求1至4任一项所述的信息处理设备,
其中,当不能为虚拟地址或物理地址设置所确定的所述连续存储容量时,所述存储容量设置部分再次确定所述连续存储容量。
6.一种信息处理方法包括:
存储用于唯一地识别一个处理的处理标识符、作为所述处理中可用的存储空间的地址的虚拟地址、与该虚拟地址相对应的物理地址、和分配给所述处理的连续存储容量,从而使得它们彼此关联;以及
当将一个处理改变为可执行状态时,设置所确定的连续存储容量,
其中,基于以下各项来确定在设置所确定的连续存储容量的步骤中所设置的所述连续存储容量:
所述处理需要的存储容量;
物理存储器中未使用的连续区域的存储容量;和
基于取决于计算机中的中央处理器的存储大小的限制的存储容量。
CN201010138407.2A 2009-07-15 2010-03-22 信息处理设备和信息处理方法 Active CN101957801B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009167146A JP5531476B2 (ja) 2009-07-15 2009-07-15 情報処理装置及び情報処理プログラム
JP2009-167146 2009-07-15

Publications (2)

Publication Number Publication Date
CN101957801A CN101957801A (zh) 2011-01-26
CN101957801B true CN101957801B (zh) 2014-11-19

Family

ID=43466053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010138407.2A Active CN101957801B (zh) 2009-07-15 2010-03-22 信息处理设备和信息处理方法

Country Status (3)

Country Link
US (1) US8352698B2 (zh)
JP (1) JP5531476B2 (zh)
CN (1) CN101957801B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5920595B2 (ja) * 2013-07-16 2016-05-18 横河電機株式会社 電子機器、オペレーティングシステム、アクセス管理方法
US9880761B2 (en) 2015-12-28 2018-01-30 International Business Machines Corporation Restorable memory allocator
US11650742B2 (en) 2019-09-17 2023-05-16 Micron Technology, Inc. Accessing stored metadata to identify memory devices in which data is stored
US11494311B2 (en) 2019-09-17 2022-11-08 Micron Technology, Inc. Page table hooks to memory types
US10963396B1 (en) 2019-09-17 2021-03-30 Micron Technology, Inc. Memory system for binding data to a memory namespace
US11269780B2 (en) 2019-09-17 2022-03-08 Micron Technology, Inc. Mapping non-typed memory access to typed memory access

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187899A (zh) * 2006-11-17 2008-05-28 中兴通讯股份有限公司 嵌入式系统存储空间的优化方法
CN101241492A (zh) * 2007-02-06 2008-08-13 中兴通讯股份有限公司 具有容量动态控制功能的内存数据存储装置及其实现方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10289153A (ja) * 1997-04-11 1998-10-27 Ricoh Co Ltd 主記憶管理方法および装置
JP3517580B2 (ja) * 1998-02-24 2004-04-12 株式会社日立製作所 プロセッサ装置
JP2000276404A (ja) * 1999-03-29 2000-10-06 Nec Corp 仮想記憶装置および仮想記憶方法、並びに記録媒体
WO2002057923A1 (fr) * 2001-01-19 2002-07-25 Sony Corporation Dispositif de commande de protection de la memoire
US7370174B2 (en) * 2005-01-05 2008-05-06 Intel Corporation Method, system, and program for addressing pages of memory by an I/O device
JP2008102850A (ja) * 2006-10-20 2008-05-01 Toshiba Corp 情報処理装置及び情報処理方法
US7783859B2 (en) * 2007-07-12 2010-08-24 Qnx Software Systems Gmbh & Co. Kg Processing system implementing variable page size memory organization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101187899A (zh) * 2006-11-17 2008-05-28 中兴通讯股份有限公司 嵌入式系统存储空间的优化方法
CN101241492A (zh) * 2007-02-06 2008-08-13 中兴通讯股份有限公司 具有容量动态控制功能的内存数据存储装置及其实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JP特开平11-238015A 1999.08.31 *

Also Published As

Publication number Publication date
JP5531476B2 (ja) 2014-06-25
JP2011022790A (ja) 2011-02-03
US20110016286A1 (en) 2011-01-20
US8352698B2 (en) 2013-01-08
CN101957801A (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
US8533418B2 (en) Memory allocation with identification of requesting loadable kernel module
CN109074316B (zh) 页面错误解决方案
CN113868155B (zh) 一种内存空间扩展方法、装置及电子设备和存储介质
JP5079104B2 (ja) 変換例外修飾子を用いる動的アドレス変換
US6907510B2 (en) Mapping of interconnect configuration space
US10802987B2 (en) Computer processor employing cache memory storing backless cache lines
US8171236B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
RU2550558C2 (ru) Сравнение и замена позиции таблицы динамической трансляции адреса
US7036122B2 (en) Device virtualization and assignment of interconnect devices
KR20210089150A (ko) 호스트 컴퓨팅 디바이스 가상 메모리에 의해 지원되는 가상 머신 메모리의 더 빠른 액세스
CN101957801B (zh) 信息处理设备和信息处理方法
CN1227593C (zh) 存储控制器和处理器中管理虚拟化物理存储器方法和系统
US7908457B2 (en) Retaining an association between a virtual address based buffer and a user space application that owns the buffer
KR20070052334A (ko) 계층적 변환 테이블을 이용하는 입력/출력 장치들을 위한어드레스 변환
US9928000B2 (en) Memory mapping for object-based storage devices
US7873754B2 (en) Structure for option ROM characterization
CN1227594C (zh) 管理多处理器系统中虚拟化的物理存储器的方法和系统
CN1622060A (zh) 转换后备缓冲器的惰性转储清除
US10733109B1 (en) Memory reclaim management for virtual machines
US7941568B2 (en) Mapping a virtual address to PCI bus address
US8346902B2 (en) Performing device configuration rediscovery
WO2023165308A1 (zh) 一种内存回收方法、装置及控制设备
US20090031100A1 (en) Memory reallocation in a computing environment
US12182033B2 (en) Address translation cache and system including the same
WO2019138624A1 (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
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: Tokyo

Patentee after: Fuji film business innovation Co.,Ltd.

Address before: Tokyo

Patentee before: Fuji Xerox Co.,Ltd.

CP01 Change in the name or title of a patent holder