CN1820257A - 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 - Google Patents
包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 Download PDFInfo
- Publication number
- CN1820257A CN1820257A CNA2003801042980A CN200380104298A CN1820257A CN 1820257 A CN1820257 A CN 1820257A CN A2003801042980 A CNA2003801042980 A CN A2003801042980A CN 200380104298 A CN200380104298 A CN 200380104298A CN 1820257 A CN1820257 A CN 1820257A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- memory
- cache lines
- lines
- 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
- 238000000034 method Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器(101)。该微处理器包括配置以执行指令的执行单元(124)以及连接到该执行单元的高速缓存子***。该高速缓存子***包括第一级高速缓存(101),其被配置以储存第一多条缓存线,每一缓存线具第一字节数的数据。该高速缓存子***也包括第二高速缓冲存储器(130),其连接到第一级高速缓存(101)并且配置以储存第二多条缓存线,每一缓存线具有第二字节数的数据。第二多条缓存线的每一条包括各自的多条子线,每一子线具有该第一字节数的数据。
Description
技术领域
本发明涉及微处理器的领域,更确切地说,涉及微处理器内的高速缓冲存储器子***。
背景技术
一般的计算机***可包括一个或一个以上的微处理器,可将这些微处理器连接到一个或一个以上的***内存。这些处理器可执行代码以及操作储存在***内存内的数据。应注意的是,在此所用术语“处理器”与“微处理器”一词同义。为了利于指令与数据的提取和储存,处理器通常应用某种类型的内存***。此外,为了加速对***内存的存取,内存***中可能包括一个或一个以上的高速缓冲存储器。例如,某些微处理器可能采用一级或一级以上的高速缓冲存储器。在典型的微处理器中,可能使用第一级高速缓存(L1)及第二级高速缓存(L2),同时某些较新型的处理器也可能使用第三级高速缓冲存储器(L3)。在许多传统处理器中,L1高速缓存可能设置在芯片上而L2高速缓存可能设置在芯片外。然而,为了进一步改善内存存取时间,许多较新型的处理器可能使用片上L2高速缓存。
一般来说,L2高速缓存可能比L1高速缓存更大且更慢。此外,L2高速缓存经常作为统一的高速缓存来实现,而L1高速缓存则可能作为分开的指令高速缓存及数据高速缓存来实现。L1数据高速缓存是用来保留正在微处理器上执行的软件的最近读写数据。L1指令高速缓存与L1数据高速缓存类似,但是L1指令高速缓存保留的是最近执行的指令。应注意的是,为了方便,简单地一并将L1指令高速缓存与L1数据高速缓存称为L1高速缓存,这是合适的。L2高速缓存可用来保留不能进入L1高速缓存的指令及数据。L2高速缓存可能为互斥的(例如储存不在L1高速缓存内的信息),或者可能是包含的(例如其储存一份在L1高速缓存内信息的复本)。
在读写可高速缓冲存储器时,首先检查L1高速缓存,看所请求信息(例如指令或数据)是否可取得。如果信息可取得,则发生命中(hit)。如果信息不可取得,则没有命中(miss)。如果没有命中,则检查L2高速缓存。因此,在L1高速缓存中没有命中但是在L2高速缓存中有命中时,则信息可由L2高速缓存传输到L1高速缓存。如下所述,在L2高速缓存与L1高速缓存之间所传输的信息数量通常为一缓存线(cacheline)。此外,取决于L1高速缓存内的有效空间,缓存线可能从L1高速缓存被收回以空出空间给新的缓存线且随后可能被储存于L2高速缓存。在某些公知处理器中,在此缓存线“交换”的时候,其它对L1高速缓存或L2高速缓存的存取可能不被处理。
内存***通常使用某种类型的高速缓存一致性机制(cachecoherence mechanism),以确保能提供精确的数据给请求者。高速缓存一致性机制通常是以在单一请求中所传输数据的大小作为一致性的单位。一致性的单位一般称之为缓存线。在某些处理器中,例如,一个给定缓存线可能为64字节,而某些其它的处理器则采用32字节的缓存线。在其它的处理器中则可能在单一缓存线中包括其它数目的字节。如果请求在L1高速缓存及L2高速缓存中没有命中,则有多个字的整条缓存线由主存储器传输到L2高速缓存及L1高速缓存,即使所请求的只有一个字符。同样地,如果对一个字的请求在L1高速缓存中没有命中但是在L2高速缓存中命中,则内含所请求的字的整条L2缓存线由L2高速缓存传输到L1高速缓存。因此,数据单位小于各自缓存线的请求可能造成整条缓存线在L2高速缓存与L1高速缓存之间传输。此类传输通常需要多个周期才能完成。
发明内容
以下揭示包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器的不同实施例。在一个实施例中,微处理器包括一配置用来执行指令的执行单元以及连接到该执行单元的高速缓存子***。该高速缓存子***包括配置用来储存第一多条缓存线的第一高速缓冲存储器,其中每一缓存线具有第一字节数的数据。高速缓存子***还包括连接到第一高速缓冲存储器的第二高速缓冲存储器,其被配置用来储存第二多条缓存线,其中每一缓存线具有第二字节数的数据。第二多条缓存线的每一条包括各自的多条子线(sub-lines),每一子线具有第一字节数的数据。
在一个特定实施例中,为响应高速缓冲存储器在第一高速缓冲存储器中没有命中而在第二高速缓冲存储器有命中,在一个给定的时钟周期中,各自的子线的数据由第二高速缓冲存储器传输到第一高速缓冲存储器。
在另一个特定实施例中,第一高速缓冲存储器包括多个标记,每一标记对应于分别一组第一多条缓存线。
在另一个特定实施例中,第一高速缓冲存储器包括多个标记,且每一标记对应于分别一组第一多条缓存线。更进一步,多个标记的每一个包括多个有效位。每一有效位对应于该分别一组第一多条缓存线的各缓存线的一条。
在另一个特定实施例内,第一高速缓冲存储器可为L1高速缓存,而第二高速缓冲存储器可为L2高速缓存。
附图说明
图1为微处理器的一实施例的方框图。
图2为高速缓存子***的一实施例的方框图。
图3为高速缓存子***的另一实施例的方框图。
图4为描述高速缓存子***的一实施例的作业的流程图。
图5为计算机***的一实施例的方框图。
尽管本发明易有不同的修改及替代形式,下面通过附图所示的实施例说明特定的范例的细节。然而应该了解,这些附图与详细的描述并非意在将本发明限定于所揭示的特定形式,相反地,本发明是要涵盖落入本发明权利要求所界定的精神与范畴内的所有修改、等价物以及替代物。
具体实施方式
现在参照图1,该图显示一示例性微处理器100的一实施例的方框图。图中微处理器100配置用来执行储存在***内存内的指令(未示出)。这些指令中的多个可能对同样储存在***内存的数据进行操作。应注意的是,***内存实际上可能分布于整个计算机***且可能被一个或以上的微处理器,例如微处理器100所存取。在一实施例中,微处理器100为采用x86架构的微处理器的一实施例,例如AthlonTM处理器。然而,其它的实施例可考虑包括其它类型微处理器。
在所示的实施例中,微处理器100包括第一级(L1)高速缓冲存储器以及第二条L1高速缓存:指令高速缓存101A与数据高速缓存101B。依据执行情况,该L1高速缓存可为一统一的高速缓存或为一分叉式高速缓存。在每一情况中,为求简化,指令高速缓存101A及数据高速缓存101B可适当地合称为L1高速缓存。微处理器100也包括预译码单元102以及分支预测逻辑电路103,皆紧密连接到指令高速缓存101A。微处理器100也包括提取及译码控制单元105,其连接到指令译码器104;这两者皆连接到指令高速缓存101A。指令控制单元106可能连接到指令译码器104以接收来自指令译码器104的指令且向调度器118分派操作。调度器118连接到指令控制单元106以接收由指令控制单元106所分派的操作以及向执行单元124发出操作。执行单元124包括一加载/储存单元126,其被配置用来进行对数据高速缓存101B的存取。执行单元124所产生的结果可作为操作数数值,可用于随后发出的指令且/或储存于寄存器堆(未示出)。进一步,微处理器100包括片上(on-chip)L2高速缓存130,系连接到指令高速缓存101A,数据高速缓存101B与***内存之间。
指令高速缓存101A可以在执行前储存指令。和指令高速缓存101A相关联的功能可能有指令提取(读取),指令预提取,指令预译码以及分支预测。可通过缓冲接口单元140藉由来自***内存的预提取码提供指令码给指令高速缓存101A,或者,如下面的进一步描述,来自L2高速缓存130的预提取码。指令高速缓存101A可用不同的配置(例如,集合结合(set-associative),完全结合(fully-associative),或直接映射(direct-mapped))实现。在一实施例中,指令高速缓存101A可被配置用来储存多条缓存线,其中指令高速缓存101A的给定缓存线内的字节数目是根据具体实施情况而定。更进一步,在一实施例中,指令高速缓存101A可在静态随机存取存储器(SRAM)内实现,然而在其它实施例中也可考虑包括其它类型的存储器。应注意的是,在一实施例中,指令高速缓存101A可以包括,例如用来控制缓存线填充、替换以及一致性用的控制电路(未示出)。
指令译码器104可被配置用来将指令译码成操作,该指令可利用储存于通称为微码只读存储器(microcode ROM)或MROM(未示出)的片上只读存储器中的操作直接或间接地被译码。指令译码器104可将特定的指令译码成在执行单元124中执行的操作。精简指令可对应于单一操作。在有些实施例中,更复杂的指令可对应于多重操作。
指令控制单元106可以控制操作向执行单元124的分派。在一实施例中,指令控制单元106可以包括一重排序缓冲器,该缓冲器用来保留从指令译码器104接收的操作。进一步,指令控制单元106可被配置用来控制操作的停用(retirement)。
在指令控制单元106的输出端所提供的操作与立即数可被发送到调度器118。调度器118可以包括一个或更多的调度器单元(例如整数调度器单元与浮点调度器单元)。应注意的是,在此所用的调度器是一种能侦测操作何时就绪以供执行且将就绪操作发给一个或更多执行单元的装置。例如,保留站(Reservation Station)可为一调度器。每一调度器118能够保留数个等候发出到执行单元124的待处理操作的操作信息(例如,位编码的执行位以及操作数数值,操作数标记及/或立即数)。在一些实施例中,每一个调度器118可能不提供操作数数值的储存。反而,每一调度器会监视在寄存器堆中可取得的发出的操作及结果,以确认操作数数值何时可被执行单元124读取。在一些实施例中,每一调度器118可以与一专用的执行单元124相关联。在其它的实施例中,单一调度器118可将操作发出到一个以上的执行单元124。
在一实施例中,执行单元124可以包括一执行单元,例如整数执行单元。然而在其它实施例中,微处理器100可能为一超标量处理器,在此情况中执行单元124可以包括多重执行单元(例如多个整数执行单元(未示出))被配置用来执行加减的整数算术操作,以及移位、旋转、逻辑操作和分支操作。此外,也可以包括一个或更多浮点单元(未示出)以提供浮点操作。可以配置一个或一个以上的执行单元来执行地址的产生,以加载及储存要被加载/储存单元126执行的内存操作。
可以配置加载/储存单元126以提供执行单元124与数据高速缓存101B之间的接口。在一实施例中,加载/储存单元126可被配置具有加载/储存缓冲器(未示出),该加载/储存缓冲器具有用于待处理加载或储存的数据及地址信息的数个存储位置。该加载/储存单元126也可以拿较新储存指令与较旧加载指令进行依赖检查,以确定数据一致性的保持。
数据高速缓存101B是提供用来储存在加载/储存单元126与***内存之间所传输的数据的高速缓冲存储器。与上述的指令高速缓存101A类似,数据高速缓存101B可用包括集合结合配置(setassociative configuration)在内的各种特定内存配置来实现。在一实施例中,数据高速缓存101B以及指令高速缓存101A作为分开的高速缓冲存储器单元来实现。尽管如上所述,也可考虑选择其它类型的实施例,其中数据高速缓存101B和指令高速缓存101A可作为统一的高速缓存来实现。在一实施例中,数据高速缓存101B可以储存多条缓存线,其中数据高速缓存101B的给定缓存线内的字节数目根据特定实施例而定。与指令高速缓存101A类似,在一实施例中,数据高速缓存101B也可在静态随机存取存储器中实现,然而应考虑在其它实施例中可包括其它类型存储器。应注意的是,在一实施例中,数据高速缓存101B可以包括,例如用来控制缓存线填充、替换以及一致性的控制电路(未示出)。
L2高速缓存130也为高速缓冲存储器且可配置用来储存指令且/或数据。在所示的实施例中,L2高速缓存130是片上高速缓存,且可设定为完全结合形式的或集合结合形式的或两者的结合。在一实施例中,L2高速缓存130可以储存多条缓存线,其中L2高速缓存130的给定缓存线内的字节数目根据特定实施例而定。然而,L2高速缓存的缓存线大小不同于L1高速缓存的缓存线大小,以下将进一步详述。应注意的是,L2高速缓存130可以包括,例如用来控制缓存线填充、替换以及一致性的控制电路(未示出)。
总线接口单元140可被配置用来传输在***内存与L2高速缓存130之间的指令和数据以及***内存与L1指令高速缓存101A和L1数据高速缓存101B之间的指令和数据。在一实施例中,总线接口单元140可以包括用来在写入周期流水线期间缓冲写入事务用的缓冲器(未示出)。
下面将结合图2的描述更详细地描述其细节,在一实施例中,指令高速缓存101A与数据高速缓存101B两者的缓存线大小都与L2高速缓存130的缓存线大小不同。进一步,在另一实施例中,将在下面结合图3的说明进行描述,指令高速缓存101A与数据高速缓存101B两者都包括具多个有效位的标记,用来控制对应于L2高速缓存子线的各个单独L1缓存线的存取。该L1缓存线大小可小于L2缓存线大小(例如其子单元)。该较小的L1缓存线大小使得数据可以在较少周期内在L2与L1高速缓存之间传输。因此,可以更有效地使用L1高速缓存。
请参考图2,其显示的是高速缓存子***200的一实施例的方框图。为求简单及清晰,已在图1示出的组件仍用相同编号。在一实施例中,高速缓存子***200为图1微处理器100的部分。高速缓存子***200包括经由多条高速缓存传输总线255连接到L2高速缓存130的L1高速缓存101。进一步,高速缓存子***200包括一高速缓存控制器210,其经由高速缓存请求总线215A及215B分别连接到L1高速缓存101及L2高速缓存130,应注意的是,虽然L1高速缓存101在图2所示为统一的高速缓存,但是应考虑在其它实施例中可包括分开的指令与数据高速缓存单元,例如图1的指令高速缓存101A及L1数据高速缓存101B。
如上所述,存储器的读写操作一般用数据的缓存线作为一致性的单位,而随后作为传输到以及传输自***内存的数据单位。高速缓存一般被分割成称之为缓存线的固定尺寸的区段。该高速缓存对应于与缓存线同大小的内存中的区域分配这些线,并对齐于与缓存线大小相同的地址边界。例如在有32字节线长的高速缓存内,各缓存线对齐于32字节边界上。缓存线的大小根据特定实施例而定,尽管有许多典型的实施例使用32-字节或64-字节的缓存线。
在所示的实施例中,L1高速缓存101包括一标记部分230与一数据部分235。一个缓存线通常包括如以上所述的有大量数据字节与其它信息(未示出),例如状态信息及预译码信息。标记部分230内的每一标记为独立的标记且可以包括对应于数据部分235内的数据缓存线的地址信息。标记内的地址信息用来当有内存请求时,确认给定的数据片断是否在高速缓存内。例如,一个内存请求包括请求数据的地址。标记部分250内的比较逻辑电路(未示出)将所请求地址与储存在标记部分250内的每一标记的地址信息作比较。如果所请求地址与一给定标记相关联的地址之间存在匹配,则标示为如上所述的命中。如果没有匹配的标记,则标示为没有命中。在所示的实施例中,标记A1对应于数据A1,标记A2对应于数据A2,依此类推,其中每一数据单位A1,A2…Am+3为L1高速缓存101内的一缓存线。
在所示的实施例中,L2高速缓存130还包括标记部分245以及数据部分250。标记部分245内的每一标记包括对应于数据部分250内的数据缓存线的地址信息。在所示的实施例中,每一缓存线包括四条数据子线。例如,标记B1对应于包括四条指定为B1(0-3)的数据子线的缓存线B1,标记B2对应于包括四条指定为B2(0-3)的数据子线的缓存线B2,依此类推。
因此,在所示的实施例中,L1高速缓存101内的一缓存线等于L2高速缓存130的一子线。例如,L2高速缓存130的缓存线大小(例如四条数据子线)为L1高速缓存101的缓存线大小的倍数(例如一条数据子线)。在所示的实施例中,L2缓存线大小是该L1缓存线大小的四倍。在其它实施例中,L2与L1高速缓存之间可以有不同的缓存线大小比例,其中L2缓存线大小要大于L1缓存线大小。因此,如下面的进一步描述,响应单一内存请求,L2高速缓存130与***内存(或L3高速缓存)之间传输数据量大于响应单一内存请求的L1高速缓存101与L2高速缓存130之间传输的数据量。
L2高速缓存130也可以包括标示数据单位与哪一个L1高速缓存相关联的信息(未示出)。例如,虽然在所示实施例中L1高速缓存101为统一的高速缓存,应考虑另一实施的可能性,其中L1高速缓存分开为指令高速缓存以及数据高速缓存。进一步,应考虑其它实施例的可能有两个以上的L1高速缓存。在又一实施例中,分别具有一L1高速缓存的多个处理器全都可以存取L2高速缓存130。于是,L2高速缓存130可被配置用来告知一给定L1高速缓存何时该给定L1高速缓存的数据被替代,以及如有必要,写回数据或将对应的数据作废。
当一高速缓存在L1高速缓存101与L2高速缓存130之间传输时,每一微处理器周期或“拍(beat)”中,在高速缓存传输总线255上所传输的数据量等于一L2高速缓存子线,也等于一L1缓存线。一周期或“拍”可指该微处理器内的一时钟周期或时钟边缘。在其它实施例中,一周期或“拍”可能需要数个时钟才能完成。在所示的实施例中,每一高速缓冲存储器有独立的输入端口与输出端口以及对应的高速缓冲存储器传输总线255,因此在L1与L2高速缓存之间的数据传输可以是同时及双向的。然而,在只具有单一高速缓存传输总线255的实施例中,应考虑每一周期在一个方向中只能有一次传输。在其它的实施例中,可考虑在一周期中传输其它数量的数据子线。如下面更详细的描述,通过在一给定周期中允许小于在高速缓冲存储器之间传输的L2缓存线的数据区段,不同缓存线大小可以使L1高速缓存101的使用更有效率。在一实施例中,数据的一子线可能为16字节,然而在其它实施例中,其中数据子线可以包括其它数目的字节。
在一实施例中,高速缓存控制器210可以包括用来排队(queuing)请求的多个缓冲器(未示出)。高速缓存控制器210可以包括逻辑电路(未示出),其用以控制在L1高速缓存101与L2高速缓存130之间数据的传输。此外,高速缓存控制器210可以控制在请求者与高速缓存子***200之间的数据流。应注意的是,尽管在所示的实施例中,高速缓存控制器210示出的是一分开的区段,应考虑其它实施例的可能性,其中高速缓存控制器210的部分可以置于L1高速缓存101内且/或L2高速缓存130内。
下面将结合图4的说明描述更详细的细节,对可高速缓冲的存储器的请求可以被高速缓存控制器210所接收。高速缓存控制器210可以经由高速缓存请求总线215A对L1高速缓存101发出给定请求,如果高速缓存没有命中,高速缓存控制器210可以经由高速缓存请求总线215B对L2高速缓存130发出请求。响应L2高速缓存的命中,执行一L1高速缓存填充,从而传输一L2高速缓存子线到L1高速缓存101。
现在参照图3,其显示高速缓存子***300的一实施例的方框图。为求简单及清晰,在图1与图2中已披露的组件仍用相同编号。在一实施例中,高速缓存子***200为图1的微处理器100的一部分。高速缓存子***300包括通过多条高速缓存传输总线255连接到L2高速缓存130的L1高速缓存101。进一步,高速缓存子***300包括经由高速缓存请求总线215A及215B分别连接到L1高速缓存101及L2高速缓存130的高速缓存控制器310。应注意的是,虽然在图3所示的L1高速缓存101为统一的高速缓冲存储器,应考虑包括分开的指令及数据高速缓存单元的其它实施例的可能性,例如图1的指令高速缓存101A以及L1数据高速缓存101B。
在所示的实施例中,图3的L2高速缓存130可以包括与图2的L2高速缓存130同样特性以及类似的操作方式。例如,标记部分245内的每一标记包括对应于数据部分250内的数据缓存线的地址信息。在所示的实施例中,每一缓存线包括四条数据子线。例如,标记B1对应于包括四条指定为B1(0-3)的数据子线的缓存线B1。标记B2对应于包括四条指定为B2(0-3)的数据子线的缓存线B2,以此类推。在一实施例中,每一L2缓存线为64字节且每一子线为16字节,然而应考虑其它实施例的可能性,其中L2缓存线及子线包括其它数目的字节。
在所示的实施例中,L1高速缓存101包括一标记部分330以及一数据部分335。标记部分330内的每一标记为一独立标记且可以包括地址信息,该地址信息对应于一组在数据部分335内四条可独立存取的L1缓存线。进一步,每一标记包括数个有效位,被指定为0-3。每个有效位对应于组内一条不同的L1缓存线。例如,标记A1对应于被指定为A1(0-3)的四条L1缓存线而标记A1内每一有效位对应于A1数据的单独缓存线的不同的一条(例如,0-3)。标记A2对应于命名为A2(0-3)的四条L1缓存线以及标记A2内每一有效位对应于A2数据的单独缓存线的不同的一条(例如,0-3),以此类推。虽然一般高速缓存内的每一标记对应于一条缓存线,标记部分330内的每一标记包括在L1高速缓存101内的有四条L1缓存线的一组(例如,A1(0)…A1(3))的基地址。然而,有效位允许组内每一L1缓存线可独立存取,因而可如L1高速缓存101的分开的缓存线一样处理。应注意的是,虽然每一标记显示为有四条L1缓存线及四个有效位,应考虑其它实施例的可能性,其它数目的数据缓存线及其对应的有效位可以与一给定标记相关联。在一实施例中,数据的L1缓存线可以为16字节。然而应考虑其它实施例的可能性,其中L1缓存线包括其它数目的字节。
标记部分330的每一L1标记内的地址信息可以用来确认在内存请求时一给定的数据片段是否在高速缓冲存储器内,且各标记有效位可以标示给定群组内的一对应的L1缓存线是否有效。例如,一个内存请求包括请求数据的地址。标记部分330内的比较逻辑电路(未示出)将所请求地址与储存在标记部分330内的每一标记的地址信息作比较。如果所请求地址与关联于给定标记的地址匹配,而且对应于包含指令或数据的缓存线的有效位已被声明,则标示为如前面所述的命中。如果没有匹配的标记或有效位没有被声明,则标示L1高速缓存为没有命中。
因此,在图3所示的实施例中,L1高速缓存101内的一缓存线等于L2高速缓存130的一子线。此外,L1标记对应于相同数目字节的数据作为L2标记。然而,L1标记有效位允许在L1与L2高速缓存之间传输单独的L1缓存线。例如,L2高速缓存130的缓存线大小(例如四条数据子线)为L1高速缓存101的缓存线大小(例如一条数据子线)的倍数。在所示的实施例中,L2缓存线大小是L1缓存线大小的四倍。在其它实施例中,在L2与L1高速缓存之间可以有不同的缓存线大小比例,其中L2缓存线大小大于L1缓存线大小。因此,如下面进一步所描述,响应单一内存请求在L2高速缓存130与***内存(或L3高速缓存)之间所传输的数据量大于响应单一内存请求在L1高速缓存101与L2高速缓存130之间所传输的数据量。
当一高速缓存在L1高速缓存101与L2高速缓存之间传输时,每一微处理器周期或“拍”在高速缓存传输总线255上所传输的数据量等于一L2高速缓存子线,且等于L1缓存线。一个周期或“拍”可为该微处理器内的一时钟周期或时钟边缘。在其它实施例中,一个周期或“拍”可能需要数个时钟周期才能完成。在所示的实施例中,每一高速缓存有分开的输入端口与输出端口以及对应的高速缓存传输总线255,因此在L1与L2高速缓存之间的数据传输可以是同时及双向的。然而,在只有单一高速缓冲存储器传输总线255的实施例中,应考虑每一周期在一个方向中只能有一次传输的可能性。在其它的实施例中,应考虑一周期中可传输其它数量的数据子线的可能性。如下面将更详细描述的细节,通过在一给定周期中允许一数据区段小于在高速缓存之间传输的L2缓存线,不同缓存线尺寸可以使L1高速缓存101的使用更有效率。
在一实施例中,高速缓存控制器310可以包括用来排队高速缓存请求的多个缓冲器(未示出)。高速缓存控制器310可以包括(未示出)控制在L1高速缓存101与L2高速缓存130之间数据的传输的逻辑电路。此外,高速缓存控制器310可以控制在请求者与高速缓存子***300之间数据的流量。应注意的是,尽管在所示的实施例中,高速缓存控制器310被表示成一分开的区段,应考虑其它实施例的可能性,其中高速缓存控制器310的部分可以驻留在L1高速缓存101及/或L2高速缓存130内。
在微处理器100操作时,对可高速缓冲的存储器的请求可被高速缓存控制器3310所接收。高速缓存控制器310可以经由高速缓存请求总线215A发出对L1高速缓存101的给定请求。例如,响应一读取请求,在L1高速缓存101内的比较逻辑电路(未示出)可以使用有效位结合地址标记以确认是否有L1高速缓存命中。如果一高速缓存命中发生,则对应于所请求指令或数据的多个单位数据可从L1高速缓存101取得并且返回给请求者。
然而,如果高速缓存没有命中,高速缓存控制器310可经由高速缓存请求总线215B发出对L2高速缓存130的请求。如果L2高速缓存130的读取请求命中,则对应于所请求指令或数据的多个单位数据可从L2高速缓存130取得并且返回给请求者。此外,将包括缓存线命中的所请求指令或数据部分的L2子线作为一高速缓存填充加载到L1高速缓存101中。为了能提供高速缓存填充,一条或一条以上的L1缓存线可根据实施例特定的收回算法(eviction algorithm)由L1高速缓存101收回(例如,最近最少被使用算法)。因为L1标记对应于有四条L1缓存线的一组,对应于最近加载的L1缓存线的有效位在与其关联的标记中被声明,并且放弃在同一组内的对应于其它L1缓存线的各有效位,因为该标记的基地址对其他L1缓存线已不再有效。因此,不只收回L1缓存线以空出空间给最近加载的L1缓存线,三条额外的L1缓存线也被收回或被无效。取决于已收回缓存线的一致性状态,在数据“交换”时将已收回的缓存线加载到L2高速缓存130或是被无效。
或者,如果读取请求在L1高速缓存101没有命中并且在L2高速缓存130也没有命中,则对***内存激活一内存读取周期(或者是,如果有,则可以向更高级高速缓存提出请求(未示出))。在一实施例中,L2高速缓存130是包含的。于是,为响应一内存读取周期,包括所请求指令或数据的整条的数据L2缓存线由***内存返回给微处理器100。因此可将整条缓存线经由高速缓存填充加载到L2高速缓存130内。此外,可将包含已填充L2缓存线的所请求指令或数据部分的L2子线加载到L1高速缓存101,并且与最近加载的L1缓存线相关联的L1标记的有效位被声明。进一步,如上所述,放弃拥有与该标记相关联的其它L1缓存线的有效位,从而使这些L1缓存线无效。在另一实施例中,L2高速缓存130是独占性的,因此只有包含所请求指令或数据部分的L1大小的缓存线可以从***内存返回并加载到L1高速缓存101中。
虽然在图2与图3所示的L1高速缓存101的实施例可以改善L1高速缓存的效率可超过公知L1高速缓存,但是可以折衷使用其中之一。例如,图3的L1高速缓存101的标记部分330的配置与图2所示的实施例的标记部分230的配置比较,可能需要较少内存空间。然而如上所述,使用图3的标记排列,该高速缓存填充一致性隐含可能造成各L1缓存线被无效,因有多条无效的L1缓存线而可能导致一些低效率。
现在参照图4,其描述图2的高速缓冲存储器子***200的实施例的操作的流程图。在微处理器100操作期间,高速缓存控制器210(方框400)接收一可高速缓冲的存储器的读取请求。如果读取请求在L1高速缓存101中(方框405)命中,则对应于所请求指令或数据的多个字节数据可从L1高速缓存101取得并且返回给微处理器(方框410)的请求功能单元。然而,如果读取没有命中(框图405),则高速缓存控制器210发出读取请求到L2高速缓存130(框图415)。
如果读取请求在L2高速缓存130(框图420)命中,则缓存线命中的所请求指令或数据部分可以从L2高速缓存130取得并且返回给请求者(框图425)。此外,包括缓存线命中的请求指令或数据部分的L2子线也作为一高速缓存填充(框图430)被加载到L1高速缓存101。为了能提供该高速缓存填充,可根据实施例特定的收回算法(框图435)从L1高速缓存101收回一L1缓存线以空出空间。如果没有L1缓存线被收回,则请求完成(框图445)。如果L1缓存线被收回(框图435),则根据已收回缓存线(框图440)的一致性状态,在数据“交换”时已收回的L1缓存线可加载到L2高速缓存130作为一L2子线或是被无效,而完成请求(框图445)。
另外,如果读取请求在L2高速缓存130(框图420)也没有命中,则对***内存激活一内存读取周期(或者,如果有,则可以向更高级高速缓存提出请求(未示出))(框图450)。在一实施例中,L2高速缓存130是包容的。于是,为响应一内存读取周期,包括所请求指令或数据的整条的数据L2缓存线由***内存返回给微处理器100(框图455)。因此可将整条缓存线经由高速缓存填充加载到L2高速缓存130(框图460)。此外,包含已填充L2缓存线的所请求指令或数据部分的L2子线可以如上所述地加载到L1高速缓存101(框图430)。操作如上所述继续。在另一实施例中,L2高速缓存130为独占性的,因此只有包含所请求指令或数据部分的L1大小的缓存线可以从***内存返回并且加载到L1高速缓存101。
请参阅图5,其显示的是计算机***的一实施例的方框图。为求简单及清晰,已在图1到图3揭示的组件仍用相同编号。计算机***500包括微处理器100,其经由内存总线515连接到***内存510。微处理器100进一步经由***总线525连接到I/O节点520。I/O节点520经由图形总线535连接到图形适配器530。I/O节点520也经由外设总线连接到***设备540。
在所示的实施例中,微处理器100经由内存总线515直接连接到***内存510。因此,为了控制对***内存510的存取,微处理器可以包括例如图1的总线接口单元140内的内存控制器(未示出)。然而应注意的是,在其它实施例中,***内存510可以通过I/O节点520连接到微处理器100。在这种实施例中,I/O节点520可以包括一内存控制器(未示出)。进一步,在一实施例中,微处理器100包括一高速缓存子***,例如图2的高速缓存子***200。在其它实施例中,微处理器100包括一高速缓存子***,例如图3的高速缓存子***300。
***内存510可以包括任何合适的内存装置。例如,在一实施例中,***内存可以包括一个或一个以上的动态随机存取存储器(DRAM)库(bank)。然而应考虑其它实施例可能包括其它的内存装置及配置。
在所示的实施例中,I/O节点520连接到图形总线535、外设总线540以及***总线525。于是,I/O节点520可以包括不同的总线接口逻辑电路(未示出),其可以包括用来管理不同总线间事务流的缓冲器以及控制逻辑电路。在一实施例中,***总线525可为与HyperTransportTM技术兼容的基于分组的互连总线。在此类实施例中,可以配置I/O节点520以处理分组事务。在其它实施例中,***总线525可为典型的共享总线结构,例如前端总线(FSB)。
进一步,图形总线535可以与加速图形端口(AGP)总线技术兼容。在一实施例中,图形适配器530可为任何不同种类的图形装置,其配置用来产生及显示用于显示的图像。外设总线545可为一般外设总线的例子,例如***设备互连(PCI)总线。***设备540可为任何类型的***设备,例如调制解调器或声卡。
尽管以上实施例的细节描述相当详细,本领域技术人员一旦完全了解以上揭示,显然可进行不同的改变与修改。所附权利要求范围意在涵盖所有在本发明保护范围内的这种改变与修改。
产业利用性
本发明通常可用于微处理器领域。
Claims (9)
1.一种微处理器,其包括:
执行单元,其配置用来执行指令;
高速缓存子***,其连接到该执行单元,该高速缓存子***包括:
第一高速缓冲存储器,其配置用来储存第一多条缓存线,每一缓存线具第一字节数的数据;
第二高速缓冲存储器,其连接到该第一高速缓冲存储器且配置用来储存第二多条缓存线,每一缓存线具有第二字节数的数据,其中该第二多条缓存线的每一条包括各自的多条子线,每一子线具有该第一字节数的数据。
2.根据权利要求1所述的微处理器,其中响应在该第一高速缓冲存储器中高速缓存没有命中而在该第二高速缓冲存储器中高速缓存命中,在一给定的时钟周期中,数据的各自的子线由该第二高速缓冲存储器传输到该第一高速缓冲存储器。
3.根据权利要求1所述的微处理器,其中响应在该第一高速缓冲存储器中高速缓存没有命中且在该第二高速缓冲存储器中高速缓存亦没有命中,在一给定的时钟周期中,数据的各自第二缓存线由***内存传输到该第二高速缓冲存储器。
4.根据权利要求1所述的微处理器,其中响应该第一数据字节数的数据从该第二高速缓冲存储器传输到该第一高速缓冲存储器,在一给定的时钟周期中,该多条第一缓存线的给定之一从该第一高速缓冲存储器传输到该第二高速缓冲存储器。
5.根据权利要求1所述的微处理器,其中该第一高速缓冲存储器包括多个标记,每一标记对应于该第一多条缓存线的各自的一条。
6.根据权利要求1所述的微处理器,其中该第一高速缓冲存储器包括多个标记,其中每一标记对应于该第一多条缓存线的各自的一组。
7.根据权利要求6所述的微处理器,其中该多个标记的每一标记包括多个有效位,其中每个位对应于该第一多条缓存线各自的一组的缓存线中的一条。
8.一种计算机***,其包括:
***内存,其配置用来储存指令及数据;
微处理器,其连接到该***内存,其中该微处理器包括:
执行单元,其配置用来执行这些指令;以及
高速缓存子***,其连接到该执行单元,其中该高速缓存子***包括:
第一高速缓冲存储器,其配置用来储存第一多条缓存线,
每一缓存线具有第一字节数的数据,
第二高速缓冲存储器,其连接到该第一高速缓冲存储器且配置用来储存第二多条缓存线,该第二多条缓存线的每一缓存线具有第二字节数的数据,其中该第二多条缓存线的每一条包括各自的多条子线,每一子线具有该第一字节数的数据。
9.一种用于在微处理器内高速缓存数据的方法,该方法包括:
储存第一多条缓存线,其中每一缓存线具有第一字节数的数据;
储存第二多条缓存线,其中每一缓存线具有第二字节数的数据,其中该第二多条缓存线的每一条包括各自的多条子线,每一子线具有该第一字节数的数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/304,606 US20040103251A1 (en) | 2002-11-26 | 2002-11-26 | Microprocessor including a first level cache and a second level cache having different cache line sizes |
US10/304,606 | 2002-11-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1820257A true CN1820257A (zh) | 2006-08-16 |
Family
ID=32325258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2003801042980A Pending CN1820257A (zh) | 2002-11-26 | 2003-11-06 | 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 |
Country Status (8)
Country | Link |
---|---|
US (1) | US20040103251A1 (zh) |
EP (1) | EP1576479A2 (zh) |
JP (1) | JP2006517040A (zh) |
KR (1) | KR20050085148A (zh) |
CN (1) | CN1820257A (zh) |
AU (1) | AU2003287519A1 (zh) |
TW (1) | TW200502851A (zh) |
WO (1) | WO2004049170A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859287A (zh) * | 2009-07-10 | 2010-10-13 | 威盛电子股份有限公司 | 微处理器、存储器子***以及快取数据的方法 |
CN102455978A (zh) * | 2010-11-05 | 2012-05-16 | 瑞昱半导体股份有限公司 | 高速缓存存储器的存取装置与存取方法 |
CN104662520A (zh) * | 2012-09-26 | 2015-05-27 | 高通股份有限公司 | 用于管理具有不同高速缓存能力的跨页指令的方法和设备 |
CN104769560A (zh) * | 2012-11-06 | 2015-07-08 | 先进微装置公司 | 基于缓冲器充满度而向高速缓存进行预取 |
CN105027094A (zh) * | 2013-03-07 | 2015-11-04 | 高通股份有限公司 | 用以加速高速缓冲存储器存取的高速缓冲存储器填充的关键词优先排序以及相关基于处理器的***及方法 |
CN105095104A (zh) * | 2014-04-15 | 2015-11-25 | 华为技术有限公司 | 数据缓存处理方法及装置 |
CN109739780A (zh) * | 2018-11-20 | 2019-05-10 | 北京航空航天大学 | 基于页级映射的动态二级缓存闪存转换层地址映射方法 |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7502901B2 (en) * | 2003-03-26 | 2009-03-10 | Panasonic Corporation | Memory replacement mechanism in semiconductor device |
US7421562B2 (en) * | 2004-03-01 | 2008-09-02 | Sybase, Inc. | Database system providing methodology for extended memory support |
US7571188B1 (en) * | 2004-09-23 | 2009-08-04 | Sun Microsystems, Inc. | Cache abstraction for modeling database performance |
WO2007077539A1 (en) * | 2006-01-04 | 2007-07-12 | Nxp B.V. | Methods and system for interrupt distribution in a multiprocessor system |
KR100817625B1 (ko) * | 2006-03-14 | 2008-03-31 | 장성태 | 분리 1차 명령어 캐쉬를 구비한 프로세서 시스템 및 그제어 방법 |
EP2477109B1 (en) | 2006-04-12 | 2016-07-13 | Soft Machines, Inc. | Apparatus and method for processing an instruction matrix specifying parallel and dependent operations |
EP2523101B1 (en) * | 2006-11-14 | 2014-06-04 | Soft Machines, Inc. | Apparatus and method for processing complex instruction formats in a multi- threaded architecture supporting various context switch modes and virtualization schemes |
JP5012016B2 (ja) * | 2006-12-28 | 2012-08-29 | 富士通株式会社 | キャッシュメモリ装置、演算処理装置及びキャッシュメモリ装置の制御方法 |
US8239638B2 (en) | 2007-06-05 | 2012-08-07 | Apple Inc. | Store handling in a processor |
US7836262B2 (en) | 2007-06-05 | 2010-11-16 | Apple Inc. | Converting victim writeback to a fill |
US7814276B2 (en) * | 2007-11-20 | 2010-10-12 | Solid State System Co., Ltd. | Data cache architecture and cache algorithm used therein |
JP2009252165A (ja) * | 2008-04-10 | 2009-10-29 | Toshiba Corp | マルチプロセッサシステム |
US8327072B2 (en) * | 2008-07-23 | 2012-12-04 | International Business Machines Corporation | Victim cache replacement |
JP5293001B2 (ja) * | 2008-08-27 | 2013-09-18 | 日本電気株式会社 | キャッシュメモリ装置及びその制御方法 |
US8209489B2 (en) * | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
US8347037B2 (en) * | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
US8499124B2 (en) * | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
US8117397B2 (en) * | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
US8489819B2 (en) * | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
US8949540B2 (en) * | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
US8285939B2 (en) * | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
US8347036B2 (en) * | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
US9189403B2 (en) * | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
US10228949B2 (en) | 2010-09-17 | 2019-03-12 | Intel Corporation | Single cycle multi-branch prediction including shadow cache for early far branch prediction |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8688913B2 (en) | 2011-11-01 | 2014-04-01 | International Business Machines Corporation | Management of partial data segments in dual cache systems |
EP2689330B1 (en) | 2011-03-25 | 2022-12-21 | Intel Corporation | Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines |
TWI533129B (zh) | 2011-03-25 | 2016-05-11 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心執行指令序列程式碼區塊 |
TWI520070B (zh) | 2011-03-25 | 2016-02-01 | 軟體機器公司 | 使用可分割引擎實體化的虛擬核心以支援程式碼區塊執行的記憶體片段 |
WO2012162188A2 (en) | 2011-05-20 | 2012-11-29 | Soft Machines, Inc. | Decentralized allocation of resources and interconnect structures to support the execution of instruction sequences by a plurality of engines |
TWI548994B (zh) | 2011-05-20 | 2016-09-11 | 軟體機器公司 | 以複數個引擎支援指令序列的執行之互連結構 |
KR101862785B1 (ko) * | 2011-10-17 | 2018-07-06 | 삼성전자주식회사 | 타일 기반 렌더링을 위한 캐쉬 메모리 시스템 및 캐슁 방법 |
US8935478B2 (en) * | 2011-11-01 | 2015-01-13 | International Business Machines Corporation | Variable cache line size management |
CN104040490B (zh) | 2011-11-22 | 2017-12-15 | 英特尔公司 | 用于多引擎微处理器的加速的代码优化器 |
CN108427574B (zh) | 2011-11-22 | 2022-06-07 | 英特尔公司 | 微处理器加速的代码优化器 |
US20130205088A1 (en) * | 2012-02-06 | 2013-08-08 | International Business Machines Corporation | Multi-stage cache directory and variable cache-line size for tiered storage architectures |
US8904100B2 (en) | 2012-06-11 | 2014-12-02 | International Business Machines Corporation | Process identifier-based cache data transfer |
US9710399B2 (en) | 2012-07-30 | 2017-07-18 | Intel Corporation | Systems and methods for flushing a cache with modified data |
US9916253B2 (en) | 2012-07-30 | 2018-03-13 | Intel Corporation | Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput |
US9229873B2 (en) | 2012-07-30 | 2016-01-05 | Soft Machines, Inc. | Systems and methods for supporting a plurality of load and store accesses of a cache |
US9740612B2 (en) * | 2012-07-30 | 2017-08-22 | Intel Corporation | Systems and methods for maintaining the coherency of a store coalescing cache and a load cache |
US9244841B2 (en) * | 2012-12-31 | 2016-01-26 | Advanced Micro Devices, Inc. | Merging eviction and fill buffers for cache line transactions |
WO2014150991A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for implementing a reduced size register view data structure in a microprocessor |
WO2014150971A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for dependency broadcasting through a block organized source view data structure |
US10140138B2 (en) | 2013-03-15 | 2018-11-27 | Intel Corporation | Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation |
US9811342B2 (en) | 2013-03-15 | 2017-11-07 | Intel Corporation | Method for performing dual dispatch of blocks and half blocks |
CN105247484B (zh) | 2013-03-15 | 2021-02-23 | 英特尔公司 | 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法 |
US9886279B2 (en) | 2013-03-15 | 2018-02-06 | Intel Corporation | Method for populating and instruction view data structure by using register template snapshots |
CN105210040B (zh) | 2013-03-15 | 2019-04-02 | 英特尔公司 | 用于执行分组成块的多线程指令的方法 |
US10275255B2 (en) | 2013-03-15 | 2019-04-30 | Intel Corporation | Method for dependency broadcasting through a source organized source view data structure |
WO2014150806A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines, Inc. | A method for populating register view data structure by using register template snapshots |
US9891924B2 (en) | 2013-03-15 | 2018-02-13 | Intel Corporation | Method for implementing a reduced size register view data structure in a microprocessor |
US9904625B2 (en) | 2013-03-15 | 2018-02-27 | Intel Corporation | Methods, systems and apparatus for predicting the way of a set associative cache |
US9569216B2 (en) | 2013-03-15 | 2017-02-14 | Soft Machines, Inc. | Method for populating a source view data structure by using register template snapshots |
US9513904B2 (en) | 2013-10-15 | 2016-12-06 | Mill Computing, Inc. | Computer processor employing cache memory with per-byte valid bits |
US9933980B2 (en) * | 2014-02-24 | 2018-04-03 | Toshiba Memory Corporation | NAND raid controller for connection between an SSD controller and multiple non-volatile storage units |
JP6093322B2 (ja) * | 2014-03-18 | 2017-03-08 | 株式会社東芝 | キャッシュメモリおよびプロセッサシステム |
JP6674085B2 (ja) * | 2015-08-12 | 2020-04-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
CN106469020B (zh) * | 2015-08-19 | 2019-08-09 | 旺宏电子股份有限公司 | 高速缓存元件与控制方法及其应用*** |
US10019367B2 (en) | 2015-12-14 | 2018-07-10 | Samsung Electronics Co., Ltd. | Memory module, computing system having the same, and method for testing tag error thereof |
KR102491651B1 (ko) * | 2015-12-14 | 2023-01-26 | 삼성전자주식회사 | 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법 |
US10255190B2 (en) | 2015-12-17 | 2019-04-09 | Advanced Micro Devices, Inc. | Hybrid cache |
US10262721B2 (en) * | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
JP6249120B1 (ja) * | 2017-03-27 | 2017-12-20 | 日本電気株式会社 | プロセッサ |
US10642742B2 (en) * | 2018-08-14 | 2020-05-05 | Texas Instruments Incorporated | Prefetch management in a hierarchical cache system |
DE112019007666T5 (de) * | 2019-08-27 | 2022-06-15 | Micron Technology, Inc. | Schreibpuffersteuerung in einem verwalteten Speichersystem |
US11216374B2 (en) * | 2020-01-14 | 2022-01-04 | Verizon Patent And Licensing Inc. | Maintaining a cached version of a file at a router device |
JP7143866B2 (ja) | 2020-03-25 | 2022-09-29 | カシオ計算機株式会社 | キャッシュ管理プログラム、サーバ、キャッシュ管理方法、および情報処理装置 |
US11989581B2 (en) * | 2020-04-17 | 2024-05-21 | SiMa Technologies, Inc. | Software managed memory hierarchy |
US12014182B2 (en) | 2021-08-20 | 2024-06-18 | International Business Machines Corporation | Variable formatting of branch target buffer |
CN117312192B (zh) * | 2023-11-29 | 2024-03-29 | 成都北中网芯科技有限公司 | 一种Cache存储***及访问处理方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493026A (en) * | 1982-05-26 | 1985-01-08 | International Business Machines Corporation | Set associative sector cache |
US5732241A (en) * | 1990-06-27 | 1998-03-24 | Mos Electronics, Corp. | Random access cache memory controller and system |
US5361391A (en) * | 1992-06-22 | 1994-11-01 | Sun Microsystems, Inc. | Intelligent cache memory and prefetch method based on CPU data fetching characteristics |
US5577227A (en) * | 1994-08-04 | 1996-11-19 | Finnell; James S. | Method for decreasing penalty resulting from a cache miss in multi-level cache system |
US5996048A (en) * | 1997-06-20 | 1999-11-30 | Sun Microsystems, Inc. | Inclusion vector architecture for a level two cache |
US5909697A (en) * | 1997-09-30 | 1999-06-01 | Sun Microsystems, Inc. | Reducing cache misses by snarfing writebacks in non-inclusive memory systems |
US6119205A (en) * | 1997-12-22 | 2000-09-12 | Sun Microsystems, Inc. | Speculative cache line write backs to avoid hotspots |
US20010054137A1 (en) * | 1998-06-10 | 2001-12-20 | Richard James Eickemeyer | Circuit arrangement and method with improved branch prefetching for short branch instructions |
US6397303B1 (en) * | 1999-06-24 | 2002-05-28 | International Business Machines Corporation | Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines |
US6745293B2 (en) * | 2000-08-21 | 2004-06-01 | Texas Instruments Incorporated | Level 2 smartcache architecture supporting simultaneous multiprocessor accesses |
US6751705B1 (en) * | 2000-08-25 | 2004-06-15 | Silicon Graphics, Inc. | Cache line converter |
US6647466B2 (en) * | 2001-01-25 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy |
-
2002
- 2002-11-26 US US10/304,606 patent/US20040103251A1/en not_active Abandoned
-
2003
- 2003-11-06 CN CNA2003801042980A patent/CN1820257A/zh active Pending
- 2003-11-06 AU AU2003287519A patent/AU2003287519A1/en not_active Abandoned
- 2003-11-06 KR KR1020057009464A patent/KR20050085148A/ko not_active Application Discontinuation
- 2003-11-06 EP EP03781761A patent/EP1576479A2/en not_active Withdrawn
- 2003-11-06 WO PCT/US2003/035274 patent/WO2004049170A2/en not_active Application Discontinuation
- 2003-11-06 JP JP2004555382A patent/JP2006517040A/ja active Pending
- 2003-11-14 TW TW092131935A patent/TW200502851A/zh unknown
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541771A (zh) * | 2009-07-10 | 2012-07-04 | 威盛电子股份有限公司 | 微处理器、存储器子***以及快取数据的方法 |
CN101859287B (zh) * | 2009-07-10 | 2012-08-22 | 威盛电子股份有限公司 | 微处理器、存储器子***以及快取数据的方法 |
CN102541771B (zh) * | 2009-07-10 | 2015-01-07 | 威盛电子股份有限公司 | 微处理器以及快取数据的方法 |
CN101859287A (zh) * | 2009-07-10 | 2010-10-13 | 威盛电子股份有限公司 | 微处理器、存储器子***以及快取数据的方法 |
CN102455978A (zh) * | 2010-11-05 | 2012-05-16 | 瑞昱半导体股份有限公司 | 高速缓存存储器的存取装置与存取方法 |
CN102455978B (zh) * | 2010-11-05 | 2015-08-26 | 瑞昱半导体股份有限公司 | 高速缓存存储器的存取装置与存取方法 |
CN104662520B (zh) * | 2012-09-26 | 2018-05-29 | 高通股份有限公司 | 用于管理具有不同高速缓存能力的跨页指令的方法和设备 |
CN104662520A (zh) * | 2012-09-26 | 2015-05-27 | 高通股份有限公司 | 用于管理具有不同高速缓存能力的跨页指令的方法和设备 |
CN104769560A (zh) * | 2012-11-06 | 2015-07-08 | 先进微装置公司 | 基于缓冲器充满度而向高速缓存进行预取 |
CN104769560B (zh) * | 2012-11-06 | 2017-04-12 | 先进微装置公司 | 基于缓冲器充满度而向高速缓存进行预取 |
CN105027094A (zh) * | 2013-03-07 | 2015-11-04 | 高通股份有限公司 | 用以加速高速缓冲存储器存取的高速缓冲存储器填充的关键词优先排序以及相关基于处理器的***及方法 |
CN105095104A (zh) * | 2014-04-15 | 2015-11-25 | 华为技术有限公司 | 数据缓存处理方法及装置 |
CN109739780A (zh) * | 2018-11-20 | 2019-05-10 | 北京航空航天大学 | 基于页级映射的动态二级缓存闪存转换层地址映射方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1576479A2 (en) | 2005-09-21 |
WO2004049170A3 (en) | 2006-05-11 |
US20040103251A1 (en) | 2004-05-27 |
KR20050085148A (ko) | 2005-08-29 |
JP2006517040A (ja) | 2006-07-13 |
AU2003287519A8 (en) | 2004-06-18 |
WO2004049170A2 (en) | 2004-06-10 |
AU2003287519A1 (en) | 2004-06-18 |
TW200502851A (en) | 2005-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1820257A (zh) | 包括具有不同缓存线大小的第一级高速缓存及第二级高速缓存的微处理器 | |
US5778434A (en) | System and method for processing multiple requests and out of order returns | |
US10802987B2 (en) | Computer processor employing cache memory storing backless cache lines | |
CN1248118C (zh) | 以推测方式使高速缓存中的缓存行失效的方法及*** | |
US7389402B2 (en) | Microprocessor including a configurable translation lookaside buffer | |
US5784590A (en) | Slave cache having sub-line valid bits updated by a master cache | |
CN1240000C (zh) | 用于改进超高速缓存性能的输入/输出页面删除确定 | |
US5671444A (en) | Methods and apparatus for caching data in a non-blocking manner using a plurality of fill buffers | |
EP2430551B1 (en) | Cache coherent support for flash in a memory hierarchy | |
US5680572A (en) | Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers | |
US6119205A (en) | Speculative cache line write backs to avoid hotspots | |
EP2542973B1 (en) | Gpu support for garbage collection | |
US5787478A (en) | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy | |
US20100332716A1 (en) | Metaphysically addressed cache metadata | |
EP0461926A2 (en) | Multilevel inclusion in multilevel cache hierarchies | |
CN1279456C (zh) | 局部化高速缓存块刷新指令的方法、编译器和*** | |
CN1690952A (zh) | 根据多组高速缓存组预测来选择执行的指令的装置和方法 | |
CN1848095A (zh) | 在多核心/多线程处理器中高速缓存的公平共享 | |
CN101063957A (zh) | 管理锁定的高速缓冲存储器中的组替换的***和方法 | |
CN1436332A (zh) | 转译后备缓冲器清除滤波器 | |
US8145870B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation | |
CN101918925A (zh) | 用于处理器的高关联性高速缓存的第二次机会取代机制 | |
US7721047B2 (en) | System, method and computer program product for application-level cache-mapping awareness and reallocation requests | |
JPH10214226A (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
CN111767081A (zh) | 用于加速存储处理的装置、方法和*** |
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 |