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

文档序号:8926995阅读:来源:国知局
本地清除控制(LC):
[0344] LC比特(M4字段602的比特3)控制是仅清除本地CPU中的TLB,还是清除配置的 所有CPU中的TLB。
[0345] 当第一操作元与第二操作元相等时,将通用寄存器&+1的内容存储于第二操作元 位置处,且从配置中已指定CPU中的转换后备缓冲器(TLB)清除(1)通过使用存储器中的 第二操作元的原始内容(即,在用替换值替换第二操作元之前第二操作元的内容)所形成 的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层TLB表项所形成的所有较 低层TLB表项。可以有选择地将被清除的TLB项限制为其形成旨在转换已指定地址空间中 的地址的项。
[0346] 依据表类型,通用寄存器R2中的表原点及通用寄存器R 2+l中的有效索引根据2010 年 8 月 IBM 出版物第 SA22-7832-08 号的"z/Architecture Principles of Operation" 中的 "Lookup in a Table Designated by an Address-Space-Control Element" 或者 "Page-Table Lookup"中的规则而指定表项,除了总是忽略来自所得地址的比特位置0的进 位且不对照表长度字段检查索引之外。将表原点视为64比特地址,且使用针对64比特地 址运算的规则执行相加,而不管由当前PSW的比特31及32指定的当前寻址模式如何。由 此两个分量形成的地址为真实或者绝对地址。不针对有效性检验表项的内容,且由于表项 的内容未识别到异常条件。
[0347] 按块并行互锁更新的方式执行表项的提取及存储。所述项的提取访问受到密钥控 制保护,且存储访问受到密钥控制保护及低地址保护。
[0348] 在操作开始之前执行序列化功能,且在操作完成之后再次执行。如针对所有序列 化操作的情况,此序列化仅应用于此CPU ;其它CPU不必被序列化。
[0349] 当第一操作元与第二操作元相等时,此CPU从其TLB清除选择的项。除了清除本 地CPU之外,如果^字段中的LC比特为0,则也向配置中所有其它CPU发送从它们的TLB 清除选择的项的信号。从每一个TLB至少清除那些满足所有以下条件的项:
[0350]-通用寄存器R2+l中的有效索引匹配于由通用寄存器R2的比特59至61中的DTT 字段指定的类型的TLB表项中的对应索引。如果模型实现了一个包括由DTT字段指定的索 引的复合TLB项,则在通用寄存器R 2+l中的有效索引左侧的比特也匹配于已指定TLB表项 中提供的任何对应比特。
[0351] -R3字段为0,或者通用寄存器1?3中的表原点及指定类型字段匹配于用于形成TLB 表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。
[0352]-如果R3字段为0,则此步骤中所描述的条件不适用。
[0353]-如果EDAT-1适用且存储器中替换的项为段表项,或者如果EDAT-2适用且存储器 中替换的项为区第三表项,则已替换项中的格式控制匹配于TLB项的格式控制。
[0354] _如果存储器中已替换项指定较低层转换表,则该项中的较低层表原点匹配于 TLB表项中的表原点字段。
[0355]-如果EDAT-1适用且存储器中替换的项为格式控制为1的段表项,或者如果 EDAT-2适用且存储器中替换的项为格式控制为1的区第三表项,则已替换项中的段帧绝对 地址或者区帧绝对地址分別匹配于TLB项的段帧绝对地址或者区帧绝对地址。
[0356] 也从每一受影响TLB至少清除满足所有以下条件的任何较低层TLB表项:
[0357] -通过使用存储器中已替换项或者通过使用较高层TLB表项形成较低层TLB表项, 其中所述较高层TLB表项是通过使用存储器中已替换项或者在此过程中清除的TLB项形成 的。
[0358] _R3字段为0或者通用寄存器1?3中的表原点及指定类型字段匹配于用于形成较低 层TLB表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。此ASCE可以为附接 包含较高层表项的转换路径的ASCE,其中所述较高层表项附接存储器中根据其形成较低层 TLB表项的较低层表项,或者该ASCE可以为使较高层TLB表项可用的ASCE,其中所述较高 层TLB表项附接存储器中根据其形成较低层TLB表项的较低层表项。
[0359] 如果R3字段为0,则此步骤中所描述的条件不适用。
[0360]-如果EDAT-1适用且存储器中替换的项为段表项,或者如果EDAT-2适用且存储器 中替换的项为区第三表项,则已替换项中的格式控制匹配于TLB项的格式控制。
[0361] 如果存储器中的项指定较低层转换表,则该项中的较低层表原点匹配于TLB表项 中的表原点字段。
[0362] 当第一操作元与第二操作元相等时,COMPARE AND REPLACE DAT TABLE ENTRY的 执行并未在执行该COMPARE AND REPLACE DAT TABLE ENTRY的CPU上完成,直至发生以下 情形为止:
[0363] 1.已从此CPU的TLB清除满足以上指定的准则的所有项。当^字段中的LC控制 为1时,COMPARE AND REPLACE DAT TABLE ENTRY的执行完成,且不执行以下步骤。
[0364] 2.当仏字段中的LC控制为0时,配置中所有其它CPU已完成任何存储访问,包括 改变比特及参照比特的更新。
[0365] 操作未必对TLB真实空间项具有任何功效。
[0366] 具体条件
[0367] 如果以下情形中任何之一为真,则识别为规格异常,且抑制操作:
[0368]札或者R2字段为奇数。
[0369] DTT字段(通用寄存器R2的比特位置59至61)包含001、010、或者011二进制。
[0370] 通用寄存器R2+l的比特位置52至63包含非零值。
[0371] 对于所有寻址及保护异常,操作受到抑制。
[0372] 所得条件码:
[0373] 0-第一操作元与第二操作元相等,由通用寄存器&+1的内容替换第二操作元
[0374]1-第一操作元与第二操作元不相等,由第二操作元替换第一操作元
[0375] 2-
[0376] 3-
[0377] 程序异常:
[0378] ?寻址
[0379] ?操作(如果未安装增强型DAT设施2)
[0380] ?特权操作
[0381] ?保护(提取及存储、区表项、段表项或者页表项、密钥控制保护以及低地址保护)
[0382] ?规格
[0383] 程序设计注意:
[0384] 1.可以依据模型以不同方式实现TLB项的选择清除,而且,一般而言,可以清除多 于所需要的最小数目的项。
[0385] 2.当清除与公共段相关联的TLB项时,应注意,可能已通过使用包含许多不同表 原点的地址空间控制元素形成这些项。
[0386] 3.将指令的仏字段视为可选的,如由包含在汇编程序语法中的括号□内的字段 所指示。当未指定M 4字段时,汇编程序将0放置在指令的该字段中。
[0387] 4.本地清除控制应仅在以下情形中任何之一为真时才被指定为1;否则,可能发 生不可以预测结果,包括延迟访问异常机器检查的呈现。
[0388] ?程序正运行在单处理器配置中。
[0389] ?令程序在单一 CPU上运行,且维持程序与该CPU之间的亲和性。
[0390] 在一些模型上,针对以上所列出的情况使用指定仅清除本地TLB的COMPARE AND REPLACE DAT TABLE ENTRY可以导致显著性能改进。
[0391] 对以上环境的诸多改变是可能的。例如,一或多个方面同等地适用于(例如)虚拟 机模拟,在所述虚拟机模拟中,一或多个可分页实体(例如,客体)在一或多个处理器上执 行。作为一个实例,可分页实体由启动解释性执行(Start Interpretive Execution, SIE) 结构定义,IBM 出版物第 SA22-7095 号(1985 年)、名为"IBM System/370 Extended Architecture"的IBM出版物中描述该SIE结构的一个实例。
[0392] 尽管以上提及SIE及z/Architecture,但一或多个方面同等地适用于使用可分页 实体或者相似构造的其它体系结构与/或环境。
[0393] 此外,以上所描述的各种实施例仅为实例。例如,尽管此处描述了逻辑分割的环 境,但其仅为一个实例。各方面有益于许多环境类型,包括具有多个区字段的其它环境,以 及非分割的环境。另外,可以不存在中央处理器复合体,而存在耦接在一起的多个处理器。 而且,一或多个方面适用于单处理器环境。
[0394] 尽管此处描述了特定环境,但对这些环境进行诸多改变也是可能的。例如,如果对 所述环境进行逻辑分割,则可以将较多或者较少的逻辑分割区包括于该环境中。而且,可以 存在耦接在一起的多个中央处理复合体。仅存在可以进行的某些改变。另外,其它改变也 是可能的。而且,该环境可以包括多个控制器。另外,多个休眠的请求(来自一或多个控制 器)可以同时停留在系统中。更多的改变也是可能的。
[0395] 有利的是,一或多个方面可以受益于以下美国专利中的一个或多个中所描述的性 能增强:Slegel 等人的名为"Filtering Processor Requests Based On Identifiers" 的美国专利第 7530067 号;Siegel 等人的名为 "Blocking Processing Restrictions Based On Page Indices"的美国专利第7020761号;以及Siegel等人的名为"Blocking Processing Restrictions Based On Addresses" 的美国专利第 6996698 号。
[0396] 如此处所描述的,术语"处理单元"包括:可分页实体,例如,客体;处理器;模拟 器;与/或其它类似的组件。此外,术语"由处理单元"包括以处理单元的名义。术语"缓 冲器"包括存储器区字段,以及不同类型的数据结构,包括但不局限于阵列;且术语"表"可 以包括不同于表类型数据结构的表。另外,指令可以包括不同于指定信息的寄存器的指令。 此外,页、段与/或区可以具有不同于此处所描述的大小的大小。
[0397] 可以通过软件、固件、硬件、或者它们的某一组合实现一或多个所述能力。另外,也 可以模拟一或多个所述能力。
[0398] 一或多个方面可以包括于具有(例如)计算机可用介质的制品(例如,一或多个 计算机程序产品)中。例如,所述介质中包含了提供及简化所述能力的计算机可读程序代 码机制或者逻辑(例如,指令、代码、命令等)。可以将所述制品作为计算机系统的一个部分 加以包括,也可以独立地加以销售。
[0399] 另外,还能够提供可以由机器读取的至少一个程序存储设备,所述机器包含至少 一个可以由该机器执行以实现所述能力的指令的程序。
[0400]此处所描述的流程图仅为实例。可以对此处所描述的这些图或者步骤(或者操 作)进行诸多改变。例如,可以按不同次序执行所述步骤,而且还可以添加、删除或者修改 各步骤。
[0401]尽管此处已详细描述了优选实施例,但相关技术领域中的技术人员将会明显意识 到:可以对本发明进行多方面的修改、添加、替代等,因此,这些的修改、添加、替代等也被视 为处于以下权利要求中所定义的范围。
[0402]在另一个实施例中,适合于存储与/或执行程序代码的数据处理系统为可用的, 其包括至少一个直接或者通过系统总线间接耦合于存储器元件的处理器。例如,所述存储 器元件包括在程序代码的实际执行期间使用的本地存储器、大容量存储器,以及高速缓存 存储器,所述高速缓存存储器提供了至少某一程序代码的临时存储,以缩减执行期间必须 从大容量存储器检索代码的次数。
[0403] 可以直接或者通过介入I/O控制器将输入/输出,即I/O设备(包括但不局限于 键盘、显示器、定位设备、DASD、磁带、⑶、DVD、拇指翻阅驱动器(thumb drive)以及其它存储 器介质等)耦合于系统。也可以通过介入私用或者公用网络将网络适配器耦合于系统,使 数据处理系统能夠耦合于其它数据处理系统或者远端打印机或者存储设备。调制解调器、 电缆调制解调器以及Ethernet卡仅为少数几种可用网络适配器。
[0404] -或多个方面可以包括于具有(例如)计算机可用介质的制品(例如,一或多个 计算机程序产品)中。例如,所述介质中包含了提供及简化所述能力的计算机可读程序代 码机制或者逻辑(例如,指令、代码、命令等)。可以将所述制品作为计算机系统的一个部分 加以包括,也可以独立地加以销售。
[0405] 参照图7描述并入了一或多个方面的制品或者计算机程序产品的一个实例。例 如,计算机程序产品700包括一或多个计算机可用介质702,以在其上存储计算机可读程序 代码机制或者逻辑704,以提供及简化一或多个方面。所述介质可以为电子、磁性、光学、电 磁、红外线或者半导体系统(或者装置或者设备)或者传播介质。计算机可读介质的实例 包括半导体或者固态存储器、磁带、可以移动计算机磁盘、随机访问存储器(RAM)、只读存储 器(ROM)、硬磁盘及光盘。光盘的实例包括压缩盘-只读存储器(⑶-ROM)、压缩盘-读/写 (CD-R/W)以及DVD。由一或多个计算机可读程序代码机制或者逻辑定义的程序指令的序列 或者一或多个相关模块的逻辑组件引导一或多个方面的执行。
【主权项】
1. 一种用于管理动态地址转换(DAT)表的方法,所述方法包含下列步骤: 处理器根据将要执行的机器可执行指令的操作码判定所述指令为比较及替换DAT表 项指令,所述指令包含R1字段及R2字段;以及 由所述处理器执行所述指令,所述执行包含: 根据类型字段,将奇数寄存器的索引值加至偶数寄存器的值,以形成第二操作元的地 址,所述奇数寄存器及所述偶数寄存器为由所述指令的R2字段指定的奇偶寄存器对; 从由已形成地址指定的存储器位置获得原始第二操作元; 比较第一操作元与所获得的原始第二操作元,第一操作元包含在由所述指令的R1字段 指定的奇偶寄存器对的偶数编号(偶R1)寄存器中; 根据第一操作元等于原始第二操作元,将偶R1寄存器的内容作为新第二操作元存储于 第二操作元位置中。2. 根据权利要求1所述的方法,还包含根据由原始第二操作元的值指定的转换表项, 使用转换表项有选择地清除对应于由DAT形成的项的所有本地转换后备缓冲器(TLB)项。3. 根据权利要求1所述的方法,包含根据第一操作元不等于原始第二操作元将原始第 二操作元存储至偶R1寄存器中。4. 根据权利要求2所述的方法,其中,有选择地清除的转换表项对应于与原始第二操 作元相关联的较低层转换表项。5. 根据权利要求1所述的1的方法,还包含: 根据第一操作元比较值等于第二操作元,设置第一条件码值;以及 根据第一操作元比较值不等于所述第二操作元,设置第二条件码值。6. 根据权利要求所述的2的方法,其中,已清除的TLB项限于其形成旨在转换由所述指 令指定的地址空间中的地址的项。7. 根据权利要求2所述的方法,还包含: 根据所述指令的具有第一值的掩码字段,有选择地仅清除配置的多个处理器中执行所 述指令的处理器的TLB;以及根据所述指令的一个具有第二值的掩码字段,有选择地清除 配置的多个处理器的TLB。8. -种系统,包含适合于执行根据任何先前方法要求的方法的所有步骤的机制。9. 一种计算机程序,包含在计算机系统上执行所述计算机程序时适合于执行根据任何 先前方法要求的方法的所有步骤的指令。
【专利摘要】比较第一操作元与第二操作元。如果它们相等,则将寄存器R1+1的内容存储于第二操作元位置处,且从配置中已指定CPU清除通过使用存储器中已替换项所形成的已指定类型的所有转换后备缓冲器(TLB)表项,以及通过使用已清除较高层TLB表项所形成的所有较低层TLB表项。用新项来替换有效DAT表项,且从TLB去除掉配置中所有CPU上的(至少)单一项的任何复本。如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置处。比较结果由条件码加以指示。提供了一种方法、系统以及计算机程序产品。
【IPC分类】G06F12/10
【公开号】CN104903873
【申请号】CN201280073581
【发明人】D.格雷纳, R.罗杰斯, G.西特曼
【申请人】国际商业机器公司
【公开日】2015年9月9日
【申请日】2012年11月26日
【公告号】CA2874186A1, EP2862089A2, EP2862089A4, US20130339656, WO2013186606A2, WO2013186606A3, WO2013186606A8
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1