CN101326505B - 部分填充的分级交叉开关 - Google Patents

部分填充的分级交叉开关 Download PDF

Info

Publication number
CN101326505B
CN101326505B CN2006800375364A CN200680037536A CN101326505B CN 101326505 B CN101326505 B CN 101326505B CN 2006800375364 A CN2006800375364 A CN 2006800375364A CN 200680037536 A CN200680037536 A CN 200680037536A CN 101326505 B CN101326505 B CN 101326505B
Authority
CN
China
Prior art keywords
section
agency
behalf
data
request
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.)
Active
Application number
CN2006800375364A
Other languages
English (en)
Other versions
CN101326505A (zh
Inventor
西达·P.·苏布拉马尼昂
詹姆斯·B.·凯勒
乔治·孔·游
吕奇·沃德万
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of CN101326505A publication Critical patent/CN101326505A/zh
Application granted granted Critical
Publication of CN101326505B publication Critical patent/CN101326505B/zh
Active 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/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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

在各个实施例中,设备多个代理和一个互连。在一个实施例中,所述多个代理包括第一到第四代理。所述互连包括多个区段,所述多个区段是可切换的(例如,利用多个选择电路),以形成代理之间的通信路径,第一区段包括在从第一代理到第二代理的第一通信路径中,还包括在从第三代理到第四代理的第二通信路径中。在另一实施例中,每个区段由一个选择电路驱动。至少一个选择电路以至少一个区段和来自至少一个代理的输出端作为输入端。在另一实施例中,仲裁器被配置成为每个请求代理确定所述互连上通过各个区段到目的地代理的通信路径。仲裁器被配置成在对其来说,对应通信路径中的每个区段都可用的请求的子集中进行仲裁。

Description

部分填充的分级交叉开关
技术领域
本发明涉及集成电路的领域,更具体地说,涉及集成电路内和/或集成电路之间的互连。
背景技术
系统中的集成电路,或者集成电路内的各种电路一般需要相互通信。许多情况下,系统/集成电路中的通信器可通过存储器映射中的各个地址通信。即,各个通信器被分配存储器映射中的地址,对所述地址的读取/写入被用于通信。一般来说,这样的通信器使用在通信器之间的互连上传送的读取/写入事务。
例如,常见的是具有一条地址总线,在所述地址总线上,传送地址、命令和其它事务信息以发起事务。另外,可使用数据总线来传送与事务对应的数据(如果有的话)。如果为事务实现高速缓存一致性,那么可以提供一个响应接口以便按照由通信器实现的一致性方案,保持一致状态。地址总线和数据总线的带宽相当有限,因为每次在地址总线上只能够传送一个地址传输,在数据总线上只能够传送一个数据传输。即使两个或更多的传输可以并行地进行,总线结构也不允许这种并行性。另外,总线往往具有高的功耗,因为每个通信器与总线耦接,对总线的驱动器带来电容性负载。
通常使用的另一种互连被称为交叉开关(crossbar)。交叉开关一般允许每个发射通信器并行地与任意接收通信器通信,并且允许任何其它发射通信器并行地与任何其它接收通信器通信。但是,交叉开关中为了允许发射器和接收器之间的任意一组并发连接而需要的电路常常导致高的功耗。
发明内容
在一个实施例中,一个设备包括第一代理、第二代理、第三代理和第四代理和一个互连。第一到第四代理都与所述互连耦接,所述互连包括多个区段(segment),所述区段是可切换的,以形成与所述互连耦接的代理之间的通信路径。所述多个区段中的第一区段包括在从第一代理到第二代理的第一通信路径中,还包括在从第三代理到第四代理的第二通信路径中。
在另一实施例中,一个设备包括与一个互连耦接的多个代理。所述互连包括多个区段和多个选择电路,其中所述多个区段都由所述多个选择电路中的相应选择电路驱动。至少一个选择电路以所述多个区段中的至少一个区段和来自所述多个代理中的至少一个代理的输出端作为输入端。通过配置所述多个选择电路中的一个或多个选择电路,以耦接第一代理的输出端与第二代理的输入端,建立从所述多个代理中的第一代理到所述多个代理中的第二代理的通信路径。
在另一实施例中,一种设备包括与互连耦接的多个代理。所述互连包括多个区段和多个选择电路,所述多个选择电路可配置成在所述多个代理之间的多个区段上建立通信路径。所述设备还包括一个仲裁器,其与所述多个代理和所述互连耦接,并被耦接成接收来自所述多个代理的使用所述互连的请求。每个请求代理被配置成识别所述请求的目的地代理,仲裁器被配置成为每个请求确定所述互连上越过所述多个区段中的一个或多个区段、从请求代理到目的地代理的通信路径。仲裁器被配置成在对于其来说、对应通信路径中的每个区段都可用的请求的子集中进行仲裁。
在另一实施例中,一种方法包括:从与互连耦接的多个代理接收使用所述互连的请求,其中所述互连包括多个区段和多个选择电路,所述多个选择电路可配置成在所述多个代理之间的多个区段上建立通信路径,其中每个请求代理被配置成识别所述请求的目的地代理;为每个请求确定所述互连上越过所述多个区段中的一个或多个区段、从请求代理到目的地代理的通信路径;和在这样的请求的子集中进行仲裁:对所述请求来说对应通信路径中的每个区段都可用。
附图说明
下面的说明参考了附图,现在简要说明这些附图。
图1是集成电路的一个实施例的方框图。
图2是图1中所示的数据互连的一个实施例的方框图。
图3是图解说明图1和2中所示的用于数据互连的仲裁的数据仲裁器的一个实施例的操作的流程图。
图4是图解说明当数据传输将要完成时,图1和2中所示的数据仲裁器的一个实施例的操作的流程图。
图5是图解说明在数据互连上配置的第一通信路径的一个例子的方框图。
图6是图解说明与第一通信路径同时,在数据互连上配置的第二通信路径的一个例子的方框图。
图7是图解说明数据仲裁器的仲裁接口的一个实施例的方框图。
尽管本发明容许各种修改和备选形式,不过附图中举例表示了本发明的具体实施例,并且这里将详细说明所述具体实施例。但是,附图及其详细说明显然并不意图把本发明局限于公开的特定形式,相反,本发明将包括落入由附加权利要求限定的本发明的精神和范围内的所有修改、等同物和替换物。
具体实施方式
现在参见图1,图1中表示了系统10的一个实施例的方框图。在图解说明的实施例中,系统10包括多个代理,比如代理12A-12D。系统10还包括地址/响应互连16,数据互连18和数据仲裁器14。代理12A-12D与数据仲裁器14耦接,并与数据互连18耦接。另外,代理12A-12D与地址/响应互连16耦接。数据仲裁器14还与数据互连18耦接。在一个实施例中,系统10可被集成到单一的集成电路芯片中。在其它实施例中,可在独立的集成电路上实现系统10的各个组件。在各个实施例中可以使用任意级别的集成。
至少一些代理12A-12D被配置成启动与系统10中的其它代理12A-12D通信的事务。所述事务可包括地址/响应互连16上的地址阶段,和数据互连18上的数据阶段。相关事务包括地址/响应互连16上的响应阶段。
地址/响应互连16可包括任意通信介质。例如,在一个实施例中,可在源代理(source agent)之间仲裁地址/响应互连16。可以使用集中仲裁方案,其中源代理向中央仲裁器传送地址阶段请求(包括事务的地址、命令等),中央仲裁器可使请求排队,在所述请求之中进行仲裁,并在地址/响应互连16上传送获胜的事务。其它实施例可以使用任何其它所需的通信介质。
代理12A-12D也可对数据互连18的使用进行仲裁,以执行事务的数据阶段。代理12A-12D可用信号向数据仲裁器14通知对数据互连18的请求,数据仲裁器14可在所述请求之中进行仲裁,并选择仲裁获胜者。数据仲裁器14可用信号通知获胜的代理12A-12D,响应对数据互连18的请求的准许,获胜的代理12A-12D可在数据互连18上驱动数据。可以使用任何仲裁方案(例如,优先权、循环法、加权循环法、优先权和各种循环方案的组合等等)。
在一个实施例中,数据互连18可包含部分填充的交叉开关(partially-populated crossbar)。数据互连18可支持一定量的数据传输同时性(并行性),但是可能不实现全交叉开关。在一些实施例中,当数据互连18中包括简化的电路时,可支持高带宽和低功率的组合。在一种实现中,数据互连18可包含由诸如多路复用器之类的选择电路耦接的一组区段。数据仲裁器14可控制多路复用器建立经由所述区段中的一些区段,从一个代理12A-12D到另一个代理12A-12D的通信路径。所述区段中的一些区段可被不同的通信路径共用,从而,如果通信路径之一正在使用中,那么在建立的通信路径上的数据阶段结束之前,不能建立使用共用区段的其它通信路径。数据仲裁器14可被配置成为每个请求的数据阶段确定通信路径,并且可以掩蔽对其来说,所需通信路径的至少一个区段正在使用的那些请求。下面关于图2-7提供数据互连18的一个实施例的补充细节。
代理12A-12D中的一个或多个可被配置成在系统10中发起事务。这样的代理可被称为源代理。例证的源代理可包括处理器、外部回写式高速缓存(它向已被改变成内存的写入收回(write evicted)缓存区块发起(source)写入事务),和输入/输出(I/O)桥接器(它代表它们耦接的外围设备发起事务)。其它代理可能不发起(source)事务,但是可以是事务的目标(即,接收事务并且对事务的数据负责的代理)。这样的代理被称为目标代理。对于读取事务来说,目标代理提供数据,除非另一代理具有数据的最新(修改的)高速缓存副本。对于写入事务来说,目标代理接收源代理提供的写入数据。例如,目标代理可包括存储器控制器和I/O桥接器。从而,对于读取事务来说,目标代理可仲裁数据互连18,并在数据互连18上传送数据。对于写入事务来说,源代理可仲裁数据互连18,并在数据互连18上传送数据。一些代理可以既是某些事务的源代理,又是其它事务的目标代理。例证的源/目标代理可包括上面提及的I/O桥接器或者外部高速缓存。一般来说,代理可包含被配置成借助地址/响应互连16和数据互连18上的事务进行通信的任何电路。这里使用的区段指的是诸如导线之类的一个或多个导体。如果一个区段中包括一个以上的导体,那么所述导体可被并行驱动,以把多比特值从导体的一端传送到另一端。例如,在一个实施例中,每个时钟周期,数据互连18可传送16字节的数据。在这样的实施例中,128个并行驱动的导体可构成一个区段。在一个特殊的实施例中,在每个区段中还可包括用于纠错码(ECC)位的额外导体。另外,命令、事务ID、有效信号等等可以或者作为区段的一部分或者单独地以广播方式在数据互连18上被传送给每个代理12A-12D。
注意在下面的例子中,多路复用器将被用作选择电路。但是一般来说,接收两个或者更多的输入以及一个选择控制输入,以便在所述两个或更多的输入之中进行选择的任何电路可被用于构成选择电路。
现在参见图2,图中更详细地表示了数据互连18的一个实施例的方框图。图2中表示了附加的代理12E以及代理12A-12D。在各个实施例中可以包括任意数目的代理。代理12E可按照与其它代理12A-12D类似的方式(图2中未示出)与数据仲裁器14耦接。在图解说明的实施例中,数据互连18包括一组多路复用器20A-20I。在图2中,多路复用器20A-20I被耦接以便分别驱动代理12A-12E的数据输入端。多路复用器20A-20I均被耦接,以便驱动数据互连18的某一区段(例如,图2中所示的区段22A-22D)。多路复用器20A-20I的每个输入端或者是区段22A-22D,或者是代理12A-12D之一的数据输出端。特别地,在图解说明的实施例中,多路复用器输入端如下所示:多路复用器20A以代理12C的数据输出端和区段22C作为输入端;多路复用器20B以区段22A和22D作为输入端;多路复用器20C以代理12A的数据输出端和区段22C作为输入端;多路复用器20D以代理12E的数据输出端和区段22B作为输入端;多路复用器20E以代理12D的数据输出端和区段22B作为输入端;多路复用器20F以代理12D-12E的数据输出端作为输入端;多路复用器20G以代理12B的数据输出端和区段22D作为输入端;多路复用器20H以代理12A和12C的数据输出端作为输入端;多路复用器20I以代理12B的数据输出端和区段22A作为输入端。每个多路复用器20A-20I都具有在其输入端之中进行选择的多路复用器控制器。数据仲裁器14可提供多路复用器控制器,以便在数据互连18上建立通信路径。为了使图2简明,图2中未示出各个多路复用器20A-20I的独有控制器。
数据仲裁器14可控制多路复用器20A-20I在数据互连18上建立从作为数据仲裁器14确定的仲裁获胜者(“获胜的代理”)12A-12E到目的地代理12A-12E的通信路径,所述目的地代理12A-12E将接收由获胜的代理12A-12E驱动的数据。即,数据仲裁器14可控制多路复用器20A20I耦接获胜代理的数据输出端与目的地代理的数据输入端。在一个实施例中,每个请求代理可识别对数据仲裁器14的数据传输以及所述请求的目的地代理。例如,对于读取操作来说,请求代理可提供源自在事务的地址阶段中,由源代理提供的事务ID的代理ID。对于写入操作来说,源代理可被提供目的地代理的指示(例如,在上面关于图1说明的集中实施例中由地址仲裁器提供,或者由目标代理提供)。源代理可把目的地代理ID连同所述请求一起提供给数据仲裁器14。
例如,在图2的实施例中,通过控制多路复用器20H选择代理12A的数据输出端;控制多路复用器20I选择区段22A;和控制多路复用器20D选择区段22B,可建立从代理12A到代理12D的通信路径。作为另一例子,通过控制多路复用器20G选择代理12B的数据输出端和控制多路复用器20C选择区段22C,可建立从代理12B到代理12C的通信路径。
数据互连18可被看作部分填充的交叉开关。即,每个代理12A-12E在其数据输出端驱动数据,数据互连18通过一个或多个区段把数据发送到目的地代理12A-12E。数据互连18可提供部分并行性,但是不提供全交叉开关的全并行性。例如,在图2的实施例中,如果代理12B正在向代理12D传送数据,那么代理12A和12C不能并行地向代理12E传送数据(因为区段22B被用于从代理12B到代理12D的通信,还被用于从代理12A和12C到代理12E的通信)。但是,代理12E可与正在向代理12D传送数据的代理12B并行地向代理12A或12C传送数据(通过区段22C-22D)。
在数据互连18提供的并行性的数量因实施例而异。一般来说,增大包括在数据互连18中的区段和多路复用器的数目,可增大并行性。可按照任何所需的方式增加多路复用器和区段,以便在给定代理和另一给定代理,给定代理和任何其它代理,或者给定代理和其它代理的子集之间形成另外的路径。提供的并行性的数量可由所需的性能水平(例如,就增大的带宽而论)和/或由在各种工作负荷下预期的并发通信量确定。例如,在一个实施例中,系统10可包括两个处理器,一个L2高速缓存,一个I/O桥接器,和两个存储器控制器。在该实施例中,最好至少提供下述并行性:(i)在一个处理器正在向L2高速缓存传送数据的时候,所述L2高速缓存能够向存储器控制器传送数据;(ii)在L2高速缓存正在向一个处理器传送数据的时候,存储器控制器能够向其它处理器传送数据;和(iii)在L2高速缓存正在向I/O桥接器传送数据的时候,存储器控制器能够向处理器传送数据。
在图解说明的实施例中,至少一些区段22A-22D在从不同的请求代理到不同的接收代理的通信路径之中被共用。例如,区段22B在从任意代理12A-12C到代理12D-12E任意之一的路径中被共用。即,从任意代理12A-12C到代理12D-12E任意之一的通信路径使用区段22D。另外,从任意代理12A-12C到代理12E的通信路径还使用区段22B。类似地,区段22A被用在从代理12A或12C到代理12B、12E或12D任意之一的通信路径中。区段22A未被代理12B使用。在一些实施例中,从不同的请求代理到不同的目的地代理的通信路径之中区段的共用可减少用于实现数据互连18的布线的数量,这可简化布线,并且可降低总的能耗。
数据互连18可以是分布式交叉开关。多路复用器20A-20I可沿着数据互连18经过的物理距离物理分布。例如,以代理12A-12E的数据输出端作为输入端的多路复用器可物理地位于该代理附近。从而,多路复用器20F可物理地位于代理12E和12D附近;多路复用器20G和20I可物理地位于代理12B附近;多路复用器20H可物理地位于代理12A和12C附近。驱动代理12A-12E的数据输出端的多路复用器可物理地位于该代理附近。例如,多路复用器20A-20E可分别物理地位于代理12A-12E附近。区段22A-22D可把来自源多路复用器的数据沿着数据互连18的一部分物理距离向下传送到下一个多路复用器,如图2中所示。
多路复用器20A-20I可形成分级的多路复用结构。在传统的交叉开关中,一组输入多路复用器从给交叉开关的输入中进行选择,另外的多路复用器可被用于在输入多路复用器的输出中进行选择,以产生给指定目的地的交叉开关输出。至少一些多路复用器20A-20I在多路复用器输出(区段22A-22D)和来自某一代理的输出之间进行选择。例如,在图2的实施例中,多路复用器20I在区段22A(在先多路复用器20H的输出)和来自代理12B的输出之间进行选择。类似地,多路复用器20D-20E分别在区段22B和代理12E及12D的输出之间进行选择。
数据互连18本质上也可以是定向的。即,按照目的地代理的方向(并不是按照其它方向)在数据互连18上从给定代理12A-12E驱动数据。多路复用器20F-20G和区段22C-22D提供朝左的数据传输(如图2中所示),多路复用器20H-20I和区段22A-22B提供朝右的数据传输(如图2中所示)。即,区段22A-22D的非重叠子集被用于每个方向的通信。例如,如果代理12B正在向代理12A或12C传送数据,那么通过多路复用器22C,区段22C,和多路复用器20A或20C驱动数据。类似地,如果代理12B正在向代理12E或12D传送数据,那么通过多路复用器20I,区段22B和多路复用器20E或20D驱动数据。可以只在用于把数据从请求代理传给目的地代理的那部分数据互连18上驱动数据。例如,在区段22D或22A上并不驱动来自代理12B的数据。
注意在其它实施例中可以包括附加的代理。每个附加的代理可由类似于多路复用器20G和20I的附加多路复用器,以及由这些多路复用器驱动的附加区段支持。
在一些实施例中,数据互连18可被流水线化。例如,如果从数据互连18的一端到另一端的飞行时间超过用于数据互连18的时钟的一个时钟周期,那么可能需要流水线技术。可随意地在数据互连18中插入触发器(flop)或者其它时钟存储装置,以使互连流水线化。
注意尽管在图解说明的实施例中,数据仲裁器14被表示成提供对多路复用器20A-20I的多路复用器控制,不过产生多路复用器控制的电路可与数据仲裁器14分离。该电路可被告知给获胜代理的许可,以及被告知对应的目的地代理,并且可控制多路复用器建立从获胜代理到目的地代理的通信路径。
要注意的是,尽管在图2的实施例中表示了两个输入端的多路复用器,不过其它实施例可包括具有两个输入端以上的多路复用器。这样的多路复用器可与作为输入端的两个或更多区段和/或代理的两个或更多数据输出端耦接。
下面参考图3,图中表示了图解说明执行数据互连18的仲裁的数据仲裁器14的一个实施例的操作。尽管为了便于理解,在图3中按照特殊的顺序表示各个方框,不过也可使用其它顺序。此外,所述方框可由数据仲裁器14中的组合逻辑电路并行执行。如果需要的话,各个方框,流程图的多个部分,或者整个流程图可在多个时钟周期内被流水线化。
对于每个宣称的请求,数据仲裁器14可确定从请求代理到目的地代理的路径(方框30)。每个请求代理可具有它自己的请求信号,从而数据仲裁器14可根据对应请求信号的宣称,识别请求代理。请求代理还可提供目的地代理的识别。数据仲裁器可掩蔽对应通信路径的至少一个区段不可以被分配给请求代理的通信路径的每个请求(方框32)。从而,只有在仲裁中只考虑通信路径可被建立的那些请求。如果某一区段被分配用在另一数据传输的通信路径中,那么该区段不可用。
在图2的实施例中,从指定的请求代理到指定的目的地代理只有一条路径。在为了得到额外的并行性而提供额外的区段和多路复用器的实施例中,如果从指定的请求代理到指定的目的地代理可能存在一条以上的路径,那么数据仲裁器14在确定通信路径的时候,会考虑每条可能的路径。从仲裁的观点来看,如果可能的话,数据仲裁器14会选择一条所有区段都可用的通信路径。
如果至少一个宣称的请求未被掩蔽(判定方框34,“yes”支路),那么数据仲裁器14可选择获胜的代理,并向获胜的代理发出许可(方框36)。获胜的代理选自请求代理的子集,其中,所述子集的成员是其宣称的请求信号未由于从请求代理到目的地代理的用于数据传输的通信路径中的至少一个区段的不可用性而被掩蔽的请求代理。利用由数据仲裁器14实现的仲裁方案确定获胜的代理。数据仲裁器14也可把用在从获胜的代理到其目的地代理的通信路径中的区段记录成“忙”(或者“不可用”),供后续仲裁中通信路径的考虑之用(方框38)。例如,从仲裁的观点来看,数据仲裁器14可为每个区段保持一位,指示该区段是忙还是可用。数据仲裁器14可产生对多路复用器20A-20I的多路复用器控制,以建立从获胜的代理到其目的地代理的通信路径(方框40)。在一个实施例中,通信路径的实际建立可因获胜代理的确定而被延迟。例如,在一个实施例中,获胜代理在收到许可之后两个时钟周期开始其数据传输。通信路径的建立可类似地被延迟。另一方面,所述许可和数据传输的开始之间的时钟周期可被用于建立通信路径。如果不存在宣称的且未被掩蔽的请求(判定方框34,“no”支路),那么不宣布任何获胜的代理。
在一个实施例中,每个时钟周期,数据仲裁器14可准许一个请求代理。在存在独立的通信路径(即,没有共用区段)的情况下,借助在后续时钟周期中,数据仲裁器14发出的额外许可,可以产生数据传输的同时性。在其它实施例中,数据仲裁器14可被配置成每个时钟周期发出多个许可。
现在参见图4,图中表示了图解说明响应数据互连18上的数据传输的结束,数据仲裁器14的一个实施例的操作。在一些实施例中,数据仲裁器14可预先知道数据传输将在指定的时钟周期结束,并且可以探测数据传输将在所述指定的时钟周期结束。例如,在图7中,表示了一个仲裁接口,其中请求代理可指示数据传输将以已知数目的连续时钟周期的脉冲串的形式发生(例如,对于每个时钟16字节的传输和64字节的高速缓存块传输来说,4个时钟周期)。在这种情况下,数据仲裁器可探测数据传输将在后续传输的开始之前结束,并且可响应这样的探测执行图4中图解说明的操作。这样的操作允许关于共用一个或多个区段的通信路径的许可的流水线操作。在其它情况情况下,数据仲裁器14可跟踪有效的数据传输(例如,数据有效信号可指示数据互连18上的数据传输),以探测数据传输的结束,或者传输代理可用信号通知数据仲裁器14数据传输将要结束。如果数据仲裁器14发现某一数据传输将要结束,那么数据仲裁器14可把在该传输中用于形成通信路径的区段记录成“不忙”或者“可用”(方框50)。从而,这些区段可分配给用于请求代理的通信路径。在一些实施例中,数据仲裁器14还可产生对多路复用器20A-20I的多路复用器控制,以便即使在该数据路径上的数据传输结束之后仍然保持通信路径(例如,如果这样做能够节电的话)。
图5是类似于图2的方框图,图解说明数据互连18上的第一通信路径的例子。在图5的例子中,从代理12C到代理12D建立该通信路径,如图5中的虚线所示。数据仲裁器14控制多路复用器20H选择代理12C的数据输出端到区段22A。数据仲裁器14控制多路复用器20I选择区段22A到区段22B。数据仲裁器14控制多路复用器20D选择区段22到代理12D的数据输入端。按照这种方式,从代理12C的输出端开始经多路复用器20H-20I和20D,并越过区段22A-22B建立通信路径。
图6是类似于图2和5的方框图,图解说明数据互连18上与图5中图解说明的第一通信路径同时的第二通信路径的例子。在图6的例子中,第二通信路径从代理12E到代理12A,如图6中较小的虚线所示(与第一通信路径的虚线相比)。数据仲裁器14控制多路复用器20F选择代理12E的数据输出端到区段22D。数据仲裁器14控制多路复用器20G选择区段22D到区段22C。数据仲裁器控制多路复用器20A选择区段22C到代理12A的数据输入端。按照这种方式,与第一通信路径同时地,从代理12E的数据输出端开始经多路复用器20F-20G和20A,并越过区段22C-22D建立通信路径。
现在参见图7,图中表示了图解说明数据仲裁器14的一个实施例的例证仲裁接口。在图解说明的实施例中,该接口包括数据仲裁器14和每个代理之间的各个信号(对于每个代理,例如图7中的代理12A-12B来说,所述各个信号是相同的)。在图解说明的实施例中,所述信号包括请求信号(Req.),脉冲串信号(Brst.),目的地标识符(DestID)和许可信号(Gnt.)。
每个代理可通过宣称其请求信号,请求数据互连18。与请求信号同时,代理可利用目的地ID,识别正在请求的数据传输的目的地代理,也可利用脉冲串信号指示数据是否将以连续时钟周期的脉冲串的形式传送。在一些实施例中,数据仲裁器14可使用脉冲串信号确定数据传输预期将在何时结束。在其它实施例中,可以不包括脉冲串信号。数据仲裁器14可通过宣称其许可信号,用信号把所述许可通知仲裁获胜者。
一旦充分理解上述公开内容,对本领域的技术人员来说,众多的变化和修改将是显而易见的。下面的权利要求意图包含所有这样的变化和修改。

Claims (10)

1.一种用于在集成电路内和/或集成电路之间进行互连的设备,包括:
多个代理,其中每个代理配置为通过互连进行通信;
所述互连,其定义为包括通过多个选择电路耦接的一组区段,所述多个代理与所述互连耦接,所述多个选择电路可配置成在所述多个代理之间的多个区段上建立通信路径,其中所述区段是指一个或多个导体,并且如果一个区段中包括一个以上的导体,那么所述导体可被并行驱动,以把多比特值从导体的一端传送到另一端;和
与所述多个代理和所述互连耦接的仲裁器,其中所述仲裁器被耦接成接收来自所述多个代理的使用所述互连的请求,其中每个请求代理被配置成识别所述请求的目的地代理,并且其中仲裁器被配置成为每个请求确定所述互连上越过所述多个区段中的一个或多个区段、从请求代理到目的地代理的通信路径,其中所述仲裁器被配置成在这样的请求的子集中进行仲裁:对所述请求来说,对应通信路径中的每个区段都可用。
2.按照权利要求1所述的设备,其中所述仲裁器被配置成选择所述多个代理中的第一代理作为仲裁获胜者,其中所述仲裁器被配置成通过控制所述多个选择电路,建立从第一代理到所述多个代理中的目的地代理的通信路径。
3.按照权利要求1所述的设备,其中所述多个选择电路中的每个选择电路被配置成驱动所述多个区段之一。
4.按照权利要求3所述的设备,其中每个选择电路的输入端与所述多个区段中的至少一个区段和/或所述多个代理中的至少一个代理的输出端耦接。
5.按照权利要求1所述的设备,其中所述区段中的一些区段由不同的通信路径共用,并且如果这些通信路径之一正在使用中,那么不能建立使用共用区段的其它通信路径。
6.按照权利要求1所述的设备,其中所述多个区段中的每个区段由所述多个选择电路中的相应选择电路驱动,其中至少一个选择电路以所述多个区段中的至少一个区段和来自所述多个代理中的至少一个代理的输出端作为输入端,其中通过配置所述多个选择电路中的一个或多个选择电路,以耦接请求代理的输出端与目的地代理的输入端,建立从所述多个代理中的请求代理到所述多个代理中的目的地代理的通信路径。
7.按照权利要求6所述的设备,其中所述多个区段中的第一子集沿第一方向在所述多个代理之间传送通信,其中所述多个区段中的第二子集沿第二方向在所述多个代理之间传送通信,其中第一子集与第二子集不相重叠,其中从请求代理沿目的地代理的方向驱动从请求代理到目的地代理的通信。
8.按照权利要求6所述的设备,其中所述多个选择电路物理分布在所述互连内。
9.一种用于在集成电路内和/或集成电路之间进行互连的方法,包括:
从与互连耦接的多个代理接收使用所述互连的请求,其中每个代理配置为通过所述互连进行通信,并且其中所述互连定义为包括通过多个选择电路耦接的一组区段,所述多个选择电路可配置成在所述多个代理之间的多个区段上建立通信路径,所述区段是指一个或多个导体,并且如果一个区段中包括一个以上的导体,那么所述导体可被并行驱动,以把多比特值从导体的一端传送到另一端,其中每个请求代理被配置成识别所述请求的目的地代理;
为每个请求确定所述互连上越过所述多个区段中的一个或多个区段、从请求代理到目的地代理的通信路径;和
在这样的请求的子集中进行仲裁:对所述请求来说对应通信路径中的每个区段都可用。
10.按照权利要求9所述的方法,还包括:
选择所述多个代理中的第一代理作为仲裁获胜者;和
建立从第一代理到所述第一代理识别的所述多个代理中的目的地代理的通信路径,其中所述建立包括控制所述多个选择电路。
CN2006800375364A 2005-08-11 2006-08-11 部分填充的分级交叉开关 Active CN101326505B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/201,573 2005-08-11
US11/201,573 US7269682B2 (en) 2005-08-11 2005-08-11 Segmented interconnect for connecting multiple agents in a system
PCT/US2006/031521 WO2007022019A2 (en) 2005-08-11 2006-08-11 Partially populated, hierarchical crossbar

Publications (2)

Publication Number Publication Date
CN101326505A CN101326505A (zh) 2008-12-17
CN101326505B true CN101326505B (zh) 2011-06-01

Family

ID=37670651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800375364A Active CN101326505B (zh) 2005-08-11 2006-08-11 部分填充的分级交叉开关

Country Status (8)

Country Link
US (2) US7269682B2 (zh)
EP (1) EP1922628B1 (zh)
JP (1) JP5356024B2 (zh)
CN (1) CN101326505B (zh)
AT (1) ATE443893T1 (zh)
DE (1) DE602006009408D1 (zh)
TW (1) TWI439864B (zh)
WO (1) WO2007022019A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269682B2 (en) 2005-08-11 2007-09-11 P.A. Semi, Inc. Segmented interconnect for connecting multiple agents in a system
US7779189B2 (en) * 2008-02-21 2010-08-17 International Business Machines Corporation Method, system, and computer program product for pipeline arbitration
JP2010165175A (ja) 2009-01-15 2010-07-29 Internatl Business Mach Corp <Ibm> バスの使用権を制御する装置および方法
US9514074B2 (en) 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect
US8787368B2 (en) * 2010-12-07 2014-07-22 Advanced Micro Devices, Inc. Crossbar switch with primary and secondary pickers
WO2014006507A2 (en) * 2012-07-02 2014-01-09 Marvell Israel (M.I.S.L.) Ltd. Systems and methods for providing replicated data from memories to processing clients
ITMI20121800A1 (it) 2012-10-24 2014-04-25 St Microelectronics Srl Dispositivo e relativo metodo per la scrittura/lettura di un registro di memoria condiviso da una pluralità di periferiche.
TWI617920B (zh) * 2013-07-12 2018-03-11 密西根大學董事會 單循環仲裁

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321274A (zh) * 1999-06-22 2001-11-07 皇家菲利浦电子有限公司 标志控制的请求代理仲裁
US6460174B1 (en) * 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081575A (en) * 1987-11-06 1992-01-14 Oryx Corporation Highly parallel computer architecture employing crossbar switch with selectable pipeline delay
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
JPH07123252B2 (ja) * 1991-11-27 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション ネットワーク用スイッチングシステム
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US6195335B1 (en) * 1997-06-27 2001-02-27 International Business Machines Corporation Data switch
US6343081B1 (en) * 1997-12-30 2002-01-29 International Business Machines Corporation Method and apparatus for managing contention in a self-routing switching architecture in a port expansion mode
EP0938212A1 (en) * 1998-02-19 1999-08-25 International Business Machines Corporation Process and system of flow control for a switching system
US6157989A (en) * 1998-06-03 2000-12-05 Motorola, Inc. Dynamic bus arbitration priority and task switching based on shared memory fullness in a multi-processor system
US6604230B1 (en) * 1999-02-09 2003-08-05 The Governing Counsel Of The University Of Toronto Multi-logic device systems having partial crossbar and direct interconnection architectures
US6601126B1 (en) * 2000-01-20 2003-07-29 Palmchip Corporation Chip-core framework for systems-on-a-chip
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US6665760B1 (en) * 2000-09-29 2003-12-16 Rockwell Automation Technologies, Inc. Group shifting and level shifting rotational arbiter system
JP2002169787A (ja) * 2000-11-30 2002-06-14 Matsushita Electric Ind Co Ltd 複数のプロセッサ部を含む半導体装置
US20020161978A1 (en) * 2001-02-28 2002-10-31 George Apostol Multi-service system-on-chip including on-chip memory with multiple access path
US7203202B2 (en) * 2001-10-31 2007-04-10 Polytechnic University Arbitration using dual round robin matching with exhaustive service of winning virtual output queue
US6954811B2 (en) * 2002-07-19 2005-10-11 Calix Networks, Inc. Arbiter for an input buffered communication switch
US20040223454A1 (en) * 2003-05-07 2004-11-11 Richard Schober Method and system for maintaining TBS consistency between a flow control unit and central arbiter in an interconnect device
JP2005070497A (ja) * 2003-08-26 2005-03-17 Canon Inc 現像装置及び画像形成装置
US7199607B2 (en) * 2004-12-22 2007-04-03 Infineon Technologies Ag Pin multiplexing
US7275121B1 (en) * 2005-04-05 2007-09-25 Nvidia Corporation System and method for hardware assisted resource sharing
US7269682B2 (en) 2005-08-11 2007-09-11 P.A. Semi, Inc. Segmented interconnect for connecting multiple agents in a system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321274A (zh) * 1999-06-22 2001-11-07 皇家菲利浦电子有限公司 标志控制的请求代理仲裁
US6460174B1 (en) * 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit

Also Published As

Publication number Publication date
US7426601B2 (en) 2008-09-16
TWI439864B (zh) 2014-06-01
CN101326505A (zh) 2008-12-17
US20070038796A1 (en) 2007-02-15
US7269682B2 (en) 2007-09-11
TW200809517A (en) 2008-02-16
EP1922628A2 (en) 2008-05-21
JP5356024B2 (ja) 2013-12-04
WO2007022019A3 (en) 2007-05-31
JP2009505241A (ja) 2009-02-05
EP1922628B1 (en) 2009-09-23
WO2007022019A2 (en) 2007-02-22
US20070271402A1 (en) 2007-11-22
DE602006009408D1 (zh) 2009-11-05
ATE443893T1 (de) 2009-10-15

Similar Documents

Publication Publication Date Title
CN101326505B (zh) 部分填充的分级交叉开关
CN101305354B (zh) 在多个请求之间进行仲裁的系统和方法
CN100595720C (zh) 用于基于集线器的存储系统中直接存储器访问的设备和方法
US6557069B1 (en) Processor-memory bus architecture for supporting multiple processors
CN1815463B (zh) 四重抽吸总线体系结构和协议
CN102414671B (zh) 对于不同源的分级内存仲裁技术
CN100595744C (zh) 芯片上系统集成电路、电子系统及在其内传送数据的方法
KR100404608B1 (ko) 대칭형 멀티프로세서용 버스식 캐시-코히런스 프로토콜을지원하기 위해 분산 시스템 구조를 이용하는 방법 및 장치
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
WO1993019424A1 (en) System and method for supporting a multiple width memory subsystem
US6993612B2 (en) Arbitration method for a source strobed bus
US6658529B2 (en) Broadcast system in disk array controller
JP2003281082A (ja) 二バス間のトランザクションを制御する再試行方法
JPH04302051A (ja) メモリ共有マルチプロセッサが使用する全ての物理的アドレスのデータ両立性を保持する方法
US6701407B1 (en) Multiprocessor system with system modules each having processors, and a data transfer method therefor
CN100587680C (zh) 管理分离总线上总线代理之间的数据流的方法和系统
EP0760979A1 (en) Bus structure for a multiprocessor system
CN100485648C (zh) 一种片上系统
US6877052B1 (en) System and method for improved half-duplex bus performance
US20060031619A1 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
WO2003014948A1 (en) System architecture of a high bit rate switch module between functional units in a system on a chip
WO1996033466A1 (en) Performing input/output operations in a multiprocessor system
JPH10269190A (ja) 論理回路接続装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: APPLE

Free format text: FORMER OWNER: P.A.SEMI CO.,LTD.

Effective date: 20090626

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20090626

Address after: American California

Applicant after: Apple Computer, Inc.

Address before: American California

Applicant before: P. A. SEMI Inc.

C14 Grant of patent or utility model
GR01 Patent grant