首页> 中国专利> 仲裁器、交叉开关、请求选择方法以及信息处理设备

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

摘要

多个单元(处理单元)连接到交叉开关,所述多个单元分为多个组,根据所述多个组中的优先级,从为每个组选择的多个请求中选择一个请求,所述多个组中的优先级以预定时间间隔改变。这样,不管请求的状态如何,一个单元每单位时间发出的请求的次数总能够保持在一定数值之上,因为这个单元属于优先级以规定时间间隔提高的组。

著录项

  • 公开/公告号CN101127020A

    专利类型发明专利

  • 公开/公告日2008-02-20

    原文格式PDF

  • 申请/专利权人 富士通株式会社;

    申请/专利号CN200710104096.6

  • 发明设计人 市宫淳次;木下贵行;糸泽慎太郎;

    申请日2007-05-23

  • 分类号G06F13/36;G06F15/173;

  • 代理机构隆天国际知识产权代理有限公司;

  • 代理人张龙哺

  • 地址 日本神奈川县川崎市

  • 入库时间 2023-12-17 19:45:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-12-02

    授权

    授权

  • 2008-04-16

    实质审查的生效

    实质审查的生效

  • 2008-02-20

    公开

    公开

说明书

技术领域

本发明涉及一种通过交叉开关从各个单元发出的多个请求中选择一个请求的技术,其中有多个单元连接到所述交叉开关。

背景技术

近年来,许多计算机(信息处理设备)安装了多个实体上分离的单元。为了这些单元,常常要设置安装有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包括:四个CPU101,两个固件中心(FWH)102,北桥103,四个存储器开关(在图2中记为“mem.switch”)104以及多个连接到各个存储器开关的存储器105。IO单元20包括:南桥201,两个连接到南桥201的存储器误码寄存器(SER)202,连接到各个SER 202的两个ICH6 203,以及六个连接到各个ICH6的控制器211-216。作为控制器,FWH 211、超级IO(SIO)控制器212、主板管理控制器(BMC)213、视频图形阵列(VGA)控制器、两个局域网(LAN)适配器215和216连接到ICH6203。BMC 213用于与MB 50通信。ICH6203是I/O控制器中心。在图2中示出的控制器211-216只是一个实例,其型号和数量可以随意改变。控制器211-216也可以根据各IO单元20来确定。

IO单元20的南桥201与两个地址交叉开关30以及四个数据交叉开关40分别连接。南桥201通过SER 202和ICH6 203控制各个控制器211-216。当控制器211-216的其中一个传递获得的数据时,它发出这样的请求(地址请求)并将该请求输出到地址交叉开关30。当它通过数据交叉开关40从主板10接收待传递的数据时,它将数据发送给控制器,使得控制器能够存储、输出或者发送该数据,其中该数据通过SER 202和ICH6 203发送给该控制器。

主板10上四个CPU 101的每一个都可以向存储器105、其他的主板10或者IO单元20发出读/写命令,并将此命令输出到北桥103。北桥103暂时存储各个CPU 101输入的命令,按照优先级选择其中的一个命令,将该命令作为请求(地址请求)发出,并将该请求输出到各个地址交叉开关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中的多个请求。标号“1”-“5”的数值越小,则队列存储得越早。例如,“队列1”存储得最早。在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中,“请求1”-“请求8”的每个由不同的单元发出。初始优先级表示在发出请求的单元中初始确定的优先级。例如,发出“请求1”的单元优先级最高,发出“请求8”的单元优先级最低。一个选定的请求相应于由选择器332选择并输出的请求。

发出请求的单元中的优先级按照实际所选择的请求动态地调整。当选择“请求2”时,将最低优先级赋给发出“请求2”的单元,而将最高优先级赋给发出“请求3”的单元。类似地,当选择“请求5”时,将最低优先级赋给发出“请求5”的单元,而将最高优先级赋给发出“请求6”的单元。当选择“请求8”时,将最低优先级赋给发出“请求8”的单元,而将最高优先级赋给发出“请求1”的单元。换言之,优先级返回到初始优先级。这样,通过每次选择请求时改变优先级,能够从发出请求的单元中均等地选择请求。

当按照上述规则选择请求时,根据情况的不同,实际选择的请求顺序如下。以下参照图5A至图6B详细说明此顺序。

图5A和图5B示出安装有五个主板10和五个IO单元20的传统仲裁器所选择的请求顺序。图5A示出发出将由仲裁器330选择的请求的单元,图5B示出请求的实际选择顺序。

在图5A中,“CPU#0”-“CPU#4”分别表示不同的主板10发出的请求。类似地,“IO#0”-“IO#4”分别表示不同的IO单元20发出的请求。因为“CPU#0”-“CPU#4”存储在SM模块中,所以那些请求的方框使用标记“310”,同样地,“IO#0”-“IO#4”的方框使用标记“320”。

在这种情况下,按照顺序“IO#0”-“IO#4”和“CPU#0”-“CPU#4”给出优先级。假定在所有单元中存在未经处理的请求。这样,优先级逻辑电路331按照图5B示出的顺序选择请求。实际上,如同预计的,是按照顺序“IO#0”-“IO#4”和“CPU#0”-“CPU#4”的顺序来选择请求。

图6A和图6B示出安装有五个主板10和一个IO单元20的传统仲裁器所选择的请求顺序。如同图5A和图5B,图6A示出发出将由仲裁器330选择的请求的单元,图6B示出请求的实际选择顺序。

在这种情况下,按照顺序“CPU#0”、“IO#0”、“CPU#1”-“CPU#4”给出优先级。假定在所有单元中存在未经处理的请求,并且存在两个“IO#”。这样,优先级逻辑电路331按照图6B示出的顺序选择请求。实际上,是按照顺序“CPU#0”、“IO#0”、“CPU#1”-“CPU#4”的顺序来选择请求,之后,按照顺序“CPU#0”、“IO#0”、“CPU#1”和“CPU#2”的顺序来选择请求。

如图4所示,通过改变发出请求的单元的优先级,能够从这些单元中均等地选择请求(处理)。但是,在这种各单元以非常短的间隔发出请求的请求状况下,必须依次处理每个单元发出的请求(图5A和图5B)。因此,各单元在选择一个请求后再选择一个随后的请求的时间变长。因此单元的数目增加。如图6A和图6B所示,如果一些单元先后发出多个请求,在这种状况下,只有当其他单元发出的请求被选择后,才选择第二请求和后续请求。因此,一个请求被发出后直到被实际选择的时间间隔在很大程度上取决于请求状况。如果有多个请求被先后发出,那么有可能一个请求被发出后直到被实际选择的时间间隔(处理时间)变得很长。

在用很长的处理时间来发出请求的单元中,资源的使用效率下降,从而计算机(系统)的整体性能下降。当处理时间等于或大于一定时间,也就是说超时的时候,就认为对所发出的请求的处理失败并重新发出请求。这种超时严重影响了系统,有时候还会使系统停止工作。因此,避免从某个单元发出的请求长时间得不到处理是非常重要的。

参考文献包括:日本专利申请No.H05-342178,2000-112876,2006-65457以及2004-5727。

发明内容

本发明的目的是提供一种技术,以避免从多个单元的其中一个单元发出的请求长时间得不到处理。

本发明的第一方案和第二方案中的仲裁器都假定能够将交叉开关置于使能状态,以从各个单元发出的多个请求中选择一个请求,其中,多个单元连接到所述交叉开关。所述仲裁器包括:第一请求选择部件,用于从属于同一组的多个单元中的每一个单元发出的多个请求中选择一个请求;以及第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求,所述仲裁器还包括以下部件。

在第一方案中,所述仲裁器还包括选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个组中的预定优先级来选择请求。所述多个组中的优先级以规定的时间间隔改变。

在第二方案中,所述仲裁器还包括选择控制部件,用于使得所述第二请求选择部件根据所述多个组中的预定优先级来选择请求。所述多个组中的优先级动态地改变。

本发明的第一方案和第二方案中的交叉开关都假定有多个单元连接到所述交叉开关,并且包括第一方案和第二方案中的仲裁器。

本发明的第一方案和第二方案中的请求选择方法都假定用于将交叉开关置于使能状态,以从各个单元发出的多个请求中选择一个请求,其中,多个单元连接到所述交叉开关,并且交叉开关如下所述来选择请求。

在第一方案的请求选择方法中,多个单元分为多个组,根据所述多个组中的优先级,对于每个组,从属于同一个组的多个单元的每一个单元发出的多个请求中选择一个请求,以及从为每个组选择的多个请求中选择一个请求,所述多个组中的优先级以预定时间间隔改变。

在第二方案的请求选择方法中,多个单元分为多个组,根据所述多个组中的优先级,对于每个组,从属于同一个组的多个单元的每一个单元发出的多个请求中选择一个请求,以及从为每个组选择的多个请求中选择一个请求,所述多个组中的优先级动态地改变。

本发明的信息处理设备包括:多个处理单元,所述多个处理单元分为多个组,所述多个组中的每一个组用于发出请求;第一请求选择部件,用于对所述多个处理单元发出的请求的优先级进行仲裁,并从属于同一个组的多个处理单元的每一个处理单元所发出的多个请求中选择一个请求;第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;以及选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个预定组中的优先级来选择请求。所述多个组中的优先级能够动态地改变。

在本发明中,单元(处理单元)分为多个组,根据所述多个组中的优先级,从属于同一个组的多个单元的每一个单元发出的多个请求中选择一个请求,以及从为每个组选择的多个请求中选择一个请求,所述多个组中的优先级以预定时间间隔改变。

通过改变所述多个组中的优先级,从而能够以规定的时间间隔从为每个组选择的多个请求中选择一个请求,这样,不管请求的状态如何,一个单元每单位时间发出的请求的次数总能够保持在一定数值之上,因为这个单元属于优先级每隔时间间隔提高的组。因此,通过将所发出的请求很可能长时间得不到处理的单元所属的组选择作为这样的组,即在其中,每隔一个时间间隔,选择具有优先级的请求,那么,不管请求状态如何,都能够避免发生单元的请求长时间得不到处理。

附图说明

图1示出交叉开关将多个单元连接到计算机的结构;

图2示出主板10和IO单元20的结构实例;

图3示出传统仲裁器的结构;

图4示出按照传统仲裁器采用的规则确定的优先级;

图5A和图5B示出安装有五个主板10和五个IO单元的传统仲裁器所选择的请求顺序;

图6A和图6B示出安装有五个主板10和一个IO单元的传统仲裁器所选择的请求顺序;

图7示出第一优选实施例的仲裁器的结构;

图8A和图8B示出安装有五个主板10和五个IO单元的第一优选实施例的仲裁器730所选择的请求顺序;

图9示出第二优选实施例的仲裁器的结构;

图10示出优先级控制信号S1的电平与待设定的优先级类型之间的关系;以及

图11A和图11B示出第二优选实施例的仲裁器900所选择的请求顺序,其中,有多个请求分别由五个主板10发出,并且有多个请求由IO单元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中的多个请求。标号“1”-“5”的数值越小,则队列存储得越早。例如,“队列1”存储得最早。在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输入逻辑值为1的载波信号时。在下文中,输出载波信号的时间间隔和改变暂时规则的时间间隔分别称作“测量周期”和“周期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”-“CPU#4”分别表示不同的主板10发出的请求。类似地,“IO#0”-“IO#4”分别表示不同的IO单元20发出的请求。因为用“CPU#0”-“CPU#4”表示的请求存储在SM模块710中,所以用“CPU#0”-“CPU#4”表示的方框使用标记“710”,同样地,用“IO#0”-“IO#4”表示的方框使用标记“720”。

在这种情况下,优先级赋给主板10。根据传统规则(初始状态),优先级以“IO#0”-“IO#4”的顺序给出。当采用暂时规则时(初始状态),优先级赋给“CPU#0”-“CPU#4。在所有单元中存在多个未经处理的请求。在这种状态下,优先级逻辑电路731以图8B所示的顺序选择请求。由于有三个请求选择,周期A较长,所以主板10发出的请求根据优先级在每个周期A依次被选择一次。当选定优先级后,IO单元20发出的请求也根据优先级依次被选择。

如上所述,通过有规律地使暂时规则生效,优先级类型单元发出的请求能够以需要的时间间隔被强制选择。不管请求状态如何,能够保持每单位时间优先级类型单元发出的请求的次数。因此,当将优先权赋给一个所发出的请求的处理时间很可能变长的单元时,优先级类型单元发出的请求的处理时间将比仅有图4所示的规则有效的情况下更短。这样,就能够抑制由于处理时间长而造成的性能下降,从而安全地避免由于超时造成的系统当机。

管理板(MB)50为各个单元(芯片单元)10-40执行不同的指令或者得到这样的信息。各单元10-40内部包括设置寄存器,在该寄存器中存储了各种设置。这样,通过存储暂时规则的设置、优先级类型等以及根据存储在寄存器中的设置来操作优先级逻辑电路731,就能够进行上述操作。

当输入到计数器733的时钟周期可变时,在寄存器中还可以存储周期A长度的设置。或者,还可以存储在各个周期A中强制选择的请求的数目设置。这样,不同的变量都行。

<第二优选实施例>

在上述第一优选实施例中,优先权设置固定在当暂时规则有效时从中选择了请求的单元类型中。然而,在第二优选实施例中,对请求进行采样并且根据结果自动地改变优先权设置。由于是根据请求采样的结果来改变设置,所以能够根据状态来选择适当的优先权。这样,就可以进一步抑制性能下降并更加安全地避免由于超时造成的系统当机。

在第二优选实施例中,与第一优选实施例中相同或基本上相同的单元使用相同的附图标记。这样,在第二优选实施例中,关注并说明与第一优选实施例中不同的部件。

图9示出第二优选实施例的仲裁器的结构。如同第一优选实施例,第二优选实施例的仲裁器900安装在图1或图2所示的地址交叉开关上,用于选择各个主板10和IO单元20发出的请求。这样,将本优选实施例的交叉开关实施为安装有仲裁器900的地址交叉开关30。本优选实施例的信息处理设备通过与主板10和IO单元20分别连接的地址交叉开关30来实现。

主板10和IO单元20发出和输出的请求分别暂时存储在SM模块710和IO模块720中。仲裁器900包括优先级控制模块910,用于为各个模块710和720采样存储在各个模块710和720中的请求,以及设置优先级。如图9所示,模块910包括两个计数器911和912、比较器913以及计时器914。

每一次当请求输入其中一个安装在SM模块710上的队列缓冲单元711时,就有一个脉冲输出到计数器911中来对主板10发出的请求进行计数。类似地,每一次当请求输入其中一个安装在IO模块720上的队列缓冲单元711时,就有一个脉冲输出到计数器912中来对IO单元20发出的请求进行计数。计数器911和912通过计时器914以一定时间间隔输出的载波信号来复位。这样,在一定的周期内,计数器911和912分别计数主板10和IO单元20所发出请求的数目。

计时器914输出的载波信号输入到比较器913。当输入载波信号(例如,逻辑值为1的有效信号)时,比较器913比较之前刚刚从计数器911和912输入的各个计数值,并将比较结果输出到优先级逻辑电路901中作为优先级信号S1。如果计数器911的计数值<计数器912的计数值,则信号S1的逻辑值为1(电平为“H”)。如果计数器911的计数值≥计数器912的计数值,则信号S1的逻辑值为0(电平为“L”)。当必须改变逻辑值时,根据比较结果来确定是否改变它。

图10示出优先级控制信号S1的电平与待给定的优先级类型之间的关系。在图10中,“设置模式”根据是否为优先级类型来设置,在“CPU优先级”模式中,将优先级赋给主板10。在“IO优先级”模式中,优先级赋给IO单元20。这样,图10示出当优先级信号S1的电平为“H”时,设置CPU优先级模式,而当优先级信号S1的电平为“L”时,设置IO优先级模式。通常都采用这样的模式设置,因为如果将优先级赋给请求总数较少的单元发出的请求,就能够更有效地抑制系统性能的下降。

优先级逻辑电路901监测优先级控制信号S1并操作在由信号S1的电平所指定的模式下。如图11A所示,逻辑电路901包括:CPU优先级逻辑电路(在图10中表示为“CPU_优先级”)1001,用于选择主板10发出的请求;IO优先级逻辑电路(在图10中表示为“IO_优先级”)1002,用于选择IO单元20发出的请求;以及ALL优先级逻辑电路(在图10中表示为“ALL_优先级”)1003,用于接收逻辑电路1001和1002的选择结果,并选择其中一个。

逻辑电路1001和1002都根据例如图4中的规则选择请求。这样,当逻辑电路1001和1002各自输入其选择结果时,逻辑电路1003选择由具有优先级的信号电平所指定的选择结果。因此,优先级类型单元发出的请求被选择,直到没有这种请求,之后选择非优先级类型单元所发出的请求。

图11A和图11B示出第二优选实施例的仲裁器900所选择的请求顺序,其中,有多个请求分别由五个主板10发出,并且有多个请求由IO单元20发出。图11A示出留在各单元中未经处理的请求,图11B示出实际选择的请求顺序。

在这种情况下,将优先级赋给IO单元20。至于主板10发出的请求(初始状态),优先级以“CPU#0”-“CPU#4”的顺序给出。没有IO单元发出新的请求。这样,如果在图11A所示的状态中设置IO优先级模式,特别地,优先级控制信号S1电平为“H”时,如图11B所示,在连续选择两个IO#0请求之后,按照优先级随后选择主板10发出的请求。

在第二优选实施例中,按照信号电平指定的优先级,连续选择主板10和IO单元20的其中一个所发出的请求,直到不再有请求。然而,这种按照优先级的选择仅在预定周期内或者仅在预定次数生效。当仅在预定周期内或者仅多次生效时,周期或次数也可以根据请求的采样结果自动设置。

至于向主板10或者IO单元20给出优先级的模式设置,也可以为每一种模式定义要满足的关系。更具体地,例如,如果计数器911的计数值<计数器912的计数值-α(预定常数),也可以设置CPU优先级模式。这同样适用于IO优先级模式的设置。当既没有设置IO优先级模式也没有设置CPU优先级模式时,利用三个逻辑电路1001-1003,也可以根据图4所示的规则来选择请求。或者,利用管理板50、SAL(Linux上的科学应用)等,可以任意设置常数α、计时器914所计数的时间间隔等。

由于能够任意安装的单元(处理单元)仅限于主板10和IO单元20两种类型,在本优选实施例中,单元按照类型来分组。这样,组数为2。然而,如果还可以安装除了主板10和IO单元20之外的其它单元类型,或者它们之中的至少一种可以进一步分成多种类型,那么它们也可以分为三组或更多组,并且根据这些组的优先级,从为各个组选择的请求中可以选择出一个请求。这样,可安装单元的类型和数目不受限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号