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

文档序号:8926995阅读:来源:国知局
列化的操作(诸如,无效化指令)得以序列化,其中,在计算环境 中一次仅一个这样的指令在运行。其也监视针对所述操作的事件序列。
[0294] 经由各种接口将控制器200耦合于每一中央处理器。例如,通过中央处理器中的 已授权内部码使用接口 204向控制器发送指定将采取的动作的"控制"命令,且发送从控制 器返回信息的"感测"命令。另一接口为响应总线206,其用于针对"感测"命令从控制器返 回信息。响应总线也用于针对"控制"命令传送命令状态,且可以从控制器内的多个源对其 加以设置,所述源包括系统序列化控制。中央处理器可以使用此接口感测控制器200中的 系统序列化控制的状态。
[0295] 另一个接口为接口 208,控制器使用其将命令发送至每一 CPU。也可以从控制器内 的多个源控制此接口,其中,所述源包括系统序列化控制202。另一个接口为接口 210,其将 信号提供至中央处理器201的高速缓存控制212。高速缓存控制212响应所述信号处理命 令。在一个实例中,高速缓存控制212处理影响一或多个缓冲器(诸如,转换后备缓冲器 (TLB) 213)的命令,如以下进一步详细描述的。
[0296] 除了高速缓存控制212之外,中央处理器201还包括各种其它控制,例如,包括中 断控制220以及执行控制222。响应具体事件,中断控制220导致CPU中一个待决的内部中 断,接下来,该内部中断致使执行控制222在下一可以中断点挂起程序指令处理。响应所述 中断,执行控制222调用已授权内部码例程将传播操作允许锁存器224设置为能够使高速 缓存控制212处理挂起的命令。
[0297] 中央处理器201还包括中央处理单元(CPU)休眠锁存器226,其指示该中央处理器 是否为休眠。本说明书中可以互换地使用术语CPU与处理器。
[0298] 上述计算环境仅为一个实例。许多变化是可能的。例如,一或多个分割区可以下 在不同的体系结构模式下。另外,作为另一个实例,所述环境无需基于z/Architecture,取 而代之,也可以基于由Intel、Sun Microsystems以及其它公司所提供的其它体系结构。此 外,一个环境可以包括一个其中模拟特定结构或者其子集的模拟器(例如,软件或者其它 模拟机制)。在这样的环境中,模拟器的一或多个模拟函式可以实现一或多个方面,即使执 行该模拟器的计算机可以具有不同于正被模拟的能力的体系结构也是如此。作为一个实 例,在模拟模式下,对正被模拟的特定指令或者操作进行解码,并且建立一个实现各指令或 者操作的适当模拟函式。
[0299] 参照图3描述模拟环境的进一步的细节。作为一个实例,主计算机300能夠模拟 另一个体系结构、计算机与/或另一个计算机的处理能力。例如,主计算机300基于Intel 体系结构、诸如PowerPC的RISC体系结构、由Sun Microsystems提供的SPARC体系结构, 或者另一种体系结构,并且能夠模拟IBM?柏Z/Architecture或者IBM?彻另一种体系 结构或者另一个实体。
[0300] 例如,主计算机300包括存储指令及数据的存储器302、从存储器302提取指令且 有选择地提供针对已提取指令的本地缓冲的指令提取单元304、从指令提取单元304接收 指令且判定已被提取的指令的类型的指令解码单元306,以及执行所述指令的指令执行单 元308。执行可以包括:将数据从存储器302载入至寄存器;将数据从寄存器存储回存储器; 或者执行某一类型的运算或者逻辑操作,如由解码单元所判定的。
[0301] 在一个实例中,以软件实现以上所描述的每一单元。例如,将由所述单元执行的操 作实现为模拟器软件内的一或多个子程序。在另一个实例中,以固件、硬件、软件或者它们 的某一组合实现一个或多个所述操作。
[0302]另外,尽管根据模拟描述了图3,但图3的环境无需为模拟环境。在另一个实例中, 在原环境中执行指令,且以硬件、固件、软件或者它们的某一组合实现所述操作。
[0303] 计算环境可以包括虚拟存储器以及主存储器。虚拟存储器可以远超过可用于配置 中的主存储器的大小,且通常维持于辅助存储器中。将虚拟存储器视由被称为页的地址块 构成。令虚拟存储器的最近所引用的页占据物理主存储器的块。当用户引用未出现于主存 储器中的虚拟存储器的页时,令虚拟页替换主存储器中不太可能被使用的页。可以在用户 不知晓的情况下由操作系统执行存储器中的页的交换。
[0304] 将用于指定虚拟存储器中的位置的地址称为虚拟地址。例如,将跨度达4k字节的 连续的虚拟地址块称为一页。相类似,例如,将跨度达1M字节的连续的虚拟页块称为段;以 及,例如,将跨度达2G字节的连续的虚拟段块称为区。另外,将与地址空间控制元素(ASCE) 指定的虚拟存储器相关联的虚拟地址序列称为地址空间。地址空间可用于提供用户之间的 隔离度。一个地址空间可以包括一或多个区、一或多个段、一或多个页、或者它们的某一组 合。
[0305] 与不同类型存储器单元(例如,区、段、页)相关联的是与存储器单元相关联的处 理中所使用的数据结构。例如,与区相关联的是区表;与段相关联的是段表;以及与页相关 联的是页表。例如,在虚拟地址至用于访问主存储器的真实地址的转换(例如,动态地址转 换)期间使用这些表。此处,将用于转换的表称为转换表,并且由地址空间控制元素(ASCE) 加以指定。将当前未分配于主存储器的虚拟存储器单元称为无效。虚拟存储器单元的无效 状态由与该单元相关联的数据结构中的无效指示符加以指示。
[0306] 在一个实施例中,这样地实现动态地址转换机制:将通过DAT过程从转换表(例 如,区表、段表与/或页表)导出的信息维持于位于处理器内的此处被称为转换后备缓冲器 的一或多个缓冲器中,以增强地址转换的性能。即,在转换期间,针对所需的信息检查缓冲 器,且接下来,如果所述信息未处于缓冲器中,则访问一或多个转换表。
[0307] 在模拟模式下,对正被模拟的具体指令进行解码,并且建立一个实现所述单指令 的子程序,如在C子程序或者驱动程序中一样,或者使用某种其它技术提供针对具体硬件 的驱动程序,在理解了实施例的描述之后,本领域技术人员将会意识到这一点。各种软件及 硬件模拟专利包括但不局限于:Beausoleil等人的名为"Multiprocessor for Hardware Emulation" 的美国专利第5, 551,013号;Scalzi等人的名为"PreprocessingofStored TargetRoutinesforEmulatingIncompatibleInstructionsonaTargetProcessor" 的美国专利第6, 009, 261号;Davidian等人的名为"DecodingGuestInstructionto DirectlyAccessEmulationRoutinesthatEmulatetheGuestInstructions" 的美 国专利第5, 574, 873号;Gorishek等人的名为"SymmetricalMultiprocessingBusand ChipsetUsedforCoprocessorSupportAllowingNon-NativeCodetoRunina System" 的美国专利第6, 308, 255号;Lethin等人的名为"DynamicOptimizingObject CodeTranslatorforArchitectureEmulationandDynamicOptimizingObjectCode TranslationMethod" 的美国专利第6,463, 582号;以及EricTraut的名为"Methodfor EmulatingGuestInstructionsonaHostComputerThroughDynamicRecompilation ofHostInstructions"的美国专利第5, 790, 825号等,对于本领域技术人员可得的目标机 器以及以上所提及内容所使用的商用软件技术,这些模拟专利说明了多种已知的对针对不 同机器设计的指令格式进行模拟的方式。
[0308] COMPAREANDREPLACEDATTABLEENTRY(CRDTE)
[0309] 所描述的是CPU指令(COMPAREANDREPLACEDATTABLEENTRY),其可用新项替换 有效DAT表项,并且可从TLB去除配置中所有CPU上的(至少)单一项的任何复本。此指 令并不要求挂起任何活跃任务,且可以不去除多于必要项的项。
[0310] 当执行CRDTE指令时,可以依据模型以不同方式实现项的选择清除,而且,一般而 言,可以清除多于所需要的最小数目的项。一些模型可以清除包含从存储器中的页表项获 得的页帧真实地址的所有项。
[0311] 如果控制程序需要替换DAT表中的有效项(SP,潜在地由其它CPU使用的表项), 则控制程序可以执行以下操作之一:
[0312] ?挂起可以在配置中所有CPU上使用此DAT表项的所有任务的执行,使该项在所有 (PU上无效化及去除(例如,使用IPTE),用新项来替换已无效化项,且重新分派已挂起的任 务。
[0313] ?替换DAT表项,且去除配置中所有CPU上的整个TLB(例如,使用CSPG)。
[0314] 第一选项复杂,其复杂之处在于:其要求撤销分派及重新分派任务。第二选项次 佳,体现于:其要求去除整个TLB,即使正在改变仅一个项也如此。
[0315] 在一实施例中,计算机处理器获得用于处理的指令。根据操作码,所述机器处理比 较及替换DAT表项(CRDTE)指令。CRDTE指令具有以下格式:
[0316] 操作码R3M4札R2
[0317] &及1?2字段分别指定通用一个寄存器的一个奇偶对,且必须指定一个偶数编号寄 存器;否则,识别为规格异常。通用寄存器& (该对的偶数寄存器)包含第一操作元。可以 将第一操作元称为比较值。可以将通用寄存器&+1(该对的奇数寄存器)称为替换值。
[0318] 在执行指令时,比较第一操作元与第二操作元。第一操作元位于通用寄存器札中。 第二操作元由通用寄存器馬及R2+l指定。馬及R2+l包含寻址信息,例如,已指定的表类型 (DTT)及至表中的定位第二操作元的有效索引。
[0319] 一旦获得第一操作元及第二操作元,接下来对它们进行比较,且如果它们相等,则 将通用寄存器&+1的内容存储于第二操作元位置处,且从配置中已指定CPU清除(1)通过 使用存储器中已替换项所形成的已指定类型的所有TLB表项,以及(2)通过使用已清除较 高层TLB表项所形成的所有较低层TLB表项。可以有选择地将被清除的TLB项限制为其形 成旨在转换已指定地址空间中的地址的项。将所得条件码设置为0。
[0320] 如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置处, 且将所得条件码设置为1。
[0321] M4字段可以判定是清除配置中所有CPU的TLB还是仅清除执行指令的CPU中的 TLB〇
[0322] 图4显不了一个实施例的图表。
[0323] 在一个实施例中,计算机处理器获得用于进行处理的CRDTE指令401。根据操作 码,机器处理比较及替换DAT表项指令。
[0324] &及1?2字段分别指定通用寄存器405的奇偶对,且必须指定偶数编号寄存器;否 贝1J,识别为规格异常。通用寄存器& (该对的偶数寄存器)410在比特位置0至63中包含 第一操作元。可以将第一操作元称为比较值。可以将通用寄存器&+1(该对的奇数寄存 器)411的比特位置0至63称为替换值。
[0325] 在执行指令时,比较第一操作元与第二操作元。第一操作元位于通用寄存器札 410中。第二操作元为存储器中由通用寄存器R 2 420及馬+1 421指定的双字组。通用寄存 器馬的比特59至61为已指定的表类型(DTT),其指定通用寄存器R2中形成存储器440中 的表430的原点的比特;DTT也指定通用寄存器R 2+l中用作至表中定位第二操作元435的 有效索引的比特。
[0326] 一旦比较了第一操作元与第二操作元436,如果它们相等,则将通用寄存器札+1的 内容存储于第二操作元位置445处,且如450所示,从配置中已指定CPU清除(1)通过使用 存储器中已替换项所形成的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层 TLB表项所形成的所有较低层TLB表项。可以有选择地将被清除的TLB项限制为其形成旨 在转换已指定地址空间中的地址的项。如455所示,将所得条件码设置为0。
[0327] 如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置460 处。如465所示,将所得条件码设置为1。
[0328] 指令401可以利用M4字段402以判定有选择地清除配置470中的所有CPU的TLB 或者仅清除执行指令475的CPU中的TLB。M 4字段包含本地清除(LC)控制。如果M4字段 中的LC控制为0,则配置中所有CPU中的TLB将受到影响。如果仏字段中的LC控制字段 为1,则仅与执行比较及替换DAT表项指令的CPU相关联的TLB可能受到影响。配置中所有 其它CPU中的TLB可不受到影响。
[0329] 注意:术语"已指定CPU"对于受到此指令影响的TLB的范围具有以下含义:
[0330] 当^字段中的本地清除(LC)控制为0时,术语"已指定CPU"意指配置中所有CPU。
[0331] 当%字段中的LC控制为1时,术语"已指定CPU"仅意指执行COMPARE AND REPLACE DAT TABLE ENTRY指令的CPU(本地CPU)。配置中所有其它CPU中的TLB可不受到影响。
[0332] ?比较第一操作元与第二操作元。如果它们相等,则将通用寄存器札+1的内容存 储于第二操作元位置处,且从配置中已指定CPU清除(1)通过使用存储器中已替换项所形 成的已指定类型的所有TLB表项,以及(2)通过使用已清除较高层TLB表项所形成的所有 较低层TLB表项。可以有选择地将被清除的TLB项限制为其形成旨在转换已指定地址空间 中的地址的项。
[0333] ?如果第一操作元与第二操作元不相等,则将第二操作元载入第一操作元位置处。 然而,在一些模型上,可以提取第二操作元,且随后将其不变地存储回第二操作元位置处。 当从由其它CPU所观察时,这一更新似乎是块并行互锁更新参照,。比较的结果由条件码加 以指示。
[0334] &及R2字段分别指定通用寄存器的奇偶对,且必须指定偶数编号寄存器;否则,识 别为规格异常。现在参照图5,将第一操作元称为比较值501,且包含在通用寄存器凡的比 特位置0至63中。将通用寄存器&+1的比特位置0至63称为替换值510。
[0335] 第二操作元为存储器中由通用寄存器馬及1?2+1 540指定的双字组。通用寄存器 R2的比特59至61为已指定的表类型(DTT),其指定通用寄存器1? 2中形成存储器中的表的 原点的比特;DTT也指定通用寄存器R2+l 540中用作至表中定位第二操作元的有效索引的 比特,如下:
[0337] 当DTT为000二进制时,如520所示,通用寄存器R2的比特位置0至52的内容(具 有附加于右侧的11个0) (521)形成表原点,且忽略该寄存器的522中的比特53至58、523 中的比特62、以及524中的比特63。当DTT为100至111二进制时,如530所示,通用寄存 器R 2的比特位置0至51的内容(具有附加于右侧的12个0) (531)形成表原点,且忽略该 寄存器的532中的比特52至58、533中的比特62、以及534中的比特63。001、010及011 二进制的DTT值无效;如果DTT无效,则识别为规格异常。
[0338] 通用寄存器R2+l 540的比特0至51具有虚拟地址的区索引、段索引、以及页索引 的格式。将通常由DAT用于选择由DTT指定的表类型中的项的541中的比特0至51的部 分称为有效索引。忽略在该有效索引右侧的通用寄存器R 2+l的比特〇至51的部分。通用 寄存器R2+l (542)的比特位置52至63被保留且必须包含0 ;否则,识别为规格异常。
[0339] 如果R3 550为非零,则通用寄存器馬的内容具有地址空间控制元素的格式,其中 仅使用了表原点(551中的比特0至51)及指定类型控制(DT) (553中的比特60及61)。这 些内容用于选择将要清除的TLB项。忽略通用寄存器馬的552中的比特52至59、554中的 比特62、以及555中的比特63。如果馬为0,则忽略通用寄存器0的整个内容,且清除TLB 项而不管用于形成它们的ASCE如何。
[0340] 图6中描述了 M4字段。
[0341] 将^字段的比特定义如下:
[0342] 保留的:保留如601所示的比特0至2。^字段的保留的比特位置被忽略,但应包 含0 ;否则,之后程序不能兼容地操作。
[0343]
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1