CN101647003A - 在仿真处理环境中提供存储器一致性 - Google Patents
在仿真处理环境中提供存储器一致性 Download PDFInfo
- Publication number
- CN101647003A CN101647003A CN200880010407A CN200880010407A CN101647003A CN 101647003 A CN101647003 A CN 101647003A CN 200880010407 A CN200880010407 A CN 200880010407A CN 200880010407 A CN200880010407 A CN 200880010407A CN 101647003 A CN101647003 A CN 101647003A
- Authority
- CN
- China
- Prior art keywords
- memory cell
- cpu process
- emulation cpu
- visit
- access
- 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.)
- Granted
Links
Images
Classifications
-
- 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/46—Multiprogramming arrangements
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Abstract
在仿真处理环境中提供了存储器一致性。具有微弱存储器一致性架构的处理器仿真具有稳固存储器一致性的架构。在无需串行化指令或特殊硬件的情况下提供此存储器一致性。
Description
技术领域
本发明一般地涉及仿真处理环境,具体地说,涉及在具有微弱存储器一致性的处理器上仿真具有稳固存储器一致性的架构,使得存储器访问遵循稳固存储器一致性架构。
背景技术
在处理期间,必须向访问存储器的处理器提供该存储器的一致视图。在具有微弱存储器一致性架构的环境中,必须采取特定步骤来确保存储器一致性。例如,在微弱存储器一致性环境中,如其他处理器所观察的,不能保证存储器的特定单元的更新顺序。因此,在微弱存储器一致性环境上运行的软件必须容忍多义性或使用指令来显式地强制一致性。即,每次执行存储器存储时,将首先执行同步,然后才允许另一存储器访问。但是,使用指令来强制一致性严重降低了系统性能。
与微弱存储器一致性环境相比,某些环境具有稳固存储器一致性架构。在此类环境中,提供了硬件来维护存储器的一致性。
发明内容
尽管硬件提供了较之使用指令强制一致性的优点,但是硬件并非总是可用于执行此类功能。例如,当具有微弱存储器一致性模型的处理器要仿真稳固存储器一致性模型时,将没有硬件来提供一致性。在此情况下,需要一种能力来有效地提供存储器一致性。
例如,需要一种能力来减少在微弱存储器一致性环境中提供稳固存储器一致性的开销。在一个特定方面中,需要一种能力来使得具有微弱存储器一致性的处理器能够有效地仿真具有稳固存储器一致性的处理器,以便有效地提供存储器一致的存储器访问。
通过提供一件制品而克服了现有技术的缺点并提供了附加的优点,所述制品包括至少一个计算机可用介质,其具有计算机可读程序代码逻辑以管理仿真处理环境中的存储器访问。所述计算机可读程序代码逻辑在被执行时将例如执行以下操作:由在具有微弱存储器一致性架构的处理器上执行的仿真中央处理单元(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示出了根据本发明的一个方面使用的访问控制块的一个实例;
图7示出了根据本发明的一个方面的与在获得锁中调用中断处理机关联的逻辑的一个实施例;
图8示出了根据本发明的一个方面的与访问已锁定的存储器单元关联的逻辑的一个实施例;以及
图9示出了结合本发明的一个或多个方面的计算机程序产品的一个实施例。
具体实施方式
根据本发明的一个方面,在仿真处理环境中提供了存储器一致性。具有微弱存储器一致性的处理器仿真具有稳固存储器一致性的架构,并且在无需串行化指令或特殊硬件来执行此功能的情况下提供了存储器一致性。此外,还避免了死锁情况。
参考图1描述了结合并使用本发明的一个或多个方面的处理环境的一个实施例。处理环境100例如包括多个本机处理器102(例如,中央处理单元(CPU)102a,102b)、由多个处理器(总称为处理器102)共享的存储器104(例如,,主存储器),以及多个处理器可访问的一个或多个输入/输出(I/O)设备106。所述处理器、存储器和I/O设备例如经由一个或多个总线108彼此耦合。
在此实例中,每个处理器都基于一种架构(其可称为本机架构),但是仿真另一种架构(其可称为客户架构)。作为实例,本机架构是由位于纽约阿蒙克的国际商业机器公司提供的Power4或架构,或由Intel公司提供的架构;并且客户架构是也由位于纽约阿蒙克的国际商业机器公司提供的。在“z/Architecture Principles ofOperation”(“z/Architecture操作原理”,IBM出版物No.SA22-7832-04,2005年9月,其全部内容在此引入作为参考)中描述了的各方面。作为实例,处理器102是由位于纽约阿蒙克的国际商业机器公司提供的服务器的一部分。以及是美国纽约阿蒙克的国际商业机器公司的注册商标。是Intel公司的注册商标。在此使用的其他名称可以是国际商业机器公司或其他公司的注册商标、商标或产品名称。
每个本机中央处理单元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的各个层。
仿真器210包括多个用于仿真与本机架构不同的架构的组件。在此实施例中,被仿真的架构是由国际商业机器公司提供的,但是同样可以仿真其他架构。仿真使得客户操作系统212(例如,,其是国际商业机器公司的注册商标)能够在本机架构上执行并使能支持一个或多个客户应用214(例如,Z应用)。参考图3描述了关于仿真器210的更多细节。
参考图3,仿真器210包括与一个或多个服务进程302耦合的共享存储器300、输入/输出(I/O)实现304,以及中央处理单元(CPU)实现306,它们都将在以下详细描述。
共享存储器300是从服务进程302、I/O实现304和CPU实现306可见的主机中的存储器部分的表示。它是这样一个存储区域,其中独立进程(例如,服务进程、I/O实现和CPU实现)通过在共享存储器中读取和存储数据来通信。作为一个实例,共享存储器包括多个这样的区域,所述区域例如包含系统全局信息、CPU上下文和信息、仿真的主存储、仿真的主存储密钥,以及子通道(即,表示I/O设备的数据结构)。
服务进程302包括一个或多个用于创建CPU的进程和一个或多个其他进程,以及提供架构的操作员工具,如启动、停止、重置、初始程序加载(IPL)等。它还可以提供其他功能,例如仿真系统工具的显示和改变、获得/释放共享资源,其他维护命令等。
输入/输出实现304例如包括一个或多个子通道进程以及用于与I/O设备通信的I/O控制器。在本发明的一个方面中,I/O控制器负责启动子通道进程并执行恢复。
中央处理单元(CPU)实现306包括一个或多个仿真的CPU进程并且负责执行指令和管理处理。它包括多个参考图4A-4B描述的组件。
参考图4A,CPU实现306例如包括:解释器代码400,用于获得、转换和执行指令;架构的协处理器402,其帮助初始启动并与芯片(例如,服务调用逻辑处理器(SCLP)进程)通信;以及计时工具404,其负责仿真器的计时功能。参考图4B描述了有关解释器代码400的更多细节。
解释器代码400例如包括与存储器访问单元422耦合的解释单元420、CPU控件426、异步中断处理机428,以及同步中断处理机430。在此实例中,每个处理器都包括解释器代码,并且因此表示了解释器代码400a。其他处理器可以具有也可以没有解释器代码400。
解释单元420负责从存储器获取一个或多个客户指令,提供客户指令的本机指令,以及执行本机指令。客户指令包括被开发为在除了本机CPU102以外的架构中执行的软件指令(例如,机器指令)。例如,客户指令可被设计为在处理器上执行,但是实际上在可以例如是服务器的本机CPU上被仿真。
在一个实例中,提供本机指令可以包括选择仿真器中与客户指令关联的代码段。例如,每个客户指令都在仿真器中具有关联的代码段(其包括一个或多个本机指令的序列),并且选择该代码段以供执行。
在其他实例中,所述提供包括例如在转换过程期间针对一组给定客户指令创建本机指令流。这包括确定功能并创建等同的本机指令。
如果指令包括存储器访问,则使用存储器访问例程422来访问共享存储器300。存储器访问例程可使用转换机制(例如动态地址转换(DAT)432或访问寄存器转换(ART)434)将逻辑地址转换成绝对地址,然后使用绝对地址来访问存储器,或者在需要时进一步转换绝对地址。
在此实施例中,将流水线化解释单元420中的处理。因此,如果出现更复杂的情况,如等待状态或从一个架构级别更改为另一个架构级别(例如,到ESA/390等),则控制被转移给CPU控件426,后者处理事件并且然后将控制返回给解释单元420。
此外,如果发生中断,则处理或者从解释单元420转向异步中断处理机428(如果其为异步中断),或者从解释单元420转向同步中断处理机430(如果其为同步中断)。在处理中断之后,处理返回解释单元420。
具体地说,解释单元监视共享存储器中的特定位置并且如果位置改变,则其表示由CPU或I/O之一设置了中断。因此,解释单元调用适当的中断处理机。
根据本发明的一个方面,将管理对存储器的访问,就好像处理环境的架构基于稳固一致性模型那样。具体地说,架构基于微弱一致性模型的处理器提供对存储器的访问,就好像该处理器的架构基于稳固一致性模型那样。微弱存储器一致性系统仿真稳固存储器一致性系统并且此仿真包括以有效的方式提供存储器访问,所述方式提供存储器一致性而无需指令同步或硬件来提供一致性,并且所述方式避免了死锁。
具体地,图4C提供了与解释单元420,具体地说,与利用锁定机制的单元420执行的指令类型有关的附加细节。作为一个实例,一种类型的指令是包括一个单元操作的简单指令480。对于此类指令,将锁定指令被请求的存储器单元482,然后如果锁定成功,则执行指令的主体484。如果在锁定期间,另一处理器请求了由此执行锁定的处理器锁定的存储器单元,则如下所述执行无效486以避免死锁。
另一种类型的指令是长运行指令488。此类指令包括释放由此处理器持有的锁490并且然后仅重新锁定492需要的那些锁的代码。这是对其他CPU的服务。在成功地获得锁以后,执行指令的主体494。再次地,如果在锁定期间,另一处理器请求了由此处理器持有的存储器单元,则执行无效496。
另一种类型的指令是多单元操作指令498,其包括多个简单指令,每个简单指令都被如此处理。
参考图5描述了与锁定并使用现有但增强的架构特性来强制稳固存储器一致性有关的更多细节。图5示出了与提供存储器访问关联的逻辑的一个实施例。
参考图5,初始地,解释单元(例如,解释单元420)获得(例如,取回、接收、被提供等)单元操作,后者包括存储器访问请求,步骤500。所述请求可以是针对存储器单元的读或写访问。
解释单元将此请求转发给存储器访问例程,步骤502。在一个实例中,存储器访问例程判定是否可容易地访问被请求的存储器单元。例如,判定是否在称为转换旁视缓冲器0(TLB0)的缓冲器中表示被请求的存储器单元,查询504。TLB0包括已进行地址转换(如果需要)的存储器单元的指定(例如,地址),并且无需监视对该存储器单元的访问。即,TLB0包括可被容易地访问的存储器单元的指定。在标题为“Employing A DataStructure Of Readily Accessible Units Of Memory To Facilitate MemoryAccess”(案号POU920060207US1,申请日2007年3月1日,其全部内容在此引入作为参考)的美国申请第11/680,703号中描述了有关TLB0的更多细节。
如果在TLB0中表示了被请求的存储器单元,则处理返回解释单元,步骤506,并且使用从TLB0获得指定来执行指令。但是,如果在TLB0中未表示被请求的存储器单元,则执行其他处理。
例如,检查架构的访问许可(例如,z-访问许可),步骤508。在一个实施例中,这包括检查访问控制块中的一个或多个指示符。在一个实例中,访问控制块与配置中可用的每个预定义的存储器单元(例如,存储装置的每个4k字节块)关联并且为存储器单元提供某些参数。此访问控制块存储在共享存储器中并可由耦合到共享存储器的进程访问。
在一个实例中,访问控制块600(图6)包括以下字段:
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,则在一个实例中,如果需要,存储器单元被添加到TLB0,步骤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。如果已发送请求但仍未获得锁,则处理器只是等待,直到锁被放弃为止,或直到其接收到请求并需要执行无效为止。
在经由写锁定来锁定存储器单元时,执行锁定的处理器可以针对该存储器单元执行读或写访问,并且除非并且直到另一处理器请求对该存储器单元的访问时,才会打扰该执行锁定的处理器。这参考图8进一步描述。如图所示,锁定存储器单元,步骤800。因此,处理器具有对该存储器单元的读和写访问,步骤802。如果处理器未接收到对该存储器单元的请求,查询804,则处理器可以继续具有对该存储器单元的读和写访问。但是,如果处理器接收到对该特定存储器单元的请求,则处理器释放该存储器单元上的锁或使锁降级,步骤806,以便另一处理器可以具有读或写访问。
在一个实施例中,确定在关键时刻(例如当获得检查点或接收到异步中断时)释放所有已锁定的存储器单元。但是,在其他实施例中,不发生此操作。替代的是在请求时释放存储器单元。
以上详细描述了使用页锁定和增强架构特性提供存储器一致性的能力。在一个实例中,架构为微弱存储器一致性的处理器仿真稳固存储器一致性并且能够有效地提供具有稳固存储器一致性的存储器访问。可以实现此操作而无需在存储器访问期间的同步指令和无需使用硬件来提供存储器一致性。还可以实现此操作而不会导致死锁。
对于此类存储器一致性环境,处理器可以假设如果其观察到存储器中的存储,则任何其他先前存储都已完成。此外,对于访问间隔边界(例如,1/2字、单字、双字等)的指令,保证并行地成块取回或存储整个间隔。
本发明的一个或多个方面可以包括在例如具有计算机可用介质的制品(例如,一个或多个计算机程序产品)中。所述介质中具有例如计算机可读程序代码装置或逻辑(例如,指令、代码、命令等)来提供和促进本发明的能力。所述制品可以被包括为计算机系统的一部分或单独出售。
参考图9描述了结合本发明的一个或多个方面的制品或计算机程序产品的一个实例。计算机程序产品900例如包括一个或多个计算机可用介质902以在其上存储计算机可读程序代码装置或逻辑904以提供和促进本发明的一个或多个方面。所述介质可以是电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CR-R/W)和DVD。
程序指令的序列或由一个或多个计算机可读程序代码装置或逻辑定义的一个或多个相关模块的逻辑组装引导本发明的一个或多个方面的执行。
有利地,提供了使用页锁定实现存储器一致性的能力。架构为微弱存储器一致性的处理器仿真稳固存储器一致性以便提供具有存储器一致性的存储器访问。可以提供此操作而无需特殊硬件或特殊同步指令。这提高了系统性能并提供了实现存储器一致性的有效机制。此外,通过使指令或单元操作无效以响应当处理器正在尝试访问存储器单元时发生的请求,避免了死锁情况。
此外,有利地,在其中存储器单元没有竞争的典型情况中(例如,不多于一个的CPU正在试图使用该存储器单元),不存在系统性能降低。没有添加的检查或额外的测试。
在一个实施例中,为由应用程序而不是操作系统发出的指令提供了此能力。
尽管以上描述了各种实施例,但是它们仅是实例。例如,所述处理环境可以包括基于除Power4、或以外的架构的处理单元。此外,除服务器以外的服务器可以结合并使用本发明的一个或多个方面。进而,所述环境可以包括多于两个的本机处理器或仅包括一个本机处理器。此外,可以使用除在此所述的操作系统以外的操作系统。进而,所述处理环境可以仿真除以外的环境。进而,所述架构特性可以是其他架构的那些特性。此外,可以使用各种仿真器。可从各个公司购买仿真器。在Virtual Machines:Versatile Platforms For Systems and Processes(The Morgan Kaufmann Series in Computer Architecture and Design,Jim Smith和Ravi Nair,2005年6月3日,其全部内容在此引入作为参考)中描述了与仿真有关的附加细节。此外,所述处理环境无需包括仿真器代码。许多其他类型的处理环境可以结合和/或使用本发明的一个或多个方面。
尽管在一个实施例中参考了TLB0,但是可以使用本发明的一个或多个方面而不检查TLB0。此外,存储器单元可以是任何预定大小的存储器,包括但不限于存储器页。
此外,在一个或多个实施例中,可以使用适于存储和/或执行程序代码的数据处理系统,其包括直接或通过系统总线间接与存储器元素耦合的至少一个处理器。所述存储器元素例如包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备,DASD、带、CD、DVD、闪盘和其他存储器介质等)可以直接或通过中间I/O控制器与系统相连。网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。
本发明的一个或多个方面的能力可以以软件、固件、硬件或它们的某种组合来实现。可以提供可由机器读取的至少一个程序存储设备,所述机器包含可由所述机器执行的至少一个指令程序以执行本发明的能力。
在此示出的流程图只是实例。可以存在对其中描述的这些示意图或步骤(或操作)的许多变型而不脱离本发明的精神。例如,可以以不同的顺序执行步骤,或者可以添加、删除或修改步骤。所有这些变型都被视为所要求保护的发明的一部分。
尽管在此详细示出和说明了各实施例,但是对本领域的技术人员显而易见的是,在不脱离本发明精神的情况下,可以做出各种修改、添加、替换等,因此,它们被认为是在如以下权利要求限定的本发明的范围之内。
Claims (20)
1.一件制品,包括:
至少一个计算机可用介质,其具有计算机可读程序代码逻辑以管理仿真处理环境中的存储器访问,所述计算机可读程序代码逻辑在被执行时将执行以下操作:
由在具有微弱存储器一致性架构的处理器上执行的仿真中央处理单元(CPU)进程请求作为单元操作的一部分访问存储器单元;以及
由所述仿真CPU进程管理对所述存储器单元的访问,其中所述管理操作强制稳固的存储器一致性,其中其他仿真CPU进程在所述存储器单元正在被修改的情况下无法观察到该存储器单元,并且其中所述管理操作包括以下操作中的至少一个:
采用一个或多个存储器访问测试来判定是否可访问所述存储器单元,所述一个或多个存储器访问测试包括添加到现有架构的访问控制块的测试,所述访问控制块包括在仿真CPU进程存在的情况下哪些仿真CPU进程具有对所述存储器单元的读或写访问的指示;以及获得对被请求存储器单元的访问以响应所述采用操作指示所述存储器单元的可用性;
判定是否另一仿真CPU进程正在持有所述存储器单元并且此时所述仿真CPU进程无法访问该存储器单元,以及调用中断处理机以请求所述另一仿真CPU进程放弃针对所述存储器单元持有的一个或多个权利,以允许所述仿真CPU进程获得对所述存储器单元的访问;以及
判定另一仿真CPU进程是否正在请求访问发出请求的仿真CPU进程所持有的存储器单元,以及使所述单元操作无效以响应该判定操作指示所述另一仿真CPU进程正在请求访问,所述无效避免了死锁。
2.根据权利要求1的制品,其中获得对被请求存储器单元的访问的操作包括:
获得所述存储器单元的锁。
3.根据权利要求2的制品,其中获得所述锁的操作包括:在与所述存储器单元关联的所述访问控制块中设置一个或多个指示符,所述设置取决于被请求的访问是写访问还是读访问。
4.根据权利要求3的制品,其中所述访问控制块包括:多个读指示符,其指示在存在仿真CPU进程的情况下哪些仿真CPU进程具有对所述存储器单元的读访问;多个写指示符,其指定在存在仿真CPU进程的情况下哪些仿真CPU进程具有对所述存储器单元的写访问;以及一个或多个架构的访问许可,其控制对所述存储器单元的访问。
5.根据权利要求1的制品,其中判定是否正在持有所述存储器单元的操作包括:检查所述访问控制块中的一个或多个指示符。
6.根据权利要求1的制品,其中请求放弃一个或多个权利的操作包括:请求释放由所述另一仿真CPU进程持有的所述存储器单元上的锁,或使所述存储器单元上的锁降级,这取决于被请求的访问是写访问还是读访问。
7.根据权利要求1的制品,其中所述中断处理机向所述另一仿真CPU进程提供异步中断以使所述另一仿真CPU进程放弃所述一个或多个权利。
8.根据权利要求1的制品,其中响应于接收到放弃请求,所述另一仿真CPU进程放弃所述一个或多个权利,并且响应于所述放弃的操作,所述仿真CPU进程获得所述存储器单元的锁。
9.根据权利要求1的制品,其中所述无效的操作包括:释放由所述仿真CPU进程持有的任意锁。
10.根据权利要求1的制品,还包括:响应于所述无效的操作而重新启动所述单元操作。
11.根据权利要求1的制品,其中所述存储器单元包括存储器页。
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进程放弃所述一个或多个权利。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/694,082 US7899663B2 (en) | 2007-03-30 | 2007-03-30 | Providing memory consistency in an emulated processing environment |
US11/694,082 | 2007-03-30 | ||
PCT/EP2008/053039 WO2008119642A2 (en) | 2007-03-30 | 2008-03-13 | Providing memory consistency in an emulated processing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101647003A true CN101647003A (zh) | 2010-02-10 |
CN101647003B CN101647003B (zh) | 2014-04-16 |
Family
ID=39735169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880010407.5A Active CN101647003B (zh) | 2007-03-30 | 2008-03-13 | 在仿真处理环境中提供存储器一致性 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7899663B2 (zh) |
EP (1) | EP2142993B1 (zh) |
JP (1) | JP4738548B2 (zh) |
KR (1) | KR101107469B1 (zh) |
CN (1) | CN101647003B (zh) |
WO (1) | WO2008119642A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663024A (zh) * | 2014-07-14 | 2017-05-10 | 甲骨文国际公司 | 变量句柄 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9436617B2 (en) * | 2013-12-13 | 2016-09-06 | Texas Instruments Incorporated | Dynamic processor-memory revectoring architecture |
Family Cites Families (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5987566A (ja) | 1982-11-12 | 1984-05-21 | Hitachi Ltd | メモリアクセス検出方式 |
JPS63193243A (ja) * | 1987-02-06 | 1988-08-10 | Nec Corp | デ−タベ−ス処理方式 |
JPH03260734A (ja) * | 1990-03-09 | 1991-11-20 | Meidensha Corp | コンピュータシステムの資源管理方式 |
US5918248A (en) | 1996-12-30 | 1999-06-29 | Northern Telecom Limited | Shared memory control algorithm for mutual exclusion and rollback |
US5778221A (en) * | 1997-03-17 | 1998-07-07 | International Business Machines Corporation | System for executing asynchronous branch and link in parallel processor |
US5790851A (en) * | 1997-04-15 | 1998-08-04 | Oracle Corporation | Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment |
US6075938A (en) * | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6314501B1 (en) * | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6282637B1 (en) * | 1998-12-02 | 2001-08-28 | Sun Microsystems, Inc. | Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs |
US6304924B1 (en) * | 1999-02-02 | 2001-10-16 | International Business Machines Corporation | Two lock-free, constant-space, multiple-(impure)-reader, single-writer structures |
AU7108500A (en) | 1999-08-31 | 2001-03-26 | Times N Systems, Inc. | Efficient page allocation |
JP2001256065A (ja) * | 2000-03-14 | 2001-09-21 | Hitachi Ltd | 排他制御方法及び計算機システム |
US6615340B1 (en) * | 2000-03-22 | 2003-09-02 | Wilmot, Ii Richard Byron | Extended operand management indicator structure and method |
US6615281B1 (en) * | 2000-05-05 | 2003-09-02 | International Business Machines Corporation | Multi-node synchronization using global timing source and interrupts following anticipatory wait state |
US6738871B2 (en) * | 2000-12-22 | 2004-05-18 | International Business Machines Corporation | Method for deadlock avoidance in a cluster environment |
US6463511B2 (en) * | 2000-12-29 | 2002-10-08 | Intel Corporation | System and method for high performance execution of locked memory instructions in a system with distributed memory and a restrictive memory model |
US6996812B2 (en) * | 2001-06-18 | 2006-02-07 | International Business Machines Corporation | Software implementation of synchronous memory barriers |
US6857036B2 (en) * | 2001-07-17 | 2005-02-15 | Hewlett Packard Development Company, L.P. | Hardware method for implementing atomic semaphore operations using code macros |
US20030115476A1 (en) * | 2001-10-31 | 2003-06-19 | Mckee Bret | Hardware-enforced control of access to memory within a computer using hardware-enforced semaphores and other similar, hardware-enforced serialization and sequencing mechanisms |
WO2003040948A1 (fr) * | 2001-11-08 | 2003-05-15 | Fujitsu Limited | Ordinateur et procede de commande |
US20030093649A1 (en) | 2001-11-14 | 2003-05-15 | Ronald Hilton | Flexible caching of translated code under emulation |
US9043194B2 (en) * | 2002-09-17 | 2015-05-26 | International Business Machines Corporation | Method and system for efficient emulation of multiprocessor memory consistency |
US7197585B2 (en) * | 2002-09-30 | 2007-03-27 | International Business Machines Corporation | Method and apparatus for managing the execution of a broadcast instruction on a guest processor |
US7213248B2 (en) * | 2002-10-10 | 2007-05-01 | International Business Machines Corporation | High speed promotion mechanism suitable for lock acquisition in a multiprocessor data processing system |
US6965905B2 (en) * | 2002-12-20 | 2005-11-15 | Sun Microsystems, Inc. | Lock-free, parallel remembered sets |
US6938130B2 (en) * | 2003-02-13 | 2005-08-30 | Sun Microsystems Inc. | Method and apparatus for delaying interfering accesses from other threads during transactional program execution |
WO2004078186A1 (ja) | 2003-03-04 | 2004-09-16 | Kowa Co., Ltd. | 損傷皮膚修復用軟膏状製剤 |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
US7529914B2 (en) * | 2004-06-30 | 2009-05-05 | Intel Corporation | Method and apparatus for speculative execution of uncontended lock instructions |
US8032658B2 (en) | 2004-07-06 | 2011-10-04 | Oracle America, Inc. | Computer architecture and process for implementing a virtual vertical perimeter framework for an overloaded CPU having multiple network interfaces |
JP4006428B2 (ja) * | 2004-09-28 | 2007-11-14 | 株式会社東芝 | 計算機システム |
US8954751B2 (en) | 2004-10-08 | 2015-02-10 | International Business Machines Corporation | Secure memory control parameters in table look aside buffer data fields and support memory array |
WO2006110937A1 (en) * | 2005-04-21 | 2006-10-26 | Waratek Pty Limited | Modified computer architecture with coordinated objects |
US20060248284A1 (en) * | 2005-04-29 | 2006-11-02 | Petev Petio G | Cache coherence implementation using shared locks and message server |
US7747996B1 (en) * | 2006-05-25 | 2010-06-29 | Oracle America, Inc. | Method of mixed lock-free and locking synchronization |
US8166194B2 (en) * | 2006-12-13 | 2012-04-24 | Microsoft Corporation | Lock-free shared audio buffer |
US7685381B2 (en) | 2007-03-01 | 2010-03-23 | International Business Machines Corporation | Employing a data structure of readily accessible units of memory to facilitate memory access |
-
2007
- 2007-03-30 US US11/694,082 patent/US7899663B2/en active Active
-
2008
- 2008-03-13 CN CN200880010407.5A patent/CN101647003B/zh active Active
- 2008-03-13 WO PCT/EP2008/053039 patent/WO2008119642A2/en active Application Filing
- 2008-03-13 JP JP2010500189A patent/JP4738548B2/ja active Active
- 2008-03-13 KR KR1020097013094A patent/KR101107469B1/ko active IP Right Grant
- 2008-03-13 EP EP08717783A patent/EP2142993B1/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106663024A (zh) * | 2014-07-14 | 2017-05-10 | 甲骨文国际公司 | 变量句柄 |
CN106663024B (zh) * | 2014-07-14 | 2020-05-19 | 甲骨文国际公司 | 变量句柄 |
US11030105B2 (en) | 2014-07-14 | 2021-06-08 | Oracle International Corporation | Variable handles |
Also Published As
Publication number | Publication date |
---|---|
US7899663B2 (en) | 2011-03-01 |
JP4738548B2 (ja) | 2011-08-03 |
CN101647003B (zh) | 2014-04-16 |
JP2010524054A (ja) | 2010-07-15 |
KR101107469B1 (ko) | 2012-01-19 |
KR20090110297A (ko) | 2009-10-21 |
WO2008119642A2 (en) | 2008-10-09 |
US20080243468A1 (en) | 2008-10-02 |
EP2142993A2 (en) | 2010-01-13 |
EP2142993B1 (en) | 2012-12-19 |
WO2008119642A3 (en) | 2009-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100578471C (zh) | 用于在虚拟机之间共享页的方法和系统 | |
US8219988B2 (en) | Partition adjunct for data processing system | |
JP5005111B2 (ja) | 複数の論理パーティションと自己仮想化入出力デバイスとのインターフェース接続 | |
JP5717847B2 (ja) | コンピューティング環境のイベントを管理する方法、これを実行するためのコンピュータ・プログラム、およびコンピュータ・システム | |
JPH07122863B2 (ja) | 汎用のオペレーティング・システム・インターフェースを有するデバイス・ドライバを含むデータ処理システム | |
US20110321060A1 (en) | Operating system notification of actions to be taken responsive to adapter events | |
CN102023932A (zh) | 为本地与远程物理存储器之间的共享虚拟存储器提供硬件支持 | |
CN101410813A (zh) | 在存储器迁移期间停止dma操作的计算机实现的方法、设备和计算机程序产品 | |
JP5934350B2 (ja) | 結合ファシリティのオペレータ・メッセージ・バッファの管理 | |
JP6005149B2 (ja) | 結合ファシリティを試験するためのオペレータ・メッセージ・コマンド | |
Fukai et al. | Live migration in bare-metal clouds | |
JP2014524068A (ja) | オペレータ・メッセージ開始コマンドの実行 | |
TW201351291A (zh) | 由一程式提供給另一程式之對警告追蹤設施之存取 | |
JP2014522533A (ja) | オペレータ・メッセージ・コマンドの結合ファシリティへの伝送 | |
JP2014524067A (ja) | オペレータ・メッセージ・コマンドの処理 | |
CN101647003B (zh) | 在仿真处理环境中提供存储器一致性 | |
US7743234B2 (en) | Facilitating communication within an emulated processing environment | |
EP2115574B1 (en) | Employing a buffer to facilitate instruction execution | |
CN116762059A (zh) | 监控独占指令 | |
US20170097918A1 (en) | Peripheral device access using synchronous input/output | |
US10067720B2 (en) | Synchronous input/output virtualization | |
US7451300B1 (en) | Explicit control of speculation | |
US7930438B2 (en) | Interrogate processing for complex I/O link | |
JP4407445B2 (ja) | 一定の応答時間を保証する計算機システム | |
JP2023538241A (ja) | メモリロケーションに記憶されたデータが修正されたかどうかを識別するためのメモリロケーションの監視 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |