CN101963907A - 一种计算机程序热点的动态剖析机制 - Google Patents
一种计算机程序热点的动态剖析机制 Download PDFInfo
- Publication number
- CN101963907A CN101963907A CN2010105060462A CN201010506046A CN101963907A CN 101963907 A CN101963907 A CN 101963907A CN 2010105060462 A CN2010105060462 A CN 2010105060462A CN 201010506046 A CN201010506046 A CN 201010506046A CN 101963907 A CN101963907 A CN 101963907A
- Authority
- CN
- China
- Prior art keywords
- path
- branch
- instruction
- focus
- computer program
- 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.)
- Pending
Links
Images
Abstract
本发明涉及一种计算机程序热点模块的动态发现方法,特别是基于计算机程序执行时路径信息的动态剖析机制。在本机制中,用户程序的指令和地址数据在总线上传输时将被捕获。本机制将对指令进行译码识别、选择分类,然后将分类得到的分支指令及其执行结果、地址信息形成特定的程序路径描述符,进行统计与分析,最终将获得的热点路径描述符保存在专门的存储模块中。该机制能够适用于不同的计算机体系结构,作为计算机处理器内部功能部件或外部协处理部件,极大地提高计算机程序执行的并行性,从而有效地提升程序执行的性能。同时,该机制也能够作为独立的可重用部件应用于各种需要进行程序热点识别的场合。
Description
技术领域
本发明涉及一种计算机程序中频繁执行的热点模块的动态发现方法,特别涉及一种利用计算机程序执行过程信息的基于路径分析的动态剖析机制。
背景技术
90%以上的程序执行时间消耗在大约10%的代码,即热点代码上。对热点代码进行优化,能显著提高程序性能。在指令集扩展和动态二进制翻译等研究中,热点识别技术有着重要的应用。
程序路径的概念在学术界很早就有提及。1996年威斯康星大学的Ball和Larus提出了针对路径剖析信息的可行性方法,能自动有效地对过程内无环序列(BL路径)完成剖析统计。BL路径主要有两个缺陷:一是局限于单个基本块内部,不能提供程序控制流中跨过程和跨循环的信息;二是开销过大,额外的时间开销平均约为30%~45%。后续的研究工作多以克服BL路径的某个缺陷展开。
在扩展路径信息方面,出现了基于全程序路径(whole program path,WPP)和可扩展路径的方法。WPP在BL路径的基础上增加了对基本块入口和循环回边的处理,而Tallam等提出的可扩展路径的方法使用部分重复的思想将在循环或过程调用两侧的两条BL路径连接起来。但上述技术的剖析代价仍然太高。对此,Arnold和Joshi利用采样和关键边等技术,在保证一定剖析准确度的前提下有效地降低了剖析代价;Bond使用边剖析信息来简化路径剖析过程。但上述方法增加了获得基本剖析信息的时间,无法及时优化,导致最终能获得的优化可能性减小。
随着系统性能分析技术的发展,许多处理器如SPARC、Pentium2IV等都提供了事件计数器之类的硬件来支持性能监测。基于此,Conte使用传统处理器中的分支处理逻辑来记录剖析信息。Narayanasamy等人设计了一种Multi2Has的硬件框架来实现硬件剖析。K.Vaswa2ni在已有硬件剖析的基础上,利用路径剖析技术专门设计了基于堆栈和散列表实现的硬件剖析器,适用于不同类型的路径剖析,但因其与处理器紧密耦合而受限于特定的体系结构。此外,还有一些利用点剖析技术收集程序运行信息的硬件剖析器。
现有研究中,剖析技术多使用软件实现。软件剖析修改方便、收集信息完整,但剖析开销较大,准确性依赖于精心设计的测试代码。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种计算机程序热点的动态剖析机制,可以有效地进行热点识别。
为解决上述技术方案,实现上述技术目的,本发明通过以下技术方案来实现:
一种计算机程序热点的动态剖析机制,包括基于可配置动态硬件剖析器(CHDPP)的分支识别模块、路径探测模块和存储模块,所述分支识别模块、路径探测模块和存储模块可以通过配置来适用于不同的体系结构,完成计算机程序热点的硬件的动态剖析。
与常见的硬件剖析器不同,CHDPP不集成在处理器内部,而是与处理器松散耦合,通过监测数据总线和地址总线来完成工作。CHDPP不需要了解与处理器相关的微体系结构信息,这使得其能够作为独立的功能部件单独使用,有利于降低可重构指令集处理器(RISP)设计的难度。同时,CHDPP具有可配置性,能够适用于不同的指令集体系结构
一种计算机程序热点的动态剖析机制,其特征在于:包括如下步骤,
步骤①分析指令
分析计算机处理器的指令集,包括指令及地址信息,将其中的分支指令操作码以及掩码保存在内容寻址存储器中;
步骤②译码器译码
在计算机的每个时钟周期,从数据总线和地址总线分别读取指令及地址信息,译码器根据内容寻址存储器中的配置对指令进行译码;
步骤③指令分类
分支归类器对译码得到的分支指令进行分类,识别出其中的分支指令,并判定其分支方向,所述分支方向包括前进分支、回转分支、过程调用和过程返回;
步骤④生成热点路径及记录其相关信息
路径探测模块利用分类后的分支指令信息跟踪程序的执行过程,采用一种类似基本块地址索引的紧凑的路径描述生成热点路径及记录其相关信息,所述路径描述由路径长度、分支跳转记录和路径起始地址构成;
步骤⑤完成热点路径表
在控制寄存器的控制下,通过路径剖析器完成剖析,剖析得到的路径描述符保存在存储模块的热点路径表中。
与现有技术相比,本发明具有以下显著的优点:
1、CHDPP不集成在处理器内部,而是与处理器松散耦合,通过监测数据总线和地址总线来完成工作。
2、CHDPP不需要了解与处理器相关的微体系结构信息,这使得其能够作为独立的功能部件单独使用,有利于降低RISP设计的难度。
3、CHDPP具有可配置性,能够适用于不同的指令集体系结构。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
图1是本发明的一种计算机程序热点的动态剖析机制的体系结构示意图。
图2是本发明的一种计算机程序热点的动态剖析机制的流程图。
具体实施方式
下面结合附图对本发明的具体实施作进一步描述:
如图1所示,一种计算机程序热点的动态剖析机制,为一种基于可配置动态硬件剖析器(CHDPP)的剖析机制,其包括分支识别模块1、路径探测模块2和存储模块3。三个模块可以通过配置来适用于不同的体系结构,完成硬件的动态剖析。
进一步的,结合本发明的所构筑的平台体系结构CHDPP来看:
1.分支识别模块
分支识别模块1包含内容寻址存储器(CAM)、译码器和分支归类器三个部分。
(1)内容寻址存储器(CAM)
CAM中主要保存了系统指令集中所有感兴趣的指令(比如分支指令)的操作码编码以及在指令格式中提取这些编码所需要的相应的掩码。当系统指令集体系结构发生改变时,只需要更新CAM就能使CHDPP适用于新的系统中。CAM被分成两个部分:CAM1和CAM2。CAM1中保存了每条感兴趣的指令的主操作码及其掩码,其中又区分只有一级译码的指令和需要多级译码的指令。CAM2中保存需要多级译码的指令的次操作码。
进一步的,在CHDPP中,设定CAM的大小为128×8b,支持两级译码。
(2)译码器
CHDPP译码的过程主要是为了确定当前指令是否是CAM中保存的感兴趣指令。嵌入式处理器基本都属于RISC体系结构,其指令格式比较固定,因此,在CHDPP中使用opshift1、opshift2、opmask1和opmask2四个寄存器来保存两级操作码在指令格式中的偏移量及掩码。译码器通过结对使用opshift1、opmask1或者opshift2、opmask2的值来获得主或者次操作码,然后在CAM1和CAM2中进行查找。如果命中,则表示当前指令属于感兴趣指令,将相关信息传送给分支归类器;如果没有找到,则忽略当前指令。其规则如表1所示,其中第一列表示只需一级译码的部分,第二列表示需要多级译码的部分。
表1译码规则
CAM1(single) | CAM1(multi) | CAM2 | Interesting |
× | × | - | × |
√ | × | - | √ |
× | √ | √ | √ |
× | √ | × | × |
一些指令集中有些比较特殊的分支操作,可以通过在CAM中进行特定设置来正确译码。比如,ARM指令集中如果某条指令的目标寄存器为R15,则这条指令实际上是一条分支指令。对于这种情况,目标寄存器作为该条指令的次操作码,在CAM1的多级译码部分保存该指令操作码,而在CAM2中的次操作码设为15即可。
(3)分支归类器
CHDPP对路径的探测基于分支指令进行。在程序代码中,分支指令包括了直接或间接跳转、条件分支和过程调用与返回等。它们在CHDPP中被划分为4类:前进分支、回转分支、过程调用和过程返回。
根据空间局部性原理,程序运行时下一条即将执行的指令一般位于当前指令的下一个地址位置,即程序的执行从地址空间的角度看通常是连续的。如果前后执行的两条指令的地址在空间上不连续,那么可以认为程序执行过程发生了分支跳转,然后可以通过比较两条指令的地址关系确定分支是前进还是回转。假定Addr(i)表示指令i的地址,考虑分支指令B及其后续执行指令I。如果Addr(B)>Addr(I),则判定该分支指令为回转分支;如果Addr(B)<Addr(I),则判定该分支指令为前进分支。
对于过程调用和返回指令,CHDPP默认将它们分别单独归类。这样做能够为针对跨过程调用的可扩展路径的剖析提供方便。这类路径的剖析需要显式记录路径上的过程调用和返回指令的信息,以便控制剖析进程和完成相关调用信息的收集。当不需要明确的过程调用信息时,可以将过程调用和返回看作直接跳转而归类为前进分支或者回转分支,这时所有的分支指令就只被分为两类。
除了对分支指令进行归类外,还需要确定分支是否成功以便记录分支跳转信息。无条件分支(包括直接或间接跳转、过程调用和返回)总被认为是分支成功的。而对于条件分支,如果属于回转分支,那么它总是分支成功的;如果属于前进分支,则需要进一步比较其与后续执行指令的地址关系:若后续执行指令位于当前分支指令的下一个地址位置,则判定当前分支失败,否则判定分支成功。
2.路径探测模块
路径探测模块2利用分类后的分支指令信息跟踪程序的执行过程,生成热点路径及记录其相关信息。
(1)路径的表示
在CHDPP中,采用一种类似基本块地址索引的紧凑的路径描述符来表示路径。这种路径描述符综合使用了路径的相关信息,具有唯一性又相对简单。它主要由三部分组成,如下表所示。
表2路径描述符
路径长度 | 分支跳转记录 | 路径起始地址 |
1.路径长度
路径长度表示了路径上的分支指令的数目,也就是基本块的个数。这个域的位数设定依赖于具体的应用。
2.分支跳转记录
这个域用于按序记录执行过程中路径上出现的每条分支指令的实际是否跳转成功的信息。这个域的位数取决于最大路径长度值。假设路径长度域的位数为N,则最大路径长度值为2N-1,相应地分支记录域也有2N-1位,每一位对应一条分支指令。
分支跳转存在成功与失败两种结果,在记录时需要对其进行编码。CHDPP中设定当分支成功时,记录值为1,否则为0。
3.路径起始地址
这个域记录路径的第一条指令的地址,位数一般为32位。
(2)路径生成过程
在路径探测模块中,路径的生成过程受控制寄存器的控制。控制寄存器中设定了路径最大长度、允许的跨循环最大扩展次数、是否允许跨过程和是否使用点剖析等控制信息。通过设置这些参数,可以使得路径探测模块针对不同的路径类型进行工作。如果要对路径上的相关事件进行记录时,可以允许点剖析并调用事件计数器。此时需要在初始时将目标事件信息存储在CAM中。比如要记录路径上指令对某段内存区域的访存事件,将访存指令的操作码存储在CAM1中,内存地址范围存储在CAM2中即可。
每条路径开始时,路径剖析器先使用一个寄存器记录分支识别模块提供的路径起始指令地址,作为路径描述符中的起始地址信息,再使用两个计数器分别用于当前路径长度和跨循环次数的计数。在路径剖析器接收到一条分支指令时,长度计数器先加一,然后将该计数器值与控制寄存器中允许的最大值作比较。如果达到最大值,则将长度计数器的值存入路径描述符的路径长度域,结束当前路径并转入下一条路径的探测;如果接收到的是回转指令,则跨循环次数计数器加一,然后与其允许的最大值作比较,若达到最大值则结束当前路径。在接收到过程调用或者是过程返回指令时,CHDPP需要根据控制寄存器的配置进行不同的操作。默认情况下将无条件地结束当前路径,从而使单个过程的执行信息相对独立。这对需要利用过程信息针对过程进行优化的工作将十分有用。分支历史记录在路径剖析器中使用一个移位寄存器实现。在接收到分支指令时,路径剖析器先将移位寄存器右移一位,然后根据当前指令是否分支成功,将编码填入移位寄存器的最左端,在路径结束时根据当前路径长度计数器的值截取移位寄存器左端的相应位数保存到路径描述符的分支跳转记录中。
3.存储模块
存储模块3主要使用了一种叫热点信息表(HPT)的存储结构。HPT的每一个存储项包含了路径描述符、路径的执行频度及路径上的相关事件信息。由于硬件资源的限制,剖析得到的路径不可能同时也没必要全部保存在HPT中,只是有选择的保存某些热点路径。因此,需要在存储模块中设计一定的存储机制,从而有选择地保存剖析得到的结果。存储机制的设计涉及到HPT的组织结构、存储映射的哈希(Hash)策略和存储替换算法等方面,它们都将影响CHDPP最终的效率和准确性。
HPT的设计首先要考虑的是HPT的大小,也就是HPT中存储项的个数。这个值的确定取决于程序中可以被看作是热点的路径数。在硬件资源允许的情况下,尽量设计较大的HPT能够提高存储信息的准确度。然而,路径描述符的长度一般比较大,HPT中所包含的存储项数目与之相比显得十分有限,因此,在存储时无法直接使用路径描述符作为存储地址,而需要对路径描述符进行哈希变换得到可用的存储地址值。哈希函数的选用要求能尽可能地减少存储冲突,同时要求尽量简单以利于硬件实现。由于哈希操作压缩了存储空间,不可避免地会产生多个路径描述符被映射到同一个存储项的情况。因此需要一种有效的组织方式与替换策略来保证在发生冲突时路径存储的正常进行。为了减少有效信息的丢失,CHDPP借鉴Cache的组相联思想对HPT的存储项进行分组,同时采用适合频度统计的LFU(Least Frequently Used)算法来完成替换操作。
存储模块3在接收到一个路径描述符后,先进行哈希变换获得首选存储项地址,如果该项命中或尚未使用则完成存储;否则在该存储项所在的组内查询其他候选项,若命中则更新其频度值,否则选择第一个可用的候选项完成存储。当组内没有可用的存储项时,存储模块将遵循LFU算法进行替换。
根据上述技术的应用,参见图2所示,一种计算机程序热点的动态剖析机制,其包括如下步骤,
步骤①分析指令101
分析计算机处理器的指令集,包括指令及地址信息,将其中的分支指令操作码以及掩码保存在内容寻址存储器中;
步骤②译码器译码102
在计算机的每个时钟周期,从数据总线和地址总线分别读取指令及地址信息,译码器根据内容寻址存储器中的配置对指令进行译码;
步骤③指令分类103
分支归类器对译码得到的分支指令进行分类,识别出其中的分支指令,并判定其分支方向,所述分支方向包括前进分支、回转分支、过程调用和过程返回;
步骤④生成热点路径及记录其相关信息104
路径探测模块利用分类后的分支指令信息跟踪程序的执行过程,采用一种类似基本块地址索引的紧凑的路径描述生成热点路径及记录其相关信息,所述路径描述由路径长度、分支跳转记录和路径起始地址构成;
步骤⑤完成热点路径表105
在控制寄存器的控制下,通过路径剖析器完成剖析,剖析得到的路径描述符保存在存储模块3的热点路径表中。
Claims (2)
1.一种计算机程序热点的动态剖析机制,其特征在于:包括基于可配置动态硬件剖析器的分支识别模块(1)、路径探测模块(2)和存储模块(3),所述分支识别模块(1)、路径探测模块(2)和存储模块(3)可以通过配置来适用于不同的体系结构,完成计算机程序热点的硬件的动态剖析。
2.根据权利要求1所述的一种计算机程序热点的动态剖析机制,其特征在于:包括如下步骤,
步骤①分析指令(101)
分析计算机处理器的指令集,包括指令及地址信息,将其中的分支指令操作码以及掩码保存在内容寻址存储器中;
步骤②译码器译码(102)
在计算机的每个时钟周期,从数据总线和地址总线分别读取指令及地址信息,译码器根据内容寻址存储器中的配置对指令进行译码;
步骤③指令分类(103)
分支归类器对译码得到的分支指令进行分类,识别出其中的分支指令,并判定其分支方向,所述分支方向包括前进分支、回转分支、过程调用和过程返回;
步骤④生成热点路径及记录其相关信息(104)
路径探测模块利用分类后的分支指令信息跟踪程序的执行过程,采用一种类似基本块地址索引的紧凑的路径描述生成热点路径及记录其相关信息,所述路径描述由路径长度、分支跳转记录和路径起始地址构成;
步骤⑤完成热点路径表(105)
在控制寄存器的控制下,通过路径剖析器完成剖析,剖析得到的路径描述符保存在存储模块(3)的热点路径表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105060462A CN101963907A (zh) | 2010-10-14 | 2010-10-14 | 一种计算机程序热点的动态剖析机制 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105060462A CN101963907A (zh) | 2010-10-14 | 2010-10-14 | 一种计算机程序热点的动态剖析机制 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101963907A true CN101963907A (zh) | 2011-02-02 |
Family
ID=43516790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105060462A Pending CN101963907A (zh) | 2010-10-14 | 2010-10-14 | 一种计算机程序热点的动态剖析机制 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101963907A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662823A (zh) * | 2012-03-09 | 2012-09-12 | 无锡华御信息技术有限公司 | 一种对程序和文件进行操作数统计的方法 |
CN103207772A (zh) * | 2013-04-07 | 2013-07-17 | 北京航空航天大学 | 一种优化实时任务wcet的指令预取内容选取方法 |
CN104199649A (zh) * | 2014-08-22 | 2014-12-10 | 东南大学 | 一种用于父子进程间交互信息的路径剖析方法 |
CN105224305A (zh) * | 2014-07-01 | 2016-01-06 | 华为技术有限公司 | 函数调用路径编解码方法、装置及系统 |
CN109032609A (zh) * | 2012-03-30 | 2018-12-18 | 英特尔公司 | 用于实现页级自动二进制转换的硬件剖析机制 |
US10871976B2 (en) | 2015-12-02 | 2020-12-22 | Huawei Technologies Co, Ltd. | Method and apparatus for identifying hotspot intermediate code in language virtual machine |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604049A (zh) * | 2003-09-30 | 2005-04-06 | 国际商业机器公司 | 用于自主剖析应用程序的方法和设备 |
CN1627270A (zh) * | 2003-09-30 | 2005-06-15 | 国际商业机器公司 | 用于对指令执行和数据访问进行计数的方法和设备 |
-
2010
- 2010-10-14 CN CN2010105060462A patent/CN101963907A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604049A (zh) * | 2003-09-30 | 2005-04-06 | 国际商业机器公司 | 用于自主剖析应用程序的方法和设备 |
CN1627270A (zh) * | 2003-09-30 | 2005-06-15 | 国际商业机器公司 | 用于对指令执行和数据访问进行计数的方法和设备 |
Non-Patent Citations (1)
Title |
---|
周惠臻等: "可配置的热点路径动态剖析器的硬件实现", 《系统工程与电子技术》, vol. 31, no. 9, 30 September 2009 (2009-09-30), pages 2254 - 2259 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662823A (zh) * | 2012-03-09 | 2012-09-12 | 无锡华御信息技术有限公司 | 一种对程序和文件进行操作数统计的方法 |
CN109032609A (zh) * | 2012-03-30 | 2018-12-18 | 英特尔公司 | 用于实现页级自动二进制转换的硬件剖析机制 |
CN103207772A (zh) * | 2013-04-07 | 2013-07-17 | 北京航空航天大学 | 一种优化实时任务wcet的指令预取内容选取方法 |
CN103207772B (zh) * | 2013-04-07 | 2016-01-13 | 北京航空航天大学 | 一种优化实时任务wcet的指令预取内容选取方法 |
CN105224305A (zh) * | 2014-07-01 | 2016-01-06 | 华为技术有限公司 | 函数调用路径编解码方法、装置及系统 |
CN105224305B (zh) * | 2014-07-01 | 2018-09-28 | 华为技术有限公司 | 函数调用路径编解码方法、装置及系统 |
CN104199649A (zh) * | 2014-08-22 | 2014-12-10 | 东南大学 | 一种用于父子进程间交互信息的路径剖析方法 |
CN104199649B (zh) * | 2014-08-22 | 2017-04-05 | 东南大学 | 一种用于父子进程间交互信息的路径剖析方法 |
US10871976B2 (en) | 2015-12-02 | 2020-12-22 | Huawei Technologies Co, Ltd. | Method and apparatus for identifying hotspot intermediate code in language virtual machine |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841865B (zh) | 高性能缓存系统和方法 | |
US9292767B2 (en) | Decision tree computation in hardware utilizing a physically distinct integrated circuit with on-chip memory and a reordering of data to be grouped | |
CN101963907A (zh) | 一种计算机程序热点的动态剖析机制 | |
CN105701033B (zh) | 取决于模式而可动态配置的高速缓存存储器 | |
CN102306093B (zh) | 实现现代处理器间接转移预测的装置及方法 | |
US10146545B2 (en) | Translation address cache for a microprocessor | |
US8595744B2 (en) | Anticipatory helper thread based code execution | |
US10592430B2 (en) | Memory structure comprising scratchpad memory | |
CN103513957A (zh) | 高性能缓存系统和方法 | |
Sha et al. | Scalable store-load forwarding via store queue index prediction | |
CN105701031A (zh) | 取决于模式而可动态配置以选择分配至全部或是一个组的多模式组相联高速缓存存储器 | |
US20220035679A1 (en) | Hardware resource configuration for processing system | |
CN105701030A (zh) | 根据卷标比特的动态高速缓存置换路选择 | |
CN103207772B (zh) | 一种优化实时任务wcet的指令预取内容选取方法 | |
CN101763249A (zh) | 对非控制流指令减少分支检验 | |
CN104731719A (zh) | 一种缓存系统和方法 | |
CN103513958A (zh) | 高性能指令缓存系统和方法 | |
CN101604283B (zh) | 一种基于Linux内核页表替换的内存访问模型追踪方法 | |
US20140195771A1 (en) | Anticipatorily loading a page of memory | |
CN103678571A (zh) | 应用于单台多核处理器主机的多线程网络爬虫执行方法 | |
CN102110073A (zh) | 一种片上共享高速缓存的替换装置和方法以及相应处理器 | |
CN102789377B (zh) | 处理指令分组信息的方法和装置 | |
CN103176914A (zh) | 一种低缺失率、低缺失惩罚的缓存方法和装置 | |
US9092236B1 (en) | Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system | |
US20160092182A1 (en) | Methods and systems for optimizing execution of a program in a parallel processing environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110202 |