CN1352771A - 改进虚拟存储器系统存取性能的技术 - Google Patents

改进虚拟存储器系统存取性能的技术 Download PDF

Info

Publication number
CN1352771A
CN1352771A CN00805639.0A CN00805639A CN1352771A CN 1352771 A CN1352771 A CN 1352771A CN 00805639 A CN00805639 A CN 00805639A CN 1352771 A CN1352771 A CN 1352771A
Authority
CN
China
Prior art keywords
tlb
memory
page
address
processor
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
Application number
CN00805639.0A
Other languages
English (en)
Inventor
H·斯特拉科夫斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of CN1352771A publication Critical patent/CN1352771A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Abstract

根据本项发明,公开了减少存储器访问等待时间的若干方法和设备。当对翻译旁视缓冲器(110)做出一个新的表项时,新的TLB表项指向存储器(108)的一个相应的TLB页面。更新TLB(110)的同时,通过将TLB页面保存到一种TLB页面高速缓存(114),TLB页面移动到暂时接近处理器(102)。该TLB页面高速缓存(114)比主存储器(108)更加暂时接近主存储器(108)。

Description

改进虚拟存储器系统存取性能的技术 相关专利申请的交叉引用
本申请先于另一项专利申请,它是1999年1月28日提交的归档于35U.S.C.§119(e)的美国专利申请,编号为No.60/117,886(代理人档案号:SCHIP002+),其发明人Henry Stracovsky已过户为本发明的代理人,通过各种参考引用该发明在此也合并在一起了。
发明领域:
本发明一般涉及计算机系统。特别是,本发明涉及存储器管理系统,尤其是涉及一种减少处理器访问存储器页面时所花费等待时间的方法和设备,在使用虚拟存储器寻址的计算机存储系统中,该处理器使用一种翻译旁视缓冲器(translation look aside buffer)。
发明背景:
虚拟存储器系统允许非常大的存储器的寻址工作,即便是该系统的主存储器拥有一个较小的地址空间也不妨事。虚拟存储器系统提供这种能力是通过定义存储管理部件,特别是,页面或存储段,具有虚拟存储器地址和相应的物理存储器地址。一种特殊的虚拟存储器地址可能在主存储器或者在较慢的备用存储器,如磁盘空间之中。如果虚拟存储器地址映射数据的物理地址是在主存储器之中的话,那么信息就容易访问和使用。如果物理地址指出相应于虚拟地址的页面处于备用存储器中,那么该页面就传输或交换到数据可进行存取操作的主存储器中。传输操作通常需要使其它的信息从主存储器交换出去而回到备用存储器为新的信息腾出空间。这种传输通常是在作为硬件或软件的存储管理部件的控制下完成的。
为了提高虚拟存储器访问的速度,又包括了高速缓存,将最近用过的数据和指令保存起来。为得到所需的信息在访问主存储器之前,这些高速缓存首先接收访问。这些高速缓存可能是虚拟编址或物理编址。但是依照物理地址访问的高速缓存,在检查高速缓存和主存储器之前,必须要有一个虚拟访问到物理访问的翻译过程。
分页过程,亦即交换页面的过程,依赖于由存储器页面索引的数据的结构。这种数据结构包括根据所提供的虚拟地址将要访问的存储器的物理地址。这种数据结构包括通常采取由虚拟页面编号、页面表的大小、页面数、以及虚拟存储器空间所索引的页面表的形式存在的物理页面地址。页面表一般如此之大一致它们是保存在主存储器中,并且常常将它们自己再行分页。这就是说每一次存储器的访问操作是要得到物理地址的存储器访问一倍或更多倍数的时间,还需要第二次访问才得到数据。
用来使访问时间花费降低到最小的技术是如此保存最后一次所执行的翻译,如果当前的地址是指与最后的翻译相同的地址,那么就跳过分页过程。另外为了进一步节约时间,还可以利用高速缓存所使用的局部性原则。如果访问具有局部性,那么为访问而进行的地址翻译也必然具有局部性。将这些地址翻译保存在一个特殊的高速缓存之中,存储器访问很少会要求第二次访问再去翻译地址。这种特殊的地址翻译高速缓存称之为翻译旁视缓冲,或“TLB”。一个TLB条目如同一个高速缓存的条目,其中一个标签部分保留虚拟地址部分,而数据部分保留物理页的帧面号、保护字段、使用位、以及一个修正了的或脏的比特位。一个典型的TLB数据结构100的例子表示在图1之中。
许多不同的方法和技术可以用来提高访问虚拟存储器的速度。一种方法中,使用了较强的流水线存储器访问,而其中执行TLB访问比流水线提前一步。另一种途径是直接比较虚拟地址。这样的高速缓存称之为虚拟高速缓存。如果是一个高速缓存命中的情况,这能够消除TLB翻译的时间。但遗憾的是,它的一个缺点是过程非常耗时,不管地址的局部性质如何对每一个虚拟地址都必须执行操作。
应该注意关于TLB的其它的讨论,可以在David A. Patterson和John L.Hennessey合写的“计算机分层结构”一文中找到,此文见于A Qualitative Approach Second Edition,(Morgan KaufmannPublishing),Pages 439-457。
根据以上的观点,应该说事情是很显然的,在一个虚拟存储器环境中需要有各种方法和设备减少存储器访问中的等待时间。
发明概述:
根据本发明描述了在基于虚拟存储器的系统中一种减少存储器访问等待时间的方法。
根据发明的一个方面,公开了一种基于虚拟存储器中具有一个主存储器和一个高速缓冲存储器的系统中减少存储器访问等待时间的方法。作为一种方法,带有相关的虚拟地址的数据请求由处理器生成。紧接着,确定所请求的虚拟存储器地址是否在一种TLB中有一个相关的TLB条目。该TLB条目指向包含在TLB页面高速缓存中的一个TLB页面。当确定了所请求的虚拟存储器地址在TLB中确有一个相关的TLB条目,那么所请求的数据便从TLB页面高速缓存中取得,使得所取得的数据移动到暂时接近处理器的位置。
在一种优选实施方案中,TLB页面包括所请求的数据。
发明的另一个方面,公开了一种基于虚拟存储器的计算机系统。该系统包括适当安装的完成可执行指令的处理器,它与一个分层结构系统存储器相连接,以软件的形式保存多个可执行指令。系统存储器被组织成最高级别的系统存储部件比较低级别的系统存储部件更为暂时接近处理器。系统存储器包括用以保存多个可执行指令的主要部分,与主存储器连接的高速缓存用以保存一组最近使用过的可执行指令,其中高速缓存比主存储器来说暂时接近处理器,而一个TLB页面高速缓存用来保存被一个TLB条目所指向的TLB页面,而其中TLB页面高速缓存暂时处于高速缓存和主存储器之间。
附图简述:
本发明是通过例子来说明的而不是通过限制来说明的,在所附的插图中,像参考数字是指相同的元素,其中:
图1表示一种传统排列的TLB数据结构。
图2表示一种基于虚拟存储器的计算机系统有一个与本发明一种实施方案相一致的分布式TLB寄存器。
图3表示一种与本发明一种实施方案相一致的分层存储器排列。
图4表示一种计算机系统,其中与本发明一种实施方案相一致,一种TLB页面分布于DRAM存储设备阵列之中。
图5表示根据图4所示计算机系统而构成的一种举例性的地址映象模式。
图6表示一种计算机系统其中示于图4的DRAM存储设备阵列包括一种快速的静态缓冲器。
图7表示一种计算机系统,与本发明一种实施方案相一致,在通过高速互连与存储器阵列连接的存储控制器中有一种TLB缓冲器。
图8是一张流程图详细地说明在一种基于虚拟存储器的系统中,减少存储器访问中等待时间的过程。
优选实施方案详述:
现在将详细介绍本发明的优选方案。附图中用图解法对优选方案的一个例子进行了说明。当结合优选方案叙述本发明时,应认识到我们并非有意地将本发明局限于一种优选方案。恰恰相反,我们试图涵盖可能包括本发明要旨和范围的,正如所附权利要求中所确定的,各个备选方案、修正方案、和等价方案。
为了在一个使用虚拟存储器寻址方案的计算系统中缩短存储器等待时间,我们使用了一种翻译旁视缓冲器,或称之为TLB,以便识别最近一组虚拟存储器到物理存储器的转换。在所述实施方案中,计算机系统包括一个与主存储器和高速缓冲存储器联结的(有一个相联结TLB的)处理器。典型的情况是,高速缓存用来存储最近用过的存储器地址和先前从主存储器(例如动态随机存取存储器,DRAM)取出的有关数据。通过把最近由虚拟存储器到物理存储器的翻译保存在TLB(通常采取一种查阅表或LUT的形式),虚拟存储器地址翻译成物理存储器地址所需要的时间,减少成简单的查表操作所用的时间,因为这些翻译已经存储在TLB之中了。
由于任一已知时刻处理器不能访问多于相关的TLB所描述的物理存储器,任何一个导致失败(例如未发现包括在处理器的TLB)的存储页面便被移至暂时接近处理器与实际更新TLB并行的较快的存储器(例如一个L1或L2高速缓存)之中。应该注意,更新TLB的意思是指,由于TLB是频繁使用页面的一种高速缓存,已确定不被任何数目和任何类型算法(例如某种随机算法)频繁使用的任何页面,便从TLB中被清除或清洗掉了,腾出位置来为那些确定出不存在于TLB中的虚拟存储器翻译成物理存储器的存贮器页面使用。
当处理器的TLB受到追踪时,便做出一个复本并保存在有关的存储控制器中。在一个特殊的TLB受到替换的情况下,存储控制器初始化暂时接近处理器的根据新的TLB指向存储器分级体系某存储段的有关页面(或其一部分)。在此临时接近的意思,是指该特殊存储器页面或其一部分的存储器读写等待时间得以缩短,改进了整体存储器访问时间。在一些实施中,新的TLB所指向的整个存储器页面(或块)移到临时接近处理器的地方,而在另一些实施中,仅仅移动对应于引起TLB本身改变的一小部分地址的内容。转移到接近处理器的存储器分级体系片断的存储器页面的大小在很大程度上取决于各个分级的存储段之间互连的带宽。
广义地讲,如图2所示,本发明可以用计算机系统100来描述,该计算机系统有一个通过系统总线106与存储控制器104连接的处理器102,而系统总线106经适当得配置可访问分级组织系统存储器108。在所述实施方案中,分级组织系统存储器108的各个不同部分可取许多中形式,诸如一个DRAM、SDRAM、SLDRAM、EDO、FPM、RDRAM、等等。在所述实施方案中,系统总线106包括一种单向地址总线106-1,用以将处理器102所产生的存储器地址请求传递给存储控制器104。系统总线106还包括一种单向命令总线106-2,与地址总线106-1一起,传送与存储器地址有关的命令。例如,当处理器102需要一条可执行指令时,处理器对命令总线106-2输出一条读请求(称为一条系统命令),基本上同时对地址总线106-1输出一条相应的存储器地址的请求(称之为系统地址)。
在所述实施方案中,计算机系统100是一个基于虚拟存储器的计算机系统,如是存储器地址请求实际上是必须翻译成物理存储器的虚拟存储器地址请求。这样,在相应于系统存储器108存储器空间的适当存储器地址可以被访问。在计算机系统100中,处理器102生成的虚拟地址由硬件和软件结合将其翻译成可访问物理主存储器的物理地址。一组虚拟地址可以动态地分配给一种特殊的存储页面,以至虚拟存储器需要一种有时称之为页面表的数据结构,它将虚拟地址翻译成物理地址。为了减少地址翻译时间,计算机系统100使用一种专用于地址翻译的联合高速缓存,前面叙述中称之为翻译旁视缓冲区(LTB)110。
但是应该注意,TLB 110实际上可以设置在系统设计者所确定的对特殊计算机系统最为合适的任何地方。在所述实施方案中,TLB 110采取查阅表(LUT)的形式,用来识别最近的虚拟存储器地址向物理存储器地址的翻译。通过将最近的虚拟存储器向物理存储器的翻译存储在TLB 110中,那么将虚拟存储器地址翻译成物理存储器地址所需要的时间对于保存在TLB 110中的翻译来说,减少成一种简单的查表操作,比虚拟存储器翻译成物理存储器的翻译操作快得多。
在本发明的一种实施中,一种采取TLB寄存器110拷贝形式的控制器TLB 112包含在控制器104之中,用来指向相应于TLB 110中一个新的条目的存储页面(通常位于级别较低的存储器)。在某些实施中,新TLB的条目指向的整个存贮页面(或块)移动到暂时接近处理器的一个TLB页面高速缓存114,暂时处于接近处理器102的位置。应该注意在另一些实施中,仅有相应于引起TLB条目改变自己的一小部分地址被移动了。转移到接近处理器的存储器分级体系片断的存储页面大小很大程度取决于系统存储器108不同分层结构成分之间的互连带宽。应该注意在这种情况下,数据转移的规模是由TLB页高速缓存114和主存之间的互连带宽确定的。在这些情况下,存储器体系结构,例如RAMBUSTM和/或者SLDRAM(同步链接动态RAM)比传统高速页面模式存储器更加合适。
应该注意,实际TLB追踪机制可以采取执行许多次的形式,当然这要取决于TLB本身位处何方。在TLB位于处理器本身之中的情况,TLB是直接可访问的,而处理器能够对存储器发出通知标志,根据TLB失误地址提取所需要的数据。一些案例中通知标志可以由处理器上的专用控制插脚做出,而另一些案例中由处理器总线协议的某种变体完成。在一种实施方案中,这种标志指出发生了一次TLB失误,以及TLB的哪一部分已经失效。这工作可以由专用的总线引线完成,因为比如Pentium IITM处理器只有6个索引插脚和一个控制插脚。在一些案例中,处理器可以对处理器总线发布一种特殊的信息周期。这种信息周期可以携带TLB条目索引以及新的物理地址,所以为了本项发明,控制器TLB 112对于处理器TLB 110而言将总是最新的。
对控制机制位于存储控制器本身之内的情况,存储控制器必须通过观察通往譬如二级高速缓存的信息,或一般处于主存储器中的页面表中的信息,来追踪TLB的内容。在二级高速缓存受到监控的情况下,那么处理器必须允许访问处于存储控制器内部的一种窥探线路。但是如果二级高速缓存不能够窥探以及(或者)处理器不能指出一个TLB失误的标志,那么当访问失误地址的物理地址发布后,存储控制器TLB必须更新。
图3表示系统存储器108一种特殊的实施办法,与本发明的一种实施方案一致。计算机结构设计和编程领域的技术人员都很清楚,计算机系统,如计算机系统100,一般都用多级层次结构的存储器系统。在这种分级法中,较快的、昂贵的、容量有限的存储器(即寄存器202)处于分层结构的最高级,下来逐渐进入较慢的、价格较低的、容量较大的处于分层结构的最低级的存储器。典型的存储器分层结构包括一个小而快的称之为高速缓存204,它要么是物理上集成于处理器102之中(通常是一块集成电路),要么是物理上安装得靠近处理器102以便提高速度(也就是暂时接近),主要是由于减少了互连等待时间。应该注意,可以有几种不同级别的高速缓存,诸如L1、L2、等等,每一级别可以有不同大小的容量和访问时间。具有代表性的高速缓存204能够保存的量极为16-512千字节而访问时间的量级是3-30微妙,能够存储处理器102最近使用过的数据组,而其它的地方称之为工作数据组。
当数据读出或写入主存储器206时,一个拷贝也被保存在高速缓存204,并一起保存了相关的主存储器的地址。高速缓存204监视后来读取数据的地址,以察看所要求的数据是否已在高速缓存之中了。如果是(高速缓存命中),那么立即返回并中止(或不开始)主存储器读取的操作。如果数据未被保存到高速缓存(高速缓存未中),那么从主存储器取数并将其也保存到高速缓存中。
高速缓存204是使用比主存储器206更快的存储芯片做成的,所以高速缓存命中比正常的存储器访问所用的时间少得多。高速缓存可能与处理器处于同一集成线路以便进一步减少访问时间。这种情况下,这便是常常所说的一级高速缓存,可能在CPU芯片之外有一个较大的而较慢的二级高速缓存。
应该注意高速缓存最重要的特征是它的命中率——命中次数在所有存储器访问次数中所占的分数,高速缓存性能好则命中率高。它又取决于高速缓存的设计,但主要是相对主存储器它的容量的大小。容量的大小受到高速存储器芯片价格的限制,而且更重要的是受到实际尺寸的限制。
命中率还决定于运行的特殊程序的访问模式(正被读写的地址的顺序)。高速缓存依赖于大多数程序访问模式的两种性质:时间局部性—如果某种内容被访问了一次,那么它可能很快再一次受到访问;空间局部性—如果一个存储单元受到访问那么附近若干存储单元也可能受到访问。为了利用空间局部性,高速缓存常常是同时对几个字进行操作,称之为一个“超高速缓冲存储器线”或“超高速缓存块”。主存储器的读和写全是超高速缓冲存储器线(仅对可以高速缓存的对象操作)。
当处理器102要向主存储器206写入时,数据首先写到高速缓存204,假定处理器会很快又将其读出。这里采用了各种不同的策略。在一种直写高速缓存技术中,在数据高速缓存的同时,也将其写入主存储器。在一种反写高速缓存技术中,写入缓冲器的数据仅当其必须重写时才复制到主存储器内。
如果所有的访问都是些操作,那么使用直写技术时,每一个高速缓存写都将需要一个主存储器写,这样使得系统的速度下降到主存储器的速度。但是统计上讲,大多数访问属于读出操作,而且它们大多数通过使用高速缓存都有满意的结果。直写技术比起反写技术较为简单,因为对于前者一个要被替换的对象在高速缓存中仅需重写,因为它将在主存储器中有所拷贝;而反写要求高速缓存初始化主存储器中对一个清洗对象的写操作,随后(对一个处理器读)还有一个主存储器读。但是反写更为有效,因为一个对象可能在高速缓存中写入多次而没有主存储器的访问操作。当高速缓存占满了而又需要贮藏另一个数据线时,则选出一个高速缓存对象写回主存储器或称“被冲洗掉”了。然后新的数据线放入它的位置。哪一个对象被选中冲洗,由一个“置换算法”确定。
在一个特定的实施方案中,系统存储器108包括TLB页面高速缓存114,用来保存被指定是TLB 110或者TLB 112中一个新项目的存储页面。
在所描述的实施方案中,在一个最低的级别上,有一个大容量的外部存储器装置210,诸如一个磁带驱动器,具有相对无限的存储量,而平均访问时间(即等待时间)为数秒到数分不等。紧接最低的级别,是一个磁盘存储器(或任意等价媒体)208,具代表性的可以存储若干千兆数据,而访问时间的量级大约为10毫秒。而紧靠最高的级别是一个主存储器206(典型的形式是一个DRAM类型的存储设备),可以存储量级为若干兆的数据,代表性的访问时间为大约50微秒到大约150微秒。在本发明的一种实施方案中,一种TLB页面高速缓存114分层地处于主存储器206和能减少主存储器访问次数的超高速缓存204之间。通过保存由翻译旁视缓冲器110指定的存储页面,例如,(在这种情况下它位于处理器102之中),主存储器访问的次数相伴随地减少了,因为每次访问都有一个TLB“命中”(即,所需要的存储页面在TLB110中有一个有关的条目),所要求的存储页面只需要从TLB页面高速缓存114而不是主存储器206进行检索,从而相对于没有TLB页面高速缓存114时进行检索来说,减少了总的系统存储访问等待时间。应该注意在下面的讨论中,相应于一个特定的TLB条目的存储器页面称之为一个TLB页面。
图4说明一个计算机系统400,与本发明的一个实施方案一致它有一个驻留在芯片阵列中的TLB页面。在所描述的实施方案中,系统存储器108包括一个芯片阵列402,形成多数DRAM型存储设备。
操作中,例如若要读取一个特殊的存储单元,处理器102产生一个地址请求,相应于处在存储阵列402中的该存储单元。由于形成阵列402的DRAM 402-1到402-n中每一个都将它们的内容保留在一个逻辑矩形存储单元404之中,读取譬如存储在存储单元404-1中的数据需要首先使用一个由存储控制器104提供的称之为“行地址选择”(或“行地址选通”,“/RAS”)信号将行406激活。讲明确点就是,RAS是送给一个DRAM的一种信号,告诉它一个有关的地址是行地址。
典型的情况是,/RAS信号是以处理器102提供的地址请求中最重要的部分为根据的。当/RAS信号收到并正确解码,一段时间后406整行数据转移到一个读出放大器408,这段时间是所选行要达到平衡所要求的,或称之为恢复时间。在大多数传统的DRAM中,从RAS到读出放大器的转换一般需时是30微秒的量级。
一旦所选行已经平衡了而所选行的数据被转移的读出放大器408了,存储控制器104对地址请求进一步解码,形成称之为“列地址选择”(“/CAS”)信号,当传送到DRAM时,告知一个有关的地址是列地址。该/CAS信号导致列选择电路(未表示出来)选择存储阵列中特殊的存储单元(本例中404-1),现在处于包含所要求数据的读出放大器中。然后单元404-1的内容从读出放大器408送出到数据总线108,那里处理器或别的要求该数据的设备便能读取这些数据了。应该注意,大多数DRAM中典型的CAS是30微秒的量级。
所以,将数据从存储阵列404-1移动到读出放大器408,从而数据移动得暂时接近处理器102。这是可以计量确定的,因为CAS操作是将所需数据移动到总线108,而一个RAS操作是CAS操作的逻辑和物理的前趋。
由于物理上驻留在存储阵列402的TLB页面的部分,对应于在行访问作用下可以带进读出放大器408的一列,因此TLB页面被移动得暂时接近处理器102。所以从系统性能的观点出发一个有利的做法是,物理上和/或逻辑上将几个读出放大器进行并置,以便使得整个TLB页面与常驻读出放大器之中的一个TLB条目联系起来。这样一来,由于总的访问时间短,所以对该TLB页面的任何访问都将从中受益。
一种这样的安排示于图5,对四个DRAM存储芯片组成的阵列给出了一种地址映射模式,与本发明的一种实施方案相一致。
在另一种实施方案中,如图6所示,组成存储器阵列的存储器芯片中除了传统的DRAM存储阵列之外,还包括一个快速静态缓冲器602。这种存储器芯片可通过日本NEC公司生产的DRAM“虚拟通道”系列举例说明。这种新的体系结构,结合配置高速寄存器的通道缓冲器,可以实现变通的和高效的数据传输。虚拟通道存储器用于大容量的DRAM,支持多媒体PC机、工作站、和互联网服务器。这种新的存储磁心技术的关键特征是在存储器中加入了配置有高速寄存器的通道缓冲器。虚拟通道DRAM从存储器前端处理以外对这些通道缓冲器执行读/写操作。换句话说,诸如数据传输等内部操作在存储单元和通道缓冲器之间接替,而存储单元的预先加载和刷新工作由这些前端处理分开执行。结果,台后处理可以和台前处理并行。通过创建一个支持并行处理的结构体系,虚拟通道DRAM能保持一个高的平均数据传输速度,并将固有的存储器性能开拓到最高可能的程度,部分的原因是它能访问一个独立的通道并能以自身的资源访问存储器阵列。如果配置适当,诸如当各种连接的虚拟通道进行(物理的或者逻辑的)并置从而形成TLB大小的页面,那么这就可以导致较低的系统开销、较少的等待时间、高吞吐量、以及增强的总线效率。
图7说明一个具有高速接口的系统700,适合于高速TLB页面传输,与本发明的一个实施方案一致。系统700可以用于很宽的领域,诸如计算机联网、数据联网、测试装备、视频处理、数字处理、以及任何其它的需要体现使用高速存储设备优越性的应用。存储器系统RDRAM 702(RAMBUS DRAM)可以用来执行许多不同的存储功能,例如,可保存与处理器102联合工作的可执行指令。该RDRAM 702还可能用来保存处理器102在不同应用中所使用的数据,如数据处理、数字图像处理程序、等等,这些地方极需快速地存取大量的数据。应该注意,系统700仅是一个举例,本发明的真正范围和精神将在后面的权利要求中有所说明。
由于性能上的考虑,要求进入TLB页面高速缓存114的传输率尽可能得高。由于本技术领域众所周知,DRAM 702-1直到702-4的固有并行性支持较高的传输率,因此DRAM 702-1直到702-4提供一个并置的TLB页面到一个TLB页面高速缓存703,排列成缓冲器704-1直到704-4。但是随着诸如RAMBUS型通道等高速互连的出现,TLB页面高速缓存114的布局可以扩充,以便包括能够通过高速总线708与DRAM702连接的任何存储单元。
图8是一幅详细介绍过程800的流程图,依照本发明的一个实施方案它是将一个存储页面移动得暂时接近处理器的过程。在802处,处理器产生一个数据请求,并带有一个相关的虚拟存储器地址。而804确定所请求的存储页面是否在TLB中有一个相关的TLB条目。如果确定所请求的存储页面没有一个相关的TLB条目,那么通过使用806的页面表,虚拟存储器地址被翻译成物理存储器地址。同时,在808处用相应与虚拟存储器到物理存储器翻译的新的TLB条目更新TLB的内容。而810是将相应与新的TLB条目的一个TLB页面移动,使之暂时地接近处理器。在一种实施方案中,TLB页面被移动到一个局部的TLB页面高速缓存处,分层体系上它是处于主存储器和高速缓存之间。
回到804,如果确定所请求的存储页面在TLB中不存在相关的TLB条目,那么在812所请求的存储页面便从TLB页面高速缓存重新取回。不论哪种情况,在检索页面上的所需要的数据元素都被移动到处理器进行处理。
虽然为了清晰地理解问题,上述发明已经叙述得比较详细,但是在所附权利要求的范围内还要进行某些改动和改进。
而且,需要指出本发明的过程和设备两者都有可供选择的实施办法。因此现在这些实施方案认为是举例性的而不是限定性的,而本发明不限于这里所给出的详细说明,而是可能会在所附权利要求的范围和等价方案之内,进行改进的。

Claims (10)

1.在基于虚拟存储器具有一个主存储器和一个高速缓冲存储器的系统中,一种减少存储器访问等待时间的方法,包括:
由处理器产生具有相关的虚拟存储器地址的数据请求;
确定所请求的虚拟存储器地址是否在TLB中有一个相关的TLB条目,而TLB条目指向包含在TLB页面高速缓存中的一个TLB页面而且其中TLB页面包括所请求的数据;以及
当确定所请求的虚拟存储器地址在TLB中确有一个相关的TLB条目,而所要检索的数据被移动到暂时接近处理器,那么从TLB页面高速缓存中取回所要求的数据。
2.如权利要求1的方法,还包括:
如果确定所请求的存储器页面没有相关的TLB条目,那么就将虚拟存储器地址翻译成物理存储器地址;
用相应于虚拟存储器到物理存储器的翻译的新的TLB条目更新TLB;以及
更新的同时或尽可能快地,将相应于暂时接近处理器新的TLB条目的TLB页面移走。
3.如权利要求2的方法,其中的翻译是使用一种页面表进行的。
4.如权利要求1的方法,其中TLB页面高速缓存在分层体系上是处于主存储器和高速缓存之间。
5.如权利要求4的方法,其中当新的TLB页面与一个TLB未中事件相关时,该新的TLB页面被移动到TLB页面高速缓存之中。
6.一种基于虚拟存储器的计算机系统,包括:
适合于执行可执行指令的处理器;
连接处理器的分级的系统存储器,用于保存软件形式的多条可执行指令,其中系统存储器的安排是这样的,一个较高层次的系统存储器部件比一个较低层次的系统存储器部件更暂时接近处理器,而其中系统存储器包括,
主存储器,适合于保存多条可执行指令的基本部分,
连接主存储器的高速缓存适合于保存一组最近用过的可执行指令,其中高速缓存比主存储器更加暂时接近处理器,
TLB页面高速缓存,保存指向一个TLB条目的TLB页面,其中TLB页面高速缓存暂时地位于高速缓存和主存储器之间。
7.如权利要求6的系统,还包括存储控制器将处理器和系统存储器连接起来,以便控制系统存储器和处理器之间的通信量。
8.如权利要求7的系统,其中包括位于处理器中的翻译旁视缓冲器(TLB),用来保存一组最近将虚拟地址翻译成物理地址的数据,其中该特殊的虚拟地址翻译成物理地址的数据取TLB条目的形式。
9.如权利要求7的系统,其中包括位于存储控制器中的翻译旁视缓冲器(TLB),用来保存一组最近将虚拟地址翻译成物理地址的数据,其中该特殊的虚拟地址翻译成物理地址的数据取TLB条目的形式。
10.如权利要求7的系统,其中TLB页面基本上与TLB页面高速缓存的容量相同。
CN00805639.0A 1999-01-28 2000-01-27 改进虚拟存储器系统存取性能的技术 Pending CN1352771A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11788699P 1999-01-28 1999-01-28
US60/117,886 1999-01-28

Publications (1)

Publication Number Publication Date
CN1352771A true CN1352771A (zh) 2002-06-05

Family

ID=22375347

Family Applications (3)

Application Number Title Priority Date Filing Date
CN00805639.0A Pending CN1352771A (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统存取性能的技术
CNB008056056A Expired - Fee Related CN1158607C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问等待时间的方法和系统
CNB00805780XA Expired - Lifetime CN1160631C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问的技术

Family Applications After (2)

Application Number Title Priority Date Filing Date
CNB008056056A Expired - Fee Related CN1158607C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问等待时间的方法和系统
CNB00805780XA Expired - Lifetime CN1160631C (zh) 1999-01-28 2000-01-27 改进虚拟存储器系统中存储器访问的技术

Country Status (7)

Country Link
US (1) US6442666B1 (zh)
EP (3) EP1196850B1 (zh)
JP (3) JP2002536716A (zh)
KR (3) KR20010101694A (zh)
CN (3) CN1352771A (zh)
AU (3) AU3352800A (zh)
WO (2) WO2000045271A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1303535C (zh) * 2002-10-10 2007-03-07 国际商业机器公司 用于虚拟存储器的管理的方法和分析高速缓存
CN100357915C (zh) * 2002-09-30 2007-12-26 先进微装置公司 在具有高速缓存的数据处理系统内减少耗用时间的方法与装置
CN100414519C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 一种从虚拟地址向物理地址变换的方法及其装置
CN100414518C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 改进的虚拟地址变换方法及其装置
CN102110282A (zh) * 2011-03-14 2011-06-29 北京播思软件技术有限公司 一种嵌入式设备的屏幕绘图方法及系统
CN101331466B (zh) * 2005-10-20 2011-12-07 高通股份有限公司 同经高速缓存的存储器数据一起高速缓存存储器属性指示符

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674441B1 (en) * 2000-07-26 2004-01-06 Ati International, Srl Method and apparatus for improving performance of an accelerated graphics port (AGP) device
SE0003398D0 (sv) * 2000-09-22 2000-09-22 Ericsson Telefon Ab L M Optimization of a pipelined processor system
JP4457184B2 (ja) * 2001-02-13 2010-04-28 ネットアップ,インコーポレイテッド ストレージシステムにおけるフェイルオーバー処理
US7203730B1 (en) 2001-02-13 2007-04-10 Network Appliance, Inc. Method and apparatus for identifying storage devices
US6622211B2 (en) * 2001-08-15 2003-09-16 Ip-First, L.L.C. Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
US7032136B1 (en) 2001-09-07 2006-04-18 Network Appliance, Inc. Auto regression test for network-based storage virtualization system
US7472231B1 (en) 2001-09-07 2008-12-30 Netapp, Inc. Storage area network data cache
US7112884B2 (en) * 2002-08-23 2006-09-26 Ati Technologies, Inc. Integrated circuit having memory disposed thereon and method of making thereof
US6986016B2 (en) * 2002-09-30 2006-01-10 International Business Machines Corporation Contiguous physical memory allocation
US7752294B2 (en) * 2002-10-28 2010-07-06 Netapp, Inc. Method and system for dynamic expansion and contraction of nodes in a storage area network
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
CN1311366C (zh) * 2003-05-22 2007-04-18 群联电子股份有限公司 快闪存储器的平行双轨使用方法
JP2005128963A (ja) * 2003-10-27 2005-05-19 Toshiba Information Systems (Japan) Corp 記憶制御装置及びdma転送が可能な制御システム
US8417913B2 (en) * 2003-11-13 2013-04-09 International Business Machines Corporation Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages
US7093100B2 (en) * 2003-11-14 2006-08-15 International Business Machines Corporation Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes
US7171514B2 (en) * 2003-11-20 2007-01-30 International Business Machines Corporation Apparatus and method to control access to logical volumes using parallel access volumes
US7117337B2 (en) * 2004-02-19 2006-10-03 International Business Machines Corporation Apparatus and method for providing pre-translated segments for page translations in segmented operating systems
WO2006110485A2 (en) * 2005-04-07 2006-10-19 Insightful Corporation Method and system for handling large data sets in a statistical language
DE602005023273D1 (de) 2005-04-29 2010-10-14 St Microelectronics Srl Ein verbessertes Cache-Speicher System
US7363463B2 (en) * 2005-05-13 2008-04-22 Microsoft Corporation Method and system for caching address translations from multiple address spaces in virtual machines
US10013371B2 (en) 2005-06-24 2018-07-03 Google Llc Configurable memory circuit system and method
US8909946B2 (en) 2005-11-15 2014-12-09 Microsoft Corporation Efficient power management of a system with virtual machines
WO2007073624A1 (en) * 2005-12-29 2007-07-05 Intel Corporation Virtual translation lookaside buffer
CN100462941C (zh) * 2006-01-26 2009-02-18 深圳艾科创新微电子有限公司 一种实现可配置risc cpu中的存储器空间的方法
US8615643B2 (en) * 2006-12-05 2013-12-24 Microsoft Corporation Operational efficiency of virtual TLBs
US8694712B2 (en) * 2006-12-05 2014-04-08 Microsoft Corporation Reduction of operational costs of virtual TLBs
US7788464B2 (en) * 2006-12-22 2010-08-31 Microsoft Corporation Scalability of virtual TLBs for multi-processor virtual machines
US8185716B2 (en) * 2007-10-22 2012-05-22 Qimonda Ag Memory system and method for using a memory system with virtual address translation capabilities
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
CN103116556B (zh) * 2013-03-11 2015-05-06 无锡江南计算技术研究所 内存静态划分虚拟化方法
KR101821633B1 (ko) 2013-03-14 2018-03-08 삼성전자주식회사 메모리 시스템
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
US20160103766A1 (en) * 2013-07-01 2016-04-14 Hewlett-Packard Development Company, L.P. Lookup of a data structure containing a mapping between a virtual address space and a physical address space
JP6088951B2 (ja) * 2013-09-20 2017-03-01 株式会社東芝 キャッシュメモリシステムおよびプロセッサシステム
WO2016122585A1 (en) * 2015-01-30 2016-08-04 Hewlett Packard Enterprise Development Lp Modifying characteristics of a memory segment
CN105373456B (zh) * 2015-11-19 2018-06-29 英业达科技有限公司 降低缓存命中率的内存测试方法
US10515671B2 (en) 2016-09-22 2019-12-24 Advanced Micro Devices, Inc. Method and apparatus for reducing memory access latency
EP3532933B1 (en) 2016-10-31 2022-03-02 Rambus Inc. Hybrid memory module
CN111433749B (zh) 2017-10-12 2023-12-08 拉姆伯斯公司 具有dram高速缓存的非易失性物理存储器
KR20200123912A (ko) * 2019-04-23 2020-11-02 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4682281A (en) * 1983-08-30 1987-07-21 Amdahl Corporation Data storage unit employing translation lookaside buffer pointer
EP0471462B1 (en) * 1990-08-06 1998-04-15 NCR International, Inc. Computer memory operating method and system
US5412787A (en) * 1990-11-21 1995-05-02 Hewlett-Packard Company Two-level TLB having the second level TLB implemented in cache tag RAMs
US5630097A (en) * 1991-06-17 1997-05-13 Digital Equipment Corporation Enhanced cache operation with remapping of pages for optimizing data relocation from addresses causing cache misses
GB9205551D0 (en) * 1992-03-13 1992-04-29 Inmos Ltd Cache memory
US5574877A (en) * 1992-09-25 1996-11-12 Silicon Graphics, Inc. TLB with two physical pages per virtual tag
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
US5555395A (en) * 1993-05-28 1996-09-10 Dell U.S.A. L.P. System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table
JP3135795B2 (ja) * 1994-09-22 2001-02-19 東芝マイクロエレクトロニクス株式会社 ダイナミック型メモリ
US6167486A (en) * 1996-11-18 2000-12-26 Nec Electronics, Inc. Parallel access virtual channel memory system with cacheable channels
US5933593A (en) * 1997-01-22 1999-08-03 Oracle Corporation Method for writing modified data from a main memory of a computer back to a database
US5996055A (en) 1997-11-26 1999-11-30 Digital Equipment Corporation Method for reclaiming physical pages of memory while maintaining an even distribution of cache page addresses within an address space

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100357915C (zh) * 2002-09-30 2007-12-26 先进微装置公司 在具有高速缓存的数据处理系统内减少耗用时间的方法与装置
CN1303535C (zh) * 2002-10-10 2007-03-07 国际商业机器公司 用于虚拟存储器的管理的方法和分析高速缓存
CN100414519C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 一种从虚拟地址向物理地址变换的方法及其装置
CN100414518C (zh) * 2004-11-24 2008-08-27 中国科学院计算技术研究所 改进的虚拟地址变换方法及其装置
CN101331466B (zh) * 2005-10-20 2011-12-07 高通股份有限公司 同经高速缓存的存储器数据一起高速缓存存储器属性指示符
CN102110282A (zh) * 2011-03-14 2011-06-29 北京播思软件技术有限公司 一种嵌入式设备的屏幕绘图方法及系统

Also Published As

Publication number Publication date
WO2000045271A9 (en) 2001-10-04
KR20010101695A (ko) 2001-11-14
CN1352772A (zh) 2002-06-05
JP2002536717A (ja) 2002-10-29
AU3693900A (en) 2000-08-18
EP1181644A4 (en) 2004-05-19
US6442666B1 (en) 2002-08-27
JP2002536716A (ja) 2002-10-29
AU3693800A (en) 2000-08-18
EP1181644A1 (en) 2002-02-27
WO2000045270A2 (en) 2000-08-03
AU3352800A (en) 2000-08-18
CN1347526A (zh) 2002-05-01
EP1196850A1 (en) 2002-04-17
EP1157335A4 (en) 2004-05-26
CN1158607C (zh) 2004-07-21
CN1160631C (zh) 2004-08-04
EP1196850B1 (en) 2016-08-24
WO2000045267A1 (en) 2000-08-03
WO2000045270A8 (en) 2001-03-15
EP1196850A4 (en) 2004-05-26
KR20010101693A (ko) 2001-11-14
WO2000045271A1 (en) 2000-08-03
EP1157335A1 (en) 2001-11-28
JP2002536715A (ja) 2002-10-29
KR20010101694A (ko) 2001-11-14

Similar Documents

Publication Publication Date Title
CN1352771A (zh) 改进虚拟存储器系统存取性能的技术
US7558920B2 (en) Apparatus and method for partitioning a shared cache of a chip multi-processor
US7200713B2 (en) Method of implementing off-chip cache memory in dual-use SRAM memory for network processors
EP0729102B1 (en) Cachability attributes for virtual addresses in virtually and physically indexed caches
US7711901B2 (en) Method, system, and apparatus for an hierarchical cache line replacement
KR100978156B1 (ko) 스누프 필터에서의 실효를 감소시키기 위한 라인 스와핑 스킴을 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능 기록 매체
US6782453B2 (en) Storing data in memory
US6578111B1 (en) Cache memory system and method for managing streaming-data
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
JP3449487B2 (ja) 変換索引緩衝機構
US5897651A (en) Information handling system including a direct access set associative cache and method for accessing same
US7702875B1 (en) System and method for memory compression
JP2009512933A (ja) アクセス性の高いストア帯域幅を備えたキャッシュ
CN108694133A (zh) 用于即时高速缓存关联性的装置、方法和系统
US6598124B1 (en) System and method for identifying streaming-data
Otozi et al. Virtual and Cache Memory: Implications for Enhanced Performance of the Computer System
EP0694844A1 (en) Reduced memory pin addressing for cache and main memory
Pendse et al. Investigation of impact of victim cache and victim tracer on a fully associative disk cache
CN117785737A (zh) 基于链表结构并支持动态分区粒度访问的末级高速缓存
CN117851291A (zh) 内存访问系统、电子组件及电子设备
WO2000045270A1 (en) Techniques for improving memory access in a virtual memory system
EP0652520A1 (en) Cache control system for managing validity status of data stored in a cache memory

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned