联系响应与储存缓冲高速缓存线的微处理器及其装置与方法

文档序号:6396071阅读:119来源:国知局

专利名称::联系响应与储存缓冲高速缓存线的微处理器及其装置与方法
技术领域
:本发明涉及高速缓存的领域,尤其涉及利用储存缓冲区和响应缓冲区以维持微处理器中的高速缓存协调性(coherency)的领域,也就是联系响应与储存缓冲高速缓存线的微处理器及其装置与方法。
背景技术
:微处理器所执行的各项操作中,有一重要的部分即为自内存中读取或写入数据。其中自内存中读取数据通常意指加载(load),而写入数据则通常意指储存(store)。一般来说,微处理器执行加载和储存是依据可存取内存的指令。但加载和储存还可因为微处理器的其它必要操作的原因而由微处理器所执行,例如加载分页表(pagetable)信息或逐出(evict)一高速缓存线至内存等。相较于微处理器中的其它操作,内存的存取相对较慢,因此现在的微处理器实行了高速缓存的方式来改进。高速缓存(或称快取)为一种微处理器中的内存,其可用来储存系统内存中的一数据子集,且一般来说远小于系统内存。微处理器的高速缓存间的数据转换远比微处理器和内存之间的数据传输来得快。当微处理器自系统内存处读取数据时,此微处理器也可储存数据于其高速缓存中,因此当下次微处理器需要读取该项数据时,其可快速地自高速缓存中读取,远比自系统内存中读取来得快。同样地,当微处理器下一次欲写入数据至一系统内存地址,而该系统内存地址的数据储存于高速缓存内时,此微处理器可以简单地将之存入高速缓存,而非一定要马上将数据写入内存,此动作即一般所谓的回写高速缓存(write-backcaching)。而这种于高速缓存中存取数据的能力可延长存取内存的间隔,并由此减少整体数据存取时间以大大地增进系统效能。高速缓存可将数据储存于高速缓存线内。一个正常的高速缓存线大小为32bytes,其为可于高速缓存和系统内存中进行数据传输的最小单位。意即当微处理器欲自内存中读取一可高速缓存数据块时,其读取了包含有数据块的高速缓存线内的所有数据,并将整个高速缓存线储存于高速缓存中。同样地,当一新的高速缓存线需要被写入高速缓存中时,其中该高速缓存使一修改的高速缓存线被置换,则微处理器可把整个被置换的高速缓存线写入内存中。现在的高速缓存多已管线化。意即现在的高速缓存由多重阶层所组成,这些多重阶层耦接在一起则可形成一管线。执行储存至一高速缓存的动作基本上需要两个或以上穿过高速缓存管线的步骤。在第一个步骤里,储存动作的内存地址提供给高速缓存,以决定该地址是否现存(即已被快取)于高速缓存中,若的确存在,则该高速缓存线的状态将与储存地址相联系。而在第二步骤里,储存动作的数据将被写入高速缓存中。为了调和此两个步骤,微处理器通常使用储存缓冲器来保持储存数据和储存地址以用于第二步骤中。此外,高速缓存是典型由微处理器中多重功能模块所存取的一资源,因此这些功能方块必须进行仲裁以存取高速缓存。而储存缓冲器可用来保持储存数据与地址,直到储存动作赢得了仲裁使高速缓存进行储存为止。当一储存动作地址于高速缓存中命中(hit)时,数据通常会马上被写入高速缓存线中。而若储存地址未中(miss),则数据将无法立即被写入高速缓存。这主要是因为要存入的数据几乎都比一个满的高速缓存线所能储存的来得少,而如上所述,高速缓存线为高速缓存与系统内存之间传输的最小数据单元。若储存数据被写入的高速缓存,而现存于该高速缓存的高速缓存线已无剩下的空间容纳时,该高速缓存稍后必须写入部分的高速缓存线至内存中,这是不被允许的。解决上述问题的方法,可以简单地将储存数据写入内存而非高速缓存中,即仅高速缓存负载。而另一种解决方法则先读取由内存中储存地址所关联的高速缓存线,再利用高速缓存线合并储存数据,最后再将更新过的高速缓存线存入高速缓存中。这种高速缓存型态通常称为写入配置(write-allocate)高速缓存,因为供给高速缓存线所需的空间,是于写入动作于高速缓存未中时配置于高速缓存中。现在的微处理器通常包括有缓冲器以接收自内存所读取的数据,例如读取自内存以供给一写入配置动作的高速缓存线。而这些缓冲器通常称为反应缓冲器。现代的微处理器通常均使用多重微处理器或/及多重高速缓存阶层。例如,每一个微处理器可能都包括有阶层1(L1)和阶层2(L2)两个高速缓存。此外,每一阶层上的高速缓存可被分割成相异指令高速缓存(distinctinstructioncache)与数据高速缓存。自一分享内存中高速缓存数据的多重微处理器的出现也导致了高速缓存结合(cachecoherence)的问题发生,即自一微处理器通过其高速缓存所见的内存相异于自另一微处理器通过其高速缓存所见的内存。举例来说,假设内存中的一个位置X上包含有一「1」的值,则微处理器A可自内存中的地址X处读取,并高速缓存该「1」的值以存入其高速缓存中。接着,微处理器B也自内存中的地址X处读取,并高速缓存该「1」的值以存入其高速缓存中。然后微处理器A写入一个「0」值至其高速缓存中并将内存的地址X中的值更新为「0」。此时若微处理器A在地址X处,将会接收到来自其高速缓存中的「0」值,但若微处理器B在X处,则其将会接收到来自其高速缓存中的「1」值。为了维持内存中通过不同高速缓存所视的一贯性,微处理器一般乃使用一种高速缓存协调协议(cachecoherencyprotocol),此一高速缓存协调协议可维持一高速缓存线状态值给每一个高速缓存线。一常见且广泛使用的高速缓存协调协议例子即为MESI协议。所谓的MESI即为修改(Modified)、互斥(Exclusive)、共享(Shared)以及无效(Invalid)等字的缩写,此也即为高速缓存线的四种可能状态或状态值。储存缓冲器与响应缓冲器皆可为其所保持的高速缓存线维持一高速缓存线状态,就如同高速缓存可为其所保持的高速缓存线维持一高速缓存线状态一样。当一高速缓存线存在于一高速缓存、储存缓冲器和/或反应缓冲器中时,将会发生要求高速缓存线状态更新的事件。而高速缓存线状态改变事件的一个例子即为自一高速缓存中逐出(eviction)一高速缓存线。一高速缓存线会被逐出的原因有可能是其为近期最少使用的高速缓存线,因此将其逐出以空出空间给新的高速缓存线。而一被逐出的高速缓存线状态系将被更新为「无效」。要求高速缓存线状态改变事件的另一个例子为一窥探(snoop)动作。许多系统被设计来执行窥探动作,其是高速缓存协调协议的一部份。每一个高速缓存可监测(或窥探)每一个微处理器总线的执行,用以决定该高速缓存是否具有一高速缓存线的复制,此一复制相关由另一个微处理器所起始的总线执行或是相关于微处理器内部的另一高速缓存。高速缓存系依据所窥探的执行型态以及所相关联的高速缓存线状态来执行不同的动作。窥探动作可能为一无效的窥探,此时MESI状态势必将更新为无效状态。而若窥探动作为一共享的窥探,则MESI状态将更新为共享状态。如前述的内容,在一些条件下,例如当储存动作于一写入配置(write-allocate)高速缓存发生未中时,一响应缓冲器将会被配置以接收相关联的高速缓存线,而该高速缓存线是来自系统内存或一低阶高速缓存。若储存的动作是导致一响应缓冲器被配置,则当状态改变事件发生时,高速缓存线状态将于储存缓冲器与响应缓冲器之间维持协调。公知的处理器已包含逻辑单位以更新储存缓冲高速缓存线状态以及响应缓冲高速缓存线状态,当这些事件其中之一发生时。公知技术的主要缺点为利用逻辑单元一起于储存缓冲器与响应缓冲器上更新MESI状态的情况颇为复杂,尤其是当缓冲器数目增加时。而其复杂性所造成的缺点至少有下列三点。第一,此复杂性于其设计时具有错误倾向(error-prone)。换言之,其容易于更新逻辑中设计出错误(bug),却又难以于各种条件与事件的可能结合中检测出错误来。第二,复杂性意味需要更大的控制电路系统,其将会消耗过度的芯片真实资源进而影响芯片效能。第三,此复杂性可能会影响关键的频率路径,其关系着微处理器可运行的频率速度。因此,本发明的目的是提供一种可以减少维持高速缓存线状态协调性的复杂度的方法。
发明内容本发明提供一装置与方法,其可将储存缓冲器MESI状态与响应缓冲器MESI状态相联系,直到储存缓冲器MESI状态回到高速缓存中为止,如此一来只有响应缓冲器MESI状态必须被维持。少数的匹配位可提供给储存缓冲器,这些匹配位可指示储存缓冲器地址与反应缓冲器地址匹配,因此当撤回储存缓冲器地址至高速缓存时,响应缓冲MESI状态可被使用,如此当一响应缓冲器被配置时,可减轻于储存缓冲器中维持MESI状态的需求。且相对应地,为达到上述的目的,本发明提供一种联系响应与储存缓冲高速缓存线的装置,其用于具有一高速缓存、一储存缓冲器以及多个响应缓冲器的一微处理器中,该装置可在响应缓冲器维持相同的高速缓存线地址时,减轻对于维持该储存缓冲器的高速缓存线状态与该多个各响应缓冲器的其中之一的高速缓存线状态间协调性的需求。此装置包括有多个匹配位关联单元,而这些匹配位关联单元指明一储存缓冲器与多个响应缓冲器的其中之一的关联性,其中该响应缓冲器维持有一同样的高速缓存线地址。此装置还包括有控制逻辑单元,其耦接至该多个匹配位关联单元,控制逻辑单元可依据一储存动作来更新高速缓存。若该多个匹配位关联单元载明储存缓冲器与多个响应缓冲器其中之一之间的关联性时,则控制逻辑单元会以储存于该多个响应缓冲器的其中之一的高速缓存线状态来更新高速缓存。否则,控制逻辑单元以储存于储存缓冲器上的高速缓存线状态来更新高速缓存。根据上述构想的装置,其中还包括第二控制逻辑单元,其耦接至该多个匹配位关联单元,当该高速缓存线地址于微处理器中之一写入配置高速缓存发生未中时,该第二控制逻辑单元可植入该多个匹配位关联单元以载明该关系。根据上述构想的装置,其中还包括第二控制逻辑单元,其耦接至该匹配位关联单元,当该高速缓存线地址于微处理器中的一高速缓存发生命中时,该第二控制逻辑单元可植入该多个匹配位关联单元以载明该关系,其中该高速缓存指示该高速缓存线具有一共享状态。在另一方面,本发明提供一种联系响应与储存缓冲高速缓存线的装置,其用于具有一高速缓存、一储存缓冲器以及响应缓冲器的微处理器中,此一装置可减轻维持储存缓冲器和响应缓冲器之间的高速缓存线状态协调性的需求。该装置包括有第一控制逻辑单元,其耦接来接收各种事件信号,此第一控制逻辑单元配置一响应缓冲器用以前述的储存动作以及维持其所配置的响应缓冲器的状态以响应该事件信号。该装置也包括有一第二控制逻辑单元,其耦接至第一控制逻辑单元,该第二控制逻辑单元可产生一控制值来载明配置的一响应缓冲器所维持的高速缓存线状态。此外,该装置更包括有一第三控制逻辑单元,其耦接以接收该控制值。此第三控制逻辑单元可依据该控制值来决定自哪一个响应缓冲器接收状态以及利用哪一个响应缓冲器来更新高速缓存。其中,该数种事件信号载明了一或多种可影响一高速缓存线状态的事件,其中高速缓存线状态相关于一储存至高速缓存的动作。根据上述构想的装置,其中,该储存缓冲器的一部份可储存与该储存动作有关的该高速缓存线的一第二高速缓存线状态,其中若该控制值指示某个响应缓冲器维持该高速缓存线的该状态,则该第二控制逻辑单元不维持该高速缓存线的该第二高速缓存线状态;而若该控制值指示并无任何响应缓冲器正维持该高速缓存线的该状态,则该第二控制逻辑单元可维持该高速缓存线的该第二高速缓存线状态。根据上述构想的装置,其中还包括多个比较器,其耦接至该响应缓冲器,该比较器可比较由该储存动作所载明的一储存地址与储存于该响应缓冲器中的一相对应高速缓存线地址。根据上述构想的装置,其中,若该多个比较器指示该储存地址无相对应的储存于该响应缓冲器的高速缓存线地址可以匹配时,该第一控制逻辑单元将配置一空置的单个响应缓冲器;而若该复数个比较器指示该储存地址有相对应的储存于该响应缓冲器的高速缓存线地址可以匹配时,则该第一控制逻辑单元将配置该匹配的单个响应缓冲器。在另一方面,本发明提供一微处理器,此微处理器包括有多个响应缓冲器,每一个响应缓冲器具有一第一部分以储存第一高速缓存线状态。此微处理器还包括有一储存缓冲器,而该储存缓冲器则具有用以储存高速缓存线第二状态的一第二部分以及用以储存结合信息(associationinformation)的一第三部分,其中该高速缓存线的第二状态相关于一储存动作。该微处理器还包括有控制逻辑单元,其耦接至储存缓冲器,此控制逻辑单元可选择性地根据该结合信息以维持第二状态。若该结合信息指示多个响应缓冲器于第一部分中正在维持该第一高速缓存线状态,则该控制逻辑单元将不会维持第二状态。根据上述构想的微处理器,其中还包括一第二控制逻辑单元,其耦接至该储存缓冲器,该第二控制逻辑单元可于该微处理器中更新一高速缓存,其中若该结合信息指示该单个响应缓冲器正维持该第一部份内的该第一高速缓存线状态,则该第二控制逻辑单元利用维持在该已配置的单个响应缓冲器内的第一部分的该第一高速缓存线状态。根据上述构想的微处理器,其中,若该结合信息指示并无任何响应缓冲器正维持该第一部份内的该第一高速缓存线状态,则该第二控制逻辑单元可利用该储存缓冲器的该第二部分的该高速缓存线的该第二状态来更新该高速缓存。根据上述构想的微处理器,其中,每一个该多个响应缓冲器系包括一第四部份以储存一内存地址,而该储存缓冲器包括一第五部份以储存该相关联的高速缓存线的一内存地址。根据上述构想的微处理器,其中,该结合信息可指示该单个响应缓冲器被配置以自一耦接至该微处理器的一内存中接收该相关高速缓存线。另一方面,本发明提供一微处理器。此微处理器包括有一写入配置高速缓存以及耦接至该写入配置高速缓存的多个响应缓冲器,每一个响应缓冲器可接收一高速缓存线以及维持该高速缓存线的协调状态,其中该高速缓存线配置以用于一储存动作在一高速缓存线未中时。此微处理器还包括有多个储存缓冲器,每一个储存缓冲器可储存由一储存动作所载明的一地址以及可储存匹配信息,而该匹配信息则记录由哪一个响应缓冲器来维持高速缓存线的协调状态,其中该高速缓存线的协调状态相关于储存动作地址。该微处理器也包括有控制逻辑单元,其耦接至多个响应缓冲器,该控制逻辑单元可依该多个响应缓冲器的其中之一的协调状态来更新高速缓存,其中响应缓冲器的协调状态则由该匹配信息所载明。根据上述构想的微处理器,其中,每一个该多个储存缓冲器系也用来保持该储存动作所载明的储存数据,其中该控制逻辑单元也可利用与该高速缓存线合并的该储存数据来更新该高速缓存。另一方面,本发明提供一种联系响应与储存缓冲高速缓存线的方法,当一储存缓冲器与一响应缓冲器储存由一储存动作所指明的相同高速缓存线地址时,本发明的方法可减轻对维持该储存缓冲器与该响应缓冲器间的高速缓存线协调性的需求。本发明的方法包括决定该储存动作是否需要一响应缓冲;若储存动作不需要一响应缓冲器,则植入匹配位关联单元以载明并无任何响应缓冲器正维持高速缓存线状态给与储存动作相关的一高速缓存线;而若储存动作的确需要一响应缓冲器,则植入匹配位关联单元以载明哪一个响应缓冲器正维持高速缓存线状态给该高速缓存线。根据上述构想的方法,其中还包括,若该储存动作不需要一响应缓冲器,利用维持在该多个匹配地址所载明的该单个响应缓冲器内的该高速缓存线状态来更新该微处理器内的一高速缓存;而若该储存动作不需要一响应缓冲器,则利用维持在该储存缓冲器内的一高速缓存线状态来更新该高速缓存。根据上述构想的方法,其中还包括,在利用维持在该多个匹配地址所载明的该单个响应缓冲器内的该高速缓存线状态来更新该微处理器内的一高速缓存的步骤前,更新维持在该多个匹配位关联单元所载明的该单个响应缓冲器内的该高速缓存线状态。另一方面,本发明提供一种在传输媒介的一计算机数据信号处理方法。此计算机数据信号处理方法包括提供计算机可读程序代码给一微处理器。而该程序代码包括有一第一程序代码以提供给多个响应缓冲器。每一个响应缓冲器具有一第一部份以储存第一高速缓存线状态。该程序代码还包括一第二程序代码以提供给一储存缓冲器,而该储存缓冲器则包括一第二部分以储存相关于一储存动作的一高速缓存线的第二状态,以及一第三部份以储存结合信息。该程序代码还包括一第三程序代码以提供控制逻辑单元,其耦接至该储存缓冲器,此控制逻辑单元可依据该结合信息来选择性地维持第二状态。此外,当该结合信息显示其中之一响应缓冲器于第一部份维持第一高速缓存线状态时,该控制逻辑单元将不会维持第二状态。本发明的优点在于可减少逻辑的复杂度,其要求维持一关联于一储存动作的高速缓存线的MESI状态。尤其在储存缓冲器数目增加时,其效能将更加浮现。而复杂性的减少更提供了减少潜在设计错误数目的效益,简化了控制电路系统,以及潜在地改良了关键频率路径已增快微处理器时钟速度。本发明的优点可在增加匹配位与相关逻辑的低成本状态下达到。本发明的其它特征、利益及优点,在参阅本说明书的其余部分和附图后,将可更加清楚。图1为本发明具有可选择性将响应缓冲高速缓存线状态与储存缓冲高速缓存线状态相联系的装置的一微处理器的方框示意2为本发明图1中的微处理器的操作流程图。100-微处理器102-L1数据高速缓存104-储存缓冲器控制逻辑106-响应缓冲控制逻辑108-比较器112-MESI状态114-地址116-数据118-匹配位122-MESI状态124-地址126-数据132-高速缓存更新控制逻辑142-储存数据144-地址146-更新数据148-L1MESI状态152-高速缓存命中信号154-动作型态信号156-内存特性信号158-事件信号162-储存缓冲MESI状态信号164-Match[30]信号166-已配置的响应缓冲索引信号168-响应缓冲MESI状态信号172-配置响应缓冲信号174-更新MESI状态174176-高速缓存线等数据178-比较结果信号182-储存缓冲器184-响应缓冲器具体实施方式请参考图1,其为本发明具有可选择性将响应缓冲高速缓存线状态与储存缓冲高速缓存线状态相联系的装置的一微处100的方框示意图。其中微处理器100具有多个管线化阶层。微处理器100还包括有一阶层一(L1)数据高速缓存102、多个储存缓冲器(SB)182、储存缓冲器控制逻辑104、多个响应缓冲器(RB)184,响应缓冲控制逻辑106,比较器108以及高速缓存更新控制逻辑132。在一较佳实施例中,L1数据高速缓存102为一64KB四向设置结合性(4-waysetassociative)高速缓存。高速缓存102可接收由一动作(如储存、加载或窥探)所载明的一地址144。在读取循环中,若地址144现存于高速缓存102,则高速缓存102可执行地址144的一检查表(lookup)并产生一高速缓存命中信号152的真值,否则将产生一伪值。若地址144现存于高速缓存102中,则高速缓存102将输出由地址144所载明的高速缓存线的一状态148,在一较佳实施例中,储存于高速缓存102中的L1MESI状态148是符合MESI高速缓存协调协议,其中M表示修改(Modified)、E表示互斥(Exclusive)、S表示共享(Shared)、I则表示无效(Invalid)。在一个写入循环中,高速缓存102利用更新数据146和/或更新MESI状态174来更新有地址144所载明的一通道。储存缓冲器控制逻辑104可自L1数据高速缓存102中接收L1MESI状态148和高速缓存命中信号152。储存缓冲器控制逻辑104也可接收一动作型态信号154以及一内存特性信号156。其中操作型态信号154可指示相关于地址144的动作为储存、加载或窥探等。内存特性信号156则可指示内存区域的特性,前述的动作可被导引至该内存区域,换言之,地址144存在于该内存区域内。有关内存特性的例子包括回写(write-back)、写保护(write-protected)、非高速缓存(non-cacheable)等等。在一较佳实施例中,微处理器100包括16个储存缓冲器182。储存缓冲器182可保持相关于一储存动作的储存数据142,直到该储存数据142可被写入高速缓存102为止。每一个储存缓冲器182均包括有一地址114部分,其可接收与储存由一储存动作所载明的地址144。每一个储存缓冲器182还包括有一数据部分116,其可接收与储存由一储存动作所载明的数据142。此外,每一个储存缓冲器182还包括有一状态部分112用以储存与存于数据部分116相关联的高速缓存线状态。在一较佳实施例中,微处理器100包括4个响应缓冲器184。响应缓冲器184可保持如高速缓存线等数据176,此数据176接收自系统内存阶层(比如系统内存或二阶高速缓存)中的一组件。在一较佳实施例中,高速缓存102为一写入配置高速缓存。因此若储存地址144于高速缓存102中未中时,一响应缓冲器184将被配置以自内存阶层中接收与未中储存地址144相关联的高速缓存线。保持于储存缓冲器中的储存数据116接着与保持于响应缓冲器184中的高速缓存线一起被合并以及被写入高速缓存102中。每一个响应缓冲器184均具有一地址部分124,其可接收与储存一储存动作的地址144。每一个响应缓冲器184也具有一数据部分126,其可接收与储存数据176。此外,每一个响应缓冲器184还具有一状态部分122以储存高速缓存线状态,其中该高速缓存线状态关联于储存于数据部分126中的高速缓存线。每一个储存缓冲器也具有匹配位(Matchbits)118。匹配位118属于控制位,其储存有不同的控制值以载明当储存缓冲器182与某一响应缓冲器182有相关联时的关系,其关系是分别于地址114和124部分中维持相同的高速缓存线地址。详细情形说明如下,匹配位118为结合信息,其可指示一响应缓冲器184依照其MESI状态部分122维持高速缓存线状态。在一较佳实施例中,匹配位118的数目相等于响应缓冲器184的数目。而图1的较佳实施例中,每一个储存缓冲器182搭配四个匹配位118,标示为0到3,其相对应于四个响应缓冲器184。匹配位118用来选择性地将储存缓冲器182的MESI状态112与储存于响应缓冲器184的MESI状态122相联系,其中响应缓冲器184的相对应匹配位118已被设置。如下所述,若匹配位118的其中之一已被设置,高速缓存更新控制逻辑132将使用由匹配位118所载明的响应缓冲器184的MESI状态122来更新高速缓存102以完成一储存动作,而非使用储存缓冲器182的MESI状态。图1的较佳实施例中,一次只有一个匹配位118可被设置。匹配位118可指示哪一个响应缓冲器184联系储存缓冲器182。也即,举例来说,若2号匹配位118被设置,则2号响应缓冲器184将与包含于储存缓冲器182内的储存动作相联系,而特别是2号响应缓冲器184包含与该储存动作相关的高速缓存线的现行MESI状态。储存缓冲控制逻辑104于Match[30]信号164上产生匹配位以存于储存缓冲器182的匹配位部分118中。此外,储存缓冲控制逻辑104于储存缓冲MESI状态信号162上产生起始高速缓存线以存于储存缓冲器182的MESI状态部分112中。再者,储存缓冲控制逻辑104可决定一响应缓冲器184何时需要被配置,以及何时确立一配置响应缓冲信号172具有真值。配置响应缓冲信号172用来响应缓冲控制逻辑106以要求一响应缓冲器184。响应缓冲控制逻辑106可退回已配置的响应缓冲器184的索引至已配置的响应缓冲索引信号166上。响应缓冲控制逻辑106可记录那一个响应缓冲器184的路径为空置,当被要求配置一响应缓冲器184时,退回一空置的响应缓冲器184的索引。而若储存动作地址144与一已配置的响应缓冲器184的地址124相匹配时,响应缓冲控制逻辑106将退回一已配置响应缓冲器184的索引。储存缓冲器控制逻辑104依据其不同的输入而产生储存缓冲MESI状态信号162与Match[30]信号164,而这些输入根据下列表1中所示的伪码所形成。<prelisting-type="program-listing">if(RBallocationnotrequired){SBMESIstate=L1MESIstate;Match[30]=b’0000;/*don’tneedtoassociateSBwithRB*/}else{SBMESIstate=X;/*don’tcare;*/if(allocatedRBindex=0/*RB0wasallocated*/Match[30]=b’0000;elseif(allocatedRBindex=1/*RB1wasallocated*/Match[30]=b’0010;elseif(allocatedRBindex=2/*RB2wasallocated*/Match[30]=b’0100;elseif(allocatedRBindex=3/*RB3wasallocated*/Match[30]=b’1000;}</pre>表1响应缓冲控制逻辑106可接收L1MESI状态信号148与高速缓存命中信号152。响应缓冲控制逻辑106可依据L1MESI状态信号148与高速缓存命中信号152来产生响应缓冲MESI状态信号168的起始值,并将起始的响应缓冲MESI状态168写入由已配置的响应缓冲索引166所载明的响应缓冲器184。若高速缓存命中信号152为真值,则响应缓冲控制逻辑106将L1MESI状态148写入响应换冲器184的MESI状态122;否则,响应缓冲控制逻辑106将一个不适合的数值(如INVALID)写入到响应换冲器184的MESI状态122。此外,响应缓冲控制逻辑106可接收事件信号158。事件信号158可指示事件的发生,其影响相关于保持在地址部分124中的储存地址的高速缓存线的高速缓存线状态,而响应缓冲控制逻辑106则可根据事件158来更新MESI状态122。下面表2所示的伪码说明了响应缓冲控制逻辑106如何动作,以在MESI状态改变事件发生时更新MESI状态122。<prelisting-type="program-listing">if(events=invalidatingsnoopRBMESIstate=INVALID;elseif(events=sharingsnoop)RBMESIstate=SHARED;elseif(events=evictionofthecacheline)RBMESIstate=INVALID;elseif(events=cownershipofcachelineobtained)RBMESIstate=EXCLUSIVe;elseif(events=cachelinearrivedinRB)RBMESIstate=EXCLUSIVE;</pre>表2在一较佳实施例中,比较器108包括有四个相对应于四个响应缓冲器184的四个比较器。每一个比较器108可用来比较动作地址144和其所对应的一个响应缓冲器184的地址124,由此产生四个比较结果信号178。若储存地址144与相对应的响应缓冲器184中的地址124相匹配,则一比较结果信号178将为真值。若储存缓冲控制逻辑104确立了配置响应缓冲信号172,且其中的一个比较结果信号178为真值,则响应缓冲控制逻辑106可在已配置的响应缓冲索引信号166上指明相对应的响应缓冲器184。否则,响应缓冲控制逻辑106将在已配置的响应缓冲索引信号166上指明下一个空置的响应缓冲器184。当有两个接续的储存动作关联相同的高速缓存线时,其中的一个比较结果信号178将为真值。在这样的情况下,第一储存动作已于其储存缓冲器182中设置其适当的匹配位118,而将储存缓冲器182的MESI状态112与已配置的响应缓冲器184的MESI相联系,并等待高速缓存线退回至响应缓冲器184中。一第二储存至相同高速缓存线的动作,也即存入相同储存地址144的动作系要求响应缓冲控制逻辑106配置一响应缓冲器184。响应缓冲控制逻辑106可检测出第二储存动作与第一储存动作关联于同样的高速缓存线,以及退回相同的响应缓冲器184的索引。因此,第二储存动作可接收到高速缓存线因为第一储存动作而被退回至响应缓冲器的好处,也因此可减轻再自内存中提取高速缓存线的需求。在此关系下,第二储存动作所享受到的优点与若其命中于高速缓存102时相似。此外,珍贵的响应缓冲器184资源也可更加有效率的运用,因为其它的响应缓冲器184不需要于空置的响应缓冲器184的集用场中配置来供第二储存动作所用。微处理器100也包括高速缓存更新控制逻辑132,其可自准备要更新高速缓存102的储存缓冲器182中接收储存缓冲MESI状态112。此外,高速缓存更新控制逻辑132可自四个响应缓冲器184的其中一处接收响应缓冲MESI状态122。高速缓存更新控制逻辑132还可自更新的储存缓冲器182处接收到匹配位118。高速缓存更新控制逻辑132可选择储存缓冲MESI状态112或是响应缓冲MESI状态122来依据匹配位118更新高速缓存102,而其中匹配位118则如下列表3所示的伪码。高速缓存更新控制逻辑132可利用所选择的MESI状态和(或)经合并的储存缓冲器182数据116与响应缓冲器184数据126来更新高速缓存102。<prelisting-type="program-listing">if(Match=1)updateMESIstate=RBMESIstate;elseif(Match[1]=1)updateMESIstate=RB[1]MESIstate;elseif(Match[2]=1)updateMESIstate=RB[2]MESIstate;elseif(Match[3]=1)updateMESIstate=RB[3]MESIstate;else/*noMatchbitsset*/updateMESIstate=SBMESIstate;</pre>表3请参考图2,其为本发明图1中的微处理器100的操作流程图。流程始于方框202。在方框202中,一储存动作是沿着微处理器100的管线往下进行并到达图1中的高速缓存102。储存动作地址144可为高速缓存102索引,其产生图1中的高速缓存命中信号152以及L1MESI状态148。接着流程自方框202往下至判断方框204。在判断方框204中,图1的储存缓冲控制逻辑104可决定图1中的一响应缓冲器184是否需要为了储存动作而被配置。在一较佳实施例中,当高速缓存命中信号152指示一高速缓存未中发生时,或当L1MESI状态148为无效,也或是当高速缓存命中信号152指示一L1MESI状态148为共享以表示一高速缓存命中发生时,一响应缓冲器184的配置将被要求至一内存区域型式,而共享的配置在此内存区域型式所载明。在一较佳实施例中,微处理器100为一x86微处理器,而共享的储存配置只在回写内存区域中有所载明。当一L1MESI状态148为共享而代表一高速缓存命中152发生时,微处理器100总线必须进行一执行动作以获得相关的高速缓存线的互斥所有权,进而修改该高速缓存线。若一响应缓冲器184配置并无被要求,例如若储存地址144为互斥或修改状态148以表示命中于高速缓存102时,流程会进行至方框206,否则进行至方框212。在方框206中,图1的储存缓冲控制逻辑104配置有一储存缓冲器182并于Match[30]信号164上产生b’0000的二位值,如此可清除图1中所有的匹配位118以如表1所列,指示已配置的储存缓冲器182不与任何响应缓冲器184产生任何关系。此外,图1的储存缓冲控制逻辑104可提供自高速缓存102处所接收的L1MESI状态148至储存缓冲MESI状态信号162以供储存于该已配置的储存缓冲器182的MESI状态112,其如表1所示。再者,图1的储存数据142以及储存地址144分别被存入储存缓冲器182中的数据116与地址114部分。流程接着前进至方框208。在方框208中,高速缓存更新控制逻辑132可利用储存缓冲器182的内容来更新高速缓存102,其如表3的“else”段落中所描述的情况。换句话说,高速缓存更新控制逻辑132利用储存于储存缓冲器182内的数据116与MESI状态112来更新高速缓存102,其如更新MESI状态174与更新数据146分别利用也储存于储存缓冲器182的地址114一般。在方框212中,储存缓冲控制逻辑104配置有一储存缓冲器182,且于配置响应缓冲信号172上产生一真值以要求一响应缓冲器184。此外,图1的储存数据142与储存地址144分别存入已配置的储存缓冲器182的数据116与地址114部分。接着流程进行至判断方框214。在判断方框214上,图1的响应缓冲控制逻辑106可检验图1的比较结果信号178以决定储存地址144是否与任何已配置的响应缓冲器184相匹配,若结果是肯定的,则流程进行至方框218,否则流程进行至方框216。在方框216中,响应缓冲控制逻辑106将下一个可用的响应缓冲器184的索引退回至储存缓冲控制逻辑104,其中该索引位于已配置的响应缓冲索引信号166上。接着流程进行至方框222。在方框218中,响应缓冲控制逻辑106将相应于比较结果信号178为真值的响应缓冲器184的索引退回至储存缓冲控制逻辑104,其中该索引位于已配置的响应缓冲索引信号166上。此外,一微处理器100总线请求将可产生,以使相关联的高速缓存线自内存中被提取至已配置的响应缓冲器184中,或是得到命中于高速缓存102中的一共享高速缓存线的互斥所有权。流程接着进行至方框222。在方框222中,储存缓冲控制逻辑104可于Match[30]信号164上产生一二位值,如此可设置适当的匹配位118进而如表1所列,指示已配置的储存缓冲器182与适当的响应缓冲器184MESI状态122产生关系。举例来说,若已配置的响应缓冲索引信号166载明了响应缓冲器[3]184,则储存缓冲控制逻辑104可于Match[30]信号164上产生一b’1000的二位值。流程接着进行至方框224。在方框224中,配置于方块212的储存缓冲器182可将由Match[30]信号164所载明的匹配值储存入匹配位118中,流程接着进行至方框226。在方框226中,响应缓冲控制逻辑106可于响应缓冲MESI状态信号168上产生相等于L1MESI状态148的初始高速缓存线状态,除非于高速缓存命中信号152指示为一高速缓存未中,如此一来初始高速缓存线响应缓冲MESI状态168将为「无效」。接着流程进行至方框228。在方框228上,方框226内于响应缓冲MESI状态信号168上产生的高速缓存线状态存入已配置的响应缓冲器184的MESI状态122部分。此外,储存地址144存于响应缓冲器184的地址124部分。流程接着进行至方框232。在方框232上,当图1的事件信号158所指示的事件发生时,响应缓冲控制逻辑106更新响应缓冲器184的MESI状态122,其如表2所示。流程接着进行至方框234。在方框234中,于方框218处所被请求的微处理器100总线循环将可完成,而被请求的高速缓存线自内存抵达至已配置的响应缓冲器184或是得到互斥所有权的高速缓存线,其依据在方块212中所配置的响应缓冲器184的目的不同而有不同的结果。流程接着进入方框236。在方框236中,高速缓存记忆更新控制逻辑132可从已配置的储存缓冲器182中检验匹配位118,以自响应缓冲器184中选择由匹配位118所载明的MESI状态122而作为更新MESI状态174,其如表3所述。流程接着进入方框238。在方框238中,高速缓存更新控制逻辑132可利用在方框236所选择的MESI状态以及储存于已配置的储存缓冲器182内的数据116来更新高速缓存102。若于方框212中所配置的响应缓冲器184相关于一写入配置动作,则储存缓冲器182储存数据116将与响应缓冲器184高速缓存线数据126合并以更新高速缓存102。也即,高速缓存更新控制逻辑132利用已合并的数据116和126以及储存于响应缓冲器184内的MESI状态122来更新高速缓存102,其如更新MESI状态174与更新数据146分别使用也储存于响应缓冲器184中的地址124一般。流程接着进入方框238。本发明的具体实施例已叙述如前,但本发明并未受限于此。以上所述,仅为本发明的较佳实施例,当不能以之限制本发明的范围,其为提供予本领域技术人员使用或制造本发明之用。例如,虽然本发明如前面所述相关于一L1数据高速缓存,本发明还是可用于其它不同的高速缓存中。此外,用以载明相关联的响应缓冲器的匹配位译码可有不同的实施态样。再者,前述的实施例中,虽然响应缓冲器配置来提取未中于一写回配置高速缓存中的高速缓存线,并获得一共享高速缓存线的关系,本发明还是可适用于相关于一储存动作请求响应缓冲器的配置时的状况。除了本发明中使用硬件的实施态样外,本发明也可实施于计算机可读程序代码(例如软件)(computerreadableprogramcode)中,例如可实施于用以储存程序代码的计算机可用(如可读)媒介(computerusablemedium)上。此程序代码可实现本发明所揭示的功能、构成或两者的结合。举例来说,其可利用计算机可读程序代码来完成,而该计算机可读程序代码的形式则可为通用的程序语言(如C、C++、JAVA等等)、GDSII格式或硬件描述语言(hardwaredescriptionlanguages,HDL),如VerilogHDL、VHDL、AHDL等等,也可为公知技术中其它种数据库、程序及/或电路撷存(circuitcapture)工具等。而此程序代码也可直接建于任何所知的计算机可用媒介中,其包括有半导体内存、磁盘与光盘(如CD-ROM,DVD-ROM等),也可内嵌于计算机可用(如可读)传输媒介中(如载波或任何其它种包括数字、光学或模拟基础的媒介)。就其本身而言,此程序代码可于通讯网路,如Internet与Intranet中传输。本发明于前述所提及的功能及/或结构可于一内嵌计算机码的处理器中表现出来,也可转换为硬件形式成为整个集成电路上的特定部份。当然本发明更可以结合硬件与程序代码的形式来实施。最后,虽然本发明为实现本发明的目的的最佳模式,本领域技术人员应该了解到的是,其在不脱离所附权利要求所定义的本发明的精神及范围之下,其可立即使用所揭示的观念及特定的具体实施例当作基础,来进行与本发明的目的相同的设计或修改其它结构。权利要求1.一种联系响应与储存缓冲高速缓存线的装置,其用于具有一高速缓存、一储存缓冲器、多个响应缓冲器的一微处理器中,该装置可于该响应缓冲器保持同样的高速缓存线地址时,减轻维持该储存缓冲器的高速缓存线状态与某该单个响应缓冲器的高速缓存线状态间的协调性的需求,该装置包括多个匹配位关联单元,用以在该储存缓冲器与某一该响应缓冲器都对应到同一高速缓存线地址时,指明其关联性;以及一控制逻辑单元,其耦接至该多个匹配位关联单元,以响应一储存动作来更新高速缓存,其中若该多个匹配位关联单元载明该储存缓冲器与某该响应缓冲器之间所存在的一关系时,则该控制逻辑单元可依据储存于该单个响应缓冲器内的高速缓存线状态来更新高速缓存,否则利用存于该储存缓冲器内的高速缓存线状态来更新高速缓存。2.如权利要求1所述的装置,其特征在于还包括第二控制逻辑单元,其耦接至该多个匹配位关联单元,当该高速缓存线地址于微处理器中之一写入配置高速缓存发生未中时,该第二控制逻辑单元可植入该多个匹配位关联单元以载明该关系。3.如权利要求1所述的装置,其特征在于还包括第二控制逻辑单元,其耦接至该匹配位关联单元,当该高速缓存线地址于微处理器中的一高速缓存发生命中时,该第二控制逻辑单元可植入该多个匹配位关联单元以载明该关系,其中该高速缓存指示该高速缓存线具有一共享状态。4.一种联系响应与储存缓冲高速缓存线的装置,其用于具有一高速缓存、一储存缓冲器、多个响应缓冲器的一微处理器中,该装置可减轻维持该储存缓冲器与该响应缓冲器间的高速缓存线状态协调性的需求,该装置包括一第一控制逻辑单元,其耦接以接收多个事件信号,该第一控制逻辑单元可配置单个响应缓冲器以提供给该储存动作,其还可于该已配置的单个响应缓冲器中响应该事件信号以维持该状态;一第二控制逻辑单元,其耦接至该第一控制逻辑单元,该第二控制逻辑单元可产生一控制值以载明已配置的该单个响应缓冲器维持该高速缓存线的该状态;以及一第三控制逻辑单元,其耦接以接收该控制值,并决定由哪一个响应缓冲器自高速缓存中接收该状态与更新高速缓存。其中该多个事件信号,其用以载明影响一高速缓存线的一状态的一或多个事件,其中该高速缓存线的状态与存至高速缓存的一储存动作相关。5.如权利要求4所述的装置,其特征在于,该储存缓冲器的一部份可储存与该储存动作有关的该高速缓存线的一第二高速缓存线状态,其中若该控制值指示某个响应缓冲器维持该高速缓存线的该状态,则该第二控制逻辑单元不维持该高速缓存线的该第二高速缓存线状态;而若该控制值指示并无任何响应缓冲器正维持该高速缓存线的该状态,则该第二控制逻辑单元可维持该高速缓存线的该第二高速缓存线状态。6.如权利要求4所述的装置,其特征在于还包括多个比较器,其耦接至该响应缓冲器,该比较器可比较由该储存动作所载明的一储存地址与储存于该响应缓冲器中的一相对应高速缓存线地址。7.如权利要求6所述的装置,其特征在于,若该多个比较器指示该储存地址无相对应的储存于该响应缓冲器的高速缓存线地址可以匹配时,该第一控制逻辑单元将配置一空置的单个响应缓冲器;而若该复数个比较器指示该储存地址有相对应的储存于该响应缓冲器的高速缓存线地址可以匹配时,则该第一控制逻辑单元将配置该匹配的单个响应缓冲器。8.一种微处理器,其包括多个响应缓冲器,其每一个均具有一第一部份以储存第一高速缓存线状态;一储存缓冲器,其具有一第二部分以储存由一储存动作所关联的一高速缓存线的第二状态,以及一第三部份以储存结合信息;以及一控制逻辑单元,其耦接至该储存缓冲器,该控制逻辑单元可基于该结合信息以选择性地维持该第二状态,其中若该结合信息指示该单个响应缓冲器正维持该第一部分中的该第一高速缓存线状态时,该控制逻辑单元不维持该第二状态。9.如权利要求8所述的微处理器,其特征在于还包括一第二控制逻辑单元,其耦接至该储存缓冲器,该第二控制逻辑单元可于该微处理器中更新一高速缓存,其中若该结合信息指示该单个响应缓冲器正维持该第一部份内的该第一高速缓存线状态,则该第二控制逻辑单元利用维持在该已配置的单个响应缓冲器内的第一部分的该第一高速缓存线状态。10.如权利要求9所述的微处理器,其特征在于,若该结合信息指示并无任何响应缓冲器正维持该第一部份内的该第一高速缓存线状态,则该第二控制逻辑单元可利用该储存缓冲器的该第二部分的该高速缓存线的该第二状态来更新该高速缓存。11.如权利要求8所述的微处理器,其特征在于,每一个该多个响应缓冲器系包括一第四部份以储存一内存地址,而该储存缓冲器包括一第五部份以储存该相关联的高速缓存线的一内存地址。12.如权利要求8所述的微处理器,其特征在于,该结合信息可指示该单个响应缓冲器被配置以自一耦接至该微处理器的一内存中接收该相关高速缓存线。13.一种微处理器,其包括一写入配置高速缓存;多个响应缓冲器,其耦接至该内存,每一个响应缓冲器均可接收一高速缓存线,其配置以提供给于该高速缓存上发生未中的一储存动作,且每一个响应缓冲器均可用来维持该高速缓存线的一协调状态;多个储存缓冲器,其每一个均可储存由该储存动作所载明的一地址,且可储存匹配信息,而该匹配信息载明该多个响应缓冲器的哪一个正维持与该储存动作地址相关的该高速缓存线的该协调状态;以及一控制逻辑单元,其耦接至该多个响应缓冲器,该控制逻辑单元利用与该匹配信息相关的该单个响应缓冲器的该协调状态来更新该高速缓存,以响应已载明的该单个响应缓冲器中的该高速缓存线的接收。14.如权利要求13所述的微处理器,其特征在于,每一个该多个储存缓冲器系也用来保持该储存动作所载明的储存数据,其中该控制逻辑单元也可利用与该高速缓存线合并的该储存数据来更新该高速缓存。15.一种联系响应与储存缓冲高速缓存线的方法其可于一储存缓冲器与多个响应缓冲器的其中之一储存相同的由一储存动作所载明的高速缓存线地址时,减轻维持该储存缓冲器与该单个响应缓冲器间的协调性的需求,该方法包括决定该储存动作是否需要一响应缓冲器;若该储存动作不需要一响应缓冲器,植入多个匹配位关联单元以载明无任何响应缓冲器系正维持高速缓存线状态给由该储存动作所关联的一高速缓存线;以及若该储存动作的确需要一响应缓冲器,植入该多个匹配位关联单元以载明哪一个响应缓冲器正维持高速缓存线状态给该高速缓存线。16.如权利要求15所述的方法,其特征在于还包括若该储存动作不需要一响应缓冲器,利用维持在该多个匹配地址所载明的该单个响应缓冲器内的该高速缓存线状态来更新该微处理器内的一高速缓存;而若该储存动作不需要一响应缓冲器,则利用维持在该储存缓冲器内的一高速缓存线状态来更新该高速缓存。17.如权利要求第16项所述的方法,其特征在于还包括在利用维持在该多个匹配地址所载明的该单个响应缓冲器内的该高速缓存线状态来更新该微处理器内的一高速缓存的步骤前,更新维持在该多个匹配位关联单元所载明的该单个响应缓冲器内的该高速缓存线状态。18.一种在一传输媒体内的计算机数据信号处理方法,其包括提供计算机可读程序代码给一微处理器,该程序代码包括第一程序代码以提供多个响应缓冲器,其中每个响应缓冲器具有一第一部份以储存第一高速缓存线状态;第二程序代码以提供一储存缓冲器,其具有一第二部份以储存与一储存动作相关联的一高速缓存线的第二状态,和一第三部份以储存结合信息;以及第三程序代码以提供控制逻辑单元,其耦接至该储存缓冲器,该控制逻辑单元可基于该结合信息以选择性地维持该第二状态,其中若该结合信息指示该单个响应缓冲器正维持该第一部分中的该第一高速缓存线状态时,该控制逻辑单元不维持该第二状态。全文摘要一种具有一装置的微处理器,此装置可于储存缓冲器与响应缓冲器储存相同的高速缓存线地址时,减轻维持储存缓冲器与响应缓冲器的高速缓存线状态间的协调性的需求。储存缓冲器包括多个匹配位关联单元。当一储存动作要求一响应缓冲器被配置时(例如,接收由一写入配置高速缓存的一储存未中所关联的一高速缓存线,或是获得命中于高速缓存的一共享高速缓存线的互斥所有权),控制逻辑单元可运用匹配位关联单元以载明哪一个响应缓冲器被配置。当状态改变事件发生时,控制逻辑单元可于已配置的响应缓冲器中更新高速缓存线状态,其接着用来更新高速缓存,因此可减轻储存缓冲器维持高速缓存线状态的需求。若储存地址与一已配置的响应缓冲器相匹配,则该响应缓冲器将被载明于匹配位关联单元中。文档编号G06F12/08GK1525335SQ200410031448公开日2004年9月1日申请日期2004年3月31日优先权日2003年4月25日发明者G·葛兰·亨利,罗德尼·E·胡克,E胡克,G葛兰亨利申请人:智慧第一公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1