使用共享内存施行虚拟记忆的多元处理系统以及维持分页记忆整合性的记忆页更换方法技术方案

技术编号:2869840 阅读:273 留言:0更新日期:2012-04-11 18:40
本发明专利技术计算机系统(100)包含第一处理器(102)、与第一处理器通讯的第二处理器(104)、耦合到第一(102)及第二处理器(104)且包含多个记忆位置的内存(106)(即共享式内存)、以及耦合到第一处理器(102)的储存装置(110或者112)。第一(102)及第二处理器(104)利用该内存(106)实施虚拟内存。第一处理器(102)在内存(106)中维护第一组记忆页表及第二组记忆页表。第一处理器(102)将第一组记忆页表用来存取该内存(106)内的记忆位置。第二处理器(104)将第一处理器(102)所维护的第二组记忆页表用来存取内存内的记忆位置。本发明专利技术说明了一种用于计算机系统(100)的虚拟记忆页取代方法。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术是有关计算机系统,尤其是有关多个处理器实施虚拟内存并存取一共享式内存的多处理器系统。
技术介绍
典型的计算机系统包含内存阶层,以便在较低的成本下得到较高层级的效能。通常将数个不同软件程序的指令储存在一个容量较大但较慢的非挥发性储存单元(例如磁盘驱动器单元)。当使用者选择其中一个程序来执行时,即将所选择程序的指令复制到主存储器,且处理器(例如中央处理单元(Central ProcessingUnit;简称CPU))自该主存储器取得所选择程序的指令。公知的虚拟内存管理技术可让该处理器存取容量大于该主存储器容量的各数据结构,其方式是在任何特定的时间上只将该等数据结构的一部分储存在该主存储器内。该等数据结构的其余部分系储存在该容量较大但较慢的非挥发性储存单元,而且只有在需要时,才将其余部分复制到该主存储器。通常将该处理器的一地址空间分成多个被称为页框(Page frame)或″记忆页″(″page″)的区段,而实施虚拟记忆。在任何特定时间上,只将对应于记忆页的一部分的资料储存在主存储器内。当处理器产生特定记忆页内的地址,且该记忆页的一份拷贝并未存在于主存储器时,即将所需记忆页的资料自该容量较大但较慢的非挥发性储存单元复制到该主存储器。在该程序中,可将另一记忆页的资料自该主存储器复制到该非挥发性储存单元,以便将空间让给所需的记忆页。常见的处理器架构(例如80x86或″x86″处理器架构)通常包含专用的硬件组件,用以支持虚拟内存的实施。例如,该x86处理器架构包含用来支持保护虚拟地址模式(亦即保护模式)的专用硬件组件。此类处理器产生虚拟地址,并采用虚拟至实体地址转换机构,以便将虚拟地址″对映到″(map)该主存储器中各记忆位置的实体地址。该地址转换机构通常包含被配置而形成一阶层的一个或多个数据结构(即″记忆页表″(″page table″)。通常将该等记忆页表储存在主存储器中,且由操作系统软件(亦即一操作系统)维护记忆页表。最高顺序的记忆页表(即x86记忆页目录)必然是被放在主存储器内。可自该储存单元取得任何额外的记忆页表,并视需要而将该等额外的记忆页表储存在主存储器中。通常将其中包含最高顺序的记忆页表(例如该x86记忆页目录)的一记忆页的基址储存在一缓存器中。该最高顺序的记忆页表包含多个资料项。资料项可能是其它记忆页表的基址,或者是其中包含对应于虚拟地址的实体地址的各记忆页的基址。当利用多个记忆页表来执行虚拟至实体地址转换时,该最高顺序的记忆页表的各资料项是其它记忆页表的基址。将该处理器产生的一虚拟地址分成多个部分,且将部分用来作为记忆页表的索引。最低顺序的记忆页表包含一个资料项,该资料项用来储存其中包括对应于虚拟地址的实体地址的记忆页的基址。将虚拟地址的最低顺序的部分或″偏移量″(offset)部分加到该最低顺序的记忆页表的所选择资料项中的基址,而形成实体地址。前文所述的虚拟至实体地址转换机构需要存取主存储器中的一个或多个记忆页表(即,记忆页表″查询lookups″或″索寻walks″)。此种记忆页表存取需要相当长的时间,且对处理器的效能有不好的影响。因此,各处理器通常包含转换后援缓冲区(Translation Look-aside Buffer;简称TLB),用以储存最近使用的记忆页表资料项。通常由操作系统维护TLB资料项。设有该TLB时,大幅提升了处理器的效能。最好是能将虚拟内存(virtual memory)的效益延伸到包含多个处理器的多处理器系统。此种多处理器系统最好是具有由所有处理器共享的主存储器。由于所有处理器能够存取该共享式主存储器中储存的指令及资料(亦即″程序代码″),所以无须将程序代码自某一处理器所唯一存取的内存复制到另一处理器所唯一存取的另一内存。此外,可将该共享式主存储器的一部分用于程序间通讯。实施虚拟内存且具有共享式主存储器的多处理器系统出现了许多问题。问题是如何产生并维护虚拟内存数据结构(例如记忆页表)、以及如何协调主存储器(main memory)与一个或多个储存单元间的记忆页转移。当多个处理器中的每一处理器预期会有其本身的效能增强TLB时,将会发生在本文中被称为″TLB一致性问题″的另一项问题。如前文所述,每一记忆页表资料项对应于该共享式主存储器中的不同记忆页。当其中一个处理器以来自储存单元的记忆页取代该共享式主存储器中的记忆页时,对应于其它处理器中被取代的该记忆页的各TLB资料项会变成无效。一个或多个其它处理器可能将其TLB中此种无效的记忆页表数据项用来执行虚拟至实体地址转换,因而存取了内存中错误的记忆页,并且可能在系统作业中产生不正确的结果及(或)其它的错误。此外,为了进一步阻止对主存储器进行的记忆页表存取,可将对主存储器中各记忆页执行的写入记录在该等TLB中储存的″更动″位(″dirty″bit不纯的,已修改更动的位),而无须存取该共享式主存储器中对应的记忆页表资料项的更动位。由于并未检视其它处理器的TLB,所以取代共享式主存储器中的记忆页的处理器可能并不知道某一其它的处理器先前已写入被取代的该记忆页,因而可能不会将被取代的该记忆页写回到储存单元。因此,被取代的该记忆页中的资料可能不是正确的,因而可能在系统作业中产生不正确的结果及(或)其它错误。本专利技术有关一种实施中可解决或至少减轻全部或部分的上述问题的方法系统。
技术实现思路
本专利技术所揭示的计算机系统包含第一处理器、与该第一处理器通讯的第二处理器、耦合到该第一及第二处理器,且包含多个记忆位置的内存(memory)(即共享式内存)、以及耦合到该第一处理器的储存装置。该第一及第二处理器利用该内存实施虚拟内存。该第一处理器在该内存中维护第一组记忆页表及第二组记忆页表,并将该第一组记忆页表用来存取该内存内的记忆位置。该第二处理器将该第一处理器所维护的第二组记忆页表用来存取该内存内的记忆位置。该第一组及第二组记忆页表可包含至少一个记忆页表。该第一处理器可使用该第一组记忆页表,以便将该第一处理器内产生的一虚拟地址转换为该内存内的记忆位置的一对应实体地址。同样地,该第二处理器可使用该第二组记忆页表,以便将该第二处理器内产生的虚拟地址转换为该内存内的记忆位置的对应实体地址,且可将该记忆位置的该实体地址用来存取该记忆位置。该第二组记忆页表可包含多个记忆页表资料项。当该内存中存在有对应的记忆页时,可将每一该等记忆页表资料项用来储存该对应的记忆页的基址。该第二处理器可包含缓冲器,该缓冲器包含多个资料项,用以储存最近使用的各记忆页表资料项,并记录该第二处理器写入该对应的记忆页的存取情形。在以该储存装置中储存的记忆页取代该内存中存在的记忆页之前,该第一处理器可先将需要移除该缓冲器中对应于要被取代的该记忆页的实体地址范围的任何资料项的信息通知该第二处理器。本专利技术说明了一种用于包含第一及第二处理器的计算机系统的虚拟记忆页取代方法,其中该虚拟记忆页取代方法被设计成协助维护该多处理器计算机系统内的分页式内存一致性。在一实施例中,该方法包含下列步骤存取该第二处理器的一组记忆页表资料项的每一记忆页表资料项。该组记忆页表资料项的每一记忆页表资料项对应于该第二处理器的一组记忆页的不同记忆页(亦即页)。该第二处理器的该组记忆页的每一记忆页被储存在本文档来自技高网
...

【技术保护点】
一种计算机系统(100),包含:    第一处理器(102);    与该第一处理器(102)通讯的第二处理器(104);    可作业而耦合到该第一处理器(102)及第二处理器(104)且包含多个记忆位置的内存;以及可作业而耦合到该第一处理器(102)之一储存装置(110或112);    其中该第一处理器(102)及第二处理器(104)被设定成利用该内存(106)实施虚拟内存;    其中该第一处理器(102)被设定成在该内存(106)中产生并维护第一组记忆页表及第二组记忆页表,并将该第一组记忆页表用来存取该内存(106)内的记忆位置;以及    其中该第二处理器(104)被设定成将该第二组记忆页表用来存取该内存(106)内的记忆位置。

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

【专利技术属性】
技术研发人员:TM德尼奥
申请(专利权)人:先进微装置公司
类型:发明
国别省市:US[美国]

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

1