CN101305354A - 每个代理队列较浅的非阻塞地址开关 - Google Patents

每个代理队列较浅的非阻塞地址开关 Download PDF

Info

Publication number
CN101305354A
CN101305354A CNA2006800375684A CN200680037568A CN101305354A CN 101305354 A CN101305354 A CN 101305354A CN A2006800375684 A CNA2006800375684 A CN A2006800375684A CN 200680037568 A CN200680037568 A CN 200680037568A CN 101305354 A CN101305354 A CN 101305354A
Authority
CN
China
Prior art keywords
request
switch
agency
requests
control circuit
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.)
Granted
Application number
CNA2006800375684A
Other languages
English (en)
Other versions
CN101305354B (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
PA Semi 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 PA Semi Inc filed Critical PA Semi Inc
Publication of CN101305354A publication Critical patent/CN101305354A/zh
Application granted granted Critical
Publication of CN101305354B publication Critical patent/CN101305354B/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Small-Scale Networks (AREA)

Abstract

在一个实施例中,开关被配置成与互连耦接。所述开关包括多个存储位置和与所述多个存储位置耦接的仲裁器控制电路。所述多个存储位置被配置成保存由多个代理传送的多个请求。所述仲裁器控制电路被配置成在保存于所述多个存储位置中的多个请求之间进行仲裁。选择的请求是仲裁的获胜者,所述开关被配置成把选择的请求从所述多个存储位置之一传送到所述互连上。在另一实施例中,系统包括多个代理,一个互连和与所述多个代理和互连耦接的开关。在另一实施例中,设想了一种方法。

Description

每个代理队列较浅的非阻塞地址开关
技术领域
本发明涉及集成电路的领域,更具体地说,涉及集成电路内和/或集成电路之间的互连的仲裁机构。
背景技术
系统中的集成电路,或者集成电路内的各种电路一般需要相互通信。许多情况下,系统/集成电路中的通信器可通过存储器映射中的各个地址通信。即,各个通信器被分配存储器映射中的地址,对所述地址的读取/写入被用于通信。一般来说,这样的通信器使用在通信器之间的互连上传送的读取/写入事务。例如,常见的是具有一条地址总线,在所述地址总线上,传送地址、命令和其它事务信息以发起事务。另外,可使用数据总线来传送与事务对应的数据(如果有的话)。如果为事务实现高速缓存一致性,那么可以提供一个响应接口以便按照由通信器实现的一致性方案,保持一致状态。
在互连或其一部分在通信器之间被共享的条件下,需要关于互连的使用在通信器之间进行仲裁的某种机制。过去,使用的是集中式和分布式仲裁机制。在集中式仲裁机制中,所有通信器向中央仲裁器传送请求信号,中央仲裁器确定哪个通信器被准许使用互连(“仲裁获胜者”)。中央仲裁器向获得批准的通信器返回许可信号,获得批准的通信器随后在互连上驱动其事务。分布式仲裁方案中,每个通信器实现一个本地仲裁器(或者附近包括一个本地仲裁器)。每个通信器向所有本地仲裁器宣称其请求信号。本地仲裁器用于独立地确定相同的仲裁获胜者。获得批准的通信器的本地仲裁器通知该获得批准的通信器,该获得批准的通信器把其事务驱动到互连上。
与分布式仲裁机制相比,集中式仲裁机制一般实现起来较简单。但是,集中式仲裁机制一般来说也是一种等待时间较长的机制。集中式仲裁机制包括可能较长距离的请求信号传输,随后是同样距离的许可信号传输,接下来是得到批准的通信器驱动其事务。另一方面,更复杂的分布式仲裁机制只涉及一次长距离传输(对每个本地仲裁器的请求信号传输)。分布式仲裁机制中的复杂性一般包括关于特定通信器的许可的更复杂“停车(parking)”,控制通信器的流程的复杂性,以及以每个源通信器为基础的目标通信器中的缓冲器的分配。
发明内容
在一个实施例中,开关(swtich)被配置成与互连耦接。所述开关包括多个存储位置和与所述多个存储位置耦接的仲裁器控制电路。所述多个存储位置被配置成保存由多个代理传送的多个请求。仲裁器控制电路被配置成在保存于所述多个存储位置中的多个请求之间进行仲裁。选择的请求是仲裁的获胜者,开关被配置成把选择的请求从所述多个存储位置之一传送到所述互连上。在另一实施例中,系统包括多个代理,一个互连,和与所述多个代理及互连耦接的开关。
在另一实施例中,方法包括使来自多个代理的请求在多个存储位置中排队;在所述多个存储位置中的请求之间进行仲裁,以选择所述多个请求中的一个请求;并在互连上传送选择的请求。
附图说明
下面的说明参考了附图,现在简要说明这些附图。
图1是集成电路的一个实施例的方框图。
图2是图1中所示的仲裁器/地址开关的一个实施例的方框图。
图3是图解说明图2中所示的在请求之间进行仲裁的仲裁器控制单元的一个实施例的操作的流程图。
图4是图解说明一个实施例的排序规则的表。
图5是在地址互连上传递请求的方法的高级流程图。
尽管本发明容许各种修改和备选形式,不过附图中举例表示了本发明的具体实施例,并且这里将详细说明所述具体实施例。但是,附图及其详细说明显然并不意图把本发明局限于公开的特定形式,相反,本发明将包括落入由附加权利要求限定的本发明的精神和范围内的所有修改、等同物和替换物。
具体实施方式
现在参见图1,图中表示了系统10的一个实施例的方框图。在图解说明的实施例中,系统10包括多个代理,比如代理12A-12D。系统还包括地址开关14,地址互连16和响应/数据互连18。代理12A-12B与地址开关14耦接(在图解说明的实施例中,代理12B通过触发器(flop)20A被耦接)。地址开关14还与地址互连16耦接,地址互连16与代理12A-12D耦接(在图解说明的实施例中,通过触发器20B-20I)。按照另一种方式来看,触发器20B-20I可以是地址互连16的一部分。代理12A-12D还与响应/数据互连18耦接。在一个实施例中,系统10可被集成到单一的集成电路芯片上。在其它实施例中,系统10的各个组件可在独立的集成电路上实现。在各个实施例中,可以使用任意级别的集成。
代理12A-12B被配置成把将在地址互连16上传送的请求传送给地址开关14。每个请求可包括事务的地址和命令(所述命令识别待执行的事务)。可以支持各种命令,例如相关(coherent)读取和写入命令,非相关读取和写入命令,相关所有权命令,探测命令,同步命令,高速缓存管理命令等等。在各个实施例中,请求还包括其它信息。例如,在下面更详细说明的一个实施例中,请求可包括请求的优先级(供仲裁之用),和该请求的数据是否将被复制到2级高速缓存的指示。
代理12A-12B可被称为源代理,因为它们可通过传送对地址互连16的请求,在系统中发起事务。例证的源代理可包括处理器,外部回写式高速缓存(它向已被改变成内存的写入收回(write evicted)高速缓存块发起(source)写入事务),和输入/输出(I/O)桥接器(它代表它们耦接的外围设备发起事务)。如图1中的省略号所示,各个实施例中可包括两个以上的源代理(或者下面说明的源/目标代理)。其它代理可能不发起(source)事务,但是可以是事务的目标(即,接收事务并且对事务的数据负责的代理)。这样的代理被称为目标代理。对于读取事务来说,目标代理提供数据,除非另一代理具有数据的最新(修改的)高速缓存副本。对于写入事务来说,目标代理接收源代理供给的写入数据。例如,目标代理可包括存储器控制器和I/O桥接器。一些代理可以既是某些事务的源代理,又是其它事务的目标代理。例证的源/目标代理可包括上面提及的I/O桥接器或者外部高速缓存。一般来说,代理可包含被配置成借助地址互连16和响应/数据互连18上的事务进行通信的任何电路。
每个源代理12A-12B(或者源/目标代理,不过在本说明中为了简洁起见,将使用源代理)可使用请求信号来指示源代理12A-12B正在传送请求。地址开关14还可向指定的源代理12A-12B断言许可信号,以指示源代理12A-12B传送的对地址互连16的请求已被准许。
地址开关14可包括多个存储位置,所述存储位置被配置成保存源代理传送的请求,直到对地址互连16的请求被准许为止。在一个实施例中,存储位置可包含多个队列。每个队列可对应于特定的源代理,并且可专用于保存由该源代理传送的请求。即,在队列和源代理之间存在一一对应。指定源代理的队列可保存由该指定源代理传给地址开关14的多个请求。每个源代理可以知道与该源代理对应的队列中的队列项的数目,不能传送比队列项更多的请求。
地址开关14还可被配置成在队列中的请求之间进行仲裁,以选择在地址互连16上进行传输的请求。可以采用任何仲裁方案。例如,在一些实施例中,每个请求可具有分配给它的优先级。仲裁方案可以是具有饥饿预防机制的严格优先级方案(选择优先级最高的请求),以避免使优先级较低的请求饿死。地址开关14可在地址互连16上驱动选择的请求。
从而,地址开关14可对地址互连16采用集中式仲裁。但是,由于请求被传给地址开关14,并由地址开关14驱动到地址互连16上,因此在一些实施例中,与向选择的在仲裁中获胜的源代理返回许可(和源代理响应所述许可,驱动地址互连16)关联的等待时间可被缩短。地址开关14可并行于把选择的请求驱动到地址互连16上,向源代理返回许可。另外,在一些实施例中,地址开关14中的仲裁电路具有和请求有关的更多信息,因为请求本身在地址开关14中排队(例如,与一般在常规的集中式仲裁器中实现的请求/许可结构相比)。
当源代理从地址开关14收到许可时,源代理被告知某一队列项可用于保存另一请求。在一个实施例中,可按照传送顺序准许来自指定源代理的请求。从而,收到许可的源代理可使所述许可与对应的请求联系起来。在其它实施例中,地址开关14可被配置成在一些情况下对请求重新排序(在较早从源代理接收的请求之前传送稍后从相同源代理接收的请求)。在这样的实施例中,源代理可与地址互连16耦接,并且可接收传紧接着传送的请求,以确定哪个请求被准许。例如,在一些实施例中,源代理可用源标记标识每个请求,源代理可从地址互连16接收源标记,以确定哪个请求被准许。
在各个实施例中,地址互16可包括任何通信介质。例如,地址互连16可包括分组接口,其中在地址互连16上在一个或多个时钟周期内以分组的形式传送请求。特别地,在一个实施例中,可在地址互连16上在一个时钟周期内传送地址分组。这样的实施例可使地址开关14多少与事务的地址阶段的协议隔离。其它实施例可被地址互连16实现成总线,地址连同各种控制信号一起被传送,以指示在地址阶段内传送的命令和其它控制信息。
请求被广播给地址互连16上的代理12A-12D。在一些实施例中,在地址互连16上到达最远的代理12A-12D(就物理距离来说)的飞行时间可能超过与地址互连16关联的时钟的一个时钟周期。包括在地址开关14和指定代理12A-12B之间的触发器(Flop)20B-20I的数目可以到最远的代理的飞行时间(以用于地址互连16的时钟信号的时钟周期的数目表示)为基础。在图解说明的实施例中,飞行时间超过两个时钟周期,从而使用两个触发器。其它实施例可以包括零个触发器(如果飞行时间小于一个时钟周期),一个触发器(如果飞行时间超过一个时钟周期,但是小于两个时钟周期),或者两个以上的触发器(取决于飞行时间)。为了确保指定的请求逻辑上在相同的时钟周期被每个代理12A-12D接收,即使某些代理物理上离地址开关14更近,请求能够在更短的飞行时间内到达所述更近的代理,仍然在地址开关14和每个代理12A-12D之间设置相同数目的触发器20B-20I。到更远的代理的触发器可沿地址开关14和所述更远的代理之间的距离物理分布。为了简化附图,图1并不试图图解说明触发器20B-20I的物理分布。
由于每个代理12A-12D逻辑上在相同的时钟周期接收在地址互连16上传送的请求,在一些实施例中,地址互连16可以是相关(coherent)事务的空间相关点。即,在地址互连16上成功传送的请求的顺序可为了相关性的目的定义事务的顺序。
类似地,在一些实施例中,请求从源代理12A-12B到地址开关14的飞行时间可能超过一个时钟周期。在一些实施例中,地址开关14可被物理布置成最接近预期具有最高的请求带宽的源代理(例如,处理器代理一般具有比高速缓存代理和I/O代理更高的请求带宽)。在图1中的实施例中,来自源代理12B的请求的飞行时间可超过一个时钟周期,从而触发器20A可被用于捕获所述请求,并继续所述请求对地址开关14的传送。类似地,地址开关14返回的许可信号可被触发器20A捕捉,并在下一时钟周期传送。
在本实施例中,由于地址互连16是相关事务的相关点(也可整体定义请求的顺序),因此在从不同的代理传给地址开关14的请求之中不存在任何排序。因此,如果诸如触发器20A之类的触发器被用于自一个源代理的飞行时间,那么对于其请求的飞行时间小于一个时钟周期的其它代理来说,不需要插入触发器。
如上所述,在一些实施例中,源代理可在地址互连16上接收请求,以确定实际向地址互连16批准停留在地址开关14中的来自指定代理的多个请求中的哪个请求。另外,在一些实施例中,也可高速缓存数据(从而可以参与相关事务)的源代理也可出于相关性的目的在地址互连16上探听其它源代理的请求。诸如代理12C-12D的目标代理与地址互连16耦接,以便接收以它们为目标的请求。
在一个实施例中,地址开关14也可被配置成管理对各个目标代理12C-12D的流控制。例如,地址开关14可被配置成确定每个请求寻址哪个目标代理(例如,借助请求地址的粗粒(coarse grain)解码,并根据所述解码把请求地址映射到目标代理)。地址开关14可以知道在目标代理中排队的请求的数目(在从地址互(16)收到请求之后),并且可以确保目标代理的输入队列不会由于请求而溢出。如果给定请求以其输入队列已满的指定目标代理为目标,那么地址开关14可确保该给定请求不会被选作仲裁的获胜者,直到在给定的目标代理中,一个输入队列项可用为止。在这种情况下,地址开关14可以不阻塞其它请求。即,即使由于目标代理不能接收请求,较早的请求或较高优先级的请求没有资格赢得仲裁,地址开关14仍然能够选择以另一目标代理为目标的另一请求。在一些实施例中,地址开关14也可努力在源代理之中实现对目标代理的公平或优化访问。
代理12A-12D也可与响应/数据互18耦接,以便传递在地址互连16上借助请求发起的事务的响应阶段和数据阶段。在各个实施例中,一些事务可能不包括数据阶段。响应阶段可包括来自高速缓存代理的对相关事务的响应。所述响应可提供在与事务对应的数据的接收器中,应建立哪种相关状态。事务的数据阶段涉及对源代理的数据传输(用于读取)或者对目标代理的数据传输(用于写入)。在各个实施例中,响应/数据互连18可包括一个通信介质。
尽管在上面的一些实施例中,地址开关14中的存储位置被描述成每个代理的队列,不过其它实施例可按照其它方式实现存储位置。例如,存储位置可以是源代理把请求保存于其中的单一队列。队列项可由地址开关14灵活地分配给源代理,存在指示每个源代理可用的队列项的数目的其它信令(例如,从地址开关14到每个代理的指示队列项的数目的信令,或者至少一个另外的队列项可供该代理之用的信令等等)。代理可被分组,并且可以共用队列,或者可根据每个请求的目标分配队列。
注意尽管在图1的实施例中图解说明了触发器20A-20I,不过任何定时存储装置可被用作所述装置20A-20I。例如,可以使用寄存器、锁存器等等。定时存储装置可以包括配置成响应时钟信号,捕捉供存储的数值的任何存储装置。在本实施例中,触发器20A-20I的时钟信号输入可以是用于地址互连16的时钟。一些代理在内部可以时钟的倍数工作。也可用任何定时存储装置实现这里描述的其它触发器。一般来说,每个触发器20A-20I具有与其输入的宽度相等的位宽。例如,触发器20A可以是与地址开关14的请求/准许接口的宽度,触发器20B-20I的宽度可以是地址互连6的宽度。
虽然上面严格优先级仲裁方案被用作一个例子,不过其它实施例可以实现其它仲裁方案。例如,其它仲裁方案可以包括循环法、优先级加权循环法、循环方案和优先级的组合等等。
虽然上面的讨论涉及的是接收对地址互连16的请求,并在所述请求之中进行仲裁,以确定将在地址互连16上传送的仲裁获胜者的地址开关,不过其它实施例可以实现用于数据互连的类似开关。对数据开关的请求可以接收自数据源。请求可包括事务的数据,以及识别数据所对应的地址请求的标记。请求可包括优先级,在各个实施例中,所述优先级可以是和地址请求相同的优先级,或者是不同的优先级。数据开关可在排队的数据请求中进行仲裁,以选择在数据互连上驱动的仲裁获胜者。
现在参见图2,图中表示了地址开关14的一个实施例的方框图。在图解说明的实施例中,地址开关14包括队列,比如分别对应于代理12A和12B的队列30A和30B。地址开关14还包括多路复用器32,输出触发器34和仲裁器控制电路36。队列30A和30B被耦接,以便从它们各自的代理12A-12B接收请求。另外,在图解说明的实施例中,仲裁器控制电路36和多路复用器32被耦接,以接收所述请求。队列30A和30B还与仲裁器控制电路36和多路复用器32耦接。在包括另外的源代理的实施例中,多路复用器32还可被耦接成接收所述请求和地址开关14中的对应队列的输出。仲裁器控制电路36被耦接成接收来自代理12A-12B的请求信号,并向代理12A-12B提供许可信号。仲裁器控制电路36还被耦接成提供对多路复用器32的选择控制。多路复用器32的输出端与输出触发器34耦接,输出触发器34再与地址互连16耦接。仲裁器控制电路36还被耦接成接收来自代理12C-12D(在一些实施例中,其它目标代理或源/目标代理)的信用指示(credit indication)。
在图解说明的实施例中,每个请求包括地址(Addr),命令(Cmd),优先级(Pr),事务ID(TId)和ReorderOK位(ROK)。队列30A-30B可被配置成保存所述请求。即,每个队列项可包括足以保存请求的存储空间。在图解说明的实施例中,每个队列30A-30B包括两项。在其它实施例中,在每个队列30A-30B中可以包括更多的项。地址是存储器映射中受所述请求影响,并且识别目标代理的地址。命令识别正在发起的事务。优先级指示请求的优先级。在一个实施例中,使用三个优先级。当请求的等待时间至关重要时,使用最高优先级。例如,在一个实施例中,当与分组接口,比如以太网接口耦接的一些I/O桥接器或者驱动分组接口的电路中的缓冲器不断减少时,所述I/O桥接器可以使用最高优先级来读取描述符或者分组数据。中等优先级可由I/O桥接器用于处理器读取和直接存储器访问(DMA)描述符读取。如果源代理的写缓冲器正在接近于充满,那么中等优先级也可被用于写入。低优先级可被用于所有其它请求(例如,处理器写入,诸如DAM读取和写入之类的高带宽读取和写入等等)。其它实施例可以使用更多或更少的优先级。reorderOK位可被用于指示该请求是否可被重新安排在来自相同代理的某一在先请求之前,如果所述在先请求仍然在代理的队列30A-30B中(即,所述在先请求还未被准许到地址互连16上)。源代理可以按照由代理实现的一组排序规则产生reorderOK位。图4中图解说明了一个例子,并在下面更详细地讨论。
当向地址开关14传送请求时,代理12A-12B可宣称对应的请求信号。好,宣称的请求信号可以充当请求的有效位,用于写入与代理12A-12B对应的队列30A-30B,以及用于向仲裁器控制电路36指示该请求。仲裁器控制电路36还可产生许可信号(每个源代理12A-12B一个许可信号)。仲裁器控制电路36可向指定的源代理12A-12B宣称许可信号,以指示来自源代理12A-12B的请求已被准许,并将在地址互连16上被驱动。宣称的许可信号可向代理12A-12B指示代理的队列30A-30B中的一个队列项正在释放以接受另一请求。
每个代理12A-12B可被配置成传送数目与其队列30A-30B中的队列项的数目(在图解说明的实施例中,两个)相同的请求。在一个实施例中,每个代理12A-12B可把停留在队列30A-30B中的请求的数目限制为项数。即,代理可传送两个请求,随后禁止传送另外的请求,直到宣称的许可信号指示一个队列项正在被释放为止。在另一实施例中,每个代理12A-12B可填充其队列30A-30B,并传送又一个请求,代理12A-12B可继续传送所述又一个请求,直到前一请求被准许,从而宣称的请求被写入队列项中为止。
仲裁器控制电路36可仲裁队列30A-30B中的请求,并选择将在地址互连16上传送的请求。仲裁器控制电路36可产生对多路复用器32的选择控制,以选择请求,并把选择的请求提供给输出触发器34。输出触发器34把请求驱动到地址互连16上。可提供输出触发器34,以保证在时钟周期开始时,请求被驱动到地址互连16上。在其它实施例中,可以除去输出触发器34,可依据通过多路复用器32的选择驱动请求。选择的请求同样从其队列30A-30B中被删除,仲裁器控制电路36向对应的源代理12A-12B宣称许可信号。
仲裁器控制电路36可实现任意仲裁方案在请求中进行选择。例如,如上所述,仲裁器控制电路36可实现具有饥饿预防机制的严格优先级选择。在这种方案中,最高优先级请求通常被选为仲裁的获胜者。但是,如果众多的较高优先级请求导致较低优先级请求长时间停留在队列30A-30B中(即,使较低优先级请求“饥饿”),那么可以选择较低优先级请求。可按照各种方式实现饥饿预防机制。例如,每个请求可具有与之相关的计时器或者时间戳记,所述计时器或者时间戳记指示该请求在队列30A-30B中的时间有多长。如果该请求在队列30A-30B中的时间超过时间阈值(所述时间阈值可以是固定的或者可编程的),那么可以选择该请求。实际上,请求的优先级可因其在队列30A-30B中的时间而增大。在另一例子中,如果连续选择规定数目的较高优先级请求(这里所述数目可以是固定的或者可编程的),那么可自动选择一个较低优先级请求。如果对于指定仲裁,在队列30A-30B中,一个以上的请求具有最高优先级,那么可以使用任何机制在请求中进行选择(例如,源代理之间的固定优先级,源代理之间的循环法,可以选择最老的请求等)。其它实施例可以实现其它仲裁方案(例如,无优先级的循环法,基于优先级的加权循环法等等)。
如果在队列30A-30中,高优先级请求在另一请求之后,那么如果该高优先级请求的RrorderOK位未被设置成指示允许把该请求重新安排在前一请求之前,那么该高优先级请求没有仲裁资格。即,如果RrorderOK位不指示允许重新排序,那么仲裁器控制电路36不会在相同队列中的前一较低优先级请求之前选择该高优先级请求。如果如RrorderOK位所示,允许在在先请求之前的重排,那么当较高优先级请求在队列中的较低优先级请求之后时,可选择高优先级请求。即,在传送高优先级请求之前,较低优先级请求可能已由代理传给地址开关。
在一些实施例中,仲裁器控制电路36还可实现对每个目标代理(例如,在图1的实施例中,代理12C-12D)的流量控制。仲裁器控制电路36可确定每个请求的目标代理(例如,在本实施例中利用地址)。就地址到目标代理的映射来说,仲裁器控制电路36是可编程的。例如,一个或多个寄存器38可被编程,以把地址空间映射到目标代理。根据地址映射,地址控制电路36可执行某些最高有效位的粗粒解码,以确定目标代理。在本实施例中,所述解码是粗粒的,因为预期将对相同的目标代理规划较大的连续地址范围。其它实施例可以使用细粒解码。此外,尽管在本实施例中,解码是可编程的,不过其它实施例可以具有固定的地址映射,仲裁器控制电路36可按照固定的地址映射解码地址。
每个目标代理具有接受高达一定数目的事务的能力(例如,与在目标代理中实现的缓冲器的数目一致)。在一些实施例中,事务可依据事务类型分组,可关于每个目标代理规定每组事务的数目。例如,在一个实施例中,事务可被分组成相关读取,相关写入,非公告(non-posted)非相关命令,和公告的非相关命令。对于上述各组事务中的每一组,每个目标代理可以实现一定数目的缓冲器。
仲裁器控制电路36可被配置成实现对目标代理的流量控制,以保证目标代理的缓冲器不会溢出。例如,可以使用基于信用量的系统,其中每个缓冲器由对应事务类型的信用量表示。仲裁器控制电路36可跟踪可用的信用量(例如,使用图2中的一个或多个寄存器40)。如果仲裁器控制电路36选择指定类型的以指定目标代理为目标的请求,那么仲裁器控制电路36可把对应的信用计数减1。当缓冲器空闲时,目标代理也可传达信用量的恢复(图2中表示成信用量)。从而,在任意指定时刻,仲裁器控制电路36知道对于每种事务类型,每个目标代理中的缓冲器可用性。如果某一请求会消耗的信用量不存在,那么仲裁器控制电路36会防止选择该请求。改为选择另一请求(甚至较低优先级的请求),如果所述另一请求的对应信用量可用的话。
在一些实施例中,仲裁器控制电路36可努力保证源代理对指定目标代理的访问的公平性。仲裁器控制电路36可跟踪每个目标代理的各种信用量的总体使用,以及每个源代理对信用量的使用。如果目标代理的信用量的总体使用较高(表示目标代理忙于事务),并且特定的源代理正在以较高的速率与目标代理通信(由该目标代理的信用量的使用指示),那么仲裁器控制电路36可限止该对源/目标代理对信用量的使用,以允许其它源代理更好地访问该目标代理。
如图2的实施例中所示,多路复用器32和仲裁器控制电路36被耦接,以接收代理12A-12B当前传给地址开关14的请求。仲裁器控制电路36可被配置成关于指定的请求绕过队列30A-30B,并通过多路复用器32选择该请求,如果当传送该请求时队列30A-30B为空(并且目标代理的对应信用量可供消耗)。这种情况下能够避免通过队列的等待时间。在其它实施例中,只对一个源代理,或者源代理的子集提供旁路(例如,处理器可具有旁路,其它代理不具有旁路)。在其它实施例中,可不实现旁路,输入的位流与多路复用器32和仲裁器控制电路36的连接可被除去。
注意尽管本实施例使用ReorderOK位来指示指定的请求是否可以重排在先前从相同代理传送的请求之前,不过其它实施例可以使用其它指示。例如,如果在队列30A-30B中实现两个以上的队列项,那么存在对应于队列中的每一项的ReorderOK位。每个ReorderOK位可指示该请求是否可相对于对应队列项听请求重排。另一方面,仲裁器控制电路36可实现当确定指定请求是否可被重排在先前传送的请求之前时,应用于代理的一组排序规则。
图3是图解说明仲裁控制电路36的一个实施例的操作的流程图。尽管为了易于理解,按照特定的顺序表示各个方框,不过可以使用任何顺序。此外,仲裁控制电路36中的组合逻辑电路可以并行实现各个方框。根据需要,其它方框,方框的组合,或者整个流程图可在多个时钟周期内被流水线化。
如果对于当前仲裁周期启动了饥饿控制(判定方框50),那么仲裁控制电路36可超越“正常”(例如,基于优先级的)仲裁。如上所述,如果指定的较低优先级的请求已长时间留在队列中,那么可启动饥饿控制。另一方面,如果在许多连续仲裁内都选择高优先级的请求,那么可启动饥饿控制。如果启动了饥饿控制(判定方框50,“yes”支路),那么仲裁控制电路36可把年老的请求(或者较低优先级的请求)选为仲裁获胜者(方框52)。
如果未启动饥饿控制(判定方框50,“no”支路),那么仲裁器控制电路36可掩蔽没有资格仲裁的各个请求,并在未被掩蔽的请求之中进行仲裁。例如,如果队列中的某个请求使其ReorderOK位指示不允许重排,并且在同一队列中存在在先请求,那么该请求可被掩蔽,以避免在所述在先请求之前选择该请求(例如,如果该请求的优先级高于所述在先请求)(方框54)。另外,如果请求的目标是不可得到用于该请求的任何适当类型的信用量的目标代理,那么该请求可被掩蔽(方框56)。如果仲裁控制电路36限制可被与某一请求对应的源代理消耗的信用量,并且已达到该限度,那么即使存在可供消耗的信用量,该请求也可被掩蔽(方框56)。仲裁控制电路可把未被掩蔽的优先级最高的请求选为仲裁获胜者(方框58)。
仲裁控制电路36可通过多路复用器32把仲裁获胜者选到地址互连16上。另外,仲裁控制电路36可向发起所选请求的源代理宣称许可信号,并从队列30A-30B中删除选择的请求。
图4是在各个实施例中,可由源代理,或者仲裁控制电路36,或者这两者实现的一组排序规则的一个实施例的方框图。事务类型示于表的上部和表的左侧。行列的交点处是关于该行中的那种事务是否被允许重排在该列中的那种在先事务之前的规则。
因此,相关读取和写入请求可被自由重排,只有不存在地址匹配。在这个意义上,在保持相关性的粒度上检测地址匹配(例如,高速缓存块)。相关读取请求可被重排在非相关公告(posted)请求和非相关完成(completion)之前,但是不可重排在非相关非公告请求(相关读取行和非相关公告,非相关非公告以及非相关完成列)之前。但是,在一些情况下,请求是否可被重排取决于请求的具体实例(包括a)和b)答案的交叉点)。下面在图5中的表中定义了关于a)和b)的请求的类型。Y/N意味重排是允许的,但是并不需要被许可。从而,如果图4指示yes或Y/N,那么请求可被重排。
下面参见图5,图中表示了在地址互连上传递请求的方法的高级流程图。来自源代理的请求在地址开关中排队(方框70)。地址开关在排队的请求中进行仲裁,以选择某一请求(方框72)。选择的请求在地址互连上传送(方框74)。
一旦充分理解上述公开内容,对本领域的技术人员来说,众多的变化和修改将是显而易见的。下面的权利要求意图包含所有这样的变化和修改。

Claims (29)

1、一种配置成与互连耦接的开关,所述开关包括:
多个存储位置,其中所述多个存储位置被配置成保存由多个代理传送的多个请求;和
与所述多个存储位置耦接的仲裁器控制电路,其中所述仲裁器控制电路被配置成在保存于所述多个存储位置中的多个请求之间进行仲裁,其中开关被配置成把选择的请求从所述多个存储位置之一传送到所述互连上,其中选择的请求是仲裁的获胜者。
2、按照权利要求1所述的开关,其中所述多个存储位置包括多个队列,其中所述多个队列中的每个队列对应于所述多个代理中的一个相应代理,并被配置成保存由所述相应代理传送的请求,其中所述多个队列中的每个队列包括所述多个存储位置中的至少两个。
3、按照权利要求1所述的开关,其中仲裁器控制电路被配置成在选择第二请求之前,把由所述多个代理中的第一代理传送的第一请求选为选择的请求,其中第二请求由第一代理在第一请求之前传送。
4、按照权利要求3所述的开关,其中每个请求具有对应的优先级,其中仲裁器控制电路被配置成如果第一请求的优先级高于第二请求的话,则在选择第二请求之前选择第一请求。
5、按照权利要求3所述的开关,其中仲裁器控制电路被配置成如果第一和第二请求可按照一组排序规则重新排序,那么在选择第二请求之前选择第一请求,其中仲裁器控制电路被配置成如果即使第一请求的优先级高于第二请求,第一和第二请求也不能按照所述一组排序规则重新排序,那么不在第二请求之前选择第一请求。
6、按照权利要求5所述的开关,其中第一代理被配置成随同第一请求传送表示第一请求是否可与第二请求重新排序的指示,其中仲裁器控制电路被配置成如果所述指示表示第一请求可与第二请求重新排序,那么在选择第二请求之前选择第一请求。
7、按照权利要求1所述的开关,其中仲裁控制电路被配置成确定所述多个请求中的每个请求的目标代理,并且其中如果根据所述多个请求的一个请求的目标代理、所述请求被阻塞,那么仲裁器控制电路被配置成把给另一目标代理的另一请求选为所选请求。
8、按照权利要求6所述的开关,其中仲裁器控制电路被配置成对所述多个请求中的每个请求的地址的一部分解码,以确定每个请求的目标代理。
9、按照权利要求1所述的开关,其中所述互连是地址互连。
10、按照权利要求1所述的开关,其中所述互连是数据互连。
11、一种系统,包括:
多个代理;
一个互连;和
与所述多个代理及互连耦接的开关,其中所述开关包括多个存储位置,其中所述多个存储位置被配置成保存由所述多个代理传给所述开关的多个请求,其中所述开关被配置成在保存于所述多个存储位置中的多个请求之间进行仲裁,其中所述开关被配置成在所述互连上传送选择的请求,其中选择的请求是仲裁的获胜者。
12、按照权利要求11所述的系统,其中所述多个存储位置包括多个队列,其中所述多个队列中的每个队列对应于所述多个代理中的一个相应代理,并被配置成保存由所述相应代理传送的请求,其中所述多个队列中的每个队列包括所述多个存储位置中的至少两个。
13、按照权利要求11所述的系统,其中所述开关被配置成在选择第二请求之前,把由所述多个代理中的第一代理传送的第一请求选为选择的请求,其中第二请求由第一代理在第一请求之前传送。
14、按照权利要求13所述的系统,其中每个请求具有对应的优先级,其中所述开关被配置成如果第一请求的优先级高于第二请求的话,则在选择第二请求之前选择第一请求。
15、按照权利要求13所述的系统,其中所述开关被配置成如果第一和第二请求可按照一组排序规则重新排序,那么在选择第二请求之前选择第一请求,其中所述开关被配置成如果即使第一请求的优先级高于第二请求,第一和第二请求也不能按照所述一组排序规则重新排序,那么不在第二请求之前选择第一请求。
16、按照权利要求15所述的系统,其中第一代理被配置成随同第一请求传送表示第一请求是否可与第二请求重新排序的指示,其中所述开关被配置成如果所述指示表示第一请求可与第二请求重新排序,那么在选择第二请求之前选择第一请求。
17、按照权利要求11所述的系统,其中所述开关被配置成确定所述多个请求中的每个请求的多个代理的目标代理,其中如果根据所述多个请求的一个请求的目标代理、所述请求被阻塞,那么所述开关被配置成把给另一目标代理的另一请求选为所选请求。
18、按照权利要求17所述的系统,其中所述开关被配置成对所述多个请求中的每个请求的地址的一部分解码,以确定每个请求的目标代理。
19、按照权利要求11所述的系统,其中所述互连包括耦接在所述开关和在所述互连上接收请求的多个代理中的每一个之间的一个或多个定时存储装置。
20、按照权利要求19所述的系统,其中一个或多个触发器的数目以请求到离所述开关最远的接收代理的飞行时间为基础。
21、按照权利要求11所述的系统,其中所述互连是地址互连。
22、按照权利要求11所述的系统,其中所述互连是数据互连。
23、一种方法,包括:
使来自多个代理的请求在多个存储位置中排队;
在所述多个存储位置中的请求之间进行仲裁,以选择所述多个请求中的一个所选的请求;和
在互连上传送所选的请求。
24、按照权利要求23所述的方法,其中所述多个存储位置包括多个队列,其中所述多个队列中的每个队列对应于所述多个代理中的一个对应代理,其中每个队列被配置成保存由所述相应代理产生的供在所述互连上传输的多个请求。
25、按照权利要求24所述的方法,还包括在从所述多个队列中的第一队列中选择第二请求之前,从所述第一队列中选择第一请求,其中所述第二请求由所述第一代理在传送所述第一请求之前传送。
26、按照权利要求25所述的方法,其中响应第一请求的优先级高于第二请求,执行选择第一请求的步骤。
27、按照权利要求25所述的方法,其中响应所述第一请求可和所述第二请求按照一组排序规则重新排序,执行选择第一请求的步骤。
28、按照权利要求23所述的方法,其中所述互连是地址互连。
29、按照权利要求23所述的方法,其中所述互连是数据互连。
CN2006800375684A 2005-08-11 2006-08-11 在多个请求之间进行仲裁的系统和方法 Expired - Fee Related CN101305354B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/201,581 2005-08-11
US11/201,581 US7461190B2 (en) 2005-08-11 2005-08-11 Non-blocking address switch with shallow per agent queues
PCT/US2006/031520 WO2007022018A1 (en) 2005-08-11 2006-08-11 Non-blocking address switch with shallow per agent queues

Publications (2)

Publication Number Publication Date
CN101305354A true CN101305354A (zh) 2008-11-12
CN101305354B CN101305354B (zh) 2011-08-31

Family

ID=37440602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800375684A Expired - Fee Related CN101305354B (zh) 2005-08-11 2006-08-11 在多个请求之间进行仲裁的系统和方法

Country Status (9)

Country Link
US (3) US7461190B2 (zh)
EP (1) EP1922629B1 (zh)
JP (1) JP4851523B2 (zh)
CN (1) CN101305354B (zh)
AT (1) ATE489678T1 (zh)
DE (1) DE602006018483D1 (zh)
ES (1) ES2354748T3 (zh)
TW (1) TWI396091B (zh)
WO (1) WO2007022018A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736997A (zh) * 2011-04-01 2012-10-17 中兴通讯股份有限公司 一种片上互联总线的仲裁方法和系统
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法
CN104583991A (zh) * 2012-09-29 2015-04-29 英特尔公司 用于二维无缓冲器互连的防饥饿及回弹减少机制
CN107851081A (zh) * 2015-07-20 2018-03-27 美国莱迪思半导体公司 低速总线时间戳记方法和电路

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US9087036B1 (en) 2004-08-12 2015-07-21 Sonics, Inc. Methods and apparatuses for time annotated transaction level modeling
US7620746B2 (en) * 2005-09-29 2009-11-17 Apple Inc. Functional DMA performing operation on DMA data and writing result of operation
US20070112945A1 (en) * 2005-11-12 2007-05-17 Lori Brown Supply and demand project management tool
US8868397B2 (en) * 2006-11-20 2014-10-21 Sonics, Inc. Transaction co-validation across abstraction layers
US8069279B2 (en) * 2007-03-05 2011-11-29 Apple Inc. Data flow control within and between DMA channels
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US9292436B2 (en) * 2007-06-25 2016-03-22 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
US8112450B2 (en) * 2008-01-31 2012-02-07 Microsoft Corporation Priority messaging and priority scheduling
JP5147584B2 (ja) * 2008-07-23 2013-02-20 株式会社日立製作所 ストレージサブシステム及びコントローラによるコマンド実行方法
US8121129B2 (en) * 2008-12-15 2012-02-21 International Business Machines Corporation Optimizing throughput of data in a communications network
US9514074B2 (en) 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US8611335B1 (en) 2009-08-13 2013-12-17 Google, Inc. System and method for assigning paths for data flows through a wide-area network
US8351594B2 (en) 2010-02-08 2013-01-08 Genesys Telecommunications Laboratories, Inc. System for indicating priority levels for transaction and task engagement in a call center
US8379659B2 (en) * 2010-03-29 2013-02-19 Intel Corporation Performance and traffic aware heterogeneous interconnection network
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8868855B2 (en) * 2011-02-28 2014-10-21 Hewlett-Packard Development Company, L.P. Request management system and method for dynamically managing prioritized requests
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
CN103024699B (zh) * 2011-09-22 2016-05-25 北京神州泰岳软件股份有限公司 一种短信发送方法和一种信息资源站实体
US8713234B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
US8874976B2 (en) 2011-09-29 2014-10-28 Intel Corporation Providing error handling support to legacy devices
US8929373B2 (en) 2011-09-29 2015-01-06 Intel Corporation Sending packets with expanded headers
US8805926B2 (en) 2011-09-29 2014-08-12 Intel Corporation Common idle state, active state and credit management for an interface
US8713240B2 (en) 2011-09-29 2014-04-29 Intel Corporation Providing multiple decode options for a system-on-chip (SoC) fabric
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8775700B2 (en) 2011-09-29 2014-07-08 Intel Corporation Issuing requests to a fabric
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
US8856415B2 (en) 2012-02-01 2014-10-07 National Instruments Corporation Bus arbitration for a real-time computer system
US20150154132A1 (en) * 2013-12-02 2015-06-04 Sandisk Technologies Inc. System and method of arbitration associated with a multi-threaded system
US9209961B1 (en) 2014-09-29 2015-12-08 Apple Inc. Method and apparatus for delay compensation in data transmission
US9904645B2 (en) * 2014-10-31 2018-02-27 Texas Instruments Incorporated Multicore bus architecture with non-blocking high performance transaction credit system
US9684615B1 (en) * 2015-01-08 2017-06-20 Altera Corporation Apparatus and methods for multiple-channel direct memory access
US9904635B2 (en) * 2015-08-27 2018-02-27 Samsung Electronics Co., Ltd. High performance transaction-based memory systems
US9934174B2 (en) * 2015-09-18 2018-04-03 Seagate Technology Llc Selectively enable data transfer based on accrued data credits
US10303631B2 (en) * 2016-03-17 2019-05-28 International Business Machines Corporation Self-moderating bus arbitration architecture
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
CN111630471A (zh) 2017-03-06 2020-09-04 脸谱科技有限责任公司 在集成电路中的电路区域的操作点控制器
US11231769B2 (en) 2017-03-06 2022-01-25 Facebook Technologies, Llc Sequencer-based protocol adapter
US11080188B1 (en) 2018-03-28 2021-08-03 Apple Inc. Method to ensure forward progress of a processor in the presence of persistent external cache/TLB maintenance requests
US11307988B2 (en) * 2018-10-15 2022-04-19 Texas Instruments Incorporated Configurable cache for multi-endpoint heterogeneous coherent system
US11397809B2 (en) * 2019-09-23 2022-07-26 Stmicroelectronics International N.V. Protection scheme for sensor segmentation in virtualization application
US10972408B1 (en) 2020-02-10 2021-04-06 Apple Inc. Configurable packet arbitration with minimum progress guarantees
US11422946B2 (en) 2020-08-31 2022-08-23 Apple Inc. Translation lookaside buffer striping for efficient invalidation operations
US11615033B2 (en) 2020-09-09 2023-03-28 Apple Inc. Reducing translation lookaside buffer searches for splintered pages
US11675710B2 (en) 2020-09-09 2023-06-13 Apple Inc. Limiting translation lookaside buffer searches using active page size

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897833A (en) * 1987-10-16 1990-01-30 Digital Equipment Corporation Hierarchical arbitration system
US4987833A (en) * 1988-03-28 1991-01-29 Antosh Mark J Solar induction monorail apparatus and method
US5392434A (en) * 1993-09-03 1995-02-21 Motorola, Inc. Arbitration protocol system granting use of a shared resource to one of a plurality of resource users
JP3525506B2 (ja) * 1994-09-02 2004-05-10 株式会社日立製作所 バスアービトレーション装置及び方法
EP1343076A3 (en) * 1995-05-26 2004-02-25 National Semiconductor Corporation integrated circuit with multiple functions sharing multiple internal signal buses according to distributed bus access and control arbitration
EP0752666A3 (en) * 1995-07-06 2004-04-28 Sun Microsystems, Inc. Method and apparatus for fast-forwarding slave requests in a packet-switched computer system
JPH1196108A (ja) * 1997-09-18 1999-04-09 Toshiba Corp 計算機システム及びバス制御装置
JPH11191076A (ja) * 1997-12-26 1999-07-13 Fujitsu Ltd 情報処理装置
JP3071752B2 (ja) * 1998-03-24 2000-07-31 三菱電機株式会社 ブリッジ方法、バスブリッジ及びマルチプロセッサシステム
US6145032A (en) * 1998-09-21 2000-11-07 International Business Machines Corporation System for recirculation of communication transactions in data processing in the event of communication stall
US6434649B1 (en) * 1998-10-14 2002-08-13 Hitachi, Ltd. Data streamer
US6601151B1 (en) * 1999-02-08 2003-07-29 Sun Microsystems, Inc. Apparatus and method for handling memory access requests in a data processing system
KR100708096B1 (ko) * 2000-07-21 2007-04-16 삼성전자주식회사 버스 시스템 및 그 실행 순서 조정방법
US7028115B1 (en) 2000-10-06 2006-04-11 Broadcom Corporation Source triggered transaction blocking
US6622208B2 (en) * 2001-03-30 2003-09-16 Cirrus Logic, Inc. System and methods using a system-on-a-chip with soft cache
US6832279B1 (en) * 2001-05-17 2004-12-14 Cisco Systems, Inc. Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node
US6829665B2 (en) * 2001-09-28 2004-12-07 Hewlett-Packard Development Company, L.P. Next snoop predictor in a host controller
EP1308862B1 (en) 2001-10-29 2009-07-15 Telefonaktiebolaget LM Ericsson (publ) Optimization of the design of a synchronous digital circuit
US7539199B2 (en) * 2003-02-21 2009-05-26 Gireesh Shrimali Switch fabric scheduling with fairness and priority consideration
US7360008B2 (en) * 2004-12-30 2008-04-15 Intel Corporation Enforcing global ordering through a caching bridge in a multicore multiprocessor system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102736997A (zh) * 2011-04-01 2012-10-17 中兴通讯股份有限公司 一种片上互联总线的仲裁方法和系统
CN102736997B (zh) * 2011-04-01 2017-05-03 中兴通讯股份有限公司 一种片上互联总线的仲裁方法和系统
CN104583991A (zh) * 2012-09-29 2015-04-29 英特尔公司 用于二维无缓冲器互连的防饥饿及回弹减少机制
CN104583991B (zh) * 2012-09-29 2017-12-29 英特尔公司 预订方法、环停止器以及互连装置
CN103914413A (zh) * 2014-04-18 2014-07-09 东南大学 用于粗粒度可重构系统的外存访问接口及其访问方法
CN107851081A (zh) * 2015-07-20 2018-03-27 美国莱迪思半导体公司 低速总线时间戳记方法和电路
US10884452B2 (en) 2015-07-20 2021-01-05 Lattice Semiconductor Corporation Low-speed bus triggering methods and circuitry
CN107851081B (zh) * 2015-07-20 2021-01-15 美国莱迪思半导体公司 低速总线时间戳记方法和电路

Also Published As

Publication number Publication date
US20100235675A1 (en) 2010-09-16
EP1922629B1 (en) 2010-11-24
US20070038791A1 (en) 2007-02-15
US7461190B2 (en) 2008-12-02
US7752366B2 (en) 2010-07-06
TW200809518A (en) 2008-02-16
JP2009514065A (ja) 2009-04-02
WO2007022018A1 (en) 2007-02-22
ES2354748T3 (es) 2011-03-17
ATE489678T1 (de) 2010-12-15
DE602006018483D1 (de) 2011-01-05
US7970970B2 (en) 2011-06-28
JP4851523B2 (ja) 2012-01-11
EP1922629A1 (en) 2008-05-21
CN101305354B (zh) 2011-08-31
TWI396091B (zh) 2013-05-11
US20090055568A1 (en) 2009-02-26

Similar Documents

Publication Publication Date Title
CN101305354B (zh) 在多个请求之间进行仲裁的系统和方法
US6606676B1 (en) Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
CN105900076B (zh) 用于处理多个交易的数据处理系统及方法
EP0450233B1 (en) Bus access for digital computer system
US6779036B1 (en) Method and apparatus for achieving correct order among bus memory transactions in a physically distributed SMP system
US6535941B1 (en) Method and apparatus for avoiding data bus grant starvation in a non-fair, prioritized arbiter for a split bus system with independent address and data bus grants
CN101088074B (zh) 用于具有不同高速缓存位置长度的高速缓存中高速缓存一致性的系统和方法
CN102414671A (zh) 对于不同源的分级内存仲裁技术
JP4621604B2 (ja) バス装置、バスシステムおよび情報転送方法
JPH0810446B2 (ja) バスの競合を解決するための裁定手段
CN102165424A (zh) 高速缓冲存储器、存储器系统及其控制方法
US6842828B2 (en) Methods and arrangements to enhance an upbound path
US11537538B2 (en) Inter cluster snoop latency reduction
US6829669B2 (en) Bus bridge interface system
EP1187030B1 (en) Multiple transaction bus system
CN101326505B (zh) 部分填充的分级交叉开关
JPH04302051A (ja) メモリ共有マルチプロセッサが使用する全ての物理的アドレスのデータ両立性を保持する方法
US7093052B2 (en) Bus sampling on one edge of a clock signal and driving on another edge
US20050015520A1 (en) Increased computer peripheral throughput by using data available withholding
CN117546135A (zh) 具有混合dram/持久性存储器通道仲裁的存储器控制器
KR20230158571A (ko) 멀티-큐 메모리 컨트롤러를 위한 크레딧 스킴
US8949545B2 (en) Memory interface device and methods thereof
US7668996B2 (en) Method of piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US6557087B1 (en) Management of PCI read access to a central resource

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 Inc.

Address before: American California

Applicant before: P.A.SEMI

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: 20110831

Termination date: 20210811