专利名称:多处理器系统、系统板和高速缓存替换请求处理方法
技术领域:
本发明涉及一种在多处理器系统中用以控制来自CPU的请求的技术。尤 其涉及用于有效处理高速缓存替换(cache replacement)请求的多处理器系 统、系统板和高速缓存替换请求处理方法。
背景技术:
近年来,随着信息处理设备在各种领域的广泛应用,日益迫切要求多处 理器结构中的芯片组具有高处理功能。图11示出了多处理器系统的示例性结构。图11中所示的多处理器包括四个系统板100a至100d和地址交叉板(address crossbar board) 200。各系 统板100a至100d与地址交叉板200之间通过局部总线300a至300d、全局 总线301、局部信号通路302a至302d,以及全局信号通路303相互连接。系统板100a具有系统控制器110和四个CPU 120a至120d。 CPU 120a 和CPU 120b通过CPU总线130a连接至系统控制器110, CPU 120c和CPU 120d通过CPU总线130c连接至系统控制器110。其它系统板100b至100d 具有与系统板100a相似的结构。CPU 120a至120d分别具有高速缓冲存储器121a至121d和高速缓存标 记122a至122d。该实例假设用4路集联的方法来控制高速缓冲存储器121。系统控制器110具有探测标签(snoop tag) llla至llld、 CPU发出请 求队列112a至U2c、局部仲裁器113、请求处理部114以及请求执行部115。探测标签llla至llld分别对应于高速缓存标记122a至122d。 CPU发 出请求队列112为各CPU总线130保存由CPU 120发出的请求。其中,由 CPU 120a至120b发出的请求保存在CPU发出请求队列112a中,而由CPU 120c至120d发出的请求保存在CPU发出请求队列112c中。局部仲裁器113 将保存在CPU发出请求队列112中的请求输出到局部总线300a。请求处理部114对于从全局总线301发送的请求执行处理。请求处理部 114具有资源管理部116和请求执行激活部117。资源管理部116为处理请 求执行资源等的验证。请求执行激活部117激活请求执行部115和/或更新探 测标签111。地址交叉板200具有全局仲裁器210和可执行性确定电路220。全局仲 裁器210通过全局总线301,将从局部总线300a至300d输入的请求输出到 系统板100a至100d。可执行性确定电路220基于从局部信号通路302a至 302d输入的通知决定是否可以执行请求,并通过全局信号通路303将用于执 行该请求的决定结果和所需信息通知给各系统板100a至100d。图11所示系统的运行将以CPU 120a发出读取请求为例进行描述。于此 假设CPU 120a执行地址1000的读取操作。MESI协议用于缓存一致性。MESI 协议是一种缓存一致性协议,其通过将缓存中各线路分为M (修改状态 Modified)状态、E (排他状态Exclusive)状态、S状态(共享状态Shared) 和I (无效状态Invalid)来控制缓存的每个线。为了确定来自地址1000的数据是否存在于其高速缓冲存储器121中, CPU 120a首先搜索高速缓存标记122a。如果通过该搜索处理确定其高速缓 冲存储器121a中不存在有效数据,则CPU 120a发出读取请求到CPU总线 130a上。由CPU 120a发出的请求通过CPU发出请求队列112a、局部仲裁器113 及局部总线300a输入至全局仲裁器210。输入全局仲裁器210的请求通过全 局总线301通知给所有系统板100a至100d。在系统板100a上,从全局总线301向请求处理部114输入请求。请求 处理部114读取每个探测标签111,而资源管理部116检査是否存在用于处 理请求的资源等。检查结果结果通过局部信号通路302a发送给可执行性确 定电路220。可执行性确定电路220基于来自所有局部信号通路302a至302d的通知 决定是否执行这个请求,并将决定结果和执行这个请求所需的信息通过全局 信号通路303通知给请求执行激活部117。请求执行激活部117基于这个请 求能否执行的决定结果以及执行这个请求所需的信息更新探测标签111和/ 或激活请求执行部115。举例来说,如果资源能够保证且搜索探测标签lll的结果均为无效,则
请求执行激活部117在探测标签llla中登记地址1000。登记状态依赖于所 发出的请求。同时,请求执行部115对存储器中地址1000执行读取操作, 并将获得的数据发送给CPU 120a。 CPU 120a更新高速缓存标记122a。或者,如果资源能够保证且搜索探测标签111的结果示出地址1000已 在探测标签lllc中登记为M (被修改)状态,则例如请求执行激活部117 在探测标签llla中登记地址1000。登记状态依赖于发出请求。并且,在探 测标签lllc中地址1000的状态改变为S (共享)或I (无效)。改变之后的 状态依赖于发出请求。同时,请求执行部115发出指令给CPU 120c使其发 送在地址1000的M数据,并将输出数据发送给CPU 120a。 CPU 120a更新 高速缓存标记122a,而CPU 120c更新高速缓存标记122c。图12示出了高速缓存替换请求的处理示例。图12所给示例主要涉及图 11中所示的系统板100a,其主要包括有CPU 120a、 CPU 120b和系统控制器 110,以及主要包括有全局仲裁器210的地址交叉板200。于此假设CPU 120a 发出了高速缓存替换请求。图12中粗线的箭头指示高速缓存替换请求的传输路径。由CPU 120a发 出的高速缓存替换请求与其它请求一起通过CPU总线130a、 CPU发出请求 队列112a、局部仲裁器113、局部总线300a、全局仲裁器210、及全局总线 310传输到各系统板100a至100d上的系统控制器110中的请求处理部114。图13示出驱逐。驱逐是指从系统控制器110侧发送给CPU 120的在给 定缓存中释放内容的指令。下面将参照图13给出的示例介绍驱逐。首先,如阶段0所示,假设高速缓存标记122和探测标签111的某一通 用索引均为空。如果在此状态下CPU120读取地址A,则如阶段l所示,地 址A在高速缓存标记122和探测标签111中均被登记。随着CPU 120进一 步继续读取同一索引的地址B、 C及D,则如阶段2所示得到路满(way-full) 状态。如果在这种路满状态下CPU 120进一步期望读取同一索引的地址E,则 必须要首先删除高速缓存标记122中的任一条数据。于此假设地址A被删除。 如果CPU 120不支持高速缓存替换请求且地址A的状态不为M(被修改的), 则CPU 120中将出现地址A的无声删除(silent drop)。如阶段3所示,高 速缓存标记122中地址A被删除。所谓无声删除是指在没有向外部通知的情
况下删除数据。类似地,由于系统控制器110还响应于CPU 120的对地址E的读取来登 记地址E,所以必须从探测标签lll中删除任一条数据。于此假设地址B被 删除。这时,考虑到"出现在高速缓存标记122中的内容必须出现在探测标 签111中"的包含规则,系统控制器110将使CPU 120删除系统控制器110 已经删除的内容;从而如阶段4所示,系统控制器110必须发出卸载请求给 CPU 120。这个卸载请求被称为驱逐。当高速缓存标记122和探测标签111 最终均具有可用空间时,则如阶段5所示,地址E在高速缓存标记122和探 测标签lll中均可被登记。描述多处理器系统现有技术的文献包括,例如专利文献1 (国际专利申 请2002-522827的国家公布)。专利文献1描述了一种多处理器计算机系统 的技术,在该系统中节点以环的形式相互连接。然而,专利文献l中公开的 技术并不能解决下述问题。包括多个系统板100的多处理器系统具有这样一个问题,在全局总线301 上的负担较重,当在全局总线301中传输高速缓存替换请求时,处理其它请 求的功能会下降。另一个问题是,如果没有在作为高速缓存替换请求的父请 求的读取请求之前处理该高速缓存替换请求,则高速缓存替换请求会导致出 现驱逐现象,在这种情况下可能不会实现高速缓存替换请求希望的效果。发明内容本发明目的在于提供这样一种技术方案,其能防止由高速缓存替换请求 导致的负担加载于全局总线上,同时防止出现不必要的驱逐(Eviction)。本发明提供了一种多处理器系统,其中当由系统板上CPU发出的请求 为高速缓存替换请求时,该系统板不将该请求发送给地址交叉板,而将该请 求回环至所述系统板内部,以进行处理。具体地,本发明提供一种多处理器系统,包括多个系统板,其中每个 系统板均具有多个CPU和用于处理由所述多个CPU发出的请求的请求处理 部,以及地址交叉板,其用于对来自所述多个系统板的请求进行仲裁;其中 所述多个系统板中的每个系统板包括高速缓存替换请求回环电路,其用于确 定由一系统板上的CPU发出的请求是否为高速缓存替换请求;并且,如果 该请求不是高速缓存替换请求,则所述高速缓存替换请求回环电路将该请求 发送到所述地址交叉板;如果该请求是高速缓存替换请求,则所述高速缓存替换请求回环电路将所述请求发送到配置在该系统板上的请求处理部,而不 将该请求从该系统板内部发送到所述地址交叉板。因此,由于高速缓存替换请求没有输出到全局总线,就吞吐量而言,能 够降低所述全局总线上的负担。此外,由于在作为高速缓存替换请求的父请 求的读取请求之前将该高速缓存替换请求环回至产生该高速缓存替换请求 并对其进行处理的所述系统板内部,从而能够防止出现不必要的驱逐。此外,根据本发明所提供的多处理器系统,其中所述高速缓存替换请求回环电路包括回环部队列(loop-back section queue),其用于保存同一所述 系统板上的CPU发出的高速缓存替换请求。这样,即使在全局总线繁忙且 无法立即处理高速缓存替换请求时,也能够有效防止非高速缓存替换请求的 请求的发出延迟。此外,根据本发明所提供的多处理器系统,其中当所述回环部队列的所 有条目均已保存有高速缓存替换请求时,如果由所述系统板上的CPU发出 新的高速缓存替换请求,所述高速缓存替换请求回环电路用所发出的新的高 速缓存替换请求来重写所述回环部队列中任一条目中保存的高速缓存替换 请求。这样,即使所述回环部队列具有较少的条目数量,也能够有效防止非 高速缓存替换请求的请求的发出延迟。本发明能够防止由高速缓存替换请求导致的负担加载于全局总线上,以 及防止出现不必要的驱逐。因此,能够高效处理高速缓存替换请求并提高系 统性能。
图1示出了根据本发明实施例的多处理器系统的示例性结构; 图2示出高速缓存替换请求回环电路的示例;图3为示出该实施例中对高速缓存替换请求进行回环处理的流程图; 图4A、 4B及4C示出在系统控制器中对高速缓存替换请求进行回环处 理的效果;图5示出根据本发明实施例的多处理器系统的示例性结构;
图6示出高速缓存替换请求回环电路的示例;图7示出了用以说明根据本发明实施例的对高速缓存替换请求进行回环 处理的流程图;图8A及8B示出在高速缓存替换请求回环电路中配置回环部队列的效果;图9示出用以说明本实施例中对高速缓存替换请求进行回环处理的流程图;图IOA及10B示出当回环部队列具有重写功能时获得的效果;图11示出了多处理器系统的示例性结构;图12示出了高速缓存替换请求的处理示例;以及图13示出了驱逐。
具体实施方式
图1示出了根据本发明实施例的多处理器系统的示例性结构。图1中所 示的多处理器系统的重点在于具有图11所示结构的系统板100和地址交叉 板200,系统板100主要包括CPU 120a、 CPU 120b及系统控制器110,地址 交叉板200主要包括全局仲裁器210。鉴于其它组件与现有技术中的组件类 似,故在此略去。图1中所示多处理器系统包括四个系统板100a至lOOd和地址交叉板 200。各系统板100a至lOOd与地址交叉板200之间通过局部总线300a至 300d、全局总线301等相互连接。系统板100a具有系统控制器110和两个CPU 120a和120b。两个CPU 120a和120b通过CPU总线130a连接至系统控制器110。其它系统板100b 至100d具有与系统板lOOa类似的结构。CPU 120a和120b分别具有高速缓冲存储器121a和121b以及高速缓存 标记122a和122b。在本实施例中,用4路集联的方法来控制高速缓冲存储 器121。系统控制器110包括CPU发出请求队列112a、局部仲裁器113、请求 处理部114和高速缓存替换请求回环电路140。CPU发出请求队列112a保存由CPU 120a和120b发出的请求。局部仲
裁器113将CPU发出请求队列112中保存的请求输出到局部总线300a上。 请求处理部114处理由CPU120发出的请求。高速缓存替换请求回环电路140是用于在系统控制器110中只对高速缓 存替换请求进行回环处理、并将这些请求发送到请求处理部114,包括回环 确定电路141和选择器142。回环确定电路141将局部仲裁器113输出的请 求分为两种请求,即将在系统控制器110中进行回环处理的高速缓存替换请 求和将输出到局部总线300a的非高速缓存替换请求的请求。如果全局总线 301上存在有效请求,则选择器142将其发送到请求处理部114;如果全局 总线301上不存在有效请求,选择器142将高速缓存替换请求发送到请求处 理部114。地址交叉板200具有全局仲裁器210。全局仲裁器210通过全局总线301 将从局部总线300a至300d输入的请求发送到所有系统板100a至100d。在图1中,粗线箭头指示高速缓存替换请求的传输路径。于此假设CPU 120a发出高速缓存替换请求。所述由CPU 120a发出的高速缓存替换请求, 经过CPU总线130a、 CPU发出请求队列112a、局部仲裁器113、回环确定 电路141和选择器142后,传输到请求处理部114。非高速缓存替换请求的 请求(比如读取请求)经由全局仲裁器210和全局总线301 ,从局部总线300a 输入到各系统板100a至100d中的选择器142。与其它请求不同,高速缓存替换请求并不通过地址交叉板200。由于高 速缓存替换请求是将与发出请求的CPU 120对应的探测标签111中的适当地 址设置为无效(I)的指令,所以没必要将其传输到相关系统板100的外部。图2示出高速缓存替换请求回环电路的示例。由局部仲裁器113发出的 请求信号包括:有效信号(V)、操作代码(OP)、地址等(ADR等)。回 环确定电路141包括高速缓存替换请求确定电路150、 AND电路151和 AND电路152。高速缓存替换请求确定电路150基于由局部仲裁器113发出的请求中的 操作代码(OP)来确定该请求是否为高速缓存替换请求。如果这个请求是高 速缓存替换请求,则电路150将发送有效信号;如果这个请求不是高速缓存 替换请求,电路150将发送无效信号。AND电路151接收来自高速缓存替 换请求确定电路150的信号的反向信号,而AND电路152按原样接收来自
高速缓存替换请求确定电路150的信号。如果对于局部仲裁器113发出的请求中的有效信号为有效且来自高速缓 存替换请求确定电路150的信号的反向信号为有效,则AND电路151发送 有效信号。否贝l」,AND电路151发送无效信号。将包括从AND电路151发 送的有效信号(V)、由局部仲裁器113发出的请求的操作代码(OP)和地 址等(ADR等)的请求信号输出到局部总线300上。如果对于局部仲裁器113发出的请求中的有效信号为有效且来自高速缓 存替换请求确定电路150信号有效,则AND电路152发送有效信号。否则, AND电路152发送无效信号。将包括从AND电路152发送的有效信号(V)、 由局部仲裁器113发出的请求的操作代码(OP)和地址等(ADR等)的请 求信号输出到选择器142。如果对于全局仲裁器210输出的请求中的有效信号(V)为有效"1", 则选择器142将全局仲裁器210输出的请求(非高速缓存替换请求)发送到 请求处理部114。如果对于全局仲裁器210输出的请求中的有效信号(V) 为无效"0",也就是在全局总线301上存在空间,则选择器142将回环确 定电路141输出的请求(高速缓存替换请求)发送到请求处理部114。图3为示出本实施例中对高速缓存替换请求进行回环处理的流程图。当 在步骤SIO,局部仲裁器113选择将发出到局部总线300的请求时,在步骤 Sll,高速缓存替换请求回环电路140确定该选择请求是否为高速缓存替换 请求。如果该选择的请求不是高速缓存替换请求,则在步骤S12,将该选择 的请求发送到局部总线300上。如果在步骤Sll中确定该选择请求是高速缓存替换请求,则在步骤S13, 确定全局总线301上是否存在有效请求。如果全局总线301上不存在有效请 求,则在步骤S14,由选择器142选择在步骤S10中选择的请求(高速缓存 替换请求)。如果在步骤S13中确定全局总线上存在有效请求,则在步骤S15,由选 择器142选择全局总线301上的请求。这时,在步骤S16,不能发出在步骤 S10中选择的请求(高速缓存替换请求)。对于在步骤S10中选择的请求(高 速缓存替换请求)的发出被推迟到下一次或以后。图4A、 4B及4C示出在系统控制器中对高速缓存替换请求进行回环处
理的效果。在图4A、 4B及4C中,"读取"指读取请求,而"替换"指高 速缓存替换请求。假设如图4A所示,每个系统板100a至100d分别发出一占用全局总线 301的利用率的20%的读取请求,则全局总线301的整体利用率将为80%。随后,假设每个系统板100a至100d在发出读取请求的同时还发出一占 用全局总线301的20%的高速缓存替换请求。如果系统板100不包括高速缓 存替换请求回环电路140,则高速缓存替换请求将如读取请求一样传输到局 部总线300、地址交叉板200和全局总线301。假设所有请求同时流入到全 局总线301上,整体利用率为([读取请求的利用率]+ [高速缓存替换请求的利用率])X[系统板数量]=(20 + 20) X4 = 160[%〗。 这超出了全局总线301的吞吐量。因此,如图4B所示,这将使得读取功能 降低到12.5%。另一方面,当系统板100具有高速缓存替换请求回环电路140时,高速 缓存替换请求不流入到全局总线301上,因此全局总线301的性能不会下降。 如图4C所示,在系统板100中对高速缓存替换请求进行回环处理。由于通 过选择器142使得在系统板100中经过回环处理的高速缓存替换请求总共可 用20%,因此全局总线301的性能维持在80%,而不会有性能衰降。图5示出根据本发明实施例的多处理器系统的示例性结构。图5所示多 处理器系统还包括回环部队列143,其配置在图1所示结构中的高速缓存替 换请求回环电路140中。回环部队列143保存由局部仲裁器113输出的高速 缓存替换请求。在图5中,粗线箭头指示高速缓存替换请求的传输路径。于此假设CPU 120a发出高速缓存替换请求。所述由CPU 120a发出的高速缓存替换请求, 经过CPU总线130a、 CPU发出请求队列112a、局部仲裁器113、及回环确 定电路141后,保存在回环部队列143中。当全局总线301上不存在有效请 求时,选择器142将保存在回环部队列143中的高速缓存替换请求发送到请 求处理部114。图6示出高速缓存替换请求回环电路的示例。图6中所示的回环确定电 路141以与图2中所示回环确定电路141类似的方式运行。而包括从AND
电路152发送的有效信号(V)、由局部仲裁器113发出的请求操作代码(0P) 和地址等(ADR等)的请求信号保存在回环部队列143中。当对于全局仲裁 器210输出的请求的有效信号(V)为无效"0"且回环部队列143为空时, 高速缓存替换请求不被保存在回环部队列143中,而是通过选择器144被发 送到选择器142。如果对于全局仲裁器210输出的请求的有效信号(V)为有效"1",则 选择器142将全局仲裁器210输出的请求(非高速缓存替换请求)发送到请 求处理部114。如果对于全局仲裁器210输出的请求的有效信号(V)为无 效"0",则选择器142将保存在回环部队列143中的请求(高速缓存替换 请求)发送到请求处理部114。图7示出了用以说明根据本发明实施例的对高速缓存替换请求进行回环 处理的流程图。图6中所示选择器144的功能将包含在选择器142中介绍。在步骤S20,局部仲裁器113选择要发出到局部总线300上的请求。在 步骤S21,高速缓存替换请求回环电路140确定所选择的请求是否为高速缓 存替换请求。如果该选择的请求不是高速缓存替换请求,则在步骤S22,高 速缓存替换请求回环电路140将该选择的请求发送到局部总线300上。如果在步骤S21确定该选择的请求为高速缓存替换请求,则在步骤S23, 确定在全局总线301上是否存在有效请求。如果全局总线301上不存在有效 请求且在步骤S24中是,即回环部队列143为空,则在步骤S25,由选择器 142选择在步骤S20中选择的请求(高速缓存替换请求),并将其发送到请 求处理部114。如果在歩骤S24中否,即回环部队列143不为空,则在步骤S26,选择 器142选择在回环部队列143中保存的请求(高速缓存替换请求),并在步 骤S27,从回环部队列143中删除该选择的请求。在步骤S28,将在步骤S20 中选择的请求保存在回环部队列143中。如果在步骤S23确定全局总线301上存在有效请求,则在步骤S29,由 选择器142选择全局总线301上的请求,并将其发送到请求处理部114。如 果在步骤S30中否,即此时回环部队列143没有满,则在步骤S28,将在步 骤S20中选择的请求保存在回环部队列143中。如果在步骤S30中是,即回环部队列143已满,则在步骤S31,不发出
在步骤S20中选择的请求。对于在步骤S20中选择的请求的发出被推迟到下 一次或以后。图8A及8B示出在高速缓存替换请求回环电路中配置回环部队列的效 果。图8A示出在高速缓存替换请求回环电路140中没配置回环部队列143 的情形,而图8B示出在高速缓存替换请求回环电路140中配置回环部队列 143的情形。在图8A及8B中,水平排列的图示表示时间进度。在这个示例 中,在时刻#1按顺序从局部仲裁器113发出以下请求高速缓存替换请求(高 速缓存替换请求1)、高速缓存替换请求(高速缓存替换请求2)和读取请 求(读取请求1)。全局总线301上的"有效"是指,此时在全局总线301 上存在有效请求。当高速缓存替换请求回环电路140不具有回环部队列143时,则不能够 临时保存高速缓存替换请求。因此,如图8A所示,在全局总线301上不存 在有效请求时,在时刻糾,首先将高速缓存替换请求(高速缓存替换请求l) 从选择器142发送到请求处理部114。与此类似,在时刻#6,将高速缓存替 换请求(高速缓存替换请求2)从选择器142发送到请求处理部114。在迟 至时刻#7,将读取请求(读取请求l)输出到局部总线300上。因此,当高速缓存替换请求回环电路140不具有回环部队列143时,读 取请求的发出被延迟。另一方面,当高速缓存替换请求回环电路140中配置有回环部队列143 时,如图8B所示,在不考虑全局总线301上是否存在有效请求的情况下, 在时刻#2将高速缓存替换请求(高速缓存替换请求l)保存到回环部队列143 中。在全局总线301上不存在有效请求时,即在时刻#4,将保存在回环部队 列143中的高速缓存替换请求(高速缓存替换请求1)从选择器142发送到 请求处理部114。与此类似,在时刻#3,将高速缓存替换请求(高速缓存替 换请求2)保存到回环部队列143中,并在时刻#6从选择器142将其发送到 请求处理部114。在时刻#4,读取请求(读取l)被输出到局部总线300上。因此,通过在高速缓存替换请求回环电路140中配置回环部队列143, 使得局部仲裁器113无需等待高速缓存替换请求的发出,因此加快了读取请 求的发出。尽管目前的描述假设回环部队列143不具有重写功能,但是回环部队列143可以具有重写功能。在图5及图6所示结构中,如果在回环部队列143 的条目为满时从局部仲裁器113新发出高速缓存替换请求,则在回环部队列 143中删除一个条目内的高速缓存替换请求,并将新发出的高速缓存替换请 求保存到这个条目中。通过配置具有重写功能的回环部队列143,能够减少 回环部队列143中的条目。图9示出用以说明本实施例中对高速缓存替换请求进行回环处理的流程 图。图6中所示选择器144的功能将包含在选择器142中介绍。当在步骤S40,局部仲裁器113选择要发出到局部总线300上的请求时, 在步骤S41,高速缓存替换请求回环电路140确定该选择的请求是否为高速 缓存替换请求。如果该选择的请求不是高速缓存替换请求,则在步骤S42, 将该选择的请求发送到局部总线300上。如果在步骤S41确定该选择的请求为高速缓存替换请求,则在步骤S43, 确定全局总线301上是否存在有效请求。如果全局总线301上不存在有效请 求且在步骤S44中为是,即回环部队列143为空,则在步骤S45,由选择器 142选择在步骤S40中选择的请求(高速缓存替换请求)并将其发送到请求 处理部114。如果在步骤44中否,即回环部队列143不为空,则在步骤S46,选择器 142选择在回环部队列143中保存的请求(高速缓存替换请求)并将其发送 到请求处理部114,并在步骤S47,从回环部队列143中删除该选择的请求。 在步骤S48,将在步骤S40中选择的请求保存在回环部队列143中。如果步骤S43中是,即全局总线301上存在有效请求,则在步骤S49, 由选择器142选择全局总线301上的请求,并将其发送到请求处理部114。 如果步骤S50中否,即回环部队列143没有满,则在步骤S48,将在步骤S40 中选择的请求保存在回环部队列143中。如果步骤S50中是,即回环部队列143已满,则在步骤S51,在回环部 队列143中删除一个条目内的请求,并在步骤S48,将在步骤S40中选择的 请求保存在回环部队列143中。图IOA及10B示出当回环部队列具有重写功能时获得的效果。图10A 示出回环部队列143不具有重写功能的情形,而图10B示出回环部队列具有 重写功能的情形。在图IOA及10B中,水平排列的图示表示时间进度。在这
个示例中,在时刻#1按顺序从局部仲裁器113输出以下请求高速缓存替换 请求(高速缓存替换请求1)、高速缓存替换请求(高速缓存替换请求2) 和读取请求(读取请求1)。全局总线301上的"有效"是指,此时在全局总线301上存在有效请求。于此假设回环部队列143具有两个条目。当回环部队列143不具有重写功能时,如图10A所示,在时刻#2,将高 速缓存替换请求(高速缓存替换请求1)保存到回环部队列143中;类似地, 在时刻#3将高速缓存替换请求(高速缓存替换请求2)保存到回环部队列143 中。由于此时回环部队列143中不再有可用的条目,所以不能从局部仲裁器 113输出高速缓存替换请求(高速缓存替换请求3)。在全局总线301上不 存在有效请求时,即在时刻#6,将保存在回环部队列143中的高速缓存替换 请求(替换1)从选择器142发送到请求处理部114。在时刻#7,最后将高 速缓存替换请求(替换3)保存到回环部队列143中,在时刻#8将读取请求 (读取l)输出到局部总线300上。因此,当回环部队列143不具有重写功能时,在回环部队列中没有空间 时将使得读取请求的发出被延迟。另一方面,如图10B所示,在回环部队列143具有重写功能的情况下, 即使在回环部队列143没有空间的情况下,在时刻#4通过对回环部队列143 重写则能够将高速缓存替换请求(高速缓存替换请求3)保存到回环部队列 143中。此时,高速缓存替换请求(高速缓存替换请求1)将由于被重写而 丢失,但只要系统执行了驱逐功能就不会产生问题。以与不具有高速缓存替 换请求的读取请求相同的方式处理与被重写的高速缓存替换请求(请求1) 相对应的读取请求。在时刻#5,将读取请求(读取请求1)输出到局部总线 300上。因此,当回环部队列143具有重写功能时,即使在回环部队列143没有 空间时也可以加快读取请求的发出。此外,当回环部队列143具有重写功能 时,即使在回环部队列143中没有配备大数量条目的情况下,也不能降低发 出读取请求的能力。相反,如果回环部队列143具有很多条目,则请求可能 在回环部队列143中停留较长时间,因此可导致在处理了通过全局总线301 的父读取请求之后才处理高速缓存替换请求。因此,回环部队列143的条目
数量优选为较少。尽管己详细介绍了本发明实施例,但本发明并不局限于此。举例来说, 在上述实施例中,如果在回环部队列143已满时新发出高速缓存替换请求,则可以用该新发出的高速缓存替换请求来重写在回环部队列143中保存的高 速缓存替换请求。然而,也可以丢弃该新发出的高速缓存替换请求。
权利要求
1.一种多处理器系统,包括多个系统板,其中每个系统板均具有多个CPU和用于处理由所述多个CPU发出的请求的请求处理部,以及地址交叉板,其用于对来自所述多个系统板的请求进行仲裁;其中所述多个系统板中的每个系统板包括高速缓存替换请求回环电路,其用于确定由一系统板上的CPU发出的请求是否为高速缓存替换请求;并且,如果该请求不是高速缓存替换请求,则所述高速缓存替换请求回环电路将该请求发送到所述地址交叉板;如果该请求是高速缓存替换请求,则所述高速缓存替换请求回环电路将所述请求发送到配置在该系统板上的请求处理部,而不将该请求从该系统板内部发送到所述地址交叉板。
2. 如权利要求1所述的多处理器系统,其中所述高速缓存替换请求回环 电路包括回环部队列,其用于保存由同一个系统板上的CPU发出的高速缓 存替换请求。
3. 如权利要求2所述的多处理器系统,其中当所述回环部队列的所有条 目均已保存有高速缓存替换请求时,如果由所述系统板上的CPU发出新的 高速缓存替换请求,则所述高速缓存替换请求回环电路用所发出的新的高速 缓存替换请求来重写所述回环部队列中任一条目中保存的高速缓存替换请 求。
4. 一种多处理器系统中的系统板,所述多处理器系统包括多个系统板, 其中每个系统板均具有多个CPU和用于处理由所述多个CPU发出的请求的 请求处理部;以及地址交叉板,其用于对来自所述多个系统板的请求进行仲 裁;所述系统板包括高速缓存替换请求回环电路,其用于确定由一系统板上的CPU发出的 请求是否为高速缓存替换请求;并且,如果该请求不是高速缓存替换请求, 则所述高速缓存替换请求回环电路将该请求发送到所述地址交叉板;如果该 请求是高速缓存替换请求,则所述高速缓存替换请求回环电路将所述请求发 送到配置在该系统板上的请求处理部,而不将该请求从该系统板内部发送到 所述地址交叉板。
5. 如权利要求4所述的系统板,其中所述高速缓存替换请求回环电路包括回环部队列,其用于保存由同一个系统板上的CPU发出的高速缓存替换请求。
6. 如权利要求5所述的系统板,其中当所述回环部队列的所有条目均已 保存有高速缓存替换请求时,如果由所述系统板上的CPU发出新的高速缓 存替换请求,则所述高速缓存替换请求回环电路用所发出的新的高速缓存替 换请求来重写所述回环部队列中任一条目中保存的高速缓存替换请求。
7. —种多处理器系统的高速缓存替换请求处理方法,所述多处理器系统 包括多个系统板,其中每个系统板均具有多个CPU和用于处理由所述多个CPU发出的请求的请求处理部;以及地址交叉板,其用于对来自所述多 个系统板的请求进行仲裁;该方法包括下列步骤确定由一系统板上的CPU发出的请求是否为高速缓存替换请求;如果所述发出的请求不是高速缓存替换请求,则将所述发出的请求发送到所述地址交叉板;如果所述发出的请求是高速缓存替换请求,则将所述发出的请求发送到 配置在所述系统板上的所述请求处理部,而不将所述发出的请求从所述系统 板内部发送到所述地址交叉板。
8. 如权利要求7所述的高速缓存替换请求处理方法,其中还包括以下步骤如果所述发出的请求是高速缓存替换请求,则在将所述发出的请求发送 到所述请求处理部之前,将所述发出的请求保存在该系统板上配置的回环部 队列中。
9. 如权利要求8所述的高速缓存替换请求处理方法,其中当所述回环部 队列的所有条目均已保存有高速缓存替换请求时,将所述发出的请求保存在 所述回环部队列中的步骤是用所述发出的高速缓存替换请求来重写所述回 环部队列中任一条目中保存的高速缓存替换请求。
全文摘要
本发明公开一种多处理器系统、系统板和高速缓存替换请求处理方法。其中多处理器系统,包括多个系统板,其中每个系统板均具有多个CPU和用于处理由所述多个CPU发出的请求的请求处理部,以及地址交叉板,其用于对来自所述多个系统板的请求进行仲裁。所述多个系统板中的每个系统板包括高速缓存替换请求回环电路,其用于确定由一系统板上的CPU发出的请求是否为高速缓存替换请求;并且,如果该请求不是高速缓存替换请求,则所述高速缓存替换请求回环电路将该请求发送到所述地址交叉板;如果该请求是高速缓存替换请求,则所述高速缓存替换请求回环电路将所述请求发送到配置在该系统板上的请求处理部,而不将该请求从该系统板内部发送到所述地址交叉板。
文档编号G06F12/08GK101127006SQ200710103968
公开日2008年2月20日 申请日期2007年5月17日 优先权日2006年8月18日
发明者伊藤大介, 大胁威, 山本崇史, 植木俊和, 畑井田诚, 石冢孝治, 细川由佳 申请人:富士通株式会社