CN104903873B - 一种用于管理动态地址转换dat表的方法及系统 - Google Patents
一种用于管理动态地址转换dat表的方法及系统 Download PDFInfo
- Publication number
- CN104903873B CN104903873B CN201280073581.0A CN201280073581A CN104903873B CN 104903873 B CN104903873 B CN 104903873B CN 201280073581 A CN201280073581 A CN 201280073581A CN 104903873 B CN104903873 B CN 104903873B
- Authority
- CN
- China
- Prior art keywords
- tlb
- operation member
- instruction
- bit
- field
- 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.)
- Expired - Fee Related
Links
- 238000013519 translation Methods 0.000 title claims abstract description 37
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000015654 memory Effects 0.000 claims abstract description 109
- 239000000872 buffer Substances 0.000 claims abstract description 34
- 238000004590 computer program Methods 0.000 claims abstract description 7
- 238000006243 chemical reaction Methods 0.000 claims description 67
- 230000015572 biosynthetic process Effects 0.000 claims description 18
- 230000009466 transformation Effects 0.000 claims description 12
- 230000000052 comparative effect Effects 0.000 abstract 1
- 238000011282 treatment Methods 0.000 description 73
- 238000003860 storage Methods 0.000 description 43
- 230000008859 change Effects 0.000 description 41
- 230000004224 protection Effects 0.000 description 36
- 238000012545 processing Methods 0.000 description 30
- 230000002159 abnormal effect Effects 0.000 description 17
- 238000000605 extraction Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 229910002056 binary alloy Inorganic materials 0.000 description 11
- 238000010926 purge Methods 0.000 description 11
- 238000004088 simulation Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000037361 pathway Effects 0.000 description 8
- 230000026683 transduction Effects 0.000 description 8
- 238000010361 transduction Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000002708 enhancing effect Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005059 dormancy Effects 0.000 description 3
- 238000011017 operating method Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
比较第一操作元与第二操作元。如果它们相等,则将寄存器R1+1的内容存储于第二操作元位置处,且从配置中已指定CPU清除通过使用存储器中已替换项所形成的已指定类型的所有转换后备缓冲器(TLB)表项,以及通过使用已清除较高层TLB表项所形成的所有较低层TLB表项。用新项来替换有效DAT表项,且从TLB去除掉配置中所有CPU上的(至少)单一项的任何复本。如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置处。比较结果由条件码加以指示。提供了一种方法、系统以及计算机程序产品。
Description
技术领域
总体上讲,本发明涉及计算环境中的处理,具体地讲,本发明涉及以下一或者多种情况:比较及替换地址表中的项;清除缓冲器项以及用于以上操作的指令。
背景技术
如2003年5月12日申请的申请号为7284100的、名为“INVALIDATING STORAGE,CLEARING BUFFER ENTRIES,AND AN INSTRUCTION THEREFORE”的美国专利中所描述的,使所选择的诸如存储器段或者存储器区的存储器单元无效化。通过位于对应于将要无效化的存储器单元的数据结构项中的无效化指示符的设置,简化无效化。另外,还清除与已无效化存储器单元或者其它选定存储器单元相关联的缓冲器项。提供一条执行无效化与/ 或清除的指令。而且,在无任何无效化的情况下清除与特定地址空间相关联的缓冲器项。也通过所述指令执行所述清除。可以按软件、硬件、固件或者它们的某一组合实现所述指令,也可以模拟该指令。
发明内容
在一个实施例中,提供了一种用于有选择地清除一个处理器的本地转换后备缓冲器(Translation Lookaside Buffer,TLB)或者多个处理器的多个转换后备缓冲器的计算机程序产品。该计算机程序产品包括:计算机可读存储介质,其具有其中所包含的程序代码,所述程序代码可以由计算机处理器加以读取,以执行某一方法。所述方法包括:由处理器根据一条将要执行的机器可执行的操作码判定所述指令为一条比较及替换DA的项的指令。所述指令包括R1字段和R2字段,并且通过处理器执行所述指令。所述执行包括:从该指令的 R2字段指定的奇偶寄存器对的寄存器指定的存储器位置获得原始第二操作元;比较第一操作元和所获得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器对的一个偶数编号(偶R1)的寄存器中;根据第一操作元等于原始第二操作元,所以将该偶R1寄存器的内容作为新第二操作元存储于第二操作元位置中;并且根据原始第二操作元的值指定的一个转换表原点、使用转换表项有选择地清除对应于根据DAT所形成的项的所有本地转换后备缓冲器(TLB)项。
在另一个实施例中,提供了一种用于执行比较及替换DAT项指令的系统。所述系统包括:存储器;以及处理器,将其配置为能够与存储器进行通信,其中将所述计算机系统配置为能够执行某一方法。所述方法包括:由处理器根据一条将要执行的机器可执行的操作码判定所述指令为一条比较及替换DA的项的指令。所述指令包括R1字段和R2字段,并且由处理器执行该指令。所述执行包括:从该指令的R2字段指定的奇偶寄存器对的寄存器指定的存储器位置获得原始第二操作元;比较第一操作元和所获得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器对的偶数编号(偶R1)的寄存器中;根据第一操作元等于原始第二操作元,所以将该偶R1寄存器的内容作为新第二操作元存储于第二操作元位置中;并且根据原始第二操作元的值指定的一个转换表原点、使用转换表项有选择地清除对应于根据DAT所形成的项的所有本地转换后备缓冲器(TLB)项。
在另一个实施例中,提供一种用于比较第一操作元与第二地址转换表项的计算机实现的方法。所述方法包括:由处理器根据一条将要执行的机器可执行的操作码判定所述指令为一条比较及替换DA的项的指令。所述指令包括R1字段和R2字段,并且通过处理器执行所述指令。所述执行包括:从该指令的R2字段指定的奇偶寄存器对的寄存器指定的存储器位置获得原始第二操作元;比较第一操作元和所获得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器对的偶数编号(偶R1)的寄存器中;根据第一操作元等于原始第二操作元,所以将该偶R1寄存器的内容作为新第二操作元存储于第二操作元位置中;并且根据原始第二操作元的值指定的转换表原点、使用转换表项有选择地清除对应于根据DAT所形成的项的所有本地转换后备缓冲器(TLB)项。
通过所描述的技术实现更多的特性及优点。此处详细地描述了其它实施例及方面,并且认为包括所述其它实施例及方面。
附图说明
通过以下结合附图的详细描述,更多的目的、特性以及优点将变得十分明显,其中:
图1描述了并入及使用一或多个方面的计算环境的一个实施例;
图2描述了与图1的控制器相关联的更多细节的一个实施例;
图3描述了可以模拟另一个计算机的主计算机的一个实施例;
图4描述了COMPARE AND REPLACE DAT TABLE ENTRY指令的指令图像及其操作;
图5描述了COMPARE AND REPLACE DAT TABLE ENTRY指令的寄存器操作元;
图6描述了M4字段;以及
图7描述了计算机可读介质。
具体实施方式
计算环境可以使用通常维持于辅助存储器中的虚拟存储器,以增加可用存储器的大小。当引用虚拟存储器的页时,通过动态地址转换将用于引用页的虚拟地址转换为真实存储器地址。如果该转换成功,则虚拟存储器有效;否则,其无效。页表项中的无效比特将虚拟存储器的页指示为有效或者无效,如果该页有效,则所述项包括真实存储器地址。
可以一次一页地使存储器的页无效化。例如,在基于由International BusinessMachines Corporation所提供的z/Architecture的计算环境中,使用被称为无效化页表项(Invalidate Page Table Entry,IPTE)指令的指令,无效化虚拟存储器中的一个或者多个页。无效化包括在与虚拟存储器相关联且位于物理主存储器中的控制结构中设置一个无效指示符,以指示虚拟存储器中的位置的虚拟地址不能通过动态地址转换转换为物理主存储器地址,所述物理主存储器地址也被称为真实地址。另外,还使用所述指令清除与页相关联的内部机器缓冲器项,可以在动态地址转换期间使用所述项,以避免对物理主存储器中的控制结构的访问。例如,在z/Architecture中,存在在虚拟地址至真实地址的动态地址转换期间所使用的转换后备缓冲器。当使存储器的页无效化时,也从对应的缓冲器清除与所述页相关联的项。
也存在能够去除整个转换后备缓冲器的指令。例如,在z/Architecture中,一条被称为比较与交换及去除(Compare and Swap and Purge,CSP)指令的指令去除配置中所有CPU中转换后备缓冲器的所有项;PURGE TLB清除执行该指令的CPU上的TLB的所有项。
转换后备缓冲器
为了提高性能,通常采用动态地址转换机制,以能够在被称为转换后备缓冲器(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。
TLB内的项不可以由程序显式寻址。
不必在所有准许将信息保持于TLB中的条件下,都将信息保持于TLB 中。此外,在除了那些对于其清除为强制的条件之外的条件下也可以清除TLB 中的信息。
TLB结构
TLB的逻辑结构的描述涵盖按z/Architecture的定义操作的所有系统的实现。将TLB项考虑为具有下列六种类型:TLB区第一表项、TLB区第二表项、 TLB区第三表项(统称为TLB区表项)、TLB段表项、TLB页表项,以及TLB 真实空间项。TLB区表项、TLB段表项或者TLB页表项被视为其内既含有从真实或者绝对存储器中的表项所获得的信息,也含有用于从存储器提取所述信息的属性。TLB真实空间项被视为含有用于形成该项的页帧真实地址及真实空间标记原点及区、段、以及页索引。
可以将任何可使用的TLB区表项、TLB段表项、以及TLB页表项合并为一个被称为TLB复合表项的单一项。相类似,某一实现可以组合表层的任何连续子集。当发生此情形时,无需缓冲中间表原点、位移、以及长度。
可以形成所述体系结构的先前版本中所描述的TLB组合式区及段表项 (CRSTE)的等效者,该等效者将表原点、区索引、段索引、以及公共段比特映射于段帧绝对地址或者页表原点(以及其它已指定字段)。
不能将TLB真实空间项中的标记原点与TLB复合表项、区表项、或者段表项中的表原点加以区分。
注意:以下章节描述了可以将信息放置在TLB中的条件、可以将来自 TLB的信息用于地址转换的条件,以及对转换表的改变如何影响转换过程。
TLB项的形成
来自真实或者绝对存储器中的表项的TLB区表项、TLB段表项以及TLB 页表项的信息和程序对存储器中的表项内容的任何操控的功效取决于是否将存储器中的项附接于具体的CPU,并且取决于所述项是否有效。
表项的附接状态表明:将该表项附接于其的CPU可以尝试将该表项以用于隐式地址转换,例外的是,可以附接针对主,即本地址空间的表项,即使当CPU不能从这些空间中任一空间进行提取时。可以将表项一次附接于一个以上的CPU。
表项的有效状态表明:与该表项相关联的区集合、区、段、或者页可用。当该项中的区无效、段无效、或者页无效比特为0时,该项有效。
凡当附接了该项且其有效,并且在用于转换时不导致转换规格异常时,可以将区表项、段表项、或者页表项放置在TLB中。
将用于转换虚拟地址的区表项(如果存在)及段表项(如果存在)称为转换路径。当转换路径中的最高层表项处于附接地址空间控制元素(attaching address-space-control element,ASCE)指定的表内时,附接该最高层表项。“在表内”意指ASCE中的原点及长度字段所判定。当满足所有以下条件时,ASCE 为附接ASCE:
1.当前PSW指定DAT接通。
2.当前PSW不包含被识别的导致早期规格异常的错误。
3.ASCE满足以下a、b、c、或者d中的要求。
a.ASCE为控制寄存器1中的主ASCE。
b.ASCE为控制寄存器7中的次ASCE,且满足以下要求中任何之一:
·CPU处于次空间模式或者访问寄存器模式。
·CPU处于主空间模式,且次要空间控制(控制寄存器0的比特 37)为1。
·LOAD PAGE TABLE ENTRY ADDRESS的M4操作元显式允许对次要空间的访问,或者显式允许访问寄存器转换。
·MOVE WITH OPTIONAL SPECIFICATIONS的任一操作元的操作元访问控制(OAC)显式允许对次要空间的访问或者显式允许访问寄存器转换。
对于用于以上两个条目中的术语“显式允许”的进一步的解释,参见以下程序设计注意。
c.ASCE处于附接且有效的ASN第二表项(ASTE)或者可用ALB ASTE中,且满足以下要求中任何之一:
·CPU处于访问寄存器模式。
·LOAD PAGE TABLE ENTRY ADDRESS的M4字段显式允许执行访问寄存器转换。
·MOVE WITH OPTIONAL SPECIFICATIONS的任一操作元的 OAC显式允许执行访问寄存器转换。
d.ASCE为控制寄存器13中的本ASCE。
不管DAT是接通还是关闭,当当前PSW不含有被识别的导致早期规格异常错误且满足以下条件任何之一时,ASCE也为附接ASCE:
·当发生监视事件计数操作时,将本ASCE视为附接ASCE。
当转换路径中的剩余表项中每一表项处于由在用于转换时将不导致转换规格异常的下一较高层的附接且有效的项或者由下一较高层的可用TLB项指定的表内时,附接所述剩余表项中每一表项。“在表内”意指由下一较高层项中的原点、位移、以及长度字段所判定。在下一章节中解释可用TLB项。
当页表项处于由在用于转换时将不导致转换规格异常的附接且有效的段表项或者可用TLB段表项指定的页表内时,附接该页表项。
如果区表项或者段表项中的表类型比特(比特60及61)与该项在转换过程中使用转换路径时将被遇到的层不一致,则该项导致转换规格异常。如果私用空间控制比特在用于选择其的地址空间控制元素中为1且公共段比特在段表项中为1,则该项也导致转换规格异常。当EDAT-2适用时,如果私用空间控制比特在用于选择其的地址空间控制元素中为1且公共区比特在区第三表项中为1,则该项也导致转换规格异常。如果页表项中的比特52为1,则该项导致转换规格异常。当EDAT-1不适用时,如果页表项中的比特55为1,则该项也导致转换规格异常。
TLB真实空间使用了一个将要识别的早期规格异常,且满足以下条件任何之一:
·当发生监视事件计数操作时,将本ASCE视为附接ASCE。
当转换路径中剩余表项中的每一表项都处于由在用于转换时将不导致转换规格异常的下一较高层的附接且有效的项或者由下一较高层的可用TLB项指定的表内时,附接所述剩余表项中的每一表项。“在表内”意指由下一较高层项中的原点、位移、以及长度字段所判定。在下一章节中解释可用TLB项。
当页表项处于由在用于转换时将不导致转换规格异常的附接且有效的段表项或者可用TLB段表项指定的页表内时,附接该页表项。
如果区表项或者段表项中的表类型比特(比特60及61)与该项在转换过程中使用转换路径时将被遇到的层不一致,则该项导致转换规格异常。如果私用空间控制比特在用于选择该私用空间控制比特的地址空间控制元素中为1 且公共段比特在段表项中为1,则该项也导致转换规格异常。当EDAT-2适用时,如果私用空间控制比特在用于选择该私用空间控制比特的地址空间控制元素中为1且公共区比特在区第三表项中为1,则该项也导致转换规格异常。如果页表项中的比特52为1,则该项导致转换规格异常。当EDAT-1不适用时,如果页表项中的比特55为1,则该项也导致转换规格异常。
服从以上所定义的附接且有效的约束,CPU可以在未来存储引用的预期中或者作为指令的推测执行的结果形成TLB项。
程序设计注意:在针对正附接的ASCE的以上条件列表中,条目3.b和 3.c使用了术语“显式允许…”,如以下所解释的:
·当M4字段为0010二进制时,LPTEA显式允许对次要空间的访问。
·当M4字段为0001二进制时,LPTEA显式允许执行ART。
·当操作元的OAC的比特8至9为10二进制、OAC的比特15为1、且次要空间控制(控制寄存器0的比特37)为1时,MVCOS的任一操作元显式允许对次要空间的访问。
·当操作元的OAC的比特8至9为01二进制、且OAC的比特15为1 时,MVCOS的任一操作元显式允许执行ART。
TLB项的使用
TLB项的可用状态表明,对于隐式地址转换,CPU可以尝试使用TLB 项。可用TLB项附接下一较低层表(如果存在),且可能可用于隐式地址转换的具体取例。
参照TLB项,术语“当前层”指的是根据其形成TLB项的转换表(区第一表、区第二表、区第三表、段表、或者页表)的层。同样地,“当前层索引”为用作至转换表的当前层中的索引的虚拟地址的部分。
当满足所有以下条件时,TLB区或者段表项处于可用状态:
1.当前PSW指定DAT接通。
2.当前PSW不含有被识别的将导致早期规格异常的错误。
3.TLB项满足以下要求中至少之一:
a.公共区比特在TLB区第三表项中为1。
b.公共段比特在TLB段表项中为1。
c.TLB项中的ASCE表原点(ASCETO)字段匹配于附接地址空间控制元素中的表原点字段或者标记原点字段。
d.TLB项为TLB区第二表、区第三表、或者段表项,且TLB项中的当前层表原点字段匹配于以下之一:
·直接指定当前表层(如由R及DT比特所指示)的附接ASCE中的表原点字段
·下一较高层的附接区表项中的表原点字段
·下一较高层的可用TLB区表项中同一层的表原点字段
仅当TLB区表项处于可用状态、TLB项中的当前层索引字段匹配于正被转换的虚拟地址的对应索引字段、且满足以下条件任何之一时,该项才可用于隐式地址转换的具体取例:
1.TLB项中的ASCE表原点(ASCETO)字段匹配于正用于转换的地址空间控制元素中的表原点字段或者标记原点字段,且在当前层索引左侧的正被转换的虚拟地址的部分匹配于TLB项中的对应索引字段。
2.正用于转换的地址空间控制元素指定当前层的表,且TLB项中的当前层表原点字段匹配于所述地址空间控制元素中的表原点。
3.TLB项中的当前层表原点字段匹配于正用于转换的下一较高层表项或者TLB项中的同一层的表原点。
4.对于TLB区第三表项,公共区比特在TLB项中为1,且TLB项中的区第一索引字段及区第二索引字段匹配于正被转换的虚拟地址的区第一索引字段及区第二索引字段。
然而,当EDAT-2适用时,如果公共区比特在TLB区第三表项中为1,且私用空间控制比特在正用于转换的地址空间控制元素中为1或者所述地址空间控制元素为真实空间指定,则不使用该项。在这两种情况下,即使TLB 项中的ASCE表原点(ASCETO)字段与地址空间控制元素中的表原点字段或者标记原点字段匹配,也不使用该项。
仅当TLB段表项处于可用状态、TLB项中的段索引字段匹配于正被转换的虚拟地址的段索引字段、且满足以下条件任何之一时,该项才可用于隐式地址转换的具体取例:
1.TLB项中的ASCE表原点(ASCETO)字段匹配于正用于转换的地址空间控制元素中的表原点字段或者标记原点字段,且TLB项中的区索引字段匹配于正被转换的虚拟地址的区索引字段。
2.TLB项中的段表原点字段匹配于正用于转换的地址空间控制元素中的表原点字段、且所述地址空间控制元素为段表指定。
3.TLB项中的段表原点字段匹配于正用于转换的区第三表项或者TLB 区第三表项中的段表原点字段。
4.公共段比特在TLB项中为1,且TLB项中的区索引字段匹配于正被转换的虚拟地址的区索引字段。
然而,如果公共段比特在TLB段表项中为1,且私用空间控制比特在正用于转换的地址空间控制元素中为1或者所述地址空间控制元素为真实空间指定,则不使用该项。在这两种情况下,即使TLB项中的ASCE表原点 (ASCETO)字段与地址空间控制元素中的表原点字段或者标记原点字段匹配,也不使用该项。
仅当TLB页表项中的页表原点字段匹配于正用于转换的段表项或者 TLB段表项中的页表原点字段,且TLB页表项中的页索引字段匹配于正被转换的虚拟地址的页索引时,该项才可用于隐式地址转换的具体取例。
仅当TLB项中的标记原点字段匹配于正用于转换的地址空间控制元素中的表原点字段或者标记原点字段,且TLB项中的区索引、段索引、以及页索引字段匹配于正被转换的虚拟地址的区索引、段索引、以及页索引字段时, TLB真实空间项才可用于隐式地址转换。
可以使用TLB内容转换LOAD PAGE-TABLE-ENTRY ADDRESS、LOAD REAL ADDRESS及STORE REAL ADDRESS的操作元地址、以及对增强型监视计数阵列的访问,而无论DAT是接通还是关闭。然而,对于LOAD PAGE-TABLE-ENTRY ADDRESS、LOAD REAL ADDRESS及STORE REALADDRESS,TLB项仍仅在DAT接通时才被形成。
程序设计注意:
1.尽管仅当表项既为附接又为有效时才可以将该表项的内容复制至 TLB中,即使当所述表项自身不再为附接或者有效时复本也可以保持于TLB 中。
2.除了当因增强型监视计数操作而执行转换时之外,无内容可以在DAT 关闭时被复制至TLB中,因为所述表项此时未得以附接。具体地讲,在DAT 关闭的情况下LOAD PAGE-TABLE-ENTRY ADDRESS、LOAD REAL ADDRESS及STORE REAL ADDRESS的操作元地址的转换不导致将项放置在TLB中。
相反,在给出当前转换参数、地址空间控制比特的设置、以及访问寄存器的内容的情况下,当DAT接通时,可以将信息从可用于地址转换的所有转换表项复制至TLB中。作为当前指令的执行的一部分,TLB的载入不取决于是否将所述项用于转换,且当CPU处于等待状态时可以发生这样的载入。
3.表项的内容的一个以上的复本可以存在于TLB中。例如,对于有效表项通过其变为附接的每一地址空间控制元素中的表原点,一些实现可以导致该项的内容的复本被放置在TLB中。
转换表的修改
当使附接且无效的表项有效且无可用于关联虚拟地址的转换的项处于TLB中时,改变不迟于当前操作单元的结束而起作用。相类似,当使未附接且有效的表项附接且无可用于关联虚拟地址的项处于TLB中时,改变不迟于当前操作单元的结束而起作用。
当改变有效且附接的表项时,且当在从TLB清除有资格替代该项的项之前尝试使用需要转换该项的虚拟地址引用存储器时,在以下程度上可能发生不可以预测结果。新值的使用可以在若干指令的之间或者在一条指令(包括导致改变的指令)的执行期间开始。此外,在从TLB清除有资格替代该项的项以前,TLB可以既含有旧值也含有新值,且对于具体的访问,不可以预测是选择旧值还是选择新值。如果较高层表项的旧值及新值均存在于TLB中,则可以使用一个值提取较低层表项,且将较低层表项放置在与另一值相关联的TLB中。如果该项的新值为将导致异常的值,则该异常可能导致中断发生也可能不导致中断发生。如果确实中断发生,则即使异常通常会导致抑制或者取消,也可以改变指令的结果字段。
根据以下规则从TLB中清除项:
1.通过PURGE TLB或者SET PREFIX的执行以及CPU重设,从TLB 中清除所有项。
2.可以依据由指令所使用的一个般寄存器中的比特,通过由配置中的 CPU中任何之一执行COMPARE AND SWAP AND PURGE,从配置中所有 TLB清除所有项。
3.通过由配置中的CPU中任何之一执行INVALIDATE DAT TABLE ENTRY或者INVALIDATE PAGE TABLE ENTRY,从配置中所有TLB清除所选择的项。
4.可以在不同于由前述规则所要求的时间清除某些或者所有TLB项。
程序设计注意:
1.TLB中的项可以在已根据其形成它们的表项已变为未附接或者无效之后继续用于转换。不必移除这些TLB项,除非显式从TLB中清除它们。
对附接且有效的项进行的改变或者对致使所述项变为附接且有效的表项进行的改变反映于针对下一指令或者早于下一指令的转换过程中,除非TLB 项有资格替代所述表项。然而,在从TLB清除有资格替代致使该项变得未附接或者无效的表项之前,对该表项进行的改变不必反映于转换过程中。
2.与动态地址转换相关联的异常可以由作为指令执行的起始的一部分执行的针对操作元可访问性的预测试加以建立。因此,当表项在执行开始时为无效时可以指示区第一转换、区第二转换、区第三转换、段转换或者页转换异常,即使在指令已使其所使用的表项有效化且该表项在该指令被视为一次一个字节地处理操作元时已变得有效的情况下。
3.如果附接表项在从TLB清除所述项的内容的所有复本之前用于转换,则对所述项进行的改变(除了将I比特设置为0、将段表项或者页表项的CO 比特设置为1、或者变更页表项的最右侧字节之外)可能产生不可以预测结果。新值的使用可以在若干指令之间或者在一条指令(包括导致改变的指令)的执行期间开始。当诸如MOVE(MVC)的指令对附接表项进行改变(包括使该项无效的改变)且随后使用该项进行转换时,在不从TLB对该项进行先前的清除的情况下使用已改变项,且结果值及异常识别的关联的不可预测性适用。
附接表项的操控可以导致伪表项值被记录于TLB中。例如,如果逐步进行改变,则有效附接项的修改可能导致已部分更新的项被记录,或者如果将中间值引入改变的过程,则臆测无效项可以临时变得有效且可以被记录于 TLB中。如果通过重试的I/O操作进行改变,或者如果在一条单一指令的执行期间引入中间值,则可以引入这样的中间值。
作为另一个实例,如果段表项被改变以指定不同页表且在不清除TLB的情况下被使用,则可以提取新页表项且将其与旧页表原点相关联。在这样的情况下,指定新页表原点的INVALIDATE PAGE TABLE ENTRY的执行将不必清除从新页表提取的页表项。
4.为了简化页表的操控,提供了INVALIDATE PAGE TABLE ENTRY指令。此指令将页表项中的I比特设置为1,且清除由这些表项所形成的项的配置中的一或多个TLB,如下:
a.当未安装本地TLB清除设施时,或者当安装了该设施且指令指定所有TLB的清除(即,指令中的本地清除控制为0)时,清除配置中所有TLB。
b.当安装了本地TLB清除设施且指令指定仅清除本地TLB(即,指令中的本地清除控制为1)时,仅清除执行INVALIDATE PAGE TABLE ENTRY 指令的CPU中的TLB。
当使用INVALIDATE PAGE TABLE ENTRY时应考虑TLB操作的以下方面。(也参见针对INVALIDATE PAGE TABLE ENTRY的程序设计注意)。
a.应该在对页表项进行任何改变(除了改变最右侧字节之外)之前执行INVALIDATE PAGE TABLE ENTRY;否则,INVALIDATE PAGE TABLE ENTRY的选择清除部分可以不清除该项的TLB的复本。
b.通过INVALIDATE PAGE TABLE ENTRY使页表内的所有页表项无效化不必清除指定该页表的任何段表项的TLB。当希望使区表项或者段表项的TLB无效化且清除它们时,必须遵循以下注意5中的规则。
相类似,通过INVALIDATE DAT TABLE ENTRY使区表或者段表内的所有较低层表项无效化不必清除指定较低层表的任何较高层表项的TLB。当希望使较高层表项的TLB无效化且清除其时,必须遵循以下注意5中的规则。
c.当将在单一时间使大数目页表项无效化时,对于每一页表项,在使用COMPAREAND SWAP AND PURGE(去除TLB的COMPARE AND SWAP AND PURGE)、INVALIDATE DAT TABLEENTRY或者PURGE TLB 且在遵循以下注意5中的规则时所涉及的开销可以小于在发布INVALIDATE PAGE TABLE ENTRY时涉及的开销。
5.表项的操控应根据以下规则。如果符合这些规则,则如同总是将来自真实或者绝对存储器的表项用于转换过程那样执行转换。
a.在将有效表项附接于任何CPU并且可以由所述CPU用于转换时并非必须对其进行改变,除非:(1)使用INVALIDATE PAGE TABLE ENTRY或者INVALIDATE DAT TABLE ENTRY使该项无效化;(2)变更页表项的比特 56至63;(3)使用去除TLB的COMPARE AND SWAP ANDPURGE指令进行改变;或者(4)使用COMPARE AND REPLACE DAT TABLE ENTRY替换一个项。
b.当对附接且有效或者未附接的表项进行除了对页表项的比特56至 63的改变之外的任何改变时,必须使可以具有由该项形成的TLB项的每一 CPU在所述改变发生之后且在由所述CPU使用该项以用于隐式转换之前去除其TLB。(应注意,如果使用COMPARE ANDREPLACE DAT TABLE ENTRY、INVALIDATE DAT TABLE ENTRY、INVALIDATE PAGE TABLEENTRY或者去除TLB的COMPARE AND SWAP AND PURGE指令进行改变,则单独去除是不必要的。)在表项附接且有效时的情况下,当知晓并非正执行可能要求该项用于转换的程序时,此规则适用。
c.当以允许中间有效值出现于无效表项中的方式对该项进行任何改变时,必须使将该项附接于其的每一CPU在改变发生之后且在由所述CPU 将该项用于隐式地址转换之前去除其TLB。
d.当对针对表而指定的位移或者长度进行任何改变时,必须使可以具有由不再位于其表内的表项形成的TLB项的每一CPU在改变发生之后且在由所述CPU将该表用于隐式转换之前去除其TLB。
应注意,当在不引入中间有效值的情况下使无效页表项有效时,在不具有由该项形成的任何TLB项的CPU中无需清除TLB。相类似,当在不引入中间有效值的情况下使无效区表项或者段表项有效时,在不具有由该有效化项形成的任何TLB项且不具有由通过该有效化项附接的页表中的项形成的任何TLB项的CPU中无需清除TLB。
PURGE TLB、COMPARE AND SWAP AND PURGE、或者SET PREFIX 的执行可能对一些模型的性能具有不利功效。因此,应依照以上规则最小化这些指令的使用。
6.当EDAT-1适用时,应做以下考虑:
a.当STE格式及ACCF有效性控制均为1时,对于任何给定密钥控制保护检查,是否CPU检测段表项中或者对应4K字节块的存储器密钥中的访问控制比特及提取保护比特,是不可以预测的。因此,在将STE中的无效比特设置为0之前,对于段的构成4K字节块的所有256个存储器密钥中的相应字段,程序应确保段表项中的访问控制比特及提取保护比特一致。
在改变段表项中的ACCF有效性控制、访问控制比特或者提取保护比特之前,且在改变段的256个存储器密钥中任何之一中的访问控制比特或者提取保护比特之前,程序应首先在段表项中将无效比特设置为1,并清除配置中所有TLB中的所有项,如此章节中先前所描述的。
b.在段表项中将改变记录复写设置为0之前,程序应在段表项中将无效比特设置为1,且清除配置中所有TLB中的所有项(例如,使用 INVALIDATE DAT TABLE ENTRY)。如果使用COMPARE AND REPLACE DAT TABLE ENTRY或者清除TLB的COMPARE AND SWAP ANDPURGE 的形式进行改变,则不要求使表项无效化。
c.在页表项中,在将改变记录复写设置为0之前,程序应在页表项中将无效比特设置为1,且清除配置中所有TLB中的所有项(例如,使用 INVALIDATE PAGE TABLE ENTRY)。如果使用COMPARE AND REPLACE DAT TABLE ENTRY或者清除TLB的COMPARE AND SWAP ANDPURGE 的形式进行改变,则不要求使表项无效化。
当EDAT-2适用时,还应进行以下更多考虑:
a.当RTTE格式控制及ACCF有效性控制均为1时,对于任何给定密钥控制保护检查,CPU是否检测区第三表项中或者对应4K字节块的存储器密钥中的访问控制比特及提取保护比特,是不可以预测的。因此,在将RTTE 中的无效比特设置为0之前,对于区的构成4K字节块的所有524,288个存储器密钥中的相应字段,程序应确保区第三表项中的访问控制比特及提取保护比特一致。
在改变区第三表项中的ACCF有效性控制、访问控制比特或者提取保护比特之前,且在改变区的524,288个存储器密钥中任何之一中的访问控制比特或者提取保护比特之前,程序应首先将区第三表项中的无效比特设置为 1,且清除配置中所有TLB中的所有项,如此章节中先前所描述的。
b.在区第三表项中,在将改变记录复写设置为0之前,程序应在区第三表项中将无效比特设置为1,且清除配置中所有TLB中的所有项(例如,使用INVALIDATE DAT TABLEENTRY)。如果使用COMPARE AND REPLACE DAT TABLE ENTRY或者清除TLB的COMPARE ANDSWAP AND PURGE的形式进行改变,则不要求使表项无效化。
遵守这些操作步骤的失败可能导致不可以预测结果,可能包括延迟访问异常机器检查,或者记录一个改变的失败。
增强型DAT设施1
增强型DAT设施1可用于实现z/Architecture的模型上。当安装及启用该设施时,DAT转换可以产生由段表项中的STE格式控制判定的页帧真实地址或者段帧绝对地址。当将所述设施安装于配置中时,控制寄存器0中的一个新比特启用该设施。注意:术语EDAT-1适用在此文档中普遍用于描述当将增强型DAT设施1安装于配置中且由控制寄存器0启用时的条件。
当EDAT-1适用时,以下额外功能可用于DAT过程:
·将DAT保护比特添加于区表项,从而在段表项及页表项中提供了类似于DAT保护比特的功能。
·将STE格式控制添加于段表项。当STE格式控制为0时,除了页表项中的改变记录复写指示改变比特的设置对于页是否可以被旁路之外,DAT按当前定义继续。
·当STE格式控制为1时,段表项也包含以下内容:
—指定1M字节块的绝对存储器位置的段帧绝对地址(而非页表原点)。
—可以替换段的各存储器密钥中对应的比特,有选择地使用的访问控制比特及提取保护比特。
—一个判定段表项中访问控制比特及提取保护比特的有效性的比特。
—一个指示改变比特的设置在段的各存储器密钥中是否可以被旁路的改变记录复写。所述设施添加了PERFORM FRAME MANAGEMENT FUNCTION控制指令。该设施包括对以下控制指令的增强或者改变:·LOAD PAGE-TABLE-ENTRY ADDRESS·MOVE PAGE·SETSTORAGE KEY EXTENDED·TEST PROTECTION
增强型DAT设施2
增强型DAT设施2可用于实现z/Architecture的模型上。当安装及启用该设施时,DAT转换可以产生由区第三表项(如果存在)及段表项(如果存在) 中格式控制判定的页帧真实地址、段帧绝对地址或者区帧绝对地址。
注意:术语EDAT-2适用在此文档中普遍用于描述当将增强型DAT设施 2安装于配置中且由控制寄存器0启用时的条件。
当EDAT-2适用时,以下额外功能可用于DAT过程中:
·EDAT-1适用。
·将格式控制添加于区第三表项(RTTE)。当RTTE格式控制为0时,DAT 按与EDAT-1适用时的情况一样的方式继续。
·当RTTE格式控制为1时,区第三表项也含有以下内容:
—指定2G字节块的绝对存储器位置的区帧绝对地址(而非段表原点)。
—可以替换段区的各存储器密钥中对应的比特,有选择地使用的访问控制比特及提取保护比特。
—一个判定区第三表项中访问控制比特及提取保护比特的有效性的比特。
—一个指示改变比特的设置在区的各存储器密钥中是否可以被旁路的改变记录复写。增强型DAT设施2添加了COMPARE AND REPLACE DAT TABLE项指令,从而提供了有效附接DAT表项的动态替换以及从已替换的项中对所创建的任何TLB项的有选择的清除。增强型DAT设施2也包括对以下控制指令的增强或者改变:·INVALIDATE DAT TABLE ENTRY·LOADPAGE-TABLE-ENTRY ADDRESS·MOVE PAGE·PERFORM FRAME MANAGEMENT FUNCTION·TESTPROTECTION当安装增强型DAT设施 2时,也安装增强型DAT设施1。
当使段表项无效化时,INVALIDATE DAT TABLE ENTRY(IDTE)通过有选择地清除TLB组合式区及段表项执行无效化及清除操作。IDTE也执行通过ASCE的清除操作。
在IDTE指令的执行期间,使存储器(例如,虚拟存储器)的已指定部分无效化。例如,将包括多个存储器页的存储器段或者包括多个存储器段的存储器区选择为无效化。通过位于对应于将要无效化的存储器单元的数据结构项中的无效化指示符的设置有助于无效化。在另一个方面中,清除与正被无效化的存储器或者其它存储器相关联的缓冲器项(例如,转换后备缓冲器项)。另外,在另一方面中,在不影响未选择的地址空间的缓冲器项且不执行无效化的情况下从缓冲器清除与选择的地址空间相关联的缓冲器项。在一个实例中,将来自z/Architecture的、在此处被称为无效化动态地址转换(DAT)表项 (IDTE)指令的指令用于执行一或多个以上操作。
无效化DAT表项
IDTE R1,R3,R2[,M4]
注意:术语“已指定CPU”对于受到这一指令影响的TLB的范围具有以下含义:
·当未安装本地TLB清除设施时,或者当未安装该设施且M4字段中的本地清除控制(LC)比特为0时,术语“已指定CPU”意指配置中所有CPU。
·当安装了本地TLB清除设施且M4字段中的LC比特为1时,术语“已指定CPU”仅意指执行IDTE指令的CPU(本地CPU)。配置中所有其它CPU 中的TLB可不受到影响。
当通过ASCE的清除比特(通用寄存器R2的比特52)为0时,执行被称为无效化及清除操作的操作,如下。使存储器中已指定区表项或者段表项或者从已指定项开始的项的范围无效化,且从配置中已指定CPU中的转换后备缓冲器(TLB)清除(1)通过使用存储器中已无效化项形成的已指定类型的所有 TLB表项,以及(2)通过使用已清除较高层TLB表项形成的所有较低层TLB 表项。可以将被清除的TLB项限制为其形成旨在转换已指定地址空间中的地址的项。
当通过ASCE的清除选项比特为1时,执行被称为通过ASCE的清除操作的操作,如下。该操作并不执行存储器中的DAT表项的任何无效化,而是从配置中所有CPU中的TLB清除其形成旨在转换已指定地址空间中的地址的所有区第一表项、区第二表项、区第三表项、段表项以及页表项。
M4字段的比特被定义如下:
·保留的:忽略M4字段的比特0至1,但应包含0;否则,之后程序可能会不兼容地操作。
·格式控制摘要(FS):当EDAT-2适用时,M4字段的比特2为针对无效化及清除操作的格式控制摘要(FS)。对于通过ASCE的清除操作且当EDAT-2 不适用时,忽略M4字段的比特2。
当指定类型(DT)(通用寄存器R1的比特60至61)为00或者01二进制时,格式控制摘要适用;当通用寄存器R1中的DT为10或者11二进制时,忽略格式控制摘要。
·本地清除控制(LC):当安装了本地TLB清除设施时,LC比特(M4字段的比特3)控制是否仅清除本地CPU中的TLB,或者是否清除配置的所有CPU 中的TLB。当未安装本地TLB清除设施安装时,忽略M4字段的比特3。
无效化及清除操作
当通用寄存器R2的比特52(通过ASCE的清除选项比特)为0时,指定无效化及清除操作。
通用寄存器R1的内容具有地址空间控制元素的格式,其中仅使用表原点 (比特0至51)及指定类型控制(DT)(比特60及61)。表原点指定其中一或多个项将被无效化的DAT表,且DT指定该表的类型。
忽略通用寄存器R1的比特52至59、62、以及63。
通用寄存器R2的比特0至43具有虚拟地址的区索引及段索引的格式。通常将由DAT用于选择由通用寄存器R1指定的表类型中的项的比特0至43 的部分称为有效无效化索引。
通用寄存器R1的比特60及61指定表类型及有效无效化索引,如下:
忽略有效无效化索引右侧的通用寄存器R2的比特0至43的部分。
通用寄存器R1中的表原点及有效无效化索引指定将要无效化的DAT表项。通用寄存器R2的比特53至63为指定将要无效化的额外表项的数目的一个无正负号二进制整数。因此,将要无效化项的数目为1至2,048,对应于比特53至63的值。
通用寄存器R2的比特44至51必须为0;否则,识别为规格异常。
如果R3为非零,则通用寄存器R3的内容具有地址空间控制元素的格式,其中仅使用表原点(比特0至51)及指定类型控制(DT)(比特60及61)。这些内容用于选择将要清除的TLB项。忽略通用寄存器R3的比特52至59、62及 63。如果R3为0,则忽略通用寄存器0的整个内容,且清除TLB项而不管用于形成它们的ASCE如何。
除了总是忽略来自所得地址的比特位置0的进位且不对照表长度字段检查该索引之外,通用寄存器R1中的表原点及通用寄存器R2中的有效无效化索引根据2010年8月的IBM出版物第SA22-7832-08号的“z/Architecture Principles of Operation”中“Lookup ina Table Designated by an Address-Space-Control Element”中的规则指定表项,特将该出版物的全部内容并入此处,以作参考。表原点被视为64比特地址,且使用针对64比特地址运算的规则执行相加,而不管由当前PSW的比特31及32指定的当前寻址模式如何。由此两个分量形成的地址为真实或者绝对地址。将此区表项或者段表项的无效比特(比特58)设置为1。在此操作步骤期间,未针对格式错误或者针对项中下一较低层表的原点是否将导致寻址异常检查该项。忽略项中的表类型字段。如果项为段表项,则忽略该项中的公共段比特。如果EDAT-2适用且项为区第三表项,则忽略该项中的公共区比特。
从存储器并行地提取整个表项。随后,存储包含无效比特的字节。对该项的提取访问受到密钥控制保护,且存储访问受到密钥控制保护及低地址保护。
如果通用寄存器R2的比特53至63并非全为0,则通过将1加至有效无效化索引的先前使用值重复在区表项或者段表项中将无效比特设置为1,且此重复进行达比特53至63指定的次数。忽略有效无效化索引的最左侧比特位置外的进位,且在此情况下表中出现环绕式处理。通用寄存器R2的内容保持不变。
在操作开始之前执行序列化功能,且在操作完成之后再次执行这一功能。如针对所有序列化操作的情况一样,此序列化仅应用于此CPU;其它CPU不必被序列化。
在此CPU已将无效比特设置为1之后,此CPU从其TLB清除选择的项。接下来,如果未安装本地TLB清除设施,或者如果安装了该设施且M4字段中的LC比特为0,则此CPU向配置中所有其它CPU发送信号,以从它们的 TLB清除选择的项。从每一受影响TLB清除那些至少满足所有以下条件的项:
·通用寄存器R2中的有效无效化索引匹配于由通用寄存器R1的比特60 至61中的DT字段指定的类型的TLB表项中的对应的索引。如果所述模型实现了一个包括由DT字段指定的索引的复合TLB项,则通用寄存器R2中的有效索引左侧的比特也匹配于已指定TLB表项中提供的任何对应的比特。应注意,当多个表项因通用寄存器R2的比特53至63而无效化时,则使有效无效化索引递增,丢弃在该索引的最左侧比特位置外的进位,且针对如此获得的索引的每一个值清除TLB区表项或者段表项。
·R3字段为0,或者通用寄存器R3中的表原点及指定类型字段匹配于用于形成TLB表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。
·如果R3字段为0,则此步骤中所描述的条件不适用。
·如果存储器中无效化的项指定较低层转换表,则已无效化项中的较低层表原点匹配于TLB表项中的表原点字段。
也从每一受影响TLB清除至少满足所有以下条件的任何较低层TLB表项:
·通过使用存储器中无效化的项或者通过使用较高层TLB表项形成较低层TLB表项,其中,所述较高层TLB表项是通过使用存储器中无效化的项或者在此过程中清除的TLB项所形成的。
·R3字段为0,或者通用寄存器R3中的表原点及指定类型字段匹配于用于形成较低层TLB表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。此ASCE可以为附接包含较高层表项的转换路径的ASCE,其中,所述较高层表项附接存储器中根据其形成较低层TLB表项的较低层表项,或者该ASCE可以为使较高层TLB表项可用的ASCE,其中,所述较高层TLB表项附接存储器中根据其形成较低层TLB表项的较低层表项。如果R3字段为0,则此步骤中所描述的条件不适用。
·如果存储器中无效化的项指定较低层转换表,则已无效化项中的较低层表原点匹配于TLB表项中的表原点字段。
程序设计注意:
1.将格式控制摘要设置为1可以在某些模型上提供改进的性能。
2.当指定类型(DT)(通用寄存器R1的比特60至61)为00二进制时,格式控制摘要应用于正被无效化的段表项。当通用寄存器R1中的DT为01二进制时,格式控制摘要应用于正被无效化的区第三表项。
3.如果程序可以确保格式控制(表项的比特53)在正被无效化的所有表项中为1,则程序应仅将格式控制摘要设置为1。如果将格式控制摘要设置为1,但格式控制并非在正被无效化的所有表项中为1,则可能发生TLB的不完全去除,从而导致来自DAT的不可以预测的结果。
4.将指令的M4字段视为可选用的,如由包含在汇编程序语法中的括号[] 内的字段所指示。当未指定M4字段时,汇编程序将0放置在指令的该字段中。
如果无效比特在区表项或者段表项中已经为1,则可以或者可以不发生在区表项或者段表项中的存储及TLB项的清除。
当使多个项无效化时,可以延迟TLB项的清除,直至已使所有项无效化。
通过ASCE的清除操作
当通用寄存器R2的比特52(通过ASCE的清除选项比特)为1时,指定通过ASCE的清除操作。
通用寄存器R3的内容具有地址空间控制元素的格式,其中仅使用表原点 (比特0至51)及指定类型控制(DT)(比特60及61)。这些内容用于选择将要清除的TLB项。忽略通用寄存器R3的比特52至59、62及63。R3可以为零或者非零,即,可以指定包括寄存器0的任何通用寄存器。
通用寄存器R2的比特44至51必须为0;否则,识别为规格异常。
忽略通用寄存器R1的内容以及通用寄存器R2的比特位置0至43及53 至63的内容。
在所有层从配置中已指定CPU的TLB至少清除那些对于其通用寄存器R3中的表原点字段及指定类型字段匹配于用于形成该项的地址空间控制元素 (ASCE)中的表原点字段及指定类型字段的项。此ASCE为用于在其间形成该项的转换中的ASCE。
当通过ASCE的清除选项比特(通用寄存器R2的比特52)为1时,忽略 M4字段。
公共操作
INVALIDATE DAT TABLE ENTRY的执行并未在执行其的CPU上完成,直至发生以下情形为止:
1.已从此CPU的TLB清除了满足以上指定的准则的所有项。当安装了本地TLB清除设施且M4字段中的LC比特为1时,INVALIDATE DAT TABLE ENTRY的执行在此时完成,且不执行以下步骤。
2.当未安装本地TLB清除设施时,或者当安装了该设施且M4字段中的 LC比特为0时,配置中所有其它CPU已使用对应于已指定参数的TLB项完成了任何存储访问,包括改变比特及参照比特的更新。
操作不必对TLB真实空间项具有任何功效。
具体条件:
通用寄存器R2的比特44至51必须为0;否则,识别为规格异常。
对于所有寻址及保护异常这一操作受到抑制(仅无效化及清除操作)。
所得条件码:该码为不可以预测的。
程序异常:
·寻址(已无效化区表项或者段表项,仅无效化及清除操作)。
·操作(如果未安装DAT增强设施)
·特权操作
·保护(提取及存储、区表项或者段表项、密钥控制保护及低地址保护;仅无效化及清除操作)。
·规格
程序设计注意:
1.可以依据模型,按不同方式实现TLB项的选择清除,而且,一般而言,可以清除多于所需要的最小数目的项。当执行无效化及清除操作时,一些模型可以在有效无效化索引并非段索引时清除所有TLB项,或者可以清除一个项而不管该项中的页表原点如何。当执行该操作或者通过ASCE的清除操作时,一些模型可以清除TLB项而不管通用寄存器R3中的指定类型字段如何。当执行任一操作时,其它模型可以精确地清除所需要的最小数目的项。因此,为了使程序在所有模型上操作,程序不应利用由具体模型上的较少选择的清除获得的任何特性。
2.当使用通过ASCE的清除操作清除与公共段相关联的TLB项时,应注意,这些项可能已通过使用包含许多不同表原点的地址空间控制元素得以形成。
当指定无效化及清除操作时,以下注意适用。
3.TLB项的清除可以利用段表项中的页表原点。因此,如果段表项在处于附接状态时一直包含不同于当前值的页表原点,则包含先前值的项的复本可以保持于TLB中。
4.如果存在另一个CPU或者通道程序也可以正更新主存储器中的共享位置的可能性,则INVALIDATE DAT TABLE ENTRY不能安全地用于更新该位置。
5.针对INVALIDATE DAT TABLE ENTRY的DAT表项的地址为一个64 比特地址,且遵循用于64比特地址运算的通常规则执行地址运算,其中环绕式处理出现于264-1处。另外,不使用位移及长度字段。将此情形与隐式转换以及针对LOAD REAL ADDRESS及STORE REALADDRESS的转换加以对比,它们全都可以在进位发生于比特位置0外时导致环绕式处理或者导致寻址异常,且它们在已指定项未位于其表内时指示异常条件。因此,DAT表不应被指定为从最大存储位置至位置0进行环绕式处理,且第一已指定项及由通用寄存器R2的比特53至63指定的所有额外项应位于已指定表内。
6.当安装了本地TLB清除设施时,应将本地清除控制应指定为在用于形成正被清除的TLB项的ASCE已仅附接于在其上执行IDTE指令的CPU时的本地清除控制(例如,如果程序正在单处理器上执行)。否则,可能发生不可以预测结果,包括延迟访问异常机器检查的呈现。
在一些模型上,针对以上所列出的情况使用指定仅清除本地TLB的 INVALIDATEDAT TABLE ENTRY可以导致显著性能改进。
7.将指令的M4字段视为可选的,如由包含在汇编程序语法中的括号[] 内的字段所指示。当未指定M4字段时,汇编程序将0放置在指令的该字段中。
无效化页表项
IPTE R1,R2[,R3[,M4]]
注意:术语“已指定CPU”对于受到此指令影响的TLB的范围具有以下含义:
·当未安装本地TLB清除设施时,或者当安装了该设施且M4字段中的本地清除控制(LC)比特为0时,术语“已指定CPU”意指配置中所有CPU。
·当安装了本地TLB清除设施且M4字段中的LC比特为1时,术语“已指定CPU”仅意指执行IPTE指令的CPU(本地CPU)。配置中所有其它CPU 中的TLB可不受到影响。
使已指定页表项无效化,且从配置中已指定CPU中的转换后备缓冲器 (TLB)清除关联项。
通用寄存器R1的内容具有段表项的格式,其中仅使用页表原点。通用寄存器R2的内容具有虚拟地址的格式,其中仅使用页索引。忽略并非页表原点或者页索引的部分的字段的内容。
当未安装IPTE范围设施时,或者当R3字段为0时,使由第一操作元及第二操作元指定的单一页表项无效化。
当安装了IPTE范围设施且当R3字段为非零时,通用寄存器R3的比特56至63包含指定将要无效化的额外页表项的计数的一个无正负号二进制整数。因此,将要无效化的页表项的数目为1至256,其对应于寄存器的比特 56至63中的值0至255。
当未安装IPTE范围设施时,R3字段被忽略,但应包含0;否则,之后程序可能会不兼容地操作。
将M4字段的比特定义如下:
·保留的:保留比特0至2。M4字段的保留比特位置被忽略,但应包含 0;否则,之后程序可能会不兼容地操作。
·本地清除控制(LC):当安装了本地TLB清除设施时,LC比特(M4字段的比特3)控制是否仅清除本地CPU中的TLB,或者是否清除配置的所有CPU 中的TLB。当未安装本地TLB清除设施时,保留M4字段的比特3。
页表原点及页索引指定页表项,其遵循针对页表查找的动态地址转换规则。将页表原点视为64比特地址,且使用针对64比特地址运算的规则执行相加,而不管由当前PSW的比特31及32指定的当前寻址模式如何。不会发生因页索引与页表原点的相加在比特位置0外的进位。由这两个分量形成的地址为真实或者绝对地址。将此页表项的页无效比特设置为1。在此操作步骤期间,不针对页无效比特是否已经为1或者针对格式错误检查页表项。另外,也不针对寻址异常检查包含在该项中的页帧真实地址。
当安装了IPTE范围设施且R3字段为非零时,指令为可以中断的,且处理如下:
1.针对页表中的每一后继项重复以上所描述的无效化过程,直至通用寄存器R3的比特56至63中指定的数目的额外项已无效化或者发生中断为止。
2.使通用寄存器R2的比特44至51中的页索引递增相当已无效化页表项的数目;忽略在通用寄存器R2的比特位置44外的进位。
3.使通用寄存器R3的比特56至63中的额外项计数递减相当已无效化页表项的数目。
因此,当安装了IPTE范围设施、R3字段为非零且发生中断(除了导致终止的中断之外)时,通用寄存器R2及R3已被更新,从而当重新执行时指令在中断点恢复。
当未安装IPTE范围设施时,或者当R3字段为0时,寄存器R2及R3的内容保持不变。
对于无效化的每一页表项,当从其它CPU观察时,似乎是从存储器并行地提取整个页表项。随后,存储包含页无效比特的字节。对每一页表项的提取访问受到密钥控制保护,且存储访问受到密钥控制保护及低地址保护。
在操作开始之前执行序列化功能,且在操作完成之后再次执行。如针对所有序列化操作的情况,此序列化仅应用于此CPU;其它CPU不必被序列化。
如果未识别到异常,则此CPU从其TLB清除选择的项。接下来,如果未安装本地TLB清除设施,或者如果安装了该设施且M4字段中的LC比特为0,则此CPU向配置中所有CPU发送信号以从它们的TLB清除选择的项。对于无效化的每一页表项,从每一受影响TLB至少清除那些已使用所有以下内容形成的项:
·由通用寄存器R1指定的页表原点
·由通用寄存器R2指定的页索引
·包含在已指定页表项中的页帧真实地址
在发生以下情形之前,INVALIDATE PAGE TABLE ENTRY的执行在执行其的CPU上并未完成:
1.已使对应于已指定参数的所有页表项无效化。
2.已从此CPU的TLB清除对应于已指定参数的所有项。当安装了本地 TLB清除设施且M4字段中的LC比特为1时,INVALIDATE PAGE TABLE 项的执行在此时完成,且不执行以下步骤。
3.当未安装本地TLB清除设施时,或者当安装了该设施且M4字段中的 LC比特为0时,配置中所有其它CPU已使用对应于已指定参数的TLB项完成了任何存储访问,包括改变比特及参照比特的更新。
具体条件
当安装了IPTE范围设施、R3字段为非零且通用寄存器R2中的页索引加上通用寄存器R3中的额外项计数大于255时,识别为规格异常。
对于所有寻址及保护异常,抑制所述操作。
条件码:该码保持不变。
程序异常:
·寻址(页表项)
·特权操作
·保护(提取及存储、页表项、密钥控制保护、以及低地址保护)
·规格
程序设计注意:
1.可以依照模型以不同方式实现项的选择清除,而且,一般而言,可以清除多于所需要的最小数目的项。一些模型可以清除包含从存储器中的页表项获得的页帧真实地址的所有项。其它模型可以清除包含已指定页索引的所有项,且一些实现可以精确地清除所需要的最小数目的项。因此,为了使程序在所有模型上操作,程序不应利用通过具体模型上的较少的选择清除所获得的任何特性。
2.TLB项的清除可以利用页表项中的页帧真实地址。因此,如果页表项在处于附接状态时一直包含不同于当前值的页帧真实地址,则包含先前值的项的复本可以保持于TLB中。
3.如果存在另一CPU或者通道程序也可以正更新主存储器中的共享位置的可能性,则INVALIDATE PAGE TABLE ENTRY不能安全地用于更新该位置。
4.当安装了IPTE范围设施且R3字段为非零时,以下情形适用:
a.将要无效化的所有页表项必须驻留于同一页表中。如果通用寄存器 R1中的页索引加上通用寄存器R3中的额外项计数大于为255的最大页索引,则识别为规格异常。
b.由INVALIDATE PAGE TABLE ENTRY无效化的页表项的数目可以随着执行的不同而不同。
c.指令不能用于程序必须依赖于指令的未中断执行的情形。相类似,程序通常不应使用INVALIDATE PAGE TABLE ENTRY使页表项无效化,页表项的页帧真实地址指定包含指令的4K字节块或者执行IPTE的执行类型指令的4K字节块。
5.当安装了本地TLB清除设施时,应将本地清除控制指定为在用于形成正被清除的TLB项的ASCE已仅附接于在其上执行IPTE指令的CPU时的本地清除控制(例如,如果程序正在单处理器上运行)。否则,可能发生不可以预测结果,包括延迟访问异常机器检查的呈现。
在一些模型上,对于以上所列出的情况,指定仅清除本地TLB的 INVALIDATE PAGETABLE ENTRY的使用,可以导致显著性能改进。
6.将指令的R3及M4字段视为可选的,如由包含在汇编程序语法中的括号[]内的字段所指示的。当未指定任一字段时,汇编程序将0放置在指令的对应字段中。当对M4字段进行编码,但不需要R3字段时,应编码0以指定第三操作元的位置。
参照图1描述并入及使用了一或多个方面的计算环境100的一个实施例。例如,计算环境100基于由纽约州阿蒙克市的International Business Machines Corporation提供的z/Architecture。2010年8月IBM出版物第SA22-7832-08 号的名为“z/ArchitecturePrinciples of Operation”的出版物中描述了 z/Architecture。(为美国纽约州阿蒙克市的International Business Machines Corporation的注册商标。此处所使用的其它名称可能为International Business Machines Corporation或者其它公司的注册商标、商标或者产品名称。)在一个实例中,基于z/Architecture的计算环境包括由纽约州阿蒙克市的International Business Machines Corporation提供的eServer zSeries。
作为一个实例,计算环境100包括耦合于控制器120的中央处理器复合体(CPC)102。例如,中央处理器复合体102包括一或多个分割区104(例如,逻辑分割区LP1至LPn)、一或多个中央处理器106(例如,CP1至CPm)、以及一个超管理器108(例如,逻辑分割区管理器),以下即对它们逐一加以描述。
每一逻辑分割区104能够充当一个独立的系统。即,每一逻辑分割区可以被独立地重设、最初载入有操作系统(如果需要的话),且使用不同程序操作。在逻辑分割区中运行的操作系统或者应用程序似乎具有对一个完全且完整的系统的访问权,但实际上,仅该系统的一部分可用。硬件及已授权内部码(通常被称为微码)的组合防止了一个逻辑分割区中的程序干扰一个不同逻辑分割区中的程序。这允许若干不同逻辑分割区以时间分片方式在单一或多个物理处理器上操作。在这一具体实例中,每一个逻辑分割区具有一个驻留的操作系统110,对于一或多个逻辑分割区操作系统110可以不同。在一个实施例中,操作系统110为由纽约州阿蒙克市的International Business Machines Corporation提供的z/OS操作系统。
中央处理器106为分配于逻辑分割区的物理处理器资源。例如,逻辑分割区104包括一或多个逻辑处理器,每一个逻辑处理器表示分配于该分割区的物理处理器资源106的全部或者部分。一个具体分割区104的逻辑处理器可以专用于该分割区,从而可以为该分割区而保留底层处理器资源;或者与另一个分割区共享,以使底层处理器资源潜在地可用于另一个分割区。
逻辑分割区104由超管理器108管理,超管理器108由运行在处理器106 上的微码实现。逻辑分割区104及超管理器108分别包含驻留于与中央处理器相关联的中央存储器的各部分中的一或多个程序。超管理器108的一个实例为由纽约州阿蒙克市的InternationalBusiness Machines Corporation提供的处理器资源/系统管理器(PR/SM)。
耦合于中央处理器复合体的控制器120包括负责在发出请求的不同处理器之间作出仲裁的集中式逻辑。例如,当控制器120接收到请求时,其判定请求者为针对该请求的主控处理器且其它处理器为从处理器;该控制器传播消息;否则处置请求。2000年9月12日的Webb等人的名为“System Serialization With Early Release Of IndividualProcessor”的美国专利第 6,199,219号中描述了控制器的一个实例。也参照图2描述进一步的细节。
图2描述了耦合于多个中央处理器(CPU)201的控制器200的一个实例。在此实例中,描述了两个中央处理器。然而,应该意识到,可以将两个以上处理器耦合于控制器200。
控制器200包括各种控制,例如,所述控制包括系统序列化控制202。所述系统序列化控制用于确保将要序列化的操作(诸如,无效化指令)得以序列化,其中,在计算环境中一次仅一个这样的指令在运行。其也监视针对所述操作的事件序列。
经由各种接口将控制器200耦合于每一中央处理器。例如,通过中央处理器中的已授权内部码使用接口204向控制器发送指定将采取的动作的“控制”命令,且发送从控制器返回信息的“感测”命令。另一接口为响应总线206,其用于针对“感测”命令从控制器返回信息。响应总线也用于针对“控制”命令传送命令状态,且可以从控制器内的多个源对其加以设置,所述源包括系统序列化控制。中央处理器可以使用此接口感测控制器200中的系统序列化控制的状态。
另一个接口为接口208,控制器使用其将命令发送至每一CPU。也可以从控制器内的多个源控制此接口,其中,所述源包括系统序列化控制202。另一个接口为接口210,其将信号提供至中央处理器201的高速缓存控制212。高速缓存控制212响应所述信号处理命令。在一个实例中,高速缓存控制212 处理影响一或多个缓冲器(诸如,转换后备缓冲器(TLB)213)的命令,如以下进一步详细描述的。
除了高速缓存控制212之外,中央处理器201还包括各种其它控制,例如,包括中断控制220以及执行控制222。响应具体事件,中断控制220导致CPU中一个待决的内部中断,接下来,该内部中断致使执行控制222在下一可以中断点挂起程序指令处理。响应所述中断,执行控制222调用已授权内部码例程将传播操作允许锁存器224设置为能够使高速缓存控制212处理挂起的命令。
中央处理器201还包括中央处理单元(CPU)休眠锁存器226,其指示该中央处理器是否为休眠。本说明书中可以互换地使用术语CPU与处理器。
上述计算环境仅为一个实例。许多变化是可能的。例如,一或多个分割区可以下在不同的体系结构模式下。另外,作为另一个实例,所述环境无需基于z/Architecture,取而代之,也可以基于由Intel、Sun Microsystems以及其它公司所提供的其它体系结构。此外,一个环境可以包括一个其中模拟特定结构或者其子集的模拟器(例如,软件或者其它模拟机制)。在这样的环境中,模拟器的一或多个模拟函式可以实现一或多个方面,即使执行该模拟器的计算机可以具有不同于正被模拟的能力的体系结构也是如此。作为一个实例,在模拟模式下,对正被模拟的特定指令或者操作进行解码,并且建立一个实现各指令或者操作的适当模拟函式。
参照图3描述模拟环境的进一步的细节。作为一个实例,主计算机300 能夠模拟另一个体系结构、计算机与/或另一个计算机的处理能力。例如,主计算机300基于Intel体系结构、诸如PowerPC的RISC体系结构、由Sun Microsystems提供的SPARC体系结构,或者另一种体系结构,并且能夠模拟的z/Architecture或者的另一种体系结构或者另一个实体。
例如,主计算机300包括存储指令及数据的存储器302、从存储器302 提取指令且有选择地提供针对已提取指令的本地缓冲的指令提取单元304、从指令提取单元304接收指令且判定已被提取的指令的类型的指令解码单元 306,以及执行所述指令的指令执行单元308。执行可以包括:将数据从存储器302载入至寄存器;将数据从寄存器存储回存储器;或者执行某一类型的运算或者逻辑操作,如由解码单元所判定的。
在一个实例中,以软件实现以上所描述的每一单元。例如,将由所述单元执行的操作实现为模拟器软件内的一或多个子程序。在另一个实例中,以固件、硬件、软件或者它们的某一组合实现一个或多个所述操作。
另外,尽管根据模拟描述了图3,但图3的环境无需为模拟环境。在另一个实例中,在原环境中执行指令,且以硬件、固件、软件或者它们的某一组合实现所述操作。
计算环境可以包括虚拟存储器以及主存储器。虚拟存储器可以远超过可用于配置中的主存储器的大小,且通常维持于辅助存储器中。将虚拟存储器视由被称为页的地址块构成。令虚拟存储器的最近所引用的页占据物理主存储器的块。当用户引用未出现于主存储器中的虚拟存储器的页时,令虚拟页替换主存储器中不太可能被使用的页。可以在用户不知晓的情况下由操作系统执行存储器中的页的交换。
将用于指定虚拟存储器中的位置的地址称为虚拟地址。例如,将跨度达 4k字节的连续的虚拟地址块称为一页。相类似,例如,将跨度达1M字节的连续的虚拟页块称为段;以及,例如,将跨度达2G字节的连续的虚拟段块称为区。另外,将与地址空间控制元素(ASCE)指定的虚拟存储器相关联的虚拟地址序列称为地址空间。地址空间可用于提供用户之间的隔离度。一个地址空间可以包括一或多个区、一或多个段、一或多个页、或者它们的某一组合。
与不同类型存储器单元(例如,区、段、页)相关联的是与存储器单元相关联的处理中所使用的数据结构。例如,与区相关联的是区表;与段相关联的是段表;以及与页相关联的是页表。例如,在虚拟地址至用于访问主存储器的真实地址的转换(例如,动态地址转换)期间使用这些表。此处,将用于转换的表称为转换表,并且由地址空间控制元素(ASCE)加以指定。将当前未分配于主存储器的虚拟存储器单元称为无效。虚拟存储器单元的无效状态由与该单元相关联的数据结构中的无效指示符加以指示。
在一个实施例中,这样地实现动态地址转换机制:将通过DAT过程从转换表(例如,区表、段表与/或页表)导出的信息维持于位于处理器内的此处被称为转换后备缓冲器的一或多个缓冲器中,以增强地址转换的性能。即,在转换期间,针对所需的信息检查缓冲器,且接下来,如果所述信息未处于缓冲器中,则访问一或多个转换表。
在模拟模式下,对正被模拟的具体指令进行解码,并且建立一个实现所述单指令的子程序,如在C子程序或者驱动程序中一样,或者使用某种其它技术提供针对具体硬件的驱动程序,在理解了实施例的描述之后,本领域技术人员将会意识到这一点。各种软件及硬件模拟专利包括但不局限于: Beausoleil等人的名为“Multiprocessor for HardwareEmulation”的美国专利第 5,551,013号;Scalzi等人的名为“Preprocessing of StoredTarget Routines for Emulating Incompatible Instructions on a TargetProcessor”的美国专利第 6,009,261号;Davidian等人的名为“Decoding GuestInstruction to Directly Access Emulation Routines that Emulate the GuestInstructions”的美国专利第 5,574,873号;Gorishek等人的名为“SymmetricalMultiprocessing Bus and Chipset Used for Coprocessor Support Allowing Non-Native Code to Run in a System”的美国专利第6,308,255号;Lethin等人的名为“Dynamic Optimizing Object Code Translator for Architecture Emulation andDynamic Optimizing Object Code Translation Method”的美国专利第6,463,582号;以及Eric Traut 的名为“Method for Emulating Guest Instructions on a HostComputer Through Dynamic Recompilation of Host Instructions”的美国专利第5,790,825号等,对于本领域技术人员可得的目标机器以及以上所提及内容所使用的商用软件技术,这些模拟专利说明了多种已知的对针对不同机器设计的指令格式进行模拟的方式。
COMPARE AND REPLACE DAT TABLE ENTRY(CRDTE)
所描述的是CPU指令(COMPARE AND REPLACE DAT TABLE ENTRY),其可用新项替换有效DAT表项,并且可从TLB去除配置中所有 CPU上的(至少)单一项的任何复本。此指令并不要求挂起任何活跃任务,且可以不去除多于必要项的项。
当执行CRDTE指令时,可以依据模型以不同方式实现项的选择清除,而且,一般而言,可以清除多于所需要的最小数目的项。一些模型可以清除包含从存储器中的页表项获得的页帧真实地址的所有项。
如果控制程序需要替换DAT表中的有效项(即,潜在地由其它CPU使用的表项),则控制程序可以执行以下操作之一:
·挂起可以在配置中所有CPU上使用此DAT表项的所有任务的执行,使该项在所有CPU上无效化及去除(例如,使用IPTE),用新项来替换已无效化项,且重新分派已挂起的任务。
·替换DAT表项,且去除配置中所有CPU上的整个TLB(例如,使用 CSPG)。
第一选项复杂,其复杂之处在于:其要求撤销分派及重新分派任务。第二选项次佳,体现于:其要求去除整个TLB,即使正在改变仅一个项也如此。
在一实施例中,计算机处理器获得用于处理的指令。根据操作码,所述机器处理比较及替换DAT表项(CRDTE)指令。CRDTE指令具有以下格式:
操作码 R3 M4 R1 R2
R1及R2字段分别指定通用一个寄存器的一个奇偶对,且必须指定一个偶数编号寄存器;否则,识别为规格异常。通用寄存器R1(该对的偶数寄存器) 包含第一操作元。可以将第一操作元称为比较值。可以将通用寄存器R1+1(该对的奇数寄存器)称为替换值。
在执行指令时,比较第一操作元与第二操作元。第一操作元位于通用寄存器R1中。第二操作元由通用寄存器R2及R2+1指定。R2及R2+1包含寻址信息,例如,已指定的表类型(DTT)及至表中的定位第二操作元的有效索引。
一旦获得第一操作元及第二操作元,接下来对它们进行比较,且如果它们相等,则将通用寄存器R1+1的内容存储于第二操作元位置处,且从配置中已指定CPU清除(1)通过使用存储器中已替换项所形成的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层TLB表项所形成的所有较低层TLB表项。可以有选择地将被清除的TLB项限制为其形成旨在转换已指定地址空间中的地址的项。将所得条件码设置为0。
如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置处,且将所得条件码设置为1。
M4字段可以判定是清除配置中所有CPU的TLB还是仅清除执行指令的 CPU中的TLB。
图4显示了一个实施例的图表。
在一个实施例中,计算机处理器获得用于进行处理的CRDTE指令401。根据操作码,机器处理比较及替换DAT表项指令。
R1及R2字段分别指定通用寄存器405的奇偶对,且必须指定偶数编号寄存器;否则,识别为规格异常。通用寄存器R1(该对的偶数寄存器)410在比特位置0至63中包含第一操作元。可以将第一操作元称为比较值。可以将通用寄存器R1+1(该对的奇数寄存器)411的比特位置0至63称为替换值。
在执行指令时,比较第一操作元与第二操作元。第一操作元位于通用寄存器R1410中。第二操作元为存储器中由通用寄存器R2 420及R2+1 421指定的双字组。通用寄存器R2的比特59至61为已指定的表类型(DTT),其指定通用寄存器R2中形成存储器440中的表430的原点的比特;DTT也指定通用寄存器R2+1中用作至表中定位第二操作元435的有效索引的比特。
一旦比较了第一操作元与第二操作元436,如果它们相等,则将通用寄存器R1+1的内容存储于第二操作元位置445处,且如450所示,从配置中已指定CPU清除(1)通过使用存储器中已替换项所形成的已指定类型的所有 TLB表项,以及(2)通过使用已清除较高层TLB表项所形成的所有较低层TLB 表项。可以有选择地将被清除的TLB项限制为其形成旨在转换已指定地址空间中的地址的项。如455所示,将所得条件码设置为0。
如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置460处。如465所示,将所得条件码设置为1。
指令401可以利用M4字段402以判定有选择地清除配置470中的所有 CPU的TLB或者仅清除执行指令475的CPU中的TLB。M4字段包含本地清除(LC)控制。如果M4字段中的LC控制为0,则配置中所有CPU中的TLB 将受到影响。如果M4字段中的LC控制字段为1,则仅与执行比较及替换DAT 表项指令的CPU相关联的TLB可能受到影响。配置中所有其它CPU中的TLB可不受到影响。
注意:术语“已指定CPU”对于受到此指令影响的TLB的范围具有以下含义:
当M4字段中的本地清除(LC)控制为0时,术语“已指定CPU”意指配置中所有CPU。
当M4字段中的LC控制为1时,术语“已指定CPU”仅意指执行COMPARE AND REPLACEDAT TABLE ENTRY指令的CPU(本地CPU)。配置中所有其它CPU中的TLB可不受到影响。
·比较第一操作元与第二操作元。如果它们相等,则将通用寄存器R1+1 的内容存储于第二操作元位置处,且从配置中已指定CPU清除(1)通过使用存储器中已替换项所形成的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层TLB表项所形成的所有较低层TLB表项。可以有选择地将被清除的TLB项限制为其形成旨在转换已指定地址空间中的地址的项。
·如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置处。然而,在一些模型上,可以提取第二操作元,且随后将其不变地存储回第二操作元位置处。当从由其它CPU所观察时,这一更新似乎是块并行互锁更新参照,。比较的结果由条件码加以指示。
R1及R2字段分别指定通用寄存器的奇偶对,且必须指定偶数编号寄存器;否则,识别为规格异常。现在参照图5,将第一操作元称为比较值501,且包含在通用寄存器R1的比特位置0至63中。将通用寄存器R1+1的比特位置0至63称为替换值510。
第二操作元为存储器中由通用寄存器R2及R2+1 540指定的双字组。通用寄存器R2的比特59至61为已指定的表类型(DTT),其指定通用寄存器R2中形成存储器中的表的原点的比特;DTT也指定通用寄存器R2+1 540中用作至表中定位第二操作元的有效索引的比特,如下:
当DTT为000二进制时,如520所示,通用寄存器R2的比特位置0至 52的内容(具有附加于右侧的11个0)(521)形成表原点,且忽略该寄存器的 522中的比特53至58、523中的比特62、以及524中的比特63。当DTT为 100至111二进制时,如530所示,通用寄存器R2的比特位置0至51的内容 (具有附加于右侧的12个0)(531)形成表原点,且忽略该寄存器的532中的比特52至58、533中的比特62、以及534中的比特63。001、010及011二进制的DTT值无效;如果DTT无效,则识别为规格异常。
通用寄存器R2+1 540的比特0至51具有虚拟地址的区索引、段索引、以及页索引的格式。将通常由DAT用于选择由DTT指定的表类型中的项的 541中的比特0至51的部分称为有效索引。忽略在该有效索引右侧的通用寄存器R2+1的比特0至51的部分。通用寄存器R2+1(542)的比特位置52至 63被保留且必须包含0;否则,识别为规格异常。
如果R3 550为非零,则通用寄存器R3的内容具有地址空间控制元素的格式,其中仅使用了表原点(551中的比特0至51)及指定类型控制(DT)(553 中的比特60及61)。这些内容用于选择将要清除的TLB项。忽略通用寄存器 R3的552中的比特52至59、554中的比特62、以及555中的比特63。如果R3为0,则忽略通用寄存器0的整个内容,且清除TLB项而不管用于形成它们的ASCE如何。
图6中描述了M4字段。
将M4字段的比特定义如下:
保留的:保留如601所示的比特0至2。M4字段的保留的比特位置被忽略,但应包含0;否则,之后程序不能兼容地操作。
本地清除控制(LC):
LC比特(M4字段602的比特3)控制是仅清除本地CPU中的TLB,还是清除配置的所有CPU中的TLB。
当第一操作元与第二操作元相等时,将通用寄存器R1+1的内容存储于第二操作元位置处,且从配置中已指定CPU中的转换后备缓冲器(TLB)清除 (1)通过使用存储器中的第二操作元的原始内容(即,在用替换值替换第二操作元之前第二操作元的内容)所形成的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层TLB表项所形成的所有较低层TLB表项。可以有选择地将被清除的TLB项限制为其形成旨在转换已指定地址空间中的地址的项。
依据表类型,通用寄存器R2中的表原点及通用寄存器R2+1中的有效索引根据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指定的当前寻址模式如何。由此两个分量形成的地址为真实或者绝对地址。不针对有效性检验表项的内容,且由于表项的内容未识别到异常条件。
按块并行互锁更新的方式执行表项的提取及存储。所述项的提取访问受到密钥控制保护,且存储访问受到密钥控制保护及低地址保护。
在操作开始之前执行序列化功能,且在操作完成之后再次执行。如针对所有序列化操作的情况,此序列化仅应用于此CPU;其它CPU不必被序列化。
当第一操作元与第二操作元相等时,此CPU从其TLB清除选择的项。除了清除本地CPU之外,如果M4字段中的LC比特为0,则也向配置中所有其它CPU发送从它们的TLB清除选择的项的信号。从每一个TLB至少清除那些满足所有以下条件的项:
-通用寄存器R2+1中的有效索引匹配于由通用寄存器R2的比特59至 61中的DTT字段指定的类型的TLB表项中的对应索引。如果模型实现了一个包括由DTT字段指定的索引的复合TLB项,则在通用寄存器R2+1中的有效索引左侧的比特也匹配于已指定TLB表项中提供的任何对应比特。
-R3字段为0,或者通用寄存器R3中的表原点及指定类型字段匹配于用于形成TLB表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。
-如果R3字段为0,则此步骤中所描述的条件不适用。
-如果EDAT-1适用且存储器中替换的项为段表项,或者如果EDAT-2适用且存储器中替换的项为区第三表项,则已替换项中的格式控制匹配于TLB 项的格式控制。
-如果存储器中已替换项指定较低层转换表,则该项中的较低层表原点匹配于TLB表项中的表原点字段。
-如果EDAT-1适用且存储器中替换的项为格式控制为1的段表项,或者如果EDAT-2适用且存储器中替换的项为格式控制为1的区第三表项,则已替换项中的段帧绝对地址或者区帧绝对地址分別匹配于TLB项的段帧绝对地址或者区帧绝对地址。
也从每一受影响TLB至少清除满足所有以下条件的任何较低层TLB表项:
-通过使用存储器中已替换项或者通过使用较高层TLB表项形成较低层 TLB表项,其中所述较高层TLB表项是通过使用存储器中已替换项或者在此过程中清除的TLB项形成的。
-R3字段为0或者通用寄存器R3中的表原点及指定类型字段匹配于用于形成较低层TLB表项的地址空间控制元素(ASCE)中的表原点及指定类型字段。此ASCE可以为附接包含较高层表项的转换路径的ASCE,其中所述较高层表项附接存储器中根据其形成较低层TLB表项的较低层表项,或者该 ASCE可以为使较高层TLB表项可用的ASCE,其中所述较高层TLB表项附接存储器中根据其形成较低层TLB表项的较低层表项。
如果R3字段为0,则此步骤中所描述的条件不适用。
-如果EDAT-1适用且存储器中替换的项为段表项,或者如果EDAT-2适用且存储器中替换的项为区第三表项,则已替换项中的格式控制匹配于TLB 项的格式控制。
如果存储器中的项指定较低层转换表,则该项中的较低层表原点匹配于 TLB表项中的表原点字段。
当第一操作元与第二操作元相等时,COMPARE AND REPLACE DAT TABLE ENTRY的执行并未在执行该COMPARE AND REPLACE DAT TABLE ENTRY的CPU上完成,直至发生以下情形为止:
1.已从此CPU的TLB清除满足以上指定的准则的所有项。当M4字段中的LC控制为1时,COMPARE AND REPLACE DAT TABLE ENTRY的执行完成,且不执行以下步骤。
2.当M4字段中的LC控制为0时,配置中所有其它CPU已完成任何存储访问,包括改变比特及参照比特的更新。
操作未必对TLB真实空间项具有任何功效。
具体条件
如果以下情形中任何之一为真,则识别为规格异常,且抑制操作:
R1或者R2字段为奇数。
DTT字段(通用寄存器R2的比特位置59至61)包含001、010、或者011 二进制。
通用寄存器R2+1的比特位置52至63包含非零值。
对于所有寻址及保护异常,操作受到抑制。
所得条件码:
0--第一操作元与第二操作元相等,由通用寄存器R1+1的内容替换第二操作元
1--第一操作元与第二操作元不相等,由第二操作元替换第一操作元
2--
3--
程序异常:
·寻址
·操作(如果未安装增强型DAT设施2)
·特权操作
·保护(提取及存储、区表项、段表项或者页表项、密钥控制保护以及低地址保护)
·规格
程序设计注意:
1.可以依据模型以不同方式实现TLB项的选择清除,而且,一般而言,可以清除多于所需要的最小数目的项。
2.当清除与公共段相关联的TLB项时,应注意,可能已通过使用包含许多不同表原点的地址空间控制元素形成这些项。
3.将指令的M4字段视为可选的,如由包含在汇编程序语法中的括号[] 内的字段所指示。当未指定M4字段时,汇编程序将0放置在指令的该字段中。
4.本地清除控制应仅在以下情形中任何之一为真时才被指定为1;否则,可能发生不可以预测结果,包括延迟访问异常机器检查的呈现。
·程序正运行在单处理器配置中。
·令程序在单一CPU上运行,且维持程序与该CPU之间的亲和性。
在一些模型上,针对以上所列出的情况使用指定仅清除本地TLB的 COMPARE ANDREPLACE DAT TABLE ENTRY可以导致显著性能改进。
对以上环境的诸多改变是可能的。例如,一或多个方面同等地适用于(例如)虚拟机模拟,在所述虚拟机模拟中,一或多个可分页实体(例如,客体)在一或多个处理器上执行。作为一个实例,可分页实体由启动解释性执行(Start Interpretive Execution,SIE)结构定义,IBM出版物第SA22-7095号(1985年)、名为“IBM System/370 ExtendedArchitecture”的IBM出版物中描述该SIE结构的一个实例。
尽管以上提及SIE及z/Architecture,但一或多个方面同等地适用于使用可分页实体或者相似构造的其它体系结构与/或环境。
此外,以上所描述的各种实施例仅为实例。例如,尽管此处描述了逻辑分割的环境,但其仅为一个实例。各方面有益于许多环境类型,包括具有多个区字段的其它环境,以及非分割的环境。另外,可以不存在中央处理器复合体,而存在耦接在一起的多个处理器。而且,一或多个方面适用于单处理器环境。
尽管此处描述了特定环境,但对这些环境进行诸多改变也是可能的。例如,如果对所述环境进行逻辑分割,则可以将较多或者较少的逻辑分割区包括于该环境中。而且,可以存在耦接在一起的多个中央处理复合体。仅存在可以进行的某些改变。另外,其它改变也是可能的。而且,该环境可以包括多个控制器。另外,多个休眠的请求(来自一或多个控制器)可以同时停留在系统中。更多的改变也是可能的。
有利的是,一或多个方面可以受益于以下美国专利中的一个或多个中所描述的性能增强:Slegel等人的名为“Filtering Processor Requests Based On Identifiers”的美国专利第7530067号;Slegel等人的名为“Blocking Processing Restrictions BasedOn Page Indices”的美国专利第7020761号;以及Slegel等人的名为“BlockingProcessing Restrictions Based On Addresses”的美国专利第 6996698号。
如此处所描述的,术语“处理单元”包括:可分页实体,例如,客体;处理器;模拟器;与/或其它类似的组件。此外,术语“由处理单元”包括以处理单元的名义。术语“缓冲器”包括存储器区字段,以及不同类型的数据结构,包括但不局限于阵列;且术语“表”可以包括不同于表类型数据结构的表。另外,指令可以包括不同于指定信息的寄存器的指令。此外,页、段与/或区可以具有不同于此处所描述的大小的大小。
可以通过软件、固件、硬件、或者它们的某一组合实现一或多个所述能力。另外,也可以模拟一或多个所述能力。
一或多个方面可以包括于具有(例如)计算机可用介质的制品(例如,一或多个计算机程序产品)中。例如,所述介质中包含了提供及简化所述能力的计算机可读程序代码机制或者逻辑(例如,指令、代码、命令等)。可以将所述制品作为计算机系统的一个部分加以包括,也可以独立地加以销售。
另外,还能够提供可以由机器读取的至少一个程序存储设备,所述机器包含至少一个可以由该机器执行以实现所述能力的指令的程序。
此处所描述的流程图仅为实例。可以对此处所描述的这些图或者步骤(或者操作)进行诸多改变。例如,可以按不同次序执行所述步骤,而且还可以添加、删除或者修改各步骤。
尽管此处已详细描述了优选实施例,但相关技术领域中的技术人员将会明显意识到:可以对本发明进行多方面的修改、添加、替代等,因此,这些的修改、添加、替代等也被视为处于以下权利要求中所定义的范围。
在另一个实施例中,适合于存储与/或执行程序代码的数据处理系统为可用的,其包括至少一个直接或者通过系统总线间接耦合于存储器元件的处理器。例如,所述存储器元件包括在程序代码的实际执行期间使用的本地存储器、大容量存储器,以及高速缓存存储器,所述高速缓存存储器提供了至少某一程序代码的临时存储,以缩减执行期间必须从大容量存储器检索代码的次数。
可以直接或者通过介入I/O控制器将输入/输出,即I/O设备(包括但不局限于键盘、显示器、定位设备、DASD、磁带、CD、DVD、拇指翻阅驱动器 (thumb drive)以及其它存储器介质等)耦合于系统。也可以通过介入私用或者公用网络将网络适配器耦合于系统,使数据处理系统能夠耦合于其它数据处理系统或者远端打印机或者存储设备。调制解调器、电缆调制解调器以及 Ethernet卡仅为少数几种可用网络适配器。
一或多个方面可以包括于具有(例如)计算机可用介质的制品(例如,一或多个计算机程序产品)中。例如,所述介质中包含了提供及简化所述能力的计算机可读程序代码机制或者逻辑(例如,指令、代码、命令等)。可以将所述制品作为计算机系统的一个部分加以包括,也可以独立地加以销售。
参照图7描述并入了一或多个方面的制品或者计算机程序产品的一个实例。例如,计算机程序产品700包括一或多个计算机可用介质702,以在其上存储计算机可读程序代码机制或者逻辑704,以提供及简化一或多个方面。所述介质可以为电子、磁性、光学、电磁、红外线或者半导体系统(或者装置或者设备)或者传播介质。计算机可读介质的实例包括半导体或者固态存储器、磁带、可以移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘及光盘。光盘的实例包括压缩盘-只读存储器(CD-ROM)、压缩盘-读/ 写(CD-R/W)以及DVD。由一或多个计算机可读程序代码机制或者逻辑定义的程序指令的序列或者一或多个相关模块的逻辑组件引导一或多个方面的执行。
Claims (13)
1.一种用于管理动态地址转换DAT表的方法,所述方法包含下列步骤:
处理器根据将要执行的机器可执行指令的操作码判定所述指令为比较及替换DAT表项指令,所述指令包含R1字段及R2字段;以及
由所述处理器执行所述指令,所述执行包含:
根据类型字段,将奇数寄存器的索引值加至偶数寄存器的值,以形成第二操作元的地址,所述奇数寄存器及所述偶数寄存器为由所述指令的R2字段指定的奇偶寄存器对;
从由已形成地址指定的存储器位置获得原始第二操作元;
比较第一操作元与所获得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器对的偶数编号偶R1寄存器中;以及
根据第一操作元等于原始第二操作元,
将由所述指令的R1字段指定的奇偶寄存器对的奇数编号寄存器的内容作为新第二操作元存储于第二操作元位置中;以及
根据由原始第二操作元的值指定的转换表项,使用转换表项有选择地清除对应于由DAT形成的项的所有本地转换后备缓冲器TLB项。
2.根据权利要求1所述的方法,包含根据第一操作元不等于原始第二操作元将原始第二操作元存储至偶R1寄存器中。
3.根据权利要求1所述的方法,其中,有选择地清除的转换表项对应于与原始第二操作元相关联的较低层转换表项。
4.根据权利要求1所述的方法,还包含:
根据第一操作元比较值等于第二操作元,设置第一条件码值;以及
根据第一操作元比较值不等于所述第二操作元,设置第二条件码值。
5.根据权利要求1所述的方法,其中,已清除的TLB项限于其形成旨在转换由所述指令指定的地址空间中的地址的项。
6.根据权利要求1所述的方法,还包含:
根据所述指令的具有第一值的掩码字段,有选择地仅清除配置的多个处理器中执行所述指令的处理器的TLB;以及根据所述指令的一个具有第二值的掩码字段,有选择地清除配置的多个处理器的TLB。
7.一种用于管理动态地址转换DAT表的系统,所述系统包括:
用于使得处理器根据将要执行的机器可执行指令的操作码判定所述指令为比较及替换DAT表项指令的模块,所述指令包含R1字段及R2字段;以及用于使得所述处理器执行所述指令的模块,所述执行包含:
根据类型字段,将奇数寄存器的索引值加至偶数寄存器的值,以形成第二操作元的地址,所述奇数寄存器及所述偶数寄存器为由所述指令的R2字段指定的奇偶寄存器对;
从由已形成地址指定的存储器位置获得原始第二操作元;
比较第一操作元与所获得的原始第二操作元,第一操作元包含在由所述指令的R1字段指定的奇偶寄存器对的偶数编号偶R1寄存器中;以及
根据第一操作元等于原始第二操作元,
将由所述指令的R1字段指定的奇偶寄存器对的奇数编号寄存器的内容作为新第二操作元存储于第二操作元位置中;以及
根据由原始第二操作元的值指定的转换表项,使用转换表项有选择地清除对应于由DAT形成的项的所有本地转换后备缓冲器TLB项。
8.根据权利要求7所述的系统,所述执行包含根据第一操作元不等于原始第二操作元将原始第二操作元存储至偶R1寄存器中。
9.根据权利要求7所述的系统,其中,有选择地清除的转换表项对应于与原始第二操作元相关联的较低层转换表项。
10.根据权利要求7所述的系统,所述执行还包含:
根据第一操作元比较值等于第二操作元,设置第一条件码值;以及
根据第一操作元比较值不等于所述第二操作元,设置第二条件码值。
11.根据权利要求7所述的系统,其中,已清除的TLB项限于其形成旨在转换由所述指令指定的地址空间中的地址的项。
12.根据权利要求7所述的系统,所述执行还包含:
根据所述指令的具有第一值的掩码字段,有选择地仅清除配置的多个处理器中执行所述指令的处理器的TLB;以及根据所述指令的一个具有第二值的掩码字段,有选择地清除配置的多个处理器的TLB。
13.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序包含在计算机系统上执行所述计算机程序时适合于执行根据权利要求1-6中任何一个的方法的所有步骤的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/524,468 | 2012-06-15 | ||
US13/524,468 US20130339656A1 (en) | 2012-06-15 | 2012-06-15 | Compare and Replace DAT Table Entry |
PCT/IB2012/056736 WO2013186606A2 (en) | 2012-06-15 | 2012-11-26 | Compare and replace dat table entry |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104903873A CN104903873A (zh) | 2015-09-09 |
CN104903873B true CN104903873B (zh) | 2017-10-20 |
Family
ID=49757047
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280073581.0A Expired - Fee Related CN104903873B (zh) | 2012-06-15 | 2012-11-26 | 一种用于管理动态地址转换dat表的方法及系统 |
Country Status (23)
Country | Link |
---|---|
US (1) | US20130339656A1 (zh) |
EP (1) | EP2862089B1 (zh) |
JP (1) | JP6202543B2 (zh) |
KR (1) | KR101572409B1 (zh) |
CN (1) | CN104903873B (zh) |
AU (1) | AU2012382781B2 (zh) |
BR (1) | BR112014031436B1 (zh) |
CA (1) | CA2874186C (zh) |
DK (1) | DK2862089T3 (zh) |
ES (1) | ES2708331T3 (zh) |
HK (1) | HK1210846A1 (zh) |
HR (1) | HRP20190166T1 (zh) |
IL (1) | IL236248A0 (zh) |
LT (1) | LT2862089T (zh) |
MX (1) | MX347759B (zh) |
PL (1) | PL2862089T3 (zh) |
PT (1) | PT2862089T (zh) |
RU (1) | RU2550558C2 (zh) |
SG (1) | SG11201407485RA (zh) |
SI (1) | SI2862089T1 (zh) |
TW (1) | TWI622880B (zh) |
WO (1) | WO2013186606A2 (zh) |
ZA (1) | ZA201408136B (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9182984B2 (en) | 2012-06-15 | 2015-11-10 | International Business Machines Corporation | Local clearing control |
US9501425B2 (en) * | 2014-11-14 | 2016-11-22 | Cavium, Inc. | Translation lookaside buffer management |
US9684606B2 (en) * | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US9697137B2 (en) * | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
RU2632416C2 (ru) * | 2015-05-14 | 2017-10-04 | Общество С Ограниченной Ответственностью "Яндекс" | Способ (варианты) передачи объекта от первого процесса на второй процесс, машиночитаемый носитель (варианты) и система обработки данных |
US10210323B2 (en) * | 2016-05-06 | 2019-02-19 | The Boeing Company | Information assurance system for secure program execution |
US10248573B2 (en) | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Managing memory used to back address translation structures |
US10168902B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing purging of structures associated with address translation |
US10162764B2 (en) | 2016-07-18 | 2018-12-25 | International Business Machines Corporation | Marking page table/page status table entries to indicate memory used to back address translation structures |
US10176110B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
US10176006B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Delaying purging of structures associated with address translation |
US10169243B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation |
US10241924B2 (en) | 2016-07-18 | 2019-03-26 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation using an array of tags |
US10223281B2 (en) | 2016-07-18 | 2019-03-05 | International Business Machines Corporation | Increasing the scope of local purges of structures associated with address translation |
US20180018283A1 (en) * | 2016-07-18 | 2018-01-18 | International Business Machines Corporation | Selective purging of guest entries of structures associated with address translation |
US10282305B2 (en) | 2016-07-18 | 2019-05-07 | International Business Machines Corporation | Selective purging of entries of structures associated with address translation in a virtualized environment |
US10176111B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Host page management using active guest page table indicators |
US10802986B2 (en) | 2016-07-18 | 2020-10-13 | International Business Machines Corporation | Marking to indicate memory used to back address translation structures |
US10180909B2 (en) | 2016-07-18 | 2019-01-15 | International Business Machines Corporation | Host-based resetting of active use of guest page table indicators |
US9798597B1 (en) | 2016-09-26 | 2017-10-24 | International Business Machines Corporation | Verifying selective purging of entries from translation look-aside buffers |
US10452288B2 (en) | 2017-01-19 | 2019-10-22 | International Business Machines Corporation | Identifying processor attributes based on detecting a guarded storage event |
US10732858B2 (en) | 2017-01-19 | 2020-08-04 | International Business Machines Corporation | Loading and storing controls regulating the operation of a guarded storage facility |
US10496292B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Saving/restoring guarded storage controls in a virtualized environment |
US10579377B2 (en) | 2017-01-19 | 2020-03-03 | International Business Machines Corporation | Guarded storage event handling during transactional execution |
US10725685B2 (en) | 2017-01-19 | 2020-07-28 | International Business Machines Corporation | Load logical and shift guarded instruction |
US10496311B2 (en) | 2017-01-19 | 2019-12-03 | International Business Machines Corporation | Run-time instrumentation of guarded storage event processing |
US10901911B2 (en) | 2018-11-21 | 2021-01-26 | Microsoft Technology Licensing, Llc | Faster computer memory access by reducing SLAT fragmentation |
US10977183B2 (en) | 2018-12-11 | 2021-04-13 | International Business Machines Corporation | Processing a sequence of translation entry invalidation requests with regard to draining a processor core |
US10740239B2 (en) | 2018-12-11 | 2020-08-11 | International Business Machines Corporation | Translation entry invalidation in a multithreaded data processing system |
US10817434B2 (en) | 2018-12-19 | 2020-10-27 | International Business Machines Corporation | Interruptible translation entry invalidation in a multithreaded data processing system |
WO2021085790A1 (ko) | 2019-10-30 | 2021-05-06 | 박재범 | 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자 |
CA3156094C (en) | 2019-10-30 | 2022-09-20 | Tround Inc. | Chair member provided with multi-channel sound system and chair comprising same |
KR102333695B1 (ko) | 2020-01-10 | 2021-12-02 | 박재범 | 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자 |
KR102359742B1 (ko) | 2020-05-15 | 2022-02-08 | 박재범 | 다채널 사운드 시스템이 구비된 의자 |
KR102378865B1 (ko) | 2020-06-16 | 2022-03-25 | 박재범 | 다채널 사운드 시스템 구현을 위한 의자용 부재 및 이를 포함하는 의자 |
KR102381959B1 (ko) | 2020-07-06 | 2022-04-01 | 박재범 | 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자 |
KR102357554B1 (ko) | 2020-08-12 | 2022-02-07 | 박재범 | 다채널 사운드 시스템이 구비된 의자 |
KR102406224B1 (ko) | 2020-09-02 | 2022-06-08 | 박재범 | 다채널 사운드 시스템이 구비된 의자용 부재 및 이를 포함하는 의자 |
KR102352425B1 (ko) | 2020-08-21 | 2022-01-18 | 박재범 | 다채널 사운드 시스템이 구비된 의자 |
KR102426565B1 (ko) | 2020-08-28 | 2022-07-29 | 박재범 | 무선 스피커 의자 |
US11593275B2 (en) | 2021-06-01 | 2023-02-28 | International Business Machines Corporation | Operating system deactivation of storage block write protection absent quiescing of processors |
US12013791B2 (en) * | 2021-06-01 | 2024-06-18 | International Business Machines Corporation | Reset dynamic address translation protection instruction |
KR102630387B1 (ko) | 2021-08-19 | 2024-01-29 | 박재범 | 다채널 사운드 시스템이 구비된 의자 |
US12020059B2 (en) * | 2021-08-30 | 2024-06-25 | International Business Machines Corporation | Inaccessible prefix pages during virtual machine execution |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100363908C (zh) * | 2003-05-12 | 2008-01-23 | 国际商业机器公司 | 无效存储器及清除缓冲区表项的方法和系统 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3619613A1 (de) * | 1985-09-02 | 1987-03-05 | Erfurt Electronic | Pc-steuerwerk mit einem programmspeicher und einem abbildspeicher |
TW343318B (en) * | 1996-09-23 | 1998-10-21 | Advanced Risc Mach Ltd | Register addressing in a data processing apparatus |
EP1261912A2 (en) * | 2000-03-08 | 2002-12-04 | Sun Microsystems, Inc. | Processing architecture having sub-word shuffling and opcode modification |
US6560687B1 (en) * | 2000-10-02 | 2003-05-06 | International Business Machines Corporation | Method of implementing a translation lookaside buffer with support for a real space control |
GB2402763B (en) * | 2003-06-13 | 2006-03-01 | Advanced Risc Mach Ltd | Data access program instruction encoding |
RU2433456C2 (ru) * | 2006-04-19 | 2011-11-10 | Квэлкомм Инкорпорейтед | Виртуально маркированный кэш команд с поведением физически маркированного |
US7624237B2 (en) * | 2006-05-03 | 2009-11-24 | International Business Machines Corporation | Compare, swap and store facility with no external serialization |
US20090182988A1 (en) * | 2008-01-11 | 2009-07-16 | International Business Machines Corporation | Compare Relative Long Facility and Instructions Therefore |
WO2010043401A2 (en) * | 2008-10-15 | 2010-04-22 | Martin Vorbach | Data processing device |
US20110314263A1 (en) * | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
US8914619B2 (en) * | 2010-06-22 | 2014-12-16 | International Business Machines Corporation | High-word facility for extending the number of general purpose registers available to instructions |
-
2012
- 2012-06-15 US US13/524,468 patent/US20130339656A1/en not_active Abandoned
- 2012-11-14 RU RU2012148399/08A patent/RU2550558C2/ru active
- 2012-11-26 LT LTEP12879101.9T patent/LT2862089T/lt unknown
- 2012-11-26 PL PL12879101T patent/PL2862089T3/pl unknown
- 2012-11-26 JP JP2015516697A patent/JP6202543B2/ja active Active
- 2012-11-26 SI SI201231515T patent/SI2862089T1/sl unknown
- 2012-11-26 ES ES12879101T patent/ES2708331T3/es active Active
- 2012-11-26 WO PCT/IB2012/056736 patent/WO2013186606A2/en active Application Filing
- 2012-11-26 KR KR1020147027931A patent/KR101572409B1/ko not_active IP Right Cessation
- 2012-11-26 BR BR112014031436-5A patent/BR112014031436B1/pt active IP Right Grant
- 2012-11-26 PT PT12879101T patent/PT2862089T/pt unknown
- 2012-11-26 MX MX2014015347A patent/MX347759B/es active IP Right Grant
- 2012-11-26 CA CA2874186A patent/CA2874186C/en active Active
- 2012-11-26 DK DK12879101.9T patent/DK2862089T3/en active
- 2012-11-26 CN CN201280073581.0A patent/CN104903873B/zh not_active Expired - Fee Related
- 2012-11-26 EP EP12879101.9A patent/EP2862089B1/en active Active
- 2012-11-26 AU AU2012382781A patent/AU2012382781B2/en active Active
- 2012-11-26 SG SG11201407485RA patent/SG11201407485RA/en unknown
-
2013
- 2013-05-10 TW TW102116784A patent/TWI622880B/zh active
-
2014
- 2014-11-06 ZA ZA2014/08136A patent/ZA201408136B/en unknown
- 2014-12-14 IL IL236248A patent/IL236248A0/en unknown
-
2015
- 2015-11-25 HK HK15111617.3A patent/HK1210846A1/zh not_active IP Right Cessation
-
2019
- 2019-01-24 HR HRP20190166TT patent/HRP20190166T1/hr unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100363908C (zh) * | 2003-05-12 | 2008-01-23 | 国际商业机器公司 | 无效存储器及清除缓冲区表项的方法和系统 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104903873B (zh) | 一种用于管理动态地址转换dat表的方法及系统 | |
CN104487940B (zh) | 本地清除控制 | |
US11188326B2 (en) | Function virtualization facility for function query of a processor | |
CN102906716B (zh) | 促进计算环境的系统存储器的管理的方法 | |
CN102906719B (zh) | 输入/输出地址到存储器地址的转换 | |
CN102906721B (zh) | 与访问地址空间并行地对地址空间调整大小 | |
CN102906692B (zh) | 修改适配器功能参数的指令的方法和系统 | |
US20120117356A1 (en) | Invalidating a Range of Two ro More Translation Table Entries and Instruction Therefore | |
KR101442382B1 (ko) | 가상 프로세서의 멀티-펑션 명령의 명령 펑션을 차단하기 위한 펑션 가상 퍼실리티 | |
CN102906707A (zh) | 管理与硬件事件关联的处理 | |
CN105993004A (zh) | 支持同时无效化共同内容的地址转译快取 | |
CN101952807A (zh) | 管理计算环境的多个可分页客户端对存储装置的使用 | |
CN102947808A (zh) | 用于适配器函数的转换格式的运行时确定 | |
CN104335186A (zh) | 处理器辅助设施 | |
US20230409487A1 (en) | Partial-address-translation-invalidation request |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1210846 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1210846 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171020 Termination date: 20181126 |