在仿真处理环境中提供存储器一致性的制作方法

文档序号:6476748阅读:211来源:国知局
专利名称:在仿真处理环境中提供存储器一致性的制作方法
技术领域
本发明一般地涉及仿真处理环境,具体地说,涉及在具有微弱存储器 一致性的处理器上仿真具有稳固存储器一致性的架构,使得存储器访问遵 循稳固存储器一致性架构。
背景技术
在处理期间,必须向访问存储器的处理器提供该存储器的 一致视图。 在具有微弱存储器一致性架构的环境中,必须采取特定步骤来确保存储器 一致性。例如,在微弱存储器一致性环境中,如其他处理器所观察的,不
能保证存储器的特定单元的更新顺序。因此,在^:弱存储器一致性环境上 运行的软件必须容忍多义性或使用指令来显式地强制一致性。即,每次执 行存储器存储时,将首先执行同步,然后才允许另一存储器访问。但是, 使用指令来强制一致性严重降低了系统性能。
与^l弱存储器一致性环境相比,某些环境具有稳固存储器一致性架构。 在此类环境中,提供了硬件来维护存储器的一致性。

发明内容
尽管硬件提供了较之使用指令强制一致性的优点,但是硬件并非总是 可用于执行此类功能。例如,当具有微弱存储器一致性模型的处理器要仿 真稳固存储器一致性模型时,将没有硬件来提供一致性。在此情况下,需 要一种能力来有效地提供存储器一致性。
例如,需要一种能力来减少在微弱存储器一致性环境中提供稳固存储 器一致性的开销。在一个特定方面中,需要一种能力来使得具有微弱存储器一致性的处理器能够有效地仿真具有稳固存储器一致性的处理器,以使_ 有效地提供存储器一致的存储器访问。
通过提供一件制品而克服了现有技术的缺点并提供了附加的优点,所 述制品包括至少一个计算机可用介质,其具有计算^L可读程序代码逻辑以 管理仿真处理环境中的存储器访问。所述计算机可读程序代码逻辑在净皮执
行时将例如执行以下操作由在具有微弱存储器一致性架构的处理器上执 行的仿真中央处理单元(CPU)进程请求作为单元操作的一部分访问存储 器单元;以及由所述仿真CPU进程管理对所述存储器单元的访问,其中所 述管理操作强制稳固的存储器一致性,其中其他仿真CPU进程在所述存储 器单元正在被修改的情况下无法观察到该存储器单元,并且其中所述管理 操作包括以下操作中的至少一个采用 一个或多个存储器访问测试来判定 是否可访问所述存储器单元,所述一个或多个存储器访问测试包括添加到 现有架构的访问控制块的测试,所述访问控制块包括在仿真CPU进程存在 的情况下哪些仿真CPU进程具有对所述存储器单元的读或写访问的指示; 以及获得对被请求存储器单元的访问以响应所述采用操作指示所述存储器 单元的可用性;判定是否另一仿真CPU进程正在持有所述存储器单元并且 此时所述仿真CPU进程无法访问该存储器单元,以及调用中断处理机以请 求所述另一仿真CPU进程放弃针对所述存储器单元持有的一个或多个权 利,以允许所述仿真CPU进程获得对所述存储器单元的访问;以及判定另 一仿真CPU进程是否正在请求访问发出请求的仿真CPU进程所持有的存 储器单元,以及使所述单元操作无效以响应该判定操作指示所述另一仿真 CPU进程正在请求访问,所述无效避免了死锁。
在此还描述和要求保护了与本发明的 一个或多个方面相关的方法和系统。
通过本发明的技术实现了附加的特性和优点。在此详细描述了本发明 的其他实施例和方面并且它们被视为要求保护的发明的 一部分。


在说明书结尾处的权利要求中作为实例具体指出并明确要求保护本发 明的一个或多个方面。从下面结合附图的详细说明,本发明的上述和其他
目标、特性和优点将是显而易见的,这些附图是
图1示出了结合并使用本发明的一个或多个方面的处理环境的一个实 施例;
图2示出了才艮据本发明的一个方面的图1的处理环境的系统架构的一 个实施例;
图3示出了才艮据本发明的一个方面的图2的系统架构的仿真器的一个 实施例的更多细节;
图4A示出了根据本发明的一个方面的图3的仿真器的中央处理单元 (CPU)实施方式的一个实施例的更多细节;
图4B示出了才艮据本发明的一个方面的图4A的CPU实施方式的解释 器代码的一个实施例的更多细节;
图4C示出了根据本发明的一个方面的图4B的解释器代码的解释单元 的一个实施例的更多细节;
图5示出了根据本发明的一个方面的与获取对存储器单元的访问关联 的逻辑的一个实施例;
图6示出了才艮据本发明的 一个方面^f吏用的访问控制块的一个实例;
图7示出了才艮据本发明的一个方面的与在获得锁中调用中断处理机关 联的逻辑的一个实施例;
图8示出了才艮据本发明的一个方面的与访问已锁定的存储器单元关联 的逻辑的一个实施例;以及
图9示出了结合本发明的一个或多个方面的计算机程序产品的一个实 施例。
具体实施例方式
根据本发明的一个方面,在仿真处理环境中提供了存储器一致性。具 有^:弱存储器一致性的处理器仿真具有稳固存储器一致性的架构,并且在无需串行化指令或特殊硬件来执行此功能的情况下提供了存储器一致性。 此外,还避免了死锁情况。
参考图l描述了结合并使用本发明的一个或多个方面的处理环境的一
个实施例。处理环境100例如包括多个本机处理器102 (例如,中央处理 单元(CPU) 102a, 102b)、由多个处理器(总称为处理器102)共享的 存储器104 (例如,,主存储器),以及多个处理器可访问的一个或多个 输入/输出(1/0)设备106。所述处理器、存储器和I/0设备例如经由一个 或多个总线108彼此耦合。
在此实例中,每个处理器都基于一种架构(其可称为本机架构),但 是仿真另一种架构(其可称为客户架构)。作为实例,本机架构是由位于 纽约阿蒙克的国际商业机器公司提供的Power4或PowerPC⑧架构,或由 Intel公司提供的Inte^架构;并且客户架构是也由位于纽约阿蒙克的国际 商业机器公司提供的z/Architecture 。 在"z/Architecture Principles of Operation" ( "z/Architecture操作原理",IBM出版物No.SA22-7832-04, 2005年9月,其全部内容在此引入作为参考)中描述了 z/Architecture 的 各方面。作为实例,处理器102是由位于纽约阿蒙克的国际商业机器公司 (IBM⑧)提供的pSeries⑧服务器的一部分。IBM 、 pSeries⑧、PowerPC 以及z/Architecture⑧是美国纽约阿蒙克的国际商业机器公司的注册商标。 Inte^是Intel公司的注册商标。在此使用的其他名称可以是国际商业机器 7>司或其他7>司的注册商标、商标或产品名称。
每个本机中夹处理单元102包括在环境内的处理期间使用的一个或多 个本机寄存器110 (例如,110a, 110b,总称为本冲几寄存器110),例如一 个或多个通用寄存器和/或一个或多个专用寄存器。这些寄存器包括表示环 境在任何特定时刻的状态的信息。
为了提供仿真,处理环境的架构包括至少一个仿真器、至少一个客户 操作系统以及一个或多个客户应用。具体地说,处理器中的一个或多个可 以提供仿真、托管客户操作系统以及执行一个或多个客户应用。参考图2 进一步描述了这些特性。参考图2,描述了处理环境100的系统架构200的一个实施例。系统 架构200例如包括多个定义环境的架构方面的实现层。在此特定实例中, 所述层包括硬件202,其经由一个或多个接口和/或控制器与存储器204和 输入/输出设备和/或网络206耦合。在此实例中,每个处理器102a, 102b 都包括硬件层202,但是如图1所示存储器204和I/O设备206是共享的。
返回图2,作为实例,架构200还包括主机操作系统208;仿真器 210;客户操作系统212;以及一个或多个客户应用214。 一个层经由一个 或多个接口与至少一个其他层耦合。例如,客户应用214经由至少一个接 口与客户操作系统212耦合。其他接口用于耦合其他层。此外,所述架构 还可以包括其他层和/或接口。再次地,每个处理器都可以具有主机操作系 统并提供仿真。每个处理器可以托管客户操作系统和一个或多个客户应用。 以下进一步描述了图2的各个层。
硬件200是处理环境的本机架构并且例如基于Power4、 PowerPC⑧、 Inte^或其他架构。在硬件上运行的是主机操作系统208,如国际商业机器 公司提供的AIX⑧或LINUX。 AD^是纽约阿蒙克的国际商业机器公司的注 册商标。
仿真器210包括多个用于仿真与本机架构不同的架构的组件。在此实 施例中,被仿真的架构是由国际商业机器公司提供的z/Architecture ,但 是同样可以仿真其他架构。仿真使得客户操作系统212 (例如,z/OS ,其 是国际商业机器公司的注册商标)能够在本机架构上执行并使能支持一个 或多个客户应用214(例如,Z应用)。参考图3描述了关于仿真器210 的更多细节。
参考图3,仿真器210包括与一个或多个服务进程302耦合的共享存 储器300、输/W输出(1/0)实现304,以及中央处理单元(CPU)实现306, 它们都将在以下详细描述。
共享存储器300是从服务进程302、 I/O实现304和CPU实现306可 见的主机中的存储器部分的表示。它是这样一个存储区域,其中独立进程 (例如,服务进程、I/O实现和CPU实现)通过在共享存储器中读取和存储数据来通信。作为一个实例,共享存储器包括多个这样的区域,所述区
域例如包含系统全局信息、CPU上下文和信息、仿真的主存储、仿真的主 存储密钥,以及子通道(即,表示I/O设备的数据结构)。
服务进程302包括一个或多个用于创建CPU的进程和一个或多个其他 进程,以及提供架构的操作员工具,如启动、停止、重置、初始程序加载 (IPL)等。它还可以提供其他功能,例如仿真系统工具的显示和改变、 获得/释放共享资源,其他维护命令等。
输入/输出实现304例如包括一个或多个子通道进程以及用于与I/O设 备通信的1/0控制器。在本发明的一个方面中,1/0控制器负责启动子通 道进程并执行恢复。
中央处理单元(CPU)实现306包括一个或多个仿真的CPU进程并 且负责执行指令和管理处理。它包括多个参考图4A-4B描述的组件。
参考图4A, CPU实现306例如包括解释器代码400,用于获得、转 换和执行指令;架构的协处理器402,其帮助初始启动并与芯片(例如, 服务调用逻辑处理器(SCLP)进程)通信;以及计时工具404,其负责仿 真器的计时功能。参考图4B描述了有关解释器代码400的更多细节。
解释器代码400例如包括与存储器访问单元422耦合的解释单元420、 CPU控件426、异步中断处理才几428,以及同步中断处理机430。在此实例 中,每个处理器都包括解释器代码,并且因此表示了解释器代码400a。其 他处理器可以具有也可以没有解释器代码400。
解释单元420负责从存储器获取一个或多个客户指令,提供客户指令 的本机指令,以及执行本机指令。客户指令包括被开发为在除了本机CPU 102以外的架构中执行的软件指令(例如,机器指令)。例如,客户指令
可被设计为在2/入^11^(^11^@处理器上执行,但是实际上在可以例如是
pSeries⑧服务器的本机CPU上被仿真。
在一个实例中,提供本机指令可以包括选择仿真器中与客户指令关联 的代码段。例如,每个客户指令都在仿真器中具有关联的代码段(其包括 一个或多个本机指令的序列),并且选择该代码段以供执行。在其他实例中,所述提供包括例如在转换过程期间针对一组给定客户 指令创建本机指令流。这包括确定功能并创建等同的本机指令。
如果指令包括存储器访问,则使用存储器访问例程422来访问共享存 储器300。存储器访问例程可使用转换机制(例如动态地址转换(DAT) 432或访问寄存器转换(ART ) 434 )将逻辑地址转换成绝对地址,然后使 用绝对地址来访问存储器,或者在需要时进一步转换绝对地址。
在此实施例中,将流水线化解释单元420中的处理。因此,如果出现 更复杂的情况,如等待状态或从一个架构级别更改为另一个架构级别(例 如,z/Architecture⑧到ESA/3卯等),则控制被转移给CPU控件426,后 者处理事件并且然后将控制返回给解释单元420。
此外,如果发生中断,则处理或者从解释单元420转向异步中断处理 机428 (如果其为异步中断),或者从解释单元420转向同步中断处理机 430 (如果其为同步中断)。在处理中断之后,处理返回解释单元420。
具体地说,解释单元监视共享存储器中的特定位置并且如果位置改变, 则其表示由CPU或I/0之一设置了中断。因此,解释单元调用适当的中断 处理才几。
根据本发明的一个方面,将管理对存储器的访问,就好像处理环境的 架构基于稳固一致性模型那样。具体地说,架构基于微弱一致性模型的处 理器提供对存储器的访问,就好像该处理器的架构基于稳固一致性模型那 样。微弱存储器一致性系统仿真稳固存储器一致性系统并且此仿真包括以 有效的方式提供存储器访问,所述方式提供存储器一致性而无需指令同步 或硬件来提供一致性,并且所述方式避免了死锁。
在 一 个实例中,使用锁定机制和针对本发明 一 个或多个方面增强的 z/Architectur^的现有架构特性来强制稳固存储器一致性。参考图4C描述 了锁定机制的概况。
具体地,图4C提供了与解释单元420,具体地说,与利用锁定机制的 单元420执行的指令类型有关的附加细节。作为一个实例, 一种类型的指 令是包括一个单元操作的简单指令480。对于此类指令,将锁定指令被请求的存储器单元482,然后如果锁定成功,则执行指令的主体484。如果在 锁定期间,另一处理器请求了由此执行锁定的处理器锁定的存储器单元, 则如下所述执4于无效486以避免死锁。
另一种类型的指令是长运行指令488。此类指令包旨放由此处理器 持有的锁490并且然后仅重新锁定492需要的那些锁的代码。这是对其他 CPU的服务。在成功地获得锁以后,执行指令的主体494。再次地,如果 在锁定期间,另一处理器请求了由此处理器持有的存储器单元,则执行无 效496。
另一种类型的指令是多单元操作指令498,其包括多个简单指令,每 个简单指令都被如此处理。
参考图5描述了与锁定并使用现有但增强的架构特性来强制稳固存储 器一致性有关的更多细节。图5示出了与提供存储器访问关联的逻辑的一 个实施例。
参考图5,初始地,解释单元(例如,解释单元420)获得(例如,取 回、接收、被提供等)单元操作,后者包括存储器访问请求,步骤500。 所述请求可以是针对存储器单元的读或写访问。
解释单元将此请求转发给存储器访问例程,步骤502。在一个实例中,
存储器访问例程判定是否可容易地访问被请求的存储器单元。例如,判定 是否在称为转换旁视緩冲器O (TLBO)的緩冲器中表示被请求的存储器单 元,查询504。 TLBO包括已进行地址转换(如果需要)的存储器单元的指 定(例如,地址),并且无需监视对该存储器单元的访问。即,TLBO包 括可被容易地访问的存储器单元的指定。在标题为"Employing A Data Structure Of Readily Accessible Units Of Memory To Facilitate Memory Access"(案号POU920060207US1,申请日2007年3月1日,其全部内 容在此引入作为参考)的美国申请第11/680,703号中描述了有关TLBO的 更多细节。
如果在TLB0中表示了被请求的存储器单元,则处理返回中未表示被请求的存储器单元,则执行其他处理。
例如,检查架构的访问许可(例如,z-访问许可),步骤508。在一个 实施例中,这包括检查访问控制块中的一个或多个指示符。在一个实例中, 访问控制块与配置中可用的每个预定义的存储器单元(例如,存储装置的 每个4k字节块)关联并且为存储器单元提供某些参数。此访问控制块存储 在共享存储器中并可由耦合到共享存储器的进程访问。
在一个实例中,访问控制块600 (图6)包括以下字段
a) Z-访问指示符602:这是作为2/入^11^"11^@的一部分提供的控制 对存储器单元的访问的指示符。作为实例,它们包括
1) 访问控制指示符(ACC):如果引用受到密钥控制保护,则 在存储信息时或从防止取回的位置取回信息时,将访问控制指示符与 访问密钥相匹配。
2) 取回保护指示符(F):如果引用受到密钥控制保护,则取回 保护指示符将控制密钥控制保护是否应用于取回型引用。例如, 一个 值指示仅监视存储型引用并且允许使用任何访问密钥的取回;而另一 个值指示密钥控制保护应用于取回和存储两者。
3) 引用指示符(R):通常每次在针对存储或取回信息引用相应 存储器单元时将引用指示符设置为特定值(例如,1)。
4) 更改指示符(C):每次在相应存储器单元的位置中存储信息 时将更改指示符设置为特定值(例如,1)。
b) 锁定指示符604:根据本发明的一个方面,这些指示符被包括在现 有控制块中以帮助判定一个或多个其他处理器是否锁定了由此控制块表示 的存储器单元。作为实例,锁定指示符604包括
1) 读指示符(R):根据本发明的一个方面,提供了多个读指示 符,为环境的每个处理器都提供了一个读指示符。此指示符指示特定 处理器是否具有针对特定存储器单元的读取锁;
2) 写指示符(W):根据本发明的一个方面,提供了多个写指示 符,为环境的每个处理器都提供了一个写指示符。此指示符指示该处理器是否具有针对所述存储器单元的写入锁。
返回图5,如果检查z-访问许可不成功,查询510,则发生架构异常, 步骤511,并且处理结束。但是,如果检查成功,则处理器(例如,仿真 CPU进程)尝试获得存储器单元的锁,步骤512。
例如,处理器检查访问控制块的锁定指示符并且如果指示符指示没有 处理器持有与被请求的锁不一致的此存储器单元的锁,则处理器通过更新 适当的指示符(多个)来锁定该存储器单元。作为实例,如果处理器请求 独占写入锁,则处理器检查访问控制块。响应于访问控制块指示没有处理 器具有对被请求存储器单元的读或写访问,发出请求的处理器锁定被请求 的存储器单元。这包括在访问控制块中设置适当的写和读指示符以指示此 处理器现在具有在该存储器单元上的写入锁。在此实例中,这是独占锁。
在另一个实例中,如果发出请求的处理器请求读访问,则处理器检查 访问控制块以确保没有其他处理器(例如,仿真CPU进程)具有写访问。 如果没有处理器具有写访问,则发出请求的处理器锁定所述存储器单元。 在一个实例中,这是共享锁,所以多个处理器可以具有读访问。
如果获得锁或者如果处理器已具有锁,查询514,则在一个实例中, 如果需要,存储器单元被添加到TLBO,步骤515。此外,处理返回解释单 元并且执行指令,步骤506。
返回查询514,如果未获得锁,则判定发出请求的处理器是否接收到 对由此处理器持有的存储器单元的请求,查询516。如果是,则发出请求 的处理器使指令无效,步骤518。即,处理器经历自由阶段,释放其持有 的任何存储器单元。因此,发出请求的处理器将必须重新启动该指令,因 为其将显得根本未执行该指令。这避免了潜在的死锁情况。
但是,如果没有对由此处理器持有的存储器单元的请求,则发出请求 的处理器将对存储器单元的请求发送到一个或多个其他持有该存储器单元 的锁的处理器,步骤517。例如,假设发出请求的处理器请求对存储器单 元的写访问。其检查访问控制块以确定哪些处理器具有对被请求存储器单 元的读或写访问。响应于获得此信息,发出请求的处理器联系每个具有读或写访问的处理器。在一个实例中,这包括向每个所述处理器发送表明其
将访问该存储器单元的异步中断。异步中断不是架构的中断,而是伪中断; 但是,其处理类似于架构的中断的处理。参考图7描述了关于处理中断的 更多细节。
根据本发明的一个方面,在异步中断处理机428 (图4B和7)接收到 中断700 (图7)时,将判定中断类型,步骤702。例如,将定期检查仿真 存储器中的字段以判定中断是否未决,并且如果是,则确定中断类型(例 如,每个可用中断类型都存在一个位)。作为一个实例,判定接收的中断 是否是伪中断704。如果是伪中断,进一步判定伪中断的类型请求锁释 放706,其他伪中断708等。假如其是请求锁释放,则通过释放被请求的 锁来处理伪中断。
如果中断不是伪中断,则判定其是何种类型的z-架构中断710,并调 用适当的处理才几712。在处理中断之后,解释单元420继续处理,步骤714。
返回图5,在发送请求之后,步骤517,处理继续步骤512。在一个实 例中,在循环中仅执行一次步骤517。如果已发送请求但仍未获得锁,则 处理器只是等待,直到锁^U改弃为止,或直到其接收到请求并需要执行无 效为止。
在经由写锁定来锁定存储器单元时,执行锁定的处理器可以针对该存 储器单元执行读或写访问,并且除非并且直到另 一处理器请求对该存储器 单元的访问时,才会打扰该执4亍锁定的处理器。这参考图8进一步描述。 如图所示,锁定存储器单元,步骤800。因此,处理器具有对该存储器单 元的读和写访问,步骤802。如果处理器未接收到对该存储器单元的请求, 查询804,则处理器可以继续具有对该存储器单元的读和写访问。但是, 如果处理器接收到对该特定存储器单元的请求,则处理器释放该存储器单 元上的锁或使锁降级,步骤806,以便另一处理器可以具有读或写访问。
在一个实施例中,确定在关键时刻(例如当荻得检查点或接收到异步 中断时)释放所有已锁定的存储器单元。但是,在其他实施例中,不发生 此操作。替代的是在请求时释放存储器单元。以上详细描述了使用页锁定和增强架构特性提供存储器一致性的能力。在一个实例中,架构为微弱存储器一致性的处理器仿真稳固存储器一致性并且能够有效地提供具有稳固存储器一致性的存储器访问。可以实现此操作而无需在存储器访问期间的同步指令和无需使用硬件来提供存储器一致性。还可以实现此操作而不会导致死锁。
对于此类存储器一致性环境,处理器可以假设如果其观察到存储器中的存储,则任何其他先前存储都已完成。此外,对于访问间隔边界(例如,%字、单字、双字等)的指令,保证并行地成块取回或存储整个间隔。
本发明的一个或多个方面可以包括在例如具有计算机可用介质的制品(例如, 一个或多个计算机程序产品)中。所述介质中具有例如计算机可读程序代码装置或逻辑(例如,指令、代码、命令等)来提供和促进本发明的能力。所述制品可以被包括为计算机系统的一部分或单独出售。
参考图9描述了结合本发明的一个或多个方面的制品或计算机程序产品的一个实例。计算机程序产品900例如包括一个或多个计算机可用介质卯2以在其上存储计算机可读程序代码装置或逻辑904以提供和促进本发明的一个或多个方面。所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。
程序指令的序列或由 一个或多个计算机可读程序代码装置或逻辑定义的一个或多个相关模块的逻辑组装引导本发明的一个或多个方面的执行。
有利地,提供了使用页锁定实现存储器一致性的能力。架构为微弱存储器一致性的处理器仿真稳固存储器一致性以便提供具有存储器一致性的存储器访问。可以提供此操作而无需特殊硬件或特殊同步指令。这提高了系统性能并提供了实现存储器一致性的有效机制。此外,通过使指令或单元操作无效以响应当处理器正在尝试访问存储器单元时发生的请求,避免了死锁情况。此外,有利地,在其中存储器单元没有竟争的典型情况中(例如,不
多于一个的CPU正在试图使用该存储器单元),不存在系统性能降低。没
有添加的检查或额外的测试。
在一个实施例中,为由应用程序而不是操作系统发出的指令提供了此能力。
尽管以上描述了各种实施例,但是它们仅是实例。例如,所述处理环
境可以包括基于除Power4、 PowerPC⑧或Inte^以外的架构的处理单元。
此外,除?861^8@服务器以外的服务器可以结合并使用本发明的一个或多
个方面。进而,所述环境可以包括多于两个的本机处理器或仅包括一个本机处理器。此外,可以使用除在此所述的操作系统以外的操作系统。进而,
所述处理环境可以仿真除2/人"1^6"11^@以外的环境。进而,所述架构特
性可以是其他架构的那些特性。此外,可以使用各种仿真器。可从各个公司购买仿真器。在Virtual Machines: Versatile Platforms For Systems andProcesses ( The Morgan Kaufmann Series in Computer Architecture andDesign, Jim Smith和Ravi Nair, 2005年6月3日,其全部内容在此引入作为参考)中描述了与仿真有关的附加细节。此外,所述处理环境无需包括仿真器代码。许多其他类型的处理环境可以结合和/或使用本发明的一个或多个方面。
尽管在一个实施例中参考了 TLB0,但是可以使用本发明的一个或多个方面而不检查TLB0。此外,存储器单元可以是任何预定大小的存储器,包括但不限于存储器页。
此外,在一个或多个实施例中,可以使用适于存储和/或执行程序代码的数据处理系统,其包括直接或通过系统总线间接与存储器元素耦合的至少一个处理器。所述存储器元素例如包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速緩沖存储器。
输入/输出或1/0设备(包括但不限于键盘、显示器、指点设备,DASD、带、CD、 DVD、闪盘和其他存储器介质等)可以直接或通过中间1/0控制 器与系统相连。网络适配器也可以被连接到系统以使所述数据处理系统能
设备相连。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的 网络适配器类型。
本发明的一个或多个方面的能力可以以软件、固件、硬件或它们的某 种组合来实现。可以提供可由机器读取的至少一个程序存储设备,所述机 器包含可由所述机器执行的至少 一个指令程序以执行本发明的能力。
在此示出的流程图只是实例。可以存在对其中描述的这些示意图或步 骤(或操作)的许多变型而不脱离本发明的精神。例如,可以以不同的顺 序执行步骤,或者可以添加、删除或修改步骤。所有这些变型都被视为所 要求保护的发明的一部分。
尽管在此详细示出和说明了各实施例,但是对本领域的技术人员显而 易见的是,在不脱离本发明精神的情况下,可以做出各种修改、添加、替 换等,因此,它们被认为是在如以下权利要求限定的本发明的范围之内。
权利要求
1.一件制品,包括至少一个计算机可用介质,其具有计算机可读程序代码逻辑以管理仿真处理环境中的存储器访问,所述计算机可读程序代码逻辑在被执行时将执行以下操作由在具有微弱存储器一致性架构的处理器上执行的仿真中央处理单元(CPU)进程请求作为单元操作的一部分访问存储器单元;以及由所述仿真CPU进程管理对所述存储器单元的访问,其中所述管理操作强制稳固的存储器一致性,其中其他仿真CPU进程在所述存储器单元正在被修改的情况下无法观察到该存储器单元,并且其中所述管理操作包括以下操作中的至少一个采用一个或多个存储器访问测试来判定是否可访问所述存储器单元,所述一个或多个存储器访问测试包括添加到现有架构的访问控制块的测试,所述访问控制块包括在仿真CPU进程存在的情况下哪些仿真CPU进程具有对所述存储器单元的读或写访问的指示;以及获得对被请求存储器单元的访问以响应所述采用操作指示所述存储器单元的可用性;判定是否另一仿真CPU进程正在持有所述存储器单元并且此时所述仿真CPU进程无法访问该存储器单元,以及调用中断处理机以请求所述另一仿真CPU进程放弃针对所述存储器单元持有的一个或多个权利,以允许所述仿真CPU进程获得对所述存储器单元的访问;以及判定另一仿真CPU进程是否正在请求访问发出请求的仿真CPU进程所持有的存储器单元,以及使所述单元操作无效以响应该判定操作指示所述另一仿真CPU进程正在请求访问,所述无效避免了死锁。
2. 根据权利要求l的制品,其中获得对被请求存储器单元的访问的操作包括获得所述存储器单元的锁。
3. 根据权利要求2的制品,其中获得所述锁的操作包括在与所述存 储器单元关联的所述访问控制块中设置一个或多个指示符,所述设置取决 于被请求的访问是写访问还是读访问。
4. 根据权利要求3的制品,其中所述访问控制块包括多个读指示符, 其指示在存在仿真CPU进程的情况下哪些仿真CPU进程具有对所述存储 器单元的读访问;多个写指示符,其指定在存在仿真CPU进程的情况下哪 些仿真CPU进程具有对所述存储器单元的写访问;以及一个或多个架构的 访问许可,其控制对所述存储器单元的访问。
5. 根据权利要求l的制品,其中判定是否正在持有所述存储器单元的 操作包括检查所述访问控制块中的一个或多个指示符。
6. 根据权利要求1的制品,其中请求放弃一个或多个权利的操作包括 请求释放由所迷另 一仿真CPU进程持有的所述存储器单元上的锁,或使所 述存储器单元上的锁降级,这取决于被请求的访问是写访问还是读访问。
7. 根据权利要求1的制品,其中所述中断处理机向所述另一仿真CPU 进程提供异步中断以使所述另一仿真CPU进程放弃所述一个或多个权利。
8. 根据权利要求l的制品,其中响应于接收到放弃请求,所述另一仿 真CPU进程放弃所述一个或多个权利,并且响应于所述放弃的操作,所述 仿真CPU进程获得所述存储器单元的锁。
9. 根据权利要求l的制品,其中所述无效的操作包括释放由所述仿 真CPU进程持有的任意锁。
10. 根据权利要求l的制品,还包括响应于所述无效的操作而重新 启动所述单元操作。
11. 根据权利要求l的制品,其中所述存储器单元包括存储器页。
12. —件制品,包括至少一个计算机可用介质,其具有计算机可读程序代码逻辑以管理仿 真处理环境中的存储器访问,所述计算机可读程序代码逻辑在被执行时将执行以下操作由在具有微弱存储器一致性架构的处理器上执行的仿真CPU进 程请求访问存储器单元;以及由所述仿真CPU进程使用强制稳固存储器一致性的访问机制来 管理对该存储器单元的访问,其中其他仿真CPU进程在所述存储器单 元正在被修改的情况下无法观察到该存储器单元,所述访问机制使用 适于提供稳固存储器一致性的现有架构的特性,所述现有架构的特性 包括存储器访问许可、中断处理以及无效中的至少一个。
13. —种管理仿真处理环境中的存储器访问的方法,所述方法包括 由在具有微弱存储器一致性架构的处理器上执行的仿真中央处理单元 (CPU)进程请求作为单元操作的一部分访问存储器单元;以及由所述仿真CPU进程管理对所述存储器单元的访问,其中所述管理操 作强制稳固的存储器一致性,其中其他仿真CPU进程在所述存储器单元正 在被修改的情况下无法观察到该存储器单元,并且其中所述管理搮作包括 以下操作中的至少一个采用 一个或多个存储器访问测试来判定是否可访问所述存储器单 元,所述一个或多个存储器访问测试包括添加到现有架构的访问控制 块的测试,所述访问控制块包括在仿真CPU进程存在的情况下哪些仿 真CPU进程具有对所述存储器单元的读或写访问的指示;以及获得对 被请求存储器单元的访问以响应所述采用操作指示所述存储器单元的 可用性;判定是否另一仿真CPU进程正在持有所述存储器单元并且此时 所述仿真CPU进程无法访问该存储器单元,以及调用中断处理机以请 求所述另一仿真CPU进程放弃针对所述存储器单元持有的一个或多 个权利,以允许所述仿真CPU进程获得对所述存储器单元的访问;以 及判定另一仿真CPU进程是否正在请求访问发出请求的仿真CPU 进程所持有的存储器单元,以及使所迷单元操作无效以响应该判定操作指示所述另一仿真CPU进程正在请求访问,所述无效避免了死锁。
14. 根据权利要求13的方法,其中所述访问控制块包括多个读指示 符,其指示在存在仿真CPU进程的情况下哪些仿真CPU进程具有对所述 存储器单元的读访问;多个写指示符,其指定在存在仿真CPU进程的情况 下哪些仿真CPU进程具有对所述存储器单元的写访问;以及一个或多个架 构的访问许可,其控制对所述存储器单元的访问。
15. 根据权利要求13的方法,其中请求放弃一个或多个权利的操作包 括请求释放由所述另一仿真CPU进程持有的所述存储器单元上的锁,或 使所述存储器单元上的锁降级,这取决于被请求的访问是写访问还是读访 问。
16. 根据权利要求13的方法,其中所述中断处理机向所迷另一仿真 CPU进程提供异步中断以使所述另一仿真CPU进程放弃所述一个或多个 权利。
17. —种管理仿真处理环境中的存储器访问的系统,所述系统包括 存储器;处理器,其具有微弱存储器一致性架构并执行仿真中央处理单元 (CPU)进程,所述仿真CPU进程请求作为单元操作的一部分访问存储 器单元;以及所述仿真CPU进程管理对所述存储器单元的访问,其中所述管理操作 强制稳固的存储器一致性,其中其他仿真CPU进程在所述存储器单元正在 被修改的情况下无法观察到该存储器单元,并且其中所述管理操作包括以 下操作中的至少一个采用 一个或多个存储器访问测试来判定是否可访问所述存储器单 元,所述一个或多个存储器访问测试包括添加到现有架构的访问控制 块的测试,所述访问控制块包括在仿真CPU进程存在的情况下哪些仿 真CPU进程具有对所述存储器单元的读或写访问的指示;以及获得对 被请求存储器单元的访问以响应所述采用操作指示所述存储器单元的 可用性;判定是否另一仿真CPU进程正在持有所述存储器单元并且此时 所述仿真CPU进程无法访问该存储器单元,以及调用中断处理机以请 求所述另一仿真CPU进程放弃针对所述存储器单元持有的一个或多 个权利,以允许所述仿真CPU进程获得对所述存储器单元的访问;以 及判定另一仿真CPU进程是否正在请求访问发出请求的仿真CPU进程所持有的存储器单元,以及使所述单元操作无效以响应该判定操作指示所迷另 一仿真CPU进程正在请求访问,所述无效避免了死锁。
18. 根据权利要求17的系统,其中所述访问控制块包括多个读指示 符,其指示在存在仿真CPU进程的情况下哪些仿真CPU进程具有对所述 存储器单元的读访问;多个写指示符,其指定在存在仿真CPU进程的情况 下哪些仿真CPU进程具有对所述存储器单元的写访问;以及一个或多个架 构的访问许可,其控制对所述存储器单元的访问。
19. 根据权利要求17的系统,其中请求放弃一个或多个权利的操作包 括请求释放由所述另一仿真CPU进程持有的所述存储器单元上的锁,或 使所述存储器单元上的锁降级,这取决于被请求的访问是写访问还是读访 问。
20. 根据权利要求17的系统,其中所述中断处理机向所述另一仿真 CPU进程提供异步中断以使所述另一仿真CPU进程放弃所述一个或多个 权利。
全文摘要
在仿真处理环境中提供了存储器一致性。具有微弱存储器一致性架构的处理器仿真具有稳固存储器一致性的架构。在无需串行化指令或特殊硬件的情况下提供此存储器一致性。
文档编号G06F9/52GK101647003SQ200880010407
公开日2010年2月10日 申请日期2008年3月13日 优先权日2007年3月30日
发明者M·德克尔, T·博伊杰克, V·久里什 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1