页面大小可变的虚拟内存系统技术方案

技术编号:7921453 阅读:199 留言:0更新日期:2012-10-25 06:52
本发明专利技术提供一种管理页面大小可变的虚拟内存系统的方法。页面大小无需为二的次方。大小可变的、任意大小的页面映射到连续段或虚拟地址空间。本方法也便于在虚拟内存区域有效的迁移、插入和删除数据。本方法还提供虚拟查找表。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机和其他电子设备的内存管理,尤其涉及虚拟内存系统中大小可变页面的映射。同时,还涉及大小可变页面可映射于虚拟内存系统之中的计算机。
技术介绍
一现有技术说明虚拟内存系统广泛用于现代计算机和其他电子设备。虚拟内存系统允许程序在一个或多个虚拟内存区域使用虚拟地址访问数据。虚拟内存系统的内存管理单元(MMU )将一个地址空间的地址转换为另一个地址空 间的地址。就MMU而言,第一个地址空间称为虚拟地址空间,第二个地址空间称为物理地址空间。虚拟地址空间的地址称为虚拟地址,物理地址空间的地址称为物理地址。在某些情况下,必须将物理地址进一步转换为可用地址。MMU包括查找表(转换旁视缓冲器形式)、页表、反置页表、散列表或类似表,使虚拟地址空间的一系列地址与页表项相关联。许多MMU结合使用转换旁视缓冲器和页表。页表项包括转换描述符,也称页描述符。页描述符字段使所述页表项与物理地址空间的若干(一些)地址相关联。在传统系统中,物理地址空间被分为预定固定大小的页面。每个页描述符字段包括物理地址空间中的一个页面的地址。通常,页描述符的低位会被删节。地址转换过程中,虚拟地址分为页码和页偏移量。MMU定位与页码相关的页表项。页表项中页描述符字段中的页面地址与虚拟地址的页偏移量部分一起来确定物理地址。页表项还包括若干访问控制和保护字段,如只写字段、只读字段和执行字段,为页表项所映射的页面提供访问控制和保护。时常,可在主存储器或辅助存储器中定位页面。通过虚拟内存系统中的页数据库、页框数据库或核心地图可跟踪各页面的物理位置。页面的有效大小为所述页面中地址映射到的虚拟地址的数量。在传统虚拟内存系统中,页面大小与其有效大小相同。虚拟内存系统通常在多个级别实施,或与其他地址转换机制一起实施。例如,英特尔(Intel)80386微处理器执行两级分页地址转换机制,并支持页目录和页表。除了分页机制之外,英特尔80386微处理器还支持分段机制。现有虚拟内存系统存在许多缺点。尤其是针对将物理内存映射到虚拟地址空间提供的框架不灵活,如下所述。I、页面大小需从少数可能的页面大小中选择。页面不可能为任意大小。页面不可能为非二的次方的数。2、页面的物理地址需在固定边界对齐。页面的物理地址需为所述页面大小的倍数。页面的物理地址不可能在其他或任意选择的边界对齐。3、某些虚拟内存系统支持可能页面大小中的很多页面大小。在某些情况下,如果两个或两个以上页面在物理地址空间和虚拟地址空间是连续的,则根据固定规则两个或两个以上页面结合形成较大的页面。然而,总的来说,在单个虚拟地址空间结合使用任意大小的页面是不可能、不切实际或无益的。4、必须在虚拟地址空间的固定边界映射页面。所述虚拟地址需为该页面大小的倍数。不可能在其他或任意选择的虚拟地址映射页面。如果新虚拟地址未在所述固定边界对齐,则不可能将之前在虚拟地址映射的页面重新映射到更高或更低的虚拟地址。5、需把整个页面映射到虚拟地址空间。不会在页面中保持未用、备用或未映射空间。页面有效大小需与页面大小相等。6、虽然虚拟地址页偏移量部分未转换,但无需修改即可用作该页面的页偏移量。页偏移量不另外参与转换或映射过程。7、页表项将整个页面映射到虚拟地址空间。不会使用页表项映射部分页面。使用多个页表项映射相同页面或部分相同页面,是毫无意义的。8、未提供细粒度保护和访问控制。如上所述,保护和访问控制限于固定大小页面。然而,在实践中,不可能确保需要控制的数据逻辑单元完全适合一个或多个固定大小页面。 9、未提供创建和管理内存映射功能或程序的方法。10、未提供创建和管理内存映射虚拟查找表的方法。在编程中,经常希望提供一些计算结果作为查找表。例如,虚拟查找表可提供自然数的平方根。理想情况下,当在虚拟地址首先访问所述查找表的项时,可调用用户定义函数计算该位置的相关值。该值可置于小页面中,该小页面随后可映射到虚拟地址空间。然而,在现有虚拟内存系统中,页面需相当大,除了预期结果之外,还需计算几个数的平方根。这使得虚拟查找表不可行。11、未提供在虚拟内存区域迁移、插入或删除任意量数据的方法,迁移、插入或删除这些操作可在没有大规模复制现有数据的情况下进行。12、优化转换旁视缓冲器中有限页表项使用的方法不充分。因此,需要一种更灵活、更有效的将物理内存映射到虚拟地址空间的方法。专利技术目的本专利技术的多个目的是提供一种虚拟内存系统,其中I、大小不同或有效大小不同的页面映射到连续虚拟地址空间。2、页面有效大小(即页面的地址映射到的虚拟地址的数量)不需要与所述页面大小相同。页面有效大小可不时改变。3、页面大小或有效大小无需固定,而是可能会因页面不同而有所不同,并且可以是任意方便的大小。页面大小或有效大小不依赖于任何页框大小。4、页面具有未用、未映射或备用空间。页面中的未用、未映射或备用空间可不时改变。页面无需存储与页面大小相等的数据,可拥有未用空间,从而存储不等数量的数据。5、页面的物理地址无需在固定边界对齐。页面映射到的虚拟地址无需在固定边界对齐。6、一个页表项可将两个或两个以上页面,或者两个或两个以上页面的部分内容映射到虚拟地址空间。若干页表项映射到一个页面或一个页面的部分。7、为虚拟内存区域的任何部分提供细粒度访问控制和保护。为大小可变或不同大小页面提供访问控制和保护。此外,可为页面一部分提供访问控制和保护。8、提供在虚拟内存区域迁移、插入和删除任意量数据的方法,迁移、插入或删除这些操作不需要大规模复制物理内存中的数据。9、提供创建和管理有效内存映射功能及程序的方法。此外,还提供创建和管理有效虚拟查找表的方法。提供的虚拟查找表操作不要求对目标查找表项之外的查找表项值进行计算。10、提供优化方法,以优化使用转换旁视缓冲器中有限数量页表项。根据随后的说明和附图,本专利技术的进一步目的和优点会更清楚地体现出来。
技术实现思路
根据本专利技术,提供创建映射大小可变或不同大小页面的虚拟内存系统的装置和方法。本专利技术可将大小可变页面映射到虚拟地址空间。因此,使用该专利技术时,存储在页面中的数据量可能会因页面不同而有所不同。附图 图I显示了本专利技术内存管理单元101的示意图。图2A显示了虚拟地址空间。图2B显示了物理地址空间。图3显示了虚拟地址。图4显示了页表结构。图5显示了页表项结构。图6显示了映射项结构。图7显示了转换描述符选择模块的工作情况。图8显示了地址计算模块的工作情况。图9显示了将大小可变页面映射到虚拟地址空间的示意图。附图说明图11显示了本专利技术内存管理单元1101的示意图。图12显示了转换旁视缓冲器。图21显示了本专利技术内存管理单元2101的示意图。图22显示了转换旁视缓冲器2201。图31显示了本专利技术的虚拟内存区域3101。图32A显示了大小可变页面3201。图32B显示了大小可变页面3202。图33显示了页数据库3301。图34显示了将若干页面3201和3202映射到虚拟地址空间201的情况。图38A显示了典型内存区域3801。图38B显示了在迁移某些现有数据和插入新数据之后的典型内存区域3801。图41显示了虚拟内存区域4101的示意图。图51显示了虚拟查找表5101的示意图。本专利技术详细说明参考优选实施例和附图,本专利技术描述如下。但是,所述附图仅说明本专利技术,不本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:凯姆莱西甘地
申请(专利权)人:凯姆莱西甘地
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1