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

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

Info

Publication number
CN100565487C
CN100565487C CNB2007101040966A CN200710104096A CN100565487C CN 100565487 C CN100565487 C CN 100565487C CN B2007101040966 A CNB2007101040966 A CN B2007101040966A CN 200710104096 A CN200710104096 A CN 200710104096A CN 100565487 C CN100565487 C CN 100565487C
Authority
CN
China
Prior art keywords
request
unit
group
groups
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2007101040966A
Other languages
English (en)
Other versions
CN101127020A (zh
Inventor
市宫淳次
木下贵行
糸泽慎太郎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN101127020A publication Critical patent/CN101127020A/zh
Application granted granted Critical
Publication of CN100565487C publication Critical patent/CN100565487C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Abstract

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

Description

仲裁器、交叉开关、请求选择方法以及信息处理设备
技术领域
本发明涉及一种通过交叉开关从各个单元发出的多个请求中选择一个请求的技术,其中有多个单元连接到所述交叉开关。
背景技术
近年来,许多计算机(信息处理设备)安装了多个实体上分离的单元。为了这些单元,常常要设置安装有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。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通信。ICH6 203是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之外的其它单元类型,或者它们之中的至少一种可以进一步分成多种类型,那么它们也可以分为三组或更多组,并且根据这些组的优先级,从为各个组选择的请求中可以选择出一个请求。这样,可安装单元的类型和数目不受限制。

Claims (14)

1、一种仲裁器,用于从多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个单元安装在交叉开关上并与交叉开关连接,所述仲裁器包括:
第一请求选择部件,用于分别从属于多个组的同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求;
第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;
选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个组中的预定优先级来选择请求;以及
所述多个组中的优先级能够以预定的时间间隔改变,使得所述多个组中的一个组的优先级暂时高于所述多个组的其他组的优先级。
2、如权利要求1所述的仲裁器,其中
当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组:第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组,以及
所述选择控制部件暂时使所述第一组的优先级高于所述第二组。
3、一种仲裁器,用于从多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个单元安装在交叉开关上并与交叉开关连接,所述仲裁器包括:
第一请求选择部件,用于分别从属于多个组的同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求;
第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;
选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个组中的预定优先级来选择请求;以及
所述多个组中的优先级能够动态地改变,若一个组包含的单元发出较少数目的请求,则使得该一个组的优先级较高。
4、如权利要求3所述的仲裁器,其中
所述选择控制部件包括多个计数部件,用于为各个组对发出请求的次数进行计数,所述多个组中的优先级动态地改变,使得与较少的计数次数对应的一个组的优先级较高,所述计数次数是所述多个计数部件为各个组计数的次数。
5、如权利要求3所述的仲裁器,其中
当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组:第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
6、一种交叉开关,连接至多个单元,所述交叉开关包括:
第一请求选择部件,对于多个组中的每一个组,从属于同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到;
第二请求选择部件,从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;以及
选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个组中的优先级来选择请求,其中
所述多个组中的优先级以预定时间间隔改变,使得所述多个组中的一个组的优先级暂时高于所述多个组的其他组的优先级。
7、如权利要求6所述的交叉开关,其中
当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组:第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
8、一种交叉开关,连接至多个单元,所述交叉开关包括:
第一请求选择部件,对于多个组中的每一个组,从属于同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到;
第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;以及
选择控制部件,用于动态地改变所述多个组中的优先级,以及将所述第二请求选择部件置于使能状态,以根据所述优先级来选择请求,其中
所述多个组中的优先级能够动态地改变,若一个组包含的单元发出较少数目的请求,则使得该一个组的优先级较高。
9、如权利要求8所述的交叉开关,其中
当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组:第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
10、一种请求选择方法,用于将交叉开关置于使能状态,以从多个单元发出的请求中选择一个请求,其中所述多个单元的每一个单元都连接到所述交叉开关,所述方法包括:
对于多个组中的每一个组,从属于同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到;以及
根据所述多个组中的优先级,从为多个组中的每一个组选择的多个请求中选择一个请求,所述多个组中的优先级以预定时间间隔改变,其中
所述多个组中的优先级能够以预定的时间间隔改变,使得所述多个组中的一个组的优先级暂时高于所述多个组的其他组的优先级。
11、如权利要求10所述的请求选择方法,其中
当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组:第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
12、一种请求选择方法,用于将交叉开关置于使能状态,以从多个单元发出的请求中选择一个请求,其中所述多个单元的每一个单元都连接到所述交叉开关,所述方法包括:
对于多个组中的每一个组,从属于同一个组的多个单元的每一个单元所发出的多个请求中选择一个请求,所述多个组通过将多个单元分组而得到;以及
动态地改变所述多个组中的优先级,并根据所述优先级,从为所述多个组中的每一个组选择的多个请求中选择一个请求,其中
所述多个组中的优先级能够动态地改变,若一个组包含的单元发出较少数目的请求,则使得该一个组的优先级较高。
13、如权利要求12所述的请求选择方法,其中
当一个或多个安装有一个或多个CPU的主板以及一个或多个用于连接外设的IO单元作为单元连接到所述交叉开关时,所述多个组分为两个组:第一组和第二组,其中仅所述主板属于第一组,仅所述IO单元属于第二组。
14、一种信息处理设备,包括:
多个处理单元,所述多个处理单元分为多个组,所述多个组中的每一个组用于发出请求;
第一请求选择部件,用于对所述多个处理单元发出的请求的优先级进行仲裁,并从属于同一个组的处理单元所发出的多个请求中选择一个请求;
第二请求选择部件,用于从所述第一请求选择部件为各个组选择的多个请求中选择一个请求;
选择控制部件,用于将所述第二请求选择部件置于使能状态,以根据所述多个组中的预定优先级来选择请求;其中
所述多个组中的优先级能够动态地改变,若一个组包含的单元发出较少数目的请求,则使得该一个组的优先级较高。
CNB2007101040966A 2006-08-18 2007-05-23 仲裁器、交叉开关、请求选择方法以及信息处理设备 Expired - Fee Related CN100565487C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006223670A JP5270077B2 (ja) 2006-08-18 2006-08-18 調停回路、クロスバ、リクエスト選択方法、及び情報処理装置
JP2006223670 2006-08-18

Publications (2)

Publication Number Publication Date
CN101127020A CN101127020A (zh) 2008-02-20
CN100565487C true CN100565487C (zh) 2009-12-02

Family

ID=38720664

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2007101040966A Expired - Fee Related CN100565487C (zh) 2006-08-18 2007-05-23 仲裁器、交叉开关、请求选择方法以及信息处理设备

Country Status (5)

Country Link
US (1) US7830902B2 (zh)
EP (1) EP1895430B1 (zh)
JP (1) JP5270077B2 (zh)
KR (1) KR100870691B1 (zh)
CN (1) CN100565487C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255610B2 (en) 2009-02-13 2012-08-28 The Regents Of The University Of Michigan Crossbar circuitry for applying a pre-selection prior to arbitration between transmission requests and method of operation of such crossbar circuitry
US9514074B2 (en) 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect
US8549207B2 (en) 2009-02-13 2013-10-01 The Regents Of The University Of Michigan Crossbar circuitry for applying an adaptive priority scheme and method of operation of such crossbar circuitry
US8230152B2 (en) * 2009-02-13 2012-07-24 The Regents Of The University Of Michigan Crossbar circuitry and method of operation of such crossbar circuitry
JP5413098B2 (ja) * 2009-09-29 2014-02-12 日本電気株式会社 調停優位性の切り替え方法、調停装置、及びプロセッサ
GB2478795B (en) * 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
JP5625766B2 (ja) * 2010-11-08 2014-11-19 ソニー株式会社 アービトレーション回路、および、その制御方法
US8787368B2 (en) * 2010-12-07 2014-07-22 Advanced Micro Devices, Inc. Crossbar switch with primary and secondary pickers
JP5978849B2 (ja) * 2012-08-09 2016-08-24 富士通株式会社 並列計算機システム、クロスバスイッチ及び並列計算機システムの制御方法
US8984206B2 (en) * 2012-10-31 2015-03-17 International Business Machines Corporation Weightage-based scheduling for hierarchical switching fabrics
US8902899B2 (en) 2013-02-08 2014-12-02 International Business Machines Corporation Input buffered switching device including bypass logic
TWI617920B (zh) * 2013-07-12 2018-03-11 密西根大學董事會 單循環仲裁
US9678906B2 (en) * 2014-03-26 2017-06-13 International Business Machines Corporation Oldest link first arbitration between links grouped as single arbitration elements
US9467396B2 (en) 2014-04-11 2016-10-11 International Business Machines Corporation Simultaneous transfers from a single input link to multiple output links with a timesliced crossbar
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法
DE102014111302B4 (de) * 2014-08-07 2023-09-14 Mikro Pahlawan Unterbrechungsgesteuerter Ein-/Ausgabe-Arbiter für ein Mikrocomputersystem

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5553722A (en) * 1978-10-17 1980-04-19 Toshiba Corp Priority control system
JPS58171541U (ja) * 1982-05-12 1983-11-16 株式会社日立製作所 デ−タ処理装置
JPH04102155A (ja) * 1990-08-21 1992-04-03 Fujitsu Ltd バス使用権調停方式
US5463696A (en) * 1992-05-27 1995-10-31 Apple Computer, Inc. Recognition system and method for user inputs to a computer system
JPH05342178A (ja) 1992-06-10 1993-12-24 Hitachi Ltd 調停回路およびそれを用いたデータ処理装置
US5463624A (en) * 1994-04-15 1995-10-31 Dsc Communications Corporation Bus arbitration method for telecommunications switching
JPH08171531A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd アクセス競合制御方法
JP3541112B2 (ja) * 1997-02-17 2004-07-07 新世代株式会社 バス調停システム
US5930256A (en) * 1997-03-28 1999-07-27 Xerox Corporation Self-arbitrating crossbar switch
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6487213B1 (en) * 1998-01-05 2002-11-26 Polytechnic University Methods and apparatus for fairly arbitrating contention for an output port
US6272131B1 (en) * 1998-06-11 2001-08-07 Synchrodyne Networks, Inc. Integrated data packet network using a common time reference
JP2000112876A (ja) 1998-10-09 2000-04-21 Nec Corp バス調停装置
GB9828144D0 (en) * 1998-12-22 1999-02-17 Power X Limited Data switching apparatus
US6667983B1 (en) * 1999-05-27 2003-12-23 3Com Corporation Scaleable priority arbiter for arbitrating between multiple FIFO entry points of a network interface card
US6567885B1 (en) * 1999-08-16 2003-05-20 Sun Microsystems, Inc. System and method for address broadcast synchronization using a plurality of switches
JP2001084219A (ja) * 1999-09-10 2001-03-30 Hitachi Ltd 可変バスアービトレーション方式
US6393512B1 (en) * 1999-09-27 2002-05-21 Ati International Srl Circuit and method for detecting bank conflicts in accessing adjacent banks
US6519666B1 (en) * 1999-10-05 2003-02-11 International Business Machines Corporation Arbitration scheme for optimal performance
JP2001273248A (ja) * 2000-03-24 2001-10-05 Canon Inc バス制御装置及びその制御方法
US7020161B1 (en) * 2000-03-31 2006-03-28 Sun Microsystems, Inc. Prescheduling arbitrated resources
US7061929B1 (en) * 2000-03-31 2006-06-13 Sun Microsystems, Inc. Data network with independent transmission channels
US6665760B1 (en) * 2000-09-29 2003-12-16 Rockwell Automation Technologies, Inc. Group shifting and level shifting rotational arbiter system
US7752400B1 (en) 2000-12-14 2010-07-06 F5 Networks, Inc. Arbitration and crossbar device and method
US7023840B2 (en) * 2001-02-17 2006-04-04 Alcatel Multiserver scheduling system and method for a fast switching element
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
JP2003271545A (ja) * 2002-03-12 2003-09-26 Hitachi Ltd データ処理システム
TWI258081B (en) * 2002-04-04 2006-07-11 Via Tech Inc Arbitrating method and arbiter for bus grant
US7149227B2 (en) * 2002-05-31 2006-12-12 Mellanox Technologies Ltd. Round-robin arbiter with low jitter
JP2004013356A (ja) * 2002-06-04 2004-01-15 Matsushita Electric Ind Co Ltd バス調停システム
KR100486247B1 (ko) * 2002-07-05 2005-05-03 삼성전자주식회사 버스의 사용 빈도를 제어할 수 있는 방법 및 장치
KR20040010957A (ko) 2002-07-25 2004-02-05 엘지전자 주식회사 메모리 중재기
JP2004078508A (ja) 2002-08-16 2004-03-11 Nec Micro Systems Ltd バス調停回路、バス調停方法およびそのプログラム
US20040083326A1 (en) * 2002-10-29 2004-04-29 Yuanlong Wang Switch scheduling algorithm
JP2004199374A (ja) 2002-12-18 2004-07-15 Matsushita Electric Ind Co Ltd マルチプロセッサシステム及びバス調停方法
US7284080B2 (en) * 2003-07-07 2007-10-16 Sigmatel, Inc. Memory bus assignment for functional devices in an audio/video signal processing system
JP4160470B2 (ja) 2003-07-24 2008-10-01 富士通株式会社 入出力制御装置および入出力制御方法
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
US7099975B2 (en) * 2003-12-09 2006-08-29 International Business Machines Corporation Method of resource arbitration
JP2006065457A (ja) 2004-08-25 2006-03-09 Fuji Xerox Co Ltd インタフェース回路生成装置およびインタフェース回路
US7287111B2 (en) * 2004-09-23 2007-10-23 International Business Machines Corporation Method and system for creating and dynamically selecting an arbiter design in a data processing system
US7366811B2 (en) * 2004-12-23 2008-04-29 International Business Machines Corporation Bus arbitration system
US7299311B1 (en) * 2005-12-29 2007-11-20 Unisys Corporation Apparatus and method for arbitrating for a resource group with programmable weights
US7849256B2 (en) * 2006-07-11 2010-12-07 Advanced Micro Devices, Inc. Memory controller with ring bus for interconnecting memory clients to memory devices

Also Published As

Publication number Publication date
JP5270077B2 (ja) 2013-08-21
KR100870691B1 (ko) 2008-11-27
JP2008046997A (ja) 2008-02-28
KR20080016439A (ko) 2008-02-21
CN101127020A (zh) 2008-02-20
EP1895430A1 (en) 2008-03-05
US7830902B2 (en) 2010-11-09
US20080043767A1 (en) 2008-02-21
EP1895430B1 (en) 2015-03-25

Similar Documents

Publication Publication Date Title
CN100565487C (zh) 仲裁器、交叉开关、请求选择方法以及信息处理设备
CN101263465B (zh) 用于总线仲裁的方法和系统
CN1327370C (zh) 资源管理装置
CN100397360C (zh) 性能监控器及其方法
US5471618A (en) System for classifying input/output events for processes servicing the events
CN101662495B (zh) 备份方法、主服务器、备份服务器以及备份系统
CN101025674B (zh) 存储系统
US20100082912A1 (en) Systems and methods for resource access
CN102541460B (zh) 一种多磁盘场景下的磁盘管理方法和设备
CN102122652B (zh) 用在封装体中的管芯、封装体以及用在封装体中的方法
CN101089820B (zh) 信息处理装置及访问控制方法
CN102866971A (zh) 传输数据的装置、系统及方法
CN102130100B (zh) 封装体、用在封装体中的方法和用在封装体中的管芯
CN102143056A (zh) 封装体
CN102185750A (zh) 封装体
CN101595456A (zh) 用于事务资源控制的方法和系统
US20140006648A1 (en) Semiconductor memory device and method of operating the semiconductor memory device
CN110046118A (zh) 一种pcie设备的区分系统、方法及服务器系统
CN106489132A (zh) 读写数据的方法、装置、存储设备和计算机系统
CN104123228A (zh) 一种数据存储系统及其使用方法
EP3640797A1 (en) Dynamic traffic-aware interface queue switching among processor cores
CN102130099B (zh) 封装体以及用在封装体中的方法和管芯
CN105550131A (zh) 一种基于有限状态机和arinc659总线的接口数据处理系统及方法
CN111124034B (zh) 一种使用时间处理单元的时序控制方法
US20170004104A1 (en) Usb switch and control method thereof

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20091202

Termination date: 20200523