比较及替换动态地址转换表项的制作方法

文档序号:8926995阅读:254来源:国知局
比较及替换动态地址转换表项的制作方法
【技术领域】
[0001] 总体上讲,本发明涉及计算环境中的处理,具体地讲,本发明涉及以下一或者多种 情况:比较及替换地址表中的项;清除缓冲器项以及用于以上操作的指令。
【背景技术】
[0002] 如2003年5月12日申请的申请号为7284100的、名为"INVALIDATINGSTORAGE, CLEARINGBUFFERENTRIES,ANDANINSTRUCTIONTHEREFORE"的美国专利中所描述的,使所 选择的诸如存储器段或者存储器区的存储器单元无效化。通过位于对应于将要无效化的存 储器单元的数据结构项中的无效化指示符的设置,简化无效化。另外,还清除与已无效化存 储器单元或者其它选定存储器单元相关联的缓冲器项。提供一条执行无效化与/或清除的 指令。而且,在无任何无效化的情况下清除与特定地址空间相关联的缓冲器项。也通过所 述指令执行所述清除。可以按软件、硬件、固件或者它们的某一组合实现所述指令,也可以 模拟该指令。

【发明内容】

[0003] 在一个实施例中,提供了一种用于有选择地清除一个处理器的本地转换后备缓冲 器(TranslationLookasideBuffer,TLB)或者多个处理器的多个转换后备缓冲器的计算 机程序产品。该计算机程序产品包括:计算机可读存储介质,其具有其中所包含的程序代 码,所述程序代码可以由计算机处理器加以读取,以执行某一方法。所述方法包括:由处理 器根据一条将要执行的机器可执行的操作码判定所述指令为一条比较及替换DA的项的指 令。所述指令包括&字段和R2字段,并且通过处理器执行所述指令。所述执行包括:从该 指令的R2字段指定的奇偶寄存器对的寄存器指定的存储器位置获得原始第二操作元;比较 第一操作元和所获得的原始第二操作元,第一操作元包含在由所述指令的&字段指定的奇 偶寄存器对的一个偶数编号(偶&)的寄存器中;根据第一操作元等于原始第二操作元,所 以将该偶&寄存器的内容作为新第二操作元存储于第二操作元位置中;并且根据原始第二 操作元的值指定的一个转换表原点、使用转换表项有选择地清除对应于根据DAT所形成的 项的所有本地转换后备缓冲器(TLB)项。
[0004] 在另一个实施例中,提供了一种用于执行比较及替换DAT项指令的系统。所述系 统包括:存储器;以及处理器,将其配置为能够与存储器进行通信,其中将所述计算机系统 配置为能够执行某一方法。所述方法包括:由处理器根据一条将要执行的机器可执行的操 作码判定所述指令为一条比较及替换DA的项的指令。所述指令包括&字段和R2字段,并且 由处理器执行该指令。所述执行包括:从该指令的馬字段指定的奇偶寄存器对的寄存器指 定的存储器位置获得原始第二操作元;比较第一操作元和所获得的原始第二操作元,第一 操作元包含在由所述指令的&字段指定的奇偶寄存器对的偶数编号(偶RJ的寄存器中; 根据第一操作元等于原始第二操作元,所以将该偶&寄存器的内容作为新第二操作元存储 于第二操作元位置中;并且根据原始第二操作元的值指定的一个转换表原点、使用转换表 项有选择地清除对应于根据DAT所形成的项的所有本地转换后备缓冲器(TLB)项。
[0005] 在另一个实施例中,提供一种用于比较第一操作元与第二地址转换表项的计算机 实现的方法。所述方法包括:由处理器根据一条将要执行的机器可执行的操作码判定所述 指令为一条比较及替换DA的项的指令。所述指令包括&字段和R 2字段,并且通过处理器 执行所述指令。所述执行包括:从该指令的馬字段指定的奇偶寄存器对的寄存器指定的存 储器位置获得原始第二操作元;比较第一操作元和所获得的原始第二操作元,第一操作元 包含在由所述指令的&字段指定的奇偶寄存器对的偶数编号(偶RJ的寄存器中;根据第 一操作元等于原始第二操作元,所以将该偶&寄存器的内容作为新第二操作元存储于第二 操作元位置中;并且根据原始第二操作元的值指定的转换表原点、使用转换表项有选择地 清除对应于根据DAT所形成的项的所有本地转换后备缓冲器(TLB)项。
[0006] 通过所描述的技术实现更多的特性及优点。此处详细地描述了其它实施例及方 面,并且认为包括所述其它实施例及方面。
【附图说明】
[0007] 通过以下结合附图的详细描述,更多的目的、特性以及优点将变得十分明显,其 中:
[0008] 图1描述了并入及使用一或多个方面的计算环境的一个实施例;
[0009] 图2描述了与图1的控制器相关联的更多细节的一个实施例;
[0010] 图3描述了可以模拟另一个计算机的主计算机的一个实施例;
[0011] 图4描述了 COMPARE AND REPLACE DAT TABLE ENTRY指令的指令图像及其操作;
[0012] 图 5 描述了 COMPARE AND REPLACE DAT TABLE ENTRY 指令的寄存器操作元;
[0013] 图6描述了 M4字段;以及
[0014] 图7描述了计算机可读介质。
【具体实施方式】
[0015] 计算环境可以使用通常维持于辅助存储器中的虚拟存储器,以增加可用存储器的 大小。当引用虚拟存储器的页时,通过动态地址转换将用于引用页的虚拟地址转换为真实 存储器地址。如果该转换成功,则虚拟存储器有效;否则,其无效。页表项中的无效比特将 虚拟存储器的页指示为有效或者无效,如果该页有效,则所述项包括真实存储器地址。
[0016] 可以一次一页地使存储器的页无效化。例如,在基于由International Business Machines Corporation所提供的z/Architecture的计算环境中,使用被称为无效化页表 项(Invalidate Page Table Entry, IPTE)指令的指令,无效化虚拟存储器中的一个或者多 个页。无效化包括在与虚拟存储器相关联且位于物理主存储器中的控制结构中设置一个无 效指示符,以指示虚拟存储器中的位置的虚拟地址不能通过动态地址转换转换为物理主存 储器地址,所述物理主存储器地址也被称为真实地址。另外,还使用所述指令清除与页相关 联的内部机器缓冲器项,可以在动态地址转换期间使用所述项,以避免对物理主存储器中 的控制结构的访问。例如,在z/Architecture中,存在在虚拟地址至真实地址的动态地址 转换期间所使用的转换后备缓冲器。当使存储器的页无效化时,也从对应的缓冲器清除与 所述页相关联的项。
[0017] 也存在能够去除整个转换后备缓冲器的指令。例如,在z/Architecture中,一条 被称为比较与交换及去除(Compare and Swap and Purge, CSP)指令的指令去除配置中所 有CPU中转换后备缓冲器的所有项;PURGE TLB清除执行该指令的CPU上的TLB的所有项。
[0018] 转换后备缓冲器
[0019] 为了提高性能,通常采用动态地址转换机制,以能够在被称为转换后备缓冲器 (TLB)的特殊缓冲器中维持区表、段表以及页表中指定的某些的某些信息。仅当对DAT表 项进行初始访问时,CPU才需引用真实或者绝对存储器中的该项。可以将此信息放置在TLB 中,且可以使用TLB中的信息执行后继转换。为了操作的一致性,也可以使用TLB中的信息 执行通过真实空间指定指定的虚拟等于真实转换(virtual-equals-real translation)。 TLB的存在在如下程度上影响转换过程:(1)真实或者绝对存储器中的表项的内容的修改 未必对转换具有立即功效(如果存在);(2)地址空间控制元素(address-space-control element,ASCE)中的区第一表原点、区第二表原点、区第三表原点、段表原点或者真实空间 标记原点可以选择由含有相同值的原点的ASCE所形成的TLB项,即使当两个原点属于不同 类型时;以及(3)如果使用已指定的表的TLB等效者,则可以省略对地址空间控制元素中的 表长度的比较。在多CPU配置中,每一 CPU具有其自己的TLB。
[0020] TLB内的项不可以由程序显式寻址。
[0021] 不必在所有准许将信息保持于TLB中的条件下,都将信息保持于TLB中。此外,在 除了那些对于其清除为强制的条件之外的条件下也可以清除TLB中的信息。
[0022] TLB 结构
[0023] TLB的逻辑结构的描述涵盖按z/Architecture的定义操作的所有系统的实现。将 TLB项考虑为具有下列六种类型:TLB区第一表项、TLB区第二表项、TLB区第三表项(统称 为TLB区表项)、TLB段表项、TLB页表项,以及TLB真实空间项。TLB区表项、TLB段表项或 者TLB页表项被视为其内既含有从真实或者绝对存储器中的表项所获得的信息,也含有用 于从存储器提取所述信息的属性。TLB真实空间项被视为含有用于形成该项的页帧真实地 址及真实空间标记原点及区、段、以及页索引。
[0024] 可以将任何可使用的TLB区表项、TLB段表项、以及TLB页表项合并为一个被称为 TLB复合表项的单一项。相类似,某一实现可以组合表层的任何连续子集。当发生此情形 时,无需缓冲中间表原点、位移、以及长度。
[0025] 可以形成所述体系结构的先前版本中所描述的TLB组合式区及段表项(CRSTE)的 等效者,该等效者将表原点、区索引、段索引、以及公共段比特映射于段帧绝对地址或者页 表原点(以及其它已指定字段)。
[0026] 不能将TLB真实空间项中的标记原点与TLB复合表项、区表项、或者段表项中的表 原点加以区分。
[0027] 注意:以下章节描述了可以将信息放置在TLB中的条件、可以将来自TLB的信息用 于地址转换的条件,以及对转换表的改变如何影响转换过程。
[0028] TLB项的形成
[0029] 来自真实或者绝对存储器中的表项的TLB区表项、TLB段表项以及TLB页表项的 信息和程序对存储器中的表项内容的任何操控的功效取决于是否将存储器中的项附接于 具体的CPU,并且取决于所述项是否有效。
[0030] 表项的附接状态表明:将该表项附接于其的CPU可以尝试将该表项以用于隐式地 址转换,例外的是,可以附接针对主,即本地址空间的表项,即使当CPU不能从这些空间中 任一空间进行提取时。可以将表项一次附接于一个以上的CPU。
[0031] 表项的有效状态表明:与该表项相关联的区集合、区、段、或者页可用。当该项中的 区无效、段无效、或者页无效比特为0时,该项有效。
[0032] 凡当附接了该项且其有效,并且在用于转换时不导致转换规格异常时,可以将区 表项、段表项、或者页表项放置在TLB中。
[0033] 将用于转换虚拟地址的区表项(如果存在)及段表项(如果存在)称为 转换路径。当转换路径中的最高层表项处于附接地址空间控制元素(attaching address-space-control element, ASCE)指定的表内时,附接该最高层表项。"在表内"意 指ASCE中的原点及长度字段所判定。当满足所有以下条件时,ASCE为附接ASCE:
[0034] 1?当前PSW指定DAT接通。
[0035] 2.当前PSW不包含被识别的导致早期规格异常的错误。
[0036] 3. ASCE满足以下a、b、c、或者d中的要求。
[0037] a. ASCE为控制寄存器1中的主ASCE。
[0038] b. ASCE为控制寄存器7中的次ASCE,且满足以下要求中任何之一:
[0039] ? CPU处于次空间模式或者访问寄存器模式。
[0040] ? CPU处于主空间模式,且次要空间控制(控制寄存器0的比特37)为1。
[0041] ? LOAD PAGE TABLE ENTRY ADDRESS的%操作元显式允许对次要空间的访问,或 者显式允许访问寄存器转换。
[0042] ? MOVE WITH OPTIONAL SPECIFICATIONS 的任一操作元的操作元访问控制(0AC) 显式允许对次要空间的访问或者显式允许访问寄存器转换。
[0043] 对于用于以上两个条目中的术语"显式允许"的进一步的解释,参见以下程序设计 注意。
[0044] c. ASCE处于附接且有效的ASN第二表项(ASTE)或者可用ALBASTE中,且满足以下 要求中任何之一:
[0045] ? CPU处于访问寄存器模式。
[0046] ? LOAD PAGE TABLE ENTRY ADDRESS的M4字段显式允许执行访问寄存器转换。
[0047] ?MOVE WITH OPTIONAL SPECIFICATIONS的任一操作元的0AC显式允许执行访问 寄存器转换。
[0048] d. ASCE为控制寄存器13中的本ASCE。
[0049] 不管DAT是接通还是关闭,当当前PSW不含有被识别的导致早期规格异常错误且 满足以下条件任何之一时,ASCE也为附接ASCE:
[0050] ?当发生监视事件计数操作时,将本ASCE视为附接ASCE。
[0051] 当转换路径中的剩余表项中每一表项处于由在用于转换时将不导致转换规格异 常的下一较高层的附接且有效的项或者由下一较高层的可用TLB项指定的表内时,附接所 述剩余表项中每一表项。"在表内"意指由下一较高层项中的原点、位移、以及长度字段所判 定。在下一章节中解释可用TLB项。
[0052]当页表项处于由在用于转换时将不导致转换规格异常的附接且有效的段表项或 者可用TLB段表项指定的页表内时,附接该页表项。
[0053] 如果区表项或者段表项中的表类型比特(比特60及61)与该项在转换过程中使 用转换路径时将被遇到的层不一致,则该项导致转换规格异常。如果私用空间控制比特在 用于选择其的地址空间控制元素中为1且公共段比特在段表项中为1,则该项也导致转换 规格异常。当EDAT-2适用时,如果私用空间控制比特在用于选择其的地址空间控制元素中 为1且公共区比特在区第三表项中为1,则该项也导致转换规格异常。如果页表项中的比 特52为1,则该项导致转换规格异常。当EDAT-1不适用时,如果页表项中的比特55为1, 则该项也导致转换规格异常。
[0054] TLB真实空间使用了一个将要识别的早期规格异常,且满足以下条件任何之一:
[0055] ?当发生监视事件计数操作时,将本ASCE视为附接ASCE。
[0056] 当转换路径中剩余表项中的每一表项都处于由在用于转换时将不导致转换规格 异常的下一较高层的附接且有效的项或者由下一较高层的可用TLB项指定的表内时,附接 所述剩余表项中的每一表项。"在表内"意指由下一较高层项中的原点、位移、以及长度字段 所判定。在下一章节中解释可用TLB项。
[0057]当页表项处于由在用于转换时将不导致转换规格异常的附接且有效的段表项或 者可用TLB段表项指定的页表内时,附接该页表项。
[0058] 如果区表项或者段表项中的表类型比特(比特60及61)与该项在转换过程中使 用转换路径时将被遇到的层不一致,则该项导致转换规格异常。如果私用空间控制比特在 用于选择该私用空间控制比特的地址空间控制元素中为1且公共段比特在段表项中为1, 则该项也导致转换规格异常。当EDAT-2适用时,如果私用空间控制比特在用于选择该私用 空间控制比特的地址空间控制元素中为1且公共区比特在区第三表项中为1,则该项也导 致转换规格异常。如果页表项中的比特52为1,则该项导致转换规格异常。当EDAT-1不适 用时,如果页表项中的比特55为1,则该项也导致转换规格异常。
[0059] 服从以上所定义的附接且有效的约束,CPU可以在未来存储引用的预期中或者作 为指令的推测执行的结果形成TLB项。
[0060] 程序设计注意:在针对正附接的ASCE的以上条件列表中,条目3.b和3.C使用了 术语"显式允许…",如以下所解释的:
[0061] ?当M4字段为0010二进制时,LPTEA显式允许对次要空间的访问。
[0062] ?当M4字段为0001二进制时,LPTEA显式允许执行ART。
[0063] ?当操作元的0AC的比特8至9为10二进制、0AC的比特15为1、且次要空间控 制(控制寄存器〇的比特37)为1时,MVC0S的任一操作元显式允许对次要空间的访问。
[0064] ?当操作元的0AC的比特8至9为01二进制、且0AC的比特15为1时,MVC0S的 任一操作元显式允许执行ART。
[0065] TLB项的使用
[0066] TLB项的可用状态表明,对于隐式地址转换,CPU可以尝试使用TLB项。可用TLB 项附接下一较低层表(如果存在),且可能可用于隐式地址转换的具体取例。
[0067] 参照TLB项,术语"当前层"指的是根据其形成TLB项的转换表(区第一
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1