系统控制器、同地址请求队列预防方法及其信息处理设备的制作方法

文档序号:6609098阅读:137来源:国知局
专利名称:系统控制器、同地址请求队列预防方法及其信息处理设备的制作方法
技术领域
本发明涉及在多处理器系统中使用系统控制器来控制由CPU发出请求的技术。更具体地,本发明涉及系统控制器、同地址请求队列预防方法和这样一种信息处理设备,该设备在队列中保存由CPU发出的请求时能够防止具有同一地址的请求被保存。
技术背景近年来,随着在各领域中广泛使用信息处理设备,需要多处理器结构中 的芯片组具有更强的处理功能。图12为示出多处理器系统结构的实例的示图。图12中所示的多处理器 系统包括四个系统板100a至100d和地址交叉板200。由局部总线300a至 300d、全局总线301、局部通知路径302a至302d、全局通知路径303等来 连接各系统板100a至100d和地址交叉板200。系统板100a包括系统控制器110和四个CPU 120a至120d。由CPU总 线130a将CPU 120a和CPU 120b连接至系统控制器110。由CPU总线130c 将CPU 120c和CPU 120d连接至系统控制器110。系统板100b至100d具有 与系统板100a相同的结构。CPU 120a至120d分别包括高速缓冲存储器121a至121d和高速缓存标 记122a至122d。在本发明一实施例中,假设通过4路集联系统来控制高速 缓冲存储器121。系统控制器110包括探测标记llla至llld、 CPU发出请求队列112a 和112c、局部仲裁器113、请求处理部114和请求执行部115。探测标记llla至llld分别对应于高速缓存标记122a至122d。 CPU发 出请求队列112保存由CPU 120发出的对CPU总线130的请求。具体地, CPU发出请求队列112a保存由CPU 120a和120b发出的请求,而CPU发出 请求队列112c保存由CPU 120c和120d发出的请求。局部仲裁器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确定结果和执行该请求的必要信息。通过参照给定实例来说明图12中示出的系统的操作,在该实例中,CPU 120执行读取请求。CPU 120a执行对地址1000的读取。为了高速缓存一致 性而使用MESI协议。MESI协议是一种高速缓存一致性协议,并通过将多 个线分成M状态(修改状态Modified) 、 E状态(排它状态Exclusive)、 S状态(共享状态Shared)和I状态(无效状态Invalid)来控制高速缓存 的每个线。为了检查地址1000的数据是否存在于CPU 120a的高速缓冲存储器121a 中,首先CPU120a对高速缓存标记122a进行搜索。当确定结果为在高速缓 冲存储器121a中不存在有效数据时,CPU 120a发出读取请求至CPU总线 130a。经由CPU发出请求队列112a、局部仲裁器113和局部总线300a将CPU 120a发出的请求输入至全局仲裁器210。经由全局总线301同时向所有系统 板100a至100d通知被输入至全局仲裁器210的请求。在系统板100a中,从全局总线301向请求处理部114输入请求。请求 处理部114读取各探测标记111,并使用资源管理部116检查是否存在用以 处理请求的资源等。经由局部通知路径302a向执行力确定电路220发送检 查结果。执行力确定电路220基于来自所有局部通知路径302a至302d的通知确 定请求的执行力(执行适当性(propriety of execution))。执行力确定电路 220经由全局通知路径303向请求执行激活部117通知确定结果和请求执行 的必要信息。请求执行激活部117基于对请求的执行适当性的确定结果和请 求执行的必要信息更新探测标记111,并启动请求执行部115。例如,当可保证资源并且通过探测标记111进行的所有搜索结果表明I(无效)时,请求执行激活部117在探测标记llla中登记地址1000。登记 的状态取决于发出请求。此时,请求执行部115对存储器的地址1000执行 读取,并将通过读取所获得的数据发送至CPU 120a。 CPU120a更新高速缓 存标记122a。例如,当可保证资源并且作为通过探测标记111进行的搜索结果、地址 1000在探测标记lllc中登记的状态为M (修改)时,请求执行激活部117 在探测标记llla中登记地址1000。登记的状态取决于发出请求。请求执行 激活部117将探测标记lllc的地址1000的状态改变为S(共享)或I(无效)。 在这种情况下将地址1000的状态进行改变的状态取决于发出请求。此时, 请求执行部115指示CPU 120c输出地址1000的M (修改)数据,并将输出 的数据发送至CPU 120a。 CPU 120a更新高速缓存标记122a。 CPU 120c更新 高速缓存标记122c。图13A和图13B为说明对具有同一地址请求队列进行传统预防处理的实 例的示图。CPU发出请求队列112对具有同一地址的请求队列执行预防处理, 以防止同时保存具有同一地址的请求。以下参照图13A和图13B来说明在 CPU发出请求队列112中对具有同一地址的请求队列进行传统预防处理的实 例。发出请求为CPU 120发出的并且经由CPU总线130发送至CPU发出请 求队列112的请求。该发出请求包括一组信号,例如命令(CMD)、高速缓 存线地址(ADRO、 ADR1、 ADR2)和CPUID。将高速缓存线地址分成三个 i央ADRO、 ADR1、 ADR2,并进行处理。在图13A和图13B中示出的一组 发出请求的信号为在该请求中包括的所有信号中用于说明的必要信号。保存请求为CPU发出请求队列112的每个条目所保存的请求。保存请 求包括一组信号,例如有效信号(V)和高速缓存线地址(ADRO、 ADR1、 ADR2)。将高速缓存线地址分成三个块ADRO、 ADR1、 ADR2,并进行处 理。在图13A和图13B中示出的一组保存请求的信号为在该请求中包括的所 有信号中用于说明的必要信号。 CPU发出请求队列112的每个条目包括比较器141和AND电路142。 将每个条目的AND电路142连接至OR电路143 。在图13A所示的方法中,在CPU发出请求队列112的每个条目中,比 较器141将发出请求的高速缓存线地址(ADR0、 ADR1、 ADR2)与保存请 求的高速缓存线地址(ADR0、 ADR1、 ADR2)进行比较。当两个高速缓存 线地址彼此匹配时,比较器141发送有效信号"1"。当两个高速缓存线地 址彼此不匹配时,比较器141发送无效信号"0"。当从比较器141发送的 信号为有效的并且保存请求的有效信号(V)为有效时,AND电路142发送 有效信号。否则,AND电路142发送无效信号。当从CPU发出请求队列112的任一条目的AND电路142发送的信号为 有效时,OR电路143确定待重发的发出请求。换句话说,当与发出请求的 高速缓存线地址(ADR0、 ADR1、 ADR2) —致的高速缓存线地址存在于CPU 发出请求队列112的保存请求中时,不执行CPU发出请求队列112中的发 出请求的队列。在图13A中所示的方法中,逻辑上能够预防完全同一地址的队列。然而, 由于近年来在系统中需要扩展地址空间和增加CPU发出请求队列112条目 的个数,所以需要大量硬件来检查高速缓存线地址(ADR0、 ADR1、 ADR2) 的匹配性。此外,由于逻辑级的数量也在增加,所以难以实现系统速度的增 加。因此,在近年来的系统中,如图13B所示,可采用仅检查部分高速缓存 线地址(ADR0)的匹配性的方法。在图13B中所示的方法中,在CPU发出请求队列112的每个条目中, 比较器141将发出请求的部分高速缓存线地址(ADR0)与保存请求的部分 高速缓存线地址(ADR0)进行比较。当这两个部分高速缓存线地址彼此匹 配时,比较器141发送有效信号。当这两个部分高速缓存线地址彼此不匹配 时,比较器141发送无效信号。当从比较器141发送的信号为有效的并且保 存请求的有效信号(V)为有效时,AND电路142发送有效信号。否则,AND 电路142发送无效信号。当从CPU发出请求队列112的任一条目的AND电路142发送的信号为 有效时,OR电路143确定待重发的发出请求。换句话说,当其部分线地址 与发出请求的部分高速缓存线地址(ADR0)匹配的高速缓存线地址存在于
CPU发出请求队列112的保存请求中时,不执行CPU发出请求队列112中的发送请求的队列。
作为已经记载了关于多处理器系统的技术的现有技术文献,例如有专利文献l (国际专利申请No.2002-522827的国家公开)。在现有技术文献中, 描述这样一种关于多处理器计算机系统的技术,即在该系统中,各节点连接 成环形。然而,使用现有技术文献中描述的技术却不能够解决随后描述的问 题。
当在CPU发出请求队列112中存在多个同一地址时,对高速缓存替换 请求的处理比较复杂。例如,当由同一CPU120按顺序发出读取请求A、高 速缓存替换请求B和读取请求B,并且高速缓存替换请求B和读取请求B 同时存在于队列中时,有必要控制高速缓存替换请求B和读取请求B,以防 止发生重复。在对读取请求执行没有按照顺序的处理时,有必要进行复杂的 逻辑处理,以执行这种控制。
当如图13A所示使用对所有地址进行比较的比较器,以防止在CPU发 出请求队列112中插入同一地址时,硬件数量增加。硬件数量的增加使得难 以在高频时钟启动硬件。
在如图13B所示的方法中,通常,高速缓存索引用于部分高速缓存线地 址(ADRO)。然而,在如图13B所示的方法中,由于高速缓存替换请求与 作为高速缓存替换请求的父请求的读取请求(即,需要执行高速缓存代替的 读取请求)具有同一索引,所以高速缓存替换请求被重发
发明内容
本发明的目的在于提供一种技术,其能够防止高速缓存替换请求被错误 地重发,同时在系统控制器中对具有同一地址的请求队列的预防处理中减少 硬件数量。
本发明的特征在于通过比较地址的预定部分来防止在系统控制器中具 有同一地址的请求队列,当由CPU发出的请求为高速缓存替换请求时,确 定该高速缓存替换请求是否为从属于读取请求的高速缓存替换请求,其中该 读取请求被发出并且在紧邻该高速缓存替换请求之前被排队。如果该高速缓 存替换请求是这种高速缓存替换请求,则不重发该高速缓存替换请求。 具体地,本发明提供一种在多处理器系统中用以控制由CPU发出的请 求的系统控制器。该系统控制器包括CPU发出请求队列,具有用以保存由 CPU发出的请求的多个条目;输入请求保存部,用以保存由CPU发出的、 并且由所述CPU发出请求队列保存的、不同于高速缓存替换请求的最新请求;和重发确定部,用以确定由CPU发出的新请求是否被重发。所述CPU发出请求队列在任一条目保存有这样的地址时输出用以表示有必要重发的信号,其中该地址的预定部分与由CPU发出的新请求地址的预定部分匹配。 在所述新请求为高速缓存替换请求,并且所述新请求地址的预定部分与由所 述输入请求保存部保存的请求地址的预定部分匹配,而所述新请求地址的其 它部分与由所述输入请求保存部保存的请求地址的预定部分不匹配时,所述 输入请求保存部输出用以控制重发的信号。在所述CPU发出请求队列输出 用以表示有必要重发的信号并且所述输入请求保存部没有输出用以控制重 发的信号时,所述重发确定部确定所述新请求被重发。否则所述重发确定部 在确定所述新请求不被重发的情况下使得所述CPU发出请求队列保存所述 新请求。这使得能够防止高速缓存替换请求被错误地重发,同时在系统控制器中 对具有同一地址的请求队列进行预防处理中减少硬件数量。在该系统控制器中,对每个CPU配置一个输入请求保存部,输入请求 保存部保存由与其对应的CPU发出的并且由所述CPU发出请求队列保存的 不同于高速缓存替换请求的最新请求。在所述CPU发出请求队列输出用以 表示有必要重发的信号并且与发出所述新请求的CPU对应的所述输入请求保存部没有输出用以控制重发的信号时,所述重发确定部确定所述新请求被 重发。否则所述重发确定部在确定所述新请求不被重发的情况下使得所述CPU发出请求队列保存所述新请求。这使得能够防止高速缓存替换请求被错误地重发,同时即使在该系统控制器中对具有同一地址的请求队列进行预防处理中混和了来自多个CPU的请求时也能够减少硬件数量。在该系统控制器中,在由所述CPU发出请求队列保存的与所述输入请求保存部保存的请求相对应的请求被释放时,所述输入请求保存部释放由所 述输入请求保存部保存的请求。这使得能够防止由于初始应被重发的而没有
被重发的请求导致的故障。在该系统控制器中,所述输入请求保存部具有定时器功能,并且当所述 输入请求保存部重新保存所述请求之后经过指定时间时,所述输入请求保存 部释放由所述输入请求保存部保存的请求。这使得能够使用更少数量的硬件 实现防止由于初始应被重发而没有被重发的请求导致的故障。根据本发明,在对具有同一地址的请求队列的预防处理中,通过在CPU 发出请求队列的所有条目中提供一种仅对地址的预定部分进行比较的电路 而非用以比较所有地址的电路,能够简单地控制重发并防止硬件数量的增 加。此外,能够防止高速缓存替换请求被错误地重发。因此,提高了系统性


图1为示出根据本发明实施例的原理结构的实例的示图; 图2为说明根据本实施例对具有同一地址的请求队列进行预防处理的实 例的示图;图3为说明更新输入请求的实例的图表;图4A和图4B为说明通过配置输入请求保存部所获得的效果的示图; 图5为说明根据本实施例对具有同一地址的请求队列进行预防处理的实 例的示图;图6为说明更新输入请求的实例的图表;图7A和图7B为说明通过为每个CPU配置输入请求保存部所获得的效 果的示图;图8为说明配置一具有释放输入请求功能的输入请求保存部的实例的示图;图9A和图9B为说明通过配置输入请求保存部获得的效果的示图,其中 所述输入请求保存部具有释放输入请求的功能;图10为说明配置输入请求保存部的实例的示图,其中该输入请求保存 部具有使用定时器来释放输入请求的功能;图11为说明通过配置输入请求保存部获得的效果的示图,其中所述输 入请求保存部具有释放输入请求的功能;
图12为示出多处理器系统结构的实例的示图;禾口图13A和图13B为说明传统的对具有同一地址请求队列进行预防处理的 实例的示图。
具体实施方式
以下,基于在上述图12中的多处理器系统的结构来说明本发明实施例。图1为示出根据本发明实施例的原理结构的实例的示图。在下面的 说明中,发出请求为CPU 120发出的、并经由CPU总线130发送至CPU 发出请求队列112的请求。保存请求为由CPU发出请求队列112的每个条 目保存的请求。输入请求为由输入请求保存部150保存的请求。CPU发出请求队列112包括用于每个条目的同一地址确定部140。在每 个条目中的同一地址确定部140将发出请求地址的预定部分和条目的保存请 求地址的预定部分进行比较,并确定这两个预定部分是否彼此匹配。输入请求保存部150包括请求/地址确定部151。输入请求保存部150保 存由CPU发出请求队列112保存的、不同于高速缓存替换请求的最新请求 作为输入请求。请求/地址确定部151确定例如发出请求是否为高速缓存替换 请求、确定发出请求地址的预定部分和输入请求地址的预定部分是否彼此匹 配、以及确定与发出请求地址的预定部分不同的部分和与输入请求地址的预 定部分不同的部分是否彼此匹配。基于CPU发出请求队列112的每个条目的同一地址确定部140的确定 结果和输入请求保存部150的请求/地址确定部151的确定结果,重发确定部 170确定发出请求是否被重发。图2为说明根据本实施例对具有同一地址的请求队列进行预防处理的实 例(1)的示图。在图2中,发出请求包括一组信号,例如命令(CMD)、 地址(ADRO、 ADR1、 ADR2)和CPUID。保存请求包括一组信号,例如有 效信号(V)和地址(ADRO、 ADR1、 ADR2)。输入请求包括一组信号, 例如有效信号(V)和地址(ADRO、 ADR1)。在图2中示出的各请求的一 组信号为在请求中包括的所有信号中用于说明的必要信号。在图2的实例中,由16位表示地址。ADR2为从地址位15至地址位12,ADR1为从地址位11至地址位8, ADRO为从地址位7至地址位4。 ADRO 为高速缓存索引地址。CPU发出请求队列112的每个条目包括比较器141和AND电路142。 将每个条目的AND电路142连接至OR电路143。将OR电路143连接至 AND电路171。在CPU发出请求队列112的每个条目中,比较器141将发出请求地址 的预定部分(ADRO)和保存请求地址的预定部分(ADRO)进行比较。被比 较的地址的预定部分为索引地址(ADRO)。当两个预定部分彼此匹配时, 比较器141发送有效信号"1"。当两个预定部分彼此不匹配时,比较器141 发送无效信号"0"。当从比较器141发送的信号为有效的并且保存请求的有效信号(V)为 有效时,AND电路142发送有效信号。否贝U, AND电路142发送无效信号。当从CPU发出请求队列112的任一条目的AND电路142发送的信号为 有效时,OR电路143发送有效信号至AND电路171 。输入请求保存部150包括比较器152、比较器153、高速缓存替换请 求确定电路154和NAND电路155。将NAND电路155连接至AND电路171。比较器152将发出请求地址的预定部分(ADR0)和输入请求地址的预 定部分(ADRO)进行比较。当两个预定部分彼此匹配时,比较器152发送 有效信号。当两个预定部分彼此不匹配时,比较器152发送无效信号。比较器153将与发出请求地址的预定部分(ADRO)不同的部分(ADRl) 和与输入请求地址的预定部分(ADRO)不同的部分(ADRl)进行比较。 ADRl为从地址位11至地址位8的4位。然而,ADRl不限于该4位,可以 为地址中其它的位组。当上述两个部分彼此不匹配时,比较器153发送有效 信号。当上述两个部分彼此匹配时,比较器153发送无效信号。高速缓存替换请求确定电路154根据发出请求的命令(CMD)确定该发 出请求是否为高速缓存替换请求。当该发出请求是高速缓存替换请求时,高 速缓存替换请求确定电路154发送有效信号。当该发出请求不是高速缓存替 换请求时,高速缓存替换请求确定电路154发送无效信号。当从比较器152发送的信号有效,从比较器153发送的信号有效,从高 速缓存替换请求确定电路154发送的信号有效,并且输入请求的有效信号(V)为有效时,NAND电路155发送无效信号。否则,NAND电路155发送有效信号。当从OR电路143发送的信号有效,并且从NAND电路155发送的信号 有效时,AND电路171确定该发出请求被重发。换句话说,对于不同于高速 缓存替换请求的请求与过去一样,对于同一索引,在CPU发出请求队列112 中仅对不同于高速缓存替换请求的一个请求进行排队。即使高速缓存替换请 求的索引地址(ADR0)与CPU发出请求队列112中排队的最新请求的索引 地址(ADR0)匹配,在高速缓存替换请求地址的另一预定部分(ADR1)与 该最新请求地址的另一预定部分(ADR1)不匹配时也允许在CPU发出请求 队列112中对高速缓存替换请求进行排队。图3为说明更新输入请求的实例的图表。由输入请求保存部150保存的 输入请求的更新取决于发出请求的命令(CMD)的类型和是否对发出请求进 行重发。如图3所示,当发出请求不是高速缓存替换请求,并且不发生重发(否) 时,使用该发出请求对输入请求保存部150保存的输入请求进行更新。当发 生重发(是)时,即使发出请求不是高速缓存替换请求,或者当发出请求是 高速缓存替换请求时,输入请求保存部150保存的输入请求的有效信号(V) 为无效状态(无效)。如图3所示,由于将有效信号(V)更新为无效,所以即使在没有使用 发出请求对有效信号(V)进行更新时,输入请求仅对输入请求保存部150 保存的下一个发出请求是有效的。换句话说,仅允许在这样的高速缓存替换 请求的CPU发出请求队列112中进行排队,其中该高速缓存替换请求与紧 邻在CPU发出请求队列112中排队的不同于该高速缓存替换请求的请求之 后的请求具有相同的索引。图4A和图4B为说明通过配置输入请求保存部所获得的效果的示图。 参照图4A和图4B来说明如图2中所示的对具有同一地址的请求队列进行预 防处理的效果。在图4A和图4B中,时间从左向右流逝。"读取"表示读取 请求,"代替"表示高速缓存替换请求。"CPUa"表示CPU 120a。地址由 16位表示。该16位的地址位7至地址位4表示索引地址。图4A示出当没有配置输入请求保存部150时对具有同一地址的请求队
列进行预防处理的实例。首先,由CPU 120a发出对地址1000的读取请求。 由于CPU发出请求队列112还没有保存与读取请求具有相同索引的请求, 所以在CPU发出请求队列112中对发出的读取请求进行排队。随后,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,由CPU发出请求队列112已经保存了与发出 的高速缓存替换请求具有相同索引的请求(对地址1000的读取请求)。所 述发出的高速缓存替换请求被重发,并且没有在CPU发出请求队列112中 排队。这样,当没有配置输入请求保存部150时,在父读取请求之后的高速缓 存替换请求被重发。图4B示出当配置输入请求保存部150时对具有同一地址的请求队列进 行预防处理的实例。首先,由CPU 120a发出对地址1000的读取请求。由于 CPU发出请求队列U2还没有保存与读取请求具有相同索引的请求,所以在 CPU发出请求队列112中对发出的读取请求进行排队。由输入请求保存部 150保存所述发出的读取请求。随后,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,CPU发出请求队列112己经保存了具有同一索 引的请求(对地址1000的读取请求)。然而,所述发出的请求与输入请求 保存部150保存的读取请求具有相同的索引并且在不同于该索引的部分中具 有不同的地址,并且为高速缓存替换请求。因此,在CPU发出请求队列112 中对该请求进行排队。由于所述发出的请求为高速缓存替换请求,所以由输 入请求保存部150保存的请求(对地址1000的读取请求)是无效的。这样,当存在输入请求保存部150时,在父读取请求之后的高速缓存替 换请求不被重发,而是在CPU发出请求队列112中排队。图5为说明根据这个实施例的对具有同一地址的请求队列进行预防处理 的实例的示图。图2中所示的实例是对每个CPU总线130准备一个输入请 求保存部150的情况。图5中所示的实例是对每个CPU 120准备一个输入请 求保存部150的情况。在图5中,输入请求保存部150a对应于CPU 120a,输入请求保存部150b 对应于CPU 120b。换句话说,由输入请求保存部150a保存的输入请求为由CPU 120a发出的请求,由输入请求保存部150b保存的输入请求为由CPU 120b发出的请求。如图12所示,将CPU 120a和CPU 120b连接至同一 CPU 总线130a。图5中所示的输入请求保存部150a和150b的内部结构均与图2中所示 的输入请求保存部150的内部结构相同。图5中所示的输入请求保存部150a 和150b中每一个的操作也与图2中所示的输入请求保存部150的操作相同。 因此,省略对它们的结构和操作的说明。此外,图5中所示的CPU发出请 求队列112和OR电路143的操作与图2中所示的CPU发出请求队列112 和OR电路143的操作相同。因此,省略对它们的操作的说明。当发出请求的CPUID为CPU 120a的CPUID时,选择器156将从输入 请求保存部150a的NAND电路155发送的信号发送至AND电路171。当发 出请求的CPUID为CPU 120b的CPUID时,选择器156将从输入请求保存 部150b的NAND电路155发送的信号发送至AND电路171。当从OR电路143发送的信号有效,并且从选择器156发送的信号有效 时,AND电路171确定该发出请求被重发。即使该高速缓存替换请求的索引 地址(ADR0)与由同一CPU120发出的、并在CPU发出请求队列112中排 队的最新请求的索引地址(ADRO)匹配,在高速缓存替换请求地址的另一 预定部分(ADR1)与该最新请求地址的另一预定部分(ADR1)不匹配时也 允许在CPU发出请求队列112中对高速缓存替换请求进行排队。图6为说明输入请求更新的实例的图表。由输入请求保存部150a和150b 中的每一个保存的输入请求的更新取决于由与各输入请求保存部对应的 CPU120a和120b发出的请求的命令(CMD)类型和是否对发出请求进行重 发。如图6所示,当发出请求不是高速缓存替换请求,并且不发生重发(否) 时,使用该发出请求来更新与CPU120 (其为发出请求源)对应的输入请求 保存部150保存的输入请求。当发生重发(是)时,即使发出请求不是高速 缓存替换请求,或者当发出请求是高速缓存替换请求时,与发出请求源的 CPU 120对应的输入请求保存部150保存的输入请求的有效信号(V)均为 无效状态(无效)。如图6所示,仅在输入请求源的CPU 120与发出请求源的CPU 120相
同时,才更新输入请求。换句话说,仅允许对这样的高速缓存替换请求在CPU 发出请求队列112中进行排队,其中该高速缓存替换请求与紧邻该高速缓存替换请求之前的、由同一CPU120发出的不同于该高速缓存替换请求的、并 在CPU发出请求队列112中排队的请求具有相同的索引。图7A和图7B为说明通过为每个CPU配置输入请求保存部所获得的效 果的示图。参照图7A和图7B来说明如图5中所示的对具有同一地址的请求 队列进行预防处理的效果。在图7A和图7B中,时间从左向右流逝。"读取" 表示读取请求,"代替"表示高速缓存替换请求。"CPUa"表示CPU120a, "CPUb"表示CPU 120b。"输入请求保存部'a,"表示输入请求保存部 150a,"输入请求保存部'b,"表示输入请求保存部150b。地址由16位表 示。该16位的地址位7至地址位4表示索引地址。图7A示出当为每个CPU总线130配置输入请求保存部150时对具有同 一地址的请求队列进行预防处理的实例。首先,由CPU 120a发出对地址1000 的读取请求。由于CPU发出请求队列112还没有保存与发出的读取请求具 有相同索引的请求,所以在CPU发出请求队列112中对发出的读取请求进 行排队。由输入请求保存部150a保存由CPU 120a发出的对地址1000的读 取请求。随后,由CPU 120b发出对地址2010的读取请求。由于CPU发出请求 队列112还没有保存与所发出的读取请求具有相同索引的请求,所以在CPU 发出请求队列112中对发出的读取请求进行排队。将输入请求保存部150保 存的由CPU 120a发出的对地址1000的读取请求更新为由CPU 120b发出的 对地址2010的读取请求。随后,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(对地址1000的读取请求)。所述发 出的请求不具有与输入请求保存部150保存的读取请求的索引相同的索引。 因此,所述发出的高速缓存替换请求被重发,并且没有在CPU发出请求队 列112中排队。由于所述发出的请求为高速缓存替换请求,所以由输入请求 保存部150保存的请求(由CPU 120b发出的对地址2010的读取请求)为无 效的。
接下来,由CPU 120b发出从属于对地址2010的读取请求的对地址2110 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(对地址2010的读取请求)。输入请 求保存部150没有保存有效请求。因此,所述发出的高速缓存替换请求被重 发,并且没有在CPU发出请求队列112中排队。这样,当为每个CPU总线130配置输入请求保存部150时,在某一 CPU 120a发出的父读取请求与在该父读取请求之后的高速缓存替换请求之间插 入由同一 CPU总线130的另一 CPU 120b发出的请求。然后,在由CPU 120a 发出的父读取请求之后的高速缓存替换请求被重发。
图7B示出当为每个CPU 120配置输入请求保存部150时对具有同一地 址的请求队列进行预防处理的实例。首先,由CPU 120a发出对地址1000的 读取请求。由于CPU发出请求队列112还没有保存与发出的读取请求具有 相同索引的请求,所以在CPU发出请求队列112中对发出的读取请求进行 排队。由与CPU 120a对应的输入请求保存部150a保存由CPU 120a发出的 对地址1000的读取请求。
随后,由CPU 120b发出对地址2010的读取请求。由于CPU发出请求 队列112还没有保存与所发出的读取请求具有相同索引的请求,所以在CPU 发出请求队列112中对发出的读取请求进行排队。由与CPU 120b对应的输 入请求保存部150b保存由CPU 120b发出的对地址2010的读取请求。
接下来,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(对地址1000的读取请求)。然而, 所述发出的请求与对应于CPU120a的输入请求保存部150a保存的读取请求 具有相同的索引,并且在不同于该索引的部分中具有不同的地址,并且为高 速缓存替换请求。因此,在CPU发出请求队列112中对该请求进行排队。 由于所述发出的请求为高速缓存替换请求,所以由输入请求保存部150a保 存的请求(对地址1000的读取请求)是无效的。
随后,由CPU 120b发出从属于对地址2010的读取请求的对地址2110 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(对地址2010的读取请求)。然而,
所述发出的请求与对应于CPU120b的输入请求保存部150a保存的读取请求 具有相同的索引,并且在不同于该索引的部分中具有不同的地址,并且为高 速缓存替换请求。因此,在CPU发出请求队列112中对该请求进行排队。 由于所述发出的请求为高速缓存替换请求,所以由输入请求保存部150b保 存的请求(对地址2010的读取请求)是无效的。以这种方式,当为每个CPU 120配置输入请求保存部150时,在某一 CPU 120a发出的父读取请求与在该父读取请求之后的高速缓存替换请求之 间插入由同一 CPU总线130的另一 CPU 120b发出的请求。即使在这种情况 下,在由CPU 120a发出的父读取请求之后的高速缓存替换请求不被重发, 而是在CPU发出请求队列112中对其进行排队。图8为说明配置一具有释放输入请求功能的输入请求保存部的实例的示 图。具有参照图8说明的功能,当CPU发出请求队列112的保存请求被释 放,并且所述释放的保存请求作为输入请求由输入请求保存部150保存时, 输入请求保存部150释放该输入请求。在图8中,发出请求、保存请求和输 入请求均包括一组信号,例如有效信号(V)和地址(ADR)。CPU发出请求队列112的每个条目保存条目号(条目No) 。 CPU发出 请求队列112的每个条目包括比较器144和AND电路145。在CPU发出请求队列112的每个条目中,比较器144将用以指定释放 保存请求的条目的请求队列释放条目号与由本身条目保存的条目号(条目 No)进行比较。当两个条目号彼此匹配时,比较器144发送有效信号。当两 个条目号彼此不匹配时,比较器144发送无效信号。当从比较器144发送的信号有效,并且通知释放保存请求的信号的请求 队列释放通知有效时,AND电路145使保存请求的有效信号(V)变得无效 (无效)。输入请求保存部150保存CPU发出请求队列112的条目的条目号(条 目No),在所述CPU发出请求队列112中保存与输入请求保存部150保存 的输入请求对应的保存请求。输入请求保存部150包括比较器157和AND 电路158。比较器157将请求队列释放条目号与由输入请求保存部150保存的条目 号(条目No)进行比较,其中请求队列释放条目号用于指定释放保存请求
的CPU发出请求队列112的条目。当两个条目号彼此匹配时,比较器157发送有效信号。当两个条目号彼此不匹配时,比较器157发送无效信号。当从比较器157发送的信号有效,并且通知释放保存请求的信号的请求 队列释放通知有效时,AND电路158使保存请求的有效信号(V)变得无效 (无效)。图9A和图9B为说明通过配置输入请求保存部获得的效果的示图,其 中所述输入请求保存部具有释放输入请求的功能。在图9A和图9B中,时间 从左向右流逝。"读取"表示读取请求,"代替"表示高速缓存替换请求。 "CPUa"表示CPU 120a, "CPUb"表示CPU 120b。"输入请求保存部'a," 表示输入请求保存部150a,"输入请求保存部'b'"表示输入请求保存部 150b。地址由16位表示。该16位的地址位7至地址位4表示索引地址。图9A示出没有配置具有释放输入请求功能的输入请求保存部的实例。 首先,由CPU 120a发出对地址1000的读取请求。由于CPU发出请求队列 112还没有保存与读取请求具有相同索引的请求,所以在CPU发出请求队列 112中对发出的读取请求进行排队。由输入请求保存部150a保存由CPU 120a 发出的对地址1000的读取请求。在发出下一个请求之前,由CPU发出请求队列112保存的对地址1000 的读取请求被处理,并从CPU发出请求队列112释放。此时,由于CPU 120a 还没有发出新请求,所以没有释放输入请求保存部150a的对地址1000的读 取请求。随后,由CPU 120b发出对地址1100的读取请求。由于CPU 120a发出 的对地址1000的读取请求已经被释放,并且CPU发出请求队列112没有保 存与所述读取请求具有相同索引的请求,所以在CPU发出请求队列112中 对所发出的读取请求进行排队。由与CPU 120b对应的输入请求保存部150b 保存由CPU 120b发出的对地址1100的读取请求。接下来,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(由CPU 120b发出的对地址1100的读 取请求)。然而,所述发出的请求与对应于CPU120a的输入请求保存部150a 保存的读取请求具有相同的索引,并且在不同于该索引的部分中具有不同的地址,并且为高速缓存替换请求。因此,在CPU发出请求队列112中对该 请求进行排队。由于所述发出的请求为高速缓存替换请求,所以由输入请求保存部150a保存的请求(对地址1000的读取请求)是无效的。然而,由CPU 120a发出的对地址1100的高速缓存替换请求与CPU 120b 发出的对地址1100的读取请求具有完全相同的地址,其中所述读取请求已 经由CPU发出请求队列112保存。最初,与CPU发出请求队列112保存的 请求具有完全相同地址的请求应被重发,而没有在CPU发出请求队列112 中排队。这样,当没有配置具有释放输入请求功能的输入请求保存部时,在这样 的系统中,在CPU发出请求队列112中对应该在开始被重发的请求进行排 队,其中在所述系统中从发出父读取请求到发出高速缓存替换请求的时间间 隔可能长于处理读取请求的最短时间。图9B示出配置具有释放输入请求功能的输入请求保存部的实例。首先, 由CPU 120a发出对地址1000的读取请求。由于CPU发出请求队列112还 没有保存与读取请求具有相同索引的请求,所以在CPU发出请求队列112 中对发出的读取请求进行排队。由输入请求保存部150a保存由CPU 120a发 出的对地址1000的读取请求。在发出下一个请求之前,由CPU发出请求队列112保存的对地址1000 的读取请求被处理,并从CPU发出请求队列112释放。此时,根据请求队 列释放通知,在CPU发出请求队列112中被释放的对地址1000的读取请求 在输入请求保存部150a中也被释放。随后,由CPU 120b发出对地址1100的读取请求。由于CPU120a发出 的对地址1000的读取请求已经被释放,并且CPU发出请求队列112没有保 存与所述读取请求具有相同索引的请求,所以在CPU发出请求队列112中 对所发出的读取请求进行排队。由与CPU 120b对应的输入请求保存部150b 保存由CPU 120b发出的对地址1100的读取请求。接下来,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(由CPU 120b发出的对于地址1100的 读取请求)。与CPU 120a对应的输入请求保存部150没有保存有效请求。
因此,所述发出的高速缓存替换请求被重发,并且没有在CPU发出请求队 列112中排队。这样,当配置具有释放输入请求功能的输入请求保存部时,当输入请求保存部150保存有在CPU发出请求队列112中释放的请求时,由输入请求 保存部150保存的该请求也被释放。因此,开始应被重发的请求被重发,并 且没有在CPU发出请求队列112中排队。图10为说明配置输入请求保存部的实例的示图,其中该输入请求保存 部具有通过使用定时器来释放输入请求的功能。参照图10说明使用定时器 来释放输入请求保存部150的输入请求的功能。在图10中,发出请求、保 存请求和输入请求均包括一组信号,例如有效信号(V)和地址(ADR)。由于CPU发出请求队列112中的保存请求的释放与图8所示的情况相 同,所以省略对保存请求的释放的说明。图10中所示的使用定时器对输入 请求的释放不同于图8所示的根据CPU发出请求队列112的保存请求的释 放对输入请求的释放。使用在CPU发出请求队列112中对保存请求的释放 作为时机,在输入请求保存部150中不释放输入请求。输入请求保存部150包括计数器159和指定值确定电路160。在图10 的实例中,由计数器159和指定值确定电路160实现定时器功能。计数器159在输入请求保存部150中登记新请求的同时开始计数。尽管 输入请求的有效信号(V)有效,例如计数器159也在每一时钟增加计数值。 当计数器159的计数值到达预先指定的值N时,指定值确定电路160根据释 放通知使输入请求的有效信号(V)变得无效(无效)。将所述值N设置为 小于读取请求的最短处理时间。图11为说明通过配置输入请求保存部获得的效果的示图,其中所述输 入请求保存部具有释放输入请求的功能。在图11中,时间从左向右流逝。 "读取"表示读取请求,"代替"表示高速缓存替换请求。"CPUa"表示 CPU 120a, "CPUb"表示CPU 120b。"输入请求保存部'a,"表示输入 请求保存部150a,"输入请求保存部"表示输入请求保存部150b。地 址由16位表示。该16位的地址位7至地址位4表示索引地址。首先,由CPU 120a发出对地址1000的读取请求。由于CPU发出请求 队列112还没有保存与发出的读取请求具有相同索引的请求,所以在CPU
发出请求队列112中对发出的读取请求进行排队。输入请求保存部150a保 存由CPU 120a发出的对地址1000的读取请求。此时,在输入请求保存部150a 中启动定时器。当定时器经过指定时间时,即当在输入请求保存部150a中,计数器159 的计数值达到N时,释放由输入请求保存部150a保存的对地址1000的读取 请求。之后,在发出下一个请求之前,由CPU发出请求队列112保存的对 地址1000的读取请求被处理,并从CPU发出请求队列112释放。随后,由CPU 120b发出对地址1100的读取请求。由于CPU120a发出 的对地址1000的读取请求已经被释放,并且CPU发出请求队列112没有保 存与所述读取请求具有相同索引的请求,所以在CPU发出请求队列112中 对读取请求进行排队。由与CPU 120b对应的输入请求保存部150b保存由 CPU 120b发出的对地址1100的读取请求。接下来,由CPU 120a发出从属于对地址1000的读取请求的对地址1100 的高速缓存替换请求。此时,CPU发出请求队列112已经保存了与发出的高 速缓存替换请求具有相同索引的请求(由CPU 120b发出的对地址1100的读 取请求)。与CPU 120a对应的输入请求保存部150a没有保存有效请求。因 此,所述发出的高速缓存替换请求被重发,而不在CPU发出请求队列112 中排队。这样,当配置具有使用定时器来释放输入请求功能的输入请求保存部 时,在CPU发出请求队列112中对请求进行处理之前,能够释放由输入请 求保存部150保存的请求。因此,与参照图9A和图9B说明的情况相同,在 使用CPU发出请求队列112的保存请求的释放作为时机来释放输入请求的 情况下,初始应该被重发的请求被重发,而不在CPU发出请求队列112中 排队。如果将计数器159的间隔设置得更大,则能够实现防止在系统控制器 中具有同一地址的请求队列,同时与使用CPU发出请求队列112的保存请 求的释放作为时机来释放输入请求的情况相比,具有更少的硬件数量。
权利要求
1.一种系统控制器,用于在多处理器系统中控制由CPU发出的请求,该系统控制器包括CPU发出请求队列,具有用于保存由该CPU发出的请求的多个条目;输入请求保存部,用于保存由该CPU发出的、并且由所述CPU发出请求队列保存的、不同于高速缓存替换请求的最新请求;和重发确定部,用以确定由该CPU发出的新请求是否被重发;其中,所述CPU发出请求队列包括重发必要信号输出电路,该重发必要信号输出电路在任一所述条目保存有一地址时输出表示有必要重发的信号,其中该地址的预定部分与由该CPU发出的新请求的地址的预定部分匹配;所述输入请求保存部包括重发控制信号输出电路,在所述新请求为高速缓存替换请求,并且所述新请求的地址的预定部分与由所述输入请求保存部保存的请求的地址预定部分匹配,而所述新请求的地址的其它部分与由所述输入请求保存部保存的请求的地址预定部分不匹配时,该重发控制信号输出电路输出用以控制重发的信号;和所述重发确定部在所述CPU发出请求队列输出表示有必要重发的信号并且所述输入请求保存部没有输出用以控制重发的信号时,确定所述新请求要被重发,否则所述重发确定部确定所述新请求不被重发而使得所述CPU发出请求队列保存所述新请求。
2. 如权利要求1所述的系统控制器,其中对每个CPU配置一个所述输 入请求保存部,所述输入请求保存部保存由与其对应的CPU发出的、并且 由所述CPU发出请求队列保存的、不同于高速缓存替换请求的最新请求; 和所述重发确定部在所述CPU发出请求队列输出表示有必要重发的信号 并且与发出所述新请求的CPU对应的所述输入请求保存部没有输出用以控制重发的信号时,确定所述新请求要被重发,否则所述重发确定部确定所述新请求不被重发而使得所述CPU发出请求队列保存所述新请求。
3. 如权利要求2所述的系统控制器,其中在由所述CPU发出请求队列 保存的、与所述输入请求保存部保存的请求相对应的请求被释放时,所述输 入请求保存部释放由所述输入请求保存部保存的请求,并且不输出用以控制 重发的信号。
4. 如权利要求2所述的系统控制器,其中所述输入请求保存部具有定 时器功能,并且当所述输入请求保存部重新保存所述请求之后经过指定时间 时,所述输入请求保存部释放由所述输入请求保存部保存的请求,并且不输 出用以控制重发的信号。
5. —种同地址请求队列的预防方法,该方法由系统控制器执行,该系统控制器在多处理器系统中控制由该多处理器系统中的CPU发出的请求,该系统控制器包括CPU发出请求队列,具有用于保存由该CPU发出的请求的多个条目;输入请求保存部,用于保存由该CPU发出的、并且由所述 CPU发出请求队列保存的、不同于高速缓存替换请求的最新请求;和重发确 定部,用于确定由该CPU发出的新请求是否要被重发;其中在任一所述条目保存有一地址时,所述CPU发出请求队列输出表示有必 要重发的信号,其中该地址的预定部分与由CPU发出的新请求的地址预定 部分匹配;在所述新请求为高速缓存替换请求,并且所述新请求的地址的预定部分 与由所述输入请求保存部保存的请求的地址预定部分匹配,而所述新请求的 地址的其它部分与由所述输入请求保存部保存的请求的地址预定部分不匹 配时,所述输入请求保存部输出用以控制重发的信号;和在所述CPU发出请求队列输出表示有必要重发的信号并且所述输入请 求保存部没有输出用以控制重发的信号时,所述重发确定部确定所述新请求 要被重发,否则所述重发确定部确定所述新请求不被重发而使得所述CPU 发出请求队列保存所述新请求。
6. 如权利要求5所述的同地址请求队列的预防方法,其中对每个CPU 配置一个所述输入请求保存部,所述输入请求保存部保存由与其对应的CPU 发出的、并且由所述CPU发出请求队列保存的、不同于高速缓存替换请求 的最新请求;和所述重发确定部在所述CPU发出请求队列输出表示有必要重发的信号 并且与发出所述新请求的CPU对应的所述输入请求保存部没有输出用以控 制重发的信号时,确定所述新请求要被重发,否则所述重发确定部确定所述 新请求不被重发而使得所述CPU发出请求队列保存所述新请求。
7. 如权利要求6所述的同地址请求队列的预防方法,其中在由所述CPU 发出请求队列保存的、与所述输入请求保存部保存的请求相对应的请求被释 放时,所述输入请求保存部释放由所述输入请求保存部保存的请求。
8. 如权利要求6所述的同地址请求队列的预防方法,其中所述输入请求保存部具有定时器功能,并且当所述输入请求保存部重新保存所述请求之后 经过指定时间时,所述输入请求保存部释放由所述输入请求保存部保存的请 求。
9. 一种信息处理设备,包括 多个处理器;和系统控制器,其控制由所述处理器发出的请求,其中 所述系统控制器包括请求队列,其具有用于保存由所述处理器发出的请求的多个条目,并且 在由任一所述条目保存有与所述处理器发出的新请求的地址具有相同地址 的请求时,所述请求队列输出表示有必要重发的信号;请求保存部,其保存由所述请求队列保存的、不同于高速缓存替换请求 的最新请求,并且在所述新请求的地址与所述请求保存部保存的请求的地址 不匹配时,所述请求保存部输出用以控制重发的信号;和重发确定部,其在所述请求队列输出表示有必要重发的信号并且所述请 求保存部没有输出用以控制重发的信号时确定所述新请求要被重发。
10. 如权利要求9所述的信息处理设备,其中所述请求队列确定所述新 请求的地址的第一部分与由所述请求队列保存的请求的地址的第一部分是 否彼此匹配。
11. 如权利要求9所述的信息处理设备,其中在所述新请求的地址的第 二部分与由所述请求保存部保存的请求的地址的第二部分彼此不匹配时,所 述请求保存部输出用以控制重发的信号。
全文摘要
本发明提供一种系统控制器、同地址请求队列预防方法及其信息处理设备。在包括CPU发出请求队列的该系统控制器中,由输入请求保存部保存不同于高速缓存替换请求的最新请求,其中所述CPU发出请求队列具有这样一种电路,其处理没有被输入至所述CPU发出请求队列的具有同一地址的多个请求。因此,即使用于高速缓存替换请求的发出请求的地址与CPU发出请求队列保存的请求的地址匹配,用于高速缓存替换请求的发出请求不被重发,但是在用于高速缓存替换请求的发出请求的地址与输入请求保存部保存的全部地址不匹配时,用于高速缓存替换请求的发出请求在CPU发出请求队列中排队。
文档编号G06F12/12GK101127010SQ20071010395
公开日2008年2月20日 申请日期2007年5月17日 优先权日2006年8月18日
发明者伊藤大介, 大胁威, 山本崇史, 植木俊和, 畑井田诚, 石冢孝治, 细川由佳 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1