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

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

Info

Publication number
CN1524228A
CN1524228A CNA028088212A CN02808821A CN1524228A CN 1524228 A CN1524228 A CN 1524228A CN A028088212 A CNA028088212 A CN A028088212A CN 02808821 A CN02808821 A CN 02808821A CN 1524228 A CN1524228 A CN 1524228A
Authority
CN
China
Prior art keywords
memory page
processor
leaf
memory
data item
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.)
Granted
Application number
CNA028088212A
Other languages
English (en)
Other versions
CN1275163C (zh
Inventor
T・M・德尼奥
T·M·德尼奥
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.)
GlobalFoundries US Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN1524228A publication Critical patent/CN1524228A/zh
Application granted granted Critical
Publication of CN1275163C publication Critical patent/CN1275163C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared 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/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/302In image processor or graphics adapter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明计算机系统(100)包含第一处理器(102)、与第一处理器通讯的第二处理器(104)、耦合到第一(102)及第二处理器(104)且包含多个记忆位置的内存(106)(即共享式内存)、以及耦合到第一处理器(102)的储存装置(110或者112)。第一(102)及第二处理器(104)利用该内存(106)实施虚拟内存。第一处理器(102)在内存(106)中维护第一组记忆页表及第二组记忆页表。第一处理器(102)将第一组记忆页表用来存取该内存(106)内的记忆位置。第二处理器(104)将第一处理器(102)所维护的第二组记忆页表用来存取内存内的记忆位置。本发明说明了一种用于计算机系统(100)的虚拟记忆页取代方法。

Description

使用共享内存施行虚拟记忆的多元处理系统 以及维持分页记忆整合性的记忆页更换方法
技术领域
本发明是有关计算机系统,尤其是有关多个处理器实施虚拟内存并存取一共享式内存的多处理器系统。
背景技术
典型的计算机系统包含内存阶层,以便在较低的成本下得到较高层级的效能。通常将数个不同软件程序的指令储存在一个容量较大但较慢的非挥发性储存单元(例如磁盘驱动器单元)。当使用者选择其中一个程序来执行时,即将所选择程序的指令复制到主存储器,且处理器(例如中央处理单元(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)(即共享式内存)、以及耦合到该第一处理器的储存装置。该第一及第二处理器利用该内存实施虚拟内存。该第一处理器在该内存中维护第一组记忆页表及第二组记忆页表,并将该第一组记忆页表用来存取该内存内的记忆位置。
该第二处理器将该第一处理器所维护的第二组记忆页表用来存取该内存内的记忆位置。
该第一组及第二组记忆页表可包含至少一个记忆页表。该第一处理器可使用该第一组记忆页表,以便将该第一处理器内产生的一虚拟地址转换为该内存内的记忆位置的一对应实体地址。同样地,该第二处理器可使用该第二组记忆页表,以便将该第二处理器内产生的虚拟地址转换为该内存内的记忆位置的对应实体地址,且可将该记忆位置的该实体地址用来存取该记忆位置。
该第二组记忆页表可包含多个记忆页表资料项。当该内存中存在有对应的记忆页时,可将每一该等记忆页表资料项用来储存该对应的记忆页的基址。该第二处理器可包含缓冲器,该缓冲器包含多个资料项,用以储存最近使用的各记忆页表资料项,并记录该第二处理器写入该对应的记忆页的存取情形。在以该储存装置中储存的记忆页取代该内存中存在的记忆页之前,该第一处理器可先将需要移除该缓冲器中对应于要被取代的该记忆页的实体地址范围的任何资料项的信息通知该第二处理器。
本发明说明了一种用于包含第一及第二处理器的计算机系统的虚拟记忆页取代方法,其中该虚拟记忆页取代方法被设计成协助维护该多处理器计算机系统内的分页式内存一致性。在一实施例中,该方法包含下列步骤:存取该第二处理器的一组记忆页表资料项的每一记忆页表资料项。该组记忆页表资料项的每一记忆页表资料项对应于该第二处理器的一组记忆页的不同记忆页(亦即页)。该第二处理器的该组记忆页的每一记忆页被储存在内存中,且对应于该第一处理器中将要自该内存移除的第一记忆页。该第二处理器的每一记忆页表资料项包含更动(D)位,用以指示是否需要将该第二处理器的该对应记忆页写入储存装置。
标示该组记忆页表资料项的每一记忆页表资料项,以便指示该内存中并未存在有该第二处理器的该对应记忆页。例如,可改变该组记忆页表资料项的每一记忆页表资料项之一存在(P)位(例如,″清除″该位,或将该位设定为逻辑″0″),以便指示该内存中并未存在有该第二处理器的该对应记忆页。将需要移除该第二处理器的缓冲器中对应于该组记忆页的记忆页的任何资料项的信息通知该第二处理器,其中该缓冲器包含多个资料项,用以储存最近使用的各记忆页表资料项。该缓冲器的每一资料项可包含一更动(D)位,用以指示是否需要将该第二处理器的对应记忆页写入该储存装置。
在前文所述的通知该第二处理器之后,执行读取该组记忆页表资料项的每一记忆页表资料项。执行读取对应于该第一处理器的该第一记忆页的记忆页表资料项,其中该记忆页表资料项包含更动(D)位,用以指示是否需要将第一位写入该储存装置。如果(i)在读取该组记忆页表资料项的每一记忆页表资料项期间所得到的至少一个记忆页表资料项的更动(D)位指示需要将该第二处理器的该对应记忆页写入该储存装置,或(ii)在读取该第一处理器的该记忆页表资料项期间所得到的该记忆页表资料项的该更动(D)位指示需要将该第一处理器的该第一记忆页写入该储存装置,则将该第一处理器的该第一记忆页自该内存写入该储存装置。
在其它的实施例中,在前文所述的标示期间,可清除该组记忆页表资料项的每一记忆页表资料项的该存在(P)位及该更动(D)位。在这些实施例中,对该组记忆页表资料项的每一记忆页表资料项的存取可包括第一读取作业,且前文所述在该通知之后执行的对该组记忆页表资料项的每一记忆页表资料项的读取可构成第二读取作业。如果(i)在该第一读取作业期间所得到的至少一个记忆页表资料项的更动(D)位指示需要将该第二处理器的该对应记忆页写入该储存装置,或(ii)在该第二读取作业期间所得到的至少一个记忆页表资料项的更动(D)位指示需要将该第二处理器的该对应记忆页写入该储存装置,或(iii)在读取该第一处理器的该记忆页表资料项期间所得到的该记忆页表资料项的该更动(D)位指示需要将该第一处理器的该第一记忆页写入该储存装置,则可将该第一处理器的该第一记忆页自该内存写入该储存装置。
该虚拟记忆页取代方法可包含以下列步骤响应前文所述的通知该第二处理器,这些步骤包括:(i)找出该缓冲器中对应于该组记忆页的记忆页的资料项;(ii)如果对应于该组记忆页的记忆页的资料项的更动(D)位指示需要将组记忆页的记忆页写入该储存装置,则更新第二处理器中对应于该组记忆页的记忆页的记忆页表资料项的更动(D)位,以便指示需要将该组记忆页的记忆页写入储存装置;以及(iii)清除对应于该组记忆页的记忆页的资料项。
前文所述的通知该第二处理器的该步骤可包含下列步骤:将信息传送到该第二处理器,以便指示需要清除该第二处理器的该缓冲器中对应于该组记忆页的一记忆页的任何资料项。
该虚拟记忆页取代方法亦可包含下列步骤:(i)接收该第二处理器中记忆页错误状况的指示;以及(ii)决定必须以该储存装置中储存的该第一处理器的第二记忆页取代该内存中储存的该第一处理器的第一记忆页,以便清除该第二处理器中的记忆页错误状况。前文所述的接收指示的该步骤可包含下列步骤:自该第二处理器接收指示该第二处理器中的记忆页错误状况的信息。该虚拟记忆页取代方法亦可包含下列步骤:当已消除第二处理器中记忆页错误状况时,即将指示记忆页错误状况消除的信息传送到该第二处理器。
本发明说明了一种承载媒体,该承载媒体包含用来执行该虚拟记忆页取代方法的程序指令。该承载媒体可以是诸如计算机可读取的储存媒体(例如软盘或一只读光盘(CD-ROM))。
附图说明
参照下文中的说明,并配合各附图,将可了解本发明,在这些附图中,相同的代号识别类似的组件,这些附图中:
图1表示包含主处理器、协同处理器、及共享式内存的一多处理器计算机系统之一实施例;
图2表示图1所示共享式内存之一实施例,其中该共享式内存包含若干主处理器记忆页表、若干协同处理器记忆页表、程序部分、及主处理器操作系统;
图3表示图2所示该等主处理器记忆页表及该程序部分之一实施例,其中该程序部分包含该主处理器的多个记忆页,且其中该等主处理器记忆页表的记忆页表的多个记忆页表资料项(Page Table Entry;简称PTE)的每一PTE对应于该主处理器的该等多个记忆页的不同记忆页,且包含该对应记忆页的基址;
图4表示图2所示该等协同处理器记忆页表及该程序部分之一实施例,其中该程序部分包含该协同处理器的多个记忆页,且其中协同处理器记忆页表的记忆页表的多个记忆页表资料项(PTE)的每一PTE对应于该协同处理器的该等多个记忆页的不同记忆页,且包含该对应记忆页的基址;
图5表示图3至4所示每一记忆页表资料项(PTE)的格式之一实施例,其中每一记忆页表资料项包含记忆页基址字段、更动(D)位、及存在(P)位;
图6表示图2所示该等主处理器记忆页表、协同处理器记忆页表、及该程序部分之一实施例,其中该主处理器的每一记忆页的容量为该协同处理器的每一记忆页的容量的两倍;以及
图7A及7B组合而形成用于多处理器计算机系统的虚拟记忆页取代方法实施例的流程图。
虽然本发明易于做出各种修改及替代形式,但是已以图标举例的方式示出且详细说明了本发明的一些特定实施例。然而,我们当了解,本文中对这些特定实施例的说明的用意并非在使本发明限于所揭示的特定形式,相反地,其用意在涵盖在最后的权利要求所界定的本发明精神及范围内的所有修改、等效物、及替代方式。
具体实施方式
下文中将说明本发明的一些实施例。为了顾及表达的清晰,本说明书中并未说明一实际实施例的所有特征。当然,我们当了解,在开发任何此类实际的实施例时,必须做出与实施方式有关的许多决策,以便达到开发者的特定目标,例如符合与系统有关的及与商业有关的限制条件,而这些特定的目标在每一个实施例中都将有所不同。此外,我们当了解,此种开发工作可能是复杂且耗时的,但仍然是对此项技艺具有一般知识者在了解本发明的揭示事项之后可进行的例行工作。
第1图表示多处理器计算机系统100的一实施例,该多处理器计算机系统100包含主处理器102、协同处理器104、共享式内存106、第一装置110、及第二装置112,所有该等组件皆系耦合到总线108。主处理器102及协同处理器104的组态都被设定成执行指令。主处理器102及协同处理器104经由总线108而自共享式内存106读取资料并将资料写入共享式内存106(即存取)。主处理器102经由总线108及(或)共享式内存106而与协同处理器104通讯。主处理器102及(或)协同处理器104经由总线108而与装置110及112通讯。装置110可以是诸如储存装置(例如硬盘机)。装置112可以是诸如通讯装置(例如调制解调器、网络适配卡等)、输入/输出装置(例如键盘、指向装置、打印机、扫描仪等)、或另一储存装置(例如另一硬盘机)。总线108可以是任何适用的总线结构。
在图1所示的实施例中,主处理器102指示协同处理器104的活动,因而协同处理器104可说是协助主处理器102。主处理器102及协同处理器104可以是相同类型的处理器,或者是大致相同类型的处理器,且可具有类似的架构及功能性能力。在替代实施例中,主处理器102及协同处理器104可以是不同类型的处理器,且可具有不同的架构及(或)功能性能力。主处理器102及协同处理器104可执行来自相同指令集的指令、或来自不同指令集的指令。
如将于下文中说明的,主处理器102于作业时执行共享式内存106中储存的操作系统软件的指令。该操作系统软件利用共享式内存106实施虚拟内存,且装置110及(或)装置112设有虚拟至实体地址转换机构。该操作系统软件在共享式内存106中产生并维护一组主处理器记忆页表,且利用该组主处理器记忆页表来执行主处理器102内的虚拟至实体地址转换。共享式内存106中储存的主处理器102的最低顺序的记忆页表包含多个记忆页表资料项。为了减少自主处理器102的该最低顺序的记忆页表取得记忆页表资料项所需的内存存取次数,并因而增加主处理器102的效能,主处理器102最好是包含供选用的转换后援缓冲区(TLB)114,用以储存最近使用的各记忆页表资料项。
在图1所示的实施例中,协同处理器104包含核心116及TLB 118。核心116包含可让协同处理器104执行主处理器102发出到协同处理器104的程序的指令及资料(即程序代码)。于作业期间,协同处理器104执行核心116的指令,并执行主处理器102发出到协同处理器104的程序。发出到协同处理器104的每一程序存在于共享式内存106内,且通常包含程序代码。
如将于下文中说明的,核心116设有一虚拟至实体地址转换机构,并利用一组协同处理器记忆页表,而存取共享式内存106内的实体地址。在主处理器102上执行的操作系统软件产生并维护该组协同处理器记忆页表。共享式内存106中储存的协同处理器104的最低顺序的记忆页表包含多个记忆页表资料项。TLB 118是用来储存最近使用的各记忆页表资料项,且包含在协同处理器104中,以便减少自协同处理器104的最低顺序的记忆页表取得记忆页表资料项所需的内存存取次数,并因而增加协同处理器104的效能。
图2是图1所示共享式内存106的一实施例。在图2所示的实施例中,共享式内存106包含若干主处理器记忆页表200、若干协同处理器记忆页表202、程序部分204、及主处理器操作系统206。如前文所述,主处理器102(图1)于作业期间执行主处理器操作系统206的指令。如将于下文中详细说明的,主处理器操作系统206利用共享式内存106以及装置110及(或)装置112(图1),而在主处理器102及协同处理器104(图1)内实施虚拟内存。程序部分204包含主处理器102及协同处理器104可存取的若干记忆页,且用来储存程序码。在作业期间,协同处理器104根据来自主处理器102的指令而存取并执行程序部分204内储存的程序码。
主处理器操作系统206产生并维护该等主处理器记忆页表200及该等协同处理器记忆页表202,并设有主处理器102及协同处理器104的虚拟至实体地址转换机构。主处理器102使用主处理器记忆页表200,以便将主处理器102内产生的虚拟地址转换为共享式内存106内的实体地址。协同处理器104使用该等协同处理器记忆页表202,以便将协同处理器104内产生的虚拟地址转换为共享式内存106内的实体地址。主处理器102及协同处理器104共享共享式内存106内的共同的实体地址空间。为了作业的简化,主处理器102及协同处理器104亦可共享一共同的虚拟地址空间。
图2中的承载媒体208可用来将主处理器操作系统206载送到共享式内存106。例如,装置112(图1)可以是用来容纳抽取式磁盘的磁盘驱动器(例如软盘机、只读光驱(CD-ROM)等),且承载媒体208可以是存有主处理器操作系统206的磁盘(例如软盘、只读光盘等)。主处理器102(图1)可经由装置112而自承载媒体208读取主处理器操作系统206的程序代码。
在替代实施例中,承载媒体208可以是用来载送主处理器操作系统206的信号(例如载波信号)。例如,装置112可以是网络适配卡,承载媒体208可以是经由耦合到装置112的传输媒体而载送的信号(例如电信号或光信号)。主处理器102可经由装置112及承载媒体208而接收主处理器操作系统206的程序代码,并将该程序代码储存在共享式内存106中。
主处理器记忆页表200及(或)协同处理器记忆页表202可包含被配置而形成记忆页表阶层的多个记忆页表。图3标出图2所示主处理器记忆页表200及程序部分204的一实施例。在图3所示的实施例中,主处理器记忆页表200包含记忆页表300。记忆页表300可以是诸如主处理器记忆页表阶层中的最低顺序的记忆页表。记忆页表300包含多个记忆页表资料项(PTE)302,且程序部分204包含主处理器102(图1)的多个记忆页(即页)。每一记忆页表资料项302对应于主处理器102的记忆页304中的不同记忆页,并包含对应记忆页304的基址。
图4标出图2所示协同处理器记忆页表202及程序部分204的一实施例。在图4所示的实施例中,协同处理器记忆页表202包含记忆页表400。记忆页表400可以是诸如协同处理器记忆页表阶层中的最低顺序的记忆页表。记忆页表400包含多个记忆页表资料项(PTE)402,且程序部分204包含协同处理器104(图1)的多个记忆页404。每一记忆页表资料项402对应于协同处理器104的记忆页404中的不同记忆页,并包含该对应记忆页404的基址。
图5标出每一记忆页表数据项(PTE)302(图3)及402(图4)的一格式之一实施例。在图5所示的实施例中,每一记忆页表资料项302/402包含记忆页基址字段、更动(D)位、及存在(P)位。该存在(P)位指示对应记忆页304/404是否存在于程序部分204内。当对应记忆页304/404存在于程序部分204内时,该记忆页基址字段指定该对应记忆页304/404的基址。更动(D)位指示在将对应记忆页304/404自装置110及(或)装置112(图1)复制到共享式内存106之后该对应记忆页是否已被修改(即写入),并指示当来自装置110及(或)装置112的另一记忆页取代对应记忆页304/404时是否因而需要将该对应记忆页写回到装置110及(或)装置112。
图6标出图2所示主处理器记忆页表200、协同处理器记忆页表202、及程序部分204的一实施例,其中主处理器102(图1)的每一记忆页的容量是协同处理器104(图1)的每一记忆页的容量的两倍。在图6所示的实施例中,主处理器记忆页表200的记忆页表300包含一记忆页表资料项302A,且协同处理器记忆页表202的记忆页表400包含两个记忆页表资料项402A及402B。记忆页表资料项302A包含(即″指向″)位于程序部分204中的主处理器记忆页的基址。如图6所示,协同处理器104的两个相邻的记忆页占用与该主处理器记忆页相同的物理内存空间。协同处理器记忆页表202的记忆页表资料项402A及402B包含(即″指向″)对应于该主处理器记忆页的协同处理器104的两相邻记忆页的基址。记忆页表资料项402A及402B可以是图6所示的协同处理器记忆页表202的相邻记忆页表资料项。
在图1-6所示的实施例中,我们当了解,虽然图中只示出程序部分204(图2-4及图6)内的记忆页304(图3)及404(图4)、以及对应的记忆页表资料项302(图3)及402(图4),但是主处理器102(图1)及协同处理器104(图1)可经由虚拟内存及相关联的虚拟至实体地址转换机构而存取共享式内存106的整个实体地址空间。
一般而言,协同处理器104(图1)及主处理器102(图1)的记忆页容量通常是彼此的整数倍。换言之,主处理器102的记忆页容量可以是协同处理器104的记忆页容量的i倍,其中i是一整数,且i≥1。相反地,协同处理器104的记忆页容量可以是主处理器102的记忆页容量的i倍,其中i是一整数,且i≥1。当i=1时,主处理器102的记忆页容量与协同处理器104的记忆页容量相同。然而,本发明所述的方法及系统尤其适用于主处理器102的记忆页容量与协同处理器104的记忆页容量不同的情形,且主处理器102的记忆页容量是协同处理器104的记忆页容量的i或1/i倍,其中i是一整数,且i≥2。当主处理器102的记忆页容量是协同处理器104的记忆页容量的i倍时,主处理器102的每一记忆页与协同处理器104的i个记忆页可占用前文所述的程序部分204(图24)的相同实体地址区域。另一方面,当主处理器102的记忆页容量是协同处理器104的记忆页容量的1/i倍时,协同处理器104的每一记忆页与主处理器102的i个记忆页可占用程序部分204的相同实体地址区域。
请注意,通常系由位数决定记忆页容量,记忆页容量因而通常是二的乘幂。因此,主处理器102的记忆页容量可以是协同处理器104的记忆页容量的2i或1/2i,其中i是一整数,且i≥0。
如前文所述,协同处理器104(图1)可能具有主处理器102(图1)所无的功能性能力。在此种情形中,装置110及(或)装置112(图1)中储存的指令及数据(即程序代码)可具有一标记,用以指示该程序码的执行需要协同处理器104的功能性能力。当主处理器操作系统206的一加载例程将该程序码加载共享式内存106的程序部分204时,该加载例程可将该程序码的执行需要协同处理器104的功能性能力的信息通知主处理器操作系统206。
当该加载例程将加载程序部分204的该程序码需要协同处理器104的功能性能力的信息通知主处理器操作系统206时,主处理器操作系统206可决定该程序码中需要协同处理器104的功能性能力的一个或多个部分,并可同时(即以平行的方式)更新主处理器记忆页表200及协同处理器记忆页表202。
在下文中,该程序码中需要协同处理器104的功能性能力的一个或多个部分本身将被视为独立的程序。主处理器102可(诸如经由任何适用的程序间通讯方法)将一个或多个程序代码执行信息传送到协同处理器104。每一程序代码执行信息可包含诸如与将要执行的一程序相关联的该等协同处理器记忆页表202中的最高顺序的记忆页表的基址、以及该程序的第一指令的虚拟地址。协同处理器104可响应特定的程序代码执行信息,而安排该相关联的程序的执行时程。
协同处理器104可包含记忆页表缓存器,用以储存该等协同处理器记忆页表202中的最高顺序的记忆页表的基址。当协同处理器104开始执行特定程序时,协同处理器104可先将对应的程序代码执行信息中包含的该等协同处理器记忆页表202中的该最高顺序的记忆页表的该地址加载该记忆页表缓存器。
在某些实施例中,主处理器操作系统206可以只将协同处理器记忆页表202中的该最高顺序的记忆页表加载共享式内存106的一个″锁定(locked)″部分,且可等候到协同处理器104通知记忆页错误信息而要将协同处理器记忆页表202中的任何额外记忆页表加载共享式内存106为止。请注意,不需要在″锁定的″内存中维护该等协同处理器记忆页表202中的任何额外记忆页表。如果自共享式内存106中移除其中包含该等协同处理器记忆页表202中的记忆页表的任何记忆页(即″移出记忆页″),则必须在该协同处理器记忆页表阶层的次一最高层级中反映该移除动作。
除了前文所述的主处理器操作系统206所的且包含在协同处理器104(图1)将要执行的每一程序的协同处理器记忆页表202中的″应用程序″虚拟地址空间对映,主处理器操作系统206(图2)亦为每一程序产生″监管模式″虚拟地址空间对映。协同处理器104的核心116(图1)于执行该相关联的程序时,可使用该监管模式虚拟地址空间对映。当协同处理器104在执行该相关联的程序期间接收到一错误或中断信号时,核心116经由该监管模式虚拟地址空间对映而存取共享式内存106的程序部分204中储存的程序代码,以便服务该错误或中断。该监管模式虚拟地址空间对映在所有的程序中可能是相同的,因而可将相同的监管模式虚拟地址空间对映包含在主处理器操作系统206为每一程序所产生的协同处理器记忆页表202中。
于执行一程序时,协同处理器104可尝试存取并未存在于共享式内存106的记忆页内的程序代码。在此种情形中,协同处理器记忆页表202的对应记忆页表资料项402(图4)的存在(P)位指示该对应记忆页并未存在于共享式内存106中。协同处理器104的核心116(图1)中止造成该记忆页错误的程序,并(诸如经由中断,或经由程序间通讯而传送的信息)将该记忆页错误的信息通知主处理器操作系统206。
主处理器操作系统206响应协同处理器104中的记忆页错误状况,而将协同处理器104所需的记忆页″对映″(maps)到主处理器102的对应记忆页,并将该对应记忆页置入共享式内存106。主处理器操作系统206将该对应记忆页自装置110及(或)装置112(图1)复制到共享式内存106,并更新主处理器记忆页表200及协同处理器记忆页表(202)。主处理器操作系统206然后(诸如经由透过程序间通讯而传送的一信息)将所需的记忆页现在已存在于共享式内存106的信息通知协同处理器104。当协同处理器104的核心116接收到该信息时,核心116使被中止的该程序备妥,并重新开始该程序。
如前文所述,协同处理器104包含TLB 118(图1),用以储存最近使用的各记忆页表资料项402(图4)。TLB(118)减少为了自协同处理器记忆页表202的记忆页表400取得记忆页表资料项402所需的对共享式内存(106)的存取次数,因而增加了协同处理器(104)的效能。如前文所述,为了进一步阻止对内存中储存的记忆页表的存取,各TLB通常包含更动(D)位,用以记录对内存中储存的各记忆页的写入情形。在TLB的外通常无法检视该等更动(D)位的内容。
在图1-6所示的实施例中,协同处理器104的核心116(图1)控制协同处理器104内的TLB 118的作业。TLB 118具有多个资料项,用以储存协同处理器104的各最近使用的记忆页表资料项。TLB 118的每一资料项可具有一更动(D)位,用以指示对应记忆页在共享式内存106时是否被(协同处理器104)修改。例如,当核心116移除(或指示移除)TLB118的资料项(以便让出空间给一最近使用的记忆页表资料项402)时,核心116可检查该资料项的更动(D)位。如果该更动(D)位指示对应记忆页在共享式内存106时已被(协同处理器104)修改过,则核心116可在记忆页表400中更新对应记忆页表资料项402的更动(D)位,以便反映该对应记忆页在共享式内存106中时已被修改过,且于自共享式内存106移除该对应记忆页时需要将该对应记忆页写入储存装置(即图1所示的装置110及(或)装置112)。
由于TLB 118存在于协同处理器104中,所以纵使主处理器操作系统206自协同处理器记忆页表202的记忆页表400中移除了该对应记忆页之后,协同处理器104仍可继续使用TLB 118中储存的该等记忆页表资料项402中的记忆页表资料项。因此,当主处理器操作系统206将要自共享式内存106移除记忆页时,主处理器操作系统206必须先将应自TLB118移除对应于将要自共享式内存106移除的该记忆页的TLB118的任何资料项的信息通知核心116。请注意,对应于将要自共享式内存106移除的该记忆页的TLB118的各资料项对应于将要自共享式内存106移除的该记忆页的实体地址范围。
如前文所述,当核心116自TLB118移除对应的资料项时,如果该对应资料项的更动(D)位值指示将要自共享式内存106移除的该记忆页在共享式内存106中时已被(协同处理器104)修改过,则核心116在协同处理器记忆页表202的记忆页表400中更新该对应记忆页表资料项402的该更动(D)位,以便反映将要自共享式内存106移除的该记忆页在共享式内存106中时已被修改过,且于自共享式内存106移除该记忆页时,需要将该记忆页写入储存装置(即图1所示的装置110及(或)装置112)。
主处理器操作系统206然后可继续自共享式内存106移除该记忆页。主处理器操作系统206检查(i)对应于主处理器记忆页表200的记忆页表300中将要移除的记忆页的一个或多个记忆页表资料项302的更动(D)位值、以及(ii)对应于协同处理器记忆页表202的记忆页表400中将要移除的记忆页的一个或多个记忆页表资料项402的更动(D)位值。如果任一更动(D)位指示将要自共享式内存106移除的该记忆页在共享式内存106中时已被修改过,则主处理器操作系统206把将要自共享式内存106移除的该记忆页″写回″到储存装置(例如,写回到图1所示的装置110及(或)装置112)。
请注意,一旦自TLB118一除了该对应的资料项之后,协同处理器104任一次尝试存取将要自共享式内存106移除的该记忆页时,将需要存取记忆页表400,以便自共享式内存106得到对应于将要被移除的该记忆页的记忆页表资料项402。一旦已自共享式内存106移除了将要自共享式内存106移除的该记忆页之后,协同处理器104尝试存取被移除的该记忆页时,将(最好是)得到记忆页错误信息。
当协同处理器104自执行第一程序切换到执行第二程序时,协同处理器104将与该第二程序相关联的新记忆页表基址加载该记忆页表缓存器,并自TLB118移除与该第一程序相关联的TLB118的所有资料项。因此,作为一种效能上的特征,除非协同处理器104目前正在执行与将要自共享式内存106移除的该记忆页有对映关系的程序,否则主处理器操作系统206无须将记忆页将要被自共享式内存106移除的信息通知协同处理器104。
图7A至7B合而形成用于多处理器计算机系统的虚拟记忆页取代方法700实施例的流程图。该虚拟记忆页取代方法700被设计成协助维护该多处理器系统内的分页式内存一致性。虽然本文中将以与图1所示多处理器计算机系统100相关的方式说明方法700,但是亦可在任何多处理器计算机系统中实施该方法700。就图1所示的多处理器计算机系统100而论,可在主处理器操作系统206(图2)内实施该方法700。
在方法700的一步骤702中,存取目前储存在共享式内存106中且将要被取代的对应于主处理器102的一记忆页的协同处理器104的每一记忆页表资料项402(图4)。在一步骤704中,标示将要被取代的对应于主处理器102的该记忆页的协同处理器104的每一记忆页表资料项402,以便指示协同处理器104的该对应记忆页并未存在于共享式内存106中。
例如,该在步骤702中(例如于第一读取作业时),可自共享式内存106读取将要被取代的对应于主处理器102的该记忆页的协同处理器104的每一记忆页表资料项402。在(诸如步骤702中)读取了特定的记忆页表资料项402之后,可改变该特定记忆页表资料项402的存在(P)位值(例如,″清除″该位,或将该位值设定为逻辑″0″),以便指示协同处理器104的该对应记忆页并未存在于共享式内存106中。然后可(在步骤704中)将该特定的记忆页表资料项402写回到共享式内存106。由于协同处理器104可能存取该特定的记忆页表资料项402,所以可以一种″不可分割的″(″atomic″)交易方式完成将对特定记忆页表资料项402的读取及写入。
在步骤706中,将需要移除对应于与将要被移除的主处理器102的该记忆页对应的协同处理器104的每一记忆页表资料项402的TLB 118的各资料项的信息通知协同处理器104。例如,主处理器102可将信息(例如″PageRemoval″信息)传送到协同处理器104,该信息指示需要移除对应于与将要被移除的主处理器102的该记忆页对应的协同处理器104的记忆页表的TLB 118的任何资料项。在移除TLB118的任何此种资料项之后,协同处理器104可将指示已完成该移除的信息传送到主处理器102。
在步骤708中,然后执行读取对应于将要被移除的主处理器102的该记忆页的协同处理器104的该等记忆页表资料项402。在步骤710中,执行读取对应于将要被移除的主处理器102的该记忆页的记忆页表资料项302(图3)。在步骤712中,如果(i)在步骤708的读取作业期间取得的其中一个记忆页表资料项402的更动位指示需要将协同处理器104的该对应记忆页写入储存装置,或(ii)在步骤710的读取作业期间取得的对应于将要被取代的主处理器102的该记忆页的其中一个记忆页表资料项302的更动位指示需要把将要被取代的主处理器102的该记忆页写入该储存装置,则把将要被取代的主处理器102的该记忆页自共享式内存106写入该储存装置(即图1所示的装置110及(或)装置112)。
如前文所述,在步骤70)中(例如在第一读取作业期间),可自共享式内存106读取对应于将要被取代的主处理器102的该记忆页的协同处理器104的每一记忆页表资料项402。在读取特定记忆页表资料项402之后(例如在步骤702中),可改变该特定记忆页表资料项402的存在(P)位值(例如,清除该位,或将该位值设定为逻辑″0″),以便指示协同处理器104的该对应记忆页并未存在于共享式内存106。然后可将该特定记忆页表资料项402写回到共享式内存106(例如在步骤704中)。虽然改变该存在(P)位时最好是不要改变该特定记忆页表资料项402的更动(D)位值,但是不一定要如此。
在某些实施例中,可在将该特定记忆页表资料项402写回到共享式内存106之前,先清除该特定记忆页表资料项402的该存在(P)位及该更动(D)位。在这些实施例中,在步骤702的第一读取作业期间,可读取对应于将要被取代的主处理器102的该记忆页的协同处理器104的每一记忆页表资料项402,且步骤708的该读取作业可构成第二读取作业。在上述步骤712中,如果(i)在该第一读取作业期间(例如在步骤702中)取得的其中一个记忆页表资料项402的更动位指示需要将协同处理器104的该对应记忆页写入该储存装置,或(ii)在该第二读取作业期间(例如在步骤708中)取得的其中一个记忆页表资料项402的更动位指示需要将协同处理器104的该对应记忆页写入该储存装置,或(iii)在步骤710的读取作业期间取得的对应于将要被取代的主处理器102的该记忆页的其中一个记忆页表资料项302的该更动位指示需要把将要被取代的主处理器102的该记忆页写入该储存装置,则可把将要被取代的主处理器102的该记忆页自共享式内存106写入该储存装置(即图1所示的装置110及(或)装置112)。
如前文所述,在步骤706中,将需要移除对应于与将要被移除的主处理器102的该记忆页对应的协同处理器104的每一记忆页表资料项402的TLB 118各资料项的信息通知协同处理器104。执行核心116的程序代码的协同处理器104于响应时,可找出对应于与将要被移除的主处理器102的该记忆页对应的协同处理器104的其中一个记忆页表资料项402的TLB 118的其中一个资料项。如果TLB 118的该其中一个资料项的该更动位指示需要将协同处理器104的该对应记忆页写入该储存装置,则协同处理器104可在共享式内存106中更新该对应的其中一个记忆页表资料项402的该更动位,以便指示需要将协同处理器104的该对应记忆页写入该储存装置。协同处理器104然后可清除TLB 118的该其中一个资料项。协同处理器104可为对应于与将要被移除的主处理器102的该记忆页对应的协同处理器104的每一记忆页表资料项402的TLB 118的所有资料项重复上述这些动作。
在决定需要被移除的主处理器102的该记忆页(例如主处理器102的第一记忆页)时,主处理器102可接收协同处理器104中的记忆页错误状况的指示(例如指示协同处理器104的一记忆页错误的来自协同处理器104的信息)。主处理器102可决定必须以该储存装置(即图1所示的装置110及(或)装置112)中储存的主处理器102的第二记忆页取代共享式内存106中储存的主处理器102的第一记忆页,以便清除协同处理器104的记忆页错误状况。
请再参阅图1,多处理器计算机网络100的主处理器102(诸如经由前文所述的总线10)及(或)共享式内存106)与协同处理器104通讯。主处理器102及协同处理器104可诸如经由信息而通讯。在主处理器102与协同处理器104之间交换的信息可包括诸如″CreateProcess″信息。主处理器1 02可将″CreateProcess″信息传送到协同处理器104,以便指示程序要安排时程以供执行。该″CreateProcess″信息可包括用来指示该程序″程序识别码″、以及由主处理器操作系统206(图2)所产生且与该程序相关联的最高顺序的记忆页表的基址。当该程序要被执行时(即要变成现用程序时),协同处理器104的核心116可将该最高顺序的记忆页表的该基址储存在前文所述的协同处理器104的记忆页表基址缓存器。
主处理器102亦可将″PageAdded″信息传送到协同处理器104,以便指示已将协同处理器104的特定记忆页储存在(即加入)共享式内存106中。该″PageAdded″信息可包含用来识别可能需要存取该加入的记忆页的程序的″程序识别码″、以及该加入的记忆页的基址。当执行具有该″程序识别码″的程序时,协同处理器104的核心116可移除(或指示移除)TLB 118中对应于该加入的记忆页的该基址的任何资料项。如果是由于执行程序时的记忆页错误状况而加入该加入的记忆页,则核心116可恢复该程序的执行。
主处理器102亦可将″PageRemoved″信息传送到协同处理器104,以便指示已自共享式内存106协同处理器104的特定记忆页。该″PageRemoved″信息可包含用来识别可能具有与被移除记忆页的一对映关系的程序的″程序识别码″、以及该被移除记忆页的基址。当执行具有该″程序识别码″的程序时,协同处理器104的核心116可移除(或指示移除)TLB 118中对应于该被移除记忆页的该基址的任何资料项。
协同处理器104可将″ProcessStoppedDueToPageFault″信息传送到主处理器102,以便指示由于记忆页错误状况而已经中止某一程序的执行。该″ProcessStoppedDueToPageFault″信息可包含用来识别由于该记忆页错误而停止的程序的″程序识别码″、造成该记忆页错误状况的虚拟地址、以及指示为了清除该记忆页错误状况而对加入的记忆页的存取必须是只读或读取-写入的写入旗标。
主处理器操作系统206可响应来自协同处理器104的该″ProcessStoppedDueToPageFault″信息,而将主处理器102的记忆页置入共享式内存106中包含一对应于造成该记忆页错误的该虚拟地址的实体地址的实体地址范围。主处理器操作系统206可标示该所需存取的记忆页,并可更新主处理器记忆页表200及协同处理器记忆页表202。如前文所述,主处理器102的该加入的记忆页可对应于协同处理器104的一个或多个″加入的″记忆页。主处理器102可将一个或多个″PageAdded″信息传送到协同处理器104,以便识别对应于主处理器102的该加入的记忆页的协同处理器104的该等一个或多个加入的记忆页。
请注意,协同处理器104的TLB118图1的该等资料项无须包含更动(D)位,即可使用第7A至B图所示的方法700。此外,可以硬件(例如一数字逻辑电路)来执行协同处理器104的核心116(图1)的作业。
前文所揭示的特定的实施例只是举例说明,这是因为本领域普通技术人员在参阅本发明的揭示事项之后,可易于以不同但等同的方式来修改并实施本发明。此外,除了下文的权利要求所述之外,并非将本发明限于本文所示出的结构或设计的细节。因而,显然可改变或修改前文所揭示的特定的实施例,且将所有此类变化视为在本发明的范围及精神之内。因此,本发明所寻求的保护是述于下文的权利要求之中。

Claims (11)

1.一种计算机系统(100),包含:
第一处理器(102);
与该第一处理器(102)通讯的第二处理器(104);
可作业而耦合到该第一处理器(102)及第二处理器(104)且包含多个记忆位置的内存;以及可作业而耦合到该第一处理器(102)之一储存装置(110或112);
其中该第一处理器(102)及第二处理器(104)被设定成利用该内存(106)实施虚拟内存;
其中该第一处理器(102)被设定成在该内存(106)中产生并维护第一组记忆页表及第二组记忆页表,并将该第一组记忆页表用来存取该内存(106)内的记忆位置;以及
其中该第二处理器(104)被设定成将该第二组记忆页表用来存取该内存(106)内的记忆位置。
2.根据权利要求1所述的计算机系统(100),其中,该第一处理器(102)被设计成利用该第一组记忆页表将该第一处理器(102)中生成的虚拟地址翻译相应的位于内存(106)中的实体地址,并利用该内存位置的实体地址访问该内存位置。
3.根据权利要求1所述的计算机系统(100),其中,该第二处理器(104)被设计成利用该第二组记忆页表将该第二处理器(104)中生成的虚拟地址翻译相应的位于内存(106)中的实体地址,并利用该内存位置的实体地址访问该内存位置。
4.根据权利要求1所述的计算机系统(100),其中,该第二组记忆页表包括许多记忆页表资料项,而且当相应记忆页在内存(106)中时,每一个记忆页表资料项用于存储相应记忆页的基本地址。
5.根据权利要求4所述的计算机系统(100),其中,该第二处理器(104)包含缓冲器,且其中该缓冲器包含多个资料项,用以储存最近使用的各记忆页表资料项,并记录该第二处理器(104)对该对应的记忆页的写入作业。
6.根据权利要求5所述的计算机系统(100),其中,在以该储存装置(110或112)中储存的记忆页取代该内存中存在的记忆页之前,该第一处理器(102)被设定成先将需要移除该缓冲器中对应于将要被取代的该记忆页的实体地址范围的任何资料项的信息通知该第二处理器(104)。
7.一种用于包含第一处理器(102)及第二处理器(104)的多处理器系统的虚拟记忆页取代方法,该方法包括:
存取该第二处理器(104)的一组记忆页表资料项,其中该组记忆页表资料项的每一记忆页表资料项对应于该第二处理器(104)的一组记忆页的不同记忆页,且其中该第二处理器(104)的该组记忆页的每一记忆页被储存在内存(106)中,且对应于该第一处理器(102)中将要自该内存(106)移除的第一记忆页,且其中该第二处理器(104)的每一记忆页表资料项包含存在位及更动位,且其中该存在位具有用来指示该第二处理器(104)的该对应记忆页是否存在于该内存(106)中,且其中该更动位具有用来指示是否需要将该第二处理器(104)的该对应记忆页写入储存装置;
改变该组记忆页表资料项的每一记忆页表资料项的该存在位的值,以便指示该内存(106)中并未存在有该第二处理器(104)的该对应记忆页,其中执行该改变,因而并不改变该组记忆页表资料项的每一记忆页表资料项的更动位值;
将需要移除该第二处理器(104)的一缓冲器中对应于该组记忆页的记忆页的任何资料项的信息通知该第二处理器(104),其中该缓冲器包含多个资料项;
读取该组记忆页表资料项的每记忆页表资料项;其中是在该通知之后才执行该读取的;
读取对应于该第一处理器(102)的该第一记忆页的记忆页表资料项,其中该记忆页表资料项包含更动位,用以示是否需要将第一位写入该储存装置;以及
如果(i)在读取该组记忆页表资料项的每一记忆页表资料项期间所得到的该组记忆页表资料项中的至少一个记忆页表资料项的更动位指示需要将该第二处理器(104)的该对应记忆页写入该储存装置,或(ii)在读取该第一处理器(102)的该记忆页表资料项期间所得到的该记忆页表资料项的该更动位指示需要将该第一处理器(102)的第一记忆页写入该储存装置,则将该第一处理器(102)的第一记忆页自内存(106)写入该储存装置。
8.根据权利要求7所述的虚拟记忆页取代方法,其中,该通知步骤包含下列步骤:
将需要移除该第二处理器(104)的缓冲器中对应于该组记忆页的记忆页的任何资料项的信息通知该第二处理器(104),其中该缓冲器包含多个资料项,且其中该缓冲器的每一资料项包含更动位,用以指示是否需要将该第二处理器(104)的对应记忆页写入该储存装置;且其中该虚拟记忆页取代方法进一步包含下列步骤:
以下列步骤响应该通知步骤:
找出该缓冲器中对应于该组记忆页的记忆页的资料项;如果对应于该组记忆页的记忆页的该资料项的该更动位指示需要将该组记忆页的该记忆页写入该储存装置,则更新该第二处理器(104)中对应于该组记忆页的该记忆页的记忆页表资料项的该更动位,以便指示需要将该组记忆页的记忆页写入该储存装置;以及
清除对应于该组记忆页的记忆页的该资料项。
9.根据权利要求7所述的虚拟记忆页取代方法,其中,该通知包括:将信息传送到该第二处理器(104),以便指示需要清除该第二处理器(104)的该缓冲器中对应于该组记忆页的记忆页的任何资料项。
10.根据权利要求7所述的虚拟记忆页取代方法,其中,接收该第二处理器(104)中记忆页错误状况的指示;以及决定必须以该储存装置中储存的该第一处理器(102)的第二记忆页取代该内存(106)中储存的该第一处理器(102)的第一记忆页,以便清除该第二处理器(104)中的该记忆页错误状况。
11.一种系统,包含:
第一处理器(102);
与该第一处理器(102)通讯的第二处理器(104);
可作业而耦合到该第一处理器(102)及第二处理器(104)的内存(106);
可作业而耦合到该第一处理器(102)的储存装置(110或112);
存取装置,用以存取该第二处理器(104)的一组记忆页表资料项,其中该组记忆页表资料项的每一记忆页表资料项对应于该第二处理器(104)的一组记忆页的不同记忆页,且其中该第二处理器(104)的该组记忆页的每一记忆页被储存在内存(106)中,且对应于该第一处理器(102)中将要自该内存(106)移除的第一记忆页,且其中该第二处理器(104)的每一记忆页表资料项包含存在位及更动位,且其中该存在位具有用来指示该第二处理器(104)的该对应记忆页是否存在于该内存(106)中的值,且其中该更动位具有用来指示是否需要将该第二处理器(104)的该对应记忆页写入该储存装置(110或112)的值;
存在位值改变装置,用以改变该组记忆页表资料项的每一记忆页表资料项的该存在位的值,以便指示该内存并未存在有该第二处理器(104)的该对应记忆页,其中执行该改变,因而并不改变该组记忆页表资料项的每一记忆页表资料项的该更动位值;
通知对应该组记忆页的每一记忆页的用以需要移除该第二处理器(104)的缓冲器的任何资料项的第二处理器(104);
读取该组记忆页表资料项的每记忆页表资料项的装置,其中在该通知之后才执行该读取;
读取对应于该第一处理器(102)的该第一记忆页的一记忆页表资料项的装置,其中该记忆页表资料项包含更动位,用以指示是否需要将第一位写入该储存装置(110或112);以及
写入装置,用以在发生下列的情形时将该第一处理器(102)的该第一记忆页自该内存(106)写入该储存装置,这些情形包括:(i)在读取该组记忆页表资料项的每一记忆页表资料项期间所得到的该组记忆页表资料项中的至少一个记忆页表资料项的更动位指示需要将该第二处理器(104)的该对应记忆页写入该储存装置(110或112),或(ii)在读取该第一处理器(102)的该记忆页表资料项期间所得到的该记忆页表资料项的该更动位指示需要将该第一处理器(102)的该第一记忆页写入该储存装置(110或112)。
CNB028088212A 2001-04-24 2002-02-01 使用共享内存施行虚拟记忆的多元处理系统以及维持分页记忆整合性的记忆页更换方法 Expired - Lifetime CN1275163C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/841,469 US6684305B1 (en) 2001-04-24 2001-04-24 Multiprocessor system implementing virtual memory using a shared memory, and a page replacement method for maintaining paged memory coherence
US09/841,469 2001-04-24

Publications (2)

Publication Number Publication Date
CN1524228A true CN1524228A (zh) 2004-08-25
CN1275163C CN1275163C (zh) 2006-09-13

Family

ID=25284958

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028088212A Expired - Lifetime CN1275163C (zh) 2001-04-24 2002-02-01 使用共享内存施行虚拟记忆的多元处理系统以及维持分页记忆整合性的记忆页更换方法

Country Status (9)

Country Link
US (1) US6684305B1 (zh)
EP (1) EP1405191B1 (zh)
JP (1) JP4105551B2 (zh)
KR (1) KR100880685B1 (zh)
CN (1) CN1275163C (zh)
AU (1) AU2002242048A1 (zh)
DE (1) DE60235984D1 (zh)
TW (1) TW574646B (zh)
WO (1) WO2002086730A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012037706A1 (en) * 2010-09-24 2012-03-29 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
CN101452423B (zh) * 2007-12-06 2012-07-18 Arm有限公司 控制硬件加速器内数据值的清除
CN103430145A (zh) * 2011-03-15 2013-12-04 英特尔公司 页面错误应对机制
CN104536740A (zh) * 2010-09-24 2015-04-22 英特尔公司 计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享
CN105144122A (zh) * 2013-03-14 2015-12-09 高通股份有限公司 外部可编程存储器管理单元
CN105637492A (zh) * 2013-10-04 2016-06-01 高通股份有限公司 多核异构系统转换后备缓冲器相干性

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006634B1 (en) * 2000-09-28 2006-02-28 Cisco Technology, Inc. Hardware-based encryption/decryption employing dual ported key storage
US6980649B1 (en) * 2001-12-10 2005-12-27 Cisco Technology, Inc. Hardware-based encryption/decryption employing dual ported memory and fast table initialization
US7003630B1 (en) * 2002-06-27 2006-02-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor storage hierarchies
US7017025B1 (en) * 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
US7529906B2 (en) * 2003-08-18 2009-05-05 Cray Incorporated Sharing memory within an application using scalable hardware resources
US7577816B2 (en) * 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7197585B2 (en) * 2002-09-30 2007-03-27 International Business Machines Corporation Method and apparatus for managing the execution of a broadcast instruction on a guest processor
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US20040093536A1 (en) * 2002-11-12 2004-05-13 Weller Christopher Todd System and method for providing coherency during the evaluation of a multiprocessor system
US7284100B2 (en) * 2003-05-12 2007-10-16 International Business Machines Corporation Invalidating storage, clearing buffer entries, and an instruction therefor
US9454490B2 (en) 2003-05-12 2016-09-27 International Business Machines Corporation Invalidating a range of two or more translation table entries and instruction therefore
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7743223B2 (en) * 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7503048B1 (en) 2003-08-18 2009-03-10 Cray Incorporated Scheduling synchronization of programs running as streams on multiple processors
US7543133B1 (en) * 2003-08-18 2009-06-02 Cray Inc. Latency tolerant distributed shared memory multiprocessor computer
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7519771B1 (en) 2003-08-18 2009-04-14 Cray Inc. System and method for processing memory instructions using a forced order queue
JP2005275629A (ja) * 2004-03-23 2005-10-06 Nec Corp マルチプロセッサシステム、及び、メモリアクセス方法
US20050273571A1 (en) * 2004-06-02 2005-12-08 Lyon Thomas L Distributed virtual multiprocessor
US20060004941A1 (en) * 2004-06-30 2006-01-05 Shah Hemal V Method, system, and program for accessesing a virtualized data structure table in cache
US8667249B2 (en) * 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
US7490215B2 (en) * 2004-12-22 2009-02-10 Intel Corporation Media memory system and method for providing concurrent memory access to a plurality of processors through separate translation table information
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US8839450B2 (en) * 2007-08-02 2014-09-16 Intel Corporation Secure vault service for software components within an execution environment
US7953980B2 (en) 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US20070005927A1 (en) * 2005-06-30 2007-01-04 Khosravi Hormuzd M Systems and methods for remote triggering of page faults
US7669242B2 (en) * 2005-06-30 2010-02-23 Intel Corporation Agent presence monitor configured to execute in a secure environment
US7739476B2 (en) * 2005-11-04 2010-06-15 Apple Inc. R and C bit update handling
CN100454241C (zh) * 2006-02-28 2009-01-21 华为技术有限公司 一种在共享内存中存储c++对象的方法及装置
US7882318B2 (en) * 2006-09-29 2011-02-01 Intel Corporation Tamper protection of software agents operating in a vitual technology environment methods and apparatuses
US7802050B2 (en) * 2006-09-29 2010-09-21 Intel Corporation Monitoring a target agent execution pattern on a VT-enabled system
KR100827720B1 (ko) 2006-10-16 2008-05-07 엠텍비젼 주식회사 접근 제어 장치를 가지는 듀얼 포트 메모리, 듀얼 포트메모리를 가지는 메모리 시스템 및 듀얼 포트 메모리의접근 제어 방법
KR100787856B1 (ko) 2006-11-29 2007-12-27 한양대학교 산학협력단 플래시 메모리 저장장치의 페이지 교체 방법
KR100866627B1 (ko) 2007-01-29 2008-11-03 삼성전자주식회사 컨트롤 플로우를 이용한 페이지 프리로드 방법 및 그시스템
US8539164B2 (en) * 2007-04-30 2013-09-17 Hewlett-Packard Development Company, L.P. Cache coherency within multiprocessor computer system
US20080307190A1 (en) * 2007-06-07 2008-12-11 Richard Louis Arndt System and Method for Improved Virtual Real Memory
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8099718B2 (en) * 2007-11-13 2012-01-17 Intel Corporation Method and system for whitelisting software components
US20090164715A1 (en) * 2007-12-20 2009-06-25 International Business Machines Corporation Protecting Against Stale Page Overlays
US8332660B2 (en) * 2008-01-02 2012-12-11 Arm Limited Providing secure services to a non-secure application
US8775824B2 (en) * 2008-01-02 2014-07-08 Arm Limited Protecting the security of secure data sent from a central processor for processing by a further processing device
US8667504B2 (en) 2008-06-20 2014-03-04 Netapp, Inc. System and method for achieving high performance data flow among user space processes in storage system
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit
US8364601B2 (en) * 2008-12-31 2013-01-29 Intel Corporation Methods and systems to directly render an image and correlate corresponding user input in a secure memory domain
US8645634B1 (en) * 2009-01-16 2014-02-04 Nvidia Corporation Zero-copy data sharing by cooperating asymmetric coprocessors
US20110167210A1 (en) * 2009-10-16 2011-07-07 Samsung Electronics Co., Ltd. Semiconductor device and system comprising memories accessible through dram interface and shared memory region
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US8516220B2 (en) * 2010-05-11 2013-08-20 Intel Corporation Recording dirty information in software distributed shared memory systems
US8392628B2 (en) * 2010-07-16 2013-03-05 Hewlett-Packard Development Company, L.P. Sharing memory spaces for access by hardware and software in a virtual machine environment
KR101233109B1 (ko) * 2010-09-13 2013-02-15 한국과학기술원 캐쉬 일관성을 맞추기 위해 멀티 코어들 간에 발생하는 통신량을 감소시키는 시스템 및 방법
KR101671494B1 (ko) 2010-10-08 2016-11-02 삼성전자주식회사 공유 가상 메모리를 이용한 멀티 프로세서 및 주소 변환 테이블 생성 방법
US20120233439A1 (en) 2011-03-11 2012-09-13 Boris Ginzburg Implementing TLB Synchronization for Systems with Shared Virtual Memory Between Processing Devices
US8683175B2 (en) * 2011-03-15 2014-03-25 International Business Machines Corporation Seamless interface for multi-threaded core accelerators
US8578142B2 (en) * 2011-05-13 2013-11-05 Mcafee, Inc. System and method for shared data storage
US9767039B2 (en) * 2011-07-18 2017-09-19 Vmware, Inc. Increasing granularity of dirty bit information in hardware assisted memory management systems
US8719464B2 (en) * 2011-11-30 2014-05-06 Advanced Micro Device, Inc. Efficient memory and resource management
US8578129B2 (en) * 2011-12-14 2013-11-05 Advanced Micro Devices, Inc. Infrastructure support for accelerated processing device memory paging without operating system integration
US9311250B2 (en) 2011-12-19 2016-04-12 Intel Corporation Techniques for memory de-duplication in a virtual system
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
JP5949188B2 (ja) 2012-06-08 2016-07-06 日本電気株式会社 密結合マルチプロセッサシステム
US9182984B2 (en) 2012-06-15 2015-11-10 International Business Machines Corporation Local clearing control
US9405561B2 (en) * 2012-08-08 2016-08-02 Nvidia Corporation Method and system for memory overlays for portable function pointers
GB2504772A (en) 2012-08-10 2014-02-12 Ibm Coprocessor providing service address space for diagnostics collection
US9378572B2 (en) * 2012-08-17 2016-06-28 Intel Corporation Shared virtual memory
US9086986B2 (en) * 2012-09-07 2015-07-21 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
US9086987B2 (en) * 2012-09-07 2015-07-21 International Business Machines Corporation Detection of conflicts between transactions and page shootdowns
DE102013022169A1 (de) 2013-03-14 2014-09-18 Nvidia Corporation Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem
US10303616B2 (en) 2013-03-14 2019-05-28 Nvidia Corporation Migration scheme for unified virtual memory system
US9396513B2 (en) * 2013-08-05 2016-07-19 Intel Corporation Using group page fault descriptors to handle context switches and process terminations in graphics processors
US9881592B2 (en) 2013-10-08 2018-01-30 Nvidia Corporation Hardware overlay assignment
US9336413B2 (en) * 2013-11-22 2016-05-10 Oracle International Corporation Method and system for fast permission changes for virtual addresses
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
US20150301955A1 (en) * 2014-04-21 2015-10-22 Qualcomm Incorporated Extending protection domains to co-processors

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4092715A (en) 1976-09-22 1978-05-30 Honeywell Information Systems Inc. Input-output unit having extended addressing capability
US5497480A (en) * 1990-12-31 1996-03-05 Sun Microsystems, Inc. Broadcast demap for deallocating memory pages in a multiprocessor system
JPH0997214A (ja) 1995-09-29 1997-04-08 Internatl Business Mach Corp <Ibm> 補助プロセッサのためのアドレス変換を含む情報処理システム
US5987582A (en) 1996-09-30 1999-11-16 Cirrus Logic, Inc. Method of obtaining a buffer contiguous memory and building a page table that is accessible by a peripheral graphics device
US5809563A (en) * 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US6345352B1 (en) * 1998-09-30 2002-02-05 Apple Computer, Inc. Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions
US6286092B1 (en) * 1999-05-12 2001-09-04 Ati International Srl Paged based memory address translation table update method and apparatus
US6263403B1 (en) * 1999-10-31 2001-07-17 Hewlett-Packard Company Method and apparatus for linking translation lookaside buffer purge operations to cache coherency transactions

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452423B (zh) * 2007-12-06 2012-07-18 Arm有限公司 控制硬件加速器内数据值的清除
WO2012037706A1 (en) * 2010-09-24 2012-03-29 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
US8997113B2 (en) 2010-09-24 2015-03-31 Intel Corporation Sharing virtual functions in a shared virtual memory between heterogeneous processors of a computing platform
CN104536740A (zh) * 2010-09-24 2015-04-22 英特尔公司 计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享
CN104536740B (zh) * 2010-09-24 2018-05-08 英特尔公司 计算平台的异质处理器之间的共享虚拟存储器中的虚函数共享
CN103430145A (zh) * 2011-03-15 2013-12-04 英特尔公司 页面错误应对机制
CN105144122A (zh) * 2013-03-14 2015-12-09 高通股份有限公司 外部可编程存储器管理单元
US10114756B2 (en) 2013-03-14 2018-10-30 Qualcomm Incorporated Externally programmable memory management unit
CN105637492A (zh) * 2013-10-04 2016-06-01 高通股份有限公司 多核异构系统转换后备缓冲器相干性
CN105637492B (zh) * 2013-10-04 2018-04-20 高通股份有限公司 多核异构系统转换后备缓冲器相干性

Also Published As

Publication number Publication date
EP1405191B1 (en) 2010-04-14
EP1405191A2 (en) 2004-04-07
US6684305B1 (en) 2004-01-27
DE60235984D1 (de) 2010-05-27
JP2005500592A (ja) 2005-01-06
WO2002086730A2 (en) 2002-10-31
CN1275163C (zh) 2006-09-13
JP4105551B2 (ja) 2008-06-25
KR20030092101A (ko) 2003-12-03
TW574646B (en) 2004-02-01
KR100880685B1 (ko) 2009-01-30
WO2002086730A3 (en) 2003-03-27
AU2002242048A1 (en) 2002-11-05

Similar Documents

Publication Publication Date Title
CN1275163C (zh) 使用共享内存施行虚拟记忆的多元处理系统以及维持分页记忆整合性的记忆页更换方法
CN1153145C (zh) 预加载不同缺省地址转换属性的方法和装置
CN1278244C (zh) 内存管理系统及依据线性地址的内存存取保密的方法
US7484072B2 (en) Page replacement policy for systems having multiple page sizes
CA2736035C (en) Opportunistic page largification
EP1818832B1 (en) Method and apparatus for reducing page replacement time in system using demand paging technique
CN1389790A (zh) 闪速存储器管理方法
CN1509436A (zh) 以推测方式使高速缓存中的缓存行失效的方法及系统
US20090024820A1 (en) Memory Allocation For Crash Dump
US20070106875A1 (en) Memory management
US8145870B2 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation
CN1815462A (zh) 迁移数据页面的方法和装置
JPH05233458A (ja) コンピュータシステムのメモリ管理装置
TWI417724B (zh) 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品
CN1846200A (zh) 在处理器中用于减少功耗的微变换检测缓冲器及微标记符
JPS62174849A (ja) メモリ管理システム
JPH05233425A (ja) メモリ管理装置
JP3872968B2 (ja) コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法
CN1285038C (zh) 控制装置对内存的访问以提供增强的内存访问安全的系统与方法
US20050193169A1 (en) Memory management
US20060123196A1 (en) System, method and computer program product for application-level cache-mapping awareness and reallocation requests
US7644114B2 (en) System and method for managing memory
EP0543032A1 (en) Expanded memory addressing scheme
CN1045473A (zh) 环换算逻辑机制
Ozcelebi et al. Memory management (part 2) Virtual memory

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
ASS Succession or assignment of patent right

Owner name: ADVANCED MICRO DEVICES INC

Free format text: FORMER OWNER: ADVANCED MICRO DEVICES INC.

Effective date: 20100708

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA TO: GRAND CAYMAN ISLAND RITISH CAYMAN ISLANDS

TR01 Transfer of patent right

Effective date of registration: 20100708

Address after: Grand Cayman, Cayman Islands

Patentee after: Globalfoundries Semiconductor Inc.

Address before: American California

Patentee before: Advanced Micro Devices Inc.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210421

Address after: California, USA

Patentee after: Lattice chip (USA) integrated circuit technology Co.,Ltd.

Address before: Greater Cayman Islands, British Cayman Islands

Patentee before: GLOBALFOUNDRIES Inc.

CX01 Expiry of patent term

Granted publication date: 20060913

CX01 Expiry of patent term