仲裁器、交叉开关、请求选择方法以及信息处理设备的制作方法

文档序号:6609112阅读:135来源:国知局
专利名称:仲裁器、交叉开关、请求选择方法以及信息处理设备的制作方法
技术领域
本发明涉及一种通过交叉开关从各个单元发出的多个请求中选择一个 请求的技术,其中有多个单元连接到所述交叉开关。
背景技术
近年来,许多计算机(信息处理设备)安装了多个实体上分离的单元。为了这些单元,常常要设置安装有CPU和存储器的主板(SB)和安装有硬 盘设备、IO设备、PC槽等部件的IO单元。这是因为CPU资源和存储器资 源能够根据情况的不同而灵活地分派。换言之,这样就能够有效地利用这些 资源。具备这种结构的计算机安装有一个或多个主板和IO单元。而交叉开 关用于将它们相互连接起来。图1说明了通过交叉开关将多个单元连接起来的计算机结构。如图1所 示, 一个或多个主板10和IO单元20与两个总地址交叉开关30 (以下称为 "地址交叉开关")分别连接,并且与四个总数据交叉开关40 (以下称为"数 据交叉开关")分别连接。管理板(MB) 50是唯一的管理单元,通过SM 总线与各单元10-40分别连接。两个地址交叉开关30同时进行相同的请求控制。因此,地址交叉开关 30在硬件上制作成双份。因为常常同时要发送很多数据,所以设置了四个数 据交叉开关40。"#0"和"#1"分别分派给两个地址交叉开关30。当指定其中一个地址 交叉开关时,可以使用标记"#0"或者"#1"。这也适用于数据交叉开关40。 图2说明了主板10和IO单元20的结构实例。主板10包括四个CPU 101,两个固件中心(FWH) 102,北桥103, 四个存储器开关(在图2中记为"mem.switch" ) 104以及多个连接到各个 存储器开关的存储器105。 1O单元20包括南桥201,两个连接到南桥201 的存储器误码寄存器(SER) 202,连接到各个SER 202的两个ICH6 203,
以及六个连接到各个ICH6的控制器211-216。作为控制器,FWH211、超级 10 (SIO)控制器212、主板管理控制器(BMC) 213、视频图形阵列(VGA) 控制器、两个局域网(LAN)适配器215和216连接到ICH6 203。 BMC213 用于与MB 50通信。ICH6 203是I/0控制器中心。在图2中示出的控制器 211-216只是一个实例,其型号和数量可以随意改变。控制器211-216也可 以根据各IO单元20来确定。1O单元20的南桥201与两个地址交叉开关30以及四个数据交叉开关40分 别连接。南桥201通过SER 202和ICH6 203控制各个控制器211-216。当控制 器211-216的其中一个传递获得的数据时,它发出这样的请求(地址请求)并 将该请求输出到地址交叉开关30。当它通过数据交叉开关40从主板10接收待 传递的数据时,它将数据发送给控制器,使得控制器能够存储、输出或者发 送该数据,其中该数据通过SER202和ICH6 203发送给该控制器。主板10上四个CPU 101的每一个都可以向存储器105、其他的主板10或者 1O单元20发出读/写命令,并将此命令输出到北桥103。北桥103暂时存储各个 CPU IOI输入的命令,按照优先级选择其中的一个命令,将该命令作为请求 (地址请求)发出,并将该请求输出到各个地址交叉开关30和四个存储器开 关104的每一个。通过数据交叉开关40传递的数据由存储器开关104接收,输出到北桥103 并通过北桥103传递给需要该数据的CPU 101。待传递给其他主板10或者IO单 元20的数据通过存储器开关104发送并传递给数据交叉开关40。这里为方便 起见,在下文中,由主板10和IO单元20向地址交叉开关发出和输出的请求分 别称为"CPU请求"和"IO请求"。当请求时,各个主板10和IO单元20向地址交叉开关输出请求。这样,这 些请求被收集到地址交叉开关30,并且容易将未经处理的请求的个数保持为 与多个单元的个数相同。因此,地址交叉开关30安装有仲裁器,用于选择不 同单元发出的多个请求中的一个。图3说明了传统的仲裁器的结构。主板10和IO单元20发出和输出的请求分别暂时存储在用于主板的模块 (这里称为"SM"模块)310和用于IO单元的模块(这里称为"IO"模块)320 中。模块310包括多个用于为各个单元存储请求的队列缓冲单元311。各个队 列缓冲单元311包括用于控制队列缓冲单元311的队列控制单元312 (在图3中
用"队列控制"表示)和请求存储缓冲器313。缓冲器313能够存储多个请求, 在图3中示出的"队列1"-"队列5"即表示存储在缓冲器313中的多个请求。标号 'T'-"5"的数值越小,则队列存储得越早。例如,"队列l"存储得最早。在IO 模块320中也设置了队列缓冲单元311,但是在图3中没有示出。这样,那些 设置在IO模块320中的队列缓冲单元可使用与SM模块310中的队列缓冲单元 相同的附图标记。传统的仲裁器330包括优先级逻辑电路331 (在图3中用"优先级"表示)和 选择器332。对于各个队列缓冲单元311,请求是从SM模块310和IO模块320 输出到选择器332。各个队列缓冲单元311输出的请求最早被存储。各个队列缓冲单元311的队列控制单元312向优先级逻辑电路331输出队 列存在信号,该信号表明请求是否存储在缓冲器313中。逻辑电路331通过该 信号指定带有未经处理的请求的单元,并根据规定的规则(优先级规则)从 各单元中选择一个单元,而请求应当从该单元中选出。逻辑电路331根据选 择结果向选择器332输出选择信号,使得选择器332能够从所选择的单元选择 并输出请求。该请求被发送到应当发送的单元,或者被传播出去。当被传播 出去时,该请求被发送到其他所有单元。优先级逻辑电路331将请求的选择结果通知请求被选择单元对应的队列 缓冲单元311的队列控制单元312。按照通知,队列控制单元312删除所选择 的请求。当保持有请求时,各请求中最早存储的请求被输出到选择器332。 这样,只有未经处理的请求留在缓冲器313中。当接收到新发出的请求时, 在缓冲器313中寻找空闲区域并将该请求存储在此区域中。图4说明按照传统仲裁器采用的规则确定优先级。在图4中,"请求l"-"请 求8"的每个由不同的单元发出。初始优先级表示在发出请求的单元中初始确 定的优先级。例如,发出"请求l"的单元优先级最高,发出"请求8"的单元优 先级最低。 一个选定的请求相应于由选择器332选择并输出的请求。发出请求的单元中的优先级按照实际所选择的请求动态地调整。当选择 "请求2"时,将最低优先级赋给发出"请求2"的单元,而将最高优先级赋给发 出"请求3"的单元。类似地,当选择"请求5"时,将最低优先级赋给发出"请求 5"的单元,而将最高优先级赋给发出"请求6"的单元。当选择"请求8"时,将 最低优先级赋给发出"请求8"的单元,而将最高优先级赋给发出"请求l"的单元。换言之,优先级返回到初始优先级。这样,通过每次选择请求时改变优 先级,能够从发出请求的单元中均等地选择请求。当按照上述规则选择请求时,根据情况的不同,实际选择的请求顺序如下。以下参照图5A至图6B详细说明此顺序。图5A和图5B示出安装有五个主板10和五个IO单元20的传统仲裁器所选 择的请求顺序。图5A示出发出将由仲裁器330选择的请求的单元,图5B示出 请求的实际选择顺序。在图5A中,"CPl^0"-"CPLW4"分别表示不同的主板10发出的请求。类似 地,"IO#0"-"IO#4"分别表示不同的10单元20发出的请求。因为 "CPl^0"-"CPl^4"存储在SM模块中,所以那些请求的方框使用标记"310", 同样地,"IO#0"-"IO#4"的方框使用标记"320"。在这种情况下,按照顺序"IC^0"-"IC^4"和"CPU弁0"-"CPl^4"给出优先 级。假定在所有单元中存在未经处理的请求。这样,优先级逻辑电路331按 照图5B示出的顺序选择请求。实际上,如同预计的,是按照顺序"10#0"-"10#4" 和"CPU糾"-"CPU糾"的顺序来选择请求。图6A和图6B示出安装有五个主板10和一个IO单元20的传统仲裁器所选 择的请求顺序。如同图5A和图5B,图6A示出发出将由仲裁器330选择的请求 的单元,图6B示出请求的实际选择顺序。在这种情况下,按照顺序"CPU糾"、"IO#0"、 "CPU弁1"-"CPU弁4"给出优 先级。假定在所有单元中存在未经处理的请求,并且存在两个"10#"。这样, 优先级逻辑电路331按照图6B示出的顺序选择请求。实际上,是按照顺序 "CPU#0,,、 "IO#0"、 "CPUW-"CPl^4"的顺序来选择请求,之后,按照顺序 "CPU糾"、"IO#0"、 "CPUW和"CPl^2"的顺序来选择请求。如图4所示,通过改变发出请求的单元的优先级,能够从这些单元中均 等地选择请求(处理)。但是,在这种各单元以非常短的间隔发出请求的请 求状况下,必须依次处理每个单元发出的请求(图5A和图5B)。因此,各单 元在选择一个请求后再选择一个随后的请求的时间变长。因此单元的数目增 加。如图6A和图6B所示,如果一些单元先后发出多个请求,在这种状况下, 只有当其他单元发出的请求被选择后,才选择第二请求和后续请求。因此, 一个请求被发出后直到被实际选择的时间间隔在很大程度上取决于请求状
况。如果有多个请求被先后发出,那么有可能一个请求被发出后直到被实际 选择的时间间隔(处理时间)变得很长。在用很长的处理时间来发出请求的单元中,资源的使用效率下降,从而 计算机(系统)的整体性能下降。当处理时间等于或大于一定时间,也就是 说超时的时候,就认为对所发出的请求的处理失败并重新发出请求。这种超 时严重影响了系统,有时候还会使系统停止工作。因此,避免从某个单元发 出的请求长时间得不到处理是非常重要的。参考文献包括日本专利申请No.H05-342178, 2000-112876, 2006-65457 以及2004-5727。发明内容本发明的目的是提供一种技术,以避免从多个单元的其中一个单元发出 的请求长时间得不到处理。本发明的第一方案和第二方案中的仲裁器都假定能够将交叉开关置于 使能状态,以从各个单元发出的多个请求中选择一个请求,其中,多个单元连接到所述交叉开关。所述仲裁器包括第一请求选择部件,用于从属于同 一组的多个单元中的每一个单元发出的多个请求中选择一个请求;以及第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选 择一个请求,所述仲裁器还包括以下部件。在第一方案中,所述仲裁器还包括选择控制部件,用于将所述第二请求 选择部件置于使能状态,以根据所述多个组中的预定优先级来选择请求。所 述多个组中的优先级以规定的时间间隔改变。在第二方案中,所述仲裁器还包括选择控制部件,用于使得所述第二请 求选择部件根据所述多个组中的预定优先级来选择请求。所述多个组中的优 先级动态地改变。本发明的第一方案和第二方案中的交叉开关都假定有多个单元连接到 所述交叉开关,并且包括第一方案和第二方案中的仲裁器。本发明的第一方案和第二方案中的请求选择方法都假定用于将交叉开 关置于使能状态,以从各个单元发出的多个请求中选择一个请求,其中,多 个单元连接到所述交叉开关,并且交叉开关如下所述来选择请求。 在第一方案的请求选择方法中,多个单元分为多个组,根据所述多个组 中的优先级,对于每个组,从属于同一个组的多个单元的每一个单元发出的 多个请求中选择一个请求,以及从为每个组选择的多个请求中选择一个请 求,所述多个组中的优先级以预定时间间隔改变。在第二方案的请求选择方法中,多个单元分为多个组,根据所述多个组 中的优先级,对于每个组,从属于同一个组的多个单元的每一个单元发出的 多个请求中选择一个请求,以及从为每个组选择的多个请求中选择一个请 求,所述多个组中的优先级动态地改变。本发明的信息处理设备包括多个处理单元,所述多个处理单元分为多 个组,所述多个组中的每一个组用于发出请求;第一请求选择部件,用于对 所述多个处理单元发出的请求的优先级进行仲裁,并从属于同一个组的多个 处理单元的每一个处理单元所发出的多个请求中选择一个请求;第二请求选 择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个 请求;以及选择控制部件,用于将所述第二请求选择部件置于使能状态,以 根据所述多个预定组中的优先级来选择请求。所述多个组中的优先级能够动 态地改变。在本发明中,单元(处理单元)分为多个组,根据所述多个组中的优先 级,从属于同一个组的多个单元的每一个单元发出的多个请求中选择一个请 求,以及从为每个组选择的多个请求中选择一个请求,所述多个组中的优先 级以预定时间间隔改变。通过改变所述多个组中的优先级,从而能够以规定的时间间隔从为每个 组选择的多个请求中选择一个请求,这样,不管请求的状态如何, 一个单元 每单位时间发出的请求的次数总能够保持在一定数值之上,因为这个单元属 于优先级每隔时间间隔提高的组。因此,通过将所发出的请求很可能长时间 得不到处理的单元所属的组选择作为这样的组,即在其中,每隔一个时间间 隔,选择具有优先级的请求,那么,不管请求状态如何,都能够避免发生单 元的请求长时间得不到处理。


图l示出交叉开关将多个单元连接到计算机的结构;
图2示出主板10和IO单元20的结构实例; 图3示出传统仲裁器的结构;图4示出按照传统仲裁器采用的规则确定的优先级;图5A和图5B示出安装有五个主板10和五个IO单元的传统仲裁器所选择 的请求顺序;图6A和图6B示出安装有五个主板10和一个IO单元的传统仲裁器所选择 的请求顺序;图7示出第一优选实施例的仲裁器的结构;图8A和图8B示出安装有五个主板10和五个IO单元的第一优选实施例的 仲裁器730所选择的请求顺序;图9示出第二优选实施例的仲裁器的结构;图10示出优先级控制信号S1的电平与待设定的优先级类型之间的关系;以及图IIA和图11B示出第二优选实施例的仲裁器900所选择的请求顺序, 其中,有多个请求分别由五个主板10发出,并且有多个请求由10单元20 发出。
具体实施方式
以下参照附图详细说明本发明的优选实施例。 <第一优选实施例>图7示出第一优选实施例的仲裁器的结构。仲裁器730安装在图1或图2所 示的地址交叉开关30上,用于选择各个主板10和IO单元20发出的请求。这样, 本优选实施例的交叉开关实施为安装有仲裁器730的地址交叉开关30。本优 选实施例的信息处理设备通过与主板10和IO单元20分别连接的地址交叉开 关30来实现。每一个主板10和IO单元20相应于一个处理单元。主板10和IO单元20发出和输出的请求分别暂时存储在用于主板的模块 (这里称为"SM模块")710和用于IO单元的模块(这里称为"IO模块")720 中。模块710包括多个用于为各个单元存储请求的队列缓冲单元711。每个队 列缓冲单元711包括用于控制队列缓冲单元711的队列控制单元712 (在图7中 用"队列控制"表示)和请求存储缓冲器713。缓冲器713能够存储多个请求,
在图7中示出的"队列1"-"队列5"即表示存储在缓冲器713中的多个请求。标号"r-"5"的数值越小,则队列存储得越早。例如,"队列r存储得最早。在io模块720中也设置了队列缓冲单元711,但是在图7中没有示出。这样,那些 设置在IO模块720中的队列缓冲单元可使用与SM模块710中的队列缓冲单元 相同的附图标记。如图7所示,本优选实施例的仲裁器730包括优先级逻辑电路731 (在图7 中用"优先级"表示)、选择器732以及计数器733。对于每个队列缓冲单元711, 请求是从SM模块710和IO模块720输出到选择器732。输出的请求最早被存 储。各个队列缓冲单元711的队列控制单元712向优先级逻辑电路731输出队 列存在信号,该信号表明请求是否存储在缓冲器713中。逻辑电路731通过该 信号指定带有未经处理的请求的单元,并根据随后有效(适用)的规则(优 先级规则)从各单元中选择一个单元,而请求应当从该单元中选出。逻辑电 路731根据选择结果向选择器732输出选择信号,使得选择器732能够从所选 择的单元选择并输出请求。该请求被发送到应当发送的单元,或者被传播出 去。当被传播出去时,该请求被发送到其他所有单元。有效规则根据计数器733的信号动态地改变。例如,当计数器733计数 到最大计数值时,其计数变为零,并输出逻辑数值为1的载波信号。计数器 733的计数时钟例如为系统时钟或者通过除系统时钟而得到的时钟。优先级 逻辑电路731例如暂时地多次改变规则,例如,每次当计数器733输入逻辑 值为l的载波信号时。在下文中,输出载波信号的时间间隔和改变暂时规则 的时间间隔分别称作"测量周期"和"周期A "。在各个周期A暂时有效的规则例如是选择由主板10和IO单元20的其 中一个发出的具有优先权的请求。根据此规则(以下称作"暂时规则"), 在周期A强制选择其中一个发出的请求(以下称作"优先权类型") 一次。 当暂时规则失效时,例如,图4中所示的规则(以下称作"传统规则")生 效。由于传统规则有规律地使暂时规则生效,换言之,强制选择通过该暂时 规则给定优先级的单元所发出的请求,例外地给定优先级的单元选择一个请 求。当暂时规则有效时,待选择的请求例如通过传统规则被选择。这样,实 际上,传统规则为每一个优先级类型和非优先级类型选择请求,并且其中一 个是从这样的请求中选择即,这些请求根据它们的优先级为每一个优先级 类型和非优先级类型而选择。换言之,单元10和20分为优先级类型和非优先级类型,其中一个是为每一个组而选择, 一个是从以下请求中选择这些 请求根据组的优先级为每一个组而选择。因此,暂时规则是通过优先级类型 和非优先级类型之间优先级的变化来改变优先级。优先级逻辑电路731将请求的选择结果通知与请求被选择单元对应的队列缓冲单元711的队列控制单元712。按照通知,队列控制单元712删除所选 择的请求。当保持有请求时,队列控制单元712将各请求中最早存储的请求 输出到选择器732。这样,只有未经处理的请求留在缓冲器713中。当接收到 新发出的请求时,队列控制单元712在缓冲器713中寻找空闲区域并将该请求 存储在此区域中。图8A和图8B示出安装有五个主板10和五个IO单元的第一优选实施 例的仲裁器730所选择的请求顺序。图8A示出发出将由仲裁器730选择的 目标请求的单元,图8B示出实际选择的请求顺序。在图8A中,"CPU弁0"-"CPl^4"分别表示不同的主板10发出的请求。类似 地,"IO#0"-"IO#4"分别表示不同的IO单元20发出的请求。因为用 "CPU#0"-"CPU#4"表示的请求存储在SM模块710中,所以用 "CPU弁0"-"CPU糾"表示的方框使用标记"710",同样地,用"10#0"-"10#4"表 示的方框使用标记"720"。在这种情况下,优先级赋给主板IO。根据传统规则(初始状态),优先 级以"10#0"-"10#4"的顺序给出。当采用暂时规则时(初始状态),优先级赋 给"CPU糾"-"CPU弁4。在所有单元中存在多个未经处理的请求。在这种状态 下,优先级逻辑电路731以图8B所示的顺序选择请求。由于有三个请求选 择,周期A较长,所以主板10发出的请求根据优先级在每个周期A依次被 选择一次。当选定优先级后,1O单元20发出的请求也根据优先级依次被选 择。如上所述,通过有规律地使暂时规则生效,优先级类型单元发出的请求 能够以需要的时间间隔被强制选择。不管请求状态如何,能够保持每单位时 间优先级类型单元发出的请求的次数。因此,当将优先权赋给一个所发出的
请求的处理时间很可能变长的单元时,优先级类型单元发出的请求的处理时 间将比仅有图4所示的规则有效的情况下更短。这样,就能够抑制由于处理 时间长而造成的性能下降,从而安全地避免由于超时造成的系统当机。管理板(MB) 50为各个单元(芯片单元)10-40执行不同的指令或者得 到这样的信息。各单元10-40内部包括设置寄存器,在该寄存器中存储了各 种设置。这样,通过存储暂时规则的设置、优先级类型等以及根据存储在寄 存器中的设置来操作优先级逻辑电路731,就能够进行上述操作。当输入到计数器733的时钟周期可变时,在寄存器中还可以存储周期A 长度的设置。或者,还可以存储在各个周期A中强制选择的请求的数目设置。 这样,不同的变量都行。<第二优选实施例>在上述第一优选实施例中,优先权设置固定在当暂时规则有效时从中选 择了请求的单元类型中。然而,在第二优选实施例中,对请求进行采样并且 根据结果自动地改变优先权设置。由于是根据请求采样的结果来改变设置, 所以能够根据状态来选择适当的优先权。这样,就可以进一步抑制性能下降 并更加安全地避免由于超时造成的系统当机。在第二优选实施例中,与第一优选实施例中相同或基本上相同的单元使 用相同的附图标记。这样,在第二优选实施例中,关注并说明与第一优选实 施例中不同的部件。图9示出第二优选实施例的仲裁器的结构。如同第一优选实施例,第二 优选实施例的仲裁器900安装在图1或图2所示的地址交叉开关上,用于选 择各个主板10和IO单元20发出的请求。这样,将本优选实施例的交叉开 关实施为安装有仲裁器900的地址交叉开关30。本优选实施例的信息处理设 备通过与主板10和10单元20分别连接的地址交叉开关30来实现。主板10和IO单元20发出和输出的请求分别暂时存储在SM模块710 和10模块720中。仲裁器900包括优先级控制模块910,用于为各个模块 710和720采样存储在各个模块710和720中的请求,以及设置优先级。如 图9所示,模块910包括两个计数器911和912、比较器913以及计时器914。
类似地,每一次当请求输入其中一个安装在IO模块720上的队列缓冲单元711时,就有一个脉冲输出到计数器912中来对IO单元20发出的请求进行 计数。计数器911和912通过计时器914以一定时间间隔输出的载波信号来 复位。这样,在一定的周期内,计数器911和912分别计数主板10和IO单 元20所发出请求的数目。计时器914输出的载波信号输入到比较器913。当输入载波信号(例如, 逻辑值为1的有效信号)时,比较器913比较之前刚刚从计数器911和912 输入的各个计数值,并将比较结果输出到优先级逻辑电路901中作为优先级 信号Sl。如果计数器911的计数值<计数器912的计数值,则信号Sl的逻 辑值为1 (电平为"H")。如果计数器911的计数值^计数器912的计数 值,则信号S1的逻辑值为0 (电平为"L")。当必须改变逻辑值时,根据 比较结果来确定是否改变它。图10示出优先级控制信号Sl的电平与待给定的优先级类型之间的关 系。在图10中,"设置模式"根据是否为优先级类型来设置,在"CPU优 先级"模式中,将优先级赋给主板10。在"IO优先级"模式中,优先级赋 给IO单元20。这样,图IO示出当优先级信号SI的电平为"H"时,设置 CPU优先级模式,而当优先级信号S1的电平为"L"时,设置IO优先级模 式。通常都采用这样的模式设置,因为如果将优先级赋给请求总数较少的单 元发出的请求,就能够更有效地抑制系统性能的下降。优先级逻辑电路901监测优先级控制信号Sl并操作在由信号Sl的电平所指定的模式下。如图11A所示,逻辑电路901包括CPU优先级逻辑电路(在图10中表示为"CPU—优先级")1001,用于选择主板10发出的请求;IO优先级逻辑电路(在图IO中表示为"IO—优先级")1002,用于选择1O单元20发出的请求;以及ALL优先级逻辑电路(在图10中表示为"ALL—优先级")1003,用于接收逻辑电路1001和1002的选择结果,并选择其中 一个。逻辑电路1001和1002都根据例如图4中的规则选择请求。这样,当逻 辑电路1001和1002各自输入其选择结果时,逻辑电路1003选择由具有优 先级的信号电平所指定的选择结果。因此,优先级类型单元发出的请求被选 择,直到没有这种请求,之后选择非优先级类型单元所发出的请求。
图IIA和图11B示出第二优选实施例的仲裁器900所选择的请求顺序, 其中,有多个请求分别由五个主板10发出,并且有多个请求由IO单元20 发出。图IIA示出留在各单元中未经处理的请求,图IIB示出实际选择的请 求顺序。在这种情况下,将优先级赋给IO单元20。至于主板IO发出的请求(初 始状态),优先级以"CPU糾"-"CP,4"的顺序给出。没有IO单元发出新的 请求。这样,如果在图IIA所示的状态中设置IO优先级模式,特别地,优 先级控制信号S1电平为"H"时,如图IIB所示,在连续选择两个IO糾请 求之后,按照优先级随后选择主板10发出的请求。在第二优选实施例中,按照信号电平指定的优先级,连续选择主板10 和IO单元20的其中一个所发出的请求,直到不再有请求。然而,这种按照 优先级的选择仅在预定周期内或者仅在预定次数生效。当仅在预定周期内或 者仅多次生效时,周期或次数也可以根据请求的采样结果自动设置。至于向主板10或者IO单元20给出优先级的模式设置,也可以为每一 种模式定义要满足的关系。更具体地,例如,如果计数器911的计数值<计 数器912的计数值一a (预定常数),也可以设置CPU优先级模式。这同样 适用于IO优先级模式的设置。当既没有设置IO优先级模式也没有设置CPU 优先级模式时,利用三个逻辑电路1001-1003,也可以根据图4所示的规则 来选择请求。或者,利用管理板50、 SAL (Linux上的科学应用)等,可以 任意设置常数a、计时器914所计数的时间间隔等。由于能够任意安装的单元(处理单元)仅限于主板10和IO单元20两 种类型,在本优选实施例中,单元按照类型来分组。这样,组数为2。然而, 如果还可以安装除了主板10和IO单元20之外的其它单元类型,或者它们 之中的至少一种可以进一步分成多种类型,那么它们也可以分为三组或更多 组,并且根据这些组的优先级,从为各个组选择的请求中可以选择出一个请 求。这样,可安装单元的类型和数目不受限制。
权利要求
1、一种仲裁器,用于从多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个单元安装在交叉开关上并与交叉开关连接,所述仲裁器包括第一请求选择部件,用于分别从属于多个组的同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求;第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个组中的预定优先级来选择请求;以及所述多个组中的优先级能够以规定的时间间隔改变。
2、 如权利要求1所述的仲裁器,其中当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接 外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组 第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组, 以及所述选择控制部件暂时使所述第一组的优先级高于所述第二组。
3、 一种仲裁器,用于从多个单元的每一个单元所发出的多个请求中选 择一个请求,所述多个单元安装在交叉开关上并与交叉开关连接,所述仲裁 器包括第一请求选择部件,用于分别从属于多个组的同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求;第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个 请求中选择一个请求;选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所 述多个组中的预定优先级来选择请求;以及所述多个组中的优先级能够动态地改变。
4、 如权利要求3所述的仲裁器,其中所述选择控制部件包括多个计数部件,用于为各个组对发出请求的次数 进行计数,所述优先级基于所述多个计数部件为各个组计数的次数而动态地 改变。
5、 如权利要求4所述的仲裁器,其中所述选择控制部件将最高优先级赋给所述多个计数部件计数的次数为 最少的组。
6、 如权利要求3所述的仲裁器,其中当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的10单元作为单元连接到所述交叉开关时,所述多个组分为两个组第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
7、 一种交叉开关,连接至多个单元,所述交叉开关包括第一请求选择部件,对于多个组中的每一个组,从属于同一个组的多个 单元的每一个单元所发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到;第二请求选择部件,从所述第一请求选择部件为各个组选择的多个请求 中选择一个请求;以及选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所 述多个组中的优先级来选择请求,所述多个组中的优先级以预定时间间隔改 变。
8、 如权利要求7所述的仲裁器,其中当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接 外设的10单元作为单元连接到所述交叉开关时,所述多个组分为两个组 第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
9、 一种交叉开关,连接至多个单元,所述交叉开关包括第一请求选择部件,对于多个组中的每一个组,从属于同一个组的多个 单元的每一个单元所发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到;第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个 请求中选择一个请求;以及选择控制部件,用于动态地改变所述多个组中的优先级,以及将所述第 二请求选择部件置于使能状态,以根据所述优先级来选择请求。
10、 如权利要求9所述的交叉开关,其中 当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接 外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组 第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
11、 一种请求选择方法,用于将交叉开关置于使能状态,以从多个单元 发出的请求中选择一个请求,其中所述多个单元的每一个单元都连接到所述 交叉开关,所述方法包括对于多个组中的每一个组,从属于同一个组的多个单元的每一个单元所 发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到; 以及根据所述多个组中的优先级,从为多个组中的每一个组选择的多个请求 中选择一个请求,所述多个组中的优先级以预定时间间隔改变。
12、 如权利要求11所述的请求选择方法,其中当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接 外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组 第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
13、 一种请求选择方法,用于将交叉开关置于使能状态,以从多个单元 发出的请求中选择一个请求,其中所述多个单元的每一个单元都连接到所述 交叉开关,所述方法包括对于多个组中的每一个组,从属于同一个组的多个单元的每一个单元所 发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到; 以及动态地改变所述多个组中的优先级,并根据所述优先级,从为所述多个 组中的每一个组选择的多个请求中选择一个请求。
14、 如权利要求13所述的请求选择方法,其中当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接 外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组 第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
15、 一种信息处理设备,包括多个处理单元,所述多个处理单元分为多个组,所述多个组中的每一个 组用于发出请求; 第一请求选择部件,用于对所述多个处理单元发出的请求的优先级进行 仲裁,并从属于同一个组的处理单元所发出的多个请求中选择一个请求;第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个 请求中选择一个请求;选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所 述多个组中的预定优先级来选择请求;其中所述多个组中的优先级能够动态地改变。
全文摘要
多个单元(处理单元)连接到交叉开关,所述多个单元分为多个组,根据所述多个组中的优先级,从为每个组选择的多个请求中选择一个请求,所述多个组中的优先级以预定时间间隔改变。这样,不管请求的状态如何,一个单元每单位时间发出的请求的次数总能够保持在一定数值之上,因为这个单元属于优先级以规定时间间隔提高的组。
文档编号G06F15/16GK101127020SQ20071010409
公开日2008年2月20日 申请日期2007年5月23日 优先权日2006年8月18日
发明者市宫淳次, 木下贵行, 糸泽慎太郎 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1