CN1391167A - 将置换路信息整合于目录的关联高速缓存 - Google Patents
将置换路信息整合于目录的关联高速缓存 Download PDFInfo
- Publication number
- CN1391167A CN1391167A CN02125159A CN02125159A CN1391167A CN 1391167 A CN1391167 A CN 1391167A CN 02125159 A CN02125159 A CN 02125159A CN 02125159 A CN02125159 A CN 02125159A CN 1391167 A CN1391167 A CN 1391167A
- Authority
- CN
- China
- Prior art keywords
- road
- row
- line taking
- lru
- fast line
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种具有一整合式标志与LRU数组的关联高速缓存,该数组以路为单位储存准LRU信息,如此即不需用一单独的LRU数组,以路为单位来存放准LRU信息。该整合式数组的每一路随着标志储存了已译码的准LRU信息位。一译码器从被选取列的所有路中读取已译码的位,并将其编码成标准的准LRU形式。接着控制逻辑产生新的已译码准LRU位,并用其更新被选取列的置换路部分。因此,控制逻辑仅个别地更新与置换路的标志同时产生的置换路的译码位,而不需更新该列中非置换路的已译码位。
Description
技术领域
[0001]本发明涉及微处理器中的关联高速缓存的领域,尤指在一关联高速缓存中,快取线置换算法的信息的储存与产生。
背景技术
[0002]在计算系统中,记忆储存(memory storage)一般皆包括一具有不同记忆储存装置类型的层次(hierarchy)。于该体系中,不同层次的记忆储存具有不同的特征,特别是容量(capacity)及数据存取时间(data accesstime)。在该内存体系中,一个较低的层次表示其较接近于系统的处理器。最远离处理器的存储装置通常拥有最大容量,并且速度最慢。常见的例子有电子机械(electro-mechanical)装置,诸如磁带(magnetic tape)、光盘(compactdisc)以及硬盘储存装置,通称为大容量储存装置,速度虽相对较慢,但可储存相当大量的数据。
[0003]于该体系中再下一层的,一般为包括固态(solid-state)存储装置的系统内存,像是动态随机存取内存(dynamic random access memory,简称DRAM),其存取时间虽是大容量储存装置的十的数次方之一,但其容量亦是如此。
[0004]在该内存系中最接近处理器的阶层,处理器的缓存器不算,通常可发现一个或多个阶层的高速缓存。高速缓存有着极快的存取时间,一个常见例子是静态随机存取内存(static random access memory,简称SRAM)。在许多情况下,一或多个层次的高速缓存与处理器被整合在同一个集成电路上。新型的微处理器特别是如此。高速缓存储存了或“快取”了处理器最常从系统内存存取的数据,以便在处理器提出要求时,能提供更快速的数据存取。
[0005]高速缓存一般皆以快取线(cache line)为单位来储存数据。常用的快取线大小为32个字节。由于高速缓存小于系统内存,所以当数据从高速缓存读取或被写入高速缓存时,数据的系统内存地址只有一部份,通常称为索引部份(index portion)或索引,被用来寻址快址内存。其结果是,多个系统内存地址会映像至相同的快取索引(cache index)。在一直接映像高速缓存(direct-mapped cache)中,在映像至相同快取索引的多个系统内存地址中,一次只能快取其中一个。所以,若一个程序经常存取两个映像至相同快取索引的系统内存位置,则在高速缓存中,这两者会经常互相置换。为了减少这种情形且增进快取效能,一般皆使用关联高速缓存(associative cache)。
[0006]不同于直接映像高速缓存于每一索引仅储存单一快取线,关联高速缓存每一索引储存了一列或一组的N条快取线。关联高速缓存允许一快取线存在于所选定的列中N个位置的任一个上。这种高速缓存被称为N路关联高速缓存,或N路集合关联高速缓存,此因在所选取的一集合或列中,有N个不同的路,快取线可能储存于其中。
[0007]由于快取线可储存于N路关联高速缓存的任一路中,当一新快取线要被写入高速缓存时,关联高速缓存必须决定在所检索的列中,该新快取线要写入N路中的哪一路。也就是,关联高速缓存必须确定在所检索的列的既有N条快取线中,要置换哪一条。选择最有可能的路,亦即快取线,来置换,希望其在最近不会被使用到,此即快取置换算法(cache replacementalgorithm)的任务。用以决定置换哪一路的方式的一例,即是置换所选取列中最近被最少使用最近被最少使用(least recently used,LRU)的路,亦即快取线。高速缓存则保留在一已知的列中用以决定哪一路为最近被最少使用的信息。在常用的关联高速缓存中,此LRU信息以列为单位,被存放在一功能方块(functional block)中,该功能方块实体上与储存快取线本身及其关联地址标志(address tag)的功能方块是分开的。
[0008]常用的关联高速缓存包括至少三个相当大的功能方块或数组(array),其在实体上皆可区分开来。首先是数据数组(data array),其储存实际的数据快取线,并配置为多数个具N路快取线的列,如前所述。
[0009]常用关联高速缓存所具有的第二个功能方块是目录(directory),也称为标志数组(tag array)。此目录以类似具N路的数据数组的方式来配置。也就是,系统内存地址的索引部份寻址此目录,以选取一具N个项目(entry)的列。位于此目录的一已知列的一已知路中的一项目,储存了数据数组中一对应快取线的标志与状态。标志加上索引便形成该对应快取线的系统内存地址,或至少是系统内存地址较前面的部分。当高速缓存被存取时,目录中被选取列的每一标志皆与系统内存地址做比较,并以快取线状态加以检验,以确定是否发生一快取命中(cache hit)。对应快取线状态的一个常见例子,是快取线的MESI状态。
[0010]常用关联高速缓存所具有的第三个功能方块是LRU数组。如前所述,在常用的关联高速缓存中,LRU信息是以列为单位而储存的。也就是,LRU数组亦利用索引来加以寻址。然而,索引仅选取LRU数组中一个单一项目,而非一整列的项目。也就是,此被检索的单一项目包括了对应数据数组中整列快取线的LRU信息。常用的关联高速缓存要将LRU数组从数据数组及目录分隔开的原因是,LRU数组的项目可能在每次一列中任何快取线被更新时,就被更新,然而数据数组或目录是以快取线为基础而更新的。也就是,一次只有数据数组与目录的N路中的一路被更新。
[0011]对于高速缓存,一直都有增加其容量的要求,特别是要跟上处理器速度的持续增加。然而,当高速缓存的容量增加,又会需要将高速缓存的实际尺寸尽可能缩小。特别是将高速缓存整合在处理器中的情形,更需要如此。在新型的微处理器中,整合式高速缓存会消耗微处理器的集成电路中不少宝贵的面积。
[0012]不过,常用关联高速缓存包括三个实体上分开且相当大的功能方块的这个事实,却与保持高速缓存尽可能地小的需求背道而驰。常用方法的一个缺点是,它复制了数组中已因目录而存在的某部分逻辑,像是地址译码逻辑(address decode)与写入逻辑(write logic),因而需要额外占用集成电路或电路板的面积。另一个缺点则是,独立出来的LRU数组,比起目录与数据数组,通常具有不同的高宽比(aspect ratio),其对于平面配置(floorplanning)会产生负面的冲击。也就是,很难用一种有效使用空间的方式来将这些功能方块放在集成电路的晶片(die)上。另一个缺点是,分开来的LRU数组构成另一个功能方块,需在集成电路或电路板的平面上进行布局与绕线(place and route)。
[0013]因此,我们所需要的是,以更有效使用空间的方式来产生及储存关联快取线的置换信息,以减少关联高速缓存尺寸及空间配置上的冲击。
发明内容
[0014]本发明提供一种关联高速缓存,其快取线的置换信息被整合在快取目录中。该高速缓存因为较小,较容易布局与绕线(route),而减少芯片面积的消耗。于是,为达到前述目的,本发明的一项特征是,提供一种N路关联高速缓存。该高速缓存包括一数据数组,其具有第一多数个储存组件,以储存配置成M列与N路的多数条快取线。该高速缓存亦包括一标志数组,耦接至该数据数组,该标志数组具有第二多数个储存组件,配置成M列与N路。每一该第二多数个储存组件皆储存一对应快取线的一标志。每一该第二多数个储存组件亦储存用来决定要置换N路中哪一路的信息。该高速缓存也包括控制逻辑(control logic),耦接至该标志数组,用以从M列中被选取的一列的所有N路中,读取该信息。该控制逻辑亦依据所读取的信息,选择置换N路中哪一路,且仅更新所选取要置换的路的信息。
[0015]另一方面,本发明的一项特征是,提供一种N路关联高速缓存。该高速缓存包括一数据数组,配置成N路,且具有多数列。每一该多数列储存对应该N路的N条快取线。该数据数组也包括一索引输入端,以选取该多数列之一。该高速缓存亦包括一目录,耦接至该数据数组,配置成N路,且具有多数列。每一该多数列储存快取线的置换信息。该快取线置换信息分布于该N路,以使得每一路仅储存一部份的快取线置换信息。该高速缓存也包括控制逻辑,耦接至该目录,用以从所选取的该多数列其中之一接收快取线置换信息,并相应地产生一信号送回。该信号指定数据数组的N路其中之一,用来在所选取的该多数列之一的N条快取线中,置换其对应的一条快取线。
[0016]另一方面,本发明的一项特征是,提供一种四路关联高速缓存。该高速缓存包括一数据数组。该数据数组有M列。该M列中的每一列皆具四路,每一路具一快取线储存组件(line storage element),以储存一快取线。该高速缓存也包括一目录,耦接至该数据数组。该目录具有该M列。该M列中的每一列皆具该四路,每一路具一标志储存组件(tag storage element),对存于数据数组的一对应快取线储存组件的该快取线,储存其一标志。该标志储存组件亦储存两个位的快取线置换信息。该高速缓存亦包括一编码器(encoder),耦接至该目录,用以在M列的一被选取列的四路中,从每一路读取包括该两个位快取线置换信息的八个位。该译码器依照一准最近最少使用(pseudo-least-recently-used)的编码方式,将该八个位编码成三个位。该三个位在该M列的被选取列的四路中,指定哪一路是实质上最近被最少使用的。
[0017]另一方面,本发明的一项特征是,提供一种具有一整合式标志与快取线置换信息数组的关联高速缓存。该高速缓存包括一具M列与N路的储存组件的数组。每一储存组件储存一快取线标志及每路的置换信息。该数组具一用来接收一索引的输入端,该索引系用以选取该数组的M列的一。该高速缓存也包括控制逻辑,耦接至该储存组件的数组,用以将所选取该M列的一的所有N路的每路的置换信息编码成每列的置换信息。藉此,即可免去对一分离的快取线置换信息的储存组件数组的需求。
[0018]另一方面,本发明的一项特征是,提供一种N路关联高速缓存。该高速缓存包括一二维的标志与最近被最少使用(LRU)数组。该数组的每一列储存N个标志于其N路中。该数组的每一列也储存准LRU(pseudo-LRU)信息。该准LRU信息包括分布于该列的N路的N个部份。该N个部份集合起来指定了该N路的哪一路是实质上最近被最少使用的。关联于该N个标志的一对应者的准LRU信息,其每一该N个部分随着该N个标志的该对应者皆可个别更新。该高速缓存也包括控制逻辑,耦接至该数组,用来接收分布于该列的N路的N个部份准LRU信息。控制逻辑亦在高速缓存的对应于该二维标志与LRU数组的一二维数据数组中,置换一快取线。由该N个部分所指定的该快取线系为该列中实质上最近被最少使用的。
[0019]另一方面,本发明的一项特征是,提供一种更新一具有M列与N路的关联高速缓存的方法。该方法包括依据一快取线地址,从该高速缓存的M列选取其中一列,并读取所选取列的N路中,每一路所储存的快取线置换信息。该方法亦包括响应该读取动作,选择所选取列的N路其中之一用以置换,并响应该读取与选择动作而产生新快取线置换信息。该方法也包括在该产生的动作后,以该新快取线置换信息更新该路。
[0020]本发明的一个优点是,可免去对置换算法的位设计一分离数组的需求。另一个优点则是,可避免重复大部分的地址译码逻辑、写入逻辑及其它类似的逻辑,此为公知方法必须做的。虽然实作上显示每一索引需要八个位(2位/路*4路),而公知方法每一索引仅需三个位,但本发明已注意到,所复制的数组控制逻辑与每一索引三个位合起来,会比本发明的高速缓存的八个储存位的尺寸来得大。再一个优点则是,增加现存标志数组的位数并不会在平面配置(floorplan)上产生一个额外需要绕线的数组。
[0021]本发明的其它特征与优点,在考察本说明书其余部分与附图后,将可更加明白。
附图说明
[0022]图1为常用的四路关联高速缓存的方块图。
[0023]图2为图1常用高速缓存的控制逻辑的方块图。
[0024]图3为说明图1的常用高速缓存如何置换一快取线的运作流程图。
[0025]图4依本发明绘示的四路关联高速缓存的方块图。
[0026]图5依本发明绘示图4高速缓存的控制逻辑的方块图。
[0027]图6依本发明绘示图4的高速缓存如何置换一快取线的运作流程图。
图号说明:
100常用四路关联高速缓存
102控制逻辑 104标志数组
106数据数组 108 LRU数组
112快取地址 114标志
116索引 118字节偏移量
122新标志 124解多工器(或多路输出选择器)
126解多工器(demux) 128新快取线
132列选择信号
134 replacement_way_select[3:0]信号
142 LRU[2:0]信号 144 new_LRU[2:0]信号
154标志储存组件 156快取线储存组件
158 LRU储存组件
204置换路产生器 206新LRU产生器
302--316常用的置换快取线的运作流程
400四路关联高速缓存 402控制逻辑
404标志数组 424解多工器
434 replacement_way_select[3:0]信号
442 per_way_LRU[7:0]信号 444 new_per_way_LRU[1:0]信号
454标志与LRU储存组件 464标志
468每路的LRU信息
502 per_way_LRU至per_row_LRU编码器
504置换路产生器 506 per_way_LRU译码器
508 per_row_LRU[2:0]信号
602--616本发明的置换快取线的运作流程
具体实施方式
[0028]本节将先描述一个不具本发明优点的相关技术的关联高速缓存,以便更理解本发明。
[0029]现请参阅图1,其显示常用的四路关联高速缓存100的方块图。在高速缓存100的一写入动作中,提供了一新快取线128以写入高速缓存100。一指定所要读取或写入的快取线的快取地址112,则被送至高速缓存100。特别是,此新快取线128的快取地址112被用来将新快取线128写入高速缓存100中。快取地址112包括一标志部份114、一索引部份116以及一字节偏移量(byte offset)部份118。标志114包括快取地址112的最重要位。索引116包括快取地址112的中等重要位,而字节偏移量118则包括快取地址112的最不重要位。
[0030]高速缓存100包括一数据数组106。数据数组106包括多数个用以储存快取线的储存组件,其例示于图1的快取线储存组件156。储存组件156配置为一具多数列与多数行的二维数组。该多数行即称为路。高速缓存100包括四个路,标示为路0、路1、路2及路3,如图所示。每一快取线系存在位于一列与行交叉点上的快取线储存组件156。快取地址112的索引116则以列选择信号(row select signal)132送至数据数组106。列选择信号132选取数据数组106的其中一列,以写入新快取线128。一快取线可关联于一列或一集合的四路中任一路。也就是,将一快取线写入列选择信号132所选取数据数组106其中一列的任何一路,皆是允许的。在多数应用中,相较于直接映像高速缓存,此种关联性增加了高速缓存100的命中率(hit rate)及效能。
[0031]高速缓存100也包括一解多工器(demultiplexer也称多路输出选择器)126,耦接至数据数组106。解多工器126由replacement_way_select[3:0]信号134来控制,选取数据数组106的四路其中之一,以写入新快取线128。解多工器126接收此新快取线128,并选择性地将其送至由replacement_way_select[3:0]信号134所指定数据数组106的四路其中之一。replacement_way_select[3:0]信号134系由控制逻辑102产生,此将于下文图2部分做详细说明。因此,新快取线128被写入由列选择信号132所选取的列中,由replacement_way_select[3:0]信号134所选取的路的一储存组件156。
[0032]高速缓存100亦包括一标志数组104,也称为目录104。此标志数组104包括多数个用来储存标志的储存组件,其例示于图1的标志储存组件154。标志数组104以类似数据数组106的方式配置为具有相同数目的列与路的二维数组。一快取线的一标志储存在位于一列与行交叉点上的一标志储存组件154,该标志储存组件154对应于位于数据数组106相同的列与行上的快取线储存组件156。快取地址112的标志114则藉新标志信号112送出。列选择信号132选取标志数组104的其中一列,以写入新标志122。此标志于进行一高速缓存100的读取动作时所读取,以确定是否已发生一快取命中(cachehit)。除了储存快取线的标志,标志储存组件154也可以储存快取状态信息,诸如MESI(Modified(修改),Exclusive(独占持有),Shared(共享),Invalid(无效))状态信息,或关联于其它快取一致性算法的快取状态信息。若标志储存组件154中的标志与快取地址112的标志114吻合,则发生一快取命中,而快取线则具所需的正确性。
[0033]高速缓存100也包括一第二解多工器124,耦接至标志数组104。解多工器124亦由replacement_way_select[3:0]信号134来控制,选取标志数组104的四路其中之一,以写入新标志122。解多工器124接收此新标志122,并选择性地将其送至由replacement_way_select[3:0]信号134所指定标志数组104的四路其中之一。因此,新标志122被写入由列选择信号132所选取的列中,由replacement_way_select[3:0]信号134所选取的路的一储存组件154。
[0034]高速缓存100也包括一LRU数组108,其包括多数个用来储存LRU信息的储存组件,其例示于图1的LRU储存组件158。LRU数组108配置为一维数组,所具有的列数与数据数组106及标志数组104相同。LRU信息系存于一列的一LRU储存组件158中,该列则对应于位在数据数组106的相同列与路的一快取线储存组件156。列选择信号132亦被送至LRU数组108。LRU数组108从new_LRU[2:0]信号144接收新LRU信息。此新LRU信息描述由列选择信号132所选取的列的四路中,哪一路是最近被最少使用的。此新LRU信息被写入由列选择信号132所选取的列的储存组件158中。new_LRU[2:0]信号144系由控制逻辑102所产生,如下文关于图2部分将要说明的。LRU数组108也从LRU数组108中由列选择信号132所选取的一列来提供LRU信息,并藉LRU[2:0]信号142将其送至控制逻辑102。控制逻辑102使用于LRU[2:0]信号142所接收的LRU信息,来产生replacement_way_select[3:0]信号134及new_LRU[2:0]信号144,如接下来所要叙述的。
[0035]现请参阅图2,其显示图1常用高速缓存100的控制逻辑102的方块图。图2亦显示出描述内含于图中每个方块的组合逻辑的等式。图2也显示一树状图及位编码方式,其描述公知技术中对于一四路准LRU算法的已编码信息进行三位编码的方法。该四路准LRU算法是关联高速缓存常用的置换算法,因为它使用比真正LRU方法较少的位数,较易更新,但仍具大部份真正LRU的特性。准LRU试图追踪一选定列的最近被最少使用的快取线为何。为简明起见,此处所描述的准LRU信息及相关信号皆称为LRU,而非准LRU。存于LRU数组108的LRU信息的三个位以LRU[2:0]信号142送至图1的控制逻辑102,并依据图2所示的树状图加以编码。
[0036]控制逻辑102包括一置换路产生器204,用以接收来自图1LRU数组108的图1LRU[2:0]信号142。
[0037]此置换路产生器204基于亦显示于图2的下列规则,以选取一置换路。
若LRU[2:0]=3’b000,则路0为LRU路
若LRU[2:0]=3’b001,则路l为LRU路
若LRU[2:0]=3’b010,则路0为LRU路
若LRU[2:0]=3’b011,则路1为LRU路
若LRU[2:0]=3’b100,则路2为LRU路
若LRU[2:0]=3’b101,则路2为LRU路
若LRU[2:0]=3’b110,则路3为LRU路
若LRU[2:0]=3’b111,则路3为LRU路
[0038]置换方式产生器204依据亦显示于图2的下列等式,响应LRU[2:0]信号142而产生replacement_way_select[3:0]信号134。
replacement_way_select[0]=~LRU[2]&~LRU[0];
replacement_way_select[1]=~LRU[2]& LRU[0];
replacement_way_select[2]= LRU[2]&~LRU[1];
replacement_way_select[3]= LRU[2]& LRU[1];
[0039]控制逻辑102亦包括一新LRU产生器(new LRU generator)206,用以接收来自LRU数组108的LRU[2:0]信号142。该新LRU产生器206也从置换路产生器204接收replacement_way_select[3:0]信号134。新LRU产生器206基于下表一所示的规则(亦显示于图2),产生新LRU信息。
置换路 | 位变化 |
0 | 0x0=>1x1 |
1 | 0x1=>1x0 |
2 | 10x=>01x |
3 | 11x=>00x |
表一
[0040]将表一的规则进一步解释如下。若路0是置换路,则利用设定LRU[2]、不改变LRU[1]以及设定LRU[0],以偏离路0,因为其现在即为最近被最常使用的。若路1是置换路,则利用设定LRU[2]、不改变LRU[1]以及重设LRU[0],以偏离路1,因为其现在即为最近被最常使用的。若路2是置换路,则利用重设LRU[2]、设定LRU[1]以及不改变LRU[0],以偏离路2,因为其现在即为最近被最常使用的。若路3是置换路,则利用重设LRU[2]、重设LRU[1]以及不改变LRU[0],以偏离路3,因为其现在即为最近被最常使用的。
[0041]新LRU产生器206依据亦显示于图2的下列等式,产生图1的新LRU[2:0]信号144。new_LRU[0]=//若置换路0,设定[0]replacement_way_select[0] |//若置换路1,重设[0](不设定)//若置换路2,写入旧的[0]replacement_way_select[2]&LRU[0]|//若置换路3,写入旧的[0]replacement_way_select[3] & LRU[0];new_LRU[1]=//若置换路0,写入旧的[1]replacement_way_select[0] & LRU[1]|//若置换路1,写入旧的[1]replacement_way_select[1] & LRU[1]|//若置换路2,设定[1]replacement_way_select[2];//若置换路3,重设[1](不设定)new_LRU[2]=//若置换路0,设定[2]replacement_way_select[0] |//若置换路1,设定[2]replacement_way_select[1];//若置换路2,重设[2](不设定)
//若置换路3,重设[2](不设定)
[0042]现请参阅图3,其显示出说明图1的常用高速缓存100如何置换一快取线的运作流程图。此流程开始于方块302。
[0043]于方块302中,图1的索引116利用图1的列选择信号132送至图1LRU数组108,以选取LRU数组108的一列。流程则自方块302进行至方块304。
[0044]于方块304中,从LRU数组108的被选取列的LRU储存组件158读取LRU信息,并利用LRU[2:0]信号142送至图l的控制逻辑102。流程则自方块304进行到方块306。
[0045]于方块306中,图2的置换路产生器204产生replacement_way_select[3:0]信号134,如关于图2部分所述。流程则自方块306进行至方块308。
[0046]于方块308中,图2的新LRU产生器206产生图1的new_LRU[2:0]信号144,如关于图2部分所述。流程则自方块308进行至方块312。
[0047]于方块312中,图1的新快取线128被写入由列选择信号132与replacement_way_select[3:0]信号134所选取的图1快取线储存组件156中。流程则自方块312进行至方块314。
[0048]于方块314中,图1的新标志122被写入由列选择信号132与replacement_way_select[3:0]信号134所选取的图1标志储存组件154中。流程则自方块314进行至方块316。
[0049]于方块316中,new_LRU[2:0]信号144上的新LRU信息被写入由列选择信号132所选取的图1的LRU储存组件158中。流程则终止于方块316。
[0050]从图1到图3很容易看出,常用的关联高速缓存在标志数组与数据数组外,以一分离的数组来储存LRU,常用关联高速缓存使用一分离的LRU数组的理由是,每次在一被选取列的任一路,亦即快取线与标志,被更新时,一列的LRU信息也可能随之更新。相反地,一标志数组系以每一路,亦即每一标志为单位来更新。也就是,一次只有标志数组N路中的一路被更新。如上所讨论,采用实体上分离的数据、标志及LRU数组,有着明显的缺点。因此,如本发明所提供的,只使用单一的具多数个储存组件的数组来储存标志与路置换信息是非常理想的。然而,由于标志是以每路为单位来更新的,因此需要一种解决方法,其允许路置换信息也能以每路为单位来加以更新。
[0051]本发明提供一种关联高速缓存,其将LRU数组整合于标志数组中。正常的LRU信息,亦即每列的LRU信息或列特定(row-specific)信息,被译码成路特定(way-specific)信息或以每路为单位的信息,该信息特定于要被置换的路。这使得每路的LRU信息在快取线的个别标志被写入(亦即以每路为单位)的同时,也被存入标志数组。也就是,每路的LRU信息可被写到标志数组中一个别的路,而不需写到列中所有的路。为了决定一被选取列的哪一路要被置换,自所有的路读取每路的LRU信息,并编码成原本的每列的LRU形式。此译码与编码的步骤有利地使标志及LRU数组得以整合。如接下来将提到的,要储存每路的已译码LRU位,会比正常每路的列LRU位需要更多的储存空间,但如此就可以不需要一分离的LRU数组,此乃其优点。
[0052]现请参阅图4,其显示本发明的一四路关联高速缓存400的方块图。除非有另外指明,高速缓存400的组件与图l的高速缓存100的组件标号相同的部分,表示其功能类似。特别是,高速缓存400并不包括一如图1常用高速缓存100所具有的分离的LRU数组。相反地,LRU信息系被整合入高速缓存400的一标志数组404中。
[0053]高速缓存400包括一数据数组106及解多工器126,类似于图1所述标号近似的组件。于一示范的实施例中,数据数组106可储存64KB的数据。每一快取线包括32字节。因此每一列可以储存128字节。所以,数据数组106包括了512列。
[0054]高速缓存400包括一标志数组404。此标志数组404以类似图1的标志数组104的方式配置;然而,标志数组404的多数个储存组件,可以图标的标志与LRU储存组件454为例,被组态为不只储存一标志464,还存了每路的LRU信息468。标志数组404以类似标志数组106的方式,配置成一具有与标志数组106相同数目的列与路的二维数组。一快取线标志464系存于位在一列与路的交叉点上的一标志与LRU储存组件454,该标志与LRU储存组件454则对应于数据数组中位于相同的列与路的快取线储存组件156。列选择信号132亦被送至标志数组404。快取地址112的标志部份114则以新标志信号122送出。列选择信号132选取标志数组404的其中一列,以写入新标志122。在一高速缓存400的读取操作中,标志114被拿来做比较,以确定是否发生一快取命中。除了储存快取线标志464与每路的LRU信息468,标志储存组件454也可储存快取状态信息,像是MESI状态信息,或关联于其它快取一致性算法的快取状态信息。
[0055]在一个具体实施例中,每路LRU信息468包括二个位。每路信息468的编码方式不同于存在图1的LRU数组108的LRU信息,此因储存于标志数组404的每路的LRU信息468是以每路为单位而更新,而储存于LRU数组108中的LRU信息则以每列为单位而更新。虽然每路LRU信息468是以每路为单位而写入,但却仍是以每列为单位而读取,如同在标志数组404的被选定列中读取标志的方式。也就是,从被选定列的四路中每一路读取每路LRU信息468,以确定哪一路是最近被最少使用的。每路LRU信息468的编码与译码方式将于下文详述。
[0056]高速缓存400也包括一第二解多工器424,耦接至标志数组404。解多工器424亦由replacement_way_select[3:0]信号434来控制,选取标志数组404的四路其中之一,以写入新标志122。解多工器124接收此新标志122,并选择性地将其送至由replacement_way_select[3:0]信号434所指定标志数组404的四路其中之一。因此,新标志122被写入由列选择信号132所选取的列中,由replacement_way_select[3:0]信号434所选取的路的一储存组件454。
[0057]此外,解多工器424接收由控制逻辑402所产生的一new_per_way_LRU[1:0]信号444。解多工器424接收new_per_way_LRU[1:0]信号444,并选择性地提供new_per_way_LRU[1:0]信号444至由replacement_way_select[3:0]信号434所指定的标志数组404的四路其中之一。因此,new_per_way_LRU[1:0]信号444随着新标志122一并被写入由列选择信号132所选取的列中,由replacement_way_select[3:0]信号434所选取的路的一储存组件454中。控制逻辑402产生new_per_way_LRU[1:0]信号444,以响应来自于标志数组404一被选取列的所有四路的两位的per_way_LRU信息468,该信息468系经由per_way_LRU[7:0]信号442送至控制逻辑402,如下文关于图5部分所述。如图所示,来自于标志数组404的路0、路1、路2及路3的per_way_LRU信息468分别经由信号per_way_LRU[1:0]442、per_way_LRU[3:2]442、per_way_LRU[5:4]442及per_way_LRU[7:6]442送出。控制逻辑402则根据per_way_LRU[7:0]信号442来产生replacement_way_select[3:0]信号434,细节如下文依照图5将要叙述的部分。
[0058]现请参阅图5,其显示本发明的图4高速缓存400的控制逻辑402的方块图。图5亦显示描述包括于每一方块的组合逻辑的等式。
[0059]控制逻辑402包括一per_way_LRU至per_row_LRU编码器502。per_way_LRU至per_row_LRU编码器502接收图4的per_way_LRU[7:0]信号442,并依据图5所示的下列等式,相应地产生per_row_LRU[2:0]信号508。
per_row_LRU[2]=per_way_LRU[1]^ //路0[1]
per_way_LRU[3]^ //路1[1]
per_way_LRU[5]^ //路2[1]
per_way_LRU[7]; //路3[1]
per_row_LRU[1]=per_way_LRU[4]^ //路2[0]
per_way_LRU[6]; //路3[0]
per_row_LRU[0]=per_way_LRU[0]^ //路0[0]
per_way_LRU[2]; //路1[0]
[0060]从per_way_LRU至per_row_LRU编码器502的等式可看出,编码器502以预定的方式对per_way_LRU[7:0]信号442执行二进制的互斥或(exclusive-OR)运算,以将信号442上的每路的LRU信息编码成标准的三位准LRU形式,如关于图2部分所述。
[0061]控制逻辑402也包括一类似于图2的置换路产生器204的置换路产生器504。此置换路产生器504接收per_row_LRU[2:0]信号508,并依据亦显示于图5的下列等式,相应地产生图4的replacement_way_select[3:0]信号434。
replacement_way_select[0]=~per_row_LRU[2]&
~per_row_LRU[0];
replacement_way_select [1]=~per_row_LRU[2] &
per_row_LRU[0];
replacement_way_select[2] = per_row_LRU [2] &
~per_row_LRU [1];
replacement_way select[3]=per_row_LRU [2] &
per_row_LRU [1];
[0062]控制逻辑402也包括一per_way_LRU译码器506。此译码器506接收per_way_LRU[7:0]信号442、per_row_LRU[2:0]信号508及replacement_way_select[3:0]信号434,并根据下列等式相应地产生图4的new_per_way_LRU[1:0]信号444。
new_per_way_LRU[1]=
replacement_way_select[0]& //若置换路0
~per_row_LRU [2] & //且per_row_LRU[2]为0
~per_way_LRU [1] | //则切换路0的位[1]
replacement_way_select[1]& //若置换路1
~per_row_LRU[2] & //且per_row_LRU[2]为0
~per_way_LRU[3] | //则切换路1的位[1]
replacement_way_select[2]& //若置换路2
per_row_LRU[2] & //且per_row_LRU[2]为1
~per_way_LRU[5] | //则切换路2的位[1]
replacement_way_select[3]& //若置换路3
per_row_LRU[2] & //且per_row_LRU[2]为1
~per_way_LRU[7]; //则切换路3的位[1]
new_per_way_LRU[0]=
replacement_way_select[0]& //若置换路0
~per_row_LRU[0] & //且per_row_LRU[0]为0
~per_way_LRU[0] | //则切换路0的位[0]
replacement_way_select[1]& //若置换路1
per_row_LRU[0] & //且per_row_LRU[0]为1
~per_way_LRU[2] | //则切换路1的位[0]
replacement_way_select[2] & //若置换路2
~per_row_LRU[1] & //且per_row_LRU[1]为0
~per_way_LRU[4] | //则切换路2的位[0]
replacement_way_select[3] & //若置换路3
per_row_LRU[1] & //且per_row_LRU[1]为1
~per_way_LRU[6]; //则切换路3的位[0]
[0063]从per_way_LRU译码器506的等式可看出,此译码器506基于被选取用以置换的路来译码per_row_LRU[2:0]信号508信息,以产生新的每路的LRU信息,在此信息与从被选取列的其它三路读取图4的其它每路LRU信息468集合起来后,将能使per_way_LRU至per_row_LRU编码器502编码成原来标准的准LRU形式,如下文关于图6部分所述。
[0064]现请参阅图6,其为本发明的图4高速缓存400如何置换一快取线的运作流程图。此流程始于方块602。
[0065]于方块602中,图4的索引116利用图4的列选择信号132送至图4标志数组404,以选取标志数组404的一列。流程则自方块602进行至方块604。
[0066]于方块604中,从标志数组404的被选取列读取per_way_LRU信息468,并利用per_way_LRU[7:0]信号442送至图4的控制逻辑402。流程则自方块604进行到方块606。
[0067]于方块606中,图5的per_way_LRU至per_row_LRU编码器502将per_way_LRU[7:0]信号442编码成per_row_LRU[2:0]信号508,如关于图5部分所述。而per_way_LRU[7:0]信号442于方块604中读取由列选择信号132所选取标志数组404的列的四路中每一路。流程则自方块606进行至方块608。
[0068]于方块608中,图5的置换路产生器504产生replacement_way_select[3:0]信号434,如关于图5部分所述。流程则自方块608进行至方块612。
[0069]于方块612中,图5的per_way_LRU译码器506依据per_way_LRU[7:0]信号442、per_row_LRU[2:0]信号508及replacement_way_select[3:0]信号434产生图4的new_per_way_LRU[1:0]信号444,作为replacement_way_select[3:0]信号434上所指定的置换路,如关于图5部份所述。流程则自方块612进行至方块614。
[0070]于方块614中,图4的新快取线128被写入由列选择信号132与replacement_way_select[3:0]信号434所选取的图4快取线储存组件156中。流程则自方块614进行至方块616。
[0071]于方块616中,图4的新标志122与new_per_way_LRU[1:0]信号444一并被写入由列选择信号132与replacement_way_select[3:0]信号434所选取的标志与LRU储存组件454中。流程终止于方块616。
[0072]从图4至图6的实施例可看出,准LRU信息跨列分布,但可以每路为单位而更新,而当一个路被置换时,准LRU信息即被更新。此实施例特别适用于牺牲性高速缓存(victim cache)。然而,此实施例也能简易地应用于采用其它LRU更新策略的高速缓存。例如,准LRU信息亦可于其它事件发生时予以更新,像是产生加载命中(load hit)时。在这样的实施例中,置换路产生器变成一「已存取路产生器」(accessed way generator),其在一加载命中(或其它LRU更新事件)发生时,选取已存取的路,并于置换一快取线时选取最近被最少使用的路。此外,置换路产生器可将其它用以选取一置换路的因素纳入考量,像是若在所选取的列中存在一无效的路,则选择置换它,而非选择最近被最少使用的路。
[0073]虽然本发明及其目的、特征与优点已详细叙述了,其它具体实施例仍涵盖在本发明的范围内。例如,本发明适用于具不同数目的路、列及快取线大小的关联高速缓存。此外,将LRU数组整合于标志数组的概念以及相应的编码与译码置换算法信息,皆可应用于其它置换算法,不限于准LRU算法。再者,本发明也可使用于指令高速缓存、数据高速缓存或组合式的数据/指令高速缓存。最后,本发明并不限于用在将高速缓存与处理器整合于相同集成电路的情形,也可用于个别分离的高速缓存。
总之,以上所述,仅为本发明的较佳实施例而已,当不能以的限定本发明所实施的范围。大凡依本发明权利要求所作的等效变化与修饰,皆应仍属于本发明专利涵盖的范围内。
Claims (27)
1.一种N路关联高速缓存,其特征在于,包括:
一数据数组,包括第一多数个储存组件,以储存配置成M列与N路的多数条快取线;
一标志数组,耦接至该数据数组,该标志数组包括第二多数个储存组件,同样配置成该M列与该N路,每一该第二多数个储存组件用以储存该多数条快取线中一对应快取线的一标志,其中每一该第二多数个储存组件亦组态为储存用来决定要置换该N路中哪一路的信息;以及
一控制逻辑,耦接于该标志数组,组态为从该M列中被选取的一列的所有N路中来读取该信息,并依据该信息,选择置换该N路其中之一,且仅更新所选择要置换的路中的信息。
2.如权利要求第1项所述的高速缓存,其特征在于,该控制逻辑组态为对于该N路中被选择要置换的路,同时更新其标志及该信息。
3.如权利要求第1项所述的高速缓存,其特征在于,该控制逻辑更组态为对于该N路中被选择要置换的路,实质上同时地更新对应其标志的该多数条快取线的一以及该信息。
4.如权利要求第1项所述的高速缓存,其特征在于,该控制逻辑组态为依据集合该所有N路所读取的该信息后,以决定该M列的被选取列的该N路中,哪一路是实际上最近被最少使用的。
5.如权利要求第4项所述的高速缓存,其特征在于,该控制逻辑组态为将从该所有N路所读取的该信息编码成多数个位,以依据一准最近被最少使用(pseudo-least-recently-used)的编码方式,指定该M列的被选取列的该N路中,哪一路是实质上最近被最少使用的。
6.如权利要求第4项所述的高速缓存,其特征在于,该控制逻辑组态为依据读取该所有N路所集合起来的该信息,所决定该M列的被选取列的该N路中,哪一路是实际上最近被最少使用的的后,以选取该N路中的该路来置换。
7.一种N路关联高速缓存,其特征在于,包括:
一数据数组,配置成N路,包括多数列,每一该多数列组态为储存对应该N路的N条快取线,该数据数组亦包括一索引输入端,以选取该多数列之一;
一目录,耦接至该数据数组,配置成该N路,包括多数列,每一该多数列组态为储存快取线置换信息,其中该快取线置换信息分布于该N路中,以使得该N路中的每一路仅储存一部份的该快取线置换信息;
一控制逻辑,耦接至该目录,组态为从所选取的该多数列其中之一列来接收该快取线置换信息,并产生一信号送回以响应该信号指定所选取的该多数列之一中的N条快取线的一,来置换其对应数据数组中的快取线。
8.如权利要求第7项所述的高速缓存,其特征在于,该目录的每一该多数列组态为储存N个标志,该N个标志至少指定了对应于存在该数据数组的该N条快取线的一的一地址的一部份。
9.如权利要求第7项所述的高速缓存,其特征在于,该目录的每一该多数列组态为储存N个状态信息,该N个状态信息指定了对应于存在该数据数组的该N条快取线的一的快取状态。
10.如权利要求第9项所述的高速缓存,其特征在于,该个N状态信息包括了指出存于该数据数组的该N条快取线的该对应快取线是否被修改(modified)、独占持有(exclusively held)、共享(shared)或无效(invalid)的信息。
11.如权利要求第7项所述的高速缓存,其特征在于,该快取线置换信息包括用来决定该索引输入端所选取的该多数列之一的该N条快取线中,哪一条是最近被最少使用的信息。
12.如权利要求第7项所述的高速缓存,其特征在于,该控制逻辑更组态为产生已更新的快取线置换信息,并储存于该目录中该多数列的所选取的一列中。
13.如权利要求第7项所述的高速缓存,其特征在于,该控制逻辑包括一编码逻辑单元,用以从所选取的该多数列之一的每一该N路中,接收该快取线置换信息的一部份,并将其编码成已编码信息,以指定所选取的该多数列之一的该N路中,哪一路是实质上最近被最少使用的。
14.一种四路关联高速缓存,其特征在于,包括:
一数据数组,具有M列,每一该M列皆具四路,每一路具一快取线储存组件,以储存一快取线
一目录,耦接至该数据数组,具有该M列,每一该M列皆具该四路,每一路具一标志储存组件,对存于该数据数组的一对应快取线储存组件的该快取线,储存其一标志,该标志储存组件更新组态为储存有两个位的快取线置换信息;以及
一编码器,耦接至该目录,用以在该M列的一被选取列的该四路中,从每一路读取包括该两个位快取线置换信息的八个位,并依照一准最近被最少使用的编码方式,将该八个位编码成三个位,其中该三个位在该M列的该被选取列的四路中,指定哪一路是实际上最近被最少使用的。
15.如权利要求第14项所述的高速缓存,其特征在于,该编码器以一预定的方式对该八个位的部份执行互斥或的运算,以产生该三个位。
16.如权利要第14项所述的高速缓存,其特征在于,还包括:
一译码器,耦接至该目录,用以产生两个新位的快取线置换信息,以更新该M列的被选取列的该四路中,实际上最近被最少使用的该路。
17.如权利要求第14项所述的高速缓存,还包括:
一置换路产生器,耦接至该目录,用以产生一信号,该信号依据该三个位指定该M列的一被选取列的该四路中,哪一路是实际上最近被最少使用的。
18.一种具有一整合式标志与快取线置换信息数组的关联高速缓存,其特征在于,包括:
一具M列乘N路的储存组件的第一数组,每一储存组件用以储存一快取线标志及每路置换信息,该数组具一用来接收一索引的输入端,该索引系用以选取该数组的该M列的一;以及
一控制逻辑,耦接至该数组,组态为将所选取该M列的一的所有该N路的每路置换信息编码成每列置换信息,藉以免去对一分离的快取线置换信息的储存组件数组的需求。
19.如权利要求第18项所述的高速缓存,其特征在于,该每列置换信息指定所选取该M列的一的该N路中,哪一路是实际上最近被最少使用的。
20.如权利要求第19项所述的高速缓存,其特征在于,该控制逻辑更组态为更新该N路中,该实质上最近被最少使用的路的每路置换信息。
21.如权利要求第18项所述的高速缓存,其特征在于,该控制逻辑将该每路置换信息译码,以使得该每路置换信息是可个别更新的,而不需将所选取该M列的一的每一该N路中的每路置换信息皆予以更新。
22.如权利要求第18项所述的高速缓存,其特征在于,还包括:
一具M列乘N路的储存组件的第二数组,耦接至该控制逻辑,每一该第二数组的储存组件用来储存对应于存于该第一数组的该标志的一快取线。
23.一种更新一具有M列与N路的关联高速缓存的方法,其特征在于,包括下列步骤:
依据一快取线地址,从该高速缓存的该M列中选取其中一列;
读取被选取的列的该N路中,每一路所储存的快取线置换信息;
响应该读取动作,选择被选取的列的N路其中之一路加以置换;
响应该读取及选择该路的动作,产生一新快取线置换信息;以及
在该产生的动作后,以该新快取线置换信息更新该路。
24.如权利要求第23项所述的方法,其特征在于,该更新该路的动作包括仅更新该列的N路中被选择用来置换的该路。
25.如权利要求第23项所述的方法,其特征在于,还包括:
在与以该新快取线置换信息更新该路的动作几乎同时,亦以一新快取线更新该路。
26.如权利要求第23项所述的方法,其特征在于,还包括:
在与以该新快取线置换信息更新该路的动作几乎同时,亦以一新快取线标志更新该路。
27.如权利要求第23项所述的方法,其特征在于,该选择用以置换的路的动作包括:
决定该被选取列的该N路中,哪一路是实际上最近被最少使用的,以响应该读取被选取列的该N路中,每一路所储存的快取线置换信息的动作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/046,056 | 2002-01-14 | ||
US10/046,056 US20030159003A1 (en) | 2001-10-23 | 2002-01-14 | Associative cache memory with replacement way information integrated into directory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1391167A true CN1391167A (zh) | 2003-01-15 |
Family
ID=21941341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02125159A Pending CN1391167A (zh) | 2002-01-14 | 2002-06-28 | 将置换路信息整合于目录的关联高速缓存 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN1391167A (zh) |
TW (1) | TW556212B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139877B2 (en) | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
US7139876B2 (en) | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
US7191291B2 (en) | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack cache |
CN100378650C (zh) * | 2004-01-16 | 2008-04-02 | 智权第一公司 | 微处理机与随机存取快取记忆体的快速弹出装置及其方法 |
CN100407172C (zh) * | 2003-07-25 | 2008-07-30 | 飞思卡尔半导体公司 | 选择替换用高速缓冲存储器路的方法与装置 |
CN106776366A (zh) * | 2016-11-18 | 2017-05-31 | 华为技术有限公司 | 地址访问方法及装置 |
-
2002
- 2002-05-21 TW TW091110585A patent/TW556212B/zh not_active IP Right Cessation
- 2002-06-28 CN CN02125159A patent/CN1391167A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7139877B2 (en) | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing speculative load operation from a stack memory cache |
US7139876B2 (en) | 2003-01-16 | 2006-11-21 | Ip-First, Llc | Microprocessor and apparatus for performing fast speculative pop operation from a stack memory cache |
US7191291B2 (en) | 2003-01-16 | 2007-03-13 | Ip-First, Llc | Microprocessor with variable latency stack cache |
CN100407172C (zh) * | 2003-07-25 | 2008-07-30 | 飞思卡尔半导体公司 | 选择替换用高速缓冲存储器路的方法与装置 |
CN100367194C (zh) * | 2004-01-16 | 2008-02-06 | 智权第一公司 | 自堆栈快取存储器进行快速推测性弹出操作方法及装置 |
CN100378650C (zh) * | 2004-01-16 | 2008-04-02 | 智权第一公司 | 微处理机与随机存取快取记忆体的快速弹出装置及其方法 |
CN106776366A (zh) * | 2016-11-18 | 2017-05-31 | 华为技术有限公司 | 地址访问方法及装置 |
CN106776366B (zh) * | 2016-11-18 | 2019-11-22 | 华为技术有限公司 | 地址访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TW556212B (en) | 2003-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1295622C (zh) | 地址映射方法和映射信息管理方法及其闪速存储器 | |
CN1306420C (zh) | 利用永久历史页表数据预取数据到高速缓存的装置和方法 | |
CN1232912C (zh) | 非易失性存储器的控制方法 | |
CN1930635A (zh) | 对多个区块进行适应性确定群组以成为多个多区块单元 | |
CN1879092A (zh) | 高速缓冲存储器及其控制方法 | |
CN1295706C (zh) | 非易失存储器、记录装置和记录方法 | |
CN1701308A (zh) | 维护非易失性存储系统中的擦除计数 | |
CN1804816A (zh) | 用于程序员控制的超高速缓冲存储器线回收策略的方法 | |
CN1652253A (zh) | 存储卡和半导体器件 | |
CN1745433A (zh) | 对非易失性存储器中缺陷的区界调整 | |
CN1918552A (zh) | 基于主机使用特性的快闪存储器地址映射的适应性模式切换 | |
EP2260391A1 (en) | Memory system | |
CN1924831A (zh) | 非易失性存储器系统及操作非易失性存储器系统的方法 | |
CN1637724A (zh) | 用于闪速存储器的数据管理装置和方法 | |
CN1389790A (zh) | 闪速存储器管理方法 | |
CN1645516A (zh) | 用于闪速存储器的数据恢复设备和方法 | |
CN1311366C (zh) | 快闪存储器的平行双轨使用方法 | |
CN1538456A (zh) | 闪存存取装置及方法 | |
CN1143812A (zh) | 存储装置 | |
CN1763729A (zh) | 用于闪速存储器的数据处理设备和方法 | |
CN101046774A (zh) | 使用替代页池管理dma写入页错误的计算机实现方法和装置 | |
CN1758253A (zh) | 一种文件管理系统及管理方法 | |
CN1391167A (zh) | 将置换路信息整合于目录的关联高速缓存 | |
CN1898654A (zh) | 高速缓冲存储器及其控制方法 | |
CN1489766A (zh) | 分析和修复存储器的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 |