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

文档序号:8926995阅读:来源:国知局
] a.当RTTE格式控制及ACCF有效性控制均为1时,对于任何给定密钥控制保护检 查,CPU是否检测区第三表项中或者对应4K字节块的存储器密钥中的访问控制比特及提取 保护比特,是不可以预测的。因此,在将RTTE中的无效比特设置为0之前,对于区的构成4K 字节块的所有524, 288个存储器密钥中的相应字段,程序应确保区第三表项中的访问控制 比特及提取保护比特一致。
[0136] 在改变区第三表项中的ACCF有效性控制、访问控制比特或者提取保护比特之前, 且在改变区的524, 288个存储器密钥中任何之一中的访问控制比特或者提取保护比特之 前,程序应首先将区第三表项中的无效比特设置为1,且清除配置中所有TLB中的所有项, 如此章节中先前所描述的。
[0137] b.在区第三表项中,在将改变记录复写设置为0之前,程序应在区第三表项中将 无效比特设置为1,且清除配置中所有TLB中的所有项(例如,使用INVALIDATE DAT TABLE ENTRY)。如果使用 COMPARE AND REPLACE DAT TABLE ENTRY 或者清除 TLB 的 COMPARE AND SWAP AND PURGE的形式进行改变,则不要求使表项无效化。
[0138] 遵守这些操作步骤的失败可能导致不可以预测结果,可能包括延迟访问异常机器 检查,或者记录一个改变的失败。
[0139] 增强型DAT设施1
[0140] 增强型DAT设施1可用于实现z/Architecture的模型上。当安装及启用该设 施时,DAT转换可以产生由段表项中的STE格式控制判定的页帧真实地址或者段帧绝对地 址。当将所述设施安装于配置中时,控制寄存器0中的一个新比特启用该设施。注意:术语 EDAT-1适用在此文档中普遍用于描述当将增强型DAT设施1安装于配置中且由控制寄存器 〇启用时的条件。
[0141] 当EDAT-1适用时,以下额外功能可用于DAT过程:
[0142] ?将DAT保护比特添加于区表项,从而在段表项及页表项中提供了类似于DAT保护 比特的功能。
[0143] ?将STE格式控制添加于段表项。当STE格式控制为0时,除了页表项中的改变记 录复写指示改变比特的设置对于页是否可以被旁路之外,DAT按当前定义继续。
[0144] ?当STE格式控制为1时,段表项也包含以下内容:
[0145] 一指定1M字节块的绝对存储器位置的段帧绝对地址(而非页表原点)。
[0146] 一可以替换段的各存储器密钥中对应的比特,有选择地使用的访问控制比特及提 取保护比特。
[0147] 一一个判定段表项中访问控制比特及提取保护比特的有效性的比特。
[0148] 一一个指示改变比特的设置在段的各存储器密钥中是否可以被旁路的改变记录 复写。所述设施添加了PERFORM FRAME MANAGEMENT FUNCTION控制指令。该设施包括对以下 控制指令的增强或者改变:?LOAD PAGE-TABLE-ENTRY ADDRESS .MOVE PAGE,SET STORAGE KEY EXTENDED ? TEST PROTECTION
[0149] 增强型DAT设施2
[0150] 增强型DAT设施2可用于实现z/Architecture的模型上。当安装及启用该设施 时,DAT转换可以产生由区第三表项(如果存在)及段表项(如果存在)中格式控制判定 的页帧真实地址、段帧绝对地址或者区帧绝对地址。
[0151] 注意:术语EDAT-2适用在此文档中普遍用于描述当将增强型DAT设施2安装于配 置中且由控制寄存器0启用时的条件。
[0152] 当EDAT-2适用时,以下额外功能可用于DAT过程中:
[0153] .EDAT-1适用。
[0154] ?将格式控制添加于区第三表项(RTTE)。当RTTE格式控制为0时,DAT按与EDAT-1 适用时的情况一样的方式继续。
[0155] ?当RTTE格式控制为1时,区第三表项也含有以下内容:
[0156] -指定2G字节块的绝对存储器位置的区帧绝对地址(而非段表原点)。
[0157] 一可以替换段区的各存储器密钥中对应的比特,有选择地使用的访问控制比特及 提取保护比特。
[0158] 一一个判定区第三表项中访问控制比特及提取保护比特的有效性的比特。
[0159] 一一个指示改变比特的设置在区的各存储器密钥中是否可以被旁路的改变记录 复写。增强型DAT设施2添加了COMPARE AND REPLACE DATTABLE项指令,从而提供了有 效附接DAT表项的动态替换以及从已替换的项中对所创建的任何TLB项的有选择的清 除。增强型DAT设施2也包括对以下控制指令的增强或者改变:?INVALIDATE DAT TABLE ENTRY ? LOAD PAGE-TABLE-ENTRY ADDRESS ? MOVE PAGE ? PERFORM FRAME MANAGEMENT FUNCTION?TEST PROTECTION当安装增强型DAT设施2时,也安装增强型DAT设施1。
[0160] 当使段表项无效化时,INVALIDATE DAT TABLE ENTRY(IDTE)通过有选择地清除 TLB组合式区及段表项执行无效化及清除操作。IDTE也执行通过ASCE的清除操作。
[0161] 在IDTE指令的执行期间,使存储器(例如,虚拟存储器)的已指定部分无效化。 例如,将包括多个存储器页的存储器段或者包括多个存储器段的存储器区选择为无效化。 通过位于对应于将要无效化的存储器单元的数据结构项中的无效化指示符的设置有助于 无效化。在另一个方面中,清除与正被无效化的存储器或者其它存储器相关联的缓冲器项 (例如,转换后备缓冲器项)。另外,在另一方面中,在不影响未选择的地址空间的缓冲器 项且不执行无效化的情况下从缓冲器清除与选择的地址空间相关联的缓冲器项。在一个 实例中,将来自IBM K z/Architecture的、在此处被称为无效化动态地址转换(DAT)表项 (IDTE)指令的指令用于执行一或多个以上操作。
[0162] 无效化DAT表项
[0163] IDTE R1; R3, R2 [, MJ
[0164] 注意:术语"已指定CPU"对于受到这一指令影响的TLB的范围具有以下含义:
[0165] ?当未安装本地TLB清除设施时,或者当未安装该设施且M4字段中的本地清除控 制(LC)比特为0时,术语"已指定CPU"意指配置中所有CPU。
[0166] ?当安装了本地TLB清除设施且^字段中的LC比特为1时,术语"已指定CPU"仅 意指执行IDTE指令的CPU (本地CPU)。配置中所有其它CPU中的TLB可不受到影响。
[0167] 当通过ASCE的清除比特(通用寄存器R2的比特52)为0时,执行被称为无效化及 清除操作的操作,如下。使存储器中已指定区表项或者段表项或者从已指定项开始的项的 范围无效化,且从配置中已指定CPU中的转换后备缓冲器(TLB)清除(1)通过使用存储器 中已无效化项形成的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层TLB表 项形成的所有较低层TLB表项。可以将被清除的TLB项限制为其形成旨在转换已指定地址 空间中的地址的项。
[0168] 当通过ASCE的清除选项比特为1时,执行被称为通过ASCE的清除操作的操作,如 下。该操作并不执行存储器中的DAT表项的任何无效化,而是从配置中所有CPU中的TLB清 除其形成旨在转换已指定地址空间中的地址的所有区第一表项、区第二表项、区第三表项、 段表项以及页表项。
[0169]厘4字段的比特被定义如下:
[0170] ?保留的:忽略^字段的比特0至1,但应包含0;否则,之后程序可能会不兼容地 操作。
[0171]?格式控制摘要(FS):当EDAT-2适用时,M4字段的比特2为针对无效化及清除操 作的格式控制摘要(FS)。对于通过ASCE的清除操作且当EDAT-2不适用时,忽略M 4字段的 比特2。
[0172] 当指定类型(DT)(通用寄存器札的比特60至61)为00或者01二进制时,格式 控制摘要适用;当通用寄存器&中的DT为10或者11二进制时,忽略格式控制摘要。
[0173] ?本地清除控制(LC):当安装了本地TLB清除设施时,LC比特(M4字段的比特3) 控制是否仅清除本地CPU中的TLB,或者是否清除配置的所有CPU中的TLB。当未安装本地 TLB清除设施安装时,忽略M 4字段的比特3。
[0174] 无效化及清除操作
[0175] 当通用寄存器R2的比特52 (通过ASCE的清除选项比特)为0时,指定无效化及 清除操作。
[0176] 通用寄存器札的内容具有地址空间控制元素的格式,其中仅使用表原点(比特0 至51)及指定类型控制(DT)(比特60及61)。表原点指定其中一或多个项将被无效化的 DAT表,且DT指定该表的类型。
[0177] 忽略通用寄存器&的比特52至59、62、以及63。
[0178] 通用寄存器R2的比特0至43具有虚拟地址的区索引及段索引的格式。通常将由 DAT用于选择由通用寄存器&指定的表类型中的项的比特0至43的部分称为有效无效化 索引。
[0179] 通用寄存器&的比特60及61指定表类型及有效无效化索引,如下:
[0180] 忽略有效无效化索引右侧的通用寄存器R2的比特0至43的部分。
[0181] 通用寄存器&中的表原点及有效无效化索引指定将要无效化的DAT表项。通用寄 存器R 2的比特53至63为指定将要无效化的额外表项的数目的一个无正负号二进制整数。 因此,将要无效化项的数目为1至2, 048,对应于比特53至63的值。
[0182] 通用寄存器R2的比特44至51必须为0;否则,识别为规格异常。
[0183] 如果R3为非零,则通用寄存器1?3的内容具有地址空间控制元素的格式,其中仅使 用表原点(比特0至51)及指定类型控制(DT)(比特60及61)。这些内容用于选择将要清 除的TLB项。忽略通用寄存器R 3的比特52至59、62及63。如果1?3为0,则忽略通用寄存 器0的整个内容,且清除TLB项而不管用于形成它们的ASCE如何。
[0184] 除了总是忽略来自所得地址的比特位置0的进位且不对照表长度字段检查该索 引之外,通用寄存器&中的表原点及通用寄存器R 2中的有效无效化索引根据2010年8月的 IBM 出版物第 SA22-7832-08 号的"z/Architecture Principles of Operation"中"Lookup in a Table Designated by an Address-Space-Control Element" 中的规则指定表项,特 将该出版物的全部内容并入此处,以作参考。表原点被视为64比特地址,且使用针对64比 特地址运算的规则执行相加,而不管由当前PSW的比特31及32指定的当前寻址模式如何。 由此两个分量形成的地址为真实或者绝对地址。将此区表项或者段表项的无效比特(比特 58)设置为1。在此操作步骤期间,未针对格式错误或者针对项中下一较低层表的原点是否 将导致寻址异常检查该项。忽略项中的表类型字段。如果项为段表项,则忽略该项中的公 共段比特。如果EDAT-2适用且项为区第三表项,则忽略该项中的公共区比特。
[0185] 从存储器并行地提取整个表项。随后,存储包含无效比特的字节。对该项的提取 访问受到密钥控制保护,且存储访问受到密钥控制保护及低地址保护。
[0186] 如果通用寄存器R2的比特53至63并非全为0,则通过将1加至有效无效化索引 的先前使用值重复在区表项或者段表项中将无效比特设置为1,且此重复进行达比特53至 63指定的次数。忽略有效无效化索引的最左侧比特位置外的进位,且在此情况下表中出现 环绕式处理。通用寄存器R 2的内容保持不变。
[0187] 在操作开始之前执行序列化功能,且在操作完成之后再次执行这一功能。如针对 所有序列化操作的情况一样,此序列化仅应用于此CPU ;其它CPU不必被序列化。
[0188] 在此CPU已将无效比特设置为1之后,此CPU从其TLB清除选择的项。接下来,如 果未安装本地TLB清除设施,或者如果安装了该设施且^字段中的LC比特为0,则此CPU 向配置中所有其它CPU发送信号,以从它们的TLB清除选择的项。从每一受影响TLB清除 那些至少满足所有以下条件的项:
[0189] ?通用寄存器R2中的有效无效化索引匹配于由通用寄存器R i的比特60至61中的 DT字段指定的类型的TLB表项中的对应的索引。如果所述模型实现了一个包括由DT字段 指定的索引的复合TLB项,则通用寄存器R 2中的有效索引左侧的比特也匹配于已指定TLB 表项中提供的任何对应的比特。应注意,当多个表项因通用寄存器R 2的比特53至63而无 效化时,则使有效无效化索引递增,丢弃在该索引的最左侧比特位置外的进位,且针对如此 获得的索引的每一个值清除TLB区表项或者段表项。
[0190] *R3字段为0,或者通用寄存器1?3中的表原点及指定类型字段匹配于用于形成TLB 表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。
[0191] ?如果R3字段为0,则此步骤中所描述的条件不适用。
[0192] ?如果存储器中无效化的项指定较低层转换表,则已无效化项中的较低层表原点 匹配于TLB表项中的表原点字段。
[0193] 也从每一受影响TLB清除至少满足所有以下条件的任何较低层TLB表项:
[0194] ?通过使用存储器中无效化的项或者通过使用较高层TLB表项形成较低层TLB表 项,其中,所述较高层TLB表项是通过使用存储器中无效化的项或者在此过程中清除的TLB 项所形成的。
[0195] *R3字段为0,或者通用寄存器1?3中的表原点及指定类型字段匹配于用于形成较低 层TLB表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。此ASCE可以为附接 包含较高层表项的转换路径的ASCE,其中,所述较高层表项附接存储器中根据其形成较低 层TLB表项的较低层表项,或者该ASCE可以为使较高层TLB表项可用的ASCE,其中,所述较 高层TLB表项附接存储器中根据其形成较低层TLB表项的较低层表项。如果R 3字段为0, 则此步骤中所描述的条件不适用。
[0196] ?如果存储器中无效化的项指定较低层转换表,则已无效化项中的较低层表原点 匹配于TLB表项中的表原点字段。
[0197] 程序设计注意:
[0198] 1.将格式控制摘要设置为1可以在某些模型上提供改进的性能。
[0199] 2.当指定类型(DT)(通用寄存器札的比特60至61)为00二进制时,格式控制摘 要应用于正被无效化的段表项。当通用寄存器&中的DT为01二进制时,格式控制摘要应 用于正被无效化的区第三表项。
[0200] 3.如果程序可以确保格式控制(表项的比特53)在正被无效化的所有表项中为 1,则程序应仅将格式控制摘要设置为1。如果将格式控制摘要设置为1,但格式控制并非在 正被无效化的所有表项中为1,则可能发生TLB的不完全去除,从而导致来自DAT的不可以 预测的结果。
[0201] 4.将指令的仏字段视为可选用的,如由包含在汇编程序语法中的括号□内的字 段所指示。当未指定M 4字段时,汇编程序将0放置在指令的该字段中。
[0202] 如果无效比特在区表项或者段表项中已经为1,则可以或者可以不发生在区表项 或者段表项中的存储及TLB项的清除。
[0203] 当使多个项无效化时,可以延迟TLB项的清除,直至已使所有项无效化。
[0204] 通过ASCE的清除操作
[0205] 当通用寄存器R2的比特52 (通过ASCE的清除选项比特)为1时,指定通过ASCE 的清除操作。
[0206] 通用寄存器馬的内容具有地址空间控制元素的格式,其中仅使用表原点(比特0 至51)及指定类型控制(DT)(比特60及61)。这些内容用于选择将要清除的TLB项。忽略 通用寄存器R 3的比特52至59、62及63。R3可以为零或者非零,即,可以指定包括寄存器0 的任何通用寄存器。
[0207] 通用寄存器R2的比特44至51必须为0;否则,识别为规格异常。
[0208] 忽略通用寄存器&的内容以及通用寄存器R2的比特位置0至43及53至63的内 容。
[0209] 在所有层从配置中已指定CPU的TLB至少清除那些对于其通用寄存器R 3中的表 原点字段及指定类型字段匹配于用于形成该项的地址空间控制元素(ASCE)中的表原点字 段及指定类型字段的项。此ASCE为用于在其间形成该项的转换中的ASCE。
[0210]
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1